Added initial AVR32 support (bare-metal,newlib) avr32
author"Martin Lund" <mgl@doredevelopment.dk>
Fri May 22 14:46:18 2009 +0000 (2009-05-22)
branchavr32
changeset 1371802c132f1f71
parent 1370 73cecb8906fe
child 1372 ff171891e7c4
Added initial AVR32 support (bare-metal,newlib)
config/arch/avr32.in
config/libc.in
config/libc/newlib.in
patches/binutils/2.18/130-avr32-atmel-v1.0.1.patch
patches/gcc/4.2.2/300-avr32-atmel-v1.1.3.patch
patches/newlib/1.17.0/100-avr32.patch
samples/avr32-unknown-none/crosstool.config
samples/avr32-unknown-none/reported.by
scripts/build/arch/avr32.sh
scripts/build/libc/newlib.sh
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/config/arch/avr32.in	Fri May 22 14:46:18 2009 +0000
     1.3 @@ -0,0 +1,13 @@
     1.4 +# AVR32 specific configuration file
     1.5 +# depends on EXPERIMENTAL
     1.6 +
     1.7 +config ARCH_avr32
     1.8 +    select ARCH_USE_MMU
     1.9 +    select ARCH_DEFAULT_BE
    1.10 +    help
    1.11 +      The AVR32 architecture, as defined by:
    1.12 +        http://www.atmel.com/products/avr32
    1.13 +
    1.14 +config ARCH_AVR32
    1.15 +    string
    1.16 +    default "avr32"
     2.1 --- a/config/libc.in	Fri May 22 14:00:40 2009 +0000
     2.2 +++ b/config/libc.in	Fri May 22 14:46:18 2009 +0000
     2.3 @@ -2,7 +2,11 @@
     2.4  
     2.5  config LIBC
     2.6      string
     2.7 -    default "none" if BARE_METAL
     2.8 +#    default "none" if BARE_METAL
     2.9 +    default "newlib" if EXPERIMENTAL
    2.10 +
    2.11 +# FIXME: toolchain can be BARE_METAL (no OS) but have OS independent LIBC (eg. newlib)
    2.12 +#        new combinations needed
    2.13  
    2.14  menu "C-library"
    2.15  
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/config/libc/newlib.in	Fri May 22 14:46:18 2009 +0000
     3.3 @@ -0,0 +1,31 @@
     3.4 +# newlib options
     3.5 +# depends on EXPERIMENTAL
     3.6 +
     3.7 +config LIBC_newlib
     3.8 +    help
     3.9 +    Newlib is a C library intended for use on embedded systems. It is a 
    3.10 +    conglomeration of several library parts, all under free software 
    3.11 +    licenses that make them easily usable on embedded products. Newlib 
    3.12 +    is only available in source form. It can be compiled for a wide 
    3.13 +    array of processors, and will usually work on any architecture with
    3.14 +    the addition of a few low-level routines. 
    3.15 +
    3.16 +choice
    3.17 +    bool
    3.18 +    prompt "newlib version"
    3.19 +
    3.20 +config NEWLIB_V_1_17_0
    3.21 +    bool
    3.22 +    prompt "1.17.0"
    3.23 +
    3.24 +# CT_INSERT_VERSION_ABOVE
    3.25 +# Don't remove above line!
    3.26 +
    3.27 +endchoice
    3.28 +
    3.29 +config LIBC_VERSION
    3.30 +    string
    3.31 +    default "1.17.0" if NEWLIB_V_1_17_0
    3.32 +
    3.33 +# CT_INSERT_VERSION_STRING_ABOVE
    3.34 +# Don't remove above line!
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/patches/binutils/2.18/130-avr32-atmel-v1.0.1.patch	Fri May 22 14:46:18 2009 +0000
     4.3 @@ -0,0 +1,52747 @@
     4.4 +--- a/bfd/archures.c
     4.5 ++++ b/bfd/archures.c
     4.6 +@@ -346,6 +346,11 @@ DESCRIPTION
     4.7 + .#define bfd_mach_avr4		4
     4.8 + .#define bfd_mach_avr5		5
     4.9 + .#define bfd_mach_avr6		6
    4.10 ++.  bfd_arch_avr32,     {* Atmel AVR32 *}
    4.11 ++.#define bfd_mach_avr32_ap	7000
    4.12 ++.#define bfd_mach_avr32_uc	3000
    4.13 ++.#define bfd_mach_avr32_ucr1    3001
    4.14 ++.#define bfd_mach_avr32_ucr2    3002
    4.15 + .  bfd_arch_bfin,        {* ADI Blackfin *}
    4.16 + .#define bfd_mach_bfin          1
    4.17 + .  bfd_arch_cr16,       {* National Semiconductor CompactRISC (ie CR16). *}
    4.18 +@@ -438,6 +443,7 @@ extern const bfd_arch_info_type bfd_alph
    4.19 + extern const bfd_arch_info_type bfd_arc_arch;
    4.20 + extern const bfd_arch_info_type bfd_arm_arch;
    4.21 + extern const bfd_arch_info_type bfd_avr_arch;
    4.22 ++extern const bfd_arch_info_type bfd_avr32_arch;
    4.23 + extern const bfd_arch_info_type bfd_bfin_arch;
    4.24 + extern const bfd_arch_info_type bfd_cr16_arch;
    4.25 + extern const bfd_arch_info_type bfd_cr16c_arch;
    4.26 +@@ -509,6 +515,7 @@ static const bfd_arch_info_type * const 
    4.27 +     &bfd_arc_arch,
    4.28 +     &bfd_arm_arch,
    4.29 +     &bfd_avr_arch,
    4.30 ++    &bfd_avr32_arch,
    4.31 +     &bfd_bfin_arch,
    4.32 +     &bfd_cr16_arch,
    4.33 +     &bfd_cr16c_arch,
    4.34 +--- a/bfd/config.bfd
    4.35 ++++ b/bfd/config.bfd
    4.36 +@@ -335,6 +335,10 @@ case "${targ}" in
    4.37 +     targ_underscore=yes
    4.38 +     ;;
    4.39 + 
    4.40 ++  avr32-*-*)
    4.41 ++    targ_defvec=bfd_elf32_avr32_vec
    4.42 ++    ;;
    4.43 ++
    4.44 +   c30-*-*aout* | tic30-*-*aout*)
    4.45 +     targ_defvec=tic30_aout_vec
    4.46 +     ;;
    4.47 +--- a/bfd/configure.in
    4.48 ++++ b/bfd/configure.in
    4.49 +@@ -8,7 +8,7 @@ AC_CONFIG_SRCDIR([libbfd.c])
    4.50 + AC_CANONICAL_TARGET
    4.51 + AC_ISC_POSIX
    4.52 + 
    4.53 +-AM_INIT_AUTOMAKE(bfd, 2.18)
    4.54 ++AM_INIT_AUTOMAKE(bfd, 2.18.atmel.1.0.1.avr32linux.1)
    4.55 + 
    4.56 + dnl These must be called before AM_PROG_LIBTOOL, because it may want
    4.57 + dnl to call AC_CHECK_PROG.
    4.58 +@@ -619,6 +619,7 @@ do
    4.59 +     bfd_efi_app_ia64_vec)	tb="$tb efi-app-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
    4.60 +     bfd_elf32_am33lin_vec)	tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
    4.61 +     bfd_elf32_avr_vec)		tb="$tb elf32-avr.lo elf32.lo $elf" ;;
    4.62 ++    bfd_elf32_avr32_vec)	tb="$tb elf32-avr32.lo elf32.lo $elf" ;;
    4.63 +     bfd_elf32_bfin_vec)		tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
    4.64 +     bfd_elf32_bfinfdpic_vec)	tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
    4.65 +     bfd_elf32_big_generic_vec) 	tb="$tb elf32-gen.lo elf32.lo $elf" ;;
    4.66 +--- /dev/null
    4.67 ++++ b/bfd/cpu-avr32.c
    4.68 +@@ -0,0 +1,51 @@
    4.69 ++/* BFD library support routines for AVR32.
    4.70 ++   Copyright 2003-2006 Atmel Corporation.
    4.71 ++
    4.72 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
    4.73 ++
    4.74 ++   This is part of BFD, the Binary File Descriptor library.
    4.75 ++
    4.76 ++   This program is free software; you can redistribute it and/or modify
    4.77 ++   it under the terms of the GNU General Public License as published by
    4.78 ++   the Free Software Foundation; either version 2 of the License, or
    4.79 ++   (at your option) any later version.
    4.80 ++
    4.81 ++   This program is distributed in the hope that it will be useful,
    4.82 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
    4.83 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    4.84 ++   GNU General Public License for more details.
    4.85 ++
    4.86 ++   You should have received a copy of the GNU General Public License
    4.87 ++   along with this program; if not, write to the Free Software
    4.88 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    4.89 ++
    4.90 ++#include "bfd.h"
    4.91 ++#include "sysdep.h"
    4.92 ++#include "libbfd.h"
    4.93 ++
    4.94 ++#define N(machine, print, default, next)			\
    4.95 ++  {								\
    4.96 ++    32,				/* 32 bits in a word */		\
    4.97 ++    32,				/* 32 bits in an address */	\
    4.98 ++    8,				/* 8 bits in a byte */		\
    4.99 ++    bfd_arch_avr32,		/* architecture */		\
   4.100 ++    machine,			/* machine */			\
   4.101 ++    "avr32",			/* arch name */			\
   4.102 ++    print,			/* printable name */		\
   4.103 ++    1,				/* section align power */	\
   4.104 ++    default,			/* the default machine? */	\
   4.105 ++    bfd_default_compatible,					\
   4.106 ++    bfd_default_scan,						\
   4.107 ++    next,							\
   4.108 ++  }
   4.109 ++
   4.110 ++static const bfd_arch_info_type cpu_info[] =
   4.111 ++{
   4.112 ++  N(bfd_mach_avr32_ap, "avr32:ap", FALSE, &cpu_info[1]),
   4.113 ++  N(bfd_mach_avr32_uc, "avr32:uc", FALSE, &cpu_info[2]),
   4.114 ++  N(bfd_mach_avr32_ucr1, "avr32:ucr1", FALSE, &cpu_info[3]),
   4.115 ++  N(bfd_mach_avr32_ucr2, "avr32:ucr2", FALSE, NULL),
   4.116 ++};
   4.117 ++
   4.118 ++const bfd_arch_info_type bfd_avr32_arch =
   4.119 ++  N(bfd_mach_avr32_ap, "avr32", TRUE, &cpu_info[0]);
   4.120 +--- /dev/null
   4.121 ++++ b/bfd/elf32-avr32.c
   4.122 +@@ -0,0 +1,3915 @@
   4.123 ++/* AVR32-specific support for 32-bit ELF.
   4.124 ++   Copyright 2003-2006 Atmel Corporation.
   4.125 ++
   4.126 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
   4.127 ++
   4.128 ++   This file is part of BFD, the Binary File Descriptor library.
   4.129 ++
   4.130 ++   This program is free software; you can redistribute it and/or modify
   4.131 ++   it under the terms of the GNU General Public License as published by
   4.132 ++   the Free Software Foundation; either version 2 of the License, or
   4.133 ++   (at your option) any later version.
   4.134 ++
   4.135 ++   This program is distributed in the hope that it will be useful,
   4.136 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
   4.137 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   4.138 ++   GNU General Public License for more details.
   4.139 ++
   4.140 ++   You should have received a copy of the GNU General Public License
   4.141 ++   along with this program; if not, write to the Free Software
   4.142 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
   4.143 ++
   4.144 ++#include "bfd.h"
   4.145 ++#include "sysdep.h"
   4.146 ++#include "bfdlink.h"
   4.147 ++#include "libbfd.h"
   4.148 ++#include "elf-bfd.h"
   4.149 ++#include "elf/avr32.h"
   4.150 ++#include "elf32-avr32.h"
   4.151 ++
   4.152 ++#define xDEBUG
   4.153 ++#define xRELAX_DEBUG
   4.154 ++
   4.155 ++#ifdef DEBUG
   4.156 ++# define pr_debug(fmt, args...) fprintf(stderr, fmt, ##args)
   4.157 ++#else
   4.158 ++# define pr_debug(fmt, args...) do { } while (0)
   4.159 ++#endif
   4.160 ++
   4.161 ++#ifdef RELAX_DEBUG
   4.162 ++# define RDBG(fmt, args...) fprintf(stderr, fmt, ##args)
   4.163 ++#else
   4.164 ++# define RDBG(fmt, args...) do { } while (0)
   4.165 ++#endif
   4.166 ++
   4.167 ++/* When things go wrong, we want it to blow up, damnit! */
   4.168 ++#undef BFD_ASSERT
   4.169 ++#undef abort
   4.170 ++#define BFD_ASSERT(expr)					\
   4.171 ++  do								\
   4.172 ++    {								\
   4.173 ++      if (!(expr))						\
   4.174 ++	{							\
   4.175 ++	  bfd_assert(__FILE__, __LINE__);			\
   4.176 ++	  abort();						\
   4.177 ++	}							\
   4.178 ++    }								\
   4.179 ++  while (0)
   4.180 ++
   4.181 ++/* The name of the dynamic interpreter. This is put in the .interp section. */
   4.182 ++#define ELF_DYNAMIC_INTERPRETER		"/lib/ld.so.1"
   4.183 ++
   4.184 ++#define AVR32_GOT_HEADER_SIZE		8
   4.185 ++#define AVR32_FUNCTION_STUB_SIZE	8
   4.186 ++
   4.187 ++#define ELF_R_INFO(x, y) ELF32_R_INFO(x, y)
   4.188 ++#define ELF_R_TYPE(x) ELF32_R_TYPE(x)
   4.189 ++#define ELF_R_SYM(x) ELF32_R_SYM(x)
   4.190 ++
   4.191 ++#define NOP_OPCODE 0xd703
   4.192 ++
   4.193 ++
   4.194 ++/* Mapping between BFD relocations and ELF relocations */
   4.195 ++
   4.196 ++static reloc_howto_type *
   4.197 ++bfd_elf32_bfd_reloc_type_lookup(bfd *abfd, bfd_reloc_code_real_type code);
   4.198 ++
   4.199 ++static reloc_howto_type *
   4.200 ++bfd_elf32_bfd_reloc_name_lookup(bfd *abfd, const char *r_name);
   4.201 ++
   4.202 ++static void
   4.203 ++avr32_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst);
   4.204 ++
   4.205 ++/* Generic HOWTO */
   4.206 ++#define GENH(name, align, size, bitsize, pcrel, bitpos, complain, mask)	\
   4.207 ++  HOWTO(name, align, size, bitsize, pcrel, bitpos,			\
   4.208 ++	complain_overflow_##complain, bfd_elf_generic_reloc, #name,	\
   4.209 ++	FALSE, 0, mask, pcrel)
   4.210 ++
   4.211 ++static reloc_howto_type elf_avr32_howto_table[] = {
   4.212 ++  /*   NAME		 ALN SZ BSZ PCREL  BP COMPLAIN  MASK	    */
   4.213 ++  GENH(R_AVR32_NONE,	  0, 0, 0,  FALSE, 0, dont,	0x00000000),
   4.214 ++
   4.215 ++  GENH(R_AVR32_32,	  0, 2, 32, FALSE, 0, dont,	0xffffffff),
   4.216 ++  GENH(R_AVR32_16,	  0, 1, 16, FALSE, 0, bitfield,	0x0000ffff),
   4.217 ++  GENH(R_AVR32_8,	  0, 0,  8, FALSE, 0, bitfield,	0x000000ff),
   4.218 ++  GENH(R_AVR32_32_PCREL,  0, 2, 32, TRUE,  0, signed,   0xffffffff),
   4.219 ++  GENH(R_AVR32_16_PCREL,  0, 1, 16, TRUE,  0, signed,   0x0000ffff),
   4.220 ++  GENH(R_AVR32_8_PCREL,	  0, 0,  8, TRUE,  0, signed,   0x000000ff),
   4.221 ++
   4.222 ++  /* Difference between two symbol (sym2 - sym1).  The reloc encodes
   4.223 ++     the value of sym1.  The field contains the difference before any
   4.224 ++     relaxing is done.  */
   4.225 ++  GENH(R_AVR32_DIFF32,	  0, 2, 32, FALSE, 0, dont,	0xffffffff),
   4.226 ++  GENH(R_AVR32_DIFF16,	  0, 1, 16, FALSE, 0, signed,	0x0000ffff),
   4.227 ++  GENH(R_AVR32_DIFF8,	  0, 0,  8, FALSE, 0, signed,	0x000000ff),
   4.228 ++
   4.229 ++  GENH(R_AVR32_GOT32,	  0, 2, 32, FALSE, 0, signed,	0xffffffff),
   4.230 ++  GENH(R_AVR32_GOT16,	  0, 1, 16, FALSE, 0, signed,	0x0000ffff),
   4.231 ++  GENH(R_AVR32_GOT8,	  0, 0,  8, FALSE, 0, signed,	0x000000ff),
   4.232 ++
   4.233 ++  GENH(R_AVR32_21S,	  0, 2, 21, FALSE, 0, signed,	0x1e10ffff),
   4.234 ++  GENH(R_AVR32_16U,	  0, 2, 16, FALSE, 0, unsigned,	0x0000ffff),
   4.235 ++  GENH(R_AVR32_16S,	  0, 2, 16, FALSE, 0, signed,	0x0000ffff),
   4.236 ++  GENH(R_AVR32_8S,	  0, 1,  8, FALSE, 4, signed,	0x00000ff0),
   4.237 ++  GENH(R_AVR32_8S_EXT,	  0, 2,  8, FALSE, 0, signed,	0x000000ff),
   4.238 ++
   4.239 ++  GENH(R_AVR32_22H_PCREL, 1, 2, 21, TRUE,  0, signed,	0x1e10ffff),
   4.240 ++  GENH(R_AVR32_18W_PCREL, 2, 2, 16, TRUE,  0, signed,	0x0000ffff),
   4.241 ++  GENH(R_AVR32_16B_PCREL, 0, 2, 16, TRUE,  0, signed,	0x0000ffff),
   4.242 ++  GENH(R_AVR32_16N_PCREL, 0, 2, 16, TRUE,  0, signed,	0x0000ffff),
   4.243 ++  GENH(R_AVR32_14UW_PCREL, 2, 2, 12, TRUE, 0, unsigned, 0x0000f0ff),
   4.244 ++  GENH(R_AVR32_11H_PCREL, 1, 1, 10, TRUE,  4, signed,	0x00000ff3),
   4.245 ++  GENH(R_AVR32_10UW_PCREL, 2, 2, 8, TRUE,  0, unsigned, 0x000000ff),
   4.246 ++  GENH(R_AVR32_9H_PCREL,  1, 1,  8, TRUE,  4, signed,	0x00000ff0),
   4.247 ++  GENH(R_AVR32_9UW_PCREL, 2, 1,  7, TRUE,  4, unsigned,	0x000007f0),
   4.248 ++
   4.249 ++  GENH(R_AVR32_HI16,	 16, 2, 16, FALSE, 0, dont,	0x0000ffff),
   4.250 ++  GENH(R_AVR32_LO16,	  0, 2, 16, FALSE, 0, dont,	0x0000ffff),
   4.251 ++
   4.252 ++  GENH(R_AVR32_GOTPC,	  0, 2, 32, FALSE, 0, dont,	0xffffffff),
   4.253 ++  GENH(R_AVR32_GOTCALL,   2, 2, 21, FALSE, 0, signed,	0x1e10ffff),
   4.254 ++  GENH(R_AVR32_LDA_GOT,	  2, 2, 21, FALSE, 0, signed,	0x1e10ffff),
   4.255 ++  GENH(R_AVR32_GOT21S,	  0, 2, 21, FALSE, 0, signed,	0x1e10ffff),
   4.256 ++  GENH(R_AVR32_GOT18SW,	  2, 2, 16, FALSE, 0, signed,	0x0000ffff),
   4.257 ++  GENH(R_AVR32_GOT16S,	  0, 2, 16, FALSE, 0, signed,	0x0000ffff),
   4.258 ++  GENH(R_AVR32_GOT7UW,	  2, 1,  5, FALSE, 4, unsigned, 0x000001f0),
   4.259 ++
   4.260 ++  GENH(R_AVR32_32_CPENT,  0, 2, 32, FALSE, 0, dont,	0xffffffff),
   4.261 ++  GENH(R_AVR32_CPCALL,	  2, 2, 16, TRUE,  0, signed,	0x0000ffff),
   4.262 ++  GENH(R_AVR32_16_CP,	  0, 2, 16, TRUE,  0, signed,	0x0000ffff),
   4.263 ++  GENH(R_AVR32_9W_CP,	  2, 1,  7, TRUE,  4, unsigned, 0x000007f0),
   4.264 ++
   4.265 ++  GENH(R_AVR32_RELATIVE,  0, 2, 32, FALSE, 0, signed,	0xffffffff),
   4.266 ++  GENH(R_AVR32_GLOB_DAT,  0, 2, 32, FALSE, 0, dont,	0xffffffff),
   4.267 ++  GENH(R_AVR32_JMP_SLOT,  0, 2, 32, FALSE, 0, dont,	0xffffffff),
   4.268 ++
   4.269 ++  GENH(R_AVR32_ALIGN,	  0, 1, 0,  FALSE, 0, unsigned, 0x00000000),
   4.270 ++
   4.271 ++  GENH(R_AVR32_15S,	  2, 2, 15, FALSE, 0, signed,	0x00007fff),
   4.272 ++};
   4.273 ++
   4.274 ++struct elf_reloc_map
   4.275 ++{
   4.276 ++  bfd_reloc_code_real_type bfd_reloc_val;
   4.277 ++  unsigned char elf_reloc_val;
   4.278 ++};
   4.279 ++
   4.280 ++static const struct elf_reloc_map avr32_reloc_map[] =
   4.281 ++{
   4.282 ++  { BFD_RELOC_NONE,			R_AVR32_NONE },
   4.283 ++
   4.284 ++  { BFD_RELOC_32,			R_AVR32_32 },
   4.285 ++  { BFD_RELOC_16,			R_AVR32_16 },
   4.286 ++  { BFD_RELOC_8,			R_AVR32_8 },
   4.287 ++  { BFD_RELOC_32_PCREL,			R_AVR32_32_PCREL },
   4.288 ++  { BFD_RELOC_16_PCREL,			R_AVR32_16_PCREL },
   4.289 ++  { BFD_RELOC_8_PCREL,			R_AVR32_8_PCREL },
   4.290 ++  { BFD_RELOC_AVR32_DIFF32,		R_AVR32_DIFF32 },
   4.291 ++  { BFD_RELOC_AVR32_DIFF16,		R_AVR32_DIFF16 },
   4.292 ++  { BFD_RELOC_AVR32_DIFF8,		R_AVR32_DIFF8 },
   4.293 ++  { BFD_RELOC_AVR32_GOT32,		R_AVR32_GOT32 },
   4.294 ++  { BFD_RELOC_AVR32_GOT16,		R_AVR32_GOT16 },
   4.295 ++  { BFD_RELOC_AVR32_GOT8,		R_AVR32_GOT8 },
   4.296 ++
   4.297 ++  { BFD_RELOC_AVR32_21S,		R_AVR32_21S },
   4.298 ++  { BFD_RELOC_AVR32_16U,		R_AVR32_16U },
   4.299 ++  { BFD_RELOC_AVR32_16S,		R_AVR32_16S },
   4.300 ++  { BFD_RELOC_AVR32_SUB5,		R_AVR32_16S },
   4.301 ++  { BFD_RELOC_AVR32_8S_EXT,		R_AVR32_8S_EXT },
   4.302 ++  { BFD_RELOC_AVR32_8S,			R_AVR32_8S },
   4.303 ++
   4.304 ++  { BFD_RELOC_AVR32_22H_PCREL,		R_AVR32_22H_PCREL },
   4.305 ++  { BFD_RELOC_AVR32_18W_PCREL,		R_AVR32_18W_PCREL },
   4.306 ++  { BFD_RELOC_AVR32_16B_PCREL,		R_AVR32_16B_PCREL },
   4.307 ++  { BFD_RELOC_AVR32_16N_PCREL,		R_AVR32_16N_PCREL },
   4.308 ++  { BFD_RELOC_AVR32_11H_PCREL,		R_AVR32_11H_PCREL },
   4.309 ++  { BFD_RELOC_AVR32_10UW_PCREL,		R_AVR32_10UW_PCREL },
   4.310 ++  { BFD_RELOC_AVR32_9H_PCREL,		R_AVR32_9H_PCREL },
   4.311 ++  { BFD_RELOC_AVR32_9UW_PCREL,		R_AVR32_9UW_PCREL },
   4.312 ++
   4.313 ++  { BFD_RELOC_HI16,			R_AVR32_HI16 },
   4.314 ++  { BFD_RELOC_LO16,			R_AVR32_LO16 },
   4.315 ++
   4.316 ++  { BFD_RELOC_AVR32_GOTPC,		R_AVR32_GOTPC },
   4.317 ++  { BFD_RELOC_AVR32_GOTCALL,		R_AVR32_GOTCALL },
   4.318 ++  { BFD_RELOC_AVR32_LDA_GOT,		R_AVR32_LDA_GOT },
   4.319 ++  { BFD_RELOC_AVR32_GOT21S,		R_AVR32_GOT21S },
   4.320 ++  { BFD_RELOC_AVR32_GOT18SW,		R_AVR32_GOT18SW },
   4.321 ++  { BFD_RELOC_AVR32_GOT16S,		R_AVR32_GOT16S },
   4.322 ++  /* GOT7UW should never be generated by the assembler */
   4.323 ++
   4.324 ++  { BFD_RELOC_AVR32_32_CPENT,		R_AVR32_32_CPENT },
   4.325 ++  { BFD_RELOC_AVR32_CPCALL,		R_AVR32_CPCALL },
   4.326 ++  { BFD_RELOC_AVR32_16_CP,		R_AVR32_16_CP },
   4.327 ++  { BFD_RELOC_AVR32_9W_CP,		R_AVR32_9W_CP },
   4.328 ++
   4.329 ++  { BFD_RELOC_AVR32_ALIGN,		R_AVR32_ALIGN },
   4.330 ++
   4.331 ++  { BFD_RELOC_AVR32_15S,		R_AVR32_15S },
   4.332 ++};
   4.333 ++
   4.334 ++static reloc_howto_type *
   4.335 ++bfd_elf32_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
   4.336 ++				 bfd_reloc_code_real_type code)
   4.337 ++{
   4.338 ++  unsigned int i;
   4.339 ++
   4.340 ++  for (i = 0; i < sizeof(avr32_reloc_map) / sizeof(struct elf_reloc_map); i++)
   4.341 ++    {
   4.342 ++      if (avr32_reloc_map[i].bfd_reloc_val == code)
   4.343 ++	return &elf_avr32_howto_table[avr32_reloc_map[i].elf_reloc_val];
   4.344 ++    }
   4.345 ++
   4.346 ++  return NULL;
   4.347 ++}
   4.348 ++
   4.349 ++static reloc_howto_type *
   4.350 ++bfd_elf32_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
   4.351 ++                 const char *r_name)
   4.352 ++{
   4.353 ++  unsigned int i;
   4.354 ++
   4.355 ++  for (i = 0;
   4.356 ++       i < sizeof (elf_avr32_howto_table) / sizeof (elf_avr32_howto_table[0]);
   4.357 ++       i++)
   4.358 ++    if (elf_avr32_howto_table[i].name != NULL
   4.359 ++    && strcasecmp (elf_avr32_howto_table[i].name, r_name) == 0)
   4.360 ++      return &elf_avr32_howto_table[i];
   4.361 ++
   4.362 ++  return NULL;
   4.363 ++}
   4.364 ++
   4.365 ++/* Set the howto pointer for an AVR32 ELF reloc.  */
   4.366 ++static void
   4.367 ++avr32_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
   4.368 ++		     arelent *cache_ptr,
   4.369 ++		     Elf_Internal_Rela *dst)
   4.370 ++{
   4.371 ++  unsigned int r_type;
   4.372 ++
   4.373 ++  r_type = ELF32_R_TYPE (dst->r_info);
   4.374 ++  BFD_ASSERT (r_type < (unsigned int) R_AVR32_max);
   4.375 ++  cache_ptr->howto = &elf_avr32_howto_table[r_type];
   4.376 ++}
   4.377 ++
   4.378 ++
   4.379 ++/* AVR32 ELF linker hash table and associated hash entries. */
   4.380 ++
   4.381 ++static struct bfd_hash_entry *
   4.382 ++avr32_elf_link_hash_newfunc(struct bfd_hash_entry *entry,
   4.383 ++			    struct bfd_hash_table *table,
   4.384 ++			    const char *string);
   4.385 ++static void
   4.386 ++avr32_elf_copy_indirect_symbol(struct bfd_link_info *info,
   4.387 ++			       struct elf_link_hash_entry *dir,
   4.388 ++			       struct elf_link_hash_entry *ind);
   4.389 ++static struct bfd_link_hash_table *
   4.390 ++avr32_elf_link_hash_table_create(bfd *abfd);
   4.391 ++
   4.392 ++/*
   4.393 ++  Try to limit memory usage to something reasonable when sorting the
   4.394 ++  GOT.  If just a couple of entries end up getting more references
   4.395 ++  than this, it won't affect performance at all, but if there are many
   4.396 ++  of them, we could end up with the wrong symbols being assigned the
   4.397 ++  first GOT entries.
   4.398 ++*/
   4.399 ++#define MAX_NR_GOT_HOLES	2048
   4.400 ++
   4.401 ++/*
   4.402 ++  AVR32 GOT entry.  We need to keep track of refcounts and offsets
   4.403 ++  simultaneously, since we need the offsets during relaxation, and we
   4.404 ++  also want to be able to drop GOT entries during relaxation. In
   4.405 ++  addition to this, we want to keep the list of GOT entries sorted so
   4.406 ++  that we can keep the most-used entries at the lowest offsets.
   4.407 ++*/
   4.408 ++struct got_entry
   4.409 ++{
   4.410 ++  struct got_entry *next;
   4.411 ++  struct got_entry **pprev;
   4.412 ++  int refcount;
   4.413 ++  bfd_signed_vma offset;
   4.414 ++};
   4.415 ++
   4.416 ++struct elf_avr32_link_hash_entry
   4.417 ++{
   4.418 ++  struct elf_link_hash_entry root;
   4.419 ++
   4.420 ++  /* Number of runtime relocations against this symbol.  */
   4.421 ++  unsigned int possibly_dynamic_relocs;
   4.422 ++
   4.423 ++  /* If there are anything but R_AVR32_GOT18 relocations against this
   4.424 ++     symbol, it means that someone may be taking the address of the
   4.425 ++     function, and we should therefore not create a stub.  */
   4.426 ++  bfd_boolean no_fn_stub;
   4.427 ++
   4.428 ++  /* If there is a R_AVR32_32 relocation in a read-only section
   4.429 ++     against this symbol, we could be in trouble. If we're linking a
   4.430 ++     shared library or this symbol is defined in one, it means we must
   4.431 ++     emit a run-time reloc for it and that's not allowed in read-only
   4.432 ++     sections.  */
   4.433 ++  asection *readonly_reloc_sec;
   4.434 ++  bfd_vma readonly_reloc_offset;
   4.435 ++
   4.436 ++  /* Record which frag (if any) contains the symbol.  This is used
   4.437 ++     during relaxation in order to avoid having to update all symbols
   4.438 ++     whenever we move something.  For local symbols, this information
   4.439 ++     is in the local_sym_frag member of struct elf_obj_tdata.  */
   4.440 ++  struct fragment *sym_frag;
   4.441 ++};
   4.442 ++#define avr32_elf_hash_entry(ent) ((struct elf_avr32_link_hash_entry *)(ent))
   4.443 ++
   4.444 ++struct elf_avr32_link_hash_table
   4.445 ++{
   4.446 ++  struct elf_link_hash_table root;
   4.447 ++
   4.448 ++  /* Shortcuts to get to dynamic linker sections.  */
   4.449 ++  asection *sgot;
   4.450 ++  asection *srelgot;
   4.451 ++  asection *sstub;
   4.452 ++
   4.453 ++  /* We use a variation of Pigeonhole Sort to sort the GOT.  After the
   4.454 ++     initial refcounts have been determined, we initialize
   4.455 ++     nr_got_holes to the highest refcount ever seen and allocate an
   4.456 ++     array of nr_got_holes entries for got_hole.  Each GOT entry is
   4.457 ++     then stored in this array at the index given by its refcount.
   4.458 ++
   4.459 ++     When a GOT entry has its refcount decremented during relaxation,
   4.460 ++     it is moved to a lower index in the got_hole array.
   4.461 ++   */
   4.462 ++  struct got_entry **got_hole;
   4.463 ++  int nr_got_holes;
   4.464 ++
   4.465 ++  /* Dynamic relocations to local symbols.  Only used when linking a
   4.466 ++     shared library and -Bsymbolic is not given.  */
   4.467 ++  unsigned int local_dynamic_relocs;
   4.468 ++
   4.469 ++  bfd_boolean relocations_analyzed;
   4.470 ++  bfd_boolean symbols_adjusted;
   4.471 ++  bfd_boolean repeat_pass;
   4.472 ++  bfd_boolean direct_data_refs;
   4.473 ++  unsigned int relax_iteration;
   4.474 ++  unsigned int relax_pass;
   4.475 ++};
   4.476 ++#define avr32_elf_hash_table(p)				\
   4.477 ++  ((struct elf_avr32_link_hash_table *)((p)->hash))
   4.478 ++
   4.479 ++static struct bfd_hash_entry *
   4.480 ++avr32_elf_link_hash_newfunc(struct bfd_hash_entry *entry,
   4.481 ++			    struct bfd_hash_table *table,
   4.482 ++			    const char *string)
   4.483 ++{
   4.484 ++  struct elf_avr32_link_hash_entry *ret = avr32_elf_hash_entry(entry);
   4.485 ++
   4.486 ++  /* Allocate the structure if it hasn't already been allocated by a
   4.487 ++     subclass */
   4.488 ++  if (ret == NULL)
   4.489 ++    ret = (struct elf_avr32_link_hash_entry *)
   4.490 ++      bfd_hash_allocate(table, sizeof(struct elf_avr32_link_hash_entry));
   4.491 ++
   4.492 ++  if (ret == NULL)
   4.493 ++    return NULL;
   4.494 ++
   4.495 ++  memset(ret, 0, sizeof(struct elf_avr32_link_hash_entry));
   4.496 ++
   4.497 ++  /* Give the superclass a chance */
   4.498 ++  ret = (struct elf_avr32_link_hash_entry *)
   4.499 ++    _bfd_elf_link_hash_newfunc((struct bfd_hash_entry *)ret, table, string);
   4.500 ++
   4.501 ++  return (struct bfd_hash_entry *)ret;
   4.502 ++}
   4.503 ++
   4.504 ++/* Copy data from an indirect symbol to its direct symbol, hiding the
   4.505 ++   old indirect symbol.  Process additional relocation information.
   4.506 ++   Also called for weakdefs, in which case we just let
   4.507 ++   _bfd_elf_link_hash_copy_indirect copy the flags for us.  */
   4.508 ++
   4.509 ++static void
   4.510 ++avr32_elf_copy_indirect_symbol(struct bfd_link_info *info,
   4.511 ++			       struct elf_link_hash_entry *dir,
   4.512 ++			       struct elf_link_hash_entry *ind)
   4.513 ++{
   4.514 ++  struct elf_avr32_link_hash_entry *edir, *eind;
   4.515 ++
   4.516 ++  _bfd_elf_link_hash_copy_indirect (info, dir, ind);
   4.517 ++
   4.518 ++  if (ind->root.type != bfd_link_hash_indirect)
   4.519 ++    return;
   4.520 ++
   4.521 ++  edir = (struct elf_avr32_link_hash_entry *)dir;
   4.522 ++  eind = (struct elf_avr32_link_hash_entry *)ind;
   4.523 ++
   4.524 ++  edir->possibly_dynamic_relocs += eind->possibly_dynamic_relocs;
   4.525 ++  edir->no_fn_stub = edir->no_fn_stub || eind->no_fn_stub;
   4.526 ++}
   4.527 ++
   4.528 ++static struct bfd_link_hash_table *
   4.529 ++avr32_elf_link_hash_table_create(bfd *abfd)
   4.530 ++{
   4.531 ++  struct elf_avr32_link_hash_table *ret;
   4.532 ++
   4.533 ++  ret = bfd_zmalloc(sizeof(*ret));
   4.534 ++  if (ret == NULL)
   4.535 ++    return NULL;
   4.536 ++
   4.537 ++  if (! _bfd_elf_link_hash_table_init(&ret->root, abfd,
   4.538 ++				      avr32_elf_link_hash_newfunc,
   4.539 ++                      sizeof (struct elf_avr32_link_hash_entry)))
   4.540 ++    {
   4.541 ++      free(ret);
   4.542 ++      return NULL;
   4.543 ++    }
   4.544 ++
   4.545 ++  /* Prevent the BFD core from creating bogus got_entry pointers */
   4.546 ++  ret->root.init_got_refcount.glist = NULL;
   4.547 ++  ret->root.init_plt_refcount.glist = NULL;
   4.548 ++  ret->root.init_got_offset.glist = NULL;
   4.549 ++  ret->root.init_plt_offset.glist = NULL;
   4.550 ++
   4.551 ++  return &ret->root.root;
   4.552 ++}
   4.553 ++
   4.554 ++
   4.555 ++/* Initial analysis and creation of dynamic sections and symbols */
   4.556 ++
   4.557 ++static asection *
   4.558 ++create_dynamic_section(bfd *dynobj, const char *name, flagword flags,
   4.559 ++		       unsigned int align_power);
   4.560 ++static struct elf_link_hash_entry *
   4.561 ++create_dynamic_symbol(bfd *dynobj, struct bfd_link_info *info,
   4.562 ++		      const char *name, asection *sec,
   4.563 ++		      bfd_vma offset);
   4.564 ++static bfd_boolean
   4.565 ++avr32_elf_create_got_section (bfd *dynobj, struct bfd_link_info *info);
   4.566 ++static bfd_boolean
   4.567 ++avr32_elf_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info);
   4.568 ++static bfd_boolean
   4.569 ++avr32_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec,
   4.570 ++		    const Elf_Internal_Rela *relocs);
   4.571 ++static bfd_boolean
   4.572 ++avr32_elf_adjust_dynamic_symbol(struct bfd_link_info *info,
   4.573 ++				struct elf_link_hash_entry *h);
   4.574 ++
   4.575 ++static asection *
   4.576 ++create_dynamic_section(bfd *dynobj, const char *name, flagword flags,
   4.577 ++		       unsigned int align_power)
   4.578 ++{
   4.579 ++  asection *sec;
   4.580 ++
   4.581 ++  sec = bfd_make_section(dynobj, name);
   4.582 ++  if (!sec
   4.583 ++      || !bfd_set_section_flags(dynobj, sec, flags)
   4.584 ++      || !bfd_set_section_alignment(dynobj, sec, align_power))
   4.585 ++    return NULL;
   4.586 ++
   4.587 ++  return sec;
   4.588 ++}
   4.589 ++
   4.590 ++static struct elf_link_hash_entry *
   4.591 ++create_dynamic_symbol(bfd *dynobj, struct bfd_link_info *info,
   4.592 ++		      const char *name, asection *sec,
   4.593 ++		      bfd_vma offset)
   4.594 ++{
   4.595 ++  struct bfd_link_hash_entry *bh = NULL;
   4.596 ++  struct elf_link_hash_entry *h;
   4.597 ++  const struct elf_backend_data *bed = get_elf_backend_data (dynobj);
   4.598 ++
   4.599 ++  if (!(_bfd_generic_link_add_one_symbol
   4.600 ++	(info, dynobj, name, BSF_GLOBAL, sec, offset, NULL, FALSE,
   4.601 ++	 bed->collect, &bh)))
   4.602 ++    return NULL;
   4.603 ++
   4.604 ++  h = (struct elf_link_hash_entry *)bh;
   4.605 ++  h->def_regular = 1;
   4.606 ++  h->type = STT_OBJECT;
   4.607 ++  h->other = STV_HIDDEN;
   4.608 ++
   4.609 ++  return h;
   4.610 ++}
   4.611 ++
   4.612 ++static bfd_boolean
   4.613 ++avr32_elf_create_got_section (bfd *dynobj, struct bfd_link_info *info)
   4.614 ++{
   4.615 ++  struct elf_avr32_link_hash_table *htab;
   4.616 ++  flagword flags;
   4.617 ++  const struct elf_backend_data *bed = get_elf_backend_data (dynobj);
   4.618 ++
   4.619 ++  htab = avr32_elf_hash_table(info);
   4.620 ++  flags = bed->dynamic_sec_flags;
   4.621 ++
   4.622 ++  if (htab->sgot)
   4.623 ++    return TRUE;
   4.624 ++
   4.625 ++  htab->sgot = create_dynamic_section(dynobj, ".got", flags, 2);
   4.626 ++  if (!htab->srelgot)
   4.627 ++    htab->srelgot = create_dynamic_section(dynobj, ".rela.got",
   4.628 ++					   flags | SEC_READONLY, 2);
   4.629 ++
   4.630 ++  if (!htab->sgot || !htab->srelgot)
   4.631 ++    return FALSE;
   4.632 ++
   4.633 ++  htab->root.hgot = create_dynamic_symbol(dynobj, info, "_GLOBAL_OFFSET_TABLE_",
   4.634 ++					  htab->sgot, 0);
   4.635 ++  if (!htab->root.hgot)
   4.636 ++    return FALSE;
   4.637 ++
   4.638 ++  /* Make room for the GOT header */
   4.639 ++  htab->sgot->size += bed->got_header_size;
   4.640 ++
   4.641 ++  return TRUE;
   4.642 ++}
   4.643 ++
   4.644 ++/* (1) Create all dynamic (i.e. linker generated) sections that we may
   4.645 ++   need during the link */
   4.646 ++
   4.647 ++static bfd_boolean
   4.648 ++avr32_elf_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info)
   4.649 ++{
   4.650 ++  struct elf_avr32_link_hash_table *htab;
   4.651 ++  flagword flags;
   4.652 ++  const struct elf_backend_data *bed = get_elf_backend_data (dynobj);
   4.653 ++
   4.654 ++  pr_debug("(1) create dynamic sections\n");
   4.655 ++
   4.656 ++  htab = avr32_elf_hash_table(info);
   4.657 ++  flags = bed->dynamic_sec_flags;
   4.658 ++
   4.659 ++  if (!avr32_elf_create_got_section (dynobj, info))
   4.660 ++    return FALSE;
   4.661 ++
   4.662 ++  if (!htab->sstub)
   4.663 ++    htab->sstub = create_dynamic_section(dynobj, ".stub",
   4.664 ++					 flags | SEC_READONLY | SEC_CODE, 2);
   4.665 ++
   4.666 ++  if (!htab->sstub)
   4.667 ++    return FALSE;
   4.668 ++
   4.669 ++  return TRUE;
   4.670 ++}
   4.671 ++
   4.672 ++/* (2) Go through all the relocs and count any potential GOT- or
   4.673 ++   PLT-references to each symbol */
   4.674 ++
   4.675 ++static bfd_boolean
   4.676 ++avr32_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec,
   4.677 ++		    const Elf_Internal_Rela *relocs)
   4.678 ++{
   4.679 ++  Elf_Internal_Shdr *symtab_hdr;
   4.680 ++  struct elf_avr32_link_hash_table *htab;
   4.681 ++  struct elf_link_hash_entry **sym_hashes;
   4.682 ++  const Elf_Internal_Rela *rel, *rel_end;
   4.683 ++  struct got_entry **local_got_ents;
   4.684 ++  struct got_entry *got;
   4.685 ++  const struct elf_backend_data *bed = get_elf_backend_data (abfd);
   4.686 ++  asection *sgot;
   4.687 ++  bfd *dynobj;
   4.688 ++
   4.689 ++  pr_debug("(2) check relocs for %s:<%s> (size 0x%lx)\n",
   4.690 ++	   abfd->filename, sec->name, sec->size);
   4.691 ++
   4.692 ++  if (info->relocatable)
   4.693 ++    return TRUE;
   4.694 ++
   4.695 ++  dynobj = elf_hash_table(info)->dynobj;
   4.696 ++  symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
   4.697 ++  sym_hashes = elf_sym_hashes(abfd);
   4.698 ++  htab = avr32_elf_hash_table(info);
   4.699 ++  local_got_ents = elf_local_got_ents(abfd);
   4.700 ++  sgot = htab->sgot;
   4.701 ++
   4.702 ++  rel_end = relocs + sec->reloc_count;
   4.703 ++  for (rel = relocs; rel < rel_end; rel++)
   4.704 ++    {
   4.705 ++      unsigned long r_symndx, r_type;
   4.706 ++      struct elf_avr32_link_hash_entry *h;
   4.707 ++
   4.708 ++      r_symndx = ELF32_R_SYM(rel->r_info);
   4.709 ++      r_type = ELF32_R_TYPE(rel->r_info);
   4.710 ++
   4.711 ++      /* Local symbols use local_got_ents, while others store the same
   4.712 ++	 information in the hash entry */
   4.713 ++      if (r_symndx < symtab_hdr->sh_info)
   4.714 ++	{
   4.715 ++	  pr_debug("  (2a) processing local symbol %lu\n", r_symndx);
   4.716 ++	  h = NULL;
   4.717 ++	}
   4.718 ++      else
   4.719 ++	{
   4.720 ++	  h = (struct elf_avr32_link_hash_entry *)
   4.721 ++	    sym_hashes[r_symndx - symtab_hdr->sh_info];
   4.722 ++	  while (h->root.type == bfd_link_hash_indirect
   4.723 ++		 || h->root.type == bfd_link_hash_warning)
   4.724 ++	    h = (struct elf_avr32_link_hash_entry *)h->root.root.u.i.link;
   4.725 ++	  pr_debug("  (2a) processing symbol %s\n", h->root.root.root.string);
   4.726 ++	}
   4.727 ++
   4.728 ++      /* Some relocs require special sections to be created.  */
   4.729 ++      switch (r_type)
   4.730 ++	{
   4.731 ++	case R_AVR32_GOT32:
   4.732 ++	case R_AVR32_GOT16:
   4.733 ++	case R_AVR32_GOT8:
   4.734 ++	case R_AVR32_GOT21S:
   4.735 ++	case R_AVR32_GOT18SW:
   4.736 ++	case R_AVR32_GOT16S:
   4.737 ++	case R_AVR32_GOT7UW:
   4.738 ++	case R_AVR32_LDA_GOT:
   4.739 ++	case R_AVR32_GOTCALL:
   4.740 ++	  if (rel->r_addend)
   4.741 ++	    {
   4.742 ++	      if (info->callbacks->reloc_dangerous
   4.743 ++		  (info, _("Non-zero addend on GOT-relative relocation"),
   4.744 ++		   abfd, sec, rel->r_offset) == FALSE)
   4.745 ++		return FALSE;
   4.746 ++	    }
   4.747 ++	  /* fall through */
   4.748 ++	case R_AVR32_GOTPC:
   4.749 ++	  if (dynobj == NULL)
   4.750 ++	    elf_hash_table(info)->dynobj = dynobj = abfd;
   4.751 ++	  if (sgot == NULL && !avr32_elf_create_got_section(dynobj, info))
   4.752 ++	    return FALSE;
   4.753 ++	  break;
   4.754 ++	case R_AVR32_32:
   4.755 ++	  /* We may need to create .rela.dyn later on.  */
   4.756 ++	  if (dynobj == NULL
   4.757 ++	      && (info->shared || h != NULL)
   4.758 ++	      && (sec->flags & SEC_ALLOC))
   4.759 ++	    elf_hash_table(info)->dynobj = dynobj = abfd;
   4.760 ++	  break;
   4.761 ++	}
   4.762 ++
   4.763 ++      if (h != NULL && r_type != R_AVR32_GOT18SW)
   4.764 ++	h->no_fn_stub = TRUE;
   4.765 ++
   4.766 ++      switch (r_type)
   4.767 ++	{
   4.768 ++	case R_AVR32_GOT32:
   4.769 ++	case R_AVR32_GOT16:
   4.770 ++	case R_AVR32_GOT8:
   4.771 ++	case R_AVR32_GOT21S:
   4.772 ++	case R_AVR32_GOT18SW:
   4.773 ++	case R_AVR32_GOT16S:
   4.774 ++	case R_AVR32_GOT7UW:
   4.775 ++	case R_AVR32_LDA_GOT:
   4.776 ++	case R_AVR32_GOTCALL:
   4.777 ++	  if (h != NULL)
   4.778 ++	    {
   4.779 ++	      got = h->root.got.glist;
   4.780 ++	      if (!got)
   4.781 ++		{
   4.782 ++		  got = bfd_zalloc(abfd, sizeof(struct got_entry));
   4.783 ++		  if (!got)
   4.784 ++		    return FALSE;
   4.785 ++		  h->root.got.glist = got;
   4.786 ++		}
   4.787 ++	    }
   4.788 ++	  else
   4.789 ++	    {
   4.790 ++	      if (!local_got_ents)
   4.791 ++		{
   4.792 ++		  bfd_size_type size;
   4.793 ++		  bfd_size_type i;
   4.794 ++		  struct got_entry *tmp_entry;
   4.795 ++
   4.796 ++		  size = symtab_hdr->sh_info;
   4.797 ++		  size *= sizeof(struct got_entry *) + sizeof(struct got_entry);
   4.798 ++		  local_got_ents = bfd_zalloc(abfd, size);
   4.799 ++		  if (!local_got_ents)
   4.800 ++		    return FALSE;
   4.801 ++
   4.802 ++		  elf_local_got_ents(abfd) = local_got_ents;
   4.803 ++
   4.804 ++		  tmp_entry = (struct got_entry *)(local_got_ents
   4.805 ++						   + symtab_hdr->sh_info);
   4.806 ++		  for (i = 0; i < symtab_hdr->sh_info; i++)
   4.807 ++		    local_got_ents[i] = &tmp_entry[i];
   4.808 ++		}
   4.809 ++
   4.810 ++	      got = local_got_ents[r_symndx];
   4.811 ++	    }
   4.812 ++
   4.813 ++	  got->refcount++;
   4.814 ++	  if (got->refcount > htab->nr_got_holes)
   4.815 ++	    htab->nr_got_holes = got->refcount;
   4.816 ++	  break;
   4.817 ++
   4.818 ++	case R_AVR32_32:
   4.819 ++	  if ((info->shared || h != NULL)
   4.820 ++	      && (sec->flags & SEC_ALLOC))
   4.821 ++	    {
   4.822 ++	      if (htab->srelgot == NULL)
   4.823 ++		{
   4.824 ++		  htab->srelgot = create_dynamic_section(dynobj, ".rela.got",
   4.825 ++							 bed->dynamic_sec_flags
   4.826 ++							 | SEC_READONLY, 2);
   4.827 ++		  if (htab->srelgot == NULL)
   4.828 ++		    return FALSE;
   4.829 ++		}
   4.830 ++
   4.831 ++	      if (sec->flags & SEC_READONLY
   4.832 ++		  && !h->readonly_reloc_sec)
   4.833 ++		{
   4.834 ++		  h->readonly_reloc_sec = sec;
   4.835 ++		  h->readonly_reloc_offset = rel->r_offset;
   4.836 ++		}
   4.837 ++
   4.838 ++	      if (h != NULL)
   4.839 ++		{
   4.840 ++		  pr_debug("Non-GOT reference to symbol %s\n",
   4.841 ++			   h->root.root.root.string);
   4.842 ++		  h->possibly_dynamic_relocs++;
   4.843 ++		}
   4.844 ++	      else
   4.845 ++		{
   4.846 ++		  pr_debug("Non-GOT reference to local symbol %lu\n",
   4.847 ++			   r_symndx);
   4.848 ++		  htab->local_dynamic_relocs++;
   4.849 ++		}
   4.850 ++	    }
   4.851 ++
   4.852 ++	  break;
   4.853 ++
   4.854 ++	  /* TODO: GNU_VTINHERIT and GNU_VTENTRY */
   4.855 ++	}
   4.856 ++    }
   4.857 ++
   4.858 ++  return TRUE;
   4.859 ++}
   4.860 ++
   4.861 ++/* (3) Adjust a symbol defined by a dynamic object and referenced by a
   4.862 ++   regular object.  The current definition is in some section of the
   4.863 ++   dynamic object, but we're not including those sections.  We have to
   4.864 ++   change the definition to something the rest of the link can
   4.865 ++   understand.  */
   4.866 ++
   4.867 ++static bfd_boolean
   4.868 ++avr32_elf_adjust_dynamic_symbol(struct bfd_link_info *info,
   4.869 ++				struct elf_link_hash_entry *h)
   4.870 ++{
   4.871 ++  struct elf_avr32_link_hash_table *htab;
   4.872 ++  struct elf_avr32_link_hash_entry *havr;
   4.873 ++  bfd *dynobj;
   4.874 ++
   4.875 ++  pr_debug("(3) adjust dynamic symbol %s\n", h->root.root.string);
   4.876 ++
   4.877 ++  htab = avr32_elf_hash_table(info);
   4.878 ++  havr = (struct elf_avr32_link_hash_entry *)h;
   4.879 ++  dynobj = elf_hash_table(info)->dynobj;
   4.880 ++
   4.881 ++  /* Make sure we know what is going on here.  */
   4.882 ++  BFD_ASSERT (dynobj != NULL
   4.883 ++	      && (h->u.weakdef != NULL
   4.884 ++		  || (h->def_dynamic
   4.885 ++		      && h->ref_regular
   4.886 ++		      && !h->def_regular)));
   4.887 ++
   4.888 ++  /* We don't want dynamic relocations in read-only sections. */
   4.889 ++  if (havr->readonly_reloc_sec)
   4.890 ++    {
   4.891 ++      if (info->callbacks->reloc_dangerous
   4.892 ++	  (info, _("dynamic relocation in read-only section"),
   4.893 ++	   havr->readonly_reloc_sec->owner, havr->readonly_reloc_sec,
   4.894 ++	   havr->readonly_reloc_offset) == FALSE)
   4.895 ++	return FALSE;
   4.896 ++    }
   4.897 ++
   4.898 ++  /* If this is a function, create a stub if possible and set the
   4.899 ++     symbol to the stub location.  */
   4.900 ++  if (0 && !havr->no_fn_stub)
   4.901 ++    {
   4.902 ++      if (!h->def_regular)
   4.903 ++	{
   4.904 ++	  asection *s = htab->sstub;
   4.905 ++
   4.906 ++	  BFD_ASSERT(s != NULL);
   4.907 ++
   4.908 ++	  h->root.u.def.section = s;
   4.909 ++	  h->root.u.def.value = s->size;
   4.910 ++	  h->plt.offset = s->size;
   4.911 ++	  s->size += AVR32_FUNCTION_STUB_SIZE;
   4.912 ++
   4.913 ++	  return TRUE;
   4.914 ++	}
   4.915 ++    }
   4.916 ++  else if (h->type == STT_FUNC)
   4.917 ++    {
   4.918 ++      /* This will set the entry for this symbol in the GOT to 0, and
   4.919 ++	 the dynamic linker will take care of this. */
   4.920 ++      h->root.u.def.value = 0;
   4.921 ++      return TRUE;
   4.922 ++    }
   4.923 ++
   4.924 ++  /* If this is a weak symbol, and there is a real definition, the
   4.925 ++     processor independent code will have arranged for us to see the
   4.926 ++     real definition first, and we can just use the same value.  */
   4.927 ++  if (h->u.weakdef != NULL)
   4.928 ++    {
   4.929 ++      BFD_ASSERT(h->u.weakdef->root.type == bfd_link_hash_defined
   4.930 ++		 || h->u.weakdef->root.type == bfd_link_hash_defweak);
   4.931 ++      h->root.u.def.section = h->u.weakdef->root.u.def.section;
   4.932 ++      h->root.u.def.value = h->u.weakdef->root.u.def.value;
   4.933 ++      return TRUE;
   4.934 ++    }
   4.935 ++
   4.936 ++  /* This is a reference to a symbol defined by a dynamic object which
   4.937 ++     is not a function.  */
   4.938 ++
   4.939 ++  return TRUE;
   4.940 ++}
   4.941 ++
   4.942 ++
   4.943 ++/* Garbage-collection of unused sections */
   4.944 ++
   4.945 ++static asection *
   4.946 ++avr32_elf_gc_mark_hook(asection *sec,
   4.947 ++		       struct bfd_link_info *info ATTRIBUTE_UNUSED,
   4.948 ++		       Elf_Internal_Rela *rel,
   4.949 ++		       struct elf_link_hash_entry *h,
   4.950 ++		       Elf_Internal_Sym *sym)
   4.951 ++{
   4.952 ++  if (h)
   4.953 ++    {
   4.954 ++      switch (ELF32_R_TYPE(rel->r_info))
   4.955 ++	{
   4.956 ++	  /* TODO: VTINHERIT/VTENTRY */
   4.957 ++	default:
   4.958 ++	  switch (h->root.type)
   4.959 ++	    {
   4.960 ++	    case bfd_link_hash_defined:
   4.961 ++	    case bfd_link_hash_defweak:
   4.962 ++	      return h->root.u.def.section;
   4.963 ++
   4.964 ++	    case bfd_link_hash_common:
   4.965 ++	      return h->root.u.c.p->section;
   4.966 ++
   4.967 ++	    default:
   4.968 ++	      break;
   4.969 ++	    }
   4.970 ++	}
   4.971 ++    }
   4.972 ++  else
   4.973 ++    return bfd_section_from_elf_index(sec->owner, sym->st_shndx);
   4.974 ++
   4.975 ++  return NULL;
   4.976 ++}
   4.977 ++
   4.978 ++/* Update the GOT entry reference counts for the section being removed. */
   4.979 ++static bfd_boolean
   4.980 ++avr32_elf_gc_sweep_hook(bfd *abfd,
   4.981 ++			struct bfd_link_info *info ATTRIBUTE_UNUSED,
   4.982 ++			asection *sec,
   4.983 ++			const Elf_Internal_Rela *relocs)
   4.984 ++{
   4.985 ++  Elf_Internal_Shdr *symtab_hdr;
   4.986 ++  struct elf_avr32_link_hash_entry **sym_hashes;
   4.987 ++  struct got_entry **local_got_ents;
   4.988 ++  const Elf_Internal_Rela *rel, *relend;
   4.989 ++
   4.990 ++  if (!(sec->flags & SEC_ALLOC))
   4.991 ++    return TRUE;
   4.992 ++
   4.993 ++  symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
   4.994 ++  sym_hashes = (struct elf_avr32_link_hash_entry **)elf_sym_hashes(abfd);
   4.995 ++  local_got_ents = elf_local_got_ents(abfd);
   4.996 ++
   4.997 ++  relend = relocs + sec->reloc_count;
   4.998 ++  for (rel = relocs; rel < relend; rel++)
   4.999 ++    {
  4.1000 ++      unsigned long r_symndx;
  4.1001 ++      unsigned int r_type;
  4.1002 ++      struct elf_avr32_link_hash_entry *h = NULL;
  4.1003 ++
  4.1004 ++      r_symndx = ELF32_R_SYM(rel->r_info);
  4.1005 ++      if (r_symndx >= symtab_hdr->sh_info)
  4.1006 ++	{
  4.1007 ++	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
  4.1008 ++	  while (h->root.root.type == bfd_link_hash_indirect
  4.1009 ++		 || h->root.root.type == bfd_link_hash_warning)
  4.1010 ++	    h = (struct elf_avr32_link_hash_entry *)h->root.root.u.i.link;
  4.1011 ++	}
  4.1012 ++
  4.1013 ++      r_type = ELF32_R_TYPE(rel->r_info);
  4.1014 ++
  4.1015 ++      switch (r_type)
  4.1016 ++	{
  4.1017 ++	case R_AVR32_GOT32:
  4.1018 ++	case R_AVR32_GOT16:
  4.1019 ++	case R_AVR32_GOT8:
  4.1020 ++	case R_AVR32_GOT21S:
  4.1021 ++	case R_AVR32_GOT18SW:
  4.1022 ++	case R_AVR32_GOT16S:
  4.1023 ++	case R_AVR32_GOT7UW:
  4.1024 ++	case R_AVR32_LDA_GOT:
  4.1025 ++	case R_AVR32_GOTCALL:
  4.1026 ++	  if (h)
  4.1027 ++	    h->root.got.glist->refcount--;
  4.1028 ++	  else
  4.1029 ++	    local_got_ents[r_symndx]->refcount--;
  4.1030 ++	  break;
  4.1031 ++
  4.1032 ++	case R_AVR32_32:
  4.1033 ++	  if (info->shared || h)
  4.1034 ++	    {
  4.1035 ++	      if (h)
  4.1036 ++		h->possibly_dynamic_relocs--;
  4.1037 ++	      else
  4.1038 ++		avr32_elf_hash_table(info)->local_dynamic_relocs--;
  4.1039 ++	    }
  4.1040 ++
  4.1041 ++	default:
  4.1042 ++	  break;
  4.1043 ++	}
  4.1044 ++    }
  4.1045 ++
  4.1046 ++  return TRUE;
  4.1047 ++}
  4.1048 ++
  4.1049 ++/* Sizing and refcounting of dynamic sections */
  4.1050 ++
  4.1051 ++static void
  4.1052 ++insert_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got);
  4.1053 ++static void
  4.1054 ++unref_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got);
  4.1055 ++static void
  4.1056 ++ref_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got);
  4.1057 ++static bfd_boolean
  4.1058 ++assign_got_offsets(struct elf_avr32_link_hash_table *htab);
  4.1059 ++static bfd_boolean
  4.1060 ++allocate_dynrelocs(struct elf_link_hash_entry *h, void *_info);
  4.1061 ++static bfd_boolean
  4.1062 ++avr32_elf_size_dynamic_sections (bfd *output_bfd,
  4.1063 ++				 struct bfd_link_info *info);
  4.1064 ++
  4.1065 ++static void
  4.1066 ++insert_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got)
  4.1067 ++{
  4.1068 ++  /* Any entries with got_refcount > htab->nr_got_holes end up in the
  4.1069 ++   * last pigeonhole without any sorting. We expect the number of such
  4.1070 ++   * entries to be small, so it is very unlikely to affect
  4.1071 ++   * performance.  */
  4.1072 ++  int entry = got->refcount;
  4.1073 ++
  4.1074 ++  if (entry > htab->nr_got_holes)
  4.1075 ++    entry = htab->nr_got_holes;
  4.1076 ++
  4.1077 ++  got->pprev = &htab->got_hole[entry];
  4.1078 ++  got->next = htab->got_hole[entry];
  4.1079 ++
  4.1080 ++  if (got->next)
  4.1081 ++    got->next->pprev = &got->next;
  4.1082 ++
  4.1083 ++  htab->got_hole[entry] = got;
  4.1084 ++}
  4.1085 ++
  4.1086 ++/* Decrement the refcount of a GOT entry and update its position in
  4.1087 ++   the pigeonhole array.  */
  4.1088 ++static void
  4.1089 ++unref_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got)
  4.1090 ++{
  4.1091 ++  BFD_ASSERT(got->refcount > 0);
  4.1092 ++
  4.1093 ++  if (got->next)
  4.1094 ++    got->next->pprev = got->pprev;
  4.1095 ++
  4.1096 ++  *(got->pprev) = got->next;
  4.1097 ++  got->refcount--;
  4.1098 ++  insert_got_entry(htab, got);
  4.1099 ++}
  4.1100 ++
  4.1101 ++static void
  4.1102 ++ref_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got)
  4.1103 ++{
  4.1104 ++  if (got->next)
  4.1105 ++    got->next->pprev = got->pprev;
  4.1106 ++
  4.1107 ++  *(got->pprev) = got->next;
  4.1108 ++  got->refcount++;
  4.1109 ++  insert_got_entry(htab, got);
  4.1110 ++
  4.1111 ++  BFD_ASSERT(got->refcount > 0);
  4.1112 ++}
  4.1113 ++
  4.1114 ++/* Assign offsets to all GOT entries we intend to keep.  The entries
  4.1115 ++   that are referenced most often are placed at low offsets so that we
  4.1116 ++   can use compact instructions as much as possible.
  4.1117 ++
  4.1118 ++   Returns TRUE if any offsets or the total size of the GOT changed.  */
  4.1119 ++
  4.1120 ++static bfd_boolean
  4.1121 ++assign_got_offsets(struct elf_avr32_link_hash_table *htab)
  4.1122 ++{
  4.1123 ++  struct got_entry *got;
  4.1124 ++  bfd_size_type got_size = 0;
  4.1125 ++  bfd_boolean changed = FALSE;
  4.1126 ++  bfd_signed_vma offset;
  4.1127 ++  int i;
  4.1128 ++
  4.1129 ++  /* The GOT header provides the address of the DYNAMIC segment, so
  4.1130 ++     we need that even if the GOT is otherwise empty.  */
  4.1131 ++  if (htab->root.dynamic_sections_created)
  4.1132 ++    got_size = AVR32_GOT_HEADER_SIZE;
  4.1133 ++
  4.1134 ++  for (i = htab->nr_got_holes; i > 0; i--)
  4.1135 ++    {
  4.1136 ++      got = htab->got_hole[i];
  4.1137 ++      while (got)
  4.1138 ++	{
  4.1139 ++	  if (got->refcount > 0)
  4.1140 ++	    {
  4.1141 ++	      offset = got_size;
  4.1142 ++	      if (got->offset != offset)
  4.1143 ++		{
  4.1144 ++		  RDBG("GOT offset changed: %ld -> %ld\n",
  4.1145 ++		       got->offset, offset);
  4.1146 ++		  changed = TRUE;
  4.1147 ++		}
  4.1148 ++	      got->offset = offset;
  4.1149 ++	      got_size += 4;
  4.1150 ++	    }
  4.1151 ++	  got = got->next;
  4.1152 ++	}
  4.1153 ++    }
  4.1154 ++
  4.1155 ++  if (htab->sgot->size != got_size)
  4.1156 ++    {
  4.1157 ++      RDBG("GOT size changed: %lu -> %lu\n", htab->sgot->size,
  4.1158 ++	   got_size);
  4.1159 ++      changed = TRUE;
  4.1160 ++    }
  4.1161 ++  htab->sgot->size = got_size;
  4.1162 ++
  4.1163 ++  RDBG("assign_got_offsets: total size %lu (%s)\n",
  4.1164 ++       got_size, changed ? "changed" : "no change");
  4.1165 ++
  4.1166 ++  return changed;
  4.1167 ++}
  4.1168 ++
  4.1169 ++static bfd_boolean
  4.1170 ++allocate_dynrelocs(struct elf_link_hash_entry *h, void *_info)
  4.1171 ++{
  4.1172 ++  struct bfd_link_info *info = _info;
  4.1173 ++  struct elf_avr32_link_hash_table *htab;
  4.1174 ++  struct elf_avr32_link_hash_entry *havr;
  4.1175 ++  struct got_entry *got;
  4.1176 ++
  4.1177 ++  pr_debug("  (4b) allocate_dynrelocs: %s\n", h->root.root.string);
  4.1178 ++
  4.1179 ++  if (h->root.type == bfd_link_hash_indirect)
  4.1180 ++    return TRUE;
  4.1181 ++
  4.1182 ++  if (h->root.type == bfd_link_hash_warning)
  4.1183 ++    /* When warning symbols are created, they **replace** the "real"
  4.1184 ++       entry in the hash table, thus we never get to see the real
  4.1185 ++       symbol in a hash traversal.  So look at it now.  */
  4.1186 ++    h = (struct elf_link_hash_entry *) h->root.u.i.link;
  4.1187 ++
  4.1188 ++  htab = avr32_elf_hash_table(info);
  4.1189 ++  havr = (struct elf_avr32_link_hash_entry *)h;
  4.1190 ++
  4.1191 ++  got = h->got.glist;
  4.1192 ++
  4.1193 ++  /* If got is NULL, the symbol is never referenced through the GOT */
  4.1194 ++  if (got && got->refcount > 0)
  4.1195 ++    {
  4.1196 ++      insert_got_entry(htab, got);
  4.1197 ++
  4.1198 ++      /* Shared libraries need relocs for all GOT entries unless the
  4.1199 ++	 symbol is forced local or -Bsymbolic is used.  Others need
  4.1200 ++	 relocs for everything that is not guaranteed to be defined in
  4.1201 ++	 a regular object.  */
  4.1202 ++      if ((info->shared
  4.1203 ++	   && !info->symbolic
  4.1204 ++	   && h->dynindx != -1)
  4.1205 ++	  || (htab->root.dynamic_sections_created
  4.1206 ++	      && h->def_dynamic
  4.1207 ++	      && !h->def_regular))
  4.1208 ++	htab->srelgot->size += sizeof(Elf32_External_Rela);
  4.1209 ++    }
  4.1210 ++
  4.1211 ++  if (havr->possibly_dynamic_relocs
  4.1212 ++      && (info->shared
  4.1213 ++	  || (elf_hash_table(info)->dynamic_sections_created
  4.1214 ++	      && h->def_dynamic
  4.1215 ++	      && !h->def_regular)))
  4.1216 ++    {
  4.1217 ++      pr_debug("Allocating %d dynamic reloc against symbol %s...\n",
  4.1218 ++	       havr->possibly_dynamic_relocs, h->root.root.string);
  4.1219 ++      htab->srelgot->size += (havr->possibly_dynamic_relocs
  4.1220 ++			      * sizeof(Elf32_External_Rela));
  4.1221 ++    }
  4.1222 ++
  4.1223 ++  return TRUE;
  4.1224 ++}
  4.1225 ++
  4.1226 ++/* (4) Calculate the sizes of the linker-generated sections and
  4.1227 ++   allocate memory for them.  */
  4.1228 ++
  4.1229 ++static bfd_boolean
  4.1230 ++avr32_elf_size_dynamic_sections (bfd *output_bfd,
  4.1231 ++				 struct bfd_link_info *info)
  4.1232 ++{
  4.1233 ++  struct elf_avr32_link_hash_table *htab;
  4.1234 ++  bfd *dynobj;
  4.1235 ++  asection *s;
  4.1236 ++  bfd *ibfd;
  4.1237 ++  bfd_boolean relocs;
  4.1238 ++
  4.1239 ++  pr_debug("(4) size dynamic sections\n");
  4.1240 ++
  4.1241 ++  htab = avr32_elf_hash_table(info);
  4.1242 ++  dynobj = htab->root.dynobj;
  4.1243 ++  BFD_ASSERT(dynobj != NULL);
  4.1244 ++
  4.1245 ++  if (htab->root.dynamic_sections_created)
  4.1246 ++    {
  4.1247 ++      /* Initialize the contents of the .interp section to the name of
  4.1248 ++	 the dynamic loader */
  4.1249 ++      if (info->executable)
  4.1250 ++	{
  4.1251 ++	  s = bfd_get_section_by_name(dynobj, ".interp");
  4.1252 ++	  BFD_ASSERT(s != NULL);
  4.1253 ++	  s->size = sizeof(ELF_DYNAMIC_INTERPRETER);
  4.1254 ++	  s->contents = (unsigned char *)ELF_DYNAMIC_INTERPRETER;
  4.1255 ++	}
  4.1256 ++    }
  4.1257 ++
  4.1258 ++  if (htab->nr_got_holes > 0)
  4.1259 ++    {
  4.1260 ++      /* Allocate holes for the pigeonhole sort algorithm */
  4.1261 ++      pr_debug("Highest GOT refcount: %d\n", htab->nr_got_holes);
  4.1262 ++
  4.1263 ++      /* Limit the memory usage by clipping the number of pigeonholes
  4.1264 ++       * at a predefined maximum. All entries with a higher refcount
  4.1265 ++       * will end up in the last pigeonhole.  */
  4.1266 ++    if (htab->nr_got_holes >= MAX_NR_GOT_HOLES)
  4.1267 ++    {
  4.1268 ++        htab->nr_got_holes = MAX_NR_GOT_HOLES - 1;
  4.1269 ++
  4.1270 ++        pr_debug("Limiting maximum number of GOT pigeonholes to %u\n",
  4.1271 ++                    htab->nr_got_holes);
  4.1272 ++    }
  4.1273 ++      htab->got_hole = bfd_zalloc(output_bfd,
  4.1274 ++				  sizeof(struct got_entry *)
  4.1275 ++				  * (htab->nr_got_holes + 1));
  4.1276 ++      if (!htab->got_hole)
  4.1277 ++	return FALSE;
  4.1278 ++
  4.1279 ++      /* Set up .got offsets for local syms.  */
  4.1280 ++      for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next)
  4.1281 ++	{
  4.1282 ++	  struct got_entry **local_got;
  4.1283 ++	  struct got_entry **end_local_got;
  4.1284 ++	  Elf_Internal_Shdr *symtab_hdr;
  4.1285 ++	  bfd_size_type locsymcount;
  4.1286 ++
  4.1287 ++	  pr_debug("  (4a) processing file %s...\n", ibfd->filename);
  4.1288 ++
  4.1289 ++	  BFD_ASSERT(bfd_get_flavour(ibfd) == bfd_target_elf_flavour);
  4.1290 ++
  4.1291 ++	  local_got = elf_local_got_ents(ibfd);
  4.1292 ++	  if (!local_got)
  4.1293 ++	    continue;
  4.1294 ++
  4.1295 ++	  symtab_hdr = &elf_tdata(ibfd)->symtab_hdr;
  4.1296 ++	  locsymcount = symtab_hdr->sh_info;
  4.1297 ++	  end_local_got = local_got + locsymcount;
  4.1298 ++
  4.1299 ++	  for (; local_got < end_local_got; ++local_got)
  4.1300 ++	    insert_got_entry(htab, *local_got);
  4.1301 ++	}
  4.1302 ++    }
  4.1303 ++
  4.1304 ++  /* Allocate global sym .got entries and space for global sym
  4.1305 ++     dynamic relocs */
  4.1306 ++  elf_link_hash_traverse(&htab->root, allocate_dynrelocs, info);
  4.1307 ++
  4.1308 ++  /* Now that we have sorted the GOT entries, we are ready to
  4.1309 ++     assign offsets and determine the initial size of the GOT. */
  4.1310 ++  if (htab->sgot)
  4.1311 ++    assign_got_offsets(htab);
  4.1312 ++
  4.1313 ++  /* Allocate space for local sym dynamic relocs */
  4.1314 ++  BFD_ASSERT(htab->local_dynamic_relocs == 0 || info->shared);
  4.1315 ++  if (htab->local_dynamic_relocs)
  4.1316 ++    htab->srelgot->size += (htab->local_dynamic_relocs
  4.1317 ++			    * sizeof(Elf32_External_Rela));
  4.1318 ++
  4.1319 ++  /* We now have determined the sizes of the various dynamic
  4.1320 ++     sections. Allocate memory for them. */
  4.1321 ++  relocs = FALSE;
  4.1322 ++  for (s = dynobj->sections; s; s = s->next)
  4.1323 ++    {
  4.1324 ++      if ((s->flags & SEC_LINKER_CREATED) == 0)
  4.1325 ++	continue;
  4.1326 ++
  4.1327 ++      if (s == htab->sgot
  4.1328 ++	  || s == htab->sstub)
  4.1329 ++	{
  4.1330 ++	  /* Strip this section if we don't need it */
  4.1331 ++	}
  4.1332 ++      else if (strncmp (bfd_get_section_name(dynobj, s), ".rela", 5) == 0)
  4.1333 ++	{
  4.1334 ++	  if (s->size != 0)
  4.1335 ++	    relocs = TRUE;
  4.1336 ++
  4.1337 ++	  s->reloc_count = 0;
  4.1338 ++	}
  4.1339 ++      else
  4.1340 ++	{
  4.1341 ++	  /* It's not one of our sections */
  4.1342 ++	  continue;
  4.1343 ++	}
  4.1344 ++
  4.1345 ++      if (s->size == 0)
  4.1346 ++	{
  4.1347 ++	  /* Strip unneeded sections */
  4.1348 ++	  pr_debug("Stripping section %s from output...\n", s->name);
  4.1349 ++	  /* deleted function in 2.17
  4.1350 ++      _bfd_strip_section_from_output(info, s);
  4.1351 ++      */
  4.1352 ++	  continue;
  4.1353 ++	}
  4.1354 ++
  4.1355 ++      s->contents = bfd_zalloc(dynobj, s->size);
  4.1356 ++      if (s->contents == NULL)
  4.1357 ++	return FALSE;
  4.1358 ++    }
  4.1359 ++
  4.1360 ++  if (htab->root.dynamic_sections_created)
  4.1361 ++    {
  4.1362 ++      /* Add some entries to the .dynamic section.  We fill in the
  4.1363 ++	 values later, in sh_elf_finish_dynamic_sections, but we
  4.1364 ++	 must add the entries now so that we get the correct size for
  4.1365 ++	 the .dynamic section.  The DT_DEBUG entry is filled in by the
  4.1366 ++	 dynamic linker and used by the debugger.  */
  4.1367 ++#define add_dynamic_entry(TAG, VAL) _bfd_elf_add_dynamic_entry(info, TAG, VAL)
  4.1368 ++
  4.1369 ++      if (!add_dynamic_entry(DT_PLTGOT, 0))
  4.1370 ++	return FALSE;
  4.1371 ++      if (!add_dynamic_entry(DT_AVR32_GOTSZ, 0))
  4.1372 ++	return FALSE;
  4.1373 ++
  4.1374 ++      if (info->executable)
  4.1375 ++	{
  4.1376 ++	  if (!add_dynamic_entry(DT_DEBUG, 0))
  4.1377 ++	    return FALSE;
  4.1378 ++	}
  4.1379 ++      if (relocs)
  4.1380 ++	{
  4.1381 ++	  if (!add_dynamic_entry(DT_RELA, 0)
  4.1382 ++	      || !add_dynamic_entry(DT_RELASZ, 0)
  4.1383 ++	      || !add_dynamic_entry(DT_RELAENT,
  4.1384 ++				    sizeof(Elf32_External_Rela)))
  4.1385 ++	    return FALSE;
  4.1386 ++	}
  4.1387 ++    }
  4.1388 ++#undef add_dynamic_entry
  4.1389 ++
  4.1390 ++  return TRUE;
  4.1391 ++}
  4.1392 ++
  4.1393 ++
  4.1394 ++/* Access to internal relocations, section contents and symbols.
  4.1395 ++   (stolen from the xtensa port)  */
  4.1396 ++
  4.1397 ++static Elf_Internal_Rela *
  4.1398 ++retrieve_internal_relocs (bfd *abfd, asection *sec, bfd_boolean keep_memory);
  4.1399 ++static void
  4.1400 ++pin_internal_relocs (asection *sec, Elf_Internal_Rela *internal_relocs);
  4.1401 ++static void
  4.1402 ++release_internal_relocs (asection *sec, Elf_Internal_Rela *internal_relocs);
  4.1403 ++static bfd_byte *
  4.1404 ++retrieve_contents (bfd *abfd, asection *sec, bfd_boolean keep_memory);
  4.1405 ++/*
  4.1406 ++static void
  4.1407 ++pin_contents (asection *sec, bfd_byte *contents);
  4.1408 ++*/
  4.1409 ++static void
  4.1410 ++release_contents (asection *sec, bfd_byte *contents);
  4.1411 ++static Elf_Internal_Sym *
  4.1412 ++retrieve_local_syms (bfd *input_bfd, bfd_boolean keep_memory);
  4.1413 ++/*
  4.1414 ++static void
  4.1415 ++pin_local_syms (bfd *input_bfd, Elf_Internal_Sym *isymbuf);
  4.1416 ++*/
  4.1417 ++static void
  4.1418 ++release_local_syms (bfd *input_bfd, Elf_Internal_Sym *isymbuf);
  4.1419 ++
  4.1420 ++/* During relaxation, we need to modify relocations, section contents,
  4.1421 ++   and symbol definitions, and we need to keep the original values from
  4.1422 ++   being reloaded from the input files, i.e., we need to "pin" the
  4.1423 ++   modified values in memory.  We also want to continue to observe the
  4.1424 ++   setting of the "keep-memory" flag.  The following functions wrap the
  4.1425 ++   standard BFD functions to take care of this for us.  */
  4.1426 ++
  4.1427 ++static Elf_Internal_Rela *
  4.1428 ++retrieve_internal_relocs (bfd *abfd, asection *sec, bfd_boolean keep_memory)
  4.1429 ++{
  4.1430 ++  /* _bfd_elf_link_read_relocs knows about caching, so no need for us
  4.1431 ++     to be clever here.  */
  4.1432 ++  return _bfd_elf_link_read_relocs(abfd, sec, NULL, NULL, keep_memory);
  4.1433 ++}
  4.1434 ++
  4.1435 ++static void
  4.1436 ++pin_internal_relocs (asection *sec, Elf_Internal_Rela *internal_relocs)
  4.1437 ++{
  4.1438 ++  elf_section_data (sec)->relocs = internal_relocs;
  4.1439 ++}
  4.1440 ++
  4.1441 ++static void
  4.1442 ++release_internal_relocs (asection *sec, Elf_Internal_Rela *internal_relocs)
  4.1443 ++{
  4.1444 ++  if (internal_relocs
  4.1445 ++      && elf_section_data (sec)->relocs != internal_relocs)
  4.1446 ++    free (internal_relocs);
  4.1447 ++}
  4.1448 ++
  4.1449 ++static bfd_byte *
  4.1450 ++retrieve_contents (bfd *abfd, asection *sec, bfd_boolean keep_memory)
  4.1451 ++{
  4.1452 ++  bfd_byte *contents;
  4.1453 ++  bfd_size_type sec_size;
  4.1454 ++
  4.1455 ++  sec_size = bfd_get_section_limit (abfd, sec);
  4.1456 ++  contents = elf_section_data (sec)->this_hdr.contents;
  4.1457 ++
  4.1458 ++  if (contents == NULL && sec_size != 0)
  4.1459 ++    {
  4.1460 ++      if (!bfd_malloc_and_get_section (abfd, sec, &contents))
  4.1461 ++	{
  4.1462 ++	  if (contents)
  4.1463 ++	    free (contents);
  4.1464 ++	  return NULL;
  4.1465 ++	}
  4.1466 ++      if (keep_memory)
  4.1467 ++	elf_section_data (sec)->this_hdr.contents = contents;
  4.1468 ++    }
  4.1469 ++  return contents;
  4.1470 ++}
  4.1471 ++
  4.1472 ++/*
  4.1473 ++static void
  4.1474 ++pin_contents (asection *sec, bfd_byte *contents)
  4.1475 ++{
  4.1476 ++  elf_section_data (sec)->this_hdr.contents = contents;
  4.1477 ++}
  4.1478 ++*/
  4.1479 ++static void
  4.1480 ++release_contents (asection *sec, bfd_byte *contents)
  4.1481 ++{
  4.1482 ++  if (contents && elf_section_data (sec)->this_hdr.contents != contents)
  4.1483 ++    free (contents);
  4.1484 ++}
  4.1485 ++
  4.1486 ++static Elf_Internal_Sym *
  4.1487 ++retrieve_local_syms (bfd *input_bfd, bfd_boolean keep_memory)
  4.1488 ++{
  4.1489 ++  Elf_Internal_Shdr *symtab_hdr;
  4.1490 ++  Elf_Internal_Sym *isymbuf;
  4.1491 ++  size_t locsymcount;
  4.1492 ++
  4.1493 ++  symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
  4.1494 ++  locsymcount = symtab_hdr->sh_info;
  4.1495 ++
  4.1496 ++  isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
  4.1497 ++  if (isymbuf == NULL && locsymcount != 0)
  4.1498 ++    {
  4.1499 ++      isymbuf = bfd_elf_get_elf_syms (input_bfd, symtab_hdr, locsymcount, 0,
  4.1500 ++				      NULL, NULL, NULL);
  4.1501 ++      if (isymbuf && keep_memory)
  4.1502 ++	symtab_hdr->contents = (unsigned char *) isymbuf;
  4.1503 ++    }
  4.1504 ++
  4.1505 ++  return isymbuf;
  4.1506 ++}
  4.1507 ++
  4.1508 ++/*
  4.1509 ++static void
  4.1510 ++pin_local_syms (bfd *input_bfd, Elf_Internal_Sym *isymbuf)
  4.1511 ++{
  4.1512 ++  elf_tdata (input_bfd)->symtab_hdr.contents = (unsigned char *)isymbuf;
  4.1513 ++}
  4.1514 ++
  4.1515 ++*/
  4.1516 ++static void
  4.1517 ++release_local_syms (bfd *input_bfd, Elf_Internal_Sym *isymbuf)
  4.1518 ++{
  4.1519 ++  if (isymbuf && (elf_tdata (input_bfd)->symtab_hdr.contents
  4.1520 ++		  != (unsigned char *)isymbuf))
  4.1521 ++    free (isymbuf);
  4.1522 ++}
  4.1523 ++
  4.1524 ++/* Data structures used during relaxation. */
  4.1525 ++
  4.1526 ++enum relax_state_id {
  4.1527 ++  RS_ERROR = -1,
  4.1528 ++  RS_NONE = 0,
  4.1529 ++  RS_ALIGN,
  4.1530 ++  RS_CPENT,
  4.1531 ++  RS_PIC_CALL,
  4.1532 ++  RS_PIC_MCALL,
  4.1533 ++  RS_PIC_RCALL2,
  4.1534 ++  RS_PIC_RCALL1,
  4.1535 ++  RS_PIC_LDA,
  4.1536 ++  RS_PIC_LDW4,
  4.1537 ++  RS_PIC_LDW3,
  4.1538 ++  RS_PIC_SUB5,
  4.1539 ++  RS_NOPIC_MCALL,
  4.1540 ++  RS_NOPIC_RCALL2,
  4.1541 ++  RS_NOPIC_RCALL1,
  4.1542 ++  RS_NOPIC_LDW4,
  4.1543 ++  RS_NOPIC_LDDPC,
  4.1544 ++  RS_NOPIC_SUB5,
  4.1545 ++  RS_NOPIC_MOV2,
  4.1546 ++  RS_NOPIC_MOV1,
  4.1547 ++  RS_RCALL2,
  4.1548 ++  RS_RCALL1,
  4.1549 ++  RS_BRC2,
  4.1550 ++  RS_BRC1,
  4.1551 ++  RS_BRAL,
  4.1552 ++  RS_RJMP,
  4.1553 ++  RS_MAX,
  4.1554 ++};
  4.1555 ++
  4.1556 ++enum reference_type {
  4.1557 ++  REF_ABSOLUTE,
  4.1558 ++  REF_PCREL,
  4.1559 ++  REF_CPOOL,
  4.1560 ++  REF_GOT,
  4.1561 ++};
  4.1562 ++
  4.1563 ++struct relax_state
  4.1564 ++{
  4.1565 ++  const char *name;
  4.1566 ++  enum relax_state_id id;
  4.1567 ++  enum relax_state_id direct;
  4.1568 ++  enum relax_state_id next;
  4.1569 ++  enum relax_state_id prev;
  4.1570 ++
  4.1571 ++  enum reference_type reftype;
  4.1572 ++
  4.1573 ++  unsigned int r_type;
  4.1574 ++
  4.1575 ++  bfd_vma opcode;
  4.1576 ++  bfd_vma opcode_mask;
  4.1577 ++
  4.1578 ++  bfd_signed_vma range_min;
  4.1579 ++  bfd_signed_vma range_max;
  4.1580 ++
  4.1581 ++  bfd_size_type size;
  4.1582 ++};
  4.1583 ++
  4.1584 ++/*
  4.1585 ++ * This is for relocs that
  4.1586 ++ *   a) has an addend or is of type R_AVR32_DIFF32, and
  4.1587 ++ *   b) references a different section than it's in, and
  4.1588 ++ *   c) references a section that is relaxable
  4.1589 ++ *
  4.1590 ++ * as well as relocs that references the constant pool, in which case
  4.1591 ++ * the add_frag member points to the frag containing the constant pool
  4.1592 ++ * entry.
  4.1593 ++ *
  4.1594 ++ * Such relocs must be fixed up whenever we delete any code. Sections
  4.1595 ++ * that don't have any relocs with all of the above properties don't
  4.1596 ++ * have any additional reloc data, but sections that do will have
  4.1597 ++ * additional data for all its relocs.
  4.1598 ++ */
  4.1599 ++struct avr32_reloc_data
  4.1600 ++{
  4.1601 ++  struct fragment *add_frag;
  4.1602 ++  struct fragment *sub_frag;
  4.1603 ++};
  4.1604 ++
  4.1605 ++/*
  4.1606 ++ * A 'fragment' is a relaxable entity, that is, code may be added or
  4.1607 ++ * deleted at the end of a fragment. When this happens, all subsequent
  4.1608 ++ * fragments in the list will have their offsets updated.
  4.1609 ++ */
  4.1610 ++struct fragment
  4.1611 ++{
  4.1612 ++  enum relax_state_id state;
  4.1613 ++  enum relax_state_id initial_state;
  4.1614 ++
  4.1615 ++  Elf_Internal_Rela *rela;
  4.1616 ++  bfd_size_type size;
  4.1617 ++  bfd_vma offset;
  4.1618 ++  int size_adjust;
  4.1619 ++  int offset_adjust;
  4.1620 ++  bfd_boolean has_grown;
  4.1621 ++
  4.1622 ++  /* Only used by constant pool entries.  When this drops to zero, the
  4.1623 ++     frag is discarded (i.e. size_adjust is set to -4.)  */
  4.1624 ++  int refcount;
  4.1625 ++};
  4.1626 ++
  4.1627 ++struct avr32_relax_data
  4.1628 ++{
  4.1629 ++  unsigned int frag_count;
  4.1630 ++  struct fragment *frag;
  4.1631 ++  struct avr32_reloc_data *reloc_data;
  4.1632 ++
  4.1633 ++  /* TRUE if this section has one or more relaxable relocations */
  4.1634 ++  bfd_boolean is_relaxable;
  4.1635 ++  unsigned int iteration;
  4.1636 ++};
  4.1637 ++
  4.1638 ++struct avr32_section_data
  4.1639 ++{
  4.1640 ++  struct bfd_elf_section_data elf;
  4.1641 ++  struct avr32_relax_data relax_data;
  4.1642 ++};
  4.1643 ++
  4.1644 ++/* Relax state definitions */
  4.1645 ++
  4.1646 ++#define PIC_MOV2_OPCODE		0xe0600000
  4.1647 ++#define PIC_MOV2_MASK		0xe1e00000
  4.1648 ++#define PIC_MOV2_RANGE_MIN	(-1048576 * 4)
  4.1649 ++#define PIC_MOV2_RANGE_MAX	(1048575 * 4)
  4.1650 ++#define PIC_MCALL_OPCODE	0xf0160000
  4.1651 ++#define PIC_MCALL_MASK		0xffff0000
  4.1652 ++#define PIC_MCALL_RANGE_MIN	(-131072)
  4.1653 ++#define PIC_MCALL_RANGE_MAX	(131068)
  4.1654 ++#define RCALL2_OPCODE		0xe0a00000
  4.1655 ++#define RCALL2_MASK		0xe1ef0000
  4.1656 ++#define RCALL2_RANGE_MIN	(-2097152)
  4.1657 ++#define RCALL2_RANGE_MAX	(2097150)
  4.1658 ++#define RCALL1_OPCODE		0xc00c0000
  4.1659 ++#define RCALL1_MASK		0xf00c0000
  4.1660 ++#define RCALL1_RANGE_MIN	(-1024)
  4.1661 ++#define RCALL1_RANGE_MAX	(1022)
  4.1662 ++#define PIC_LDW4_OPCODE		0xecf00000
  4.1663 ++#define PIC_LDW4_MASK		0xfff00000
  4.1664 ++#define PIC_LDW4_RANGE_MIN	(-32768)
  4.1665 ++#define PIC_LDW4_RANGE_MAX	(32767)
  4.1666 ++#define PIC_LDW3_OPCODE		0x6c000000
  4.1667 ++#define PIC_LDW3_MASK		0xfe000000
  4.1668 ++#define PIC_LDW3_RANGE_MIN	(0)
  4.1669 ++#define PIC_LDW3_RANGE_MAX	(124)
  4.1670 ++#define SUB5_PC_OPCODE		0xfec00000
  4.1671 ++#define SUB5_PC_MASK		0xfff00000
  4.1672 ++#define SUB5_PC_RANGE_MIN	(-32768)
  4.1673 ++#define SUB5_PC_RANGE_MAX	(32767)
  4.1674 ++#define NOPIC_MCALL_OPCODE	0xf01f0000
  4.1675 ++#define NOPIC_MCALL_MASK	0xffff0000
  4.1676 ++#define NOPIC_MCALL_RANGE_MIN	PIC_MCALL_RANGE_MIN
  4.1677 ++#define NOPIC_MCALL_RANGE_MAX	PIC_MCALL_RANGE_MAX
  4.1678 ++#define NOPIC_LDW4_OPCODE	0xfef00000
  4.1679 ++#define NOPIC_LDW4_MASK		0xfff00000
  4.1680 ++#define NOPIC_LDW4_RANGE_MIN	PIC_LDW4_RANGE_MIN
  4.1681 ++#define NOPIC_LDW4_RANGE_MAX	PIC_LDW4_RANGE_MAX
  4.1682 ++#define LDDPC_OPCODE		0x48000000
  4.1683 ++#define LDDPC_MASK		0xf8000000
  4.1684 ++#define LDDPC_RANGE_MIN		0
  4.1685 ++#define LDDPC_RANGE_MAX		508
  4.1686 ++
  4.1687 ++#define NOPIC_MOV2_OPCODE  0xe0600000
  4.1688 ++#define NOPIC_MOV2_MASK        0xe1e00000
  4.1689 ++#define NOPIC_MOV2_RANGE_MIN   (-1048576)
  4.1690 ++#define NOPIC_MOV2_RANGE_MAX   (1048575)
  4.1691 ++#define NOPIC_MOV1_OPCODE  0x30000000
  4.1692 ++#define NOPIC_MOV1_MASK        0xf0000000
  4.1693 ++#define NOPIC_MOV1_RANGE_MIN   (-128)
  4.1694 ++#define NOPIC_MOV1_RANGE_MAX   (127)
  4.1695 ++
  4.1696 ++/* Only brc2 variants with cond[3] == 0 is considered, since the
  4.1697 ++   others are not relaxable.  bral is a special case and is handled
  4.1698 ++   separately.  */
  4.1699 ++#define BRC2_OPCODE		0xe0800000
  4.1700 ++#define BRC2_MASK		0xe1e80000
  4.1701 ++#define BRC2_RANGE_MIN		(-2097152)
  4.1702 ++#define BRC2_RANGE_MAX		(2097150)
  4.1703 ++#define BRC1_OPCODE		0xc0000000
  4.1704 ++#define BRC1_MASK		0xf0080000
  4.1705 ++#define BRC1_RANGE_MIN		(-256)
  4.1706 ++#define BRC1_RANGE_MAX		(254)
  4.1707 ++#define BRAL_OPCODE		0xe08f0000
  4.1708 ++#define BRAL_MASK		0xe1ef0000
  4.1709 ++#define BRAL_RANGE_MIN		BRC2_RANGE_MIN
  4.1710 ++#define BRAL_RANGE_MAX		BRC2_RANGE_MAX
  4.1711 ++#define RJMP_OPCODE		0xc0080000
  4.1712 ++#define RJMP_MASK		0xf00c0000
  4.1713 ++#define RJMP_RANGE_MIN		(-1024)
  4.1714 ++#define RJMP_RANGE_MAX		(1022)
  4.1715 ++
  4.1716 ++/* Define a relax state using the GOT  */
  4.1717 ++#define RG(id, dir, next, prev, r_type, opc, size)			\
  4.1718 ++  { "RS_"#id, RS_##id, RS_##dir, RS_##next, RS_##prev, REF_GOT,		\
  4.1719 ++      R_AVR32_##r_type,	opc##_OPCODE, opc##_MASK,			\
  4.1720 ++      opc##_RANGE_MIN, opc##_RANGE_MAX, size }
  4.1721 ++/* Define a relax state using the Constant Pool  */
  4.1722 ++#define RC(id, dir, next, prev, r_type, opc, size)			\
  4.1723 ++  { "RS_"#id, RS_##id, RS_##dir, RS_##next, RS_##prev, REF_CPOOL,	\
  4.1724 ++      R_AVR32_##r_type,	opc##_OPCODE, opc##_MASK,			\
  4.1725 ++      opc##_RANGE_MIN, opc##_RANGE_MAX, size }
  4.1726 ++
  4.1727 ++/* Define a relax state using pc-relative direct reference  */
  4.1728 ++#define RP(id, dir, next, prev, r_type, opc, size)			\
  4.1729 ++  { "RS_"#id, RS_##id, RS_##dir, RS_##next, RS_##prev, REF_PCREL,	\
  4.1730 ++      R_AVR32_##r_type,	opc##_OPCODE, opc##_MASK,			\
  4.1731 ++      opc##_RANGE_MIN, opc##_RANGE_MAX, size }
  4.1732 ++
  4.1733 ++/* Define a relax state using non-pc-relative direct reference */
  4.1734 ++#define RD(id, dir, next, prev, r_type, opc, size)         \
  4.1735 ++  { "RS_"#id, RS_##id, RS_##dir, RS_##next, RS_##prev, REF_ABSOLUTE,   \
  4.1736 ++      R_AVR32_##r_type,    opc##_OPCODE, opc##_MASK,           \
  4.1737 ++      opc##_RANGE_MIN, opc##_RANGE_MAX, size }
  4.1738 ++
  4.1739 ++/* Define a relax state that will be handled specially  */
  4.1740 ++#define RS(id, r_type, size)						\
  4.1741 ++  { "RS_"#id, RS_##id, RS_NONE, RS_NONE, RS_NONE, REF_ABSOLUTE,		\
  4.1742 ++      R_AVR32_##r_type, 0, 0, 0, 0, size }
  4.1743 ++
  4.1744 ++const struct relax_state relax_state[RS_MAX] = {
  4.1745 ++  RS(NONE, NONE, 0),
  4.1746 ++  RS(ALIGN, ALIGN, 0),
  4.1747 ++  RS(CPENT, 32_CPENT, 4),
  4.1748 ++
  4.1749 ++  RG(PIC_CALL, PIC_RCALL1, PIC_MCALL, NONE, GOTCALL, PIC_MOV2, 10),
  4.1750 ++  RG(PIC_MCALL, PIC_RCALL1, NONE, PIC_CALL, GOT18SW, PIC_MCALL, 4),
  4.1751 ++  RP(PIC_RCALL2, NONE, PIC_RCALL1, PIC_MCALL, 22H_PCREL, RCALL2, 4),
  4.1752 ++  RP(PIC_RCALL1, NONE, NONE, PIC_RCALL2, 11H_PCREL, RCALL1, 2),
  4.1753 ++
  4.1754 ++  RG(PIC_LDA, PIC_SUB5, PIC_LDW4, NONE, LDA_GOT, PIC_MOV2, 8),
  4.1755 ++  RG(PIC_LDW4, PIC_SUB5, PIC_LDW3, PIC_LDA, GOT16S, PIC_LDW4, 4),
  4.1756 ++  RG(PIC_LDW3, PIC_SUB5, NONE, PIC_LDW4, GOT7UW, PIC_LDW3, 2),
  4.1757 ++  RP(PIC_SUB5, NONE, NONE, PIC_LDW3, 16N_PCREL, SUB5_PC, 4),
  4.1758 ++
  4.1759 ++  RC(NOPIC_MCALL, NOPIC_RCALL1, NONE, NONE, CPCALL, NOPIC_MCALL, 4),
  4.1760 ++  RP(NOPIC_RCALL2, NONE, NOPIC_RCALL1, NOPIC_MCALL, 22H_PCREL, RCALL2, 4),
  4.1761 ++  RP(NOPIC_RCALL1, NONE, NONE, NOPIC_RCALL2, 11H_PCREL, RCALL1, 2),
  4.1762 ++
  4.1763 ++  RC(NOPIC_LDW4, NOPIC_MOV1, NOPIC_LDDPC, NONE, 16_CP, NOPIC_LDW4, 4),
  4.1764 ++  RC(NOPIC_LDDPC, NOPIC_MOV1, NONE, NOPIC_LDW4, 9W_CP, LDDPC, 2),
  4.1765 ++  RP(NOPIC_SUB5, NOPIC_MOV1, NONE, NOPIC_LDDPC, 16N_PCREL, SUB5_PC, 4),
  4.1766 ++  RD(NOPIC_MOV2, NONE, NOPIC_MOV1, NOPIC_SUB5, 21S, NOPIC_MOV2, 4),
  4.1767 ++  RD(NOPIC_MOV1, NONE, NONE, NOPIC_MOV2, 8S, NOPIC_MOV1, 2),
  4.1768 ++
  4.1769 ++  RP(RCALL2, NONE, RCALL1, NONE, 22H_PCREL, RCALL2, 4),
  4.1770 ++  RP(RCALL1, NONE, NONE, RCALL2, 11H_PCREL, RCALL1, 2),
  4.1771 ++  RP(BRC2, NONE, BRC1, NONE, 22H_PCREL, BRC2, 4),
  4.1772 ++  RP(BRC1, NONE, NONE, BRC2, 9H_PCREL, BRC1, 2),
  4.1773 ++  RP(BRAL, NONE, RJMP, NONE, 22H_PCREL, BRAL, 4),
  4.1774 ++  RP(RJMP, NONE, NONE, BRAL, 11H_PCREL, RJMP, 2),
  4.1775 ++};
  4.1776 ++
  4.1777 ++static bfd_boolean
  4.1778 ++avr32_elf_new_section_hook(bfd *abfd, asection *sec)
  4.1779 ++{
  4.1780 ++  struct avr32_section_data *sdata;
  4.1781 ++
  4.1782 ++  sdata = bfd_zalloc(abfd, sizeof(struct avr32_section_data));
  4.1783 ++  if (!sdata)
  4.1784 ++    return FALSE;
  4.1785 ++
  4.1786 ++  sec->used_by_bfd = sdata;
  4.1787 ++  return _bfd_elf_new_section_hook(abfd, sec);
  4.1788 ++}
  4.1789 ++
  4.1790 ++static struct avr32_relax_data *
  4.1791 ++avr32_relax_data(asection *sec)
  4.1792 ++{
  4.1793 ++  struct avr32_section_data *sdata;
  4.1794 ++
  4.1795 ++  BFD_ASSERT(sec->used_by_bfd);
  4.1796 ++
  4.1797 ++  sdata = (struct avr32_section_data *)elf_section_data(sec);
  4.1798 ++  return &sdata->relax_data;
  4.1799 ++}
  4.1800 ++
  4.1801 ++/* Link-time relaxation */
  4.1802 ++
  4.1803 ++static bfd_boolean
  4.1804 ++avr32_elf_relax_section(bfd *abfd, asection *sec,
  4.1805 ++			struct bfd_link_info *info, bfd_boolean *again);
  4.1806 ++
  4.1807 ++enum relax_pass_id {
  4.1808 ++  RELAX_PASS_SIZE_FRAGS,
  4.1809 ++  RELAX_PASS_MOVE_DATA,
  4.1810 ++};
  4.1811 ++
  4.1812 ++/* Stolen from the xtensa port */
  4.1813 ++static int
  4.1814 ++internal_reloc_compare (const void *ap, const void *bp)
  4.1815 ++{
  4.1816 ++  const Elf_Internal_Rela *a = (const Elf_Internal_Rela *) ap;
  4.1817 ++  const Elf_Internal_Rela *b = (const Elf_Internal_Rela *) bp;
  4.1818 ++
  4.1819 ++  if (a->r_offset != b->r_offset)
  4.1820 ++    return (a->r_offset - b->r_offset);
  4.1821 ++
  4.1822 ++  /* We don't need to sort on these criteria for correctness,
  4.1823 ++     but enforcing a more strict ordering prevents unstable qsort
  4.1824 ++     from behaving differently with different implementations.
  4.1825 ++     Without the code below we get correct but different results
  4.1826 ++     on Solaris 2.7 and 2.8.  We would like to always produce the
  4.1827 ++     same results no matter the host.  */
  4.1828 ++
  4.1829 ++  if (a->r_info != b->r_info)
  4.1830 ++    return (a->r_info - b->r_info);
  4.1831 ++
  4.1832 ++  return (a->r_addend - b->r_addend);
  4.1833 ++}
  4.1834 ++
  4.1835 ++static enum relax_state_id
  4.1836 ++get_pcrel22_relax_state(bfd *abfd, asection *sec, struct bfd_link_info *info,
  4.1837 ++			const Elf_Internal_Rela *rela)
  4.1838 ++{
  4.1839 ++  bfd_byte *contents;
  4.1840 ++  bfd_vma insn;
  4.1841 ++  enum relax_state_id rs = RS_NONE;
  4.1842 ++
  4.1843 ++  contents = retrieve_contents(abfd, sec, info->keep_memory);
  4.1844 ++  if (!contents)
  4.1845 ++    return RS_ERROR;
  4.1846 ++
  4.1847 ++  insn = bfd_get_32(abfd, contents + rela->r_offset);
  4.1848 ++  if ((insn & RCALL2_MASK) == RCALL2_OPCODE)
  4.1849 ++    rs = RS_RCALL2;
  4.1850 ++  else if ((insn & BRAL_MASK) == BRAL_OPCODE)
  4.1851 ++    /* Optimizing bral -> rjmp gets us into all kinds of
  4.1852 ++       trouble with jump tables. Better not do it.  */
  4.1853 ++    rs = RS_NONE;
  4.1854 ++  else if ((insn & BRC2_MASK) == BRC2_OPCODE)
  4.1855 ++    rs = RS_BRC2;
  4.1856 ++
  4.1857 ++  release_contents(sec, contents);
  4.1858 ++
  4.1859 ++  return rs;
  4.1860 ++}
  4.1861 ++
  4.1862 ++static enum relax_state_id
  4.1863 ++get_initial_relax_state(bfd *abfd, asection *sec, struct bfd_link_info *info,
  4.1864 ++			const Elf_Internal_Rela *rela)
  4.1865 ++{
  4.1866 ++  switch (ELF_R_TYPE(rela->r_info))
  4.1867 ++    {
  4.1868 ++    case R_AVR32_GOTCALL:
  4.1869 ++      return RS_PIC_CALL;
  4.1870 ++    case R_AVR32_GOT18SW:
  4.1871 ++      return RS_PIC_MCALL;
  4.1872 ++    case R_AVR32_LDA_GOT:
  4.1873 ++      return RS_PIC_LDA;
  4.1874 ++    case R_AVR32_GOT16S:
  4.1875 ++      return RS_PIC_LDW4;
  4.1876 ++    case R_AVR32_CPCALL:
  4.1877 ++      return RS_NOPIC_MCALL;
  4.1878 ++    case R_AVR32_16_CP:
  4.1879 ++      return RS_NOPIC_LDW4;
  4.1880 ++    case R_AVR32_9W_CP:
  4.1881 ++      return RS_NOPIC_LDDPC;
  4.1882 ++    case R_AVR32_ALIGN:
  4.1883 ++      return RS_ALIGN;
  4.1884 ++    case R_AVR32_32_CPENT:
  4.1885 ++      return RS_CPENT;
  4.1886 ++    case R_AVR32_22H_PCREL:
  4.1887 ++      return get_pcrel22_relax_state(abfd, sec, info, rela);
  4.1888 ++    case R_AVR32_9H_PCREL:
  4.1889 ++      return RS_BRC1;
  4.1890 ++    default:
  4.1891 ++      return RS_NONE;
  4.1892 ++    }
  4.1893 ++}
  4.1894 ++
  4.1895 ++static bfd_boolean
  4.1896 ++reloc_is_cpool_ref(const Elf_Internal_Rela *rela)
  4.1897 ++{
  4.1898 ++  switch (ELF_R_TYPE(rela->r_info))
  4.1899 ++    {
  4.1900 ++    case R_AVR32_CPCALL:
  4.1901 ++    case R_AVR32_16_CP:
  4.1902 ++    case R_AVR32_9W_CP:
  4.1903 ++      return TRUE;
  4.1904 ++    default:
  4.1905 ++      return FALSE;
  4.1906 ++    }
  4.1907 ++}
  4.1908 ++
  4.1909 ++static struct fragment *
  4.1910 ++new_frag(bfd *abfd ATTRIBUTE_UNUSED, asection *sec,
  4.1911 ++	 struct avr32_relax_data *rd, enum relax_state_id state,
  4.1912 ++	 Elf_Internal_Rela *rela)
  4.1913 ++{
  4.1914 ++  struct fragment *frag;
  4.1915 ++  bfd_size_type r_size;
  4.1916 ++  bfd_vma r_offset;
  4.1917 ++  unsigned int i = rd->frag_count;
  4.1918 ++
  4.1919 ++  BFD_ASSERT(state >= RS_NONE && state < RS_MAX);
  4.1920 ++
  4.1921 ++  rd->frag_count++;
  4.1922 ++  frag = bfd_realloc(rd->frag, sizeof(struct fragment) * rd->frag_count);
  4.1923 ++  if (!frag)
  4.1924 ++    return NULL;
  4.1925 ++  rd->frag = frag;
  4.1926 ++
  4.1927 ++  frag += i;
  4.1928 ++  memset(frag, 0, sizeof(struct fragment));
  4.1929 ++
  4.1930 ++  if (state == RS_ALIGN)
  4.1931 ++    r_size = (((rela->r_offset + (1 << rela->r_addend) - 1)
  4.1932 ++	       & ~((1 << rela->r_addend) - 1)) - rela->r_offset);
  4.1933 ++  else
  4.1934 ++    r_size = relax_state[state].size;
  4.1935 ++
  4.1936 ++  if (rela)
  4.1937 ++    r_offset = rela->r_offset;
  4.1938 ++  else
  4.1939 ++    r_offset = sec->size;
  4.1940 ++
  4.1941 ++  if (i == 0)
  4.1942 ++    {
  4.1943 ++      frag->offset = 0;
  4.1944 ++      frag->size = r_offset + r_size;
  4.1945 ++    }
  4.1946 ++  else
  4.1947 ++    {
  4.1948 ++      frag->offset = rd->frag[i - 1].offset + rd->frag[i - 1].size;
  4.1949 ++      frag->size = r_offset + r_size - frag->offset;
  4.1950 ++    }
  4.1951 ++
  4.1952 ++  if (state != RS_CPENT)
  4.1953 ++    /* Make sure we don't discard this frag */
  4.1954 ++    frag->refcount = 1;
  4.1955 ++
  4.1956 ++  frag->initial_state = frag->state = state;
  4.1957 ++  frag->rela = rela;
  4.1958 ++
  4.1959 ++  return frag;
  4.1960 ++}
  4.1961 ++
  4.1962 ++static struct fragment *
  4.1963 ++find_frag(asection *sec, bfd_vma offset)
  4.1964 ++{
  4.1965 ++  struct fragment *first, *last;
  4.1966 ++  struct avr32_relax_data *rd = avr32_relax_data(sec);
  4.1967 ++
  4.1968 ++  if (rd->frag_count == 0)
  4.1969 ++    return NULL;
  4.1970 ++
  4.1971 ++  first = &rd->frag[0];
  4.1972 ++  last = &rd->frag[rd->frag_count - 1];
  4.1973 ++
  4.1974 ++  /* This may be a reloc referencing the end of a section.  The last
  4.1975 ++     frag will never have a reloc associated with it, so its size will
  4.1976 ++     never change, thus the offset adjustment of the last frag will
  4.1977 ++     always be the same as the offset adjustment of the end of the
  4.1978 ++     section.  */
  4.1979 ++  if (offset == sec->size)
  4.1980 ++    {
  4.1981 ++      BFD_ASSERT(last->offset + last->size == sec->size);
  4.1982 ++      BFD_ASSERT(!last->rela);
  4.1983 ++      return last;
  4.1984 ++    }
  4.1985 ++
  4.1986 ++  while (first <= last)
  4.1987 ++    {
  4.1988 ++      struct fragment *mid;
  4.1989 ++
  4.1990 ++      mid = (last - first) / 2 + first;
  4.1991 ++      if ((mid->offset + mid->size) <= offset)
  4.1992 ++	first = mid + 1;
  4.1993 ++      else if (mid->offset > offset)
  4.1994 ++	last = mid - 1;
  4.1995 ++      else
  4.1996 ++	return mid;
  4.1997 ++    }
  4.1998 ++
  4.1999 ++  return NULL;
  4.2000 ++}
  4.2001 ++
  4.2002 ++/* Look through all relocs in a section and determine if any relocs
  4.2003 ++   may be affected by relaxation in other sections.  If so, allocate
  4.2004 ++   an array of additional relocation data which links the affected
  4.2005 ++   relocations to the frag(s) where the relaxation may occur.
  4.2006 ++
  4.2007 ++   This function also links cpool references to cpool entries and
  4.2008 ++   increments the refcount of the latter when this happens.  */
  4.2009 ++
  4.2010 ++static bfd_boolean
  4.2011 ++allocate_reloc_data(bfd *abfd, asection *sec, Elf_Internal_Rela *relocs,
  4.2012 ++		    struct bfd_link_info *info)
  4.2013 ++{
  4.2014 ++  Elf_Internal_Shdr *symtab_hdr;
  4.2015 ++  Elf_Internal_Sym *isymbuf = NULL;
  4.2016 ++  struct avr32_relax_data *rd;
  4.2017 ++  unsigned int i;
  4.2018 ++  bfd_boolean ret = FALSE;
  4.2019 ++
  4.2020 ++  symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
  4.2021 ++  rd = avr32_relax_data(sec);
  4.2022 ++
  4.2023 ++  RDBG("%s<%s>: allocate_reloc_data\n", abfd->filename, sec->name);
  4.2024 ++
  4.2025 ++  for (i = 0; i < sec->reloc_count; i++)
  4.2026 ++    {
  4.2027 ++      Elf_Internal_Rela *rel = &relocs[i];
  4.2028 ++      asection *sym_sec;
  4.2029 ++      unsigned long r_symndx;
  4.2030 ++      bfd_vma sym_value;
  4.2031 ++
  4.2032 ++      if (!rel->r_addend && ELF_R_TYPE(rel->r_info) != R_AVR32_DIFF32
  4.2033 ++	  && !reloc_is_cpool_ref(rel))
  4.2034 ++	continue;
  4.2035 ++
  4.2036 ++      r_symndx = ELF_R_SYM(rel->r_info);
  4.2037 ++
  4.2038 ++      if (r_symndx < symtab_hdr->sh_info)
  4.2039 ++	{
  4.2040 ++	  Elf_Internal_Sym *isym;
  4.2041 ++
  4.2042 ++	  if (!isymbuf)
  4.2043 ++	    isymbuf = retrieve_local_syms(abfd, info->keep_memory);
  4.2044 ++	  if (!isymbuf)
  4.2045 ++	    return FALSE;
  4.2046 ++
  4.2047 ++	  isym = &isymbuf[r_symndx];
  4.2048 ++	  sym_sec = bfd_section_from_elf_index(abfd, isym->st_shndx);
  4.2049 ++	  sym_value = isym->st_value;
  4.2050 ++	}
  4.2051 ++      else
  4.2052 ++	{
  4.2053 ++	  struct elf_link_hash_entry *h;
  4.2054 ++
  4.2055 ++	  h = elf_sym_hashes(abfd)[r_symndx - symtab_hdr->sh_info];
  4.2056 ++
  4.2057 ++	  while (h->root.type == bfd_link_hash_indirect
  4.2058 ++		 || h->root.type == bfd_link_hash_warning)
  4.2059 ++	    h = (struct elf_link_hash_entry *)h->root.u.i.link;
  4.2060 ++
  4.2061 ++	  if (h->root.type != bfd_link_hash_defined
  4.2062 ++	      && h->root.type != bfd_link_hash_defweak)
  4.2063 ++	    continue;
  4.2064 ++
  4.2065 ++	  sym_sec = h->root.u.def.section;
  4.2066 ++	  sym_value = h->root.u.def.value;
  4.2067 ++	}
  4.2068 ++
  4.2069 ++      if (sym_sec && avr32_relax_data(sym_sec)->is_relaxable)
  4.2070 ++	{
  4.2071 ++	  bfd_size_type size;
  4.2072 ++	  struct fragment *frag;
  4.2073 ++
  4.2074 ++	  if (!rd->reloc_data)
  4.2075 ++	    {
  4.2076 ++	      size = sizeof(struct avr32_reloc_data) * sec->reloc_count;
  4.2077 ++	      rd->reloc_data = bfd_zalloc(abfd, size);
  4.2078 ++	      if (!rd->reloc_data)
  4.2079 ++		goto out;
  4.2080 ++	    }
  4.2081 ++
  4.2082 ++	  RDBG("[%3d] 0x%04lx: target: 0x%lx + 0x%lx",
  4.2083 ++	       i, rel->r_offset, sym_value, rel->r_addend);
  4.2084 ++
  4.2085 ++	  frag = find_frag(sym_sec, sym_value + rel->r_addend);
  4.2086 ++	  BFD_ASSERT(frag);
  4.2087 ++	  rd->reloc_data[i].add_frag = frag;
  4.2088 ++
  4.2089 ++	  RDBG(" -> %s<%s>:%04lx\n", sym_sec->owner->filename, sym_sec->name,
  4.2090 ++	       frag->rela ? frag->rela->r_offset : sym_sec->size);
  4.2091 ++
  4.2092 ++	  if (reloc_is_cpool_ref(rel))
  4.2093 ++	    {
  4.2094 ++	      BFD_ASSERT(ELF_R_TYPE(frag->rela->r_info) == R_AVR32_32_CPENT);
  4.2095 ++	      frag->refcount++;
  4.2096 ++	    }
  4.2097 ++
  4.2098 ++	  if (ELF_R_TYPE(rel->r_info) == R_AVR32_DIFF32)
  4.2099 ++	    {
  4.2100 ++	      bfd_byte *contents;
  4.2101 ++	      bfd_signed_vma diff;
  4.2102 ++
  4.2103 ++	      contents = retrieve_contents(abfd, sec, info->keep_memory);
  4.2104 ++	      if (!contents)
  4.2105 ++		goto out;
  4.2106 ++
  4.2107 ++	      diff = bfd_get_signed_32(abfd, contents + rel->r_offset);
  4.2108 ++	      frag = find_frag(sym_sec, sym_value + rel->r_addend + diff);
  4.2109 ++	      BFD_ASSERT(frag);
  4.2110 ++	      rd->reloc_data[i].sub_frag = frag;
  4.2111 ++
  4.2112 ++	      release_contents(sec, contents);
  4.2113 ++	    }
  4.2114 ++	}
  4.2115 ++    }
  4.2116 ++
  4.2117 ++  ret = TRUE;
  4.2118 ++
  4.2119 ++ out:
  4.2120 ++  release_local_syms(abfd, isymbuf);
  4.2121 ++  return ret;
  4.2122 ++}
  4.2123 ++
  4.2124 ++static bfd_boolean
  4.2125 ++global_sym_set_frag(struct elf_avr32_link_hash_entry *havr,
  4.2126 ++		    struct bfd_link_info *info ATTRIBUTE_UNUSED)
  4.2127 ++{
  4.2128 ++  struct fragment *frag;
  4.2129 ++  asection *sec;
  4.2130 ++
  4.2131 ++  if (havr->root.root.type != bfd_link_hash_defined
  4.2132 ++      && havr->root.root.type != bfd_link_hash_defweak)
  4.2133 ++    return TRUE;
  4.2134 ++
  4.2135 ++  sec = havr->root.root.u.def.section;
  4.2136 ++  if (bfd_is_const_section(sec)
  4.2137 ++      || !avr32_relax_data(sec)->is_relaxable)
  4.2138 ++    return TRUE;
  4.2139 ++
  4.2140 ++  frag = find_frag(sec, havr->root.root.u.def.value);
  4.2141 ++  if (!frag)
  4.2142 ++    {
  4.2143 ++      unsigned int i;
  4.2144 ++      struct avr32_relax_data *rd = avr32_relax_data(sec);
  4.2145 ++
  4.2146 ++      RDBG("In %s: No frag for %s <%s+%lu> (limit %lu)\n",
  4.2147 ++	   sec->owner->filename, havr->root.root.root.string,
  4.2148 ++	   sec->name, havr->root.root.u.def.value, sec->size);
  4.2149 ++      for (i = 0; i < rd->frag_count; i++)
  4.2150 ++	RDBG("    %8lu - %8lu\n", rd->frag[i].offset,
  4.2151 ++	     rd->frag[i].offset + rd->frag[i].size);
  4.2152 ++    }
  4.2153 ++  BFD_ASSERT(frag);
  4.2154 ++
  4.2155 ++  havr->sym_frag = frag;
  4.2156 ++  return TRUE;
  4.2157 ++}
  4.2158 ++
  4.2159 ++static bfd_boolean
  4.2160 ++analyze_relocations(struct bfd_link_info *info)
  4.2161 ++{
  4.2162 ++  bfd *abfd;
  4.2163 ++  asection *sec;
  4.2164 ++
  4.2165 ++  /* Divide all relaxable sections into fragments */
  4.2166 ++  for (abfd = info->input_bfds; abfd; abfd = abfd->link_next)
  4.2167 ++    {
  4.2168 ++      if (!(elf_elfheader(abfd)->e_flags & EF_AVR32_LINKRELAX))
  4.2169 ++	{
  4.2170 ++	  if (!(*info->callbacks->warning)
  4.2171 ++	      (info, _("input is not relaxable"), NULL, abfd, NULL, 0))
  4.2172 ++	    return FALSE;
  4.2173 ++	  continue;
  4.2174 ++	}
  4.2175 ++
  4.2176 ++      for (sec = abfd->sections; sec; sec = sec->next)
  4.2177 ++	{
  4.2178 ++	  struct avr32_relax_data *rd;
  4.2179 ++	  struct fragment *frag;
  4.2180 ++	  Elf_Internal_Rela *relocs;
  4.2181 ++	  unsigned int i;
  4.2182 ++	  bfd_boolean ret = TRUE;
  4.2183 ++
  4.2184 ++	  if (!(sec->flags & SEC_RELOC) || sec->reloc_count == 0)
  4.2185 ++	    continue;
  4.2186 ++
  4.2187 ++	  rd = avr32_relax_data(sec);
  4.2188 ++
  4.2189 ++	  relocs = retrieve_internal_relocs(abfd, sec, info->keep_memory);
  4.2190 ++	  if (!relocs)
  4.2191 ++	    return FALSE;
  4.2192 ++
  4.2193 ++	  qsort(relocs, sec->reloc_count, sizeof(Elf_Internal_Rela),
  4.2194 ++		internal_reloc_compare);
  4.2195 ++
  4.2196 ++	  for (i = 0; i < sec->reloc_count; i++)
  4.2197 ++	    {
  4.2198 ++	      enum relax_state_id state;
  4.2199 ++
  4.2200 ++	      ret = FALSE;
  4.2201 ++	      state = get_initial_relax_state(abfd, sec, info, &relocs[i]);
  4.2202 ++	      if (state == RS_ERROR)
  4.2203 ++		break;
  4.2204 ++
  4.2205 ++	      if (state)
  4.2206 ++		{
  4.2207 ++		  frag = new_frag(abfd, sec, rd, state, &relocs[i]);
  4.2208 ++		  if (!frag)
  4.2209 ++		    break;
  4.2210 ++
  4.2211 ++		  pin_internal_relocs(sec, relocs);
  4.2212 ++		  rd->is_relaxable = TRUE;
  4.2213 ++		}
  4.2214 ++
  4.2215 ++	      ret = TRUE;
  4.2216 ++	    }
  4.2217 ++
  4.2218 ++	  release_internal_relocs(sec, relocs);
  4.2219 ++	  if (!ret)
  4.2220 ++	    return ret;
  4.2221 ++
  4.2222 ++	  if (rd->is_relaxable)
  4.2223 ++	    {
  4.2224 ++	      frag = new_frag(abfd, sec, rd, RS_NONE, NULL);
  4.2225 ++	      if (!frag)
  4.2226 ++		return FALSE;
  4.2227 ++	    }
  4.2228 ++	}
  4.2229 ++    }
  4.2230 ++
  4.2231 ++  /* Link each global symbol to the fragment where it's defined.  */
  4.2232 ++  elf_link_hash_traverse(elf_hash_table(info), global_sym_set_frag, info);
  4.2233 ++
  4.2234 ++  /* Do the same for local symbols. */
  4.2235 ++  for (abfd = info->input_bfds; abfd; abfd = abfd->link_next)
  4.2236 ++    {
  4.2237 ++      Elf_Internal_Sym *isymbuf, *isym;
  4.2238 ++      struct fragment **local_sym_frag;
  4.2239 ++      unsigned int i, sym_count;
  4.2240 ++
  4.2241 ++      sym_count = elf_tdata(abfd)->symtab_hdr.sh_info;
  4.2242 ++      if (sym_count == 0)
  4.2243 ++	continue;
  4.2244 ++
  4.2245 ++      local_sym_frag = bfd_zalloc(abfd, sym_count * sizeof(struct fragment *));
  4.2246 ++      if (!local_sym_frag)
  4.2247 ++	return FALSE;
  4.2248 ++      elf_tdata(abfd)->local_sym_frag = local_sym_frag;
  4.2249 ++
  4.2250 ++      isymbuf = retrieve_local_syms(abfd, info->keep_memory);
  4.2251 ++      if (!isymbuf)
  4.2252 ++	return FALSE;
  4.2253 ++
  4.2254 ++      for (i = 0; i < sym_count; i++)
  4.2255 ++	{
  4.2256 ++	  struct avr32_relax_data *rd;
  4.2257 ++	  struct fragment *frag;
  4.2258 ++	  asection *sec;
  4.2259 ++
  4.2260 ++	  isym = &isymbuf[i];
  4.2261 ++
  4.2262 ++	  sec = bfd_section_from_elf_index(abfd, isym->st_shndx);
  4.2263 ++	  if (!sec)
  4.2264 ++	    continue;
  4.2265 ++
  4.2266 ++	  rd = avr32_relax_data(sec);
  4.2267 ++	  if (!rd->is_relaxable)
  4.2268 ++	    continue;
  4.2269 ++
  4.2270 ++	  frag = find_frag(sec, isym->st_value);
  4.2271 ++	  BFD_ASSERT(frag);
  4.2272 ++
  4.2273 ++	  local_sym_frag[i] = frag;
  4.2274 ++	}
  4.2275 ++
  4.2276 ++      release_local_syms(abfd, isymbuf);
  4.2277 ++    }
  4.2278 ++
  4.2279 ++  /* And again for relocs with addends and constant pool references */
  4.2280 ++  for (abfd = info->input_bfds; abfd; abfd = abfd->link_next)
  4.2281 ++    for (sec = abfd->sections; sec; sec = sec->next)
  4.2282 ++      {
  4.2283 ++	Elf_Internal_Rela *relocs;
  4.2284 ++	bfd_boolean ret;
  4.2285 ++
  4.2286 ++	if (!(sec->flags & SEC_RELOC) || sec->reloc_count == 0)
  4.2287 ++	  continue;
  4.2288 ++
  4.2289 ++	relocs = retrieve_internal_relocs(abfd, sec, info->keep_memory);
  4.2290 ++	if (!relocs)
  4.2291 ++	  return FALSE;
  4.2292 ++
  4.2293 ++	ret = allocate_reloc_data(abfd, sec, relocs, info);
  4.2294 ++
  4.2295 ++	release_internal_relocs(sec, relocs);
  4.2296 ++	if (ret == FALSE)
  4.2297 ++	  return ret;
  4.2298 ++      }
  4.2299 ++
  4.2300 ++  return TRUE;
  4.2301 ++}
  4.2302 ++
  4.2303 ++static bfd_boolean
  4.2304 ++rs_is_good_enough(const struct relax_state *rs, struct fragment *frag,
  4.2305 ++		  bfd_vma symval, bfd_vma addr, struct got_entry *got,
  4.2306 ++		  struct avr32_reloc_data *ind_data,
  4.2307 ++		  bfd_signed_vma offset_adjust)
  4.2308 ++{
  4.2309 ++  bfd_signed_vma target = 0;
  4.2310 ++
  4.2311 ++  switch (rs->reftype)
  4.2312 ++    {
  4.2313 ++    case REF_ABSOLUTE:
  4.2314 ++      target = symval;
  4.2315 ++      break;
  4.2316 ++    case REF_PCREL:
  4.2317 ++      target = symval - addr;
  4.2318 ++      break;
  4.2319 ++    case REF_CPOOL:
  4.2320 ++      /* cpool frags are always in the same section and always after
  4.2321 ++	 all frags referring to it.  So it's always correct to add in
  4.2322 ++	 offset_adjust here.  */
  4.2323 ++      target = (ind_data->add_frag->offset + ind_data->add_frag->offset_adjust
  4.2324 ++		+ offset_adjust - frag->offset - frag->offset_adjust);
  4.2325 ++      break;
  4.2326 ++    case REF_GOT:
  4.2327 ++      target = got->offset;
  4.2328 ++      break;
  4.2329 ++    default:
  4.2330 ++      abort();
  4.2331 ++    }
  4.2332 ++
  4.2333 ++  if (target >= rs->range_min && target <= rs->range_max)
  4.2334 ++    return TRUE;
  4.2335 ++  else
  4.2336 ++    return FALSE;
  4.2337 ++}
  4.2338 ++
  4.2339 ++static bfd_boolean
  4.2340 ++avr32_size_frags(bfd *abfd, asection *sec, struct bfd_link_info *info)
  4.2341 ++{
  4.2342 ++  struct elf_avr32_link_hash_table *htab;
  4.2343 ++  struct avr32_relax_data *rd;
  4.2344 ++  Elf_Internal_Shdr *symtab_hdr;
  4.2345 ++  Elf_Internal_Rela *relocs = NULL;
  4.2346 ++  Elf_Internal_Sym *isymbuf = NULL;
  4.2347 ++  struct got_entry **local_got_ents;
  4.2348 ++  struct fragment **local_sym_frag;
  4.2349 ++  bfd_boolean ret = FALSE;
  4.2350 ++  bfd_signed_vma delta = 0;
  4.2351 ++  unsigned int i;
  4.2352 ++
  4.2353 ++  htab = avr32_elf_hash_table(info);
  4.2354 ++  rd = avr32_relax_data(sec);
  4.2355 ++
  4.2356 ++  if (sec == htab->sgot)
  4.2357 ++    {
  4.2358 ++      RDBG("Relaxing GOT section (vma: 0x%lx)\n",
  4.2359 ++	   sec->output_section->vma + sec->output_offset);
  4.2360 ++      if (assign_got_offsets(htab))
  4.2361 ++	htab->repeat_pass = TRUE;
  4.2362 ++      return TRUE;
  4.2363 ++    }
  4.2364 ++
  4.2365 ++  if (!rd->is_relaxable)
  4.2366 ++    return TRUE;
  4.2367 ++
  4.2368 ++  if (!sec->rawsize)
  4.2369 ++    sec->rawsize = sec->size;
  4.2370 ++
  4.2371 ++  symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
  4.2372 ++  relocs = retrieve_internal_relocs(abfd, sec, info->keep_memory);
  4.2373 ++  if (!relocs)
  4.2374 ++    goto out;
  4.2375 ++
  4.2376 ++  isymbuf = retrieve_local_syms(abfd, info->keep_memory);
  4.2377 ++  if (!isymbuf)
  4.2378 ++    goto out;
  4.2379 ++
  4.2380 ++  local_got_ents = elf_local_got_ents(abfd);
  4.2381 ++  local_sym_frag = elf_tdata(abfd)->local_sym_frag;
  4.2382 ++
  4.2383 ++  RDBG("size_frags: %s<%s>\n  vma: 0x%08lx, size: 0x%08lx\n",
  4.2384 ++       abfd->filename, sec->name,
  4.2385 ++       sec->output_section->vma + sec->output_offset, sec->size);
  4.2386 ++
  4.2387 ++  for (i = 0; i < rd->frag_count; i++)
  4.2388 ++    {
  4.2389 ++      struct fragment *frag = &rd->frag[i];
  4.2390 ++      struct avr32_reloc_data *r_data = NULL, *ind_data = NULL;
  4.2391 ++      const struct relax_state *state, *next_state;
  4.2392 ++      struct fragment *target_frag = NULL;
  4.2393 ++      asection *sym_sec = NULL;
  4.2394 ++      Elf_Internal_Rela *rela;
  4.2395 ++      struct got_entry *got;
  4.2396 ++      bfd_vma symval, r_offset, addend, addr;
  4.2397 ++      bfd_signed_vma size_adjust = 0, distance;
  4.2398 ++      unsigned long r_symndx;
  4.2399 ++      bfd_boolean defined = TRUE, dynamic = FALSE;
  4.2400 ++      unsigned char sym_type;
  4.2401 ++
  4.2402 ++      frag->offset_adjust += delta;
  4.2403 ++      state = next_state = &relax_state[frag->state];
  4.2404 ++      rela = frag->rela;
  4.2405 ++
  4.2406 ++      BFD_ASSERT(state->id == frag->state);
  4.2407 ++
  4.2408 ++      RDBG("  0x%04lx%c%d: %s [size %ld]", rela ? rela->r_offset : sec->rawsize,
  4.2409 ++	   (frag->offset_adjust < 0)?'-':'+',
  4.2410 ++	   abs(frag->offset_adjust), state->name, state->size);
  4.2411 ++
  4.2412 ++      if (!rela)
  4.2413 ++	{
  4.2414 ++	  RDBG(": no reloc, ignoring\n");
  4.2415 ++	  continue;
  4.2416 ++	}
  4.2417 ++
  4.2418 ++      BFD_ASSERT((unsigned int)(rela - relocs) < sec->reloc_count);
  4.2419 ++      BFD_ASSERT(state != RS_NONE);
  4.2420 ++
  4.2421 ++      r_offset = rela->r_offset + frag->offset_adjust;
  4.2422 ++      addr = sec->output_section->vma + sec->output_offset + r_offset;
  4.2423 ++
  4.2424 ++      switch (frag->state)
  4.2425 ++	{
  4.2426 ++	case RS_ALIGN:
  4.2427 ++	  size_adjust = ((addr + (1 << rela->r_addend) - 1)
  4.2428 ++			 & ~((1 << rela->r_addend) - 1));
  4.2429 ++	  size_adjust -= (sec->output_section->vma + sec->output_offset
  4.2430 ++			  + frag->offset + frag->offset_adjust
  4.2431 ++			  + frag->size + frag->size_adjust);
  4.2432 ++
  4.2433 ++	  RDBG(": adjusting size %lu -> %lu\n", frag->size + frag->size_adjust,
  4.2434 ++	       frag->size + frag->size_adjust + size_adjust);
  4.2435 ++	  break;
  4.2436 ++
  4.2437 ++	case RS_CPENT:
  4.2438 ++	  if (frag->refcount == 0 && frag->size_adjust == 0)
  4.2439 ++	    {
  4.2440 ++	      RDBG(": discarding frag\n");
  4.2441 ++	      size_adjust = -4;
  4.2442 ++	    }
  4.2443 ++	  else if (frag->refcount > 0 && frag->size_adjust < 0)
  4.2444 ++	    {
  4.2445 ++	      RDBG(": un-discarding frag\n");
  4.2446 ++	      size_adjust = 4;
  4.2447 ++	    }
  4.2448 ++	  break;
  4.2449 ++
  4.2450 ++	default:
  4.2451 ++	  if (rd->reloc_data)
  4.2452 ++	    r_data = &rd->reloc_data[frag->rela - relocs];
  4.2453 ++
  4.2454 ++	  /* If this is a cpool reference, we want the symbol that the
  4.2455 ++	     cpool entry refers to, not the symbol for the cpool entry
  4.2456 ++	     itself, as we already know what frag it's in.  */
  4.2457 ++	  if (relax_state[frag->initial_state].reftype == REF_CPOOL)
  4.2458 ++	    {
  4.2459 ++	      Elf_Internal_Rela *irela = r_data->add_frag->rela;
  4.2460 ++
  4.2461 ++	      r_symndx = ELF_R_SYM(irela->r_info);
  4.2462 ++	      addend = irela->r_addend;
  4.2463 ++
  4.2464 ++	      /* The constant pool must be in the same section as the
  4.2465 ++		 reloc referring to it.  */
  4.2466 ++	      BFD_ASSERT((unsigned long)(irela - relocs) < sec->reloc_count);
  4.2467 ++
  4.2468 ++	      ind_data = r_data;
  4.2469 ++	      r_data = &rd->reloc_data[irela - relocs];
  4.2470 ++	    }
  4.2471 ++	  else
  4.2472 ++	    {
  4.2473 ++	      r_symndx = ELF_R_SYM(rela->r_info);
  4.2474 ++	      addend = rela->r_addend;
  4.2475 ++	    }
  4.2476 ++
  4.2477 ++	  /* Get the value of the symbol referred to by the reloc.  */
  4.2478 ++	  if (r_symndx < symtab_hdr->sh_info)
  4.2479 ++	    {
  4.2480 ++	      Elf_Internal_Sym *isym;
  4.2481 ++
  4.2482 ++	      isym = isymbuf + r_symndx;
  4.2483 ++	      symval = 0;
  4.2484 ++
  4.2485 ++	      RDBG(" local sym %lu: ", r_symndx);
  4.2486 ++
  4.2487 ++	      if (isym->st_shndx == SHN_UNDEF)
  4.2488 ++		defined = FALSE;
  4.2489 ++	      else if (isym->st_shndx == SHN_ABS)
  4.2490 ++		sym_sec = bfd_abs_section_ptr;
  4.2491 ++	      else if (isym->st_shndx == SHN_COMMON)
  4.2492 ++		sym_sec = bfd_com_section_ptr;
  4.2493 ++	      else
  4.2494 ++		sym_sec = bfd_section_from_elf_index(abfd, isym->st_shndx);
  4.2495 ++
  4.2496 ++	      symval = isym->st_value;
  4.2497 ++	      sym_type = ELF_ST_TYPE(isym->st_info);
  4.2498 ++	      target_frag = local_sym_frag[r_symndx];
  4.2499 ++
  4.2500 ++	      if (local_got_ents)
  4.2501 ++		got = local_got_ents[r_symndx];
  4.2502 ++	      else
  4.2503 ++		got = NULL;
  4.2504 ++	    }
  4.2505 ++	  else
  4.2506 ++	    {
  4.2507 ++	      /* Global symbol */
  4.2508 ++	      unsigned long index;
  4.2509 ++	      struct elf_link_hash_entry *h;
  4.2510 ++	      struct elf_avr32_link_hash_entry *havr;
  4.2511 ++
  4.2512 ++	      index = r_symndx - symtab_hdr->sh_info;
  4.2513 ++	      h = elf_sym_hashes(abfd)[index];
  4.2514 ++	      BFD_ASSERT(h != NULL);
  4.2515 ++
  4.2516 ++	      while (h->root.type == bfd_link_hash_indirect
  4.2517 ++		     || h->root.type == bfd_link_hash_warning)
  4.2518 ++		h = (struct elf_link_hash_entry *)h->root.u.i.link;
  4.2519 ++
  4.2520 ++	      havr = (struct elf_avr32_link_hash_entry *)h;
  4.2521 ++	      got = h->got.glist;
  4.2522 ++
  4.2523 ++	      symval = 0;
  4.2524 ++
  4.2525 ++	      RDBG(" %s: ", h->root.root.string);
  4.2526 ++
  4.2527 ++	      if (h->root.type != bfd_link_hash_defined
  4.2528 ++		  && h->root.type != bfd_link_hash_defweak)
  4.2529 ++		{
  4.2530 ++		  RDBG("(undef)");
  4.2531 ++		  defined = FALSE;
  4.2532 ++		}
  4.2533 ++	      else if ((info->shared && !info->symbolic && h->dynindx != -1)
  4.2534 ++		       || (htab->root.dynamic_sections_created
  4.2535 ++			   && h->def_dynamic && !h->def_regular))
  4.2536 ++		{
  4.2537 ++		  RDBG("(dynamic)");
  4.2538 ++		  dynamic = TRUE;
  4.2539 ++		  sym_sec = h->root.u.def.section;
  4.2540 ++		}
  4.2541 ++	      else
  4.2542 ++		{
  4.2543 ++		  sym_sec = h->root.u.def.section;
  4.2544 ++		  symval = h->root.u.def.value;
  4.2545 ++		  target_frag = havr->sym_frag;
  4.2546 ++		}
  4.2547 ++
  4.2548 ++	      sym_type = h->type;
  4.2549 ++	    }
  4.2550 ++
  4.2551 ++	  /* Thanks to elf32-ppc for this one.  */
  4.2552 ++	  if (sym_sec && sym_sec->sec_info_type == ELF_INFO_TYPE_MERGE)
  4.2553 ++	    {
  4.2554 ++	      /* At this stage in linking, no SEC_MERGE symbol has been
  4.2555 ++		 adjusted, so all references to such symbols need to be
  4.2556 ++		 passed through _bfd_merged_section_offset.  (Later, in
  4.2557 ++		 relocate_section, all SEC_MERGE symbols *except* for
  4.2558 ++		 section symbols have been adjusted.)
  4.2559 ++
  4.2560 ++	         SEC_MERGE sections are not relaxed by us, as they
  4.2561 ++	         shouldn't contain any code.  */
  4.2562 ++
  4.2563 ++	      BFD_ASSERT(!target_frag && !(r_data && r_data->add_frag));
  4.2564 ++
  4.2565 ++	      /* gas may reduce relocations against symbols in SEC_MERGE
  4.2566 ++		 sections to a relocation against the section symbol when
  4.2567 ++		 the original addend was zero.  When the reloc is against
  4.2568 ++		 a section symbol we should include the addend in the
  4.2569 ++		 offset passed to _bfd_merged_section_offset, since the
  4.2570 ++		 location of interest is the original symbol.  On the
  4.2571 ++		 other hand, an access to "sym+addend" where "sym" is not
  4.2572 ++		 a section symbol should not include the addend;  Such an
  4.2573 ++		 access is presumed to be an offset from "sym";  The
  4.2574 ++		 location of interest is just "sym".  */
  4.2575 ++	      RDBG("\n    MERGE: %s: 0x%lx+0x%lx+0x%lx -> ",
  4.2576 ++		   (sym_type == STT_SECTION)?"section":"not section",
  4.2577 ++		   sym_sec->output_section->vma + sym_sec->output_offset,
  4.2578 ++		   symval, addend);
  4.2579 ++
  4.2580 ++	      if (sym_type == STT_SECTION)
  4.2581 ++		symval += addend;
  4.2582 ++
  4.2583 ++	      symval = (_bfd_merged_section_offset
  4.2584 ++			(abfd, &sym_sec,
  4.2585 ++			 elf_section_data(sym_sec)->sec_info, symval));
  4.2586 ++
  4.2587 ++	      if (sym_type != STT_SECTION)
  4.2588 ++		symval += addend;
  4.2589 ++	    }
  4.2590 ++	  else
  4.2591 ++	    symval += addend;
  4.2592 ++
  4.2593 ++	  if (defined && !dynamic)
  4.2594 ++	    {
  4.2595 ++	      RDBG("0x%lx+0x%lx",
  4.2596 ++		   sym_sec->output_section->vma + sym_sec->output_offset,
  4.2597 ++		   symval);
  4.2598 ++	      symval += sym_sec->output_section->vma + sym_sec->output_offset;
  4.2599 ++	    }
  4.2600 ++
  4.2601 ++	  if (r_data && r_data->add_frag)
  4.2602 ++	    /* If the add_frag pointer is set, it means that this reloc
  4.2603 ++	       has an addend that may be affected by relaxation.  */
  4.2604 ++	    target_frag = r_data->add_frag;
  4.2605 ++
  4.2606 ++	  if (target_frag)
  4.2607 ++	    {
  4.2608 ++	      symval += target_frag->offset_adjust;
  4.2609 ++
  4.2610 ++	      /* If target_frag comes after this frag in the same
  4.2611 ++		 section, we should assume that it will be moved by
  4.2612 ++		 the same amount we are.  */
  4.2613 ++	      if ((target_frag - rd->frag) < (int)rd->frag_count
  4.2614 ++		  && target_frag > frag)
  4.2615 ++		symval += delta;
  4.2616 ++	    }
  4.2617 ++
  4.2618 ++	  distance = symval - addr;
  4.2619 ++
  4.2620 ++	  /* First, try to make a direct reference.  If the symbol is
  4.2621 ++	     dynamic or undefined, we must take care not to change its
  4.2622 ++	     reference type, that is, we can't make it direct.
  4.2623 ++
  4.2624 ++	     Also, it seems like some sections may actually be resized
  4.2625 ++	     after the relaxation code is done, so we can't really
  4.2626 ++	     trust that our "distance" is correct.  There's really no
  4.2627 ++	     easy solution to this problem, so we'll just disallow
  4.2628 ++	     direct references to SEC_DATA sections.
  4.2629 ++
  4.2630 ++	     Oh, and .bss isn't actually SEC_DATA, so we disallow
  4.2631 ++	     !SEC_HAS_CONTENTS as well. */
  4.2632 ++	  if (!dynamic && defined
  4.2633 ++	      && (htab->direct_data_refs
  4.2634 ++		  || (!(sym_sec->flags & SEC_DATA)
  4.2635 ++		      && (sym_sec->flags & SEC_HAS_CONTENTS)))
  4.2636 ++	      && next_state->direct)
  4.2637 ++	    {
  4.2638 ++	      next_state = &relax_state[next_state->direct];
  4.2639 ++	      RDBG(" D-> %s", next_state->name);
  4.2640 ++	    }
  4.2641 ++
  4.2642 ++	  /* Iterate backwards until we find a state that fits.  */
  4.2643 ++	  while (next_state->prev
  4.2644 ++		 && !rs_is_good_enough(next_state, frag, symval, addr,
  4.2645 ++				       got, ind_data, delta))
  4.2646 ++	    {
  4.2647 ++	      next_state = &relax_state[next_state->prev];
  4.2648 ++	      RDBG(" P-> %s", next_state->name);
  4.2649 ++	    }
  4.2650 ++
  4.2651 ++	  /* Then try to find the best possible state.  */
  4.2652 ++	  while (next_state->next)
  4.2653 ++	    {
  4.2654 ++	      const struct relax_state *candidate;
  4.2655 ++
  4.2656 ++	      candidate = &relax_state[next_state->next];
  4.2657 ++	      if (!rs_is_good_enough(candidate, frag, symval, addr, got,
  4.2658 ++				     ind_data, delta))
  4.2659 ++		break;
  4.2660 ++
  4.2661 ++	      next_state = candidate;
  4.2662 ++	      RDBG(" N-> %s", next_state->name);
  4.2663 ++	    }
  4.2664 ++
  4.2665 ++	  RDBG(" [size %ld]\n", next_state->size);
  4.2666 ++
  4.2667 ++	  BFD_ASSERT(next_state->id);
  4.2668 ++	  BFD_ASSERT(!dynamic || next_state->reftype == REF_GOT);
  4.2669 ++
  4.2670 ++	  size_adjust = next_state->size - state->size;
  4.2671 ++
  4.2672 ++	  /* There's a theoretical possibility that shrinking one frag
  4.2673 ++	     may cause another to grow, which may cause the first one to
  4.2674 ++	     grow as well, and we're back where we started.  Avoid this
  4.2675 ++	     scenario by disallowing a frag that has grown to ever
  4.2676 ++	     shrink again.  */
  4.2677 ++	  if (state->reftype == REF_GOT && next_state->reftype != REF_GOT)
  4.2678 ++	    {
  4.2679 ++	      if (frag->has_grown)
  4.2680 ++		next_state = state;
  4.2681 ++	      else
  4.2682 ++		unref_got_entry(htab, got);
  4.2683 ++	    }
  4.2684 ++	  else if (state->reftype != REF_GOT && next_state->reftype == REF_GOT)
  4.2685 ++	    {
  4.2686 ++	      ref_got_entry(htab, got);
  4.2687 ++	      frag->has_grown = TRUE;
  4.2688 ++	    }
  4.2689 ++	  else if (state->reftype == REF_CPOOL
  4.2690 ++		   && next_state->reftype != REF_CPOOL)
  4.2691 ++	    {
  4.2692 ++	      if (frag->has_grown)
  4.2693 ++		next_state = state;
  4.2694 ++	      else
  4.2695 ++		ind_data->add_frag->refcount--;
  4.2696 ++	    }
  4.2697 ++	  else if (state->reftype != REF_CPOOL
  4.2698 ++		   && next_state->reftype == REF_CPOOL)
  4.2699 ++	    {
  4.2700 ++	      ind_data->add_frag->refcount++;
  4.2701 ++	      frag->has_grown = TRUE;
  4.2702 ++	    }
  4.2703 ++	  else
  4.2704 ++	    {
  4.2705 ++	      if (frag->has_grown && size_adjust < 0)
  4.2706 ++		next_state = state;
  4.2707 ++	      else if (size_adjust > 0)
  4.2708 ++		frag->has_grown = TRUE;
  4.2709 ++	    }
  4.2710 ++
  4.2711 ++	  size_adjust = next_state->size - state->size;
  4.2712 ++	  frag->state = next_state->id;
  4.2713 ++
  4.2714 ++	  break;
  4.2715 ++	}
  4.2716 ++
  4.2717 ++      if (size_adjust)
  4.2718 ++	htab->repeat_pass = TRUE;
  4.2719 ++
  4.2720 ++      frag->size_adjust += size_adjust;
  4.2721 ++      sec->size += size_adjust;
  4.2722 ++      delta += size_adjust;
  4.2723 ++
  4.2724 ++      BFD_ASSERT((frag->offset + frag->offset_adjust
  4.2725 ++		  + frag->size + frag->size_adjust)
  4.2726 ++		 == (frag[1].offset + frag[1].offset_adjust + delta));
  4.2727 ++    }
  4.2728 ++
  4.2729 ++  ret = TRUE;
  4.2730 ++
  4.2731 ++ out:
  4.2732 ++  release_local_syms(abfd, isymbuf);
  4.2733 ++  release_internal_relocs(sec, relocs);
  4.2734 ++  return ret;
  4.2735 ++}
  4.2736 ++
  4.2737 ++static bfd_boolean
  4.2738 ++adjust_global_symbol(struct elf_avr32_link_hash_entry *havr,
  4.2739 ++		     struct bfd_link_info *info ATTRIBUTE_UNUSED)
  4.2740 ++{
  4.2741 ++  struct elf_link_hash_entry *h = &havr->root;
  4.2742 ++
  4.2743 ++  if (havr->sym_frag && (h->root.type == bfd_link_hash_defined
  4.2744 ++			 || h->root.type == bfd_link_hash_defweak))
  4.2745 ++    {
  4.2746 ++      RDBG("adjust_global_symbol: %s 0x%08lx -> 0x%08lx\n",
  4.2747 ++	   h->root.root.string, h->root.u.def.value,
  4.2748 ++	   h->root.u.def.value + havr->sym_frag->offset_adjust);
  4.2749 ++      h->root.u.def.value += havr->sym_frag->offset_adjust;
  4.2750 ++    }
  4.2751 ++  return TRUE;
  4.2752 ++}
  4.2753 ++
  4.2754 ++static bfd_boolean
  4.2755 ++adjust_syms(struct bfd_link_info *info)
  4.2756 ++{
  4.2757 ++  struct elf_avr32_link_hash_table *htab;
  4.2758 ++  bfd *abfd;
  4.2759 ++
  4.2760 ++  htab = avr32_elf_hash_table(info);
  4.2761 ++  elf_link_hash_traverse(&htab->root, adjust_global_symbol, info);
  4.2762 ++
  4.2763 ++  for (abfd = info->input_bfds; abfd; abfd = abfd->link_next)
  4.2764 ++    {
  4.2765 ++      Elf_Internal_Sym *isymbuf;
  4.2766 ++      struct fragment **local_sym_frag, *frag;
  4.2767 ++      unsigned int i, sym_count;
  4.2768 ++
  4.2769 ++      sym_count = elf_tdata(abfd)->symtab_hdr.sh_info;
  4.2770 ++      if (sym_count == 0)
  4.2771 ++	continue;
  4.2772 ++
  4.2773 ++      isymbuf = retrieve_local_syms(abfd, info->keep_memory);
  4.2774 ++      if (!isymbuf)
  4.2775 ++	return FALSE;
  4.2776 ++
  4.2777 ++      local_sym_frag = elf_tdata(abfd)->local_sym_frag;
  4.2778 ++
  4.2779 ++      for (i = 0; i < sym_count; i++)
  4.2780 ++	{
  4.2781 ++	  frag = local_sym_frag[i];
  4.2782 ++	  if (frag)
  4.2783 ++	    {
  4.2784 ++	      RDBG("adjust_local_symbol: %s[%u] 0x%08lx -> 0x%08lx\n",
  4.2785 ++		   abfd->filename, i, isymbuf[i].st_value,
  4.2786 ++		   isymbuf[i].st_value + frag->offset_adjust);
  4.2787 ++	      isymbuf[i].st_value += frag->offset_adjust;
  4.2788 ++	    }
  4.2789 ++	}
  4.2790 ++
  4.2791 ++      release_local_syms(abfd, isymbuf);
  4.2792 ++    }
  4.2793 ++
  4.2794 ++  htab->symbols_adjusted = TRUE;
  4.2795 ++  return TRUE;
  4.2796 ++}
  4.2797 ++
  4.2798 ++static bfd_boolean
  4.2799 ++adjust_relocs(bfd *abfd, asection *sec, struct bfd_link_info *info)
  4.2800 ++{
  4.2801 ++  struct avr32_relax_data *rd;
  4.2802 ++  Elf_Internal_Rela *relocs;
  4.2803 ++  Elf_Internal_Shdr *symtab_hdr;
  4.2804 ++  unsigned int i;
  4.2805 ++  bfd_boolean ret = FALSE;
  4.2806 ++
  4.2807 ++  rd = avr32_relax_data(sec);
  4.2808 ++  if (!rd->reloc_data)
  4.2809 ++    return TRUE;
  4.2810 ++
  4.2811 ++  RDBG("adjust_relocs: %s<%s> (count: %u)\n", abfd->filename, sec->name,
  4.2812 ++       sec->reloc_count);
  4.2813 ++
  4.2814 ++  relocs = retrieve_internal_relocs(abfd, sec, info->keep_memory);
  4.2815 ++  if (!relocs)
  4.2816 ++    return FALSE;
  4.2817 ++
  4.2818 ++  symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
  4.2819 ++
  4.2820 ++  for (i = 0; i < sec->reloc_count; i++)
  4.2821 ++    {
  4.2822 ++      Elf_Internal_Rela *rela = &relocs[i];
  4.2823 ++      struct avr32_reloc_data *r_data = &rd->reloc_data[i];
  4.2824 ++      struct fragment *sym_frag;
  4.2825 ++      unsigned long r_symndx;
  4.2826 ++
  4.2827 ++      if (r_data->add_frag)
  4.2828 ++	{
  4.2829 ++	  r_symndx = ELF_R_SYM(rela->r_info);
  4.2830 ++
  4.2831 ++	  if (r_symndx < symtab_hdr->sh_info)
  4.2832 ++	    sym_frag = elf_tdata(abfd)->local_sym_frag[r_symndx];
  4.2833 ++	  else
  4.2834 ++	    {
  4.2835 ++	      struct elf_link_hash_entry *h;
  4.2836 ++
  4.2837 ++	      h = elf_sym_hashes(abfd)[r_symndx - symtab_hdr->sh_info];
  4.2838 ++
  4.2839 ++	      while (h->root.type == bfd_link_hash_indirect
  4.2840 ++		     || h->root.type == bfd_link_hash_warning)
  4.2841 ++		h = (struct elf_link_hash_entry *)h->root.u.i.link;
  4.2842 ++
  4.2843 ++	      BFD_ASSERT(h->root.type == bfd_link_hash_defined
  4.2844 ++			 || h->root.type == bfd_link_hash_defweak);
  4.2845 ++
  4.2846 ++	      sym_frag = ((struct elf_avr32_link_hash_entry *)h)->sym_frag;
  4.2847 ++	    }
  4.2848 ++
  4.2849 ++	  RDBG("    addend: 0x%08lx -> 0x%08lx\n",
  4.2850 ++	       rela->r_addend,
  4.2851 ++	       rela->r_addend + r_data->add_frag->offset_adjust
  4.2852 ++	       - (sym_frag ? sym_frag->offset_adjust : 0));
  4.2853 ++
  4.2854 ++	  /* If this is against a section symbol, we won't find any
  4.2855 ++	     sym_frag, so we'll just adjust the addend.  */
  4.2856 ++	  rela->r_addend += r_data->add_frag->offset_adjust;
  4.2857 ++	  if (sym_frag)
  4.2858 ++	    rela->r_addend -= sym_frag->offset_adjust;
  4.2859 ++
  4.2860 ++	  if (r_data->sub_frag)
  4.2861 ++	    {
  4.2862 ++	      bfd_byte *contents;
  4.2863 ++	      bfd_signed_vma diff;
  4.2864 ++
  4.2865 ++	      contents = retrieve_contents(abfd, sec, info->keep_memory);
  4.2866 ++	      if (!contents)
  4.2867 ++		goto out;
  4.2868 ++
  4.2869 ++	      /* I realize now that sub_frag is misnamed.  It's
  4.2870 ++		 actually add_frag which is subtracted in this
  4.2871 ++		 case...  */
  4.2872 ++	      diff = bfd_get_signed_32(abfd, contents + rela->r_offset);
  4.2873 ++	      diff += (r_data->sub_frag->offset_adjust
  4.2874 ++		       - r_data->add_frag->offset_adjust);
  4.2875 ++	      bfd_put_32(abfd, diff, contents + rela->r_offset);
  4.2876 ++
  4.2877 ++	      RDBG("   0x%lx: DIFF32 updated: 0x%lx\n", rela->r_offset, diff);
  4.2878 ++
  4.2879 ++	      release_contents(sec, contents);
  4.2880 ++	    }
  4.2881 ++	}
  4.2882 ++      else
  4.2883 ++	BFD_ASSERT(!r_data->sub_frag);
  4.2884 ++    }
  4.2885 ++
  4.2886 ++  ret = TRUE;
  4.2887 ++
  4.2888 ++ out:
  4.2889 ++  release_internal_relocs(sec, relocs);
  4.2890 ++  return ret;
  4.2891 ++}
  4.2892 ++
  4.2893 ++static bfd_boolean
  4.2894 ++avr32_move_data(bfd *abfd, asection *sec, struct bfd_link_info *info)
  4.2895 ++{
  4.2896 ++  struct elf_avr32_link_hash_table *htab;
  4.2897 ++  struct avr32_relax_data *rd;
  4.2898 ++  struct fragment *frag, *fragend;
  4.2899 ++  Elf_Internal_Rela *relocs = NULL;
  4.2900 ++  bfd_byte *contents = NULL;
  4.2901 ++  unsigned int i;
  4.2902 ++  bfd_boolean ret = FALSE;
  4.2903 ++
  4.2904 ++  htab = avr32_elf_hash_table(info);
  4.2905 ++  rd = avr32_relax_data(sec);
  4.2906 ++
  4.2907 ++  if (!htab->symbols_adjusted)
  4.2908 ++    if (!adjust_syms(info))
  4.2909 ++      return FALSE;
  4.2910 ++
  4.2911 ++  if (rd->is_relaxable)
  4.2912 ++    {
  4.2913 ++      /* Resize the section first, so that we can be sure that enough
  4.2914 ++	 memory is allocated in case the section has grown.  */
  4.2915 ++      if (sec->size > sec->rawsize
  4.2916 ++	  && elf_section_data(sec)->this_hdr.contents)
  4.2917 ++	{
  4.2918 ++	  /* We must not use cached data if the section has grown.  */
  4.2919 ++	  free(elf_section_data(sec)->this_hdr.contents);
  4.2920 ++	  elf_section_data(sec)->this_hdr.contents = NULL;
  4.2921 ++	}
  4.2922 ++
  4.2923 ++      relocs = retrieve_internal_relocs(abfd, sec, info->keep_memory);
  4.2924 ++      if (!relocs)
  4.2925 ++	goto out;
  4.2926 ++      contents = retrieve_contents(abfd, sec, info->keep_memory);
  4.2927 ++      if (!contents)
  4.2928 ++	goto out;
  4.2929 ++
  4.2930 ++      fragend = rd->frag + rd->frag_count;
  4.2931 ++
  4.2932 ++      RDBG("move_data: %s<%s>: relocs=%p, contents=%p\n",
  4.2933 ++	   abfd->filename, sec->name, relocs, contents);
  4.2934 ++
  4.2935 ++      /* First, move the data into place. We must take care to move
  4.2936 ++	 frags in the right order so that we don't accidentally
  4.2937 ++	 overwrite parts of the next frag.  */
  4.2938 ++      for (frag = rd->frag; frag < fragend; frag++)
  4.2939 ++	{
  4.2940 ++	  RDBG("    0x%08lx%c0x%x: size 0x%lx%c0x%x\n",
  4.2941 ++	       frag->offset, frag->offset_adjust >= 0 ? '+' : '-',
  4.2942 ++	       abs(frag->offset_adjust),
  4.2943 ++	       frag->size, frag->size_adjust >= 0 ? '+' : '-',
  4.2944 ++	       abs(frag->size_adjust));
  4.2945 ++	  if (frag->offset_adjust > 0)
  4.2946 ++	    {
  4.2947 ++	      struct fragment *prev = frag - 1;
  4.2948 ++	      struct fragment *last;
  4.2949 ++
  4.2950 ++	      for (last = frag; last < fragend && last->offset_adjust > 0;
  4.2951 ++		   last++) ;
  4.2952 ++
  4.2953 ++	      if (last == fragend)
  4.2954 ++		last--;
  4.2955 ++
  4.2956 ++	      for (frag = last; frag != prev; frag--)
  4.2957 ++		{
  4.2958 ++		  if (frag->offset_adjust
  4.2959 ++		      && frag->size + frag->size_adjust > 0)
  4.2960 ++		    {
  4.2961 ++		      RDBG("memmove 0x%lx -> 0x%lx (size %lu)\n",
  4.2962 ++			   frag->offset, frag->offset + frag->offset_adjust,
  4.2963 ++			   frag->size + frag->size_adjust);
  4.2964 ++		      memmove(contents + frag->offset + frag->offset_adjust,
  4.2965 ++			      contents + frag->offset,
  4.2966 ++			      frag->size + frag->size_adjust);
  4.2967 ++		    }
  4.2968 ++		}
  4.2969 ++	      frag = last;
  4.2970 ++	    }
  4.2971 ++	  else if (frag->offset_adjust && frag->size + frag->size_adjust > 0)
  4.2972 ++	    {
  4.2973 ++	      RDBG("memmove 0x%lx -> 0x%lx (size %lu)\n",
  4.2974 ++		   frag->offset, frag->offset + frag->offset_adjust,
  4.2975 ++		   frag->size + frag->size_adjust);
  4.2976 ++	      memmove(contents + frag->offset + frag->offset_adjust,
  4.2977 ++		      contents + frag->offset,
  4.2978 ++		      frag->size + frag->size_adjust);
  4.2979 ++	    }
  4.2980 ++	}
  4.2981 ++
  4.2982 ++      i = 0;
  4.2983 ++
  4.2984 ++      for (frag = rd->frag; frag < fragend; frag++)
  4.2985 ++	{
  4.2986 ++	  const struct relax_state *state, *istate;
  4.2987 ++	  struct avr32_reloc_data *r_data = NULL;
  4.2988 ++
  4.2989 ++	  istate = &relax_state[frag->initial_state];
  4.2990 ++	  state = &relax_state[frag->state];
  4.2991 ++
  4.2992 ++	  if (rd->reloc_data)
  4.2993 ++	    r_data = &rd->reloc_data[frag->rela - relocs];
  4.2994 ++
  4.2995 ++	  BFD_ASSERT((long)(frag->size + frag->size_adjust) >= 0);
  4.2996 ++	  BFD_ASSERT(state->reftype != REF_CPOOL
  4.2997 ++		     || r_data->add_frag->refcount > 0);
  4.2998 ++
  4.2999 ++	  if (istate->reftype == REF_CPOOL && state->reftype != REF_CPOOL)
  4.3000 ++	    {
  4.3001 ++	      struct fragment *ifrag;
  4.3002 ++
  4.3003 ++	      /* An indirect reference through the cpool has been
  4.3004 ++		 converted to a direct reference.  We must update the
  4.3005 ++		 reloc to point to the symbol itself instead of the
  4.3006 ++		 constant pool entry.  The reloc type will be updated
  4.3007 ++		 later.  */
  4.3008 ++	      ifrag = r_data->add_frag;
  4.3009 ++	      frag->rela->r_info = ifrag->rela->r_info;
  4.3010 ++	      frag->rela->r_addend = ifrag->rela->r_addend;
  4.3011 ++
  4.3012 ++	      /* Copy the reloc data so the addend will be adjusted
  4.3013 ++		 correctly later.  */
  4.3014 ++	      *r_data = rd->reloc_data[ifrag->rela - relocs];
  4.3015 ++	    }
  4.3016 ++
  4.3017 ++	  /* Move all relocs covered by this frag.  */
  4.3018 ++	  if (frag->rela)
  4.3019 ++	    BFD_ASSERT(&relocs[i] <= frag->rela);
  4.3020 ++	  else
  4.3021 ++	    BFD_ASSERT((frag + 1) == fragend && frag->state == RS_NONE);
  4.3022 ++
  4.3023 ++	  if (frag == rd->frag)
  4.3024 ++	    BFD_ASSERT(i == 0);
  4.3025 ++	  else
  4.3026 ++	    BFD_ASSERT(&relocs[i] > frag[-1].rela);
  4.3027 ++
  4.3028 ++	  /* If non-null, frag->rela is the last relocation in the
  4.3029 ++	     fragment.  frag->rela can only be null in the last
  4.3030 ++	     fragment, so in that case, we'll just do the rest.  */
  4.3031 ++	  for (; (i < sec->reloc_count
  4.3032 ++		  && (!frag->rela || &relocs[i] <= frag->rela)); i++)
  4.3033 ++	    {
  4.3034 ++	      RDBG("[%4u] r_offset 0x%08lx -> 0x%08lx\n", i, relocs[i].r_offset,
  4.3035 ++		   relocs[i].r_offset + frag->offset_adjust);
  4.3036 ++	      relocs[i].r_offset += frag->offset_adjust;
  4.3037 ++	    }
  4.3038 ++
  4.3039 ++	  if (frag->refcount == 0)
  4.3040 ++	    {
  4.3041 ++	      /* If this frag is to be discarded, make sure we won't
  4.3042 ++		 relocate it later on.  */
  4.3043 ++	      BFD_ASSERT(frag->state == RS_CPENT);
  4.3044 ++	      frag->rela->r_info = ELF_R_INFO(ELF_R_SYM(frag->rela->r_info),
  4.3045 ++					    R_AVR32_NONE);
  4.3046 ++	    }
  4.3047 ++	  else if (frag->state == RS_ALIGN)
  4.3048 ++	    {
  4.3049 ++	      bfd_vma addr, addr_end;
  4.3050 ++
  4.3051 ++	      addr = frag->rela->r_offset;
  4.3052 ++	      addr_end = (frag->offset + frag->offset_adjust
  4.3053 ++			  + frag->size + frag->size_adjust);
  4.3054 ++
  4.3055 ++	      /* If the section is executable, insert NOPs.
  4.3056 ++		 Otherwise, insert zeroes.  */
  4.3057 ++	      if (sec->flags & SEC_CODE)
  4.3058 ++		{
  4.3059 ++		  if (addr & 1)
  4.3060 ++		    {
  4.3061 ++		      bfd_put_8(abfd, 0, contents + addr);
  4.3062 ++		      addr++;
  4.3063 ++		    }
  4.3064 ++
  4.3065 ++		  BFD_ASSERT(!((addr_end - addr) & 1));
  4.3066 ++
  4.3067 ++		  while (addr < addr_end)
  4.3068 ++		    {
  4.3069 ++		      bfd_put_16(abfd, NOP_OPCODE, contents + addr);
  4.3070 ++		      addr += 2;
  4.3071 ++		    }
  4.3072 ++		}
  4.3073 ++	      else
  4.3074 ++		memset(contents + addr, 0, addr_end - addr);
  4.3075 ++	    }
  4.3076 ++	  else if (state->opcode_mask)
  4.3077 ++	    {
  4.3078 ++	      bfd_vma insn;
  4.3079 ++
  4.3080 ++	      /* Update the opcode and the relocation type unless it's a
  4.3081 ++		 "special" relax state (i.e. RS_NONE, RS_ALIGN or
  4.3082 ++		 RS_CPENT.), in which case the opcode mask is zero.  */
  4.3083 ++	      insn = bfd_get_32(abfd, contents + frag->rela->r_offset);
  4.3084 ++	      insn &= ~state->opcode_mask;
  4.3085 ++	      insn |= state->opcode;
  4.3086 ++	      RDBG("    0x%lx: inserting insn %08lx\n",
  4.3087 ++		   frag->rela->r_offset, insn);
  4.3088 ++	      bfd_put_32(abfd, insn, contents + frag->rela->r_offset);
  4.3089 ++
  4.3090 ++	      frag->rela->r_info = ELF_R_INFO(ELF_R_SYM(frag->rela->r_info),
  4.3091 ++					      state->r_type);
  4.3092 ++	    }
  4.3093 ++
  4.3094 ++	  if ((frag + 1) == fragend)
  4.3095 ++	    BFD_ASSERT((frag->offset + frag->size + frag->offset_adjust
  4.3096 ++			+ frag->size_adjust) == sec->size);
  4.3097 ++	  else
  4.3098 ++	    BFD_ASSERT((frag->offset + frag->size + frag->offset_adjust
  4.3099 ++			+ frag->size_adjust)
  4.3100 ++		       == (frag[1].offset + frag[1].offset_adjust));
  4.3101 ++	}
  4.3102 ++    }
  4.3103 ++
  4.3104 ++  /* Adjust reloc addends and DIFF32 differences */
  4.3105 ++  if (!adjust_relocs(abfd, sec, info))
  4.3106 ++    return FALSE;
  4.3107 ++
  4.3108 ++  ret = TRUE;
  4.3109 ++
  4.3110 ++ out:
  4.3111 ++  release_contents(sec, contents);
  4.3112 ++  release_internal_relocs(sec, relocs);
  4.3113 ++  return ret;
  4.3114 ++}
  4.3115 ++
  4.3116 ++static bfd_boolean
  4.3117 ++avr32_elf_relax_section(bfd *abfd, asection *sec,
  4.3118 ++			struct bfd_link_info *info, bfd_boolean *again)
  4.3119 ++{
  4.3120 ++  struct elf_avr32_link_hash_table *htab;
  4.3121 ++  struct avr32_relax_data *rd;
  4.3122 ++
  4.3123 ++  *again = FALSE;
  4.3124 ++  if (info->relocatable)
  4.3125 ++    return TRUE;
  4.3126 ++
  4.3127 ++  htab = avr32_elf_hash_table(info);
  4.3128 ++  if ((!(sec->flags & SEC_RELOC) || sec->reloc_count == 0)
  4.3129 ++      && sec != htab->sgot)
  4.3130 ++    return TRUE;
  4.3131 ++
  4.3132 ++  if (!htab->relocations_analyzed)
  4.3133 ++    {
  4.3134 ++      if (!analyze_relocations(info))
  4.3135 ++	return FALSE;
  4.3136 ++      htab->relocations_analyzed = TRUE;
  4.3137 ++    }
  4.3138 ++
  4.3139 ++  rd = avr32_relax_data(sec);
  4.3140 ++
  4.3141 ++  if (rd->iteration != htab->relax_iteration)
  4.3142 ++    {
  4.3143 ++      if (!htab->repeat_pass)
  4.3144 ++	htab->relax_pass++;
  4.3145 ++      htab->relax_iteration++;
  4.3146 ++      htab->repeat_pass = FALSE;
  4.3147 ++    }
  4.3148 ++
  4.3149 ++  rd->iteration++;
  4.3150 ++
  4.3151 ++  switch (htab->relax_pass)
  4.3152 ++    {
  4.3153 ++    case RELAX_PASS_SIZE_FRAGS:
  4.3154 ++      if (!avr32_size_frags(abfd, sec, info))
  4.3155 ++	return FALSE;
  4.3156 ++      *again = TRUE;
  4.3157 ++      break;
  4.3158 ++    case RELAX_PASS_MOVE_DATA:
  4.3159 ++      if (!avr32_move_data(abfd, sec, info))
  4.3160 ++	return FALSE;
  4.3161 ++      break;
  4.3162 ++  }
  4.3163 ++
  4.3164 ++  return TRUE;
  4.3165 ++}
  4.3166 ++
  4.3167 ++
  4.3168 ++/* Relocation */
  4.3169 ++
  4.3170 ++static bfd_reloc_status_type
  4.3171 ++avr32_check_reloc_value(asection *sec, Elf_Internal_Rela *rela,
  4.3172 ++			bfd_signed_vma relocation, reloc_howto_type *howto);
  4.3173 ++static bfd_reloc_status_type
  4.3174 ++avr32_final_link_relocate(reloc_howto_type *howto, bfd *input_bfd,
  4.3175 ++			  asection *input_section, bfd_byte *contents,
  4.3176 ++			  Elf_Internal_Rela *rel, bfd_vma value);
  4.3177 ++static bfd_boolean
  4.3178 ++avr32_elf_relocate_section(bfd *output_bfd, struct bfd_link_info *info,
  4.3179 ++			   bfd *input_bfd, asection *input_section,
  4.3180 ++			   bfd_byte *contents, Elf_Internal_Rela *relocs,
  4.3181 ++			   Elf_Internal_Sym *local_syms,
  4.3182 ++			   asection **local_sections);
  4.3183 ++
  4.3184 ++
  4.3185 ++#define symbol_address(symbol) \
  4.3186 ++  symbol->value + symbol->section->output_section->vma \
  4.3187 ++  + symbol->section->output_offset
  4.3188 ++
  4.3189 ++#define avr32_elf_insert_field(size, field, abfd, reloc_entry, data)	\
  4.3190 ++  do									\
  4.3191 ++    {									\
  4.3192 ++      unsigned long x;							\
  4.3193 ++      x = bfd_get_##size (abfd, data + reloc_entry->address);		\
  4.3194 ++      x &= ~reloc_entry->howto->dst_mask;				\
  4.3195 ++      x |= field & reloc_entry->howto->dst_mask;			\
  4.3196 ++      bfd_put_##size (abfd, (bfd_vma) x, data + reloc_entry->address);	\
  4.3197 ++    }									\
  4.3198 ++  while(0)
  4.3199 ++
  4.3200 ++static bfd_reloc_status_type
  4.3201 ++avr32_check_reloc_value(asection *sec ATTRIBUTE_UNUSED,
  4.3202 ++			Elf_Internal_Rela *rela ATTRIBUTE_UNUSED,
  4.3203 ++			bfd_signed_vma relocation,
  4.3204 ++			reloc_howto_type *howto)
  4.3205 ++{
  4.3206 ++  bfd_vma reloc_u;
  4.3207 ++
  4.3208 ++  /* We take "complain_overflow_dont" to mean "don't complain on
  4.3209 ++     alignment either". This way, we don't have to special-case
  4.3210 ++     R_AVR32_HI16 */
  4.3211 ++  if (howto->complain_on_overflow == complain_overflow_dont)
  4.3212 ++    return bfd_reloc_ok;
  4.3213 ++
  4.3214 ++  /* Check if the value is correctly aligned */
  4.3215 ++  if (relocation & ((1 << howto->rightshift) - 1))
  4.3216 ++    {
  4.3217 ++      RDBG("misaligned: %s<%s+%lx>: %s: 0x%lx (align %u)\n",
  4.3218 ++	   sec->owner->filename, sec->name, rela->r_offset,
  4.3219 ++	   howto->name, relocation, howto->rightshift);
  4.3220 ++      return bfd_reloc_overflow;
  4.3221 ++    }
  4.3222 ++
  4.3223 ++  /* Now, get rid of the unnecessary bits */
  4.3224 ++  relocation >>= howto->rightshift;
  4.3225 ++  reloc_u = (bfd_vma)relocation;
  4.3226 ++
  4.3227 ++  switch (howto->complain_on_overflow)
  4.3228 ++    {
  4.3229 ++    case complain_overflow_unsigned:
  4.3230 ++    case complain_overflow_bitfield:
  4.3231 ++      if (reloc_u > (unsigned long)((1 << howto->bitsize) - 1))
  4.3232 ++	{
  4.3233 ++	  RDBG("unsigned overflow: %s<%s+%lx>: %s: 0x%lx (size %u)\n",
  4.3234 ++	       sec->owner->filename, sec->name, rela->r_offset,
  4.3235 ++	       howto->name, reloc_u, howto->bitsize);
  4.3236 ++	  RDBG("reloc vma: 0x%lx\n",
  4.3237 ++	       sec->output_section->vma + sec->output_offset + rela->r_offset);
  4.3238 ++
  4.3239 ++	  return bfd_reloc_overflow;
  4.3240 ++	}
  4.3241 ++      break;
  4.3242 ++    case complain_overflow_signed:
  4.3243 ++      if (relocation > (1 << (howto->bitsize - 1)) - 1)
  4.3244 ++	{
  4.3245 ++	  RDBG("signed overflow: %s<%s+%lx>: %s: 0x%lx (size %u)\n",
  4.3246 ++	       sec->owner->filename, sec->name, rela->r_offset,
  4.3247 ++	       howto->name, reloc_u, howto->bitsize);
  4.3248 ++	  RDBG("reloc vma: 0x%lx\n",
  4.3249 ++	       sec->output_section->vma + sec->output_offset + rela->r_offset);
  4.3250 ++
  4.3251 ++	  return bfd_reloc_overflow;
  4.3252 ++	}
  4.3253 ++      if (relocation < -(1 << (howto->bitsize - 1)))
  4.3254 ++	{
  4.3255 ++	  RDBG("signed overflow: %s<%s+%lx>: %s: -0x%lx (size %u)\n",
  4.3256 ++	       sec->owner->filename, sec->name, rela->r_offset,
  4.3257 ++	       howto->name, -relocation, howto->bitsize);
  4.3258 ++	  RDBG("reloc vma: 0x%lx\n",
  4.3259 ++	       sec->output_section->vma + sec->output_offset + rela->r_offset);
  4.3260 ++
  4.3261 ++	  return bfd_reloc_overflow;
  4.3262 ++	}
  4.3263 ++      break;
  4.3264 ++    default:
  4.3265 ++      abort();
  4.3266 ++    }
  4.3267 ++
  4.3268 ++  return bfd_reloc_ok;
  4.3269 ++}
  4.3270 ++
  4.3271 ++
  4.3272 ++static bfd_reloc_status_type
  4.3273 ++avr32_final_link_relocate(reloc_howto_type *howto,
  4.3274 ++			  bfd *input_bfd,
  4.3275 ++			  asection *input_section,
  4.3276 ++			  bfd_byte *contents,
  4.3277 ++			  Elf_Internal_Rela *rel,
  4.3278 ++			  bfd_vma value)
  4.3279 ++{
  4.3280 ++  bfd_vma field;
  4.3281 ++  bfd_vma relocation;
  4.3282 ++  bfd_reloc_status_type status;
  4.3283 ++  bfd_byte *p = contents + rel->r_offset;
  4.3284 ++  unsigned long x;
  4.3285 ++
  4.3286 ++  pr_debug("  (6b) final link relocate\n");
  4.3287 ++
  4.3288 ++  /* Sanity check the address */
  4.3289 ++  if (rel->r_offset > input_section->size)
  4.3290 ++    {
  4.3291 ++      (*_bfd_error_handler)
  4.3292 ++	("%B: %A+0x%lx: offset out of range (section size: 0x%lx)",
  4.3293 ++	 input_bfd, input_section, rel->r_offset, input_section->size);
  4.3294 ++      return bfd_reloc_outofrange;
  4.3295 ++    }
  4.3296 ++
  4.3297 ++  relocation = value + rel->r_addend;
  4.3298 ++
  4.3299 ++  if (howto->pc_relative)
  4.3300 ++    {
  4.3301 ++      bfd_vma addr;
  4.3302 ++
  4.3303 ++      addr = input_section->output_section->vma
  4.3304 ++	+ input_section->output_offset + rel->r_offset;
  4.3305 ++      addr &= ~0UL << howto->rightshift;
  4.3306 ++      relocation -= addr;
  4.3307 ++    }
  4.3308 ++
  4.3309 ++  switch (ELF32_R_TYPE(rel->r_info))
  4.3310 ++    {
  4.3311 ++    case R_AVR32_16N_PCREL:
  4.3312 ++      /* sub reg, pc, . - (sym + addend) */
  4.3313 ++      relocation = -relocation;
  4.3314 ++      break;
  4.3315 ++    }
  4.3316 ++
  4.3317 ++  status = avr32_check_reloc_value(input_section, rel, relocation, howto);
  4.3318 ++
  4.3319 ++  relocation >>= howto->rightshift;
  4.3320 ++  if (howto->bitsize == 21)
  4.3321 ++    field = (relocation & 0xffff)
  4.3322 ++      | ((relocation & 0x10000) << 4)
  4.3323 ++      | ((relocation & 0x1e0000) << 8);
  4.3324 ++  else if (howto->bitsize == 12)
  4.3325 ++    field = (relocation & 0xff) | ((relocation & 0xf00) << 4);
  4.3326 ++  else if (howto->bitsize == 10)
  4.3327 ++    field = ((relocation & 0xff) << 4)
  4.3328 ++      | ((relocation & 0x300) >> 8);
  4.3329 ++  else
  4.3330 ++    field = relocation << howto->bitpos;
  4.3331 ++
  4.3332 ++  switch (howto->size)
  4.3333 ++    {
  4.3334 ++    case 0:
  4.3335 ++      x = bfd_get_8 (input_bfd, p);
  4.3336 ++      x &= ~howto->dst_mask;
  4.3337 ++      x |= field & howto->dst_mask;
  4.3338 ++      bfd_put_8 (input_bfd, (bfd_vma) x, p);
  4.3339 ++      break;
  4.3340 ++    case 1:
  4.3341 ++      x = bfd_get_16 (input_bfd, p);
  4.3342 ++      x &= ~howto->dst_mask;
  4.3343 ++      x |= field & howto->dst_mask;
  4.3344 ++      bfd_put_16 (input_bfd, (bfd_vma) x, p);
  4.3345 ++      break;
  4.3346 ++    case 2:
  4.3347 ++      x = bfd_get_32 (input_bfd, p);
  4.3348 ++      x &= ~howto->dst_mask;
  4.3349 ++      x |= field & howto->dst_mask;
  4.3350 ++      bfd_put_32 (input_bfd, (bfd_vma) x, p);
  4.3351 ++      break;
  4.3352 ++    default:
  4.3353 ++      abort();
  4.3354 ++    }
  4.3355 ++
  4.3356 ++  return status;
  4.3357 ++}
  4.3358 ++
  4.3359 ++/* (6) Apply relocations to the normal (non-dynamic) sections */
  4.3360 ++
  4.3361 ++static bfd_boolean
  4.3362 ++avr32_elf_relocate_section(bfd *output_bfd, struct bfd_link_info *info,
  4.3363 ++			   bfd *input_bfd, asection *input_section,
  4.3364 ++			   bfd_byte *contents, Elf_Internal_Rela *relocs,
  4.3365 ++			   Elf_Internal_Sym *local_syms,
  4.3366 ++			   asection **local_sections)
  4.3367 ++{
  4.3368 ++  struct elf_avr32_link_hash_table *htab;
  4.3369 ++  Elf_Internal_Shdr *symtab_hdr;
  4.3370 ++  Elf_Internal_Rela *rel, *relend;
  4.3371 ++  struct elf_link_hash_entry **sym_hashes;
  4.3372 ++  struct got_entry **local_got_ents;
  4.3373 ++  asection *sgot;
  4.3374 ++  asection *srelgot;
  4.3375 ++
  4.3376 ++  pr_debug("(6) relocate section %s:<%s> (size 0x%lx)\n",
  4.3377 ++	   input_bfd->filename, input_section->name, input_section->size);
  4.3378 ++
  4.3379 ++  /* If we're doing a partial link, we don't have to do anything since
  4.3380 ++     we're using RELA relocations */
  4.3381 ++  if (info->relocatable)
  4.3382 ++    return TRUE;
  4.3383 ++
  4.3384 ++  htab = avr32_elf_hash_table(info);
  4.3385 ++  symtab_hdr = &elf_tdata(input_bfd)->symtab_hdr;
  4.3386 ++  sym_hashes = elf_sym_hashes(input_bfd);
  4.3387 ++  local_got_ents = elf_local_got_ents(input_bfd);
  4.3388 ++  sgot = htab->sgot;
  4.3389 ++  srelgot = htab->srelgot;
  4.3390 ++
  4.3391 ++  relend = relocs + input_section->reloc_count;
  4.3392 ++  for (rel = relocs; rel < relend; rel++)
  4.3393 ++    {
  4.3394 ++      unsigned long r_type, r_symndx;
  4.3395 ++      reloc_howto_type *howto;
  4.3396 ++      Elf_Internal_Sym *sym = NULL;
  4.3397 ++      struct elf_link_hash_entry *h = NULL;
  4.3398 ++      asection *sec = NULL;
  4.3399 ++      bfd_vma value;
  4.3400 ++      bfd_vma offset;
  4.3401 ++      bfd_reloc_status_type status;
  4.3402 ++
  4.3403 ++      r_type = ELF32_R_TYPE(rel->r_info);
  4.3404 ++      r_symndx = ELF32_R_SYM(rel->r_info);
  4.3405 ++
  4.3406 ++      if (r_type == R_AVR32_NONE
  4.3407 ++	  || r_type == R_AVR32_ALIGN
  4.3408 ++	  || r_type == R_AVR32_DIFF32
  4.3409 ++	  || r_type == R_AVR32_DIFF16
  4.3410 ++	  || r_type == R_AVR32_DIFF8)
  4.3411 ++	continue;
  4.3412 ++
  4.3413 ++      /* Sanity check */
  4.3414 ++      if (r_type > R_AVR32_max)
  4.3415 ++	{
  4.3416 ++	  bfd_set_error(bfd_error_bad_value);
  4.3417 ++	  return FALSE;
  4.3418 ++	}
  4.3419 ++
  4.3420 ++      howto = &elf_avr32_howto_table[r_type];
  4.3421 ++
  4.3422 ++      if (r_symndx < symtab_hdr->sh_info)
  4.3423 ++	{
  4.3424 ++	  sym = local_syms + r_symndx;
  4.3425 ++	  sec = local_sections[r_symndx];
  4.3426 ++
  4.3427 ++	  pr_debug("  (6a) processing %s against local symbol %lu\n",
  4.3428 ++		   howto->name, r_symndx);
  4.3429 ++
  4.3430 ++	  /* The following function changes rel->r_addend behind our back. */
  4.3431 ++	  value = _bfd_elf_rela_local_sym(output_bfd, sym, &sec, rel);
  4.3432 ++	  pr_debug("    => value: %lx, addend: %lx\n", value, rel->r_addend);
  4.3433 ++	}
  4.3434 ++      else
  4.3435 ++	{
  4.3436 ++	  if (sym_hashes == NULL)
  4.3437 ++	    return FALSE;
  4.3438 ++
  4.3439 ++	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
  4.3440 ++	  while (h->root.type == bfd_link_hash_indirect
  4.3441 ++		 || h->root.type == bfd_link_hash_warning)
  4.3442 ++	    h = (struct elf_link_hash_entry *)h->root.u.i.link;
  4.3443 ++
  4.3444 ++	  pr_debug("  (6a) processing %s against symbol %s\n",
  4.3445 ++		   howto->name, h->root.root.string);
  4.3446 ++
  4.3447 ++	  if (h->root.type == bfd_link_hash_defined
  4.3448 ++	      || h->root.type == bfd_link_hash_defweak)
  4.3449 ++	    {
  4.3450 ++	      bfd_boolean dyn;
  4.3451 ++
  4.3452 ++	      dyn = htab->root.dynamic_sections_created;
  4.3453 ++	      sec = h->root.u.def.section;
  4.3454 ++
  4.3455 ++	      if (sec->output_section)
  4.3456 ++		value = (h->root.u.def.value
  4.3457 ++			 + sec->output_section->vma
  4.3458 ++			 + sec->output_offset);
  4.3459 ++	      else
  4.3460 ++		value = h->root.u.def.value;
  4.3461 ++	    }
  4.3462 ++	  else if (h->root.type == bfd_link_hash_undefweak)
  4.3463 ++	    value = 0;
  4.3464 ++	  else if (info->unresolved_syms_in_objects == RM_IGNORE
  4.3465 ++		   && ELF_ST_VISIBILITY(h->other) == STV_DEFAULT)
  4.3466 ++	    value = 0;
  4.3467 ++	  else
  4.3468 ++	    {
  4.3469 ++	      bfd_boolean err;
  4.3470 ++	      err = (info->unresolved_syms_in_objects == RM_GENERATE_ERROR
  4.3471 ++		     || ELF_ST_VISIBILITY(h->other) != STV_DEFAULT);
  4.3472 ++	      if (!info->callbacks->undefined_symbol
  4.3473 ++		  (info, h->root.root.string, input_bfd,
  4.3474 ++		   input_section, rel->r_offset, err))
  4.3475 ++		return FALSE;
  4.3476 ++	      value = 0;
  4.3477 ++	    }
  4.3478 ++
  4.3479 ++	  pr_debug("    => value: %lx, addend: %lx\n", value, rel->r_addend);
  4.3480 ++	}
  4.3481 ++
  4.3482 ++      switch (r_type)
  4.3483 ++	{
  4.3484 ++	case R_AVR32_GOT32:
  4.3485 ++	case R_AVR32_GOT16:
  4.3486 ++	case R_AVR32_GOT8:
  4.3487 ++	case R_AVR32_GOT21S:
  4.3488 ++	case R_AVR32_GOT18SW:
  4.3489 ++	case R_AVR32_GOT16S:
  4.3490 ++	case R_AVR32_GOT7UW:
  4.3491 ++	case R_AVR32_LDA_GOT:
  4.3492 ++	case R_AVR32_GOTCALL:
  4.3493 ++	  BFD_ASSERT(sgot != NULL);
  4.3494 ++
  4.3495 ++	  if (h != NULL)
  4.3496 ++	    {
  4.3497 ++	      BFD_ASSERT(h->got.glist->refcount > 0);
  4.3498 ++	      offset = h->got.glist->offset;
  4.3499 ++
  4.3500 ++	      BFD_ASSERT(offset < sgot->size);
  4.3501 ++	      if (!elf_hash_table(info)->dynamic_sections_created
  4.3502 ++		  || (h->def_regular
  4.3503 ++		      && (!info->shared
  4.3504 ++			  || info->symbolic
  4.3505 ++			  || h->dynindx == -1)))
  4.3506 ++		{
  4.3507 ++		  /* This is actually a static link, or it is a
  4.3508 ++		     -Bsymbolic link and the symbol is defined
  4.3509 ++		     locally, or the symbol was forced to be local.  */
  4.3510 ++		  bfd_put_32(output_bfd, value, sgot->contents + offset);
  4.3511 ++		}
  4.3512 ++	    }
  4.3513 ++	  else
  4.3514 ++	    {
  4.3515 ++	      BFD_ASSERT(local_got_ents &&
  4.3516 ++			 local_got_ents[r_symndx]->refcount > 0);
  4.3517 ++	      offset = local_got_ents[r_symndx]->offset;
  4.3518 ++
  4.3519 ++	      /* Local GOT entries don't have relocs.  If this is a
  4.3520 ++		 shared library, the dynamic linker will add the load
  4.3521 ++		 address to the initial value at startup.  */
  4.3522 ++	      BFD_ASSERT(offset < sgot->size);
  4.3523 ++	      pr_debug("Initializing GOT entry at offset %lu: 0x%lx\n",
  4.3524 ++		       offset, value);
  4.3525 ++	      bfd_put_32 (output_bfd, value, sgot->contents + offset);
  4.3526 ++	    }
  4.3527 ++
  4.3528 ++	  value = sgot->output_offset + offset;
  4.3529 ++	  pr_debug("GOT reference: New value %lx\n", value);
  4.3530 ++	  break;
  4.3531 ++
  4.3532 ++	case R_AVR32_GOTPC:
  4.3533 ++	  /* This relocation type is for constant pool entries used in
  4.3534 ++	     the calculation "Rd = PC - (PC - GOT)", where the
  4.3535 ++	     constant pool supplies the constant (PC - GOT)
  4.3536 ++	     offset. The symbol value + addend indicates where the
  4.3537 ++	     value of PC is taken. */
  4.3538 ++	  value -= sgot->output_section->vma;
  4.3539 ++	  break;
  4.3540 ++
  4.3541 ++	case R_AVR32_32_PCREL:
  4.3542 ++	  /* We must adjust r_offset to account for discarded data in
  4.3543 ++	     the .eh_frame section.  This is probably not the right
  4.3544 ++	     way to do this, since AFAICS all other architectures do
  4.3545 ++	     it some other way.  I just can't figure out how...  */
  4.3546 ++	  {
  4.3547 ++	    bfd_vma r_offset;
  4.3548 ++
  4.3549 ++	    r_offset = _bfd_elf_section_offset(output_bfd, info,
  4.3550 ++					       input_section,
  4.3551 ++					       rel->r_offset);
  4.3552 ++	    if (r_offset == (bfd_vma)-1
  4.3553 ++		|| r_offset == (bfd_vma)-2)
  4.3554 ++	      continue;
  4.3555 ++	    rel->r_offset = r_offset;
  4.3556 ++	  }
  4.3557 ++	  break;
  4.3558 ++
  4.3559 ++	case R_AVR32_32:
  4.3560 ++	  /* We need to emit a run-time relocation in the following cases:
  4.3561 ++	       - we're creating a shared library
  4.3562 ++	       - the symbol is not defined in any regular objects
  4.3563 ++
  4.3564 ++	     Of course, sections that aren't going to be part of the
  4.3565 ++	     run-time image will not get any relocs, and undefined
  4.3566 ++	     symbols won't have any either (only weak undefined
  4.3567 ++	     symbols should get this far).  */
  4.3568 ++	  if ((info->shared
  4.3569 ++	       || (elf_hash_table(info)->dynamic_sections_created
  4.3570 ++		   && h != NULL
  4.3571 ++		   && h->def_dynamic
  4.3572 ++		   && !h->def_regular))
  4.3573 ++	      && r_symndx != 0
  4.3574 ++	      && (input_section->flags & SEC_ALLOC))
  4.3575 ++	    {
  4.3576 ++	      Elf_Internal_Rela outrel;
  4.3577 ++	      bfd_byte *loc;
  4.3578 ++	      bfd_boolean skip, relocate;
  4.3579 ++	      struct elf_avr32_link_hash_entry *avrh;
  4.3580 ++
  4.3581 ++	      pr_debug("Going to generate dynamic reloc...\n");
  4.3582 ++
  4.3583 ++	      skip = FALSE;
  4.3584 ++	      relocate = FALSE;
  4.3585 ++
  4.3586 ++	      outrel.r_offset = _bfd_elf_section_offset(output_bfd, info,
  4.3587 ++							input_section,
  4.3588 ++							rel->r_offset);
  4.3589 ++	      if (outrel.r_offset == (bfd_vma)-1)
  4.3590 ++		skip = TRUE;
  4.3591 ++	      else if (outrel.r_offset == (bfd_vma)-2)
  4.3592 ++		skip = TRUE, relocate = TRUE;
  4.3593 ++
  4.3594 ++	      outrel.r_offset += (input_section->output_section->vma
  4.3595 ++				  + input_section->output_offset);
  4.3596 ++
  4.3597 ++	      pr_debug("    ... offset %lx, dynindx %ld\n",
  4.3598 ++		       outrel.r_offset, h ? h->dynindx : -1);
  4.3599 ++
  4.3600 ++	      if (skip)
  4.3601 ++		memset(&outrel, 0, sizeof(outrel));
  4.3602 ++	      else
  4.3603 ++		{
  4.3604 ++		  avrh = (struct elf_avr32_link_hash_entry *)h;
  4.3605 ++		  /* h->dynindx may be -1 if this symbol was marked to
  4.3606 ++		     become local.  */
  4.3607 ++		  if (h == NULL
  4.3608 ++		      || ((info->symbolic || h->dynindx == -1)
  4.3609 ++			  && h->def_regular))
  4.3610 ++		    {
  4.3611 ++		      relocate = TRUE;
  4.3612 ++		      outrel.r_info = ELF32_R_INFO(0, R_AVR32_RELATIVE);
  4.3613 ++		      outrel.r_addend = value + rel->r_addend;
  4.3614 ++		      pr_debug("    ... R_AVR32_RELATIVE\n");
  4.3615 ++		    }
  4.3616 ++		  else
  4.3617 ++		    {
  4.3618 ++		      BFD_ASSERT(h->dynindx != -1);
  4.3619 ++		      relocate = TRUE;
  4.3620 ++		      outrel.r_info = ELF32_R_INFO(h->dynindx, R_AVR32_GLOB_DAT);
  4.3621 ++		      outrel.r_addend = rel->r_addend;
  4.3622 ++		      pr_debug("    ... R_AVR32_GLOB_DAT\n");
  4.3623 ++		    }
  4.3624 ++		}
  4.3625 ++
  4.3626 ++	      pr_debug("srelgot reloc_count: %d, size %lu\n",
  4.3627 ++		       srelgot->reloc_count, srelgot->size);
  4.3628 ++
  4.3629 ++	      loc = srelgot->contents;
  4.3630 ++	      loc += srelgot->reloc_count++ * sizeof(Elf32_External_Rela);
  4.3631 ++	      bfd_elf32_swap_reloca_out(output_bfd, &outrel, loc);
  4.3632 ++
  4.3633 ++	      BFD_ASSERT(srelgot->reloc_count * sizeof(Elf32_External_Rela)
  4.3634 ++			 <= srelgot->size);
  4.3635 ++
  4.3636 ++	      if (!relocate)
  4.3637 ++		continue;
  4.3638 ++	    }
  4.3639 ++	  break;
  4.3640 ++	}
  4.3641 ++
  4.3642 ++      status = avr32_final_link_relocate(howto, input_bfd, input_section,
  4.3643 ++					 contents, rel, value);
  4.3644 ++
  4.3645 ++      switch (status)
  4.3646 ++	{
  4.3647 ++	case bfd_reloc_ok:
  4.3648 ++	  break;
  4.3649 ++
  4.3650 ++	case bfd_reloc_overflow:
  4.3651 ++	  {
  4.3652 ++	    const char *name;
  4.3653 ++
  4.3654 ++	    if (h != NULL)
  4.3655 ++	      name = h->root.root.string;
  4.3656 ++	    else
  4.3657 ++	      {
  4.3658 ++		name = bfd_elf_string_from_elf_section(input_bfd,
  4.3659 ++						       symtab_hdr->sh_link,
  4.3660 ++						       sym->st_name);
  4.3661 ++		if (name == NULL)
  4.3662 ++		  return FALSE;
  4.3663 ++		if (*name == '\0')
  4.3664 ++		  name = bfd_section_name(input_bfd, sec);
  4.3665 ++	      }
  4.3666 ++	    if (!((*info->callbacks->reloc_overflow)
  4.3667 ++		  (info, (h ? &h->root : NULL), name, howto->name,
  4.3668 ++		   rel->r_addend, input_bfd, input_section, rel->r_offset)))
  4.3669 ++	      return FALSE;
  4.3670 ++	  }
  4.3671 ++	  break;
  4.3672 ++
  4.3673 ++	case bfd_reloc_outofrange:
  4.3674 ++	default:
  4.3675 ++	  abort();
  4.3676 ++	}
  4.3677 ++    }
  4.3678 ++
  4.3679 ++  return TRUE;
  4.3680 ++}
  4.3681 ++
  4.3682 ++
  4.3683 ++/* Additional processing of dynamic sections after relocation */
  4.3684 ++
  4.3685 ++static bfd_boolean
  4.3686 ++avr32_elf_finish_dynamic_symbol(bfd *output_bfd, struct bfd_link_info *info,
  4.3687 ++				struct elf_link_hash_entry *h,
  4.3688 ++				Elf_Internal_Sym *sym);
  4.3689 ++static bfd_boolean
  4.3690 ++avr32_elf_finish_dynamic_sections(bfd *output_bfd, struct bfd_link_info *info);
  4.3691 ++
  4.3692 ++
  4.3693 ++/* (7) Initialize the contents of a dynamic symbol and/or emit
  4.3694 ++   relocations for it */
  4.3695 ++
  4.3696 ++static bfd_boolean
  4.3697 ++avr32_elf_finish_dynamic_symbol(bfd *output_bfd, struct bfd_link_info *info,
  4.3698 ++				struct elf_link_hash_entry *h,
  4.3699 ++				Elf_Internal_Sym *sym)
  4.3700 ++{
  4.3701 ++  struct elf_avr32_link_hash_table *htab;
  4.3702 ++  struct got_entry *got;
  4.3703 ++
  4.3704 ++  pr_debug("(7) finish dynamic symbol: %s\n", h->root.root.string);
  4.3705 ++
  4.3706 ++  htab = avr32_elf_hash_table(info);
  4.3707 ++  got = h->got.glist;
  4.3708 ++
  4.3709 ++  if (got && got->refcount > 0)
  4.3710 ++    {
  4.3711 ++      asection *sgot;
  4.3712 ++      asection *srelgot;
  4.3713 ++      Elf_Internal_Rela rel;
  4.3714 ++      bfd_byte *loc;
  4.3715 ++
  4.3716 ++      /* This symbol has an entry in the GOT. Set it up. */
  4.3717 ++      sgot = htab->sgot;
  4.3718 ++      srelgot = htab->srelgot;
  4.3719 ++      BFD_ASSERT(sgot && srelgot);
  4.3720 ++
  4.3721 ++      rel.r_offset = (sgot->output_section->vma
  4.3722 ++		      + sgot->output_offset
  4.3723 ++		      + got->offset);
  4.3724 ++
  4.3725 ++      /* If this is a static link, or it is a -Bsymbolic link and the
  4.3726 ++	 symbol is defined locally or was forced to be local because
  4.3727 ++	 of a version file, we just want to emit a RELATIVE reloc. The
  4.3728 ++	 entry in the global offset table will already have been
  4.3729 ++	 initialized in the relocate_section function. */
  4.3730 ++      if ((info->shared
  4.3731 ++	   && !info->symbolic
  4.3732 ++	   && h->dynindx != -1)
  4.3733 ++	  || (htab->root.dynamic_sections_created
  4.3734 ++	      && h->def_dynamic
  4.3735 ++	      && !h->def_regular))
  4.3736 ++	{
  4.3737 ++	  bfd_put_32(output_bfd, 0, sgot->contents + got->offset);
  4.3738 ++	  rel.r_info = ELF32_R_INFO(h->dynindx, R_AVR32_GLOB_DAT);
  4.3739 ++	  rel.r_addend = 0;
  4.3740 ++
  4.3741 ++	  pr_debug("GOT reloc R_AVR32_GLOB_DAT, dynindx: %ld\n", h->dynindx);
  4.3742 ++	  pr_debug("    srelgot reloc_count: %d, size: %lu\n",
  4.3743 ++		   srelgot->reloc_count, srelgot->size);
  4.3744 ++
  4.3745 ++	  loc = (srelgot->contents
  4.3746 ++		 + srelgot->reloc_count++ * sizeof(Elf32_External_Rela));
  4.3747 ++	  bfd_elf32_swap_reloca_out(output_bfd, &rel, loc);
  4.3748 ++
  4.3749 ++	  BFD_ASSERT(srelgot->reloc_count * sizeof(Elf32_External_Rela)
  4.3750 ++		     <= srelgot->size);
  4.3751 ++	}
  4.3752 ++    }
  4.3753 ++
  4.3754 ++  /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute */
  4.3755 ++  if (strcmp(h->root.root.string, "_DYNAMIC") == 0
  4.3756 ++      || strcmp(h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
  4.3757 ++    sym->st_shndx = SHN_ABS;
  4.3758 ++
  4.3759 ++  return TRUE;
  4.3760 ++}
  4.3761 ++
  4.3762 ++/* (8) Do any remaining initialization of the dynamic sections */
  4.3763 ++
  4.3764 ++static bfd_boolean
  4.3765 ++avr32_elf_finish_dynamic_sections(bfd *output_bfd, struct bfd_link_info *info)
  4.3766 ++{
  4.3767 ++  struct elf_avr32_link_hash_table *htab;
  4.3768 ++  asection *sgot, *sdyn;
  4.3769 ++
  4.3770 ++  pr_debug("(8) finish dynamic sections\n");
  4.3771 ++
  4.3772 ++  htab = avr32_elf_hash_table(info);
  4.3773 ++  sgot = htab->sgot;
  4.3774 ++  sdyn = bfd_get_section_by_name(htab->root.dynobj, ".dynamic");
  4.3775 ++
  4.3776 ++  if (htab->root.dynamic_sections_created)
  4.3777 ++    {
  4.3778 ++      Elf32_External_Dyn *dyncon, *dynconend;
  4.3779 ++
  4.3780 ++      BFD_ASSERT(sdyn && sgot && sgot->size >= AVR32_GOT_HEADER_SIZE);
  4.3781 ++
  4.3782 ++      dyncon = (Elf32_External_Dyn *)sdyn->contents;
  4.3783 ++      dynconend = (Elf32_External_Dyn *)(sdyn->contents + sdyn->size);
  4.3784 ++      for (; dyncon < dynconend; dyncon++)
  4.3785 ++	{
  4.3786 ++	  Elf_Internal_Dyn dyn;
  4.3787 ++	  asection *s;
  4.3788 ++
  4.3789 ++	  bfd_elf32_swap_dyn_in(htab->root.dynobj, dyncon, &dyn);
  4.3790 ++
  4.3791 ++	  switch (dyn.d_tag)
  4.3792 ++	    {
  4.3793 ++	    default:
  4.3794 ++	      break;
  4.3795 ++
  4.3796 ++	    case DT_PLTGOT:
  4.3797 ++	      s = sgot->output_section;
  4.3798 ++	      BFD_ASSERT(s != NULL);
  4.3799 ++	      dyn.d_un.d_ptr = s->vma;
  4.3800 ++	      bfd_elf32_swap_dyn_out(output_bfd, &dyn, dyncon);
  4.3801 ++	      break;
  4.3802 ++
  4.3803 ++	    case DT_AVR32_GOTSZ:
  4.3804 ++	      s = sgot->output_section;
  4.3805 ++	      BFD_ASSERT(s != NULL);
  4.3806 ++	      dyn.d_un.d_val = s->size;
  4.3807 ++	      bfd_elf32_swap_dyn_out(output_bfd, &dyn, dyncon);
  4.3808 ++	      break;
  4.3809 ++	    }
  4.3810 ++	}
  4.3811 ++
  4.3812 ++      /* Fill in the first two entries in the global offset table */
  4.3813 ++      bfd_put_32(output_bfd,
  4.3814 ++		 sdyn->output_section->vma + sdyn->output_offset,
  4.3815 ++		 sgot->contents);
  4.3816 ++
  4.3817 ++      /* The runtime linker will fill this one in with the address of
  4.3818 ++	 the run-time link map */
  4.3819 ++      bfd_put_32(output_bfd, 0, sgot->contents + 4);
  4.3820 ++    }
  4.3821 ++
  4.3822 ++  if (sgot)
  4.3823 ++    elf_section_data(sgot->output_section)->this_hdr.sh_entsize = 4;
  4.3824 ++
  4.3825 ++  return TRUE;
  4.3826 ++}
  4.3827 ++
  4.3828 ++
  4.3829 ++/* AVR32-specific private ELF data */
  4.3830 ++
  4.3831 ++static bfd_boolean
  4.3832 ++avr32_elf_set_private_flags(bfd *abfd, flagword flags);
  4.3833 ++static bfd_boolean
  4.3834 ++avr32_elf_copy_private_bfd_data(bfd *ibfd, bfd *obfd);
  4.3835 ++static bfd_boolean
  4.3836 ++avr32_elf_merge_private_bfd_data(bfd *ibfd, bfd *obfd);
  4.3837 ++static bfd_boolean
  4.3838 ++avr32_elf_print_private_bfd_data(bfd *abfd, void *ptr);
  4.3839 ++
  4.3840 ++static bfd_boolean
  4.3841 ++avr32_elf_set_private_flags(bfd *abfd, flagword flags)
  4.3842 ++{
  4.3843 ++  elf_elfheader(abfd)->e_flags = flags;
  4.3844 ++  elf_flags_init(abfd) = TRUE;
  4.3845 ++
  4.3846 ++  return TRUE;
  4.3847 ++}
  4.3848 ++
  4.3849 ++/* Copy backend specific data from one object module to another.  */
  4.3850 ++
  4.3851 ++static bfd_boolean
  4.3852 ++avr32_elf_copy_private_bfd_data(bfd *ibfd, bfd *obfd)
  4.3853 ++{
  4.3854 ++  elf_elfheader(obfd)->e_flags = elf_elfheader(ibfd)->e_flags;
  4.3855 ++  return TRUE;
  4.3856 ++}
  4.3857 ++
  4.3858 ++/* Merge backend specific data from an object file to the output
  4.3859 ++   object file when linking.  */
  4.3860 ++
  4.3861 ++static bfd_boolean
  4.3862 ++avr32_elf_merge_private_bfd_data(bfd *ibfd, bfd *obfd)
  4.3863 ++{
  4.3864 ++  flagword out_flags, in_flags;
  4.3865 ++
  4.3866 ++  pr_debug("(0) merge_private_bfd_data: %s -> %s\n",
  4.3867 ++	   ibfd->filename, obfd->filename);
  4.3868 ++
  4.3869 ++  in_flags = elf_elfheader(ibfd)->e_flags;
  4.3870 ++  out_flags = elf_elfheader(obfd)->e_flags;
  4.3871 ++
  4.3872 ++  if (elf_flags_init(obfd))
  4.3873 ++    {
  4.3874 ++      /* If one of the inputs are non-PIC, the output must be
  4.3875 ++	 considered non-PIC.  The same applies to linkrelax.  */
  4.3876 ++      if (!(in_flags & EF_AVR32_PIC))
  4.3877 ++	out_flags &= ~EF_AVR32_PIC;
  4.3878 ++      if (!(in_flags & EF_AVR32_LINKRELAX))
  4.3879 ++	out_flags &= ~EF_AVR32_LINKRELAX;
  4.3880 ++    }
  4.3881 ++  else
  4.3882 ++    {
  4.3883 ++      elf_flags_init(obfd) = TRUE;
  4.3884 ++      out_flags = in_flags;
  4.3885 ++    }
  4.3886 ++
  4.3887 ++  elf_elfheader(obfd)->e_flags = out_flags;
  4.3888 ++
  4.3889 ++  return TRUE;
  4.3890 ++}
  4.3891 ++
  4.3892 ++static bfd_boolean
  4.3893 ++avr32_elf_print_private_bfd_data(bfd *abfd, void *ptr)
  4.3894 ++{
  4.3895 ++  FILE *file = (FILE *)ptr;
  4.3896 ++  unsigned long flags;
  4.3897 ++
  4.3898 ++  BFD_ASSERT(abfd != NULL && ptr != NULL);
  4.3899 ++
  4.3900 ++  _bfd_elf_print_private_bfd_data(abfd, ptr);
  4.3901 ++
  4.3902 ++  flags = elf_elfheader(abfd)->e_flags;
  4.3903 ++
  4.3904 ++  fprintf(file, _("private flags = %lx:"), elf_elfheader(abfd)->e_flags);
  4.3905 ++
  4.3906 ++  if (flags & EF_AVR32_PIC)
  4.3907 ++    fprintf(file, " [PIC]");
  4.3908 ++  if (flags & EF_AVR32_LINKRELAX)
  4.3909 ++    fprintf(file, " [linker relaxable]");
  4.3910 ++
  4.3911 ++  flags &= ~(EF_AVR32_PIC | EF_AVR32_LINKRELAX);
  4.3912 ++
  4.3913 ++  if (flags)
  4.3914 ++    fprintf(file, _("<Unrecognized flag bits set>"));
  4.3915 ++
  4.3916 ++  fputc('\n', file);
  4.3917 ++
  4.3918 ++  return TRUE;
  4.3919 ++}
  4.3920 ++
  4.3921 ++/* Set avr32-specific linker options.  */
  4.3922 ++void bfd_elf32_avr32_set_options(struct bfd_link_info *info,
  4.3923 ++				 int direct_data_refs)
  4.3924 ++{
  4.3925 ++  struct elf_avr32_link_hash_table *htab;
  4.3926 ++
  4.3927 ++  htab = avr32_elf_hash_table (info);
  4.3928 ++  htab->direct_data_refs = !!direct_data_refs;
  4.3929 ++}
  4.3930 ++
  4.3931 ++
  4.3932 ++
  4.3933 ++/* Understanding core dumps */
  4.3934 ++
  4.3935 ++static bfd_boolean
  4.3936 ++avr32_elf_grok_prstatus(bfd *abfd, Elf_Internal_Note *note);
  4.3937 ++static bfd_boolean
  4.3938 ++avr32_elf_grok_psinfo(bfd *abfd, Elf_Internal_Note *note);
  4.3939 ++
  4.3940 ++static bfd_boolean
  4.3941 ++avr32_elf_grok_prstatus(bfd *abfd, Elf_Internal_Note *note)
  4.3942 ++{
  4.3943 ++  /* Linux/AVR32B elf_prstatus */
  4.3944 ++  if (note->descsz != 148)
  4.3945 ++    return FALSE;
  4.3946 ++
  4.3947 ++  /* pr_cursig */
  4.3948 ++  elf_tdata(abfd)->core_signal = bfd_get_16(abfd, note->descdata + 12);
  4.3949 ++
  4.3950 ++  /* pr_pid */
  4.3951 ++  elf_tdata(abfd)->core_pid = bfd_get_32(abfd, note->descdata + 24);
  4.3952 ++
  4.3953 ++  /* Make a ".reg/999" section for pr_reg. The size is for 16
  4.3954 ++     general-purpose registers, SR and r12_orig (18 * 4 = 72).  */
  4.3955 ++  return _bfd_elfcore_make_pseudosection(abfd, ".reg", 72,
  4.3956 ++					 note->descpos + 72);
  4.3957 ++}
  4.3958 ++
  4.3959 ++static bfd_boolean
  4.3960 ++avr32_elf_grok_psinfo(bfd *abfd, Elf_Internal_Note *note)
  4.3961 ++{
  4.3962 ++  /* Linux/AVR32B elf_prpsinfo */
  4.3963 ++  if (note->descsz != 128)
  4.3964 ++    return FALSE;
  4.3965 ++
  4.3966 ++  elf_tdata(abfd)->core_program
  4.3967 ++    = _bfd_elfcore_strndup(abfd, note->descdata + 32, 16);
  4.3968 ++  elf_tdata(abfd)->core_command
  4.3969 ++    = _bfd_elfcore_strndup(abfd, note->descdata + 48, 80);
  4.3970 ++
  4.3971 ++  /* Note that for some reason, a spurious space is tacked
  4.3972 ++     onto the end of the args in some (at least one anyway)
  4.3973 ++     implementations, so strip it off if it exists.  */
  4.3974 ++
  4.3975 ++  {
  4.3976 ++    char *command = elf_tdata (abfd)->core_command;
  4.3977 ++    int n = strlen (command);
  4.3978 ++
  4.3979 ++    if (0 < n && command[n - 1] == ' ')
  4.3980 ++      command[n - 1] = '\0';
  4.3981 ++  }
  4.3982 ++
  4.3983 ++  return TRUE;
  4.3984 ++}
  4.3985 ++
  4.3986 ++
  4.3987 ++#define ELF_ARCH			bfd_arch_avr32
  4.3988 ++#define ELF_MACHINE_CODE		EM_AVR32
  4.3989 ++#define ELF_MAXPAGESIZE			0x1000
  4.3990 ++
  4.3991 ++#define TARGET_BIG_SYM			bfd_elf32_avr32_vec
  4.3992 ++#define TARGET_BIG_NAME			"elf32-avr32"
  4.3993 ++
  4.3994 ++#define elf_backend_grok_prstatus	avr32_elf_grok_prstatus
  4.3995 ++#define elf_backend_grok_psinfo		avr32_elf_grok_psinfo
  4.3996 ++
  4.3997 ++/* Only RELA relocations are used */
  4.3998 ++#define elf_backend_may_use_rel_p	0
  4.3999 ++#define elf_backend_may_use_rela_p	1
  4.4000 ++#define elf_backend_default_use_rela_p	1
  4.4001 ++#define elf_backend_rela_normal		1
  4.4002 ++#define elf_info_to_howto_rel		NULL
  4.4003 ++#define elf_info_to_howto		avr32_info_to_howto
  4.4004 ++
  4.4005 ++#define bfd_elf32_bfd_copy_private_bfd_data	avr32_elf_copy_private_bfd_data
  4.4006 ++#define bfd_elf32_bfd_merge_private_bfd_data	avr32_elf_merge_private_bfd_data
  4.4007 ++#define bfd_elf32_bfd_set_private_flags		avr32_elf_set_private_flags
  4.4008 ++#define bfd_elf32_bfd_print_private_bfd_data	avr32_elf_print_private_bfd_data
  4.4009 ++#define bfd_elf32_new_section_hook		avr32_elf_new_section_hook
  4.4010 ++
  4.4011 ++#define elf_backend_gc_mark_hook		avr32_elf_gc_mark_hook
  4.4012 ++#define elf_backend_gc_sweep_hook		avr32_elf_gc_sweep_hook
  4.4013 ++#define elf_backend_relocate_section	avr32_elf_relocate_section
  4.4014 ++#define elf_backend_copy_indirect_symbol avr32_elf_copy_indirect_symbol
  4.4015 ++#define elf_backend_create_dynamic_sections avr32_elf_create_dynamic_sections
  4.4016 ++#define bfd_elf32_bfd_link_hash_table_create avr32_elf_link_hash_table_create
  4.4017 ++#define elf_backend_adjust_dynamic_symbol avr32_elf_adjust_dynamic_symbol
  4.4018 ++#define elf_backend_size_dynamic_sections avr32_elf_size_dynamic_sections
  4.4019 ++#define elf_backend_finish_dynamic_symbol avr32_elf_finish_dynamic_symbol
  4.4020 ++#define elf_backend_finish_dynamic_sections avr32_elf_finish_dynamic_sections
  4.4021 ++
  4.4022 ++#define bfd_elf32_bfd_relax_section	avr32_elf_relax_section
  4.4023 ++
  4.4024 ++/* Find out which symbols need an entry in .got. */
  4.4025 ++#define elf_backend_check_relocs	avr32_check_relocs
  4.4026 ++#define elf_backend_can_refcount	1
  4.4027 ++#define elf_backend_can_gc_sections	1
  4.4028 ++#define elf_backend_plt_readonly	1
  4.4029 ++#define elf_backend_plt_not_loaded	1
  4.4030 ++#define elf_backend_want_plt_sym	0
  4.4031 ++#define elf_backend_plt_alignment	2
  4.4032 ++#define elf_backend_want_dynbss		0
  4.4033 ++#define elf_backend_want_got_plt	0
  4.4034 ++#define elf_backend_want_got_sym	1
  4.4035 ++#define elf_backend_got_header_size	AVR32_GOT_HEADER_SIZE
  4.4036 ++
  4.4037 ++#include "elf32-target.h"
  4.4038 +--- /dev/null
  4.4039 ++++ b/bfd/elf32-avr32.h
  4.4040 +@@ -0,0 +1,23 @@
  4.4041 ++/* AVR32-specific support for 32-bit ELF.
  4.4042 ++   Copyright 2007 Atmel Corporation.
  4.4043 ++
  4.4044 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
  4.4045 ++
  4.4046 ++   This file is part of BFD, the Binary File Descriptor library.
  4.4047 ++
  4.4048 ++   This program is free software; you can redistribute it and/or modify
  4.4049 ++   it under the terms of the GNU General Public License as published by
  4.4050 ++   the Free Software Foundation; either version 2 of the License, or
  4.4051 ++   (at your option) any later version.
  4.4052 ++
  4.4053 ++   This program is distributed in the hope that it will be useful,
  4.4054 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
  4.4055 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  4.4056 ++   GNU General Public License for more details.
  4.4057 ++
  4.4058 ++   You should have received a copy of the GNU General Public License
  4.4059 ++   along with this program; if not, write to the Free Software
  4.4060 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  4.4061 ++
  4.4062 ++void bfd_elf32_avr32_set_options(struct bfd_link_info *info,
  4.4063 ++				 int direct_data_refs);
  4.4064 +--- a/bfd/elf-bfd.h
  4.4065 ++++ b/bfd/elf-bfd.h
  4.4066 +@@ -1400,6 +1400,10 @@ struct elf_obj_tdata
  4.4067 +      find_nearest_line.  */
  4.4068 +   struct mips_elf_find_line *find_line_info;
  4.4069 + 
  4.4070 ++  /* Used by AVR32 ELF relaxation code.  Contains an array of pointers
  4.4071 ++     for each local symbol to the fragment where it is defined.  */
  4.4072 ++  struct fragment **local_sym_frag;
  4.4073 ++
  4.4074 +   /* A place to stash dwarf1 info for this bfd.  */
  4.4075 +   struct dwarf1_debug *dwarf1_find_line_info;
  4.4076 + 
  4.4077 +--- a/bfd/Makefile.am
  4.4078 ++++ b/bfd/Makefile.am
  4.4079 +@@ -63,6 +63,7 @@ ALL_MACHINES = \
  4.4080 + 	cpu-arc.lo \
  4.4081 + 	cpu-arm.lo \
  4.4082 + 	cpu-avr.lo \
  4.4083 ++	cpu-avr32.lo \
  4.4084 + 	cpu-bfin.lo \
  4.4085 + 	cpu-cr16.lo \
  4.4086 + 	cpu-cr16c.lo \
  4.4087 +@@ -243,6 +244,7 @@ BFD32_BACKENDS = \
  4.4088 + 	elf32-arc.lo \
  4.4089 + 	elf32-arm.lo \
  4.4090 + 	elf32-avr.lo \
  4.4091 ++	elf32-avr32.lo \
  4.4092 + 	elf32-bfin.lo \
  4.4093 + 	elf32-cr16.lo \
  4.4094 + 	elf32-cr16c.lo \
  4.4095 +@@ -1328,6 +1330,10 @@ elf32-cr16.lo: elf32-cr16.c $(INCDIR)/fi
  4.4096 +   $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \
  4.4097 +   $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
  4.4098 +   $(INCDIR)/elf/cr16.h $(INCDIR)/elf/reloc-macros.h elf32-target.h
  4.4099 ++elf32-avr32.lo: elf32-avr32.c $(INCDIR)/filenames.h elf-bfd.h \
  4.4100 ++  $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
  4.4101 ++  $(INCDIR)/bfdlink.h $(INCDIR)/elf/avr32.h $(INCDIR)/elf/reloc-macros.h \
  4.4102 ++  elf32-target.h
  4.4103 + elf32-cr16c.lo: elf32-cr16c.c $(INCDIR)/filenames.h \
  4.4104 +   $(INCDIR)/hashtab.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/cr16c.h \
  4.4105 +   $(INCDIR)/elf/reloc-macros.h elf-bfd.h $(INCDIR)/elf/common.h \
  4.4106 +--- a/bfd/reloc.c
  4.4107 ++++ b/bfd/reloc.c
  4.4108 +@@ -3948,6 +3948,131 @@ ENUMDOC
  4.4109 +   instructions
  4.4110 + 
  4.4111 + ENUM
  4.4112 ++  BFD_RELOC_AVR32_DIFF32
  4.4113 ++ENUMX
  4.4114 ++  BFD_RELOC_AVR32_DIFF16
  4.4115 ++ENUMX
  4.4116 ++  BFD_RELOC_AVR32_DIFF8
  4.4117 ++ENUMDOC
  4.4118 ++  Difference between two labels: L2 - L1. The value of L1 is encoded
  4.4119 ++  as sym + addend, while the initial difference after assembly is
  4.4120 ++  inserted into the object file by the assembler.
  4.4121 ++ENUM
  4.4122 ++  BFD_RELOC_AVR32_GOT32
  4.4123 ++ENUMX
  4.4124 ++  BFD_RELOC_AVR32_GOT16
  4.4125 ++ENUMX
  4.4126 ++  BFD_RELOC_AVR32_GOT8
  4.4127 ++ENUMDOC
  4.4128 ++  Reference to a symbol through the Global Offset Table. The linker
  4.4129 ++  will allocate an entry for symbol in the GOT and insert the offset
  4.4130 ++  of this entry as the relocation value.
  4.4131 ++ENUM
  4.4132 ++  BFD_RELOC_AVR32_21S
  4.4133 ++ENUMX
  4.4134 ++  BFD_RELOC_AVR32_16U
  4.4135 ++ENUMX
  4.4136 ++  BFD_RELOC_AVR32_16S
  4.4137 ++ENUMX
  4.4138 ++  BFD_RELOC_AVR32_SUB5
  4.4139 ++ENUMX
  4.4140 ++  BFD_RELOC_AVR32_8S_EXT
  4.4141 ++ENUMX
  4.4142 ++  BFD_RELOC_AVR32_8S
  4.4143 ++ENUMX
  4.4144 ++  BFD_RELOC_AVR32_15S
  4.4145 ++ENUMDOC
  4.4146 ++  Normal (non-pc-relative) code relocations. Alignment and signedness
  4.4147 ++  is indicated by the suffixes. S means signed, U means unsigned. W
  4.4148 ++  means word-aligned, H means halfword-aligned, neither means
  4.4149 ++  byte-aligned (no alignment.) SUB5 is the same relocation as 16S.
  4.4150 ++ENUM
  4.4151 ++  BFD_RELOC_AVR32_22H_PCREL
  4.4152 ++ENUMX
  4.4153 ++  BFD_RELOC_AVR32_18W_PCREL
  4.4154 ++ENUMX
  4.4155 ++  BFD_RELOC_AVR32_16B_PCREL
  4.4156 ++ENUMX
  4.4157 ++  BFD_RELOC_AVR32_16N_PCREL
  4.4158 ++ENUMX
  4.4159 ++  BFD_RELOC_AVR32_14UW_PCREL
  4.4160 ++ENUMX
  4.4161 ++  BFD_RELOC_AVR32_11H_PCREL
  4.4162 ++ENUMX
  4.4163 ++  BFD_RELOC_AVR32_10UW_PCREL
  4.4164 ++ENUMX
  4.4165 ++  BFD_RELOC_AVR32_9H_PCREL
  4.4166 ++ENUMX
  4.4167 ++  BFD_RELOC_AVR32_9UW_PCREL
  4.4168 ++ENUMDOC
  4.4169 ++  PC-relative relocations are signed if neither 'U' nor 'S' is
  4.4170 ++  specified. However, we explicitly tack on a 'B' to indicate no
  4.4171 ++  alignment, to avoid confusion with data relocs. All of these resolve
  4.4172 ++  to sym + addend - offset, except the one with 'N' (negated) suffix.
  4.4173 ++  This particular one resolves to offset - sym - addend.
  4.4174 ++ENUM
  4.4175 ++  BFD_RELOC_AVR32_GOTPC
  4.4176 ++ENUMDOC
  4.4177 ++  Subtract the link-time address of the GOT from (symbol + addend)
  4.4178 ++  and insert the result.
  4.4179 ++ENUM
  4.4180 ++  BFD_RELOC_AVR32_GOTCALL
  4.4181 ++ENUMX
  4.4182 ++  BFD_RELOC_AVR32_LDA_GOT
  4.4183 ++ENUMX
  4.4184 ++  BFD_RELOC_AVR32_GOT21S
  4.4185 ++ENUMX
  4.4186 ++  BFD_RELOC_AVR32_GOT18SW
  4.4187 ++ENUMX
  4.4188 ++  BFD_RELOC_AVR32_GOT16S
  4.4189 ++ENUMDOC
  4.4190 ++  Reference to a symbol through the GOT. The linker will allocate an
  4.4191 ++  entry for symbol in the GOT and insert the offset of this entry as
  4.4192 ++  the relocation value. addend must be zero. As usual, 'S' means
  4.4193 ++  signed, 'W' means word-aligned, etc.
  4.4194 ++ENUM
  4.4195 ++  BFD_RELOC_AVR32_32_CPENT
  4.4196 ++ENUMDOC
  4.4197 ++  32-bit constant pool entry. I don't think 8- and 16-bit entries make
  4.4198 ++  a whole lot of sense.
  4.4199 ++ENUM
  4.4200 ++  BFD_RELOC_AVR32_CPCALL
  4.4201 ++ENUMX
  4.4202 ++  BFD_RELOC_AVR32_16_CP
  4.4203 ++ENUMX
  4.4204 ++  BFD_RELOC_AVR32_9W_CP
  4.4205 ++ENUMDOC
  4.4206 ++  Constant pool references. Some of these relocations are signed,
  4.4207 ++  others are unsigned. It doesn't really matter, since the constant
  4.4208 ++  pool always comes after the code that references it.
  4.4209 ++ENUM
  4.4210 ++  BFD_RELOC_AVR32_ALIGN
  4.4211 ++ENUMDOC
  4.4212 ++  sym must be the absolute symbol. The addend specifies the alignment
  4.4213 ++  order, e.g. if addend is 2, the linker must add padding so that the
  4.4214 ++  next address is aligned to a 4-byte boundary.
  4.4215 ++ENUM
  4.4216 ++  BFD_RELOC_AVR32_14UW
  4.4217 ++ENUMX
  4.4218 ++  BFD_RELOC_AVR32_10UW
  4.4219 ++ENUMX
  4.4220 ++  BFD_RELOC_AVR32_10SW
  4.4221 ++ENUMX
  4.4222 ++  BFD_RELOC_AVR32_STHH_W
  4.4223 ++ENUMX
  4.4224 ++  BFD_RELOC_AVR32_7UW
  4.4225 ++ENUMX
  4.4226 ++  BFD_RELOC_AVR32_6S
  4.4227 ++ENUMX
  4.4228 ++  BFD_RELOC_AVR32_6UW
  4.4229 ++ENUMX
  4.4230 ++  BFD_RELOC_AVR32_4UH
  4.4231 ++ENUMX
  4.4232 ++  BFD_RELOC_AVR32_3U
  4.4233 ++ENUMDOC
  4.4234 ++  Code relocations that will never make it to the output file.
  4.4235 ++
  4.4236 ++ENUM
  4.4237 +   BFD_RELOC_390_12
  4.4238 + ENUMDOC
  4.4239 +    Direct 12 bit.
  4.4240 +--- a/bfd/targets.c
  4.4241 ++++ b/bfd/targets.c
  4.4242 +@@ -564,6 +564,7 @@ extern const bfd_target bfd_efi_app_ia32
  4.4243 + extern const bfd_target bfd_efi_app_x86_64_vec;
  4.4244 + extern const bfd_target bfd_efi_app_ia64_vec;
  4.4245 + extern const bfd_target bfd_elf32_avr_vec;
  4.4246 ++extern const bfd_target bfd_elf32_avr32_vec;
  4.4247 + extern const bfd_target bfd_elf32_bfin_vec;
  4.4248 + extern const bfd_target bfd_elf32_bfinfdpic_vec;
  4.4249 + extern const bfd_target bfd_elf32_big_generic_vec;
  4.4250 +@@ -884,6 +885,7 @@ static const bfd_target * const _bfd_tar
  4.4251 + 	&bfd_efi_app_ia64_vec,
  4.4252 + #endif
  4.4253 + 	&bfd_elf32_avr_vec,
  4.4254 ++	&bfd_elf32_avr32_vec,
  4.4255 + 	&bfd_elf32_bfin_vec,
  4.4256 + 	&bfd_elf32_bfinfdpic_vec,
  4.4257 + 
  4.4258 +--- a/binutils/Makefile.am
  4.4259 ++++ b/binutils/Makefile.am
  4.4260 +@@ -577,7 +577,7 @@ readelf.o: readelf.c sysdep.h $(INCDIR)/
  4.4261 +   $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h bucomm.h dwarf.h \
  4.4262 +   $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
  4.4263 +   $(INCDIR)/elf/h8.h $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/alpha.h \
  4.4264 +-  $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h $(INCDIR)/elf/avr.h \
  4.4265 ++  $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h $(INCDIR)/elf/avr.h $(INCDIR)/elf/avr32.h\
  4.4266 +   $(INCDIR)/elf/bfin.h $(INCDIR)/elf/cris.h $(INCDIR)/elf/crx.h \
  4.4267 +   $(INCDIR)/elf/d10v.h $(INCDIR)/elf/d30v.h $(INCDIR)/elf/dlx.h \
  4.4268 +   $(INCDIR)/elf/fr30.h $(INCDIR)/elf/frv.h $(INCDIR)/elf/hppa.h \
  4.4269 +--- a/binutils/readelf.c
  4.4270 ++++ b/binutils/readelf.c
  4.4271 +@@ -21,7 +21,7 @@
  4.4272 +    along with this program; if not, write to the Free Software
  4.4273 +    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
  4.4274 +    02110-1301, USA.  */
  4.4275 +-
  4.4276 ++
  4.4277 + /* The difference between readelf and objdump:
  4.4278 + 
  4.4279 +   Both programs are capable of displaying the contents of ELF format files,
  4.4280 +@@ -40,7 +40,7 @@
  4.4281 +   There is also the case that readelf can provide more information about an
  4.4282 +   ELF file than is provided by objdump.  In particular it can display DWARF
  4.4283 +   debugging information which (at the moment) objdump cannot.  */
  4.4284 +-
  4.4285 ++
  4.4286 + #include "sysdep.h"
  4.4287 + #include <assert.h>
  4.4288 + #include <sys/stat.h>
  4.4289 +@@ -109,6 +109,7 @@
  4.4290 + #include "elf/arc.h"
  4.4291 + #include "elf/arm.h"
  4.4292 + #include "elf/avr.h"
  4.4293 ++#include "elf/avr32.h"
  4.4294 + #include "elf/bfin.h"
  4.4295 + #include "elf/cr16.h"
  4.4296 + #include "elf/cris.h"
  4.4297 +@@ -303,7 +304,7 @@ static void (*byte_put) (unsigned char *
  4.4298 + #define streq(a,b)	  (strcmp ((a), (b)) == 0)
  4.4299 + #define strneq(a,b,n)	  (strncmp ((a), (b), (n)) == 0)
  4.4300 + #define const_strneq(a,b) (strncmp ((a), (b), sizeof (b) - 1) == 0)
  4.4301 +-
  4.4302 ++
  4.4303 + static void *
  4.4304 + get_data (void *var, FILE *file, long offset, size_t size, size_t nmemb,
  4.4305 + 	  const char *reason)
  4.4306 +@@ -614,6 +615,7 @@ guess_is_rela (unsigned long e_machine)
  4.4307 +     case EM_ALPHA:
  4.4308 +     case EM_ALTERA_NIOS2:
  4.4309 +     case EM_AVR:
  4.4310 ++    case EM_AVR32:
  4.4311 +     case EM_AVR_OLD:
  4.4312 +     case EM_BLACKFIN:
  4.4313 +     case EM_CR16:
  4.4314 +@@ -1006,6 +1008,10 @@ dump_relocations (FILE *file,
  4.4315 + 	  rtype = elf_avr_reloc_type (type);
  4.4316 + 	  break;
  4.4317 + 
  4.4318 ++	case EM_AVR32:
  4.4319 ++	  rtype = elf_avr32_reloc_type (type);
  4.4320 ++	  break;
  4.4321 ++
  4.4322 + 	case EM_OLD_SPARCV9:
  4.4323 + 	case EM_SPARC32PLUS:
  4.4324 + 	case EM_SPARCV9:
  4.4325 +@@ -1763,6 +1769,7 @@ get_machine_name (unsigned e_machine)
  4.4326 +     case EM_VAX:		return "Digital VAX";
  4.4327 +     case EM_AVR_OLD:
  4.4328 +     case EM_AVR:		return "Atmel AVR 8-bit microcontroller";
  4.4329 ++    case EM_AVR32:		return "Atmel AVR32";
  4.4330 +     case EM_CRIS:		return "Axis Communications 32-bit embedded processor";
  4.4331 +     case EM_JAVELIN:		return "Infineon Technologies 32-bit embedded cpu";
  4.4332 +     case EM_FIREPATH:		return "Element 14 64-bit DSP processor";
  4.4333 +--- a/gas/as.c
  4.4334 ++++ b/gas/as.c
  4.4335 +@@ -441,10 +441,10 @@ parse_args (int * pargc, char *** pargv)
  4.4336 +        the end of the preceeding line so that it is simpler to
  4.4337 +        selectively add and remove lines from this list.  */
  4.4338 +     {"alternate", no_argument, NULL, OPTION_ALTERNATE}
  4.4339 +-    /* The entry for "a" is here to prevent getopt_long_only() from
  4.4340 +-       considering that -a is an abbreviation for --alternate.  This is
  4.4341 +-       necessary because -a=<FILE> is a valid switch but getopt would
  4.4342 +-       normally reject it since --alternate does not take an argument.  */
  4.4343 ++    /* The next two entries are here to prevent getopt_long_only() from
  4.4344 ++       considering that -a or -al is an abbreviation for --alternate.
  4.4345 ++       This is necessary because -a=<FILE> is a valid switch but getopt
  4.4346 ++       would normally reject it since --alternate does not take an argument.  */
  4.4347 +     ,{"a", optional_argument, NULL, 'a'}
  4.4348 +     /* Handle -al=<FILE>.  */
  4.4349 +     ,{"al", optional_argument, NULL, OPTION_AL}
  4.4350 +@@ -803,8 +803,15 @@ This program has absolutely no warranty.
  4.4351 + 	case 'a':
  4.4352 + 	  if (optarg)
  4.4353 + 	    {
  4.4354 +-	      if (optarg != old_argv[optind] && optarg[-1] == '=')
  4.4355 +-		--optarg;
  4.4356 ++	      /* If optarg is part of the -a switch and not a separate argument
  4.4357 ++		 in its own right, then scan backwards to the just after the -a.
  4.4358 ++		 This means skipping over both '=' and 'l' which might have been
  4.4359 ++		 taken to be part of the -a switch itself.  */
  4.4360 ++	      if (optarg != old_argv[optind])
  4.4361 ++		{
  4.4362 ++		  while (optarg[-1] == '=' || optarg[-1] == 'l')
  4.4363 ++		    --optarg;
  4.4364 ++		}
  4.4365 + 
  4.4366 + 	      if (md_parse_option (optc, optarg) != 0)
  4.4367 + 		break;
  4.4368 +@@ -1234,7 +1241,7 @@ main (int argc, char ** argv)
  4.4369 +     keep_it = 0;
  4.4370 + 
  4.4371 +   if (!keep_it)
  4.4372 +-    unlink_if_ordinary (out_file_name);
  4.4373 ++    unlink (out_file_name);
  4.4374 + 
  4.4375 +   input_scrub_end ();
  4.4376 + 
  4.4377 +--- /dev/null
  4.4378 ++++ b/gas/config/tc-avr32.c
  4.4379 +@@ -0,0 +1,4806 @@
  4.4380 ++/* Assembler implementation for AVR32.
  4.4381 ++   Copyright 2003-2006 Atmel Corporation.
  4.4382 ++
  4.4383 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
  4.4384 ++
  4.4385 ++   This file is part of GAS, the GNU Assembler.
  4.4386 ++
  4.4387 ++   GAS is free software; you can redistribute it and/or modify it
  4.4388 ++   under the terms of the GNU General Public License as published by
  4.4389 ++   the Free Software Foundation; either version 2, or (at your option)
  4.4390 ++   any later version.
  4.4391 ++
  4.4392 ++   GAS is distributed in the hope that it will be useful, but WITHOUT
  4.4393 ++   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  4.4394 ++   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
  4.4395 ++   License for more details.
  4.4396 ++
  4.4397 ++   You should have received a copy of the GNU General Public License
  4.4398 ++   along with GAS; see the file COPYING.  If not, write to the Free
  4.4399 ++   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
  4.4400 ++   02111-1307, USA.  */
  4.4401 ++
  4.4402 ++#include <stdio.h>
  4.4403 ++#include "as.h"
  4.4404 ++#include "safe-ctype.h"
  4.4405 ++#include "subsegs.h"
  4.4406 ++#include "symcat.h"
  4.4407 ++#include "opcodes/avr32-opc.h"
  4.4408 ++#include "opcodes/avr32-asm.h"
  4.4409 ++#include "elf/avr32.h"
  4.4410 ++#include "dwarf2dbg.h"
  4.4411 ++
  4.4412 ++#define xDEBUG
  4.4413 ++#define xOPC_CONSISTENCY_CHECK
  4.4414 ++
  4.4415 ++#ifdef DEBUG
  4.4416 ++# define pr_debug(fmt, args...) fprintf(stderr, fmt, ##args)
  4.4417 ++#else
  4.4418 ++# define pr_debug(fmt, args...)
  4.4419 ++#endif
  4.4420 ++
  4.4421 ++/* 3 MSB of instruction word indicate group. Group 7 -> extended */
  4.4422 ++#define AVR32_COMPACT_P(opcode) ((opcode[0] & 0xe0) != 0xe0)
  4.4423 ++
  4.4424 ++#define streq(a, b)		(strcmp(a, b) == 0)
  4.4425 ++#define skip_whitespace(str)	do { while(*(str) == ' ') ++(str); } while(0)
  4.4426 ++
  4.4427 ++/* Flags given on the command line */
  4.4428 ++static int avr32_pic	= FALSE;
  4.4429 ++int linkrelax	= FALSE;
  4.4430 ++int avr32_iarcompat	= FALSE;
  4.4431 ++
  4.4432 ++/* This array holds the chars that always start a comment. */
  4.4433 ++const char comment_chars[]		= "#";
  4.4434 ++
  4.4435 ++/* This array holds the chars that only start a comment at the
  4.4436 ++   beginning of a line.  We must include '#' here because the compiler
  4.4437 ++   may produce #APP and #NO_APP in its output.  */
  4.4438 ++const char line_comment_chars[]		= "#";
  4.4439 ++
  4.4440 ++/* These may be used instead of newline (same as ';' in C).  */
  4.4441 ++const char line_separator_chars[]	= ";";
  4.4442 ++
  4.4443 ++/* Chars that can be used to separate mantissa from exponent in
  4.4444 ++   floating point numbers.  */
  4.4445 ++const char EXP_CHARS[]			= "eE";
  4.4446 ++
  4.4447 ++/* Chars that mean this number is a floating point constant.  */
  4.4448 ++const char FLT_CHARS[]			= "dD";
  4.4449 ++
  4.4450 ++/* Pre-defined "_GLOBAL_OFFSET_TABLE_"  */
  4.4451 ++symbolS *GOT_symbol;
  4.4452 ++
  4.4453 ++static struct hash_control *avr32_mnemonic_htab;
  4.4454 ++
  4.4455 ++struct avr32_ifield_data
  4.4456 ++{
  4.4457 ++  bfd_vma value;
  4.4458 ++  /* FIXME: Get rid of align_order and complain. complain is never
  4.4459 ++     used, align_order is used in one place.  Try to use the relax
  4.4460 ++     table instead.  */
  4.4461 ++  unsigned int align_order;
  4.4462 ++};
  4.4463 ++
  4.4464 ++struct avr32_insn
  4.4465 ++{
  4.4466 ++  const struct avr32_syntax *syntax;
  4.4467 ++  expressionS immediate;
  4.4468 ++  int pcrel;
  4.4469 ++  int force_extended;
  4.4470 ++  unsigned int next_slot;
  4.4471 ++  bfd_reloc_code_real_type r_type;
  4.4472 ++  struct avr32_ifield_data field_value[AVR32_MAX_FIELDS];
  4.4473 ++};
  4.4474 ++
  4.4475 ++static struct avr32_insn current_insn;
  4.4476 ++
  4.4477 ++/* The target specific pseudo-ops we support. */
  4.4478 ++static void s_rseg (int);
  4.4479 ++static void s_cpool(int);
  4.4480 ++
  4.4481 ++const pseudo_typeS md_pseudo_table[] =
  4.4482 ++{
  4.4483 ++  /* Make sure that .word is 32 bits */
  4.4484 ++  { "word", cons, 4 },
  4.4485 ++  { "file", (void (*) PARAMS ((int))) dwarf2_directive_file, 0 },
  4.4486 ++  { "loc", dwarf2_directive_loc, 0 },
  4.4487 ++
  4.4488 ++  /* .lcomm requires an explicit alignment parameter */
  4.4489 ++  { "lcomm", s_lcomm, 1 },
  4.4490 ++
  4.4491 ++  /* AVR32-specific pseudo-ops */
  4.4492 ++  { "cpool", s_cpool, 0},
  4.4493 ++
  4.4494 ++  /* IAR compatible pseudo-ops */
  4.4495 ++  { "program", s_ignore, 0 },
  4.4496 ++  { "public", s_globl, 0 },
  4.4497 ++  { "extern", s_ignore, 0 },
  4.4498 ++  { "module", s_ignore, 0 },
  4.4499 ++  { "rseg", s_rseg, 0 },
  4.4500 ++  { "dc8", cons, 1 },
  4.4501 ++  { "dc16", cons, 2 },
  4.4502 ++  { "dc32", cons, 4 },
  4.4503 ++
  4.4504 ++  { NULL, NULL, 0 }
  4.4505 ++};
  4.4506 ++
  4.4507 ++/* Questionable stuff starts here */
  4.4508 ++
  4.4509 ++enum avr32_opinfo {
  4.4510 ++  AVR32_OPINFO_NONE = BFD_RELOC_NONE,
  4.4511 ++  AVR32_OPINFO_GOT,
  4.4512 ++  AVR32_OPINFO_TLSGD,
  4.4513 ++  AVR32_OPINFO_HI,
  4.4514 ++  AVR32_OPINFO_LO,
  4.4515 ++};
  4.4516 ++
  4.4517 ++enum avr32_arch {
  4.4518 ++  ARCH_TYPE_AP,
  4.4519 ++  ARCH_TYPE_UCR1,
  4.4520 ++  ARCH_TYPE_UCR2,
  4.4521 ++};
  4.4522 ++
  4.4523 ++struct arch_type_s
  4.4524 ++{
  4.4525 ++  /* Architecture name */
  4.4526 ++  char *name;
  4.4527 ++  /* Instruction Set Architecture Flags */
  4.4528 ++  unsigned long isa_flags;
  4.4529 ++};
  4.4530 ++
  4.4531 ++struct part_type_s
  4.4532 ++{
  4.4533 ++  /* Part name */
  4.4534 ++  char *name;
  4.4535 ++  /* Architecture type */
  4.4536 ++  unsigned int arch;
  4.4537 ++};
  4.4538 ++
  4.4539 ++static struct arch_type_s arch_types[] =
  4.4540 ++{
  4.4541 ++  {"ap", AVR32_V1 | AVR32_SIMD | AVR32_DSP | AVR32_PICO},
  4.4542 ++  {"ucr1", AVR32_V1 | AVR32_DSP | AVR32_RMW},
  4.4543 ++  {"ucr2", AVR32_V1 | AVR32_V2 | AVR32_DSP | AVR32_RMW},
  4.4544 ++  {"all-insn", AVR32_V1 | AVR32_V2 | AVR32_SIMD | AVR32_DSP | AVR32_RMW | AVR32_FP | AVR32_PICO},
  4.4545 ++  {NULL, 0}
  4.4546 ++};
  4.4547 ++
  4.4548 ++static struct part_type_s part_types[] = {
  4.4549 ++  {"ap7000", ARCH_TYPE_AP},
  4.4550 ++  {"ap7001", ARCH_TYPE_AP},
  4.4551 ++  {"ap7002", ARCH_TYPE_AP},
  4.4552 ++  {"ap7200", ARCH_TYPE_AP},
  4.4553 ++  {"uc3a0128", ARCH_TYPE_UCR2},
  4.4554 ++  {"uc3a0256", ARCH_TYPE_UCR2},
  4.4555 ++  {"uc3a0512es", ARCH_TYPE_UCR1},
  4.4556 ++  {"uc3a0512", ARCH_TYPE_UCR2},
  4.4557 ++  {"uc3a1128", ARCH_TYPE_UCR2},
  4.4558 ++  {"uc3a1256es", ARCH_TYPE_UCR1},
  4.4559 ++  {"uc3a1256", ARCH_TYPE_UCR2},
  4.4560 ++  {"uc3a1512es", ARCH_TYPE_UCR1},
  4.4561 ++  {"uc3a1512", ARCH_TYPE_UCR2},
  4.4562 ++  {"uc3a364", ARCH_TYPE_UCR2},
  4.4563 ++  {"uc3a364s", ARCH_TYPE_UCR2},
  4.4564 ++  {"uc3a3128", ARCH_TYPE_UCR2},
  4.4565 ++  {"uc3a3128s", ARCH_TYPE_UCR2},
  4.4566 ++  {"uc3a3256", ARCH_TYPE_UCR2},
  4.4567 ++  {"uc3a3256s", ARCH_TYPE_UCR2},
  4.4568 ++  {"uc3b064", ARCH_TYPE_UCR1},
  4.4569 ++  {"uc3b0128", ARCH_TYPE_UCR1},
  4.4570 ++  {"uc3b0256es", ARCH_TYPE_UCR1},
  4.4571 ++  {"uc3b0256", ARCH_TYPE_UCR1},
  4.4572 ++  {"uc3b164", ARCH_TYPE_UCR1},
  4.4573 ++  {"uc3b1128", ARCH_TYPE_UCR1},
  4.4574 ++  {"uc3b1256es", ARCH_TYPE_UCR1},
  4.4575 ++  {"uc3b1256", ARCH_TYPE_UCR1},
  4.4576 ++  {NULL, 0}
  4.4577 ++};
  4.4578 ++
  4.4579 ++/* Current architecture type.  */
  4.4580 ++static struct arch_type_s default_arch = {"all-insn", AVR32_V1 | AVR32_V2 | AVR32_SIMD | AVR32_DSP | AVR32_RMW | AVR32_FP | AVR32_PICO };
  4.4581 ++static struct arch_type_s *avr32_arch = &default_arch;
  4.4582 ++
  4.4583 ++/* Display nicely formatted list of known part- and architecture names.  */
  4.4584 ++
  4.4585 ++static void
  4.4586 ++show_arch_list (FILE *stream)
  4.4587 ++{
  4.4588 ++  int i, x;
  4.4589 ++
  4.4590 ++  fprintf (stream, _("Known architecture names:"));
  4.4591 ++  x = 1000;
  4.4592 ++
  4.4593 ++  for (i = 0; arch_types[i].name; i++)
  4.4594 ++    {
  4.4595 ++      int len = strlen (arch_types[i].name);
  4.4596 ++
  4.4597 ++      x += len + 1;
  4.4598 ++
  4.4599 ++      if (x < 75)
  4.4600 ++	fprintf (stream, " %s", arch_types[i].name);
  4.4601 ++      else
  4.4602 ++	{
  4.4603 ++	  fprintf (stream, "\n  %s", arch_types[i].name);
  4.4604 ++	  x = len + 2;
  4.4605 ++	}
  4.4606 ++    }
  4.4607 ++
  4.4608 ++  fprintf (stream, "\n");
  4.4609 ++}
  4.4610 ++
  4.4611 ++static void
  4.4612 ++show_part_list (FILE *stream)
  4.4613 ++{
  4.4614 ++  int i, x;
  4.4615 ++
  4.4616 ++  fprintf (stream, _("Known part names:"));
  4.4617 ++  x = 1000;
  4.4618 ++
  4.4619 ++  for (i = 0; part_types[i].name; i++)
  4.4620 ++    {
  4.4621 ++      int len = strlen(part_types[i].name);
  4.4622 ++
  4.4623 ++      x += len + 1;
  4.4624 ++
  4.4625 ++      if (x < 75)
  4.4626 ++	fprintf (stream, " %s", part_types[i].name);
  4.4627 ++      else
  4.4628 ++	{
  4.4629 ++	  fprintf(stream, "\n  %s", part_types[i].name);
  4.4630 ++	  x = len + 2;
  4.4631 ++	}
  4.4632 ++    }
  4.4633 ++
  4.4634 ++  fprintf (stream, "\n");
  4.4635 ++}
  4.4636 ++
  4.4637 ++const char *md_shortopts = "";
  4.4638 ++struct option md_longopts[] =
  4.4639 ++{
  4.4640 ++#define OPTION_ARCH		(OPTION_MD_BASE)
  4.4641 ++#define OPTION_PART		(OPTION_ARCH + 1)
  4.4642 ++#define OPTION_IAR		(OPTION_PART + 1)
  4.4643 ++#define OPTION_PIC		(OPTION_IAR + 1)
  4.4644 ++#define OPTION_NOPIC		(OPTION_PIC + 1)
  4.4645 ++#define OPTION_LINKRELAX	(OPTION_NOPIC + 1)
  4.4646 ++#define OPTION_NOLINKRELAX	(OPTION_LINKRELAX + 1)
  4.4647 ++#define OPTION_DIRECT_DATA_REFS (OPTION_NOLINKRELAX + 1)
  4.4648 ++  {"march",		required_argument, NULL, OPTION_ARCH},
  4.4649 ++  {"mpart",		required_argument, NULL, OPTION_PART},
  4.4650 ++  {"iar",		no_argument, NULL, OPTION_IAR},
  4.4651 ++  {"pic",		no_argument, NULL, OPTION_PIC},
  4.4652 ++  {"no-pic",		no_argument, NULL, OPTION_NOPIC},
  4.4653 ++  {"linkrelax",		no_argument, NULL, OPTION_LINKRELAX},
  4.4654 ++  {"no-linkrelax",	no_argument, NULL, OPTION_NOLINKRELAX},
  4.4655 ++  /* deprecated alias for -mpart=xxx */
  4.4656 ++  {"mcpu",		required_argument, NULL, OPTION_PART},
  4.4657 ++  {NULL,		no_argument, NULL, 0}
  4.4658 ++};
  4.4659 ++
  4.4660 ++size_t md_longopts_size = sizeof (md_longopts);
  4.4661 ++
  4.4662 ++void
  4.4663 ++md_show_usage (FILE *stream)
  4.4664 ++{
  4.4665 ++  fprintf (stream, _("\
  4.4666 ++AVR32 options:\n\
  4.4667 ++  -march=[arch-name]      Select cpu architecture. [Default `all-insn']\n\
  4.4668 ++  -mpart=[part-name]      Select specific part. [Default `none']\n\
  4.4669 ++  --pic                   Produce Position-Independent Code\n\
  4.4670 ++  --no-pic                Don't produce Position-Independent Code\n\
  4.4671 ++  --linkrelax             Produce output suitable for linker relaxing\n\
  4.4672 ++  --no-linkrelax          Don't produce output suitable for linker relaxing\n"));
  4.4673 ++  show_arch_list(stream);
  4.4674 ++}
  4.4675 ++
  4.4676 ++int
  4.4677 ++md_parse_option (int c, char *arg ATTRIBUTE_UNUSED)
  4.4678 ++{
  4.4679 ++  switch (c)
  4.4680 ++    {
  4.4681 ++    case OPTION_ARCH:
  4.4682 ++      {
  4.4683 ++	int i;
  4.4684 ++	char *s = alloca (strlen (arg) + 1);
  4.4685 ++
  4.4686 ++	{
  4.4687 ++	  char *t = s;
  4.4688 ++	  char *arg1 = arg;
  4.4689 ++
  4.4690 ++	  do
  4.4691 ++	    *t = TOLOWER (*arg1++);
  4.4692 ++	  while (*t++);
  4.4693 ++	}
  4.4694 ++
  4.4695 ++        /* Add backward compability */
  4.4696 ++        if (strcmp ("uc", s)== 0)
  4.4697 ++          {
  4.4698 ++            as_warn("Deprecated arch `%s' specified. "
  4.4699 ++                    "Please use '-march=ucr1' instead. "
  4.4700 ++                    "Converting to arch 'ucr1'\n",
  4.4701 ++                     s);
  4.4702 ++            s="ucr1";
  4.4703 ++          }
  4.4704 ++
  4.4705 ++	for (i = 0; arch_types[i].name; ++i)
  4.4706 ++	  if (strcmp (arch_types[i].name, s) == 0)
  4.4707 ++	    break;
  4.4708 ++
  4.4709 ++	if (!arch_types[i].name)
  4.4710 ++	  {
  4.4711 ++	    show_arch_list (stderr);
  4.4712 ++	    as_fatal (_("unknown architecture: %s\n"), arg);
  4.4713 ++	  }
  4.4714 ++
  4.4715 ++        avr32_arch = &arch_types[i];
  4.4716 ++	break;
  4.4717 ++      }
  4.4718 ++    case OPTION_PART:
  4.4719 ++      {
  4.4720 ++	int i;
  4.4721 ++	char *s = alloca (strlen (arg) + 1);
  4.4722 ++	char *t = s;
  4.4723 ++	char *p = arg;
  4.4724 ++
  4.4725 ++	/* If arch type has already been set, don't bother.
  4.4726 ++	   -march= always overrides -mpart=  */
  4.4727 ++	if (avr32_arch != &default_arch)
  4.4728 ++	  break;
  4.4729 ++
  4.4730 ++	do
  4.4731 ++	  *t = TOLOWER (*p++);
  4.4732 ++	while (*t++);
  4.4733 ++
  4.4734 ++	for (i = 0; part_types[i].name; ++i)
  4.4735 ++	  if (strcmp (part_types[i].name, s) == 0)
  4.4736 ++	    break;
  4.4737 ++
  4.4738 ++	if (!part_types[i].name)
  4.4739 ++	  {
  4.4740 ++	    show_part_list (stderr);
  4.4741 ++	    as_fatal (_("unknown part: %s\n"), arg);
  4.4742 ++	  }
  4.4743 ++
  4.4744 ++	avr32_arch = &arch_types[part_types[i].arch];
  4.4745 ++	break;
  4.4746 ++      }
  4.4747 ++    case OPTION_IAR:
  4.4748 ++      avr32_iarcompat = 1;
  4.4749 ++      break;
  4.4750 ++    case OPTION_PIC:
  4.4751 ++      avr32_pic = 1;
  4.4752 ++      break;
  4.4753 ++    case OPTION_NOPIC:
  4.4754 ++      avr32_pic = 0;
  4.4755 ++      break;
  4.4756 ++    case OPTION_LINKRELAX:
  4.4757 ++      linkrelax = 1;
  4.4758 ++      break;
  4.4759 ++    case OPTION_NOLINKRELAX:
  4.4760 ++      linkrelax = 0;
  4.4761 ++      break;
  4.4762 ++    default:
  4.4763 ++      return 0;
  4.4764 ++    }
  4.4765 ++  return 1;
  4.4766 ++}
  4.4767 ++
  4.4768 ++/* Can't use symbol_new here, so have to create a symbol and then at
  4.4769 ++   a later date assign it a value. Thats what these functions do.
  4.4770 ++
  4.4771 ++   Shamelessly stolen from ARM.  */
  4.4772 ++
  4.4773 ++static void
  4.4774 ++symbol_locate (symbolS *    symbolP,
  4.4775 ++	       const char * name,	/* It is copied, the caller can modify.  */
  4.4776 ++	       segT         segment,	/* Segment identifier (SEG_<something>).  */
  4.4777 ++	       valueT       valu,	/* Symbol value.  */
  4.4778 ++	       fragS *      frag)	/* Associated fragment.  */
  4.4779 ++{
  4.4780 ++  unsigned int name_length;
  4.4781 ++  char * preserved_copy_of_name;
  4.4782 ++
  4.4783 ++  name_length = strlen (name) + 1;   /* +1 for \0.  */
  4.4784 ++  obstack_grow (&notes, name, name_length);
  4.4785 ++  preserved_copy_of_name = obstack_finish (&notes);
  4.4786 ++#ifdef STRIP_UNDERSCORE
  4.4787 ++  if (preserved_copy_of_name[0] == '_')
  4.4788 ++    preserved_copy_of_name++;
  4.4789 ++#endif
  4.4790 ++
  4.4791 ++#ifdef tc_canonicalize_symbol_name
  4.4792 ++  preserved_copy_of_name =
  4.4793 ++    tc_canonicalize_symbol_name (preserved_copy_of_name);
  4.4794 ++#endif
  4.4795 ++
  4.4796 ++  S_SET_NAME (symbolP, preserved_copy_of_name);
  4.4797 ++
  4.4798 ++  S_SET_SEGMENT (symbolP, segment);
  4.4799 ++  S_SET_VALUE (symbolP, valu);
  4.4800 ++  symbol_clear_list_pointers (symbolP);
  4.4801 ++
  4.4802 ++  symbol_set_frag (symbolP, frag);
  4.4803 ++
  4.4804 ++  /* Link to end of symbol chain.  */
  4.4805 ++  {
  4.4806 ++    extern int symbol_table_frozen;
  4.4807 ++
  4.4808 ++    if (symbol_table_frozen)
  4.4809 ++      abort ();
  4.4810 ++  }
  4.4811 ++
  4.4812 ++  symbol_append (symbolP, symbol_lastP, & symbol_rootP, & symbol_lastP);
  4.4813 ++
  4.4814 ++  obj_symbol_new_hook (symbolP);
  4.4815 ++
  4.4816 ++#ifdef tc_symbol_new_hook
  4.4817 ++  tc_symbol_new_hook (symbolP);
  4.4818 ++#endif
  4.4819 ++
  4.4820 ++#ifdef DEBUG_SYMS
  4.4821 ++  verify_symbol_chain (symbol_rootP, symbol_lastP);
  4.4822 ++#endif /* DEBUG_SYMS  */
  4.4823 ++}
  4.4824 ++
  4.4825 ++struct cpool_entry
  4.4826 ++{
  4.4827 ++  int			refcount;
  4.4828 ++  offsetT		offset;
  4.4829 ++  expressionS		exp;
  4.4830 ++};
  4.4831 ++
  4.4832 ++struct cpool
  4.4833 ++{
  4.4834 ++  struct cpool		*next;
  4.4835 ++  int			used;
  4.4836 ++  struct cpool_entry	*literals;
  4.4837 ++  unsigned int		padding;
  4.4838 ++  unsigned int		next_free_entry;
  4.4839 ++  unsigned int		id;
  4.4840 ++  symbolS		*symbol;
  4.4841 ++  segT			section;
  4.4842 ++  subsegT		sub_section;
  4.4843 ++};
  4.4844 ++
  4.4845 ++struct cpool *cpool_list = NULL;
  4.4846 ++
  4.4847 ++static struct cpool *
  4.4848 ++find_cpool(segT section, subsegT sub_section)
  4.4849 ++{
  4.4850 ++  struct cpool *pool;
  4.4851 ++
  4.4852 ++  for (pool = cpool_list; pool != NULL; pool = pool->next)
  4.4853 ++    {
  4.4854 ++      if (!pool->used
  4.4855 ++	  && pool->section == section
  4.4856 ++	  && pool->sub_section == sub_section)
  4.4857 ++	break;
  4.4858 ++    }
  4.4859 ++
  4.4860 ++  return pool;
  4.4861 ++}
  4.4862 ++
  4.4863 ++static struct cpool *
  4.4864 ++find_or_make_cpool(segT section, subsegT sub_section)
  4.4865 ++{
  4.4866 ++  static unsigned int next_cpool_id = 0;
  4.4867 ++  struct cpool *pool;
  4.4868 ++
  4.4869 ++  pool = find_cpool(section, sub_section);
  4.4870 ++
  4.4871 ++  if (!pool)
  4.4872 ++    {
  4.4873 ++      pool = xmalloc(sizeof(*pool));
  4.4874 ++      if (!pool)
  4.4875 ++	return NULL;
  4.4876 ++
  4.4877 ++      pool->used = 0;
  4.4878 ++      pool->literals = NULL;
  4.4879 ++      pool->padding = 0;
  4.4880 ++      pool->next_free_entry = 0;
  4.4881 ++      pool->section = section;
  4.4882 ++      pool->sub_section = sub_section;
  4.4883 ++      pool->next = cpool_list;
  4.4884 ++      pool->symbol = NULL;
  4.4885 ++
  4.4886 ++      cpool_list = pool;
  4.4887 ++    }
  4.4888 ++
  4.4889 ++  /* NULL symbol means that the pool is new or has just been emptied.  */
  4.4890 ++  if (!pool->symbol)
  4.4891 ++    {
  4.4892 ++      pool->symbol = symbol_create(FAKE_LABEL_NAME, undefined_section,
  4.4893 ++				   0, &zero_address_frag);
  4.4894 ++      pool->id = next_cpool_id++;
  4.4895 ++    }
  4.4896 ++
  4.4897 ++  return pool;
  4.4898 ++}
  4.4899 ++
  4.4900 ++static struct cpool *
  4.4901 ++add_to_cpool(expressionS *exp, unsigned int *index, int ref)
  4.4902 ++{
  4.4903 ++  struct cpool *pool;
  4.4904 ++  unsigned int entry;
  4.4905 ++
  4.4906 ++  pool = find_or_make_cpool(now_seg, now_subseg);
  4.4907 ++
  4.4908 ++  /* Check if this constant is already in the pool.  */
  4.4909 ++  for (entry = 0; entry < pool->next_free_entry; entry++)
  4.4910 ++    {
  4.4911 ++      if ((pool->literals[entry].exp.X_op == exp->X_op)
  4.4912 ++	  && (exp->X_op == O_constant)
  4.4913 ++	  && (pool->literals[entry].exp.X_add_number
  4.4914 ++	      == exp->X_add_number)
  4.4915 ++	  && (pool->literals[entry].exp.X_unsigned
  4.4916 ++	      == exp->X_unsigned))
  4.4917 ++	break;
  4.4918 ++
  4.4919 ++      if ((pool->literals[entry].exp.X_op == exp->X_op)
  4.4920 ++	  && (exp->X_op == O_symbol)
  4.4921 ++	  && (pool->literals[entry].exp.X_add_number
  4.4922 ++	      == exp->X_add_number)
  4.4923 ++	  && (pool->literals[entry].exp.X_add_symbol
  4.4924 ++	      == exp->X_add_symbol)
  4.4925 ++	  && (pool->literals[entry].exp.X_op_symbol
  4.4926 ++	      == exp->X_op_symbol))
  4.4927 ++	break;
  4.4928 ++    }
  4.4929 ++
  4.4930 ++  /* Create an entry if we didn't find a match */
  4.4931 ++  if (entry == pool->next_free_entry)
  4.4932 ++    {
  4.4933 ++      pool->literals = xrealloc(pool->literals,
  4.4934 ++				sizeof(struct cpool_entry) * (entry + 1));
  4.4935 ++      pool->literals[entry].exp = *exp;
  4.4936 ++      pool->literals[entry].refcount = 0;
  4.4937 ++      pool->next_free_entry++;
  4.4938 ++    }
  4.4939 ++
  4.4940 ++  if (index)
  4.4941 ++    *index = entry;
  4.4942 ++  if (ref)
  4.4943 ++    pool->literals[entry].refcount++;
  4.4944 ++
  4.4945 ++  return pool;
  4.4946 ++}
  4.4947 ++
  4.4948 ++struct avr32_operand
  4.4949 ++{
  4.4950 ++  int id;
  4.4951 ++  int is_signed;
  4.4952 ++  int is_pcrel;
  4.4953 ++  int align_order;
  4.4954 ++  int (*match)(char *str);
  4.4955 ++  void (*parse)(const struct avr32_operand *op, char *str, int opindex);
  4.4956 ++};
  4.4957 ++
  4.4958 ++static int
  4.4959 ++match_anything(char *str ATTRIBUTE_UNUSED)
  4.4960 ++{
  4.4961 ++  return 1;
  4.4962 ++}
  4.4963 ++
  4.4964 ++static int
  4.4965 ++match_intreg(char *str)
  4.4966 ++{
  4.4967 ++  int regid, ret = 1;
  4.4968 ++
  4.4969 ++  regid = avr32_parse_intreg(str);
  4.4970 ++  if (regid < 0)
  4.4971 ++    ret = 0;
  4.4972 ++
  4.4973 ++  pr_debug("match_intreg: `%s': %d\n", str, ret);
  4.4974 ++
  4.4975 ++  return ret;
  4.4976 ++}
  4.4977 ++
  4.4978 ++static int
  4.4979 ++match_intreg_predec(char *str)
  4.4980 ++{
  4.4981 ++  int regid;
  4.4982 ++
  4.4983 ++  if (str[0] != '-' || str[1] != '-')
  4.4984 ++    return 0;
  4.4985 ++
  4.4986 ++  regid = avr32_parse_intreg(str + 2);
  4.4987 ++  if (regid < 0)
  4.4988 ++    return 0;
  4.4989 ++
  4.4990 ++  return 1;
  4.4991 ++}
  4.4992 ++
  4.4993 ++static int
  4.4994 ++match_intreg_postinc(char *str)
  4.4995 ++{
  4.4996 ++  int regid, ret = 1;
  4.4997 ++  char *p, c;
  4.4998 ++
  4.4999 ++  for (p = str; *p; p++)
  4.5000 ++    if (*p == '+')
  4.5001 ++      break;
  4.5002 ++
  4.5003 ++  if (p[0] != '+' || p[1] != '+')
  4.5004 ++    return 0;
  4.5005 ++
  4.5006 ++  c = *p, *p = 0;
  4.5007 ++  regid = avr32_parse_intreg(str);
  4.5008 ++  if (regid < 0)
  4.5009 ++    ret = 0;
  4.5010 ++
  4.5011 ++  *p = c;
  4.5012 ++  return ret;
  4.5013 ++}
  4.5014 ++
  4.5015 ++static int
  4.5016 ++match_intreg_lsl(char *str)
  4.5017 ++{
  4.5018 ++  int regid, ret = 1;
  4.5019 ++  char *p, c;
  4.5020 ++
  4.5021 ++  for (p = str; *p; p++)
  4.5022 ++    if (*p == '<')
  4.5023 ++      break;
  4.5024 ++
  4.5025 ++  if (p[0] && p[1] != '<')
  4.5026 ++    return 0;
  4.5027 ++
  4.5028 ++  c = *p, *p = 0;
  4.5029 ++  regid = avr32_parse_intreg(str);
  4.5030 ++  if (regid < 0)
  4.5031 ++    ret = 0;
  4.5032 ++
  4.5033 ++  *p = c;
  4.5034 ++  return ret;
  4.5035 ++}
  4.5036 ++
  4.5037 ++static int
  4.5038 ++match_intreg_lsr(char *str)
  4.5039 ++{
  4.5040 ++  int regid, ret = 1;
  4.5041 ++  char *p, c;
  4.5042 ++
  4.5043 ++  for (p = str; *p; p++)
  4.5044 ++    if (*p == '>')
  4.5045 ++      break;
  4.5046 ++
  4.5047 ++  if (p[0] && p[1] != '>')
  4.5048 ++    return 0;
  4.5049 ++
  4.5050 ++  c = *p, *p = 0;
  4.5051 ++
  4.5052 ++  regid = avr32_parse_intreg(str);
  4.5053 ++  if (regid < 0)
  4.5054 ++    ret = 0;
  4.5055 ++
  4.5056 ++  *p = c;
  4.5057 ++  return ret;
  4.5058 ++}
  4.5059 ++
  4.5060 ++static int
  4.5061 ++match_intreg_part(char *str)
  4.5062 ++{
  4.5063 ++  int regid, ret = 1;
  4.5064 ++  char *p, c;
  4.5065 ++
  4.5066 ++  for (p = str; *p; p++)
  4.5067 ++    if (*p == ':')
  4.5068 ++      break;
  4.5069 ++
  4.5070 ++  if (p[0] != ':' || !ISPRINT(p[1]) || p[2] != '\0')
  4.5071 ++    return 0;
  4.5072 ++
  4.5073 ++  c = *p, *p = 0;
  4.5074 ++  regid = avr32_parse_intreg(str);
  4.5075 ++  if (regid < 0)
  4.5076 ++    ret = 0;
  4.5077 ++
  4.5078 ++  *p = c;
  4.5079 ++
  4.5080 ++  return ret;
  4.5081 ++}
  4.5082 ++
  4.5083 ++#define match_intreg_disp match_anything
  4.5084 ++
  4.5085 ++static int
  4.5086 ++match_intreg_index(char *str)
  4.5087 ++{
  4.5088 ++  int regid, ret = 1;
  4.5089 ++  char *p, *end, c;
  4.5090 ++
  4.5091 ++  for (p = str; *p; p++)
  4.5092 ++    if (*p == '[')
  4.5093 ++      break;
  4.5094 ++
  4.5095 ++  /* don't allow empty displacement here (it makes no sense) */
  4.5096 ++  if (p[0] != '[')
  4.5097 ++    return 0;
  4.5098 ++
  4.5099 ++  for (end = p + 1; *end; end++) ;
  4.5100 ++  if (*(--end) != ']')
  4.5101 ++    return 0;
  4.5102 ++
  4.5103 ++  c = *end, *end = 0;
  4.5104 ++  if (!match_intreg_lsl(p + 1))
  4.5105 ++    ret = 0;
  4.5106 ++  *end = c;
  4.5107 ++
  4.5108 ++  if (ret)
  4.5109 ++    {
  4.5110 ++      c = *p, *p = 0;
  4.5111 ++      regid = avr32_parse_intreg(str);
  4.5112 ++      if (regid < 0)
  4.5113 ++	ret = 0;
  4.5114 ++      *p = c;
  4.5115 ++    }
  4.5116 ++
  4.5117 ++  return ret;
  4.5118 ++}
  4.5119 ++
  4.5120 ++static int
  4.5121 ++match_intreg_xindex(char *str)
  4.5122 ++{
  4.5123 ++  int regid, ret = 1;
  4.5124 ++  char *p, *end, c;
  4.5125 ++
  4.5126 ++  for (p = str; *p; p++)
  4.5127 ++    if (*p == '[')
  4.5128 ++      break;
  4.5129 ++
  4.5130 ++  /* empty displacement makes no sense here either */
  4.5131 ++  if (p[0] != '[')
  4.5132 ++    return 0;
  4.5133 ++
  4.5134 ++  for (end = p + 1; *end; end++)
  4.5135 ++    if (*end == '<')
  4.5136 ++      break;
  4.5137 ++
  4.5138 ++  if (!streq(end, "<<2]"))
  4.5139 ++    return 0;
  4.5140 ++
  4.5141 ++  c = *end, *end = 0;
  4.5142 ++  if (!match_intreg_part(p + 1))
  4.5143 ++    ret = 0;
  4.5144 ++  *end = c;
  4.5145 ++
  4.5146 ++  if (ret)
  4.5147 ++    {
  4.5148 ++      c = *p, *p = 0;
  4.5149 ++      regid = avr32_parse_intreg(str);
  4.5150 ++      if (regid < 0)
  4.5151 ++	ret = 0;
  4.5152 ++      *p = c;
  4.5153 ++    }
  4.5154 ++
  4.5155 ++  return ret;
  4.5156 ++}
  4.5157 ++
  4.5158 ++/* The PC_UDISP_W operator may show up as a label or as a pc[disp]
  4.5159 ++   expression.  So there's no point in attempting to match this...  */
  4.5160 ++#define match_pc_disp	match_anything
  4.5161 ++
  4.5162 ++static int
  4.5163 ++match_sp(char *str)
  4.5164 ++{
  4.5165 ++  /* SP in any form will do */
  4.5166 ++  return avr32_parse_intreg(str) == AVR32_REG_SP;
  4.5167 ++}
  4.5168 ++
  4.5169 ++static int
  4.5170 ++match_sp_disp(char *str)
  4.5171 ++{
  4.5172 ++  int regid, ret = 1;
  4.5173 ++  char *p, c;
  4.5174 ++
  4.5175 ++  for (p = str; *p; p++)
  4.5176 ++    if (*p == '[')
  4.5177 ++      break;
  4.5178 ++
  4.5179 ++  /* allow empty displacement, meaning zero */
  4.5180 ++  if (p[0] == '[')
  4.5181 ++    {
  4.5182 ++      char *end;
  4.5183 ++      for (end = p + 1; *end; end++) ;
  4.5184 ++      if (end[-1] != ']')
  4.5185 ++	return 0;
  4.5186 ++    }
  4.5187 ++
  4.5188 ++  c = *p, *p = 0;
  4.5189 ++  regid = avr32_parse_intreg(str);
  4.5190 ++  if (regid != AVR32_REG_SP)
  4.5191 ++    ret = 0;
  4.5192 ++
  4.5193 ++  *p = c;
  4.5194 ++  return ret;
  4.5195 ++}
  4.5196 ++
  4.5197 ++static int
  4.5198 ++match_cpno(char *str)
  4.5199 ++{
  4.5200 ++  if (strncasecmp(str, "cp", 2) != 0)
  4.5201 ++    return 0;
  4.5202 ++  return 1;
  4.5203 ++}
  4.5204 ++
  4.5205 ++static int
  4.5206 ++match_cpreg(char *str)
  4.5207 ++{
  4.5208 ++  if (strncasecmp(str, "cr", 2) != 0)
  4.5209 ++    return 0;
  4.5210 ++  return 1;
  4.5211 ++}
  4.5212 ++
  4.5213 ++/* We allow complex expressions, and register names may show up as
  4.5214 ++   symbols.  Just make sure immediate expressions are always matched
  4.5215 ++   last.  */
  4.5216 ++#define match_const		match_anything
  4.5217 ++#define match_jmplabel		match_anything
  4.5218 ++#define match_number		match_anything
  4.5219 ++
  4.5220 ++/* Mnemonics that take reglists never accept anything else */
  4.5221 ++#define match_reglist8		match_anything
  4.5222 ++#define match_reglist9		match_anything
  4.5223 ++#define match_reglist16		match_anything
  4.5224 ++#define match_reglist_ldm	match_anything
  4.5225 ++#define match_reglist_cp8	match_anything
  4.5226 ++#define match_reglist_cpd8	match_anything
  4.5227 ++
  4.5228 ++/* Ditto for retval, jospinc and mcall */
  4.5229 ++#define match_retval		match_anything
  4.5230 ++#define match_jospinc		match_anything
  4.5231 ++#define match_mcall		match_anything
  4.5232 ++
  4.5233 ++/* COH is used to select between two different syntaxes */
  4.5234 ++static int
  4.5235 ++match_coh(char *str)
  4.5236 ++{
  4.5237 ++  return strcasecmp(str, "coh") == 0;
  4.5238 ++}
  4.5239 ++
  4.5240 ++static int
  4.5241 ++match_fpreg(char *str)
  4.5242 ++{
  4.5243 ++  unsigned long regid;
  4.5244 ++  char *endptr;
  4.5245 ++
  4.5246 ++  if ((str[0] != 'f' && str[0] != 'F')
  4.5247 ++      || (str[1] != 'r' && str[1] != 'R'))
  4.5248 ++    return 0;
  4.5249 ++
  4.5250 ++  str += 2;
  4.5251 ++  regid = strtoul(str, &endptr, 10);
  4.5252 ++  if (!*str || *endptr)
  4.5253 ++    return 0;
  4.5254 ++
  4.5255 ++  return 1;
  4.5256 ++}
  4.5257 ++
  4.5258 ++static int
  4.5259 ++match_picoreg(char *str)
  4.5260 ++{
  4.5261 ++  int regid;
  4.5262 ++
  4.5263 ++  regid = avr32_parse_picoreg(str);
  4.5264 ++  if (regid < 0)
  4.5265 ++    return 0;
  4.5266 ++  return 1;
  4.5267 ++}
  4.5268 ++
  4.5269 ++#define match_pico_reglist_w	match_anything
  4.5270 ++#define match_pico_reglist_d	match_anything
  4.5271 ++
  4.5272 ++static int
  4.5273 ++match_pico_in(char *str)
  4.5274 ++{
  4.5275 ++  unsigned long regid;
  4.5276 ++  char *end;
  4.5277 ++
  4.5278 ++  if (strncasecmp(str, "in", 2) != 0)
  4.5279 ++    return 0;
  4.5280 ++
  4.5281 ++  str += 2;
  4.5282 ++  regid = strtoul(str, &end, 10);
  4.5283 ++  if (!*str || *end)
  4.5284 ++    return 0;
  4.5285 ++
  4.5286 ++  return 1;
  4.5287 ++}
  4.5288 ++
  4.5289 ++static int
  4.5290 ++match_pico_out0(char *str)
  4.5291 ++{
  4.5292 ++  if (strcasecmp(str, "out0") != 0)
  4.5293 ++    return 0;
  4.5294 ++  return 1;
  4.5295 ++}
  4.5296 ++
  4.5297 ++static int
  4.5298 ++match_pico_out1(char *str)
  4.5299 ++{
  4.5300 ++  if (strcasecmp(str, "out1") != 0)
  4.5301 ++    return 0;
  4.5302 ++  return 1;
  4.5303 ++}
  4.5304 ++
  4.5305 ++static int
  4.5306 ++match_pico_out2(char *str)
  4.5307 ++{
  4.5308 ++  if (strcasecmp(str, "out2") != 0)
  4.5309 ++    return 0;
  4.5310 ++  return 1;
  4.5311 ++}
  4.5312 ++
  4.5313 ++static int
  4.5314 ++match_pico_out3(char *str)
  4.5315 ++{
  4.5316 ++  if (strcasecmp(str, "out3") != 0)
  4.5317 ++    return 0;
  4.5318 ++  return 1;
  4.5319 ++}
  4.5320 ++
  4.5321 ++static void parse_nothing(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  4.5322 ++			  char *str ATTRIBUTE_UNUSED,
  4.5323 ++			  int opindex ATTRIBUTE_UNUSED)
  4.5324 ++{
  4.5325 ++  /* Do nothing (this is used for "match-only" operands like COH) */
  4.5326 ++}
  4.5327 ++
  4.5328 ++static void
  4.5329 ++parse_const(const struct avr32_operand *op, char *str,
  4.5330 ++	    int opindex ATTRIBUTE_UNUSED)
  4.5331 ++{
  4.5332 ++  expressionS *exp = &current_insn.immediate;
  4.5333 ++  expressionS *sym_exp;
  4.5334 ++  int slot;
  4.5335 ++  char *save;
  4.5336 ++
  4.5337 ++  pr_debug("parse_const: `%s' (signed: %d, pcrel: %d, align: %d)\n",
  4.5338 ++	   str, op->is_signed, op->is_pcrel, op->align_order);
  4.5339 ++
  4.5340 ++  save = input_line_pointer;
  4.5341 ++  input_line_pointer = str;
  4.5342 ++
  4.5343 ++  expression(exp);
  4.5344 ++
  4.5345 ++  slot = current_insn.next_slot++;
  4.5346 ++  current_insn.field_value[slot].align_order = op->align_order;
  4.5347 ++  current_insn.pcrel = op->is_pcrel;
  4.5348 ++
  4.5349 ++  switch (exp->X_op)
  4.5350 ++    {
  4.5351 ++    case O_illegal:
  4.5352 ++      as_bad(_("illegal operand"));
  4.5353 ++      break;
  4.5354 ++    case O_absent:
  4.5355 ++      as_bad(_("missing operand"));
  4.5356 ++      break;
  4.5357 ++    case O_constant:
  4.5358 ++      pr_debug("  -> constant: %ld\n", (long)exp->X_add_number);
  4.5359 ++      current_insn.field_value[slot].value = exp->X_add_number;
  4.5360 ++      break;
  4.5361 ++    case O_uminus:
  4.5362 ++      pr_debug("  -> uminus\n");
  4.5363 ++      sym_exp = symbol_get_value_expression(exp->X_add_symbol);
  4.5364 ++      switch (sym_exp->X_op) {
  4.5365 ++      case O_subtract:
  4.5366 ++	pr_debug("     -> subtract: switching operands\n");
  4.5367 ++	exp->X_op_symbol = sym_exp->X_add_symbol;
  4.5368 ++	exp->X_add_symbol = sym_exp->X_op_symbol;
  4.5369 ++	exp->X_op = O_subtract;
  4.5370 ++	/* TODO: Remove the old X_add_symbol */
  4.5371 ++	break;
  4.5372 ++      default:
  4.5373 ++	as_bad(_("Expression too complex\n"));
  4.5374 ++	break;
  4.5375 ++      }
  4.5376 ++      break;
  4.5377 ++#if 0
  4.5378 ++    case O_subtract:
  4.5379 ++      /* Any expression subtracting a symbol from the current section
  4.5380 ++	 can be made PC-relative by adding the right offset.  */
  4.5381 ++      if (S_GET_SEGMENT(exp->X_op_symbol) == now_seg)
  4.5382 ++	current_insn.pcrel = TRUE;
  4.5383 ++      pr_debug("  -> subtract: pcrel? %s\n",
  4.5384 ++	       current_insn.pcrel ? "yes" : "no");
  4.5385 ++      /* fall through */
  4.5386 ++#endif
  4.5387 ++    default:
  4.5388 ++      pr_debug("  -> (%p <%d> %p + %d)\n",
  4.5389 ++	       exp->X_add_symbol, exp->X_op, exp->X_op_symbol,
  4.5390 ++	       exp->X_add_number);
  4.5391 ++      current_insn.field_value[slot].value = 0;
  4.5392 ++      break;
  4.5393 ++    }
  4.5394 ++
  4.5395 ++  input_line_pointer = save;
  4.5396 ++}
  4.5397 ++
  4.5398 ++static void
  4.5399 ++parse_jmplabel(const struct avr32_operand *op, char *str,
  4.5400 ++	       int opindex ATTRIBUTE_UNUSED)
  4.5401 ++{
  4.5402 ++  expressionS *exp = &current_insn.immediate;
  4.5403 ++  int slot;
  4.5404 ++  char *save;
  4.5405 ++
  4.5406 ++  pr_debug("parse_jmplabel: `%s' (signed: %d, pcrel: %d, align: %d)\n",
  4.5407 ++	   str, op->is_signed, op->is_pcrel, op->align_order);
  4.5408 ++
  4.5409 ++  save = input_line_pointer;
  4.5410 ++  input_line_pointer = str;
  4.5411 ++
  4.5412 ++  expression(exp);
  4.5413 ++
  4.5414 ++  slot = current_insn.next_slot++;
  4.5415 ++  current_insn.field_value[slot].align_order = op->align_order;
  4.5416 ++  current_insn.pcrel = TRUE;
  4.5417 ++
  4.5418 ++  switch (exp->X_op)
  4.5419 ++    {
  4.5420 ++    case O_illegal:
  4.5421 ++      as_bad(_("illegal operand"));
  4.5422 ++      break;
  4.5423 ++    case O_absent:
  4.5424 ++      as_bad(_("missing operand"));
  4.5425 ++      break;
  4.5426 ++    case O_constant:
  4.5427 ++      pr_debug("  -> constant: %ld\n", (long)exp->X_add_number);
  4.5428 ++      current_insn.field_value[slot].value = exp->X_add_number;
  4.5429 ++      current_insn.pcrel = 0;
  4.5430 ++      break;
  4.5431 ++    default:
  4.5432 ++      pr_debug("  -> (%p <%d> %p + %d)\n",
  4.5433 ++	       exp->X_add_symbol, exp->X_op, exp->X_op_symbol,
  4.5434 ++	       exp->X_add_number);
  4.5435 ++      current_insn.field_value[slot].value = 0;
  4.5436 ++      break;
  4.5437 ++    }
  4.5438 ++
  4.5439 ++  input_line_pointer = save;
  4.5440 ++}
  4.5441 ++
  4.5442 ++static void
  4.5443 ++parse_intreg(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  4.5444 ++	     char *str, int opindex ATTRIBUTE_UNUSED)
  4.5445 ++{
  4.5446 ++  int regid, slot;
  4.5447 ++
  4.5448 ++  pr_debug("parse_intreg: `%s'\n", str);
  4.5449 ++
  4.5450 ++  regid = avr32_parse_intreg(str);
  4.5451 ++  assert(regid >= 0);
  4.5452 ++
  4.5453 ++  slot = current_insn.next_slot++;
  4.5454 ++  current_insn.field_value[slot].value = regid;
  4.5455 ++  current_insn.field_value[slot].align_order = op->align_order;
  4.5456 ++}
  4.5457 ++
  4.5458 ++static void
  4.5459 ++parse_intreg_predec(const struct avr32_operand *op, char *str, int opindex)
  4.5460 ++{
  4.5461 ++  parse_intreg(op, str + 2, opindex);
  4.5462 ++}
  4.5463 ++
  4.5464 ++static void
  4.5465 ++parse_intreg_postinc(const struct avr32_operand *op, char *str, int opindex)
  4.5466 ++{
  4.5467 ++  char *p, c;
  4.5468 ++
  4.5469 ++  pr_debug("parse_intreg_postinc: `%s'\n", str);
  4.5470 ++
  4.5471 ++  for (p = str; *p != '+'; p++) ;
  4.5472 ++
  4.5473 ++  c = *p, *p = 0;
  4.5474 ++  parse_intreg(op, str, opindex);
  4.5475 ++  *p = c;
  4.5476 ++}
  4.5477 ++
  4.5478 ++static void
  4.5479 ++parse_intreg_shift(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  4.5480 ++		   char *str, int opindex ATTRIBUTE_UNUSED)
  4.5481 ++{
  4.5482 ++  int regid, slot, shift = 0;
  4.5483 ++  char *p, c;
  4.5484 ++  char shiftop;
  4.5485 ++
  4.5486 ++  pr_debug("parse Ry<<sa: `%s'\n", str);
  4.5487 ++
  4.5488 ++  for (p = str; *p; p++)
  4.5489 ++    if (*p == '<' || *p == '>')
  4.5490 ++      break;
  4.5491 ++
  4.5492 ++  shiftop = *p;
  4.5493 ++
  4.5494 ++  c = *p, *p = 0;
  4.5495 ++  regid = avr32_parse_intreg(str);
  4.5496 ++  assert(regid >= 0);
  4.5497 ++  *p = c;
  4.5498 ++
  4.5499 ++  if (c)
  4.5500 ++    {
  4.5501 ++      if (p[0] != shiftop || p[1] != shiftop)
  4.5502 ++	as_bad(_("expected shift operator in `%s'"), p);
  4.5503 ++      else
  4.5504 ++	{
  4.5505 ++	  expressionS exp;
  4.5506 ++	  char *saved;
  4.5507 ++
  4.5508 ++	  saved = input_line_pointer;
  4.5509 ++	  input_line_pointer = p + 2;
  4.5510 ++	  expression(&exp);
  4.5511 ++	  input_line_pointer = saved;
  4.5512 ++
  4.5513 ++	  if (exp.X_op != O_constant)
  4.5514 ++	    as_bad(_("shift amount must be a numeric constant"));
  4.5515 ++	  else
  4.5516 ++	    shift = exp.X_add_number;
  4.5517 ++	}
  4.5518 ++    }
  4.5519 ++
  4.5520 ++  slot = current_insn.next_slot++;
  4.5521 ++  current_insn.field_value[slot].value = regid;
  4.5522 ++  slot = current_insn.next_slot++;
  4.5523 ++  current_insn.field_value[slot].value = shift;
  4.5524 ++}
  4.5525 ++
  4.5526 ++/* The match() function selected the right opcode, so it doesn't
  4.5527 ++   matter which way we shift any more.  */
  4.5528 ++#define parse_intreg_lsl	parse_intreg_shift
  4.5529 ++#define parse_intreg_lsr	parse_intreg_shift
  4.5530 ++
  4.5531 ++static void
  4.5532 ++parse_intreg_part(const struct avr32_operand *op, char *str,
  4.5533 ++		  int opindex ATTRIBUTE_UNUSED)
  4.5534 ++{
  4.5535 ++  static const char bparts[] = { 'b', 'l', 'u', 't' };
  4.5536 ++  static const char hparts[] = { 'b', 't' };
  4.5537 ++  unsigned int slot, sel;
  4.5538 ++  int regid;
  4.5539 ++  char *p, c;
  4.5540 ++
  4.5541 ++  pr_debug("parse reg:part `%s'\n", str);
  4.5542 ++
  4.5543 ++  for (p = str; *p; p++)
  4.5544 ++    if (*p == ':')
  4.5545 ++      break;
  4.5546 ++
  4.5547 ++  c = *p, *p = 0;
  4.5548 ++  regid = avr32_parse_intreg(str);
  4.5549 ++  assert(regid >= 0);
  4.5550 ++  *p = c;
  4.5551 ++
  4.5552 ++  assert(c == ':');
  4.5553 ++
  4.5554 ++  if (op->align_order)
  4.5555 ++    {
  4.5556 ++      for (sel = 0; sel < sizeof(hparts); sel++)
  4.5557 ++	if (TOLOWER(p[1]) == hparts[sel])
  4.5558 ++	  break;
  4.5559 ++
  4.5560 ++      if (sel >= sizeof(hparts))
  4.5561 ++	{
  4.5562 ++	  as_bad(_("invalid halfword selector `%c' (must be either b or t)"),
  4.5563 ++		 p[1]);
  4.5564 ++	  sel = 0;
  4.5565 ++	}
  4.5566 ++    }
  4.5567 ++  else
  4.5568 ++    {
  4.5569 ++      for (sel = 0; sel < sizeof(bparts); sel++)
  4.5570 ++	if (TOLOWER(p[1]) == bparts[sel])
  4.5571 ++	  break;
  4.5572 ++
  4.5573 ++      if (sel >= sizeof(bparts))
  4.5574 ++	{
  4.5575 ++	  as_bad(_("invalid byte selector `%c' (must be one of b,l,u,t)"),
  4.5576 ++		 p[1]);
  4.5577 ++	  sel = 0;
  4.5578 ++	}
  4.5579 ++    }
  4.5580 ++
  4.5581 ++  slot = current_insn.next_slot++;
  4.5582 ++  current_insn.field_value[slot].value = regid;
  4.5583 ++  slot = current_insn.next_slot++;
  4.5584 ++  current_insn.field_value[slot].value = sel;
  4.5585 ++}
  4.5586 ++
  4.5587 ++/* This is the parser for "Rp[displacement]" expressions.  In addition
  4.5588 ++   to the "official" syntax, we accept a label as a replacement for
  4.5589 ++   the register expression.  This syntax implies Rp=PC and the
  4.5590 ++   displacement is the pc-relative distance to the label.  */
  4.5591 ++static void
  4.5592 ++parse_intreg_disp(const struct avr32_operand *op, char *str, int opindex)
  4.5593 ++{
  4.5594 ++  expressionS *exp = &current_insn.immediate;
  4.5595 ++  int slot, regid;
  4.5596 ++  char *save, *p, c;
  4.5597 ++
  4.5598 ++  pr_debug("parse_intreg_disp: `%s' (signed: %d, pcrel: %d, align: %d)\n",
  4.5599 ++	   str, op->is_signed, op->is_pcrel, op->align_order);
  4.5600 ++
  4.5601 ++  for (p = str; *p; p++)
  4.5602 ++    if (*p == '[')
  4.5603 ++      break;
  4.5604 ++
  4.5605 ++  slot = current_insn.next_slot++;
  4.5606 ++
  4.5607 ++  /* First, check if we have a valid register either before '[' or as
  4.5608 ++     the sole expression.  If so, we use the Rp[disp] syntax.  */
  4.5609 ++  c = *p, *p = 0;
  4.5610 ++  regid = avr32_parse_intreg(str);
  4.5611 ++  *p = c;
  4.5612 ++
  4.5613 ++  if (regid >= 0)
  4.5614 ++    {
  4.5615 ++      current_insn.field_value[slot].value = regid;
  4.5616 ++
  4.5617 ++      slot = current_insn.next_slot++;
  4.5618 ++      current_insn.field_value[slot].align_order = op->align_order;
  4.5619 ++
  4.5620 ++      if (c == '[')
  4.5621 ++	{
  4.5622 ++	  save = input_line_pointer;
  4.5623 ++	  input_line_pointer = p + 1;
  4.5624 ++
  4.5625 ++	  expression(exp);
  4.5626 ++
  4.5627 ++	  if (*input_line_pointer != ']')
  4.5628 ++	    as_bad(_("junk after displacement expression"));
  4.5629 ++
  4.5630 ++	  input_line_pointer = save;
  4.5631 ++
  4.5632 ++	  switch (exp->X_op)
  4.5633 ++	    {
  4.5634 ++	    case O_illegal:
  4.5635 ++	      as_bad(_("illegal displacement expression"));
  4.5636 ++	      break;
  4.5637 ++	    case O_absent:
  4.5638 ++	      as_bad(_("missing displacement expression"));
  4.5639 ++	      break;
  4.5640 ++	    case O_constant:
  4.5641 ++	      pr_debug("  -> constant: %ld\n", exp->X_add_number);
  4.5642 ++	      current_insn.field_value[slot].value = exp->X_add_number;
  4.5643 ++	      break;
  4.5644 ++#if 0
  4.5645 ++	    case O_subtract:
  4.5646 ++	      if (S_GET_SEGMENT(exp->X_op_symbol) == now_seg)
  4.5647 ++		current_insn.pcrel = TRUE;
  4.5648 ++	      pr_debug("  -> subtract: pcrel? %s\n",
  4.5649 ++		       current_insn.pcrel ? "yes" : "no");
  4.5650 ++	      /* fall through */
  4.5651 ++#endif
  4.5652 ++	    default:
  4.5653 ++	      pr_debug("  -> (%p <%d> %p + %d)\n",
  4.5654 ++		       exp->X_add_symbol, exp->X_op, exp->X_op_symbol,
  4.5655 ++		       exp->X_add_number);
  4.5656 ++	      current_insn.field_value[slot].value = 0;
  4.5657 ++	    }
  4.5658 ++	}
  4.5659 ++      else
  4.5660 ++	{
  4.5661 ++	  exp->X_op = O_constant;
  4.5662 ++	  exp->X_add_number = 0;
  4.5663 ++	  current_insn.field_value[slot].value = 0;
  4.5664 ++	}
  4.5665 ++    }
  4.5666 ++  else
  4.5667 ++    {
  4.5668 ++      /* Didn't find a valid register.  Try parsing it as a label.  */
  4.5669 ++      current_insn.field_value[slot].value = AVR32_REG_PC;
  4.5670 ++      parse_jmplabel(op, str, opindex);
  4.5671 ++    }
  4.5672 ++}
  4.5673 ++
  4.5674 ++static void
  4.5675 ++parse_intreg_index(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  4.5676 ++		   char *str, int opindex ATTRIBUTE_UNUSED)
  4.5677 ++{
  4.5678 ++  int slot, regid;
  4.5679 ++  char *p, *end, c;
  4.5680 ++
  4.5681 ++  for (p = str; *p; p++)
  4.5682 ++    if (*p == '[')
  4.5683 ++      break;
  4.5684 ++
  4.5685 ++  assert(*p);
  4.5686 ++
  4.5687 ++  c = *p, *p = 0;
  4.5688 ++  regid = avr32_parse_intreg(str);
  4.5689 ++  assert(regid >= 0);
  4.5690 ++  *p = c;
  4.5691 ++
  4.5692 ++  slot = current_insn.next_slot++;
  4.5693 ++  current_insn.field_value[slot].value = regid;
  4.5694 ++
  4.5695 ++  p++;
  4.5696 ++  for (end = p; *end; end++)
  4.5697 ++    if (*end == ']' || *end == '<')
  4.5698 ++      break;
  4.5699 ++
  4.5700 ++  assert(*end);
  4.5701 ++
  4.5702 ++  c = *end, *end = 0;
  4.5703 ++  regid = avr32_parse_intreg(p);
  4.5704 ++  assert(regid >= 0);
  4.5705 ++  *end = c;
  4.5706 ++
  4.5707 ++  slot = current_insn.next_slot++;
  4.5708 ++  current_insn.field_value[slot].value = regid;
  4.5709 ++
  4.5710 ++  slot = current_insn.next_slot++;
  4.5711 ++  current_insn.field_value[slot].value = 0;
  4.5712 ++
  4.5713 ++  if (*end == '<')
  4.5714 ++    {
  4.5715 ++      expressionS exp;
  4.5716 ++      char *save;
  4.5717 ++
  4.5718 ++      p = end + 2;
  4.5719 ++      for (end = p; *end; end++)
  4.5720 ++	if (*end == ']')
  4.5721 ++	  break;
  4.5722 ++
  4.5723 ++      assert(*end == ']');
  4.5724 ++
  4.5725 ++      c = *end, *end = 0;
  4.5726 ++      save = input_line_pointer;
  4.5727 ++      input_line_pointer = p;
  4.5728 ++      expression(&exp);
  4.5729 ++
  4.5730 ++      if (*input_line_pointer)
  4.5731 ++	as_bad(_("junk after shift expression"));
  4.5732 ++
  4.5733 ++      *end = c;
  4.5734 ++      input_line_pointer = save;
  4.5735 ++
  4.5736 ++      if (exp.X_op == O_constant)
  4.5737 ++	current_insn.field_value[slot].value = exp.X_add_number;
  4.5738 ++      else
  4.5739 ++	as_bad(_("shift expression too complex"));
  4.5740 ++    }
  4.5741 ++}
  4.5742 ++
  4.5743 ++static void
  4.5744 ++parse_intreg_xindex(const struct avr32_operand *op, char *str, int opindex)
  4.5745 ++{
  4.5746 ++  int slot, regid;
  4.5747 ++  char *p, *end, c;
  4.5748 ++
  4.5749 ++  for (p = str; *p; p++)
  4.5750 ++    if (*p == '[')
  4.5751 ++      break;
  4.5752 ++
  4.5753 ++  assert(*p);
  4.5754 ++
  4.5755 ++  c = *p, *p = 0;
  4.5756 ++  regid = avr32_parse_intreg(str);
  4.5757 ++  assert(regid >= 0);
  4.5758 ++  *p = c;
  4.5759 ++
  4.5760 ++  slot = current_insn.next_slot++;
  4.5761 ++  current_insn.field_value[slot].value = regid;
  4.5762 ++
  4.5763 ++  p++;
  4.5764 ++  for (end = p; *end; end++)
  4.5765 ++    if (*end == '<')
  4.5766 ++      break;
  4.5767 ++
  4.5768 ++  assert(*end);
  4.5769 ++
  4.5770 ++  c = *end, *end = 0;
  4.5771 ++  parse_intreg_part(op, p, opindex);
  4.5772 ++  *end = c;
  4.5773 ++}
  4.5774 ++
  4.5775 ++static void
  4.5776 ++parse_pc_disp(const struct avr32_operand *op, char *str, int opindex)
  4.5777 ++{
  4.5778 ++  char *p, c;
  4.5779 ++
  4.5780 ++  for (p = str; *p; p++)
  4.5781 ++    if (*p == '[')
  4.5782 ++      break;
  4.5783 ++
  4.5784 ++  /* The lddpc instruction comes in two different syntax variants:
  4.5785 ++       lddpc reg, expression
  4.5786 ++       lddpc reg, pc[disp]
  4.5787 ++     If the operand contains a '[', we use the second form.  */
  4.5788 ++  if (*p)
  4.5789 ++    {
  4.5790 ++      int regid;
  4.5791 ++
  4.5792 ++      c = *p, *p = 0;
  4.5793 ++      regid = avr32_parse_intreg(str);
  4.5794 ++      *p = c;
  4.5795 ++      if (regid == AVR32_REG_PC)
  4.5796 ++	{
  4.5797 ++	  char *end;
  4.5798 ++
  4.5799 ++	  for (end = ++p; *end; end++) ;
  4.5800 ++	  if (*(--end) != ']')
  4.5801 ++	    as_bad(_("unrecognized form of instruction: `%s'"), str);
  4.5802 ++	  else
  4.5803 ++	    {
  4.5804 ++	      c = *end, *end = 0;
  4.5805 ++	      parse_const(op, p, opindex);
  4.5806 ++	      *end = c;
  4.5807 ++	      current_insn.pcrel = 0;
  4.5808 ++	    }
  4.5809 ++	}
  4.5810 ++      else
  4.5811 ++	as_bad(_("unrecognized form of instruction: `%s'"), str);
  4.5812 ++    }
  4.5813 ++  else
  4.5814 ++    {
  4.5815 ++      parse_jmplabel(op, str, opindex);
  4.5816 ++    }
  4.5817 ++}
  4.5818 ++
  4.5819 ++static void parse_sp(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  4.5820 ++		     char *str ATTRIBUTE_UNUSED,
  4.5821 ++		     int opindex ATTRIBUTE_UNUSED)
  4.5822 ++{
  4.5823 ++  int slot;
  4.5824 ++
  4.5825 ++  slot = current_insn.next_slot++;
  4.5826 ++  current_insn.field_value[slot].value = AVR32_REG_SP;
  4.5827 ++}
  4.5828 ++
  4.5829 ++static void
  4.5830 ++parse_sp_disp(const struct avr32_operand *op, char *str, int opindex)
  4.5831 ++{
  4.5832 ++  char *p, c;
  4.5833 ++
  4.5834 ++  for (; *str; str++)
  4.5835 ++    if (*str == '[')
  4.5836 ++      break;
  4.5837 ++
  4.5838 ++  assert(*str);
  4.5839 ++
  4.5840 ++  for (p = ++str; *p; p++)
  4.5841 ++    if (*p == ']')
  4.5842 ++      break;
  4.5843 ++
  4.5844 ++  c = *p, *p = 0;
  4.5845 ++  parse_const(op, str, opindex);
  4.5846 ++  *p = c;
  4.5847 ++}
  4.5848 ++
  4.5849 ++static void
  4.5850 ++parse_cpno(const struct avr32_operand *op ATTRIBUTE_UNUSED, char *str,
  4.5851 ++	   int opindex ATTRIBUTE_UNUSED)
  4.5852 ++{
  4.5853 ++  int slot;
  4.5854 ++
  4.5855 ++  str += 2;
  4.5856 ++  if (*str == '#')
  4.5857 ++    str++;
  4.5858 ++  if (*str < '0' || *str > '7' || str[1])
  4.5859 ++    as_bad(_("invalid coprocessor `%s'"), str);
  4.5860 ++
  4.5861 ++  slot = current_insn.next_slot++;
  4.5862 ++  current_insn.field_value[slot].value = *str - '0';
  4.5863 ++}
  4.5864 ++
  4.5865 ++static void
  4.5866 ++parse_cpreg(const struct avr32_operand *op, char *str,
  4.5867 ++	    int opindex ATTRIBUTE_UNUSED)
  4.5868 ++{
  4.5869 ++  unsigned int crid;
  4.5870 ++  int slot;
  4.5871 ++  char *endptr;
  4.5872 ++
  4.5873 ++  str += 2;
  4.5874 ++  crid = strtoul(str, &endptr, 10);
  4.5875 ++  if (*endptr || crid > 15 || crid & ((1 << op->align_order) - 1))
  4.5876 ++    as_bad(_("invalid coprocessor register `%s'"), str);
  4.5877 ++
  4.5878 ++  crid >>= op->align_order;
  4.5879 ++
  4.5880 ++  slot = current_insn.next_slot++;
  4.5881 ++  current_insn.field_value[slot].value = crid;
  4.5882 ++}
  4.5883 ++
  4.5884 ++static void
  4.5885 ++parse_number(const struct avr32_operand *op, char *str,
  4.5886 ++	     int opindex ATTRIBUTE_UNUSED)
  4.5887 ++{
  4.5888 ++  expressionS exp;
  4.5889 ++  int slot;
  4.5890 ++  char *save;
  4.5891 ++
  4.5892 ++  save = input_line_pointer;
  4.5893 ++  input_line_pointer = str;
  4.5894 ++  expression(&exp);
  4.5895 ++  input_line_pointer = save;
  4.5896 ++
  4.5897 ++  slot = current_insn.next_slot++;
  4.5898 ++  current_insn.field_value[slot].align_order = op->align_order;
  4.5899 ++
  4.5900 ++  if (exp.X_op == O_constant)
  4.5901 ++      current_insn.field_value[slot].value = exp.X_add_number;
  4.5902 ++  else
  4.5903 ++      as_bad(_("invalid numeric expression `%s'"), str);
  4.5904 ++}
  4.5905 ++
  4.5906 ++static void
  4.5907 ++parse_reglist8(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  4.5908 ++	       char *str, int opindex ATTRIBUTE_UNUSED)
  4.5909 ++{
  4.5910 ++  unsigned long regmask;
  4.5911 ++  unsigned long value = 0;
  4.5912 ++  int slot;
  4.5913 ++  char *tail;
  4.5914 ++
  4.5915 ++  regmask = avr32_parse_reglist(str, &tail);
  4.5916 ++  if (*tail)
  4.5917 ++    as_bad(_("invalid register list `%s'"), str);
  4.5918 ++  else
  4.5919 ++    {
  4.5920 ++      if (avr32_make_regmask8(regmask, &value))
  4.5921 ++	as_bad(_("register list `%s' doesn't fit"), str);
  4.5922 ++    }
  4.5923 ++
  4.5924 ++  slot = current_insn.next_slot++;
  4.5925 ++  current_insn.field_value[slot].value = value;
  4.5926 ++}
  4.5927 ++
  4.5928 ++static int
  4.5929 ++parse_reglist_tail(char *str, unsigned long regmask)
  4.5930 ++{
  4.5931 ++  expressionS exp;
  4.5932 ++  char *save, *p, c;
  4.5933 ++  int regid;
  4.5934 ++
  4.5935 ++  for (p = str + 1; *p; p++)
  4.5936 ++    if (*p == '=')
  4.5937 ++      break;
  4.5938 ++
  4.5939 ++  if (!*p)
  4.5940 ++    {
  4.5941 ++      as_bad(_("invalid register list `%s'"), str);
  4.5942 ++      return -2;
  4.5943 ++    }
  4.5944 ++
  4.5945 ++  c = *p, *p = 0;
  4.5946 ++  regid = avr32_parse_intreg(str);
  4.5947 ++  *p = c;
  4.5948 ++
  4.5949 ++  if (regid != 12)
  4.5950 ++    {
  4.5951 ++      as_bad(_("invalid register list `%s'"), str);
  4.5952 ++      return -2;
  4.5953 ++    }
  4.5954 ++
  4.5955 ++  /* If we have an assignment, we must pop PC and we must _not_
  4.5956 ++     pop LR or R12 */
  4.5957 ++  if (!(regmask & (1 << AVR32_REG_PC)))
  4.5958 ++    {
  4.5959 ++      as_bad(_("return value specified for non-return instruction"));
  4.5960 ++      return -2;
  4.5961 ++    }
  4.5962 ++  else if (regmask & ((1 << AVR32_REG_R12) | (1 << AVR32_REG_LR)))
  4.5963 ++    {
  4.5964 ++      as_bad(_("can't pop LR or R12 when specifying return value"));
  4.5965 ++      return -2;
  4.5966 ++    }
  4.5967 ++
  4.5968 ++  save = input_line_pointer;
  4.5969 ++  input_line_pointer = p + 1;
  4.5970 ++  expression(&exp);
  4.5971 ++  input_line_pointer = save;
  4.5972 ++
  4.5973 ++  if (exp.X_op != O_constant
  4.5974 ++      || exp.X_add_number < -1
  4.5975 ++      || exp.X_add_number > 1)
  4.5976 ++    {
  4.5977 ++      as_bad(_("invalid return value `%s'"), str);
  4.5978 ++      return -2;
  4.5979 ++    }
  4.5980 ++
  4.5981 ++  return exp.X_add_number;
  4.5982 ++}
  4.5983 ++
  4.5984 ++static void
  4.5985 ++parse_reglist9(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  4.5986 ++	       char *str, int opindex ATTRIBUTE_UNUSED)
  4.5987 ++{
  4.5988 ++  unsigned long regmask;
  4.5989 ++  unsigned long value = 0, kbit = 0;
  4.5990 ++  int slot;
  4.5991 ++  char *tail;
  4.5992 ++
  4.5993 ++  regmask = avr32_parse_reglist(str, &tail);
  4.5994 ++  /* printf("parsed reglist16: %04lx, tail: `%s'\n", regmask, tail); */
  4.5995 ++  if (*tail)
  4.5996 ++    {
  4.5997 ++      int retval;
  4.5998 ++
  4.5999 ++      retval = parse_reglist_tail(tail, regmask);
  4.6000 ++
  4.6001 ++      switch (retval)
  4.6002 ++	{
  4.6003 ++	case -1:
  4.6004 ++	  regmask |= 1 << AVR32_REG_LR;
  4.6005 ++	  break;
  4.6006 ++	case 0:
  4.6007 ++	  break;
  4.6008 ++	case 1:
  4.6009 ++	  regmask |= 1 << AVR32_REG_R12;
  4.6010 ++	  break;
  4.6011 ++	default:
  4.6012 ++	  break;
  4.6013 ++	}
  4.6014 ++
  4.6015 ++      kbit = 1;
  4.6016 ++    }
  4.6017 ++
  4.6018 ++  if (avr32_make_regmask8(regmask, &value))
  4.6019 ++    as_bad(_("register list `%s' doesn't fit"), str);
  4.6020 ++
  4.6021 ++
  4.6022 ++  slot = current_insn.next_slot++;
  4.6023 ++  current_insn.field_value[slot].value = (value << 1) | kbit;
  4.6024 ++}
  4.6025 ++
  4.6026 ++static void
  4.6027 ++parse_reglist16(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  4.6028 ++		char *str, int opindex ATTRIBUTE_UNUSED)
  4.6029 ++{
  4.6030 ++  unsigned long regmask;
  4.6031 ++  int slot;
  4.6032 ++  char *tail;
  4.6033 ++
  4.6034 ++  regmask = avr32_parse_reglist(str, &tail);
  4.6035 ++  if (*tail)
  4.6036 ++    as_bad(_("invalid register list `%s'"), str);
  4.6037 ++
  4.6038 ++  slot = current_insn.next_slot++;
  4.6039 ++  current_insn.field_value[slot].value = regmask;
  4.6040 ++}
  4.6041 ++
  4.6042 ++static void
  4.6043 ++parse_reglist_ldm(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  4.6044 ++		  char *str, int opindex ATTRIBUTE_UNUSED)
  4.6045 ++{
  4.6046 ++  unsigned long regmask;
  4.6047 ++  int slot, rp, w_bit = 0;
  4.6048 ++  char *tail, *p, c;
  4.6049 ++
  4.6050 ++  for (p = str; *p && *p != ','; p++)
  4.6051 ++    if (*p == '+')
  4.6052 ++      break;
  4.6053 ++
  4.6054 ++  c = *p, *p = 0;
  4.6055 ++  rp = avr32_parse_intreg(str);
  4.6056 ++  *p = c;
  4.6057 ++  if (rp < 0)
  4.6058 ++    {
  4.6059 ++      as_bad(_("invalid destination register in `%s'"), str);
  4.6060 ++      return;
  4.6061 ++    }
  4.6062 ++
  4.6063 ++  if (p[0] == '+' && p[1] == '+')
  4.6064 ++    {
  4.6065 ++      w_bit = 1;
  4.6066 ++      p += 2;
  4.6067 ++    }
  4.6068 ++
  4.6069 ++  if (*p != ',')
  4.6070 ++    {
  4.6071 ++      as_bad(_("expected `,' after destination register in `%s'"), str);
  4.6072 ++      return;
  4.6073 ++    }
  4.6074 ++
  4.6075 ++  str = p + 1;
  4.6076 ++  regmask = avr32_parse_reglist(str, &tail);
  4.6077 ++  if (*tail)
  4.6078 ++    {
  4.6079 ++      int retval;
  4.6080 ++
  4.6081 ++      if (rp != AVR32_REG_SP)
  4.6082 ++	{
  4.6083 ++	  as_bad(_("junk at end of line: `%s'"), tail);
  4.6084 ++	  return;
  4.6085 ++	}
  4.6086 ++
  4.6087 ++      rp = AVR32_REG_PC;
  4.6088 ++
  4.6089 ++      retval = parse_reglist_tail(tail, regmask);
  4.6090 ++
  4.6091 ++      switch (retval)
  4.6092 ++	{
  4.6093 ++	case -1:
  4.6094 ++	  regmask |= 1 << AVR32_REG_LR;
  4.6095 ++	  break;
  4.6096 ++	case 0:
  4.6097 ++	  break;
  4.6098 ++	case 1:
  4.6099 ++	  regmask |= 1 << AVR32_REG_R12;
  4.6100 ++	  break;
  4.6101 ++	default:
  4.6102 ++	  return;
  4.6103 ++	}
  4.6104 ++    }
  4.6105 ++
  4.6106 ++  slot = current_insn.next_slot++;
  4.6107 ++  current_insn.field_value[slot].value = rp;
  4.6108 ++  slot = current_insn.next_slot++;
  4.6109 ++  current_insn.field_value[slot].value = w_bit;
  4.6110 ++  slot = current_insn.next_slot++;
  4.6111 ++  current_insn.field_value[slot].value = regmask;
  4.6112 ++}
  4.6113 ++
  4.6114 ++static void
  4.6115 ++parse_reglist_cp8(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  4.6116 ++		  char *str, int opindex ATTRIBUTE_UNUSED)
  4.6117 ++{
  4.6118 ++  unsigned long regmask;
  4.6119 ++  int slot, h_bit = 0;
  4.6120 ++  char *tail;
  4.6121 ++
  4.6122 ++  regmask = avr32_parse_cpreglist(str, &tail);
  4.6123 ++  if (*tail)
  4.6124 ++    as_bad(_("junk at end of line: `%s'"), tail);
  4.6125 ++  else if (regmask & 0xffUL)
  4.6126 ++    {
  4.6127 ++      if (regmask & 0xff00UL)
  4.6128 ++	as_bad(_("register list `%s' doesn't fit"), str);
  4.6129 ++      regmask &= 0xff;
  4.6130 ++    }
  4.6131 ++  else if (regmask & 0xff00UL)
  4.6132 ++    {
  4.6133 ++      regmask >>= 8;
  4.6134 ++      h_bit = 1;
  4.6135 ++    }
  4.6136 ++  else
  4.6137 ++    as_warn(_("register list is empty"));
  4.6138 ++
  4.6139 ++  slot = current_insn.next_slot++;
  4.6140 ++  current_insn.field_value[slot].value = regmask;
  4.6141 ++  slot = current_insn.next_slot++;
  4.6142 ++  current_insn.field_value[slot].value = h_bit;
  4.6143 ++}
  4.6144 ++
  4.6145 ++static void
  4.6146 ++parse_reglist_cpd8(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  4.6147 ++		   char *str, int opindex ATTRIBUTE_UNUSED)
  4.6148 ++{
  4.6149 ++  unsigned long regmask, regmask_d = 0;
  4.6150 ++  int slot, i;
  4.6151 ++  char *tail;
  4.6152 ++
  4.6153 ++  regmask = avr32_parse_cpreglist(str, &tail);
  4.6154 ++  if (*tail)
  4.6155 ++    as_bad(_("junk at end of line: `%s'"), tail);
  4.6156 ++
  4.6157 ++  for (i = 0; i < 8; i++)
  4.6158 ++    {
  4.6159 ++      if (regmask & 1)
  4.6160 ++	{
  4.6161 ++	  if (!(regmask & 2))
  4.6162 ++	    {
  4.6163 ++	      as_bad(_("register list `%s' doesn't fit"), str);
  4.6164 ++	      break;
  4.6165 ++	    }
  4.6166 ++	  regmask_d |= 1 << i;
  4.6167 ++	}
  4.6168 ++      else if (regmask & 2)
  4.6169 ++	{
  4.6170 ++	  as_bad(_("register list `%s' doesn't fit"), str);
  4.6171 ++	  break;
  4.6172 ++	}
  4.6173 ++
  4.6174 ++      regmask >>= 2;
  4.6175 ++    }
  4.6176 ++
  4.6177 ++  slot = current_insn.next_slot++;
  4.6178 ++  current_insn.field_value[slot].value = regmask_d;
  4.6179 ++}
  4.6180 ++
  4.6181 ++static void
  4.6182 ++parse_retval(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  4.6183 ++	     char *str, int opindex ATTRIBUTE_UNUSED)
  4.6184 ++{
  4.6185 ++  int regid, slot;
  4.6186 ++
  4.6187 ++  regid = avr32_parse_intreg(str);
  4.6188 ++  if (regid < 0)
  4.6189 ++    {
  4.6190 ++      expressionS exp;
  4.6191 ++      char *save;
  4.6192 ++
  4.6193 ++      regid = 0;
  4.6194 ++
  4.6195 ++      save = input_line_pointer;
  4.6196 ++      input_line_pointer = str;
  4.6197 ++      expression(&exp);
  4.6198 ++      input_line_pointer = save;
  4.6199 ++
  4.6200 ++      if (exp.X_op != O_constant)
  4.6201 ++	as_bad(_("invalid return value `%s'"), str);
  4.6202 ++      else
  4.6203 ++	switch (exp.X_add_number)
  4.6204 ++	  {
  4.6205 ++	  case -1:
  4.6206 ++	    regid = AVR32_REG_LR;
  4.6207 ++	    break;
  4.6208 ++	  case 0:
  4.6209 ++	    regid = AVR32_REG_SP;
  4.6210 ++	    break;
  4.6211 ++	  case 1:
  4.6212 ++	    regid = AVR32_REG_PC;
  4.6213 ++	    break;
  4.6214 ++	  default:
  4.6215 ++	    as_bad(_("invalid return value `%s'"), str);
  4.6216 ++	    break;
  4.6217 ++	  }
  4.6218 ++    }
  4.6219 ++
  4.6220 ++  slot = current_insn.next_slot++;
  4.6221 ++  current_insn.field_value[slot].value = regid;
  4.6222 ++}
  4.6223 ++
  4.6224 ++#define parse_mcall parse_intreg_disp
  4.6225 ++
  4.6226 ++static void
  4.6227 ++parse_jospinc(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  4.6228 ++	      char *str, int opindex ATTRIBUTE_UNUSED)
  4.6229 ++{
  4.6230 ++  expressionS exp;
  4.6231 ++  int slot;
  4.6232 ++  char *save;
  4.6233 ++
  4.6234 ++  save = input_line_pointer;
  4.6235 ++  input_line_pointer = str;
  4.6236 ++  expression(&exp);
  4.6237 ++  input_line_pointer = save;
  4.6238 ++
  4.6239 ++  slot = current_insn.next_slot++;
  4.6240 ++
  4.6241 ++  if (exp.X_op == O_constant)
  4.6242 ++    {
  4.6243 ++      if (exp.X_add_number > 0)
  4.6244 ++	exp.X_add_number--;
  4.6245 ++      current_insn.field_value[slot].value = exp.X_add_number;
  4.6246 ++    }
  4.6247 ++  else
  4.6248 ++    as_bad(_("invalid numeric expression `%s'"), str);
  4.6249 ++}
  4.6250 ++
  4.6251 ++#define parse_coh		parse_nothing
  4.6252 ++
  4.6253 ++static void
  4.6254 ++parse_fpreg(const struct avr32_operand *op,
  4.6255 ++	    char *str, int opindex ATTRIBUTE_UNUSED)
  4.6256 ++{
  4.6257 ++  unsigned long regid;
  4.6258 ++  int slot;
  4.6259 ++
  4.6260 ++  regid = strtoul(str + 2, NULL, 10);
  4.6261 ++
  4.6262 ++  if ((regid >= 16) || (regid & ((1 << op->align_order) - 1)))
  4.6263 ++    as_bad(_("invalid floating-point register `%s'"), str);
  4.6264 ++
  4.6265 ++  slot = current_insn.next_slot++;
  4.6266 ++  current_insn.field_value[slot].value = regid;
  4.6267 ++  current_insn.field_value[slot].align_order = op->align_order;
  4.6268 ++}
  4.6269 ++
  4.6270 ++static void
  4.6271 ++parse_picoreg(const struct avr32_operand *op,
  4.6272 ++	      char *str, int opindex ATTRIBUTE_UNUSED)
  4.6273 ++{
  4.6274 ++  unsigned long regid;
  4.6275 ++  int slot;
  4.6276 ++
  4.6277 ++  regid = avr32_parse_picoreg(str);
  4.6278 ++  if (regid & ((1 << op->align_order) - 1))
  4.6279 ++    as_bad(_("invalid double-word PiCo register `%s'"), str);
  4.6280 ++
  4.6281 ++  slot = current_insn.next_slot++;
  4.6282 ++  current_insn.field_value[slot].value = regid;
  4.6283 ++  current_insn.field_value[slot].align_order = op->align_order;
  4.6284 ++}
  4.6285 ++
  4.6286 ++static void
  4.6287 ++parse_pico_reglist_w(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  4.6288 ++		     char *str, int opindex ATTRIBUTE_UNUSED)
  4.6289 ++{
  4.6290 ++  unsigned long regmask;
  4.6291 ++  int slot, h_bit = 0;
  4.6292 ++  char *tail;
  4.6293 ++
  4.6294 ++  regmask = avr32_parse_pico_reglist(str, &tail);
  4.6295 ++  if (*tail)
  4.6296 ++    as_bad(_("junk at end of line: `%s'"), tail);
  4.6297 ++
  4.6298 ++  if (regmask & 0x00ffUL)
  4.6299 ++    {
  4.6300 ++      if (regmask & 0xff00UL)
  4.6301 ++	as_bad(_("register list `%s' doesn't fit"), str);
  4.6302 ++      regmask &= 0x00ffUL;
  4.6303 ++    }
  4.6304 ++  else if (regmask & 0xff00UL)
  4.6305 ++    {
  4.6306 ++      regmask >>= 8;
  4.6307 ++      h_bit = 1;
  4.6308 ++    }
  4.6309 ++  else
  4.6310 ++    as_warn(_("register list is empty"));
  4.6311 ++
  4.6312 ++  slot = current_insn.next_slot++;
  4.6313 ++  current_insn.field_value[slot].value = regmask;
  4.6314 ++  slot = current_insn.next_slot++;
  4.6315 ++  current_insn.field_value[slot].value = h_bit;
  4.6316 ++}
  4.6317 ++
  4.6318 ++static void
  4.6319 ++parse_pico_reglist_d(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  4.6320 ++		     char *str, int opindex ATTRIBUTE_UNUSED)
  4.6321 ++{
  4.6322 ++  unsigned long regmask, regmask_d = 0;
  4.6323 ++  int slot, i;
  4.6324 ++  char *tail;
  4.6325 ++
  4.6326 ++  regmask = avr32_parse_pico_reglist(str, &tail);
  4.6327 ++  if (*tail)
  4.6328 ++    as_bad(_("junk at end of line: `%s'"), tail);
  4.6329 ++
  4.6330 ++  for (i = 0; i < 8; i++)
  4.6331 ++    {
  4.6332 ++      if (regmask & 1)
  4.6333 ++	{
  4.6334 ++	  if (!(regmask & 2))
  4.6335 ++	    {
  4.6336 ++	      as_bad(_("register list `%s' doesn't fit"), str);
  4.6337 ++	      break;
  4.6338 ++	    }
  4.6339 ++	  regmask_d |= 1 << i;
  4.6340 ++	}
  4.6341 ++      else if (regmask & 2)
  4.6342 ++	{
  4.6343 ++	  as_bad(_("register list `%s' doesn't fit"), str);
  4.6344 ++	  break;
  4.6345 ++	}
  4.6346 ++
  4.6347 ++      regmask >>= 2;
  4.6348 ++    }
  4.6349 ++
  4.6350 ++  slot = current_insn.next_slot++;
  4.6351 ++  current_insn.field_value[slot].value = regmask_d;
  4.6352 ++}
  4.6353 ++
  4.6354 ++static void
  4.6355 ++parse_pico_in(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  4.6356 ++	      char *str, int opindex ATTRIBUTE_UNUSED)
  4.6357 ++{
  4.6358 ++  unsigned long regid;
  4.6359 ++  int slot;
  4.6360 ++
  4.6361 ++  regid = strtoul(str + 2, NULL, 10);
  4.6362 ++
  4.6363 ++  if (regid >= 12)
  4.6364 ++    as_bad(_("invalid PiCo IN register `%s'"), str);
  4.6365 ++
  4.6366 ++  slot = current_insn.next_slot++;
  4.6367 ++  current_insn.field_value[slot].value = regid;
  4.6368 ++  current_insn.field_value[slot].align_order = 0;
  4.6369 ++}
  4.6370 ++
  4.6371 ++#define parse_pico_out0		parse_nothing
  4.6372 ++#define parse_pico_out1		parse_nothing
  4.6373 ++#define parse_pico_out2		parse_nothing
  4.6374 ++#define parse_pico_out3		parse_nothing
  4.6375 ++
  4.6376 ++#define OP(name, sgn, pcrel, align, func) \
  4.6377 ++  { AVR32_OPERAND_##name, sgn, pcrel, align, match_##func, parse_##func }
  4.6378 ++
  4.6379 ++struct avr32_operand avr32_operand_table[] = {
  4.6380 ++  OP(INTREG, 0, 0, 0, intreg),
  4.6381 ++  OP(INTREG_PREDEC, 0, 0, 0, intreg_predec),
  4.6382 ++  OP(INTREG_POSTINC, 0, 0, 0, intreg_postinc),
  4.6383 ++  OP(INTREG_LSL, 0, 0, 0, intreg_lsl),
  4.6384 ++  OP(INTREG_LSR, 0, 0, 0, intreg_lsr),
  4.6385 ++  OP(INTREG_BSEL, 0, 0, 0, intreg_part),
  4.6386 ++  OP(INTREG_HSEL, 0, 0, 1, intreg_part),
  4.6387 ++  OP(INTREG_SDISP, 1, 0, 0, intreg_disp),
  4.6388 ++  OP(INTREG_SDISP_H, 1, 0, 1, intreg_disp),
  4.6389 ++  OP(INTREG_SDISP_W, 1, 0, 2, intreg_disp),
  4.6390 ++  OP(INTREG_UDISP, 0, 0, 0, intreg_disp),
  4.6391 ++  OP(INTREG_UDISP_H, 0, 0, 1, intreg_disp),
  4.6392 ++  OP(INTREG_UDISP_W, 0, 0, 2, intreg_disp),
  4.6393 ++  OP(INTREG_INDEX, 0, 0, 0, intreg_index),
  4.6394 ++  OP(INTREG_XINDEX, 0, 0, 0, intreg_xindex),
  4.6395 ++  OP(DWREG, 0, 0, 1, intreg),
  4.6396 ++  OP(PC_UDISP_W, 0, 1, 2, pc_disp),
  4.6397 ++  OP(SP, 0, 0, 0, sp),
  4.6398 ++  OP(SP_UDISP_W, 0, 0, 2, sp_disp),
  4.6399 ++  OP(CPNO, 0, 0, 0, cpno),
  4.6400 ++  OP(CPREG, 0, 0, 0, cpreg),
  4.6401 ++  OP(CPREG_D, 0, 0, 1, cpreg),
  4.6402 ++  OP(UNSIGNED_CONST, 0, 0, 0, const),
  4.6403 ++  OP(UNSIGNED_CONST_W, 0, 0, 2, const),
  4.6404 ++  OP(SIGNED_CONST, 1, 0, 0, const),
  4.6405 ++  OP(SIGNED_CONST_W, 1, 0, 2, const),
  4.6406 ++  OP(JMPLABEL, 1, 1, 1, jmplabel),
  4.6407 ++  OP(UNSIGNED_NUMBER, 0, 0, 0, number),
  4.6408 ++  OP(UNSIGNED_NUMBER_W, 0, 0, 2, number),
  4.6409 ++  OP(REGLIST8, 0, 0, 0, reglist8),
  4.6410 ++  OP(REGLIST9, 0, 0, 0, reglist9),
  4.6411 ++  OP(REGLIST16, 0, 0, 0, reglist16),
  4.6412 ++  OP(REGLIST_LDM, 0, 0, 0, reglist_ldm),
  4.6413 ++  OP(REGLIST_CP8, 0, 0, 0, reglist_cp8),
  4.6414 ++  OP(REGLIST_CPD8, 0, 0, 0, reglist_cpd8),
  4.6415 ++  OP(RETVAL, 0, 0, 0, retval),
  4.6416 ++  OP(MCALL, 1, 0, 2, mcall),
  4.6417 ++  OP(JOSPINC, 0, 0, 0, jospinc),
  4.6418 ++  OP(COH, 0, 0, 0, coh),
  4.6419 ++  OP(FPREG_S, 0, 0, 0, fpreg),
  4.6420 ++  OP(FPREG_D, 0, 0, 1, fpreg),
  4.6421 ++  OP(PICO_REG_W, 0, 0, 0, picoreg),
  4.6422 ++  OP(PICO_REG_D, 0, 0, 1, picoreg),
  4.6423 ++  OP(PICO_REGLIST_W, 0, 0, 0, pico_reglist_w),
  4.6424 ++  OP(PICO_REGLIST_D, 0, 0, 0, pico_reglist_d),
  4.6425 ++  OP(PICO_IN, 0, 0, 0, pico_in),
  4.6426 ++  OP(PICO_OUT0, 0, 0, 0, pico_out0),
  4.6427 ++  OP(PICO_OUT1, 0, 0, 0, pico_out1),
  4.6428 ++  OP(PICO_OUT2, 0, 0, 0, pico_out2),
  4.6429 ++  OP(PICO_OUT3, 0, 0, 0, pico_out3),
  4.6430 ++};
  4.6431 ++
  4.6432 ++symbolS *
  4.6433 ++md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
  4.6434 ++{
  4.6435 ++  pr_debug("md_undefined_symbol: %s\n", name);
  4.6436 ++  return 0;
  4.6437 ++}
  4.6438 ++
  4.6439 ++struct avr32_relax_type
  4.6440 ++{
  4.6441 ++  long lower_bound;
  4.6442 ++  long upper_bound;
  4.6443 ++  unsigned char align;
  4.6444 ++  unsigned char length;
  4.6445 ++  signed short next;
  4.6446 ++};
  4.6447 ++
  4.6448 ++#define EMPTY { 0, 0, 0, 0, -1 }
  4.6449 ++#define C(lower, upper, align, next)			\
  4.6450 ++  { (lower), (upper), (align), 2, AVR32_OPC_##next }
  4.6451 ++#define E(lower, upper, align)				\
  4.6452 ++  { (lower), (upper), (align), 4, -1 }
  4.6453 ++
  4.6454 ++static const struct avr32_relax_type avr32_relax_table[] =
  4.6455 ++  {
  4.6456 ++    /* 0 */
  4.6457 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6458 ++    EMPTY, EMPTY, EMPTY,
  4.6459 ++    E(0, 65535, 0), E(0, 65535, 0), E(0, 65535, 0), E(0, 65535, 0),
  4.6460 ++    EMPTY,
  4.6461 ++    /* 16 */
  4.6462 ++    EMPTY, EMPTY, EMPTY, EMPTY,
  4.6463 ++
  4.6464 ++    C(-256, 254, 1, BREQ2), C(-256, 254, 1, BRNE2),
  4.6465 ++    C(-256, 254, 1, BRCC2), C(-256, 254, 1, BRCS2),
  4.6466 ++    C(-256, 254, 1, BRGE2), C(-256, 254, 1, BRLT2),
  4.6467 ++    C(-256, 254, 1, BRMI2), C(-256, 254, 1, BRPL2),
  4.6468 ++    E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
  4.6469 ++    E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
  4.6470 ++    /* 32 */
  4.6471 ++    E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
  4.6472 ++    E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
  4.6473 ++    E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
  4.6474 ++    E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
  4.6475 ++    E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
  4.6476 ++    E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
  4.6477 ++
  4.6478 ++    EMPTY, EMPTY, EMPTY, EMPTY,
  4.6479 ++    /* 48 */
  4.6480 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6481 ++    EMPTY, EMPTY, EMPTY,
  4.6482 ++
  4.6483 ++    C(-32, 31, 0, CP_W3), E(-1048576, 1048575, 0),
  4.6484 ++
  4.6485 ++    EMPTY, EMPTY, EMPTY,
  4.6486 ++    /* 64: csrfcz */
  4.6487 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6488 ++    E(0, 65535, 0), E(0, 65535, 0),
  4.6489 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6490 ++    E(-32768, 32767, 0),
  4.6491 ++    /* 80: LD_SB2 */
  4.6492 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6493 ++
  4.6494 ++    C(0, 7, 0, LD_UB4), E(-32768, 32767, 0),
  4.6495 ++
  4.6496 ++    EMPTY,
  4.6497 ++    EMPTY, EMPTY,
  4.6498 ++
  4.6499 ++    C(0, 14, 1, LD_SH4), E(-32768, 32767, 0),
  4.6500 ++
  4.6501 ++    EMPTY, EMPTY, EMPTY,
  4.6502 ++
  4.6503 ++    C(0, 14, 1, LD_UH4),
  4.6504 ++
  4.6505 ++    /* 96: LD_UH4 */
  4.6506 ++    E(-32768, 32767, 0),
  4.6507 ++
  4.6508 ++    EMPTY, EMPTY, EMPTY, EMPTY,
  4.6509 ++
  4.6510 ++    C(0, 124, 2, LD_W4), E(-32768, 32767, 0),
  4.6511 ++
  4.6512 ++    E(0, 1020, 2),	/* LDC_D1 */
  4.6513 ++    EMPTY, EMPTY,
  4.6514 ++    E(0, 1020, 2),	/* LDC_W1 */
  4.6515 ++    EMPTY, EMPTY,
  4.6516 ++    E(0, 16380, 2),	/* LDC0_D */
  4.6517 ++    E(0, 16380, 2),	/* LDC0_W */
  4.6518 ++    EMPTY,
  4.6519 ++
  4.6520 ++    /* 112: LDCM_D_PU */
  4.6521 ++    EMPTY, EMPTY, EMPTY,
  4.6522 ++
  4.6523 ++    C(0, 508, 2, LDDPC_EXT), E(-32768, 32767, 0),
  4.6524 ++
  4.6525 ++    EMPTY,EMPTY, EMPTY,
  4.6526 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6527 ++
  4.6528 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6529 ++    /* 134: MACHH_W */
  4.6530 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6531 ++    E(-131072, 131068, 2),	/* MCALL */
  4.6532 ++    E(0, 1020, 2),		/* MFDR */
  4.6533 ++    E(0, 1020, 2),		/* MFSR */
  4.6534 ++    EMPTY, EMPTY,
  4.6535 ++
  4.6536 ++    C(-128, 127, 0, MOV2), E(-1048576, 1048575, 0),
  4.6537 ++
  4.6538 ++    EMPTY, EMPTY, EMPTY,
  4.6539 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6540 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6541 ++
  4.6542 ++    E(-128, 127, 0),		/* MOVEQ2 */
  4.6543 ++    E(-128, 127, 0),		/* MOVNE2 */
  4.6544 ++    E(-128, 127, 0),		/* MOVCC2 */
  4.6545 ++    E(-128, 127, 0),		/* 166: MOVCS2 */
  4.6546 ++    E(-128, 127, 0),		/* MOVGE2 */
  4.6547 ++    E(-128, 127, 0),		/* MOVLT2 */
  4.6548 ++    E(-128, 127, 0),		/* MOVMI2 */
  4.6549 ++    E(-128, 127, 0),		/* MOVPL2 */
  4.6550 ++    E(-128, 127, 0),		/* MOVLS2 */
  4.6551 ++    E(-128, 127, 0),		/* MOVGT2 */
  4.6552 ++    E(-128, 127, 0),		/* MOVLE2 */
  4.6553 ++    E(-128, 127, 0),		/* MOVHI2 */
  4.6554 ++    E(-128, 127, 0),		/* MOVVS2 */
  4.6555 ++    E(-128, 127, 0),		/* MOVVC2 */
  4.6556 ++    E(-128, 127, 0),		/* MOVQS2 */
  4.6557 ++    E(-128, 127, 0),		/* MOVAL2 */
  4.6558 ++
  4.6559 ++    E(0, 1020, 2),		/* MTDR */
  4.6560 ++    E(0, 1020, 2),		/* MTSR */
  4.6561 ++    EMPTY,
  4.6562 ++    EMPTY,
  4.6563 ++    E(-128, 127, 0),		/* MUL3 */
  4.6564 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6565 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6566 ++    /* 198: MVCR_W */
  4.6567 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6568 ++    E(0, 65535, 0), E(0, 65535, 0),
  4.6569 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6570 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6571 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6572 ++    /* 230: PASR_H */
  4.6573 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6574 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6575 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6576 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6577 ++    /* 262: PUNPCKSB_H */
  4.6578 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6579 ++
  4.6580 ++    C(-1024, 1022, 1, RCALL2), E(-2097152, 2097150, 1),
  4.6581 ++
  4.6582 ++    EMPTY,
  4.6583 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6584 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6585 ++    EMPTY, EMPTY, EMPTY,
  4.6586 ++
  4.6587 ++    C(-1024, 1022, 1, BRAL),
  4.6588 ++
  4.6589 ++    EMPTY, EMPTY, EMPTY,
  4.6590 ++    E(-128, 127, 0),		/* RSUB2 */
  4.6591 ++    /* 294: SATADD_H */
  4.6592 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6593 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6594 ++    E(0, 255, 0),		/* SLEEP */
  4.6595 ++    EMPTY, EMPTY,
  4.6596 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6597 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6598 ++    /* 326: ST_B2 */
  4.6599 ++    EMPTY, EMPTY,
  4.6600 ++    C(0, 7, 0, ST_B4), E(-32768, 32767, 0),
  4.6601 ++    EMPTY, EMPTY, EMPTY, EMPTY,
  4.6602 ++    E(-32768, 32767, 0),
  4.6603 ++    EMPTY, EMPTY, EMPTY,
  4.6604 ++    C(0, 14, 1, ST_H4), E(-32768, 32767, 0),
  4.6605 ++    EMPTY, EMPTY,
  4.6606 ++    EMPTY,
  4.6607 ++    C(0, 60, 2, ST_W4), E(-32768, 32767, 0),
  4.6608 ++    E(0, 1020, 2),	/* STC_D1 */
  4.6609 ++    EMPTY, EMPTY,
  4.6610 ++    E(0, 1020, 2),	/* STC_W1 */
  4.6611 ++    EMPTY, EMPTY,
  4.6612 ++    E(0, 16380, 2),	/* STC0_D */
  4.6613 ++    E(0, 16380, 2),	/* STC0_W */
  4.6614 ++
  4.6615 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6616 ++    /* 358: STDSP */
  4.6617 ++    EMPTY, EMPTY,
  4.6618 ++    E(0, 1020, 2),	/* STHH_W1 */
  4.6619 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6620 ++    EMPTY, EMPTY, EMPTY,
  4.6621 ++    E(-32768, 32767, 0),
  4.6622 ++    C(-512, 508, 2, SUB4),
  4.6623 ++    C(-128, 127, 0, SUB4), E(-1048576, 1048576, 0),
  4.6624 ++    /* SUB{cond} */
  4.6625 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  4.6626 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  4.6627 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  4.6628 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  4.6629 ++    /* SUBF{cond} */
  4.6630 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  4.6631 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  4.6632 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  4.6633 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  4.6634 ++    EMPTY,
  4.6635 ++
  4.6636 ++    /* 406: SWAP_B */
  4.6637 ++    EMPTY, EMPTY, EMPTY,
  4.6638 ++    E(0, 255, 0),	/* SYNC */
  4.6639 ++    EMPTY, EMPTY, EMPTY, EMPTY,
  4.6640 ++    /* 414: TST */
  4.6641 ++    EMPTY, EMPTY, E(-65536, 65535, 2), E(-65536, 65535, 2), E(-65536, 65535, 2), EMPTY, EMPTY, EMPTY,
  4.6642 ++    /* 422: RSUB{cond} */
  4.6643 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  4.6644 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  4.6645 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  4.6646 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  4.6647 ++    /* 436: ADD{cond} */
  4.6648 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6649 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6650 ++    /* 454: SUB{cond} */
  4.6651 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6652 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6653 ++    /* 472: AND{cond} */
  4.6654 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6655 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6656 ++    /* 486: OR{cond} */
  4.6657 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6658 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6659 ++    /* 502: EOR{cond} */
  4.6660 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6661 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6662 ++    /* 518: LD.w{cond} */
  4.6663 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6664 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6665 ++    /* 534: LD.sh{cond} */
  4.6666 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6667 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6668 ++    /* 550: LD.uh{cond} */
  4.6669 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6670 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6671 ++    /* 566: LD.sb{cond} */
  4.6672 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6673 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6674 ++    /* 582: LD.ub{cond} */
  4.6675 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6676 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6677 ++    /* 596: ST.w{cond} */
  4.6678 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6679 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6680 ++    /* 614: ST.h{cond} */
  4.6681 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6682 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6683 ++    /* 630: ST.b{cond} */
  4.6684 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6685 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  4.6686 ++    /* 646: movh */
  4.6687 ++    E(0, 65535, 0)
  4.6688 ++  };
  4.6689 ++
  4.6690 ++#undef E
  4.6691 ++#undef C
  4.6692 ++#undef EMPTY
  4.6693 ++
  4.6694 ++#define AVR32_RS_NONE (-1)
  4.6695 ++
  4.6696 ++#define avr32_rs_size(state) (avr32_relax_table[(state)].length)
  4.6697 ++#define avr32_rs_align(state) (avr32_relax_table[(state)].align)
  4.6698 ++#define relax_more(state) (avr32_relax_table[(state)].next)
  4.6699 ++
  4.6700 ++#define opc_initial_substate(opc) ((opc)->id)
  4.6701 ++
  4.6702 ++static int need_relax(int subtype, offsetT distance)
  4.6703 ++{
  4.6704 ++  offsetT upper_bound, lower_bound;
  4.6705 ++
  4.6706 ++  upper_bound = avr32_relax_table[subtype].upper_bound;
  4.6707 ++  lower_bound = avr32_relax_table[subtype].lower_bound;
  4.6708 ++
  4.6709 ++  if (distance & ((1 << avr32_rs_align(subtype)) - 1))
  4.6710 ++    return 1;
  4.6711 ++  if ((distance > upper_bound) || (distance < lower_bound))
  4.6712 ++    return 1;
  4.6713 ++
  4.6714 ++  return 0;
  4.6715 ++}
  4.6716 ++
  4.6717 ++enum {
  4.6718 ++  LDA_SUBTYPE_MOV1,
  4.6719 ++  LDA_SUBTYPE_MOV2,
  4.6720 ++  LDA_SUBTYPE_SUB,
  4.6721 ++  LDA_SUBTYPE_LDDPC,
  4.6722 ++  LDA_SUBTYPE_LDW,
  4.6723 ++  LDA_SUBTYPE_GOTLOAD,
  4.6724 ++  LDA_SUBTYPE_GOTLOAD_LARGE,
  4.6725 ++};
  4.6726 ++
  4.6727 ++enum {
  4.6728 ++  CALL_SUBTYPE_RCALL1,
  4.6729 ++  CALL_SUBTYPE_RCALL2,
  4.6730 ++  CALL_SUBTYPE_MCALL_CP,
  4.6731 ++  CALL_SUBTYPE_MCALL_GOT,
  4.6732 ++  CALL_SUBTYPE_MCALL_LARGE,
  4.6733 ++};
  4.6734 ++
  4.6735 ++#define LDA_INITIAL_SIZE	(avr32_pic ? 4 : 2)
  4.6736 ++#define CALL_INITIAL_SIZE	2
  4.6737 ++
  4.6738 ++#define need_reloc(sym, seg, pcrel)					\
  4.6739 ++  (!(S_IS_DEFINED(sym)							\
  4.6740 ++     && ((pcrel && S_GET_SEGMENT(sym) == seg)				\
  4.6741 ++	 || (!pcrel && S_GET_SEGMENT(sym) == absolute_section)))	\
  4.6742 ++   || S_FORCE_RELOC(sym, 1))
  4.6743 ++
  4.6744 ++/* Return an initial guess of the length by which a fragment must grow to
  4.6745 ++   hold a branch to reach its destination.
  4.6746 ++   Also updates fr_type/fr_subtype as necessary.
  4.6747 ++
  4.6748 ++   Called just before doing relaxation.
  4.6749 ++   Any symbol that is now undefined will not become defined.
  4.6750 ++   The guess for fr_var is ACTUALLY the growth beyond fr_fix.
  4.6751 ++   Whatever we do to grow fr_fix or fr_var contributes to our returned value.
  4.6752 ++   Although it may not be explicit in the frag, pretend fr_var starts with a
  4.6753 ++   0 value.  */
  4.6754 ++
  4.6755 ++static int
  4.6756 ++avr32_default_estimate_size_before_relax (fragS *fragP, segT segment)
  4.6757 ++{
  4.6758 ++  int growth = 0;
  4.6759 ++
  4.6760 ++  assert(fragP);
  4.6761 ++  assert(fragP->fr_symbol);
  4.6762 ++
  4.6763 ++  if (fragP->tc_frag_data.force_extended
  4.6764 ++      || need_reloc(fragP->fr_symbol, segment, fragP->tc_frag_data.pcrel))
  4.6765 ++    {
  4.6766 ++      int largest_state = fragP->fr_subtype;
  4.6767 ++      while (relax_more(largest_state) != AVR32_RS_NONE)
  4.6768 ++	largest_state = relax_more(largest_state);
  4.6769 ++      growth = avr32_rs_size(largest_state) - fragP->fr_var;
  4.6770 ++    }
  4.6771 ++  else
  4.6772 ++    {
  4.6773 ++      growth = avr32_rs_size(fragP->fr_subtype) - fragP->fr_var;
  4.6774 ++    }
  4.6775 ++
  4.6776 ++  pr_debug("%s:%d: md_estimate_size_before_relax: %d\n",
  4.6777 ++	   fragP->fr_file, fragP->fr_line, growth);
  4.6778 ++
  4.6779 ++  return growth;
  4.6780 ++}
  4.6781 ++
  4.6782 ++static int
  4.6783 ++avr32_lda_estimate_size_before_relax(fragS *fragP, segT segment ATTRIBUTE_UNUSED)
  4.6784 ++{
  4.6785 ++  return fragP->fr_var - LDA_INITIAL_SIZE;
  4.6786 ++}
  4.6787 ++
  4.6788 ++static int
  4.6789 ++avr32_call_estimate_size_before_relax(fragS *fragP, segT segment ATTRIBUTE_UNUSED)
  4.6790 ++{
  4.6791 ++  return fragP->fr_var - CALL_INITIAL_SIZE;
  4.6792 ++}
  4.6793 ++
  4.6794 ++static int
  4.6795 ++avr32_cpool_estimate_size_before_relax(fragS *fragP,
  4.6796 ++				       segT segment ATTRIBUTE_UNUSED)
  4.6797 ++{
  4.6798 ++  return fragP->fr_var;
  4.6799 ++}
  4.6800 ++
  4.6801 ++/* This macro may be defined to relax a frag. GAS will call this with the
  4.6802 ++ * segment, the frag, and the change in size of all previous frags;
  4.6803 ++ * md_relax_frag should return the change in size of the frag. */
  4.6804 ++static long
  4.6805 ++avr32_default_relax_frag (segT segment, fragS *fragP, long stretch)
  4.6806 ++{
  4.6807 ++  int state, next_state;
  4.6808 ++  symbolS *symbolP;	/* The target symbol */
  4.6809 ++  long growth = 0;
  4.6810 ++
  4.6811 ++  state = next_state = fragP->fr_subtype;
  4.6812 ++
  4.6813 ++  symbolP = fragP->fr_symbol;
  4.6814 ++
  4.6815 ++  if (fragP->tc_frag_data.force_extended
  4.6816 ++      || need_reloc(symbolP, segment, fragP->tc_frag_data.pcrel))
  4.6817 ++    {
  4.6818 ++      /* Symbol must be resolved by the linker. Emit the largest
  4.6819 ++	 possible opcode. */
  4.6820 ++      while (relax_more(next_state) != AVR32_RS_NONE)
  4.6821 ++	next_state = relax_more(next_state);
  4.6822 ++    }
  4.6823 ++  else
  4.6824 ++    {
  4.6825 ++      addressT address;	/* The address of fragP */
  4.6826 ++      addressT target;	/* The address of the target symbol */
  4.6827 ++      offsetT distance;	/* The distance between the insn and the symbol */
  4.6828 ++      fragS *sym_frag;
  4.6829 ++
  4.6830 ++      address = fragP->fr_address;
  4.6831 ++      target = fragP->fr_offset;
  4.6832 ++      symbolP = fragP->fr_symbol;
  4.6833 ++      sym_frag = symbol_get_frag(symbolP);
  4.6834 ++
  4.6835 ++      address += fragP->fr_fix - fragP->fr_var;
  4.6836 ++      target += S_GET_VALUE(symbolP);
  4.6837 ++
  4.6838 ++      if (stretch != 0
  4.6839 ++	  && sym_frag->relax_marker != fragP->relax_marker
  4.6840 ++	  && S_GET_SEGMENT(symbolP) == segment)
  4.6841 ++	/* if it was correctly aligned before, make sure it stays aligned */
  4.6842 ++	target += stretch & (~0UL << avr32_rs_align(state));
  4.6843 ++
  4.6844 ++      if (fragP->tc_frag_data.pcrel)
  4.6845 ++	distance = target - (address & (~0UL << avr32_rs_align(state)));
  4.6846 ++      else
  4.6847 ++	distance = target;
  4.6848 ++
  4.6849 ++      pr_debug("%s:%d: relax more? 0x%x - 0x%x = 0x%x (%d), align %d\n",
  4.6850 ++	       fragP->fr_file, fragP->fr_line, target, address,
  4.6851 ++	       distance, distance, avr32_rs_align(state));
  4.6852 ++
  4.6853 ++      if (need_relax(state, distance))
  4.6854 ++	{
  4.6855 ++	  if (relax_more(state) != AVR32_RS_NONE)
  4.6856 ++	    next_state = relax_more(state);
  4.6857 ++	  pr_debug("%s:%d: relax more %d -> %d (%d - %d, align %d)\n",
  4.6858 ++		   fragP->fr_file, fragP->fr_line, state, next_state,
  4.6859 ++		   target, address, avr32_rs_align(state));
  4.6860 ++	}
  4.6861 ++    }
  4.6862 ++
  4.6863 ++  growth = avr32_rs_size(next_state) - avr32_rs_size(state);
  4.6864 ++  fragP->fr_subtype = next_state;
  4.6865 ++
  4.6866 ++  pr_debug("%s:%d: md_relax_frag: growth=%d, subtype=%d, opc=0x%08lx\n",
  4.6867 ++	   fragP->fr_file, fragP->fr_line, growth, fragP->fr_subtype,
  4.6868 ++	   avr32_opc_table[next_state].value);
  4.6869 ++
  4.6870 ++  return growth;
  4.6871 ++}
  4.6872 ++
  4.6873 ++static long
  4.6874 ++avr32_lda_relax_frag(segT segment, fragS *fragP, long stretch)
  4.6875 ++{
  4.6876 ++  struct cpool *pool= NULL;
  4.6877 ++  unsigned int entry = 0;
  4.6878 ++  addressT address, target;
  4.6879 ++  offsetT distance;
  4.6880 ++  symbolS *symbolP;
  4.6881 ++  fragS *sym_frag;
  4.6882 ++  long old_size, new_size;
  4.6883 ++
  4.6884 ++  symbolP = fragP->fr_symbol;
  4.6885 ++  old_size = fragP->fr_var;
  4.6886 ++  if (!avr32_pic)
  4.6887 ++    {
  4.6888 ++      pool = fragP->tc_frag_data.pool;
  4.6889 ++      entry = fragP->tc_frag_data.pool_entry;
  4.6890 ++    }
  4.6891 ++
  4.6892 ++  address = fragP->fr_address;
  4.6893 ++  address += fragP->fr_fix - LDA_INITIAL_SIZE;
  4.6894 ++
  4.6895 ++  if (!S_IS_DEFINED(symbolP) || S_FORCE_RELOC(symbolP, 1))
  4.6896 ++    goto relax_max;
  4.6897 ++
  4.6898 ++  target = fragP->fr_offset;
  4.6899 ++  sym_frag = symbol_get_frag(symbolP);
  4.6900 ++  target += S_GET_VALUE(symbolP);
  4.6901 ++
  4.6902 ++  if (sym_frag->relax_marker != fragP->relax_marker
  4.6903 ++      && S_GET_SEGMENT(symbolP) == segment)
  4.6904 ++    target += stretch;
  4.6905 ++
  4.6906 ++  distance = target - address;
  4.6907 ++
  4.6908 ++  pr_debug("lda_relax_frag: target: %d, address: %d, var: %d\n",
  4.6909 ++	   target, address, fragP->fr_var);
  4.6910 ++
  4.6911 ++  if (!avr32_pic && S_GET_SEGMENT(symbolP) == absolute_section
  4.6912 ++      && target <= 127 && (offsetT)target >= -128)
  4.6913 ++    {
  4.6914 ++      if (fragP->fr_subtype == LDA_SUBTYPE_LDDPC
  4.6915 ++	  || fragP->fr_subtype == LDA_SUBTYPE_LDW)
  4.6916 ++	pool->literals[entry].refcount--;
  4.6917 ++      new_size = 2;
  4.6918 ++      fragP->fr_subtype = LDA_SUBTYPE_MOV1;
  4.6919 ++    }
  4.6920 ++  else if (!avr32_pic && S_GET_SEGMENT(symbolP) == absolute_section
  4.6921 ++	   && target <= 1048575 && (offsetT)target >= -1048576)
  4.6922 ++    {
  4.6923 ++      if (fragP->fr_subtype == LDA_SUBTYPE_LDDPC
  4.6924 ++	  || fragP->fr_subtype == LDA_SUBTYPE_LDW)
  4.6925 ++	pool->literals[entry].refcount--;
  4.6926 ++      new_size = 4;
  4.6927 ++      fragP->fr_subtype = LDA_SUBTYPE_MOV2;
  4.6928 ++    }
  4.6929 ++  else if (!linkrelax && S_GET_SEGMENT(symbolP) == segment
  4.6930 ++	   /* the field will be negated, so this is really -(-32768)
  4.6931 ++	      and -(32767) */
  4.6932 ++	   && distance <= 32768 && distance >= -32767)
  4.6933 ++    {
  4.6934 ++      if (!avr32_pic
  4.6935 ++	  && (fragP->fr_subtype == LDA_SUBTYPE_LDDPC
  4.6936 ++	      || fragP->fr_subtype == LDA_SUBTYPE_LDW))
  4.6937 ++	pool->literals[entry].refcount--;
  4.6938 ++      new_size = 4;
  4.6939 ++      fragP->fr_subtype = LDA_SUBTYPE_SUB;
  4.6940 ++    }
  4.6941 ++  else
  4.6942 ++    {
  4.6943 ++    relax_max:
  4.6944 ++      if (avr32_pic)
  4.6945 ++	{
  4.6946 ++	  if (linkrelax)
  4.6947 ++	    {
  4.6948 ++	      new_size = 8;
  4.6949 ++	      fragP->fr_subtype = LDA_SUBTYPE_GOTLOAD_LARGE;
  4.6950 ++	    }
  4.6951 ++	  else
  4.6952 ++	    {
  4.6953 ++	      new_size = 4;
  4.6954 ++	      fragP->fr_subtype = LDA_SUBTYPE_GOTLOAD;
  4.6955 ++	    }
  4.6956 ++	}
  4.6957 ++      else
  4.6958 ++	{
  4.6959 ++	  if (fragP->fr_subtype != LDA_SUBTYPE_LDDPC
  4.6960 ++	      && fragP->fr_subtype != LDA_SUBTYPE_LDW)
  4.6961 ++	    pool->literals[entry].refcount++;
  4.6962 ++
  4.6963 ++	  sym_frag = symbol_get_frag(pool->symbol);
  4.6964 ++	  target = (sym_frag->fr_address + sym_frag->fr_fix
  4.6965 ++		    + pool->padding + pool->literals[entry].offset);
  4.6966 ++
  4.6967 ++	  pr_debug("cpool sym address: 0x%lx\n",
  4.6968 ++		   sym_frag->fr_address + sym_frag->fr_fix);
  4.6969 ++
  4.6970 ++	  know(pool->section == segment);
  4.6971 ++
  4.6972 ++	  if (sym_frag->relax_marker != fragP->relax_marker)
  4.6973 ++	    target += stretch;
  4.6974 ++
  4.6975 ++	  distance = target - address;
  4.6976 ++	  if (distance <= 508 && distance >= 0)
  4.6977 ++	    {
  4.6978 ++	      new_size = 2;
  4.6979 ++	      fragP->fr_subtype = LDA_SUBTYPE_LDDPC;
  4.6980 ++	    }
  4.6981 ++	  else
  4.6982 ++	    {
  4.6983 ++	      new_size = 4;
  4.6984 ++	      fragP->fr_subtype = LDA_SUBTYPE_LDW;
  4.6985 ++	    }
  4.6986 ++
  4.6987 ++	  pr_debug("lda_relax_frag (cpool): target=0x%lx, address=0x%lx, refcount=%d\n",
  4.6988 ++		   target, address, pool->literals[entry].refcount);
  4.6989 ++	}
  4.6990 ++    }
  4.6991 ++
  4.6992 ++  fragP->fr_var = new_size;
  4.6993 ++
  4.6994 ++  pr_debug("%s:%d: lda: relax pass done. subtype: %d, growth: %ld\n",
  4.6995 ++	   fragP->fr_file, fragP->fr_line,
  4.6996 ++	   fragP->fr_subtype, new_size - old_size);
  4.6997 ++
  4.6998 ++  return new_size - old_size;
  4.6999 ++}
  4.7000 ++
  4.7001 ++static long
  4.7002 ++avr32_call_relax_frag(segT segment, fragS *fragP, long stretch)
  4.7003 ++{
  4.7004 ++  struct cpool *pool = NULL;
  4.7005 ++  unsigned int entry = 0;
  4.7006 ++  addressT address, target;
  4.7007 ++  offsetT distance;
  4.7008 ++  symbolS *symbolP;
  4.7009 ++  fragS *sym_frag;
  4.7010 ++  long old_size, new_size;
  4.7011 ++
  4.7012 ++  symbolP = fragP->fr_symbol;
  4.7013 ++  old_size = fragP->fr_var;
  4.7014 ++  if (!avr32_pic)
  4.7015 ++    {
  4.7016 ++      pool = fragP->tc_frag_data.pool;
  4.7017 ++      entry = fragP->tc_frag_data.pool_entry;
  4.7018 ++    }
  4.7019 ++
  4.7020 ++  address = fragP->fr_address;
  4.7021 ++  address += fragP->fr_fix - CALL_INITIAL_SIZE;
  4.7022 ++
  4.7023 ++  if (need_reloc(symbolP, segment, 1))
  4.7024 ++    {
  4.7025 ++      pr_debug("call: must emit reloc\n");
  4.7026 ++      goto relax_max;
  4.7027 ++    }
  4.7028 ++
  4.7029 ++  target = fragP->fr_offset;
  4.7030 ++  sym_frag = symbol_get_frag(symbolP);
  4.7031 ++  target += S_GET_VALUE(symbolP);
  4.7032 ++
  4.7033 ++  if (sym_frag->relax_marker != fragP->relax_marker
  4.7034 ++      && S_GET_SEGMENT(symbolP) == segment)
  4.7035 ++    target += stretch;
  4.7036 ++
  4.7037 ++  distance = target - address;
  4.7038 ++
  4.7039 ++  if (distance <= 1022 && distance >= -1024)
  4.7040 ++    {
  4.7041 ++      pr_debug("call: distance is %d, emitting short rcall\n", distance);
  4.7042 ++      if (!avr32_pic && fragP->fr_subtype == CALL_SUBTYPE_MCALL_CP)
  4.7043 ++	pool->literals[entry].refcount--;
  4.7044 ++      new_size = 2;
  4.7045 ++      fragP->fr_subtype = CALL_SUBTYPE_RCALL1;
  4.7046 ++    }
  4.7047 ++  else if (distance <= 2097150 && distance >= -2097152)
  4.7048 ++    {
  4.7049 ++      pr_debug("call: distance is %d, emitting long rcall\n", distance);
  4.7050 ++      if (!avr32_pic && fragP->fr_subtype == CALL_SUBTYPE_MCALL_CP)
  4.7051 ++	pool->literals[entry].refcount--;
  4.7052 ++      new_size = 4;
  4.7053 ++      fragP->fr_subtype = CALL_SUBTYPE_RCALL2;
  4.7054 ++    }
  4.7055 ++  else
  4.7056 ++    {
  4.7057 ++      pr_debug("call: distance %d too far, emitting something big\n", distance);
  4.7058 ++
  4.7059 ++    relax_max:
  4.7060 ++      if (avr32_pic)
  4.7061 ++	{
  4.7062 ++	  if (linkrelax)
  4.7063 ++	    {
  4.7064 ++	      new_size = 10;
  4.7065 ++	      fragP->fr_subtype = CALL_SUBTYPE_MCALL_LARGE;
  4.7066 ++	    }
  4.7067 ++	  else
  4.7068 ++	    {
  4.7069 ++	      new_size = 4;
  4.7070 ++	      fragP->fr_subtype = CALL_SUBTYPE_MCALL_GOT;
  4.7071 ++	    }
  4.7072 ++	}
  4.7073 ++      else
  4.7074 ++	{
  4.7075 ++	  if (fragP->fr_subtype != CALL_SUBTYPE_MCALL_CP)
  4.7076 ++	    pool->literals[entry].refcount++;
  4.7077 ++
  4.7078 ++	  new_size = 4;
  4.7079 ++	  fragP->fr_subtype = CALL_SUBTYPE_MCALL_CP;
  4.7080 ++	}
  4.7081 ++    }
  4.7082 ++
  4.7083 ++  fragP->fr_var = new_size;
  4.7084 ++
  4.7085 ++  pr_debug("%s:%d: call: relax pass done, growth: %d, fr_var: %d\n",
  4.7086 ++	   fragP->fr_file, fragP->fr_line,
  4.7087 ++	   new_size - old_size, fragP->fr_var);
  4.7088 ++
  4.7089 ++  return new_size - old_size;
  4.7090 ++}
  4.7091 ++
  4.7092 ++static long
  4.7093 ++avr32_cpool_relax_frag(segT segment ATTRIBUTE_UNUSED,
  4.7094 ++		       fragS *fragP,
  4.7095 ++		       long stretch ATTRIBUTE_UNUSED)
  4.7096 ++{
  4.7097 ++  struct cpool *pool;
  4.7098 ++  addressT address;
  4.7099 ++  long old_size, new_size;
  4.7100 ++  unsigned int entry;
  4.7101 ++
  4.7102 ++  pool = fragP->tc_frag_data.pool;
  4.7103 ++  address = fragP->fr_address + fragP->fr_fix;
  4.7104 ++  old_size = fragP->fr_var;
  4.7105 ++  new_size = 0;
  4.7106 ++
  4.7107 ++  for (entry = 0; entry < pool->next_free_entry; entry++)
  4.7108 ++    {
  4.7109 ++      if (pool->literals[entry].refcount > 0)
  4.7110 ++	{
  4.7111 ++	  pool->literals[entry].offset = new_size;
  4.7112 ++	  new_size += 4;
  4.7113 ++	}
  4.7114 ++    }
  4.7115 ++
  4.7116 ++  fragP->fr_var = new_size;
  4.7117 ++
  4.7118 ++  return new_size - old_size;
  4.7119 ++}
  4.7120 ++
  4.7121 ++/* *fragP has been relaxed to its final size, and now needs to have
  4.7122 ++   the bytes inside it modified to conform to the new size.
  4.7123 ++
  4.7124 ++   Called after relaxation is finished.
  4.7125 ++   fragP->fr_type == rs_machine_dependent.
  4.7126 ++   fragP->fr_subtype is the subtype of what the address relaxed to.  */
  4.7127 ++
  4.7128 ++static void
  4.7129 ++avr32_default_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
  4.7130 ++			    segT segment ATTRIBUTE_UNUSED,
  4.7131 ++			    fragS *fragP)
  4.7132 ++{
  4.7133 ++  const struct avr32_opcode *opc;
  4.7134 ++  const struct avr32_ifield *ifield;
  4.7135 ++  bfd_reloc_code_real_type r_type;
  4.7136 ++  symbolS *symbolP;
  4.7137 ++  fixS *fixP;
  4.7138 ++  bfd_vma value;
  4.7139 ++  int subtype;
  4.7140 ++
  4.7141 ++  opc = &avr32_opc_table[fragP->fr_subtype];
  4.7142 ++  ifield = opc->fields[opc->var_field];
  4.7143 ++  symbolP = fragP->fr_symbol;
  4.7144 ++  subtype = fragP->fr_subtype;
  4.7145 ++  r_type = opc->reloc_type;
  4.7146 ++
  4.7147 ++  /* Clear the opcode bits and the bits belonging to the relaxed
  4.7148 ++     field.  We assume all other fields stay the same.  */
  4.7149 ++  value = bfd_getb32(fragP->fr_opcode);
  4.7150 ++  value &= ~(opc->mask | ifield->mask);
  4.7151 ++
  4.7152 ++  /* Insert the new opcode */
  4.7153 ++  value |= opc->value;
  4.7154 ++  bfd_putb32(value, fragP->fr_opcode);
  4.7155 ++
  4.7156 ++  fragP->fr_fix += opc->size - fragP->fr_var;
  4.7157 ++
  4.7158 ++  if (fragP->tc_frag_data.reloc_info != AVR32_OPINFO_NONE)
  4.7159 ++    {
  4.7160 ++      switch (fragP->tc_frag_data.reloc_info)
  4.7161 ++	{
  4.7162 ++	case AVR32_OPINFO_HI:
  4.7163 ++	  r_type = BFD_RELOC_HI16;
  4.7164 ++	  break;
  4.7165 ++	case AVR32_OPINFO_LO:
  4.7166 ++	  r_type = BFD_RELOC_LO16;
  4.7167 ++	  break;
  4.7168 ++	case AVR32_OPINFO_GOT:
  4.7169 ++	  switch (r_type)
  4.7170 ++	    {
  4.7171 ++	    case BFD_RELOC_AVR32_18W_PCREL:
  4.7172 ++	      r_type = BFD_RELOC_AVR32_GOT18SW;
  4.7173 ++	      break;
  4.7174 ++	    case BFD_RELOC_AVR32_16S:
  4.7175 ++	      r_type = BFD_RELOC_AVR32_GOT16S;
  4.7176 ++	      break;
  4.7177 ++	    default:
  4.7178 ++	      BAD_CASE(r_type);
  4.7179 ++	      break;
  4.7180 ++	    }
  4.7181 ++	  break;
  4.7182 ++	default:
  4.7183 ++	  BAD_CASE(fragP->tc_frag_data.reloc_info);
  4.7184 ++	  break;
  4.7185 ++	}
  4.7186 ++    }
  4.7187 ++
  4.7188 ++  pr_debug("%s:%d: convert_frag: new %s fixup\n",
  4.7189 ++	   fragP->fr_file, fragP->fr_line,
  4.7190 ++	   bfd_get_reloc_code_name(r_type));
  4.7191 ++
  4.7192 ++#if 1
  4.7193 ++  fixP = fix_new_exp(fragP, fragP->fr_fix - opc->size, opc->size,
  4.7194 ++		     &fragP->tc_frag_data.exp,
  4.7195 ++		     fragP->tc_frag_data.pcrel, r_type);
  4.7196 ++#else
  4.7197 ++  fixP = fix_new(fragP, fragP->fr_fix - opc->size, opc->size, symbolP,
  4.7198 ++		 fragP->fr_offset, fragP->tc_frag_data.pcrel, r_type);
  4.7199 ++#endif
  4.7200 ++
  4.7201 ++  /* Revert fix_new brain damage. "dot_value" is the value of PC at
  4.7202 ++     the point of the fixup, relative to the frag address.  fix_new()
  4.7203 ++     and friends think they are only being called during the assembly
  4.7204 ++     pass, not during relaxation or similar, so fx_dot_value, fx_file
  4.7205 ++     and fx_line are all initialized to the wrong value.  But we don't
  4.7206 ++     know the size of the fixup until now, so we really can't live up
  4.7207 ++     to the assumptions these functions make about the target.  What
  4.7208 ++     do these functions think the "where" and "frag" argument mean
  4.7209 ++     anyway?  */
  4.7210 ++  fixP->fx_dot_value = fragP->fr_fix - opc->size;
  4.7211 ++  fixP->fx_file = fragP->fr_file;
  4.7212 ++  fixP->fx_line = fragP->fr_line;
  4.7213 ++
  4.7214 ++  fixP->tc_fix_data.ifield = ifield;
  4.7215 ++  fixP->tc_fix_data.align = avr32_rs_align(subtype);
  4.7216 ++  fixP->tc_fix_data.min = avr32_relax_table[subtype].lower_bound;
  4.7217 ++  fixP->tc_fix_data.max = avr32_relax_table[subtype].upper_bound;
  4.7218 ++}
  4.7219 ++
  4.7220 ++static void
  4.7221 ++avr32_lda_convert_frag(bfd *abfd ATTRIBUTE_UNUSED,
  4.7222 ++		       segT segment ATTRIBUTE_UNUSED,
  4.7223 ++		       fragS *fragP)
  4.7224 ++{
  4.7225 ++  const struct avr32_opcode *opc;
  4.7226 ++  const struct avr32_ifield *ifield;
  4.7227 ++  bfd_reloc_code_real_type r_type;
  4.7228 ++  expressionS exp;
  4.7229 ++  struct cpool *pool;
  4.7230 ++  fixS *fixP;
  4.7231 ++  bfd_vma value;
  4.7232 ++  int regid, pcrel = 0, align = 0;
  4.7233 ++  char *p;
  4.7234 ++
  4.7235 ++  r_type = BFD_RELOC_NONE;
  4.7236 ++  regid = fragP->tc_frag_data.reloc_info;
  4.7237 ++  p = fragP->fr_opcode;
  4.7238 ++  exp.X_add_symbol = fragP->fr_symbol;
  4.7239 ++  exp.X_add_number = fragP->fr_offset;
  4.7240 ++  exp.X_op = O_symbol;
  4.7241 ++
  4.7242 ++  pr_debug("%s:%d: lda_convert_frag, subtype: %d, fix: %d, var: %d, regid: %d\n",
  4.7243 ++	   fragP->fr_file, fragP->fr_line,
  4.7244 ++	   fragP->fr_subtype, fragP->fr_fix, fragP->fr_var, regid);
  4.7245 ++
  4.7246 ++  switch (fragP->fr_subtype)
  4.7247 ++    {
  4.7248 ++    case LDA_SUBTYPE_MOV1:
  4.7249 ++      opc = &avr32_opc_table[AVR32_OPC_MOV1];
  4.7250 ++      opc->fields[0]->insert(opc->fields[0], p, regid);
  4.7251 ++      ifield = opc->fields[1];
  4.7252 ++      r_type = opc->reloc_type;
  4.7253 ++      break;
  4.7254 ++    case LDA_SUBTYPE_MOV2:
  4.7255 ++      opc = &avr32_opc_table[AVR32_OPC_MOV2];
  4.7256 ++      opc->fields[0]->insert(opc->fields[0], p, regid);
  4.7257 ++      ifield = opc->fields[1];
  4.7258 ++      r_type = opc->reloc_type;
  4.7259 ++      break;
  4.7260 ++    case LDA_SUBTYPE_SUB:
  4.7261 ++      opc = &avr32_opc_table[AVR32_OPC_SUB5];
  4.7262 ++      opc->fields[0]->insert(opc->fields[0], p, regid);
  4.7263 ++      opc->fields[1]->insert(opc->fields[1], p, AVR32_REG_PC);
  4.7264 ++      ifield = opc->fields[2];
  4.7265 ++      r_type = BFD_RELOC_AVR32_16N_PCREL;
  4.7266 ++
  4.7267 ++      /* Pretend that SUB5 isn't a "negated" pcrel expression for now.
  4.7268 ++	 We'll have to fix it up later when we know whether to
  4.7269 ++	 generate a reloc for it (in which case the linker will negate
  4.7270 ++	 it, so we shouldn't). */
  4.7271 ++      pcrel = 1;
  4.7272 ++      break;
  4.7273 ++    case LDA_SUBTYPE_LDDPC:
  4.7274 ++      opc = &avr32_opc_table[AVR32_OPC_LDDPC];
  4.7275 ++      align = 2;
  4.7276 ++      r_type = BFD_RELOC_AVR32_9W_CP;
  4.7277 ++      goto cpool_common;
  4.7278 ++    case LDA_SUBTYPE_LDW:
  4.7279 ++      opc = &avr32_opc_table[AVR32_OPC_LDDPC_EXT];
  4.7280 ++      r_type = BFD_RELOC_AVR32_16_CP;
  4.7281 ++    cpool_common:
  4.7282 ++      opc->fields[0]->insert(opc->fields[0], p, regid);
  4.7283 ++      ifield = opc->fields[1];
  4.7284 ++      pool = fragP->tc_frag_data.pool;
  4.7285 ++      exp.X_add_symbol = pool->symbol;
  4.7286 ++      exp.X_add_number = pool->literals[fragP->tc_frag_data.pool_entry].offset;
  4.7287 ++      pcrel = 1;
  4.7288 ++      break;
  4.7289 ++    case LDA_SUBTYPE_GOTLOAD_LARGE:
  4.7290 ++      /* ld.w Rd, r6[Rd << 2] (last) */
  4.7291 ++      opc = &avr32_opc_table[AVR32_OPC_LD_W5];
  4.7292 ++      bfd_putb32(opc->value, p + 4);
  4.7293 ++      opc->fields[0]->insert(opc->fields[0], p + 4, regid);
  4.7294 ++      opc->fields[1]->insert(opc->fields[1], p + 4, 6);
  4.7295 ++      opc->fields[2]->insert(opc->fields[2], p + 4, regid);
  4.7296 ++      opc->fields[3]->insert(opc->fields[3], p + 4, 2);
  4.7297 ++
  4.7298 ++      /* mov Rd, (got_offset / 4) */
  4.7299 ++      opc = &avr32_opc_table[AVR32_OPC_MOV2];
  4.7300 ++      opc->fields[0]->insert(opc->fields[0], p, regid);
  4.7301 ++      ifield = opc->fields[1];
  4.7302 ++      r_type = BFD_RELOC_AVR32_LDA_GOT;
  4.7303 ++      break;
  4.7304 ++    case LDA_SUBTYPE_GOTLOAD:
  4.7305 ++      opc = &avr32_opc_table[AVR32_OPC_LD_W4];
  4.7306 ++      opc->fields[0]->insert(opc->fields[0], p, regid);
  4.7307 ++      opc->fields[1]->insert(opc->fields[1], p, 6);
  4.7308 ++      ifield = opc->fields[2];
  4.7309 ++      if (r_type == BFD_RELOC_NONE)
  4.7310 ++	r_type = BFD_RELOC_AVR32_GOT16S;
  4.7311 ++      break;
  4.7312 ++    default:
  4.7313 ++      BAD_CASE(fragP->fr_subtype);
  4.7314 ++    }
  4.7315 ++
  4.7316 ++  value = bfd_getb32(p);
  4.7317 ++  value &= ~(opc->mask | ifield->mask);
  4.7318 ++  value |= opc->value;
  4.7319 ++  bfd_putb32(value, p);
  4.7320 ++
  4.7321 ++  fragP->fr_fix += fragP->fr_var - LDA_INITIAL_SIZE;
  4.7322 ++
  4.7323 ++  if (fragP->fr_next
  4.7324 ++      && ((offsetT)(fragP->fr_next->fr_address - fragP->fr_address)
  4.7325 ++	  != fragP->fr_fix))
  4.7326 ++    {
  4.7327 ++      fprintf(stderr, "LDA frag: fr_fix is wrong! fragP->fr_var = %ld, r_type = %s\n",
  4.7328 ++	      fragP->fr_var, bfd_get_reloc_code_name(r_type));
  4.7329 ++      abort();
  4.7330 ++    }
  4.7331 ++
  4.7332 ++  fixP = fix_new_exp(fragP, fragP->fr_fix - fragP->fr_var, fragP->fr_var,
  4.7333 ++		     &exp, pcrel, r_type);
  4.7334 ++
  4.7335 ++  /* Revert fix_new brain damage. "dot_value" is the value of PC at
  4.7336 ++     the point of the fixup, relative to the frag address.  fix_new()
  4.7337 ++     and friends think they are only being called during the assembly
  4.7338 ++     pass, not during relaxation or similar, so fx_dot_value, fx_file
  4.7339 ++     and fx_line are all initialized to the wrong value.  But we don't
  4.7340 ++     know the size of the fixup until now, so we really can't live up
  4.7341 ++     to the assumptions these functions make about the target.  What
  4.7342 ++     do these functions think the "where" and "frag" argument mean
  4.7343 ++     anyway?  */
  4.7344 ++  fixP->fx_dot_value = fragP->fr_fix - opc->size;
  4.7345 ++  fixP->fx_file = fragP->fr_file;
  4.7346 ++  fixP->fx_line = fragP->fr_line;
  4.7347 ++
  4.7348 ++  fixP->tc_fix_data.ifield = ifield;
  4.7349 ++  fixP->tc_fix_data.align = align;
  4.7350 ++  /* these are only used if the fixup can actually be resolved */
  4.7351 ++  fixP->tc_fix_data.min = -32768;
  4.7352 ++  fixP->tc_fix_data.max = 32767;
  4.7353 ++}
  4.7354 ++
  4.7355 ++static void
  4.7356 ++avr32_call_convert_frag(bfd *abfd ATTRIBUTE_UNUSED,
  4.7357 ++		       segT segment ATTRIBUTE_UNUSED,
  4.7358 ++		       fragS *fragP)
  4.7359 ++{
  4.7360 ++  const struct avr32_opcode *opc = NULL;
  4.7361 ++  const struct avr32_ifield *ifield;
  4.7362 ++  bfd_reloc_code_real_type r_type;
  4.7363 ++  symbolS *symbol;
  4.7364 ++  offsetT offset;
  4.7365 ++  fixS *fixP;
  4.7366 ++  bfd_vma value;
  4.7367 ++  int pcrel = 0, align = 0;
  4.7368 ++  char *p;
  4.7369 ++
  4.7370 ++  symbol = fragP->fr_symbol;
  4.7371 ++  offset = fragP->fr_offset;
  4.7372 ++  r_type = BFD_RELOC_NONE;
  4.7373 ++  p = fragP->fr_opcode;
  4.7374 ++
  4.7375 ++  pr_debug("%s:%d: call_convert_frag, subtype: %d, fix: %d, var: %d\n",
  4.7376 ++	   fragP->fr_file, fragP->fr_line,
  4.7377 ++	   fragP->fr_subtype, fragP->fr_fix, fragP->fr_var);
  4.7378 ++
  4.7379 ++  switch (fragP->fr_subtype)
  4.7380 ++    {
  4.7381 ++    case CALL_SUBTYPE_RCALL1:
  4.7382 ++      opc = &avr32_opc_table[AVR32_OPC_RCALL1];
  4.7383 ++      /* fall through */
  4.7384 ++    case CALL_SUBTYPE_RCALL2:
  4.7385 ++      if (!opc)
  4.7386 ++	opc = &avr32_opc_table[AVR32_OPC_RCALL2];
  4.7387 ++      ifield = opc->fields[0];
  4.7388 ++      r_type = opc->reloc_type;
  4.7389 ++      pcrel = 1;
  4.7390 ++      align = 1;
  4.7391 ++      break;
  4.7392 ++    case CALL_SUBTYPE_MCALL_CP:
  4.7393 ++      opc = &avr32_opc_table[AVR32_OPC_MCALL];
  4.7394 ++      opc->fields[0]->insert(opc->fields[0], p, AVR32_REG_PC);
  4.7395 ++      ifield = opc->fields[1];
  4.7396 ++      r_type = BFD_RELOC_AVR32_CPCALL;
  4.7397 ++      symbol = fragP->tc_frag_data.pool->symbol;
  4.7398 ++      offset = fragP->tc_frag_data.pool->literals[fragP->tc_frag_data.pool_entry].offset;
  4.7399 ++      assert(fragP->tc_frag_data.pool->literals[fragP->tc_frag_data.pool_entry].refcount > 0);
  4.7400 ++      pcrel = 1;
  4.7401 ++      align = 2;
  4.7402 ++      break;
  4.7403 ++    case CALL_SUBTYPE_MCALL_GOT:
  4.7404 ++      opc = &avr32_opc_table[AVR32_OPC_MCALL];
  4.7405 ++      opc->fields[0]->insert(opc->fields[0], p, 6);
  4.7406 ++      ifield = opc->fields[1];
  4.7407 ++      r_type = BFD_RELOC_AVR32_GOT18SW;
  4.7408 ++      break;
  4.7409 ++    case CALL_SUBTYPE_MCALL_LARGE:
  4.7410 ++      assert(fragP->fr_var == 10);
  4.7411 ++      /* ld.w lr, r6[lr << 2] */
  4.7412 ++      opc = &avr32_opc_table[AVR32_OPC_LD_W5];
  4.7413 ++      bfd_putb32(opc->value, p + 4);
  4.7414 ++      opc->fields[0]->insert(opc->fields[0], p + 4, AVR32_REG_LR);
  4.7415 ++      opc->fields[1]->insert(opc->fields[1], p + 4, 6);
  4.7416 ++      opc->fields[2]->insert(opc->fields[2], p + 4, AVR32_REG_LR);
  4.7417 ++      opc->fields[3]->insert(opc->fields[3], p + 4, 2);
  4.7418 ++
  4.7419 ++      /* icall lr */
  4.7420 ++      opc = &avr32_opc_table[AVR32_OPC_ICALL];
  4.7421 ++      bfd_putb16(opc->value >> 16, p + 8);
  4.7422 ++      opc->fields[0]->insert(opc->fields[0], p + 8, AVR32_REG_LR);
  4.7423 ++
  4.7424 ++      /* mov lr, (got_offset / 4) */
  4.7425 ++      opc = &avr32_opc_table[AVR32_OPC_MOV2];
  4.7426 ++      opc->fields[0]->insert(opc->fields[0], p, AVR32_REG_LR);
  4.7427 ++      ifield = opc->fields[1];
  4.7428 ++      r_type = BFD_RELOC_AVR32_GOTCALL;
  4.7429 ++      break;
  4.7430 ++    default:
  4.7431 ++      BAD_CASE(fragP->fr_subtype);
  4.7432 ++    }
  4.7433 ++
  4.7434 ++  /* Insert the opcode and clear the variable ifield */
  4.7435 ++  value = bfd_getb32(p);
  4.7436 ++  value &= ~(opc->mask | ifield->mask);
  4.7437 ++  value |= opc->value;
  4.7438 ++  bfd_putb32(value, p);
  4.7439 ++
  4.7440 ++  fragP->fr_fix += fragP->fr_var - CALL_INITIAL_SIZE;
  4.7441 ++
  4.7442 ++  if (fragP->fr_next
  4.7443 ++      && ((offsetT)(fragP->fr_next->fr_address - fragP->fr_address)
  4.7444 ++	  != fragP->fr_fix))
  4.7445 ++    {
  4.7446 ++      fprintf(stderr, "%s:%d: fr_fix %lu is wrong! fr_var=%lu, r_type=%s\n",
  4.7447 ++	      fragP->fr_file, fragP->fr_line,
  4.7448 ++	      fragP->fr_fix, fragP->fr_var, bfd_get_reloc_code_name(r_type));
  4.7449 ++      fprintf(stderr, "fr_fix should be %ld. next frag is %s:%d\n",
  4.7450 ++	      (offsetT)(fragP->fr_next->fr_address - fragP->fr_address),
  4.7451 ++	      fragP->fr_next->fr_file, fragP->fr_next->fr_line);
  4.7452 ++    }
  4.7453 ++
  4.7454 ++  fixP = fix_new(fragP, fragP->fr_fix - fragP->fr_var, fragP->fr_var,
  4.7455 ++		 symbol, offset, pcrel, r_type);
  4.7456 ++
  4.7457 ++  /* Revert fix_new brain damage. "dot_value" is the value of PC at
  4.7458 ++     the point of the fixup, relative to the frag address.  fix_new()
  4.7459 ++     and friends think they are only being called during the assembly
  4.7460 ++     pass, not during relaxation or similar, so fx_dot_value, fx_file
  4.7461 ++     and fx_line are all initialized to the wrong value.  But we don't
  4.7462 ++     know the size of the fixup until now, so we really can't live up
  4.7463 ++     to the assumptions these functions make about the target.  What
  4.7464 ++     do these functions think the "where" and "frag" argument mean
  4.7465 ++     anyway?  */
  4.7466 ++  fixP->fx_dot_value = fragP->fr_fix - opc->size;
  4.7467 ++  fixP->fx_file = fragP->fr_file;
  4.7468 ++  fixP->fx_line = fragP->fr_line;
  4.7469 ++
  4.7470 ++  fixP->tc_fix_data.ifield = ifield;
  4.7471 ++  fixP->tc_fix_data.align = align;
  4.7472 ++  /* these are only used if the fixup can actually be resolved */
  4.7473 ++  fixP->tc_fix_data.min = -2097152;
  4.7474 ++  fixP->tc_fix_data.max = 2097150;
  4.7475 ++}
  4.7476 ++
  4.7477 ++static void
  4.7478 ++avr32_cpool_convert_frag(bfd *abfd ATTRIBUTE_UNUSED,
  4.7479 ++			 segT segment ATTRIBUTE_UNUSED,
  4.7480 ++			 fragS *fragP)
  4.7481 ++{
  4.7482 ++  struct cpool *pool;
  4.7483 ++  addressT address;
  4.7484 ++  unsigned int entry;
  4.7485 ++  char *p;
  4.7486 ++  char sym_name[20];
  4.7487 ++
  4.7488 ++  /* Did we get rid of the frag altogether? */
  4.7489 ++  if (!fragP->fr_var)
  4.7490 ++    return;
  4.7491 ++
  4.7492 ++  pool = fragP->tc_frag_data.pool;
  4.7493 ++  address = fragP->fr_address + fragP->fr_fix;
  4.7494 ++  p = fragP->fr_literal + fragP->fr_fix;
  4.7495 ++
  4.7496 ++  sprintf(sym_name, "$$cp_\002%x", pool->id);
  4.7497 ++  symbol_locate(pool->symbol, sym_name, pool->section, fragP->fr_fix, fragP);
  4.7498 ++  symbol_table_insert(pool->symbol);
  4.7499 ++
  4.7500 ++  for (entry = 0; entry < pool->next_free_entry; entry++)
  4.7501 ++    {
  4.7502 ++      if (pool->literals[entry].refcount > 0)
  4.7503 ++	{
  4.7504 ++	  fix_new_exp(fragP, fragP->fr_fix, 4, &pool->literals[entry].exp,
  4.7505 ++		      FALSE, BFD_RELOC_AVR32_32_CPENT);
  4.7506 ++	  fragP->fr_fix += 4;
  4.7507 ++	}
  4.7508 ++    }
  4.7509 ++}
  4.7510 ++
  4.7511 ++static struct avr32_relaxer avr32_default_relaxer = {
  4.7512 ++  .estimate_size	= avr32_default_estimate_size_before_relax,
  4.7513 ++  .relax_frag		= avr32_default_relax_frag,
  4.7514 ++  .convert_frag		= avr32_default_convert_frag,
  4.7515 ++};
  4.7516 ++static struct avr32_relaxer avr32_lda_relaxer = {
  4.7517 ++  .estimate_size	= avr32_lda_estimate_size_before_relax,
  4.7518 ++  .relax_frag		= avr32_lda_relax_frag,
  4.7519 ++  .convert_frag		= avr32_lda_convert_frag,
  4.7520 ++};
  4.7521 ++static struct avr32_relaxer avr32_call_relaxer = {
  4.7522 ++  .estimate_size	= avr32_call_estimate_size_before_relax,
  4.7523 ++  .relax_frag		= avr32_call_relax_frag,
  4.7524 ++  .convert_frag		= avr32_call_convert_frag,
  4.7525 ++};
  4.7526 ++static struct avr32_relaxer avr32_cpool_relaxer = {
  4.7527 ++  .estimate_size	= avr32_cpool_estimate_size_before_relax,
  4.7528 ++  .relax_frag		= avr32_cpool_relax_frag,
  4.7529 ++  .convert_frag		= avr32_cpool_convert_frag,
  4.7530 ++};
  4.7531 ++
  4.7532 ++static void s_cpool(int arg ATTRIBUTE_UNUSED)
  4.7533 ++{
  4.7534 ++  struct cpool *pool;
  4.7535 ++  unsigned int max_size;
  4.7536 ++  char *buf;
  4.7537 ++
  4.7538 ++  pool = find_cpool(now_seg, now_subseg);
  4.7539 ++  if (!pool || !pool->symbol || pool->next_free_entry == 0)
  4.7540 ++    return;
  4.7541 ++
  4.7542 ++  /* Make sure the constant pool is properly aligned */
  4.7543 ++  frag_align_code(2, 0);
  4.7544 ++  if (bfd_get_section_alignment(stdoutput, pool->section) < 2)
  4.7545 ++    bfd_set_section_alignment(stdoutput, pool->section, 2);
  4.7546 ++
  4.7547 ++  /* Assume none of the entries are discarded, and that we need the
  4.7548 ++     maximum amount of alignment.  But we're not going to allocate
  4.7549 ++     anything up front. */
  4.7550 ++  max_size = pool->next_free_entry * 4 + 2;
  4.7551 ++  frag_grow(max_size);
  4.7552 ++  buf = frag_more(0);
  4.7553 ++
  4.7554 ++  frag_now->tc_frag_data.relaxer = &avr32_cpool_relaxer;
  4.7555 ++  frag_now->tc_frag_data.pool = pool;
  4.7556 ++
  4.7557 ++  symbol_set_frag(pool->symbol, frag_now);
  4.7558 ++
  4.7559 ++  /* Assume zero initial size, allowing other relaxers to be
  4.7560 ++     optimistic about things.  */
  4.7561 ++  frag_var(rs_machine_dependent, max_size, 0,
  4.7562 ++	   0, pool->symbol, 0, NULL);
  4.7563 ++
  4.7564 ++  /* Mark the pool as empty.  */
  4.7565 ++  pool->used = 1;
  4.7566 ++}
  4.7567 ++
  4.7568 ++/* The location from which a PC relative jump should be calculated,
  4.7569 ++   given a PC relative reloc.  */
  4.7570 ++
  4.7571 ++long
  4.7572 ++md_pcrel_from_section (fixS *fixP, segT sec)
  4.7573 ++{
  4.7574 ++  pr_debug("pcrel_from_section, fx_offset = %d\n", fixP->fx_offset);
  4.7575 ++
  4.7576 ++  if (fixP->fx_addsy != NULL
  4.7577 ++      && (! S_IS_DEFINED (fixP->fx_addsy)
  4.7578 ++          || S_GET_SEGMENT (fixP->fx_addsy) != sec
  4.7579 ++	  || S_FORCE_RELOC(fixP->fx_addsy, 1)))
  4.7580 ++    {
  4.7581 ++      pr_debug("Unknown pcrel symbol: %s\n", S_GET_NAME(fixP->fx_addsy));
  4.7582 ++
  4.7583 ++      /* The symbol is undefined (or is defined but not in this section).
  4.7584 ++	 Let the linker figure it out.  */
  4.7585 ++      return 0;
  4.7586 ++    }
  4.7587 ++
  4.7588 ++  pr_debug("pcrel from %x + %x, symbol: %s (%x)\n",
  4.7589 ++	   fixP->fx_frag->fr_address, fixP->fx_where,
  4.7590 ++	   fixP->fx_addsy?S_GET_NAME(fixP->fx_addsy):"(null)",
  4.7591 ++	   fixP->fx_addsy?S_GET_VALUE(fixP->fx_addsy):0);
  4.7592 ++
  4.7593 ++  return ((fixP->fx_frag->fr_address + fixP->fx_where)
  4.7594 ++	  & (~0UL << fixP->tc_fix_data.align));
  4.7595 ++}
  4.7596 ++
  4.7597 ++valueT
  4.7598 ++md_section_align (segT segment, valueT size)
  4.7599 ++{
  4.7600 ++  int align = bfd_get_section_alignment (stdoutput, segment);
  4.7601 ++  return ((size + (1 << align) - 1) & (-1 << align));
  4.7602 ++}
  4.7603 ++
  4.7604 ++static int syntax_matches(const struct avr32_syntax *syntax,
  4.7605 ++			  char *str)
  4.7606 ++{
  4.7607 ++  int i;
  4.7608 ++
  4.7609 ++  pr_debug("syntax %d matches `%s'?\n", syntax->id, str);
  4.7610 ++
  4.7611 ++  if (syntax->nr_operands < 0)
  4.7612 ++    {
  4.7613 ++      struct avr32_operand *op;
  4.7614 ++      int optype;
  4.7615 ++
  4.7616 ++      for (i = 0; i < (-syntax->nr_operands - 1); i++)
  4.7617 ++	{
  4.7618 ++	  char *p;
  4.7619 ++	  char c;
  4.7620 ++
  4.7621 ++	  optype = syntax->operand[i];
  4.7622 ++	  assert(optype < AVR32_NR_OPERANDS);
  4.7623 ++	  op = &avr32_operand_table[optype];
  4.7624 ++
  4.7625 ++	  for (p = str; *p; p++)
  4.7626 ++	    if (*p == ',')
  4.7627 ++	      break;
  4.7628 ++
  4.7629 ++	  if (p == str)
  4.7630 ++	    return 0;
  4.7631 ++
  4.7632 ++	  c = *p;
  4.7633 ++	  *p = 0;
  4.7634 ++
  4.7635 ++	  if (!op->match(str))
  4.7636 ++	    {
  4.7637 ++	      *p = c;
  4.7638 ++	      return 0;
  4.7639 ++	    }
  4.7640 ++
  4.7641 ++	  str = p;
  4.7642 ++	  *p = c;
  4.7643 ++	  if (c)
  4.7644 ++	    str++;
  4.7645 ++	}
  4.7646 ++
  4.7647 ++      optype = syntax->operand[i];
  4.7648 ++      assert(optype < AVR32_NR_OPERANDS);
  4.7649 ++      op = &avr32_operand_table[optype];
  4.7650 ++
  4.7651 ++      if (!op->match(str))
  4.7652 ++	return 0;
  4.7653 ++      return 1;
  4.7654 ++    }
  4.7655 ++
  4.7656 ++  for (i = 0; i < syntax->nr_operands; i++)
  4.7657 ++    {
  4.7658 ++      struct avr32_operand *op;
  4.7659 ++      int optype = syntax->operand[i];
  4.7660 ++      char *p;
  4.7661 ++      char c;
  4.7662 ++
  4.7663 ++      assert(optype < AVR32_NR_OPERANDS);
  4.7664 ++      op = &avr32_operand_table[optype];
  4.7665 ++
  4.7666 ++      for (p = str; *p; p++)
  4.7667 ++	if (*p == ',')
  4.7668 ++	  break;
  4.7669 ++
  4.7670 ++      if (p == str)
  4.7671 ++	return 0;
  4.7672 ++
  4.7673 ++      c = *p;
  4.7674 ++      *p = 0;
  4.7675 ++
  4.7676 ++      if (!op->match(str))
  4.7677 ++	{
  4.7678 ++	  *p = c;
  4.7679 ++	  return 0;
  4.7680 ++	}
  4.7681 ++
  4.7682 ++      str = p;
  4.7683 ++      *p = c;
  4.7684 ++      if (c)
  4.7685 ++	str++;
  4.7686 ++    }
  4.7687 ++
  4.7688 ++  if (*str == '\0')
  4.7689 ++    return 1;
  4.7690 ++
  4.7691 ++  if ((*str == 'e' || *str == 'E') && !str[1])
  4.7692 ++    return 1;
  4.7693 ++
  4.7694 ++  return 0;
  4.7695 ++}
  4.7696 ++
  4.7697 ++static int parse_operands(char *str)
  4.7698 ++{
  4.7699 ++  int i;
  4.7700 ++
  4.7701 ++  if (current_insn.syntax->nr_operands < 0)
  4.7702 ++    {
  4.7703 ++      int optype;
  4.7704 ++      struct avr32_operand *op;
  4.7705 ++
  4.7706 ++      for (i = 0; i < (-current_insn.syntax->nr_operands - 1); i++)
  4.7707 ++	{
  4.7708 ++	  char *p;
  4.7709 ++	  char c;
  4.7710 ++
  4.7711 ++	  optype = current_insn.syntax->operand[i];
  4.7712 ++	  op = &avr32_operand_table[optype];
  4.7713 ++
  4.7714 ++	  for (p = str; *p; p++)
  4.7715 ++	    if (*p == ',')
  4.7716 ++	      break;
  4.7717 ++
  4.7718 ++	  assert(p != str);
  4.7719 ++
  4.7720 ++	  c = *p, *p = 0;
  4.7721 ++	  op->parse(op, str, i);
  4.7722 ++	  *p = c;
  4.7723 ++
  4.7724 ++	  str = p;
  4.7725 ++	  if (c) str++;
  4.7726 ++	}
  4.7727 ++
  4.7728 ++      /* give the rest of the line to the last operand */
  4.7729 ++      optype = current_insn.syntax->operand[i];
  4.7730 ++      op = &avr32_operand_table[optype];
  4.7731 ++      op->parse(op, str, i);
  4.7732 ++    }
  4.7733 ++  else
  4.7734 ++    {
  4.7735 ++      for (i = 0; i < current_insn.syntax->nr_operands; i++)
  4.7736 ++	{
  4.7737 ++	  int optype = current_insn.syntax->operand[i];
  4.7738 ++	  struct avr32_operand *op = &avr32_operand_table[optype];
  4.7739 ++	  char *p;
  4.7740 ++	  char c;
  4.7741 ++
  4.7742 ++	  skip_whitespace(str);
  4.7743 ++
  4.7744 ++	  for (p = str; *p; p++)
  4.7745 ++	    if (*p == ',')
  4.7746 ++	      break;
  4.7747 ++
  4.7748 ++	  assert(p != str);
  4.7749 ++
  4.7750 ++	  c = *p, *p = 0;
  4.7751 ++	  op->parse(op, str, i);
  4.7752 ++	  *p = c;
  4.7753 ++
  4.7754 ++	  str = p;
  4.7755 ++	  if (c) str++;
  4.7756 ++	}
  4.7757 ++
  4.7758 ++      if (*str == 'E' || *str == 'e')
  4.7759 ++	current_insn.force_extended = 1;
  4.7760 ++    }
  4.7761 ++
  4.7762 ++  return 0;
  4.7763 ++}
  4.7764 ++
  4.7765 ++static const char *
  4.7766 ++finish_insn(const struct avr32_opcode *opc)
  4.7767 ++{
  4.7768 ++  expressionS *exp = &current_insn.immediate;
  4.7769 ++  unsigned int i;
  4.7770 ++  int will_relax = 0;
  4.7771 ++  char *buf;
  4.7772 ++
  4.7773 ++  assert(current_insn.next_slot == opc->nr_fields);
  4.7774 ++
  4.7775 ++  pr_debug("%s:%d: finish_insn: trying opcode %d\n",
  4.7776 ++	   frag_now->fr_file, frag_now->fr_line, opc->id);
  4.7777 ++
  4.7778 ++  /* Go through the relaxation stage for all instructions that can
  4.7779 ++     possibly take a symbolic immediate.  The relax code will take
  4.7780 ++     care of range checking and alignment.  */
  4.7781 ++  if (opc->var_field != -1)
  4.7782 ++    {
  4.7783 ++      int substate, largest_substate;
  4.7784 ++      symbolS *sym;
  4.7785 ++      offsetT off;
  4.7786 ++
  4.7787 ++      will_relax = 1;
  4.7788 ++      substate = largest_substate = opc_initial_substate(opc);
  4.7789 ++
  4.7790 ++      while (relax_more(largest_substate) != AVR32_RS_NONE)
  4.7791 ++	largest_substate = relax_more(largest_substate);
  4.7792 ++
  4.7793 ++      pr_debug("will relax. initial substate: %d (size %d), largest substate: %d (size %d)\n",
  4.7794 ++	       substate, avr32_rs_size(substate),
  4.7795 ++	       largest_substate, avr32_rs_size(largest_substate));
  4.7796 ++
  4.7797 ++      /* make sure we have enough room for the largest possible opcode */
  4.7798 ++      frag_grow(avr32_rs_size(largest_substate));
  4.7799 ++      buf = frag_more(opc->size);
  4.7800 ++
  4.7801 ++      dwarf2_emit_insn(opc->size);
  4.7802 ++
  4.7803 ++      frag_now->tc_frag_data.reloc_info = AVR32_OPINFO_NONE;
  4.7804 ++      frag_now->tc_frag_data.pcrel = current_insn.pcrel;
  4.7805 ++      frag_now->tc_frag_data.force_extended = current_insn.force_extended;
  4.7806 ++      frag_now->tc_frag_data.relaxer = &avr32_default_relaxer;
  4.7807 ++
  4.7808 ++      if (exp->X_op == O_hi)
  4.7809 ++	{
  4.7810 ++	  frag_now->tc_frag_data.reloc_info = AVR32_OPINFO_HI;
  4.7811 ++	  exp->X_op = exp->X_md;
  4.7812 ++	}
  4.7813 ++      else if (exp->X_op == O_lo)
  4.7814 ++	{
  4.7815 ++	  frag_now->tc_frag_data.reloc_info = AVR32_OPINFO_LO;
  4.7816 ++	  exp->X_op = exp->X_md;
  4.7817 ++	}
  4.7818 ++      else if (exp->X_op == O_got)
  4.7819 ++	{
  4.7820 ++	  frag_now->tc_frag_data.reloc_info = AVR32_OPINFO_GOT;
  4.7821 ++	  exp->X_op = O_symbol;
  4.7822 ++	}
  4.7823 ++
  4.7824 ++#if 0
  4.7825 ++      if ((opc->reloc_type == BFD_RELOC_AVR32_SUB5)
  4.7826 ++	  && exp->X_op == O_subtract)
  4.7827 ++	{
  4.7828 ++	  symbolS *tmp;
  4.7829 ++	  tmp = exp->X_add_symbol;
  4.7830 ++	  exp->X_add_symbol = exp->X_op_symbol;
  4.7831 ++	  exp->X_op_symbol = tmp;
  4.7832 ++	}
  4.7833 ++#endif
  4.7834 ++
  4.7835 ++      frag_now->tc_frag_data.exp = current_insn.immediate;
  4.7836 ++
  4.7837 ++      sym = exp->X_add_symbol;
  4.7838 ++      off = exp->X_add_number;
  4.7839 ++      if (exp->X_op != O_symbol)
  4.7840 ++	{
  4.7841 ++	  sym = make_expr_symbol(exp);
  4.7842 ++	  off = 0;
  4.7843 ++	}
  4.7844 ++
  4.7845 ++      frag_var(rs_machine_dependent,
  4.7846 ++	       avr32_rs_size(largest_substate) - opc->size,
  4.7847 ++	       opc->size,
  4.7848 ++	       substate, sym, off, buf);
  4.7849 ++    }
  4.7850 ++  else
  4.7851 ++    {
  4.7852 ++      assert(avr32_rs_size(opc_initial_substate(opc)) == 0);
  4.7853 ++
  4.7854 ++      /* Make sure we always have room for another whole word, as the ifield
  4.7855 ++	 inserters can only write words. */
  4.7856 ++      frag_grow(4);
  4.7857 ++      buf = frag_more(opc->size);
  4.7858 ++      dwarf2_emit_insn(opc->size);
  4.7859 ++    }
  4.7860 ++
  4.7861 ++  assert(!(opc->value & ~opc->mask));
  4.7862 ++
  4.7863 ++  pr_debug("inserting opcode: 0x%lx\n", opc->value);
  4.7864 ++  bfd_putb32(opc->value, buf);
  4.7865 ++
  4.7866 ++  for (i = 0; i < opc->nr_fields; i++)
  4.7867 ++    {
  4.7868 ++      const struct avr32_ifield *f = opc->fields[i];
  4.7869 ++      const struct avr32_ifield_data *fd = &current_insn.field_value[i];
  4.7870 ++
  4.7871 ++      pr_debug("inserting field: 0x%lx & 0x%lx\n",
  4.7872 ++	       fd->value >> fd->align_order, f->mask);
  4.7873 ++
  4.7874 ++      f->insert(f, buf, fd->value >> fd->align_order);
  4.7875 ++    }
  4.7876 ++
  4.7877 ++  assert(will_relax || !current_insn.immediate.X_add_symbol);
  4.7878 ++  return NULL;
  4.7879 ++}
  4.7880 ++
  4.7881 ++static const char *
  4.7882 ++finish_alias(const struct avr32_alias *alias)
  4.7883 ++{
  4.7884 ++  const struct avr32_opcode *opc;
  4.7885 ++  struct {
  4.7886 ++    unsigned long value;
  4.7887 ++    unsigned long align;
  4.7888 ++  } mapped_operand[AVR32_MAX_OPERANDS];
  4.7889 ++  unsigned int i;
  4.7890 ++
  4.7891 ++  opc = alias->opc;
  4.7892 ++
  4.7893 ++  /* Remap the operands from the alias to the real opcode */
  4.7894 ++  for (i = 0; i < opc->nr_fields; i++)
  4.7895 ++    {
  4.7896 ++      if (alias->operand_map[i].is_opindex)
  4.7897 ++	{
  4.7898 ++	  struct avr32_ifield_data *fd;
  4.7899 ++	  fd = &current_insn.field_value[alias->operand_map[i].value];
  4.7900 ++	  mapped_operand[i].value = fd->value;
  4.7901 ++	  mapped_operand[i].align = fd->align_order;
  4.7902 ++	}
  4.7903 ++      else
  4.7904 ++	{
  4.7905 ++	  mapped_operand[i].value = alias->operand_map[i].value;
  4.7906 ++	  mapped_operand[i].align = 0;
  4.7907 ++	}
  4.7908 ++    }
  4.7909 ++
  4.7910 ++  for (i = 0; i < opc->nr_fields; i++)
  4.7911 ++    {
  4.7912 ++      current_insn.field_value[i].value = mapped_operand[i].value;
  4.7913 ++      if (opc->id == AVR32_OPC_COP)
  4.7914 ++	current_insn.field_value[i].align_order = 0;
  4.7915 ++      else
  4.7916 ++	current_insn.field_value[i].align_order
  4.7917 ++	  = mapped_operand[i].align;
  4.7918 ++    }
  4.7919 ++
  4.7920 ++  current_insn.next_slot = opc->nr_fields;
  4.7921 ++
  4.7922 ++  return finish_insn(opc);
  4.7923 ++}
  4.7924 ++
  4.7925 ++static const char *
  4.7926 ++finish_lda(const struct avr32_syntax *syntax ATTRIBUTE_UNUSED)
  4.7927 ++{
  4.7928 ++  expressionS *exp = &current_insn.immediate;
  4.7929 ++  relax_substateT initial_subtype;
  4.7930 ++  symbolS *sym;
  4.7931 ++  offsetT off;
  4.7932 ++  int initial_size, max_size;
  4.7933 ++  char *buf;
  4.7934 ++
  4.7935 ++  initial_size = LDA_INITIAL_SIZE;
  4.7936 ++
  4.7937 ++  if (avr32_pic)
  4.7938 ++    {
  4.7939 ++      initial_subtype = LDA_SUBTYPE_SUB;
  4.7940 ++      if (linkrelax)
  4.7941 ++	max_size = 8;
  4.7942 ++      else
  4.7943 ++	max_size = 4;
  4.7944 ++    }
  4.7945 ++  else
  4.7946 ++    {
  4.7947 ++      initial_subtype = LDA_SUBTYPE_MOV1;
  4.7948 ++      max_size = 4;
  4.7949 ++    }
  4.7950 ++
  4.7951 ++  frag_grow(max_size);
  4.7952 ++  buf = frag_more(initial_size);
  4.7953 ++  dwarf2_emit_insn(initial_size);
  4.7954 ++
  4.7955 ++  if (exp->X_op == O_symbol)
  4.7956 ++    {
  4.7957 ++      sym = exp->X_add_symbol;
  4.7958 ++      off = exp->X_add_number;
  4.7959 ++    }
  4.7960 ++  else
  4.7961 ++    {
  4.7962 ++      sym = make_expr_symbol(exp);
  4.7963 ++      off = 0;
  4.7964 ++    }
  4.7965 ++
  4.7966 ++  frag_now->tc_frag_data.reloc_info = current_insn.field_value[0].value;
  4.7967 ++  frag_now->tc_frag_data.relaxer = &avr32_lda_relaxer;
  4.7968 ++
  4.7969 ++  if (!avr32_pic)
  4.7970 ++    {
  4.7971 ++      /* The relaxer will bump the refcount if necessary */
  4.7972 ++      frag_now->tc_frag_data.pool
  4.7973 ++	= add_to_cpool(exp, &frag_now->tc_frag_data.pool_entry, 0);
  4.7974 ++    }
  4.7975 ++
  4.7976 ++  frag_var(rs_machine_dependent, max_size - initial_size,
  4.7977 ++	   initial_size, initial_subtype, sym, off, buf);
  4.7978 ++
  4.7979 ++  return NULL;
  4.7980 ++}
  4.7981 ++
  4.7982 ++static const char *
  4.7983 ++finish_call(const struct avr32_syntax *syntax ATTRIBUTE_UNUSED)
  4.7984 ++{
  4.7985 ++  expressionS *exp = &current_insn.immediate;
  4.7986 ++  symbolS *sym;
  4.7987 ++  offsetT off;
  4.7988 ++  int initial_size, max_size;
  4.7989 ++  char *buf;
  4.7990 ++
  4.7991 ++  initial_size = CALL_INITIAL_SIZE;
  4.7992 ++
  4.7993 ++  if (avr32_pic)
  4.7994 ++    {
  4.7995 ++      if (linkrelax)
  4.7996 ++	max_size = 10;
  4.7997 ++      else
  4.7998 ++	max_size = 4;
  4.7999 ++    }
  4.8000 ++  else
  4.8001 ++    max_size = 4;
  4.8002 ++
  4.8003 ++  frag_grow(max_size);
  4.8004 ++  buf = frag_more(initial_size);
  4.8005 ++  dwarf2_emit_insn(initial_size);
  4.8006 ++
  4.8007 ++  frag_now->tc_frag_data.relaxer = &avr32_call_relaxer;
  4.8008 ++
  4.8009 ++  if (exp->X_op == O_symbol)
  4.8010 ++    {
  4.8011 ++      sym = exp->X_add_symbol;
  4.8012 ++      off = exp->X_add_number;
  4.8013 ++    }
  4.8014 ++  else
  4.8015 ++    {
  4.8016 ++      sym = make_expr_symbol(exp);
  4.8017 ++      off = 0;
  4.8018 ++    }
  4.8019 ++
  4.8020 ++  if (!avr32_pic)
  4.8021 ++    {
  4.8022 ++      /* The relaxer will bump the refcount if necessary */
  4.8023 ++      frag_now->tc_frag_data.pool
  4.8024 ++	= add_to_cpool(exp, &frag_now->tc_frag_data.pool_entry, 0);
  4.8025 ++    }
  4.8026 ++
  4.8027 ++  frag_var(rs_machine_dependent, max_size - initial_size,
  4.8028 ++	   initial_size, CALL_SUBTYPE_RCALL1, sym, off, buf);
  4.8029 ++
  4.8030 ++  return NULL;
  4.8031 ++}
  4.8032 ++
  4.8033 ++void
  4.8034 ++md_begin (void)
  4.8035 ++{
  4.8036 ++  unsigned long flags = 0;
  4.8037 ++  int i;
  4.8038 ++
  4.8039 ++  avr32_mnemonic_htab = hash_new();
  4.8040 ++
  4.8041 ++  if (!avr32_mnemonic_htab)
  4.8042 ++    as_fatal(_("virtual memory exhausted"));
  4.8043 ++
  4.8044 ++  for (i = 0; i < AVR32_NR_MNEMONICS; i++)
  4.8045 ++    {
  4.8046 ++      hash_insert(avr32_mnemonic_htab, avr32_mnemonic_table[i].name,
  4.8047 ++		  (void *)&avr32_mnemonic_table[i]);
  4.8048 ++    }
  4.8049 ++
  4.8050 ++  if (linkrelax)
  4.8051 ++    flags |= EF_AVR32_LINKRELAX;
  4.8052 ++  if (avr32_pic)
  4.8053 ++    flags |= EF_AVR32_PIC;
  4.8054 ++
  4.8055 ++  bfd_set_private_flags(stdoutput, flags);
  4.8056 ++
  4.8057 ++#ifdef OPC_CONSISTENCY_CHECK
  4.8058 ++  if (sizeof(avr32_operand_table)/sizeof(avr32_operand_table[0])
  4.8059 ++      < AVR32_NR_OPERANDS)
  4.8060 ++    as_fatal(_("operand table is incomplete"));
  4.8061 ++
  4.8062 ++  for (i = 0; i < AVR32_NR_OPERANDS; i++)
  4.8063 ++    if (avr32_operand_table[i].id != i)
  4.8064 ++      as_fatal(_("operand table inconsistency found at index %d\n"), i);
  4.8065 ++  pr_debug("%d operands verified\n", AVR32_NR_OPERANDS);
  4.8066 ++
  4.8067 ++  for (i = 0; i < AVR32_NR_IFIELDS; i++)
  4.8068 ++    if (avr32_ifield_table[i].id != i)
  4.8069 ++      as_fatal(_("ifield table inconsistency found at index %d\n"), i);
  4.8070 ++  pr_debug("%d instruction fields verified\n", AVR32_NR_IFIELDS);
  4.8071 ++
  4.8072 ++  for (i = 0; i < AVR32_NR_OPCODES; i++)
  4.8073 ++    {
  4.8074 ++      if (avr32_opc_table[i].id != i)
  4.8075 ++	as_fatal(_("opcode table inconsistency found at index %d\n"), i);
  4.8076 ++      if ((avr32_opc_table[i].var_field == -1
  4.8077 ++	   && avr32_relax_table[i].length != 0)
  4.8078 ++	  || (avr32_opc_table[i].var_field != -1
  4.8079 ++	      && avr32_relax_table[i].length == 0))
  4.8080 ++	as_fatal(_("relax table inconsistency found at index %d\n"), i);
  4.8081 ++    }
  4.8082 ++  pr_debug("%d opcodes verified\n", AVR32_NR_OPCODES);
  4.8083 ++
  4.8084 ++  for (i = 0; i < AVR32_NR_SYNTAX; i++)
  4.8085 ++    if (avr32_syntax_table[i].id != i)
  4.8086 ++      as_fatal(_("syntax table inconsistency found at index %d\n"), i);
  4.8087 ++  pr_debug("%d syntax variants verified\n", AVR32_NR_SYNTAX);
  4.8088 ++
  4.8089 ++  for (i = 0; i < AVR32_NR_ALIAS; i++)
  4.8090 ++    if (avr32_alias_table[i].id != i)
  4.8091 ++      as_fatal(_("alias table inconsistency found at index %d\n"), i);
  4.8092 ++  pr_debug("%d aliases verified\n", AVR32_NR_ALIAS);
  4.8093 ++
  4.8094 ++  for (i = 0; i < AVR32_NR_MNEMONICS; i++)
  4.8095 ++    if (avr32_mnemonic_table[i].id != i)
  4.8096 ++      as_fatal(_("mnemonic table inconsistency found at index %d\n"), i);
  4.8097 ++  pr_debug("%d mnemonics verified\n", AVR32_NR_MNEMONICS);
  4.8098 ++#endif
  4.8099 ++}
  4.8100 ++
  4.8101 ++void
  4.8102 ++md_assemble (char *str)
  4.8103 ++{
  4.8104 ++  struct avr32_mnemonic *mnemonic;
  4.8105 ++  char *p, c;
  4.8106 ++
  4.8107 ++  memset(&current_insn, 0, sizeof(current_insn));
  4.8108 ++  current_insn.immediate.X_op = O_constant;
  4.8109 ++
  4.8110 ++  skip_whitespace(str);
  4.8111 ++  for (p = str; *p; p++)
  4.8112 ++    if (*p == ' ')
  4.8113 ++      break;
  4.8114 ++  c = *p;
  4.8115 ++  *p = 0;
  4.8116 ++
  4.8117 ++  mnemonic = hash_find(avr32_mnemonic_htab, str);
  4.8118 ++  *p = c;
  4.8119 ++  if (c) p++;
  4.8120 ++
  4.8121 ++  if (mnemonic)
  4.8122 ++    {
  4.8123 ++      const struct avr32_syntax *syntax;
  4.8124 ++
  4.8125 ++      for (syntax = mnemonic->syntax; syntax; syntax = syntax->next)
  4.8126 ++	{
  4.8127 ++	  const char *errmsg = NULL;
  4.8128 ++
  4.8129 ++	  if (syntax_matches(syntax, p))
  4.8130 ++	    {
  4.8131 ++	      if (!(syntax->isa_flags & avr32_arch->isa_flags))
  4.8132 ++		{
  4.8133 ++		  as_bad(_("Selected architecture `%s'  does not support `%s'"),
  4.8134 ++			 avr32_arch->name, str);
  4.8135 ++		  return;
  4.8136 ++		}
  4.8137 ++
  4.8138 ++	      current_insn.syntax = syntax;
  4.8139 ++	      parse_operands(p);
  4.8140 ++
  4.8141 ++	      switch (syntax->type)
  4.8142 ++		{
  4.8143 ++		case AVR32_PARSER_NORMAL:
  4.8144 ++		  errmsg = finish_insn(syntax->u.opc);
  4.8145 ++		  break;
  4.8146 ++		case AVR32_PARSER_ALIAS:
  4.8147 ++		  errmsg = finish_alias(syntax->u.alias);
  4.8148 ++		  break;
  4.8149 ++		case AVR32_PARSER_LDA:
  4.8150 ++		  errmsg = finish_lda(syntax);
  4.8151 ++		  break;
  4.8152 ++		case AVR32_PARSER_CALL:
  4.8153 ++		  errmsg = finish_call(syntax);
  4.8154 ++		  break;
  4.8155 ++		default:
  4.8156 ++		  BAD_CASE(syntax->type);
  4.8157 ++		  break;
  4.8158 ++		}
  4.8159 ++
  4.8160 ++	      if (errmsg)
  4.8161 ++		as_bad("%s in `%s'", errmsg, str);
  4.8162 ++
  4.8163 ++	      return;
  4.8164 ++	    }
  4.8165 ++	}
  4.8166 ++
  4.8167 ++      as_bad(_("unrecognized form of instruction: `%s'"), str);
  4.8168 ++    }
  4.8169 ++  else
  4.8170 ++    as_bad(_("unrecognized instruction `%s'"), str);
  4.8171 ++}
  4.8172 ++
  4.8173 ++void avr32_cleanup(void)
  4.8174 ++{
  4.8175 ++  struct cpool *pool;
  4.8176 ++
  4.8177 ++  /* Emit any constant pools that haven't been explicitly flushed with
  4.8178 ++     a .cpool directive. */
  4.8179 ++  for (pool = cpool_list; pool; pool = pool->next)
  4.8180 ++    {
  4.8181 ++      subseg_set(pool->section, pool->sub_section);
  4.8182 ++      s_cpool(0);
  4.8183 ++    }
  4.8184 ++}
  4.8185 ++
  4.8186 ++/* Handle any PIC-related operands in data allocation pseudo-ops */
  4.8187 ++void
  4.8188 ++avr32_cons_fix_new (fragS *frag, int off, int size, expressionS *exp)
  4.8189 ++{
  4.8190 ++  bfd_reloc_code_real_type r_type = BFD_RELOC_UNUSED;
  4.8191 ++  int pcrel = 0;
  4.8192 ++
  4.8193 ++  pr_debug("%s:%u: cons_fix_new, add_sym: %s, op_sym: %s, op: %d, add_num: %d\n",
  4.8194 ++	   frag->fr_file, frag->fr_line,
  4.8195 ++	   exp->X_add_symbol?S_GET_NAME(exp->X_add_symbol):"(none)",
  4.8196 ++	   exp->X_op_symbol?S_GET_NAME(exp->X_op_symbol):"(none)",
  4.8197 ++	   exp->X_op, exp->X_add_number);
  4.8198 ++
  4.8199 ++  if (exp->X_op == O_subtract && exp->X_op_symbol)
  4.8200 ++    {
  4.8201 ++      if (exp->X_op_symbol == GOT_symbol)
  4.8202 ++	{
  4.8203 ++	  if (size != 4)
  4.8204 ++	    goto bad_size;
  4.8205 ++	  r_type = BFD_RELOC_AVR32_GOTPC;
  4.8206 ++	  exp->X_op = O_symbol;
  4.8207 ++	  exp->X_op_symbol = NULL;
  4.8208 ++	}
  4.8209 ++    }
  4.8210 ++  else if (exp->X_op == O_got)
  4.8211 ++    {
  4.8212 ++      switch (size)
  4.8213 ++	{
  4.8214 ++	case 1:
  4.8215 ++	  r_type = BFD_RELOC_AVR32_GOT8;
  4.8216 ++	  break;
  4.8217 ++	case 2:
  4.8218 ++	  r_type = BFD_RELOC_AVR32_GOT16;
  4.8219 ++	  break;
  4.8220 ++	case 4:
  4.8221 ++	  r_type = BFD_RELOC_AVR32_GOT32;
  4.8222 ++	  break;
  4.8223 ++	default:
  4.8224 ++	  goto bad_size;
  4.8225 ++	}
  4.8226 ++
  4.8227 ++      exp->X_op = O_symbol;
  4.8228 ++    }
  4.8229 ++
  4.8230 ++  if (r_type == BFD_RELOC_UNUSED)
  4.8231 ++    switch (size)
  4.8232 ++      {
  4.8233 ++      case 1:
  4.8234 ++	r_type = BFD_RELOC_8;
  4.8235 ++	break;
  4.8236 ++      case 2:
  4.8237 ++	r_type = BFD_RELOC_16;
  4.8238 ++	break;
  4.8239 ++      case 4:
  4.8240 ++	r_type = BFD_RELOC_32;
  4.8241 ++	break;
  4.8242 ++      default:
  4.8243 ++	goto bad_size;
  4.8244 ++      }
  4.8245 ++  else if (size != 4)
  4.8246 ++    {
  4.8247 ++    bad_size:
  4.8248 ++      as_bad(_("unsupported BFD relocation size %u"), size);
  4.8249 ++      r_type = BFD_RELOC_UNUSED;
  4.8250 ++    }
  4.8251 ++
  4.8252 ++  fix_new_exp (frag, off, size, exp, pcrel, r_type);
  4.8253 ++}
  4.8254 ++
  4.8255 ++static void
  4.8256 ++avr32_frob_section(bfd *abfd ATTRIBUTE_UNUSED, segT sec,
  4.8257 ++		   void *ignore ATTRIBUTE_UNUSED)
  4.8258 ++{
  4.8259 ++  segment_info_type *seginfo;
  4.8260 ++  fixS *fix;
  4.8261 ++
  4.8262 ++  seginfo = seg_info(sec);
  4.8263 ++  if (!seginfo)
  4.8264 ++    return;
  4.8265 ++
  4.8266 ++  for (fix = seginfo->fix_root; fix; fix = fix->fx_next)
  4.8267 ++    {
  4.8268 ++      if (fix->fx_done)
  4.8269 ++	continue;
  4.8270 ++
  4.8271 ++      if (fix->fx_r_type == BFD_RELOC_AVR32_SUB5
  4.8272 ++	  && fix->fx_addsy && fix->fx_subsy)
  4.8273 ++	{
  4.8274 ++	  if (S_GET_SEGMENT(fix->fx_addsy) != S_GET_SEGMENT(fix->fx_subsy)
  4.8275 ++	      || linkrelax)
  4.8276 ++	    {
  4.8277 ++	      symbolS *tmp;
  4.8278 ++#ifdef DEBUG
  4.8279 ++	      fprintf(stderr, "Swapping symbols in fixup:\n");
  4.8280 ++	      print_fixup(fix);
  4.8281 ++#endif
  4.8282 ++	      tmp = fix->fx_addsy;
  4.8283 ++	      fix->fx_addsy = fix->fx_subsy;
  4.8284 ++	      fix->fx_subsy = tmp;
  4.8285 ++	      fix->fx_offset = -fix->fx_offset;
  4.8286 ++	    }
  4.8287 ++	}
  4.8288 ++    }
  4.8289 ++}
  4.8290 ++
  4.8291 ++/* We need to look for SUB5 instructions with expressions that will be
  4.8292 ++   made PC-relative and switch fx_addsy with fx_subsy.  This has to be
  4.8293 ++   done before adjustment or the wrong symbol might be adjusted.
  4.8294 ++
  4.8295 ++   This applies to fixups that are a result of expressions like -(sym
  4.8296 ++   - .) and that will make it all the way to md_apply_fix3().  LDA
  4.8297 ++   does the right thing in convert_frag, so we must not convert
  4.8298 ++   those. */
  4.8299 ++void
  4.8300 ++avr32_frob_file(void)
  4.8301 ++{
  4.8302 ++  /* if (1 || !linkrelax)
  4.8303 ++     return; */
  4.8304 ++
  4.8305 ++  bfd_map_over_sections(stdoutput, avr32_frob_section, NULL);
  4.8306 ++}
  4.8307 ++
  4.8308 ++static bfd_boolean
  4.8309 ++convert_to_diff_reloc(fixS *fixP)
  4.8310 ++{
  4.8311 ++  switch (fixP->fx_r_type)
  4.8312 ++    {
  4.8313 ++    case BFD_RELOC_32:
  4.8314 ++      fixP->fx_r_type = BFD_RELOC_AVR32_DIFF32;
  4.8315 ++      break;
  4.8316 ++    case BFD_RELOC_16:
  4.8317 ++      fixP->fx_r_type = BFD_RELOC_AVR32_DIFF16;
  4.8318 ++      break;
  4.8319 ++    case BFD_RELOC_8:
  4.8320 ++      fixP->fx_r_type = BFD_RELOC_AVR32_DIFF8;
  4.8321 ++      break;
  4.8322 ++    default:
  4.8323 ++      return FALSE;
  4.8324 ++    }
  4.8325 ++
  4.8326 ++  return TRUE;
  4.8327 ++}
  4.8328 ++
  4.8329 ++/* Simplify a fixup.  If possible, the fixup is reduced to a single
  4.8330 ++   constant which is written to the output file.  Otherwise, a
  4.8331 ++   relocation is generated so that the linker can take care of the
  4.8332 ++   rest.
  4.8333 ++
  4.8334 ++   ELF relocations have certain constraints: They can only take a
  4.8335 ++   single symbol and a single addend.  This means that for difference
  4.8336 ++   expressions, we _must_ get rid of the fx_subsy symbol somehow.
  4.8337 ++
  4.8338 ++   The difference between two labels in the same section can be
  4.8339 ++   calculated directly unless 'linkrelax' is set, or a relocation is
  4.8340 ++   forced.  If so, we must emit a R_AVR32_DIFFxx relocation.  If there
  4.8341 ++   are addends involved at this point, we must be especially careful
  4.8342 ++   as the relocation must point exactly to the symbol being
  4.8343 ++   subtracted.
  4.8344 ++
  4.8345 ++   When subtracting a symbol defined in the same section as the fixup,
  4.8346 ++   we might be able to convert it to a PC-relative expression, unless
  4.8347 ++   linkrelax is set. If this is the case, there's no way we can make
  4.8348 ++   sure that the difference between the fixup and fx_subsy stays
  4.8349 ++   constant.  So for now, we're just going to disallow that.
  4.8350 ++   */
  4.8351 ++void
  4.8352 ++avr32_process_fixup(fixS *fixP, segT this_segment)
  4.8353 ++{
  4.8354 ++  segT add_symbol_segment = absolute_section;
  4.8355 ++  segT sub_symbol_segment = absolute_section;
  4.8356 ++  symbolS *fx_addsy, *fx_subsy;
  4.8357 ++  offsetT value = 0, fx_offset;
  4.8358 ++  bfd_boolean apply = FALSE;
  4.8359 ++
  4.8360 ++  assert(this_segment != absolute_section);
  4.8361 ++
  4.8362 ++  if (fixP->fx_r_type >= BFD_RELOC_UNUSED)
  4.8363 ++    {
  4.8364 ++      as_bad_where(fixP->fx_file, fixP->fx_line,
  4.8365 ++		   _("Bad relocation type %d\n"), fixP->fx_r_type);
  4.8366 ++      return;
  4.8367 ++    }
  4.8368 ++
  4.8369 ++  /* BFD_RELOC_AVR32_SUB5 fixups have been swapped by avr32_frob_section() */
  4.8370 ++  fx_addsy = fixP->fx_addsy;
  4.8371 ++  fx_subsy = fixP->fx_subsy;
  4.8372 ++  fx_offset = fixP->fx_offset;
  4.8373 ++
  4.8374 ++  if (fx_addsy)
  4.8375 ++    add_symbol_segment = S_GET_SEGMENT(fx_addsy);
  4.8376 ++
  4.8377 ++  if (fx_subsy)
  4.8378 ++    {
  4.8379 ++      resolve_symbol_value(fx_subsy);
  4.8380 ++      sub_symbol_segment = S_GET_SEGMENT(fx_subsy);
  4.8381 ++
  4.8382 ++      if (sub_symbol_segment == this_segment
  4.8383 ++	  && (!linkrelax
  4.8384 ++	      || S_GET_VALUE(fx_subsy) == (fixP->fx_frag->fr_address
  4.8385 ++					   + fixP->fx_where)))
  4.8386 ++	{
  4.8387 ++	  fixP->fx_pcrel = TRUE;
  4.8388 ++	  fx_offset += (fixP->fx_frag->fr_address + fixP->fx_where
  4.8389 ++			- S_GET_VALUE(fx_subsy));
  4.8390 ++	  fx_subsy = NULL;
  4.8391 ++	}
  4.8392 ++      else if (sub_symbol_segment == absolute_section)
  4.8393 ++	{
  4.8394 ++	  /* The symbol is really a constant.  */
  4.8395 ++	  fx_offset -= S_GET_VALUE(fx_subsy);
  4.8396 ++	  fx_subsy = NULL;
  4.8397 ++	}
  4.8398 ++      else if (SEG_NORMAL(add_symbol_segment)
  4.8399 ++	       && sub_symbol_segment == add_symbol_segment
  4.8400 ++	       && (!linkrelax || convert_to_diff_reloc(fixP)))
  4.8401 ++	{
  4.8402 ++	  /* Difference between two labels in the same section.  */
  4.8403 ++	  if (linkrelax)
  4.8404 ++	    {
  4.8405 ++	      /* convert_to_diff() has ensured that the reloc type is
  4.8406 ++		 either DIFF32, DIFF16 or DIFF8.  */
  4.8407 ++	      value = (S_GET_VALUE(fx_addsy) + fixP->fx_offset
  4.8408 ++		       - S_GET_VALUE(fx_subsy));
  4.8409 ++
  4.8410 ++	      /* Try to convert it to a section symbol if possible  */
  4.8411 ++	      if (!S_FORCE_RELOC(fx_addsy, 1)
  4.8412 ++		  && !(sub_symbol_segment->flags & SEC_THREAD_LOCAL))
  4.8413 ++		{
  4.8414 ++		  fx_offset = S_GET_VALUE(fx_subsy);
  4.8415 ++		  fx_addsy = section_symbol(sub_symbol_segment);
  4.8416 ++		}
  4.8417 ++	      else
  4.8418 ++		{
  4.8419 ++		  fx_addsy = fx_subsy;
  4.8420 ++		  fx_offset = 0;
  4.8421 ++		}
  4.8422 ++
  4.8423 ++	      fx_subsy = NULL;
  4.8424 ++	      apply = TRUE;
  4.8425 ++	    }
  4.8426 ++	  else
  4.8427 ++	    {
  4.8428 ++	      fx_offset += S_GET_VALUE(fx_addsy);
  4.8429 ++	      fx_offset -= S_GET_VALUE(fx_subsy);
  4.8430 ++	      fx_addsy = NULL;
  4.8431 ++	      fx_subsy = NULL;
  4.8432 ++	    }
  4.8433 ++	}
  4.8434 ++      else
  4.8435 ++	{
  4.8436 ++	  as_bad_where(fixP->fx_file, fixP->fx_line,
  4.8437 ++		       _("can't resolve `%s' {%s section} - `%s' {%s section}"),
  4.8438 ++		       fx_addsy ? S_GET_NAME (fx_addsy) : "0",
  4.8439 ++		       segment_name (add_symbol_segment),
  4.8440 ++		       S_GET_NAME (fx_subsy),
  4.8441 ++		       segment_name (sub_symbol_segment));
  4.8442 ++	  return;
  4.8443 ++	}
  4.8444 ++    }
  4.8445 ++
  4.8446 ++  if (fx_addsy && !TC_FORCE_RELOCATION(fixP))
  4.8447 ++    {
  4.8448 ++      if (add_symbol_segment == this_segment
  4.8449 ++	  && fixP->fx_pcrel)
  4.8450 ++	{
  4.8451 ++	  value += S_GET_VALUE(fx_addsy);
  4.8452 ++	  value -= md_pcrel_from_section(fixP, this_segment);
  4.8453 ++	  fx_addsy = NULL;
  4.8454 ++	  fixP->fx_pcrel = FALSE;
  4.8455 ++	}
  4.8456 ++      else if (add_symbol_segment == absolute_section)
  4.8457 ++	{
  4.8458 ++	  fx_offset += S_GET_VALUE(fixP->fx_addsy);
  4.8459 ++	  fx_addsy = NULL;
  4.8460 ++	}
  4.8461 ++    }
  4.8462 ++
  4.8463 ++  if (!fx_addsy)
  4.8464 ++    fixP->fx_done = TRUE;
  4.8465 ++
  4.8466 ++  if (fixP->fx_pcrel)
  4.8467 ++    {
  4.8468 ++      if (fx_addsy != NULL
  4.8469 ++	  && S_IS_DEFINED(fx_addsy)
  4.8470 ++	  && S_GET_SEGMENT(fx_addsy) != this_segment)
  4.8471 ++	value += md_pcrel_from_section(fixP, this_segment);
  4.8472 ++
  4.8473 ++      switch (fixP->fx_r_type)
  4.8474 ++	{
  4.8475 ++	case BFD_RELOC_32:
  4.8476 ++	  fixP->fx_r_type = BFD_RELOC_32_PCREL;
  4.8477 ++	  break;
  4.8478 ++	case BFD_RELOC_16:
  4.8479 ++	  fixP->fx_r_type = BFD_RELOC_16_PCREL;
  4.8480 ++	  break;
  4.8481 ++	case BFD_RELOC_8:
  4.8482 ++	  fixP->fx_r_type = BFD_RELOC_8_PCREL;
  4.8483 ++	  break;
  4.8484 ++	case BFD_RELOC_AVR32_SUB5:
  4.8485 ++	  fixP->fx_r_type = BFD_RELOC_AVR32_16N_PCREL;
  4.8486 ++	  break;
  4.8487 ++	case BFD_RELOC_AVR32_16S:
  4.8488 ++	  fixP->fx_r_type = BFD_RELOC_AVR32_16B_PCREL;
  4.8489 ++	  break;
  4.8490 ++	case BFD_RELOC_AVR32_14UW:
  4.8491 ++	  fixP->fx_r_type = BFD_RELOC_AVR32_14UW_PCREL;
  4.8492 ++	  break;
  4.8493 ++	case BFD_RELOC_AVR32_10UW:
  4.8494 ++	  fixP->fx_r_type = BFD_RELOC_AVR32_10UW_PCREL;
  4.8495 ++	  break;
  4.8496 ++	default:
  4.8497 ++	  /* Should have been taken care of already */
  4.8498 ++	  break;
  4.8499 ++	}
  4.8500 ++    }
  4.8501 ++
  4.8502 ++  if (fixP->fx_done || apply)
  4.8503 ++    {
  4.8504 ++      const struct avr32_ifield *ifield;
  4.8505 ++      char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
  4.8506 ++
  4.8507 ++      if (fixP->fx_done)
  4.8508 ++	value += fx_offset;
  4.8509 ++
  4.8510 ++      /* For hosts with longs bigger than 32-bits make sure that the top
  4.8511 ++         bits of a 32-bit negative value read in by the parser are set,
  4.8512 ++         so that the correct comparisons are made.  */
  4.8513 ++      if (value & 0x80000000)
  4.8514 ++        value |= (-1L << 31);
  4.8515 ++
  4.8516 ++      switch (fixP->fx_r_type)
  4.8517 ++	{
  4.8518 ++	case BFD_RELOC_32:
  4.8519 ++	case BFD_RELOC_16:
  4.8520 ++	case BFD_RELOC_8:
  4.8521 ++	case BFD_RELOC_AVR32_DIFF32:
  4.8522 ++	case BFD_RELOC_AVR32_DIFF16:
  4.8523 ++	case BFD_RELOC_AVR32_DIFF8:
  4.8524 ++	  md_number_to_chars(buf, value, fixP->fx_size);
  4.8525 ++	  break;
  4.8526 ++	case BFD_RELOC_HI16:
  4.8527 ++	  value >>= 16;
  4.8528 ++	case BFD_RELOC_LO16:
  4.8529 ++	  value &= 0xffff;
  4.8530 ++	  md_number_to_chars(buf + 2, value, 2);
  4.8531 ++	  break;
  4.8532 ++	case BFD_RELOC_AVR32_16N_PCREL:
  4.8533 ++	  value = -value;
  4.8534 ++	  /* fall through */
  4.8535 ++	case BFD_RELOC_AVR32_22H_PCREL:
  4.8536 ++	case BFD_RELOC_AVR32_18W_PCREL:
  4.8537 ++	case BFD_RELOC_AVR32_16B_PCREL:
  4.8538 ++	case BFD_RELOC_AVR32_11H_PCREL:
  4.8539 ++	case BFD_RELOC_AVR32_9H_PCREL:
  4.8540 ++	case BFD_RELOC_AVR32_9UW_PCREL:
  4.8541 ++	case BFD_RELOC_AVR32_3U:
  4.8542 ++	case BFD_RELOC_AVR32_4UH:
  4.8543 ++	case BFD_RELOC_AVR32_6UW:
  4.8544 ++	case BFD_RELOC_AVR32_6S:
  4.8545 ++	case BFD_RELOC_AVR32_7UW:
  4.8546 ++	case BFD_RELOC_AVR32_8S_EXT:
  4.8547 ++	case BFD_RELOC_AVR32_8S:
  4.8548 ++	case BFD_RELOC_AVR32_10UW:
  4.8549 ++	case BFD_RELOC_AVR32_10SW:
  4.8550 ++	case BFD_RELOC_AVR32_STHH_W:
  4.8551 ++	case BFD_RELOC_AVR32_14UW:
  4.8552 ++	case BFD_RELOC_AVR32_16S:
  4.8553 ++	case BFD_RELOC_AVR32_16U:
  4.8554 ++	case BFD_RELOC_AVR32_21S:
  4.8555 ++	case BFD_RELOC_AVR32_SUB5:
  4.8556 ++	case BFD_RELOC_AVR32_CPCALL:
  4.8557 ++	case BFD_RELOC_AVR32_16_CP:
  4.8558 ++	case BFD_RELOC_AVR32_9W_CP:
  4.8559 ++	case BFD_RELOC_AVR32_15S:
  4.8560 ++	  ifield = fixP->tc_fix_data.ifield;
  4.8561 ++	  pr_debug("insert field: %ld <= %ld <= %ld (align %u)\n",
  4.8562 ++		   fixP->tc_fix_data.min, value, fixP->tc_fix_data.max,
  4.8563 ++		   fixP->tc_fix_data.align);
  4.8564 ++	  if (value < fixP->tc_fix_data.min || value > fixP->tc_fix_data.max)
  4.8565 ++	    as_bad_where(fixP->fx_file, fixP->fx_line,
  4.8566 ++			 _("operand out of range (%ld not between %ld and %ld)"),
  4.8567 ++			 value, fixP->tc_fix_data.min, fixP->tc_fix_data.max);
  4.8568 ++	  if (value & ((1 << fixP->tc_fix_data.align) - 1))
  4.8569 ++	    as_bad_where(fixP->fx_file, fixP->fx_line,
  4.8570 ++			 _("misaligned operand (required alignment: %d)"),
  4.8571 ++			 1 << fixP->tc_fix_data.align);
  4.8572 ++	  ifield->insert(ifield, buf, value >> fixP->tc_fix_data.align);
  4.8573 ++	  break;
  4.8574 ++	case BFD_RELOC_AVR32_ALIGN:
  4.8575 ++	  /* Nothing to do */
  4.8576 ++	  fixP->fx_done = FALSE;
  4.8577 ++	  break;
  4.8578 ++	default:
  4.8579 ++	  as_fatal("reloc type %s not handled\n",
  4.8580 ++		   bfd_get_reloc_code_name(fixP->fx_r_type));
  4.8581 ++	}
  4.8582 ++    }
  4.8583 ++
  4.8584 ++  fixP->fx_addsy = fx_addsy;
  4.8585 ++  fixP->fx_subsy = fx_subsy;
  4.8586 ++  fixP->fx_offset = fx_offset;
  4.8587 ++
  4.8588 ++  if (!fixP->fx_done)
  4.8589 ++    {
  4.8590 ++      if (!fixP->fx_addsy)
  4.8591 ++	fixP->fx_addsy = abs_section_sym;
  4.8592 ++
  4.8593 ++      symbol_mark_used_in_reloc(fixP->fx_addsy);
  4.8594 ++      if (fixP->fx_subsy)
  4.8595 ++	abort();
  4.8596 ++    }
  4.8597 ++}
  4.8598 ++
  4.8599 ++#if 0
  4.8600 ++void
  4.8601 ++md_apply_fix3 (fixS *fixP, valueT *valP, segT seg)
  4.8602 ++{
  4.8603 ++  const struct avr32_ifield *ifield;
  4.8604 ++  offsetT	value = *valP;
  4.8605 ++  char		*buf = fixP->fx_where + fixP->fx_frag->fr_literal;
  4.8606 ++  bfd_boolean	apply;
  4.8607 ++
  4.8608 ++  pr_debug("%s:%u: apply_fix3: r_type=%d value=%lx offset=%lx\n",
  4.8609 ++	   fixP->fx_file, fixP->fx_line, fixP->fx_r_type, *valP,
  4.8610 ++	   fixP->fx_offset);
  4.8611 ++
  4.8612 ++  if (fixP->fx_r_type >= BFD_RELOC_UNUSED)
  4.8613 ++    {
  4.8614 ++      as_bad_where(fixP->fx_file, fixP->fx_line,
  4.8615 ++		   _("Bad relocation type %d\n"), fixP->fx_r_type);
  4.8616 ++      return;
  4.8617 ++    }
  4.8618 ++
  4.8619 ++  if (!fixP->fx_addsy && !fixP->fx_subsy)
  4.8620 ++    fixP->fx_done = 1;
  4.8621 ++
  4.8622 ++  if (fixP->fx_pcrel)
  4.8623 ++    {
  4.8624 ++      if (fixP->fx_addsy != NULL
  4.8625 ++	  && S_IS_DEFINED(fixP->fx_addsy)
  4.8626 ++	  && S_GET_SEGMENT(fixP->fx_addsy) != seg)
  4.8627 ++	value += md_pcrel_from_section(fixP, seg);
  4.8628 ++
  4.8629 ++      switch (fixP->fx_r_type)
  4.8630 ++	{
  4.8631 ++	case BFD_RELOC_32:
  4.8632 ++	  fixP->fx_r_type = BFD_RELOC_32_PCREL;
  4.8633 ++	  break;
  4.8634 ++	case BFD_RELOC_16:
  4.8635 ++	case BFD_RELOC_8:
  4.8636 ++	  as_bad_where (fixP->fx_file, fixP->fx_line,
  4.8637 ++			_("8- and 16-bit PC-relative relocations not supported"));
  4.8638 ++	  break;
  4.8639 ++	case BFD_RELOC_AVR32_SUB5:
  4.8640 ++	  fixP->fx_r_type = BFD_RELOC_AVR32_PCREL_SUB5;
  4.8641 ++	  break;
  4.8642 ++	case BFD_RELOC_AVR32_16S:
  4.8643 ++	  fixP->fx_r_type = BFD_RELOC_AVR32_16_PCREL;
  4.8644 ++	  break;
  4.8645 ++	default:
  4.8646 ++	  /* Should have been taken care of already */
  4.8647 ++	  break;
  4.8648 ++	}
  4.8649 ++    }
  4.8650 ++
  4.8651 ++  if (fixP->fx_r_type == BFD_RELOC_32
  4.8652 ++      && fixP->fx_subsy)
  4.8653 ++    {
  4.8654 ++      fixP->fx_r_type = BFD_RELOC_AVR32_DIFF32;
  4.8655 ++
  4.8656 ++      /* Offsets are only allowed if it's a result of adjusting a
  4.8657 ++	 local symbol into a section-relative offset.
  4.8658 ++	 tc_fix_adjustable() should prevent any adjustment if there
  4.8659 ++	 was an offset involved before.  */
  4.8660 ++      if (fixP->fx_offset && !symbol_section_p(fixP->fx_addsy))
  4.8661 ++	as_bad_where(fixP->fx_file, fixP->fx_line,
  4.8662 ++		     _("cannot represent symbol difference with an offset"));
  4.8663 ++
  4.8664 ++      value = (S_GET_VALUE(fixP->fx_addsy) + fixP->fx_offset
  4.8665 ++	       - S_GET_VALUE(fixP->fx_subsy));
  4.8666 ++
  4.8667 ++      /* The difference before any relaxing takes place is written
  4.8668 ++	 out, and the DIFF32 reloc identifies the address of the first
  4.8669 ++	 symbol (i.e. the on that's subtracted.)  */
  4.8670 ++      *valP = value;
  4.8671 ++      fixP->fx_offset -= value;
  4.8672 ++      fixP->fx_subsy = NULL;
  4.8673 ++
  4.8674 ++      md_number_to_chars(buf, value, fixP->fx_size);
  4.8675 ++    }
  4.8676 ++
  4.8677 ++  if (fixP->fx_done)
  4.8678 ++    {
  4.8679 ++      switch (fixP->fx_r_type)
  4.8680 ++	{
  4.8681 ++	case BFD_RELOC_8:
  4.8682 ++	case BFD_RELOC_16:
  4.8683 ++	case BFD_RELOC_32:
  4.8684 ++	  md_number_to_chars(buf, value, fixP->fx_size);
  4.8685 ++	  break;
  4.8686 ++	case BFD_RELOC_HI16:
  4.8687 ++	  value >>= 16;
  4.8688 ++	case BFD_RELOC_LO16:
  4.8689 ++	  value &= 0xffff;
  4.8690 ++	  *valP = value;
  4.8691 ++	  md_number_to_chars(buf + 2, value, 2);
  4.8692 ++	  break;
  4.8693 ++	case BFD_RELOC_AVR32_PCREL_SUB5:
  4.8694 ++	  value = -value;
  4.8695 ++	  /* fall through */
  4.8696 ++	case BFD_RELOC_AVR32_9_PCREL:
  4.8697 ++	case BFD_RELOC_AVR32_11_PCREL:
  4.8698 ++	case BFD_RELOC_AVR32_16_PCREL:
  4.8699 ++	case BFD_RELOC_AVR32_18_PCREL:
  4.8700 ++	case BFD_RELOC_AVR32_22_PCREL:
  4.8701 ++	case BFD_RELOC_AVR32_3U:
  4.8702 ++	case BFD_RELOC_AVR32_4UH:
  4.8703 ++	case BFD_RELOC_AVR32_6UW:
  4.8704 ++	case BFD_RELOC_AVR32_6S:
  4.8705 ++	case BFD_RELOC_AVR32_7UW:
  4.8706 ++	case BFD_RELOC_AVR32_8S:
  4.8707 ++	case BFD_RELOC_AVR32_10UW:
  4.8708 ++	case BFD_RELOC_AVR32_10SW:
  4.8709 ++	case BFD_RELOC_AVR32_14UW:
  4.8710 ++	case BFD_RELOC_AVR32_16S:
  4.8711 ++	case BFD_RELOC_AVR32_16U:
  4.8712 ++	case BFD_RELOC_AVR32_21S:
  4.8713 ++	case BFD_RELOC_AVR32_BRC1:
  4.8714 ++	case BFD_RELOC_AVR32_SUB5:
  4.8715 ++	case BFD_RELOC_AVR32_CPCALL:
  4.8716 ++	case BFD_RELOC_AVR32_16_CP:
  4.8717 ++	case BFD_RELOC_AVR32_9_CP:
  4.8718 ++	case BFD_RELOC_AVR32_15S:
  4.8719 ++	  ifield = fixP->tc_fix_data.ifield;
  4.8720 ++	  pr_debug("insert field: %ld <= %ld <= %ld (align %u)\n",
  4.8721 ++		   fixP->tc_fix_data.min, value, fixP->tc_fix_data.max,
  4.8722 ++		   fixP->tc_fix_data.align);
  4.8723 ++	  if (value < fixP->tc_fix_data.min || value > fixP->tc_fix_data.max)
  4.8724 ++	    as_bad_where(fixP->fx_file, fixP->fx_line,
  4.8725 ++			 _("operand out of range (%ld not between %ld and %ld)"),
  4.8726 ++			 value, fixP->tc_fix_data.min, fixP->tc_fix_data.max);
  4.8727 ++	  if (value & ((1 << fixP->tc_fix_data.align) - 1))
  4.8728 ++	    as_bad_where(fixP->fx_file, fixP->fx_line,
  4.8729 ++			 _("misaligned operand (required alignment: %d)"),
  4.8730 ++			 1 << fixP->tc_fix_data.align);
  4.8731 ++	  ifield->insert(ifield, buf, value >> fixP->tc_fix_data.align);
  4.8732 ++	  break;
  4.8733 ++	case BFD_RELOC_AVR32_ALIGN:
  4.8734 ++	  /* Nothing to do */
  4.8735 ++	  fixP->fx_done = FALSE;
  4.8736 ++	  break;
  4.8737 ++	default:
  4.8738 ++	  as_fatal("reloc type %s not handled\n",
  4.8739 ++		   bfd_get_reloc_code_name(fixP->fx_r_type));
  4.8740 ++	}
  4.8741 ++    }
  4.8742 ++}
  4.8743 ++#endif
  4.8744 ++
  4.8745 ++arelent *
  4.8746 ++tc_gen_reloc (asection *section ATTRIBUTE_UNUSED,
  4.8747 ++	      fixS *fixp)
  4.8748 ++{
  4.8749 ++  arelent *reloc;
  4.8750 ++  bfd_reloc_code_real_type code;
  4.8751 ++
  4.8752 ++  reloc = xmalloc (sizeof (arelent));
  4.8753 ++
  4.8754 ++  reloc->sym_ptr_ptr = xmalloc (sizeof (asymbol *));
  4.8755 ++  *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
  4.8756 ++  reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
  4.8757 ++  reloc->addend = fixp->fx_offset;
  4.8758 ++  code = fixp->fx_r_type;
  4.8759 ++
  4.8760 ++  reloc->howto = bfd_reloc_type_lookup (stdoutput, code);
  4.8761 ++
  4.8762 ++  if (reloc->howto == NULL)
  4.8763 ++    {
  4.8764 ++      as_bad_where (fixp->fx_file, fixp->fx_line,
  4.8765 ++		    _("cannot represent relocation %s in this object file format"),
  4.8766 ++		    bfd_get_reloc_code_name (code));
  4.8767 ++      return NULL;
  4.8768 ++    }
  4.8769 ++
  4.8770 ++  return reloc;
  4.8771 ++}
  4.8772 ++
  4.8773 ++bfd_boolean
  4.8774 ++avr32_force_reloc(fixS *fixP)
  4.8775 ++{
  4.8776 ++  if (linkrelax && fixP->fx_addsy
  4.8777 ++      && !(S_GET_SEGMENT(fixP->fx_addsy)->flags & SEC_DEBUGGING)
  4.8778 ++      && S_GET_SEGMENT(fixP->fx_addsy) != absolute_section)
  4.8779 ++    {
  4.8780 ++      pr_debug(stderr, "force reloc: addsy=%p, r_type=%d, sec=%s\n",
  4.8781 ++	       fixP->fx_addsy, fixP->fx_r_type, S_GET_SEGMENT(fixP->fx_addsy)->name);
  4.8782 ++      return 1;
  4.8783 ++    }
  4.8784 ++
  4.8785 ++  return generic_force_reloc(fixP);
  4.8786 ++}
  4.8787 ++
  4.8788 ++bfd_boolean
  4.8789 ++avr32_fix_adjustable(fixS *fixP)
  4.8790 ++{
  4.8791 ++  switch (fixP->fx_r_type)
  4.8792 ++    {
  4.8793 ++      /* GOT relocations can't have addends since BFD treats all
  4.8794 ++	 references to a given symbol the same. This means that we
  4.8795 ++	 must avoid section-relative references to local symbols when
  4.8796 ++	 dealing with these kinds of relocs */
  4.8797 ++    case BFD_RELOC_AVR32_GOT32:
  4.8798 ++    case BFD_RELOC_AVR32_GOT16:
  4.8799 ++    case BFD_RELOC_AVR32_GOT8:
  4.8800 ++    case BFD_RELOC_AVR32_GOT21S:
  4.8801 ++    case BFD_RELOC_AVR32_GOT18SW:
  4.8802 ++    case BFD_RELOC_AVR32_GOT16S:
  4.8803 ++    case BFD_RELOC_AVR32_LDA_GOT:
  4.8804 ++    case BFD_RELOC_AVR32_GOTCALL:
  4.8805 ++      pr_debug("fix not adjustable\n");
  4.8806 ++      return 0;
  4.8807 ++
  4.8808 ++    default:
  4.8809 ++      break;
  4.8810 ++    }
  4.8811 ++
  4.8812 ++  return 1;
  4.8813 ++}
  4.8814 ++
  4.8815 ++/* When we want the linker to be able to relax the code, we need to
  4.8816 ++   output a reloc for every .align directive requesting an alignment
  4.8817 ++   to a four byte boundary or larger.  If we don't do this, the linker
  4.8818 ++   can't guarantee that the alignment is actually maintained in the
  4.8819 ++   linker output.
  4.8820 ++
  4.8821 ++   TODO: Might as well insert proper NOPs while we're at it... */
  4.8822 ++void
  4.8823 ++avr32_handle_align(fragS *frag)
  4.8824 ++{
  4.8825 ++  if (linkrelax
  4.8826 ++      && frag->fr_type == rs_align_code
  4.8827 ++      && frag->fr_address + frag->fr_fix > 0
  4.8828 ++      && frag->fr_offset > 0)
  4.8829 ++    {
  4.8830 ++      /* The alignment order (fr_offset) is stored in the addend. */
  4.8831 ++      fix_new(frag, frag->fr_fix, 2, &abs_symbol, frag->fr_offset,
  4.8832 ++	      FALSE, BFD_RELOC_AVR32_ALIGN);
  4.8833 ++    }
  4.8834 ++}
  4.8835 ++
  4.8836 ++/* Relax_align. Advance location counter to next address that has 'alignment'
  4.8837 ++   lowest order bits all 0s, return size of adjustment made.  */
  4.8838 ++relax_addressT
  4.8839 ++avr32_relax_align(segT segment ATTRIBUTE_UNUSED,
  4.8840 ++		  fragS *fragP,
  4.8841 ++		  relax_addressT address)
  4.8842 ++{
  4.8843 ++  relax_addressT mask;
  4.8844 ++  relax_addressT new_address;
  4.8845 ++  int alignment;
  4.8846 ++
  4.8847 ++  alignment = fragP->fr_offset;
  4.8848 ++  mask = ~((~0) << alignment);
  4.8849 ++  new_address = (address + mask) & (~mask);
  4.8850 ++
  4.8851 ++  return new_address - address;
  4.8852 ++}
  4.8853 ++
  4.8854 ++/* Turn a string in input_line_pointer into a floating point constant
  4.8855 ++   of type type, and store the appropriate bytes in *litP.  The number
  4.8856 ++   of LITTLENUMS emitted is stored in *sizeP .  An error message is
  4.8857 ++   returned, or NULL on OK. */
  4.8858 ++
  4.8859 ++/* Equal to MAX_PRECISION in atof-ieee.c */
  4.8860 ++#define MAX_LITTLENUMS 6
  4.8861 ++
  4.8862 ++char *
  4.8863 ++md_atof (type, litP, sizeP)
  4.8864 ++char   type;
  4.8865 ++char * litP;
  4.8866 ++int *  sizeP;
  4.8867 ++{
  4.8868 ++  int              i;
  4.8869 ++  int              prec;
  4.8870 ++  LITTLENUM_TYPE   words [MAX_LITTLENUMS];
  4.8871 ++  char *           t;
  4.8872 ++
  4.8873 ++  switch (type)
  4.8874 ++  {
  4.8875 ++    case 'f':
  4.8876 ++    case 'F':
  4.8877 ++    case 's':
  4.8878 ++    case 'S':
  4.8879 ++      prec = 2;
  4.8880 ++      break;
  4.8881 ++
  4.8882 ++    case 'd':
  4.8883 ++    case 'D':
  4.8884 ++    case 'r':
  4.8885 ++    case 'R':
  4.8886 ++      prec = 4;
  4.8887 ++      break;
  4.8888 ++
  4.8889 ++      /* FIXME: Some targets allow other format chars for bigger sizes here.  */
  4.8890 ++
  4.8891 ++    default:
  4.8892 ++      * sizeP = 0;
  4.8893 ++      return _("Bad call to md_atof()");
  4.8894 ++  }
  4.8895 ++
  4.8896 ++  t = atof_ieee (input_line_pointer, type, words);
  4.8897 ++  if (t)
  4.8898 ++    input_line_pointer = t;
  4.8899 ++  * sizeP = prec * sizeof (LITTLENUM_TYPE);
  4.8900 ++
  4.8901 ++  for (i = 0; i < prec; i++)
  4.8902 ++  {
  4.8903 ++    md_number_to_chars (litP, (valueT) words[i],
  4.8904 ++                        sizeof (LITTLENUM_TYPE));
  4.8905 ++    litP += sizeof (LITTLENUM_TYPE);
  4.8906 ++  }
  4.8907 ++
  4.8908 ++  return 0;
  4.8909 ++}
  4.8910 ++
  4.8911 ++static char *avr32_end_of_match(char *cont, char *what)
  4.8912 ++{
  4.8913 ++  int len = strlen (what);
  4.8914 ++
  4.8915 ++  if (! is_part_of_name (cont[len])
  4.8916 ++      && strncasecmp (cont, what, len) == 0)
  4.8917 ++    return cont + len;
  4.8918 ++
  4.8919 ++  return NULL;
  4.8920 ++}
  4.8921 ++
  4.8922 ++int
  4.8923 ++avr32_parse_name (char const *name, expressionS *exp, char *nextchar)
  4.8924 ++{
  4.8925 ++  char *next = input_line_pointer;
  4.8926 ++  char *next_end;
  4.8927 ++
  4.8928 ++  pr_debug("parse_name: %s, nextchar=%c (%02x)\n", name, *nextchar, *nextchar);
  4.8929 ++
  4.8930 ++  if (*nextchar == '(')
  4.8931 ++    {
  4.8932 ++      if (strcasecmp(name, "hi") == 0)
  4.8933 ++	{
  4.8934 ++	  *next = *nextchar;
  4.8935 ++
  4.8936 ++	  expression(exp);
  4.8937 ++
  4.8938 ++	  if (exp->X_op == O_constant)
  4.8939 ++	    {
  4.8940 ++	      pr_debug("  -> constant hi(0x%08lx) -> 0x%04lx\n",
  4.8941 ++		       exp->X_add_number, exp->X_add_number >> 16);
  4.8942 ++	      exp->X_add_number = (exp->X_add_number >> 16) & 0xffff;
  4.8943 ++	    }
  4.8944 ++	  else
  4.8945 ++	    {
  4.8946 ++	      exp->X_md = exp->X_op;
  4.8947 ++	      exp->X_op = O_hi;
  4.8948 ++	    }
  4.8949 ++
  4.8950 ++	  return 1;
  4.8951 ++	}
  4.8952 ++      else if (strcasecmp(name, "lo") == 0)
  4.8953 ++	{
  4.8954 ++	  *next = *nextchar;
  4.8955 ++
  4.8956 ++	  expression(exp);
  4.8957 ++
  4.8958 ++	  if (exp->X_op == O_constant)
  4.8959 ++	    exp->X_add_number &= 0xffff;
  4.8960 ++	  else
  4.8961 ++	    {
  4.8962 ++	      exp->X_md = exp->X_op;
  4.8963 ++	      exp->X_op = O_lo;
  4.8964 ++	    }
  4.8965 ++
  4.8966 ++	  return 1;
  4.8967 ++	}
  4.8968 ++    }
  4.8969 ++  else if (*nextchar == '@')
  4.8970 ++    {
  4.8971 ++      exp->X_md = exp->X_op;
  4.8972 ++
  4.8973 ++      if ((next_end = avr32_end_of_match (next + 1, "got")))
  4.8974 ++	exp->X_op = O_got;
  4.8975 ++      else if ((next_end = avr32_end_of_match (next + 1, "tlsgd")))
  4.8976 ++	exp->X_op = O_tlsgd;
  4.8977 ++      /* Add more as needed */
  4.8978 ++      else
  4.8979 ++	{
  4.8980 ++	  char c;
  4.8981 ++	  input_line_pointer++;
  4.8982 ++	  c = get_symbol_end();
  4.8983 ++	  as_bad (_("unknown relocation override `%s'"), next + 1);
  4.8984 ++	  *input_line_pointer = c;
  4.8985 ++	  input_line_pointer = next;
  4.8986 ++	  return 0;
  4.8987 ++	}
  4.8988 ++
  4.8989 ++      exp->X_op_symbol = NULL;
  4.8990 ++      exp->X_add_symbol = symbol_find_or_make (name);
  4.8991 ++      exp->X_add_number = 0;
  4.8992 ++
  4.8993 ++      *input_line_pointer = *nextchar;
  4.8994 ++      input_line_pointer = next_end;
  4.8995 ++      *nextchar = *input_line_pointer;
  4.8996 ++      *input_line_pointer = '\0';
  4.8997 ++      return 1;
  4.8998 ++    }
  4.8999 ++  else if (strcmp (name, "_GLOBAL_OFFSET_TABLE_") == 0)
  4.9000 ++    {
  4.9001 ++      if (!GOT_symbol)
  4.9002 ++	GOT_symbol = symbol_find_or_make(name);
  4.9003 ++
  4.9004 ++      exp->X_add_symbol = GOT_symbol;
  4.9005 ++      exp->X_op = O_symbol;
  4.9006 ++      exp->X_add_number = 0;
  4.9007 ++      return 1;
  4.9008 ++    }
  4.9009 ++
  4.9010 ++  return 0;
  4.9011 ++}
  4.9012 ++
  4.9013 ++static void
  4.9014 ++s_rseg (int value ATTRIBUTE_UNUSED)
  4.9015 ++{
  4.9016 ++  /* Syntax: RSEG segment_name [:type] [NOROOT|ROOT] [(align)]
  4.9017 ++   * Defaults:
  4.9018 ++   *  - type: undocumented ("typically CODE or DATA")
  4.9019 ++   *  - ROOT
  4.9020 ++   *  - align: 1 for code, 0 for others
  4.9021 ++   *
  4.9022 ++   * TODO: NOROOT is ignored. If gas supports discardable segments, it should
  4.9023 ++   * be implemented.
  4.9024 ++   */
  4.9025 ++  char *name, *end;
  4.9026 ++  int length, type, attr;
  4.9027 ++  int align = 0;
  4.9028 ++
  4.9029 ++  SKIP_WHITESPACE();
  4.9030 ++
  4.9031 ++  end = input_line_pointer;
  4.9032 ++  while (0 == strchr ("\n\t;:( ", *end))
  4.9033 ++    end++;
  4.9034 ++  if (end == input_line_pointer)
  4.9035 ++    {
  4.9036 ++      as_warn (_("missing name"));
  4.9037 ++      ignore_rest_of_line();
  4.9038 ++      return;
  4.9039 ++    }
  4.9040 ++
  4.9041 ++  name = xmalloc (end - input_line_pointer + 1);
  4.9042 ++  memcpy (name, input_line_pointer, end - input_line_pointer);
  4.9043 ++  name[end - input_line_pointer] = '\0';
  4.9044 ++  input_line_pointer = end;
  4.9045 ++
  4.9046 ++  SKIP_WHITESPACE();
  4.9047 ++
  4.9048 ++  type = SHT_NULL;
  4.9049 ++  attr = 0;
  4.9050 ++
  4.9051 ++  if (*input_line_pointer == ':')
  4.9052 ++    {
  4.9053 ++      /* Skip the colon */
  4.9054 ++      ++input_line_pointer;
  4.9055 ++      SKIP_WHITESPACE();
  4.9056 ++
  4.9057 ++      /* Possible options at this point:
  4.9058 ++       *   - flag (ROOT or NOROOT)
  4.9059 ++       *   - a segment type
  4.9060 ++       */
  4.9061 ++      end = input_line_pointer;
  4.9062 ++      while (0 == strchr ("\n\t;:( ", *end))
  4.9063 ++	end++;
  4.9064 ++      length = end - input_line_pointer;
  4.9065 ++      if (((length == 4) && (0 == strncasecmp( input_line_pointer, "ROOT", 4))) ||
  4.9066 ++	  ((length == 6) && (0 == strncasecmp( input_line_pointer, "NOROOT", 6))))
  4.9067 ++	{
  4.9068 ++	  /* Ignore ROOT/NOROOT */
  4.9069 ++	  input_line_pointer = end;
  4.9070 ++	}
  4.9071 ++      else
  4.9072 ++	{
  4.9073 ++	  /* Must be a segment type */
  4.9074 ++	  switch (*input_line_pointer)
  4.9075 ++	    {
  4.9076 ++	    case 'C':
  4.9077 ++	    case 'c':
  4.9078 ++	      if ((length == 4) &&
  4.9079 ++		  (0 == strncasecmp (input_line_pointer, "CODE", 4)))
  4.9080 ++		{
  4.9081 ++		  attr |= SHF_ALLOC | SHF_EXECINSTR;
  4.9082 ++		  type = SHT_PROGBITS;
  4.9083 ++		  align = 1;
  4.9084 ++		  break;
  4.9085 ++		}
  4.9086 ++	      if ((length == 5) &&
  4.9087 ++		  (0 == strncasecmp (input_line_pointer, "CONST", 5)))
  4.9088 ++		{
  4.9089 ++		  attr |= SHF_ALLOC;
  4.9090 ++		  type = SHT_PROGBITS;
  4.9091 ++		  break;
  4.9092 ++		}
  4.9093 ++	      goto de_fault;
  4.9094 ++
  4.9095 ++	    case 'D':
  4.9096 ++	    case 'd':
  4.9097 ++	      if ((length == 4) &&
  4.9098 ++		  (0 == strncasecmp (input_line_pointer, "DATA", 4)))
  4.9099 ++		{
  4.9100 ++		  attr |= SHF_ALLOC | SHF_WRITE;
  4.9101 ++		  type = SHT_PROGBITS;
  4.9102 ++		  break;
  4.9103 ++		}
  4.9104 ++	      goto de_fault;
  4.9105 ++
  4.9106 ++	      /* TODO: Add FAR*, HUGE*, IDATA and NEAR* if necessary */
  4.9107 ++
  4.9108 ++	    case 'U':
  4.9109 ++	    case 'u':
  4.9110 ++	      if ((length == 7) &&
  4.9111 ++		  (0 == strncasecmp (input_line_pointer, "UNTYPED", 7)))
  4.9112 ++		break;
  4.9113 ++	      goto de_fault;
  4.9114 ++
  4.9115 ++	      /* TODO: Add XDATA and ZPAGE if necessary */
  4.9116 ++
  4.9117 ++	    de_fault:
  4.9118 ++	    default:
  4.9119 ++	      as_warn (_("unrecognized segment type"));
  4.9120 ++	    }
  4.9121 ++
  4.9122 ++	  input_line_pointer = end;
  4.9123 ++	  SKIP_WHITESPACE();
  4.9124 ++
  4.9125 ++	  if (*input_line_pointer == ':')
  4.9126 ++	    {
  4.9127 ++	      /*  ROOT/NOROOT */
  4.9128 ++	      ++input_line_pointer;
  4.9129 ++	      SKIP_WHITESPACE();
  4.9130 ++
  4.9131 ++	      end = input_line_pointer;
  4.9132 ++	      while (0 == strchr ("\n\t;:( ", *end))
  4.9133 ++		end++;
  4.9134 ++	      length = end - input_line_pointer;
  4.9135 ++	      if (! ((length == 4) &&
  4.9136 ++		     (0 == strncasecmp( input_line_pointer, "ROOT", 4))) &&
  4.9137 ++		  ! ((length == 6) &&
  4.9138 ++		     (0 == strncasecmp( input_line_pointer, "NOROOT", 6))))
  4.9139 ++		{
  4.9140 ++		  as_warn (_("unrecognized segment flag"));
  4.9141 ++		}
  4.9142 ++
  4.9143 ++	      input_line_pointer = end;
  4.9144 ++	      SKIP_WHITESPACE();
  4.9145 ++	    }
  4.9146 ++	}
  4.9147 ++    }
  4.9148 ++
  4.9149 ++  if (*input_line_pointer == '(')
  4.9150 ++    {
  4.9151 ++      align = get_absolute_expression ();
  4.9152 ++    }
  4.9153 ++
  4.9154 ++  demand_empty_rest_of_line();
  4.9155 ++
  4.9156 ++  obj_elf_change_section (name, type, attr, 0, NULL, 0, 0);
  4.9157 ++#ifdef AVR32_DEBUG
  4.9158 ++  fprintf( stderr, "RSEG: Changed section to %s, type: 0x%x, attr: 0x%x\n",
  4.9159 ++      name, type, attr );
  4.9160 ++  fprintf( stderr, "RSEG: Aligning to 2**%d\n", align );
  4.9161 ++#endif
  4.9162 ++
  4.9163 ++  if (align > 15)
  4.9164 ++    {
  4.9165 ++      align = 15;
  4.9166 ++      as_warn (_("alignment too large: %u assumed"), align);
  4.9167 ++    }
  4.9168 ++
  4.9169 ++  /* Hope not, that is */
  4.9170 ++  assert (now_seg != absolute_section);
  4.9171 ++
  4.9172 ++  /* Only make a frag if we HAVE to... */
  4.9173 ++  if (align != 0 && !need_pass_2)
  4.9174 ++    {
  4.9175 ++      if (subseg_text_p (now_seg))
  4.9176 ++	frag_align_code (align, 0);
  4.9177 ++      else
  4.9178 ++	frag_align (align, 0, 0);
  4.9179 ++    }
  4.9180 ++
  4.9181 ++  record_alignment (now_seg, align - OCTETS_PER_BYTE_POWER);
  4.9182 ++}
  4.9183 ++
  4.9184 ++/* vim: syntax=c sw=2
  4.9185 ++ */
  4.9186 +--- /dev/null
  4.9187 ++++ b/gas/config/tc-avr32.h
  4.9188 +@@ -0,0 +1,325 @@
  4.9189 ++/* Assembler definitions for AVR32.
  4.9190 ++   Copyright 2003-2006 Atmel Corporation.
  4.9191 ++
  4.9192 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
  4.9193 ++
  4.9194 ++   This file is part of GAS, the GNU Assembler.
  4.9195 ++
  4.9196 ++   GAS is free software; you can redistribute it and/or modify it
  4.9197 ++   under the terms of the GNU General Public License as published by
  4.9198 ++   the Free Software Foundation; either version 2, or (at your option)
  4.9199 ++   any later version.
  4.9200 ++
  4.9201 ++   GAS is distributed in the hope that it will be useful, but WITHOUT
  4.9202 ++   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  4.9203 ++   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
  4.9204 ++   License for more details.
  4.9205 ++
  4.9206 ++   You should have received a copy of the GNU General Public License
  4.9207 ++   along with GAS; see the file COPYING.  If not, write to the Free
  4.9208 ++   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
  4.9209 ++   02111-1307, USA.  */
  4.9210 ++
  4.9211 ++#if 0
  4.9212 ++#define DEBUG
  4.9213 ++#define DEBUG1
  4.9214 ++#define DEBUG2
  4.9215 ++#define DEBUG3
  4.9216 ++#define DEBUG4
  4.9217 ++#define DEBUG5
  4.9218 ++#endif
  4.9219 ++
  4.9220 ++/* Are we trying to be compatible with the IAR assembler? (--iar) */
  4.9221 ++extern int avr32_iarcompat;
  4.9222 ++
  4.9223 ++/* By convention, you should define this macro in the `.h' file.  For
  4.9224 ++   example, `tc-m68k.h' defines `TC_M68K'.  You might have to use this
  4.9225 ++   if it is necessary to add CPU specific code to the object format
  4.9226 ++   file.  */
  4.9227 ++#define TC_AVR32
  4.9228 ++
  4.9229 ++/* This macro is the BFD target name to use when creating the output
  4.9230 ++   file.  This will normally depend upon the `OBJ_FMT' macro.  */
  4.9231 ++#define TARGET_FORMAT "elf32-avr32"
  4.9232 ++
  4.9233 ++/* This macro is the BFD architecture to pass to `bfd_set_arch_mach'.  */
  4.9234 ++#define TARGET_ARCH bfd_arch_avr32
  4.9235 ++
  4.9236 ++/* This macro is the BFD machine number to pass to
  4.9237 ++   `bfd_set_arch_mach'.  If it is not defined, GAS will use 0.  */
  4.9238 ++#define TARGET_MACH 0
  4.9239 ++
  4.9240 ++/* UNDOCUMENTED: Allow //-style comments */
  4.9241 ++#define DOUBLESLASH_LINE_COMMENTS
  4.9242 ++
  4.9243 ++/* You should define this macro to be non-zero if the target is big
  4.9244 ++   endian, and zero if the target is little endian.  */
  4.9245 ++#define TARGET_BYTES_BIG_ENDIAN 1
  4.9246 ++
  4.9247 ++/* FIXME: It seems that GAS only expects a one-byte opcode...
  4.9248 ++   #define NOP_OPCODE 0xd703 */
  4.9249 ++
  4.9250 ++/* If you define this macro, GAS will warn about the use of
  4.9251 ++   nonstandard escape sequences in a string.  */
  4.9252 ++#undef ONLY_STANDARD_ESCAPES
  4.9253 ++
  4.9254 ++#define DWARF2_FORMAT() dwarf2_format_32bit
  4.9255 ++
  4.9256 ++/* Instructions are either 2 or 4 bytes long */
  4.9257 ++/* #define DWARF2_LINE_MIN_INSN_LENGTH 2 */
  4.9258 ++
  4.9259 ++/* GAS will call this function for any expression that can not be
  4.9260 ++   recognized.  When the function is called, `input_line_pointer'
  4.9261 ++   will point to the start of the expression.  */
  4.9262 ++#define md_operand(x)
  4.9263 ++
  4.9264 ++#define md_parse_name(name, expr, mode, c) avr32_parse_name(name, expr, c)
  4.9265 ++extern int avr32_parse_name(const char *, struct expressionS *, char *);
  4.9266 ++
  4.9267 ++/* You may define this macro to generate a fixup for a data
  4.9268 ++   allocation pseudo-op.  */
  4.9269 ++#define TC_CONS_FIX_NEW(FRAG, OFF, LEN, EXP)	\
  4.9270 ++  avr32_cons_fix_new(FRAG, OFF, LEN, EXP)
  4.9271 ++void avr32_cons_fix_new (fragS *, int, int, expressionS *);
  4.9272 ++
  4.9273 ++/* `extsym - .' expressions can be emitted using PC-relative relocs */
  4.9274 ++#define DIFF_EXPR_OK
  4.9275 ++
  4.9276 ++/* This is used to construct expressions out of @gotoff, etc. The
  4.9277 ++   relocation type is stored in X_md */
  4.9278 ++#define O_got		O_md1
  4.9279 ++#define O_hi		O_md2
  4.9280 ++#define O_lo		O_md3
  4.9281 ++#define O_tlsgd		O_md4
  4.9282 ++
  4.9283 ++/* You may define this macro to parse an expression used in a data
  4.9284 ++   allocation pseudo-op such as `.word'.  You can use this to
  4.9285 ++   recognize relocation directives that may appear in such directives.  */
  4.9286 ++/* #define TC_PARSE_CONS_EXPRESSION(EXPR,N) avr_parse_cons_expression (EXPR,N)
  4.9287 ++   void avr_parse_cons_expression (expressionS *exp, int nbytes); */
  4.9288 ++
  4.9289 ++/* This should just call either `number_to_chars_bigendian' or
  4.9290 ++   `number_to_chars_littleendian', whichever is appropriate.  On
  4.9291 ++   targets like the MIPS which support options to change the
  4.9292 ++   endianness, which function to call is a runtime decision.  On
  4.9293 ++   other targets, `md_number_to_chars' can be a simple macro.  */
  4.9294 ++#define md_number_to_chars number_to_chars_bigendian
  4.9295 ++
  4.9296 ++/* `md_short_jump_size'
  4.9297 ++   `md_long_jump_size'
  4.9298 ++   `md_create_short_jump'
  4.9299 ++   `md_create_long_jump'
  4.9300 ++   If `WORKING_DOT_WORD' is defined, GAS will not do broken word
  4.9301 ++   processing (*note Broken words::.).  Otherwise, you should set
  4.9302 ++   `md_short_jump_size' to the size of a short jump (a jump that is
  4.9303 ++   just long enough to jump around a long jmp) and
  4.9304 ++   `md_long_jump_size' to the size of a long jump (a jump that can go
  4.9305 ++   anywhere in the function), You should define
  4.9306 ++   `md_create_short_jump' to create a short jump around a long jump,
  4.9307 ++   and define `md_create_long_jump' to create a long jump.  */
  4.9308 ++#define WORKING_DOT_WORD
  4.9309 ++
  4.9310 ++/* If you define this macro, it means that `tc_gen_reloc' may return
  4.9311 ++   multiple relocation entries for a single fixup.  In this case, the
  4.9312 ++   return value of `tc_gen_reloc' is a pointer to a null terminated
  4.9313 ++   array.  */
  4.9314 ++#undef RELOC_EXPANSION_POSSIBLE
  4.9315 ++
  4.9316 ++/* If you define this macro, GAS will not require pseudo-ops to start with a .
  4.9317 ++   character. */
  4.9318 ++#define NO_PSEUDO_DOT (avr32_iarcompat)
  4.9319 ++
  4.9320 ++/* The IAR assembler uses $ as the location counter. Unfortunately, we
  4.9321 ++   can't make this dependent on avr32_iarcompat... */
  4.9322 ++#define DOLLAR_DOT
  4.9323 ++
  4.9324 ++/* Values passed to md_apply_fix3 don't include the symbol value.  */
  4.9325 ++#define MD_APPLY_SYM_VALUE(FIX) 0
  4.9326 ++
  4.9327 ++/* The number of bytes to put into a word in a listing.  This affects
  4.9328 ++   the way the bytes are clumped together in the listing.  For
  4.9329 ++   example, a value of 2 might print `1234 5678' where a value of 1
  4.9330 ++   would print `12 34 56 78'.  The default value is 4.  */
  4.9331 ++#define LISTING_WORD_SIZE 4
  4.9332 ++
  4.9333 ++/* extern const struct relax_type md_relax_table[];
  4.9334 ++#define TC_GENERIC_RELAX_TABLE md_relax_table */
  4.9335 ++
  4.9336 ++/*
  4.9337 ++  An `.lcomm' directive with no explicit alignment parameter will use
  4.9338 ++  this macro to set P2VAR to the alignment that a request for SIZE
  4.9339 ++  bytes will have.  The alignment is expressed as a power of two.  If
  4.9340 ++  no alignment should take place, the macro definition should do
  4.9341 ++  nothing.  Some targets define a `.bss' directive that is also
  4.9342 ++  affected by this macro.  The default definition will set P2VAR to
  4.9343 ++  the truncated power of two of sizes up to eight bytes.
  4.9344 ++
  4.9345 ++  We want doublewords to be word-aligned, so we're going to modify the
  4.9346 ++  default definition a tiny bit.
  4.9347 ++*/
  4.9348 ++#define TC_IMPLICIT_LCOMM_ALIGNMENT(SIZE, P2VAR)	\
  4.9349 ++  do							\
  4.9350 ++    {							\
  4.9351 ++      if ((SIZE) >= 4)					\
  4.9352 ++	(P2VAR) = 2;					\
  4.9353 ++      else if ((SIZE) >= 2)				\
  4.9354 ++	(P2VAR) = 1;					\
  4.9355 ++      else						\
  4.9356 ++	(P2VAR) = 0;					\
  4.9357 ++    }							\
  4.9358 ++  while (0)
  4.9359 ++
  4.9360 ++/* When relaxing, we need to generate relocations for alignment
  4.9361 ++   directives.  */
  4.9362 ++#define HANDLE_ALIGN(frag) avr32_handle_align(frag)
  4.9363 ++extern void avr32_handle_align(fragS *);
  4.9364 ++
  4.9365 ++/* See internals doc for explanation. Oh wait...
  4.9366 ++   Now, can you guess where "alignment" comes from? ;-) */
  4.9367 ++#define MAX_MEM_FOR_RS_ALIGN_CODE ((1 << alignment) - 1)
  4.9368 ++
  4.9369 ++/* We need to stop gas from reducing certain expressions (e.g. GOT
  4.9370 ++   references) */
  4.9371 ++#define tc_fix_adjustable(fix) avr32_fix_adjustable(fix)
  4.9372 ++extern bfd_boolean avr32_fix_adjustable(struct fix *);
  4.9373 ++
  4.9374 ++/* The linker needs to be passed a little more information when relaxing. */
  4.9375 ++#define TC_FORCE_RELOCATION(fix) avr32_force_reloc(fix)
  4.9376 ++extern bfd_boolean avr32_force_reloc(struct fix *);
  4.9377 ++
  4.9378 ++/* I'm tired of working around all the madness in fixup_segment().
  4.9379 ++   This hook will do basically the same things as the generic code,
  4.9380 ++   and then it will "goto" right past it.  */
  4.9381 ++#define TC_VALIDATE_FIX(FIX, SEG, SKIP)		\
  4.9382 ++  do						\
  4.9383 ++    {						\
  4.9384 ++      avr32_process_fixup(FIX, SEG);		\
  4.9385 ++      if (!(FIX)->fx_done)			\
  4.9386 ++	++seg_reloc_count;			\
  4.9387 ++      goto SKIP;				\
  4.9388 ++    }						\
  4.9389 ++  while (0)
  4.9390 ++extern void avr32_process_fixup(struct fix *fixP, segT this_segment);
  4.9391 ++
  4.9392 ++/* Positive values of TC_FX_SIZE_SLACK allow a target to define
  4.9393 ++   fixups that far past the end of a frag.  Having such fixups
  4.9394 ++   is of course most most likely a bug in setting fx_size correctly.
  4.9395 ++   A negative value disables the fixup check entirely, which is
  4.9396 ++   appropriate for something like the Renesas / SuperH SH_COUNT
  4.9397 ++   reloc.  */
  4.9398 ++/* This target is buggy, and sets fix size too large.  */
  4.9399 ++#define TC_FX_SIZE_SLACK(FIX) -1
  4.9400 ++
  4.9401 ++/* We don't want the gas core to make any assumptions about our way of
  4.9402 ++   doing linkrelaxing.  */
  4.9403 ++#define TC_LINKRELAX_FIXUP(SEG)			0
  4.9404 ++
  4.9405 ++/* ... but we do want it to insert lots of padding. */
  4.9406 ++#define LINKER_RELAXING_SHRINKS_ONLY
  4.9407 ++
  4.9408 ++/* Better do it ourselves, really... */
  4.9409 ++#define TC_RELAX_ALIGN(SEG, FRAG, ADDR)	avr32_relax_align(SEG, FRAG, ADDR)
  4.9410 ++extern relax_addressT
  4.9411 ++avr32_relax_align(segT segment, fragS *fragP, relax_addressT address);
  4.9412 ++
  4.9413 ++/* Use line number format that is amenable to linker relaxation.  */
  4.9414 ++#define DWARF2_USE_FIXED_ADVANCE_PC (linkrelax != 0)
  4.9415 ++
  4.9416 ++/* This is called by write_object_file() just before symbols are
  4.9417 ++   attempted converted into section symbols.  */
  4.9418 ++#define tc_frob_file_before_adjust()	avr32_frob_file()
  4.9419 ++extern void avr32_frob_file(void);
  4.9420 ++
  4.9421 ++/* If you define this macro, GAS will call it at the end of each input
  4.9422 ++   file.  */
  4.9423 ++#define md_cleanup() avr32_cleanup()
  4.9424 ++extern void avr32_cleanup(void);
  4.9425 ++
  4.9426 ++/* There's an AVR32-specific hack in operand() which creates O_md
  4.9427 ++   expressions when encountering HWRD or LWRD. We need to generate
  4.9428 ++   proper relocs for them */
  4.9429 ++/* #define md_cgen_record_fixup_exp avr32_cgen_record_fixup_exp */
  4.9430 ++
  4.9431 ++/* I needed to add an extra hook in gas_cgen_finish_insn() for
  4.9432 ++   conversion of O_md* operands because md_cgen_record_fixup_exp()
  4.9433 ++   isn't called for relaxable insns */
  4.9434 ++/* #define md_cgen_convert_expr(exp, opinfo) avr32_cgen_convert_expr(exp, opinfo)
  4.9435 ++   int avr32_cgen_convert_expr(expressionS *, int); */
  4.9436 ++
  4.9437 ++/* #define tc_gen_reloc gas_cgen_tc_gen_reloc */
  4.9438 ++
  4.9439 ++/* If you define this macro, it should return the position from which
  4.9440 ++   the PC relative adjustment for a PC relative fixup should be
  4.9441 ++   made. On many processors, the base of a PC relative instruction is
  4.9442 ++   the next instruction, so this macro would return the length of an
  4.9443 ++   instruction, plus the address of the PC relative fixup. The latter
  4.9444 ++   can be calculated as fixp->fx_where + fixp->fx_frag->fr_address. */
  4.9445 ++extern long md_pcrel_from_section (struct fix *, segT);
  4.9446 ++#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
  4.9447 ++
  4.9448 ++#define LOCAL_LABEL(name) (name[0] == '.' && (name[1] == 'L'))
  4.9449 ++#define LOCAL_LABELS_FB		1
  4.9450 ++
  4.9451 ++struct avr32_relaxer
  4.9452 ++{
  4.9453 ++  int (*estimate_size)(fragS *, segT);
  4.9454 ++  long (*relax_frag)(segT, fragS *, long);
  4.9455 ++  void (*convert_frag)(bfd *, segT, fragS *);
  4.9456 ++};
  4.9457 ++
  4.9458 ++/* AVR32 has quite complex instruction coding, which means we need
  4.9459 ++ * lots of information in order to do the right thing during relaxing
  4.9460 ++ * (basically, we need to be able to reconstruct a whole new opcode if
  4.9461 ++ * necessary) */
  4.9462 ++#define TC_FRAG_TYPE struct avr32_frag_data
  4.9463 ++
  4.9464 ++struct cpool;
  4.9465 ++
  4.9466 ++struct avr32_frag_data
  4.9467 ++{
  4.9468 ++  /* TODO: Maybe add an expression object here so that we can use
  4.9469 ++     fix_new_exp() in md_convert_frag?  We may have to decide
  4.9470 ++     pcrel-ness in md_estimate_size_before_relax() as well...or we
  4.9471 ++     might do it when parsing.  Doing it while parsing may fail
  4.9472 ++     because the sub_symbol is undefined then... */
  4.9473 ++  int pcrel;
  4.9474 ++  int force_extended;
  4.9475 ++  int reloc_info;
  4.9476 ++  struct avr32_relaxer *relaxer;
  4.9477 ++  expressionS exp;
  4.9478 ++
  4.9479 ++  /* Points to associated constant pool, for use by LDA and CALL in
  4.9480 ++     non-pic mode, and when relaxing the .cpool directive */
  4.9481 ++  struct cpool *pool;
  4.9482 ++  unsigned int pool_entry;
  4.9483 ++};
  4.9484 ++
  4.9485 ++/* We will have to initialize the fields explicitly when needed */
  4.9486 ++#define TC_FRAG_INIT(fragP)
  4.9487 ++
  4.9488 ++#define md_estimate_size_before_relax(fragP, segT)			\
  4.9489 ++  ((fragP)->tc_frag_data.relaxer->estimate_size(fragP, segT))
  4.9490 ++#define md_relax_frag(segment, fragP, stretch)				\
  4.9491 ++  ((fragP)->tc_frag_data.relaxer->relax_frag(segment, fragP, stretch))
  4.9492 ++#define md_convert_frag(abfd, segment, fragP)				\
  4.9493 ++  ((fragP)->tc_frag_data.relaxer->convert_frag(abfd, segment, fragP))
  4.9494 ++
  4.9495 ++#define TC_FIX_TYPE struct avr32_fix_data
  4.9496 ++
  4.9497 ++struct avr32_fix_data
  4.9498 ++{
  4.9499 ++  const struct avr32_ifield *ifield;
  4.9500 ++  unsigned int align;
  4.9501 ++  long min;
  4.9502 ++  long max;
  4.9503 ++};
  4.9504 ++
  4.9505 ++#define TC_INIT_FIX_DATA(fixP)			\
  4.9506 ++  do						\
  4.9507 ++    {						\
  4.9508 ++      (fixP)->tc_fix_data.ifield = NULL;	\
  4.9509 ++      (fixP)->tc_fix_data.align = 0;		\
  4.9510 ++      (fixP)->tc_fix_data.min = 0;		\
  4.9511 ++      (fixP)->tc_fix_data.max = 0;		\
  4.9512 ++    }						\
  4.9513 ++  while (0)
  4.9514 +--- a/gas/configure.tgt
  4.9515 ++++ b/gas/configure.tgt
  4.9516 +@@ -33,6 +33,7 @@ case ${cpu} in
  4.9517 +   am33_2.0)		cpu_type=mn10300 endian=little ;;
  4.9518 +   arm*be|arm*b)		cpu_type=arm endian=big ;;
  4.9519 +   arm*)			cpu_type=arm endian=little ;;
  4.9520 ++  avr32*)		cpu_type=avr32 endian=big ;;
  4.9521 +   bfin*)		cpu_type=bfin endian=little ;;
  4.9522 +   c4x*)			cpu_type=tic4x ;;
  4.9523 +   cr16*)		cpu_type=cr16 endian=little ;;
  4.9524 +@@ -129,6 +130,9 @@ case ${generic_target} in
  4.9525 +   bfin-*elf)				fmt=elf ;;
  4.9526 +   cr16-*-elf*)	    			fmt=elf ;;
  4.9527 + 
  4.9528 ++  avr32-*-linux*)			fmt=elf  em=linux bfd_gas=yes ;;
  4.9529 ++  avr32*)				fmt=elf  bfd_gas=yes ;;
  4.9530 ++
  4.9531 +   cris-*-linux-* | crisv32-*-linux-*)
  4.9532 + 					fmt=multi em=linux ;;
  4.9533 +   cris-*-* | crisv32-*-*)		fmt=multi ;;
  4.9534 +--- a/gas/doc/all.texi
  4.9535 ++++ b/gas/doc/all.texi
  4.9536 +@@ -30,6 +30,7 @@
  4.9537 + @set ARC
  4.9538 + @set ARM
  4.9539 + @set AVR
  4.9540 ++@set AVR32
  4.9541 + @set BFIN
  4.9542 + @set CR16
  4.9543 + @set CRIS
  4.9544 +--- a/gas/doc/as.texinfo
  4.9545 ++++ b/gas/doc/as.texinfo
  4.9546 +@@ -6353,6 +6353,9 @@ subject, see the hardware manufacturer's
  4.9547 + @ifset AVR
  4.9548 + * AVR-Dependent::               AVR Dependent Features
  4.9549 + @end ifset
  4.9550 ++@ifset AVR32
  4.9551 ++* AVR32-Dependent::             AVR32 Dependent Features
  4.9552 ++@end ifset
  4.9553 + @ifset BFIN
  4.9554 + * BFIN-Dependent::		BFIN Dependent Features
  4.9555 + @end ifset
  4.9556 +@@ -6476,6 +6479,10 @@ subject, see the hardware manufacturer's
  4.9557 + @include c-avr.texi
  4.9558 + @end ifset
  4.9559 + 
  4.9560 ++@ifset AVR32
  4.9561 ++@include c-avr32.texi
  4.9562 ++@end ifset
  4.9563 ++
  4.9564 + @ifset BFIN
  4.9565 + @include c-bfin.texi
  4.9566 + @end ifset
  4.9567 +--- /dev/null
  4.9568 ++++ b/gas/doc/c-avr32.texi
  4.9569 +@@ -0,0 +1,247 @@
  4.9570 ++@c Copyright 2005, 2006
  4.9571 ++@c Atmel Corporation
  4.9572 ++@c This is part of the GAS manual.
  4.9573 ++@c For copying conditions, see the file as.texinfo.
  4.9574 ++
  4.9575 ++@ifset GENERIC
  4.9576 ++@page
  4.9577 ++@node AVR32-Dependent
  4.9578 ++@chapter AVR32 Dependent Features
  4.9579 ++@end ifset
  4.9580 ++
  4.9581 ++@ifclear GENERIC
  4.9582 ++@node Machine Dependencies
  4.9583 ++@chapter AVR32 Dependent Features
  4.9584 ++@end ifclear
  4.9585 ++
  4.9586 ++@cindex AVR32 support
  4.9587 ++@menu
  4.9588 ++* AVR32 Options::               Options
  4.9589 ++* AVR32 Syntax::                Syntax
  4.9590 ++* AVR32 Directives::            Directives
  4.9591 ++* AVR32 Opcodes::               Opcodes
  4.9592 ++@end menu
  4.9593 ++
  4.9594 ++@node AVR32 Options
  4.9595 ++@section Options
  4.9596 ++@cindex AVR32 options
  4.9597 ++@cindex options for AVR32
  4.9598 ++
  4.9599 ++There are currently no AVR32-specific options.  However, the following
  4.9600 ++options are planned:
  4.9601 ++
  4.9602 ++@table @code
  4.9603 ++
  4.9604 ++@cindex @code{--pic} command line option, AVR32
  4.9605 ++@cindex PIC code generation for AVR32
  4.9606 ++@item --pic
  4.9607 ++This option specifies that the output of the assembler should be marked
  4.9608 ++as position-independent code (PIC).  It will also ensure that
  4.9609 ++pseudo-instructions that deal with address calculation are output as
  4.9610 ++PIC, and that all absolute address references in the code are marked as
  4.9611 ++such.
  4.9612 ++
  4.9613 ++@cindex @code{--linkrelax} command line option, AVR32
  4.9614 ++@item --linkrelax
  4.9615 ++This option specifies that the output of the assembler should be marked
  4.9616 ++as linker-relaxable.  It will also ensure that all PC-relative operands
  4.9617 ++that may change during linker relaxation get appropriate relocations.
  4.9618 ++
  4.9619 ++@end table
  4.9620 ++
  4.9621 ++
  4.9622 ++@node AVR32 Syntax
  4.9623 ++@section Syntax
  4.9624 ++@menu
  4.9625 ++* AVR32-Chars::              Special Characters
  4.9626 ++* AVR32-Symrefs::            Symbol references
  4.9627 ++@end menu
  4.9628 ++
  4.9629 ++@node AVR32-Chars
  4.9630 ++@subsection Special Characters
  4.9631 ++
  4.9632 ++@cindex line comment character, AVR32
  4.9633 ++@cindex AVR32 line comment character
  4.9634 ++The presence of a @samp{//} on a line indicates the start of a comment
  4.9635 ++that extends to the end of the current line.  If a @samp{#} appears as
  4.9636 ++the first character of a line, the whole line is treated as a comment.
  4.9637 ++
  4.9638 ++@cindex line separator, AVR32
  4.9639 ++@cindex statement separator, AVR32
  4.9640 ++@cindex AVR32 line separator
  4.9641 ++The @samp{;} character can be used instead of a newline to separate
  4.9642 ++statements.
  4.9643 ++
  4.9644 ++@node AVR32-Symrefs
  4.9645 ++@subsection Symbol references
  4.9646 ++
  4.9647 ++The absolute value of a symbol can be obtained by simply naming the
  4.9648 ++symbol.  However, as AVR32 symbols have 32-bit values, most symbols have
  4.9649 ++values that are outside the range of any instructions.
  4.9650 ++
  4.9651 ++Instructions that take a PC-relative offset, e.g. @code{lddpc} or
  4.9652 ++@code{rcall}, can also reference a symbol by simply naming the symbol
  4.9653 ++(no explicit calculations necessary).  In this case, the assembler or
  4.9654 ++linker subtracts the address of the instruction from the symbol's value
  4.9655 ++and inserts the result into the instruction.  Note that even though an
  4.9656 ++overflow is less likely to happen for a relative reference than for an
  4.9657 ++absolute reference, the assembler or linker will generate an error if
  4.9658 ++the referenced symbol is too far away from the current location.
  4.9659 ++
  4.9660 ++Relative references can be used for data as well.  For example:
  4.9661 ++
  4.9662 ++@smallexample
  4.9663 ++        lddpc   r0, 2f
  4.9664 ++1:      add     r0, pc
  4.9665 ++        ...
  4.9666 ++        .align  2
  4.9667 ++2:      .int    @var{some_symbol} - 1b
  4.9668 ++@end smallexample
  4.9669 ++
  4.9670 ++Here, r0 will end up with the run-time address of @var{some_symbol} even
  4.9671 ++if the program was loaded at a different address than it was linked
  4.9672 ++(position-independent code).
  4.9673 ++
  4.9674 ++@subsubsection Symbol modifiers
  4.9675 ++
  4.9676 ++@table @code
  4.9677 ++
  4.9678 ++@item @code{hi(@var{symbol})}
  4.9679 ++Evaluates to the value of the symbol shifted right 16 bits.  This will
  4.9680 ++work even if @var{symbol} is defined in a different module.
  4.9681 ++
  4.9682 ++@item @code{lo(@var{symbol})}
  4.9683 ++Evaluates to the low 16 bits of the symbol's value.  This will work even
  4.9684 ++if @var{symbol} is defined in a different module.
  4.9685 ++
  4.9686 ++@item @code{@var{symbol}@@got}
  4.9687 ++Create a GOT entry for @var{symbol} and return the offset of that entry
  4.9688 ++relative to the GOT base.
  4.9689 ++
  4.9690 ++@end table
  4.9691 ++
  4.9692 ++
  4.9693 ++@node AVR32 Directives
  4.9694 ++@section Directives
  4.9695 ++@cindex machine directives, AVR32
  4.9696 ++@cindex AVR32 directives
  4.9697 ++
  4.9698 ++@table @code
  4.9699 ++
  4.9700 ++@cindex @code{.cpool} directive, AVR32
  4.9701 ++@item .cpool
  4.9702 ++This directive causes the current contents of the constant pool to be
  4.9703 ++dumped into the current section at the current location (aligned to a
  4.9704 ++word boundary).  @code{GAS} maintains a separate constant pool for each
  4.9705 ++section and each sub-section.  The @code{.cpool} directive will only
  4.9706 ++affect the constant pool of the current section and sub-section.  At the
  4.9707 ++end of assembly, all remaining, non-empty constant pools will
  4.9708 ++automatically be dumped.
  4.9709 ++
  4.9710 ++@end table
  4.9711 ++
  4.9712 ++
  4.9713 ++@node AVR32 Opcodes
  4.9714 ++@section Opcodes
  4.9715 ++@cindex AVR32 opcodes
  4.9716 ++@cindex opcodes for AVR32
  4.9717 ++
  4.9718 ++@code{@value{AS}} implements all the standard AVR32 opcodes.  It also
  4.9719 ++implements several pseudo-opcodes, which are recommended to use wherever
  4.9720 ++possible because they give the tool chain better freedom to generate
  4.9721 ++optimal code.
  4.9722 ++
  4.9723 ++@table @code
  4.9724 ++
  4.9725 ++@cindex @code{LDA.W reg, symbol} pseudo op, AVR32
  4.9726 ++@item LDA.W
  4.9727 ++@smallexample
  4.9728 ++        lda.w   @var{reg}, @var{symbol}
  4.9729 ++@end smallexample
  4.9730 ++
  4.9731 ++This instruction will load the address of @var{symbol} into
  4.9732 ++@var{reg}. The instruction will evaluate to one of the following,
  4.9733 ++depending on the relative distance to the symbol, the relative distance
  4.9734 ++to the constant pool and whether the @code{--pic} option has been
  4.9735 ++specified. If the @code{--pic} option has not been specified, the
  4.9736 ++alternatives are as follows:
  4.9737 ++@smallexample
  4.9738 ++        /* @var{symbol} evaluates to a small enough value */
  4.9739 ++        mov     @var{reg}, @var{symbol}
  4.9740 ++
  4.9741 ++        /* (. - @var{symbol}) evaluates to a small enough value */
  4.9742 ++        sub     @var{reg}, pc, . - @var{symbol}
  4.9743 ++
  4.9744 ++        /* Constant pool is close enough */
  4.9745 ++        lddpc   @var{reg}, @var{cpent}
  4.9746 ++        ...
  4.9747 ++@var{cpent}:
  4.9748 ++        .long   @var{symbol}
  4.9749 ++
  4.9750 ++        /* Otherwise (not implemented yet, probably not necessary) */
  4.9751 ++        mov     @var{reg}, lo(@var{symbol})
  4.9752 ++        orh     @var{reg}, hi(@var{symbol})
  4.9753 ++@end smallexample
  4.9754 ++
  4.9755 ++If the @code{--pic} option has been specified, the alternatives are as
  4.9756 ++follows:
  4.9757 ++@smallexample
  4.9758 ++        /* (. - @var{symbol}) evaluates to a small enough value */
  4.9759 ++        sub     @var{reg}, pc, . - @var{symbol}
  4.9760 ++
  4.9761 ++        /* If @code{--linkrelax} not specified */
  4.9762 ++        ld.w    @var{reg}, r6[@var{symbol}@@got]
  4.9763 ++
  4.9764 ++        /* Otherwise */
  4.9765 ++        mov     @var{reg}, @var{symbol}@@got / 4
  4.9766 ++        ld.w    @var{reg}, r6[@var{reg} << 2]
  4.9767 ++@end smallexample
  4.9768 ++
  4.9769 ++If @var{symbol} is not defined in the same file and section as the
  4.9770 ++@code{LDA.W} instruction, the most pessimistic alternative of the
  4.9771 ++above is selected. The linker may convert it back into the most
  4.9772 ++optimal alternative when the final value of all symbols is known.
  4.9773 ++
  4.9774 ++@cindex @code{CALL symbol} pseudo op, AVR32
  4.9775 ++@item CALL
  4.9776 ++@smallexample
  4.9777 ++        call    @var{symbol}
  4.9778 ++@end smallexample
  4.9779 ++
  4.9780 ++This instruction will insert code to call the subroutine identified by
  4.9781 ++@var{symbol}. It will evaluate to one of the following, depending on
  4.9782 ++the relative distance to the symbol as well as the @code{--linkrelax}
  4.9783 ++and @code{--pic} command-line options.
  4.9784 ++
  4.9785 ++If @var{symbol} is defined in the same section and input file, and the
  4.9786 ++distance is small enough, an @code{rcall} instruction is inserted:
  4.9787 ++@smallexample
  4.9788 ++        rcall   @var{symbol}
  4.9789 ++@end smallexample
  4.9790 ++
  4.9791 ++Otherwise, if the @code{--pic} option has not been specified:
  4.9792 ++@smallexample
  4.9793 ++        mcall   @var{cpent}
  4.9794 ++        ...
  4.9795 ++@var{cpent}:
  4.9796 ++        .long   @var{symbol}
  4.9797 ++@end smallexample
  4.9798 ++
  4.9799 ++Finally, if nothing else fits and the @code{--pic} option has been
  4.9800 ++specified, the assembler will indirect the call through the Global
  4.9801 ++Offset Table:
  4.9802 ++@smallexample
  4.9803 ++        /* If @code{--linkrelax} not specified */
  4.9804 ++        mcall   r6[@var{symbol}@@got]
  4.9805 ++
  4.9806 ++        /* If @code{--linkrelax} specified */
  4.9807 ++        mov     lr, @var{symbol}@@got / 4
  4.9808 ++        ld.w    lr, r6[lr << 2]
  4.9809 ++        icall   lr
  4.9810 ++@end smallexample
  4.9811 ++
  4.9812 ++The linker, after determining the final value of @var{symbol}, may
  4.9813 ++convert any of these into more optimal alternatives. This includes
  4.9814 ++deleting any superfluous constant pool- and GOT-entries.
  4.9815 ++
  4.9816 ++@end table
  4.9817 +--- a/gas/doc/Makefile.am
  4.9818 ++++ b/gas/doc/Makefile.am
  4.9819 +@@ -33,6 +33,7 @@ CPU_DOCS = \
  4.9820 + 	c-arc.texi \
  4.9821 + 	c-arm.texi \
  4.9822 + 	c-avr.texi \
  4.9823 ++    c-avr32.texi \
  4.9824 + 	c-bfin.texi \
  4.9825 + 	c-cr16.texi \
  4.9826 + 	c-d10v.texi \
  4.9827 +--- a/gas/Makefile.am
  4.9828 ++++ b/gas/Makefile.am
  4.9829 +@@ -47,6 +47,7 @@ CPU_TYPES = \
  4.9830 + 	arc \
  4.9831 + 	arm \
  4.9832 + 	avr \
  4.9833 ++	avr32 \
  4.9834 + 	bfin \
  4.9835 + 	cr16 \
  4.9836 + 	cris \
  4.9837 +@@ -241,6 +242,7 @@ TARGET_CPU_CFILES = \
  4.9838 + 	config/tc-arc.c \
  4.9839 + 	config/tc-arm.c \
  4.9840 + 	config/tc-avr.c \
  4.9841 ++	config/tc-avr32.c \
  4.9842 + 	config/tc-bfin.c \
  4.9843 + 	config/tc-cr16.c \
  4.9844 + 	config/tc-cris.c \
  4.9845 +@@ -296,6 +298,7 @@ TARGET_CPU_HFILES = \
  4.9846 + 	config/tc-arc.h \
  4.9847 + 	config/tc-arm.h \
  4.9848 + 	config/tc-avr.h \
  4.9849 ++	config/tc-avr32.h \
  4.9850 + 	config/tc-bfin.h \
  4.9851 + 	config/tc-cr16.h \
  4.9852 + 	config/tc-cris.h \
  4.9853 +@@ -1050,6 +1053,11 @@ DEPTC_avr_elf = $(srcdir)/config/obj-elf
  4.9854 +   $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr.h dwarf2dbg.h \
  4.9855 +   $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
  4.9856 +   $(INCDIR)/opcode/avr.h
  4.9857 ++DEPTC_avr32_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \
  4.9858 ++  $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
  4.9859 ++  $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr32.h \
  4.9860 ++  $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
  4.9861 ++  $(srcdir)/../opcodes/avr32-opc.h $(srcdir)/../opcodes/avr32-asm.h
  4.9862 + DEPTC_bfin_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
  4.9863 +   $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
  4.9864 +   $(INCDIR)/bfdlink.h $(srcdir)/config/tc-bfin.h dwarf2dbg.h \
  4.9865 +@@ -1487,6 +1495,11 @@ DEPOBJ_avr_elf = $(srcdir)/config/obj-el
  4.9866 +   $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr.h dwarf2dbg.h \
  4.9867 +   $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
  4.9868 +   $(INCDIR)/obstack.h struc-symbol.h dwarf2dbg.h $(INCDIR)/aout/aout64.h
  4.9869 ++DEPOBJ_avr32_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \
  4.9870 ++  $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
  4.9871 ++  $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr32.h \
  4.9872 ++  $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
  4.9873 ++  struc-symbol.h dwarf2dbg.h
  4.9874 + DEPOBJ_bfin_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
  4.9875 +   $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
  4.9876 +   $(INCDIR)/bfdlink.h $(srcdir)/config/tc-bfin.h dwarf2dbg.h \
  4.9877 +@@ -1858,6 +1871,9 @@ DEP_cr16_elf = $(srcdir)/config/obj-elf.
  4.9878 +   $(INCDIR)/bfdlink.h $(srcdir)/config/tc-cr16.h dwarf2dbg.h \
  4.9879 +   $(srcdir)/config/obj-coff.h $(INCDIR)/coff/internal.h \
  4.9880 +   $(BFDDIR)/libcoff.h
  4.9881 ++DEP_avr32_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \
  4.9882 ++  $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
  4.9883 ++  $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr32.h
  4.9884 + DEP_cris_aout = $(srcdir)/config/obj-aout.h $(srcdir)/config/tc-cris.h \
  4.9885 +   $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h
  4.9886 + DEP_cris_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
  4.9887 +--- /dev/null
  4.9888 ++++ b/gas/testsuite/gas/avr32/aliases.d
  4.9889 +@@ -0,0 +1,19 @@
  4.9890 ++#as:
  4.9891 ++#objdump: -dr
  4.9892 ++#name: aliases
  4.9893 ++
  4.9894 ++.*: +file format .*
  4.9895 ++
  4.9896 ++Disassembly of section \.text:
  4.9897 ++
  4.9898 ++00000000 <ld_nodisp>:
  4.9899 ++   0:	19 80      [ \t]+ld\.ub r0,r12\[0x0\]
  4.9900 ++   2:	f9 20 00 00[ \t]+ld\.sb r0,r12\[0\]
  4.9901 ++   6:	98 80      [ \t]+ld\.uh r0,r12\[0x0\]
  4.9902 ++   8:	98 00      [ \t]+ld\.sh r0,r12\[0x0\]
  4.9903 ++   a:	78 00      [ \t]+ld\.w r0,r12\[0x0\]
  4.9904 ++
  4.9905 ++0000000c <st_nodisp>:
  4.9906 ++   c:	b8 80      [ \t]+st\.b r12\[0x0\],r0
  4.9907 ++   e:	b8 00      [ \t]+st\.h r12\[0x0\],r0
  4.9908 ++  10:	99 00      [ \t]+st\.w r12\[0x0\],r0
  4.9909 +--- /dev/null
  4.9910 ++++ b/gas/testsuite/gas/avr32/aliases.s
  4.9911 +@@ -0,0 +1,14 @@
  4.9912 ++	.text
  4.9913 ++	.global	ld_nodisp
  4.9914 ++ld_nodisp:
  4.9915 ++	ld.ub	r0, r12
  4.9916 ++	ld.sb	r0, r12
  4.9917 ++	ld.uh	r0, r12
  4.9918 ++	ld.sh	r0, r12
  4.9919 ++	ld.w	r0, r12
  4.9920 ++
  4.9921 ++	.global st_nodisp
  4.9922 ++st_nodisp:
  4.9923 ++	st.b	r12, r0
  4.9924 ++	st.h	r12, r0
  4.9925 ++	st.w	r12, r0
  4.9926 +--- /dev/null
  4.9927 ++++ b/gas/testsuite/gas/avr32/allinsn.d
  4.9928 +@@ -0,0 +1,2987 @@
  4.9929 ++#as:
  4.9930 ++#objdump: -dr
  4.9931 ++#name: allinsn
  4.9932 ++
  4.9933 ++.*: +file format .*
  4.9934 ++
  4.9935 ++Disassembly of section \.text:
  4.9936 ++
  4.9937 ++[0-9a-f]* <ld_d5>:
  4.9938 ++ *[0-9a-f]*:	fe 0f 02 3e 	ld\.d lr,pc\[pc<<0x3\]
  4.9939 ++ *[0-9a-f]*:	e0 00 02 00 	ld\.d r0,r0\[r0\]
  4.9940 ++ *[0-9a-f]*:	ea 05 02 26 	ld\.d r6,r5\[r5<<0x2\]
  4.9941 ++ *[0-9a-f]*:	e8 04 02 14 	ld\.d r4,r4\[r4<<0x1\]
  4.9942 ++ *[0-9a-f]*:	fc 0e 02 1e 	ld\.d lr,lr\[lr<<0x1\]
  4.9943 ++ *[0-9a-f]*:	e6 0d 02 2a 	ld\.d r10,r3\[sp<<0x2\]
  4.9944 ++ *[0-9a-f]*:	f4 06 02 28 	ld\.d r8,r10\[r6<<0x2\]
  4.9945 ++ *[0-9a-f]*:	ee 09 02 02 	ld\.d r2,r7\[r9\]
  4.9946 ++
  4.9947 ++[0-9a-f]* <ld_w5>:
  4.9948 ++ *[0-9a-f]*:	fe 0f 03 0f 	ld\.w pc,pc\[pc\]
  4.9949 ++ *[0-9a-f]*:	f8 0c 03 3c 	ld\.w r12,r12\[r12<<0x3\]
  4.9950 ++ *[0-9a-f]*:	ea 05 03 25 	ld\.w r5,r5\[r5<<0x2\]
  4.9951 ++ *[0-9a-f]*:	e8 04 03 14 	ld\.w r4,r4\[r4<<0x1\]
  4.9952 ++ *[0-9a-f]*:	fc 0e 03 1e 	ld\.w lr,lr\[lr<<0x1\]
  4.9953 ++ *[0-9a-f]*:	f2 09 03 02 	ld\.w r2,r9\[r9\]
  4.9954 ++ *[0-9a-f]*:	e4 06 03 0b 	ld\.w r11,r2\[r6\]
  4.9955 ++ *[0-9a-f]*:	e4 0d 03 30 	ld\.w r0,r2\[sp<<0x3\]
  4.9956 ++
  4.9957 ++[0-9a-f]* <ld_sh5>:
  4.9958 ++ *[0-9a-f]*:	fe 0f 04 0f 	ld\.sh pc,pc\[pc\]
  4.9959 ++ *[0-9a-f]*:	f8 0c 04 3c 	ld\.sh r12,r12\[r12<<0x3\]
  4.9960 ++ *[0-9a-f]*:	ea 05 04 25 	ld\.sh r5,r5\[r5<<0x2\]
  4.9961 ++ *[0-9a-f]*:	e8 04 04 14 	ld\.sh r4,r4\[r4<<0x1\]
  4.9962 ++ *[0-9a-f]*:	fc 0e 04 1e 	ld\.sh lr,lr\[lr<<0x1\]
  4.9963 ++ *[0-9a-f]*:	e0 0f 04 2b 	ld\.sh r11,r0\[pc<<0x2\]
  4.9964 ++ *[0-9a-f]*:	fa 06 04 2a 	ld\.sh r10,sp\[r6<<0x2\]
  4.9965 ++ *[0-9a-f]*:	e4 02 04 0c 	ld\.sh r12,r2\[r2\]
  4.9966 ++
  4.9967 ++[0-9a-f]* <ld_uh5>:
  4.9968 ++ *[0-9a-f]*:	fe 0f 05 0f 	ld\.uh pc,pc\[pc\]
  4.9969 ++ *[0-9a-f]*:	f8 0c 05 3c 	ld\.uh r12,r12\[r12<<0x3\]
  4.9970 ++ *[0-9a-f]*:	ea 05 05 25 	ld\.uh r5,r5\[r5<<0x2\]
  4.9971 ++ *[0-9a-f]*:	e8 04 05 14 	ld\.uh r4,r4\[r4<<0x1\]
  4.9972 ++ *[0-9a-f]*:	fc 0e 05 1e 	ld\.uh lr,lr\[lr<<0x1\]
  4.9973 ++ *[0-9a-f]*:	fe 0e 05 38 	ld\.uh r8,pc\[lr<<0x3\]
  4.9974 ++ *[0-9a-f]*:	e2 0f 05 16 	ld\.uh r6,r1\[pc<<0x1\]
  4.9975 ++ *[0-9a-f]*:	fc 0d 05 16 	ld\.uh r6,lr\[sp<<0x1\]
  4.9976 ++
  4.9977 ++[0-9a-f]* <ld_sb2>:
  4.9978 ++ *[0-9a-f]*:	fe 0f 06 0f 	ld\.sb pc,pc\[pc\]
  4.9979 ++ *[0-9a-f]*:	f8 0c 06 3c 	ld\.sb r12,r12\[r12<<0x3\]
  4.9980 ++ *[0-9a-f]*:	ea 05 06 25 	ld\.sb r5,r5\[r5<<0x2\]
  4.9981 ++ *[0-9a-f]*:	e8 04 06 14 	ld\.sb r4,r4\[r4<<0x1\]
  4.9982 ++ *[0-9a-f]*:	fc 0e 06 1e 	ld\.sb lr,lr\[lr<<0x1\]
  4.9983 ++ *[0-9a-f]*:	e2 0f 06 39 	ld\.sb r9,r1\[pc<<0x3\]
  4.9984 ++ *[0-9a-f]*:	e6 0b 06 10 	ld\.sb r0,r3\[r11<<0x1\]
  4.9985 ++ *[0-9a-f]*:	ea 05 06 1a 	ld\.sb r10,r5\[r5<<0x1\]
  4.9986 ++
  4.9987 ++[0-9a-f]* <ld_ub5>:
  4.9988 ++ *[0-9a-f]*:	fe 0f 07 0f 	ld\.ub pc,pc\[pc\]
  4.9989 ++ *[0-9a-f]*:	f8 0c 07 3c 	ld\.ub r12,r12\[r12<<0x3\]
  4.9990 ++ *[0-9a-f]*:	ea 05 07 25 	ld\.ub r5,r5\[r5<<0x2\]
  4.9991 ++ *[0-9a-f]*:	e8 04 07 14 	ld\.ub r4,r4\[r4<<0x1\]
  4.9992 ++ *[0-9a-f]*:	fc 0e 07 1e 	ld\.ub lr,lr\[lr<<0x1\]
  4.9993 ++ *[0-9a-f]*:	f8 07 07 36 	ld\.ub r6,r12\[r7<<0x3\]
  4.9994 ++ *[0-9a-f]*:	ec 0c 07 02 	ld\.ub r2,r6\[r12\]
  4.9995 ++ *[0-9a-f]*:	ee 0b 07 10 	ld\.ub r0,r7\[r11<<0x1\]
  4.9996 ++
  4.9997 ++[0-9a-f]* <st_d5>:
  4.9998 ++ *[0-9a-f]*:	fe 0f 08 0e 	st\.d pc\[pc\],lr
  4.9999 ++ *[0-9a-f]*:	f8 0c 08 3c 	st\.d r12\[r12<<0x3\],r12
 4.10000 ++ *[0-9a-f]*:	ea 05 08 26 	st\.d r5\[r5<<0x2\],r6
 4.10001 ++ *[0-9a-f]*:	e8 04 08 14 	st\.d r4\[r4<<0x1\],r4
 4.10002 ++ *[0-9a-f]*:	fc 0e 08 1e 	st\.d lr\[lr<<0x1\],lr
 4.10003 ++ *[0-9a-f]*:	e2 09 08 14 	st\.d r1\[r9<<0x1\],r4
 4.10004 ++ *[0-9a-f]*:	f4 02 08 14 	st\.d r10\[r2<<0x1\],r4
 4.10005 ++ *[0-9a-f]*:	f8 06 08 0e 	st\.d r12\[r6\],lr
 4.10006 ++
 4.10007 ++[0-9a-f]* <st_w5>:
 4.10008 ++ *[0-9a-f]*:	fe 0f 09 0f 	st\.w pc\[pc\],pc
 4.10009 ++ *[0-9a-f]*:	f8 0c 09 3c 	st\.w r12\[r12<<0x3\],r12
 4.10010 ++ *[0-9a-f]*:	ea 05 09 25 	st\.w r5\[r5<<0x2\],r5
 4.10011 ++ *[0-9a-f]*:	e8 04 09 14 	st\.w r4\[r4<<0x1\],r4
 4.10012 ++ *[0-9a-f]*:	fc 0e 09 1e 	st\.w lr\[lr<<0x1\],lr
 4.10013 ++ *[0-9a-f]*:	e2 0a 09 03 	st\.w r1\[r10\],r3
 4.10014 ++ *[0-9a-f]*:	e0 0a 09 19 	st\.w r0\[r10<<0x1\],r9
 4.10015 ++ *[0-9a-f]*:	e8 05 09 3f 	st\.w r4\[r5<<0x3\],pc
 4.10016 ++
 4.10017 ++[0-9a-f]* <st_h5>:
 4.10018 ++ *[0-9a-f]*:	fe 0f 0a 0f 	st\.h pc\[pc\],pc
 4.10019 ++ *[0-9a-f]*:	f8 0c 0a 3c 	st\.h r12\[r12<<0x3\],r12
 4.10020 ++ *[0-9a-f]*:	ea 05 0a 25 	st\.h r5\[r5<<0x2\],r5
 4.10021 ++ *[0-9a-f]*:	e8 04 0a 14 	st\.h r4\[r4<<0x1\],r4
 4.10022 ++ *[0-9a-f]*:	fc 0e 0a 1e 	st\.h lr\[lr<<0x1\],lr
 4.10023 ++ *[0-9a-f]*:	e4 09 0a 0b 	st\.h r2\[r9\],r11
 4.10024 ++ *[0-9a-f]*:	ea 01 0a 2c 	st\.h r5\[r1<<0x2\],r12
 4.10025 ++ *[0-9a-f]*:	fe 08 0a 23 	st\.h pc\[r8<<0x2\],r3
 4.10026 ++
 4.10027 ++[0-9a-f]* <st_b5>:
 4.10028 ++ *[0-9a-f]*:	fe 0f 0b 0f 	st\.b pc\[pc\],pc
 4.10029 ++ *[0-9a-f]*:	f8 0c 0b 3c 	st\.b r12\[r12<<0x3\],r12
 4.10030 ++ *[0-9a-f]*:	ea 05 0b 25 	st\.b r5\[r5<<0x2\],r5
 4.10031 ++ *[0-9a-f]*:	e8 04 0b 14 	st\.b r4\[r4<<0x1\],r4
 4.10032 ++ *[0-9a-f]*:	fc 0e 0b 1e 	st\.b lr\[lr<<0x1\],lr
 4.10033 ++ *[0-9a-f]*:	e2 08 0b 16 	st\.b r1\[r8<<0x1\],r6
 4.10034 ++ *[0-9a-f]*:	fc 0e 0b 31 	st\.b lr\[lr<<0x3\],r1
 4.10035 ++ *[0-9a-f]*:	ea 00 0b 2f 	st\.b r5\[r0<<0x2\],pc
 4.10036 ++
 4.10037 ++[0-9a-f]* <divs>:
 4.10038 ++ *[0-9a-f]*:	fe 0f 0c 0f 	divs pc,pc,pc
 4.10039 ++ *[0-9a-f]*:	f8 0c 0c 0c 	divs r12,r12,r12
 4.10040 ++ *[0-9a-f]*:	ea 05 0c 05 	divs r5,r5,r5
 4.10041 ++ *[0-9a-f]*:	e8 04 0c 04 	divs r4,r4,r4
 4.10042 ++ *[0-9a-f]*:	fc 0e 0c 0e 	divs lr,lr,lr
 4.10043 ++ *[0-9a-f]*:	fe 0f 0c 03 	divs r3,pc,pc
 4.10044 ++ *[0-9a-f]*:	f8 02 0c 09 	divs r9,r12,r2
 4.10045 ++ *[0-9a-f]*:	e8 01 0c 07 	divs r7,r4,r1
 4.10046 ++
 4.10047 ++[0-9a-f]* <add1>:
 4.10048 ++ *[0-9a-f]*:	1e 0f       	add pc,pc
 4.10049 ++ *[0-9a-f]*:	18 0c       	add r12,r12
 4.10050 ++ *[0-9a-f]*:	0a 05       	add r5,r5
 4.10051 ++ *[0-9a-f]*:	08 04       	add r4,r4
 4.10052 ++ *[0-9a-f]*:	1c 0e       	add lr,lr
 4.10053 ++ *[0-9a-f]*:	12 0c       	add r12,r9
 4.10054 ++ *[0-9a-f]*:	06 06       	add r6,r3
 4.10055 ++ *[0-9a-f]*:	18 0a       	add r10,r12
 4.10056 ++
 4.10057 ++[0-9a-f]* <sub1>:
 4.10058 ++ *[0-9a-f]*:	1e 1f       	sub pc,pc
 4.10059 ++ *[0-9a-f]*:	18 1c       	sub r12,r12
 4.10060 ++ *[0-9a-f]*:	0a 15       	sub r5,r5
 4.10061 ++ *[0-9a-f]*:	08 14       	sub r4,r4
 4.10062 ++ *[0-9a-f]*:	1c 1e       	sub lr,lr
 4.10063 ++ *[0-9a-f]*:	0c 1e       	sub lr,r6
 4.10064 ++ *[0-9a-f]*:	1a 10       	sub r0,sp
 4.10065 ++ *[0-9a-f]*:	18 16       	sub r6,r12
 4.10066 ++
 4.10067 ++[0-9a-f]* <rsub1>:
 4.10068 ++ *[0-9a-f]*:	1e 2f       	rsub pc,pc
 4.10069 ++ *[0-9a-f]*:	18 2c       	rsub r12,r12
 4.10070 ++ *[0-9a-f]*:	0a 25       	rsub r5,r5
 4.10071 ++ *[0-9a-f]*:	08 24       	rsub r4,r4
 4.10072 ++ *[0-9a-f]*:	1c 2e       	rsub lr,lr
 4.10073 ++ *[0-9a-f]*:	1a 2b       	rsub r11,sp
 4.10074 ++ *[0-9a-f]*:	08 27       	rsub r7,r4
 4.10075 ++ *[0-9a-f]*:	02 29       	rsub r9,r1
 4.10076 ++
 4.10077 ++[0-9a-f]* <cp1>:
 4.10078 ++ *[0-9a-f]*:	1e 3f       	cp\.w pc,pc
 4.10079 ++ *[0-9a-f]*:	18 3c       	cp\.w r12,r12
 4.10080 ++ *[0-9a-f]*:	0a 35       	cp\.w r5,r5
 4.10081 ++ *[0-9a-f]*:	08 34       	cp\.w r4,r4
 4.10082 ++ *[0-9a-f]*:	1c 3e       	cp\.w lr,lr
 4.10083 ++ *[0-9a-f]*:	04 36       	cp\.w r6,r2
 4.10084 ++ *[0-9a-f]*:	12 30       	cp\.w r0,r9
 4.10085 ++ *[0-9a-f]*:	1a 33       	cp\.w r3,sp
 4.10086 ++
 4.10087 ++[0-9a-f]* <or1>:
 4.10088 ++ *[0-9a-f]*:	1e 4f       	or pc,pc
 4.10089 ++ *[0-9a-f]*:	18 4c       	or r12,r12
 4.10090 ++ *[0-9a-f]*:	0a 45       	or r5,r5
 4.10091 ++ *[0-9a-f]*:	08 44       	or r4,r4
 4.10092 ++ *[0-9a-f]*:	1c 4e       	or lr,lr
 4.10093 ++ *[0-9a-f]*:	12 44       	or r4,r9
 4.10094 ++ *[0-9a-f]*:	08 4b       	or r11,r4
 4.10095 ++ *[0-9a-f]*:	00 44       	or r4,r0
 4.10096 ++
 4.10097 ++[0-9a-f]* <eor1>:
 4.10098 ++ *[0-9a-f]*:	1e 5f       	eor pc,pc
 4.10099 ++ *[0-9a-f]*:	18 5c       	eor r12,r12
 4.10100 ++ *[0-9a-f]*:	0a 55       	eor r5,r5
 4.10101 ++ *[0-9a-f]*:	08 54       	eor r4,r4
 4.10102 ++ *[0-9a-f]*:	1c 5e       	eor lr,lr
 4.10103 ++ *[0-9a-f]*:	16 5c       	eor r12,r11
 4.10104 ++ *[0-9a-f]*:	02 50       	eor r0,r1
 4.10105 ++ *[0-9a-f]*:	1e 55       	eor r5,pc
 4.10106 ++
 4.10107 ++[0-9a-f]* <and1>:
 4.10108 ++ *[0-9a-f]*:	1e 6f       	and pc,pc
 4.10109 ++ *[0-9a-f]*:	18 6c       	and r12,r12
 4.10110 ++ *[0-9a-f]*:	0a 65       	and r5,r5
 4.10111 ++ *[0-9a-f]*:	08 64       	and r4,r4
 4.10112 ++ *[0-9a-f]*:	1c 6e       	and lr,lr
 4.10113 ++ *[0-9a-f]*:	02 68       	and r8,r1
 4.10114 ++ *[0-9a-f]*:	1a 60       	and r0,sp
 4.10115 ++ *[0-9a-f]*:	0a 6a       	and r10,r5
 4.10116 ++
 4.10117 ++[0-9a-f]* <tst>:
 4.10118 ++ *[0-9a-f]*:	1e 7f       	tst pc,pc
 4.10119 ++ *[0-9a-f]*:	18 7c       	tst r12,r12
 4.10120 ++ *[0-9a-f]*:	0a 75       	tst r5,r5
 4.10121 ++ *[0-9a-f]*:	08 74       	tst r4,r4
 4.10122 ++ *[0-9a-f]*:	1c 7e       	tst lr,lr
 4.10123 ++ *[0-9a-f]*:	18 70       	tst r0,r12
 4.10124 ++ *[0-9a-f]*:	0c 7a       	tst r10,r6
 4.10125 ++ *[0-9a-f]*:	08 7d       	tst sp,r4
 4.10126 ++
 4.10127 ++[0-9a-f]* <andn>:
 4.10128 ++ *[0-9a-f]*:	1e 8f       	andn pc,pc
 4.10129 ++ *[0-9a-f]*:	18 8c       	andn r12,r12
 4.10130 ++ *[0-9a-f]*:	0a 85       	andn r5,r5
 4.10131 ++ *[0-9a-f]*:	08 84       	andn r4,r4
 4.10132 ++ *[0-9a-f]*:	1c 8e       	andn lr,lr
 4.10133 ++ *[0-9a-f]*:	18 89       	andn r9,r12
 4.10134 ++ *[0-9a-f]*:	1a 8b       	andn r11,sp
 4.10135 ++ *[0-9a-f]*:	0a 8c       	andn r12,r5
 4.10136 ++
 4.10137 ++[0-9a-f]* <mov3>:
 4.10138 ++ *[0-9a-f]*:	1e 9f       	mov pc,pc
 4.10139 ++ *[0-9a-f]*:	18 9c       	mov r12,r12
 4.10140 ++ *[0-9a-f]*:	0a 95       	mov r5,r5
 4.10141 ++ *[0-9a-f]*:	08 94       	mov r4,r4
 4.10142 ++ *[0-9a-f]*:	1c 9e       	mov lr,lr
 4.10143 ++ *[0-9a-f]*:	12 95       	mov r5,r9
 4.10144 ++ *[0-9a-f]*:	16 9b       	mov r11,r11
 4.10145 ++ *[0-9a-f]*:	1c 92       	mov r2,lr
 4.10146 ++
 4.10147 ++[0-9a-f]* <st_w1>:
 4.10148 ++ *[0-9a-f]*:	1e af       	st\.w pc\+\+,pc
 4.10149 ++ *[0-9a-f]*:	18 ac       	st\.w r12\+\+,r12
 4.10150 ++ *[0-9a-f]*:	0a a5       	st\.w r5\+\+,r5
 4.10151 ++ *[0-9a-f]*:	08 a4       	st\.w r4\+\+,r4
 4.10152 ++ *[0-9a-f]*:	1c ae       	st\.w lr\+\+,lr
 4.10153 ++ *[0-9a-f]*:	02 ab       	st\.w r1\+\+,r11
 4.10154 ++ *[0-9a-f]*:	1a a0       	st\.w sp\+\+,r0
 4.10155 ++ *[0-9a-f]*:	1a a1       	st\.w sp\+\+,r1
 4.10156 ++
 4.10157 ++[0-9a-f]* <st_h1>:
 4.10158 ++ *[0-9a-f]*:	1e bf       	st\.h pc\+\+,pc
 4.10159 ++ *[0-9a-f]*:	18 bc       	st\.h r12\+\+,r12
 4.10160 ++ *[0-9a-f]*:	0a b5       	st\.h r5\+\+,r5
 4.10161 ++ *[0-9a-f]*:	08 b4       	st\.h r4\+\+,r4
 4.10162 ++ *[0-9a-f]*:	1c be       	st\.h lr\+\+,lr
 4.10163 ++ *[0-9a-f]*:	18 bd       	st\.h r12\+\+,sp
 4.10164 ++ *[0-9a-f]*:	0e be       	st\.h r7\+\+,lr
 4.10165 ++ *[0-9a-f]*:	0e b4       	st\.h r7\+\+,r4
 4.10166 ++
 4.10167 ++[0-9a-f]* <st_b1>:
 4.10168 ++ *[0-9a-f]*:	1e cf       	st\.b pc\+\+,pc
 4.10169 ++ *[0-9a-f]*:	18 cc       	st\.b r12\+\+,r12
 4.10170 ++ *[0-9a-f]*:	0a c5       	st\.b r5\+\+,r5
 4.10171 ++ *[0-9a-f]*:	08 c4       	st\.b r4\+\+,r4
 4.10172 ++ *[0-9a-f]*:	1c ce       	st\.b lr\+\+,lr
 4.10173 ++ *[0-9a-f]*:	12 cd       	st\.b r9\+\+,sp
 4.10174 ++ *[0-9a-f]*:	02 cd       	st\.b r1\+\+,sp
 4.10175 ++ *[0-9a-f]*:	00 c4       	st\.b r0\+\+,r4
 4.10176 ++
 4.10177 ++[0-9a-f]* <st_w2>:
 4.10178 ++ *[0-9a-f]*:	1e df       	st\.w --pc,pc
 4.10179 ++ *[0-9a-f]*:	18 dc       	st\.w --r12,r12
 4.10180 ++ *[0-9a-f]*:	0a d5       	st\.w --r5,r5
 4.10181 ++ *[0-9a-f]*:	08 d4       	st\.w --r4,r4
 4.10182 ++ *[0-9a-f]*:	1c de       	st\.w --lr,lr
 4.10183 ++ *[0-9a-f]*:	02 d7       	st\.w --r1,r7
 4.10184 ++ *[0-9a-f]*:	06 d9       	st\.w --r3,r9
 4.10185 ++ *[0-9a-f]*:	0a d5       	st\.w --r5,r5
 4.10186 ++
 4.10187 ++[0-9a-f]* <st_h2>:
 4.10188 ++ *[0-9a-f]*:	1e ef       	st\.h --pc,pc
 4.10189 ++ *[0-9a-f]*:	18 ec       	st\.h --r12,r12
 4.10190 ++ *[0-9a-f]*:	0a e5       	st\.h --r5,r5
 4.10191 ++ *[0-9a-f]*:	08 e4       	st\.h --r4,r4
 4.10192 ++ *[0-9a-f]*:	1c ee       	st\.h --lr,lr
 4.10193 ++ *[0-9a-f]*:	0a e7       	st\.h --r5,r7
 4.10194 ++ *[0-9a-f]*:	10 e8       	st\.h --r8,r8
 4.10195 ++ *[0-9a-f]*:	0e e2       	st\.h --r7,r2
 4.10196 ++
 4.10197 ++[0-9a-f]* <st_b2>:
 4.10198 ++ *[0-9a-f]*:	1e ff       	st\.b --pc,pc
 4.10199 ++ *[0-9a-f]*:	18 fc       	st\.b --r12,r12
 4.10200 ++ *[0-9a-f]*:	0a f5       	st\.b --r5,r5
 4.10201 ++ *[0-9a-f]*:	08 f4       	st\.b --r4,r4
 4.10202 ++ *[0-9a-f]*:	1c fe       	st\.b --lr,lr
 4.10203 ++ *[0-9a-f]*:	1a fd       	st\.b --sp,sp
 4.10204 ++ *[0-9a-f]*:	1a fb       	st\.b --sp,r11
 4.10205 ++ *[0-9a-f]*:	08 f5       	st\.b --r4,r5
 4.10206 ++
 4.10207 ++[0-9a-f]* <ld_w1>:
 4.10208 ++ *[0-9a-f]*:	1f 0f       	ld\.w pc,pc\+\+
 4.10209 ++ *[0-9a-f]*:	19 0c       	ld\.w r12,r12\+\+
 4.10210 ++ *[0-9a-f]*:	0b 05       	ld\.w r5,r5\+\+
 4.10211 ++ *[0-9a-f]*:	09 04       	ld\.w r4,r4\+\+
 4.10212 ++ *[0-9a-f]*:	1d 0e       	ld\.w lr,lr\+\+
 4.10213 ++ *[0-9a-f]*:	0f 03       	ld\.w r3,r7\+\+
 4.10214 ++ *[0-9a-f]*:	1d 03       	ld\.w r3,lr\+\+
 4.10215 ++ *[0-9a-f]*:	0b 0c       	ld\.w r12,r5\+\+
 4.10216 ++
 4.10217 ++[0-9a-f]* <ld_sh1>:
 4.10218 ++ *[0-9a-f]*:	1f 1f       	ld\.sh pc,pc\+\+
 4.10219 ++ *[0-9a-f]*:	19 1c       	ld\.sh r12,r12\+\+
 4.10220 ++ *[0-9a-f]*:	0b 15       	ld\.sh r5,r5\+\+
 4.10221 ++ *[0-9a-f]*:	09 14       	ld\.sh r4,r4\+\+
 4.10222 ++ *[0-9a-f]*:	1d 1e       	ld\.sh lr,lr\+\+
 4.10223 ++ *[0-9a-f]*:	05 1b       	ld\.sh r11,r2\+\+
 4.10224 ++ *[0-9a-f]*:	11 12       	ld\.sh r2,r8\+\+
 4.10225 ++ *[0-9a-f]*:	0d 17       	ld\.sh r7,r6\+\+
 4.10226 ++
 4.10227 ++[0-9a-f]* <ld_uh1>:
 4.10228 ++ *[0-9a-f]*:	1f 2f       	ld\.uh pc,pc\+\+
 4.10229 ++ *[0-9a-f]*:	19 2c       	ld\.uh r12,r12\+\+
 4.10230 ++ *[0-9a-f]*:	0b 25       	ld\.uh r5,r5\+\+
 4.10231 ++ *[0-9a-f]*:	09 24       	ld\.uh r4,r4\+\+
 4.10232 ++ *[0-9a-f]*:	1d 2e       	ld\.uh lr,lr\+\+
 4.10233 ++ *[0-9a-f]*:	0f 26       	ld\.uh r6,r7\+\+
 4.10234 ++ *[0-9a-f]*:	17 2a       	ld\.uh r10,r11\+\+
 4.10235 ++ *[0-9a-f]*:	09 2e       	ld\.uh lr,r4\+\+
 4.10236 ++
 4.10237 ++[0-9a-f]* <ld_ub1>:
 4.10238 ++ *[0-9a-f]*:	1f 3f       	ld\.ub pc,pc\+\+
 4.10239 ++ *[0-9a-f]*:	19 3c       	ld\.ub r12,r12\+\+
 4.10240 ++ *[0-9a-f]*:	0b 35       	ld\.ub r5,r5\+\+
 4.10241 ++ *[0-9a-f]*:	09 34       	ld\.ub r4,r4\+\+
 4.10242 ++ *[0-9a-f]*:	1d 3e       	ld\.ub lr,lr\+\+
 4.10243 ++ *[0-9a-f]*:	1d 38       	ld\.ub r8,lr\+\+
 4.10244 ++ *[0-9a-f]*:	19 3c       	ld\.ub r12,r12\+\+
 4.10245 ++ *[0-9a-f]*:	15 3b       	ld\.ub r11,r10\+\+
 4.10246 ++
 4.10247 ++[0-9a-f]* <ld_w2>:
 4.10248 ++ *[0-9a-f]*:	1f 4f       	ld\.w pc,--pc
 4.10249 ++ *[0-9a-f]*:	19 4c       	ld\.w r12,--r12
 4.10250 ++ *[0-9a-f]*:	0b 45       	ld\.w r5,--r5
 4.10251 ++ *[0-9a-f]*:	09 44       	ld\.w r4,--r4
 4.10252 ++ *[0-9a-f]*:	1d 4e       	ld\.w lr,--lr
 4.10253 ++ *[0-9a-f]*:	1d 4a       	ld\.w r10,--lr
 4.10254 ++ *[0-9a-f]*:	13 4c       	ld\.w r12,--r9
 4.10255 ++ *[0-9a-f]*:	0b 46       	ld\.w r6,--r5
 4.10256 ++
 4.10257 ++[0-9a-f]* <ld_sh2>:
 4.10258 ++ *[0-9a-f]*:	1f 5f       	ld\.sh pc,--pc
 4.10259 ++ *[0-9a-f]*:	19 5c       	ld\.sh r12,--r12
 4.10260 ++ *[0-9a-f]*:	0b 55       	ld\.sh r5,--r5
 4.10261 ++ *[0-9a-f]*:	09 54       	ld\.sh r4,--r4
 4.10262 ++ *[0-9a-f]*:	1d 5e       	ld\.sh lr,--lr
 4.10263 ++ *[0-9a-f]*:	15 5f       	ld\.sh pc,--r10
 4.10264 ++ *[0-9a-f]*:	07 56       	ld\.sh r6,--r3
 4.10265 ++ *[0-9a-f]*:	0d 54       	ld\.sh r4,--r6
 4.10266 ++
 4.10267 ++[0-9a-f]* <ld_uh2>:
 4.10268 ++ *[0-9a-f]*:	1f 6f       	ld\.uh pc,--pc
 4.10269 ++ *[0-9a-f]*:	19 6c       	ld\.uh r12,--r12
 4.10270 ++ *[0-9a-f]*:	0b 65       	ld\.uh r5,--r5
 4.10271 ++ *[0-9a-f]*:	09 64       	ld\.uh r4,--r4
 4.10272 ++ *[0-9a-f]*:	1d 6e       	ld\.uh lr,--lr
 4.10273 ++ *[0-9a-f]*:	05 63       	ld\.uh r3,--r2
 4.10274 ++ *[0-9a-f]*:	01 61       	ld\.uh r1,--r0
 4.10275 ++ *[0-9a-f]*:	13 62       	ld\.uh r2,--r9
 4.10276 ++
 4.10277 ++[0-9a-f]* <ld_ub2>:
 4.10278 ++ *[0-9a-f]*:	1f 7f       	ld\.ub pc,--pc
 4.10279 ++ *[0-9a-f]*:	19 7c       	ld\.ub r12,--r12
 4.10280 ++ *[0-9a-f]*:	0b 75       	ld\.ub r5,--r5
 4.10281 ++ *[0-9a-f]*:	09 74       	ld\.ub r4,--r4
 4.10282 ++ *[0-9a-f]*:	1d 7e       	ld\.ub lr,--lr
 4.10283 ++ *[0-9a-f]*:	03 71       	ld\.ub r1,--r1
 4.10284 ++ *[0-9a-f]*:	0d 70       	ld\.ub r0,--r6
 4.10285 ++ *[0-9a-f]*:	0f 72       	ld\.ub r2,--r7
 4.10286 ++
 4.10287 ++[0-9a-f]* <ld_ub3>:
 4.10288 ++ *[0-9a-f]*:	1f 8f       	ld\.ub pc,pc\[0x0\]
 4.10289 ++ *[0-9a-f]*:	19 fc       	ld\.ub r12,r12\[0x7\]
 4.10290 ++ *[0-9a-f]*:	0b c5       	ld\.ub r5,r5\[0x4\]
 4.10291 ++ *[0-9a-f]*:	09 b4       	ld\.ub r4,r4\[0x3\]
 4.10292 ++ *[0-9a-f]*:	1d 9e       	ld\.ub lr,lr\[0x1\]
 4.10293 ++ *[0-9a-f]*:	13 e6       	ld\.ub r6,r9\[0x6\]
 4.10294 ++ *[0-9a-f]*:	1d c2       	ld\.ub r2,lr\[0x4\]
 4.10295 ++ *[0-9a-f]*:	11 81       	ld\.ub r1,r8\[0x0\]
 4.10296 ++
 4.10297 ++[0-9a-f]* <sub3_sp>:
 4.10298 ++ *[0-9a-f]*:	20 0d       	sub sp,0
 4.10299 ++ *[0-9a-f]*:	2f fd       	sub sp,-4
 4.10300 ++ *[0-9a-f]*:	28 0d       	sub sp,-512
 4.10301 ++ *[0-9a-f]*:	27 fd       	sub sp,508
 4.10302 ++ *[0-9a-f]*:	20 1d       	sub sp,4
 4.10303 ++ *[0-9a-f]*:	20 bd       	sub sp,44
 4.10304 ++ *[0-9a-f]*:	20 2d       	sub sp,8
 4.10305 ++ *[0-9a-f]*:	25 7d       	sub sp,348
 4.10306 ++
 4.10307 ++[0-9a-f]* <sub3>:
 4.10308 ++ *[0-9a-f]*:	20 0f       	sub pc,0
 4.10309 ++ *[0-9a-f]*:	2f fc       	sub r12,-1
 4.10310 ++ *[0-9a-f]*:	28 05       	sub r5,-128
 4.10311 ++ *[0-9a-f]*:	27 f4       	sub r4,127
 4.10312 ++ *[0-9a-f]*:	20 1e       	sub lr,1
 4.10313 ++ *[0-9a-f]*:	2d 76       	sub r6,-41
 4.10314 ++ *[0-9a-f]*:	22 54       	sub r4,37
 4.10315 ++ *[0-9a-f]*:	23 8c       	sub r12,56
 4.10316 ++
 4.10317 ++[0-9a-f]* <mov1>:
 4.10318 ++ *[0-9a-f]*:	30 0f       	mov pc,0
 4.10319 ++ *[0-9a-f]*:	3f fc       	mov r12,-1
 4.10320 ++ *[0-9a-f]*:	38 05       	mov r5,-128
 4.10321 ++ *[0-9a-f]*:	37 f4       	mov r4,127
 4.10322 ++ *[0-9a-f]*:	30 1e       	mov lr,1
 4.10323 ++ *[0-9a-f]*:	30 ef       	mov pc,14
 4.10324 ++ *[0-9a-f]*:	39 c6       	mov r6,-100
 4.10325 ++ *[0-9a-f]*:	38 6e       	mov lr,-122
 4.10326 ++
 4.10327 ++[0-9a-f]* <lddsp>:
 4.10328 ++ *[0-9a-f]*:	40 0f       	lddsp pc,sp\[0x0\]
 4.10329 ++ *[0-9a-f]*:	47 fc       	lddsp r12,sp\[0x1fc\]
 4.10330 ++ *[0-9a-f]*:	44 05       	lddsp r5,sp\[0x100\]
 4.10331 ++ *[0-9a-f]*:	43 f4       	lddsp r4,sp\[0xfc\]
 4.10332 ++ *[0-9a-f]*:	40 1e       	lddsp lr,sp\[0x4\]
 4.10333 ++ *[0-9a-f]*:	44 0e       	lddsp lr,sp\[0x100\]
 4.10334 ++ *[0-9a-f]*:	40 5c       	lddsp r12,sp\[0x14\]
 4.10335 ++ *[0-9a-f]*:	47 69       	lddsp r9,sp\[0x1d8\]
 4.10336 ++
 4.10337 ++[0-9a-f]* <lddpc>:
 4.10338 ++ *[0-9a-f]*:	48 0f       	lddpc pc,[0-9a-f]* <.*>
 4.10339 ++ *[0-9a-f]*:	4f f0       	lddpc r0,[0-9a-f]* <.*>
 4.10340 ++ *[0-9a-f]*:	4c 08       	lddpc r8,[0-9a-f]* <.*>
 4.10341 ++ *[0-9a-f]*:	4b f7       	lddpc r7,[0-9a-f]* <.*>
 4.10342 ++ *[0-9a-f]*:	48 1e       	lddpc lr,[0-9a-f]* <.*>
 4.10343 ++ *[0-9a-f]*:	4f 6d       	lddpc sp,[0-9a-f]* <.*>
 4.10344 ++ *[0-9a-f]*:	49 e6       	lddpc r6,[0-9a-f]* <.*>
 4.10345 ++ *[0-9a-f]*:	48 7b       	lddpc r11,[0-9a-f]* <.*>
 4.10346 ++
 4.10347 ++[0-9a-f]* <stdsp>:
 4.10348 ++ *[0-9a-f]*:	50 0f       	stdsp sp\[0x0\],pc
 4.10349 ++ *[0-9a-f]*:	57 fc       	stdsp sp\[0x1fc\],r12
 4.10350 ++ *[0-9a-f]*:	54 05       	stdsp sp\[0x100\],r5
 4.10351 ++ *[0-9a-f]*:	53 f4       	stdsp sp\[0xfc\],r4
 4.10352 ++ *[0-9a-f]*:	50 1e       	stdsp sp\[0x4\],lr
 4.10353 ++ *[0-9a-f]*:	54 cf       	stdsp sp\[0x130\],pc
 4.10354 ++ *[0-9a-f]*:	54 00       	stdsp sp\[0x100\],r0
 4.10355 ++ *[0-9a-f]*:	55 45       	stdsp sp\[0x150\],r5
 4.10356 ++
 4.10357 ++[0-9a-f]* <cp2>:
 4.10358 ++ *[0-9a-f]*:	58 0f       	cp.w pc,0
 4.10359 ++ *[0-9a-f]*:	5b fc       	cp.w r12,-1
 4.10360 ++ *[0-9a-f]*:	5a 05       	cp.w r5,-32
 4.10361 ++ *[0-9a-f]*:	59 f4       	cp.w r4,31
 4.10362 ++ *[0-9a-f]*:	58 1e       	cp.w lr,1
 4.10363 ++ *[0-9a-f]*:	58 38       	cp.w r8,3
 4.10364 ++ *[0-9a-f]*:	59 0e       	cp.w lr,16
 4.10365 ++ *[0-9a-f]*:	5a 67       	cp.w r7,-26
 4.10366 ++
 4.10367 ++[0-9a-f]* <acr>:
 4.10368 ++ *[0-9a-f]*:	5c 0f       	acr pc
 4.10369 ++ *[0-9a-f]*:	5c 0c       	acr r12
 4.10370 ++ *[0-9a-f]*:	5c 05       	acr r5
 4.10371 ++ *[0-9a-f]*:	5c 04       	acr r4
 4.10372 ++ *[0-9a-f]*:	5c 0e       	acr lr
 4.10373 ++ *[0-9a-f]*:	5c 02       	acr r2
 4.10374 ++ *[0-9a-f]*:	5c 0c       	acr r12
 4.10375 ++ *[0-9a-f]*:	5c 0f       	acr pc
 4.10376 ++
 4.10377 ++[0-9a-f]* <scr>:
 4.10378 ++ *[0-9a-f]*:	5c 1f       	scr pc
 4.10379 ++ *[0-9a-f]*:	5c 1c       	scr r12
 4.10380 ++ *[0-9a-f]*:	5c 15       	scr r5
 4.10381 ++ *[0-9a-f]*:	5c 14       	scr r4
 4.10382 ++ *[0-9a-f]*:	5c 1e       	scr lr
 4.10383 ++ *[0-9a-f]*:	5c 1f       	scr pc
 4.10384 ++ *[0-9a-f]*:	5c 16       	scr r6
 4.10385 ++ *[0-9a-f]*:	5c 11       	scr r1
 4.10386 ++
 4.10387 ++[0-9a-f]* <cpc0>:
 4.10388 ++ *[0-9a-f]*:	5c 2f       	cpc pc
 4.10389 ++ *[0-9a-f]*:	5c 2c       	cpc r12
 4.10390 ++ *[0-9a-f]*:	5c 25       	cpc r5
 4.10391 ++ *[0-9a-f]*:	5c 24       	cpc r4
 4.10392 ++ *[0-9a-f]*:	5c 2e       	cpc lr
 4.10393 ++ *[0-9a-f]*:	5c 2f       	cpc pc
 4.10394 ++ *[0-9a-f]*:	5c 24       	cpc r4
 4.10395 ++ *[0-9a-f]*:	5c 29       	cpc r9
 4.10396 ++
 4.10397 ++[0-9a-f]* <neg>:
 4.10398 ++ *[0-9a-f]*:	5c 3f       	neg pc
 4.10399 ++ *[0-9a-f]*:	5c 3c       	neg r12
 4.10400 ++ *[0-9a-f]*:	5c 35       	neg r5
 4.10401 ++ *[0-9a-f]*:	5c 34       	neg r4
 4.10402 ++ *[0-9a-f]*:	5c 3e       	neg lr
 4.10403 ++ *[0-9a-f]*:	5c 37       	neg r7
 4.10404 ++ *[0-9a-f]*:	5c 31       	neg r1
 4.10405 ++ *[0-9a-f]*:	5c 39       	neg r9
 4.10406 ++
 4.10407 ++[0-9a-f]* <abs>:
 4.10408 ++ *[0-9a-f]*:	5c 4f       	abs pc
 4.10409 ++ *[0-9a-f]*:	5c 4c       	abs r12
 4.10410 ++ *[0-9a-f]*:	5c 45       	abs r5
 4.10411 ++ *[0-9a-f]*:	5c 44       	abs r4
 4.10412 ++ *[0-9a-f]*:	5c 4e       	abs lr
 4.10413 ++ *[0-9a-f]*:	5c 46       	abs r6
 4.10414 ++ *[0-9a-f]*:	5c 46       	abs r6
 4.10415 ++ *[0-9a-f]*:	5c 44       	abs r4
 4.10416 ++
 4.10417 ++[0-9a-f]* <castu_b>:
 4.10418 ++ *[0-9a-f]*:	5c 5f       	castu\.b pc
 4.10419 ++ *[0-9a-f]*:	5c 5c       	castu\.b r12
 4.10420 ++ *[0-9a-f]*:	5c 55       	castu\.b r5
 4.10421 ++ *[0-9a-f]*:	5c 54       	castu\.b r4
 4.10422 ++ *[0-9a-f]*:	5c 5e       	castu\.b lr
 4.10423 ++ *[0-9a-f]*:	5c 57       	castu\.b r7
 4.10424 ++ *[0-9a-f]*:	5c 5d       	castu\.b sp
 4.10425 ++ *[0-9a-f]*:	5c 59       	castu\.b r9
 4.10426 ++
 4.10427 ++[0-9a-f]* <casts_b>:
 4.10428 ++ *[0-9a-f]*:	5c 6f       	casts\.b pc
 4.10429 ++ *[0-9a-f]*:	5c 6c       	casts\.b r12
 4.10430 ++ *[0-9a-f]*:	5c 65       	casts\.b r5
 4.10431 ++ *[0-9a-f]*:	5c 64       	casts\.b r4
 4.10432 ++ *[0-9a-f]*:	5c 6e       	casts\.b lr
 4.10433 ++ *[0-9a-f]*:	5c 6b       	casts\.b r11
 4.10434 ++ *[0-9a-f]*:	5c 61       	casts\.b r1
 4.10435 ++ *[0-9a-f]*:	5c 6a       	casts\.b r10
 4.10436 ++
 4.10437 ++[0-9a-f]* <castu_h>:
 4.10438 ++ *[0-9a-f]*:	5c 7f       	castu\.h pc
 4.10439 ++ *[0-9a-f]*:	5c 7c       	castu\.h r12
 4.10440 ++ *[0-9a-f]*:	5c 75       	castu\.h r5
 4.10441 ++ *[0-9a-f]*:	5c 74       	castu\.h r4
 4.10442 ++ *[0-9a-f]*:	5c 7e       	castu\.h lr
 4.10443 ++ *[0-9a-f]*:	5c 7a       	castu\.h r10
 4.10444 ++ *[0-9a-f]*:	5c 7b       	castu\.h r11
 4.10445 ++ *[0-9a-f]*:	5c 71       	castu\.h r1
 4.10446 ++
 4.10447 ++[0-9a-f]* <casts_h>:
 4.10448 ++ *[0-9a-f]*:	5c 8f       	casts\.h pc
 4.10449 ++ *[0-9a-f]*:	5c 8c       	casts\.h r12
 4.10450 ++ *[0-9a-f]*:	5c 85       	casts\.h r5
 4.10451 ++ *[0-9a-f]*:	5c 84       	casts\.h r4
 4.10452 ++ *[0-9a-f]*:	5c 8e       	casts\.h lr
 4.10453 ++ *[0-9a-f]*:	5c 80       	casts\.h r0
 4.10454 ++ *[0-9a-f]*:	5c 85       	casts\.h r5
 4.10455 ++ *[0-9a-f]*:	5c 89       	casts\.h r9
 4.10456 ++
 4.10457 ++[0-9a-f]* <brev>:
 4.10458 ++ *[0-9a-f]*:	5c 9f       	brev pc
 4.10459 ++ *[0-9a-f]*:	5c 9c       	brev r12
 4.10460 ++ *[0-9a-f]*:	5c 95       	brev r5
 4.10461 ++ *[0-9a-f]*:	5c 94       	brev r4
 4.10462 ++ *[0-9a-f]*:	5c 9e       	brev lr
 4.10463 ++ *[0-9a-f]*:	5c 95       	brev r5
 4.10464 ++ *[0-9a-f]*:	5c 9a       	brev r10
 4.10465 ++ *[0-9a-f]*:	5c 98       	brev r8
 4.10466 ++
 4.10467 ++[0-9a-f]* <swap_h>:
 4.10468 ++ *[0-9a-f]*:	5c af       	swap\.h pc
 4.10469 ++ *[0-9a-f]*:	5c ac       	swap\.h r12
 4.10470 ++ *[0-9a-f]*:	5c a5       	swap\.h r5
 4.10471 ++ *[0-9a-f]*:	5c a4       	swap\.h r4
 4.10472 ++ *[0-9a-f]*:	5c ae       	swap\.h lr
 4.10473 ++ *[0-9a-f]*:	5c a7       	swap\.h r7
 4.10474 ++ *[0-9a-f]*:	5c a0       	swap\.h r0
 4.10475 ++ *[0-9a-f]*:	5c a8       	swap\.h r8
 4.10476 ++
 4.10477 ++[0-9a-f]* <swap_b>:
 4.10478 ++ *[0-9a-f]*:	5c bf       	swap\.b pc
 4.10479 ++ *[0-9a-f]*:	5c bc       	swap\.b r12
 4.10480 ++ *[0-9a-f]*:	5c b5       	swap\.b r5
 4.10481 ++ *[0-9a-f]*:	5c b4       	swap\.b r4
 4.10482 ++ *[0-9a-f]*:	5c be       	swap\.b lr
 4.10483 ++ *[0-9a-f]*:	5c ba       	swap\.b r10
 4.10484 ++ *[0-9a-f]*:	5c bc       	swap\.b r12
 4.10485 ++ *[0-9a-f]*:	5c b1       	swap\.b r1
 4.10486 ++
 4.10487 ++[0-9a-f]* <swap_bh>:
 4.10488 ++ *[0-9a-f]*:	5c cf       	swap\.bh pc
 4.10489 ++ *[0-9a-f]*:	5c cc       	swap\.bh r12
 4.10490 ++ *[0-9a-f]*:	5c c5       	swap\.bh r5
 4.10491 ++ *[0-9a-f]*:	5c c4       	swap\.bh r4
 4.10492 ++ *[0-9a-f]*:	5c ce       	swap\.bh lr
 4.10493 ++ *[0-9a-f]*:	5c c9       	swap\.bh r9
 4.10494 ++ *[0-9a-f]*:	5c c4       	swap\.bh r4
 4.10495 ++ *[0-9a-f]*:	5c c1       	swap\.bh r1
 4.10496 ++
 4.10497 ++[0-9a-f]* <One_s_compliment>:
 4.10498 ++ *[0-9a-f]*:	5c df       	com pc
 4.10499 ++ *[0-9a-f]*:	5c dc       	com r12
 4.10500 ++ *[0-9a-f]*:	5c d5       	com r5
 4.10501 ++ *[0-9a-f]*:	5c d4       	com r4
 4.10502 ++ *[0-9a-f]*:	5c de       	com lr
 4.10503 ++ *[0-9a-f]*:	5c d2       	com r2
 4.10504 ++ *[0-9a-f]*:	5c d2       	com r2
 4.10505 ++ *[0-9a-f]*:	5c d7       	com r7
 4.10506 ++
 4.10507 ++[0-9a-f]* <tnbz>:
 4.10508 ++ *[0-9a-f]*:	5c ef       	tnbz pc
 4.10509 ++ *[0-9a-f]*:	5c ec       	tnbz r12
 4.10510 ++ *[0-9a-f]*:	5c e5       	tnbz r5
 4.10511 ++ *[0-9a-f]*:	5c e4       	tnbz r4
 4.10512 ++ *[0-9a-f]*:	5c ee       	tnbz lr
 4.10513 ++ *[0-9a-f]*:	5c e8       	tnbz r8
 4.10514 ++ *[0-9a-f]*:	5c ec       	tnbz r12
 4.10515 ++ *[0-9a-f]*:	5c ef       	tnbz pc
 4.10516 ++
 4.10517 ++[0-9a-f]* <rol>:
 4.10518 ++ *[0-9a-f]*:	5c ff       	rol pc
 4.10519 ++ *[0-9a-f]*:	5c fc       	rol r12
 4.10520 ++ *[0-9a-f]*:	5c f5       	rol r5
 4.10521 ++ *[0-9a-f]*:	5c f4       	rol r4
 4.10522 ++ *[0-9a-f]*:	5c fe       	rol lr
 4.10523 ++ *[0-9a-f]*:	5c fa       	rol r10
 4.10524 ++ *[0-9a-f]*:	5c f9       	rol r9
 4.10525 ++ *[0-9a-f]*:	5c f5       	rol r5
 4.10526 ++
 4.10527 ++[0-9a-f]* <ror>:
 4.10528 ++ *[0-9a-f]*:	5d 0f       	ror pc
 4.10529 ++ *[0-9a-f]*:	5d 0c       	ror r12
 4.10530 ++ *[0-9a-f]*:	5d 05       	ror r5
 4.10531 ++ *[0-9a-f]*:	5d 04       	ror r4
 4.10532 ++ *[0-9a-f]*:	5d 0e       	ror lr
 4.10533 ++ *[0-9a-f]*:	5d 08       	ror r8
 4.10534 ++ *[0-9a-f]*:	5d 04       	ror r4
 4.10535 ++ *[0-9a-f]*:	5d 07       	ror r7
 4.10536 ++
 4.10537 ++[0-9a-f]* <icall>:
 4.10538 ++ *[0-9a-f]*:	5d 1f       	icall pc
 4.10539 ++ *[0-9a-f]*:	5d 1c       	icall r12
 4.10540 ++ *[0-9a-f]*:	5d 15       	icall r5
 4.10541 ++ *[0-9a-f]*:	5d 14       	icall r4
 4.10542 ++ *[0-9a-f]*:	5d 1e       	icall lr
 4.10543 ++ *[0-9a-f]*:	5d 13       	icall r3
 4.10544 ++ *[0-9a-f]*:	5d 11       	icall r1
 4.10545 ++ *[0-9a-f]*:	5d 13       	icall r3
 4.10546 ++
 4.10547 ++[0-9a-f]* <mustr>:
 4.10548 ++ *[0-9a-f]*:	5d 2f       	mustr pc
 4.10549 ++ *[0-9a-f]*:	5d 2c       	mustr r12
 4.10550 ++ *[0-9a-f]*:	5d 25       	mustr r5
 4.10551 ++ *[0-9a-f]*:	5d 24       	mustr r4
 4.10552 ++ *[0-9a-f]*:	5d 2e       	mustr lr
 4.10553 ++ *[0-9a-f]*:	5d 21       	mustr r1
 4.10554 ++ *[0-9a-f]*:	5d 24       	mustr r4
 4.10555 ++ *[0-9a-f]*:	5d 2c       	mustr r12
 4.10556 ++
 4.10557 ++[0-9a-f]* <musfr>:
 4.10558 ++ *[0-9a-f]*:	5d 3f       	musfr pc
 4.10559 ++ *[0-9a-f]*:	5d 3c       	musfr r12
 4.10560 ++ *[0-9a-f]*:	5d 35       	musfr r5
 4.10561 ++ *[0-9a-f]*:	5d 34       	musfr r4
 4.10562 ++ *[0-9a-f]*:	5d 3e       	musfr lr
 4.10563 ++ *[0-9a-f]*:	5d 3b       	musfr r11
 4.10564 ++ *[0-9a-f]*:	5d 3c       	musfr r12
 4.10565 ++ *[0-9a-f]*:	5d 32       	musfr r2
 4.10566 ++
 4.10567 ++[0-9a-f]* <ret_cond>:
 4.10568 ++ *[0-9a-f]*:	5e 0f       	reteq 1
 4.10569 ++ *[0-9a-f]*:	5e fc       	retal r12
 4.10570 ++ *[0-9a-f]*:	5e 85       	retls r5
 4.10571 ++ *[0-9a-f]*:	5e 74       	retpl r4
 4.10572 ++ *[0-9a-f]*:	5e 1e       	retne -1
 4.10573 ++ *[0-9a-f]*:	5e 90       	retgt r0
 4.10574 ++ *[0-9a-f]*:	5e 9c       	retgt r12
 4.10575 ++ *[0-9a-f]*:	5e 4a       	retge r10
 4.10576 ++
 4.10577 ++[0-9a-f]* <sr_cond>:
 4.10578 ++ *[0-9a-f]*:	5f 0f       	sreq pc
 4.10579 ++ *[0-9a-f]*:	5f fc       	sral r12
 4.10580 ++ *[0-9a-f]*:	5f 85       	srls r5
 4.10581 ++ *[0-9a-f]*:	5f 74       	srpl r4
 4.10582 ++ *[0-9a-f]*:	5f 1e       	srne lr
 4.10583 ++ *[0-9a-f]*:	5f 50       	srlt r0
 4.10584 ++ *[0-9a-f]*:	5f fd       	sral sp
 4.10585 ++ *[0-9a-f]*:	5f 49       	srge r9
 4.10586 ++
 4.10587 ++[0-9a-f]* <ld_w3>:
 4.10588 ++ *[0-9a-f]*:	7e 0f       	ld\.w pc,pc\[0x0\]
 4.10589 ++ *[0-9a-f]*:	79 fc       	ld\.w r12,r12\[0x7c\]
 4.10590 ++ *[0-9a-f]*:	6b 05       	ld\.w r5,r5\[0x40\]
 4.10591 ++ *[0-9a-f]*:	68 f4       	ld\.w r4,r4\[0x3c\]
 4.10592 ++ *[0-9a-f]*:	7c 1e       	ld\.w lr,lr\[0x4\]
 4.10593 ++ *[0-9a-f]*:	64 dd       	ld\.w sp,r2\[0x34\]
 4.10594 ++ *[0-9a-f]*:	62 29       	ld\.w r9,r1\[0x8\]
 4.10595 ++ *[0-9a-f]*:	7a f5       	ld\.w r5,sp\[0x3c\]
 4.10596 ++
 4.10597 ++[0-9a-f]* <ld_sh3>:
 4.10598 ++ *[0-9a-f]*:	9e 0f       	ld\.sh pc,pc\[0x0\]
 4.10599 ++ *[0-9a-f]*:	98 7c       	ld\.sh r12,r12\[0xe\]
 4.10600 ++ *[0-9a-f]*:	8a 45       	ld\.sh r5,r5\[0x8\]
 4.10601 ++ *[0-9a-f]*:	88 34       	ld\.sh r4,r4\[0x6\]
 4.10602 ++ *[0-9a-f]*:	9c 1e       	ld\.sh lr,lr\[0x2\]
 4.10603 ++ *[0-9a-f]*:	84 44       	ld\.sh r4,r2\[0x8\]
 4.10604 ++ *[0-9a-f]*:	9c 5d       	ld\.sh sp,lr\[0xa\]
 4.10605 ++ *[0-9a-f]*:	96 12       	ld\.sh r2,r11\[0x2\]
 4.10606 ++
 4.10607 ++[0-9a-f]* <ld_uh3>:
 4.10608 ++ *[0-9a-f]*:	9e 8f       	ld\.uh pc,pc\[0x0\]
 4.10609 ++ *[0-9a-f]*:	98 fc       	ld\.uh r12,r12\[0xe\]
 4.10610 ++ *[0-9a-f]*:	8a c5       	ld\.uh r5,r5\[0x8\]
 4.10611 ++ *[0-9a-f]*:	88 b4       	ld\.uh r4,r4\[0x6\]
 4.10612 ++ *[0-9a-f]*:	9c 9e       	ld\.uh lr,lr\[0x2\]
 4.10613 ++ *[0-9a-f]*:	80 da       	ld\.uh r10,r0\[0xa\]
 4.10614 ++ *[0-9a-f]*:	96 c8       	ld\.uh r8,r11\[0x8\]
 4.10615 ++ *[0-9a-f]*:	84 ea       	ld\.uh r10,r2\[0xc\]
 4.10616 ++
 4.10617 ++[0-9a-f]* <st_w3>:
 4.10618 ++ *[0-9a-f]*:	9f 0f       	st\.w pc\[0x0\],pc
 4.10619 ++ *[0-9a-f]*:	99 fc       	st\.w r12\[0x3c\],r12
 4.10620 ++ *[0-9a-f]*:	8b 85       	st\.w r5\[0x20\],r5
 4.10621 ++ *[0-9a-f]*:	89 74       	st\.w r4\[0x1c\],r4
 4.10622 ++ *[0-9a-f]*:	9d 1e       	st\.w lr\[0x4\],lr
 4.10623 ++ *[0-9a-f]*:	8f bb       	st\.w r7\[0x2c\],r11
 4.10624 ++ *[0-9a-f]*:	85 66       	st\.w r2\[0x18\],r6
 4.10625 ++ *[0-9a-f]*:	89 39       	st\.w r4\[0xc\],r9
 4.10626 ++
 4.10627 ++[0-9a-f]* <st_h3>:
 4.10628 ++ *[0-9a-f]*:	be 0f       	st\.h pc\[0x0\],pc
 4.10629 ++ *[0-9a-f]*:	b8 7c       	st\.h r12\[0xe\],r12
 4.10630 ++ *[0-9a-f]*:	aa 45       	st\.h r5\[0x8\],r5
 4.10631 ++ *[0-9a-f]*:	a8 34       	st\.h r4\[0x6\],r4
 4.10632 ++ *[0-9a-f]*:	bc 1e       	st\.h lr\[0x2\],lr
 4.10633 ++ *[0-9a-f]*:	bc 5c       	st\.h lr\[0xa\],r12
 4.10634 ++ *[0-9a-f]*:	ac 20       	st\.h r6\[0x4\],r0
 4.10635 ++ *[0-9a-f]*:	aa 6d       	st\.h r5\[0xc\],sp
 4.10636 ++
 4.10637 ++[0-9a-f]* <st_b3>:
 4.10638 ++ *[0-9a-f]*:	be 8f       	st\.b pc\[0x0\],pc
 4.10639 ++ *[0-9a-f]*:	b8 fc       	st\.b r12\[0x7\],r12
 4.10640 ++ *[0-9a-f]*:	aa c5       	st\.b r5\[0x4\],r5
 4.10641 ++ *[0-9a-f]*:	a8 b4       	st\.b r4\[0x3\],r4
 4.10642 ++ *[0-9a-f]*:	bc 9e       	st\.b lr\[0x1\],lr
 4.10643 ++ *[0-9a-f]*:	b8 e9       	st\.b r12\[0x6\],r9
 4.10644 ++ *[0-9a-f]*:	a4 be       	st\.b r2\[0x3\],lr
 4.10645 ++ *[0-9a-f]*:	a2 bb       	st\.b r1\[0x3\],r11
 4.10646 ++
 4.10647 ++[0-9a-f]* <ldd>:
 4.10648 ++ *[0-9a-f]*:	bf 00       	ld\.d r0,pc
 4.10649 ++ *[0-9a-f]*:	b9 0e       	ld\.d lr,r12
 4.10650 ++ *[0-9a-f]*:	ab 08       	ld\.d r8,r5
 4.10651 ++ *[0-9a-f]*:	a9 06       	ld\.d r6,r4
 4.10652 ++ *[0-9a-f]*:	bd 02       	ld\.d r2,lr
 4.10653 ++ *[0-9a-f]*:	af 0e       	ld\.d lr,r7
 4.10654 ++ *[0-9a-f]*:	a9 04       	ld\.d r4,r4
 4.10655 ++ *[0-9a-f]*:	bf 0e       	ld\.d lr,pc
 4.10656 ++
 4.10657 ++[0-9a-f]* <ldd_postinc>:
 4.10658 ++ *[0-9a-f]*:	bf 01       	ld\.d r0,pc\+\+
 4.10659 ++ *[0-9a-f]*:	b9 0f       	ld\.d lr,r12\+\+
 4.10660 ++ *[0-9a-f]*:	ab 09       	ld\.d r8,r5\+\+
 4.10661 ++ *[0-9a-f]*:	a9 07       	ld\.d r6,r4\+\+
 4.10662 ++ *[0-9a-f]*:	bd 03       	ld\.d r2,lr\+\+
 4.10663 ++ *[0-9a-f]*:	ab 0f       	ld\.d lr,r5\+\+
 4.10664 ++ *[0-9a-f]*:	b7 0d       	ld\.d r12,r11\+\+
 4.10665 ++ *[0-9a-f]*:	b9 03       	ld\.d r2,r12\+\+
 4.10666 ++
 4.10667 ++[0-9a-f]* <ldd_predec>:
 4.10668 ++ *[0-9a-f]*:	bf 10       	ld\.d r0,--pc
 4.10669 ++ *[0-9a-f]*:	b9 1e       	ld\.d lr,--r12
 4.10670 ++ *[0-9a-f]*:	ab 18       	ld\.d r8,--r5
 4.10671 ++ *[0-9a-f]*:	a9 16       	ld\.d r6,--r4
 4.10672 ++ *[0-9a-f]*:	bd 12       	ld\.d r2,--lr
 4.10673 ++ *[0-9a-f]*:	a1 18       	ld\.d r8,--r0
 4.10674 ++ *[0-9a-f]*:	bf 1a       	ld\.d r10,--pc
 4.10675 ++ *[0-9a-f]*:	a9 12       	ld\.d r2,--r4
 4.10676 ++
 4.10677 ++[0-9a-f]* <std>:
 4.10678 ++ *[0-9a-f]*:	bf 11       	st\.d pc,r0
 4.10679 ++ *[0-9a-f]*:	b9 1f       	st\.d r12,lr
 4.10680 ++ *[0-9a-f]*:	ab 19       	st\.d r5,r8
 4.10681 ++ *[0-9a-f]*:	a9 17       	st\.d r4,r6
 4.10682 ++ *[0-9a-f]*:	bd 13       	st\.d lr,r2
 4.10683 ++ *[0-9a-f]*:	a1 1d       	st\.d r0,r12
 4.10684 ++ *[0-9a-f]*:	bb 15       	st\.d sp,r4
 4.10685 ++ *[0-9a-f]*:	b9 1d       	st\.d r12,r12
 4.10686 ++
 4.10687 ++[0-9a-f]* <std_postinc>:
 4.10688 ++ *[0-9a-f]*:	bf 20       	st\.d pc\+\+,r0
 4.10689 ++ *[0-9a-f]*:	b9 2e       	st\.d r12\+\+,lr
 4.10690 ++ *[0-9a-f]*:	ab 28       	st\.d r5\+\+,r8
 4.10691 ++ *[0-9a-f]*:	a9 26       	st\.d r4\+\+,r6
 4.10692 ++ *[0-9a-f]*:	bd 22       	st\.d lr\+\+,r2
 4.10693 ++ *[0-9a-f]*:	bb 26       	st\.d sp\+\+,r6
 4.10694 ++ *[0-9a-f]*:	b5 26       	st\.d r10\+\+,r6
 4.10695 ++ *[0-9a-f]*:	af 22       	st\.d r7\+\+,r2
 4.10696 ++
 4.10697 ++[0-9a-f]* <std_predec>:
 4.10698 ++ *[0-9a-f]*:	bf 21       	st\.d --pc,r0
 4.10699 ++ *[0-9a-f]*:	b9 2f       	st\.d --r12,lr
 4.10700 ++ *[0-9a-f]*:	ab 29       	st\.d --r5,r8
 4.10701 ++ *[0-9a-f]*:	a9 27       	st\.d --r4,r6
 4.10702 ++ *[0-9a-f]*:	bd 23       	st\.d --lr,r2
 4.10703 ++ *[0-9a-f]*:	a7 27       	st\.d --r3,r6
 4.10704 ++ *[0-9a-f]*:	bd 23       	st\.d --lr,r2
 4.10705 ++ *[0-9a-f]*:	a1 25       	st\.d --r0,r4
 4.10706 ++
 4.10707 ++[0-9a-f]* <mul>:
 4.10708 ++ *[0-9a-f]*:	bf 3f       	mul pc,pc
 4.10709 ++ *[0-9a-f]*:	b9 3c       	mul r12,r12
 4.10710 ++ *[0-9a-f]*:	ab 35       	mul r5,r5
 4.10711 ++ *[0-9a-f]*:	a9 34       	mul r4,r4
 4.10712 ++ *[0-9a-f]*:	bd 3e       	mul lr,lr
 4.10713 ++ *[0-9a-f]*:	bd 3a       	mul r10,lr
 4.10714 ++ *[0-9a-f]*:	b1 30       	mul r0,r8
 4.10715 ++ *[0-9a-f]*:	ab 38       	mul r8,r5
 4.10716 ++
 4.10717 ++[0-9a-f]* <asr_imm5>:
 4.10718 ++ *[0-9a-f]*:	a1 4f       	asr pc,0x0
 4.10719 ++ *[0-9a-f]*:	bf 5c       	asr r12,0x1f
 4.10720 ++ *[0-9a-f]*:	b1 45       	asr r5,0x10
 4.10721 ++ *[0-9a-f]*:	af 54       	asr r4,0xf
 4.10722 ++ *[0-9a-f]*:	a1 5e       	asr lr,0x1
 4.10723 ++ *[0-9a-f]*:	b7 56       	asr r6,0x17
 4.10724 ++ *[0-9a-f]*:	b3 46       	asr r6,0x12
 4.10725 ++ *[0-9a-f]*:	a9 45       	asr r5,0x8
 4.10726 ++
 4.10727 ++[0-9a-f]* <lsl_imm5>:
 4.10728 ++ *[0-9a-f]*:	a1 6f       	lsl pc,0x0
 4.10729 ++ *[0-9a-f]*:	bf 7c       	lsl r12,0x1f
 4.10730 ++ *[0-9a-f]*:	b1 65       	lsl r5,0x10
 4.10731 ++ *[0-9a-f]*:	af 74       	lsl r4,0xf
 4.10732 ++ *[0-9a-f]*:	a1 7e       	lsl lr,0x1
 4.10733 ++ *[0-9a-f]*:	ad 7c       	lsl r12,0xd
 4.10734 ++ *[0-9a-f]*:	b1 66       	lsl r6,0x10
 4.10735 ++ *[0-9a-f]*:	b9 71       	lsl r1,0x19
 4.10736 ++
 4.10737 ++[0-9a-f]* <lsr_imm5>:
 4.10738 ++ *[0-9a-f]*:	a1 8f       	lsr pc,0x0
 4.10739 ++ *[0-9a-f]*:	bf 9c       	lsr r12,0x1f
 4.10740 ++ *[0-9a-f]*:	b1 85       	lsr r5,0x10
 4.10741 ++ *[0-9a-f]*:	af 94       	lsr r4,0xf
 4.10742 ++ *[0-9a-f]*:	a1 9e       	lsr lr,0x1
 4.10743 ++ *[0-9a-f]*:	a1 90       	lsr r0,0x1
 4.10744 ++ *[0-9a-f]*:	ab 88       	lsr r8,0xa
 4.10745 ++ *[0-9a-f]*:	bb 87       	lsr r7,0x1a
 4.10746 ++
 4.10747 ++[0-9a-f]* <sbr>:
 4.10748 ++ *[0-9a-f]*:	a1 af       	sbr pc,0x0
 4.10749 ++ *[0-9a-f]*:	bf bc       	sbr r12,0x1f
 4.10750 ++ *[0-9a-f]*:	b1 a5       	sbr r5,0x10
 4.10751 ++ *[0-9a-f]*:	af b4       	sbr r4,0xf
 4.10752 ++ *[0-9a-f]*:	a1 be       	sbr lr,0x1
 4.10753 ++ *[0-9a-f]*:	bf b8       	sbr r8,0x1f
 4.10754 ++ *[0-9a-f]*:	b7 a6       	sbr r6,0x16
 4.10755 ++ *[0-9a-f]*:	b7 b1       	sbr r1,0x17
 4.10756 ++
 4.10757 ++[0-9a-f]* <cbr>:
 4.10758 ++ *[0-9a-f]*:	a1 cf       	cbr pc,0x0
 4.10759 ++ *[0-9a-f]*:	bf dc       	cbr r12,0x1f
 4.10760 ++ *[0-9a-f]*:	b1 c5       	cbr r5,0x10
 4.10761 ++ *[0-9a-f]*:	af d4       	cbr r4,0xf
 4.10762 ++ *[0-9a-f]*:	a1 de       	cbr lr,0x1
 4.10763 ++ *[0-9a-f]*:	ab cc       	cbr r12,0xa
 4.10764 ++ *[0-9a-f]*:	b7 c7       	cbr r7,0x16
 4.10765 ++ *[0-9a-f]*:	a9 d8       	cbr r8,0x9
 4.10766 ++
 4.10767 ++[0-9a-f]* <brc1>:
 4.10768 ++ *[0-9a-f]*:	c0 00       	breq [0-9a-f]* <.*>
 4.10769 ++ *[0-9a-f]*:	cf f7       	brpl [0-9a-f]* <.*>
 4.10770 ++ *[0-9a-f]*:	c8 04       	brge [0-9a-f]* <.*>
 4.10771 ++ *[0-9a-f]*:	c7 f3       	brcs [0-9a-f]* <.*>
 4.10772 ++ *[0-9a-f]*:	c0 11       	brne [0-9a-f]* <.*>
 4.10773 ++ *[0-9a-f]*:	c7 33       	brcs [0-9a-f]* <.*>
 4.10774 ++ *[0-9a-f]*:	cf 70       	breq [0-9a-f]* <.*>
 4.10775 ++ *[0-9a-f]*:	c0 60       	breq [0-9a-f]* <.*>
 4.10776 ++
 4.10777 ++[0-9a-f]* <rjmp>:
 4.10778 ++ *[0-9a-f]*:	c0 08       	rjmp [0-9a-f]* <.*>
 4.10779 ++ *[0-9a-f]*:	cf fb       	rjmp [0-9a-f]* <.*>
 4.10780 ++ *[0-9a-f]*:	c0 0a       	rjmp [0-9a-f]* <.*>
 4.10781 ++ *[0-9a-f]*:	cf f9       	rjmp [0-9a-f]* <.*>
 4.10782 ++ *[0-9a-f]*:	c0 18       	rjmp [0-9a-f]* <.*>
 4.10783 ++ *[0-9a-f]*:	c1 fa       	rjmp [0-9a-f]* <.*>
 4.10784 ++ *[0-9a-f]*:	c0 78       	rjmp [0-9a-f]* <.*>
 4.10785 ++ *[0-9a-f]*:	cf ea       	rjmp [0-9a-f]* <.*>
 4.10786 ++
 4.10787 ++[0-9a-f]* <rcall1>:
 4.10788 ++ *[0-9a-f]*:	c0 0c       	rcall [0-9a-f]* <.*>
 4.10789 ++ *[0-9a-f]*:	cf ff       	rcall [0-9a-f]* <.*>
 4.10790 ++ *[0-9a-f]*:	c0 0e       	rcall [0-9a-f]* <.*>
 4.10791 ++ *[0-9a-f]*:	cf fd       	rcall [0-9a-f]* <.*>
 4.10792 ++ *[0-9a-f]*:	c0 1c       	rcall [0-9a-f]* <.*>
 4.10793 ++ *[0-9a-f]*:	c6 cc       	rcall [0-9a-f]* <.*>
 4.10794 ++ *[0-9a-f]*:	cf 7e       	rcall [0-9a-f]* <.*>
 4.10795 ++ *[0-9a-f]*:	c1 ae       	rcall [0-9a-f]* <.*>
 4.10796 ++
 4.10797 ++[0-9a-f]* <acall>:
 4.10798 ++ *[0-9a-f]*:	d0 00       	acall 0x0
 4.10799 ++ *[0-9a-f]*:	df f0       	acall 0x3fc
 4.10800 ++ *[0-9a-f]*:	d8 00       	acall 0x200
 4.10801 ++ *[0-9a-f]*:	d7 f0       	acall 0x1fc
 4.10802 ++ *[0-9a-f]*:	d0 10       	acall 0x4
 4.10803 ++ *[0-9a-f]*:	d5 90       	acall 0x164
 4.10804 ++ *[0-9a-f]*:	d4 c0       	acall 0x130
 4.10805 ++ *[0-9a-f]*:	d2 b0       	acall 0xac
 4.10806 ++
 4.10807 ++[0-9a-f]* <scall>:
 4.10808 ++ *[0-9a-f]*:	d7 33       	scall
 4.10809 ++ *[0-9a-f]*:	d7 33       	scall
 4.10810 ++ *[0-9a-f]*:	d7 33       	scall
 4.10811 ++ *[0-9a-f]*:	d7 33       	scall
 4.10812 ++ *[0-9a-f]*:	d7 33       	scall
 4.10813 ++ *[0-9a-f]*:	d7 33       	scall
 4.10814 ++ *[0-9a-f]*:	d7 33       	scall
 4.10815 ++ *[0-9a-f]*:	d7 33       	scall
 4.10816 ++
 4.10817 ++[0-9a-f]* <popm>:
 4.10818 ++ *[0-9a-f]*:	d8 02       	popm pc
 4.10819 ++ *[0-9a-f]*:	dd fa       	popm r0-r11,pc,r12=-1
 4.10820 ++ *[0-9a-f]*:	d4 02       	popm lr
 4.10821 ++ *[0-9a-f]*:	db fa       	popm r0-r11,pc,r12=1
 4.10822 ++ *[0-9a-f]*:	d0 12       	popm r0-r3
 4.10823 ++ *[0-9a-f]*:	d8 e2       	popm r4-r10,pc
 4.10824 ++ *[0-9a-f]*:	d9 1a       	popm r0-r3,r11,pc,r12=0
 4.10825 ++ *[0-9a-f]*:	d7 b2       	popm r0-r7,r10-r12,lr
 4.10826 ++
 4.10827 ++[0-9a-f]* <pushm>:
 4.10828 ++ *[0-9a-f]*:	d8 01       	pushm pc
 4.10829 ++ *[0-9a-f]*:	df f1       	pushm r0-r12,lr-pc
 4.10830 ++ *[0-9a-f]*:	d8 01       	pushm pc
 4.10831 ++ *[0-9a-f]*:	d7 f1       	pushm r0-r12,lr
 4.10832 ++ *[0-9a-f]*:	d0 11       	pushm r0-r3
 4.10833 ++ *[0-9a-f]*:	dc c1       	pushm r8-r10,lr-pc
 4.10834 ++ *[0-9a-f]*:	d0 91       	pushm r0-r3,r10
 4.10835 ++ *[0-9a-f]*:	d2 41       	pushm r8-r9,r12
 4.10836 ++
 4.10837 ++[0-9a-f]* <popm_n>:
 4.10838 ++.*
 4.10839 ++.*
 4.10840 ++.*
 4.10841 ++.*
 4.10842 ++.*
 4.10843 ++.*
 4.10844 ++.*
 4.10845 ++.*
 4.10846 ++
 4.10847 ++[0-9a-f]* <pushm_n>:
 4.10848 ++.*
 4.10849 ++.*
 4.10850 ++.*
 4.10851 ++.*
 4.10852 ++.*
 4.10853 ++.*
 4.10854 ++.*
 4.10855 ++.*
 4.10856 ++
 4.10857 ++[0-9a-f]* <csrfcz>:
 4.10858 ++ *[0-9a-f]*:	d0 03       	csrfcz 0x0
 4.10859 ++ *[0-9a-f]*:	d1 f3       	csrfcz 0x1f
 4.10860 ++ *[0-9a-f]*:	d1 03       	csrfcz 0x10
 4.10861 ++ *[0-9a-f]*:	d0 f3       	csrfcz 0xf
 4.10862 ++ *[0-9a-f]*:	d0 13       	csrfcz 0x1
 4.10863 ++ *[0-9a-f]*:	d0 53       	csrfcz 0x5
 4.10864 ++ *[0-9a-f]*:	d0 d3       	csrfcz 0xd
 4.10865 ++ *[0-9a-f]*:	d1 73       	csrfcz 0x17
 4.10866 ++
 4.10867 ++[0-9a-f]* <ssrf>:
 4.10868 ++ *[0-9a-f]*:	d2 03       	ssrf 0x0
 4.10869 ++ *[0-9a-f]*:	d3 f3       	ssrf 0x1f
 4.10870 ++ *[0-9a-f]*:	d3 03       	ssrf 0x10
 4.10871 ++ *[0-9a-f]*:	d2 f3       	ssrf 0xf
 4.10872 ++ *[0-9a-f]*:	d2 13       	ssrf 0x1
 4.10873 ++ *[0-9a-f]*:	d3 d3       	ssrf 0x1d
 4.10874 ++ *[0-9a-f]*:	d2 d3       	ssrf 0xd
 4.10875 ++ *[0-9a-f]*:	d2 d3       	ssrf 0xd
 4.10876 ++
 4.10877 ++[0-9a-f]* <csrf>:
 4.10878 ++ *[0-9a-f]*:	d4 03       	csrf 0x0
 4.10879 ++ *[0-9a-f]*:	d5 f3       	csrf 0x1f
 4.10880 ++ *[0-9a-f]*:	d5 03       	csrf 0x10
 4.10881 ++ *[0-9a-f]*:	d4 f3       	csrf 0xf
 4.10882 ++ *[0-9a-f]*:	d4 13       	csrf 0x1
 4.10883 ++ *[0-9a-f]*:	d4 a3       	csrf 0xa
 4.10884 ++ *[0-9a-f]*:	d4 f3       	csrf 0xf
 4.10885 ++ *[0-9a-f]*:	d4 b3       	csrf 0xb
 4.10886 ++
 4.10887 ++[0-9a-f]* <rete>:
 4.10888 ++ *[0-9a-f]*:	d6 03       	rete
 4.10889 ++
 4.10890 ++[0-9a-f]* <rets>:
 4.10891 ++ *[0-9a-f]*:	d6 13       	rets
 4.10892 ++
 4.10893 ++[0-9a-f]* <retd>:
 4.10894 ++ *[0-9a-f]*:	d6 23       	retd
 4.10895 ++
 4.10896 ++[0-9a-f]* <retj>:
 4.10897 ++ *[0-9a-f]*:	d6 33       	retj
 4.10898 ++
 4.10899 ++[0-9a-f]* <tlbr>:
 4.10900 ++ *[0-9a-f]*:	d6 43       	tlbr
 4.10901 ++
 4.10902 ++[0-9a-f]* <tlbs>:
 4.10903 ++ *[0-9a-f]*:	d6 53       	tlbs
 4.10904 ++
 4.10905 ++[0-9a-f]* <tlbw>:
 4.10906 ++ *[0-9a-f]*:	d6 63       	tlbw
 4.10907 ++
 4.10908 ++[0-9a-f]* <breakpoint>:
 4.10909 ++ *[0-9a-f]*:	d6 73       	breakpoint
 4.10910 ++
 4.10911 ++[0-9a-f]* <incjosp>:
 4.10912 ++ *[0-9a-f]*:	d6 83       	incjosp 1
 4.10913 ++ *[0-9a-f]*:	d6 93       	incjosp 2
 4.10914 ++ *[0-9a-f]*:	d6 a3       	incjosp 3
 4.10915 ++ *[0-9a-f]*:	d6 b3       	incjosp 4
 4.10916 ++ *[0-9a-f]*:	d6 c3       	incjosp -4
 4.10917 ++ *[0-9a-f]*:	d6 d3       	incjosp -3
 4.10918 ++ *[0-9a-f]*:	d6 e3       	incjosp -2
 4.10919 ++ *[0-9a-f]*:	d6 f3       	incjosp -1
 4.10920 ++
 4.10921 ++[0-9a-f]* <nop>:
 4.10922 ++ *[0-9a-f]*:	d7 03       	nop
 4.10923 ++
 4.10924 ++[0-9a-f]* <popjc>:
 4.10925 ++ *[0-9a-f]*:	d7 13       	popjc
 4.10926 ++
 4.10927 ++[0-9a-f]* <pushjc>:
 4.10928 ++ *[0-9a-f]*:	d7 23       	pushjc
 4.10929 ++
 4.10930 ++[0-9a-f]* <add2>:
 4.10931 ++ *[0-9a-f]*:	fe 0f 00 0f 	add pc,pc,pc
 4.10932 ++ *[0-9a-f]*:	f8 0c 00 3c 	add r12,r12,r12<<0x3
 4.10933 ++ *[0-9a-f]*:	ea 05 00 25 	add r5,r5,r5<<0x2
 4.10934 ++ *[0-9a-f]*:	e8 04 00 14 	add r4,r4,r4<<0x1
 4.10935 ++ *[0-9a-f]*:	fc 0e 00 1e 	add lr,lr,lr<<0x1
 4.10936 ++ *[0-9a-f]*:	f8 00 00 10 	add r0,r12,r0<<0x1
 4.10937 ++ *[0-9a-f]*:	f8 04 00 09 	add r9,r12,r4
 4.10938 ++ *[0-9a-f]*:	f8 07 00 2c 	add r12,r12,r7<<0x2
 4.10939 ++
 4.10940 ++[0-9a-f]* <sub2>:
 4.10941 ++ *[0-9a-f]*:	fe 0f 01 0f 	sub pc,pc,pc
 4.10942 ++ *[0-9a-f]*:	f8 0c 01 3c 	sub r12,r12,r12<<0x3
 4.10943 ++ *[0-9a-f]*:	ea 05 01 25 	sub r5,r5,r5<<0x2
 4.10944 ++ *[0-9a-f]*:	e8 04 01 14 	sub r4,r4,r4<<0x1
 4.10945 ++ *[0-9a-f]*:	fc 0e 01 1e 	sub lr,lr,lr<<0x1
 4.10946 ++ *[0-9a-f]*:	e6 04 01 0d 	sub sp,r3,r4
 4.10947 ++ *[0-9a-f]*:	ee 03 01 03 	sub r3,r7,r3
 4.10948 ++ *[0-9a-f]*:	f4 0d 01 1d 	sub sp,r10,sp<<0x1
 4.10949 ++
 4.10950 ++[0-9a-f]* <divu>:
 4.10951 ++ *[0-9a-f]*:	fe 0f 0d 0f 	divu pc,pc,pc
 4.10952 ++ *[0-9a-f]*:	f8 0c 0d 0c 	divu r12,r12,r12
 4.10953 ++ *[0-9a-f]*:	ea 05 0d 05 	divu r5,r5,r5
 4.10954 ++ *[0-9a-f]*:	e8 04 0d 04 	divu r4,r4,r4
 4.10955 ++ *[0-9a-f]*:	fc 0e 0d 0e 	divu lr,lr,lr
 4.10956 ++ *[0-9a-f]*:	e8 0f 0d 0d 	divu sp,r4,pc
 4.10957 ++ *[0-9a-f]*:	ea 0d 0d 05 	divu r5,r5,sp
 4.10958 ++ *[0-9a-f]*:	fa 00 0d 0a 	divu r10,sp,r0
 4.10959 ++
 4.10960 ++[0-9a-f]* <addhh_w>:
 4.10961 ++ *[0-9a-f]*:	fe 0f 0e 0f 	addhh\.w pc,pc:b,pc:b
 4.10962 ++ *[0-9a-f]*:	f8 0c 0e 3c 	addhh\.w r12,r12:t,r12:t
 4.10963 ++ *[0-9a-f]*:	ea 05 0e 35 	addhh\.w r5,r5:t,r5:t
 4.10964 ++ *[0-9a-f]*:	e8 04 0e 04 	addhh\.w r4,r4:b,r4:b
 4.10965 ++ *[0-9a-f]*:	fc 0e 0e 3e 	addhh\.w lr,lr:t,lr:t
 4.10966 ++ *[0-9a-f]*:	e0 03 0e 00 	addhh\.w r0,r0:b,r3:b
 4.10967 ++ *[0-9a-f]*:	f8 07 0e 2e 	addhh\.w lr,r12:t,r7:b
 4.10968 ++ *[0-9a-f]*:	f4 02 0e 23 	addhh\.w r3,r10:t,r2:b
 4.10969 ++
 4.10970 ++[0-9a-f]* <subhh_w>:
 4.10971 ++ *[0-9a-f]*:	fe 0f 0f 0f 	subhh\.w pc,pc:b,pc:b
 4.10972 ++ *[0-9a-f]*:	f8 0c 0f 3c 	subhh\.w r12,r12:t,r12:t
 4.10973 ++ *[0-9a-f]*:	ea 05 0f 35 	subhh\.w r5,r5:t,r5:t
 4.10974 ++ *[0-9a-f]*:	e8 04 0f 04 	subhh\.w r4,r4:b,r4:b
 4.10975 ++ *[0-9a-f]*:	fc 0e 0f 3e 	subhh\.w lr,lr:t,lr:t
 4.10976 ++ *[0-9a-f]*:	e2 07 0f 2a 	subhh\.w r10,r1:t,r7:b
 4.10977 ++ *[0-9a-f]*:	f4 0e 0f 3f 	subhh\.w pc,r10:t,lr:t
 4.10978 ++ *[0-9a-f]*:	e0 0c 0f 23 	subhh\.w r3,r0:t,r12:b
 4.10979 ++
 4.10980 ++[0-9a-f]* <adc>:
 4.10981 ++ *[0-9a-f]*:	fe 0f 00 4f 	adc pc,pc,pc
 4.10982 ++ *[0-9a-f]*:	f8 0c 00 4c 	adc r12,r12,r12
 4.10983 ++ *[0-9a-f]*:	ea 05 00 45 	adc r5,r5,r5
 4.10984 ++ *[0-9a-f]*:	e8 04 00 44 	adc r4,r4,r4
 4.10985 ++ *[0-9a-f]*:	fc 0e 00 4e 	adc lr,lr,lr
 4.10986 ++ *[0-9a-f]*:	e0 07 00 44 	adc r4,r0,r7
 4.10987 ++ *[0-9a-f]*:	e8 03 00 4d 	adc sp,r4,r3
 4.10988 ++ *[0-9a-f]*:	f8 00 00 42 	adc r2,r12,r0
 4.10989 ++
 4.10990 ++[0-9a-f]* <sbc>:
 4.10991 ++ *[0-9a-f]*:	fe 0f 01 4f 	sbc pc,pc,pc
 4.10992 ++ *[0-9a-f]*:	f8 0c 01 4c 	sbc r12,r12,r12
 4.10993 ++ *[0-9a-f]*:	ea 05 01 45 	sbc r5,r5,r5
 4.10994 ++ *[0-9a-f]*:	e8 04 01 44 	sbc r4,r4,r4
 4.10995 ++ *[0-9a-f]*:	fc 0e 01 4e 	sbc lr,lr,lr
 4.10996 ++ *[0-9a-f]*:	ee 09 01 46 	sbc r6,r7,r9
 4.10997 ++ *[0-9a-f]*:	f0 05 01 40 	sbc r0,r8,r5
 4.10998 ++ *[0-9a-f]*:	e0 04 01 41 	sbc r1,r0,r4
 4.10999 ++
 4.11000 ++[0-9a-f]* <mul_2>:
 4.11001 ++ *[0-9a-f]*:	fe 0f 02 4f 	mul pc,pc,pc
 4.11002 ++ *[0-9a-f]*:	f8 0c 02 4c 	mul r12,r12,r12
 4.11003 ++ *[0-9a-f]*:	ea 05 02 45 	mul r5,r5,r5
 4.11004 ++ *[0-9a-f]*:	e8 04 02 44 	mul r4,r4,r4
 4.11005 ++ *[0-9a-f]*:	fc 0e 02 4e 	mul lr,lr,lr
 4.11006 ++ *[0-9a-f]*:	e0 00 02 4f 	mul pc,r0,r0
 4.11007 ++ *[0-9a-f]*:	fe 0e 02 48 	mul r8,pc,lr
 4.11008 ++ *[0-9a-f]*:	f8 0f 02 44 	mul r4,r12,pc
 4.11009 ++
 4.11010 ++[0-9a-f]* <mac>:
 4.11011 ++ *[0-9a-f]*:	fe 0f 03 4f 	mac pc,pc,pc
 4.11012 ++ *[0-9a-f]*:	f8 0c 03 4c 	mac r12,r12,r12
 4.11013 ++ *[0-9a-f]*:	ea 05 03 45 	mac r5,r5,r5
 4.11014 ++ *[0-9a-f]*:	e8 04 03 44 	mac r4,r4,r4
 4.11015 ++ *[0-9a-f]*:	fc 0e 03 4e 	mac lr,lr,lr
 4.11016 ++ *[0-9a-f]*:	e8 00 03 4a 	mac r10,r4,r0
 4.11017 ++ *[0-9a-f]*:	fc 00 03 47 	mac r7,lr,r0
 4.11018 ++ *[0-9a-f]*:	f2 0c 03 42 	mac r2,r9,r12
 4.11019 ++
 4.11020 ++[0-9a-f]* <mulsd>:
 4.11021 ++ *[0-9a-f]*:	fe 0f 04 4f 	muls\.d pc,pc,pc
 4.11022 ++ *[0-9a-f]*:	f8 0c 04 4c 	muls\.d r12,r12,r12
 4.11023 ++ *[0-9a-f]*:	ea 05 04 45 	muls\.d r5,r5,r5
 4.11024 ++ *[0-9a-f]*:	e8 04 04 44 	muls\.d r4,r4,r4
 4.11025 ++ *[0-9a-f]*:	fc 0e 04 4e 	muls\.d lr,lr,lr
 4.11026 ++ *[0-9a-f]*:	f0 0e 04 42 	muls\.d r2,r8,lr
 4.11027 ++ *[0-9a-f]*:	e0 0b 04 44 	muls\.d r4,r0,r11
 4.11028 ++ *[0-9a-f]*:	fc 06 04 45 	muls\.d r5,lr,r6
 4.11029 ++
 4.11030 ++[0-9a-f]* <macsd>:
 4.11031 ++ *[0-9a-f]*:	fe 0f 05 40 	macs\.d r0,pc,pc
 4.11032 ++ *[0-9a-f]*:	f8 0c 05 4e 	macs\.d lr,r12,r12
 4.11033 ++ *[0-9a-f]*:	ea 05 05 48 	macs\.d r8,r5,r5
 4.11034 ++ *[0-9a-f]*:	e8 04 05 46 	macs\.d r6,r4,r4
 4.11035 ++ *[0-9a-f]*:	fc 0e 05 42 	macs\.d r2,lr,lr
 4.11036 ++ *[0-9a-f]*:	e2 09 05 48 	macs\.d r8,r1,r9
 4.11037 ++ *[0-9a-f]*:	f0 08 05 4e 	macs\.d lr,r8,r8
 4.11038 ++ *[0-9a-f]*:	e6 0c 05 44 	macs\.d r4,r3,r12
 4.11039 ++
 4.11040 ++[0-9a-f]* <mulud>:
 4.11041 ++ *[0-9a-f]*:	fe 0f 06 40 	mulu\.d r0,pc,pc
 4.11042 ++ *[0-9a-f]*:	f8 0c 06 4e 	mulu\.d lr,r12,r12
 4.11043 ++ *[0-9a-f]*:	ea 05 06 48 	mulu\.d r8,r5,r5
 4.11044 ++ *[0-9a-f]*:	e8 04 06 46 	mulu\.d r6,r4,r4
 4.11045 ++ *[0-9a-f]*:	fc 0e 06 42 	mulu\.d r2,lr,lr
 4.11046 ++ *[0-9a-f]*:	ea 00 06 46 	mulu\.d r6,r5,r0
 4.11047 ++ *[0-9a-f]*:	ec 01 06 44 	mulu\.d r4,r6,r1
 4.11048 ++ *[0-9a-f]*:	f0 02 06 48 	mulu\.d r8,r8,r2
 4.11049 ++
 4.11050 ++[0-9a-f]* <macud>:
 4.11051 ++ *[0-9a-f]*:	fe 0f 07 40 	macu\.d r0,pc,pc
 4.11052 ++ *[0-9a-f]*:	f8 0c 07 4e 	macu\.d lr,r12,r12
 4.11053 ++ *[0-9a-f]*:	ea 05 07 48 	macu\.d r8,r5,r5
 4.11054 ++ *[0-9a-f]*:	e8 04 07 46 	macu\.d r6,r4,r4
 4.11055 ++ *[0-9a-f]*:	fc 0e 07 42 	macu\.d r2,lr,lr
 4.11056 ++ *[0-9a-f]*:	fa 0b 07 46 	macu\.d r6,sp,r11
 4.11057 ++ *[0-9a-f]*:	e8 08 07 42 	macu\.d r2,r4,r8
 4.11058 ++ *[0-9a-f]*:	f4 09 07 46 	macu\.d r6,r10,r9
 4.11059 ++
 4.11060 ++[0-9a-f]* <asr_1>:
 4.11061 ++ *[0-9a-f]*:	fe 0f 08 4f 	asr pc,pc,pc
 4.11062 ++ *[0-9a-f]*:	f8 0c 08 4c 	asr r12,r12,r12
 4.11063 ++ *[0-9a-f]*:	ea 05 08 45 	asr r5,r5,r5
 4.11064 ++ *[0-9a-f]*:	e8 04 08 44 	asr r4,r4,r4
 4.11065 ++ *[0-9a-f]*:	fc 0e 08 4e 	asr lr,lr,lr
 4.11066 ++ *[0-9a-f]*:	ec 0f 08 4f 	asr pc,r6,pc
 4.11067 ++ *[0-9a-f]*:	ec 0c 08 40 	asr r0,r6,r12
 4.11068 ++ *[0-9a-f]*:	fa 00 08 44 	asr r4,sp,r0
 4.11069 ++
 4.11070 ++[0-9a-f]* <lsl_1>:
 4.11071 ++ *[0-9a-f]*:	fe 0f 09 4f 	lsl pc,pc,pc
 4.11072 ++ *[0-9a-f]*:	f8 0c 09 4c 	lsl r12,r12,r12
 4.11073 ++ *[0-9a-f]*:	ea 05 09 45 	lsl r5,r5,r5
 4.11074 ++ *[0-9a-f]*:	e8 04 09 44 	lsl r4,r4,r4
 4.11075 ++ *[0-9a-f]*:	fc 0e 09 4e 	lsl lr,lr,lr
 4.11076 ++ *[0-9a-f]*:	ea 0e 09 4e 	lsl lr,r5,lr
 4.11077 ++ *[0-9a-f]*:	fe 03 09 45 	lsl r5,pc,r3
 4.11078 ++ *[0-9a-f]*:	fe 09 09 41 	lsl r1,pc,r9
 4.11079 ++
 4.11080 ++[0-9a-f]* <lsr_1>:
 4.11081 ++ *[0-9a-f]*:	fe 0f 0a 4f 	lsr pc,pc,pc
 4.11082 ++ *[0-9a-f]*:	f8 0c 0a 4c 	lsr r12,r12,r12
 4.11083 ++ *[0-9a-f]*:	ea 05 0a 45 	lsr r5,r5,r5
 4.11084 ++ *[0-9a-f]*:	e8 04 0a 44 	lsr r4,r4,r4
 4.11085 ++ *[0-9a-f]*:	fc 0e 0a 4e 	lsr lr,lr,lr
 4.11086 ++ *[0-9a-f]*:	e8 01 0a 42 	lsr r2,r4,r1
 4.11087 ++ *[0-9a-f]*:	e2 06 0a 45 	lsr r5,r1,r6
 4.11088 ++ *[0-9a-f]*:	ec 07 0a 4d 	lsr sp,r6,r7
 4.11089 ++
 4.11090 ++[0-9a-f]* <xchg>:
 4.11091 ++ *[0-9a-f]*:	fe 0f 0b 4f 	xchg pc,pc,pc
 4.11092 ++ *[0-9a-f]*:	f8 0c 0b 4c 	xchg r12,r12,r12
 4.11093 ++ *[0-9a-f]*:	ea 05 0b 45 	xchg r5,r5,r5
 4.11094 ++ *[0-9a-f]*:	e8 04 0b 44 	xchg r4,r4,r4
 4.11095 ++ *[0-9a-f]*:	fc 0e 0b 4e 	xchg lr,lr,lr
 4.11096 ++ *[0-9a-f]*:	e8 0d 0b 4e 	xchg lr,r4,sp
 4.11097 ++ *[0-9a-f]*:	ea 0c 0b 41 	xchg r1,r5,r12
 4.11098 ++ *[0-9a-f]*:	f8 00 0b 4e 	xchg lr,r12,r0
 4.11099 ++
 4.11100 ++[0-9a-f]* <max>:
 4.11101 ++ *[0-9a-f]*:	fe 0f 0c 4f 	max pc,pc,pc
 4.11102 ++ *[0-9a-f]*:	f8 0c 0c 4c 	max r12,r12,r12
 4.11103 ++ *[0-9a-f]*:	ea 05 0c 45 	max r5,r5,r5
 4.11104 ++ *[0-9a-f]*:	e8 04 0c 44 	max r4,r4,r4
 4.11105 ++ *[0-9a-f]*:	fc 0e 0c 4e 	max lr,lr,lr
 4.11106 ++ *[0-9a-f]*:	e4 0d 0c 4e 	max lr,r2,sp
 4.11107 ++ *[0-9a-f]*:	f4 09 0c 44 	max r4,r10,r9
 4.11108 ++ *[0-9a-f]*:	f2 0e 0c 4e 	max lr,r9,lr
 4.11109 ++
 4.11110 ++[0-9a-f]* <min>:
 4.11111 ++ *[0-9a-f]*:	fe 0f 0d 4f 	min pc,pc,pc
 4.11112 ++ *[0-9a-f]*:	f8 0c 0d 4c 	min r12,r12,r12
 4.11113 ++ *[0-9a-f]*:	ea 05 0d 45 	min r5,r5,r5
 4.11114 ++ *[0-9a-f]*:	e8 04 0d 44 	min r4,r4,r4
 4.11115 ++ *[0-9a-f]*:	fc 0e 0d 4e 	min lr,lr,lr
 4.11116 ++ *[0-9a-f]*:	ee 08 0d 49 	min r9,r7,r8
 4.11117 ++ *[0-9a-f]*:	ea 05 0d 4d 	min sp,r5,r5
 4.11118 ++ *[0-9a-f]*:	e2 04 0d 44 	min r4,r1,r4
 4.11119 ++
 4.11120 ++[0-9a-f]* <addabs>:
 4.11121 ++ *[0-9a-f]*:	fe 0f 0e 4f 	addabs pc,pc,pc
 4.11122 ++ *[0-9a-f]*:	f8 0c 0e 4c 	addabs r12,r12,r12
 4.11123 ++ *[0-9a-f]*:	ea 05 0e 45 	addabs r5,r5,r5
 4.11124 ++ *[0-9a-f]*:	e8 04 0e 44 	addabs r4,r4,r4
 4.11125 ++ *[0-9a-f]*:	fc 0e 0e 4e 	addabs lr,lr,lr
 4.11126 ++ *[0-9a-f]*:	f4 00 0e 47 	addabs r7,r10,r0
 4.11127 ++ *[0-9a-f]*:	f2 07 0e 49 	addabs r9,r9,r7
 4.11128 ++ *[0-9a-f]*:	f0 0c 0e 42 	addabs r2,r8,r12
 4.11129 ++
 4.11130 ++[0-9a-f]* <mulnhh_w>:
 4.11131 ++ *[0-9a-f]*:	fe 0f 01 8f 	mulnhh\.w pc,pc:b,pc:b
 4.11132 ++ *[0-9a-f]*:	f8 0c 01 bc 	mulnhh\.w r12,r12:t,r12:t
 4.11133 ++ *[0-9a-f]*:	ea 05 01 b5 	mulnhh\.w r5,r5:t,r5:t
 4.11134 ++ *[0-9a-f]*:	e8 04 01 84 	mulnhh\.w r4,r4:b,r4:b
 4.11135 ++ *[0-9a-f]*:	fc 0e 01 be 	mulnhh\.w lr,lr:t,lr:t
 4.11136 ++ *[0-9a-f]*:	fa 09 01 ab 	mulnhh\.w r11,sp:t,r9:b
 4.11137 ++ *[0-9a-f]*:	e8 0e 01 9d 	mulnhh\.w sp,r4:b,lr:t
 4.11138 ++ *[0-9a-f]*:	e4 0b 01 ac 	mulnhh\.w r12,r2:t,r11:b
 4.11139 ++
 4.11140 ++[0-9a-f]* <mulnwh_d>:
 4.11141 ++ *[0-9a-f]*:	fe 0f 02 80 	mulnwh\.d r0,pc,pc:b
 4.11142 ++ *[0-9a-f]*:	f8 0c 02 9e 	mulnwh\.d lr,r12,r12:t
 4.11143 ++ *[0-9a-f]*:	ea 05 02 98 	mulnwh\.d r8,r5,r5:t
 4.11144 ++ *[0-9a-f]*:	e8 04 02 86 	mulnwh\.d r6,r4,r4:b
 4.11145 ++ *[0-9a-f]*:	fc 0e 02 92 	mulnwh\.d r2,lr,lr:t
 4.11146 ++ *[0-9a-f]*:	e6 02 02 9e 	mulnwh\.d lr,r3,r2:t
 4.11147 ++ *[0-9a-f]*:	ea 09 02 84 	mulnwh\.d r4,r5,r9:b
 4.11148 ++ *[0-9a-f]*:	e8 04 02 9c 	mulnwh\.d r12,r4,r4:t
 4.11149 ++
 4.11150 ++[0-9a-f]* <machh_w>:
 4.11151 ++ *[0-9a-f]*:	fe 0f 04 8f 	machh\.w pc,pc:b,pc:b
 4.11152 ++ *[0-9a-f]*:	f8 0c 04 bc 	machh\.w r12,r12:t,r12:t
 4.11153 ++ *[0-9a-f]*:	ea 05 04 b5 	machh\.w r5,r5:t,r5:t
 4.11154 ++ *[0-9a-f]*:	e8 04 04 84 	machh\.w r4,r4:b,r4:b
 4.11155 ++ *[0-9a-f]*:	fc 0e 04 be 	machh\.w lr,lr:t,lr:t
 4.11156 ++ *[0-9a-f]*:	ea 01 04 9e 	machh\.w lr,r5:b,r1:t
 4.11157 ++ *[0-9a-f]*:	ec 07 04 89 	machh\.w r9,r6:b,r7:b
 4.11158 ++ *[0-9a-f]*:	fc 0c 04 a5 	machh\.w r5,lr:t,r12:b
 4.11159 ++
 4.11160 ++[0-9a-f]* <machh_d>:
 4.11161 ++ *[0-9a-f]*:	fe 0f 05 80 	machh\.d r0,pc:b,pc:b
 4.11162 ++ *[0-9a-f]*:	f8 0c 05 be 	machh\.d lr,r12:t,r12:t
 4.11163 ++ *[0-9a-f]*:	ea 05 05 b8 	machh\.d r8,r5:t,r5:t
 4.11164 ++ *[0-9a-f]*:	e8 04 05 86 	machh\.d r6,r4:b,r4:b
 4.11165 ++ *[0-9a-f]*:	fc 0e 05 b2 	machh\.d r2,lr:t,lr:t
 4.11166 ++ *[0-9a-f]*:	e0 08 05 8a 	machh\.d r10,r0:b,r8:b
 4.11167 ++ *[0-9a-f]*:	e8 05 05 9e 	machh\.d lr,r4:b,r5:t
 4.11168 ++ *[0-9a-f]*:	e0 04 05 98 	machh\.d r8,r0:b,r4:t
 4.11169 ++
 4.11170 ++[0-9a-f]* <macsathh_w>:
 4.11171 ++ *[0-9a-f]*:	fe 0f 06 8f 	macsathh\.w pc,pc:b,pc:b
 4.11172 ++ *[0-9a-f]*:	f8 0c 06 bc 	macsathh\.w r12,r12:t,r12:t
 4.11173 ++ *[0-9a-f]*:	ea 05 06 b5 	macsathh\.w r5,r5:t,r5:t
 4.11174 ++ *[0-9a-f]*:	e8 04 06 84 	macsathh\.w r4,r4:b,r4:b
 4.11175 ++ *[0-9a-f]*:	fc 0e 06 be 	macsathh\.w lr,lr:t,lr:t
 4.11176 ++ *[0-9a-f]*:	ee 0f 06 b7 	macsathh\.w r7,r7:t,pc:t
 4.11177 ++ *[0-9a-f]*:	e4 04 06 a4 	macsathh\.w r4,r2:t,r4:b
 4.11178 ++ *[0-9a-f]*:	f0 03 06 b4 	macsathh\.w r4,r8:t,r3:t
 4.11179 ++
 4.11180 ++[0-9a-f]* <mulhh_w>:
 4.11181 ++ *[0-9a-f]*:	fe 0f 07 8f 	mulhh\.w pc,pc:b,pc:b
 4.11182 ++ *[0-9a-f]*:	f8 0c 07 bc 	mulhh\.w r12,r12:t,r12:t
 4.11183 ++ *[0-9a-f]*:	ea 05 07 b5 	mulhh\.w r5,r5:t,r5:t
 4.11184 ++ *[0-9a-f]*:	e8 04 07 84 	mulhh\.w r4,r4:b,r4:b
 4.11185 ++ *[0-9a-f]*:	fc 0e 07 be 	mulhh\.w lr,lr:t,lr:t
 4.11186 ++ *[0-9a-f]*:	e8 09 07 a7 	mulhh\.w r7,r4:t,r9:b
 4.11187 ++ *[0-9a-f]*:	e6 07 07 bf 	mulhh\.w pc,r3:t,r7:t
 4.11188 ++ *[0-9a-f]*:	e8 09 07 9f 	mulhh\.w pc,r4:b,r9:t
 4.11189 ++
 4.11190 ++[0-9a-f]* <mulsathh_h>:
 4.11191 ++ *[0-9a-f]*:	fe 0f 08 8f 	mulsathh\.h pc,pc:b,pc:b
 4.11192 ++ *[0-9a-f]*:	f8 0c 08 bc 	mulsathh\.h r12,r12:t,r12:t
 4.11193 ++ *[0-9a-f]*:	ea 05 08 b5 	mulsathh\.h r5,r5:t,r5:t
 4.11194 ++ *[0-9a-f]*:	e8 04 08 84 	mulsathh\.h r4,r4:b,r4:b
 4.11195 ++ *[0-9a-f]*:	fc 0e 08 be 	mulsathh\.h lr,lr:t,lr:t
 4.11196 ++ *[0-9a-f]*:	e2 0d 08 83 	mulsathh\.h r3,r1:b,sp:b
 4.11197 ++ *[0-9a-f]*:	fc 0b 08 ab 	mulsathh\.h r11,lr:t,r11:b
 4.11198 ++ *[0-9a-f]*:	f0 0b 08 98 	mulsathh\.h r8,r8:b,r11:t
 4.11199 ++
 4.11200 ++[0-9a-f]* <mulsathh_w>:
 4.11201 ++ *[0-9a-f]*:	fe 0f 09 8f 	mulsathh\.w pc,pc:b,pc:b
 4.11202 ++ *[0-9a-f]*:	f8 0c 09 bc 	mulsathh\.w r12,r12:t,r12:t
 4.11203 ++ *[0-9a-f]*:	ea 05 09 b5 	mulsathh\.w r5,r5:t,r5:t
 4.11204 ++ *[0-9a-f]*:	e8 04 09 84 	mulsathh\.w r4,r4:b,r4:b
 4.11205 ++ *[0-9a-f]*:	fc 0e 09 be 	mulsathh\.w lr,lr:t,lr:t
 4.11206 ++ *[0-9a-f]*:	f6 06 09 ae 	mulsathh\.w lr,r11:t,r6:b
 4.11207 ++ *[0-9a-f]*:	ec 07 09 96 	mulsathh\.w r6,r6:b,r7:t
 4.11208 ++ *[0-9a-f]*:	e4 03 09 8a 	mulsathh\.w r10,r2:b,r3:b
 4.11209 ++
 4.11210 ++[0-9a-f]* <mulsatrndhh_h>:
 4.11211 ++ *[0-9a-f]*:	fe 0f 0a 8f 	mulsatrndhh\.h pc,pc:b,pc:b
 4.11212 ++ *[0-9a-f]*:	f8 0c 0a bc 	mulsatrndhh\.h r12,r12:t,r12:t
 4.11213 ++ *[0-9a-f]*:	ea 05 0a b5 	mulsatrndhh\.h r5,r5:t,r5:t
 4.11214 ++ *[0-9a-f]*:	e8 04 0a 84 	mulsatrndhh\.h r4,r4:b,r4:b
 4.11215 ++ *[0-9a-f]*:	fc 0e 0a be 	mulsatrndhh\.h lr,lr:t,lr:t
 4.11216 ++ *[0-9a-f]*:	ec 09 0a 8b 	mulsatrndhh\.h r11,r6:b,r9:b
 4.11217 ++ *[0-9a-f]*:	e6 08 0a 9b 	mulsatrndhh\.h r11,r3:b,r8:t
 4.11218 ++ *[0-9a-f]*:	fa 07 0a b5 	mulsatrndhh\.h r5,sp:t,r7:t
 4.11219 ++
 4.11220 ++[0-9a-f]* <mulsatrndwh_w>:
 4.11221 ++ *[0-9a-f]*:	fe 0f 0b 8f 	mulsatrndwh\.w pc,pc,pc:b
 4.11222 ++ *[0-9a-f]*:	f8 0c 0b 9c 	mulsatrndwh\.w r12,r12,r12:t
 4.11223 ++ *[0-9a-f]*:	ea 05 0b 95 	mulsatrndwh\.w r5,r5,r5:t
 4.11224 ++ *[0-9a-f]*:	e8 04 0b 84 	mulsatrndwh\.w r4,r4,r4:b
 4.11225 ++ *[0-9a-f]*:	fc 0e 0b 9e 	mulsatrndwh\.w lr,lr,lr:t
 4.11226 ++ *[0-9a-f]*:	f8 00 0b 85 	mulsatrndwh\.w r5,r12,r0:b
 4.11227 ++ *[0-9a-f]*:	f4 0f 0b 87 	mulsatrndwh\.w r7,r10,pc:b
 4.11228 ++ *[0-9a-f]*:	f0 05 0b 9a 	mulsatrndwh\.w r10,r8,r5:t
 4.11229 ++
 4.11230 ++[0-9a-f]* <macwh_d>:
 4.11231 ++ *[0-9a-f]*:	fe 0f 0c 80 	macwh\.d r0,pc,pc:b
 4.11232 ++ *[0-9a-f]*:	f8 0c 0c 9e 	macwh\.d lr,r12,r12:t
 4.11233 ++ *[0-9a-f]*:	ea 05 0c 98 	macwh\.d r8,r5,r5:t
 4.11234 ++ *[0-9a-f]*:	e8 04 0c 86 	macwh\.d r6,r4,r4:b
 4.11235 ++ *[0-9a-f]*:	fc 0e 0c 92 	macwh\.d r2,lr,lr:t
 4.11236 ++ *[0-9a-f]*:	f4 0c 0c 94 	macwh\.d r4,r10,r12:t
 4.11237 ++ *[0-9a-f]*:	ee 0d 0c 84 	macwh\.d r4,r7,sp:b
 4.11238 ++ *[0-9a-f]*:	f2 0b 0c 8e 	macwh\.d lr,r9,r11:b
 4.11239 ++
 4.11240 ++[0-9a-f]* <mulwh_d>:
 4.11241 ++ *[0-9a-f]*:	fe 0f 0d 80 	mulwh\.d r0,pc,pc:b
 4.11242 ++ *[0-9a-f]*:	f8 0c 0d 9e 	mulwh\.d lr,r12,r12:t
 4.11243 ++ *[0-9a-f]*:	ea 05 0d 98 	mulwh\.d r8,r5,r5:t
 4.11244 ++ *[0-9a-f]*:	e8 04 0d 86 	mulwh\.d r6,r4,r4:b
 4.11245 ++ *[0-9a-f]*:	fc 0e 0d 92 	mulwh\.d r2,lr,lr:t
 4.11246 ++ *[0-9a-f]*:	ea 01 0d 8c 	mulwh\.d r12,r5,r1:b
 4.11247 ++ *[0-9a-f]*:	e2 03 0d 90 	mulwh\.d r0,r1,r3:t
 4.11248 ++ *[0-9a-f]*:	f2 02 0d 80 	mulwh\.d r0,r9,r2:b
 4.11249 ++
 4.11250 ++[0-9a-f]* <mulsatwh_w>:
 4.11251 ++ *[0-9a-f]*:	fe 0f 0e 8f 	mulsatwh\.w pc,pc,pc:b
 4.11252 ++ *[0-9a-f]*:	f8 0c 0e 9c 	mulsatwh\.w r12,r12,r12:t
 4.11253 ++ *[0-9a-f]*:	ea 05 0e 95 	mulsatwh\.w r5,r5,r5:t
 4.11254 ++ *[0-9a-f]*:	e8 04 0e 84 	mulsatwh\.w r4,r4,r4:b
 4.11255 ++ *[0-9a-f]*:	fc 0e 0e 9e 	mulsatwh\.w lr,lr,lr:t
 4.11256 ++ *[0-9a-f]*:	fe 0a 0e 9b 	mulsatwh\.w r11,pc,r10:t
 4.11257 ++ *[0-9a-f]*:	f8 09 0e 9d 	mulsatwh\.w sp,r12,r9:t
 4.11258 ++ *[0-9a-f]*:	e6 02 0e 90 	mulsatwh\.w r0,r3,r2:t
 4.11259 ++
 4.11260 ++[0-9a-f]* <ldw7>:
 4.11261 ++ *[0-9a-f]*:	fe 0f 0f 8f 	ld\.w pc,pc\[pc:b<<2\]
 4.11262 ++ *[0-9a-f]*:	f8 0c 0f bc 	ld\.w r12,r12\[r12:t<<2\]
 4.11263 ++ *[0-9a-f]*:	ea 05 0f a5 	ld\.w r5,r5\[r5:u<<2\]
 4.11264 ++ *[0-9a-f]*:	e8 04 0f 94 	ld\.w r4,r4\[r4:l<<2\]
 4.11265 ++ *[0-9a-f]*:	fc 0e 0f 9e 	ld\.w lr,lr\[lr:l<<2\]
 4.11266 ++ *[0-9a-f]*:	f4 06 0f 99 	ld\.w r9,r10\[r6:l<<2\]
 4.11267 ++ *[0-9a-f]*:	f4 0a 0f 82 	ld\.w r2,r10\[r10:b<<2\]
 4.11268 ++ *[0-9a-f]*:	ea 0f 0f 8b 	ld\.w r11,r5\[pc:b<<2\]
 4.11269 ++
 4.11270 ++[0-9a-f]* <satadd_w>:
 4.11271 ++ *[0-9a-f]*:	fe 0f 00 cf 	satadd\.w pc,pc,pc
 4.11272 ++ *[0-9a-f]*:	f8 0c 00 cc 	satadd\.w r12,r12,r12
 4.11273 ++ *[0-9a-f]*:	ea 05 00 c5 	satadd\.w r5,r5,r5
 4.11274 ++ *[0-9a-f]*:	e8 04 00 c4 	satadd\.w r4,r4,r4
 4.11275 ++ *[0-9a-f]*:	fc 0e 00 ce 	satadd\.w lr,lr,lr
 4.11276 ++ *[0-9a-f]*:	f0 0b 00 c4 	satadd\.w r4,r8,r11
 4.11277 ++ *[0-9a-f]*:	f8 06 00 c3 	satadd\.w r3,r12,r6
 4.11278 ++ *[0-9a-f]*:	fc 09 00 c3 	satadd\.w r3,lr,r9
 4.11279 ++
 4.11280 ++[0-9a-f]* <satsub_w1>:
 4.11281 ++ *[0-9a-f]*:	fe 0f 01 cf 	satsub\.w pc,pc,pc
 4.11282 ++ *[0-9a-f]*:	f8 0c 01 cc 	satsub\.w r12,r12,r12
 4.11283 ++ *[0-9a-f]*:	ea 05 01 c5 	satsub\.w r5,r5,r5
 4.11284 ++ *[0-9a-f]*:	e8 04 01 c4 	satsub\.w r4,r4,r4
 4.11285 ++ *[0-9a-f]*:	fc 0e 01 ce 	satsub\.w lr,lr,lr
 4.11286 ++ *[0-9a-f]*:	fa 00 01 c8 	satsub\.w r8,sp,r0
 4.11287 ++ *[0-9a-f]*:	f0 04 01 c9 	satsub\.w r9,r8,r4
 4.11288 ++ *[0-9a-f]*:	fc 02 01 cf 	satsub\.w pc,lr,r2
 4.11289 ++
 4.11290 ++[0-9a-f]* <satadd_h>:
 4.11291 ++ *[0-9a-f]*:	fe 0f 02 cf 	satadd\.h pc,pc,pc
 4.11292 ++ *[0-9a-f]*:	f8 0c 02 cc 	satadd\.h r12,r12,r12
 4.11293 ++ *[0-9a-f]*:	ea 05 02 c5 	satadd\.h r5,r5,r5
 4.11294 ++ *[0-9a-f]*:	e8 04 02 c4 	satadd\.h r4,r4,r4
 4.11295 ++ *[0-9a-f]*:	fc 0e 02 ce 	satadd\.h lr,lr,lr
 4.11296 ++ *[0-9a-f]*:	e6 09 02 c7 	satadd\.h r7,r3,r9
 4.11297 ++ *[0-9a-f]*:	e0 02 02 c1 	satadd\.h r1,r0,r2
 4.11298 ++ *[0-9a-f]*:	e8 0e 02 c1 	satadd\.h r1,r4,lr
 4.11299 ++
 4.11300 ++[0-9a-f]* <satsub_h>:
 4.11301 ++ *[0-9a-f]*:	fe 0f 03 cf 	satsub\.h pc,pc,pc
 4.11302 ++ *[0-9a-f]*:	f8 0c 03 cc 	satsub\.h r12,r12,r12
 4.11303 ++ *[0-9a-f]*:	ea 05 03 c5 	satsub\.h r5,r5,r5
 4.11304 ++ *[0-9a-f]*:	e8 04 03 c4 	satsub\.h r4,r4,r4
 4.11305 ++ *[0-9a-f]*:	fc 0e 03 ce 	satsub\.h lr,lr,lr
 4.11306 ++ *[0-9a-f]*:	fc 03 03 ce 	satsub\.h lr,lr,r3
 4.11307 ++ *[0-9a-f]*:	ec 05 03 cb 	satsub\.h r11,r6,r5
 4.11308 ++ *[0-9a-f]*:	fa 00 03 c3 	satsub\.h r3,sp,r0
 4.11309 ++
 4.11310 ++[0-9a-f]* <mul3>:
 4.11311 ++ *[0-9a-f]*:	fe 0f 10 00 	mul pc,pc,0
 4.11312 ++ *[0-9a-f]*:	f8 0c 10 ff 	mul r12,r12,-1
 4.11313 ++ *[0-9a-f]*:	ea 05 10 80 	mul r5,r5,-128
 4.11314 ++ *[0-9a-f]*:	e8 04 10 7f 	mul r4,r4,127
 4.11315 ++ *[0-9a-f]*:	fc 0e 10 01 	mul lr,lr,1
 4.11316 ++ *[0-9a-f]*:	e4 0c 10 f9 	mul r12,r2,-7
 4.11317 ++ *[0-9a-f]*:	fe 01 10 5f 	mul r1,pc,95
 4.11318 ++ *[0-9a-f]*:	ec 04 10 13 	mul r4,r6,19
 4.11319 ++
 4.11320 ++[0-9a-f]* <rsub2>:
 4.11321 ++ *[0-9a-f]*:	fe 0f 11 00 	rsub pc,pc,0
 4.11322 ++ *[0-9a-f]*:	f8 0c 11 ff 	rsub r12,r12,-1
 4.11323 ++ *[0-9a-f]*:	ea 05 11 80 	rsub r5,r5,-128
 4.11324 ++ *[0-9a-f]*:	e8 04 11 7f 	rsub r4,r4,127
 4.11325 ++ *[0-9a-f]*:	fc 0e 11 01 	rsub lr,lr,1
 4.11326 ++ *[0-9a-f]*:	fc 09 11 60 	rsub r9,lr,96
 4.11327 ++ *[0-9a-f]*:	e2 0b 11 38 	rsub r11,r1,56
 4.11328 ++ *[0-9a-f]*:	ee 00 11 a9 	rsub r0,r7,-87
 4.11329 ++
 4.11330 ++[0-9a-f]* <clz>:
 4.11331 ++ *[0-9a-f]*:	fe 0f 12 00 	clz pc,pc
 4.11332 ++ *[0-9a-f]*:	f8 0c 12 00 	clz r12,r12
 4.11333 ++ *[0-9a-f]*:	ea 05 12 00 	clz r5,r5
 4.11334 ++ *[0-9a-f]*:	e8 04 12 00 	clz r4,r4
 4.11335 ++ *[0-9a-f]*:	fc 0e 12 00 	clz lr,lr
 4.11336 ++ *[0-9a-f]*:	e6 02 12 00 	clz r2,r3
 4.11337 ++ *[0-9a-f]*:	f6 05 12 00 	clz r5,r11
 4.11338 ++ *[0-9a-f]*:	e6 0f 12 00 	clz pc,r3
 4.11339 ++
 4.11340 ++[0-9a-f]* <cpc1>:
 4.11341 ++ *[0-9a-f]*:	fe 0f 13 00 	cpc pc,pc
 4.11342 ++ *[0-9a-f]*:	f8 0c 13 00 	cpc r12,r12
 4.11343 ++ *[0-9a-f]*:	ea 05 13 00 	cpc r5,r5
 4.11344 ++ *[0-9a-f]*:	e8 04 13 00 	cpc r4,r4
 4.11345 ++ *[0-9a-f]*:	fc 0e 13 00 	cpc lr,lr
 4.11346 ++ *[0-9a-f]*:	e8 0f 13 00 	cpc pc,r4
 4.11347 ++ *[0-9a-f]*:	f2 05 13 00 	cpc r5,r9
 4.11348 ++ *[0-9a-f]*:	ee 06 13 00 	cpc r6,r7
 4.11349 ++
 4.11350 ++[0-9a-f]* <asr3>:
 4.11351 ++ *[0-9a-f]*:	fe 0f 14 00 	asr pc,pc,0x0
 4.11352 ++ *[0-9a-f]*:	f8 0c 14 1f 	asr r12,r12,0x1f
 4.11353 ++ *[0-9a-f]*:	ea 05 14 10 	asr r5,r5,0x10
 4.11354 ++ *[0-9a-f]*:	e8 04 14 0f 	asr r4,r4,0xf
 4.11355 ++ *[0-9a-f]*:	fc 0e 14 01 	asr lr,lr,0x1
 4.11356 ++ *[0-9a-f]*:	f6 04 14 13 	asr r4,r11,0x13
 4.11357 ++ *[0-9a-f]*:	fe 0d 14 1a 	asr sp,pc,0x1a
 4.11358 ++ *[0-9a-f]*:	fa 0b 14 08 	asr r11,sp,0x8
 4.11359 ++
 4.11360 ++[0-9a-f]* <lsl3>:
 4.11361 ++ *[0-9a-f]*:	fe 0f 15 00 	lsl pc,pc,0x0
 4.11362 ++ *[0-9a-f]*:	f8 0c 15 1f 	lsl r12,r12,0x1f
 4.11363 ++ *[0-9a-f]*:	ea 05 15 10 	lsl r5,r5,0x10
 4.11364 ++ *[0-9a-f]*:	e8 04 15 0f 	lsl r4,r4,0xf
 4.11365 ++ *[0-9a-f]*:	fc 0e 15 01 	lsl lr,lr,0x1
 4.11366 ++ *[0-9a-f]*:	f4 08 15 11 	lsl r8,r10,0x11
 4.11367 ++ *[0-9a-f]*:	fc 02 15 03 	lsl r2,lr,0x3
 4.11368 ++ *[0-9a-f]*:	f6 0e 15 0e 	lsl lr,r11,0xe
 4.11369 ++
 4.11370 ++[0-9a-f]* <lsr3>:
 4.11371 ++ *[0-9a-f]*:	fe 0f 16 00 	lsr pc,pc,0x0
 4.11372 ++ *[0-9a-f]*:	f8 0c 16 1f 	lsr r12,r12,0x1f
 4.11373 ++ *[0-9a-f]*:	ea 05 16 10 	lsr r5,r5,0x10
 4.11374 ++ *[0-9a-f]*:	e8 04 16 0f 	lsr r4,r4,0xf
 4.11375 ++ *[0-9a-f]*:	fc 0e 16 01 	lsr lr,lr,0x1
 4.11376 ++ *[0-9a-f]*:	e6 04 16 1f 	lsr r4,r3,0x1f
 4.11377 ++ *[0-9a-f]*:	f2 0f 16 0e 	lsr pc,r9,0xe
 4.11378 ++ *[0-9a-f]*:	e0 03 16 06 	lsr r3,r0,0x6
 4.11379 ++
 4.11380 ++[0-9a-f]* <movc1>:
 4.11381 ++ *[0-9a-f]*:	fe 0f 17 00 	moveq pc,pc
 4.11382 ++ *[0-9a-f]*:	f8 0c 17 f0 	moval r12,r12
 4.11383 ++ *[0-9a-f]*:	ea 05 17 80 	movls r5,r5
 4.11384 ++ *[0-9a-f]*:	e8 04 17 70 	movpl r4,r4
 4.11385 ++ *[0-9a-f]*:	fc 0e 17 10 	movne lr,lr
 4.11386 ++ *[0-9a-f]*:	f6 0f 17 10 	movne pc,r11
 4.11387 ++ *[0-9a-f]*:	e4 0a 17 60 	movmi r10,r2
 4.11388 ++ *[0-9a-f]*:	f8 08 17 80 	movls r8,r12
 4.11389 ++
 4.11390 ++[0-9a-f]* <padd_h>:
 4.11391 ++ *[0-9a-f]*:	fe 0f 20 0f 	padd\.h pc,pc,pc
 4.11392 ++ *[0-9a-f]*:	f8 0c 20 0c 	padd\.h r12,r12,r12
 4.11393 ++ *[0-9a-f]*:	ea 05 20 05 	padd\.h r5,r5,r5
 4.11394 ++ *[0-9a-f]*:	e8 04 20 04 	padd\.h r4,r4,r4
 4.11395 ++ *[0-9a-f]*:	fc 0e 20 0e 	padd\.h lr,lr,lr
 4.11396 ++ *[0-9a-f]*:	e4 07 20 08 	padd\.h r8,r2,r7
 4.11397 ++ *[0-9a-f]*:	e0 03 20 00 	padd\.h r0,r0,r3
 4.11398 ++ *[0-9a-f]*:	f6 06 20 0d 	padd\.h sp,r11,r6
 4.11399 ++
 4.11400 ++[0-9a-f]* <psub_h>:
 4.11401 ++ *[0-9a-f]*:	fe 0f 20 1f 	psub\.h pc,pc,pc
 4.11402 ++ *[0-9a-f]*:	f8 0c 20 1c 	psub\.h r12,r12,r12
 4.11403 ++ *[0-9a-f]*:	ea 05 20 15 	psub\.h r5,r5,r5
 4.11404 ++ *[0-9a-f]*:	e8 04 20 14 	psub\.h r4,r4,r4
 4.11405 ++ *[0-9a-f]*:	fc 0e 20 1e 	psub\.h lr,lr,lr
 4.11406 ++ *[0-9a-f]*:	ec 08 20 1e 	psub\.h lr,r6,r8
 4.11407 ++ *[0-9a-f]*:	e2 0d 20 10 	psub\.h r0,r1,sp
 4.11408 ++ *[0-9a-f]*:	fe 0d 20 1f 	psub\.h pc,pc,sp
 4.11409 ++
 4.11410 ++[0-9a-f]* <paddx_h>:
 4.11411 ++ *[0-9a-f]*:	fe 0f 20 2f 	paddx\.h pc,pc,pc
 4.11412 ++ *[0-9a-f]*:	f8 0c 20 2c 	paddx\.h r12,r12,r12
 4.11413 ++ *[0-9a-f]*:	ea 05 20 25 	paddx\.h r5,r5,r5
 4.11414 ++ *[0-9a-f]*:	e8 04 20 24 	paddx\.h r4,r4,r4
 4.11415 ++ *[0-9a-f]*:	fc 0e 20 2e 	paddx\.h lr,lr,lr
 4.11416 ++ *[0-9a-f]*:	fe 01 20 2f 	paddx\.h pc,pc,r1
 4.11417 ++ *[0-9a-f]*:	e8 05 20 2a 	paddx\.h r10,r4,r5
 4.11418 ++ *[0-9a-f]*:	fe 02 20 25 	paddx\.h r5,pc,r2
 4.11419 ++
 4.11420 ++[0-9a-f]* <psubx_h>:
 4.11421 ++ *[0-9a-f]*:	fe 0f 20 3f 	psubx\.h pc,pc,pc
 4.11422 ++ *[0-9a-f]*:	f8 0c 20 3c 	psubx\.h r12,r12,r12
 4.11423 ++ *[0-9a-f]*:	ea 05 20 35 	psubx\.h r5,r5,r5
 4.11424 ++ *[0-9a-f]*:	e8 04 20 34 	psubx\.h r4,r4,r4
 4.11425 ++ *[0-9a-f]*:	fc 0e 20 3e 	psubx\.h lr,lr,lr
 4.11426 ++ *[0-9a-f]*:	f8 05 20 35 	psubx\.h r5,r12,r5
 4.11427 ++ *[0-9a-f]*:	f0 03 20 33 	psubx\.h r3,r8,r3
 4.11428 ++ *[0-9a-f]*:	e4 03 20 35 	psubx\.h r5,r2,r3
 4.11429 ++
 4.11430 ++[0-9a-f]* <padds_sh>:
 4.11431 ++ *[0-9a-f]*:	fe 0f 20 4f 	padds\.sh pc,pc,pc
 4.11432 ++ *[0-9a-f]*:	f8 0c 20 4c 	padds\.sh r12,r12,r12
 4.11433 ++ *[0-9a-f]*:	ea 05 20 45 	padds\.sh r5,r5,r5
 4.11434 ++ *[0-9a-f]*:	e8 04 20 44 	padds\.sh r4,r4,r4
 4.11435 ++ *[0-9a-f]*:	fc 0e 20 4e 	padds\.sh lr,lr,lr
 4.11436 ++ *[0-9a-f]*:	fc 02 20 49 	padds\.sh r9,lr,r2
 4.11437 ++ *[0-9a-f]*:	f0 01 20 46 	padds\.sh r6,r8,r1
 4.11438 ++ *[0-9a-f]*:	e8 0a 20 46 	padds\.sh r6,r4,r10
 4.11439 ++
 4.11440 ++[0-9a-f]* <psubs_sh>:
 4.11441 ++ *[0-9a-f]*:	fe 0f 20 5f 	psubs\.sh pc,pc,pc
 4.11442 ++ *[0-9a-f]*:	f8 0c 20 5c 	psubs\.sh r12,r12,r12
 4.11443 ++ *[0-9a-f]*:	ea 05 20 55 	psubs\.sh r5,r5,r5
 4.11444 ++ *[0-9a-f]*:	e8 04 20 54 	psubs\.sh r4,r4,r4
 4.11445 ++ *[0-9a-f]*:	fc 0e 20 5e 	psubs\.sh lr,lr,lr
 4.11446 ++ *[0-9a-f]*:	fc 0b 20 56 	psubs\.sh r6,lr,r11
 4.11447 ++ *[0-9a-f]*:	f8 04 20 52 	psubs\.sh r2,r12,r4
 4.11448 ++ *[0-9a-f]*:	f2 00 20 50 	psubs\.sh r0,r9,r0
 4.11449 ++
 4.11450 ++[0-9a-f]* <paddxs_sh>:
 4.11451 ++ *[0-9a-f]*:	fe 0f 20 6f 	paddxs\.sh pc,pc,pc
 4.11452 ++ *[0-9a-f]*:	f8 0c 20 6c 	paddxs\.sh r12,r12,r12
 4.11453 ++ *[0-9a-f]*:	ea 05 20 65 	paddxs\.sh r5,r5,r5
 4.11454 ++ *[0-9a-f]*:	e8 04 20 64 	paddxs\.sh r4,r4,r4
 4.11455 ++ *[0-9a-f]*:	fc 0e 20 6e 	paddxs\.sh lr,lr,lr
 4.11456 ++ *[0-9a-f]*:	e6 09 20 60 	paddxs\.sh r0,r3,r9
 4.11457 ++ *[0-9a-f]*:	f4 0b 20 6f 	paddxs\.sh pc,r10,r11
 4.11458 ++ *[0-9a-f]*:	f4 0f 20 6f 	paddxs\.sh pc,r10,pc
 4.11459 ++
 4.11460 ++[0-9a-f]* <psubxs_sh>:
 4.11461 ++ *[0-9a-f]*:	fe 0f 20 7f 	psubxs\.sh pc,pc,pc
 4.11462 ++ *[0-9a-f]*:	f8 0c 20 7c 	psubxs\.sh r12,r12,r12
 4.11463 ++ *[0-9a-f]*:	ea 05 20 75 	psubxs\.sh r5,r5,r5
 4.11464 ++ *[0-9a-f]*:	e8 04 20 74 	psubxs\.sh r4,r4,r4
 4.11465 ++ *[0-9a-f]*:	fc 0e 20 7e 	psubxs\.sh lr,lr,lr
 4.11466 ++ *[0-9a-f]*:	e8 04 20 77 	psubxs\.sh r7,r4,r4
 4.11467 ++ *[0-9a-f]*:	f0 03 20 77 	psubxs\.sh r7,r8,r3
 4.11468 ++ *[0-9a-f]*:	ec 05 20 7f 	psubxs\.sh pc,r6,r5
 4.11469 ++
 4.11470 ++[0-9a-f]* <padds_uh>:
 4.11471 ++ *[0-9a-f]*:	fe 0f 20 8f 	padds\.uh pc,pc,pc
 4.11472 ++ *[0-9a-f]*:	f8 0c 20 8c 	padds\.uh r12,r12,r12
 4.11473 ++ *[0-9a-f]*:	ea 05 20 85 	padds\.uh r5,r5,r5
 4.11474 ++ *[0-9a-f]*:	e8 04 20 84 	padds\.uh r4,r4,r4
 4.11475 ++ *[0-9a-f]*:	fc 0e 20 8e 	padds\.uh lr,lr,lr
 4.11476 ++ *[0-9a-f]*:	f6 07 20 8c 	padds\.uh r12,r11,r7
 4.11477 ++ *[0-9a-f]*:	f0 0e 20 87 	padds\.uh r7,r8,lr
 4.11478 ++ *[0-9a-f]*:	f2 07 20 86 	padds\.uh r6,r9,r7
 4.11479 ++
 4.11480 ++[0-9a-f]* <psubs_uh>:
 4.11481 ++ *[0-9a-f]*:	fe 0f 20 9f 	psubs\.uh pc,pc,pc
 4.11482 ++ *[0-9a-f]*:	f8 0c 20 9c 	psubs\.uh r12,r12,r12
 4.11483 ++ *[0-9a-f]*:	ea 05 20 95 	psubs\.uh r5,r5,r5
 4.11484 ++ *[0-9a-f]*:	e8 04 20 94 	psubs\.uh r4,r4,r4
 4.11485 ++ *[0-9a-f]*:	fc 0e 20 9e 	psubs\.uh lr,lr,lr
 4.11486 ++ *[0-9a-f]*:	f4 06 20 9e 	psubs\.uh lr,r10,r6
 4.11487 ++ *[0-9a-f]*:	e4 0f 20 9d 	psubs\.uh sp,r2,pc
 4.11488 ++ *[0-9a-f]*:	f2 02 20 92 	psubs\.uh r2,r9,r2
 4.11489 ++
 4.11490 ++[0-9a-f]* <paddxs_uh>:
 4.11491 ++ *[0-9a-f]*:	fe 0f 20 af 	paddxs\.uh pc,pc,pc
 4.11492 ++ *[0-9a-f]*:	f8 0c 20 ac 	paddxs\.uh r12,r12,r12
 4.11493 ++ *[0-9a-f]*:	ea 05 20 a5 	paddxs\.uh r5,r5,r5
 4.11494 ++ *[0-9a-f]*:	e8 04 20 a4 	paddxs\.uh r4,r4,r4
 4.11495 ++ *[0-9a-f]*:	fc 0e 20 ae 	paddxs\.uh lr,lr,lr
 4.11496 ++ *[0-9a-f]*:	f2 05 20 a7 	paddxs\.uh r7,r9,r5
 4.11497 ++ *[0-9a-f]*:	e2 04 20 a9 	paddxs\.uh r9,r1,r4
 4.11498 ++ *[0-9a-f]*:	e4 03 20 a5 	paddxs\.uh r5,r2,r3
 4.11499 ++
 4.11500 ++[0-9a-f]* <psubxs_uh>:
 4.11501 ++ *[0-9a-f]*:	fe 0f 20 bf 	psubxs\.uh pc,pc,pc
 4.11502 ++ *[0-9a-f]*:	f8 0c 20 bc 	psubxs\.uh r12,r12,r12
 4.11503 ++ *[0-9a-f]*:	ea 05 20 b5 	psubxs\.uh r5,r5,r5
 4.11504 ++ *[0-9a-f]*:	e8 04 20 b4 	psubxs\.uh r4,r4,r4
 4.11505 ++ *[0-9a-f]*:	fc 0e 20 be 	psubxs\.uh lr,lr,lr
 4.11506 ++ *[0-9a-f]*:	ea 0d 20 bd 	psubxs\.uh sp,r5,sp
 4.11507 ++ *[0-9a-f]*:	ec 06 20 bd 	psubxs\.uh sp,r6,r6
 4.11508 ++ *[0-9a-f]*:	f6 08 20 b3 	psubxs\.uh r3,r11,r8
 4.11509 ++
 4.11510 ++[0-9a-f]* <paddh_sh>:
 4.11511 ++ *[0-9a-f]*:	fe 0f 20 cf 	paddh\.sh pc,pc,pc
 4.11512 ++ *[0-9a-f]*:	f8 0c 20 cc 	paddh\.sh r12,r12,r12
 4.11513 ++ *[0-9a-f]*:	ea 05 20 c5 	paddh\.sh r5,r5,r5
 4.11514 ++ *[0-9a-f]*:	e8 04 20 c4 	paddh\.sh r4,r4,r4
 4.11515 ++ *[0-9a-f]*:	fc 0e 20 ce 	paddh\.sh lr,lr,lr
 4.11516 ++ *[0-9a-f]*:	fa 03 20 cc 	paddh\.sh r12,sp,r3
 4.11517 ++ *[0-9a-f]*:	ea 03 20 cf 	paddh\.sh pc,r5,r3
 4.11518 ++ *[0-9a-f]*:	f0 0d 20 c8 	paddh\.sh r8,r8,sp
 4.11519 ++
 4.11520 ++[0-9a-f]* <psubh_sh>:
 4.11521 ++ *[0-9a-f]*:	fe 0f 20 df 	psubh\.sh pc,pc,pc
 4.11522 ++ *[0-9a-f]*:	f8 0c 20 dc 	psubh\.sh r12,r12,r12
 4.11523 ++ *[0-9a-f]*:	ea 05 20 d5 	psubh\.sh r5,r5,r5
 4.11524 ++ *[0-9a-f]*:	e8 04 20 d4 	psubh\.sh r4,r4,r4
 4.11525 ++ *[0-9a-f]*:	fc 0e 20 de 	psubh\.sh lr,lr,lr
 4.11526 ++ *[0-9a-f]*:	ea 08 20 d1 	psubh\.sh r1,r5,r8
 4.11527 ++ *[0-9a-f]*:	e6 06 20 d7 	psubh\.sh r7,r3,r6
 4.11528 ++ *[0-9a-f]*:	e6 03 20 d4 	psubh\.sh r4,r3,r3
 4.11529 ++
 4.11530 ++[0-9a-f]* <paddxh_sh>:
 4.11531 ++ *[0-9a-f]*:	fe 0f 20 ef 	paddxh\.sh pc,pc,pc
 4.11532 ++ *[0-9a-f]*:	f8 0c 20 ec 	paddxh\.sh r12,r12,r12
 4.11533 ++ *[0-9a-f]*:	ea 05 20 e5 	paddxh\.sh r5,r5,r5
 4.11534 ++ *[0-9a-f]*:	e8 04 20 e4 	paddxh\.sh r4,r4,r4
 4.11535 ++ *[0-9a-f]*:	fc 0e 20 ee 	paddxh\.sh lr,lr,lr
 4.11536 ++ *[0-9a-f]*:	e0 04 20 e6 	paddxh\.sh r6,r0,r4
 4.11537 ++ *[0-9a-f]*:	f0 09 20 e9 	paddxh\.sh r9,r8,r9
 4.11538 ++ *[0-9a-f]*:	e0 0d 20 e3 	paddxh\.sh r3,r0,sp
 4.11539 ++
 4.11540 ++[0-9a-f]* <psubxh_sh>:
 4.11541 ++ *[0-9a-f]*:	fe 0f 20 ff 	psubxh\.sh pc,pc,pc
 4.11542 ++ *[0-9a-f]*:	f8 0c 20 fc 	psubxh\.sh r12,r12,r12
 4.11543 ++ *[0-9a-f]*:	ea 05 20 f5 	psubxh\.sh r5,r5,r5
 4.11544 ++ *[0-9a-f]*:	e8 04 20 f4 	psubxh\.sh r4,r4,r4
 4.11545 ++ *[0-9a-f]*:	fc 0e 20 fe 	psubxh\.sh lr,lr,lr
 4.11546 ++ *[0-9a-f]*:	fe 0c 20 f4 	psubxh\.sh r4,pc,r12
 4.11547 ++ *[0-9a-f]*:	e8 06 20 f8 	psubxh\.sh r8,r4,r6
 4.11548 ++ *[0-9a-f]*:	f2 04 20 fc 	psubxh\.sh r12,r9,r4
 4.11549 ++
 4.11550 ++[0-9a-f]* <paddsub_h>:
 4.11551 ++ *[0-9a-f]*:	fe 0f 21 0f 	paddsub\.h pc,pc:b,pc:b
 4.11552 ++ *[0-9a-f]*:	f8 0c 21 3c 	paddsub\.h r12,r12:t,r12:t
 4.11553 ++ *[0-9a-f]*:	ea 05 21 35 	paddsub\.h r5,r5:t,r5:t
 4.11554 ++ *[0-9a-f]*:	e8 04 21 04 	paddsub\.h r4,r4:b,r4:b
 4.11555 ++ *[0-9a-f]*:	fc 0e 21 3e 	paddsub\.h lr,lr:t,lr:t
 4.11556 ++ *[0-9a-f]*:	e4 0e 21 25 	paddsub\.h r5,r2:t,lr:b
 4.11557 ++ *[0-9a-f]*:	e2 08 21 07 	paddsub\.h r7,r1:b,r8:b
 4.11558 ++ *[0-9a-f]*:	f4 05 21 36 	paddsub\.h r6,r10:t,r5:t
 4.11559 ++
 4.11560 ++[0-9a-f]* <psubadd_h>:
 4.11561 ++ *[0-9a-f]*:	fe 0f 21 4f 	psubadd\.h pc,pc:b,pc:b
 4.11562 ++ *[0-9a-f]*:	f8 0c 21 7c 	psubadd\.h r12,r12:t,r12:t
 4.11563 ++ *[0-9a-f]*:	ea 05 21 75 	psubadd\.h r5,r5:t,r5:t
 4.11564 ++ *[0-9a-f]*:	e8 04 21 44 	psubadd\.h r4,r4:b,r4:b
 4.11565 ++ *[0-9a-f]*:	fc 0e 21 7e 	psubadd\.h lr,lr:t,lr:t
 4.11566 ++ *[0-9a-f]*:	f6 08 21 79 	psubadd\.h r9,r11:t,r8:t
 4.11567 ++ *[0-9a-f]*:	ee 0e 21 7a 	psubadd\.h r10,r7:t,lr:t
 4.11568 ++ *[0-9a-f]*:	fe 0f 21 66 	psubadd\.h r6,pc:t,pc:b
 4.11569 ++
 4.11570 ++[0-9a-f]* <paddsubs_sh>:
 4.11571 ++ *[0-9a-f]*:	fe 0f 21 8f 	paddsubs\.sh pc,pc:b,pc:b
 4.11572 ++ *[0-9a-f]*:	f8 0c 21 bc 	paddsubs\.sh r12,r12:t,r12:t
 4.11573 ++ *[0-9a-f]*:	ea 05 21 b5 	paddsubs\.sh r5,r5:t,r5:t
 4.11574 ++ *[0-9a-f]*:	e8 04 21 84 	paddsubs\.sh r4,r4:b,r4:b
 4.11575 ++ *[0-9a-f]*:	fc 0e 21 be 	paddsubs\.sh lr,lr:t,lr:t
 4.11576 ++ *[0-9a-f]*:	fc 00 21 a0 	paddsubs\.sh r0,lr:t,r0:b
 4.11577 ++ *[0-9a-f]*:	e4 04 21 b9 	paddsubs\.sh r9,r2:t,r4:t
 4.11578 ++ *[0-9a-f]*:	f2 0d 21 bc 	paddsubs\.sh r12,r9:t,sp:t
 4.11579 ++
 4.11580 ++[0-9a-f]* <psubadds_sh>:
 4.11581 ++ *[0-9a-f]*:	fe 0f 21 cf 	psubadds\.sh pc,pc:b,pc:b
 4.11582 ++ *[0-9a-f]*:	f8 0c 21 fc 	psubadds\.sh r12,r12:t,r12:t
 4.11583 ++ *[0-9a-f]*:	ea 05 21 f5 	psubadds\.sh r5,r5:t,r5:t
 4.11584 ++ *[0-9a-f]*:	e8 04 21 c4 	psubadds\.sh r4,r4:b,r4:b
 4.11585 ++ *[0-9a-f]*:	fc 0e 21 fe 	psubadds\.sh lr,lr:t,lr:t
 4.11586 ++ *[0-9a-f]*:	fc 01 21 df 	psubadds\.sh pc,lr:b,r1:t
 4.11587 ++ *[0-9a-f]*:	e6 0c 21 cb 	psubadds\.sh r11,r3:b,r12:b
 4.11588 ++ *[0-9a-f]*:	e4 08 21 fa 	psubadds\.sh r10,r2:t,r8:t
 4.11589 ++
 4.11590 ++[0-9a-f]* <paddsubs_uh>:
 4.11591 ++ *[0-9a-f]*:	fe 0f 22 0f 	paddsubs\.uh pc,pc:b,pc:b
 4.11592 ++ *[0-9a-f]*:	f8 0c 22 3c 	paddsubs\.uh r12,r12:t,r12:t
 4.11593 ++ *[0-9a-f]*:	ea 05 22 35 	paddsubs\.uh r5,r5:t,r5:t
 4.11594 ++ *[0-9a-f]*:	e8 04 22 04 	paddsubs\.uh r4,r4:b,r4:b
 4.11595 ++ *[0-9a-f]*:	fc 0e 22 3e 	paddsubs\.uh lr,lr:t,lr:t
 4.11596 ++ *[0-9a-f]*:	e4 03 22 09 	paddsubs\.uh r9,r2:b,r3:b
 4.11597 ++ *[0-9a-f]*:	fa 07 22 1d 	paddsubs\.uh sp,sp:b,r7:t
 4.11598 ++ *[0-9a-f]*:	e0 0a 22 1e 	paddsubs\.uh lr,r0:b,r10:t
 4.11599 ++
 4.11600 ++[0-9a-f]* <psubadds_uh>:
 4.11601 ++ *[0-9a-f]*:	fe 0f 22 4f 	psubadds\.uh pc,pc:b,pc:b
 4.11602 ++ *[0-9a-f]*:	f8 0c 22 7c 	psubadds\.uh r12,r12:t,r12:t
 4.11603 ++ *[0-9a-f]*:	ea 05 22 75 	psubadds\.uh r5,r5:t,r5:t
 4.11604 ++ *[0-9a-f]*:	e8 04 22 44 	psubadds\.uh r4,r4:b,r4:b
 4.11605 ++ *[0-9a-f]*:	fc 0e 22 7e 	psubadds\.uh lr,lr:t,lr:t
 4.11606 ++ *[0-9a-f]*:	f2 0f 22 7c 	psubadds\.uh r12,r9:t,pc:t
 4.11607 ++ *[0-9a-f]*:	ec 08 22 48 	psubadds\.uh r8,r6:b,r8:b
 4.11608 ++ *[0-9a-f]*:	f0 04 22 48 	psubadds\.uh r8,r8:b,r4:b
 4.11609 ++
 4.11610 ++[0-9a-f]* <paddsubh_sh>:
 4.11611 ++ *[0-9a-f]*:	fe 0f 22 8f 	paddsubh\.sh pc,pc:b,pc:b
 4.11612 ++ *[0-9a-f]*:	f8 0c 22 bc 	paddsubh\.sh r12,r12:t,r12:t
 4.11613 ++ *[0-9a-f]*:	ea 05 22 b5 	paddsubh\.sh r5,r5:t,r5:t
 4.11614 ++ *[0-9a-f]*:	e8 04 22 84 	paddsubh\.sh r4,r4:b,r4:b
 4.11615 ++ *[0-9a-f]*:	fc 0e 22 be 	paddsubh\.sh lr,lr:t,lr:t
 4.11616 ++ *[0-9a-f]*:	f2 09 22 a8 	paddsubh\.sh r8,r9:t,r9:b
 4.11617 ++ *[0-9a-f]*:	fa 01 22 b0 	paddsubh\.sh r0,sp:t,r1:t
 4.11618 ++ *[0-9a-f]*:	e2 00 22 93 	paddsubh\.sh r3,r1:b,r0:t
 4.11619 ++
 4.11620 ++[0-9a-f]* <psubaddh_sh>:
 4.11621 ++ *[0-9a-f]*:	fe 0f 22 cf 	psubaddh\.sh pc,pc:b,pc:b
 4.11622 ++ *[0-9a-f]*:	f8 0c 22 fc 	psubaddh\.sh r12,r12:t,r12:t
 4.11623 ++ *[0-9a-f]*:	ea 05 22 f5 	psubaddh\.sh r5,r5:t,r5:t
 4.11624 ++ *[0-9a-f]*:	e8 04 22 c4 	psubaddh\.sh r4,r4:b,r4:b
 4.11625 ++ *[0-9a-f]*:	fc 0e 22 fe 	psubaddh\.sh lr,lr:t,lr:t
 4.11626 ++ *[0-9a-f]*:	e6 0a 22 e7 	psubaddh\.sh r7,r3:t,r10:b
 4.11627 ++ *[0-9a-f]*:	e4 01 22 f7 	psubaddh\.sh r7,r2:t,r1:t
 4.11628 ++ *[0-9a-f]*:	e6 06 22 cb 	psubaddh\.sh r11,r3:b,r6:b
 4.11629 ++
 4.11630 ++[0-9a-f]* <padd_b>:
 4.11631 ++ *[0-9a-f]*:	fe 0f 23 0f 	padd\.b pc,pc,pc
 4.11632 ++ *[0-9a-f]*:	f8 0c 23 0c 	padd\.b r12,r12,r12
 4.11633 ++ *[0-9a-f]*:	ea 05 23 05 	padd\.b r5,r5,r5
 4.11634 ++ *[0-9a-f]*:	e8 04 23 04 	padd\.b r4,r4,r4
 4.11635 ++ *[0-9a-f]*:	fc 0e 23 0e 	padd\.b lr,lr,lr
 4.11636 ++ *[0-9a-f]*:	ec 0f 23 02 	padd\.b r2,r6,pc
 4.11637 ++ *[0-9a-f]*:	f2 0c 23 08 	padd\.b r8,r9,r12
 4.11638 ++ *[0-9a-f]*:	f8 03 23 05 	padd\.b r5,r12,r3
 4.11639 ++
 4.11640 ++[0-9a-f]* <psub_b>:
 4.11641 ++ *[0-9a-f]*:	fe 0f 23 1f 	psub\.b pc,pc,pc
 4.11642 ++ *[0-9a-f]*:	f8 0c 23 1c 	psub\.b r12,r12,r12
 4.11643 ++ *[0-9a-f]*:	ea 05 23 15 	psub\.b r5,r5,r5
 4.11644 ++ *[0-9a-f]*:	e8 04 23 14 	psub\.b r4,r4,r4
 4.11645 ++ *[0-9a-f]*:	fc 0e 23 1e 	psub\.b lr,lr,lr
 4.11646 ++ *[0-9a-f]*:	f8 0f 23 10 	psub\.b r0,r12,pc
 4.11647 ++ *[0-9a-f]*:	fa 0a 23 17 	psub\.b r7,sp,r10
 4.11648 ++ *[0-9a-f]*:	fa 0c 23 15 	psub\.b r5,sp,r12
 4.11649 ++
 4.11650 ++[0-9a-f]* <padds_sb>:
 4.11651 ++ *[0-9a-f]*:	fe 0f 23 2f 	padds\.sb pc,pc,pc
 4.11652 ++ *[0-9a-f]*:	f8 0c 23 2c 	padds\.sb r12,r12,r12
 4.11653 ++ *[0-9a-f]*:	ea 05 23 25 	padds\.sb r5,r5,r5
 4.11654 ++ *[0-9a-f]*:	e8 04 23 24 	padds\.sb r4,r4,r4
 4.11655 ++ *[0-9a-f]*:	fc 0e 23 2e 	padds\.sb lr,lr,lr
 4.11656 ++ *[0-9a-f]*:	f6 04 23 2d 	padds\.sb sp,r11,r4
 4.11657 ++ *[0-9a-f]*:	f4 0b 23 2b 	padds\.sb r11,r10,r11
 4.11658 ++ *[0-9a-f]*:	f8 06 23 25 	padds\.sb r5,r12,r6
 4.11659 ++
 4.11660 ++[0-9a-f]* <psubs_sb>:
 4.11661 ++ *[0-9a-f]*:	fe 0f 23 3f 	psubs\.sb pc,pc,pc
 4.11662 ++ *[0-9a-f]*:	f8 0c 23 3c 	psubs\.sb r12,r12,r12
 4.11663 ++ *[0-9a-f]*:	ea 05 23 35 	psubs\.sb r5,r5,r5
 4.11664 ++ *[0-9a-f]*:	e8 04 23 34 	psubs\.sb r4,r4,r4
 4.11665 ++ *[0-9a-f]*:	fc 0e 23 3e 	psubs\.sb lr,lr,lr
 4.11666 ++ *[0-9a-f]*:	ec 08 23 37 	psubs\.sb r7,r6,r8
 4.11667 ++ *[0-9a-f]*:	f4 09 23 3c 	psubs\.sb r12,r10,r9
 4.11668 ++ *[0-9a-f]*:	f6 00 23 3f 	psubs\.sb pc,r11,r0
 4.11669 ++
 4.11670 ++[0-9a-f]* <padds_ub>:
 4.11671 ++ *[0-9a-f]*:	fe 0f 23 4f 	padds\.ub pc,pc,pc
 4.11672 ++ *[0-9a-f]*:	f8 0c 23 4c 	padds\.ub r12,r12,r12
 4.11673 ++ *[0-9a-f]*:	ea 05 23 45 	padds\.ub r5,r5,r5
 4.11674 ++ *[0-9a-f]*:	e8 04 23 44 	padds\.ub r4,r4,r4
 4.11675 ++ *[0-9a-f]*:	fc 0e 23 4e 	padds\.ub lr,lr,lr
 4.11676 ++ *[0-9a-f]*:	e4 0b 23 43 	padds\.ub r3,r2,r11
 4.11677 ++ *[0-9a-f]*:	f0 01 23 4a 	padds\.ub r10,r8,r1
 4.11678 ++ *[0-9a-f]*:	f0 0a 23 4b 	padds\.ub r11,r8,r10
 4.11679 ++
 4.11680 ++[0-9a-f]* <psubs_ub>:
 4.11681 ++ *[0-9a-f]*:	fe 0f 23 5f 	psubs\.ub pc,pc,pc
 4.11682 ++ *[0-9a-f]*:	f8 0c 23 5c 	psubs\.ub r12,r12,r12
 4.11683 ++ *[0-9a-f]*:	ea 05 23 55 	psubs\.ub r5,r5,r5
 4.11684 ++ *[0-9a-f]*:	e8 04 23 54 	psubs\.ub r4,r4,r4
 4.11685 ++ *[0-9a-f]*:	fc 0e 23 5e 	psubs\.ub lr,lr,lr
 4.11686 ++ *[0-9a-f]*:	e4 07 23 50 	psubs\.ub r0,r2,r7
 4.11687 ++ *[0-9a-f]*:	ea 03 23 5e 	psubs\.ub lr,r5,r3
 4.11688 ++ *[0-9a-f]*:	ee 09 23 56 	psubs\.ub r6,r7,r9
 4.11689 ++
 4.11690 ++[0-9a-f]* <paddh_ub>:
 4.11691 ++ *[0-9a-f]*:	fe 0f 23 6f 	paddh\.ub pc,pc,pc
 4.11692 ++ *[0-9a-f]*:	f8 0c 23 6c 	paddh\.ub r12,r12,r12
 4.11693 ++ *[0-9a-f]*:	ea 05 23 65 	paddh\.ub r5,r5,r5
 4.11694 ++ *[0-9a-f]*:	e8 04 23 64 	paddh\.ub r4,r4,r4
 4.11695 ++ *[0-9a-f]*:	fc 0e 23 6e 	paddh\.ub lr,lr,lr
 4.11696 ++ *[0-9a-f]*:	e2 00 23 6e 	paddh\.ub lr,r1,r0
 4.11697 ++ *[0-9a-f]*:	ee 07 23 62 	paddh\.ub r2,r7,r7
 4.11698 ++ *[0-9a-f]*:	e2 02 23 62 	paddh\.ub r2,r1,r2
 4.11699 ++
 4.11700 ++[0-9a-f]* <psubh_ub>:
 4.11701 ++ *[0-9a-f]*:	fe 0f 23 7f 	psubh\.ub pc,pc,pc
 4.11702 ++ *[0-9a-f]*:	f8 0c 23 7c 	psubh\.ub r12,r12,r12
 4.11703 ++ *[0-9a-f]*:	ea 05 23 75 	psubh\.ub r5,r5,r5
 4.11704 ++ *[0-9a-f]*:	e8 04 23 74 	psubh\.ub r4,r4,r4
 4.11705 ++ *[0-9a-f]*:	fc 0e 23 7e 	psubh\.ub lr,lr,lr
 4.11706 ++ *[0-9a-f]*:	e2 06 23 70 	psubh\.ub r0,r1,r6
 4.11707 ++ *[0-9a-f]*:	fc 0a 23 74 	psubh\.ub r4,lr,r10
 4.11708 ++ *[0-9a-f]*:	f0 01 23 79 	psubh\.ub r9,r8,r1
 4.11709 ++
 4.11710 ++[0-9a-f]* <pmax_ub>:
 4.11711 ++ *[0-9a-f]*:	fe 0f 23 8f 	pmax\.ub pc,pc,pc
 4.11712 ++ *[0-9a-f]*:	f8 0c 23 8c 	pmax\.ub r12,r12,r12
 4.11713 ++ *[0-9a-f]*:	ea 05 23 85 	pmax\.ub r5,r5,r5
 4.11714 ++ *[0-9a-f]*:	e8 04 23 84 	pmax\.ub r4,r4,r4
 4.11715 ++ *[0-9a-f]*:	fc 0e 23 8e 	pmax\.ub lr,lr,lr
 4.11716 ++ *[0-9a-f]*:	e4 0b 23 8f 	pmax\.ub pc,r2,r11
 4.11717 ++ *[0-9a-f]*:	e2 01 23 8c 	pmax\.ub r12,r1,r1
 4.11718 ++ *[0-9a-f]*:	e4 00 23 85 	pmax\.ub r5,r2,r0
 4.11719 ++
 4.11720 ++[0-9a-f]* <pmax_sh>:
 4.11721 ++ *[0-9a-f]*:	fe 0f 23 9f 	pmax\.sh pc,pc,pc
 4.11722 ++ *[0-9a-f]*:	f8 0c 23 9c 	pmax\.sh r12,r12,r12
 4.11723 ++ *[0-9a-f]*:	ea 05 23 95 	pmax\.sh r5,r5,r5
 4.11724 ++ *[0-9a-f]*:	e8 04 23 94 	pmax\.sh r4,r4,r4
 4.11725 ++ *[0-9a-f]*:	fc 0e 23 9e 	pmax\.sh lr,lr,lr
 4.11726 ++ *[0-9a-f]*:	ec 0c 23 9e 	pmax\.sh lr,r6,r12
 4.11727 ++ *[0-9a-f]*:	fe 05 23 92 	pmax\.sh r2,pc,r5
 4.11728 ++ *[0-9a-f]*:	e4 07 23 9f 	pmax\.sh pc,r2,r7
 4.11729 ++
 4.11730 ++[0-9a-f]* <pmin_ub>:
 4.11731 ++ *[0-9a-f]*:	fe 0f 23 af 	pmin\.ub pc,pc,pc
 4.11732 ++ *[0-9a-f]*:	f8 0c 23 ac 	pmin\.ub r12,r12,r12
 4.11733 ++ *[0-9a-f]*:	ea 05 23 a5 	pmin\.ub r5,r5,r5
 4.11734 ++ *[0-9a-f]*:	e8 04 23 a4 	pmin\.ub r4,r4,r4
 4.11735 ++ *[0-9a-f]*:	fc 0e 23 ae 	pmin\.ub lr,lr,lr
 4.11736 ++ *[0-9a-f]*:	e2 05 23 a8 	pmin\.ub r8,r1,r5
 4.11737 ++ *[0-9a-f]*:	f0 03 23 a1 	pmin\.ub r1,r8,r3
 4.11738 ++ *[0-9a-f]*:	e4 07 23 a0 	pmin\.ub r0,r2,r7
 4.11739 ++
 4.11740 ++[0-9a-f]* <pmin_sh>:
 4.11741 ++ *[0-9a-f]*:	fe 0f 23 bf 	pmin\.sh pc,pc,pc
 4.11742 ++ *[0-9a-f]*:	f8 0c 23 bc 	pmin\.sh r12,r12,r12
 4.11743 ++ *[0-9a-f]*:	ea 05 23 b5 	pmin\.sh r5,r5,r5
 4.11744 ++ *[0-9a-f]*:	e8 04 23 b4 	pmin\.sh r4,r4,r4
 4.11745 ++ *[0-9a-f]*:	fc 0e 23 be 	pmin\.sh lr,lr,lr
 4.11746 ++ *[0-9a-f]*:	e8 0a 23 b8 	pmin\.sh r8,r4,r10
 4.11747 ++ *[0-9a-f]*:	f4 0c 23 be 	pmin\.sh lr,r10,r12
 4.11748 ++ *[0-9a-f]*:	ec 02 23 b2 	pmin\.sh r2,r6,r2
 4.11749 ++
 4.11750 ++[0-9a-f]* <pavg_ub>:
 4.11751 ++ *[0-9a-f]*:	fe 0f 23 cf 	pavg\.ub pc,pc,pc
 4.11752 ++ *[0-9a-f]*:	f8 0c 23 cc 	pavg\.ub r12,r12,r12
 4.11753 ++ *[0-9a-f]*:	ea 05 23 c5 	pavg\.ub r5,r5,r5
 4.11754 ++ *[0-9a-f]*:	e8 04 23 c4 	pavg\.ub r4,r4,r4
 4.11755 ++ *[0-9a-f]*:	fc 0e 23 ce 	pavg\.ub lr,lr,lr
 4.11756 ++ *[0-9a-f]*:	e2 06 23 c0 	pavg\.ub r0,r1,r6
 4.11757 ++ *[0-9a-f]*:	e6 06 23 c8 	pavg\.ub r8,r3,r6
 4.11758 ++ *[0-9a-f]*:	f8 0a 23 cf 	pavg\.ub pc,r12,r10
 4.11759 ++
 4.11760 ++[0-9a-f]* <pavg_sh>:
 4.11761 ++ *[0-9a-f]*:	fe 0f 23 df 	pavg\.sh pc,pc,pc
 4.11762 ++ *[0-9a-f]*:	f8 0c 23 dc 	pavg\.sh r12,r12,r12
 4.11763 ++ *[0-9a-f]*:	ea 05 23 d5 	pavg\.sh r5,r5,r5
 4.11764 ++ *[0-9a-f]*:	e8 04 23 d4 	pavg\.sh r4,r4,r4
 4.11765 ++ *[0-9a-f]*:	fc 0e 23 de 	pavg\.sh lr,lr,lr
 4.11766 ++ *[0-9a-f]*:	fe 0d 23 d9 	pavg\.sh r9,pc,sp
 4.11767 ++ *[0-9a-f]*:	fa 03 23 df 	pavg\.sh pc,sp,r3
 4.11768 ++ *[0-9a-f]*:	e2 09 23 d6 	pavg\.sh r6,r1,r9
 4.11769 ++
 4.11770 ++[0-9a-f]* <pabs_sb>:
 4.11771 ++ *[0-9a-f]*:	e0 0f 23 ef 	pabs\.sb pc,pc
 4.11772 ++ *[0-9a-f]*:	e0 0c 23 ec 	pabs\.sb r12,r12
 4.11773 ++ *[0-9a-f]*:	e0 05 23 e5 	pabs\.sb r5,r5
 4.11774 ++ *[0-9a-f]*:	e0 04 23 e4 	pabs\.sb r4,r4
 4.11775 ++ *[0-9a-f]*:	e0 0e 23 ee 	pabs\.sb lr,lr
 4.11776 ++ *[0-9a-f]*:	e0 06 23 eb 	pabs\.sb r11,r6
 4.11777 ++ *[0-9a-f]*:	e0 09 23 ee 	pabs\.sb lr,r9
 4.11778 ++ *[0-9a-f]*:	e0 07 23 ed 	pabs\.sb sp,r7
 4.11779 ++
 4.11780 ++[0-9a-f]* <pabs_sh>:
 4.11781 ++ *[0-9a-f]*:	e0 0f 23 ff 	pabs\.sh pc,pc
 4.11782 ++ *[0-9a-f]*:	e0 0c 23 fc 	pabs\.sh r12,r12
 4.11783 ++ *[0-9a-f]*:	e0 05 23 f5 	pabs\.sh r5,r5
 4.11784 ++ *[0-9a-f]*:	e0 04 23 f4 	pabs\.sh r4,r4
 4.11785 ++ *[0-9a-f]*:	e0 0e 23 fe 	pabs\.sh lr,lr
 4.11786 ++ *[0-9a-f]*:	e0 03 23 ff 	pabs\.sh pc,r3
 4.11787 ++ *[0-9a-f]*:	e0 07 23 f5 	pabs\.sh r5,r7
 4.11788 ++ *[0-9a-f]*:	e0 00 23 f4 	pabs\.sh r4,r0
 4.11789 ++
 4.11790 ++[0-9a-f]* <psad>:
 4.11791 ++ *[0-9a-f]*:	fe 0f 24 0f 	psad pc,pc,pc
 4.11792 ++ *[0-9a-f]*:	f8 0c 24 0c 	psad r12,r12,r12
 4.11793 ++ *[0-9a-f]*:	ea 05 24 05 	psad r5,r5,r5
 4.11794 ++ *[0-9a-f]*:	e8 04 24 04 	psad r4,r4,r4
 4.11795 ++ *[0-9a-f]*:	fc 0e 24 0e 	psad lr,lr,lr
 4.11796 ++ *[0-9a-f]*:	f6 0b 24 09 	psad r9,r11,r11
 4.11797 ++ *[0-9a-f]*:	e8 0d 24 0e 	psad lr,r4,sp
 4.11798 ++ *[0-9a-f]*:	e8 05 24 0e 	psad lr,r4,r5
 4.11799 ++
 4.11800 ++[0-9a-f]* <pasr_b>:
 4.11801 ++ *[0-9a-f]*:	fe 00 24 1f 	pasr\.b pc,pc,0x0
 4.11802 ++ *[0-9a-f]*:	f8 07 24 1c 	pasr\.b r12,r12,0x7
 4.11803 ++ *[0-9a-f]*:	ea 04 24 15 	pasr\.b r5,r5,0x4
 4.11804 ++ *[0-9a-f]*:	e8 03 24 14 	pasr\.b r4,r4,0x3
 4.11805 ++ *[0-9a-f]*:	fc 01 24 1e 	pasr\.b lr,lr,0x1
 4.11806 ++ *[0-9a-f]*:	ee 01 24 1f 	pasr\.b pc,r7,0x1
 4.11807 ++ *[0-9a-f]*:	fc 06 24 1d 	pasr\.b sp,lr,0x6
 4.11808 ++ *[0-9a-f]*:	e6 02 24 1d 	pasr\.b sp,r3,0x2
 4.11809 ++
 4.11810 ++[0-9a-f]* <plsl_b>:
 4.11811 ++ *[0-9a-f]*:	fe 00 24 2f 	plsl\.b pc,pc,0x0
 4.11812 ++ *[0-9a-f]*:	f8 07 24 2c 	plsl\.b r12,r12,0x7
 4.11813 ++ *[0-9a-f]*:	ea 04 24 25 	plsl\.b r5,r5,0x4
 4.11814 ++ *[0-9a-f]*:	e8 03 24 24 	plsl\.b r4,r4,0x3
 4.11815 ++ *[0-9a-f]*:	fc 01 24 2e 	plsl\.b lr,lr,0x1
 4.11816 ++ *[0-9a-f]*:	f6 04 24 22 	plsl\.b r2,r11,0x4
 4.11817 ++ *[0-9a-f]*:	ea 07 24 28 	plsl\.b r8,r5,0x7
 4.11818 ++ *[0-9a-f]*:	e0 02 24 2f 	plsl\.b pc,r0,0x2
 4.11819 ++
 4.11820 ++[0-9a-f]* <plsr_b>:
 4.11821 ++ *[0-9a-f]*:	fe 00 24 3f 	plsr\.b pc,pc,0x0
 4.11822 ++ *[0-9a-f]*:	f8 07 24 3c 	plsr\.b r12,r12,0x7
 4.11823 ++ *[0-9a-f]*:	ea 04 24 35 	plsr\.b r5,r5,0x4
 4.11824 ++ *[0-9a-f]*:	e8 03 24 34 	plsr\.b r4,r4,0x3
 4.11825 ++ *[0-9a-f]*:	fc 01 24 3e 	plsr\.b lr,lr,0x1
 4.11826 ++ *[0-9a-f]*:	e2 02 24 3c 	plsr\.b r12,r1,0x2
 4.11827 ++ *[0-9a-f]*:	fe 07 24 36 	plsr\.b r6,pc,0x7
 4.11828 ++ *[0-9a-f]*:	f6 02 24 3c 	plsr\.b r12,r11,0x2
 4.11829 ++
 4.11830 ++[0-9a-f]* <pasr_h>:
 4.11831 ++ *[0-9a-f]*:	fe 00 24 4f 	pasr\.h pc,pc,0x0
 4.11832 ++ *[0-9a-f]*:	f8 0f 24 4c 	pasr\.h r12,r12,0xf
 4.11833 ++ *[0-9a-f]*:	ea 08 24 45 	pasr\.h r5,r5,0x8
 4.11834 ++ *[0-9a-f]*:	e8 07 24 44 	pasr\.h r4,r4,0x7
 4.11835 ++ *[0-9a-f]*:	fc 01 24 4e 	pasr\.h lr,lr,0x1
 4.11836 ++ *[0-9a-f]*:	f6 0a 24 40 	pasr\.h r0,r11,0xa
 4.11837 ++ *[0-9a-f]*:	ec 08 24 44 	pasr\.h r4,r6,0x8
 4.11838 ++ *[0-9a-f]*:	e4 04 24 46 	pasr\.h r6,r2,0x4
 4.11839 ++
 4.11840 ++[0-9a-f]* <plsl_h>:
 4.11841 ++ *[0-9a-f]*:	fe 00 24 5f 	plsl\.h pc,pc,0x0
 4.11842 ++ *[0-9a-f]*:	f8 0f 24 5c 	plsl\.h r12,r12,0xf
 4.11843 ++ *[0-9a-f]*:	ea 08 24 55 	plsl\.h r5,r5,0x8
 4.11844 ++ *[0-9a-f]*:	e8 07 24 54 	plsl\.h r4,r4,0x7
 4.11845 ++ *[0-9a-f]*:	fc 01 24 5e 	plsl\.h lr,lr,0x1
 4.11846 ++ *[0-9a-f]*:	f4 09 24 55 	plsl\.h r5,r10,0x9
 4.11847 ++ *[0-9a-f]*:	fc 08 24 5d 	plsl\.h sp,lr,0x8
 4.11848 ++ *[0-9a-f]*:	fc 07 24 50 	plsl\.h r0,lr,0x7
 4.11849 ++
 4.11850 ++[0-9a-f]* <plsr_h>:
 4.11851 ++ *[0-9a-f]*:	fe 00 24 6f 	plsr\.h pc,pc,0x0
 4.11852 ++ *[0-9a-f]*:	f8 0f 24 6c 	plsr\.h r12,r12,0xf
 4.11853 ++ *[0-9a-f]*:	ea 08 24 65 	plsr\.h r5,r5,0x8
 4.11854 ++ *[0-9a-f]*:	e8 07 24 64 	plsr\.h r4,r4,0x7
 4.11855 ++ *[0-9a-f]*:	fc 01 24 6e 	plsr\.h lr,lr,0x1
 4.11856 ++ *[0-9a-f]*:	e0 0f 24 6b 	plsr\.h r11,r0,0xf
 4.11857 ++ *[0-9a-f]*:	e6 03 24 6e 	plsr\.h lr,r3,0x3
 4.11858 ++ *[0-9a-f]*:	fc 0a 24 68 	plsr\.h r8,lr,0xa
 4.11859 ++
 4.11860 ++[0-9a-f]* <packw_sh>:
 4.11861 ++ *[0-9a-f]*:	fe 0f 24 7f 	packw\.sh pc,pc,pc
 4.11862 ++ *[0-9a-f]*:	f8 0c 24 7c 	packw\.sh r12,r12,r12
 4.11863 ++ *[0-9a-f]*:	ea 05 24 75 	packw\.sh r5,r5,r5
 4.11864 ++ *[0-9a-f]*:	e8 04 24 74 	packw\.sh r4,r4,r4
 4.11865 ++ *[0-9a-f]*:	fc 0e 24 7e 	packw\.sh lr,lr,lr
 4.11866 ++ *[0-9a-f]*:	f6 0a 24 7d 	packw\.sh sp,r11,r10
 4.11867 ++ *[0-9a-f]*:	e4 0c 24 78 	packw\.sh r8,r2,r12
 4.11868 ++ *[0-9a-f]*:	e2 05 24 78 	packw\.sh r8,r1,r5
 4.11869 ++
 4.11870 ++[0-9a-f]* <punpckub_h>:
 4.11871 ++ *[0-9a-f]*:	fe 00 24 8f 	punpckub\.h pc,pc:b
 4.11872 ++ *[0-9a-f]*:	f8 00 24 9c 	punpckub\.h r12,r12:t
 4.11873 ++ *[0-9a-f]*:	ea 00 24 95 	punpckub\.h r5,r5:t
 4.11874 ++ *[0-9a-f]*:	e8 00 24 84 	punpckub\.h r4,r4:b
 4.11875 ++ *[0-9a-f]*:	fc 00 24 9e 	punpckub\.h lr,lr:t
 4.11876 ++ *[0-9a-f]*:	e2 00 24 96 	punpckub\.h r6,r1:t
 4.11877 ++ *[0-9a-f]*:	ea 00 24 8e 	punpckub\.h lr,r5:b
 4.11878 ++ *[0-9a-f]*:	e4 00 24 9e 	punpckub\.h lr,r2:t
 4.11879 ++
 4.11880 ++[0-9a-f]* <punpcksb_h>:
 4.11881 ++ *[0-9a-f]*:	fe 00 24 af 	punpcksb\.h pc,pc:b
 4.11882 ++ *[0-9a-f]*:	f8 00 24 bc 	punpcksb\.h r12,r12:t
 4.11883 ++ *[0-9a-f]*:	ea 00 24 b5 	punpcksb\.h r5,r5:t
 4.11884 ++ *[0-9a-f]*:	e8 00 24 a4 	punpcksb\.h r4,r4:b
 4.11885 ++ *[0-9a-f]*:	fc 00 24 be 	punpcksb\.h lr,lr:t
 4.11886 ++ *[0-9a-f]*:	ee 00 24 b4 	punpcksb\.h r4,r7:t
 4.11887 ++ *[0-9a-f]*:	fc 00 24 a6 	punpcksb\.h r6,lr:b
 4.11888 ++ *[0-9a-f]*:	f8 00 24 bc 	punpcksb\.h r12,r12:t
 4.11889 ++
 4.11890 ++[0-9a-f]* <packsh_ub>:
 4.11891 ++ *[0-9a-f]*:	fe 0f 24 cf 	packsh\.ub pc,pc,pc
 4.11892 ++ *[0-9a-f]*:	f8 0c 24 cc 	packsh\.ub r12,r12,r12
 4.11893 ++ *[0-9a-f]*:	ea 05 24 c5 	packsh\.ub r5,r5,r5
 4.11894 ++ *[0-9a-f]*:	e8 04 24 c4 	packsh\.ub r4,r4,r4
 4.11895 ++ *[0-9a-f]*:	fc 0e 24 ce 	packsh\.ub lr,lr,lr
 4.11896 ++ *[0-9a-f]*:	ec 03 24 c3 	packsh\.ub r3,r6,r3
 4.11897 ++ *[0-9a-f]*:	e0 03 24 c8 	packsh\.ub r8,r0,r3
 4.11898 ++ *[0-9a-f]*:	e6 0e 24 c9 	packsh\.ub r9,r3,lr
 4.11899 ++
 4.11900 ++[0-9a-f]* <packsh_sb>:
 4.11901 ++ *[0-9a-f]*:	fe 0f 24 df 	packsh\.sb pc,pc,pc
 4.11902 ++ *[0-9a-f]*:	f8 0c 24 dc 	packsh\.sb r12,r12,r12
 4.11903 ++ *[0-9a-f]*:	ea 05 24 d5 	packsh\.sb r5,r5,r5
 4.11904 ++ *[0-9a-f]*:	e8 04 24 d4 	packsh\.sb r4,r4,r4
 4.11905 ++ *[0-9a-f]*:	fc 0e 24 de 	packsh\.sb lr,lr,lr
 4.11906 ++ *[0-9a-f]*:	f0 01 24 d6 	packsh\.sb r6,r8,r1
 4.11907 ++ *[0-9a-f]*:	f2 08 24 de 	packsh\.sb lr,r9,r8
 4.11908 ++ *[0-9a-f]*:	ec 06 24 dd 	packsh\.sb sp,r6,r6
 4.11909 ++
 4.11910 ++[0-9a-f]* <andl>:
 4.11911 ++ *[0-9a-f]*:	e0 1f 00 00 	andl pc,0x0
 4.11912 ++ *[0-9a-f]*:	e0 1c ff ff 	andl r12,0xffff
 4.11913 ++ *[0-9a-f]*:	e0 15 80 00 	andl r5,0x8000
 4.11914 ++ *[0-9a-f]*:	e0 14 7f ff 	andl r4,0x7fff
 4.11915 ++ *[0-9a-f]*:	e0 1e 00 01 	andl lr,0x1
 4.11916 ++ *[0-9a-f]*:	e0 1f 5a 58 	andl pc,0x5a58
 4.11917 ++ *[0-9a-f]*:	e0 18 b8 9e 	andl r8,0xb89e
 4.11918 ++ *[0-9a-f]*:	e0 17 35 97 	andl r7,0x3597
 4.11919 ++
 4.11920 ++[0-9a-f]* <andl_coh>:
 4.11921 ++ *[0-9a-f]*:	e2 1f 00 00 	andl pc,0x0,COH
 4.11922 ++ *[0-9a-f]*:	e2 1c ff ff 	andl r12,0xffff,COH
 4.11923 ++ *[0-9a-f]*:	e2 15 80 00 	andl r5,0x8000,COH
 4.11924 ++ *[0-9a-f]*:	e2 14 7f ff 	andl r4,0x7fff,COH
 4.11925 ++ *[0-9a-f]*:	e2 1e 00 01 	andl lr,0x1,COH
 4.11926 ++ *[0-9a-f]*:	e2 16 58 e1 	andl r6,0x58e1,COH
 4.11927 ++ *[0-9a-f]*:	e2 10 9e cd 	andl r0,0x9ecd,COH
 4.11928 ++ *[0-9a-f]*:	e2 14 bd c4 	andl r4,0xbdc4,COH
 4.11929 ++
 4.11930 ++[0-9a-f]* <andh>:
 4.11931 ++ *[0-9a-f]*:	e4 1f 00 00 	andh pc,0x0
 4.11932 ++ *[0-9a-f]*:	e4 1c ff ff 	andh r12,0xffff
 4.11933 ++ *[0-9a-f]*:	e4 15 80 00 	andh r5,0x8000
 4.11934 ++ *[0-9a-f]*:	e4 14 7f ff 	andh r4,0x7fff
 4.11935 ++ *[0-9a-f]*:	e4 1e 00 01 	andh lr,0x1
 4.11936 ++ *[0-9a-f]*:	e4 1c cc 58 	andh r12,0xcc58
 4.11937 ++ *[0-9a-f]*:	e4 13 21 e3 	andh r3,0x21e3
 4.11938 ++ *[0-9a-f]*:	e4 12 a7 eb 	andh r2,0xa7eb
 4.11939 ++
 4.11940 ++[0-9a-f]* <andh_coh>:
 4.11941 ++ *[0-9a-f]*:	e6 1f 00 00 	andh pc,0x0,COH
 4.11942 ++ *[0-9a-f]*:	e6 1c ff ff 	andh r12,0xffff,COH
 4.11943 ++ *[0-9a-f]*:	e6 15 80 00 	andh r5,0x8000,COH
 4.11944 ++ *[0-9a-f]*:	e6 14 7f ff 	andh r4,0x7fff,COH
 4.11945 ++ *[0-9a-f]*:	e6 1e 00 01 	andh lr,0x1,COH
 4.11946 ++ *[0-9a-f]*:	e6 1b 86 0d 	andh r11,0x860d,COH
 4.11947 ++ *[0-9a-f]*:	e6 18 ce f6 	andh r8,0xcef6,COH
 4.11948 ++ *[0-9a-f]*:	e6 1a 5c 83 	andh r10,0x5c83,COH
 4.11949 ++
 4.11950 ++[0-9a-f]* <orl>:
 4.11951 ++ *[0-9a-f]*:	e8 1f 00 00 	orl pc,0x0
 4.11952 ++ *[0-9a-f]*:	e8 1c ff ff 	orl r12,0xffff
 4.11953 ++ *[0-9a-f]*:	e8 15 80 00 	orl r5,0x8000
 4.11954 ++ *[0-9a-f]*:	e8 14 7f ff 	orl r4,0x7fff
 4.11955 ++ *[0-9a-f]*:	e8 1e 00 01 	orl lr,0x1
 4.11956 ++ *[0-9a-f]*:	e8 1d 41 7e 	orl sp,0x417e
 4.11957 ++ *[0-9a-f]*:	e8 10 52 bd 	orl r0,0x52bd
 4.11958 ++ *[0-9a-f]*:	e8 1f ac 47 	orl pc,0xac47
 4.11959 ++
 4.11960 ++[0-9a-f]* <orh>:
 4.11961 ++ *[0-9a-f]*:	ea 1f 00 00 	orh pc,0x0
 4.11962 ++ *[0-9a-f]*:	ea 1c ff ff 	orh r12,0xffff
 4.11963 ++ *[0-9a-f]*:	ea 15 80 00 	orh r5,0x8000
 4.11964 ++ *[0-9a-f]*:	ea 14 7f ff 	orh r4,0x7fff
 4.11965 ++ *[0-9a-f]*:	ea 1e 00 01 	orh lr,0x1
 4.11966 ++ *[0-9a-f]*:	ea 18 6e 7d 	orh r8,0x6e7d
 4.11967 ++ *[0-9a-f]*:	ea 1c 77 1c 	orh r12,0x771c
 4.11968 ++ *[0-9a-f]*:	ea 11 ea 1a 	orh r1,0xea1a
 4.11969 ++
 4.11970 ++[0-9a-f]* <eorl>:
 4.11971 ++ *[0-9a-f]*:	ec 1f 00 00 	eorl pc,0x0
 4.11972 ++ *[0-9a-f]*:	ec 1c ff ff 	eorl r12,0xffff
 4.11973 ++ *[0-9a-f]*:	ec 15 80 00 	eorl r5,0x8000
 4.11974 ++ *[0-9a-f]*:	ec 14 7f ff 	eorl r4,0x7fff
 4.11975 ++ *[0-9a-f]*:	ec 1e 00 01 	eorl lr,0x1
 4.11976 ++ *[0-9a-f]*:	ec 14 c7 b9 	eorl r4,0xc7b9
 4.11977 ++ *[0-9a-f]*:	ec 16 fb dd 	eorl r6,0xfbdd
 4.11978 ++ *[0-9a-f]*:	ec 11 51 b1 	eorl r1,0x51b1
 4.11979 ++
 4.11980 ++[0-9a-f]* <eorh>:
 4.11981 ++ *[0-9a-f]*:	ee 1f 00 00 	eorh pc,0x0
 4.11982 ++ *[0-9a-f]*:	ee 1c ff ff 	eorh r12,0xffff
 4.11983 ++ *[0-9a-f]*:	ee 15 80 00 	eorh r5,0x8000
 4.11984 ++ *[0-9a-f]*:	ee 14 7f ff 	eorh r4,0x7fff
 4.11985 ++ *[0-9a-f]*:	ee 1e 00 01 	eorh lr,0x1
 4.11986 ++ *[0-9a-f]*:	ee 10 2d d4 	eorh r0,0x2dd4
 4.11987 ++ *[0-9a-f]*:	ee 1a 94 b5 	eorh r10,0x94b5
 4.11988 ++ *[0-9a-f]*:	ee 19 df 2a 	eorh r9,0xdf2a
 4.11989 ++
 4.11990 ++[0-9a-f]* <mcall>:
 4.11991 ++ *[0-9a-f]*:	f0 1f 00 00 	mcall [0-9a-f]* <.*>
 4.11992 ++ *[0-9a-f]*:	f0 1c ff ff 	mcall r12\[-4\]
 4.11993 ++ *[0-9a-f]*:	f0 15 80 00 	mcall r5\[-131072\]
 4.11994 ++ *[0-9a-f]*:	f0 14 7f ff 	mcall r4\[131068\]
 4.11995 ++ *[0-9a-f]*:	f0 1e 00 01 	mcall lr\[4\]
 4.11996 ++ *[0-9a-f]*:	f0 1d 3b bf 	mcall sp\[61180\]
 4.11997 ++ *[0-9a-f]*:	f0 14 dd d2 	mcall r4\[-35000\]
 4.11998 ++ *[0-9a-f]*:	f0 10 09 b1 	mcall r0\[9924\]
 4.11999 ++
 4.12000 ++[0-9a-f]* <pref>:
 4.12001 ++ *[0-9a-f]*:	f2 1f 00 00 	pref pc\[0\]
 4.12002 ++ *[0-9a-f]*:	f2 1c ff ff 	pref r12\[-1\]
 4.12003 ++ *[0-9a-f]*:	f2 15 80 00 	pref r5\[-32768\]
 4.12004 ++ *[0-9a-f]*:	f2 14 7f ff 	pref r4\[32767\]
 4.12005 ++ *[0-9a-f]*:	f2 1e 00 01 	pref lr\[1\]
 4.12006 ++ *[0-9a-f]*:	f2 17 1e 44 	pref r7\[7748\]
 4.12007 ++ *[0-9a-f]*:	f2 17 e1 ed 	pref r7\[-7699\]
 4.12008 ++ *[0-9a-f]*:	f2 12 9a dc 	pref r2\[-25892\]
 4.12009 ++
 4.12010 ++[0-9a-f]* <cache>:
 4.12011 ++ *[0-9a-f]*:	f4 1f 00 00 	cache pc\[0\],0x0
 4.12012 ++ *[0-9a-f]*:	f4 1c ff ff 	cache r12\[-1\],0x1f
 4.12013 ++ *[0-9a-f]*:	f4 15 84 00 	cache r5\[-1024\],0x10
 4.12014 ++ *[0-9a-f]*:	f4 14 7b ff 	cache r4\[1023\],0xf
 4.12015 ++ *[0-9a-f]*:	f4 1e 08 01 	cache lr\[1\],0x1
 4.12016 ++ *[0-9a-f]*:	f4 13 8c 3c 	cache r3\[-964\],0x11
 4.12017 ++ *[0-9a-f]*:	f4 14 b6 89 	cache r4\[-375\],0x16
 4.12018 ++ *[0-9a-f]*:	f4 13 8c 88 	cache r3\[-888\],0x11
 4.12019 ++
 4.12020 ++[0-9a-f]* <sub4>:
 4.12021 ++ *[0-9a-f]*:	20 0f       	sub pc,0
 4.12022 ++ *[0-9a-f]*:	2f fc       	sub r12,-1
 4.12023 ++ *[0-9a-f]*:	f0 25 00 00 	sub r5,-1048576
 4.12024 ++ *[0-9a-f]*:	ee 34 ff ff 	sub r4,1048575
 4.12025 ++ *[0-9a-f]*:	20 1e       	sub lr,1
 4.12026 ++ *[0-9a-f]*:	f6 22 8d 6c 	sub r2,-619156
 4.12027 ++ *[0-9a-f]*:	e6 3e 0a cd 	sub lr,461517
 4.12028 ++ *[0-9a-f]*:	fc 38 2d 25 	sub r8,-185051
 4.12029 ++
 4.12030 ++[0-9a-f]* <cp3>:
 4.12031 ++ *[0-9a-f]*:	58 0f       	cp.w pc,0
 4.12032 ++ *[0-9a-f]*:	5b fc       	cp.w r12,-1
 4.12033 ++ *[0-9a-f]*:	f0 45 00 00 	cp.w r5,-1048576
 4.12034 ++ *[0-9a-f]*:	ee 54 ff ff 	cp.w r4,1048575
 4.12035 ++ *[0-9a-f]*:	58 1e       	cp.w lr,1
 4.12036 ++ *[0-9a-f]*:	e0 51 e4 ae 	cp.w r1,124078
 4.12037 ++ *[0-9a-f]*:	fa 40 37 e3 	cp.w r0,-378909
 4.12038 ++ *[0-9a-f]*:	fc 44 4a 14 	cp.w r4,-243180
 4.12039 ++
 4.12040 ++[0-9a-f]* <mov2>:
 4.12041 ++ *[0-9a-f]*:	30 0f       	mov pc,0
 4.12042 ++ *[0-9a-f]*:	3f fc       	mov r12,-1
 4.12043 ++ *[0-9a-f]*:	f0 65 00 00 	mov r5,-1048576
 4.12044 ++ *[0-9a-f]*:	ee 74 ff ff 	mov r4,1048575
 4.12045 ++ *[0-9a-f]*:	30 1e       	mov lr,1
 4.12046 ++ *[0-9a-f]*:	fa 75 29 a3 	mov r5,-317021
 4.12047 ++ *[0-9a-f]*:	f4 6d 91 94 	mov sp,-749164
 4.12048 ++ *[0-9a-f]*:	ee 65 58 93 	mov r5,940179
 4.12049 ++
 4.12050 ++[0-9a-f]* <brc2>:
 4.12051 ++ *[0-9a-f]*:	c0 00       	breq [0-9a-f]* <.*>
 4.12052 ++ *[0-9a-f]*:	fe 9f ff ff 	bral [0-9a-f]* <.*>
 4.12053 ++ *[0-9a-f]*:	f0 88 00 00 	brls [0-9a-f]* <.*>
 4.12054 ++ *[0-9a-f]*:	ee 97 ff ff 	brpl [0-9a-f]* <.*>
 4.12055 ++ *[0-9a-f]*:	c0 11       	brne [0-9a-f]* <.*>
 4.12056 ++ *[0-9a-f]*:	f2 8b 4a 4d 	brhi [0-9a-f]* <.*>
 4.12057 ++ *[0-9a-f]*:	ea 8e 14 cc 	brqs [0-9a-f]* <.*>
 4.12058 ++ *[0-9a-f]*:	fa 98 98 33 	brls [0-9a-f]* <.*>
 4.12059 ++
 4.12060 ++[0-9a-f]* <rcall2>:
 4.12061 ++ *[0-9a-f]*:	c0 0c       	rcall [0-9a-f]* <.*>
 4.12062 ++ *[0-9a-f]*:	cf ff       	rcall [0-9a-f]* <.*>
 4.12063 ++ *[0-9a-f]*:	f0 a0 00 00 	rcall [0-9a-f]* <.*>
 4.12064 ++ *[0-9a-f]*:	ee b0 ff ff 	rcall [0-9a-f]* <.*>
 4.12065 ++ *[0-9a-f]*:	c0 1c       	rcall [0-9a-f]* <.*>
 4.12066 ++ *[0-9a-f]*:	e2 b0 ca 5a 	rcall [0-9a-f]* <.*>
 4.12067 ++ *[0-9a-f]*:	e8 a0 47 52 	rcall [0-9a-f]* <.*>
 4.12068 ++ *[0-9a-f]*:	fe b0 fd ef 	rcall [0-9a-f]* <.*>
 4.12069 ++
 4.12070 ++[0-9a-f]* <sub5>:
 4.12071 ++ *[0-9a-f]*:	fe cf 00 00 	sub pc,pc,0
 4.12072 ++ *[0-9a-f]*:	f8 cc ff ff 	sub r12,r12,-1
 4.12073 ++ *[0-9a-f]*:	ea c5 80 00 	sub r5,r5,-32768
 4.12074 ++ *[0-9a-f]*:	e8 c4 7f ff 	sub r4,r4,32767
 4.12075 ++ *[0-9a-f]*:	fc ce 00 01 	sub lr,lr,1
 4.12076 ++ *[0-9a-f]*:	fe cf ce 38 	sub pc,pc,-12744
 4.12077 ++ *[0-9a-f]*:	ee c7 95 1b 	sub r7,r7,-27365
 4.12078 ++ *[0-9a-f]*:	f2 c2 bc 32 	sub r2,r9,-17358
 4.12079 ++
 4.12080 ++[0-9a-f]* <satsub_w2>:
 4.12081 ++ *[0-9a-f]*:	fe df 00 00 	satsub\.w pc,pc,0
 4.12082 ++ *[0-9a-f]*:	f8 dc ff ff 	satsub\.w r12,r12,-1
 4.12083 ++ *[0-9a-f]*:	ea d5 80 00 	satsub\.w r5,r5,-32768
 4.12084 ++ *[0-9a-f]*:	e8 d4 7f ff 	satsub\.w r4,r4,32767
 4.12085 ++ *[0-9a-f]*:	fc de 00 01 	satsub\.w lr,lr,1
 4.12086 ++ *[0-9a-f]*:	fc d2 f8 29 	satsub\.w r2,lr,-2007
 4.12087 ++ *[0-9a-f]*:	f8 d7 fc f0 	satsub\.w r7,r12,-784
 4.12088 ++ *[0-9a-f]*:	ee d4 5a 8c 	satsub\.w r4,r7,23180
 4.12089 ++
 4.12090 ++[0-9a-f]* <ld_d4>:
 4.12091 ++ *[0-9a-f]*:	fe e0 00 00 	ld\.d r0,pc\[0\]
 4.12092 ++ *[0-9a-f]*:	f8 ee ff ff 	ld\.d lr,r12\[-1\]
 4.12093 ++ *[0-9a-f]*:	ea e8 80 00 	ld\.d r8,r5\[-32768\]
 4.12094 ++ *[0-9a-f]*:	e8 e6 7f ff 	ld\.d r6,r4\[32767\]
 4.12095 ++ *[0-9a-f]*:	fc e2 00 01 	ld\.d r2,lr\[1\]
 4.12096 ++ *[0-9a-f]*:	f6 ee 39 c0 	ld\.d lr,r11\[14784\]
 4.12097 ++ *[0-9a-f]*:	f2 e6 b6 27 	ld\.d r6,r9\[-18905\]
 4.12098 ++ *[0-9a-f]*:	e6 e2 e7 2d 	ld\.d r2,r3\[-6355\]
 4.12099 ++
 4.12100 ++[0-9a-f]* <ld_w4>:
 4.12101 ++ *[0-9a-f]*:	7e 0f       	ld\.w pc,pc\[0x0\]
 4.12102 ++ *[0-9a-f]*:	f8 fc ff ff 	ld\.w r12,r12\[-1\]
 4.12103 ++ *[0-9a-f]*:	ea f5 80 00 	ld\.w r5,r5\[-32768\]
 4.12104 ++ *[0-9a-f]*:	e8 f4 7f ff 	ld\.w r4,r4\[32767\]
 4.12105 ++ *[0-9a-f]*:	fc fe 00 01 	ld\.w lr,lr\[1\]
 4.12106 ++ *[0-9a-f]*:	f8 f0 a9 8b 	ld\.w r0,r12\[-22133\]
 4.12107 ++ *[0-9a-f]*:	fe fd af d7 	ld\.w sp,pc\[-20521\]
 4.12108 ++ *[0-9a-f]*:	d7 03       	nop
 4.12109 ++
 4.12110 ++[0-9a-f]* <ld_sh4>:
 4.12111 ++ *[0-9a-f]*:	9e 0f       	ld\.sh pc,pc\[0x0\]
 4.12112 ++ *[0-9a-f]*:	f9 0c ff ff 	ld\.sh r12,r12\[-1\]
 4.12113 ++ *[0-9a-f]*:	eb 05 80 00 	ld\.sh r5,r5\[-32768\]
 4.12114 ++ *[0-9a-f]*:	e9 04 7f ff 	ld\.sh r4,r4\[32767\]
 4.12115 ++ *[0-9a-f]*:	fd 0e 00 01 	ld\.sh lr,lr\[1\]
 4.12116 ++ *[0-9a-f]*:	f5 06 78 d2 	ld\.sh r6,r10\[30930\]
 4.12117 ++ *[0-9a-f]*:	f5 06 55 d5 	ld\.sh r6,r10\[21973\]
 4.12118 ++ *[0-9a-f]*:	d7 03       	nop
 4.12119 ++
 4.12120 ++[0-9a-f]* <ld_uh4>:
 4.12121 ++ *[0-9a-f]*:	9e 8f       	ld\.uh pc,pc\[0x0\]
 4.12122 ++ *[0-9a-f]*:	f9 1c ff ff 	ld\.uh r12,r12\[-1\]
 4.12123 ++ *[0-9a-f]*:	eb 15 80 00 	ld\.uh r5,r5\[-32768\]
 4.12124 ++ *[0-9a-f]*:	e9 14 7f ff 	ld\.uh r4,r4\[32767\]
 4.12125 ++ *[0-9a-f]*:	fd 1e 00 01 	ld\.uh lr,lr\[1\]
 4.12126 ++ *[0-9a-f]*:	f3 11 cb d6 	ld\.uh r1,r9\[-13354\]
 4.12127 ++ *[0-9a-f]*:	f7 1e 53 59 	ld\.uh lr,r11\[21337\]
 4.12128 ++ *[0-9a-f]*:	d7 03       	nop
 4.12129 ++
 4.12130 ++[0-9a-f]* <ld_sb1>:
 4.12131 ++ *[0-9a-f]*:	ff 2f 00 00 	ld\.sb pc,pc\[0\]
 4.12132 ++ *[0-9a-f]*:	f9 2c ff ff 	ld\.sb r12,r12\[-1\]
 4.12133 ++ *[0-9a-f]*:	eb 25 80 00 	ld\.sb r5,r5\[-32768\]
 4.12134 ++ *[0-9a-f]*:	e9 24 7f ff 	ld\.sb r4,r4\[32767\]
 4.12135 ++ *[0-9a-f]*:	fd 2e 00 01 	ld\.sb lr,lr\[1\]
 4.12136 ++ *[0-9a-f]*:	fb 27 90 09 	ld\.sb r7,sp\[-28663\]
 4.12137 ++ *[0-9a-f]*:	e3 22 e9 09 	ld\.sb r2,r1\[-5879\]
 4.12138 ++ *[0-9a-f]*:	e7 2c 49 2e 	ld\.sb r12,r3\[18734\]
 4.12139 ++
 4.12140 ++[0-9a-f]* <ld_ub4>:
 4.12141 ++ *[0-9a-f]*:	1f 8f       	ld\.ub pc,pc\[0x0\]
 4.12142 ++ *[0-9a-f]*:	f9 3c ff ff 	ld\.ub r12,r12\[-1\]
 4.12143 ++ *[0-9a-f]*:	eb 35 80 00 	ld\.ub r5,r5\[-32768\]
 4.12144 ++ *[0-9a-f]*:	e9 34 7f ff 	ld\.ub r4,r4\[32767\]
 4.12145 ++ *[0-9a-f]*:	1d 9e       	ld\.ub lr,lr\[0x1\]
 4.12146 ++ *[0-9a-f]*:	e9 3f 20 55 	ld\.ub pc,r4\[8277\]
 4.12147 ++ *[0-9a-f]*:	f9 35 4a e4 	ld\.ub r5,r12\[19172\]
 4.12148 ++ *[0-9a-f]*:	fd 3a 66 eb 	ld\.ub r10,lr\[26347\]
 4.12149 ++
 4.12150 ++[0-9a-f]* <st_d4>:
 4.12151 ++ *[0-9a-f]*:	fe e1 00 00 	st\.d pc\[0\],r0
 4.12152 ++ *[0-9a-f]*:	f8 ef ff ff 	st\.d r12\[-1\],lr
 4.12153 ++ *[0-9a-f]*:	ea e9 80 00 	st\.d r5\[-32768\],r8
 4.12154 ++ *[0-9a-f]*:	e8 e7 7f ff 	st\.d r4\[32767\],r6
 4.12155 ++ *[0-9a-f]*:	fc e3 00 01 	st\.d lr\[1\],r2
 4.12156 ++ *[0-9a-f]*:	ea eb 33 90 	st\.d r5\[13200\],r10
 4.12157 ++ *[0-9a-f]*:	ea eb 24 88 	st\.d r5\[9352\],r10
 4.12158 ++ *[0-9a-f]*:	ea e5 7e 75 	st\.d r5\[32373\],r4
 4.12159 ++
 4.12160 ++[0-9a-f]* <st_w4>:
 4.12161 ++ *[0-9a-f]*:	9f 0f       	st\.w pc\[0x0\],pc
 4.12162 ++ *[0-9a-f]*:	f9 4c ff ff 	st\.w r12\[-1\],r12
 4.12163 ++ *[0-9a-f]*:	eb 45 80 00 	st\.w r5\[-32768\],r5
 4.12164 ++ *[0-9a-f]*:	e9 44 7f ff 	st\.w r4\[32767\],r4
 4.12165 ++ *[0-9a-f]*:	fd 4e 00 01 	st\.w lr\[1\],lr
 4.12166 ++ *[0-9a-f]*:	fb 47 17 f8 	st\.w sp\[6136\],r7
 4.12167 ++ *[0-9a-f]*:	ed 4c 69 cf 	st\.w r6\[27087\],r12
 4.12168 ++ *[0-9a-f]*:	d7 03       	nop
 4.12169 ++
 4.12170 ++[0-9a-f]* <st_h4>:
 4.12171 ++ *[0-9a-f]*:	be 0f       	st\.h pc\[0x0\],pc
 4.12172 ++ *[0-9a-f]*:	f9 5c ff ff 	st\.h r12\[-1\],r12
 4.12173 ++ *[0-9a-f]*:	eb 55 80 00 	st\.h r5\[-32768\],r5
 4.12174 ++ *[0-9a-f]*:	e9 54 7f ff 	st\.h r4\[32767\],r4
 4.12175 ++ *[0-9a-f]*:	fd 5e 00 01 	st\.h lr\[1\],lr
 4.12176 ++ *[0-9a-f]*:	e9 57 d9 16 	st\.h r4\[-9962\],r7
 4.12177 ++ *[0-9a-f]*:	f3 53 c0 86 	st\.h r9\[-16250\],r3
 4.12178 ++ *[0-9a-f]*:	d7 03       	nop
 4.12179 ++
 4.12180 ++[0-9a-f]* <st_b4>:
 4.12181 ++ *[0-9a-f]*:	be 8f       	st\.b pc\[0x0\],pc
 4.12182 ++ *[0-9a-f]*:	f9 6c ff ff 	st\.b r12\[-1\],r12
 4.12183 ++ *[0-9a-f]*:	eb 65 80 00 	st\.b r5\[-32768\],r5
 4.12184 ++ *[0-9a-f]*:	e9 64 7f ff 	st\.b r4\[32767\],r4
 4.12185 ++ *[0-9a-f]*:	bc 9e       	st\.b lr\[0x1\],lr
 4.12186 ++ *[0-9a-f]*:	f9 66 75 96 	st\.b r12\[30102\],r6
 4.12187 ++ *[0-9a-f]*:	eb 61 71 31 	st\.b r5\[28977\],r1
 4.12188 ++ *[0-9a-f]*:	e1 61 15 5e 	st\.b r0\[5470\],r1
 4.12189 ++
 4.12190 ++[0-9a-f]* <mfsr>:
 4.12191 ++ *[0-9a-f]*:	e1 bf 00 00 	mfsr pc,0x0
 4.12192 ++ *[0-9a-f]*:	e1 bc 00 ff 	mfsr r12,0x3fc
 4.12193 ++ *[0-9a-f]*:	e1 b5 00 80 	mfsr r5,0x200
 4.12194 ++ *[0-9a-f]*:	e1 b4 00 7f 	mfsr r4,0x1fc
 4.12195 ++ *[0-9a-f]*:	e1 be 00 01 	mfsr lr,0x4
 4.12196 ++ *[0-9a-f]*:	e1 b2 00 ae 	mfsr r2,0x2b8
 4.12197 ++ *[0-9a-f]*:	e1 b4 00 41 	mfsr r4,0x104
 4.12198 ++ *[0-9a-f]*:	e1 ba 00 fe 	mfsr r10,0x3f8
 4.12199 ++
 4.12200 ++[0-9a-f]* <mtsr>:
 4.12201 ++ *[0-9a-f]*:	e3 bf 00 00 	mtsr 0x0,pc
 4.12202 ++ *[0-9a-f]*:	e3 bc 00 ff 	mtsr 0x3fc,r12
 4.12203 ++ *[0-9a-f]*:	e3 b5 00 80 	mtsr 0x200,r5
 4.12204 ++ *[0-9a-f]*:	e3 b4 00 7f 	mtsr 0x1fc,r4
 4.12205 ++ *[0-9a-f]*:	e3 be 00 01 	mtsr 0x4,lr
 4.12206 ++ *[0-9a-f]*:	e3 ba 00 38 	mtsr 0xe0,r10
 4.12207 ++ *[0-9a-f]*:	e3 bc 00 d1 	mtsr 0x344,r12
 4.12208 ++ *[0-9a-f]*:	e3 b9 00 4c 	mtsr 0x130,r9
 4.12209 ++
 4.12210 ++[0-9a-f]* <mfdr>:
 4.12211 ++ *[0-9a-f]*:	e5 bf 00 00 	mfdr pc,0x0
 4.12212 ++ *[0-9a-f]*:	e5 bc 00 ff 	mfdr r12,0x3fc
 4.12213 ++ *[0-9a-f]*:	e5 b5 00 80 	mfdr r5,0x200
 4.12214 ++ *[0-9a-f]*:	e5 b4 00 7f 	mfdr r4,0x1fc
 4.12215 ++ *[0-9a-f]*:	e5 be 00 01 	mfdr lr,0x4
 4.12216 ++ *[0-9a-f]*:	e5 b6 00 e9 	mfdr r6,0x3a4
 4.12217 ++ *[0-9a-f]*:	e5 b5 00 09 	mfdr r5,0x24
 4.12218 ++ *[0-9a-f]*:	e5 b9 00 4b 	mfdr r9,0x12c
 4.12219 ++
 4.12220 ++[0-9a-f]* <mtdr>:
 4.12221 ++ *[0-9a-f]*:	e7 bf 00 00 	mtdr 0x0,pc
 4.12222 ++ *[0-9a-f]*:	e7 bc 00 ff 	mtdr 0x3fc,r12
 4.12223 ++ *[0-9a-f]*:	e7 b5 00 80 	mtdr 0x200,r5
 4.12224 ++ *[0-9a-f]*:	e7 b4 00 7f 	mtdr 0x1fc,r4
 4.12225 ++ *[0-9a-f]*:	e7 be 00 01 	mtdr 0x4,lr
 4.12226 ++ *[0-9a-f]*:	e7 b8 00 2d 	mtdr 0xb4,r8
 4.12227 ++ *[0-9a-f]*:	e7 ba 00 b4 	mtdr 0x2d0,r10
 4.12228 ++ *[0-9a-f]*:	e7 be 00 66 	mtdr 0x198,lr
 4.12229 ++
 4.12230 ++[0-9a-f]* <sleep>:
 4.12231 ++ *[0-9a-f]*:	e9 b0 00 00 	sleep 0x0
 4.12232 ++ *[0-9a-f]*:	e9 b0 00 ff 	sleep 0xff
 4.12233 ++ *[0-9a-f]*:	e9 b0 00 80 	sleep 0x80
 4.12234 ++ *[0-9a-f]*:	e9 b0 00 7f 	sleep 0x7f
 4.12235 ++ *[0-9a-f]*:	e9 b0 00 01 	sleep 0x1
 4.12236 ++ *[0-9a-f]*:	e9 b0 00 fe 	sleep 0xfe
 4.12237 ++ *[0-9a-f]*:	e9 b0 00 0f 	sleep 0xf
 4.12238 ++ *[0-9a-f]*:	e9 b0 00 2b 	sleep 0x2b
 4.12239 ++
 4.12240 ++[0-9a-f]* <sync>:
 4.12241 ++ *[0-9a-f]*:	eb b0 00 00 	sync 0x0
 4.12242 ++ *[0-9a-f]*:	eb b0 00 ff 	sync 0xff
 4.12243 ++ *[0-9a-f]*:	eb b0 00 80 	sync 0x80
 4.12244 ++ *[0-9a-f]*:	eb b0 00 7f 	sync 0x7f
 4.12245 ++ *[0-9a-f]*:	eb b0 00 01 	sync 0x1
 4.12246 ++ *[0-9a-f]*:	eb b0 00 a6 	sync 0xa6
 4.12247 ++ *[0-9a-f]*:	eb b0 00 e6 	sync 0xe6
 4.12248 ++ *[0-9a-f]*:	eb b0 00 b4 	sync 0xb4
 4.12249 ++
 4.12250 ++[0-9a-f]* <bld>:
 4.12251 ++ *[0-9a-f]*:	ed bf 00 00 	bld pc,0x0
 4.12252 ++ *[0-9a-f]*:	ed bc 00 1f 	bld r12,0x1f
 4.12253 ++ *[0-9a-f]*:	ed b5 00 10 	bld r5,0x10
 4.12254 ++ *[0-9a-f]*:	ed b4 00 0f 	bld r4,0xf
 4.12255 ++ *[0-9a-f]*:	ed be 00 01 	bld lr,0x1
 4.12256 ++ *[0-9a-f]*:	ed b9 00 0f 	bld r9,0xf
 4.12257 ++ *[0-9a-f]*:	ed b0 00 04 	bld r0,0x4
 4.12258 ++ *[0-9a-f]*:	ed be 00 1a 	bld lr,0x1a
 4.12259 ++
 4.12260 ++[0-9a-f]* <bst>:
 4.12261 ++ *[0-9a-f]*:	ef bf 00 00 	bst pc,0x0
 4.12262 ++ *[0-9a-f]*:	ef bc 00 1f 	bst r12,0x1f
 4.12263 ++ *[0-9a-f]*:	ef b5 00 10 	bst r5,0x10
 4.12264 ++ *[0-9a-f]*:	ef b4 00 0f 	bst r4,0xf
 4.12265 ++ *[0-9a-f]*:	ef be 00 01 	bst lr,0x1
 4.12266 ++ *[0-9a-f]*:	ef ba 00 1c 	bst r10,0x1c
 4.12267 ++ *[0-9a-f]*:	ef b0 00 03 	bst r0,0x3
 4.12268 ++ *[0-9a-f]*:	ef bd 00 02 	bst sp,0x2
 4.12269 ++
 4.12270 ++[0-9a-f]* <sats>:
 4.12271 ++ *[0-9a-f]*:	f1 bf 00 00 	sats pc,0x0
 4.12272 ++ *[0-9a-f]*:	f1 bc 03 ff 	sats r12>>0x1f,0x1f
 4.12273 ++ *[0-9a-f]*:	f1 b5 02 10 	sats r5>>0x10,0x10
 4.12274 ++ *[0-9a-f]*:	f1 b4 01 ef 	sats r4>>0xf,0xf
 4.12275 ++ *[0-9a-f]*:	f1 be 00 21 	sats lr>>0x1,0x1
 4.12276 ++ *[0-9a-f]*:	f1 ba 02 63 	sats r10>>0x3,0x13
 4.12277 ++ *[0-9a-f]*:	f1 ba 03 42 	sats r10>>0x2,0x1a
 4.12278 ++ *[0-9a-f]*:	f1 b1 00 34 	sats r1>>0x14,0x1
 4.12279 ++
 4.12280 ++[0-9a-f]* <satu>:
 4.12281 ++ *[0-9a-f]*:	f1 bf 04 00 	satu pc,0x0
 4.12282 ++ *[0-9a-f]*:	f1 bc 07 ff 	satu r12>>0x1f,0x1f
 4.12283 ++ *[0-9a-f]*:	f1 b5 06 10 	satu r5>>0x10,0x10
 4.12284 ++ *[0-9a-f]*:	f1 b4 05 ef 	satu r4>>0xf,0xf
 4.12285 ++ *[0-9a-f]*:	f1 be 04 21 	satu lr>>0x1,0x1
 4.12286 ++ *[0-9a-f]*:	f1 bf 04 e5 	satu pc>>0x5,0x7
 4.12287 ++ *[0-9a-f]*:	f1 b7 04 a5 	satu r7>>0x5,0x5
 4.12288 ++ *[0-9a-f]*:	f1 b2 06 7a 	satu r2>>0x1a,0x13
 4.12289 ++
 4.12290 ++[0-9a-f]* <satrnds>:
 4.12291 ++ *[0-9a-f]*:	f3 bf 00 00 	satrnds pc,0x0
 4.12292 ++ *[0-9a-f]*:	f3 bc 03 ff 	satrnds r12>>0x1f,0x1f
 4.12293 ++ *[0-9a-f]*:	f3 b5 02 10 	satrnds r5>>0x10,0x10
 4.12294 ++ *[0-9a-f]*:	f3 b4 01 ef 	satrnds r4>>0xf,0xf
 4.12295 ++ *[0-9a-f]*:	f3 be 00 21 	satrnds lr>>0x1,0x1
 4.12296 ++ *[0-9a-f]*:	f3 b0 02 75 	satrnds r0>>0x15,0x13
 4.12297 ++ *[0-9a-f]*:	f3 bd 00 40 	satrnds sp,0x2
 4.12298 ++ *[0-9a-f]*:	f3 b7 03 a6 	satrnds r7>>0x6,0x1d
 4.12299 ++
 4.12300 ++[0-9a-f]* <satrndu>:
 4.12301 ++ *[0-9a-f]*:	f3 bf 04 00 	satrndu pc,0x0
 4.12302 ++ *[0-9a-f]*:	f3 bc 07 ff 	satrndu r12>>0x1f,0x1f
 4.12303 ++ *[0-9a-f]*:	f3 b5 06 10 	satrndu r5>>0x10,0x10
 4.12304 ++ *[0-9a-f]*:	f3 b4 05 ef 	satrndu r4>>0xf,0xf
 4.12305 ++ *[0-9a-f]*:	f3 be 04 21 	satrndu lr>>0x1,0x1
 4.12306 ++ *[0-9a-f]*:	f3 bc 07 40 	satrndu r12,0x1a
 4.12307 ++ *[0-9a-f]*:	f3 b4 04 75 	satrndu r4>>0x15,0x3
 4.12308 ++ *[0-9a-f]*:	f3 ba 06 03 	satrndu r10>>0x3,0x10
 4.12309 ++
 4.12310 ++[0-9a-f]* <subfc>:
 4.12311 ++ *[0-9a-f]*:	f5 bf 00 00 	subfeq pc,0
 4.12312 ++ *[0-9a-f]*:	f5 bc 0f ff 	subfal r12,-1
 4.12313 ++ *[0-9a-f]*:	f5 b5 08 80 	subfls r5,-128
 4.12314 ++ *[0-9a-f]*:	f5 b4 07 7f 	subfpl r4,127
 4.12315 ++ *[0-9a-f]*:	f5 be 01 01 	subfne lr,1
 4.12316 ++ *[0-9a-f]*:	f5 ba 08 08 	subfls r10,8
 4.12317 ++ *[0-9a-f]*:	f5 bb 0d 63 	subfvc r11,99
 4.12318 ++ *[0-9a-f]*:	f5 b2 0c 49 	subfvs r2,73
 4.12319 ++
 4.12320 ++[0-9a-f]* <subc>:
 4.12321 ++ *[0-9a-f]*:	f7 bf 00 00 	subeq pc,0
 4.12322 ++ *[0-9a-f]*:	f7 bc 0f ff 	subal r12,-1
 4.12323 ++ *[0-9a-f]*:	f7 b5 08 80 	subls r5,-128
 4.12324 ++ *[0-9a-f]*:	f7 b4 07 7f 	subpl r4,127
 4.12325 ++ *[0-9a-f]*:	f7 be 01 01 	subne lr,1
 4.12326 ++ *[0-9a-f]*:	f7 bc 08 76 	subls r12,118
 4.12327 ++ *[0-9a-f]*:	f7 be 0d f4 	subvc lr,-12
 4.12328 ++ *[0-9a-f]*:	f7 b4 06 f3 	submi r4,-13
 4.12329 ++
 4.12330 ++[0-9a-f]* <movc2>:
 4.12331 ++ *[0-9a-f]*:	f9 bf 00 00 	moveq pc,0
 4.12332 ++ *[0-9a-f]*:	f9 bc 0f ff 	moval r12,-1
 4.12333 ++ *[0-9a-f]*:	f9 b5 08 80 	movls r5,-128
 4.12334 ++ *[0-9a-f]*:	f9 b4 07 7f 	movpl r4,127
 4.12335 ++ *[0-9a-f]*:	f9 be 01 01 	movne lr,1
 4.12336 ++ *[0-9a-f]*:	f9 b3 05 86 	movlt r3,-122
 4.12337 ++ *[0-9a-f]*:	f9 b8 0d 02 	movvc r8,2
 4.12338 ++ *[0-9a-f]*:	f9 b7 01 91 	movne r7,-111
 4.12339 ++
 4.12340 ++[0-9a-f]* <cp_b>:
 4.12341 ++ *[0-9a-f]*:	e0 0f 18 00 	cp\.b pc,r0
 4.12342 ++ *[0-9a-f]*:	fe 00 18 00 	cp\.b r0,pc
 4.12343 ++ *[0-9a-f]*:	f0 07 18 00 	cp\.b r7,r8
 4.12344 ++ *[0-9a-f]*:	ee 08 18 00 	cp\.b r8,r7
 4.12345 ++
 4.12346 ++[0-9a-f]* <cp_h>:
 4.12347 ++ *[0-9a-f]*:	e0 0f 19 00 	cp\.h pc,r0
 4.12348 ++ *[0-9a-f]*:	fe 00 19 00 	cp\.h r0,pc
 4.12349 ++ *[0-9a-f]*:	f0 07 19 00 	cp\.h r7,r8
 4.12350 ++ *[0-9a-f]*:	ee 08 19 00 	cp\.h r8,r7
 4.12351 ++
 4.12352 ++[0-9a-f]* <ldm>:
 4.12353 ++ *[0-9a-f]*:	e1 cf 00 7e 	ldm pc,r1-r6
 4.12354 ++ *[0-9a-f]*:	e1 cc ff ff 	ldm r12,r0-pc
 4.12355 ++ *[0-9a-f]*:	e1 c5 80 00 	ldm r5,pc
 4.12356 ++ *[0-9a-f]*:	e1 c4 7f ff 	ldm r4,r0-lr
 4.12357 ++ *[0-9a-f]*:	e1 ce 00 01 	ldm lr,r0
 4.12358 ++ *[0-9a-f]*:	e1 c9 40 22 	ldm r9,r1,r5,lr
 4.12359 ++ *[0-9a-f]*:	e1 cb 81 ec 	ldm r11,r2-r3,r5-r8,pc
 4.12360 ++ *[0-9a-f]*:	e1 c6 a2 09 	ldm r6,r0,r3,r9,sp,pc
 4.12361 ++
 4.12362 ++[0-9a-f]* <ldm_pu>:
 4.12363 ++ *[0-9a-f]*:	e3 cf 03 c0 	ldm pc\+\+,r6-r9
 4.12364 ++ *[0-9a-f]*:	e3 cc ff ff 	ldm r12\+\+,r0-pc
 4.12365 ++ *[0-9a-f]*:	e3 c5 80 00 	ldm r5\+\+,pc
 4.12366 ++ *[0-9a-f]*:	e3 c4 7f ff 	ldm r4\+\+,r0-lr
 4.12367 ++ *[0-9a-f]*:	e3 ce 00 01 	ldm lr\+\+,r0
 4.12368 ++ *[0-9a-f]*:	e3 cc d5 38 	ldm r12\+\+,r3-r5,r8,r10,r12,lr-pc
 4.12369 ++ *[0-9a-f]*:	e3 ca c0 74 	ldm r10\+\+,r2,r4-r6,lr-pc
 4.12370 ++ *[0-9a-f]*:	e3 c6 7e 1a 	ldm r6\+\+,r1,r3-r4,r9-lr
 4.12371 ++
 4.12372 ++[0-9a-f]* <ldmts>:
 4.12373 ++ *[0-9a-f]*:	e5 cf 01 80 	ldmts pc,r7-r8
 4.12374 ++ *[0-9a-f]*:	e5 cc ff ff 	ldmts r12,r0-pc
 4.12375 ++ *[0-9a-f]*:	e5 c5 80 00 	ldmts r5,pc
 4.12376 ++ *[0-9a-f]*:	e5 c4 7f ff 	ldmts r4,r0-lr
 4.12377 ++ *[0-9a-f]*:	e5 ce 00 01 	ldmts lr,r0
 4.12378 ++ *[0-9a-f]*:	e5 c0 18 06 	ldmts r0,r1-r2,r11-r12
 4.12379 ++ *[0-9a-f]*:	e5 ce 61 97 	ldmts lr,r0-r2,r4,r7-r8,sp-lr
 4.12380 ++ *[0-9a-f]*:	e5 cc c2 3b 	ldmts r12,r0-r1,r3-r5,r9,lr-pc
 4.12381 ++
 4.12382 ++[0-9a-f]* <ldmts_pu>:
 4.12383 ++ *[0-9a-f]*:	e7 cf 02 00 	ldmts pc\+\+,r9
 4.12384 ++ *[0-9a-f]*:	e7 cc ff ff 	ldmts r12\+\+,r0-pc
 4.12385 ++ *[0-9a-f]*:	e7 c5 80 00 	ldmts r5\+\+,pc
 4.12386 ++ *[0-9a-f]*:	e7 c4 7f ff 	ldmts r4\+\+,r0-lr
 4.12387 ++ *[0-9a-f]*:	e7 ce 00 01 	ldmts lr\+\+,r0
 4.12388 ++ *[0-9a-f]*:	e7 cd 0a bd 	ldmts sp\+\+,r0,r2-r5,r7,r9,r11
 4.12389 ++ *[0-9a-f]*:	e7 c5 0c 8e 	ldmts r5\+\+,r1-r3,r7,r10-r11
 4.12390 ++ *[0-9a-f]*:	e7 c8 a1 9c 	ldmts r8\+\+,r2-r4,r7-r8,sp,pc
 4.12391 ++
 4.12392 ++[0-9a-f]* <stm>:
 4.12393 ++ *[0-9a-f]*:	e9 cf 00 80 	stm pc,r7
 4.12394 ++ *[0-9a-f]*:	e9 cc ff ff 	stm r12,r0-pc
 4.12395 ++ *[0-9a-f]*:	e9 c5 80 00 	stm r5,pc
 4.12396 ++ *[0-9a-f]*:	e9 c4 7f ff 	stm r4,r0-lr
 4.12397 ++ *[0-9a-f]*:	e9 ce 00 01 	stm lr,r0
 4.12398 ++ *[0-9a-f]*:	e9 cd 49 2c 	stm sp,r2-r3,r5,r8,r11,lr
 4.12399 ++ *[0-9a-f]*:	e9 c4 4c 5f 	stm r4,r0-r4,r6,r10-r11,lr
 4.12400 ++ *[0-9a-f]*:	e9 c9 f2 22 	stm r9,r1,r5,r9,r12-pc
 4.12401 ++
 4.12402 ++[0-9a-f]* <stm_pu>:
 4.12403 ++ *[0-9a-f]*:	eb cf 00 70 	stm --pc,r4-r6
 4.12404 ++ *[0-9a-f]*:	eb cc ff ff 	stm --r12,r0-pc
 4.12405 ++ *[0-9a-f]*:	eb c5 80 00 	stm --r5,pc
 4.12406 ++ *[0-9a-f]*:	eb c4 7f ff 	stm --r4,r0-lr
 4.12407 ++ *[0-9a-f]*:	eb ce 00 01 	stm --lr,r0
 4.12408 ++ *[0-9a-f]*:	eb cb fb f1 	stm --r11,r0,r4-r9,r11-pc
 4.12409 ++ *[0-9a-f]*:	eb cb 56 09 	stm --r11,r0,r3,r9-r10,r12,lr
 4.12410 ++ *[0-9a-f]*:	eb c6 63 04 	stm --r6,r2,r8-r9,sp-lr
 4.12411 ++
 4.12412 ++[0-9a-f]* <stmts>:
 4.12413 ++ *[0-9a-f]*:	ed cf 01 00 	stmts pc,r8
 4.12414 ++ *[0-9a-f]*:	ed cc ff ff 	stmts r12,r0-pc
 4.12415 ++ *[0-9a-f]*:	ed c5 80 00 	stmts r5,pc
 4.12416 ++ *[0-9a-f]*:	ed c4 7f ff 	stmts r4,r0-lr
 4.12417 ++ *[0-9a-f]*:	ed ce 00 01 	stmts lr,r0
 4.12418 ++ *[0-9a-f]*:	ed c1 c6 5b 	stmts r1,r0-r1,r3-r4,r6,r9-r10,lr-pc
 4.12419 ++ *[0-9a-f]*:	ed c3 1d c1 	stmts r3,r0,r6-r8,r10-r12
 4.12420 ++ *[0-9a-f]*:	ed cb d6 d1 	stmts r11,r0,r4,r6-r7,r9-r10,r12,lr-pc
 4.12421 ++
 4.12422 ++[0-9a-f]* <stmts_pu>:
 4.12423 ++ *[0-9a-f]*:	ef cf 01 c0 	stmts --pc,r6-r8
 4.12424 ++ *[0-9a-f]*:	ef cc ff ff 	stmts --r12,r0-pc
 4.12425 ++ *[0-9a-f]*:	ef c5 80 00 	stmts --r5,pc
 4.12426 ++ *[0-9a-f]*:	ef c4 7f ff 	stmts --r4,r0-lr
 4.12427 ++ *[0-9a-f]*:	ef ce 00 01 	stmts --lr,r0
 4.12428 ++ *[0-9a-f]*:	ef c2 36 19 	stmts --r2,r0,r3-r4,r9-r10,r12-sp
 4.12429 ++ *[0-9a-f]*:	ef c3 c0 03 	stmts --r3,r0-r1,lr-pc
 4.12430 ++ *[0-9a-f]*:	ef c0 44 7d 	stmts --r0,r0,r2-r6,r10,lr
 4.12431 ++
 4.12432 ++[0-9a-f]* <ldins_h>:
 4.12433 ++ *[0-9a-f]*:	ff df 00 00 	ldins\.h pc:b,pc\[0\]
 4.12434 ++ *[0-9a-f]*:	f9 dc 1f ff 	ldins\.h r12:t,r12\[-2\]
 4.12435 ++ *[0-9a-f]*:	eb d5 18 00 	ldins\.h r5:t,r5\[-4096\]
 4.12436 ++ *[0-9a-f]*:	e9 d4 07 ff 	ldins\.h r4:b,r4\[4094\]
 4.12437 ++ *[0-9a-f]*:	fd de 10 01 	ldins\.h lr:t,lr\[2\]
 4.12438 ++ *[0-9a-f]*:	fd d0 13 c5 	ldins\.h r0:t,lr\[1930\]
 4.12439 ++ *[0-9a-f]*:	ef d3 0e f5 	ldins\.h r3:b,r7\[-534\]
 4.12440 ++ *[0-9a-f]*:	f9 d2 0b 9a 	ldins\.h r2:b,r12\[-2252\]
 4.12441 ++
 4.12442 ++[0-9a-f]* <ldins_b>:
 4.12443 ++ *[0-9a-f]*:	ff df 40 00 	ldins\.b pc:b,pc\[0\]
 4.12444 ++ *[0-9a-f]*:	f9 dc 7f ff 	ldins\.b r12:t,r12\[-1\]
 4.12445 ++ *[0-9a-f]*:	eb d5 68 00 	ldins\.b r5:u,r5\[-2048\]
 4.12446 ++ *[0-9a-f]*:	e9 d4 57 ff 	ldins\.b r4:l,r4\[2047\]
 4.12447 ++ *[0-9a-f]*:	fd de 50 01 	ldins\.b lr:l,lr\[1\]
 4.12448 ++ *[0-9a-f]*:	e9 d6 7d 6a 	ldins\.b r6:t,r4\[-662\]
 4.12449 ++ *[0-9a-f]*:	e3 d5 4f 69 	ldins\.b r5:b,r1\[-151\]
 4.12450 ++ *[0-9a-f]*:	f7 da 78 7d 	ldins\.b r10:t,r11\[-1923\]
 4.12451 ++
 4.12452 ++[0-9a-f]* <ldswp_sh>:
 4.12453 ++ *[0-9a-f]*:	ff df 20 00 	ldswp\.sh pc,pc\[0\]
 4.12454 ++ *[0-9a-f]*:	f9 dc 2f ff 	ldswp\.sh r12,r12\[-2\]
 4.12455 ++ *[0-9a-f]*:	eb d5 28 00 	ldswp\.sh r5,r5\[-4096\]
 4.12456 ++ *[0-9a-f]*:	e9 d4 27 ff 	ldswp\.sh r4,r4\[4094\]
 4.12457 ++ *[0-9a-f]*:	fd de 20 01 	ldswp\.sh lr,lr\[2\]
 4.12458 ++ *[0-9a-f]*:	f5 d9 27 84 	ldswp\.sh r9,r10\[3848\]
 4.12459 ++ *[0-9a-f]*:	f9 d4 2c 04 	ldswp\.sh r4,r12\[-2040\]
 4.12460 ++ *[0-9a-f]*:	e5 da 26 08 	ldswp\.sh r10,r2\[3088\]
 4.12461 ++
 4.12462 ++[0-9a-f]* <ldswp_uh>:
 4.12463 ++ *[0-9a-f]*:	ff df 30 00 	ldswp\.uh pc,pc\[0\]
 4.12464 ++ *[0-9a-f]*:	f9 dc 3f ff 	ldswp\.uh r12,r12\[-2\]
 4.12465 ++ *[0-9a-f]*:	eb d5 38 00 	ldswp\.uh r5,r5\[-4096\]
 4.12466 ++ *[0-9a-f]*:	e9 d4 37 ff 	ldswp\.uh r4,r4\[4094\]
 4.12467 ++ *[0-9a-f]*:	fd de 30 01 	ldswp\.uh lr,lr\[2\]
 4.12468 ++ *[0-9a-f]*:	f3 d4 37 46 	ldswp\.uh r4,r9\[3724\]
 4.12469 ++ *[0-9a-f]*:	fb de 3c bc 	ldswp\.uh lr,sp\[-1672\]
 4.12470 ++ *[0-9a-f]*:	f9 d8 38 7d 	ldswp\.uh r8,r12\[-3846\]
 4.12471 ++
 4.12472 ++[0-9a-f]* <ldswp_w>:
 4.12473 ++ *[0-9a-f]*:	ff df 80 00 	ldswp\.w pc,pc\[0\]
 4.12474 ++ *[0-9a-f]*:	f9 dc 8f ff 	ldswp\.w r12,r12\[-4\]
 4.12475 ++ *[0-9a-f]*:	eb d5 88 00 	ldswp\.w r5,r5\[-8192\]
 4.12476 ++ *[0-9a-f]*:	e9 d4 87 ff 	ldswp\.w r4,r4\[8188\]
 4.12477 ++ *[0-9a-f]*:	fd de 80 01 	ldswp\.w lr,lr\[4\]
 4.12478 ++ *[0-9a-f]*:	ef dd 81 d1 	ldswp\.w sp,r7\[1860\]
 4.12479 ++ *[0-9a-f]*:	eb df 8c c1 	ldswp\.w pc,r5\[-3324\]
 4.12480 ++ *[0-9a-f]*:	f5 dc 8c c8 	ldswp\.w r12,r10\[-3296\]
 4.12481 ++
 4.12482 ++[0-9a-f]* <stswp_h>:
 4.12483 ++ *[0-9a-f]*:	ff df 90 00 	stswp\.h pc\[0\],pc
 4.12484 ++ *[0-9a-f]*:	f9 dc 9f ff 	stswp\.h r12\[-2\],r12
 4.12485 ++ *[0-9a-f]*:	eb d5 98 00 	stswp\.h r5\[-4096\],r5
 4.12486 ++ *[0-9a-f]*:	e9 d4 97 ff 	stswp\.h r4\[4094\],r4
 4.12487 ++ *[0-9a-f]*:	fd de 90 01 	stswp\.h lr\[2\],lr
 4.12488 ++ *[0-9a-f]*:	ef da 90 20 	stswp\.h r7\[64\],r10
 4.12489 ++ *[0-9a-f]*:	f5 d2 95 e8 	stswp\.h r10\[3024\],r2
 4.12490 ++ *[0-9a-f]*:	e1 da 9b 74 	stswp\.h r0\[-2328\],r10
 4.12491 ++
 4.12492 ++[0-9a-f]* <stswp_w>:
 4.12493 ++ *[0-9a-f]*:	ff df a0 00 	stswp\.w pc\[0\],pc
 4.12494 ++ *[0-9a-f]*:	f9 dc af ff 	stswp\.w r12\[-4\],r12
 4.12495 ++ *[0-9a-f]*:	eb d5 a8 00 	stswp\.w r5\[-8192\],r5
 4.12496 ++ *[0-9a-f]*:	e9 d4 a7 ff 	stswp\.w r4\[8188\],r4
 4.12497 ++ *[0-9a-f]*:	fd de a0 01 	stswp\.w lr\[4\],lr
 4.12498 ++ *[0-9a-f]*:	ff d8 a1 21 	stswp\.w pc\[1156\],r8
 4.12499 ++ *[0-9a-f]*:	fb da a7 ce 	stswp\.w sp\[7992\],r10
 4.12500 ++ *[0-9a-f]*:	f1 d5 ae db 	stswp\.w r8\[-1172\],r5
 4.12501 ++
 4.12502 ++[0-9a-f]* <and2>:
 4.12503 ++ *[0-9a-f]*:	ff ef 00 0f 	and pc,pc,pc
 4.12504 ++ *[0-9a-f]*:	f9 ec 01 fc 	and r12,r12,r12<<0x1f
 4.12505 ++ *[0-9a-f]*:	eb e5 01 05 	and r5,r5,r5<<0x10
 4.12506 ++ *[0-9a-f]*:	e9 e4 00 f4 	and r4,r4,r4<<0xf
 4.12507 ++ *[0-9a-f]*:	fd ee 00 1e 	and lr,lr,lr<<0x1
 4.12508 ++ *[0-9a-f]*:	e5 e1 00 1a 	and r10,r2,r1<<0x1
 4.12509 ++ *[0-9a-f]*:	f1 eb 01 bc 	and r12,r8,r11<<0x1b
 4.12510 ++ *[0-9a-f]*:	ef e0 00 3a 	and r10,r7,r0<<0x3
 4.12511 ++
 4.12512 ++[0-9a-f]* <and3>:
 4.12513 ++ *[0-9a-f]*:	ff ef 02 0f 	and pc,pc,pc
 4.12514 ++ *[0-9a-f]*:	f9 ec 03 fc 	and r12,r12,r12>>0x1f
 4.12515 ++ *[0-9a-f]*:	eb e5 03 05 	and r5,r5,r5>>0x10
 4.12516 ++ *[0-9a-f]*:	e9 e4 02 f4 	and r4,r4,r4>>0xf
 4.12517 ++ *[0-9a-f]*:	fd ee 02 1e 	and lr,lr,lr>>0x1
 4.12518 ++ *[0-9a-f]*:	f1 e7 03 1c 	and r12,r8,r7>>0x11
 4.12519 ++ *[0-9a-f]*:	e9 e9 03 4f 	and pc,r4,r9>>0x14
 4.12520 ++ *[0-9a-f]*:	f3 ea 02 ca 	and r10,r9,r10>>0xc
 4.12521 ++
 4.12522 ++[0-9a-f]* <or2>:
 4.12523 ++ *[0-9a-f]*:	ff ef 10 0f 	or pc,pc,pc
 4.12524 ++ *[0-9a-f]*:	f9 ec 11 fc 	or r12,r12,r12<<0x1f
 4.12525 ++ *[0-9a-f]*:	eb e5 11 05 	or r5,r5,r5<<0x10
 4.12526 ++ *[0-9a-f]*:	e9 e4 10 f4 	or r4,r4,r4<<0xf
 4.12527 ++ *[0-9a-f]*:	fd ee 10 1e 	or lr,lr,lr<<0x1
 4.12528 ++ *[0-9a-f]*:	fb eb 11 d8 	or r8,sp,r11<<0x1d
 4.12529 ++ *[0-9a-f]*:	f3 e2 11 cf 	or pc,r9,r2<<0x1c
 4.12530 ++ *[0-9a-f]*:	e3 e2 10 35 	or r5,r1,r2<<0x3
 4.12531 ++
 4.12532 ++[0-9a-f]* <or3>:
 4.12533 ++ *[0-9a-f]*:	ff ef 12 0f 	or pc,pc,pc
 4.12534 ++ *[0-9a-f]*:	f9 ec 13 fc 	or r12,r12,r12>>0x1f
 4.12535 ++ *[0-9a-f]*:	eb e5 13 05 	or r5,r5,r5>>0x10
 4.12536 ++ *[0-9a-f]*:	e9 e4 12 f4 	or r4,r4,r4>>0xf
 4.12537 ++ *[0-9a-f]*:	fd ee 12 1e 	or lr,lr,lr>>0x1
 4.12538 ++ *[0-9a-f]*:	fb ed 12 21 	or r1,sp,sp>>0x2
 4.12539 ++ *[0-9a-f]*:	e3 e1 13 d0 	or r0,r1,r1>>0x1d
 4.12540 ++ *[0-9a-f]*:	f9 e8 12 84 	or r4,r12,r8>>0x8
 4.12541 ++
 4.12542 ++[0-9a-f]* <eor2>:
 4.12543 ++ *[0-9a-f]*:	ff ef 20 0f 	eor pc,pc,pc
 4.12544 ++ *[0-9a-f]*:	f9 ec 21 fc 	eor r12,r12,r12<<0x1f
 4.12545 ++ *[0-9a-f]*:	eb e5 21 05 	eor r5,r5,r5<<0x10
 4.12546 ++ *[0-9a-f]*:	e9 e4 20 f4 	eor r4,r4,r4<<0xf
 4.12547 ++ *[0-9a-f]*:	fd ee 20 1e 	eor lr,lr,lr<<0x1
 4.12548 ++ *[0-9a-f]*:	f3 e4 20 ba 	eor r10,r9,r4<<0xb
 4.12549 ++ *[0-9a-f]*:	e1 e1 21 f4 	eor r4,r0,r1<<0x1f
 4.12550 ++ *[0-9a-f]*:	e5 ec 20 d6 	eor r6,r2,r12<<0xd
 4.12551 ++
 4.12552 ++[0-9a-f]* <eor3>:
 4.12553 ++ *[0-9a-f]*:	ff ef 22 0f 	eor pc,pc,pc
 4.12554 ++ *[0-9a-f]*:	f9 ec 23 fc 	eor r12,r12,r12>>0x1f
 4.12555 ++ *[0-9a-f]*:	eb e5 23 05 	eor r5,r5,r5>>0x10
 4.12556 ++ *[0-9a-f]*:	e9 e4 22 f4 	eor r4,r4,r4>>0xf
 4.12557 ++ *[0-9a-f]*:	fd ee 22 1e 	eor lr,lr,lr>>0x1
 4.12558 ++ *[0-9a-f]*:	eb e5 23 65 	eor r5,r5,r5>>0x16
 4.12559 ++ *[0-9a-f]*:	e3 ee 22 3a 	eor r10,r1,lr>>0x3
 4.12560 ++ *[0-9a-f]*:	fd ed 23 a7 	eor r7,lr,sp>>0x1a
 4.12561 ++
 4.12562 ++[0-9a-f]* <sthh_w2>:
 4.12563 ++ *[0-9a-f]*:	ff ef 8f 0f 	sthh\.w pc\[pc\],pc:b,pc:b
 4.12564 ++ *[0-9a-f]*:	f9 ec bc 3c 	sthh\.w r12\[r12<<0x3\],r12:t,r12:t
 4.12565 ++ *[0-9a-f]*:	eb e5 b5 25 	sthh\.w r5\[r5<<0x2\],r5:t,r5:t
 4.12566 ++ *[0-9a-f]*:	e9 e4 84 14 	sthh\.w r4\[r4<<0x1\],r4:b,r4:b
 4.12567 ++ *[0-9a-f]*:	fd ee be 1e 	sthh\.w lr\[lr<<0x1\],lr:t,lr:t
 4.12568 ++ *[0-9a-f]*:	e3 ec b6 3d 	sthh\.w sp\[r6<<0x3\],r1:t,r12:t
 4.12569 ++ *[0-9a-f]*:	f3 e9 b6 06 	sthh\.w r6\[r6\],r9:t,r9:t
 4.12570 ++ *[0-9a-f]*:	e1 eb 93 0a 	sthh\.w r10\[r3\],r0:b,r11:t
 4.12571 ++
 4.12572 ++[0-9a-f]* <sthh_w1>:
 4.12573 ++ *[0-9a-f]*:	ff ef c0 0f 	sthh\.w pc\[0x0\],pc:b,pc:b
 4.12574 ++ *[0-9a-f]*:	f9 ec ff fc 	sthh\.w r12\[0x3fc\],r12:t,r12:t
 4.12575 ++ *[0-9a-f]*:	eb e5 f8 05 	sthh\.w r5\[0x200\],r5:t,r5:t
 4.12576 ++ *[0-9a-f]*:	e9 e4 c7 f4 	sthh\.w r4\[0x1fc\],r4:b,r4:b
 4.12577 ++ *[0-9a-f]*:	fd ee f0 1e 	sthh\.w lr\[0x4\],lr:t,lr:t
 4.12578 ++ *[0-9a-f]*:	f3 e0 e6 54 	sthh\.w r4\[0x194\],r9:t,r0:b
 4.12579 ++ *[0-9a-f]*:	e5 ea e5 78 	sthh\.w r8\[0x15c\],r2:t,r10:b
 4.12580 ++ *[0-9a-f]*:	f3 e2 c2 bd 	sthh\.w sp\[0xac\],r9:b,r2:b
 4.12581 ++
 4.12582 ++[0-9a-f]* <cop>:
 4.12583 ++ *[0-9a-f]*:	e1 a0 00 00 	cop cp0,cr0,cr0,cr0,0x0
 4.12584 ++ *[0-9a-f]*:	e7 af ff ff 	cop cp7,cr15,cr15,cr15,0x7f
 4.12585 ++ *[0-9a-f]*:	e3 a8 75 55 	cop cp3,cr5,cr5,cr5,0x31
 4.12586 ++ *[0-9a-f]*:	e3 a8 44 44 	cop cp2,cr4,cr4,cr4,0x30
 4.12587 ++ *[0-9a-f]*:	e5 ad a8 37 	cop cp5,cr8,cr3,cr7,0x5a
 4.12588 ++
 4.12589 ++[0-9a-f]* <ldc_w1>:
 4.12590 ++ *[0-9a-f]*:	e9 a0 00 00 	ldc\.w cp0,cr0,r0\[0x0\]
 4.12591 ++ *[0-9a-f]*:	e9 af ef ff 	ldc\.w cp7,cr15,pc\[0x3fc\]
 4.12592 ++ *[0-9a-f]*:	e9 a5 65 80 	ldc\.w cp3,cr5,r5\[0x200\]
 4.12593 ++ *[0-9a-f]*:	e9 a4 44 7f 	ldc\.w cp2,cr4,r4\[0x1fc\]
 4.12594 ++ *[0-9a-f]*:	e9 ad 89 24 	ldc\.w cp4,cr9,sp\[0x90\]
 4.12595 ++
 4.12596 ++[0-9a-f]* <ldc_w2>:
 4.12597 ++ *[0-9a-f]*:	ef a0 00 40 	ldc\.w cp0,cr0,--r0
 4.12598 ++ *[0-9a-f]*:	ef af ef 40 	ldc\.w cp7,cr15,--pc
 4.12599 ++ *[0-9a-f]*:	ef a5 65 40 	ldc\.w cp3,cr5,--r5
 4.12600 ++ *[0-9a-f]*:	ef a4 44 40 	ldc\.w cp2,cr4,--r4
 4.12601 ++ *[0-9a-f]*:	ef ad 89 40 	ldc\.w cp4,cr9,--sp
 4.12602 ++
 4.12603 ++[0-9a-f]* <ldc_w3>:
 4.12604 ++ *[0-9a-f]*:	ef a0 10 00 	ldc\.w cp0,cr0,r0\[r0\]
 4.12605 ++ *[0-9a-f]*:	ef af ff 3f 	ldc\.w cp7,cr15,pc\[pc<<0x3\]
 4.12606 ++ *[0-9a-f]*:	ef a5 75 24 	ldc\.w cp3,cr5,r5\[r4<<0x2\]
 4.12607 ++ *[0-9a-f]*:	ef a4 54 13 	ldc\.w cp2,cr4,r4\[r3<<0x1\]
 4.12608 ++ *[0-9a-f]*:	ef ad 99 0c 	ldc\.w cp4,cr9,sp\[r12\]
 4.12609 ++
 4.12610 ++[0-9a-f]* <ldc_d1>:
 4.12611 ++ *[0-9a-f]*:	e9 a0 10 00 	ldc\.d cp0,cr0,r0\[0x0\]
 4.12612 ++ *[0-9a-f]*:	e9 af fe ff 	ldc\.d cp7,cr14,pc\[0x3fc\]
 4.12613 ++ *[0-9a-f]*:	e9 a5 76 80 	ldc\.d cp3,cr6,r5\[0x200\]
 4.12614 ++ *[0-9a-f]*:	e9 a4 54 7f 	ldc\.d cp2,cr4,r4\[0x1fc\]
 4.12615 ++ *[0-9a-f]*:	e9 ad 98 24 	ldc\.d cp4,cr8,sp\[0x90\]
 4.12616 ++
 4.12617 ++[0-9a-f]* <ldc_d2>:
 4.12618 ++ *[0-9a-f]*:	ef a0 00 50 	ldc\.d cp0,cr0,--r0
 4.12619 ++ *[0-9a-f]*:	ef af ee 50 	ldc\.d cp7,cr14,--pc
 4.12620 ++ *[0-9a-f]*:	ef a5 66 50 	ldc\.d cp3,cr6,--r5
 4.12621 ++ *[0-9a-f]*:	ef a4 44 50 	ldc\.d cp2,cr4,--r4
 4.12622 ++ *[0-9a-f]*:	ef ad 88 50 	ldc\.d cp4,cr8,--sp
 4.12623 ++
 4.12624 ++[0-9a-f]* <ldc_d3>:
 4.12625 ++ *[0-9a-f]*:	ef a0 10 40 	ldc\.d cp0,cr0,r0\[r0\]
 4.12626 ++ *[0-9a-f]*:	ef af fe 7f 	ldc\.d cp7,cr14,pc\[pc<<0x3\]
 4.12627 ++ *[0-9a-f]*:	ef a5 76 64 	ldc\.d cp3,cr6,r5\[r4<<0x2\]
 4.12628 ++ *[0-9a-f]*:	ef a4 54 53 	ldc\.d cp2,cr4,r4\[r3<<0x1\]
 4.12629 ++ *[0-9a-f]*:	ef ad 98 4c 	ldc\.d cp4,cr8,sp\[r12\]
 4.12630 ++
 4.12631 ++[0-9a-f]* <stc_w1>:
 4.12632 ++ *[0-9a-f]*:	eb a0 00 00 	stc\.w cp0,r0\[0x0\],cr0
 4.12633 ++ *[0-9a-f]*:	eb af ef ff 	stc\.w cp7,pc\[0x3fc\],cr15
 4.12634 ++ *[0-9a-f]*:	eb a5 65 80 	stc\.w cp3,r5\[0x200\],cr5
 4.12635 ++ *[0-9a-f]*:	eb a4 44 7f 	stc\.w cp2,r4\[0x1fc\],cr4
 4.12636 ++ *[0-9a-f]*:	eb ad 89 24 	stc\.w cp4,sp\[0x90\],cr9
 4.12637 ++
 4.12638 ++[0-9a-f]* <stc_w2>:
 4.12639 ++ *[0-9a-f]*:	ef a0 00 60 	stc\.w cp0,r0\+\+,cr0
 4.12640 ++ *[0-9a-f]*:	ef af ef 60 	stc\.w cp7,pc\+\+,cr15
 4.12641 ++ *[0-9a-f]*:	ef a5 65 60 	stc\.w cp3,r5\+\+,cr5
 4.12642 ++ *[0-9a-f]*:	ef a4 44 60 	stc\.w cp2,r4\+\+,cr4
 4.12643 ++ *[0-9a-f]*:	ef ad 89 60 	stc\.w cp4,sp\+\+,cr9
 4.12644 ++
 4.12645 ++[0-9a-f]* <stc_w3>:
 4.12646 ++ *[0-9a-f]*:	ef a0 10 80 	stc\.w cp0,r0\[r0\],cr0
 4.12647 ++ *[0-9a-f]*:	ef af ff bf 	stc\.w cp7,pc\[pc<<0x3\],cr15
 4.12648 ++ *[0-9a-f]*:	ef a5 75 a4 	stc\.w cp3,r5\[r4<<0x2\],cr5
 4.12649 ++ *[0-9a-f]*:	ef a4 54 93 	stc\.w cp2,r4\[r3<<0x1\],cr4
 4.12650 ++ *[0-9a-f]*:	ef ad 99 8c 	stc\.w cp4,sp\[r12\],cr9
 4.12651 ++
 4.12652 ++[0-9a-f]* <stc_d1>:
 4.12653 ++ *[0-9a-f]*:	eb a0 10 00 	stc\.d cp0,r0\[0x0\],cr0
 4.12654 ++ *[0-9a-f]*:	eb af fe ff 	stc\.d cp7,pc\[0x3fc\],cr14
 4.12655 ++ *[0-9a-f]*:	eb a5 76 80 	stc\.d cp3,r5\[0x200\],cr6
 4.12656 ++ *[0-9a-f]*:	eb a4 54 7f 	stc\.d cp2,r4\[0x1fc\],cr4
 4.12657 ++ *[0-9a-f]*:	eb ad 98 24 	stc\.d cp4,sp\[0x90\],cr8
 4.12658 ++
 4.12659 ++[0-9a-f]* <stc_d2>:
 4.12660 ++ *[0-9a-f]*:	ef a0 00 70 	stc\.d cp0,r0\+\+,cr0
 4.12661 ++ *[0-9a-f]*:	ef af ee 70 	stc\.d cp7,pc\+\+,cr14
 4.12662 ++ *[0-9a-f]*:	ef a5 66 70 	stc\.d cp3,r5\+\+,cr6
 4.12663 ++ *[0-9a-f]*:	ef a4 44 70 	stc\.d cp2,r4\+\+,cr4
 4.12664 ++ *[0-9a-f]*:	ef ad 88 70 	stc\.d cp4,sp\+\+,cr8
 4.12665 ++
 4.12666 ++[0-9a-f]* <stc_d3>:
 4.12667 ++ *[0-9a-f]*:	ef a0 10 c0 	stc\.d cp0,r0\[r0\],cr0
 4.12668 ++ *[0-9a-f]*:	ef af fe ff 	stc\.d cp7,pc\[pc<<0x3\],cr14
 4.12669 ++ *[0-9a-f]*:	ef a5 76 e4 	stc\.d cp3,r5\[r4<<0x2\],cr6
 4.12670 ++ *[0-9a-f]*:	ef a4 54 d3 	stc\.d cp2,r4\[r3<<0x1\],cr4
 4.12671 ++ *[0-9a-f]*:	ef ad 98 cc 	stc\.d cp4,sp\[r12\],cr8
 4.12672 ++
 4.12673 ++[0-9a-f]* <ldc0_w>:
 4.12674 ++ *[0-9a-f]*:	f1 a0 00 00 	ldc0\.w cr0,r0\[0x0\]
 4.12675 ++ *[0-9a-f]*:	f1 af ff ff 	ldc0\.w cr15,pc\[0x3ffc\]
 4.12676 ++ *[0-9a-f]*:	f1 a5 85 00 	ldc0\.w cr5,r5\[0x2000\]
 4.12677 ++ *[0-9a-f]*:	f1 a4 74 ff 	ldc0\.w cr4,r4\[0x1ffc\]
 4.12678 ++ *[0-9a-f]*:	f1 ad 09 93 	ldc0\.w cr9,sp\[0x24c\]
 4.12679 ++
 4.12680 ++[0-9a-f]* <ldc0_d>:
 4.12681 ++ *[0-9a-f]*:	f3 a0 00 00 	ldc0\.d cr0,r0\[0x0\]
 4.12682 ++ *[0-9a-f]*:	f3 af fe ff 	ldc0\.d cr14,pc\[0x3ffc\]
 4.12683 ++ *[0-9a-f]*:	f3 a5 86 00 	ldc0\.d cr6,r5\[0x2000\]
 4.12684 ++ *[0-9a-f]*:	f3 a4 74 ff 	ldc0\.d cr4,r4\[0x1ffc\]
 4.12685 ++ *[0-9a-f]*:	f3 ad 08 93 	ldc0\.d cr8,sp\[0x24c\]
 4.12686 ++
 4.12687 ++[0-9a-f]* <stc0_w>:
 4.12688 ++ *[0-9a-f]*:	f5 a0 00 00 	stc0\.w r0\[0x0\],cr0
 4.12689 ++ *[0-9a-f]*:	f5 af ff ff 	stc0\.w pc\[0x3ffc\],cr15
 4.12690 ++ *[0-9a-f]*:	f5 a5 85 00 	stc0\.w r5\[0x2000\],cr5
 4.12691 ++ *[0-9a-f]*:	f5 a4 74 ff 	stc0\.w r4\[0x1ffc\],cr4
 4.12692 ++ *[0-9a-f]*:	f5 ad 09 93 	stc0\.w sp\[0x24c\],cr9
 4.12693 ++
 4.12694 ++[0-9a-f]* <stc0_d>:
 4.12695 ++ *[0-9a-f]*:	f7 a0 00 00 	stc0\.d r0\[0x0\],cr0
 4.12696 ++ *[0-9a-f]*:	f7 af fe ff 	stc0\.d pc\[0x3ffc\],cr14
 4.12697 ++ *[0-9a-f]*:	f7 a5 86 00 	stc0\.d r5\[0x2000\],cr6
 4.12698 ++ *[0-9a-f]*:	f7 a4 74 ff 	stc0\.d r4\[0x1ffc\],cr4
 4.12699 ++ *[0-9a-f]*:	f7 ad 08 93 	stc0\.d sp\[0x24c\],cr8
 4.12700 ++
 4.12701 ++[0-9a-f]* <memc>:
 4.12702 ++ *[0-9a-f]*:	f6 10 00 00 	memc 0,0x0
 4.12703 ++ *[0-9a-f]*:	f6 1f ff ff 	memc -4,0x1f
 4.12704 ++ *[0-9a-f]*:	f6 18 40 00 	memc -65536,0x10
 4.12705 ++ *[0-9a-f]*:	f6 17 bf ff 	memc 65532,0xf
 4.12706 ++
 4.12707 ++[0-9a-f]* <mems>:
 4.12708 ++ *[0-9a-f]*:	f8 10 00 00 	mems 0,0x0
 4.12709 ++ *[0-9a-f]*:	f8 1f ff ff 	mems -4,0x1f
 4.12710 ++ *[0-9a-f]*:	f8 18 40 00 	mems -65536,0x10
 4.12711 ++ *[0-9a-f]*:	f8 17 bf ff 	mems 65532,0xf
 4.12712 ++
 4.12713 ++[0-9a-f]* <memt>:
 4.12714 ++ *[0-9a-f]*:	fa 10 00 00 	memt 0,0x0
 4.12715 ++ *[0-9a-f]*:	fa 1f ff ff 	memt -4,0x1f
 4.12716 ++ *[0-9a-f]*:	fa 18 40 00 	memt -65536,0x10
 4.12717 ++ *[0-9a-f]*:	fa 17 bf ff 	memt 65532,0xf
 4.12718 ++
 4.12719 ++[0-9a-f]* <stcond>:
 4.12720 ++ *[0-9a-f]*:	e1 70 00 00 	stcond r0\[0\],r0
 4.12721 ++ *[0-9a-f]*:	ff 7f ff ff 	stcond pc\[-1\],pc
 4.12722 ++ *[0-9a-f]*:	f1 77 80 00 	stcond r8\[-32768\],r7
 4.12723 ++ *[0-9a-f]*:	ef 78 7f ff 	stcond r7\[32767\],r8
 4.12724 ++ *[0-9a-f]*:	eb 7a 12 34 	stcond r5\[4660\],r10
 4.12725 ++
 4.12726 ++[0-9a-f]* <ldcm_w>:
 4.12727 ++ *[0-9a-f]*:	ed af 00 ff 	ldcm\.w cp0,pc,cr0-cr7
 4.12728 ++ *[0-9a-f]*:	ed a0 e0 01 	ldcm\.w cp7,r0,cr0
 4.12729 ++ *[0-9a-f]*:	ed a4 90 7f 	ldcm\.w cp4,r4\+\+,cr0-cr6
 4.12730 ++ *[0-9a-f]*:	ed a7 60 80 	ldcm\.w cp3,r7,cr7
 4.12731 ++ *[0-9a-f]*:	ed ac 30 72 	ldcm\.w cp1,r12\+\+,cr1,cr4-cr6
 4.12732 ++ *[0-9a-f]*:	ed af 01 ff 	ldcm\.w cp0,pc,cr8-cr15
 4.12733 ++ *[0-9a-f]*:	ed a0 e1 01 	ldcm\.w cp7,r0,cr8
 4.12734 ++ *[0-9a-f]*:	ed a4 91 7f 	ldcm\.w cp4,r4\+\+,cr8-cr14
 4.12735 ++ *[0-9a-f]*:	ed a7 61 80 	ldcm\.w cp3,r7,cr15
 4.12736 ++ *[0-9a-f]*:	ed ac 31 72 	ldcm\.w cp1,r12\+\+,cr9,cr12-cr14
 4.12737 ++
 4.12738 ++[0-9a-f]* <ldcm_d>:
 4.12739 ++ *[0-9a-f]*:	ed af 04 ff 	ldcm\.d cp0,pc,cr0-cr15
 4.12740 ++ *[0-9a-f]*:	ed a0 e4 01 	ldcm\.d cp7,r0,cr0-cr1
 4.12741 ++ *[0-9a-f]*:	ed a4 94 7f 	ldcm\.d cp4,r4\+\+,cr0-cr13
 4.12742 ++ *[0-9a-f]*:	ed a7 64 80 	ldcm\.d cp3,r7,cr14-cr15
 4.12743 ++ *[0-9a-f]*:	ed ac 54 93 	ldcm\.d cp2,r12\+\+,cr0-cr3,cr8-cr9,cr14-cr15
 4.12744 ++
 4.12745 ++[0-9a-f]* <stcm_w>:
 4.12746 ++ *[0-9a-f]*:	ed af 02 ff 	stcm\.w cp0,pc,cr0-cr7
 4.12747 ++ *[0-9a-f]*:	ed a0 e2 01 	stcm\.w cp7,r0,cr0
 4.12748 ++ *[0-9a-f]*:	ed a4 92 7f 	stcm\.w cp4,--r4,cr0-cr6
 4.12749 ++ *[0-9a-f]*:	ed a7 62 80 	stcm\.w cp3,r7,cr7
 4.12750 ++ *[0-9a-f]*:	ed ac 32 72 	stcm\.w cp1,--r12,cr1,cr4-cr6
 4.12751 ++ *[0-9a-f]*:	ed af 03 ff 	stcm\.w cp0,pc,cr8-cr15
 4.12752 ++ *[0-9a-f]*:	ed a0 e3 01 	stcm\.w cp7,r0,cr8
 4.12753 ++ *[0-9a-f]*:	ed a4 93 7f 	stcm\.w cp4,--r4,cr8-cr14
 4.12754 ++ *[0-9a-f]*:	ed a7 63 80 	stcm\.w cp3,r7,cr15
 4.12755 ++ *[0-9a-f]*:	ed ac 33 72 	stcm\.w cp1,--r12,cr9,cr12-cr14
 4.12756 ++
 4.12757 ++[0-9a-f]* <stcm_d>:
 4.12758 ++ *[0-9a-f]*:	ed af 05 ff 	stcm\.d cp0,pc,cr0-cr15
 4.12759 ++ *[0-9a-f]*:	ed a0 e5 01 	stcm\.d cp7,r0,cr0-cr1
 4.12760 ++ *[0-9a-f]*:	ed a4 95 7f 	stcm\.d cp4,--r4,cr0-cr13
 4.12761 ++ *[0-9a-f]*:	ed a7 65 80 	stcm\.d cp3,r7,cr14-cr15
 4.12762 ++ *[0-9a-f]*:	ed ac 55 93 	stcm\.d cp2,--r12,cr0-cr3,cr8-cr9,cr14-cr15
 4.12763 ++
 4.12764 ++[0-9a-f]* <mvcr_w>:
 4.12765 ++ *[0-9a-f]*:	ef af ef 00 	mvcr\.w cp7,pc,cr15
 4.12766 ++ *[0-9a-f]*:	ef a0 00 00 	mvcr\.w cp0,r0,cr0
 4.12767 ++ *[0-9a-f]*:	ef af 0f 00 	mvcr\.w cp0,pc,cr15
 4.12768 ++ *[0-9a-f]*:	ef a0 ef 00 	mvcr\.w cp7,r0,cr15
 4.12769 ++ *[0-9a-f]*:	ef af e0 00 	mvcr\.w cp7,pc,cr0
 4.12770 ++ *[0-9a-f]*:	ef a7 88 00 	mvcr\.w cp4,r7,cr8
 4.12771 ++ *[0-9a-f]*:	ef a8 67 00 	mvcr\.w cp3,r8,cr7
 4.12772 ++
 4.12773 ++[0-9a-f]* <mvcr_d>:
 4.12774 ++ *[0-9a-f]*:	ef ae ee 10 	mvcr\.d cp7,lr,cr14
 4.12775 ++ *[0-9a-f]*:	ef a0 00 10 	mvcr\.d cp0,r0,cr0
 4.12776 ++ *[0-9a-f]*:	ef ae 0e 10 	mvcr\.d cp0,lr,cr14
 4.12777 ++ *[0-9a-f]*:	ef a0 ee 10 	mvcr\.d cp7,r0,cr14
 4.12778 ++ *[0-9a-f]*:	ef ae e0 10 	mvcr\.d cp7,lr,cr0
 4.12779 ++ *[0-9a-f]*:	ef a6 88 10 	mvcr\.d cp4,r6,cr8
 4.12780 ++ *[0-9a-f]*:	ef a8 66 10 	mvcr\.d cp3,r8,cr6
 4.12781 ++
 4.12782 ++[0-9a-f]* <mvrc_w>:
 4.12783 ++ *[0-9a-f]*:	ef af ef 20 	mvrc\.w cp7,cr15,pc
 4.12784 ++ *[0-9a-f]*:	ef a0 00 20 	mvrc\.w cp0,cr0,r0
 4.12785 ++ *[0-9a-f]*:	ef af 0f 20 	mvrc\.w cp0,cr15,pc
 4.12786 ++ *[0-9a-f]*:	ef a0 ef 20 	mvrc\.w cp7,cr15,r0
 4.12787 ++ *[0-9a-f]*:	ef af e0 20 	mvrc\.w cp7,cr0,pc
 4.12788 ++ *[0-9a-f]*:	ef a7 88 20 	mvrc\.w cp4,cr8,r7
 4.12789 ++ *[0-9a-f]*:	ef a8 67 20 	mvrc\.w cp3,cr7,r8
 4.12790 ++
 4.12791 ++[0-9a-f]* <mvrc_d>:
 4.12792 ++ *[0-9a-f]*:	ef ae ee 30 	mvrc\.d cp7,cr14,lr
 4.12793 ++ *[0-9a-f]*:	ef a0 00 30 	mvrc\.d cp0,cr0,r0
 4.12794 ++ *[0-9a-f]*:	ef ae 0e 30 	mvrc\.d cp0,cr14,lr
 4.12795 ++ *[0-9a-f]*:	ef a0 ee 30 	mvrc\.d cp7,cr14,r0
 4.12796 ++ *[0-9a-f]*:	ef ae e0 30 	mvrc\.d cp7,cr0,lr
 4.12797 ++ *[0-9a-f]*:	ef a6 88 30 	mvrc\.d cp4,cr8,r6
 4.12798 ++ *[0-9a-f]*:	ef a8 66 30 	mvrc\.d cp3,cr6,r8
 4.12799 ++
 4.12800 ++[0-9a-f]* <bfexts>:
 4.12801 ++ *[0-9a-f]*:	ff df b3 ff 	bfexts pc,pc,0x1f,0x1f
 4.12802 ++ *[0-9a-f]*:	e1 d0 b0 00 	bfexts r0,r0,0x0,0x0
 4.12803 ++ *[0-9a-f]*:	e1 df b3 ff 	bfexts r0,pc,0x1f,0x1f
 4.12804 ++ *[0-9a-f]*:	ff d0 b3 ff 	bfexts pc,r0,0x1f,0x1f
 4.12805 ++ *[0-9a-f]*:	ff df b0 1f 	bfexts pc,pc,0x0,0x1f
 4.12806 ++ *[0-9a-f]*:	ff df b3 e0 	bfexts pc,pc,0x1f,0x0
 4.12807 ++ *[0-9a-f]*:	ef d8 b1 f0 	bfexts r7,r8,0xf,0x10
 4.12808 ++ *[0-9a-f]*:	f1 d7 b2 0f 	bfexts r8,r7,0x10,0xf
 4.12809 ++
 4.12810 ++[0-9a-f]* <bfextu>:
 4.12811 ++ *[0-9a-f]*:	ff df c3 ff 	bfextu pc,pc,0x1f,0x1f
 4.12812 ++ *[0-9a-f]*:	e1 d0 c0 00 	bfextu r0,r0,0x0,0x0
 4.12813 ++ *[0-9a-f]*:	e1 df c3 ff 	bfextu r0,pc,0x1f,0x1f
 4.12814 ++ *[0-9a-f]*:	ff d0 c3 ff 	bfextu pc,r0,0x1f,0x1f
 4.12815 ++ *[0-9a-f]*:	ff df c0 1f 	bfextu pc,pc,0x0,0x1f
 4.12816 ++ *[0-9a-f]*:	ff df c3 e0 	bfextu pc,pc,0x1f,0x0
 4.12817 ++ *[0-9a-f]*:	ef d8 c1 f0 	bfextu r7,r8,0xf,0x10
 4.12818 ++ *[0-9a-f]*:	f1 d7 c2 0f 	bfextu r8,r7,0x10,0xf
 4.12819 ++
 4.12820 ++[0-9a-f]* <bfins>:
 4.12821 ++ *[0-9a-f]*:	ff df d3 ff 	bfins pc,pc,0x1f,0x1f
 4.12822 ++ *[0-9a-f]*:	e1 d0 d0 00 	bfins r0,r0,0x0,0x0
 4.12823 ++ *[0-9a-f]*:	e1 df d3 ff 	bfins r0,pc,0x1f,0x1f
 4.12824 ++ *[0-9a-f]*:	ff d0 d3 ff 	bfins pc,r0,0x1f,0x1f
 4.12825 ++ *[0-9a-f]*:	ff df d0 1f 	bfins pc,pc,0x0,0x1f
 4.12826 ++ *[0-9a-f]*:	ff df d3 e0 	bfins pc,pc,0x1f,0x0
 4.12827 ++ *[0-9a-f]*:	ef d8 d1 f0 	bfins r7,r8,0xf,0x10
 4.12828 ++ *[0-9a-f]*:	f1 d7 d2 0f 	bfins r8,r7,0x10,0xf
 4.12829 ++
 4.12830 ++[0-9a-f]* <rsubc>:
 4.12831 ++ *[0-9a-f]*:	fb bf 00 00 	rsubeq pc,0
 4.12832 ++ *[0-9a-f]*:	fb bc 0f ff 	rsubal r12,-1
 4.12833 ++ *[0-9a-f]*:	fb b5 08 80 	rsubls r5,-128
 4.12834 ++ *[0-9a-f]*:	fb b4 07 7f 	rsubpl r4,127
 4.12835 ++ *[0-9a-f]*:	fb be 01 01 	rsubne lr,1
 4.12836 ++ *[0-9a-f]*:	fb bc 08 76 	rsubls r12,118
 4.12837 ++ *[0-9a-f]*:	fb be 0d f4 	rsubvc lr,-12
 4.12838 ++ *[0-9a-f]*:	fb b4 06 f3 	rsubmi r4,-13
 4.12839 ++
 4.12840 ++[0-9a-f]* <addc>:
 4.12841 ++ *[0-9a-f]*:	ff df e0 0f 	addeq pc,pc,pc
 4.12842 ++ *[0-9a-f]*:	f9 dc ef 0c 	addal r12,r12,r12
 4.12843 ++ *[0-9a-f]*:	eb d5 e8 05 	addls r5,r5,r5
 4.12844 ++ *[0-9a-f]*:	e9 d4 e7 04 	addpl r4,r4,r4   
 4.12845 ++ *[0-9a-f]*:	fd de e1 0e 	addne lr,lr,lr
 4.12846 ++ *[0-9a-f]*:	e5 d1 e8 0a 	addls r10,r2,r1
 4.12847 ++ *[0-9a-f]*:	f1 db ed 0c 	addvc r12,r8,r11
 4.12848 ++ *[0-9a-f]*:	ef d0 e6 0a 	addmi r10,r7,r0
 4.12849 ++
 4.12850 ++[0-9a-f]* <subc2>:
 4.12851 ++ *[0-9a-f]*:	ff df e0 1f 	subeq pc,pc,pc
 4.12852 ++ *[0-9a-f]*:	f9 dc ef 1c 	subal r12,r12,r12
 4.12853 ++ *[0-9a-f]*:	eb d5 e8 15 	subls r5,r5,r5
 4.12854 ++ *[0-9a-f]*:	e9 d4 e7 14 	subpl r4,r4,r4   
 4.12855 ++ *[0-9a-f]*:	fd de e1 1e 	subne lr,lr,lr
 4.12856 ++ *[0-9a-f]*:	e5 d1 e8 1a 	subls r10,r2,r1
 4.12857 ++ *[0-9a-f]*:	f1 db ed 1c 	subvc r12,r8,r11
 4.12858 ++ *[0-9a-f]*:	ef d0 e6 1a 	submi r10,r7,r0
 4.12859 ++
 4.12860 ++[0-9a-f]* <andc>:
 4.12861 ++ *[0-9a-f]*:	ff df e0 2f 	andeq pc,pc,pc
 4.12862 ++ *[0-9a-f]*:	f9 dc ef 2c 	andal r12,r12,r12
 4.12863 ++ *[0-9a-f]*:	eb d5 e8 25 	andls r5,r5,r5
 4.12864 ++ *[0-9a-f]*:	e9 d4 e7 24 	andpl r4,r4,r4   
 4.12865 ++ *[0-9a-f]*:	fd de e1 2e 	andne lr,lr,lr
 4.12866 ++ *[0-9a-f]*:	e5 d1 e8 2a 	andls r10,r2,r1
 4.12867 ++ *[0-9a-f]*:	f1 db ed 2c 	andvc r12,r8,r11
 4.12868 ++ *[0-9a-f]*:	ef d0 e6 2a 	andmi r10,r7,r0
 4.12869 ++
 4.12870 ++[0-9a-f]* <orc>:
 4.12871 ++ *[0-9a-f]*:	ff df e0 3f 	oreq pc,pc,pc
 4.12872 ++ *[0-9a-f]*:	f9 dc ef 3c 	oral r12,r12,r12
 4.12873 ++ *[0-9a-f]*:	eb d5 e8 35 	orls r5,r5,r5
 4.12874 ++ *[0-9a-f]*:	e9 d4 e7 34 	orpl r4,r4,r4   
 4.12875 ++ *[0-9a-f]*:	fd de e1 3e 	orne lr,lr,lr
 4.12876 ++ *[0-9a-f]*:	e5 d1 e8 3a 	orls r10,r2,r1
 4.12877 ++ *[0-9a-f]*:	f1 db ed 3c 	orvc r12,r8,r11
 4.12878 ++ *[0-9a-f]*:	ef d0 e6 3a 	ormi r10,r7,r0
 4.12879 ++
 4.12880 ++[0-9a-f]* <eorc>:
 4.12881 ++ *[0-9a-f]*:	ff df e0 4f 	eoreq pc,pc,pc
 4.12882 ++ *[0-9a-f]*:	f9 dc ef 4c 	eoral r12,r12,r12
 4.12883 ++ *[0-9a-f]*:	eb d5 e8 45 	eorls r5,r5,r5
 4.12884 ++ *[0-9a-f]*:	e9 d4 e7 44 	eorpl r4,r4,r4   
 4.12885 ++ *[0-9a-f]*:	fd de e1 4e 	eorne lr,lr,lr
 4.12886 ++ *[0-9a-f]*:	e5 d1 e8 4a 	eorls r10,r2,r1
 4.12887 ++ *[0-9a-f]*:	f1 db ed 4c 	eorvc r12,r8,r11
 4.12888 ++ *[0-9a-f]*:	ef d0 e6 4a 	eormi r10,r7,r0
 4.12889 ++
 4.12890 ++[0-9a-f]* <ldcond>:
 4.12891 ++ *[0-9a-f]*:	ff ff 01 ff     ld.weq  pc,pc[0x7fc]
 4.12892 ++ *[0-9a-f]*:	f9 fc f3 ff     ld.shal r12,r12[0x3fe]
 4.12893 ++ *[0-9a-f]*:	eb f5 84 00     ld.shls r5,r5[0x0]
 4.12894 ++ *[0-9a-f]*:	e9 f4 79 ff     ld.ubpl r4,r4[0x1ff]
 4.12895 ++ *[0-9a-f]*:	fd fe 16 00     ld.sbne lr,lr[0x0]
 4.12896 ++ *[0-9a-f]*:	e5 fa 80 00     ld.wls  r10,r2[0x0]
 4.12897 ++ *[0-9a-f]*:	f1 fc d3 ff     ld.shvc r12,r8[0x3fe]
 4.12898 ++ *[0-9a-f]*:	ef fa 68 01     ld.ubmi r10,r7[0x1]
 4.12899 ++
 4.12900 ++[0-9a-f]* <stcond2>:
 4.12901 ++ *[0-9a-f]*:	ff ff 0b ff     st.weq pc[0x7fc],pc
 4.12902 ++ *[0-9a-f]*:	f9 fc fd ff     st.hal r12[0x3fe],r12
 4.12903 ++ *[0-9a-f]*:	eb f5 8c 00     st.hls r5[0x0],r5
 4.12904 ++ *[0-9a-f]*:	e9 f4 7f ff     st.bpl r4[0x1ff],r4
 4.12905 ++ *[0-9a-f]*:	fd fe 1e 00     st.bne lr[0x0],lr
 4.12906 ++ *[0-9a-f]*:	e5 fa 8a 00     st.wls r2[0x0],r10
 4.12907 ++ *[0-9a-f]*:	f1 fc dd ff     st.hvc r8[0x3fe],r12
 4.12908 ++ *[0-9a-f]*:	ef fa 6e 01     st.bmi r7[0x1],r10
 4.12909 ++
 4.12910 ++[0-9a-f]* <movh>:
 4.12911 ++ *[0-9a-f]*:	fc 1f ff ff     movh pc,0xffff
 4.12912 ++ *[0-9a-f]*:	fc 10 00 00     movh r0,0x0
 4.12913 ++ *[0-9a-f]*:	fc 15 00 01     movh r5,0x1
 4.12914 ++ *[0-9a-f]*:	fc 1c 7f ff     movh r12,0x7fff
 4.12915 ++
 4.12916 +--- /dev/null
 4.12917 ++++ b/gas/testsuite/gas/avr32/allinsn.exp
 4.12918 +@@ -0,0 +1,5 @@
 4.12919 ++# AVR32 assembler testsuite. -*- Tcl -*-
 4.12920 ++
 4.12921 ++if [istarget avr32-*-*] {
 4.12922 ++    run_dump_test "allinsn"
 4.12923 ++}
 4.12924 +--- /dev/null
 4.12925 ++++ b/gas/testsuite/gas/avr32/allinsn.s
 4.12926 +@@ -0,0 +1,3330 @@
 4.12927 ++ .data
 4.12928 ++foodata: .word 42
 4.12929 ++ .text
 4.12930 ++footext:
 4.12931 ++	.text
 4.12932 ++	.global ld_d5
 4.12933 ++ld_d5:
 4.12934 ++	ld.d lr,pc[pc<<3]
 4.12935 ++	ld.d r0,r0[r0<<0]
 4.12936 ++	ld.d r6,r5[r5<<2]
 4.12937 ++	ld.d r4,r4[r4<<1]
 4.12938 ++	ld.d lr,lr[lr<<1]
 4.12939 ++	ld.d r10,r3[sp<<2]
 4.12940 ++	ld.d r8,r10[r6<<2]
 4.12941 ++	ld.d r2,r7[r9<<0]
 4.12942 ++	.text
 4.12943 ++	.global ld_w5
 4.12944 ++ld_w5:
 4.12945 ++	ld.w pc,pc[pc<<0]
 4.12946 ++	ld.w r12,r12[r12<<3]
 4.12947 ++	ld.w r5,r5[r5<<2]
 4.12948 ++	ld.w r4,r4[r4<<1]
 4.12949 ++	ld.w lr,lr[lr<<1]
 4.12950 ++	ld.w r2,r9[r9<<0]
 4.12951 ++	ld.w r11,r2[r6<<0]
 4.12952 ++	ld.w r0,r2[sp<<3]
 4.12953 ++	.text
 4.12954 ++	.global ld_sh5
 4.12955 ++ld_sh5:
 4.12956 ++	ld.sh pc,pc[pc<<0]
 4.12957 ++	ld.sh r12,r12[r12<<3]
 4.12958 ++	ld.sh r5,r5[r5<<2]
 4.12959 ++	ld.sh r4,r4[r4<<1]
 4.12960 ++	ld.sh lr,lr[lr<<1]
 4.12961 ++	ld.sh r11,r0[pc<<2]
 4.12962 ++	ld.sh r10,sp[r6<<2]
 4.12963 ++	ld.sh r12,r2[r2<<0]
 4.12964 ++	.text
 4.12965 ++	.global ld_uh5
 4.12966 ++ld_uh5:
 4.12967 ++	ld.uh pc,pc[pc<<0]
 4.12968 ++	ld.uh r12,r12[r12<<3]
 4.12969 ++	ld.uh r5,r5[r5<<2]
 4.12970 ++	ld.uh r4,r4[r4<<1]
 4.12971 ++	ld.uh lr,lr[lr<<1]
 4.12972 ++	ld.uh r8,pc[lr<<3]
 4.12973 ++	ld.uh r6,r1[pc<<1]
 4.12974 ++	ld.uh r6,lr[sp<<1]
 4.12975 ++	.text
 4.12976 ++	.global ld_sb2
 4.12977 ++ld_sb2:
 4.12978 ++	ld.sb pc,pc[pc<<0]
 4.12979 ++	ld.sb r12,r12[r12<<3]
 4.12980 ++	ld.sb r5,r5[r5<<2]
 4.12981 ++	ld.sb r4,r4[r4<<1]
 4.12982 ++	ld.sb lr,lr[lr<<1]
 4.12983 ++	ld.sb r9,r1[pc<<3]
 4.12984 ++	ld.sb r0,r3[r11<<1]
 4.12985 ++	ld.sb r10,r5[r5<<1]
 4.12986 ++	.text
 4.12987 ++	.global ld_ub5
 4.12988 ++ld_ub5:
 4.12989 ++	ld.ub pc,pc[pc<<0]
 4.12990 ++	ld.ub r12,r12[r12<<3]
 4.12991 ++	ld.ub r5,r5[r5<<2]
 4.12992 ++	ld.ub r4,r4[r4<<1]
 4.12993 ++	ld.ub lr,lr[lr<<1]
 4.12994 ++	ld.ub r6,r12[r7<<3]
 4.12995 ++	ld.ub r2,r6[r12<<0]
 4.12996 ++	ld.ub r0,r7[r11<<1]
 4.12997 ++	.text
 4.12998 ++	.global st_d5
 4.12999 ++st_d5:
 4.13000 ++	st.d pc[pc<<0],r14
 4.13001 ++	st.d r12[r12<<3],r12
 4.13002 ++	st.d r5[r5<<2],r6
 4.13003 ++	st.d r4[r4<<1],r4
 4.13004 ++	st.d lr[lr<<1],lr
 4.13005 ++	st.d r1[r9<<1],r4
 4.13006 ++	st.d r10[r2<<1],r4
 4.13007 ++	st.d r12[r6<<0],lr
 4.13008 ++	.text
 4.13009 ++	.global st_w5
 4.13010 ++st_w5:
 4.13011 ++	st.w pc[pc<<0],pc
 4.13012 ++	st.w r12[r12<<3],r12
 4.13013 ++	st.w r5[r5<<2],r5
 4.13014 ++	st.w r4[r4<<1],r4
 4.13015 ++	st.w lr[lr<<1],lr
 4.13016 ++	st.w r1[r10<<0],r3
 4.13017 ++	st.w r0[r10<<1],r9
 4.13018 ++	st.w r4[r5<<3],pc
 4.13019 ++	.text
 4.13020 ++	.global st_h5
 4.13021 ++st_h5:
 4.13022 ++	st.h pc[pc<<0],pc
 4.13023 ++	st.h r12[r12<<3],r12
 4.13024 ++	st.h r5[r5<<2],r5
 4.13025 ++	st.h r4[r4<<1],r4
 4.13026 ++	st.h lr[lr<<1],lr
 4.13027 ++	st.h r2[r9<<0],r11
 4.13028 ++	st.h r5[r1<<2],r12
 4.13029 ++	st.h pc[r8<<2],r3
 4.13030 ++	.text
 4.13031 ++	.global st_b5
 4.13032 ++st_b5:
 4.13033 ++	st.b pc[pc<<0],pc
 4.13034 ++	st.b r12[r12<<3],r12
 4.13035 ++	st.b r5[r5<<2],r5
 4.13036 ++	st.b r4[r4<<1],r4
 4.13037 ++	st.b lr[lr<<1],lr
 4.13038 ++	st.b r1[r8<<1],r6
 4.13039 ++	st.b lr[lr<<3],r1
 4.13040 ++	st.b r5[r0<<2],pc
 4.13041 ++	.text
 4.13042 ++	.global divs
 4.13043 ++divs:
 4.13044 ++	divs pc,pc,pc
 4.13045 ++	divs r12,r12,r12
 4.13046 ++	divs r5,r5,r5
 4.13047 ++	divs r4,r4,r4
 4.13048 ++	divs lr,lr,lr
 4.13049 ++	divs r3,pc,pc
 4.13050 ++	divs r9,r12,r2
 4.13051 ++	divs r7,r4,r1
 4.13052 ++	.text
 4.13053 ++	.global add1
 4.13054 ++add1:
 4.13055 ++	add pc,pc
 4.13056 ++	add r12,r12
 4.13057 ++	add r5,r5
 4.13058 ++	add r4,r4
 4.13059 ++	add lr,lr
 4.13060 ++	add r12,r9
 4.13061 ++	add r6,r3
 4.13062 ++	add r10,r12
 4.13063 ++	.text
 4.13064 ++	.global sub1
 4.13065 ++sub1:
 4.13066 ++	sub pc,pc
 4.13067 ++	sub r12,r12
 4.13068 ++	sub r5,r5
 4.13069 ++	sub r4,r4
 4.13070 ++	sub lr,lr
 4.13071 ++	sub lr,r6
 4.13072 ++	sub r0,sp
 4.13073 ++	sub r6,r12
 4.13074 ++	.text
 4.13075 ++	.global rsub1
 4.13076 ++rsub1:
 4.13077 ++	rsub pc,pc
 4.13078 ++	rsub r12,r12
 4.13079 ++	rsub r5,r5
 4.13080 ++	rsub r4,r4
 4.13081 ++	rsub lr,lr
 4.13082 ++	rsub r11,sp
 4.13083 ++	rsub r7,r4
 4.13084 ++	rsub r9,r1
 4.13085 ++	.text
 4.13086 ++	.global cp1
 4.13087 ++cp1:
 4.13088 ++	cp pc,pc
 4.13089 ++	cp r12,r12
 4.13090 ++	cp r5,r5
 4.13091 ++	cp r4,r4
 4.13092 ++	cp lr,lr
 4.13093 ++	cp r6,r2
 4.13094 ++	cp r0,r9
 4.13095 ++	cp r3,sp
 4.13096 ++	.text
 4.13097 ++	.global or1
 4.13098 ++or1:
 4.13099 ++	or pc,pc
 4.13100 ++	or r12,r12
 4.13101 ++	or r5,r5
 4.13102 ++	or r4,r4
 4.13103 ++	or lr,lr
 4.13104 ++	or r4,r9
 4.13105 ++	or r11,r4
 4.13106 ++	or r4,r0
 4.13107 ++	.text
 4.13108 ++	.global eor1
 4.13109 ++eor1:
 4.13110 ++	eor pc,pc
 4.13111 ++	eor r12,r12
 4.13112 ++	eor r5,r5
 4.13113 ++	eor r4,r4
 4.13114 ++	eor lr,lr
 4.13115 ++	eor r12,r11
 4.13116 ++	eor r0,r1
 4.13117 ++	eor r5,pc
 4.13118 ++	.text
 4.13119 ++	.global and1
 4.13120 ++and1:
 4.13121 ++	and pc,pc
 4.13122 ++	and r12,r12
 4.13123 ++	and r5,r5
 4.13124 ++	and r4,r4
 4.13125 ++	and lr,lr
 4.13126 ++	and r8,r1
 4.13127 ++	and r0,sp
 4.13128 ++	and r10,r5
 4.13129 ++	.text
 4.13130 ++	.global tst
 4.13131 ++tst:
 4.13132 ++	tst pc,pc
 4.13133 ++	tst r12,r12
 4.13134 ++	tst r5,r5
 4.13135 ++	tst r4,r4
 4.13136 ++	tst lr,lr
 4.13137 ++	tst r0,r12
 4.13138 ++	tst r10,r6
 4.13139 ++	tst sp,r4
 4.13140 ++	.text
 4.13141 ++	.global andn
 4.13142 ++andn:
 4.13143 ++	andn pc,pc
 4.13144 ++	andn r12,r12
 4.13145 ++	andn r5,r5
 4.13146 ++	andn r4,r4
 4.13147 ++	andn lr,lr
 4.13148 ++	andn r9,r12
 4.13149 ++	andn r11,sp
 4.13150 ++	andn r12,r5
 4.13151 ++	.text
 4.13152 ++	.global mov3
 4.13153 ++mov3:
 4.13154 ++	mov pc,pc
 4.13155 ++	mov r12,r12
 4.13156 ++	mov r5,r5
 4.13157 ++	mov r4,r4
 4.13158 ++	mov lr,lr
 4.13159 ++	mov r5,r9
 4.13160 ++	mov r11,r11
 4.13161 ++	mov r2,lr
 4.13162 ++	.text
 4.13163 ++	.global st_w1
 4.13164 ++st_w1:
 4.13165 ++	st.w pc++,pc
 4.13166 ++	st.w r12++,r12
 4.13167 ++	st.w r5++,r5
 4.13168 ++	st.w r4++,r4
 4.13169 ++	st.w lr++,lr
 4.13170 ++	st.w r1++,r11
 4.13171 ++	st.w sp++,r0
 4.13172 ++	st.w sp++,r1
 4.13173 ++	.text
 4.13174 ++	.global st_h1
 4.13175 ++st_h1:
 4.13176 ++	st.h pc++,pc
 4.13177 ++	st.h r12++,r12
 4.13178 ++	st.h r5++,r5
 4.13179 ++	st.h r4++,r4
 4.13180 ++	st.h lr++,lr
 4.13181 ++	st.h r12++,sp
 4.13182 ++	st.h r7++,lr
 4.13183 ++	st.h r7++,r4
 4.13184 ++	.text
 4.13185 ++	.global st_b1
 4.13186 ++st_b1:
 4.13187 ++	st.b pc++,pc
 4.13188 ++	st.b r12++,r12
 4.13189 ++	st.b r5++,r5
 4.13190 ++	st.b r4++,r4
 4.13191 ++	st.b lr++,lr
 4.13192 ++	st.b r9++,sp
 4.13193 ++	st.b r1++,sp
 4.13194 ++	st.b r0++,r4
 4.13195 ++	.text
 4.13196 ++	.global st_w2
 4.13197 ++st_w2:
 4.13198 ++	st.w --pc,pc
 4.13199 ++	st.w --r12,r12
 4.13200 ++	st.w --r5,r5
 4.13201 ++	st.w --r4,r4
 4.13202 ++	st.w --lr,lr
 4.13203 ++	st.w --r1,r7
 4.13204 ++	st.w --r3,r9
 4.13205 ++	st.w --r5,r5
 4.13206 ++	.text
 4.13207 ++	.global st_h2
 4.13208 ++st_h2:
 4.13209 ++	st.h --pc,pc
 4.13210 ++	st.h --r12,r12
 4.13211 ++	st.h --r5,r5
 4.13212 ++	st.h --r4,r4
 4.13213 ++	st.h --lr,lr
 4.13214 ++	st.h --r5,r7
 4.13215 ++	st.h --r8,r8
 4.13216 ++	st.h --r7,r2
 4.13217 ++	.text
 4.13218 ++	.global st_b2
 4.13219 ++st_b2:
 4.13220 ++	st.b --pc,pc
 4.13221 ++	st.b --r12,r12
 4.13222 ++	st.b --r5,r5
 4.13223 ++	st.b --r4,r4
 4.13224 ++	st.b --lr,lr
 4.13225 ++	st.b --sp,sp
 4.13226 ++	st.b --sp,r11
 4.13227 ++	st.b --r4,r5
 4.13228 ++	.text
 4.13229 ++	.global ld_w1
 4.13230 ++ld_w1:
 4.13231 ++	ld.w pc,pc++
 4.13232 ++	ld.w r12,r12++
 4.13233 ++	ld.w r5,r5++
 4.13234 ++	ld.w r4,r4++
 4.13235 ++	ld.w lr,lr++
 4.13236 ++	ld.w r3,r7++
 4.13237 ++	ld.w r3,lr++
 4.13238 ++	ld.w r12,r5++
 4.13239 ++	.text
 4.13240 ++	.global ld_sh1
 4.13241 ++ld_sh1:
 4.13242 ++	ld.sh pc,pc++
 4.13243 ++	ld.sh r12,r12++
 4.13244 ++	ld.sh r5,r5++
 4.13245 ++	ld.sh r4,r4++
 4.13246 ++	ld.sh lr,lr++
 4.13247 ++	ld.sh r11,r2++
 4.13248 ++	ld.sh r2,r8++
 4.13249 ++	ld.sh r7,r6++
 4.13250 ++	.text
 4.13251 ++	.global ld_uh1
 4.13252 ++ld_uh1:
 4.13253 ++	ld.uh pc,pc++
 4.13254 ++	ld.uh r12,r12++
 4.13255 ++	ld.uh r5,r5++
 4.13256 ++	ld.uh r4,r4++
 4.13257 ++	ld.uh lr,lr++
 4.13258 ++	ld.uh r6,r7++
 4.13259 ++	ld.uh r10,r11++
 4.13260 ++	ld.uh lr,r4++
 4.13261 ++	.text
 4.13262 ++	.global ld_ub1
 4.13263 ++ld_ub1:
 4.13264 ++	ld.ub pc,pc++
 4.13265 ++	ld.ub r12,r12++
 4.13266 ++	ld.ub r5,r5++
 4.13267 ++	ld.ub r4,r4++
 4.13268 ++	ld.ub lr,lr++
 4.13269 ++	ld.ub r8,lr++
 4.13270 ++	ld.ub r12,r12++
 4.13271 ++	ld.ub r11,r10++
 4.13272 ++	.text
 4.13273 ++	.global ld_w2
 4.13274 ++ld_w2:
 4.13275 ++	ld.w pc,--pc
 4.13276 ++	ld.w r12,--r12
 4.13277 ++	ld.w r5,--r5
 4.13278 ++	ld.w r4,--r4
 4.13279 ++	ld.w lr,--lr
 4.13280 ++	ld.w r10,--lr
 4.13281 ++	ld.w r12,--r9
 4.13282 ++	ld.w r6,--r5
 4.13283 ++	.text
 4.13284 ++	.global ld_sh2
 4.13285 ++ld_sh2:
 4.13286 ++	ld.sh pc,--pc
 4.13287 ++	ld.sh r12,--r12
 4.13288 ++	ld.sh r5,--r5
 4.13289 ++	ld.sh r4,--r4
 4.13290 ++	ld.sh lr,--lr
 4.13291 ++	ld.sh pc,--r10
 4.13292 ++	ld.sh r6,--r3
 4.13293 ++	ld.sh r4,--r6
 4.13294 ++	.text
 4.13295 ++	.global ld_uh2
 4.13296 ++ld_uh2:
 4.13297 ++	ld.uh pc,--pc
 4.13298 ++	ld.uh r12,--r12
 4.13299 ++	ld.uh r5,--r5
 4.13300 ++	ld.uh r4,--r4
 4.13301 ++	ld.uh lr,--lr
 4.13302 ++	ld.uh r3,--r2
 4.13303 ++	ld.uh r1,--r0
 4.13304 ++	ld.uh r2,--r9
 4.13305 ++	.text
 4.13306 ++	.global ld_ub2
 4.13307 ++ld_ub2:
 4.13308 ++	ld.ub pc,--pc
 4.13309 ++	ld.ub r12,--r12
 4.13310 ++	ld.ub r5,--r5
 4.13311 ++	ld.ub r4,--r4
 4.13312 ++	ld.ub lr,--lr
 4.13313 ++	ld.ub r1,--r1
 4.13314 ++	ld.ub r0,--r6
 4.13315 ++	ld.ub r2,--r7
 4.13316 ++	.text
 4.13317 ++	.global ld_ub3
 4.13318 ++ld_ub3:
 4.13319 ++	ld.ub pc,pc[0]
 4.13320 ++	ld.ub r12,r12[7]
 4.13321 ++	ld.ub r5,r5[4]
 4.13322 ++	ld.ub r4,r4[3]
 4.13323 ++	ld.ub lr,lr[1]
 4.13324 ++	ld.ub r6,r9[6]
 4.13325 ++	ld.ub r2,lr[4]
 4.13326 ++	ld.ub r1,r8[0]
 4.13327 ++	.text
 4.13328 ++	.global sub3_sp
 4.13329 ++sub3_sp:
 4.13330 ++	sub sp,0
 4.13331 ++	sub sp,-4
 4.13332 ++	sub sp,-512
 4.13333 ++	sub sp,508
 4.13334 ++	sub sp,4
 4.13335 ++	sub sp,44
 4.13336 ++	sub sp,8
 4.13337 ++	sub sp,348
 4.13338 ++	.text
 4.13339 ++	.global sub3
 4.13340 ++sub3:
 4.13341 ++	sub pc,0
 4.13342 ++	sub r12,-1
 4.13343 ++	sub r5,-128
 4.13344 ++	sub r4,127
 4.13345 ++	sub lr,1
 4.13346 ++	sub r6,-41
 4.13347 ++	sub r4,37
 4.13348 ++	sub r12,56
 4.13349 ++	.text
 4.13350 ++	.global mov1
 4.13351 ++mov1:
 4.13352 ++	mov pc,0
 4.13353 ++	mov r12,-1
 4.13354 ++	mov r5,-128
 4.13355 ++	mov r4,127
 4.13356 ++	mov lr,1
 4.13357 ++	mov pc,14
 4.13358 ++	mov r6,-100
 4.13359 ++	mov lr,-122
 4.13360 ++	.text
 4.13361 ++	.global lddsp
 4.13362 ++lddsp:
 4.13363 ++	lddsp pc,sp[0]
 4.13364 ++	lddsp r12,sp[508]
 4.13365 ++	lddsp r5,sp[256]
 4.13366 ++	lddsp r4,sp[252]
 4.13367 ++	lddsp lr,sp[4]
 4.13368 ++	lddsp lr,sp[256]
 4.13369 ++	lddsp r12,sp[20]
 4.13370 ++	lddsp r9,sp[472]
 4.13371 ++	.text
 4.13372 ++	.global lddpc
 4.13373 ++lddpc:
 4.13374 ++	lddpc pc,pc[0]
 4.13375 ++	lddpc r0,pc[508]
 4.13376 ++	lddpc r8,pc[256]
 4.13377 ++	lddpc r7,pc[252]
 4.13378 ++	lddpc lr,pc[4]
 4.13379 ++	lddpc sp,pc[472]
 4.13380 ++	lddpc r6,pc[120]
 4.13381 ++	lddpc r11,pc[28]
 4.13382 ++	.text
 4.13383 ++	.global stdsp
 4.13384 ++stdsp:
 4.13385 ++	stdsp sp[0],pc
 4.13386 ++	stdsp sp[508],r12
 4.13387 ++	stdsp sp[256],r5
 4.13388 ++	stdsp sp[252],r4
 4.13389 ++	stdsp sp[4],lr
 4.13390 ++	stdsp sp[304],pc
 4.13391 ++	stdsp sp[256],r0
 4.13392 ++	stdsp sp[336],r5
 4.13393 ++	.text
 4.13394 ++	.global cp2
 4.13395 ++cp2:
 4.13396 ++	cp pc,0
 4.13397 ++	cp r12,-1
 4.13398 ++	cp r5,-32
 4.13399 ++	cp r4,31
 4.13400 ++	cp lr,1
 4.13401 ++	cp r8,3
 4.13402 ++	cp lr,16
 4.13403 ++	cp r7,-26
 4.13404 ++	.text
 4.13405 ++	.global acr
 4.13406 ++acr:
 4.13407 ++	acr pc
 4.13408 ++	acr r12
 4.13409 ++	acr r5
 4.13410 ++	acr r4
 4.13411 ++	acr lr
 4.13412 ++	acr r2
 4.13413 ++	acr r12
 4.13414 ++	acr pc
 4.13415 ++	.text
 4.13416 ++	.global scr
 4.13417 ++scr:
 4.13418 ++	scr pc
 4.13419 ++	scr r12
 4.13420 ++	scr r5
 4.13421 ++	scr r4
 4.13422 ++	scr lr
 4.13423 ++	scr pc
 4.13424 ++	scr r6
 4.13425 ++	scr r1
 4.13426 ++	.text
 4.13427 ++	.global cpc0
 4.13428 ++cpc0:
 4.13429 ++	cpc pc
 4.13430 ++	cpc r12
 4.13431 ++	cpc r5
 4.13432 ++	cpc r4
 4.13433 ++	cpc lr
 4.13434 ++	cpc pc
 4.13435 ++	cpc r4
 4.13436 ++	cpc r9
 4.13437 ++	.text
 4.13438 ++	.global neg
 4.13439 ++neg:
 4.13440 ++	neg pc
 4.13441 ++	neg r12
 4.13442 ++	neg r5
 4.13443 ++	neg r4
 4.13444 ++	neg lr
 4.13445 ++	neg r7
 4.13446 ++	neg r1
 4.13447 ++	neg r9
 4.13448 ++	.text
 4.13449 ++	.global abs
 4.13450 ++abs:
 4.13451 ++	abs pc
 4.13452 ++	abs r12
 4.13453 ++	abs r5
 4.13454 ++	abs r4
 4.13455 ++	abs lr
 4.13456 ++	abs r6
 4.13457 ++	abs r6
 4.13458 ++	abs r4
 4.13459 ++	.text
 4.13460 ++	.global castu_b
 4.13461 ++castu_b:
 4.13462 ++	castu.b pc
 4.13463 ++	castu.b r12
 4.13464 ++	castu.b r5
 4.13465 ++	castu.b r4
 4.13466 ++	castu.b lr
 4.13467 ++	castu.b r7
 4.13468 ++	castu.b sp
 4.13469 ++	castu.b r9
 4.13470 ++	.text
 4.13471 ++	.global casts_b
 4.13472 ++casts_b:
 4.13473 ++	casts.b pc
 4.13474 ++	casts.b r12
 4.13475 ++	casts.b r5
 4.13476 ++	casts.b r4
 4.13477 ++	casts.b lr
 4.13478 ++	casts.b r11
 4.13479 ++	casts.b r1
 4.13480 ++	casts.b r10
 4.13481 ++	.text
 4.13482 ++	.global castu_h
 4.13483 ++castu_h:
 4.13484 ++	castu.h pc
 4.13485 ++	castu.h r12
 4.13486 ++	castu.h r5
 4.13487 ++	castu.h r4
 4.13488 ++	castu.h lr
 4.13489 ++	castu.h r10
 4.13490 ++	castu.h r11
 4.13491 ++	castu.h r1
 4.13492 ++	.text
 4.13493 ++	.global casts_h
 4.13494 ++casts_h:
 4.13495 ++	casts.h pc
 4.13496 ++	casts.h r12
 4.13497 ++	casts.h r5
 4.13498 ++	casts.h r4
 4.13499 ++	casts.h lr
 4.13500 ++	casts.h r0
 4.13501 ++	casts.h r5
 4.13502 ++	casts.h r9
 4.13503 ++	.text
 4.13504 ++	.global brev
 4.13505 ++brev:
 4.13506 ++	brev pc
 4.13507 ++	brev r12
 4.13508 ++	brev r5
 4.13509 ++	brev r4
 4.13510 ++	brev lr
 4.13511 ++	brev r5
 4.13512 ++	brev r10
 4.13513 ++	brev r8
 4.13514 ++	.text
 4.13515 ++	.global swap_h
 4.13516 ++swap_h:
 4.13517 ++	swap.h pc
 4.13518 ++	swap.h r12
 4.13519 ++	swap.h r5
 4.13520 ++	swap.h r4
 4.13521 ++	swap.h lr
 4.13522 ++	swap.h r7
 4.13523 ++	swap.h r0
 4.13524 ++	swap.h r8
 4.13525 ++	.text
 4.13526 ++	.global swap_b
 4.13527 ++swap_b:
 4.13528 ++	swap.b pc
 4.13529 ++	swap.b r12
 4.13530 ++	swap.b r5
 4.13531 ++	swap.b r4
 4.13532 ++	swap.b lr
 4.13533 ++	swap.b r10
 4.13534 ++	swap.b r12
 4.13535 ++	swap.b r1
 4.13536 ++	.text
 4.13537 ++	.global swap_bh
 4.13538 ++swap_bh:
 4.13539 ++	swap.bh pc
 4.13540 ++	swap.bh r12
 4.13541 ++	swap.bh r5
 4.13542 ++	swap.bh r4
 4.13543 ++	swap.bh lr
 4.13544 ++	swap.bh r9
 4.13545 ++	swap.bh r4
 4.13546 ++	swap.bh r1
 4.13547 ++	.text
 4.13548 ++	.global One_s_compliment
 4.13549 ++One_s_compliment:
 4.13550 ++	com pc
 4.13551 ++	com r12
 4.13552 ++	com r5
 4.13553 ++	com r4
 4.13554 ++	com lr
 4.13555 ++	com r2
 4.13556 ++	com r2
 4.13557 ++	com r7
 4.13558 ++	.text
 4.13559 ++	.global tnbz
 4.13560 ++tnbz:
 4.13561 ++	tnbz pc
 4.13562 ++	tnbz r12
 4.13563 ++	tnbz r5
 4.13564 ++	tnbz r4
 4.13565 ++	tnbz lr
 4.13566 ++	tnbz r8
 4.13567 ++	tnbz r12
 4.13568 ++	tnbz pc
 4.13569 ++	.text
 4.13570 ++	.global rol
 4.13571 ++rol:
 4.13572 ++	rol pc
 4.13573 ++	rol r12
 4.13574 ++	rol r5
 4.13575 ++	rol r4
 4.13576 ++	rol lr
 4.13577 ++	rol r10
 4.13578 ++	rol r9
 4.13579 ++	rol r5
 4.13580 ++	.text
 4.13581 ++	.global ror
 4.13582 ++ror:
 4.13583 ++	ror pc
 4.13584 ++	ror r12
 4.13585 ++	ror r5
 4.13586 ++	ror r4
 4.13587 ++	ror lr
 4.13588 ++	ror r8
 4.13589 ++	ror r4
 4.13590 ++	ror r7
 4.13591 ++	.text
 4.13592 ++	.global icall
 4.13593 ++icall:
 4.13594 ++	icall pc
 4.13595 ++	icall r12
 4.13596 ++	icall r5
 4.13597 ++	icall r4
 4.13598 ++	icall lr
 4.13599 ++	icall r3
 4.13600 ++	icall r1
 4.13601 ++	icall r3
 4.13602 ++	.text
 4.13603 ++	.global mustr
 4.13604 ++mustr:
 4.13605 ++	mustr pc
 4.13606 ++	mustr r12
 4.13607 ++	mustr r5
 4.13608 ++	mustr r4
 4.13609 ++	mustr lr
 4.13610 ++	mustr r1
 4.13611 ++	mustr r4
 4.13612 ++	mustr r12
 4.13613 ++	.text
 4.13614 ++	.global musfr
 4.13615 ++musfr:
 4.13616 ++	musfr pc
 4.13617 ++	musfr r12
 4.13618 ++	musfr r5
 4.13619 ++	musfr r4
 4.13620 ++	musfr lr
 4.13621 ++	musfr r11
 4.13622 ++	musfr r12
 4.13623 ++	musfr r2
 4.13624 ++	.text
 4.13625 ++	.global ret_cond
 4.13626 ++ret_cond:
 4.13627 ++	reteq pc
 4.13628 ++	retal r12
 4.13629 ++	retls r5
 4.13630 ++	retpl r4
 4.13631 ++	retne lr
 4.13632 ++	retgt r0
 4.13633 ++	retgt r12
 4.13634 ++	retge r10
 4.13635 ++	.text
 4.13636 ++	.global sr_cond
 4.13637 ++sr_cond:
 4.13638 ++	sreq pc
 4.13639 ++	sral r12
 4.13640 ++	srls r5
 4.13641 ++	srpl r4
 4.13642 ++	srne lr
 4.13643 ++	srlt r0
 4.13644 ++	sral sp
 4.13645 ++	srge r9
 4.13646 ++	.text
 4.13647 ++	.global ld_w3
 4.13648 ++ld_w3:
 4.13649 ++	ld.w pc,pc[0]
 4.13650 ++	ld.w r12,r12[124]
 4.13651 ++	ld.w r5,r5[64]
 4.13652 ++	ld.w r4,r4[60]
 4.13653 ++	ld.w lr,lr[4]
 4.13654 ++	ld.w sp,r2[52]
 4.13655 ++	ld.w r9,r1[8]
 4.13656 ++	ld.w r5,sp[60]
 4.13657 ++	.text
 4.13658 ++	.global ld_sh3
 4.13659 ++ld_sh3:
 4.13660 ++	ld.sh pc,pc[0]
 4.13661 ++	ld.sh r12,r12[14]
 4.13662 ++	ld.sh r5,r5[8]
 4.13663 ++	ld.sh r4,r4[6]
 4.13664 ++	ld.sh lr,lr[2]
 4.13665 ++	ld.sh r4,r2[8]
 4.13666 ++	ld.sh sp,lr[10]
 4.13667 ++	ld.sh r2,r11[2]
 4.13668 ++	.text
 4.13669 ++	.global ld_uh3
 4.13670 ++ld_uh3:
 4.13671 ++	ld.uh pc,pc[0]
 4.13672 ++	ld.uh r12,r12[14]
 4.13673 ++	ld.uh r5,r5[8]
 4.13674 ++	ld.uh r4,r4[6]
 4.13675 ++	ld.uh lr,lr[2]
 4.13676 ++	ld.uh r10,r0[10]
 4.13677 ++	ld.uh r8,r11[8]
 4.13678 ++	ld.uh r10,r2[12]
 4.13679 ++	.text
 4.13680 ++	.global st_w3
 4.13681 ++st_w3:
 4.13682 ++	st.w pc[0],pc
 4.13683 ++	st.w r12[60],r12
 4.13684 ++	st.w r5[32],r5
 4.13685 ++	st.w r4[28],r4
 4.13686 ++	st.w lr[4],lr
 4.13687 ++	st.w r7[44],r11
 4.13688 ++	st.w r2[24],r6
 4.13689 ++	st.w r4[12],r9
 4.13690 ++	.text
 4.13691 ++	.global st_h3
 4.13692 ++st_h3:
 4.13693 ++	st.h pc[0],pc
 4.13694 ++	st.h r12[14],r12
 4.13695 ++	st.h r5[8],r5
 4.13696 ++	st.h r4[6],r4
 4.13697 ++	st.h lr[2],lr
 4.13698 ++	st.h lr[10],r12
 4.13699 ++	st.h r6[4],r0
 4.13700 ++	st.h r5[12],sp
 4.13701 ++	.text
 4.13702 ++	.global st_b3
 4.13703 ++st_b3:
 4.13704 ++	st.b pc[0],pc
 4.13705 ++	st.b r12[7],r12
 4.13706 ++	st.b r5[4],r5
 4.13707 ++	st.b r4[3],r4
 4.13708 ++	st.b lr[1],lr
 4.13709 ++	st.b r12[6],r9
 4.13710 ++	st.b r2[3],lr
 4.13711 ++	st.b r1[3],r11
 4.13712 ++	.text
 4.13713 ++	.global ldd
 4.13714 ++ldd:
 4.13715 ++	ld.d r0,pc
 4.13716 ++	ld.d r14,r12
 4.13717 ++	ld.d r8,r5
 4.13718 ++	ld.d r6,r4
 4.13719 ++	ld.d r2,lr
 4.13720 ++	ld.d r14,r7
 4.13721 ++	ld.d r4,r4
 4.13722 ++	ld.d r14,pc
 4.13723 ++	.text
 4.13724 ++	.global ldd_postinc
 4.13725 ++ldd_postinc:
 4.13726 ++	ld.d r0,pc++
 4.13727 ++	ld.d r14,r12++
 4.13728 ++	ld.d r8,r5++
 4.13729 ++	ld.d r6,r4++
 4.13730 ++	ld.d r2,lr++
 4.13731 ++	ld.d r14,r5++
 4.13732 ++	ld.d r12,r11++
 4.13733 ++	ld.d r2,r12++
 4.13734 ++	.text
 4.13735 ++	.global ldd_predec
 4.13736 ++ldd_predec:
 4.13737 ++	ld.d r0,--pc
 4.13738 ++	ld.d r14,--r12
 4.13739 ++	ld.d r8,--r5
 4.13740 ++	ld.d r6,--r4
 4.13741 ++	ld.d r2,--lr
 4.13742 ++	ld.d r8,--r0
 4.13743 ++	ld.d r10,--pc
 4.13744 ++	ld.d r2,--r4
 4.13745 ++	.text
 4.13746 ++	.global std
 4.13747 ++std:
 4.13748 ++	st.d pc,r0
 4.13749 ++	st.d r12,r14
 4.13750 ++	st.d r5,r8
 4.13751 ++	st.d r4,r6
 4.13752 ++	st.d lr,r2
 4.13753 ++	st.d r0,r12
 4.13754 ++	st.d sp,r4
 4.13755 ++	st.d r12,r12
 4.13756 ++	.text
 4.13757 ++	.global std_postinc
 4.13758 ++std_postinc:
 4.13759 ++	st.d pc++,r0
 4.13760 ++	st.d r12++,r14
 4.13761 ++	st.d r5++,r8
 4.13762 ++	st.d r4++,r6
 4.13763 ++	st.d lr++,r2
 4.13764 ++	st.d sp++,r6
 4.13765 ++	st.d r10++,r6
 4.13766 ++	st.d r7++,r2
 4.13767 ++	.text
 4.13768 ++	.global std_predec
 4.13769 ++std_predec:
 4.13770 ++	st.d --pc,r0
 4.13771 ++	st.d --r12,r14
 4.13772 ++	st.d --r5,r8
 4.13773 ++	st.d --r4,r6
 4.13774 ++	st.d --lr,r2
 4.13775 ++	st.d --r3,r6
 4.13776 ++	st.d --lr,r2
 4.13777 ++	st.d --r0,r4
 4.13778 ++	.text
 4.13779 ++	.global mul
 4.13780 ++mul:
 4.13781 ++	mul pc,pc
 4.13782 ++	mul r12,r12
 4.13783 ++	mul r5,r5
 4.13784 ++	mul r4,r4
 4.13785 ++	mul lr,lr
 4.13786 ++	mul r10,lr
 4.13787 ++	mul r0,r8
 4.13788 ++	mul r8,r5
 4.13789 ++	.text
 4.13790 ++	.global asr_imm5
 4.13791 ++asr_imm5:
 4.13792 ++	asr pc,0
 4.13793 ++	asr r12,31
 4.13794 ++	asr r5,16
 4.13795 ++	asr r4,15
 4.13796 ++	asr lr,1
 4.13797 ++	asr r6,23
 4.13798 ++	asr r6,18
 4.13799 ++	asr r5,8
 4.13800 ++	.text
 4.13801 ++	.global lsl_imm5
 4.13802 ++lsl_imm5:
 4.13803 ++	lsl pc,0
 4.13804 ++	lsl r12,31
 4.13805 ++	lsl r5,16
 4.13806 ++	lsl r4,15
 4.13807 ++	lsl lr,1
 4.13808 ++	lsl r12,13
 4.13809 ++	lsl r6,16
 4.13810 ++	lsl r1,25
 4.13811 ++	.text
 4.13812 ++	.global lsr_imm5
 4.13813 ++lsr_imm5:
 4.13814 ++	lsr pc,0
 4.13815 ++	lsr r12,31
 4.13816 ++	lsr r5,16
 4.13817 ++	lsr r4,15
 4.13818 ++	lsr lr,1
 4.13819 ++	lsr r0,1
 4.13820 ++	lsr r8,10
 4.13821 ++	lsr r7,26
 4.13822 ++	.text
 4.13823 ++	.global sbr
 4.13824 ++sbr:
 4.13825 ++	sbr pc,0
 4.13826 ++	sbr r12,31
 4.13827 ++	sbr r5,16
 4.13828 ++	sbr r4,15
 4.13829 ++	sbr lr,1
 4.13830 ++	sbr r8,31
 4.13831 ++	sbr r6,22
 4.13832 ++	sbr r1,23
 4.13833 ++	.text
 4.13834 ++	.global cbr
 4.13835 ++cbr:
 4.13836 ++	cbr pc,0
 4.13837 ++	cbr r12,31
 4.13838 ++	cbr r5,16
 4.13839 ++	cbr r4,15
 4.13840 ++	cbr lr,1
 4.13841 ++	cbr r12,10
 4.13842 ++	cbr r7,22
 4.13843 ++	cbr r8,9
 4.13844 ++	.text
 4.13845 ++	.global brc1
 4.13846 ++brc1:
 4.13847 ++	breq 0
 4.13848 ++	brpl -2
 4.13849 ++	brge -256
 4.13850 ++	brcs 254
 4.13851 ++	brne 2
 4.13852 ++	brcs 230
 4.13853 ++	breq -18
 4.13854 ++	breq 12
 4.13855 ++	.text
 4.13856 ++	.global rjmp
 4.13857 ++rjmp:
 4.13858 ++	rjmp 0
 4.13859 ++	rjmp -2
 4.13860 ++	rjmp -1024
 4.13861 ++	rjmp 1022
 4.13862 ++	rjmp 2
 4.13863 ++	rjmp -962
 4.13864 ++	rjmp 14
 4.13865 ++	rjmp -516
 4.13866 ++	.text
 4.13867 ++	.global rcall1
 4.13868 ++rcall1:
 4.13869 ++	rcall 0
 4.13870 ++	rcall -2
 4.13871 ++	rcall -1024
 4.13872 ++	rcall 1022
 4.13873 ++	rcall 2
 4.13874 ++	rcall 216
 4.13875 ++	rcall -530
 4.13876 ++	rcall -972
 4.13877 ++	.text
 4.13878 ++	.global acall
 4.13879 ++acall:
 4.13880 ++	acall 0
 4.13881 ++	acall 1020
 4.13882 ++	acall 512
 4.13883 ++	acall 508
 4.13884 ++	acall 4
 4.13885 ++	acall 356
 4.13886 ++	acall 304
 4.13887 ++	acall 172
 4.13888 ++	.text
 4.13889 ++	.global scall
 4.13890 ++scall:
 4.13891 ++	scall
 4.13892 ++	scall
 4.13893 ++	scall
 4.13894 ++	scall
 4.13895 ++	scall
 4.13896 ++	scall
 4.13897 ++	scall
 4.13898 ++	scall
 4.13899 ++	.text
 4.13900 ++	.global popm
 4.13901 ++popm:
 4.13902 ++	/* popm with no argument fails currently */
 4.13903 ++	popm pc
 4.13904 ++	popm r0-r11,pc,r12=-1
 4.13905 ++	popm lr
 4.13906 ++	popm r0-r11,pc,r12=1
 4.13907 ++	popm r0-r3
 4.13908 ++	popm r4-r10,pc
 4.13909 ++	popm r0-r3,r11,pc,r12=0
 4.13910 ++	popm r0-r7,r10-r12,lr
 4.13911 ++	.text
 4.13912 ++	.global pushm
 4.13913 ++pushm:
 4.13914 ++	pushm pc
 4.13915 ++	pushm r0-r12,lr,pc
 4.13916 ++	pushm pc
 4.13917 ++	pushm r0-r12,lr
 4.13918 ++	pushm r0-r3
 4.13919 ++	pushm r8-r10,lr,pc
 4.13920 ++	pushm r0-r3,r10
 4.13921 ++	pushm r8-r9,r12
 4.13922 ++	.text
 4.13923 ++	.global popm_n
 4.13924 ++popm_n:
 4.13925 ++	popm pc
 4.13926 ++	popm r0-r11,pc,r12=-1
 4.13927 ++	popm lr
 4.13928 ++	popm r0-r11,pc,r12=1
 4.13929 ++	popm r0-r3
 4.13930 ++	popm r4-r10,pc
 4.13931 ++	popm r0-r3,r11,pc,r12=0
 4.13932 ++	popm r0-r7,r10-r12,lr
 4.13933 ++	.text
 4.13934 ++	.global pushm_n
 4.13935 ++pushm_n:
 4.13936 ++	pushm pc
 4.13937 ++	pushm r0-r12,lr,pc
 4.13938 ++	pushm pc
 4.13939 ++	pushm r0-r12,lr
 4.13940 ++	pushm r0-r3
 4.13941 ++	pushm r8-r10,lr,pc
 4.13942 ++	pushm r0-r3,r10
 4.13943 ++	pushm r8-r9,r12
 4.13944 ++	.text
 4.13945 ++	.global csrfcz
 4.13946 ++csrfcz:
 4.13947 ++	csrfcz 0
 4.13948 ++	csrfcz 31
 4.13949 ++	csrfcz 16
 4.13950 ++	csrfcz 15
 4.13951 ++	csrfcz 1
 4.13952 ++	csrfcz 5
 4.13953 ++	csrfcz 13
 4.13954 ++	csrfcz 23
 4.13955 ++	.text
 4.13956 ++	.global ssrf
 4.13957 ++ssrf:
 4.13958 ++	ssrf 0
 4.13959 ++	ssrf 31
 4.13960 ++	ssrf 16
 4.13961 ++	ssrf 15
 4.13962 ++	ssrf 1
 4.13963 ++	ssrf 29
 4.13964 ++	ssrf 13
 4.13965 ++	ssrf 13
 4.13966 ++	.text
 4.13967 ++	.global csrf
 4.13968 ++csrf:
 4.13969 ++	csrf 0
 4.13970 ++	csrf 31
 4.13971 ++	csrf 16
 4.13972 ++	csrf 15
 4.13973 ++	csrf 1
 4.13974 ++	csrf 10
 4.13975 ++	csrf 15
 4.13976 ++	csrf 11
 4.13977 ++	.text
 4.13978 ++	.global rete
 4.13979 ++rete:
 4.13980 ++	rete
 4.13981 ++	.text
 4.13982 ++	.global rets
 4.13983 ++rets:
 4.13984 ++	rets
 4.13985 ++	.text
 4.13986 ++	.global retd
 4.13987 ++retd:
 4.13988 ++	retd
 4.13989 ++	.text
 4.13990 ++	.global retj
 4.13991 ++retj:
 4.13992 ++	retj
 4.13993 ++	.text
 4.13994 ++	.global tlbr
 4.13995 ++tlbr:
 4.13996 ++	tlbr
 4.13997 ++	.text
 4.13998 ++	.global tlbs
 4.13999 ++tlbs:
 4.14000 ++	tlbs
 4.14001 ++	.text
 4.14002 ++	.global tlbw
 4.14003 ++tlbw:
 4.14004 ++	tlbw
 4.14005 ++	.text
 4.14006 ++	.global breakpoint
 4.14007 ++breakpoint:
 4.14008 ++	breakpoint
 4.14009 ++	.text
 4.14010 ++	.global incjosp
 4.14011 ++incjosp:
 4.14012 ++	incjosp 1
 4.14013 ++	incjosp 2
 4.14014 ++	incjosp 3
 4.14015 ++	incjosp 4
 4.14016 ++	incjosp -4
 4.14017 ++	incjosp -3
 4.14018 ++	incjosp -2
 4.14019 ++	incjosp -1
 4.14020 ++	.text
 4.14021 ++	.global nop
 4.14022 ++nop:
 4.14023 ++	nop
 4.14024 ++	.text
 4.14025 ++	.global popjc
 4.14026 ++popjc:
 4.14027 ++	popjc
 4.14028 ++	.text
 4.14029 ++	.global pushjc
 4.14030 ++pushjc:
 4.14031 ++	pushjc
 4.14032 ++	.text
 4.14033 ++	.global add2
 4.14034 ++add2:
 4.14035 ++	add pc,pc,pc<<0
 4.14036 ++	add r12,r12,r12<<3
 4.14037 ++	add r5,r5,r5<<2
 4.14038 ++	add r4,r4,r4<<1
 4.14039 ++	add lr,lr,lr<<1
 4.14040 ++	add r0,r12,r0<<1
 4.14041 ++	add r9,r12,r4<<0
 4.14042 ++	add r12,r12,r7<<2
 4.14043 ++	.text
 4.14044 ++	.global sub2
 4.14045 ++sub2:
 4.14046 ++	sub pc,pc,pc<<0
 4.14047 ++	sub r12,r12,r12<<3
 4.14048 ++	sub r5,r5,r5<<2
 4.14049 ++	sub r4,r4,r4<<1
 4.14050 ++	sub lr,lr,lr<<1
 4.14051 ++	sub sp,r3,r4<<0
 4.14052 ++	sub r3,r7,r3<<0
 4.14053 ++	sub sp,r10,sp<<1
 4.14054 ++	.text
 4.14055 ++	.global divu
 4.14056 ++divu:
 4.14057 ++	divu pc,pc,pc
 4.14058 ++	divu r12,r12,r12
 4.14059 ++	divu r5,r5,r5
 4.14060 ++	divu r4,r4,r4
 4.14061 ++	divu lr,lr,lr
 4.14062 ++	divu sp,r4,pc
 4.14063 ++	divu r5,r5,sp
 4.14064 ++	divu r10,sp,r0
 4.14065 ++	.text
 4.14066 ++	.global addhh_w
 4.14067 ++addhh_w:
 4.14068 ++	addhh.w pc,pc:b,pc:b
 4.14069 ++	addhh.w r12,r12:t,r12:t
 4.14070 ++	addhh.w r5,r5:t,r5:t
 4.14071 ++	addhh.w r4,r4:b,r4:b
 4.14072 ++	addhh.w lr,lr:t,lr:t
 4.14073 ++	addhh.w r0,r0:b,r3:b
 4.14074 ++	addhh.w lr,r12:t,r7:b
 4.14075 ++	addhh.w r3,r10:t,r2:b
 4.14076 ++	.text
 4.14077 ++	.global subhh_w
 4.14078 ++subhh_w:
 4.14079 ++	subhh.w pc,pc:b,pc:b
 4.14080 ++	subhh.w r12,r12:t,r12:t
 4.14081 ++	subhh.w r5,r5:t,r5:t
 4.14082 ++	subhh.w r4,r4:b,r4:b
 4.14083 ++	subhh.w lr,lr:t,lr:t
 4.14084 ++	subhh.w r10,r1:t,r7:b
 4.14085 ++	subhh.w pc,r10:t,lr:t
 4.14086 ++	subhh.w r3,r0:t,r12:b
 4.14087 ++	.text
 4.14088 ++	.global adc
 4.14089 ++adc:
 4.14090 ++	adc pc,pc,pc
 4.14091 ++	adc r12,r12,r12
 4.14092 ++	adc r5,r5,r5
 4.14093 ++	adc r4,r4,r4
 4.14094 ++	adc lr,lr,lr
 4.14095 ++	adc r4,r0,r7
 4.14096 ++	adc sp,r4,r3
 4.14097 ++	adc r2,r12,r0
 4.14098 ++	.text
 4.14099 ++	.global sbc
 4.14100 ++sbc:
 4.14101 ++	sbc pc,pc,pc
 4.14102 ++	sbc r12,r12,r12
 4.14103 ++	sbc r5,r5,r5
 4.14104 ++	sbc r4,r4,r4
 4.14105 ++	sbc lr,lr,lr
 4.14106 ++	sbc r6,r7,r9
 4.14107 ++	sbc r0,r8,r5
 4.14108 ++	sbc r1,r0,r4
 4.14109 ++	.text
 4.14110 ++	.global mul_2
 4.14111 ++mul_2:
 4.14112 ++	mul pc,pc,pc
 4.14113 ++	mul r12,r12,r12
 4.14114 ++	mul r5,r5,r5
 4.14115 ++	mul r4,r4,r4
 4.14116 ++	mul lr,lr,lr
 4.14117 ++	mul pc,r0,r0
 4.14118 ++	mul r8,pc,lr
 4.14119 ++	mul r4,r12,pc
 4.14120 ++	.text
 4.14121 ++	.global mac
 4.14122 ++mac:
 4.14123 ++	mac pc,pc,pc
 4.14124 ++	mac r12,r12,r12
 4.14125 ++	mac r5,r5,r5
 4.14126 ++	mac r4,r4,r4
 4.14127 ++	mac lr,lr,lr
 4.14128 ++	mac r10,r4,r0
 4.14129 ++	mac r7,lr,r0
 4.14130 ++	mac r2,r9,r12
 4.14131 ++	.text
 4.14132 ++	.global mulsd
 4.14133 ++mulsd:
 4.14134 ++	muls.d pc,pc,pc
 4.14135 ++	muls.d r12,r12,r12
 4.14136 ++	muls.d r5,r5,r5
 4.14137 ++	muls.d r4,r4,r4
 4.14138 ++	muls.d lr,lr,lr
 4.14139 ++	muls.d r2,r8,lr
 4.14140 ++	muls.d r4,r0,r11
 4.14141 ++	muls.d r5,lr,r6
 4.14142 ++	.text
 4.14143 ++	.global macsd
 4.14144 ++macsd:
 4.14145 ++	macs.d r0,pc,pc
 4.14146 ++	macs.d r14,r12,r12
 4.14147 ++	macs.d r8,r5,r5
 4.14148 ++	macs.d r6,r4,r4
 4.14149 ++	macs.d r2,lr,lr
 4.14150 ++	macs.d r8,r1,r9
 4.14151 ++	macs.d r14,r8,r8
 4.14152 ++	macs.d r4,r3,r12
 4.14153 ++	.text
 4.14154 ++	.global mulud
 4.14155 ++mulud:
 4.14156 ++	mulu.d r0,pc,pc
 4.14157 ++	mulu.d r14,r12,r12
 4.14158 ++	mulu.d r8,r5,r5
 4.14159 ++	mulu.d r6,r4,r4
 4.14160 ++	mulu.d r2,lr,lr
 4.14161 ++	mulu.d r6,r5,r0
 4.14162 ++	mulu.d r4,r6,r1
 4.14163 ++	mulu.d r8,r8,r2
 4.14164 ++	.text
 4.14165 ++	.global macud
 4.14166 ++macud:
 4.14167 ++	macu.d r0,pc,pc
 4.14168 ++	macu.d r14,r12,r12
 4.14169 ++	macu.d r8,r5,r5
 4.14170 ++	macu.d r6,r4,r4
 4.14171 ++	macu.d r2,lr,lr
 4.14172 ++	macu.d r6,sp,r11
 4.14173 ++	macu.d r2,r4,r8
 4.14174 ++	macu.d r6,r10,r9
 4.14175 ++	.text
 4.14176 ++	.global asr_1
 4.14177 ++asr_1:
 4.14178 ++	asr pc,pc,pc
 4.14179 ++	asr r12,r12,r12
 4.14180 ++	asr r5,r5,r5
 4.14181 ++	asr r4,r4,r4
 4.14182 ++	asr lr,lr,lr
 4.14183 ++	asr pc,r6,pc
 4.14184 ++	asr r0,r6,r12
 4.14185 ++	asr r4,sp,r0
 4.14186 ++	.text
 4.14187 ++	.global lsl_1
 4.14188 ++lsl_1:
 4.14189 ++	lsl pc,pc,pc
 4.14190 ++	lsl r12,r12,r12
 4.14191 ++	lsl r5,r5,r5
 4.14192 ++	lsl r4,r4,r4
 4.14193 ++	lsl lr,lr,lr
 4.14194 ++	lsl lr,r5,lr
 4.14195 ++	lsl r5,pc,r3
 4.14196 ++	lsl r1,pc,r9
 4.14197 ++	.text
 4.14198 ++	.global lsr_1
 4.14199 ++lsr_1:
 4.14200 ++	lsr pc,pc,pc
 4.14201 ++	lsr r12,r12,r12
 4.14202 ++	lsr r5,r5,r5
 4.14203 ++	lsr r4,r4,r4
 4.14204 ++	lsr lr,lr,lr
 4.14205 ++	lsr r2,r4,r1
 4.14206 ++	lsr r5,r1,r6
 4.14207 ++	lsr sp,r6,r7
 4.14208 ++	.text
 4.14209 ++	.global xchg
 4.14210 ++xchg:
 4.14211 ++	xchg pc,pc,pc
 4.14212 ++	xchg r12,r12,r12
 4.14213 ++	xchg r5,r5,r5
 4.14214 ++	xchg r4,r4,r4
 4.14215 ++	xchg lr,lr,lr
 4.14216 ++	xchg lr,r4,sp
 4.14217 ++	xchg r1,r5,r12
 4.14218 ++	xchg lr,r12,r0
 4.14219 ++	.text
 4.14220 ++	.global max
 4.14221 ++max:
 4.14222 ++	max pc,pc,pc
 4.14223 ++	max r12,r12,r12
 4.14224 ++	max r5,r5,r5
 4.14225 ++	max r4,r4,r4
 4.14226 ++	max lr,lr,lr
 4.14227 ++	max lr,r2,sp
 4.14228 ++	max r4,r10,r9
 4.14229 ++	max lr,r9,lr
 4.14230 ++	.text
 4.14231 ++	.global min
 4.14232 ++min:
 4.14233 ++	min pc,pc,pc
 4.14234 ++	min r12,r12,r12
 4.14235 ++	min r5,r5,r5
 4.14236 ++	min r4,r4,r4
 4.14237 ++	min lr,lr,lr
 4.14238 ++	min r9,r7,r8
 4.14239 ++	min sp,r5,r5
 4.14240 ++	min r4,r1,r4
 4.14241 ++	.text
 4.14242 ++	.global addabs
 4.14243 ++addabs:
 4.14244 ++	addabs pc,pc,pc
 4.14245 ++	addabs r12,r12,r12
 4.14246 ++	addabs r5,r5,r5
 4.14247 ++	addabs r4,r4,r4
 4.14248 ++	addabs lr,lr,lr
 4.14249 ++	addabs r7,r10,r0
 4.14250 ++	addabs r9,r9,r7
 4.14251 ++	addabs r2,r8,r12
 4.14252 ++	.text
 4.14253 ++	.global mulnhh_w
 4.14254 ++mulnhh_w:
 4.14255 ++	mulnhh.w pc,pc:b,pc:b
 4.14256 ++	mulnhh.w r12,r12:t,r12:t
 4.14257 ++	mulnhh.w r5,r5:t,r5:t
 4.14258 ++	mulnhh.w r4,r4:b,r4:b
 4.14259 ++	mulnhh.w lr,lr:t,lr:t
 4.14260 ++	mulnhh.w r11,sp:t,r9:b
 4.14261 ++	mulnhh.w sp,r4:b,lr:t
 4.14262 ++	mulnhh.w r12,r2:t,r11:b
 4.14263 ++	.text
 4.14264 ++	.global mulnwh_d
 4.14265 ++mulnwh_d:
 4.14266 ++	mulnwh.d r0,pc,pc:b
 4.14267 ++	mulnwh.d r14,r12,r12:t
 4.14268 ++	mulnwh.d r8,r5,r5:t
 4.14269 ++	mulnwh.d r6,r4,r4:b
 4.14270 ++	mulnwh.d r2,lr,lr:t
 4.14271 ++	mulnwh.d r14,r3,r2:t
 4.14272 ++	mulnwh.d r4,r5,r9:b
 4.14273 ++	mulnwh.d r12,r4,r4:t
 4.14274 ++	.text
 4.14275 ++	.global machh_w
 4.14276 ++machh_w:
 4.14277 ++	machh.w pc,pc:b,pc:b
 4.14278 ++	machh.w r12,r12:t,r12:t
 4.14279 ++	machh.w r5,r5:t,r5:t
 4.14280 ++	machh.w r4,r4:b,r4:b
 4.14281 ++	machh.w lr,lr:t,lr:t
 4.14282 ++	machh.w lr,r5:b,r1:t
 4.14283 ++	machh.w r9,r6:b,r7:b
 4.14284 ++	machh.w r5,lr:t,r12:b
 4.14285 ++	.text
 4.14286 ++	.global machh_d
 4.14287 ++machh_d:
 4.14288 ++	machh.d r0,pc:b,pc:b
 4.14289 ++	machh.d r14,r12:t,r12:t
 4.14290 ++	machh.d r8,r5:t,r5:t
 4.14291 ++	machh.d r6,r4:b,r4:b
 4.14292 ++	machh.d r2,lr:t,lr:t
 4.14293 ++	machh.d r10,r0:b,r8:b
 4.14294 ++	machh.d r14,r4:b,r5:t
 4.14295 ++	machh.d r8,r0:b,r4:t
 4.14296 ++	.text
 4.14297 ++	.global macsathh_w
 4.14298 ++macsathh_w:
 4.14299 ++	macsathh.w pc,pc:b,pc:b
 4.14300 ++	macsathh.w r12,r12:t,r12:t
 4.14301 ++	macsathh.w r5,r5:t,r5:t
 4.14302 ++	macsathh.w r4,r4:b,r4:b
 4.14303 ++	macsathh.w lr,lr:t,lr:t
 4.14304 ++	macsathh.w r7,r7:t,pc:t
 4.14305 ++	macsathh.w r4,r2:t,r4:b
 4.14306 ++	macsathh.w r4,r8:t,r3:t
 4.14307 ++	.text
 4.14308 ++	.global mulhh_w
 4.14309 ++mulhh_w:
 4.14310 ++	mulhh.w pc,pc:b,pc:b
 4.14311 ++	mulhh.w r12,r12:t,r12:t
 4.14312 ++	mulhh.w r5,r5:t,r5:t
 4.14313 ++	mulhh.w r4,r4:b,r4:b
 4.14314 ++	mulhh.w lr,lr:t,lr:t
 4.14315 ++	mulhh.w r7,r4:t,r9:b
 4.14316 ++	mulhh.w pc,r3:t,r7:t
 4.14317 ++	mulhh.w pc,r4:b,r9:t
 4.14318 ++	.text
 4.14319 ++	.global mulsathh_h
 4.14320 ++mulsathh_h:
 4.14321 ++	mulsathh.h pc,pc:b,pc:b
 4.14322 ++	mulsathh.h r12,r12:t,r12:t
 4.14323 ++	mulsathh.h r5,r5:t,r5:t
 4.14324 ++	mulsathh.h r4,r4:b,r4:b
 4.14325 ++	mulsathh.h lr,lr:t,lr:t
 4.14326 ++	mulsathh.h r3,r1:b,sp:b
 4.14327 ++	mulsathh.h r11,lr:t,r11:b
 4.14328 ++	mulsathh.h r8,r8:b,r11:t
 4.14329 ++	.text
 4.14330 ++	.global mulsathh_w
 4.14331 ++mulsathh_w:
 4.14332 ++	mulsathh.w pc,pc:b,pc:b
 4.14333 ++	mulsathh.w r12,r12:t,r12:t
 4.14334 ++	mulsathh.w r5,r5:t,r5:t
 4.14335 ++	mulsathh.w r4,r4:b,r4:b
 4.14336 ++	mulsathh.w lr,lr:t,lr:t
 4.14337 ++	mulsathh.w lr,r11:t,r6:b
 4.14338 ++	mulsathh.w r6,r6:b,r7:t
 4.14339 ++	mulsathh.w r10,r2:b,r3:b
 4.14340 ++	.text
 4.14341 ++	.global mulsatrndhh_h
 4.14342 ++mulsatrndhh_h:
 4.14343 ++	mulsatrndhh.h pc,pc:b,pc:b
 4.14344 ++	mulsatrndhh.h r12,r12:t,r12:t
 4.14345 ++	mulsatrndhh.h r5,r5:t,r5:t
 4.14346 ++	mulsatrndhh.h r4,r4:b,r4:b
 4.14347 ++	mulsatrndhh.h lr,lr:t,lr:t
 4.14348 ++	mulsatrndhh.h r11,r6:b,r9:b
 4.14349 ++	mulsatrndhh.h r11,r3:b,r8:t
 4.14350 ++	mulsatrndhh.h r5,sp:t,r7:t
 4.14351 ++	.text
 4.14352 ++	.global mulsatrndwh_w
 4.14353 ++mulsatrndwh_w:
 4.14354 ++	mulsatrndwh.w pc,pc,pc:b
 4.14355 ++	mulsatrndwh.w r12,r12,r12:t
 4.14356 ++	mulsatrndwh.w r5,r5,r5:t
 4.14357 ++	mulsatrndwh.w r4,r4,r4:b
 4.14358 ++	mulsatrndwh.w lr,lr,lr:t
 4.14359 ++	mulsatrndwh.w r5,r12,r0:b
 4.14360 ++	mulsatrndwh.w r7,r10,pc:b
 4.14361 ++	mulsatrndwh.w r10,r8,r5:t
 4.14362 ++	.text
 4.14363 ++	.global macwh_d
 4.14364 ++macwh_d:
 4.14365 ++	macwh.d r0,pc,pc:b
 4.14366 ++	macwh.d r14,r12,r12:t
 4.14367 ++	macwh.d r8,r5,r5:t
 4.14368 ++	macwh.d r6,r4,r4:b
 4.14369 ++	macwh.d r2,lr,lr:t
 4.14370 ++	macwh.d r4,r10,r12:t
 4.14371 ++	macwh.d r4,r7,sp:b
 4.14372 ++	macwh.d r14,r9,r11:b
 4.14373 ++	.text
 4.14374 ++	.global mulwh_d
 4.14375 ++mulwh_d:
 4.14376 ++	mulwh.d r0,pc,pc:b
 4.14377 ++	mulwh.d r14,r12,r12:t
 4.14378 ++	mulwh.d r8,r5,r5:t
 4.14379 ++	mulwh.d r6,r4,r4:b
 4.14380 ++	mulwh.d r2,lr,lr:t
 4.14381 ++	mulwh.d r12,r5,r1:b
 4.14382 ++	mulwh.d r0,r1,r3:t
 4.14383 ++	mulwh.d r0,r9,r2:b
 4.14384 ++	.text
 4.14385 ++	.global mulsatwh_w
 4.14386 ++mulsatwh_w:
 4.14387 ++	mulsatwh.w pc,pc,pc:b
 4.14388 ++	mulsatwh.w r12,r12,r12:t
 4.14389 ++	mulsatwh.w r5,r5,r5:t
 4.14390 ++	mulsatwh.w r4,r4,r4:b
 4.14391 ++	mulsatwh.w lr,lr,lr:t
 4.14392 ++	mulsatwh.w r11,pc,r10:t
 4.14393 ++	mulsatwh.w sp,r12,r9:t
 4.14394 ++	mulsatwh.w r0,r3,r2:t
 4.14395 ++	.text
 4.14396 ++	.global ldw7
 4.14397 ++ldw7:
 4.14398 ++	ld.w pc,pc[pc:b<<2]
 4.14399 ++	ld.w r12,r12[r12:t<<2]
 4.14400 ++	ld.w r5,r5[r5:u<<2]
 4.14401 ++	ld.w r4,r4[r4:l<<2]
 4.14402 ++	ld.w lr,lr[lr:l<<2]
 4.14403 ++	ld.w r9,r10[r6:l<<2]
 4.14404 ++	ld.w r2,r10[r10:b<<2]
 4.14405 ++	ld.w r11,r5[pc:b<<2]
 4.14406 ++	.text
 4.14407 ++	.global satadd_w
 4.14408 ++satadd_w:
 4.14409 ++	satadd.w pc,pc,pc
 4.14410 ++	satadd.w r12,r12,r12
 4.14411 ++	satadd.w r5,r5,r5
 4.14412 ++	satadd.w r4,r4,r4
 4.14413 ++	satadd.w lr,lr,lr
 4.14414 ++	satadd.w r4,r8,r11
 4.14415 ++	satadd.w r3,r12,r6
 4.14416 ++	satadd.w r3,lr,r9
 4.14417 ++	.text
 4.14418 ++	.global satsub_w1
 4.14419 ++satsub_w1:
 4.14420 ++	satsub.w pc,pc,pc
 4.14421 ++	satsub.w r12,r12,r12
 4.14422 ++	satsub.w r5,r5,r5
 4.14423 ++	satsub.w r4,r4,r4
 4.14424 ++	satsub.w lr,lr,lr
 4.14425 ++	satsub.w r8,sp,r0
 4.14426 ++	satsub.w r9,r8,r4
 4.14427 ++	satsub.w pc,lr,r2
 4.14428 ++	.text
 4.14429 ++	.global satadd_h
 4.14430 ++satadd_h:
 4.14431 ++	satadd.h pc,pc,pc
 4.14432 ++	satadd.h r12,r12,r12
 4.14433 ++	satadd.h r5,r5,r5
 4.14434 ++	satadd.h r4,r4,r4
 4.14435 ++	satadd.h lr,lr,lr
 4.14436 ++	satadd.h r7,r3,r9
 4.14437 ++	satadd.h r1,r0,r2
 4.14438 ++	satadd.h r1,r4,lr
 4.14439 ++	.text
 4.14440 ++	.global satsub_h
 4.14441 ++satsub_h:
 4.14442 ++	satsub.h pc,pc,pc
 4.14443 ++	satsub.h r12,r12,r12
 4.14444 ++	satsub.h r5,r5,r5
 4.14445 ++	satsub.h r4,r4,r4
 4.14446 ++	satsub.h lr,lr,lr
 4.14447 ++	satsub.h lr,lr,r3
 4.14448 ++	satsub.h r11,r6,r5
 4.14449 ++	satsub.h r3,sp,r0
 4.14450 ++	.text
 4.14451 ++	.global mul3
 4.14452 ++mul3:
 4.14453 ++	mul pc,pc,0
 4.14454 ++	mul r12,r12,-1
 4.14455 ++	mul r5,r5,-128
 4.14456 ++	mul r4,r4,127
 4.14457 ++	mul lr,lr,1
 4.14458 ++	mul r12,r2,-7
 4.14459 ++	mul r1,pc,95
 4.14460 ++	mul r4,r6,19
 4.14461 ++	.text
 4.14462 ++	.global rsub2
 4.14463 ++rsub2:
 4.14464 ++	rsub pc,pc,0
 4.14465 ++	rsub r12,r12,-1
 4.14466 ++	rsub r5,r5,-128
 4.14467 ++	rsub r4,r4,127
 4.14468 ++	rsub lr,lr,1
 4.14469 ++	rsub r9,lr,96
 4.14470 ++	rsub r11,r1,56
 4.14471 ++	rsub r0,r7,-87
 4.14472 ++	.text
 4.14473 ++	.global clz
 4.14474 ++clz:
 4.14475 ++	clz pc,pc
 4.14476 ++	clz r12,r12
 4.14477 ++	clz r5,r5
 4.14478 ++	clz r4,r4
 4.14479 ++	clz lr,lr
 4.14480 ++	clz r2,r3
 4.14481 ++	clz r5,r11
 4.14482 ++	clz pc,r3
 4.14483 ++	.text
 4.14484 ++	.global cpc1
 4.14485 ++cpc1:
 4.14486 ++	cpc pc,pc
 4.14487 ++	cpc r12,r12
 4.14488 ++	cpc r5,r5
 4.14489 ++	cpc r4,r4
 4.14490 ++	cpc lr,lr
 4.14491 ++	cpc pc,r4
 4.14492 ++	cpc r5,r9
 4.14493 ++	cpc r6,r7
 4.14494 ++	.text
 4.14495 ++	.global asr3
 4.14496 ++asr3:
 4.14497 ++	asr pc,pc,0
 4.14498 ++	asr r12,r12,31
 4.14499 ++	asr r5,r5,16
 4.14500 ++	asr r4,r4,15
 4.14501 ++	asr lr,lr,1
 4.14502 ++	asr r4,r11,19
 4.14503 ++	asr sp,pc,26
 4.14504 ++	asr r11,sp,8
 4.14505 ++	.text
 4.14506 ++	.global lsl3
 4.14507 ++lsl3:
 4.14508 ++	lsl pc,pc,0
 4.14509 ++	lsl r12,r12,31
 4.14510 ++	lsl r5,r5,16
 4.14511 ++	lsl r4,r4,15
 4.14512 ++	lsl lr,lr,1
 4.14513 ++	lsl r8,r10,17
 4.14514 ++	lsl r2,lr,3
 4.14515 ++	lsl lr,r11,14
 4.14516 ++	.text
 4.14517 ++	.global lsr3
 4.14518 ++lsr3:
 4.14519 ++	lsr pc,pc,0
 4.14520 ++	lsr r12,r12,31
 4.14521 ++	lsr r5,r5,16
 4.14522 ++	lsr r4,r4,15
 4.14523 ++	lsr lr,lr,1
 4.14524 ++	lsr r4,r3,31
 4.14525 ++	lsr pc,r9,14
 4.14526 ++	lsr r3,r0,6
 4.14527 ++/*	.text
 4.14528 ++	.global extract_b
 4.14529 ++extract_b:
 4.14530 ++	extract.b pc,pc:b
 4.14531 ++	extract.b r12,r12:t
 4.14532 ++	extract.b r5,r5:u
 4.14533 ++	extract.b r4,r4:l
 4.14534 ++	extract.b lr,lr:l
 4.14535 ++	extract.b r2,r5:l
 4.14536 ++	extract.b r12,r3:l
 4.14537 ++	extract.b sp,r3:l
 4.14538 ++	.text
 4.14539 ++	.global insert_b
 4.14540 ++insert_b:
 4.14541 ++	insert.b pc:b,pc
 4.14542 ++	insert.b r12:t,r12
 4.14543 ++	insert.b r5:u,r5
 4.14544 ++	insert.b r4:l,r4
 4.14545 ++	insert.b lr:l,lr
 4.14546 ++	insert.b r12:u,r3
 4.14547 ++	insert.b r10:l,lr
 4.14548 ++	insert.b r11:l,r12
 4.14549 ++	.text
 4.14550 ++	.global extract_h
 4.14551 ++extract_h:
 4.14552 ++	extract.h pc,pc:b
 4.14553 ++	extract.h r12,r12:t
 4.14554 ++	extract.h r5,r5:t
 4.14555 ++	extract.h r4,r4:b
 4.14556 ++	extract.h lr,lr:t
 4.14557 ++	extract.h r11,lr:b
 4.14558 ++	extract.h r10,r0:b
 4.14559 ++	extract.h r11,r12:b
 4.14560 ++	.text
 4.14561 ++	.global insert_h
 4.14562 ++insert_h:
 4.14563 ++	insert.h pc:b,pc
 4.14564 ++	insert.h r12:t,r12
 4.14565 ++	insert.h r5:t,r5
 4.14566 ++	insert.h r4:b,r4
 4.14567 ++	insert.h lr:t,lr
 4.14568 ++	insert.h r12:t,r11
 4.14569 ++	insert.h r7:b,r6
 4.14570 ++	insert.h r1:t,r11 */
 4.14571 ++	.text
 4.14572 ++	.global movc1
 4.14573 ++movc1:
 4.14574 ++	moveq pc,pc
 4.14575 ++	moval r12,r12
 4.14576 ++	movls r5,r5
 4.14577 ++	movpl r4,r4
 4.14578 ++	movne lr,lr
 4.14579 ++	movne pc,r11
 4.14580 ++	movmi r10,r2
 4.14581 ++	movls r8,r12
 4.14582 ++	.text
 4.14583 ++	.global padd_h
 4.14584 ++padd_h:
 4.14585 ++	padd.h pc,pc,pc
 4.14586 ++	padd.h r12,r12,r12
 4.14587 ++	padd.h r5,r5,r5
 4.14588 ++	padd.h r4,r4,r4
 4.14589 ++	padd.h lr,lr,lr
 4.14590 ++	padd.h r8,r2,r7
 4.14591 ++	padd.h r0,r0,r3
 4.14592 ++	padd.h sp,r11,r6
 4.14593 ++	.text
 4.14594 ++	.global psub_h
 4.14595 ++psub_h:
 4.14596 ++	psub.h pc,pc,pc
 4.14597 ++	psub.h r12,r12,r12
 4.14598 ++	psub.h r5,r5,r5
 4.14599 ++	psub.h r4,r4,r4
 4.14600 ++	psub.h lr,lr,lr
 4.14601 ++	psub.h lr,r6,r8
 4.14602 ++	psub.h r0,r1,sp
 4.14603 ++	psub.h pc,pc,sp
 4.14604 ++	.text
 4.14605 ++	.global paddx_h
 4.14606 ++paddx_h:
 4.14607 ++	paddx.h pc,pc,pc
 4.14608 ++	paddx.h r12,r12,r12
 4.14609 ++	paddx.h r5,r5,r5
 4.14610 ++	paddx.h r4,r4,r4
 4.14611 ++	paddx.h lr,lr,lr
 4.14612 ++	paddx.h pc,pc,r1
 4.14613 ++	paddx.h r10,r4,r5
 4.14614 ++	paddx.h r5,pc,r2
 4.14615 ++	.text
 4.14616 ++	.global psubx_h
 4.14617 ++psubx_h:
 4.14618 ++	psubx.h pc,pc,pc
 4.14619 ++	psubx.h r12,r12,r12
 4.14620 ++	psubx.h r5,r5,r5
 4.14621 ++	psubx.h r4,r4,r4
 4.14622 ++	psubx.h lr,lr,lr
 4.14623 ++	psubx.h r5,r12,r5
 4.14624 ++	psubx.h r3,r8,r3
 4.14625 ++	psubx.h r5,r2,r3
 4.14626 ++	.text
 4.14627 ++	.global padds_sh
 4.14628 ++padds_sh:
 4.14629 ++	padds.sh pc,pc,pc
 4.14630 ++	padds.sh r12,r12,r12
 4.14631 ++	padds.sh r5,r5,r5
 4.14632 ++	padds.sh r4,r4,r4
 4.14633 ++	padds.sh lr,lr,lr
 4.14634 ++	padds.sh r9,lr,r2
 4.14635 ++	padds.sh r6,r8,r1
 4.14636 ++	padds.sh r6,r4,r10
 4.14637 ++	.text
 4.14638 ++	.global psubs_sh
 4.14639 ++psubs_sh:
 4.14640 ++	psubs.sh pc,pc,pc
 4.14641 ++	psubs.sh r12,r12,r12
 4.14642 ++	psubs.sh r5,r5,r5
 4.14643 ++	psubs.sh r4,r4,r4
 4.14644 ++	psubs.sh lr,lr,lr
 4.14645 ++	psubs.sh r6,lr,r11
 4.14646 ++	psubs.sh r2,r12,r4
 4.14647 ++	psubs.sh r0,r9,r0
 4.14648 ++	.text
 4.14649 ++	.global paddxs_sh
 4.14650 ++paddxs_sh:
 4.14651 ++	paddxs.sh pc,pc,pc
 4.14652 ++	paddxs.sh r12,r12,r12
 4.14653 ++	paddxs.sh r5,r5,r5
 4.14654 ++	paddxs.sh r4,r4,r4
 4.14655 ++	paddxs.sh lr,lr,lr
 4.14656 ++	paddxs.sh r0,r3,r9
 4.14657 ++	paddxs.sh pc,r10,r11
 4.14658 ++	paddxs.sh pc,r10,pc
 4.14659 ++	.text
 4.14660 ++	.global psubxs_sh
 4.14661 ++psubxs_sh:
 4.14662 ++	psubxs.sh pc,pc,pc
 4.14663 ++	psubxs.sh r12,r12,r12
 4.14664 ++	psubxs.sh r5,r5,r5
 4.14665 ++	psubxs.sh r4,r4,r4
 4.14666 ++	psubxs.sh lr,lr,lr
 4.14667 ++	psubxs.sh r7,r4,r4
 4.14668 ++	psubxs.sh r7,r8,r3
 4.14669 ++	psubxs.sh pc,r6,r5
 4.14670 ++	.text
 4.14671 ++	.global padds_uh
 4.14672 ++padds_uh:
 4.14673 ++	padds.uh pc,pc,pc
 4.14674 ++	padds.uh r12,r12,r12
 4.14675 ++	padds.uh r5,r5,r5
 4.14676 ++	padds.uh r4,r4,r4
 4.14677 ++	padds.uh lr,lr,lr
 4.14678 ++	padds.uh r12,r11,r7
 4.14679 ++	padds.uh r7,r8,lr
 4.14680 ++	padds.uh r6,r9,r7
 4.14681 ++	.text
 4.14682 ++	.global psubs_uh
 4.14683 ++psubs_uh:
 4.14684 ++	psubs.uh pc,pc,pc
 4.14685 ++	psubs.uh r12,r12,r12
 4.14686 ++	psubs.uh r5,r5,r5
 4.14687 ++	psubs.uh r4,r4,r4
 4.14688 ++	psubs.uh lr,lr,lr
 4.14689 ++	psubs.uh lr,r10,r6
 4.14690 ++	psubs.uh sp,r2,pc
 4.14691 ++	psubs.uh r2,r9,r2
 4.14692 ++	.text
 4.14693 ++	.global paddxs_uh
 4.14694 ++paddxs_uh:
 4.14695 ++	paddxs.uh pc,pc,pc
 4.14696 ++	paddxs.uh r12,r12,r12
 4.14697 ++	paddxs.uh r5,r5,r5
 4.14698 ++	paddxs.uh r4,r4,r4
 4.14699 ++	paddxs.uh lr,lr,lr
 4.14700 ++	paddxs.uh r7,r9,r5
 4.14701 ++	paddxs.uh r9,r1,r4
 4.14702 ++	paddxs.uh r5,r2,r3
 4.14703 ++	.text
 4.14704 ++	.global psubxs_uh
 4.14705 ++psubxs_uh:
 4.14706 ++	psubxs.uh pc,pc,pc
 4.14707 ++	psubxs.uh r12,r12,r12
 4.14708 ++	psubxs.uh r5,r5,r5
 4.14709 ++	psubxs.uh r4,r4,r4
 4.14710 ++	psubxs.uh lr,lr,lr
 4.14711 ++	psubxs.uh sp,r5,sp
 4.14712 ++	psubxs.uh sp,r6,r6
 4.14713 ++	psubxs.uh r3,r11,r8
 4.14714 ++	.text
 4.14715 ++	.global paddh_sh
 4.14716 ++paddh_sh:
 4.14717 ++	paddh.sh pc,pc,pc
 4.14718 ++	paddh.sh r12,r12,r12
 4.14719 ++	paddh.sh r5,r5,r5
 4.14720 ++	paddh.sh r4,r4,r4
 4.14721 ++	paddh.sh lr,lr,lr
 4.14722 ++	paddh.sh r12,sp,r3
 4.14723 ++	paddh.sh pc,r5,r3
 4.14724 ++	paddh.sh r8,r8,sp
 4.14725 ++	.text
 4.14726 ++	.global psubh_sh
 4.14727 ++psubh_sh:
 4.14728 ++	psubh.sh pc,pc,pc
 4.14729 ++	psubh.sh r12,r12,r12
 4.14730 ++	psubh.sh r5,r5,r5
 4.14731 ++	psubh.sh r4,r4,r4
 4.14732 ++	psubh.sh lr,lr,lr
 4.14733 ++	psubh.sh r1,r5,r8
 4.14734 ++	psubh.sh r7,r3,r6
 4.14735 ++	psubh.sh r4,r3,r3
 4.14736 ++	.text
 4.14737 ++	.global paddxh_sh
 4.14738 ++paddxh_sh:
 4.14739 ++	paddxh.sh pc,pc,pc
 4.14740 ++	paddxh.sh r12,r12,r12
 4.14741 ++	paddxh.sh r5,r5,r5
 4.14742 ++	paddxh.sh r4,r4,r4
 4.14743 ++	paddxh.sh lr,lr,lr
 4.14744 ++	paddxh.sh r6,r0,r4
 4.14745 ++	paddxh.sh r9,r8,r9
 4.14746 ++	paddxh.sh r3,r0,sp
 4.14747 ++	.text
 4.14748 ++	.global psubxh_sh
 4.14749 ++psubxh_sh:
 4.14750 ++	psubxh.sh pc,pc,pc
 4.14751 ++	psubxh.sh r12,r12,r12
 4.14752 ++	psubxh.sh r5,r5,r5
 4.14753 ++	psubxh.sh r4,r4,r4
 4.14754 ++	psubxh.sh lr,lr,lr
 4.14755 ++	psubxh.sh r4,pc,r12
 4.14756 ++	psubxh.sh r8,r4,r6
 4.14757 ++	psubxh.sh r12,r9,r4
 4.14758 ++	.text
 4.14759 ++	.global paddsub_h
 4.14760 ++paddsub_h:
 4.14761 ++	paddsub.h pc,pc:b,pc:b
 4.14762 ++	paddsub.h r12,r12:t,r12:t
 4.14763 ++	paddsub.h r5,r5:t,r5:t
 4.14764 ++	paddsub.h r4,r4:b,r4:b
 4.14765 ++	paddsub.h lr,lr:t,lr:t
 4.14766 ++	paddsub.h r5,r2:t,lr:b
 4.14767 ++	paddsub.h r7,r1:b,r8:b
 4.14768 ++	paddsub.h r6,r10:t,r5:t
 4.14769 ++	.text
 4.14770 ++	.global psubadd_h
 4.14771 ++psubadd_h:
 4.14772 ++	psubadd.h pc,pc:b,pc:b
 4.14773 ++	psubadd.h r12,r12:t,r12:t
 4.14774 ++	psubadd.h r5,r5:t,r5:t
 4.14775 ++	psubadd.h r4,r4:b,r4:b
 4.14776 ++	psubadd.h lr,lr:t,lr:t
 4.14777 ++	psubadd.h r9,r11:t,r8:t
 4.14778 ++	psubadd.h r10,r7:t,lr:t
 4.14779 ++	psubadd.h r6,pc:t,pc:b
 4.14780 ++	.text
 4.14781 ++	.global paddsubs_sh
 4.14782 ++paddsubs_sh:
 4.14783 ++	paddsubs.sh pc,pc:b,pc:b
 4.14784 ++	paddsubs.sh r12,r12:t,r12:t
 4.14785 ++	paddsubs.sh r5,r5:t,r5:t
 4.14786 ++	paddsubs.sh r4,r4:b,r4:b
 4.14787 ++	paddsubs.sh lr,lr:t,lr:t
 4.14788 ++	paddsubs.sh r0,lr:t,r0:b
 4.14789 ++	paddsubs.sh r9,r2:t,r4:t
 4.14790 ++	paddsubs.sh r12,r9:t,sp:t
 4.14791 ++	.text
 4.14792 ++	.global psubadds_sh
 4.14793 ++psubadds_sh:
 4.14794 ++	psubadds.sh pc,pc:b,pc:b
 4.14795 ++	psubadds.sh r12,r12:t,r12:t
 4.14796 ++	psubadds.sh r5,r5:t,r5:t
 4.14797 ++	psubadds.sh r4,r4:b,r4:b
 4.14798 ++	psubadds.sh lr,lr:t,lr:t
 4.14799 ++	psubadds.sh pc,lr:b,r1:t
 4.14800 ++	psubadds.sh r11,r3:b,r12:b
 4.14801 ++	psubadds.sh r10,r2:t,r8:t
 4.14802 ++	.text
 4.14803 ++	.global paddsubs_uh
 4.14804 ++paddsubs_uh:
 4.14805 ++	paddsubs.uh pc,pc:b,pc:b
 4.14806 ++	paddsubs.uh r12,r12:t,r12:t
 4.14807 ++	paddsubs.uh r5,r5:t,r5:t
 4.14808 ++	paddsubs.uh r4,r4:b,r4:b
 4.14809 ++	paddsubs.uh lr,lr:t,lr:t
 4.14810 ++	paddsubs.uh r9,r2:b,r3:b
 4.14811 ++	paddsubs.uh sp,sp:b,r7:t
 4.14812 ++	paddsubs.uh lr,r0:b,r10:t
 4.14813 ++	.text
 4.14814 ++	.global psubadds_uh
 4.14815 ++psubadds_uh:
 4.14816 ++	psubadds.uh pc,pc:b,pc:b
 4.14817 ++	psubadds.uh r12,r12:t,r12:t
 4.14818 ++	psubadds.uh r5,r5:t,r5:t
 4.14819 ++	psubadds.uh r4,r4:b,r4:b
 4.14820 ++	psubadds.uh lr,lr:t,lr:t
 4.14821 ++	psubadds.uh r12,r9:t,pc:t
 4.14822 ++	psubadds.uh r8,r6:b,r8:b
 4.14823 ++	psubadds.uh r8,r8:b,r4:b
 4.14824 ++	.text
 4.14825 ++	.global paddsubh_sh
 4.14826 ++paddsubh_sh:
 4.14827 ++	paddsubh.sh pc,pc:b,pc:b
 4.14828 ++	paddsubh.sh r12,r12:t,r12:t
 4.14829 ++	paddsubh.sh r5,r5:t,r5:t
 4.14830 ++	paddsubh.sh r4,r4:b,r4:b
 4.14831 ++	paddsubh.sh lr,lr:t,lr:t
 4.14832 ++	paddsubh.sh r8,r9:t,r9:b
 4.14833 ++	paddsubh.sh r0,sp:t,r1:t
 4.14834 ++	paddsubh.sh r3,r1:b,r0:t
 4.14835 ++	.text
 4.14836 ++	.global psubaddh_sh
 4.14837 ++psubaddh_sh:
 4.14838 ++	psubaddh.sh pc,pc:b,pc:b
 4.14839 ++	psubaddh.sh r12,r12:t,r12:t
 4.14840 ++	psubaddh.sh r5,r5:t,r5:t
 4.14841 ++	psubaddh.sh r4,r4:b,r4:b
 4.14842 ++	psubaddh.sh lr,lr:t,lr:t
 4.14843 ++	psubaddh.sh r7,r3:t,r10:b
 4.14844 ++	psubaddh.sh r7,r2:t,r1:t
 4.14845 ++	psubaddh.sh r11,r3:b,r6:b
 4.14846 ++	.text
 4.14847 ++	.global padd_b
 4.14848 ++padd_b:
 4.14849 ++	padd.b pc,pc,pc
 4.14850 ++	padd.b r12,r12,r12
 4.14851 ++	padd.b r5,r5,r5
 4.14852 ++	padd.b r4,r4,r4
 4.14853 ++	padd.b lr,lr,lr
 4.14854 ++	padd.b r2,r6,pc
 4.14855 ++	padd.b r8,r9,r12
 4.14856 ++	padd.b r5,r12,r3
 4.14857 ++	.text
 4.14858 ++	.global psub_b
 4.14859 ++psub_b:
 4.14860 ++	psub.b pc,pc,pc
 4.14861 ++	psub.b r12,r12,r12
 4.14862 ++	psub.b r5,r5,r5
 4.14863 ++	psub.b r4,r4,r4
 4.14864 ++	psub.b lr,lr,lr
 4.14865 ++	psub.b r0,r12,pc
 4.14866 ++	psub.b r7,sp,r10
 4.14867 ++	psub.b r5,sp,r12
 4.14868 ++	.text
 4.14869 ++	.global padds_sb
 4.14870 ++padds_sb:
 4.14871 ++	padds.sb pc,pc,pc
 4.14872 ++	padds.sb r12,r12,r12
 4.14873 ++	padds.sb r5,r5,r5
 4.14874 ++	padds.sb r4,r4,r4
 4.14875 ++	padds.sb lr,lr,lr
 4.14876 ++	padds.sb sp,r11,r4
 4.14877 ++	padds.sb r11,r10,r11
 4.14878 ++	padds.sb r5,r12,r6
 4.14879 ++	.text
 4.14880 ++	.global psubs_sb
 4.14881 ++psubs_sb:
 4.14882 ++	psubs.sb pc,pc,pc
 4.14883 ++	psubs.sb r12,r12,r12
 4.14884 ++	psubs.sb r5,r5,r5
 4.14885 ++	psubs.sb r4,r4,r4
 4.14886 ++	psubs.sb lr,lr,lr
 4.14887 ++	psubs.sb r7,r6,r8
 4.14888 ++	psubs.sb r12,r10,r9
 4.14889 ++	psubs.sb pc,r11,r0
 4.14890 ++	.text
 4.14891 ++	.global padds_ub
 4.14892 ++padds_ub:
 4.14893 ++	padds.ub pc,pc,pc
 4.14894 ++	padds.ub r12,r12,r12
 4.14895 ++	padds.ub r5,r5,r5
 4.14896 ++	padds.ub r4,r4,r4
 4.14897 ++	padds.ub lr,lr,lr
 4.14898 ++	padds.ub r3,r2,r11
 4.14899 ++	padds.ub r10,r8,r1
 4.14900 ++	padds.ub r11,r8,r10
 4.14901 ++	.text
 4.14902 ++	.global psubs_ub
 4.14903 ++psubs_ub:
 4.14904 ++	psubs.ub pc,pc,pc
 4.14905 ++	psubs.ub r12,r12,r12
 4.14906 ++	psubs.ub r5,r5,r5
 4.14907 ++	psubs.ub r4,r4,r4
 4.14908 ++	psubs.ub lr,lr,lr
 4.14909 ++	psubs.ub r0,r2,r7
 4.14910 ++	psubs.ub lr,r5,r3
 4.14911 ++	psubs.ub r6,r7,r9
 4.14912 ++	.text
 4.14913 ++	.global paddh_ub
 4.14914 ++paddh_ub:
 4.14915 ++	paddh.ub pc,pc,pc
 4.14916 ++	paddh.ub r12,r12,r12
 4.14917 ++	paddh.ub r5,r5,r5
 4.14918 ++	paddh.ub r4,r4,r4
 4.14919 ++	paddh.ub lr,lr,lr
 4.14920 ++	paddh.ub lr,r1,r0
 4.14921 ++	paddh.ub r2,r7,r7
 4.14922 ++	paddh.ub r2,r1,r2
 4.14923 ++	.text
 4.14924 ++	.global psubh_ub
 4.14925 ++psubh_ub:
 4.14926 ++	psubh.ub pc,pc,pc
 4.14927 ++	psubh.ub r12,r12,r12
 4.14928 ++	psubh.ub r5,r5,r5
 4.14929 ++	psubh.ub r4,r4,r4
 4.14930 ++	psubh.ub lr,lr,lr
 4.14931 ++	psubh.ub r0,r1,r6
 4.14932 ++	psubh.ub r4,lr,r10
 4.14933 ++	psubh.ub r9,r8,r1
 4.14934 ++	.text
 4.14935 ++	.global pmax_ub
 4.14936 ++pmax_ub:
 4.14937 ++	pmax.ub pc,pc,pc
 4.14938 ++	pmax.ub r12,r12,r12
 4.14939 ++	pmax.ub r5,r5,r5
 4.14940 ++	pmax.ub r4,r4,r4
 4.14941 ++	pmax.ub lr,lr,lr
 4.14942 ++	pmax.ub pc,r2,r11
 4.14943 ++	pmax.ub r12,r1,r1
 4.14944 ++	pmax.ub r5,r2,r0
 4.14945 ++	.text
 4.14946 ++	.global pmax_sh
 4.14947 ++pmax_sh:
 4.14948 ++	pmax.sh pc,pc,pc
 4.14949 ++	pmax.sh r12,r12,r12
 4.14950 ++	pmax.sh r5,r5,r5
 4.14951 ++	pmax.sh r4,r4,r4
 4.14952 ++	pmax.sh lr,lr,lr
 4.14953 ++	pmax.sh lr,r6,r12
 4.14954 ++	pmax.sh r2,pc,r5
 4.14955 ++	pmax.sh pc,r2,r7
 4.14956 ++	.text
 4.14957 ++	.global pmin_ub
 4.14958 ++pmin_ub:
 4.14959 ++	pmin.ub pc,pc,pc
 4.14960 ++	pmin.ub r12,r12,r12
 4.14961 ++	pmin.ub r5,r5,r5
 4.14962 ++	pmin.ub r4,r4,r4
 4.14963 ++	pmin.ub lr,lr,lr
 4.14964 ++	pmin.ub r8,r1,r5
 4.14965 ++	pmin.ub r1,r8,r3
 4.14966 ++	pmin.ub r0,r2,r7
 4.14967 ++	.text
 4.14968 ++	.global pmin_sh
 4.14969 ++pmin_sh:
 4.14970 ++	pmin.sh pc,pc,pc
 4.14971 ++	pmin.sh r12,r12,r12
 4.14972 ++	pmin.sh r5,r5,r5
 4.14973 ++	pmin.sh r4,r4,r4
 4.14974 ++	pmin.sh lr,lr,lr
 4.14975 ++	pmin.sh r8,r4,r10
 4.14976 ++	pmin.sh lr,r10,r12
 4.14977 ++	pmin.sh r2,r6,r2
 4.14978 ++	.text
 4.14979 ++	.global pavg_ub
 4.14980 ++pavg_ub:
 4.14981 ++	pavg.ub pc,pc,pc
 4.14982 ++	pavg.ub r12,r12,r12
 4.14983 ++	pavg.ub r5,r5,r5
 4.14984 ++	pavg.ub r4,r4,r4
 4.14985 ++	pavg.ub lr,lr,lr
 4.14986 ++	pavg.ub r0,r1,r6
 4.14987 ++	pavg.ub r8,r3,r6
 4.14988 ++	pavg.ub pc,r12,r10
 4.14989 ++	.text
 4.14990 ++	.global pavg_sh
 4.14991 ++pavg_sh:
 4.14992 ++	pavg.sh pc,pc,pc
 4.14993 ++	pavg.sh r12,r12,r12
 4.14994 ++	pavg.sh r5,r5,r5
 4.14995 ++	pavg.sh r4,r4,r4
 4.14996 ++	pavg.sh lr,lr,lr
 4.14997 ++	pavg.sh r9,pc,sp
 4.14998 ++	pavg.sh pc,sp,r3
 4.14999 ++	pavg.sh r6,r1,r9
 4.15000 ++	.text
 4.15001 ++	.global pabs_sb
 4.15002 ++pabs_sb:
 4.15003 ++	pabs.sb pc,pc
 4.15004 ++	pabs.sb r12,r12
 4.15005 ++	pabs.sb r5,r5
 4.15006 ++	pabs.sb r4,r4
 4.15007 ++	pabs.sb lr,lr
 4.15008 ++	pabs.sb r11,r6
 4.15009 ++	pabs.sb lr,r9
 4.15010 ++	pabs.sb sp,r7
 4.15011 ++	.text
 4.15012 ++	.global pabs_sh
 4.15013 ++pabs_sh:
 4.15014 ++	pabs.sh pc,pc
 4.15015 ++	pabs.sh r12,r12
 4.15016 ++	pabs.sh r5,r5
 4.15017 ++	pabs.sh r4,r4
 4.15018 ++	pabs.sh lr,lr
 4.15019 ++	pabs.sh pc,r3
 4.15020 ++	pabs.sh r5,r7
 4.15021 ++	pabs.sh r4,r0
 4.15022 ++	.text
 4.15023 ++	.global psad
 4.15024 ++psad:
 4.15025 ++	psad pc,pc,pc
 4.15026 ++	psad r12,r12,r12
 4.15027 ++	psad r5,r5,r5
 4.15028 ++	psad r4,r4,r4
 4.15029 ++	psad lr,lr,lr
 4.15030 ++	psad r9,r11,r11
 4.15031 ++	psad lr,r4,sp
 4.15032 ++	psad lr,r4,r5
 4.15033 ++	.text
 4.15034 ++	.global pasr_b
 4.15035 ++pasr_b:
 4.15036 ++	pasr.b pc,pc,0
 4.15037 ++	pasr.b r12,r12,7
 4.15038 ++	pasr.b r5,r5,4
 4.15039 ++	pasr.b r4,r4,3
 4.15040 ++	pasr.b lr,lr,1
 4.15041 ++	pasr.b pc,r7,1
 4.15042 ++	pasr.b sp,lr,6
 4.15043 ++	pasr.b sp,r3,2
 4.15044 ++	.text
 4.15045 ++	.global plsl_b
 4.15046 ++plsl_b:
 4.15047 ++	plsl.b pc,pc,0
 4.15048 ++	plsl.b r12,r12,7
 4.15049 ++	plsl.b r5,r5,4
 4.15050 ++	plsl.b r4,r4,3
 4.15051 ++	plsl.b lr,lr,1
 4.15052 ++	plsl.b r2,r11,4
 4.15053 ++	plsl.b r8,r5,7
 4.15054 ++	plsl.b pc,r0,2
 4.15055 ++	.text
 4.15056 ++	.global plsr_b
 4.15057 ++plsr_b:
 4.15058 ++	plsr.b pc,pc,0
 4.15059 ++	plsr.b r12,r12,7
 4.15060 ++	plsr.b r5,r5,4
 4.15061 ++	plsr.b r4,r4,3
 4.15062 ++	plsr.b lr,lr,1
 4.15063 ++	plsr.b r12,r1,2
 4.15064 ++	plsr.b r6,pc,7
 4.15065 ++	plsr.b r12,r11,2
 4.15066 ++	.text
 4.15067 ++	.global pasr_h
 4.15068 ++pasr_h:
 4.15069 ++	pasr.h pc,pc,0
 4.15070 ++	pasr.h r12,r12,15
 4.15071 ++	pasr.h r5,r5,8
 4.15072 ++	pasr.h r4,r4,7
 4.15073 ++	pasr.h lr,lr,1
 4.15074 ++	pasr.h r0,r11,10
 4.15075 ++	pasr.h r4,r6,8
 4.15076 ++	pasr.h r6,r2,4
 4.15077 ++	.text
 4.15078 ++	.global plsl_h
 4.15079 ++plsl_h:
 4.15080 ++	plsl.h pc,pc,0
 4.15081 ++	plsl.h r12,r12,15
 4.15082 ++	plsl.h r5,r5,8
 4.15083 ++	plsl.h r4,r4,7
 4.15084 ++	plsl.h lr,lr,1
 4.15085 ++	plsl.h r5,r10,9
 4.15086 ++	plsl.h sp,lr,8
 4.15087 ++	plsl.h r0,lr,7
 4.15088 ++	.text
 4.15089 ++	.global plsr_h
 4.15090 ++plsr_h:
 4.15091 ++	plsr.h pc,pc,0
 4.15092 ++	plsr.h r12,r12,15
 4.15093 ++	plsr.h r5,r5,8
 4.15094 ++	plsr.h r4,r4,7
 4.15095 ++	plsr.h lr,lr,1
 4.15096 ++	plsr.h r11,r0,15
 4.15097 ++	plsr.h lr,r3,3
 4.15098 ++	plsr.h r8,lr,10
 4.15099 ++	.text
 4.15100 ++	.global packw_sh
 4.15101 ++packw_sh:
 4.15102 ++	packw.sh pc,pc,pc
 4.15103 ++	packw.sh r12,r12,r12
 4.15104 ++	packw.sh r5,r5,r5
 4.15105 ++	packw.sh r4,r4,r4
 4.15106 ++	packw.sh lr,lr,lr
 4.15107 ++	packw.sh sp,r11,r10
 4.15108 ++	packw.sh r8,r2,r12
 4.15109 ++	packw.sh r8,r1,r5
 4.15110 ++	.text
 4.15111 ++	.global punpckub_h
 4.15112 ++punpckub_h:
 4.15113 ++	punpckub.h pc,pc:b
 4.15114 ++	punpckub.h r12,r12:t
 4.15115 ++	punpckub.h r5,r5:t
 4.15116 ++	punpckub.h r4,r4:b
 4.15117 ++	punpckub.h lr,lr:t
 4.15118 ++	punpckub.h r6,r1:t
 4.15119 ++	punpckub.h lr,r5:b
 4.15120 ++	punpckub.h lr,r2:t
 4.15121 ++	.text
 4.15122 ++	.global punpcksb_h
 4.15123 ++punpcksb_h:
 4.15124 ++	punpcksb.h pc,pc:b
 4.15125 ++	punpcksb.h r12,r12:t
 4.15126 ++	punpcksb.h r5,r5:t
 4.15127 ++	punpcksb.h r4,r4:b
 4.15128 ++	punpcksb.h lr,lr:t
 4.15129 ++	punpcksb.h r4,r7:t
 4.15130 ++	punpcksb.h r6,lr:b
 4.15131 ++	punpcksb.h r12,r12:t
 4.15132 ++	.text
 4.15133 ++	.global packsh_ub
 4.15134 ++packsh_ub:
 4.15135 ++	packsh.ub pc,pc,pc
 4.15136 ++	packsh.ub r12,r12,r12
 4.15137 ++	packsh.ub r5,r5,r5
 4.15138 ++	packsh.ub r4,r4,r4
 4.15139 ++	packsh.ub lr,lr,lr
 4.15140 ++	packsh.ub r3,r6,r3
 4.15141 ++	packsh.ub r8,r0,r3
 4.15142 ++	packsh.ub r9,r3,lr
 4.15143 ++	.text
 4.15144 ++	.global packsh_sb
 4.15145 ++packsh_sb:
 4.15146 ++	packsh.sb pc,pc,pc
 4.15147 ++	packsh.sb r12,r12,r12
 4.15148 ++	packsh.sb r5,r5,r5
 4.15149 ++	packsh.sb r4,r4,r4
 4.15150 ++	packsh.sb lr,lr,lr
 4.15151 ++	packsh.sb r6,r8,r1
 4.15152 ++	packsh.sb lr,r9,r8
 4.15153 ++	packsh.sb sp,r6,r6
 4.15154 ++	.text
 4.15155 ++	.global andl
 4.15156 ++andl:
 4.15157 ++	andl pc,0
 4.15158 ++	andl r12,65535
 4.15159 ++	andl r5,32768
 4.15160 ++	andl r4,32767
 4.15161 ++	andl lr,1
 4.15162 ++	andl pc,23128
 4.15163 ++	andl r8,47262
 4.15164 ++	andl r7,13719
 4.15165 ++	.text
 4.15166 ++	.global andl_coh
 4.15167 ++andl_coh:
 4.15168 ++	andl pc,0,COH
 4.15169 ++	andl r12,65535,COH
 4.15170 ++	andl r5,32768,COH
 4.15171 ++	andl r4,32767,COH
 4.15172 ++	andl lr,1,COH
 4.15173 ++	andl r6,22753,COH
 4.15174 ++	andl r0,40653,COH
 4.15175 ++	andl r4,48580,COH
 4.15176 ++	.text
 4.15177 ++	.global andh
 4.15178 ++andh:
 4.15179 ++	andh pc,0
 4.15180 ++	andh r12,65535
 4.15181 ++	andh r5,32768
 4.15182 ++	andh r4,32767
 4.15183 ++	andh lr,1
 4.15184 ++	andh r12,52312
 4.15185 ++	andh r3,8675
 4.15186 ++	andh r2,42987
 4.15187 ++	.text
 4.15188 ++	.global andh_coh
 4.15189 ++andh_coh:
 4.15190 ++	andh pc,0,COH
 4.15191 ++	andh r12,65535,COH
 4.15192 ++	andh r5,32768,COH
 4.15193 ++	andh r4,32767,COH
 4.15194 ++	andh lr,1,COH
 4.15195 ++	andh r11,34317,COH
 4.15196 ++	andh r8,52982,COH
 4.15197 ++	andh r10,23683,COH
 4.15198 ++	.text
 4.15199 ++	.global orl
 4.15200 ++orl:
 4.15201 ++	orl pc,0
 4.15202 ++	orl r12,65535
 4.15203 ++	orl r5,32768
 4.15204 ++	orl r4,32767
 4.15205 ++	orl lr,1
 4.15206 ++	orl sp,16766
 4.15207 ++	orl r0,21181
 4.15208 ++	orl pc,44103
 4.15209 ++	.text
 4.15210 ++	.global orh
 4.15211 ++orh:
 4.15212 ++	orh pc,0
 4.15213 ++	orh r12,65535
 4.15214 ++	orh r5,32768
 4.15215 ++	orh r4,32767
 4.15216 ++	orh lr,1
 4.15217 ++	orh r8,28285
 4.15218 ++	orh r12,30492
 4.15219 ++	orh r1,59930
 4.15220 ++	.text
 4.15221 ++	.global eorl
 4.15222 ++eorl:
 4.15223 ++	eorl pc,0
 4.15224 ++	eorl r12,65535
 4.15225 ++	eorl r5,32768
 4.15226 ++	eorl r4,32767
 4.15227 ++	eorl lr,1
 4.15228 ++	eorl r4,51129
 4.15229 ++	eorl r6,64477
 4.15230 ++	eorl r1,20913
 4.15231 ++	.text
 4.15232 ++	.global eorh
 4.15233 ++eorh:
 4.15234 ++	eorh pc,0
 4.15235 ++	eorh r12,65535
 4.15236 ++	eorh r5,32768
 4.15237 ++	eorh r4,32767
 4.15238 ++	eorh lr,1
 4.15239 ++	eorh r0,11732
 4.15240 ++	eorh r10,38069
 4.15241 ++	eorh r9,57130
 4.15242 ++	.text
 4.15243 ++	.global mcall
 4.15244 ++mcall:
 4.15245 ++	mcall pc[0]
 4.15246 ++	mcall r12[-4]
 4.15247 ++	mcall r5[-131072]
 4.15248 ++	mcall r4[131068]
 4.15249 ++	mcall lr[4]
 4.15250 ++	mcall sp[61180]
 4.15251 ++	mcall r4[-35000]
 4.15252 ++	mcall r0[9924]
 4.15253 ++	.text
 4.15254 ++	.global pref
 4.15255 ++pref:
 4.15256 ++	pref pc[0]
 4.15257 ++	pref r12[-1]
 4.15258 ++	pref r5[-32768]
 4.15259 ++	pref r4[32767]
 4.15260 ++	pref lr[1]
 4.15261 ++	pref r7[7748]
 4.15262 ++	pref r7[-7699]
 4.15263 ++	pref r2[-25892]
 4.15264 ++	.text
 4.15265 ++	.global cache
 4.15266 ++cache:
 4.15267 ++	cache pc[0],0
 4.15268 ++	cache r12[-1],31
 4.15269 ++	cache r5[-1024],16
 4.15270 ++	cache r4[1023],15
 4.15271 ++	cache lr[1],1
 4.15272 ++	cache r3[-964],17
 4.15273 ++	cache r4[-375],22
 4.15274 ++	cache r3[-888],17
 4.15275 ++	.text
 4.15276 ++	.global sub4
 4.15277 ++sub4:
 4.15278 ++	sub pc,0
 4.15279 ++	sub r12,-1
 4.15280 ++	sub r5,-1048576
 4.15281 ++	sub r4,1048575
 4.15282 ++	sub lr,1
 4.15283 ++	sub r2,-619156
 4.15284 ++	sub lr,461517
 4.15285 ++	sub r8,-185051
 4.15286 ++	.text
 4.15287 ++	.global cp3
 4.15288 ++cp3:
 4.15289 ++	cp pc,0
 4.15290 ++	cp r12,-1
 4.15291 ++	cp r5,-1048576
 4.15292 ++	cp r4,1048575
 4.15293 ++	cp lr,1
 4.15294 ++	cp r1,124078
 4.15295 ++	cp r0,-378909
 4.15296 ++	cp r4,-243180
 4.15297 ++	.text
 4.15298 ++	.global mov2
 4.15299 ++mov2:
 4.15300 ++	mov pc,0
 4.15301 ++	mov r12,-1
 4.15302 ++	mov r5,-1048576
 4.15303 ++	mov r4,1048575
 4.15304 ++	mov lr,1
 4.15305 ++	mov r5,-317021
 4.15306 ++	mov sp,-749164
 4.15307 ++	mov r5,940179
 4.15308 ++	.text
 4.15309 ++	.global brc2
 4.15310 ++brc2:
 4.15311 ++	breq 0
 4.15312 ++	bral -2
 4.15313 ++	brls -2097152
 4.15314 ++	brpl 2097150
 4.15315 ++	brne 2
 4.15316 ++	brhi -1796966
 4.15317 ++	brqs 1321368
 4.15318 ++	brls -577434
 4.15319 ++	.text
 4.15320 ++	.global rcall2
 4.15321 ++rcall2:
 4.15322 ++	rcall 0
 4.15323 ++	rcall -2
 4.15324 ++	rcall -2097152
 4.15325 ++	rcall 2097150
 4.15326 ++	rcall 2
 4.15327 ++	rcall 496820
 4.15328 ++	rcall 1085092
 4.15329 ++	rcall -1058
 4.15330 ++	.text
 4.15331 ++	.global sub5
 4.15332 ++sub5:
 4.15333 ++	sub pc,pc,0
 4.15334 ++	sub r12,r12,-1
 4.15335 ++	sub r5,r5,-32768
 4.15336 ++	sub r4,r4,32767
 4.15337 ++	sub lr,lr,1
 4.15338 ++	sub pc,pc,-12744
 4.15339 ++	sub r7,r7,-27365
 4.15340 ++	sub r2,r9,-17358
 4.15341 ++	.text
 4.15342 ++	.global satsub_w2
 4.15343 ++satsub_w2:
 4.15344 ++	satsub.w pc,pc,0
 4.15345 ++	satsub.w r12,r12,-1
 4.15346 ++	satsub.w r5,r5,-32768
 4.15347 ++	satsub.w r4,r4,32767
 4.15348 ++	satsub.w lr,lr,1
 4.15349 ++	satsub.w r2,lr,-2007
 4.15350 ++	satsub.w r7,r12,-784
 4.15351 ++	satsub.w r4,r7,23180
 4.15352 ++	.text
 4.15353 ++	.global ld_d4
 4.15354 ++ld_d4:
 4.15355 ++	ld.d r0,pc[0]
 4.15356 ++	ld.d r14,r12[-1]
 4.15357 ++	ld.d r8,r5[-32768]
 4.15358 ++	ld.d r6,r4[32767]
 4.15359 ++	ld.d r2,lr[1]
 4.15360 ++	ld.d r14,r11[14784]
 4.15361 ++	ld.d r6,r9[-18905]
 4.15362 ++	ld.d r2,r3[-6355]
 4.15363 ++	.text
 4.15364 ++	.global ld_w4
 4.15365 ++ld_w4:
 4.15366 ++	ld.w pc,pc[0]
 4.15367 ++	ld.w r12,r12[-1]
 4.15368 ++	ld.w r5,r5[-32768]
 4.15369 ++	ld.w r4,r4[32767]
 4.15370 ++	ld.w lr,lr[1]
 4.15371 ++	ld.w r0,r12[-22133]
 4.15372 ++	ld.w sp,pc[-20521]
 4.15373 ++	/* ld.w r3,r5[29035] */
 4.15374 ++	nop
 4.15375 ++	.text
 4.15376 ++	.global ld_sh4
 4.15377 ++ld_sh4:
 4.15378 ++	ld.sh pc,pc[0]
 4.15379 ++	ld.sh r12,r12[-1]
 4.15380 ++	ld.sh r5,r5[-32768]
 4.15381 ++	ld.sh r4,r4[32767]
 4.15382 ++	ld.sh lr,lr[1]
 4.15383 ++	ld.sh r6,r10[30930]
 4.15384 ++	ld.sh r6,r10[21973]
 4.15385 ++	/* ld.sh r11,r10[-2058] */
 4.15386 ++	nop
 4.15387 ++	.text
 4.15388 ++	.global ld_uh4
 4.15389 ++ld_uh4:
 4.15390 ++	ld.uh pc,pc[0]
 4.15391 ++	ld.uh r12,r12[-1]
 4.15392 ++	ld.uh r5,r5[-32768]
 4.15393 ++	ld.uh r4,r4[32767]
 4.15394 ++	ld.uh lr,lr[1]
 4.15395 ++	ld.uh r1,r9[-13354]
 4.15396 ++	ld.uh lr,r11[21337]
 4.15397 ++	/* ld.uh r2,lr[-25370] */
 4.15398 ++	nop
 4.15399 ++	.text
 4.15400 ++	.global ld_sb1
 4.15401 ++ld_sb1:
 4.15402 ++	ld.sb pc,pc[0]
 4.15403 ++	ld.sb r12,r12[-1]
 4.15404 ++	ld.sb r5,r5[-32768]
 4.15405 ++	ld.sb r4,r4[32767]
 4.15406 ++	ld.sb lr,lr[1]
 4.15407 ++	ld.sb r7,sp[-28663]
 4.15408 ++	ld.sb r2,r1[-5879]
 4.15409 ++	ld.sb r12,r3[18734]
 4.15410 ++	.text
 4.15411 ++	.global ld_ub4
 4.15412 ++ld_ub4:
 4.15413 ++	ld.ub pc,pc[0]
 4.15414 ++	ld.ub r12,r12[-1]
 4.15415 ++	ld.ub r5,r5[-32768]
 4.15416 ++	ld.ub r4,r4[32767]
 4.15417 ++	ld.ub lr,lr[1]
 4.15418 ++	ld.ub pc,r4[8277]
 4.15419 ++	ld.ub r5,r12[19172]
 4.15420 ++	ld.ub r10,lr[26347]
 4.15421 ++	.text
 4.15422 ++	.global st_d4
 4.15423 ++st_d4:
 4.15424 ++	st.d pc[0],r0
 4.15425 ++	st.d r12[-1],r14
 4.15426 ++	st.d r5[-32768],r8
 4.15427 ++	st.d r4[32767],r6
 4.15428 ++	st.d lr[1],r2
 4.15429 ++	st.d r5[13200],r10
 4.15430 ++	st.d r5[9352],r10
 4.15431 ++	st.d r5[32373],r4
 4.15432 ++	.text
 4.15433 ++	.global st_w4
 4.15434 ++st_w4:
 4.15435 ++	st.w pc[0],pc
 4.15436 ++	st.w r12[-1],r12
 4.15437 ++	st.w r5[-32768],r5
 4.15438 ++	st.w r4[32767],r4
 4.15439 ++	st.w lr[1],lr
 4.15440 ++	st.w sp[6136],r7
 4.15441 ++	st.w r6[27087],r12
 4.15442 ++	/* st.w r3[20143],r7 */
 4.15443 ++	nop
 4.15444 ++	.text
 4.15445 ++	.global st_h4
 4.15446 ++st_h4:
 4.15447 ++	st.h pc[0],pc
 4.15448 ++	st.h r12[-1],r12
 4.15449 ++	st.h r5[-32768],r5
 4.15450 ++	st.h r4[32767],r4
 4.15451 ++	st.h lr[1],lr
 4.15452 ++	st.h r4[-9962],r7
 4.15453 ++	st.h r9[-16250],r3
 4.15454 ++	/* st.h r8[-28810],r7 */
 4.15455 ++	nop
 4.15456 ++	.text
 4.15457 ++	.global st_b4
 4.15458 ++st_b4:
 4.15459 ++	st.b pc[0],pc
 4.15460 ++	st.b r12[-1],r12
 4.15461 ++	st.b r5[-32768],r5
 4.15462 ++	st.b r4[32767],r4
 4.15463 ++	st.b lr[1],lr
 4.15464 ++	st.b r12[30102],r6
 4.15465 ++	st.b r5[28977],r1
 4.15466 ++	st.b r0[5470],r1
 4.15467 ++	.text
 4.15468 ++	.global mfsr
 4.15469 ++mfsr:
 4.15470 ++	mfsr pc,0
 4.15471 ++	mfsr r12,1020
 4.15472 ++	mfsr r5,512
 4.15473 ++	mfsr r4,508
 4.15474 ++	mfsr lr,4
 4.15475 ++	mfsr r2,696
 4.15476 ++	mfsr r4,260
 4.15477 ++	mfsr r10,1016
 4.15478 ++	.text
 4.15479 ++	.global mtsr
 4.15480 ++mtsr:
 4.15481 ++	mtsr 0,pc
 4.15482 ++	mtsr 1020,r12
 4.15483 ++	mtsr 512,r5
 4.15484 ++	mtsr 508,r4
 4.15485 ++	mtsr 4,lr
 4.15486 ++	mtsr 224,r10
 4.15487 ++	mtsr 836,r12
 4.15488 ++	mtsr 304,r9
 4.15489 ++	.text
 4.15490 ++	.global mfdr
 4.15491 ++mfdr:
 4.15492 ++	mfdr pc,0
 4.15493 ++	mfdr r12,1020
 4.15494 ++	mfdr r5,512
 4.15495 ++	mfdr r4,508
 4.15496 ++	mfdr lr,4
 4.15497 ++	mfdr r6,932
 4.15498 ++	mfdr r5,36
 4.15499 ++	mfdr r9,300
 4.15500 ++	.text
 4.15501 ++	.global mtdr
 4.15502 ++mtdr:
 4.15503 ++	mtdr 0,pc
 4.15504 ++	mtdr 1020,r12
 4.15505 ++	mtdr 512,r5
 4.15506 ++	mtdr 508,r4
 4.15507 ++	mtdr 4,lr
 4.15508 ++	mtdr 180,r8
 4.15509 ++	mtdr 720,r10
 4.15510 ++	mtdr 408,lr
 4.15511 ++	.text
 4.15512 ++	.global sleep
 4.15513 ++sleep:
 4.15514 ++	sleep 0
 4.15515 ++	sleep 255
 4.15516 ++	sleep 128
 4.15517 ++	sleep 127
 4.15518 ++	sleep 1
 4.15519 ++	sleep 254
 4.15520 ++	sleep 15
 4.15521 ++	sleep 43
 4.15522 ++	.text
 4.15523 ++	.global sync
 4.15524 ++sync:
 4.15525 ++	sync 0
 4.15526 ++	sync 255
 4.15527 ++	sync 128
 4.15528 ++	sync 127
 4.15529 ++	sync 1
 4.15530 ++	sync 166
 4.15531 ++	sync 230
 4.15532 ++	sync 180
 4.15533 ++	.text
 4.15534 ++	.global bld
 4.15535 ++bld:
 4.15536 ++	bld pc,0
 4.15537 ++	bld r12,31
 4.15538 ++	bld r5,16
 4.15539 ++	bld r4,15
 4.15540 ++	bld lr,1
 4.15541 ++	bld r9,15
 4.15542 ++	bld r0,4
 4.15543 ++	bld lr,26
 4.15544 ++	.text
 4.15545 ++	.global bst
 4.15546 ++bst:
 4.15547 ++	bst pc,0
 4.15548 ++	bst r12,31
 4.15549 ++	bst r5,16
 4.15550 ++	bst r4,15
 4.15551 ++	bst lr,1
 4.15552 ++	bst r10,28
 4.15553 ++	bst r0,3
 4.15554 ++	bst sp,2
 4.15555 ++	.text
 4.15556 ++	.global sats
 4.15557 ++sats:
 4.15558 ++	sats pc>>0,0
 4.15559 ++	sats r12>>31,31
 4.15560 ++	sats r5>>16,16
 4.15561 ++	sats r4>>15,15
 4.15562 ++	sats lr>>1,1
 4.15563 ++	sats r10>>3,19
 4.15564 ++	sats r10>>2,26
 4.15565 ++	sats r1>>20,1
 4.15566 ++	.text
 4.15567 ++	.global satu
 4.15568 ++satu:
 4.15569 ++	satu pc>>0,0
 4.15570 ++	satu r12>>31,31
 4.15571 ++	satu r5>>16,16
 4.15572 ++	satu r4>>15,15
 4.15573 ++	satu lr>>1,1
 4.15574 ++	satu pc>>5,7
 4.15575 ++	satu r7>>5,5
 4.15576 ++	satu r2>>26,19
 4.15577 ++	.text
 4.15578 ++	.global satrnds
 4.15579 ++satrnds:
 4.15580 ++	satrnds pc>>0,0
 4.15581 ++	satrnds r12>>31,31
 4.15582 ++	satrnds r5>>16,16
 4.15583 ++	satrnds r4>>15,15
 4.15584 ++	satrnds lr>>1,1
 4.15585 ++	satrnds r0>>21,19
 4.15586 ++	satrnds sp>>0,2
 4.15587 ++	satrnds r7>>6,29
 4.15588 ++	.text
 4.15589 ++	.global satrndu
 4.15590 ++satrndu:
 4.15591 ++	satrndu pc>>0,0
 4.15592 ++	satrndu r12>>31,31
 4.15593 ++	satrndu r5>>16,16
 4.15594 ++	satrndu r4>>15,15
 4.15595 ++	satrndu lr>>1,1
 4.15596 ++	satrndu r12>>0,26
 4.15597 ++	satrndu r4>>21,3
 4.15598 ++	satrndu r10>>3,16
 4.15599 ++	.text
 4.15600 ++	.global subfc
 4.15601 ++subfc:
 4.15602 ++	subfeq pc,0
 4.15603 ++	subfal r12,-1
 4.15604 ++	subfls r5,-128
 4.15605 ++	subfpl r4,127
 4.15606 ++	subfne lr,1
 4.15607 ++	subfls r10,8
 4.15608 ++	subfvc r11,99
 4.15609 ++	subfvs r2,73
 4.15610 ++	.text
 4.15611 ++	.global subc
 4.15612 ++subc:
 4.15613 ++	subeq pc,0
 4.15614 ++	subal r12,-1
 4.15615 ++	subls r5,-128
 4.15616 ++	subpl r4,127
 4.15617 ++	subne lr,1
 4.15618 ++	subls r12,118
 4.15619 ++	subvc lr,-12
 4.15620 ++	submi r4,-13
 4.15621 ++	.text
 4.15622 ++	.global movc2
 4.15623 ++movc2:
 4.15624 ++	moveq pc,0
 4.15625 ++	moval r12,-1
 4.15626 ++	movls r5,-128
 4.15627 ++	movpl r4,127
 4.15628 ++	movne lr,1
 4.15629 ++	movlt r3,-122
 4.15630 ++	movvc r8,2
 4.15631 ++	movne r7,-111
 4.15632 ++	.text
 4.15633 ++	.global cp_b
 4.15634 ++cp_b:
 4.15635 ++	cp.b pc,r0
 4.15636 ++	cp.b r0,pc
 4.15637 ++	cp.b r7,r8
 4.15638 ++	cp.b r8,r7
 4.15639 ++	.text
 4.15640 ++	.global cp_h
 4.15641 ++cp_h:
 4.15642 ++	cp.h pc,r0
 4.15643 ++	cp.h r0,pc
 4.15644 ++	cp.h r7,r8
 4.15645 ++	cp.h r8,r7
 4.15646 ++	.text
 4.15647 ++	.global ldm
 4.15648 ++ldm:
 4.15649 ++	ldm pc,r1-r6
 4.15650 ++	ldm r12,r0-r15
 4.15651 ++	ldm r5,r15
 4.15652 ++	ldm r4,r0-r14
 4.15653 ++	ldm lr,r0
 4.15654 ++	ldm r9,r1,r5,r14
 4.15655 ++	ldm r11,r2-r3,r5-r8,r15
 4.15656 ++	ldm r6,r0,r3,r9,r13,r15
 4.15657 ++	.text
 4.15658 ++	.global ldm_pu
 4.15659 ++ldm_pu:
 4.15660 ++	ldm pc++,r6-r9
 4.15661 ++	ldm r12++,r0-r15
 4.15662 ++	ldm r5++,r15
 4.15663 ++	ldm r4++,r0-r14
 4.15664 ++	ldm lr++,r0
 4.15665 ++	ldm r12++,r3-r5,r8,r10,r12,r14-r15
 4.15666 ++	ldm r10++,r2,r4-r6,r14-r15
 4.15667 ++	ldm r6++,r1,r3-r4,r9-r14
 4.15668 ++	.text
 4.15669 ++	.global ldmts
 4.15670 ++ldmts:
 4.15671 ++	ldmts pc,r7-r8
 4.15672 ++	ldmts r12,r0-r15
 4.15673 ++	ldmts r5,r15
 4.15674 ++	ldmts r4,r0-r14
 4.15675 ++	ldmts lr,r0
 4.15676 ++	ldmts r0,r1-r2,r11-r12
 4.15677 ++	ldmts lr,r0-r2,r4,r7-r8,r13-r14
 4.15678 ++	ldmts r12,r0-r1,r3-r5,r9,r14-r15
 4.15679 ++	.text
 4.15680 ++	.global ldmts_pu
 4.15681 ++ldmts_pu:
 4.15682 ++	ldmts pc++,r9
 4.15683 ++	ldmts r12++,r0-r15
 4.15684 ++	ldmts r5++,r15
 4.15685 ++	ldmts r4++,r0-r14
 4.15686 ++	ldmts lr++,r0
 4.15687 ++	ldmts sp++,r0,r2-r5,r7,r9,r11
 4.15688 ++	ldmts r5++,r1-r3,r7,r10-r11
 4.15689 ++	ldmts r8++,r2-r4,r7-r8,r13,r15
 4.15690 ++	.text
 4.15691 ++	.global stm
 4.15692 ++stm:
 4.15693 ++	stm pc,r7
 4.15694 ++	stm r12,r0-r15
 4.15695 ++	stm r5,r15
 4.15696 ++	stm r4,r0-r14
 4.15697 ++	stm lr,r0
 4.15698 ++	stm sp,r2-r3,r5,r8,r11,r14
 4.15699 ++	stm r4,r0-r4,r6,r10-r11,r14
 4.15700 ++	stm r9,r1,r5,r9,r12-r15
 4.15701 ++	.text
 4.15702 ++	.global stm_pu
 4.15703 ++stm_pu:
 4.15704 ++	stm --pc,r4-r6
 4.15705 ++	stm --r12,r0-r15
 4.15706 ++	stm --r5,r15
 4.15707 ++	stm --r4,r0-r14
 4.15708 ++	stm --lr,r0
 4.15709 ++	stm --r11,r0,r4-r9,r11-r15
 4.15710 ++	stm --r11,r0,r3,r9-r10,r12,r14
 4.15711 ++	stm --r6,r2,r8-r9,r13-r14
 4.15712 ++	.text
 4.15713 ++	.global stmts
 4.15714 ++stmts:
 4.15715 ++	stmts pc,r8
 4.15716 ++	stmts r12,r0-r15
 4.15717 ++	stmts r5,r15
 4.15718 ++	stmts r4,r0-r14
 4.15719 ++	stmts lr,r0
 4.15720 ++	stmts r1,r0-r1,r3-r4,r6,r9-r10,r14-r15
 4.15721 ++	stmts r3,r0,r6-r8,r10-r12
 4.15722 ++	stmts r11,r0,r4,r6-r7,r9-r10,r12,r14-r15
 4.15723 ++	.text
 4.15724 ++	.global stmts_pu
 4.15725 ++stmts_pu:
 4.15726 ++	stmts --pc,r6-r8
 4.15727 ++	stmts --r12,r0-r15
 4.15728 ++	stmts --r5,r15
 4.15729 ++	stmts --r4,r0-r14
 4.15730 ++	stmts --lr,r0
 4.15731 ++	stmts --r2,r0,r3-r4,r9-r10,r12-r13
 4.15732 ++	stmts --r3,r0-r1,r14-r15
 4.15733 ++	stmts --r0,r0,r2-r6,r10,r14
 4.15734 ++	.text
 4.15735 ++	.global ldins_h
 4.15736 ++ldins_h:
 4.15737 ++	ldins.h pc:b,pc[0]
 4.15738 ++	ldins.h r12:t,r12[-2]
 4.15739 ++	ldins.h r5:t,r5[-4096]
 4.15740 ++	ldins.h r4:b,r4[4094]
 4.15741 ++	ldins.h lr:t,lr[2]
 4.15742 ++	ldins.h r0:t,lr[1930]
 4.15743 ++	ldins.h r3:b,r7[-534]
 4.15744 ++	ldins.h r2:b,r12[-2252]
 4.15745 ++	.text
 4.15746 ++	.global ldins_b
 4.15747 ++ldins_b:
 4.15748 ++	ldins.b pc:b,pc[0]
 4.15749 ++	ldins.b r12:t,r12[-1]
 4.15750 ++	ldins.b r5:u,r5[-2048]
 4.15751 ++	ldins.b r4:l,r4[2047]
 4.15752 ++	ldins.b lr:l,lr[1]
 4.15753 ++	ldins.b r6:t,r4[-662]
 4.15754 ++	ldins.b r5:b,r1[-151]
 4.15755 ++	ldins.b r10:t,r11[-1923]
 4.15756 ++	.text
 4.15757 ++	.global ldswp_sh
 4.15758 ++ldswp_sh:
 4.15759 ++	ldswp.sh pc,pc[0]
 4.15760 ++	ldswp.sh r12,r12[-2]
 4.15761 ++	ldswp.sh r5,r5[-4096]
 4.15762 ++	ldswp.sh r4,r4[4094]
 4.15763 ++	ldswp.sh lr,lr[2]
 4.15764 ++	ldswp.sh r9,r10[3848]
 4.15765 ++	ldswp.sh r4,r12[-2040]
 4.15766 ++	ldswp.sh r10,r2[3088]
 4.15767 ++	.text
 4.15768 ++	.global ldswp_uh
 4.15769 ++ldswp_uh:
 4.15770 ++	ldswp.uh pc,pc[0]
 4.15771 ++	ldswp.uh r12,r12[-2]
 4.15772 ++	ldswp.uh r5,r5[-4096]
 4.15773 ++	ldswp.uh r4,r4[4094]
 4.15774 ++	ldswp.uh lr,lr[2]
 4.15775 ++	ldswp.uh r4,r9[3724]
 4.15776 ++	ldswp.uh lr,sp[-1672]
 4.15777 ++	ldswp.uh r8,r12[-3846]
 4.15778 ++	.text
 4.15779 ++	.global ldswp_w
 4.15780 ++ldswp_w:
 4.15781 ++	ldswp.w pc,pc[0]
 4.15782 ++	ldswp.w r12,r12[-4]
 4.15783 ++	ldswp.w r5,r5[-8192]
 4.15784 ++	ldswp.w r4,r4[8188]
 4.15785 ++	ldswp.w lr,lr[4]
 4.15786 ++	ldswp.w sp,r7[1860]
 4.15787 ++	ldswp.w pc,r5[-3324]
 4.15788 ++	ldswp.w r12,r10[-3296]
 4.15789 ++	.text
 4.15790 ++	.global stswp_h
 4.15791 ++stswp_h:
 4.15792 ++	stswp.h pc[0],pc
 4.15793 ++	stswp.h r12[-2],r12
 4.15794 ++	stswp.h r5[-4096],r5
 4.15795 ++	stswp.h r4[4094],r4
 4.15796 ++	stswp.h lr[2],lr
 4.15797 ++	stswp.h r7[64],r10
 4.15798 ++	stswp.h r10[3024],r2
 4.15799 ++	stswp.h r0[-2328],r10
 4.15800 ++	.text
 4.15801 ++	.global stswp_w
 4.15802 ++stswp_w:
 4.15803 ++	stswp.w pc[0],pc
 4.15804 ++	stswp.w r12[-4],r12
 4.15805 ++	stswp.w r5[-8192],r5
 4.15806 ++	stswp.w r4[8188],r4
 4.15807 ++	stswp.w lr[4],lr
 4.15808 ++	stswp.w pc[1156],r8
 4.15809 ++	stswp.w sp[7992],r10
 4.15810 ++	stswp.w r8[-1172],r5
 4.15811 ++	.text
 4.15812 ++	.global and2
 4.15813 ++and2:
 4.15814 ++	and pc,pc,pc<<0
 4.15815 ++	and r12,r12,r12<<31
 4.15816 ++	and r5,r5,r5<<16
 4.15817 ++	and r4,r4,r4<<15
 4.15818 ++	and lr,lr,lr<<1
 4.15819 ++	and r10,r2,r1<<1
 4.15820 ++	and r12,r8,r11<<27
 4.15821 ++	and r10,r7,r0<<3
 4.15822 ++	.text
 4.15823 ++	.global and3
 4.15824 ++and3:
 4.15825 ++	and pc,pc,pc>>0
 4.15826 ++	and r12,r12,r12>>31
 4.15827 ++	and r5,r5,r5>>16
 4.15828 ++	and r4,r4,r4>>15
 4.15829 ++	and lr,lr,lr>>1
 4.15830 ++	and r12,r8,r7>>17
 4.15831 ++	and pc,r4,r9>>20
 4.15832 ++	and r10,r9,r10>>12
 4.15833 ++	.text
 4.15834 ++	.global or2
 4.15835 ++or2:
 4.15836 ++	or pc,pc,pc<<0
 4.15837 ++	or r12,r12,r12<<31
 4.15838 ++	or r5,r5,r5<<16
 4.15839 ++	or r4,r4,r4<<15
 4.15840 ++	or lr,lr,lr<<1
 4.15841 ++	or r8,sp,r11<<29
 4.15842 ++	or pc,r9,r2<<28
 4.15843 ++	or r5,r1,r2<<3
 4.15844 ++	.text
 4.15845 ++	.global or3
 4.15846 ++or3:
 4.15847 ++	or pc,pc,pc>>0
 4.15848 ++	or r12,r12,r12>>31
 4.15849 ++	or r5,r5,r5>>16
 4.15850 ++	or r4,r4,r4>>15
 4.15851 ++	or lr,lr,lr>>1
 4.15852 ++	or r1,sp,sp>>2
 4.15853 ++	or r0,r1,r1>>29
 4.15854 ++	or r4,r12,r8>>8
 4.15855 ++	.text
 4.15856 ++	.global eor2
 4.15857 ++eor2:
 4.15858 ++	eor pc,pc,pc<<0
 4.15859 ++	eor r12,r12,r12<<31
 4.15860 ++	eor r5,r5,r5<<16
 4.15861 ++	eor r4,r4,r4<<15
 4.15862 ++	eor lr,lr,lr<<1
 4.15863 ++	eor r10,r9,r4<<11
 4.15864 ++	eor r4,r0,r1<<31
 4.15865 ++	eor r6,r2,r12<<13
 4.15866 ++	.text
 4.15867 ++	.global eor3
 4.15868 ++eor3:
 4.15869 ++	eor pc,pc,pc>>0
 4.15870 ++	eor r12,r12,r12>>31
 4.15871 ++	eor r5,r5,r5>>16
 4.15872 ++	eor r4,r4,r4>>15
 4.15873 ++	eor lr,lr,lr>>1
 4.15874 ++	eor r5,r5,r5>>22
 4.15875 ++	eor r10,r1,lr>>3
 4.15876 ++	eor r7,lr,sp>>26
 4.15877 ++	.text
 4.15878 ++	.global sthh_w2
 4.15879 ++sthh_w2:
 4.15880 ++	sthh.w pc[pc<<0],pc:b,pc:b
 4.15881 ++	sthh.w r12[r12<<3],r12:t,r12:t
 4.15882 ++	sthh.w r5[r5<<2],r5:t,r5:t
 4.15883 ++	sthh.w r4[r4<<1],r4:b,r4:b
 4.15884 ++	sthh.w lr[lr<<1],lr:t,lr:t
 4.15885 ++	sthh.w sp[r6<<3],r1:t,r12:t
 4.15886 ++	sthh.w r6[r6<<0],r9:t,r9:t
 4.15887 ++	sthh.w r10[r3<<0],r0:b,r11:t
 4.15888 ++	.text
 4.15889 ++	.global sthh_w1
 4.15890 ++sthh_w1:
 4.15891 ++	sthh.w pc[0],pc:b,pc:b
 4.15892 ++	sthh.w r12[1020],r12:t,r12:t
 4.15893 ++	sthh.w r5[512],r5:t,r5:t
 4.15894 ++	sthh.w r4[508],r4:b,r4:b
 4.15895 ++	sthh.w lr[4],lr:t,lr:t
 4.15896 ++	sthh.w r4[404],r9:t,r0:b
 4.15897 ++	sthh.w r8[348],r2:t,r10:b
 4.15898 ++	sthh.w sp[172],r9:b,r2:b
 4.15899 ++	.text
 4.15900 ++	.global cop
 4.15901 ++cop:
 4.15902 ++	cop cp0,cr0,cr0,cr0,0
 4.15903 ++	cop cp7,cr15,cr15,cr15,0x7f
 4.15904 ++	cop cp3,cr5,cr5,cr5,0x31
 4.15905 ++	cop cp2,cr4,cr4,cr4,0x30
 4.15906 ++	cop cp5,cr8,cr3,cr7,0x5a
 4.15907 ++	.text
 4.15908 ++	.global ldc_w1
 4.15909 ++ldc_w1:
 4.15910 ++	ldc.w cp0,cr0,r0[0]
 4.15911 ++	ldc.w cp7,cr15,pc[255<<2]
 4.15912 ++	ldc.w cp3,cr5,r5[128<<2]
 4.15913 ++	ldc.w cp2,cr4,r4[127<<2]
 4.15914 ++	ldc.w cp4,cr9,r13[36<<2]
 4.15915 ++	.text
 4.15916 ++	.global ldc_w2
 4.15917 ++ldc_w2:
 4.15918 ++	ldc.w cp0,cr0,--r0
 4.15919 ++	ldc.w cp7,cr15,--pc
 4.15920 ++	ldc.w cp3,cr5,--r5
 4.15921 ++	ldc.w cp2,cr4,--r4
 4.15922 ++	ldc.w cp4,cr9,--r13
 4.15923 ++	.text
 4.15924 ++	.global ldc_w3
 4.15925 ++ldc_w3:
 4.15926 ++	ldc.w cp0,cr0,r0[r0]
 4.15927 ++	ldc.w cp7,cr15,pc[pc<<3]
 4.15928 ++	ldc.w cp3,cr5,r5[r4<<2]
 4.15929 ++	ldc.w cp2,cr4,r4[r3<<1]
 4.15930 ++	ldc.w cp4,cr9,r13[r12<<0]
 4.15931 ++	.text
 4.15932 ++	.global ldc_d1
 4.15933 ++ldc_d1:
 4.15934 ++	ldc.d cp0,cr0,r0[0]
 4.15935 ++	ldc.d cp7,cr14,pc[255<<2]
 4.15936 ++	ldc.d cp3,cr6,r5[128<<2]
 4.15937 ++	ldc.d cp2,cr4,r4[127<<2]
 4.15938 ++	ldc.d cp4,cr8,r13[36<<2]
 4.15939 ++	.text
 4.15940 ++	.global ldc_d2
 4.15941 ++ldc_d2:
 4.15942 ++	ldc.d cp0,cr0,--r0
 4.15943 ++	ldc.d cp7,cr14,--pc
 4.15944 ++	ldc.d cp3,cr6,--r5
 4.15945 ++	ldc.d cp2,cr4,--r4
 4.15946 ++	ldc.d cp4,cr8,--r13
 4.15947 ++	.text
 4.15948 ++	.global ldc_d3
 4.15949 ++ldc_d3:
 4.15950 ++	ldc.d cp0,cr0,r0[r0]
 4.15951 ++	ldc.d cp7,cr14,pc[pc<<3]
 4.15952 ++	ldc.d cp3,cr6,r5[r4<<2]
 4.15953 ++	ldc.d cp2,cr4,r4[r3<<1]
 4.15954 ++	ldc.d cp4,cr8,r13[r12<<0]
 4.15955 ++	.text
 4.15956 ++	.global stc_w1
 4.15957 ++stc_w1:
 4.15958 ++	stc.w cp0,r0[0],cr0
 4.15959 ++	stc.w cp7,pc[255<<2],cr15
 4.15960 ++	stc.w cp3,r5[128<<2],cr5
 4.15961 ++	stc.w cp2,r4[127<<2],cr4
 4.15962 ++	stc.w cp4,r13[36<<2],cr9
 4.15963 ++	.text
 4.15964 ++	.global stc_w2
 4.15965 ++stc_w2:
 4.15966 ++	stc.w cp0,r0++,cr0
 4.15967 ++	stc.w cp7,pc++,cr15
 4.15968 ++	stc.w cp3,r5++,cr5
 4.15969 ++	stc.w cp2,r4++,cr4
 4.15970 ++	stc.w cp4,r13++,cr9
 4.15971 ++	.text
 4.15972 ++	.global stc_w3
 4.15973 ++stc_w3:
 4.15974 ++	stc.w cp0,r0[r0],cr0
 4.15975 ++	stc.w cp7,pc[pc<<3],cr15
 4.15976 ++	stc.w cp3,r5[r4<<2],cr5
 4.15977 ++	stc.w cp2,r4[r3<<1],cr4
 4.15978 ++	stc.w cp4,r13[r12<<0],cr9
 4.15979 ++	.text
 4.15980 ++	.global stc_d1
 4.15981 ++stc_d1:
 4.15982 ++	stc.d cp0,r0[0],cr0
 4.15983 ++	stc.d cp7,pc[255<<2],cr14
 4.15984 ++	stc.d cp3,r5[128<<2],cr6
 4.15985 ++	stc.d cp2,r4[127<<2],cr4
 4.15986 ++	stc.d cp4,r13[36<<2],cr8
 4.15987 ++	.text
 4.15988 ++	.global stc_d2
 4.15989 ++stc_d2:
 4.15990 ++	stc.d cp0,r0++,cr0
 4.15991 ++	stc.d cp7,pc++,cr14
 4.15992 ++	stc.d cp3,r5++,cr6
 4.15993 ++	stc.d cp2,r4++,cr4
 4.15994 ++	stc.d cp4,r13++,cr8
 4.15995 ++	.text
 4.15996 ++	.global stc_d3
 4.15997 ++stc_d3:
 4.15998 ++	stc.d cp0,r0[r0],cr0
 4.15999 ++	stc.d cp7,pc[pc<<3],cr14
 4.16000 ++	stc.d cp3,r5[r4<<2],cr6
 4.16001 ++	stc.d cp2,r4[r3<<1],cr4
 4.16002 ++	stc.d cp4,r13[r12<<0],cr8
 4.16003 ++	.text
 4.16004 ++	.global ldc0_w
 4.16005 ++ldc0_w:
 4.16006 ++	ldc0.w cr0,r0[0]
 4.16007 ++	ldc0.w cr15,pc[4095<<2]
 4.16008 ++	ldc0.w cr5,r5[2048<<2]
 4.16009 ++	ldc0.w cr4,r4[2047<<2]
 4.16010 ++	ldc0.w cr9,r13[147<<2]
 4.16011 ++	.text
 4.16012 ++	.global ldc0_d
 4.16013 ++ldc0_d:
 4.16014 ++	ldc0.d cr0,r0[0]
 4.16015 ++	ldc0.d cr14,pc[4095<<2]
 4.16016 ++	ldc0.d cr6,r5[2048<<2]
 4.16017 ++	ldc0.d cr4,r4[2047<<2]
 4.16018 ++	ldc0.d cr8,r13[147<<2]
 4.16019 ++	.text
 4.16020 ++	.global stc0_w
 4.16021 ++stc0_w:
 4.16022 ++	stc0.w r0[0],cr0
 4.16023 ++	stc0.w pc[4095<<2],cr15
 4.16024 ++	stc0.w r5[2048<<2],cr5
 4.16025 ++	stc0.w r4[2047<<2],cr4
 4.16026 ++	stc0.w r13[147<<2],cr9
 4.16027 ++	.text
 4.16028 ++	.global stc0_d
 4.16029 ++stc0_d:
 4.16030 ++	stc0.d r0[0],cr0
 4.16031 ++	stc0.d pc[4095<<2],cr14
 4.16032 ++	stc0.d r5[2048<<2],cr6
 4.16033 ++	stc0.d r4[2047<<2],cr4
 4.16034 ++	stc0.d r13[147<<2],cr8
 4.16035 ++	.text
 4.16036 ++	.global memc
 4.16037 ++memc:
 4.16038 ++	memc 0, 0
 4.16039 ++	memc -4, 31
 4.16040 ++	memc -65536, 16
 4.16041 ++	memc 65532, 15
 4.16042 ++	.text
 4.16043 ++	.global mems
 4.16044 ++mems:
 4.16045 ++	mems 0, 0
 4.16046 ++	mems -4, 31
 4.16047 ++	mems -65536, 16
 4.16048 ++	mems 65532, 15
 4.16049 ++	.text
 4.16050 ++	.global memt
 4.16051 ++memt:
 4.16052 ++	memt 0, 0
 4.16053 ++	memt -4, 31
 4.16054 ++	memt -65536, 16
 4.16055 ++	memt 65532, 15
 4.16056 ++
 4.16057 ++	.text
 4.16058 ++	.global stcond
 4.16059 ++stcond:
 4.16060 ++	stcond r0[0], r0
 4.16061 ++	stcond pc[-1], pc
 4.16062 ++	stcond r8[-32768], r7
 4.16063 ++	stcond r7[32767], r8
 4.16064 ++	stcond r5[0x1234], r10
 4.16065 ++
 4.16066 ++ldcm_w:
 4.16067 ++	ldcm.w cp0,pc,cr0-cr7
 4.16068 ++	ldcm.w cp7,r0,cr0
 4.16069 ++	ldcm.w cp4,r4++,cr0-cr6
 4.16070 ++	ldcm.w cp3,r7,cr7
 4.16071 ++	ldcm.w cp1,r12++,cr1,cr4-cr6
 4.16072 ++	ldcm.w cp0,pc,cr8-cr15
 4.16073 ++	ldcm.w cp7,r0,cr8
 4.16074 ++	ldcm.w cp4,r4++,cr8-cr14
 4.16075 ++	ldcm.w cp3,r7,cr15
 4.16076 ++	ldcm.w cp1,r12++,cr9,cr12-cr14
 4.16077 ++
 4.16078 ++ldcm_d:
 4.16079 ++	ldcm.d cp0,pc,cr0-cr15
 4.16080 ++	ldcm.d cp7,r0,cr0,cr1
 4.16081 ++	ldcm.d cp4,r4++,cr0-cr13
 4.16082 ++	ldcm.d cp3,r7,cr14-cr15
 4.16083 ++	ldcm.d cp2,r12++,cr0-cr3,cr8-cr9,cr14-cr15
 4.16084 ++
 4.16085 ++stcm_w:
 4.16086 ++	stcm.w cp0,pc,cr0-cr7
 4.16087 ++	stcm.w cp7,r0,cr0
 4.16088 ++	stcm.w cp4,--r4,cr0-cr6
 4.16089 ++	stcm.w cp3,r7,cr7
 4.16090 ++	stcm.w cp1,--r12,cr1,cr4-cr6
 4.16091 ++	stcm.w cp0,pc,cr8-cr15
 4.16092 ++	stcm.w cp7,r0,cr8
 4.16093 ++	stcm.w cp4,--r4,cr8-cr14
 4.16094 ++	stcm.w cp3,r7,cr15
 4.16095 ++	stcm.w cp1,--r12,cr9,cr12-cr14
 4.16096 ++
 4.16097 ++stcm_d:
 4.16098 ++	stcm.d cp0,pc,cr0-cr15
 4.16099 ++	stcm.d cp7,r0,cr0,cr1
 4.16100 ++	stcm.d cp4,--r4,cr0-cr13
 4.16101 ++	stcm.d cp3,r7,cr14-cr15
 4.16102 ++	stcm.d cp2,--r12,cr0-cr3,cr8-cr9,cr14-cr15
 4.16103 ++
 4.16104 ++mvcr_w:
 4.16105 ++	mvcr.w cp7,pc,cr15
 4.16106 ++	mvcr.w cp0,r0,cr0
 4.16107 ++	mvcr.w cp0,pc,cr15
 4.16108 ++	mvcr.w cp7,r0,cr15
 4.16109 ++	mvcr.w cp7,pc,cr0
 4.16110 ++	mvcr.w cp4,r7,cr8
 4.16111 ++	mvcr.w cp3,r8,cr7
 4.16112 ++
 4.16113 ++mvcr_d:
 4.16114 ++	mvcr.d cp7,lr,cr14
 4.16115 ++	mvcr.d cp0,r0,cr0
 4.16116 ++	mvcr.d cp0,lr,cr14
 4.16117 ++	mvcr.d cp7,r0,cr14
 4.16118 ++	mvcr.d cp7,lr,cr0
 4.16119 ++	mvcr.d cp4,r6,cr8
 4.16120 ++	mvcr.d cp3,r8,cr6
 4.16121 ++
 4.16122 ++mvrc_w:
 4.16123 ++	mvrc.w cp7,cr15,pc
 4.16124 ++	mvrc.w cp0,cr0,r0
 4.16125 ++	mvrc.w cp0,cr15,pc
 4.16126 ++	mvrc.w cp7,cr15,r0
 4.16127 ++	mvrc.w cp7,cr0,pc
 4.16128 ++	mvrc.w cp4,cr8,r7
 4.16129 ++	mvrc.w cp3,cr7,r8
 4.16130 ++
 4.16131 ++mvrc_d:
 4.16132 ++	mvrc.d cp7,cr14,lr
 4.16133 ++	mvrc.d cp0,cr0,r0
 4.16134 ++	mvrc.d cp0,cr14,lr
 4.16135 ++	mvrc.d cp7,cr14,r0
 4.16136 ++	mvrc.d cp7,cr0,lr
 4.16137 ++	mvrc.d cp4,cr8,r6
 4.16138 ++	mvrc.d cp3,cr6,r8
 4.16139 ++
 4.16140 ++bfexts:
 4.16141 ++	bfexts pc,pc,31,31
 4.16142 ++	bfexts r0,r0,0,0
 4.16143 ++	bfexts r0,pc,31,31
 4.16144 ++	bfexts pc,r0,31,31
 4.16145 ++	bfexts pc,pc,0,31
 4.16146 ++	bfexts pc,pc,31,0
 4.16147 ++	bfexts r7,r8,15,16
 4.16148 ++	bfexts r8,r7,16,15
 4.16149 ++
 4.16150 ++bfextu:
 4.16151 ++	bfextu pc,pc,31,31
 4.16152 ++	bfextu r0,r0,0,0
 4.16153 ++	bfextu r0,pc,31,31
 4.16154 ++	bfextu pc,r0,31,31
 4.16155 ++	bfextu pc,pc,0,31
 4.16156 ++	bfextu pc,pc,31,0
 4.16157 ++	bfextu r7,r8,15,16
 4.16158 ++	bfextu r8,r7,16,15
 4.16159 ++
 4.16160 ++bfins:
 4.16161 ++	bfins pc,pc,31,31
 4.16162 ++	bfins r0,r0,0,0
 4.16163 ++	bfins r0,pc,31,31
 4.16164 ++	bfins pc,r0,31,31
 4.16165 ++	bfins pc,pc,0,31
 4.16166 ++	bfins pc,pc,31,0
 4.16167 ++	bfins r7,r8,15,16
 4.16168 ++	bfins r8,r7,16,15
 4.16169 ++
 4.16170 ++rsubc:
 4.16171 ++	rsubeq pc,0
 4.16172 ++	rsubal r12,-1
 4.16173 ++	rsubls r5,-128
 4.16174 ++	rsubpl r4,127
 4.16175 ++	rsubne lr,1
 4.16176 ++	rsubls r12,118
 4.16177 ++	rsubvc lr,-12
 4.16178 ++	rsubmi r4,-13
 4.16179 ++
 4.16180 ++addc:
 4.16181 ++	addeq pc,pc,pc
 4.16182 ++	addal r12,r12,r12
 4.16183 ++	addls r5,r5,r5
 4.16184 ++	addpl r4,r4,r4
 4.16185 ++	addne lr,lr,lr
 4.16186 ++	addls r10,r2,r1
 4.16187 ++	addvc r12,r8,r11
 4.16188 ++	addmi r10,r7,r0   
 4.16189 ++
 4.16190 ++subc2:
 4.16191 ++	subeq pc,pc,pc
 4.16192 ++	subal r12,r12,r12
 4.16193 ++	subls r5,r5,r5
 4.16194 ++	subpl r4,r4,r4
 4.16195 ++	subne lr,lr,lr
 4.16196 ++	subls r10,r2,r1
 4.16197 ++	subvc r12,r8,r11
 4.16198 ++	submi r10,r7,r0   
 4.16199 ++
 4.16200 ++andc:
 4.16201 ++	andeq pc,pc,pc
 4.16202 ++	andal r12,r12,r12
 4.16203 ++	andls r5,r5,r5
 4.16204 ++	andpl r4,r4,r4
 4.16205 ++	andne lr,lr,lr
 4.16206 ++	andls r10,r2,r1
 4.16207 ++	andvc r12,r8,r11
 4.16208 ++	andmi r10,r7,r0   
 4.16209 ++
 4.16210 ++orc:
 4.16211 ++	oreq pc,pc,pc
 4.16212 ++	oral r12,r12,r12
 4.16213 ++	orls r5,r5,r5
 4.16214 ++	orpl r4,r4,r4
 4.16215 ++	orne lr,lr,lr
 4.16216 ++	orls r10,r2,r1
 4.16217 ++	orvc r12,r8,r11
 4.16218 ++	ormi r10,r7,r0   
 4.16219 ++
 4.16220 ++eorc:
 4.16221 ++	eoreq pc,pc,pc
 4.16222 ++	eoral r12,r12,r12
 4.16223 ++	eorls r5,r5,r5
 4.16224 ++	eorpl r4,r4,r4
 4.16225 ++	eorne lr,lr,lr
 4.16226 ++	eorls r10,r2,r1
 4.16227 ++	eorvc r12,r8,r11
 4.16228 ++	eormi r10,r7,r0   
 4.16229 ++
 4.16230 ++ldcond:
 4.16231 ++	ld.weq  pc,pc[2044]
 4.16232 ++	ld.shal r12,r12[1022]
 4.16233 ++	ld.uhls r5,r5[0]
 4.16234 ++	ld.ubpl r4,r4[511]
 4.16235 ++	ld.sbne lr,lr[0]
 4.16236 ++	ld.wls  r10,r2[0]
 4.16237 ++	ld.shvc r12,r8[0x3fe]
 4.16238 ++	ld.ubmi r10,r7[1]
 4.16239 ++  
 4.16240 ++stcond2:
 4.16241 ++	st.weq pc[2044],pc
 4.16242 ++	st.hal r12[1022],r12
 4.16243 ++	st.hls r5[0],r5
 4.16244 ++	st.bpl r4[511],r4
 4.16245 ++	st.bne lr[0],lr
 4.16246 ++	st.wls r2[0],r10
 4.16247 ++	st.hvc r8[0x3fe],r12
 4.16248 ++	st.bmi r7[1],r10
 4.16249 ++	
 4.16250 ++movh:	
 4.16251 ++	movh	pc, 65535
 4.16252 ++	movh	r0, 0
 4.16253 ++	movh	r5, 1
 4.16254 ++	movh	r12, 32767
 4.16255 ++	
 4.16256 ++		
 4.16257 +--- /dev/null
 4.16258 ++++ b/gas/testsuite/gas/avr32/avr32.exp
 4.16259 +@@ -0,0 +1,23 @@
 4.16260 ++# AVR32 assembler testsuite. -*- Tcl -*-
 4.16261 ++
 4.16262 ++if [istarget avr32-*-*] {
 4.16263 ++    run_dump_test "hwrd-lwrd"
 4.16264 ++    run_dump_test "pcrel"
 4.16265 ++    run_dump_test "aliases"
 4.16266 ++    run_dump_test "dwarf2"
 4.16267 ++    run_dump_test "pic_reloc"
 4.16268 ++    run_dump_test "fpinsn"
 4.16269 ++    run_dump_test "pico"
 4.16270 ++    run_dump_test "lda_pic"
 4.16271 ++    run_dump_test "lda_pic_linkrelax"
 4.16272 ++    run_dump_test "lda_nopic"
 4.16273 ++    run_dump_test "lda_nopic_linkrelax"
 4.16274 ++    run_dump_test "call_pic"
 4.16275 ++    run_dump_test "call_pic_linkrelax"
 4.16276 ++    run_dump_test "call_nopic"
 4.16277 ++    run_dump_test "call_nopic_linkrelax"
 4.16278 ++    run_dump_test "jmptable"
 4.16279 ++    run_dump_test "jmptable_linkrelax"
 4.16280 ++    run_dump_test "symdiff"
 4.16281 ++    run_dump_test "symdiff_linkrelax"
 4.16282 ++}
 4.16283 +--- /dev/null
 4.16284 ++++ b/gas/testsuite/gas/avr32/call_nopic.d
 4.16285 +@@ -0,0 +1,36 @@
 4.16286 ++#source: call.s
 4.16287 ++#as:
 4.16288 ++#objdump: -dr
 4.16289 ++#name: call_nopic
 4.16290 ++
 4.16291 ++.*: +file format .*
 4.16292 ++
 4.16293 ++Disassembly of section \.text:
 4.16294 ++
 4.16295 ++00000000 <call_test>:
 4.16296 ++       0:	d7 03       	nop
 4.16297 ++
 4.16298 ++00000002 <toofar_negative>:
 4.16299 ++	\.\.\.
 4.16300 ++  1ffffe:	00 00       	add r0,r0
 4.16301 ++  200000:	f0 a0 00 00 	rcall 0 <call_test>
 4.16302 ++  200004:	f0 1f 00 0c 	mcall 200034 <toofar_negative\+0x200032>
 4.16303 ++  200008:	f0 1f 00 0c 	mcall 200038 <toofar_negative\+0x200036>
 4.16304 ++  20000c:	f0 1f 00 0c 	mcall 20003c <toofar_negative\+0x20003a>
 4.16305 ++  200010:	f0 1f 00 0c 	mcall 200040 <toofar_negative\+0x20003e>
 4.16306 ++	\.\.\.
 4.16307 ++  200030:	ee b0 ff ff 	rcall 40002e <far_positive>
 4.16308 ++	\.\.\.
 4.16309 ++			200034: R_AVR32_32_CPENT	\.text\+0x2
 4.16310 ++			200038: R_AVR32_32_CPENT	\.text\.init
 4.16311 ++			20003c: R_AVR32_32_CPENT	undefined
 4.16312 ++			200040: R_AVR32_32_CPENT	\.text\+0x40002c
 4.16313 ++
 4.16314 ++0040002c <toofar_positive>:
 4.16315 ++  40002c:	d7 03       	nop
 4.16316 ++0040002e <far_positive>:
 4.16317 ++  40002e:	d7 03       	nop
 4.16318 ++Disassembly of section \.text\.init:
 4.16319 ++
 4.16320 ++00000000 <different_section>:
 4.16321 ++   0:	e2 c0 00 00 	sub r0,r1,0
 4.16322 +--- /dev/null
 4.16323 ++++ b/gas/testsuite/gas/avr32/call_nopic_linkrelax.d
 4.16324 +@@ -0,0 +1,43 @@
 4.16325 ++#source: call.s
 4.16326 ++#as: --linkrelax
 4.16327 ++#objdump: -dr
 4.16328 ++#name: call_nopic_linkrelax
 4.16329 ++
 4.16330 ++.*: +file format .*
 4.16331 ++
 4.16332 ++Disassembly of section \.text:
 4.16333 ++
 4.16334 ++00000000 <call_test>:
 4.16335 ++       0:	d7 03       	nop
 4.16336 ++
 4.16337 ++00000002 <toofar_negative>:
 4.16338 ++	\.\.\.
 4.16339 ++  1ffffe:	00 00       	add r0,r0
 4.16340 ++  200000:	e0 a0 00 00 	rcall 200000 <toofar_negative\+0x1ffffe>
 4.16341 ++			200000: R_AVR32_22H_PCREL	\.text
 4.16342 ++  200004:	f0 1f 00 00 	mcall 200004 <toofar_negative\+0x200002>
 4.16343 ++			200004: R_AVR32_CPCALL	\.text\+0x200034
 4.16344 ++  200008:	f0 1f 00 00 	mcall 200008 <toofar_negative\+0x200006>
 4.16345 ++			200008: R_AVR32_CPCALL	\.text\+0x200038
 4.16346 ++  20000c:	f0 1f 00 00 	mcall 20000c <toofar_negative\+0x20000a>
 4.16347 ++			20000c: R_AVR32_CPCALL	\.text\+0x20003c
 4.16348 ++  200010:	f0 1f 00 00 	mcall 200010 <toofar_negative\+0x20000e>
 4.16349 ++			200010: R_AVR32_CPCALL	\.text\+0x200040
 4.16350 ++	\.\.\.
 4.16351 ++  200030:	e0 a0 00 00 	rcall 200030 <toofar_negative\+0x20002e>
 4.16352 ++			200030: R_AVR32_22H_PCREL	\.text\+0x40002e
 4.16353 ++	\.\.\.
 4.16354 ++			200034: R_AVR32_ALIGN	\*ABS\*\+0x2
 4.16355 ++			200034: R_AVR32_32_CPENT	\.text\+0x2
 4.16356 ++			200038: R_AVR32_32_CPENT	\.text\.init
 4.16357 ++			20003c: R_AVR32_32_CPENT	undefined
 4.16358 ++			200040: R_AVR32_32_CPENT	\.text\+0x40002c
 4.16359 ++
 4.16360 ++0040002c <toofar_positive>:
 4.16361 ++  40002c:	d7 03       	nop
 4.16362 ++0040002e <far_positive>:
 4.16363 ++  40002e:	d7 03       	nop
 4.16364 ++Disassembly of section \.text\.init:
 4.16365 ++
 4.16366 ++00000000 <different_section>:
 4.16367 ++   0:	e2 c0 00 00 	sub r0,r1,0
 4.16368 +--- /dev/null
 4.16369 ++++ b/gas/testsuite/gas/avr32/call_pic.d
 4.16370 +@@ -0,0 +1,36 @@
 4.16371 ++#source: call.s
 4.16372 ++#as: --pic
 4.16373 ++#objdump: -dr
 4.16374 ++#name: call_pic
 4.16375 ++
 4.16376 ++.*: +file format .*
 4.16377 ++
 4.16378 ++Disassembly of section \.text:
 4.16379 ++
 4.16380 ++00000000 <call_test>:
 4.16381 ++       0:	d7 03       	nop
 4.16382 ++
 4.16383 ++00000002 <toofar_negative>:
 4.16384 ++	\.\.\.
 4.16385 ++  1ffffe:	00 00       	add r0,r0
 4.16386 ++  200000:	f0 a0 00 00 	rcall 0 <call_test>
 4.16387 ++  200004:	f0 16 00 00 	mcall r6\[0\]
 4.16388 ++			200004: R_AVR32_GOT18SW	toofar_negative
 4.16389 ++  200008:	f0 16 00 00 	mcall r6\[0\]
 4.16390 ++			200008: R_AVR32_GOT18SW	different_section
 4.16391 ++  20000c:	f0 16 00 00 	mcall r6\[0\]
 4.16392 ++			20000c: R_AVR32_GOT18SW	undefined
 4.16393 ++  200010:	f0 16 00 00 	mcall r6\[0\]
 4.16394 ++			200010: R_AVR32_GOT18SW	toofar_positive
 4.16395 ++	\.\.\.
 4.16396 ++  200030:	ee b0 ff ff 	rcall 40002e <far_positive>
 4.16397 ++	\.\.\.
 4.16398 ++
 4.16399 ++0040002c <toofar_positive>:
 4.16400 ++  40002c:	d7 03       	nop
 4.16401 ++0040002e <far_positive>:
 4.16402 ++  40002e:	d7 03       	nop
 4.16403 ++Disassembly of section \.text\.init:
 4.16404 ++
 4.16405 ++00000000 <different_section>:
 4.16406 ++   0:	e2 c0 00 00 	sub r0,r1,0
 4.16407 +--- /dev/null
 4.16408 ++++ b/gas/testsuite/gas/avr32/call_pic_linkrelax.d
 4.16409 +@@ -0,0 +1,47 @@
 4.16410 ++#source: call.s
 4.16411 ++#as: --pic --linkrelax
 4.16412 ++#objdump: -dr
 4.16413 ++#name: call_pic_linkrelax
 4.16414 ++
 4.16415 ++.*: +file format .*
 4.16416 ++
 4.16417 ++Disassembly of section \.text:
 4.16418 ++
 4.16419 ++00000000 <call_test>:
 4.16420 ++       0:	d7 03       	nop
 4.16421 ++
 4.16422 ++00000002 <toofar_negative>:
 4.16423 ++	\.\.\.
 4.16424 ++  1ffffe:	00 00       	add r0,r0
 4.16425 ++  200000:	e0 a0 00 00 	rcall 200000 <toofar_negative\+0x1ffffe>
 4.16426 ++			200000: R_AVR32_22H_PCREL	\.text
 4.16427 ++  200004:	e0 6e 00 00 	mov lr,0
 4.16428 ++			200004: R_AVR32_GOTCALL	toofar_negative
 4.16429 ++  200008:	ec 0e 03 2e 	ld\.w lr,r6\[lr<<0x2\]
 4.16430 ++  20000c:	5d 1e       	icall lr
 4.16431 ++  20000e:	e0 6e 00 00 	mov lr,0
 4.16432 ++			20000e: R_AVR32_GOTCALL	different_section
 4.16433 ++  200012:	ec 0e 03 2e 	ld\.w lr,r6\[lr<<0x2\]
 4.16434 ++  200016:	5d 1e       	icall lr
 4.16435 ++  200018:	e0 6e 00 00 	mov lr,0
 4.16436 ++			200018: R_AVR32_GOTCALL	undefined
 4.16437 ++  20001c:	ec 0e 03 2e 	ld\.w lr,r6\[lr<<0x2\]
 4.16438 ++  200020:	5d 1e       	icall lr
 4.16439 ++  200022:	e0 6e 00 00 	mov lr,0
 4.16440 ++			200022: R_AVR32_GOTCALL	toofar_positive
 4.16441 ++  200026:	ec 0e 03 2e 	ld\.w lr,r6\[lr<<0x2\]
 4.16442 ++  20002a:	5d 1e       	icall lr
 4.16443 ++  20002c:	00 00       	add r0,r0
 4.16444 ++  20002e:	00 00       	add r0,r0
 4.16445 ++  200030:	e0 a0 00 00 	rcall 200030 <toofar_negative\+0x20002e>
 4.16446 ++			200030: R_AVR32_22H_PCREL	\.text\+0x40002e
 4.16447 ++	\.\.\.
 4.16448 ++
 4.16449 ++0040002c <toofar_positive>:
 4.16450 ++  40002c:	d7 03       	nop
 4.16451 ++0040002e <far_positive>:
 4.16452 ++  40002e:	d7 03       	nop
 4.16453 ++Disassembly of section \.text\.init:
 4.16454 ++
 4.16455 ++00000000 <different_section>:
 4.16456 ++   0:	e2 c0 00 00 	sub r0,r1,0
 4.16457 +--- /dev/null
 4.16458 ++++ b/gas/testsuite/gas/avr32/call.s
 4.16459 +@@ -0,0 +1,30 @@
 4.16460 ++
 4.16461 ++	.text
 4.16462 ++	.global call_test
 4.16463 ++call_test:
 4.16464 ++far_negative:
 4.16465 ++	nop
 4.16466 ++toofar_negative:
 4.16467 ++
 4.16468 ++	.org	0x200000
 4.16469 ++
 4.16470 ++	call	far_negative
 4.16471 ++	call	toofar_negative
 4.16472 ++	call	different_section
 4.16473 ++	call	undefined
 4.16474 ++	call	toofar_positive
 4.16475 ++	.org	0x200030
 4.16476 ++	call	far_positive
 4.16477 ++
 4.16478 ++	.cpool
 4.16479 ++
 4.16480 ++	.org	0x40002c
 4.16481 ++
 4.16482 ++toofar_positive:
 4.16483 ++	nop
 4.16484 ++far_positive:
 4.16485 ++	nop
 4.16486 ++
 4.16487 ++	.section .text.init,"ax",@progbits
 4.16488 ++different_section:
 4.16489 ++	sub	r0, r1, 0
 4.16490 +--- /dev/null
 4.16491 ++++ b/gas/testsuite/gas/avr32/dwarf2.d
 4.16492 +@@ -0,0 +1,42 @@
 4.16493 ++#readelf: -wl
 4.16494 ++#name: dwarf2
 4.16495 ++#source: dwarf2.s
 4.16496 ++
 4.16497 ++Dump of debug contents of section \.debug_line:
 4.16498 ++
 4.16499 ++  Length:                      53
 4.16500 ++  DWARF Version:               2
 4.16501 ++  Prologue Length:             26
 4.16502 ++  Minimum Instruction Length:  1
 4.16503 ++  Initial value of 'is_stmt':  1
 4.16504 ++  Line Base:                   -5
 4.16505 ++  Line Range:                  14
 4.16506 ++  Opcode Base:                 10
 4.16507 ++  \(Pointer size:               4\)
 4.16508 ++
 4.16509 ++ Opcodes:
 4.16510 ++  Opcode 1 has 0 args
 4.16511 ++  Opcode 2 has 1 args
 4.16512 ++  Opcode 3 has 1 args
 4.16513 ++  Opcode 4 has 1 args
 4.16514 ++  Opcode 5 has 1 args
 4.16515 ++  Opcode 6 has 0 args
 4.16516 ++  Opcode 7 has 0 args
 4.16517 ++  Opcode 8 has 0 args
 4.16518 ++  Opcode 9 has 1 args
 4.16519 ++
 4.16520 ++ The Directory Table is empty\.
 4.16521 ++
 4.16522 ++ The File Name Table:
 4.16523 ++  Entry	Dir	Time	Size	Name
 4.16524 ++  1	0	0	0	main\.c
 4.16525 ++
 4.16526 ++ Line Number Statements:
 4.16527 ++  Extended opcode 2: set Address to 0x0
 4.16528 ++  Advance Line by 87 to 88
 4.16529 ++  Copy
 4.16530 ++  Advance Line by 23 to 111
 4.16531 ++  Special opcode .*: advance Address by 4 to 0x4 and Line by 0 to 111
 4.16532 ++  Special opcode .*: advance Address by 10 to 0xe and Line by 1 to 112
 4.16533 ++  Advance PC by 530 to 220
 4.16534 ++  Extended opcode 1: End of Sequence
 4.16535 +--- /dev/null
 4.16536 ++++ b/gas/testsuite/gas/avr32/dwarf2.s
 4.16537 +@@ -0,0 +1,67 @@
 4.16538 ++# Source file used to test DWARF2 information for AVR32.
 4.16539 ++
 4.16540 ++	.file	"main.c"
 4.16541 ++
 4.16542 ++	.section .debug_abbrev,"",@progbits
 4.16543 ++.Ldebug_abbrev0:
 4.16544 ++	.section .debug_info,"",@progbits
 4.16545 ++.Ldebug_info0:
 4.16546 ++	.section .debug_line,"",@progbits
 4.16547 ++.Ldebug_line0:
 4.16548 ++
 4.16549 ++	.text
 4.16550 ++	.align	1
 4.16551 ++	.globl	main
 4.16552 ++	.type	main, @function
 4.16553 ++.Ltext0:
 4.16554 ++main:
 4.16555 ++	.file 1 "main.c"
 4.16556 ++	.loc 1 88 0
 4.16557 ++	pushm	r0-r7,lr
 4.16558 ++	sub	sp, 4
 4.16559 ++	.loc 1 111 0
 4.16560 ++	lddpc	r12, .LC1
 4.16561 ++	lddpc	r7, .LC1
 4.16562 ++	icall	r7
 4.16563 ++	.loc 1 112 0
 4.16564 ++	lddpc	r6, .LC4
 4.16565 ++
 4.16566 ++	.align	2
 4.16567 ++.LC4:	.int	0
 4.16568 ++
 4.16569 ++	.fill	256, 2, 0
 4.16570 ++
 4.16571 ++	.align	2
 4.16572 ++.LC1:
 4.16573 ++	.int	0
 4.16574 ++.LC2:
 4.16575 ++	.int	0
 4.16576 ++.LC3:
 4.16577 ++	.int	0
 4.16578 ++	.size	main, . - main
 4.16579 ++
 4.16580 ++.Letext0:
 4.16581 ++
 4.16582 ++	.section .debug_info
 4.16583 ++	.int	.Ledebug_info0 - .Ldebug_info0	// size
 4.16584 ++	.short	2				// version
 4.16585 ++	.int	.Ldebug_abbrev0			// abbrev offset
 4.16586 ++	.byte	4				// bytes per addr
 4.16587 ++
 4.16588 ++	.uleb128 1				// abbrev 1
 4.16589 ++	.int	.Ldebug_line0			// DW_AT_stmt_list
 4.16590 ++	.int	.Letext0			// DW_AT_high_pc
 4.16591 ++	.int	.Ltext0				// DW_AT_low_pc
 4.16592 ++
 4.16593 ++.Ledebug_info0:
 4.16594 ++
 4.16595 ++	.section .debug_abbrev
 4.16596 ++	.uleb128 0x01
 4.16597 ++	.uleb128 0x11		// DW_TAG_compile_unit
 4.16598 ++	.byte	0		// DW_CHILDREN_no
 4.16599 ++	.uleb128 0x10, 0x6	// DW_AT_stmt_list
 4.16600 ++	.uleb128 0x12, 0x1	// DW_AT_high_pc
 4.16601 ++	.uleb128 0x11, 0x1	// DW_AT_low_pc
 4.16602 ++	.uleb128 0, 0
 4.16603 ++
 4.16604 ++	.byte	0
 4.16605 +--- /dev/null
 4.16606 ++++ b/gas/testsuite/gas/avr32/fpinsn.d
 4.16607 +@@ -0,0 +1,271 @@
 4.16608 ++#as:
 4.16609 ++#objdump: -dr
 4.16610 ++#name: fpinsn
 4.16611 ++
 4.16612 ++.*: +file format .*
 4.16613 ++
 4.16614 ++Disassembly of section \.text:
 4.16615 ++
 4.16616 ++[0-9a-f]* <fadd_s>:
 4.16617 ++ *[0-9a-f]*:	e1 a2 0f ff 	cop cp0,cr15,cr15,cr15,0x4
 4.16618 ++ *[0-9a-f]*:	e1 a2 00 00 	cop cp0,cr0,cr0,cr0,0x4
 4.16619 ++ *[0-9a-f]*:	e1 a2 00 ff 	cop cp0,cr0,cr15,cr15,0x4
 4.16620 ++ *[0-9a-f]*:	e1 a2 0f 0f 	cop cp0,cr15,cr0,cr15,0x4
 4.16621 ++ *[0-9a-f]*:	e1 a2 0f f0 	cop cp0,cr15,cr15,cr0,0x4
 4.16622 ++ *[0-9a-f]*:	e1 a2 07 88 	cop cp0,cr7,cr8,cr8,0x4
 4.16623 ++ *[0-9a-f]*:	e1 a2 08 78 	cop cp0,cr8,cr7,cr8,0x4
 4.16624 ++ *[0-9a-f]*:	e1 a2 08 87 	cop cp0,cr8,cr8,cr7,0x4
 4.16625 ++
 4.16626 ++[0-9a-f]* <fsub_s>:
 4.16627 ++ *[0-9a-f]*:	e1 a2 1f ff 	cop cp0,cr15,cr15,cr15,0x5
 4.16628 ++ *[0-9a-f]*:	e1 a2 10 00 	cop cp0,cr0,cr0,cr0,0x5
 4.16629 ++ *[0-9a-f]*:	e1 a2 10 ff 	cop cp0,cr0,cr15,cr15,0x5
 4.16630 ++ *[0-9a-f]*:	e1 a2 1f 0f 	cop cp0,cr15,cr0,cr15,0x5
 4.16631 ++ *[0-9a-f]*:	e1 a2 1f f0 	cop cp0,cr15,cr15,cr0,0x5
 4.16632 ++ *[0-9a-f]*:	e1 a2 17 88 	cop cp0,cr7,cr8,cr8,0x5
 4.16633 ++ *[0-9a-f]*:	e1 a2 18 78 	cop cp0,cr8,cr7,cr8,0x5
 4.16634 ++ *[0-9a-f]*:	e1 a2 18 87 	cop cp0,cr8,cr8,cr7,0x5
 4.16635 ++
 4.16636 ++[0-9a-f]* <fmac_s>:
 4.16637 ++ *[0-9a-f]*:	e1 a0 0f ff 	cop cp0,cr15,cr15,cr15,0x0
 4.16638 ++ *[0-9a-f]*:	e1 a0 00 00 	cop cp0,cr0,cr0,cr0,0x0
 4.16639 ++ *[0-9a-f]*:	e1 a0 00 ff 	cop cp0,cr0,cr15,cr15,0x0
 4.16640 ++ *[0-9a-f]*:	e1 a0 0f 0f 	cop cp0,cr15,cr0,cr15,0x0
 4.16641 ++ *[0-9a-f]*:	e1 a0 0f f0 	cop cp0,cr15,cr15,cr0,0x0
 4.16642 ++ *[0-9a-f]*:	e1 a0 07 88 	cop cp0,cr7,cr8,cr8,0x0
 4.16643 ++ *[0-9a-f]*:	e1 a0 08 78 	cop cp0,cr8,cr7,cr8,0x0
 4.16644 ++ *[0-9a-f]*:	e1 a0 08 87 	cop cp0,cr8,cr8,cr7,0x0
 4.16645 ++
 4.16646 ++[0-9a-f]* <fnmac_s>:
 4.16647 ++ *[0-9a-f]*:	e1 a0 1f ff 	cop cp0,cr15,cr15,cr15,0x1
 4.16648 ++ *[0-9a-f]*:	e1 a0 10 00 	cop cp0,cr0,cr0,cr0,0x1
 4.16649 ++ *[0-9a-f]*:	e1 a0 10 ff 	cop cp0,cr0,cr15,cr15,0x1
 4.16650 ++ *[0-9a-f]*:	e1 a0 1f 0f 	cop cp0,cr15,cr0,cr15,0x1
 4.16651 ++ *[0-9a-f]*:	e1 a0 1f f0 	cop cp0,cr15,cr15,cr0,0x1
 4.16652 ++ *[0-9a-f]*:	e1 a0 17 88 	cop cp0,cr7,cr8,cr8,0x1
 4.16653 ++ *[0-9a-f]*:	e1 a0 18 78 	cop cp0,cr8,cr7,cr8,0x1
 4.16654 ++ *[0-9a-f]*:	e1 a0 18 87 	cop cp0,cr8,cr8,cr7,0x1
 4.16655 ++
 4.16656 ++[0-9a-f]* <fmsc_s>:
 4.16657 ++ *[0-9a-f]*:	e1 a1 0f ff 	cop cp0,cr15,cr15,cr15,0x2
 4.16658 ++ *[0-9a-f]*:	e1 a1 00 00 	cop cp0,cr0,cr0,cr0,0x2
 4.16659 ++ *[0-9a-f]*:	e1 a1 00 ff 	cop cp0,cr0,cr15,cr15,0x2
 4.16660 ++ *[0-9a-f]*:	e1 a1 0f 0f 	cop cp0,cr15,cr0,cr15,0x2
 4.16661 ++ *[0-9a-f]*:	e1 a1 0f f0 	cop cp0,cr15,cr15,cr0,0x2
 4.16662 ++ *[0-9a-f]*:	e1 a1 07 88 	cop cp0,cr7,cr8,cr8,0x2
 4.16663 ++ *[0-9a-f]*:	e1 a1 08 78 	cop cp0,cr8,cr7,cr8,0x2
 4.16664 ++ *[0-9a-f]*:	e1 a1 08 87 	cop cp0,cr8,cr8,cr7,0x2
 4.16665 ++
 4.16666 ++[0-9a-f]* <fnmsc_s>:
 4.16667 ++ *[0-9a-f]*:	e1 a1 1f ff 	cop cp0,cr15,cr15,cr15,0x3
 4.16668 ++ *[0-9a-f]*:	e1 a1 10 00 	cop cp0,cr0,cr0,cr0,0x3
 4.16669 ++ *[0-9a-f]*:	e1 a1 10 ff 	cop cp0,cr0,cr15,cr15,0x3
 4.16670 ++ *[0-9a-f]*:	e1 a1 1f 0f 	cop cp0,cr15,cr0,cr15,0x3
 4.16671 ++ *[0-9a-f]*:	e1 a1 1f f0 	cop cp0,cr15,cr15,cr0,0x3
 4.16672 ++ *[0-9a-f]*:	e1 a1 17 88 	cop cp0,cr7,cr8,cr8,0x3
 4.16673 ++ *[0-9a-f]*:	e1 a1 18 78 	cop cp0,cr8,cr7,cr8,0x3
 4.16674 ++ *[0-9a-f]*:	e1 a1 18 87 	cop cp0,cr8,cr8,cr7,0x3
 4.16675 ++
 4.16676 ++[0-9a-f]* <fmul_s>:
 4.16677 ++ *[0-9a-f]*:	e1 a3 0f ff 	cop cp0,cr15,cr15,cr15,0x6
 4.16678 ++ *[0-9a-f]*:	e1 a3 00 00 	cop cp0,cr0,cr0,cr0,0x6
 4.16679 ++ *[0-9a-f]*:	e1 a3 00 ff 	cop cp0,cr0,cr15,cr15,0x6
 4.16680 ++ *[0-9a-f]*:	e1 a3 0f 0f 	cop cp0,cr15,cr0,cr15,0x6
 4.16681 ++ *[0-9a-f]*:	e1 a3 0f f0 	cop cp0,cr15,cr15,cr0,0x6
 4.16682 ++ *[0-9a-f]*:	e1 a3 07 88 	cop cp0,cr7,cr8,cr8,0x6
 4.16683 ++ *[0-9a-f]*:	e1 a3 08 78 	cop cp0,cr8,cr7,cr8,0x6
 4.16684 ++ *[0-9a-f]*:	e1 a3 08 87 	cop cp0,cr8,cr8,cr7,0x6
 4.16685 ++
 4.16686 ++[0-9a-f]* <fnmul_s>:
 4.16687 ++ *[0-9a-f]*:	e1 a3 1f ff 	cop cp0,cr15,cr15,cr15,0x7
 4.16688 ++ *[0-9a-f]*:	e1 a3 10 00 	cop cp0,cr0,cr0,cr0,0x7
 4.16689 ++ *[0-9a-f]*:	e1 a3 10 ff 	cop cp0,cr0,cr15,cr15,0x7
 4.16690 ++ *[0-9a-f]*:	e1 a3 1f 0f 	cop cp0,cr15,cr0,cr15,0x7
 4.16691 ++ *[0-9a-f]*:	e1 a3 1f f0 	cop cp0,cr15,cr15,cr0,0x7
 4.16692 ++ *[0-9a-f]*:	e1 a3 17 88 	cop cp0,cr7,cr8,cr8,0x7
 4.16693 ++ *[0-9a-f]*:	e1 a3 18 78 	cop cp0,cr8,cr7,cr8,0x7
 4.16694 ++ *[0-9a-f]*:	e1 a3 18 87 	cop cp0,cr8,cr8,cr7,0x7
 4.16695 ++
 4.16696 ++[0-9a-f]* <fneg_s>:
 4.16697 ++ *[0-9a-f]*:	e1 a4 0f f0 	cop cp0,cr15,cr15,cr0,0x8
 4.16698 ++ *[0-9a-f]*:	e1 a4 00 00 	cop cp0,cr0,cr0,cr0,0x8
 4.16699 ++ *[0-9a-f]*:	e1 a4 00 f0 	cop cp0,cr0,cr15,cr0,0x8
 4.16700 ++ *[0-9a-f]*:	e1 a4 0f 00 	cop cp0,cr15,cr0,cr0,0x8
 4.16701 ++ *[0-9a-f]*:	e1 a4 07 80 	cop cp0,cr7,cr8,cr0,0x8
 4.16702 ++ *[0-9a-f]*:	e1 a4 08 70 	cop cp0,cr8,cr7,cr0,0x8
 4.16703 ++
 4.16704 ++[0-9a-f]* <fabs_s>:
 4.16705 ++ *[0-9a-f]*:	e1 a4 1f f0 	cop cp0,cr15,cr15,cr0,0x9
 4.16706 ++ *[0-9a-f]*:	e1 a4 10 00 	cop cp0,cr0,cr0,cr0,0x9
 4.16707 ++ *[0-9a-f]*:	e1 a4 10 f0 	cop cp0,cr0,cr15,cr0,0x9
 4.16708 ++ *[0-9a-f]*:	e1 a4 1f 00 	cop cp0,cr15,cr0,cr0,0x9
 4.16709 ++ *[0-9a-f]*:	e1 a4 17 80 	cop cp0,cr7,cr8,cr0,0x9
 4.16710 ++ *[0-9a-f]*:	e1 a4 18 70 	cop cp0,cr8,cr7,cr0,0x9
 4.16711 ++
 4.16712 ++[0-9a-f]* <fcmp_s>:
 4.16713 ++ *[0-9a-f]*:	e1 a6 10 ff 	cop cp0,cr0,cr15,cr15,0xd
 4.16714 ++ *[0-9a-f]*:	e1 a6 10 00 	cop cp0,cr0,cr0,cr0,0xd
 4.16715 ++ *[0-9a-f]*:	e1 a6 10 0f 	cop cp0,cr0,cr0,cr15,0xd
 4.16716 ++ *[0-9a-f]*:	e1 a6 10 f0 	cop cp0,cr0,cr15,cr0,0xd
 4.16717 ++ *[0-9a-f]*:	e1 a6 10 78 	cop cp0,cr0,cr7,cr8,0xd
 4.16718 ++ *[0-9a-f]*:	e1 a6 10 87 	cop cp0,cr0,cr8,cr7,0xd
 4.16719 ++
 4.16720 ++[0-9a-f]* <fadd_d>:
 4.16721 ++ *[0-9a-f]*:	e5 a2 0e ee 	cop cp0,cr14,cr14,cr14,0x44
 4.16722 ++ *[0-9a-f]*:	e5 a2 00 00 	cop cp0,cr0,cr0,cr0,0x44
 4.16723 ++ *[0-9a-f]*:	e5 a2 00 ee 	cop cp0,cr0,cr14,cr14,0x44
 4.16724 ++ *[0-9a-f]*:	e5 a2 0e 0e 	cop cp0,cr14,cr0,cr14,0x44
 4.16725 ++ *[0-9a-f]*:	e5 a2 0e e0 	cop cp0,cr14,cr14,cr0,0x44
 4.16726 ++ *[0-9a-f]*:	e5 a2 06 88 	cop cp0,cr6,cr8,cr8,0x44
 4.16727 ++ *[0-9a-f]*:	e5 a2 08 68 	cop cp0,cr8,cr6,cr8,0x44
 4.16728 ++ *[0-9a-f]*:	e5 a2 08 86 	cop cp0,cr8,cr8,cr6,0x44
 4.16729 ++
 4.16730 ++[0-9a-f]* <fsub_d>:
 4.16731 ++ *[0-9a-f]*:	e5 a2 1e ee 	cop cp0,cr14,cr14,cr14,0x45
 4.16732 ++ *[0-9a-f]*:	e5 a2 10 00 	cop cp0,cr0,cr0,cr0,0x45
 4.16733 ++ *[0-9a-f]*:	e5 a2 10 ee 	cop cp0,cr0,cr14,cr14,0x45
 4.16734 ++ *[0-9a-f]*:	e5 a2 1e 0e 	cop cp0,cr14,cr0,cr14,0x45
 4.16735 ++ *[0-9a-f]*:	e5 a2 1e e0 	cop cp0,cr14,cr14,cr0,0x45
 4.16736 ++ *[0-9a-f]*:	e5 a2 16 88 	cop cp0,cr6,cr8,cr8,0x45
 4.16737 ++ *[0-9a-f]*:	e5 a2 18 68 	cop cp0,cr8,cr6,cr8,0x45
 4.16738 ++ *[0-9a-f]*:	e5 a2 18 86 	cop cp0,cr8,cr8,cr6,0x45
 4.16739 ++
 4.16740 ++[0-9a-f]* <fmac_d>:
 4.16741 ++ *[0-9a-f]*:	e5 a0 0e ee 	cop cp0,cr14,cr14,cr14,0x40
 4.16742 ++ *[0-9a-f]*:	e5 a0 00 00 	cop cp0,cr0,cr0,cr0,0x40
 4.16743 ++ *[0-9a-f]*:	e5 a0 00 ee 	cop cp0,cr0,cr14,cr14,0x40
 4.16744 ++ *[0-9a-f]*:	e5 a0 0e 0e 	cop cp0,cr14,cr0,cr14,0x40
 4.16745 ++ *[0-9a-f]*:	e5 a0 0e e0 	cop cp0,cr14,cr14,cr0,0x40
 4.16746 ++ *[0-9a-f]*:	e5 a0 06 88 	cop cp0,cr6,cr8,cr8,0x40
 4.16747 ++ *[0-9a-f]*:	e5 a0 08 68 	cop cp0,cr8,cr6,cr8,0x40
 4.16748 ++ *[0-9a-f]*:	e5 a0 08 86 	cop cp0,cr8,cr8,cr6,0x40
 4.16749 ++
 4.16750 ++[0-9a-f]* <fnmac_d>:
 4.16751 ++ *[0-9a-f]*:	e5 a0 1e ee 	cop cp0,cr14,cr14,cr14,0x41
 4.16752 ++ *[0-9a-f]*:	e5 a0 10 00 	cop cp0,cr0,cr0,cr0,0x41
 4.16753 ++ *[0-9a-f]*:	e5 a0 10 ee 	cop cp0,cr0,cr14,cr14,0x41
 4.16754 ++ *[0-9a-f]*:	e5 a0 1e 0e 	cop cp0,cr14,cr0,cr14,0x41
 4.16755 ++ *[0-9a-f]*:	e5 a0 1e e0 	cop cp0,cr14,cr14,cr0,0x41
 4.16756 ++ *[0-9a-f]*:	e5 a0 16 88 	cop cp0,cr6,cr8,cr8,0x41
 4.16757 ++ *[0-9a-f]*:	e5 a0 18 68 	cop cp0,cr8,cr6,cr8,0x41
 4.16758 ++ *[0-9a-f]*:	e5 a0 18 86 	cop cp0,cr8,cr8,cr6,0x41
 4.16759 ++
 4.16760 ++[0-9a-f]* <fmsc_d>:
 4.16761 ++ *[0-9a-f]*:	e5 a1 0e ee 	cop cp0,cr14,cr14,cr14,0x42
 4.16762 ++ *[0-9a-f]*:	e5 a1 00 00 	cop cp0,cr0,cr0,cr0,0x42
 4.16763 ++ *[0-9a-f]*:	e5 a1 00 ee 	cop cp0,cr0,cr14,cr14,0x42
 4.16764 ++ *[0-9a-f]*:	e5 a1 0e 0e 	cop cp0,cr14,cr0,cr14,0x42
 4.16765 ++ *[0-9a-f]*:	e5 a1 0e e0 	cop cp0,cr14,cr14,cr0,0x42
 4.16766 ++ *[0-9a-f]*:	e5 a1 06 88 	cop cp0,cr6,cr8,cr8,0x42
 4.16767 ++ *[0-9a-f]*:	e5 a1 08 68 	cop cp0,cr8,cr6,cr8,0x42
 4.16768 ++ *[0-9a-f]*:	e5 a1 08 86 	cop cp0,cr8,cr8,cr6,0x42
 4.16769 ++
 4.16770 ++[0-9a-f]* <fnmsc_d>:
 4.16771 ++ *[0-9a-f]*:	e5 a1 1e ee 	cop cp0,cr14,cr14,cr14,0x43
 4.16772 ++ *[0-9a-f]*:	e5 a1 10 00 	cop cp0,cr0,cr0,cr0,0x43
 4.16773 ++ *[0-9a-f]*:	e5 a1 10 ee 	cop cp0,cr0,cr14,cr14,0x43
 4.16774 ++ *[0-9a-f]*:	e5 a1 1e 0e 	cop cp0,cr14,cr0,cr14,0x43
 4.16775 ++ *[0-9a-f]*:	e5 a1 1e e0 	cop cp0,cr14,cr14,cr0,0x43
 4.16776 ++ *[0-9a-f]*:	e5 a1 16 88 	cop cp0,cr6,cr8,cr8,0x43
 4.16777 ++ *[0-9a-f]*:	e5 a1 18 68 	cop cp0,cr8,cr6,cr8,0x43
 4.16778 ++ *[0-9a-f]*:	e5 a1 18 86 	cop cp0,cr8,cr8,cr6,0x43
 4.16779 ++
 4.16780 ++[0-9a-f]* <fmul_d>:
 4.16781 ++ *[0-9a-f]*:	e5 a3 0e ee 	cop cp0,cr14,cr14,cr14,0x46
 4.16782 ++ *[0-9a-f]*:	e5 a3 00 00 	cop cp0,cr0,cr0,cr0,0x46
 4.16783 ++ *[0-9a-f]*:	e5 a3 00 ee 	cop cp0,cr0,cr14,cr14,0x46
 4.16784 ++ *[0-9a-f]*:	e5 a3 0e 0e 	cop cp0,cr14,cr0,cr14,0x46
 4.16785 ++ *[0-9a-f]*:	e5 a3 0e e0 	cop cp0,cr14,cr14,cr0,0x46
 4.16786 ++ *[0-9a-f]*:	e5 a3 06 88 	cop cp0,cr6,cr8,cr8,0x46
 4.16787 ++ *[0-9a-f]*:	e5 a3 08 68 	cop cp0,cr8,cr6,cr8,0x46
 4.16788 ++ *[0-9a-f]*:	e5 a3 08 86 	cop cp0,cr8,cr8,cr6,0x46
 4.16789 ++
 4.16790 ++[0-9a-f]* <fnmul_d>:
 4.16791 ++ *[0-9a-f]*:	e5 a3 1e ee 	cop cp0,cr14,cr14,cr14,0x47
 4.16792 ++ *[0-9a-f]*:	e5 a3 10 00 	cop cp0,cr0,cr0,cr0,0x47
 4.16793 ++ *[0-9a-f]*:	e5 a3 10 ee 	cop cp0,cr0,cr14,cr14,0x47
 4.16794 ++ *[0-9a-f]*:	e5 a3 1e 0e 	cop cp0,cr14,cr0,cr14,0x47
 4.16795 ++ *[0-9a-f]*:	e5 a3 1e e0 	cop cp0,cr14,cr14,cr0,0x47
 4.16796 ++ *[0-9a-f]*:	e5 a3 16 88 	cop cp0,cr6,cr8,cr8,0x47
 4.16797 ++ *[0-9a-f]*:	e5 a3 18 68 	cop cp0,cr8,cr6,cr8,0x47
 4.16798 ++ *[0-9a-f]*:	e5 a3 18 86 	cop cp0,cr8,cr8,cr6,0x47
 4.16799 ++
 4.16800 ++[0-9a-f]* <fneg_d>:
 4.16801 ++ *[0-9a-f]*:	e5 a4 0e e0 	cop cp0,cr14,cr14,cr0,0x48
 4.16802 ++ *[0-9a-f]*:	e5 a4 00 00 	cop cp0,cr0,cr0,cr0,0x48
 4.16803 ++ *[0-9a-f]*:	e5 a4 00 e0 	cop cp0,cr0,cr14,cr0,0x48
 4.16804 ++ *[0-9a-f]*:	e5 a4 0e 00 	cop cp0,cr14,cr0,cr0,0x48
 4.16805 ++ *[0-9a-f]*:	e5 a4 06 80 	cop cp0,cr6,cr8,cr0,0x48
 4.16806 ++ *[0-9a-f]*:	e5 a4 08 60 	cop cp0,cr8,cr6,cr0,0x48
 4.16807 ++
 4.16808 ++[0-9a-f]* <fabs_d>:
 4.16809 ++ *[0-9a-f]*:	e5 a4 1e e0 	cop cp0,cr14,cr14,cr0,0x49
 4.16810 ++ *[0-9a-f]*:	e5 a4 10 00 	cop cp0,cr0,cr0,cr0,0x49
 4.16811 ++ *[0-9a-f]*:	e5 a4 10 e0 	cop cp0,cr0,cr14,cr0,0x49
 4.16812 ++ *[0-9a-f]*:	e5 a4 1e 00 	cop cp0,cr14,cr0,cr0,0x49
 4.16813 ++ *[0-9a-f]*:	e5 a4 16 80 	cop cp0,cr6,cr8,cr0,0x49
 4.16814 ++ *[0-9a-f]*:	e5 a4 18 60 	cop cp0,cr8,cr6,cr0,0x49
 4.16815 ++
 4.16816 ++[0-9a-f]* <fcmp_d>:
 4.16817 ++ *[0-9a-f]*:	e5 a6 10 ee 	cop cp0,cr0,cr14,cr14,0x4d
 4.16818 ++ *[0-9a-f]*:	e5 a6 10 00 	cop cp0,cr0,cr0,cr0,0x4d
 4.16819 ++ *[0-9a-f]*:	e5 a6 10 0e 	cop cp0,cr0,cr0,cr14,0x4d
 4.16820 ++ *[0-9a-f]*:	e5 a6 10 e0 	cop cp0,cr0,cr14,cr0,0x4d
 4.16821 ++ *[0-9a-f]*:	e5 a6 10 68 	cop cp0,cr0,cr6,cr8,0x4d
 4.16822 ++ *[0-9a-f]*:	e5 a6 10 86 	cop cp0,cr0,cr8,cr6,0x4d
 4.16823 ++
 4.16824 ++[0-9a-f]* <fmov_s>:
 4.16825 ++ *[0-9a-f]*:	e1 a5 0f f0 	cop cp0,cr15,cr15,cr0,0xa
 4.16826 ++ *[0-9a-f]*:	e1 a5 00 00 	cop cp0,cr0,cr0,cr0,0xa
 4.16827 ++ *[0-9a-f]*:	e1 a5 0f 00 	cop cp0,cr15,cr0,cr0,0xa
 4.16828 ++ *[0-9a-f]*:	e1 a5 00 f0 	cop cp0,cr0,cr15,cr0,0xa
 4.16829 ++ *[0-9a-f]*:	e1 a5 08 70 	cop cp0,cr8,cr7,cr0,0xa
 4.16830 ++ *[0-9a-f]*:	e1 a5 07 80 	cop cp0,cr7,cr8,cr0,0xa
 4.16831 ++ *[0-9a-f]*:	ef af 0f 00 	mvcr.w cp0,pc,cr15
 4.16832 ++ *[0-9a-f]*:	ef a0 00 00 	mvcr.w cp0,r0,cr0
 4.16833 ++ *[0-9a-f]*:	ef af 00 00 	mvcr.w cp0,pc,cr0
 4.16834 ++ *[0-9a-f]*:	ef a0 0f 00 	mvcr.w cp0,r0,cr15
 4.16835 ++ *[0-9a-f]*:	ef a8 07 00 	mvcr.w cp0,r8,cr7
 4.16836 ++ *[0-9a-f]*:	ef a7 08 00 	mvcr.w cp0,r7,cr8
 4.16837 ++ *[0-9a-f]*:	ef af 0f 20 	mvrc.w cp0,cr15,pc
 4.16838 ++ *[0-9a-f]*:	ef a0 00 20 	mvrc.w cp0,cr0,r0
 4.16839 ++ *[0-9a-f]*:	ef a0 0f 20 	mvrc.w cp0,cr15,r0
 4.16840 ++ *[0-9a-f]*:	ef af 00 20 	mvrc.w cp0,cr0,pc
 4.16841 ++ *[0-9a-f]*:	ef a7 08 20 	mvrc.w cp0,cr8,r7
 4.16842 ++ *[0-9a-f]*:	ef a8 07 20 	mvrc.w cp0,cr7,r8
 4.16843 ++
 4.16844 ++[0-9a-f]* <fmov_d>:
 4.16845 ++ *[0-9a-f]*:	e5 a5 0e e0 	cop cp0,cr14,cr14,cr0,0x4a
 4.16846 ++ *[0-9a-f]*:	e5 a5 00 00 	cop cp0,cr0,cr0,cr0,0x4a
 4.16847 ++ *[0-9a-f]*:	e5 a5 0e 00 	cop cp0,cr14,cr0,cr0,0x4a
 4.16848 ++ *[0-9a-f]*:	e5 a5 00 e0 	cop cp0,cr0,cr14,cr0,0x4a
 4.16849 ++ *[0-9a-f]*:	e5 a5 08 60 	cop cp0,cr8,cr6,cr0,0x4a
 4.16850 ++ *[0-9a-f]*:	e5 a5 06 80 	cop cp0,cr6,cr8,cr0,0x4a
 4.16851 ++ *[0-9a-f]*:	ef ae 0e 10 	mvcr.d cp0,lr,cr14
 4.16852 ++ *[0-9a-f]*:	ef a0 00 10 	mvcr.d cp0,r0,cr0
 4.16853 ++ *[0-9a-f]*:	ef ae 00 10 	mvcr.d cp0,lr,cr0
 4.16854 ++ *[0-9a-f]*:	ef a0 0e 10 	mvcr.d cp0,r0,cr14
 4.16855 ++ *[0-9a-f]*:	ef a8 06 10 	mvcr.d cp0,r8,cr6
 4.16856 ++ *[0-9a-f]*:	ef a6 08 10 	mvcr.d cp0,r6,cr8
 4.16857 ++ *[0-9a-f]*:	ef ae 0e 30 	mvrc.d cp0,cr14,lr
 4.16858 ++ *[0-9a-f]*:	ef a0 00 30 	mvrc.d cp0,cr0,r0
 4.16859 ++ *[0-9a-f]*:	ef a0 0e 30 	mvrc.d cp0,cr14,r0
 4.16860 ++ *[0-9a-f]*:	ef ae 00 30 	mvrc.d cp0,cr0,lr
 4.16861 ++ *[0-9a-f]*:	ef a6 08 30 	mvrc.d cp0,cr8,r6
 4.16862 ++ *[0-9a-f]*:	ef a8 06 30 	mvrc.d cp0,cr6,r8
 4.16863 ++
 4.16864 ++[0-9a-f]* <fcasts_d>:
 4.16865 ++ *[0-9a-f]*:	e1 a7 1f e0 	cop cp0,cr15,cr14,cr0,0xf
 4.16866 ++ *[0-9a-f]*:	e1 a7 10 00 	cop cp0,cr0,cr0,cr0,0xf
 4.16867 ++ *[0-9a-f]*:	e1 a7 1f 00 	cop cp0,cr15,cr0,cr0,0xf
 4.16868 ++ *[0-9a-f]*:	e1 a7 10 e0 	cop cp0,cr0,cr14,cr0,0xf
 4.16869 ++ *[0-9a-f]*:	e1 a7 18 60 	cop cp0,cr8,cr6,cr0,0xf
 4.16870 ++ *[0-9a-f]*:	e1 a7 17 80 	cop cp0,cr7,cr8,cr0,0xf
 4.16871 ++
 4.16872 ++[0-9a-f]* <fcastd_s>:
 4.16873 ++ *[0-9a-f]*:	e1 a8 0e f0 	cop cp0,cr14,cr15,cr0,0x10
 4.16874 ++ *[0-9a-f]*:	e1 a8 00 00 	cop cp0,cr0,cr0,cr0,0x10
 4.16875 ++ *[0-9a-f]*:	e1 a8 0e 00 	cop cp0,cr14,cr0,cr0,0x10
 4.16876 ++ *[0-9a-f]*:	e1 a8 00 f0 	cop cp0,cr0,cr15,cr0,0x10
 4.16877 ++ *[0-9a-f]*:	e1 a8 08 70 	cop cp0,cr8,cr7,cr0,0x10
 4.16878 ++ *[0-9a-f]*:	e1 a8 06 80 	cop cp0,cr6,cr8,cr0,0x10
 4.16879 +--- /dev/null
 4.16880 ++++ b/gas/testsuite/gas/avr32/fpinsn.s
 4.16881 +@@ -0,0 +1,266 @@
 4.16882 ++
 4.16883 ++	.text
 4.16884 ++	.global	fadd_s
 4.16885 ++fadd_s:
 4.16886 ++	fadd.s fr15, fr15, fr15
 4.16887 ++	fadd.s fr0, fr0, fr0
 4.16888 ++	fadd.s fr0, fr15, fr15
 4.16889 ++	fadd.s fr15, fr0, fr15
 4.16890 ++	fadd.s fr15, fr15, fr0
 4.16891 ++	fadd.s fr7, fr8, fr8
 4.16892 ++	fadd.s fr8, fr7, fr8
 4.16893 ++	fadd.s fr8, fr8, fr7
 4.16894 ++	.global	fsub_s
 4.16895 ++fsub_s:
 4.16896 ++	fsub.s fr15, fr15, fr15
 4.16897 ++	fsub.s fr0, fr0, fr0
 4.16898 ++	fsub.s fr0, fr15, fr15
 4.16899 ++	fsub.s fr15, fr0, fr15
 4.16900 ++	fsub.s fr15, fr15, fr0
 4.16901 ++	fsub.s fr7, fr8, fr8
 4.16902 ++	fsub.s fr8, fr7, fr8
 4.16903 ++	fsub.s fr8, fr8, fr7
 4.16904 ++	.global	fmac_s
 4.16905 ++fmac_s:
 4.16906 ++	fmac.s fr15, fr15, fr15
 4.16907 ++	fmac.s fr0, fr0, fr0
 4.16908 ++	fmac.s fr0, fr15, fr15
 4.16909 ++	fmac.s fr15, fr0, fr15
 4.16910 ++	fmac.s fr15, fr15, fr0
 4.16911 ++	fmac.s fr7, fr8, fr8
 4.16912 ++	fmac.s fr8, fr7, fr8
 4.16913 ++	fmac.s fr8, fr8, fr7
 4.16914 ++	.global	fnmac_s
 4.16915 ++fnmac_s:
 4.16916 ++	fnmac.s fr15, fr15, fr15
 4.16917 ++	fnmac.s fr0, fr0, fr0
 4.16918 ++	fnmac.s fr0, fr15, fr15
 4.16919 ++	fnmac.s fr15, fr0, fr15
 4.16920 ++	fnmac.s fr15, fr15, fr0
 4.16921 ++	fnmac.s fr7, fr8, fr8
 4.16922 ++	fnmac.s fr8, fr7, fr8
 4.16923 ++	fnmac.s fr8, fr8, fr7
 4.16924 ++	.global	fmsc_s
 4.16925 ++fmsc_s:
 4.16926 ++	fmsc.s fr15, fr15, fr15
 4.16927 ++	fmsc.s fr0, fr0, fr0
 4.16928 ++	fmsc.s fr0, fr15, fr15
 4.16929 ++	fmsc.s fr15, fr0, fr15
 4.16930 ++	fmsc.s fr15, fr15, fr0
 4.16931 ++	fmsc.s fr7, fr8, fr8
 4.16932 ++	fmsc.s fr8, fr7, fr8
 4.16933 ++	fmsc.s fr8, fr8, fr7
 4.16934 ++	.global	fnmsc_s
 4.16935 ++fnmsc_s:
 4.16936 ++	fnmsc.s fr15, fr15, fr15
 4.16937 ++	fnmsc.s fr0, fr0, fr0
 4.16938 ++	fnmsc.s fr0, fr15, fr15
 4.16939 ++	fnmsc.s fr15, fr0, fr15
 4.16940 ++	fnmsc.s fr15, fr15, fr0
 4.16941 ++	fnmsc.s fr7, fr8, fr8
 4.16942 ++	fnmsc.s fr8, fr7, fr8
 4.16943 ++	fnmsc.s fr8, fr8, fr7
 4.16944 ++	.global	fmul_s
 4.16945 ++fmul_s:
 4.16946 ++	fmul.s fr15, fr15, fr15
 4.16947 ++	fmul.s fr0, fr0, fr0
 4.16948 ++	fmul.s fr0, fr15, fr15
 4.16949 ++	fmul.s fr15, fr0, fr15
 4.16950 ++	fmul.s fr15, fr15, fr0
 4.16951 ++	fmul.s fr7, fr8, fr8
 4.16952 ++	fmul.s fr8, fr7, fr8
 4.16953 ++	fmul.s fr8, fr8, fr7
 4.16954 ++	.global	fnmul_s
 4.16955 ++fnmul_s:
 4.16956 ++	fnmul.s fr15, fr15, fr15
 4.16957 ++	fnmul.s fr0, fr0, fr0
 4.16958 ++	fnmul.s fr0, fr15, fr15
 4.16959 ++	fnmul.s fr15, fr0, fr15
 4.16960 ++	fnmul.s fr15, fr15, fr0
 4.16961 ++	fnmul.s fr7, fr8, fr8
 4.16962 ++	fnmul.s fr8, fr7, fr8
 4.16963 ++	fnmul.s fr8, fr8, fr7
 4.16964 ++	.global	fneg_s
 4.16965 ++fneg_s:
 4.16966 ++	fneg.s fr15, fr15
 4.16967 ++	fneg.s fr0, fr0
 4.16968 ++	fneg.s fr0, fr15
 4.16969 ++	fneg.s fr15, fr0
 4.16970 ++	fneg.s fr7, fr8
 4.16971 ++	fneg.s fr8, fr7
 4.16972 ++	.global	fabs_s
 4.16973 ++fabs_s:
 4.16974 ++	fabs.s fr15, fr15
 4.16975 ++	fabs.s fr0, fr0
 4.16976 ++	fabs.s fr0, fr15
 4.16977 ++	fabs.s fr15, fr0
 4.16978 ++	fabs.s fr7, fr8
 4.16979 ++	fabs.s fr8, fr7
 4.16980 ++	.global	fcmp_s
 4.16981 ++fcmp_s:
 4.16982 ++	fcmp.s fr15, fr15
 4.16983 ++	fcmp.s fr0, fr0
 4.16984 ++	fcmp.s fr0, fr15
 4.16985 ++	fcmp.s fr15, fr0
 4.16986 ++	fcmp.s fr7, fr8
 4.16987 ++	fcmp.s fr8, fr7
 4.16988 ++	.global	fadd_d
 4.16989 ++fadd_d:
 4.16990 ++	fadd.d fr14, fr14, fr14
 4.16991 ++	fadd.d fr0, fr0, fr0
 4.16992 ++	fadd.d fr0, fr14, fr14
 4.16993 ++	fadd.d fr14, fr0, fr14
 4.16994 ++	fadd.d fr14, fr14, fr0
 4.16995 ++	fadd.d fr6, fr8, fr8
 4.16996 ++	fadd.d fr8, fr6, fr8
 4.16997 ++	fadd.d fr8, fr8, fr6
 4.16998 ++	.global	fsub_d
 4.16999 ++fsub_d:
 4.17000 ++	fsub.d fr14, fr14, fr14
 4.17001 ++	fsub.d fr0, fr0, fr0
 4.17002 ++	fsub.d fr0, fr14, fr14
 4.17003 ++	fsub.d fr14, fr0, fr14
 4.17004 ++	fsub.d fr14, fr14, fr0
 4.17005 ++	fsub.d fr6, fr8, fr8
 4.17006 ++	fsub.d fr8, fr6, fr8
 4.17007 ++	fsub.d fr8, fr8, fr6
 4.17008 ++	.global	fmac_d
 4.17009 ++fmac_d:
 4.17010 ++	fmac.d fr14, fr14, fr14
 4.17011 ++	fmac.d fr0, fr0, fr0
 4.17012 ++	fmac.d fr0, fr14, fr14
 4.17013 ++	fmac.d fr14, fr0, fr14
 4.17014 ++	fmac.d fr14, fr14, fr0
 4.17015 ++	fmac.d fr6, fr8, fr8
 4.17016 ++	fmac.d fr8, fr6, fr8
 4.17017 ++	fmac.d fr8, fr8, fr6
 4.17018 ++	.global	fnmac_d
 4.17019 ++fnmac_d:
 4.17020 ++	fnmac.d fr14, fr14, fr14
 4.17021 ++	fnmac.d fr0, fr0, fr0
 4.17022 ++	fnmac.d fr0, fr14, fr14
 4.17023 ++	fnmac.d fr14, fr0, fr14
 4.17024 ++	fnmac.d fr14, fr14, fr0
 4.17025 ++	fnmac.d fr6, fr8, fr8
 4.17026 ++	fnmac.d fr8, fr6, fr8
 4.17027 ++	fnmac.d fr8, fr8, fr6
 4.17028 ++	.global	fmsc_d
 4.17029 ++fmsc_d:
 4.17030 ++	fmsc.d fr14, fr14, fr14
 4.17031 ++	fmsc.d fr0, fr0, fr0
 4.17032 ++	fmsc.d fr0, fr14, fr14
 4.17033 ++	fmsc.d fr14, fr0, fr14
 4.17034 ++	fmsc.d fr14, fr14, fr0
 4.17035 ++	fmsc.d fr6, fr8, fr8
 4.17036 ++	fmsc.d fr8, fr6, fr8
 4.17037 ++	fmsc.d fr8, fr8, fr6
 4.17038 ++	.global	fnmsc_d
 4.17039 ++fnmsc_d:
 4.17040 ++	fnmsc.d fr14, fr14, fr14
 4.17041 ++	fnmsc.d fr0, fr0, fr0
 4.17042 ++	fnmsc.d fr0, fr14, fr14
 4.17043 ++	fnmsc.d fr14, fr0, fr14
 4.17044 ++	fnmsc.d fr14, fr14, fr0
 4.17045 ++	fnmsc.d fr6, fr8, fr8
 4.17046 ++	fnmsc.d fr8, fr6, fr8
 4.17047 ++	fnmsc.d fr8, fr8, fr6
 4.17048 ++	.global	fmul_d
 4.17049 ++fmul_d:
 4.17050 ++	fmul.d fr14, fr14, fr14
 4.17051 ++	fmul.d fr0, fr0, fr0
 4.17052 ++	fmul.d fr0, fr14, fr14
 4.17053 ++	fmul.d fr14, fr0, fr14
 4.17054 ++	fmul.d fr14, fr14, fr0
 4.17055 ++	fmul.d fr6, fr8, fr8
 4.17056 ++	fmul.d fr8, fr6, fr8
 4.17057 ++	fmul.d fr8, fr8, fr6
 4.17058 ++	.global	fnmul_d
 4.17059 ++fnmul_d:
 4.17060 ++	fnmul.d fr14, fr14, fr14
 4.17061 ++	fnmul.d fr0, fr0, fr0
 4.17062 ++	fnmul.d fr0, fr14, fr14
 4.17063 ++	fnmul.d fr14, fr0, fr14
 4.17064 ++	fnmul.d fr14, fr14, fr0
 4.17065 ++	fnmul.d fr6, fr8, fr8
 4.17066 ++	fnmul.d fr8, fr6, fr8
 4.17067 ++	fnmul.d fr8, fr8, fr6
 4.17068 ++	.global	fneg_d
 4.17069 ++fneg_d:
 4.17070 ++	fneg.d fr14, fr14
 4.17071 ++	fneg.d fr0, fr0
 4.17072 ++	fneg.d fr0, fr14
 4.17073 ++	fneg.d fr14, fr0
 4.17074 ++	fneg.d fr6, fr8
 4.17075 ++	fneg.d fr8, fr6
 4.17076 ++	.global	fabs_d
 4.17077 ++fabs_d:
 4.17078 ++	fabs.d fr14, fr14
 4.17079 ++	fabs.d fr0, fr0
 4.17080 ++	fabs.d fr0, fr14
 4.17081 ++	fabs.d fr14, fr0
 4.17082 ++	fabs.d fr6, fr8
 4.17083 ++	fabs.d fr8, fr6
 4.17084 ++	.global	fcmp_d
 4.17085 ++fcmp_d:
 4.17086 ++	fcmp.d fr14, fr14
 4.17087 ++	fcmp.d fr0, fr0
 4.17088 ++	fcmp.d fr0, fr14
 4.17089 ++	fcmp.d fr14, fr0
 4.17090 ++	fcmp.d fr6, fr8
 4.17091 ++	fcmp.d fr8, fr6
 4.17092 ++	.global fmov_s
 4.17093 ++fmov_s:
 4.17094 ++	fmov.s fr15, fr15
 4.17095 ++	fmov.s fr0, fr0
 4.17096 ++	fmov.s fr15, fr0
 4.17097 ++	fmov.s fr0, fr15
 4.17098 ++	fmov.s fr8, fr7
 4.17099 ++	fmov.s fr7, fr8
 4.17100 ++	fmov.s pc, fr15
 4.17101 ++	fmov.s r0, fr0
 4.17102 ++	fmov.s pc, fr0
 4.17103 ++	fmov.s r0, fr15
 4.17104 ++	fmov.s r8, fr7
 4.17105 ++	fmov.s r7, fr8
 4.17106 ++	fmov.s fr15, pc
 4.17107 ++	fmov.s fr0, r0
 4.17108 ++	fmov.s fr15, r0
 4.17109 ++	fmov.s fr0, pc
 4.17110 ++	fmov.s fr8, r7
 4.17111 ++	fmov.s fr7, r8
 4.17112 ++	.global fmov_d
 4.17113 ++fmov_d:
 4.17114 ++	fmov.d fr14, fr14
 4.17115 ++	fmov.d fr0, fr0
 4.17116 ++	fmov.d fr14, fr0
 4.17117 ++	fmov.d fr0, fr14
 4.17118 ++	fmov.d fr8, fr6
 4.17119 ++	fmov.d fr6, fr8
 4.17120 ++	fmov.d lr, fr14
 4.17121 ++	fmov.d r0, fr0
 4.17122 ++	fmov.d lr, fr0
 4.17123 ++	fmov.d r0, fr14
 4.17124 ++	fmov.d r8, fr6
 4.17125 ++	fmov.d r6, fr8
 4.17126 ++	fmov.d fr14, lr
 4.17127 ++	fmov.d fr0, r0
 4.17128 ++	fmov.d fr14, r0
 4.17129 ++	fmov.d fr0, lr
 4.17130 ++	fmov.d fr8, r6
 4.17131 ++	fmov.d fr6, r8
 4.17132 ++	.global fcasts_d
 4.17133 ++fcasts_d:
 4.17134 ++	fcasts.d fr15, fr14
 4.17135 ++	fcasts.d fr0, fr0
 4.17136 ++	fcasts.d fr15, fr0
 4.17137 ++	fcasts.d fr0, fr14
 4.17138 ++	fcasts.d fr8, fr6
 4.17139 ++	fcasts.d fr7, fr8
 4.17140 ++	.global fcastd_s
 4.17141 ++fcastd_s:
 4.17142 ++	fcastd.s fr14, fr15
 4.17143 ++	fcastd.s fr0, fr0
 4.17144 ++	fcastd.s fr14, fr0
 4.17145 ++	fcastd.s fr0, fr15
 4.17146 ++	fcastd.s fr8, fr7
 4.17147 ++	fcastd.s fr6, fr8
 4.17148 +--- /dev/null
 4.17149 ++++ b/gas/testsuite/gas/avr32/hwrd-lwrd.d
 4.17150 +@@ -0,0 +1,47 @@
 4.17151 ++#as:
 4.17152 ++#objdump: -dr
 4.17153 ++#name: hwrd-lwrd
 4.17154 ++
 4.17155 ++.*: +file format .*
 4.17156 ++
 4.17157 ++Disassembly of section \.text:
 4.17158 ++
 4.17159 ++00000000 <test_hwrd>:
 4.17160 ++   0:	e0 60 87 65 	mov r0,34661
 4.17161 ++   4:	e0 60 12 34 	mov r0,4660
 4.17162 ++   8:	e0 60 00 00 	mov r0,0
 4.17163 ++			8: R_AVR32_HI16	\.text\+0x60
 4.17164 ++   c:	e0 60 00 00 	mov r0,0
 4.17165 ++			c: R_AVR32_HI16	extsym1
 4.17166 ++  10:	ea 10 87 65 	orh r0,0x8765
 4.17167 ++  14:	ea 10 12 34 	orh r0,0x1234
 4.17168 ++  18:	ea 10 00 00 	orh r0,0x0
 4.17169 ++			18: R_AVR32_HI16	\.text\+0x60
 4.17170 ++  1c:	ea 10 00 00 	orh r0,0x0
 4.17171 ++			1c: R_AVR32_HI16	extsym1
 4.17172 ++  20:	e4 10 87 65 	andh r0,0x8765
 4.17173 ++  24:	e4 10 12 34 	andh r0,0x1234
 4.17174 ++  28:	e4 10 00 00 	andh r0,0x0
 4.17175 ++			28: R_AVR32_HI16	\.text\+0x60
 4.17176 ++  2c:	e4 10 00 00 	andh r0,0x0
 4.17177 ++			2c: R_AVR32_HI16	extsym1
 4.17178 ++
 4.17179 ++00000030 <test_lwrd>:
 4.17180 ++  30:	e0 60 43 21 	mov r0,17185
 4.17181 ++  34:	e0 60 56 78 	mov r0,22136
 4.17182 ++  38:	e0 60 00 00 	mov r0,0
 4.17183 ++			38: R_AVR32_LO16	\.text\+0x60
 4.17184 ++  3c:	e0 60 00 00 	mov r0,0
 4.17185 ++			3c: R_AVR32_LO16	extsym1
 4.17186 ++  40:	e8 10 43 21 	orl r0,0x4321
 4.17187 ++  44:	e8 10 56 78 	orl r0,0x5678
 4.17188 ++  48:	e8 10 00 00 	orl r0,0x0
 4.17189 ++			48: R_AVR32_LO16	\.text\+0x60
 4.17190 ++  4c:	e8 10 00 00 	orl r0,0x0
 4.17191 ++			4c: R_AVR32_LO16	extsym1
 4.17192 ++  50:	e0 10 43 21 	andl r0,0x4321
 4.17193 ++  54:	e0 10 56 78 	andl r0,0x5678
 4.17194 ++  58:	e0 10 00 00 	andl r0,0x0
 4.17195 ++			58: R_AVR32_LO16	\.text\+0x60
 4.17196 ++  5c:	e0 10 00 00 	andl r0,0x0
 4.17197 ++			5c: R_AVR32_LO16	extsym1
 4.17198 +--- /dev/null
 4.17199 ++++ b/gas/testsuite/gas/avr32/hwrd-lwrd.s
 4.17200 +@@ -0,0 +1,39 @@
 4.17201 ++
 4.17202 ++        .equ    sym1, 0x12345678
 4.17203 ++
 4.17204 ++        .text
 4.17205 ++        .global test_hwrd
 4.17206 ++test_hwrd:
 4.17207 ++        mov     r0, hi(0x87654321)
 4.17208 ++        mov     r0, hi(sym1)
 4.17209 ++        mov     r0, hi(sym2)
 4.17210 ++        mov     r0, hi(extsym1)
 4.17211 ++
 4.17212 ++        orh	r0, hi(0x87654321)
 4.17213 ++        orh	r0, hi(sym1)
 4.17214 ++        orh	r0, hi(sym2)
 4.17215 ++        orh	r0, hi(extsym1)
 4.17216 ++
 4.17217 ++        andh	r0, hi(0x87654321)
 4.17218 ++        andh	r0, hi(sym1)
 4.17219 ++        andh	r0, hi(sym2)
 4.17220 ++        andh	r0, hi(extsym1)
 4.17221 ++
 4.17222 ++        .global test_lwrd
 4.17223 ++test_lwrd:
 4.17224 ++        mov     r0, lo(0x87654321)
 4.17225 ++        mov     r0, lo(sym1)
 4.17226 ++        mov     r0, lo(sym2)
 4.17227 ++        mov     r0, lo(extsym1)
 4.17228 ++
 4.17229 ++        orl	r0, lo(0x87654321)
 4.17230 ++        orl	r0, lo(sym1)
 4.17231 ++        orl	r0, lo(sym2)
 4.17232 ++        orl	r0, lo(extsym1)
 4.17233 ++
 4.17234 ++        andl	r0, lo(0x87654321)
 4.17235 ++        andl	r0, lo(sym1)
 4.17236 ++        andl	r0, lo(sym2)
 4.17237 ++        andl	r0, lo(extsym1)
 4.17238 ++
 4.17239 ++sym2:
 4.17240 +--- /dev/null
 4.17241 ++++ b/gas/testsuite/gas/avr32/jmptable.d
 4.17242 +@@ -0,0 +1,20 @@
 4.17243 ++#source: jmptable.s
 4.17244 ++#as:
 4.17245 ++#objdump: -dr
 4.17246 ++#name: jmptable
 4.17247 ++
 4.17248 ++.*: +file format .*
 4.17249 ++
 4.17250 ++Disassembly of section \.text:
 4.17251 ++
 4.17252 ++00000000 <jmptable_test>:
 4.17253 ++   0:	fe c8 ff f4 	sub r8,pc,-12
 4.17254 ++   4:	f0 00 00 2f 	add pc,r8,r0<<0x2
 4.17255 ++   8:	d7 03       	nop
 4.17256 ++   a:	00 00       	add r0,r0
 4.17257 ++   c:	c0 38       	rjmp 12 <jmptable_test\+0x12>
 4.17258 ++   e:	c0 38       	rjmp 14 <jmptable_test\+0x14>
 4.17259 ++  10:	c0 38       	rjmp 16 <jmptable_test\+0x16>
 4.17260 ++  12:	d7 03       	nop
 4.17261 ++  14:	d7 03       	nop
 4.17262 ++  16:	d7 03       	nop
 4.17263 +--- /dev/null
 4.17264 ++++ b/gas/testsuite/gas/avr32/jmptable_linkrelax.d
 4.17265 +@@ -0,0 +1,25 @@
 4.17266 ++#source: jmptable.s
 4.17267 ++#as: --linkrelax
 4.17268 ++#objdump: -dr
 4.17269 ++#name: jmptable_linkrelax
 4.17270 ++
 4.17271 ++.*: +file format .*
 4.17272 ++
 4.17273 ++Disassembly of section \.text:
 4.17274 ++
 4.17275 ++00000000 <jmptable_test>:
 4.17276 ++   0:	fe c8 00 00 	sub r8,pc,0
 4.17277 ++			0: R_AVR32_16N_PCREL	\.text\+0xc
 4.17278 ++   4:	f0 00 00 2f 	add pc,r8,r0<<0x2
 4.17279 ++   8:	d7 03       	nop
 4.17280 ++   a:	00 00       	add r0,r0
 4.17281 ++			a: R_AVR32_ALIGN	\*ABS\*\+0x2
 4.17282 ++   c:	c0 08       	rjmp c <jmptable_test\+0xc>
 4.17283 ++			c: R_AVR32_11H_PCREL	\.text\+0x12
 4.17284 ++   e:	c0 08       	rjmp e <jmptable_test\+0xe>
 4.17285 ++			e: R_AVR32_11H_PCREL	\.text\+0x14
 4.17286 ++  10:	c0 08       	rjmp 10 <jmptable_test\+0x10>
 4.17287 ++			10: R_AVR32_11H_PCREL	\.text\+0x16
 4.17288 ++  12:	d7 03       	nop
 4.17289 ++  14:	d7 03       	nop
 4.17290 ++  16:	d7 03       	nop
 4.17291 +--- /dev/null
 4.17292 ++++ b/gas/testsuite/gas/avr32/jmptable.s
 4.17293 +@@ -0,0 +1,14 @@
 4.17294 ++
 4.17295 ++	.text
 4.17296 ++	.global	jmptable_test
 4.17297 ++jmptable_test:
 4.17298 ++	sub	r8, pc, -(.L1 - .)
 4.17299 ++	add	pc, r8, r0 << 2
 4.17300 ++	nop
 4.17301 ++	.align	2
 4.17302 ++.L1:	rjmp	1f
 4.17303 ++	rjmp	2f
 4.17304 ++	rjmp	3f
 4.17305 ++1:	nop
 4.17306 ++2:	nop
 4.17307 ++3:	nop
 4.17308 +--- /dev/null
 4.17309 ++++ b/gas/testsuite/gas/avr32/lda_nopic.d
 4.17310 +@@ -0,0 +1,32 @@
 4.17311 ++#source: lda.s
 4.17312 ++#as:
 4.17313 ++#objdump: -dr
 4.17314 ++#name: lda_nopic
 4.17315 ++
 4.17316 ++.*: +file format .*
 4.17317 ++
 4.17318 ++Disassembly of section \.text:
 4.17319 ++
 4.17320 ++00000000 <lda_test>:
 4.17321 ++       0:	f2 c8 00 00 	sub r8,r9,0
 4.17322 ++
 4.17323 ++00000004 <far_negative>:
 4.17324 ++       4:	f6 ca 00 00 	sub r10,r11,0
 4.17325 ++	...
 4.17326 ++    8000:	fe c0 7f fc 	sub r0,pc,32764
 4.17327 ++    8004:	48 31       	lddpc r1,8010 <far_negative\+0x800c>
 4.17328 ++    8006:	48 42       	lddpc r2,8014 <far_negative\+0x8010>
 4.17329 ++    8008:	48 43       	lddpc r3,8018 <far_negative\+0x8014>
 4.17330 ++    800a:	48 54       	lddpc r4,801c <far_negative\+0x8018>
 4.17331 ++    800c:	fe c5 80 04 	sub r5,pc,-32764
 4.17332 ++	...
 4.17333 ++			8010: R_AVR32_32_CPENT	\.text
 4.17334 ++			8014: R_AVR32_32_CPENT	\.data
 4.17335 ++			8018: R_AVR32_32_CPENT	undefined
 4.17336 ++			801c: R_AVR32_32_CPENT	\.text\+0x1001c
 4.17337 ++
 4.17338 ++00010008 <far_positive>:
 4.17339 ++   10008:	fa cc 00 00 	sub r12,sp,0
 4.17340 ++	...
 4.17341 ++0001001c <toofar_positive>:
 4.17342 ++   1001c:	fe ce 00 00 	sub lr,pc,0
 4.17343 +--- /dev/null
 4.17344 ++++ b/gas/testsuite/gas/avr32/lda_nopic_linkrelax.d
 4.17345 +@@ -0,0 +1,41 @@
 4.17346 ++#source: lda.s
 4.17347 ++#as: --linkrelax
 4.17348 ++#objdump: -dr
 4.17349 ++#name: lda_nopic_linkrelax
 4.17350 ++
 4.17351 ++.*: +file format .*
 4.17352 ++
 4.17353 ++Disassembly of section \.text:
 4.17354 ++
 4.17355 ++00000000 <lda_test>:
 4.17356 ++       0:	f2 c8 00 00 	sub r8,r9,0
 4.17357 ++
 4.17358 ++00000004 <far_negative>:
 4.17359 ++       4:	f6 ca 00 00 	sub r10,r11,0
 4.17360 ++	\.\.\.
 4.17361 ++    8000:	48 00       	lddpc r0,8000 <far_negative\+0x7ffc>
 4.17362 ++			8000: R_AVR32_9W_CP	\.text\+0x800c
 4.17363 ++    8002:	48 01       	lddpc r1,8000 <far_negative\+0x7ffc>
 4.17364 ++			8002: R_AVR32_9W_CP	\.text\+0x8010
 4.17365 ++    8004:	48 02       	lddpc r2,8004 <far_negative\+0x8000>
 4.17366 ++			8004: R_AVR32_9W_CP	\.text\+0x8014
 4.17367 ++    8006:	48 03       	lddpc r3,8004 <far_negative\+0x8000>
 4.17368 ++			8006: R_AVR32_9W_CP	\.text\+0x8018
 4.17369 ++    8008:	48 04       	lddpc r4,8008 <far_negative\+0x8004>
 4.17370 ++			8008: R_AVR32_9W_CP	\.text\+0x801c
 4.17371 ++    800a:	48 05       	lddpc r5,8008 <far_negative\+0x8004>
 4.17372 ++			800a: R_AVR32_9W_CP	\.text\+0x8020
 4.17373 ++	\.\.\.
 4.17374 ++			800c: R_AVR32_ALIGN	\*ABS\*\+0x2
 4.17375 ++			800c: R_AVR32_32_CPENT	\.text\+0x4
 4.17376 ++			8010: R_AVR32_32_CPENT	\.text
 4.17377 ++			8014: R_AVR32_32_CPENT	\.data
 4.17378 ++			8018: R_AVR32_32_CPENT	undefined
 4.17379 ++			801c: R_AVR32_32_CPENT	\.text\+0x10020
 4.17380 ++			8020: R_AVR32_32_CPENT	\.text\+0x1000c
 4.17381 ++
 4.17382 ++0001000c <far_positive>:
 4.17383 ++   1000c:	fa cc 00 00 	sub r12,sp,0
 4.17384 ++	\.\.\.
 4.17385 ++00010020 <toofar_positive>:
 4.17386 ++   10020:	fe ce 00 00 	sub lr,pc,0
 4.17387 +--- /dev/null
 4.17388 ++++ b/gas/testsuite/gas/avr32/lda_pic.d
 4.17389 +@@ -0,0 +1,32 @@
 4.17390 ++#source: lda.s
 4.17391 ++#as: --pic
 4.17392 ++#objdump: -dr
 4.17393 ++#name: lda_pic
 4.17394 ++
 4.17395 ++.*: +file format .*
 4.17396 ++
 4.17397 ++Disassembly of section \.text:
 4.17398 ++
 4.17399 ++00000000 <lda_test>:
 4.17400 ++       0:	f2 c8 00 00 	sub r8,r9,0
 4.17401 ++
 4.17402 ++00000004 <far_negative>:
 4.17403 ++       4:	f6 ca 00 00 	sub r10,r11,0
 4.17404 ++	...
 4.17405 ++    8000:	fe c0 7f fc 	sub r0,pc,32764
 4.17406 ++    8004:	ec f1 00 00 	ld.w r1,r6\[0\]
 4.17407 ++			8004: R_AVR32_GOT16S	toofar_negative
 4.17408 ++    8008:	ec f2 00 00 	ld.w r2,r6\[0\]
 4.17409 ++			8008: R_AVR32_GOT16S	different_section
 4.17410 ++    800c:	ec f3 00 00 	ld.w r3,r6\[0\]
 4.17411 ++			800c: R_AVR32_GOT16S	undefined
 4.17412 ++    8010:	ec f4 00 00 	ld.w r4,r6\[0\]
 4.17413 ++			8010: R_AVR32_GOT16S	toofar_positive
 4.17414 ++    8014:	fe c5 80 14 	sub r5,pc,-32748
 4.17415 ++	...
 4.17416 ++
 4.17417 ++00010000 <far_positive>:
 4.17418 ++   10000:	fa cc 00 00 	sub r12,sp,0
 4.17419 ++	...
 4.17420 ++00010014 <toofar_positive>:
 4.17421 ++   10014:	fe ce 00 00 	sub lr,pc,0
 4.17422 +--- /dev/null
 4.17423 ++++ b/gas/testsuite/gas/avr32/lda_pic_linkrelax.d
 4.17424 +@@ -0,0 +1,40 @@
 4.17425 ++#source: lda.s
 4.17426 ++#as: --pic --linkrelax
 4.17427 ++#objdump: -dr
 4.17428 ++#name: lda_pic_linkrelax
 4.17429 ++
 4.17430 ++.*: +file format .*
 4.17431 ++
 4.17432 ++Disassembly of section \.text:
 4.17433 ++
 4.17434 ++00000000 <lda_test>:
 4.17435 ++       0:	f2 c8 00 00 	sub r8,r9,0
 4.17436 ++
 4.17437 ++00000004 <far_negative>:
 4.17438 ++       4:	f6 ca 00 00 	sub r10,r11,0
 4.17439 ++	...
 4.17440 ++    8000:	e0 60 00 00 	mov r0,0
 4.17441 ++			8000: R_AVR32_LDA_GOT	far_negative
 4.17442 ++    8004:	ec 00 03 20 	ld\.w r0,r6\[r0<<0x2\]
 4.17443 ++    8008:	e0 61 00 00 	mov r1,0
 4.17444 ++			8008: R_AVR32_LDA_GOT	toofar_negative
 4.17445 ++    800c:	ec 01 03 21 	ld\.w r1,r6\[r1<<0x2\]
 4.17446 ++    8010:	e0 62 00 00 	mov r2,0
 4.17447 ++			8010: R_AVR32_LDA_GOT	different_section
 4.17448 ++    8014:	ec 02 03 22 	ld\.w r2,r6\[r2<<0x2\]
 4.17449 ++    8018:	e0 63 00 00 	mov r3,0
 4.17450 ++			8018: R_AVR32_LDA_GOT	undefined
 4.17451 ++    801c:	ec 03 03 23 	ld\.w r3,r6\[r3<<0x2\]
 4.17452 ++    8020:	e0 64 00 00 	mov r4,0
 4.17453 ++			8020: R_AVR32_LDA_GOT	toofar_positive
 4.17454 ++    8024:	ec 04 03 24 	ld\.w r4,r6\[r4<<0x2\]
 4.17455 ++    8028:	e0 65 00 00 	mov r5,0
 4.17456 ++			8028: R_AVR32_LDA_GOT	far_positive
 4.17457 ++    802c:	ec 05 03 25 	ld\.w r5,r6\[r5<<0x2\]
 4.17458 ++	...
 4.17459 ++
 4.17460 ++00010018 <far_positive>:
 4.17461 ++   10018:	fa cc 00 00 	sub r12,sp,0
 4.17462 ++	...
 4.17463 ++0001002c <toofar_positive>:
 4.17464 ++   1002c:	fe ce 00 00 	sub lr,pc,0
 4.17465 +--- /dev/null
 4.17466 ++++ b/gas/testsuite/gas/avr32/lda.s
 4.17467 +@@ -0,0 +1,30 @@
 4.17468 ++
 4.17469 ++	.text
 4.17470 ++	.global lda_test
 4.17471 ++lda_test:
 4.17472 ++toofar_negative:
 4.17473 ++	sub	r8, r9, 0
 4.17474 ++far_negative:
 4.17475 ++	sub	r10, r11, 0
 4.17476 ++
 4.17477 ++	.fill	32760, 1, 0x00
 4.17478 ++
 4.17479 ++	lda.w	r0, far_negative
 4.17480 ++	lda.w	r1, toofar_negative
 4.17481 ++	lda.w	r2, different_section
 4.17482 ++	lda.w	r3, undefined
 4.17483 ++	lda.w	r4, toofar_positive
 4.17484 ++	lda.w	r5, far_positive
 4.17485 ++
 4.17486 ++	.cpool
 4.17487 ++
 4.17488 ++	.fill	32744, 1, 0x00
 4.17489 ++far_positive:
 4.17490 ++	sub	r12, sp, 0
 4.17491 ++	.fill	16, 1, 0x00
 4.17492 ++toofar_positive:
 4.17493 ++	sub	lr, pc, 0
 4.17494 ++
 4.17495 ++	.data
 4.17496 ++different_section:
 4.17497 ++	.long	0x12345678
 4.17498 +--- /dev/null
 4.17499 ++++ b/gas/testsuite/gas/avr32/pcrel.d
 4.17500 +@@ -0,0 +1,64 @@
 4.17501 ++#as:
 4.17502 ++#objdump: -dr
 4.17503 ++#name: pcrel
 4.17504 ++
 4.17505 ++.*: +file format .*
 4.17506 ++
 4.17507 ++Disassembly of section \.text:
 4.17508 ++
 4.17509 ++00000000 <test_rjmp>:
 4.17510 ++   0:	d7 03       	nop
 4.17511 ++   2:	c0 28       	rjmp 6 <test_rjmp\+0x6>
 4.17512 ++   4:	d7 03       	nop
 4.17513 ++   6:	e0 8f 00 00 	bral 6 <test_rjmp\+0x6>
 4.17514 ++			6: R_AVR32_22H_PCREL	extsym10
 4.17515 ++
 4.17516 ++0000000a <test_rcall>:
 4.17517 ++   a:	d7 03       	nop
 4.17518 ++0000000c <test_rcall2>:
 4.17519 ++   c:	c0 2c       	rcall 10 <test_rcall2\+0x4>
 4.17520 ++   e:	d7 03       	nop
 4.17521 ++  10:	e0 a0 00 00 	rcall 10 <test_rcall2\+0x4>
 4.17522 ++			10: R_AVR32_22H_PCREL	extsym21
 4.17523 ++
 4.17524 ++00000014 <test_branch>:
 4.17525 ++  14:	c0 31       	brne 1a <test_branch\+0x6>
 4.17526 ++  16:	e0 8f 00 00 	bral 16 <test_branch\+0x2>
 4.17527 ++			16: R_AVR32_22H_PCREL	test_branch
 4.17528 ++  1a:	e0 80 00 00 	breq 1a <test_branch\+0x6>
 4.17529 ++			1a: R_AVR32_22H_PCREL	extsym21
 4.17530 ++
 4.17531 ++0000001e <test_lddpc>:
 4.17532 ++  1e:	48 30       	lddpc r0,28 <sym1>
 4.17533 ++  20:	48 20       	lddpc r0,28 <sym1>
 4.17534 ++  22:	fe f0 00 00 	ld.w r0,pc\[0\]
 4.17535 ++			22: R_AVR32_16B_PCREL	extsym16
 4.17536 ++	\.\.\.
 4.17537 ++
 4.17538 ++00000028 <sym1>:
 4.17539 ++  28:	d7 03       	nop
 4.17540 ++  2a:	d7 03       	nop
 4.17541 ++
 4.17542 ++0000002c <test_local>:
 4.17543 ++  2c:	48 20       	lddpc r0,34 <test_local\+0x8>
 4.17544 ++  2e:	48 30       	lddpc r0,38 <test_local\+0xc>
 4.17545 ++  30:	48 20       	lddpc r0,38 <test_local\+0xc>
 4.17546 ++  32:	00 00       	add r0,r0
 4.17547 ++  34:	d7 03       	nop
 4.17548 ++  36:	d7 03       	nop
 4.17549 ++  38:	d7 03       	nop
 4.17550 ++  3a:	d7 03       	nop
 4.17551 ++
 4.17552 ++Disassembly of section \.text\.init:
 4.17553 ++
 4.17554 ++00000000 <test_inter_section>:
 4.17555 ++   0:	e0 a0 .. .. 	rcall [0-9a-f]+ <.*>
 4.17556 ++			0: R_AVR32_22H_PCREL	test_rcall
 4.17557 ++   4:	d7 03       	nop
 4.17558 ++   6:	e0 a0 .. .. 	rcall [0-9a-f]+ <.*>
 4.17559 ++			6: R_AVR32_22H_PCREL	test_rcall
 4.17560 ++   a:	e0 a0 .. .. 	rcall [0-9a-z]+ <.*>
 4.17561 ++			a: R_AVR32_22H_PCREL	\.text\+0xc
 4.17562 ++   e:	d7 03       	nop
 4.17563 ++  10:	e0 a0 .. .. 	rcall [0-9a-f]+ <.*>
 4.17564 ++			10: R_AVR32_22H_PCREL	\.text\+0xc
 4.17565 +--- /dev/null
 4.17566 ++++ b/gas/testsuite/gas/avr32/pcrel.s
 4.17567 +@@ -0,0 +1,57 @@
 4.17568 ++
 4.17569 ++        .text
 4.17570 ++        .global test_rjmp
 4.17571 ++test_rjmp:
 4.17572 ++        nop
 4.17573 ++        rjmp    0f
 4.17574 ++        nop
 4.17575 ++0:      rjmp    extsym10
 4.17576 ++
 4.17577 ++        .global test_rcall
 4.17578 ++test_rcall:
 4.17579 ++        nop
 4.17580 ++test_rcall2:
 4.17581 ++        rcall   0f
 4.17582 ++        nop
 4.17583 ++0:      rcall   extsym21
 4.17584 ++
 4.17585 ++        .global test_branch
 4.17586 ++test_branch:
 4.17587 ++        brne    0f
 4.17588 ++	/* This will generate a reloc since test_branch is global */
 4.17589 ++        bral    test_branch
 4.17590 ++0:	breq    extsym21
 4.17591 ++
 4.17592 ++        .global test_lddpc
 4.17593 ++test_lddpc:
 4.17594 ++        lddpc   r0,sym1
 4.17595 ++        lddpc   r0,sym1
 4.17596 ++        lddpc   r0,extsym16
 4.17597 ++
 4.17598 ++        .align	2
 4.17599 ++sym1:   nop
 4.17600 ++        nop
 4.17601 ++
 4.17602 ++	.global	test_local
 4.17603 ++test_local:
 4.17604 ++	lddpc	r0, .LC1
 4.17605 ++	lddpc	r0, .LC2
 4.17606 ++	lddpc	r0, .LC1 + 0x4
 4.17607 ++
 4.17608 ++	.align	2
 4.17609 ++.LC1:
 4.17610 ++	nop
 4.17611 ++	nop
 4.17612 ++.LC2:
 4.17613 ++	nop
 4.17614 ++	nop
 4.17615 ++
 4.17616 ++	.section .text.init,"ax"
 4.17617 ++	.global test_inter_section
 4.17618 ++test_inter_section:
 4.17619 ++	rcall	test_rcall
 4.17620 ++	nop
 4.17621 ++	rcall	test_rcall
 4.17622 ++	rcall	test_rcall2
 4.17623 ++	nop
 4.17624 ++	rcall	test_rcall2
 4.17625 +--- /dev/null
 4.17626 ++++ b/gas/testsuite/gas/avr32/pico.d
 4.17627 +@@ -0,0 +1,149 @@
 4.17628 ++#as:
 4.17629 ++#objdump: -dr
 4.17630 ++#name: pico
 4.17631 ++
 4.17632 ++.*: +file format .*
 4.17633 ++
 4.17634 ++Disassembly of section \.text:
 4.17635 ++
 4.17636 ++[0-9a-f]* <picosvmac>:
 4.17637 ++ *[0-9a-f]*:	e1 a6 20 00 	cop cp1,cr0,cr0,cr0,0xc
 4.17638 ++ *[0-9a-f]*:	e1 a7 2b bb 	cop cp1,cr11,cr11,cr11,0xe
 4.17639 ++ *[0-9a-f]*:	e1 a6 3a 05 	cop cp1,cr10,cr0,cr5,0xd
 4.17640 ++ *[0-9a-f]*:	e1 a7 36 90 	cop cp1,cr6,cr9,cr0,0xf
 4.17641 ++
 4.17642 ++[0-9a-f]* <picosvmul>:
 4.17643 ++ *[0-9a-f]*:	e1 a4 20 00 	cop cp1,cr0,cr0,cr0,0x8
 4.17644 ++ *[0-9a-f]*:	e1 a5 2b bb 	cop cp1,cr11,cr11,cr11,0xa
 4.17645 ++ *[0-9a-f]*:	e1 a4 3a 05 	cop cp1,cr10,cr0,cr5,0x9
 4.17646 ++ *[0-9a-f]*:	e1 a5 36 90 	cop cp1,cr6,cr9,cr0,0xb
 4.17647 ++
 4.17648 ++[0-9a-f]* <picovmac>:
 4.17649 ++ *[0-9a-f]*:	e1 a2 20 00 	cop cp1,cr0,cr0,cr0,0x4
 4.17650 ++ *[0-9a-f]*:	e1 a3 2b bb 	cop cp1,cr11,cr11,cr11,0x6
 4.17651 ++ *[0-9a-f]*:	e1 a2 3a 05 	cop cp1,cr10,cr0,cr5,0x5
 4.17652 ++ *[0-9a-f]*:	e1 a3 36 90 	cop cp1,cr6,cr9,cr0,0x7
 4.17653 ++
 4.17654 ++[0-9a-f]* <picovmul>:
 4.17655 ++ *[0-9a-f]*:	e1 a0 20 00 	cop cp1,cr0,cr0,cr0,0x0
 4.17656 ++ *[0-9a-f]*:	e1 a1 2b bb 	cop cp1,cr11,cr11,cr11,0x2
 4.17657 ++ *[0-9a-f]*:	e1 a0 3a 05 	cop cp1,cr10,cr0,cr5,0x1
 4.17658 ++ *[0-9a-f]*:	e1 a1 36 90 	cop cp1,cr6,cr9,cr0,0x3
 4.17659 ++
 4.17660 ++[0-9a-f]* <picold_d>:
 4.17661 ++ *[0-9a-f]*:	e9 af 3e ff 	ldc\.d cp1,cr14,pc\[0x3fc\]
 4.17662 ++ *[0-9a-f]*:	e9 a0 30 ff 	ldc\.d cp1,cr0,r0\[0x3fc\]
 4.17663 ++ *[0-9a-f]*:	e9 a0 30 00 	ldc\.d cp1,cr0,r0\[0x0\]
 4.17664 ++ *[0-9a-f]*:	ef a8 26 50 	ldc\.d cp1,cr6,--r8
 4.17665 ++ *[0-9a-f]*:	ef a7 28 50 	ldc\.d cp1,cr8,--r7
 4.17666 ++ *[0-9a-f]*:	ef aa 32 65 	ldc\.d cp1,cr2,r10\[r5<<0x2\]
 4.17667 ++ *[0-9a-f]*:	ef a3 3c 46 	ldc\.d cp1,cr12,r3\[r6\]
 4.17668 ++
 4.17669 ++[0-9a-f]* <picold_w>:
 4.17670 ++ *[0-9a-f]*:	e9 af 2f ff 	ldc\.w cp1,cr15,pc\[0x3fc\]
 4.17671 ++ *[0-9a-f]*:	e9 a0 20 ff 	ldc\.w cp1,cr0,r0\[0x3fc\]
 4.17672 ++ *[0-9a-f]*:	e9 a0 20 00 	ldc\.w cp1,cr0,r0\[0x0\]
 4.17673 ++ *[0-9a-f]*:	ef a8 27 40 	ldc\.w cp1,cr7,--r8
 4.17674 ++ *[0-9a-f]*:	ef a7 28 40 	ldc\.w cp1,cr8,--r7
 4.17675 ++ *[0-9a-f]*:	ef aa 31 25 	ldc\.w cp1,cr1,r10\[r5<<0x2\]
 4.17676 ++ *[0-9a-f]*:	ef a3 3d 06 	ldc\.w cp1,cr13,r3\[r6\]
 4.17677 ++
 4.17678 ++[0-9a-f]* <picoldm_d>:
 4.17679 ++ *[0-9a-f]*:	ed af 24 ff 	ldcm\.d cp1,pc,cr0-cr15
 4.17680 ++ *[0-9a-f]*:	ed a0 24 01 	ldcm\.d cp1,r0,cr0-cr1
 4.17681 ++ *[0-9a-f]*:	ed a7 24 80 	ldcm\.d cp1,r7,cr14-cr15
 4.17682 ++ *[0-9a-f]*:	ed a8 24 7f 	ldcm\.d cp1,r8,cr0-cr13
 4.17683 ++
 4.17684 ++[0-9a-f]* <picoldm_d_pu>:
 4.17685 ++ *[0-9a-f]*:	ed af 34 ff 	ldcm\.d cp1,pc\+\+,cr0-cr15
 4.17686 ++ *[0-9a-f]*:	ed a0 34 01 	ldcm\.d cp1,r0\+\+,cr0-cr1
 4.17687 ++ *[0-9a-f]*:	ed a7 34 80 	ldcm\.d cp1,r7\+\+,cr14-cr15
 4.17688 ++ *[0-9a-f]*:	ed a8 34 7f 	ldcm\.d cp1,r8\+\+,cr0-cr13
 4.17689 ++
 4.17690 ++[0-9a-f]* <picoldm_w>:
 4.17691 ++ *[0-9a-f]*:	ed af 20 ff 	ldcm\.w cp1,pc,cr0-cr7
 4.17692 ++ *[0-9a-f]*:	ed a0 20 01 	ldcm\.w cp1,r0,cr0
 4.17693 ++ *[0-9a-f]*:	ed a7 20 80 	ldcm\.w cp1,r7,cr7
 4.17694 ++ *[0-9a-f]*:	ed a8 20 7f 	ldcm\.w cp1,r8,cr0-cr6
 4.17695 ++ *[0-9a-f]*:	ed af 21 ff 	ldcm\.w cp1,pc,cr8-cr15
 4.17696 ++ *[0-9a-f]*:	ed a0 21 01 	ldcm\.w cp1,r0,cr8
 4.17697 ++ *[0-9a-f]*:	ed a7 21 80 	ldcm\.w cp1,r7,cr15
 4.17698 ++ *[0-9a-f]*:	ed a8 21 7f 	ldcm\.w cp1,r8,cr8-cr14
 4.17699 ++
 4.17700 ++[0-9a-f]* <picoldm_w_pu>:
 4.17701 ++ *[0-9a-f]*:	ed af 30 ff 	ldcm\.w cp1,pc\+\+,cr0-cr7
 4.17702 ++ *[0-9a-f]*:	ed a0 30 01 	ldcm\.w cp1,r0\+\+,cr0
 4.17703 ++ *[0-9a-f]*:	ed a7 30 80 	ldcm\.w cp1,r7\+\+,cr7
 4.17704 ++ *[0-9a-f]*:	ed a8 30 7f 	ldcm\.w cp1,r8\+\+,cr0-cr6
 4.17705 ++ *[0-9a-f]*:	ed af 31 ff 	ldcm\.w cp1,pc\+\+,cr8-cr15
 4.17706 ++ *[0-9a-f]*:	ed a0 31 01 	ldcm\.w cp1,r0\+\+,cr8
 4.17707 ++ *[0-9a-f]*:	ed a7 31 80 	ldcm\.w cp1,r7\+\+,cr15
 4.17708 ++ *[0-9a-f]*:	ed a8 31 7f 	ldcm\.w cp1,r8\+\+,cr8-cr14
 4.17709 ++
 4.17710 ++[0-9a-f]* <picomv_d>:
 4.17711 ++ *[0-9a-f]*:	ef ae 2e 30 	mvrc\.d cp1,cr14,lr
 4.17712 ++ *[0-9a-f]*:	ef a0 20 30 	mvrc\.d cp1,cr0,r0
 4.17713 ++ *[0-9a-f]*:	ef a8 26 30 	mvrc\.d cp1,cr6,r8
 4.17714 ++ *[0-9a-f]*:	ef a6 28 30 	mvrc\.d cp1,cr8,r6
 4.17715 ++ *[0-9a-f]*:	ef ae 2e 10 	mvcr\.d cp1,lr,cr14
 4.17716 ++ *[0-9a-f]*:	ef a0 20 10 	mvcr\.d cp1,r0,cr0
 4.17717 ++ *[0-9a-f]*:	ef a8 26 10 	mvcr\.d cp1,r8,cr6
 4.17718 ++ *[0-9a-f]*:	ef a6 28 10 	mvcr\.d cp1,r6,cr8
 4.17719 ++
 4.17720 ++[0-9a-f]* <picomv_w>:
 4.17721 ++ *[0-9a-f]*:	ef af 2f 20 	mvrc\.w cp1,cr15,pc
 4.17722 ++ *[0-9a-f]*:	ef a0 20 20 	mvrc\.w cp1,cr0,r0
 4.17723 ++ *[0-9a-f]*:	ef a8 27 20 	mvrc\.w cp1,cr7,r8
 4.17724 ++ *[0-9a-f]*:	ef a7 28 20 	mvrc\.w cp1,cr8,r7
 4.17725 ++ *[0-9a-f]*:	ef af 2f 00 	mvcr\.w cp1,pc,cr15
 4.17726 ++ *[0-9a-f]*:	ef a0 20 00 	mvcr\.w cp1,r0,cr0
 4.17727 ++ *[0-9a-f]*:	ef a8 27 00 	mvcr\.w cp1,r8,cr7
 4.17728 ++ *[0-9a-f]*:	ef a7 28 00 	mvcr\.w cp1,r7,cr8
 4.17729 ++
 4.17730 ++[0-9a-f]* <picost_d>:
 4.17731 ++ *[0-9a-f]*:	eb af 3e ff 	stc\.d cp1,pc\[0x3fc\],cr14
 4.17732 ++ *[0-9a-f]*:	eb a0 30 00 	stc\.d cp1,r0\[0x0\],cr0
 4.17733 ++ *[0-9a-f]*:	ef a8 26 70 	stc\.d cp1,r8\+\+,cr6
 4.17734 ++ *[0-9a-f]*:	ef a7 28 70 	stc\.d cp1,r7\+\+,cr8
 4.17735 ++ *[0-9a-f]*:	ef aa 32 e5 	stc\.d cp1,r10\[r5<<0x2\],cr2
 4.17736 ++ *[0-9a-f]*:	ef a3 3c c6 	stc\.d cp1,r3\[r6\],cr12
 4.17737 ++
 4.17738 ++[0-9a-f]* <picost_w>:
 4.17739 ++ *[0-9a-f]*:	eb af 2f ff 	stc\.w cp1,pc\[0x3fc\],cr15
 4.17740 ++ *[0-9a-f]*:	eb a0 20 00 	stc\.w cp1,r0\[0x0\],cr0
 4.17741 ++ *[0-9a-f]*:	ef a8 27 60 	stc\.w cp1,r8\+\+,cr7
 4.17742 ++ *[0-9a-f]*:	ef a7 28 60 	stc\.w cp1,r7\+\+,cr8
 4.17743 ++ *[0-9a-f]*:	ef aa 31 a5 	stc\.w cp1,r10\[r5<<0x2\],cr1
 4.17744 ++ *[0-9a-f]*:	ef a3 3d 86 	stc\.w cp1,r3\[r6\],cr13
 4.17745 ++
 4.17746 ++[0-9a-f]* <picostm_d>:
 4.17747 ++ *[0-9a-f]*:	ed af 25 ff 	stcm\.d cp1,pc,cr0-cr15
 4.17748 ++ *[0-9a-f]*:	ed a0 25 01 	stcm\.d cp1,r0,cr0-cr1
 4.17749 ++ *[0-9a-f]*:	ed a7 25 80 	stcm\.d cp1,r7,cr14-cr15
 4.17750 ++ *[0-9a-f]*:	ed a8 25 7f 	stcm\.d cp1,r8,cr0-cr13
 4.17751 ++
 4.17752 ++[0-9a-f]* <picostm_d_pu>:
 4.17753 ++ *[0-9a-f]*:	ed af 35 ff 	stcm\.d cp1,--pc,cr0-cr15
 4.17754 ++ *[0-9a-f]*:	ed a0 35 01 	stcm\.d cp1,--r0,cr0-cr1
 4.17755 ++ *[0-9a-f]*:	ed a7 35 80 	stcm\.d cp1,--r7,cr14-cr15
 4.17756 ++ *[0-9a-f]*:	ed a8 35 7f 	stcm\.d cp1,--r8,cr0-cr13
 4.17757 ++
 4.17758 ++[0-9a-f]* <picostm_w>:
 4.17759 ++ *[0-9a-f]*:	ed af 22 ff 	stcm\.w cp1,pc,cr0-cr7
 4.17760 ++ *[0-9a-f]*:	ed a0 22 01 	stcm\.w cp1,r0,cr0
 4.17761 ++ *[0-9a-f]*:	ed a7 22 80 	stcm\.w cp1,r7,cr7
 4.17762 ++ *[0-9a-f]*:	ed a8 22 7f 	stcm\.w cp1,r8,cr0-cr6
 4.17763 ++ *[0-9a-f]*:	ed af 23 ff 	stcm\.w cp1,pc,cr8-cr15
 4.17764 ++ *[0-9a-f]*:	ed a0 23 01 	stcm\.w cp1,r0,cr8
 4.17765 ++ *[0-9a-f]*:	ed a7 23 80 	stcm\.w cp1,r7,cr15
 4.17766 ++ *[0-9a-f]*:	ed a8 23 7f 	stcm\.w cp1,r8,cr8-cr14
 4.17767 ++
 4.17768 ++[0-9a-f]* <picostm_w_pu>:
 4.17769 ++ *[0-9a-f]*:	ed af 32 ff 	stcm\.w cp1,--pc,cr0-cr7
 4.17770 ++ *[0-9a-f]*:	ed a0 32 01 	stcm\.w cp1,--r0,cr0
 4.17771 ++ *[0-9a-f]*:	ed a7 32 80 	stcm\.w cp1,--r7,cr7
 4.17772 ++ *[0-9a-f]*:	ed a8 32 7f 	stcm\.w cp1,--r8,cr0-cr6
 4.17773 ++ *[0-9a-f]*:	ed af 33 ff 	stcm\.w cp1,--pc,cr8-cr15
 4.17774 ++ *[0-9a-f]*:	ed a0 33 01 	stcm\.w cp1,--r0,cr8
 4.17775 ++ *[0-9a-f]*:	ed a7 33 80 	stcm\.w cp1,--r7,cr15
 4.17776 ++ *[0-9a-f]*:	ed a8 33 7f 	stcm\.w cp1,--r8,cr8-cr14
 4.17777 +--- /dev/null
 4.17778 ++++ b/gas/testsuite/gas/avr32/pico.s
 4.17779 +@@ -0,0 +1,144 @@
 4.17780 ++
 4.17781 ++	.text
 4.17782 ++	.global	picosvmac
 4.17783 ++picosvmac:
 4.17784 ++	picosvmac	out0, in0, in0, in0
 4.17785 ++	picosvmac	out2, in11, in11, in11
 4.17786 ++	picosvmac	out1, in10, in0, in5
 4.17787 ++	picosvmac	out3, in6, in9, in0
 4.17788 ++	.global picosvmul
 4.17789 ++picosvmul:
 4.17790 ++	picosvmul	out0, in0, in0, in0
 4.17791 ++	picosvmul	out2, in11, in11, in11
 4.17792 ++	picosvmul	out1, in10, in0, in5
 4.17793 ++	picosvmul	out3, in6, in9, in0
 4.17794 ++	.global picovmac
 4.17795 ++picovmac:
 4.17796 ++	picovmac	out0, in0, in0, in0
 4.17797 ++	picovmac	out2, in11, in11, in11
 4.17798 ++	picovmac	out1, in10, in0, in5
 4.17799 ++	picovmac	out3, in6, in9, in0
 4.17800 ++	.global picovmul
 4.17801 ++picovmul:
 4.17802 ++	picovmul	out0, in0, in0, in0
 4.17803 ++	picovmul	out2, in11, in11, in11
 4.17804 ++	picovmul	out1, in10, in0, in5
 4.17805 ++	picovmul	out3, in6, in9, in0
 4.17806 ++	.global	picold_d
 4.17807 ++picold_d:
 4.17808 ++	picold.d	vmu2_out, pc[1020]
 4.17809 ++	picold.d	inpix2, r0[1020]
 4.17810 ++	picold.d	inpix2, r0[0]
 4.17811 ++	picold.d	coeff0_a, --r8
 4.17812 ++	picold.d	coeff1_a, --r7
 4.17813 ++	picold.d	inpix0, r10[r5 << 2]
 4.17814 ++	picold.d	vmu0_out, r3[r6 << 0]
 4.17815 ++	.global	picold_w
 4.17816 ++picold_w:	
 4.17817 ++	picold.w	config, pc[1020]
 4.17818 ++	picold.w	inpix2, r0[1020]
 4.17819 ++	picold.w	inpix2, r0[0]
 4.17820 ++	picold.w	coeff0_b, --r8
 4.17821 ++	picold.w	coeff1_a, --r7
 4.17822 ++	picold.w	inpix1, r10[r5 << 2]
 4.17823 ++	picold.w	vmu1_out, r3[r6 << 0]
 4.17824 ++	.global	picoldm_d
 4.17825 ++picoldm_d:
 4.17826 ++	picoldm.d	pc, inpix2-config
 4.17827 ++	picoldm.d	r0, inpix2, inpix1
 4.17828 ++	picoldm.d	r7, vmu2_out, config
 4.17829 ++	picoldm.d	r8, inpix2-vmu1_out
 4.17830 ++	.global	picoldm_d_pu
 4.17831 ++picoldm_d_pu:
 4.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
 4.17833 ++	picoldm.d	r0++, inpix2, inpix1
 4.17834 ++	picoldm.d	r7++, vmu2_out, config
 4.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
 4.17836 ++	.global	picoldm_w
 4.17837 ++picoldm_w:
 4.17838 ++	picoldm.w	pc, inpix2-coeff0_b
 4.17839 ++	picoldm.w	r0, inpix2
 4.17840 ++	picoldm.w	r7, coeff0_b
 4.17841 ++	picoldm.w	r8, inpix2-coeff0_a
 4.17842 ++	picoldm.w	pc, coeff1_a-config
 4.17843 ++	picoldm.w	r0, coeff1_a
 4.17844 ++	picoldm.w	r7, config
 4.17845 ++	picoldm.w	r8, coeff1_a-vmu2_out
 4.17846 ++	.global	picoldm_w_pu
 4.17847 ++picoldm_w_pu:
 4.17848 ++	picoldm.w	pc++, inpix2-coeff0_b
 4.17849 ++	picoldm.w	r0++, inpix2
 4.17850 ++	picoldm.w	r7++, coeff0_b
 4.17851 ++	picoldm.w	r8++, inpix2-coeff0_a
 4.17852 ++	picoldm.w	pc++, coeff1_a-config
 4.17853 ++	picoldm.w	r0++, coeff1_a
 4.17854 ++	picoldm.w	r7++, config
 4.17855 ++	picoldm.w	r8++, coeff1_a-vmu2_out
 4.17856 ++	.global	picomv_d
 4.17857 ++picomv_d:
 4.17858 ++	picomv.d	vmu2_out, lr
 4.17859 ++	picomv.d	inpix2, r0
 4.17860 ++	picomv.d	coeff0_a, r8
 4.17861 ++	picomv.d	coeff1_a, r6
 4.17862 ++	picomv.d	pc, vmu2_out
 4.17863 ++	picomv.d	r0, inpix2
 4.17864 ++	picomv.d	r8, coeff0_a
 4.17865 ++	picomv.d	r6, coeff1_a
 4.17866 ++	.global	picomv_w
 4.17867 ++picomv_w:
 4.17868 ++	picomv.w	config, pc
 4.17869 ++	picomv.w	inpix2, r0
 4.17870 ++	picomv.w	coeff0_b, r8
 4.17871 ++	picomv.w	coeff1_a, r7
 4.17872 ++	picomv.w	pc, config
 4.17873 ++	picomv.w	r0, inpix2
 4.17874 ++	picomv.w	r8, coeff0_b
 4.17875 ++	picomv.w	r7, coeff1_a
 4.17876 ++	.global	picost_d
 4.17877 ++picost_d:
 4.17878 ++	picost.d	pc[1020], vmu2_out
 4.17879 ++	picost.d	r0[0], inpix2
 4.17880 ++	picost.d	r8++, coeff0_a
 4.17881 ++	picost.d	r7++, coeff1_a
 4.17882 ++	picost.d	r10[r5 << 2], inpix0
 4.17883 ++	picost.d	r3[r6 << 0], vmu0_out
 4.17884 ++	.global	picost_w
 4.17885 ++picost_w:	
 4.17886 ++	picost.w	pc[1020], config
 4.17887 ++	picost.w	r0[0], inpix2
 4.17888 ++	picost.w	r8++, coeff0_b
 4.17889 ++	picost.w	r7++, coeff1_a
 4.17890 ++	picost.w	r10[r5 << 2], inpix1
 4.17891 ++	picost.w	r3[r6 << 0], vmu1_out
 4.17892 ++	.global	picostm_d
 4.17893 ++picostm_d:
 4.17894 ++	picostm.d	pc, inpix2-config
 4.17895 ++	picostm.d	r0, inpix2, inpix1
 4.17896 ++	picostm.d	r7, vmu2_out, config
 4.17897 ++	picostm.d	r8, inpix2-vmu1_out
 4.17898 ++	.global	picostm_d_pu
 4.17899 ++picostm_d_pu:
 4.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
 4.17901 ++	picostm.d	--r0, inpix2, inpix1
 4.17902 ++	picostm.d	--r7, vmu2_out, config
 4.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
 4.17904 ++	.global	picostm_w
 4.17905 ++picostm_w:
 4.17906 ++	picostm.w	pc, inpix2-coeff0_b
 4.17907 ++	picostm.w	r0, inpix2
 4.17908 ++	picostm.w	r7, coeff0_b
 4.17909 ++	picostm.w	r8, inpix2-coeff0_a
 4.17910 ++	picostm.w	pc, coeff1_a-config
 4.17911 ++	picostm.w	r0, coeff1_a
 4.17912 ++	picostm.w	r7, config
 4.17913 ++	picostm.w	r8, coeff1_a-vmu2_out
 4.17914 ++	.global	picostm_w_pu
 4.17915 ++picostm_w_pu:
 4.17916 ++	picostm.w	--pc, inpix2-coeff0_b
 4.17917 ++	picostm.w	--r0, inpix2
 4.17918 ++	picostm.w	--r7, coeff0_b
 4.17919 ++	picostm.w	--r8, inpix2-coeff0_a
 4.17920 ++	picostm.w	--pc, coeff1_a-config
 4.17921 ++	picostm.w	--r0, coeff1_a
 4.17922 ++	picostm.w	--r7, config
 4.17923 ++	picostm.w	--r8, coeff1_a-vmu2_out
 4.17924 +--- /dev/null
 4.17925 ++++ b/gas/testsuite/gas/avr32/pic_reloc.d
 4.17926 +@@ -0,0 +1,27 @@
 4.17927 ++#as:
 4.17928 ++#objdump: -dr
 4.17929 ++#name: pic_reloc
 4.17930 ++
 4.17931 ++.*: +file format .*
 4.17932 ++
 4.17933 ++Disassembly of section \.text:
 4.17934 ++
 4.17935 ++00000000 <mcall_got>:
 4.17936 ++   0:	f0 16 00 00 	mcall r6\[0\]
 4.17937 ++			0: R_AVR32_GOT18SW	extfunc
 4.17938 ++   4:	f0 16 00 00 	mcall r6\[0\]
 4.17939 ++			4: R_AVR32_GOT18SW	\.L1
 4.17940 ++   8:	f0 16 00 00 	mcall r6\[0\]
 4.17941 ++			8: R_AVR32_GOT18SW	\.L2
 4.17942 ++   c:	f0 16 00 00 	mcall r6\[0\]
 4.17943 ++			c: R_AVR32_GOT18SW	mcall_got
 4.17944 ++
 4.17945 ++00000010 <ldw_got>:
 4.17946 ++  10:	ec f0 00 00 	ld.w r0,r6\[0\]
 4.17947 ++			10: R_AVR32_GOT16S	extvar
 4.17948 ++  14:	ec f0 00 00 	ld.w r0,r6\[0\]
 4.17949 ++			14: R_AVR32_GOT16S	\.L3
 4.17950 ++  18:	ec f0 00 00 	ld.w r0,r6\[0\]
 4.17951 ++			18: R_AVR32_GOT16S	\.L4
 4.17952 ++  1c:	ec f0 00 00 	ld.w r0,r6\[0\]
 4.17953 ++			1c: R_AVR32_GOT16S	ldw_got
 4.17954 +--- /dev/null
 4.17955 ++++ b/gas/testsuite/gas/avr32/pic_reloc.s
 4.17956 +@@ -0,0 +1,18 @@
 4.17957 ++
 4.17958 ++	.text
 4.17959 ++	.global	mcall_got
 4.17960 ++mcall_got:
 4.17961 ++.L1:
 4.17962 ++	mcall	r6[extfunc@got]
 4.17963 ++	mcall	r6[.L1@got]
 4.17964 ++	mcall	r6[.L2@got]
 4.17965 ++	mcall	r6[mcall_got@got]
 4.17966 ++.L2:
 4.17967 ++
 4.17968 ++	.global	ldw_got
 4.17969 ++ldw_got:
 4.17970 ++.L3:	ld.w	r0,r6[extvar@got]
 4.17971 ++	ld.w	r0,r6[.L3@got]
 4.17972 ++	ld.w	r0,r6[.L4@got]
 4.17973 ++	ld.w	r0,r6[ldw_got@got]
 4.17974 ++.L4:
 4.17975 +--- /dev/null
 4.17976 ++++ b/gas/testsuite/gas/avr32/symdiff.d
 4.17977 +@@ -0,0 +1,24 @@
 4.17978 ++#source: symdiff.s
 4.17979 ++#as:
 4.17980 ++#objdump: -dr
 4.17981 ++#name: symdiff
 4.17982 ++
 4.17983 ++.*: +file format .*
 4.17984 ++
 4.17985 ++Disassembly of section \.text:
 4.17986 ++
 4.17987 ++00000000 <diff32>:
 4.17988 ++   0:	00 00       	add r0,r0
 4.17989 ++   2:	00 04       	add r4,r0
 4.17990 ++
 4.17991 ++00000004 <diff16>:
 4.17992 ++   4:	00 04       	add r4,r0
 4.17993 ++
 4.17994 ++00000006 <diff8>:
 4.17995 ++   6:	04 00       	add r0,r2
 4.17996 ++
 4.17997 ++00000008 <symdiff_test>:
 4.17998 ++   8:	d7 03       	nop
 4.17999 ++   a:	d7 03       	nop
 4.18000 ++   c:	d7 03       	nop
 4.18001 ++   e:	d7 03       	nop
 4.18002 +--- /dev/null
 4.18003 ++++ b/gas/testsuite/gas/avr32/symdiff_linkrelax.d
 4.18004 +@@ -0,0 +1,28 @@
 4.18005 ++#source: symdiff.s
 4.18006 ++#as: --linkrelax
 4.18007 ++#objdump: -dr
 4.18008 ++#name: symdiff_linkrelax
 4.18009 ++
 4.18010 ++.*: +file format .*
 4.18011 ++
 4.18012 ++Disassembly of section \.text:
 4.18013 ++
 4.18014 ++00000000 <diff32>:
 4.18015 ++   0:	00 00       	add r0,r0
 4.18016 ++			0: R_AVR32_DIFF32	\.text\+0xa
 4.18017 ++   2:	00 04       	add r4,r0
 4.18018 ++
 4.18019 ++00000004 <diff16>:
 4.18020 ++   4:	00 04       	add r4,r0
 4.18021 ++			4: R_AVR32_DIFF16	\.text\+0xa
 4.18022 ++
 4.18023 ++00000006 <diff8>:
 4.18024 ++   6:	04 00       	add r0,r2
 4.18025 ++			6: R_AVR32_DIFF8	\.text\+0xa
 4.18026 ++			7: R_AVR32_ALIGN	\*ABS\*\+0x1
 4.18027 ++
 4.18028 ++00000008 <symdiff_test>:
 4.18029 ++   8:	d7 03       	nop
 4.18030 ++   a:	d7 03       	nop
 4.18031 ++   c:	d7 03       	nop
 4.18032 ++   e:	d7 03       	nop
 4.18033 +--- /dev/null
 4.18034 ++++ b/gas/testsuite/gas/avr32/symdiff.s
 4.18035 +@@ -0,0 +1,19 @@
 4.18036 ++
 4.18037 ++	.text
 4.18038 ++	.global	diff32
 4.18039 ++diff32:
 4.18040 ++	.long	.L2 - .L1
 4.18041 ++	.global	diff16
 4.18042 ++diff16:
 4.18043 ++	.short	.L2 - .L1
 4.18044 ++	.global	diff8
 4.18045 ++diff8:
 4.18046 ++	.byte	.L2 - .L1
 4.18047 ++
 4.18048 ++	.global	symdiff_test
 4.18049 ++	.align	1
 4.18050 ++symdiff_test:
 4.18051 ++	nop
 4.18052 ++.L1:	nop
 4.18053 ++	nop
 4.18054 ++.L2:	nop
 4.18055 +--- a/gas/write.c
 4.18056 ++++ b/gas/write.c
 4.18057 +@@ -1955,6 +1955,10 @@ relax_frag (segT segment, fragS *fragP, 
 4.18058 + 
 4.18059 + #endif /* defined (TC_GENERIC_RELAX_TABLE)  */
 4.18060 + 
 4.18061 ++#ifdef TC_RELAX_ALIGN
 4.18062 ++#define RELAX_ALIGN(SEG, FRAG, ADDR) TC_RELAX_ALIGN(SEG, FRAG, ADDR)
 4.18063 ++#else
 4.18064 ++#define RELAX_ALIGN(SEG, FRAG, ADDR) relax_align(ADDR, (FRAG)->fr_offset)
 4.18065 + /* Relax_align. Advance location counter to next address that has 'alignment'
 4.18066 +    lowest order bits all 0s, return size of adjustment made.  */
 4.18067 + static relax_addressT
 4.18068 +@@ -1974,6 +1978,7 @@ relax_align (register relax_addressT add
 4.18069 + #endif
 4.18070 +   return (new_address - address);
 4.18071 + }
 4.18072 ++#endif
 4.18073 + 
 4.18074 + /* Now we have a segment, not a crowd of sub-segments, we can make
 4.18075 +    fr_address values.
 4.18076 +@@ -2017,7 +2022,7 @@ relax_segment (struct frag *segment_frag
 4.18077 + 	case rs_align_code:
 4.18078 + 	case rs_align_test:
 4.18079 + 	  {
 4.18080 +-	    addressT offset = relax_align (address, (int) fragP->fr_offset);
 4.18081 ++	    addressT offset = RELAX_ALIGN(segment, fragP, address);
 4.18082 + 
 4.18083 + 	    if (fragP->fr_subtype != 0 && offset > fragP->fr_subtype)
 4.18084 + 	      offset = 0;
 4.18085 +@@ -2218,10 +2223,10 @@ relax_segment (struct frag *segment_frag
 4.18086 + 		{
 4.18087 + 		  addressT oldoff, newoff;
 4.18088 + 
 4.18089 +-		  oldoff = relax_align (was_address + fragP->fr_fix,
 4.18090 +-					(int) offset);
 4.18091 +-		  newoff = relax_align (address + fragP->fr_fix,
 4.18092 +-					(int) offset);
 4.18093 ++		  oldoff = RELAX_ALIGN (segment, fragP,
 4.18094 ++					was_address + fragP->fr_fix);
 4.18095 ++		  newoff = RELAX_ALIGN (segment, fragP,
 4.18096 ++					address + fragP->fr_fix);
 4.18097 + 
 4.18098 + 		  if (fragP->fr_subtype != 0)
 4.18099 + 		    {
 4.18100 +--- a/include/dis-asm.h
 4.18101 ++++ b/include/dis-asm.h
 4.18102 +@@ -204,13 +204,14 @@ typedef struct disassemble_info
 4.18103 + 
 4.18104 + } disassemble_info;
 4.18105 + 
 4.18106 +-
 4.18107 ++
 4.18108 + /* Standard disassemblers.  Disassemble one instruction at the given
 4.18109 +    target address.  Return number of octets processed.  */
 4.18110 + typedef int (*disassembler_ftype) (bfd_vma, disassemble_info *);
 4.18111 + 
 4.18112 + extern int print_insn_alpha		(bfd_vma, disassemble_info *);
 4.18113 + extern int print_insn_avr		(bfd_vma, disassemble_info *);
 4.18114 ++extern int print_insn_avr32		(bfd_vma, disassemble_info *);
 4.18115 + extern int print_insn_bfin		(bfd_vma, disassemble_info *);
 4.18116 + extern int print_insn_big_arm		(bfd_vma, disassemble_info *);
 4.18117 + extern int print_insn_big_mips		(bfd_vma, disassemble_info *);
 4.18118 +@@ -242,7 +243,7 @@ extern int print_insn_little_arm	(bfd_vm
 4.18119 + extern int print_insn_little_mips	(bfd_vma, disassemble_info *);
 4.18120 + extern int print_insn_little_or32	(bfd_vma, disassemble_info *);
 4.18121 + extern int print_insn_little_powerpc	(bfd_vma, disassemble_info *);
 4.18122 +-extern int print_insn_little_score      (bfd_vma, disassemble_info *); 
 4.18123 ++extern int print_insn_little_score      (bfd_vma, disassemble_info *);
 4.18124 + extern int print_insn_m32c	        (bfd_vma, disassemble_info *);
 4.18125 + extern int print_insn_m32r		(bfd_vma, disassemble_info *);
 4.18126 + extern int print_insn_m68hc11		(bfd_vma, disassemble_info *);
 4.18127 +@@ -290,7 +291,9 @@ extern void print_i386_disassembler_opti
 4.18128 + extern void print_mips_disassembler_options (FILE *);
 4.18129 + extern void print_ppc_disassembler_options (FILE *);
 4.18130 + extern void print_arm_disassembler_options (FILE *);
 4.18131 ++extern void print_avr32_disassembler_options (FILE *);
 4.18132 + extern void parse_arm_disassembler_option (char *);
 4.18133 ++extern void parse_avr32_disassembler_option (char *);
 4.18134 + extern int  get_arm_regname_num_options (void);
 4.18135 + extern int  set_arm_regname_option (int);
 4.18136 + extern int  get_arm_regnames (int, const char **, const char **, const char *const **);
 4.18137 +@@ -306,7 +309,7 @@ extern void disassemble_init_for_target 
 4.18138 + /* Document any target specific options available from the disassembler.  */
 4.18139 + extern void disassembler_usage (FILE *);
 4.18140 + 
 4.18141 +-
 4.18142 ++
 4.18143 + /* This block of definitions is for particular callers who read instructions
 4.18144 +    into a buffer before calling the instruction decoder.  */
 4.18145 + 
 4.18146 +--- /dev/null
 4.18147 ++++ b/include/elf/avr32.h
 4.18148 +@@ -0,0 +1,98 @@
 4.18149 ++/* AVR32 ELF support for BFD.
 4.18150 ++   Copyright 2003-2006 Atmel Corporation.
 4.18151 ++
 4.18152 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
 4.18153 ++
 4.18154 ++   This file is part of BFD, the Binary File Descriptor library.
 4.18155 ++
 4.18156 ++   This program is free software; you can redistribute it and/or
 4.18157 ++   modify it under the terms of the GNU General Public License as
 4.18158 ++   published by the Free Software Foundation; either version 2 of the
 4.18159 ++   License, or (at your option) any later version.
 4.18160 ++
 4.18161 ++   This program is distributed in the hope that it will be useful, but
 4.18162 ++   WITHOUT ANY WARRANTY; without even the implied warranty of
 4.18163 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 4.18164 ++   General Public License for more details.
 4.18165 ++
 4.18166 ++   You should have received a copy of the GNU General Public License
 4.18167 ++   along with this program; if not, write to the Free Software
 4.18168 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 4.18169 ++   02111-1307, USA.  */
 4.18170 ++
 4.18171 ++#include "elf/reloc-macros.h"
 4.18172 ++
 4.18173 ++/* CPU-specific flags for the ELF header e_flags field */
 4.18174 ++#define EF_AVR32_LINKRELAX		0x01
 4.18175 ++#define EF_AVR32_PIC			0x02
 4.18176 ++
 4.18177 ++START_RELOC_NUMBERS (elf_avr32_reloc_type)
 4.18178 ++    RELOC_NUMBER (R_AVR32_NONE,			0)
 4.18179 ++
 4.18180 ++    /* Data Relocations */
 4.18181 ++    RELOC_NUMBER (R_AVR32_32,			1)
 4.18182 ++    RELOC_NUMBER (R_AVR32_16,			2)
 4.18183 ++    RELOC_NUMBER (R_AVR32_8,			3)
 4.18184 ++    RELOC_NUMBER (R_AVR32_32_PCREL,		4)
 4.18185 ++    RELOC_NUMBER (R_AVR32_16_PCREL,		5)
 4.18186 ++    RELOC_NUMBER (R_AVR32_8_PCREL,		6)
 4.18187 ++    RELOC_NUMBER (R_AVR32_DIFF32,		7)
 4.18188 ++    RELOC_NUMBER (R_AVR32_DIFF16,		8)
 4.18189 ++    RELOC_NUMBER (R_AVR32_DIFF8,		9)
 4.18190 ++    RELOC_NUMBER (R_AVR32_GOT32,		10)
 4.18191 ++    RELOC_NUMBER (R_AVR32_GOT16,		11)
 4.18192 ++    RELOC_NUMBER (R_AVR32_GOT8,			12)
 4.18193 ++
 4.18194 ++    /* Normal Code Relocations */
 4.18195 ++    RELOC_NUMBER (R_AVR32_21S,			13)
 4.18196 ++    RELOC_NUMBER (R_AVR32_16U,			14)
 4.18197 ++    RELOC_NUMBER (R_AVR32_16S,			15)
 4.18198 ++    RELOC_NUMBER (R_AVR32_8S,			16)
 4.18199 ++    RELOC_NUMBER (R_AVR32_8S_EXT,		17)
 4.18200 ++
 4.18201 ++    /* PC-Relative Code Relocations */
 4.18202 ++    RELOC_NUMBER (R_AVR32_22H_PCREL,		18)
 4.18203 ++    RELOC_NUMBER (R_AVR32_18W_PCREL,		19)
 4.18204 ++    RELOC_NUMBER (R_AVR32_16B_PCREL,		20)
 4.18205 ++    RELOC_NUMBER (R_AVR32_16N_PCREL,		21)
 4.18206 ++    RELOC_NUMBER (R_AVR32_14UW_PCREL,		22)
 4.18207 ++    RELOC_NUMBER (R_AVR32_11H_PCREL,		23)
 4.18208 ++    RELOC_NUMBER (R_AVR32_10UW_PCREL,		24)
 4.18209 ++    RELOC_NUMBER (R_AVR32_9H_PCREL,		25)
 4.18210 ++    RELOC_NUMBER (R_AVR32_9UW_PCREL,		26)
 4.18211 ++
 4.18212 ++    /* Special Code Relocations */
 4.18213 ++    RELOC_NUMBER (R_AVR32_HI16,			27)
 4.18214 ++    RELOC_NUMBER (R_AVR32_LO16,			28)
 4.18215 ++
 4.18216 ++    /* PIC Relocations */
 4.18217 ++    RELOC_NUMBER (R_AVR32_GOTPC,		29)
 4.18218 ++    RELOC_NUMBER (R_AVR32_GOTCALL,		30)
 4.18219 ++    RELOC_NUMBER (R_AVR32_LDA_GOT,		31)
 4.18220 ++    RELOC_NUMBER (R_AVR32_GOT21S,		32)
 4.18221 ++    RELOC_NUMBER (R_AVR32_GOT18SW,		33)
 4.18222 ++    RELOC_NUMBER (R_AVR32_GOT16S,		34)
 4.18223 ++    RELOC_NUMBER (R_AVR32_GOT7UW,		35)
 4.18224 ++
 4.18225 ++    /* Constant Pool Relocations */
 4.18226 ++    RELOC_NUMBER (R_AVR32_32_CPENT,		36)
 4.18227 ++    RELOC_NUMBER (R_AVR32_CPCALL,		37)
 4.18228 ++    RELOC_NUMBER (R_AVR32_16_CP,		38)
 4.18229 ++    RELOC_NUMBER (R_AVR32_9W_CP,		39)
 4.18230 ++
 4.18231 ++    /* Dynamic Relocations */
 4.18232 ++    RELOC_NUMBER (R_AVR32_RELATIVE,		40)
 4.18233 ++    RELOC_NUMBER (R_AVR32_GLOB_DAT,		41)
 4.18234 ++    RELOC_NUMBER (R_AVR32_JMP_SLOT,		42)
 4.18235 ++
 4.18236 ++    /* Linkrelax Information */
 4.18237 ++    RELOC_NUMBER (R_AVR32_ALIGN,		43)
 4.18238 ++
 4.18239 ++    RELOC_NUMBER (R_AVR32_15S,		        44)
 4.18240 ++
 4.18241 ++END_RELOC_NUMBERS (R_AVR32_max)
 4.18242 ++
 4.18243 ++/* Processor specific dynamic array tags.  */
 4.18244 ++
 4.18245 ++/* The total size in bytes of the Global Offset Table */
 4.18246 ++#define DT_AVR32_GOTSZ			0x70000001
 4.18247 +--- a/include/elf/common.h
 4.18248 ++++ b/include/elf/common.h
 4.18249 +@@ -259,6 +259,9 @@
 4.18250 + /* V850 backend magic number.  Written in the absense of an ABI.  */
 4.18251 + #define EM_CYGNUS_V850		0x9080
 4.18252 + 
 4.18253 ++/* AVR32 magic number, picked by IAR Systems. */
 4.18254 ++#define EM_AVR32		0x18ad
 4.18255 ++
 4.18256 + /* old S/390 backend magic number. Written in the absence of an ABI.  */
 4.18257 + #define EM_S390_OLD		0xa390
 4.18258 + 
 4.18259 +--- a/ld/configdoc.texi
 4.18260 ++++ b/ld/configdoc.texi
 4.18261 +@@ -7,6 +7,7 @@
 4.18262 + @set H8300
 4.18263 + @set HPPA
 4.18264 + @set I960
 4.18265 ++@set AVR32
 4.18266 + @set M68HC11
 4.18267 + @set MMIX
 4.18268 + @set MSP430
 4.18269 +--- a/ld/configure.tgt
 4.18270 ++++ b/ld/configure.tgt
 4.18271 +@@ -109,6 +109,9 @@ xscale-*-elf)		targ_emul=armelf
 4.18272 + avr-*-*)		targ_emul=avr2
 4.18273 + 			targ_extra_emuls="avr1 avr3 avr4 avr5 avr6"
 4.18274 + 			;;
 4.18275 ++avr32-*-none)       targ_emul=avr32elf_ap7000
 4.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" ;;
 4.18277 ++avr32-*-linux*)     targ_emul=avr32linux ;;
 4.18278 + bfin-*-elf)		targ_emul=elf32bfin;
 4.18279 + 			targ_extra_emuls="elf32bfinfd"
 4.18280 + 			targ_extra_libpath=$targ_extra_emuls
 4.18281 +--- /dev/null
 4.18282 ++++ b/ld/emulparams/avr32elf.sh
 4.18283 +@@ -0,0 +1,163 @@
 4.18284 ++# This script is called from ld/genscript.sh 
 4.18285 ++# There is a difference on how 'bash' and POSIX handles 
 4.18286 ++# the  '.' (source) command in a script.
 4.18287 ++# genscript.sh calls this script with argument ${EMULATION_NAME}
 4.18288 ++# but that will fail on POSIX compilant shells like 'sh' or 'dash'
 4.18289 ++# therefor I use the variable directly instead of $1 
 4.18290 ++EMULATION=${EMULATION_NAME}
 4.18291 ++SCRIPT_NAME=elf_xip
 4.18292 ++TEMPLATE_NAME=elf32
 4.18293 ++EXTRA_EM_FILE=avr32elf
 4.18294 ++OUTPUT_FORMAT="elf32-avr32"
 4.18295 ++ARCH=avr32
 4.18296 ++MAXPAGESIZE=4096
 4.18297 ++ENTRY=_start
 4.18298 ++EMBEDDED=yes
 4.18299 ++NO_SMALL_DATA=yes
 4.18300 ++NOP=0xd703d703
 4.18301 ++
 4.18302 ++DATA_SEGMENT_ALIGN=8
 4.18303 ++BSS_ALIGNMENT=8
 4.18304 ++
 4.18305 ++RO_LMA_REGION="FLASH"
 4.18306 ++RO_VMA_REGION="FLASH"
 4.18307 ++RW_LMA_REGION="FLASH"
 4.18308 ++RW_VMA_REGION="CPUSRAM"
 4.18309 ++
 4.18310 ++STACK_SIZE=0x1000
 4.18311 ++STACK_ADDR="ORIGIN(CPUSRAM) + LENGTH(CPUSRAM) - ${STACK_SIZE}"
 4.18312 ++
 4.18313 ++DATA_SEGMENT_END="__heap_start__ = ALIGN(8);
 4.18314 ++  . = ${STACK_ADDR};
 4.18315 ++  __heap_end__ = .;"
 4.18316 ++
 4.18317 ++case "$EMULATION" in
 4.18318 ++avr32elf_ap*)
 4.18319 ++    MACHINE=ap
 4.18320 ++    INITIAL_READONLY_SECTIONS=".reset : {  *(.reset) } >FLASH AT>FLASH
 4.18321 ++    . = . & 0x9fffffff;"
 4.18322 ++    TEXT_START_ADDR=0xa0000000
 4.18323 ++    case "$EMULATION" in
 4.18324 ++	    avr32elf_ap700[0-2])
 4.18325 ++	       MEMORY="MEMORY
 4.18326 ++  {
 4.18327 ++	FLASH (rxai) : ORIGIN = 0x00000000, LENGTH = 64M
 4.18328 ++	CPUSRAM (rwxa) : ORIGIN = 0x24000000, LENGTH = 32K
 4.18329 ++  }"
 4.18330 ++        ;;
 4.18331 ++    avr32elf_ap7200)
 4.18332 ++        MEMORY="MEMORY
 4.18333 ++  {
 4.18334 ++    FLASH (rxai) : ORIGIN = 0x00000000, LENGTH = 64M
 4.18335 ++    CPUSRAM (rwxa) : ORIGIN = 0x08000000, LENGTH = 64K
 4.18336 ++  }"
 4.18337 ++        ;;
 4.18338 ++    esac
 4.18339 ++    ;;
 4.18340 ++
 4.18341 ++avr32elf_uc3*)
 4.18342 ++    MACHINE=uc
 4.18343 ++    INITIAL_READONLY_SECTIONS=".reset : {  *(.reset) } >FLASH AT>FLASH"
 4.18344 ++    TEXT_START_ADDR=0x80000000
 4.18345 ++    OTHER_SECTIONS=".userpage :  {	*(.userpage .userpage.*)  } >USERPAGE AT>USERPAGE
 4.18346 ++  	.factorypage :  {	*(.factorypage .factorypage.*)  } >FACTORYPAGE AT>FACTORYPAGE"
 4.18347 ++
 4.18348 ++    case "$EMULATION" in
 4.18349 ++    avr32elf_uc3a[01]512*)
 4.18350 ++       MEMORY="MEMORY
 4.18351 ++  {
 4.18352 ++    FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 512K
 4.18353 ++    CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 64K
 4.18354 ++	USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
 4.18355 ++	FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
 4.18356 ++  }"
 4.18357 ++        ;;
 4.18358 ++
 4.18359 ++    avr32elf_uc3a[01]256)
 4.18360 ++        MEMORY="MEMORY
 4.18361 ++  {
 4.18362 ++    FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 256K
 4.18363 ++    CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 64K
 4.18364 ++	USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
 4.18365 ++	FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
 4.18366 ++  }"
 4.18367 ++        ;;
 4.18368 ++
 4.18369 ++    avr32elf_uc3b[01]256*)
 4.18370 ++        MEMORY="MEMORY
 4.18371 ++  {
 4.18372 ++    FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 256K
 4.18373 ++    CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 32K
 4.18374 ++	USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
 4.18375 ++	FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
 4.18376 ++  }"
 4.18377 ++        ;;
 4.18378 ++
 4.18379 ++    avr32elf_uc3[ab][01]128)
 4.18380 ++        MEMORY="MEMORY
 4.18381 ++  {
 4.18382 ++    FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 128K
 4.18383 ++    CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 32K
 4.18384 ++	USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
 4.18385 ++	FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
 4.18386 ++  }"
 4.18387 ++        ;;
 4.18388 ++
 4.18389 ++    avr32elf_uc3b[01]64)
 4.18390 ++        MEMORY="MEMORY
 4.18391 ++  {
 4.18392 ++    FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 64K
 4.18393 ++    CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 16K
 4.18394 ++	USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
 4.18395 ++	FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
 4.18396 ++  }"
 4.18397 ++        ;;
 4.18398 ++
 4.18399 ++    avr32elf_uc3a3256*)
 4.18400 ++        MEMORY="MEMORY
 4.18401 ++  {
 4.18402 ++    FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 256K
 4.18403 ++    CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 64K
 4.18404 ++    HSBSRAM (wxa!ri) : ORIGIN = 0xFF000000, LENGTH = 64K
 4.18405 ++	USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
 4.18406 ++	FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
 4.18407 ++  }"
 4.18408 ++  		OTHER_SECTIONS ="${OTHER_SECTIONS}
 4.18409 ++  	.hsbsram       : { *(.hsbsram .hsbsram.*) } >HSBSRAM AT>FLASH :FLASH
 4.18410 ++"
 4.18411 ++  		
 4.18412 ++        ;;
 4.18413 ++
 4.18414 ++    avr32elf_uc3a3128*)
 4.18415 ++        MEMORY="MEMORY
 4.18416 ++  {
 4.18417 ++    FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 128K
 4.18418 ++    CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 64K
 4.18419 ++    HSBSRAM (wxa!ri) : ORIGIN = 0xFF000000, LENGTH = 64K
 4.18420 ++    USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
 4.18421 ++    FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
 4.18422 ++  }"
 4.18423 ++  		OTHER_SECTIONS ="${OTHER_SECTIONS}
 4.18424 ++  	.hsbsram       : { *(.hsbsram .hsbsram.*) } >HSBSRAM AT>FLASH :FLASH
 4.18425 ++"
 4.18426 ++        ;;
 4.18427 ++
 4.18428 ++    avr32elf_uc3a364*)
 4.18429 ++        MEMORY="MEMORY
 4.18430 ++  {
 4.18431 ++    FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 64K
 4.18432 ++    CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 64K
 4.18433 ++    HSBSRAM (wxa!ri) : ORIGIN = 0xFF000000, LENGTH = 64K
 4.18434 ++	USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
 4.18435 ++	FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
 4.18436 ++  }"
 4.18437 ++  		OTHER_SECTIONS ="${OTHER_SECTIONS}
 4.18438 ++  	.hsbsram       : { *(.hsbsram .hsbsram.*) } >HSBSRAM AT>FLASH :FLASH
 4.18439 ++"
 4.18440 ++        ;;
 4.18441 ++
 4.18442 ++
 4.18443 ++    esac
 4.18444 ++    ;;
 4.18445 ++
 4.18446 ++esac
 4.18447 +--- /dev/null
 4.18448 ++++ b/ld/emulparams/avr32linux.sh
 4.18449 +@@ -0,0 +1,14 @@
 4.18450 ++ARCH=avr32
 4.18451 ++SCRIPT_NAME=elf
 4.18452 ++TEMPLATE_NAME=elf32
 4.18453 ++EXTRA_EM_FILE=avr32elf
 4.18454 ++OUTPUT_FORMAT="elf32-avr32"
 4.18455 ++GENERATE_SHLIB_SCRIPT=yes
 4.18456 ++MAXPAGESIZE=0x1000
 4.18457 ++TEXT_START_ADDR=0x00001000
 4.18458 ++NOP=0xd703d703
 4.18459 ++
 4.18460 ++# This appears to place the GOT before the data section, which is
 4.18461 ++# essential for uClinux.  We don't use those .s* sections on AVR32
 4.18462 ++# anyway, so it shouldn't hurt for regular Linux either...
 4.18463 ++NO_SMALL_DATA=yes
 4.18464 +--- /dev/null
 4.18465 ++++ b/ld/emultempl/avr32elf.em
 4.18466 +@@ -0,0 +1,133 @@
 4.18467 ++# This shell script emits a C file. -*- C -*-
 4.18468 ++#   Copyright (C) 2007 Atmel Corporation
 4.18469 ++#
 4.18470 ++# This file is part of GLD, the Gnu Linker.
 4.18471 ++#
 4.18472 ++# This program is free software; you can redistribute it and/or modify
 4.18473 ++# it under the terms of the GNU General Public License as published by
 4.18474 ++# the Free Software Foundation; either version 2 of the License, or
 4.18475 ++# (at your option) any later version.
 4.18476 ++#
 4.18477 ++# This program is distributed in the hope that it will be useful,
 4.18478 ++# but WITHOUT ANY WARRANTY; without even the implied warranty of
 4.18479 ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 4.18480 ++# GNU General Public License for more details.
 4.18481 ++#
 4.18482 ++# You should have received a copy of the GNU General Public License
 4.18483 ++# along with this program; if not, write to the Free Software
 4.18484 ++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
 4.18485 ++#
 4.18486 ++
 4.18487 ++# This file is sourced from elf32.em, and defines extra avr32-elf
 4.18488 ++# specific routines.
 4.18489 ++#
 4.18490 ++
 4.18491 ++# Generate linker script for writable rodata
 4.18492 ++LD_FLAG=rodata-writable
 4.18493 ++DATA_ALIGNMENT=${DATA_ALIGNMENT_}
 4.18494 ++RELOCATING=" "
 4.18495 ++WRITABLE_RODATA=" "
 4.18496 ++( echo "/* Linker script for writable rodata */"
 4.18497 ++  . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
 4.18498 ++  . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
 4.18499 ++) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xwr
 4.18500 ++
 4.18501 ++
 4.18502 ++cat >> e${EMULATION_NAME}.c <<EOF
 4.18503 ++
 4.18504 ++#include "libbfd.h"
 4.18505 ++#include "elf32-avr32.h"
 4.18506 ++
 4.18507 ++/* Whether to allow direct references (sub or mov) to SEC_DATA and
 4.18508 ++   !SEC_CONTENTS sections when optimizing.  Not enabled by default
 4.18509 ++   since it might cause link errors.  */
 4.18510 ++static int direct_data_refs = 0;
 4.18511 ++
 4.18512 ++static void avr32_elf_after_open (void)
 4.18513 ++{
 4.18514 ++  bfd_elf32_avr32_set_options (&link_info, direct_data_refs);
 4.18515 ++  gld${EMULATION_NAME}_after_open ();
 4.18516 ++}
 4.18517 ++
 4.18518 ++static int rodata_writable = 0;
 4.18519 ++
 4.18520 ++static char * gld${EMULATION_NAME}_get_script (int *isfile);
 4.18521 ++
 4.18522 ++static char * avr32_elf_get_script (int *isfile)
 4.18523 ++{
 4.18524 ++  if ( rodata_writable )
 4.18525 ++    {
 4.18526 ++EOF
 4.18527 ++if test -n "$COMPILE_IN"
 4.18528 ++then
 4.18529 ++# Scripts compiled in.
 4.18530 ++
 4.18531 ++# sed commands to quote an ld script as a C string.
 4.18532 ++sc="-f stringify.sed"
 4.18533 ++
 4.18534 ++cat >>e${EMULATION_NAME}.c <<EOF
 4.18535 ++      *isfile = 0;
 4.18536 ++      return
 4.18537 ++EOF
 4.18538 ++sed $sc ldscripts/${EMULATION_NAME}.xwr			>> e${EMULATION_NAME}.c
 4.18539 ++echo  ';'	                                        >> e${EMULATION_NAME}.c
 4.18540 ++else
 4.18541 ++# Scripts read from the filesystem.
 4.18542 ++
 4.18543 ++cat >>e${EMULATION_NAME}.c <<EOF
 4.18544 ++      *isfile = 1;
 4.18545 ++      return "ldscripts/${EMULATION_NAME}.xwr";
 4.18546 ++EOF
 4.18547 ++fi
 4.18548 ++
 4.18549 ++cat >>e${EMULATION_NAME}.c <<EOF
 4.18550 ++    }
 4.18551 ++  return gld${EMULATION_NAME}_get_script (isfile);
 4.18552 ++}
 4.18553 ++
 4.18554 ++
 4.18555 ++EOF
 4.18556 ++
 4.18557 ++# Define some shell vars to insert bits of code into the standard elf
 4.18558 ++# parse_args and list_options functions.
 4.18559 ++#
 4.18560 ++PARSE_AND_LIST_PROLOGUE='
 4.18561 ++#define OPTION_DIRECT_DATA		300
 4.18562 ++#define OPTION_NO_DIRECT_DATA		301
 4.18563 ++#define OPTION_RODATA_WRITABLE		302
 4.18564 ++#define OPTION_NO_RODATA_WRITABLE	303
 4.18565 ++'
 4.18566 ++
 4.18567 ++PARSE_AND_LIST_LONGOPTS='
 4.18568 ++  { "direct-data", no_argument, NULL, OPTION_DIRECT_DATA },
 4.18569 ++  { "no-direct-data", no_argument, NULL, OPTION_NO_DIRECT_DATA },
 4.18570 ++  { "rodata-writable", no_argument, NULL, OPTION_RODATA_WRITABLE },
 4.18571 ++  { "no-rodata-writable", no_argument, NULL, OPTION_NO_RODATA_WRITABLE },
 4.18572 ++'
 4.18573 ++
 4.18574 ++PARSE_AND_LIST_OPTIONS='
 4.18575 ++  fprintf (file, _("  --direct-data\t\tAllow direct data references when optimizing\n"));
 4.18576 ++  fprintf (file, _("  --no-direct-data\tDo not allow direct data references when optimizing\n"));
 4.18577 ++  fprintf (file, _("  --rodata-writable\tPut read-only data in writable data section\n"));
 4.18578 ++  fprintf (file, _("  --no-rodata-writable\tDo not put read-only data in writable data section\n"));
 4.18579 ++'
 4.18580 ++
 4.18581 ++PARSE_AND_LIST_ARGS_CASES='
 4.18582 ++    case OPTION_DIRECT_DATA:
 4.18583 ++      direct_data_refs = 1;
 4.18584 ++      break;
 4.18585 ++    case OPTION_NO_DIRECT_DATA:
 4.18586 ++      direct_data_refs = 0;
 4.18587 ++      break;
 4.18588 ++    case OPTION_RODATA_WRITABLE:
 4.18589 ++      rodata_writable = 1;
 4.18590 ++      break;
 4.18591 ++    case OPTION_NO_RODATA_WRITABLE:
 4.18592 ++      rodata_writable = 0;
 4.18593 ++      break;
 4.18594 ++'
 4.18595 ++
 4.18596 ++# Replace some of the standard ELF functions with our own versions.
 4.18597 ++#
 4.18598 ++LDEMUL_AFTER_OPEN=avr32_elf_after_open
 4.18599 ++LDEMUL_GET_SCRIPT=avr32_elf_get_script
 4.18600 +--- a/ld/ld.info
 4.18601 ++++ b/ld/ld.info
 4.18602 +@@ -4347,6 +4347,8 @@ not listed.
 4.18603 + 
 4.18604 + * ARM::				`ld' and the ARM family
 4.18605 + 
 4.18606 ++* AVR32::                       `ld' and AVR32 processors
 4.18607 ++
 4.18608 + * HPPA ELF32::                  `ld' and HPPA 32-bit ELF
 4.18609 + 
 4.18610 + * MMIX::			`ld' and MMIX
 4.18611 +@@ -4487,7 +4489,7 @@ PIC.  This avoids problems on uClinux ta
 4.18612 + used to generate relocatable binaries.
 4.18613 + 
 4.18614 + 
 4.18615 +-File: ld.info,  Node: ARM,  Next: HPPA ELF32,  Prev: i960,  Up: Machine Dependent
 4.18616 ++File: ld.info,  Node: ARM,  Next: AV32,  Prev: i960,  Up: Machine Dependent
 4.18617 + 
 4.18618 + 4.4 `ld' and the ARM family
 4.18619 + ===========================
 4.18620 +@@ -4588,7 +4590,31 @@ enumeration values fitted into the small
 4.18621 + diagnosed.
 4.18622 + 
 4.18623 + 
 4.18624 +-File: ld.info,  Node: HPPA ELF32,  Next: MMIX,  Prev: ARM,  Up: Machine Dependent
 4.18625 ++File: ld.info,  Node: AVR32,  Next: HPPA ELF32,  Prev: ARM,  Up: Machine Dependent
 4.18626 ++
 4.18627 ++4.4 `ld' and AVR32 processors
 4.18628 ++=============================
 4.18629 ++
 4.18630 ++`--direct-data'
 4.18631 ++
 4.18632 ++`--no-direct-data'
 4.18633 ++     Taking the address of a symbol can often be done by using a direct
 4.18634 ++     `mov' or pc-relative `sub' instruction, which is faster than using
 4.18635 ++     a PC- or GOT-relative load, especially on the uC3 processors.
 4.18636 ++     However, this does not always work when dealing with symbols in
 4.18637 ++     the `.data' section so this optimization is disabled by default.
 4.18638 ++
 4.18639 ++     Specifying `--direct-data' will enable this optimization. Note
 4.18640 ++     that this may cause `relocation truncated to fit' errors for
 4.18641 ++     certain large programs. If this happens, the optimization can be
 4.18642 ++     turned off by specifying `--no-direct-data'.
 4.18643 ++
 4.18644 ++     All known issues with direct data optimizations are detected at
 4.18645 ++     link time, so if the linker doesn't complain, the result should
 4.18646 ++     run just fine.
 4.18647 ++
 4.18648 ++
 4.18649 ++File: ld.info,  Node: HPPA ELF32,  Next: MMIX,  Prev: AVR32,  Up: Machine Dependent
 4.18650 + 
 4.18651 + 4.5 `ld' and HPPA 32-bit ELF Support
 4.18652 + ====================================
 4.18653 +@@ -6336,6 +6362,7 @@ LD Index
 4.18654 + * --no-check-sections:                   Options.            (line  765)
 4.18655 + * --no-define-common:                    Options.            (line  787)
 4.18656 + * --no-demangle:                         Options.            (line  816)
 4.18657 ++* --no-direct-data:                      AVR32.              (line    6)
 4.18658 + * --no-dotsyms:                          PowerPC64 ELF64.    (line   33)
 4.18659 + * --no-enum-size-warning:                ARM.                (line   94)
 4.18660 + * --no-gc-sections:                      Options.            (line  848)
 4.18661 +@@ -6534,6 +6561,7 @@ LD Index
 4.18662 + * AT(LMA):                               Output Section LMA. (line    6)
 4.18663 + * AT>LMA_REGION:                         Output Section LMA. (line    6)
 4.18664 + * automatic data imports:                WIN32.              (line  170)
 4.18665 ++* AVR32 options:                         AVR32.              (line    6)
 4.18666 + * back end:                              BFD.                (line    6)
 4.18667 + * BASE (MRI):                            MRI.                (line   54)
 4.18668 + * BE8:                                   ARM.                (line   23)
 4.18669 +@@ -7018,6 +7046,7 @@ Node: H8/300183897
 4.18670 + Node: i960185522
 4.18671 + Node: M68HC11/68HC12187207
 4.18672 + Node: ARM188910
 4.18673 ++Node: AVR32182578
 4.18674 + Node: HPPA ELF32193760
 4.18675 + Node: MMIX195383
 4.18676 + Node: MSP430196600
 4.18677 +--- a/ld/ld.texinfo
 4.18678 ++++ b/ld/ld.texinfo
 4.18679 +@@ -21,6 +21,7 @@
 4.18680 + @set UsesEnvVars
 4.18681 + @set GENERIC
 4.18682 + @set ARM
 4.18683 ++@set AVR32
 4.18684 + @set H8300
 4.18685 + @set HPPA
 4.18686 + @set I960
 4.18687 +@@ -139,6 +140,9 @@ section entitled ``GNU Free Documentatio
 4.18688 + @ifset ARM
 4.18689 + * ARM::				ld and the ARM family
 4.18690 + @end ifset
 4.18691 ++@ifset AVR32
 4.18692 ++* AVR32::                       ld and AVR32 processors
 4.18693 ++@end ifset
 4.18694 + @ifset HPPA
 4.18695 + * HPPA ELF32::                  ld and HPPA 32-bit ELF
 4.18696 + @end ifset
 4.18697 +@@ -5248,6 +5252,9 @@ functionality are not listed.
 4.18698 + @ifset ARM
 4.18699 + * ARM::				@command{ld} and the ARM family
 4.18700 + @end ifset
 4.18701 ++@ifset AVR32
 4.18702 ++* AVR32::                       @command{ld} and AVR32 processors
 4.18703 ++@end ifset
 4.18704 + @ifset HPPA
 4.18705 + * HPPA ELF32::                  @command{ld} and HPPA 32-bit ELF
 4.18706 + @end ifset
 4.18707 +@@ -5589,6 +5596,52 @@ not be diagnosed.
 4.18708 + @end ifclear
 4.18709 + @end ifset
 4.18710 + 
 4.18711 ++@ifset AVR32
 4.18712 ++@ifclear GENERIC
 4.18713 ++@raisesections
 4.18714 ++@end ifclear
 4.18715 ++
 4.18716 ++@node AVR32
 4.18717 ++@section @command{ld} and AVR32 processors
 4.18718 ++@cindex AVR32 options
 4.18719 ++@table @option
 4.18720 ++@kindex --direct-data
 4.18721 ++@kindex --no-direct-data
 4.18722 ++@item --direct-data
 4.18723 ++@item --no-direct-data
 4.18724 ++Taking the address of a symbol can often be done by using a direct
 4.18725 ++@code{mov} or pc-relative @code{sub} instruction, which is faster than
 4.18726 ++using a PC- or GOT-relative load, especially on the uC3
 4.18727 ++processors. However, this does not always work when dealing with
 4.18728 ++symbols in the @code{.data} section so this optimization is disabled
 4.18729 ++by default.
 4.18730 ++
 4.18731 ++Specifying @option{--direct-data} will enable this optimization. Note
 4.18732 ++that this may cause @samp{relocation truncated to fit} errors for
 4.18733 ++certain large programs. If this happens, the optimization can be
 4.18734 ++turned off by specifying @option{--no-direct-data}.
 4.18735 ++
 4.18736 ++All known issues with direct data optimizations are detected at link
 4.18737 ++time, so if the linker doesn't complain, the result should run just
 4.18738 ++fine.
 4.18739 ++
 4.18740 ++@kindex --rodata-writable
 4.18741 ++@kindex --no-rodata-writable
 4.18742 ++@item --rodata-writable
 4.18743 ++@item --no-rodata-writable
 4.18744 ++Using the @option{--rodata-writable} options will cause the linker
 4.18745 ++to try and use a linker script where read-only data will be placed
 4.18746 ++in the same section as writable data. This can give great performance 
 4.18747 ++gain on cacheless processors where read-only data normally is placed in
 4.18748 ++flash, and writable data is placed in internal sram. This will however 
 4.18749 ++come at the expence of a larger memory footprint.
 4.18750 ++@end table
 4.18751 ++
 4.18752 ++@ifclear GENERIC
 4.18753 ++@lowersections
 4.18754 ++@end ifclear
 4.18755 ++@end ifset
 4.18756 ++
 4.18757 + @ifset HPPA
 4.18758 + @ifclear GENERIC
 4.18759 + @raisesections
 4.18760 +--- a/ld/Makefile.am
 4.18761 ++++ b/ld/Makefile.am
 4.18762 +@@ -137,7 +137,34 @@ ALL_EMULATIONS = \
 4.18763 + 	eavr3.o \
 4.18764 + 	eavr4.o \
 4.18765 + 	eavr5.o \
 4.18766 +-	eavr6.o \
 4.18767 ++    eavr6.o \
 4.18768 ++	eavr32elf_ap7000.o \
 4.18769 ++	eavr32elf_ap7001.o \
 4.18770 ++	eavr32elf_ap7002.o \
 4.18771 ++	eavr32elf_ap7200.o \
 4.18772 ++	eavr32elf_uc3a0128.o \
 4.18773 ++	eavr32elf_uc3a0256.o \
 4.18774 ++	eavr32elf_uc3a0512.o \
 4.18775 ++	eavr32elf_uc3a0512es.o \
 4.18776 ++	eavr32elf_uc3a1128.o \
 4.18777 ++	eavr32elf_uc3a1256.o \
 4.18778 ++	eavr32elf_uc3a1512es.o \
 4.18779 ++	eavr32elf_uc3a1512.o \
 4.18780 ++	eavr32elf_uc3a364.o \
 4.18781 ++	eavr32elf_uc3a364s.o \
 4.18782 ++	eavr32elf_uc3a3128.o \
 4.18783 ++	eavr32elf_uc3a3128s.o \
 4.18784 ++	eavr32elf_uc3a3256.o \
 4.18785 ++	eavr32elf_uc3a3256s.o \
 4.18786 ++	eavr32elf_uc3b064.o \
 4.18787 ++	eavr32elf_uc3b0128.o \
 4.18788 ++	eavr32elf_uc3b0256es.o \
 4.18789 ++	eavr32elf_uc3b0256.o \
 4.18790 ++	eavr32elf_uc3b164.o \
 4.18791 ++	eavr32elf_uc3b1128.o \
 4.18792 ++	eavr32elf_uc3b1256es.o \
 4.18793 ++	eavr32elf_uc3b1256.o \
 4.18794 ++	eavr32linux.o \
 4.18795 + 	ecoff_i860.o \
 4.18796 + 	ecoff_sparc.o \
 4.18797 + 	eelf32_spu.o \
 4.18798 +@@ -622,6 +649,114 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
 4.18799 +   $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
 4.18800 +   ${GEN_DEPENDS}
 4.18801 + 	${GENSCRIPTS} avr6 "$(tdir_avr2)"
 4.18802 ++eavr32elf_ap7000.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18803 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18804 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18805 ++	${GENSCRIPTS} avr32elf_ap7000 "$(tdir_avr32)" avr32elf
 4.18806 ++eavr32elf_ap7001.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18807 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18808 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18809 ++	${GENSCRIPTS} avr32elf_ap7001 "$(tdir_avr32)" avr32elf
 4.18810 ++eavr32elf_ap7002.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18811 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18812 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18813 ++	${GENSCRIPTS} avr32elf_ap7002 "$(tdir_avr32)" avr32elf
 4.18814 ++eavr32elf_ap7200.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18815 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18816 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18817 ++	${GENSCRIPTS} avr32elf_ap7200 "$(tdir_avr32)" avr32elf
 4.18818 ++eavr32elf_uc3a0128.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18819 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18820 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18821 ++	${GENSCRIPTS} avr32elf_uc3a0128 "$(tdir_avr32)" avr32elf
 4.18822 ++eavr32elf_uc3a0256.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18823 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18824 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18825 ++	${GENSCRIPTS} avr32elf_uc3a0256 "$(tdir_avr32)" avr32elf
 4.18826 ++eavr32elf_uc3a0512.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18827 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18828 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18829 ++	${GENSCRIPTS} avr32elf_uc3a0512 "$(tdir_avr32)" avr32elf
 4.18830 ++eavr32elf_uc3a0512es.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18831 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18832 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18833 ++	${GENSCRIPTS} avr32elf_uc3a0512es "$(tdir_avr32)" avr32elf
 4.18834 ++eavr32elf_uc3a1128.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18835 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18836 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18837 ++	${GENSCRIPTS} avr32elf_uc3a1128 "$(tdir_avr32)" avr32elf
 4.18838 ++eavr32elf_uc3a1256.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18839 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18840 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18841 ++	${GENSCRIPTS} avr32elf_uc3a1256 "$(tdir_avr32)" avr32elf
 4.18842 ++eavr32elf_uc3a1512.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18843 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18844 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18845 ++	${GENSCRIPTS} avr32elf_uc3a1512 "$(tdir_avr32)" avr32elf
 4.18846 ++eavr32elf_uc3a1512es.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18847 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18848 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18849 ++	${GENSCRIPTS} avr32elf_uc3a1512es "$(tdir_avr32)" avr32elf
 4.18850 ++eavr32elf_uc3a364.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18851 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18852 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18853 ++	${GENSCRIPTS} avr32elf_uc3a364 "$(tdir_avr32)" avr32elf
 4.18854 ++eavr32elf_uc3a364s.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18855 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18856 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18857 ++	${GENSCRIPTS} avr32elf_uc3a364s "$(tdir_avr32)" avr32elf
 4.18858 ++eavr32elf_uc3a3128.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18859 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18860 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18861 ++	${GENSCRIPTS} avr32elf_uc3a3128 "$(tdir_avr32)" avr32elf
 4.18862 ++eavr32elf_uc3a3128s.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18863 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18864 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18865 ++	${GENSCRIPTS} avr32elf_uc3a3128s "$(tdir_avr32)" avr32elf
 4.18866 ++eavr32elf_uc3a3256.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18867 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18868 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18869 ++	${GENSCRIPTS} avr32elf_uc3a3256 "$(tdir_avr32)" avr32elf
 4.18870 ++eavr32elf_uc3a3256s.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18871 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18872 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18873 ++	${GENSCRIPTS} avr32elf_uc3a3256s "$(tdir_avr32)" avr32elf
 4.18874 ++eavr32elf_uc3b064.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18875 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18876 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18877 ++	${GENSCRIPTS} avr32elf_uc3b064 "$(tdir_avr32)" avr32elf
 4.18878 ++eavr32elf_uc3b0128.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18879 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18880 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18881 ++	${GENSCRIPTS} avr32elf_uc3b0128 "$(tdir_avr32)" avr32elf
 4.18882 ++eavr32elf_uc3b0256.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18883 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18884 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18885 ++	${GENSCRIPTS} avr32elf_uc3b0256 "$(tdir_avr32)" avr32elf
 4.18886 ++eavr32elf_uc3b0256es.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18887 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18888 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18889 ++	${GENSCRIPTS} avr32elf_uc3b0256es "$(tdir_avr32)" avr32elf
 4.18890 ++eavr32elf_uc3b164.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18891 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18892 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18893 ++	${GENSCRIPTS} avr32elf_uc3b164 "$(tdir_avr32)" avr32elf
 4.18894 ++eavr32elf_uc3b1128.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18895 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18896 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18897 ++	${GENSCRIPTS} avr32elf_uc3b1128 "$(tdir_avr32)" avr32elf
 4.18898 ++eavr32elf_uc3b1256.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18899 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18900 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18901 ++	${GENSCRIPTS} avr32elf_uc3b1256 "$(tdir_avr32)" avr32elf
 4.18902 ++eavr32elf_uc3b1256es.c: $(srcdir)/emulparams/avr32elf.sh \
 4.18903 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18904 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.18905 ++	${GENSCRIPTS} avr32elf_uc3b1256es "$(tdir_avr32)" avr32elf
 4.18906 ++eavr32linux.c: $(srcdir)/emulparams/avr32linux.sh \
 4.18907 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.18908 ++  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 4.18909 ++	${GENSCRIPTS} avr32linux "$(tdir_avr32)"
 4.18910 + ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \
 4.18911 +   $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS}
 4.18912 + 	${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)"
 4.18913 +@@ -1877,7 +2012,9 @@ install-exec-local: ld-new$(EXEEXT)
 4.18914 + 	  || $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT); \
 4.18915 + 	fi
 4.18916 + 
 4.18917 +-install-data-local:
 4.18918 ++# We want install to imply install-info as per GNU standards, despite the
 4.18919 ++# cygnus option.
 4.18920 ++install-data-local: install-info
 4.18921 + 	$(mkinstalldirs) $(DESTDIR)$(scriptdir)/ldscripts
 4.18922 + 	for f in ldscripts/*; do \
 4.18923 + 	  $(INSTALL_DATA) $$f $(DESTDIR)$(scriptdir)/$$f ; \
 4.18924 +--- /dev/null
 4.18925 ++++ b/ld/scripttempl/elf_xip.sc
 4.18926 +@@ -0,0 +1,456 @@
 4.18927 ++#
 4.18928 ++# Unusual variables checked by this code:
 4.18929 ++#	NOP - four byte opcode for no-op (defaults to 0)
 4.18930 ++#	NO_SMALL_DATA - no .sbss/.sbss2/.sdata/.sdata2 sections if not
 4.18931 ++#		empty.
 4.18932 ++#	SMALL_DATA_CTOR - .ctors contains small data.
 4.18933 ++#	SMALL_DATA_DTOR - .dtors contains small data.
 4.18934 ++#	DATA_ADDR - if end-of-text-plus-one-page isn't right for data start
 4.18935 ++#	INITIAL_READONLY_SECTIONS - at start of text segment
 4.18936 ++#	OTHER_READONLY_SECTIONS - other than .text .init .rodata ...
 4.18937 ++#		(e.g., .PARISC.milli)
 4.18938 ++#	OTHER_TEXT_SECTIONS - these get put in .text when relocating
 4.18939 ++#	OTHER_READWRITE_SECTIONS - other than .data .bss .ctors .sdata ...
 4.18940 ++#		(e.g., .PARISC.global)
 4.18941 ++#	OTHER_RELRO_SECTIONS - other than .data.rel.ro ...
 4.18942 ++#		(e.g. PPC32 .fixup, .got[12])
 4.18943 ++#	OTHER_BSS_SECTIONS - other than .bss .sbss ...
 4.18944 ++#	OTHER_SECTIONS - at the end
 4.18945 ++#	EXECUTABLE_SYMBOLS - symbols that must be defined for an
 4.18946 ++#		executable (e.g., _DYNAMIC_LINK)
 4.18947 ++#       TEXT_START_ADDR - the first byte of the text segment, after any
 4.18948 ++#               headers.
 4.18949 ++#       TEXT_BASE_ADDRESS - the first byte of the text segment.
 4.18950 ++#	TEXT_START_SYMBOLS - symbols that appear at the start of the
 4.18951 ++#		.text section.
 4.18952 ++#	DATA_START_SYMBOLS - symbols that appear at the start of the
 4.18953 ++#		.data section.
 4.18954 ++#	OTHER_GOT_SYMBOLS - symbols defined just before .got.
 4.18955 ++#	OTHER_GOT_SECTIONS - sections just after .got.
 4.18956 ++#	OTHER_SDATA_SECTIONS - sections just after .sdata.
 4.18957 ++#	OTHER_BSS_SYMBOLS - symbols that appear at the start of the
 4.18958 ++#		.bss section besides __bss_start.
 4.18959 ++#	DATA_PLT - .plt should be in data segment, not text segment.
 4.18960 ++#	PLT_BEFORE_GOT - .plt just before .got when .plt is in data segement.
 4.18961 ++#	BSS_PLT - .plt should be in bss segment
 4.18962 ++#	TEXT_DYNAMIC - .dynamic in text segment, not data segment.
 4.18963 ++#	EMBEDDED - whether this is for an embedded system.
 4.18964 ++#	SHLIB_TEXT_START_ADDR - if set, add to SIZEOF_HEADERS to set
 4.18965 ++#		start address of shared library.
 4.18966 ++#	INPUT_FILES - INPUT command of files to always include
 4.18967 ++#	WRITABLE_RODATA - if set, the .rodata section should be writable
 4.18968 ++#	INIT_START, INIT_END -  statements just before and just after
 4.18969 ++# 	combination of .init sections.
 4.18970 ++#	FINI_START, FINI_END - statements just before and just after
 4.18971 ++# 	combination of .fini sections.
 4.18972 ++#	STACK_ADDR - start of a .stack section.
 4.18973 ++#	OTHER_END_SYMBOLS - symbols to place right at the end of the script.
 4.18974 ++#	SEPARATE_GOTPLT - if set, .got.plt should be separate output section,
 4.18975 ++#		so that .got can be in the RELRO area.  It should be set to
 4.18976 ++#		the number of bytes in the beginning of .got.plt which can be
 4.18977 ++#		in the RELRO area as well.
 4.18978 ++#
 4.18979 ++# When adding sections, do note that the names of some sections are used
 4.18980 ++# when specifying the start address of the next.
 4.18981 ++#
 4.18982 ++
 4.18983 ++#  Many sections come in three flavours.  There is the 'real' section,
 4.18984 ++#  like ".data".  Then there are the per-procedure or per-variable
 4.18985 ++#  sections, generated by -ffunction-sections and -fdata-sections in GCC,
 4.18986 ++#  and useful for --gc-sections, which for a variable "foo" might be
 4.18987 ++#  ".data.foo".  Then there are the linkonce sections, for which the linker
 4.18988 ++#  eliminates duplicates, which are named like ".gnu.linkonce.d.foo".
 4.18989 ++#  The exact correspondences are:
 4.18990 ++#
 4.18991 ++#  Section	Linkonce section
 4.18992 ++#  .text	.gnu.linkonce.t.foo
 4.18993 ++#  .rodata	.gnu.linkonce.r.foo
 4.18994 ++#  .data	.gnu.linkonce.d.foo
 4.18995 ++#  .bss		.gnu.linkonce.b.foo
 4.18996 ++#  .sdata	.gnu.linkonce.s.foo
 4.18997 ++#  .sbss	.gnu.linkonce.sb.foo
 4.18998 ++#  .sdata2	.gnu.linkonce.s2.foo
 4.18999 ++#  .sbss2	.gnu.linkonce.sb2.foo
 4.19000 ++#  .debug_info	.gnu.linkonce.wi.foo
 4.19001 ++#  .tdata	.gnu.linkonce.td.foo
 4.19002 ++#  .tbss	.gnu.linkonce.tb.foo
 4.19003 ++#
 4.19004 ++#  Each of these can also have corresponding .rel.* and .rela.* sections.
 4.19005 ++
 4.19006 ++test -z "$ENTRY" && ENTRY=_start
 4.19007 ++test -z "${BIG_OUTPUT_FORMAT}" && BIG_OUTPUT_FORMAT=${OUTPUT_FORMAT}
 4.19008 ++test -z "${LITTLE_OUTPUT_FORMAT}" && LITTLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
 4.19009 ++if [ -z "$MACHINE" ]; then OUTPUT_ARCH=${ARCH}; else OUTPUT_ARCH=${ARCH}:${MACHINE}; fi
 4.19010 ++test -z "${ELFSIZE}" && ELFSIZE=32
 4.19011 ++test -z "${ALIGNMENT}" && ALIGNMENT="${ELFSIZE} / 8"
 4.19012 ++test "$LD_FLAG" = "N" && DATA_ADDR=.
 4.19013 ++test -n "$CREATE_SHLIB$CREATE_PIE" && test -n "$SHLIB_DATA_ADDR" && COMMONPAGESIZE=""
 4.19014 ++test -z "$CREATE_SHLIB$CREATE_PIE" && test -n "$DATA_ADDR" && COMMONPAGESIZE=""
 4.19015 ++test -n "$RELRO_NOW" && unset SEPARATE_GOTPLT
 4.19016 ++if test -n "$RELOCATING"; then
 4.19017 ++  RO_REGION="${RO_VMA_REGION+ >}${RO_VMA_REGION}${RO_LMA_REGION+ AT>}${RO_LMA_REGION}"
 4.19018 ++  RW_REGION="${RW_VMA_REGION+ >}${RW_VMA_REGION}${RW_LMA_REGION+ AT>}${RW_LMA_REGION}"
 4.19019 ++else
 4.19020 ++  RO_REGION=""
 4.19021 ++  RW_REGION=""
 4.19022 ++fi
 4.19023 ++INTERP=".interp       ${RELOCATING-0} : { *(.interp) }${RO_REGION}"
 4.19024 ++PLT=".plt          ${RELOCATING-0} : { *(.plt) }"
 4.19025 ++if test -z "$GOT"; then
 4.19026 ++  if test -z "$SEPARATE_GOTPLT"; then
 4.19027 ++    GOT=".got          ${RELOCATING-0} : { *(.got.plt) *(.got) }"
 4.19028 ++  else
 4.19029 ++    GOT=".got          ${RELOCATING-0} : { *(.got) }"
 4.19030 ++    GOTPLT="${RELOCATING+${DATA_SEGMENT_RELRO_GOTPLT_END}}
 4.19031 ++  .got.plt      ${RELOCATING-0} : { *(.got.plt) }"
 4.19032 ++  fi
 4.19033 ++fi
 4.19034 ++DALIGN=".dalign	: { . = ALIGN(${DATA_SEGMENT_ALIGN}); PROVIDE(_data_lma = .); }${RO_REGION}"
 4.19035 ++BALIGN=".balign	: { . = ALIGN(${BSS_ALIGNMENT}); _edata = .; }${RW_REGION}"
 4.19036 ++DYNAMIC=".dynamic      ${RELOCATING-0} : { *(.dynamic) }"
 4.19037 ++RODATA=".rodata       ${RELOCATING-0} : { *(.rodata${RELOCATING+ .rodata.* .gnu.linkonce.r.*}) }"
 4.19038 ++DATARELRO=".data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) }${RW_REGION}"
 4.19039 ++STACKNOTE="/DISCARD/ : { *(.note.GNU-stack) }"
 4.19040 ++if test -z "${NO_SMALL_DATA}"; then
 4.19041 ++  SBSS=".sbss         ${RELOCATING-0} :
 4.19042 ++  {
 4.19043 ++    ${RELOCATING+PROVIDE (__sbss_start = .);}
 4.19044 ++    ${RELOCATING+PROVIDE (___sbss_start = .);}
 4.19045 ++    ${CREATE_SHLIB+*(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)}
 4.19046 ++    *(.dynsbss)
 4.19047 ++    *(.sbss${RELOCATING+ .sbss.* .gnu.linkonce.sb.*})
 4.19048 ++    *(.scommon)
 4.19049 ++    ${RELOCATING+PROVIDE (__sbss_end = .);}
 4.19050 ++    ${RELOCATING+PROVIDE (___sbss_end = .);}
 4.19051 ++  }${RW_REGION}"
 4.19052 ++  SBSS2=".sbss2        ${RELOCATING-0} : { *(.sbss2${RELOCATING+ .sbss2.* .gnu.linkonce.sb2.*}) }${RW_REGION}"
 4.19053 ++  SDATA="/* We want the small data sections together, so single-instruction offsets
 4.19054 ++     can access them all, and initialized data all before uninitialized, so
 4.19055 ++     we can shorten the on-disk segment size.  */
 4.19056 ++  .sdata        ${RELOCATING-0} :
 4.19057 ++  {
 4.19058 ++    ${RELOCATING+${SDATA_START_SYMBOLS}}
 4.19059 ++    ${CREATE_SHLIB+*(.sdata2 .sdata2.* .gnu.linkonce.s2.*)}
 4.19060 ++    *(.sdata${RELOCATING+ .sdata.* .gnu.linkonce.s.*})
 4.19061 ++  }${RW_REGION}"
 4.19062 ++  SDATA2=".sdata2       ${RELOCATING-0} : { *(.sdata2${RELOCATING+ .sdata2.* .gnu.linkonce.s2.*}) }${RW_REGION}"
 4.19063 ++  REL_SDATA=".rel.sdata    ${RELOCATING-0} : { *(.rel.sdata${RELOCATING+ .rel.sdata.* .rel.gnu.linkonce.s.*}) }${RO_REGION}
 4.19064 ++  .rela.sdata   ${RELOCATING-0} : { *(.rela.sdata${RELOCATING+ .rela.sdata.* .rela.gnu.linkonce.s.*}) }"
 4.19065 ++  REL_SBSS=".rel.sbss     ${RELOCATING-0} : { *(.rel.sbss${RELOCATING+ .rel.sbss.* .rel.gnu.linkonce.sb.*}) }${RO_REGION}
 4.19066 ++  .rela.sbss    ${RELOCATING-0} : { *(.rela.sbss${RELOCATING+ .rela.sbss.* .rela.gnu.linkonce.sb.*}) }${RO_REGION}"
 4.19067 ++  REL_SDATA2=".rel.sdata2   ${RELOCATING-0} : { *(.rel.sdata2${RELOCATING+ .rel.sdata2.* .rel.gnu.linkonce.s2.*}) }${RO_REGION}
 4.19068 ++  .rela.sdata2  ${RELOCATING-0} : { *(.rela.sdata2${RELOCATING+ .rela.sdata2.* .rela.gnu.linkonce.s2.*}) }${RO_REGION}"
 4.19069 ++  REL_SBSS2=".rel.sbss2    ${RELOCATING-0} : { *(.rel.sbss2${RELOCATING+ .rel.sbss2.* .rel.gnu.linkonce.sb2.*}) }${RO_REGION}
 4.19070 ++  .rela.sbss2   ${RELOCATING-0} : { *(.rela.sbss2${RELOCATING+ .rela.sbss2.* .rela.gnu.linkonce.sb2.*}) }${RO_REGION}"
 4.19071 ++else
 4.19072 ++  NO_SMALL_DATA=" "
 4.19073 ++fi
 4.19074 ++test -n "$SEPARATE_GOTPLT" && SEPARATE_GOTPLT=" "
 4.19075 ++CTOR=".ctors        ${CONSTRUCTING-0} :
 4.19076 ++  {
 4.19077 ++    ${CONSTRUCTING+${CTOR_START}}
 4.19078 ++    /* gcc uses crtbegin.o to find the start of
 4.19079 ++       the constructors, so we make sure it is
 4.19080 ++       first.  Because this is a wildcard, it
 4.19081 ++       doesn't matter if the user does not
 4.19082 ++       actually link against crtbegin.o; the
 4.19083 ++       linker won't look for a file to match a
 4.19084 ++       wildcard.  The wildcard also means that it
 4.19085 ++       doesn't matter which directory crtbegin.o
 4.19086 ++       is in.  */
 4.19087 ++
 4.19088 ++    KEEP (*crtbegin*.o(.ctors))
 4.19089 ++
 4.19090 ++    /* We don't want to include the .ctor section from
 4.19091 ++       from the crtend.o file until after the sorted ctors.
 4.19092 ++       The .ctor section from the crtend file contains the
 4.19093 ++       end of ctors marker and it must be last */
 4.19094 ++
 4.19095 ++    KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .ctors))
 4.19096 ++    KEEP (*(SORT(.ctors.*)))
 4.19097 ++    KEEP (*(.ctors))
 4.19098 ++    ${CONSTRUCTING+${CTOR_END}}
 4.19099 ++  }"
 4.19100 ++DTOR=".dtors        ${CONSTRUCTING-0} :
 4.19101 ++  {
 4.19102 ++    ${CONSTRUCTING+${DTOR_START}}
 4.19103 ++    KEEP (*crtbegin*.o(.dtors))
 4.19104 ++    KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors))
 4.19105 ++    KEEP (*(SORT(.dtors.*)))
 4.19106 ++    KEEP (*(.dtors))
 4.19107 ++    ${CONSTRUCTING+${DTOR_END}}
 4.19108 ++  }"
 4.19109 ++STACK=".stack        ${RELOCATING-0}${RELOCATING+${STACK_ADDR}} :
 4.19110 ++  {
 4.19111 ++    ${RELOCATING+_stack = .;}
 4.19112 ++    *(.stack)
 4.19113 ++    ${RELOCATING+${STACK_SIZE+. = ${STACK_SIZE};}}
 4.19114 ++    ${RELOCATING+_estack = .;}
 4.19115 ++  }${RW_REGION}"
 4.19116 ++
 4.19117 ++# if this is for an embedded system, don't add SIZEOF_HEADERS.
 4.19118 ++if [ -z "$EMBEDDED" ]; then
 4.19119 ++   test -z "${TEXT_BASE_ADDRESS}" && TEXT_BASE_ADDRESS="${TEXT_START_ADDR} + SIZEOF_HEADERS"
 4.19120 ++else
 4.19121 ++   test -z "${TEXT_BASE_ADDRESS}" && TEXT_BASE_ADDRESS="${TEXT_START_ADDR}"
 4.19122 ++fi
 4.19123 ++
 4.19124 ++cat <<EOF
 4.19125 ++OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}",
 4.19126 ++	      "${LITTLE_OUTPUT_FORMAT}")
 4.19127 ++OUTPUT_ARCH(${OUTPUT_ARCH})
 4.19128 ++ENTRY(${ENTRY})
 4.19129 ++
 4.19130 ++${RELOCATING+${LIB_SEARCH_DIRS}}
 4.19131 ++${RELOCATING+/* Do we need any of these for elf?
 4.19132 ++   __DYNAMIC = 0; ${STACKZERO+${STACKZERO}} ${SHLIB_PATH+${SHLIB_PATH}}  */}
 4.19133 ++${RELOCATING+${EXECUTABLE_SYMBOLS}}
 4.19134 ++${RELOCATING+${INPUT_FILES}}
 4.19135 ++${RELOCATING- /* For some reason, the Solaris linker makes bad executables
 4.19136 ++  if gld -r is used and the intermediate file has sections starting
 4.19137 ++  at non-zero addresses.  Could be a Solaris ld bug, could be a GNU ld
 4.19138 ++  bug.  But for now assigning the zero vmas works.  */}
 4.19139 ++
 4.19140 ++${RELOCATING+${MEMORY}}
 4.19141 ++
 4.19142 ++SECTIONS
 4.19143 ++{
 4.19144 ++  /* Read-only sections, merged into text segment: */
 4.19145 ++  ${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+PROVIDE (__executable_start = ${TEXT_START_ADDR}); . = ${TEXT_BASE_ADDRESS};}}}
 4.19146 ++  ${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_TEXT_START_ADDR:-0} + SIZEOF_HEADERS;}}
 4.19147 ++  ${CREATE_PIE+${RELOCATING+. = ${SHLIB_TEXT_START_ADDR:-0} + SIZEOF_HEADERS;}}
 4.19148 ++  ${CREATE_SHLIB-${INTERP}}
 4.19149 ++  ${INITIAL_READONLY_SECTIONS}
 4.19150 ++  ${TEXT_DYNAMIC+${DYNAMIC}${RO_REGION}}
 4.19151 ++  .hash         ${RELOCATING-0} : { *(.hash) }${RO_REGION}
 4.19152 ++  .dynsym       ${RELOCATING-0} : { *(.dynsym) }${RO_REGION}
 4.19153 ++  .dynstr       ${RELOCATING-0} : { *(.dynstr) }${RO_REGION}
 4.19154 ++  .gnu.version  ${RELOCATING-0} : { *(.gnu.version) }${RO_REGION}
 4.19155 ++  .gnu.version_d ${RELOCATING-0}: { *(.gnu.version_d) }${RO_REGION}
 4.19156 ++  .gnu.version_r ${RELOCATING-0}: { *(.gnu.version_r) }${RO_REGION}
 4.19157 ++
 4.19158 ++EOF
 4.19159 ++if [ "x$COMBRELOC" = x ]; then
 4.19160 ++  COMBRELOCCAT=cat
 4.19161 ++else
 4.19162 ++  COMBRELOCCAT="cat > $COMBRELOC"
 4.19163 ++fi
 4.19164 ++eval $COMBRELOCCAT <<EOF
 4.19165 ++  .rel.init     ${RELOCATING-0} : { *(.rel.init) }${RO_REGION}
 4.19166 ++  .rela.init    ${RELOCATING-0} : { *(.rela.init) }${RO_REGION}
 4.19167 ++  .rel.text     ${RELOCATING-0} : { *(.rel.text${RELOCATING+ .rel.text.* .rel.gnu.linkonce.t.*}) }${RO_REGION}
 4.19168 ++  .rela.text    ${RELOCATING-0} : { *(.rela.text${RELOCATING+ .rela.text.* .rela.gnu.linkonce.t.*}) }${RO_REGION}
 4.19169 ++  .rel.fini     ${RELOCATING-0} : { *(.rel.fini) }${RO_REGION}
 4.19170 ++  .rela.fini    ${RELOCATING-0} : { *(.rela.fini) }${RO_REGION}
 4.19171 ++  .rel.rodata   ${RELOCATING-0} : { *(.rel.rodata${RELOCATING+ .rel.rodata.* .rel.gnu.linkonce.r.*}) }${RO_REGION}
 4.19172 ++  .rela.rodata  ${RELOCATING-0} : { *(.rela.rodata${RELOCATING+ .rela.rodata.* .rela.gnu.linkonce.r.*}) }${RO_REGION}
 4.19173 ++  ${OTHER_READONLY_RELOC_SECTIONS}
 4.19174 ++  .rel.data.rel.ro ${RELOCATING-0} : { *(.rel.data.rel.ro${RELOCATING+*}) }${RO_REGION}
 4.19175 ++  .rela.data.rel.ro ${RELOCATING-0} : { *(.rel.data.rel.ro${RELOCATING+*}) }${RO_REGION}
 4.19176 ++  .rel.data     ${RELOCATING-0} : { *(.rel.data${RELOCATING+ .rel.data.* .rel.gnu.linkonce.d.*}) }${RO_REGION}
 4.19177 ++  .rela.data    ${RELOCATING-0} : { *(.rela.data${RELOCATING+ .rela.data.* .rela.gnu.linkonce.d.*}) }${RO_REGION}
 4.19178 ++  .rel.tdata	${RELOCATING-0} : { *(.rel.tdata${RELOCATING+ .rel.tdata.* .rel.gnu.linkonce.td.*}) }${RO_REGION}
 4.19179 ++  .rela.tdata	${RELOCATING-0} : { *(.rela.tdata${RELOCATING+ .rela.tdata.* .rela.gnu.linkonce.td.*}) }${RO_REGION}
 4.19180 ++  .rel.tbss	${RELOCATING-0} : { *(.rel.tbss${RELOCATING+ .rel.tbss.* .rel.gnu.linkonce.tb.*}) }${RO_REGION}
 4.19181 ++  .rela.tbss	${RELOCATING-0} : { *(.rela.tbss${RELOCATING+ .rela.tbss.* .rela.gnu.linkonce.tb.*}) }${RO_REGION}
 4.19182 ++  .rel.ctors    ${RELOCATING-0} : { *(.rel.ctors) }${RO_REGION}
 4.19183 ++  .rela.ctors   ${RELOCATING-0} : { *(.rela.ctors) }${RO_REGION}
 4.19184 ++  .rel.dtors    ${RELOCATING-0} : { *(.rel.dtors) }${RO_REGION}
 4.19185 ++  .rela.dtors   ${RELOCATING-0} : { *(.rela.dtors) }${RO_REGION}
 4.19186 ++  .rel.got      ${RELOCATING-0} : { *(.rel.got) }${RO_REGION}
 4.19187 ++  .rela.got     ${RELOCATING-0} : { *(.rela.got) }${RO_REGION}
 4.19188 ++  ${OTHER_GOT_RELOC_SECTIONS}
 4.19189 ++  ${REL_SDATA}
 4.19190 ++  ${REL_SBSS}
 4.19191 ++  ${REL_SDATA2}
 4.19192 ++  ${REL_SBSS2}
 4.19193 ++  .rel.bss      ${RELOCATING-0} : { *(.rel.bss${RELOCATING+ .rel.bss.* .rel.gnu.linkonce.b.*}) }${RO_REGION}
 4.19194 ++  .rela.bss     ${RELOCATING-0} : { *(.rela.bss${RELOCATING+ .rela.bss.* .rela.gnu.linkonce.b.*}) }${RO_REGION}
 4.19195 ++EOF
 4.19196 ++if [ -n "$COMBRELOC" ]; then
 4.19197 ++cat <<EOF
 4.19198 ++  .rel.dyn      ${RELOCATING-0} :
 4.19199 ++    {
 4.19200 ++EOF
 4.19201 ++sed -e '/^[ 	]*[{}][ 	]*$/d;/:[ 	]*$/d;/\.rela\./d;s/^.*: { *\(.*\)}$/      \1/' $COMBRELOC
 4.19202 ++cat <<EOF
 4.19203 ++    }${RO_REGION}
 4.19204 ++  .rela.dyn     ${RELOCATING-0} :
 4.19205 ++    {
 4.19206 ++EOF
 4.19207 ++sed -e '/^[ 	]*[{}][ 	]*$/d;/:[ 	]*$/d;/\.rel\./d;s/^.*: { *\(.*\)}/      \1/' $COMBRELOC
 4.19208 ++cat <<EOF
 4.19209 ++    }${RO_REGION}
 4.19210 ++EOF
 4.19211 ++fi
 4.19212 ++cat <<EOF
 4.19213 ++  .rel.plt      ${RELOCATING-0} : { *(.rel.plt) }${RO_REGION}
 4.19214 ++  .rela.plt     ${RELOCATING-0} : { *(.rela.plt) }${RO_REGION}
 4.19215 ++  ${OTHER_PLT_RELOC_SECTIONS}
 4.19216 ++
 4.19217 ++  .init         ${RELOCATING-0} :
 4.19218 ++  {
 4.19219 ++    ${RELOCATING+${INIT_START}}
 4.19220 ++    KEEP (*(.init))
 4.19221 ++    ${RELOCATING+${INIT_END}}
 4.19222 ++  }${RO_REGION} =${NOP-0}
 4.19223 ++
 4.19224 ++  ${DATA_PLT-${BSS_PLT-${PLT}${RO_REGION}}}
 4.19225 ++  .text         ${RELOCATING-0} :
 4.19226 ++  {
 4.19227 ++    ${RELOCATING+${TEXT_START_SYMBOLS}}
 4.19228 ++    *(.text .stub${RELOCATING+ .text.* .gnu.linkonce.t.*})
 4.19229 ++    KEEP (*(.text.*personality*))
 4.19230 ++    /* .gnu.warning sections are handled specially by elf32.em.  */
 4.19231 ++    *(.gnu.warning)
 4.19232 ++    ${RELOCATING+${OTHER_TEXT_SECTIONS}}
 4.19233 ++  }${RO_REGION} =${NOP-0}
 4.19234 ++  .fini         ${RELOCATING-0} :
 4.19235 ++  {
 4.19236 ++    ${RELOCATING+${FINI_START}}
 4.19237 ++    KEEP (*(.fini))
 4.19238 ++    ${RELOCATING+${FINI_END}}
 4.19239 ++  }${RO_REGION} =${NOP-0}
 4.19240 ++  ${RELOCATING+PROVIDE (__etext = .);}
 4.19241 ++  ${RELOCATING+PROVIDE (_etext = .);}
 4.19242 ++  ${RELOCATING+PROVIDE (etext = .);}
 4.19243 ++  ${WRITABLE_RODATA-${RODATA}${RO_REGION}}
 4.19244 ++  .rodata1      ${RELOCATING-0} : { *(.rodata1) }${RO_REGION}
 4.19245 ++  ${CREATE_SHLIB-${SDATA2}}
 4.19246 ++  ${CREATE_SHLIB-${SBSS2}}
 4.19247 ++  ${OTHER_READONLY_SECTIONS}
 4.19248 ++  .eh_frame_hdr : { *(.eh_frame_hdr) }${RO_REGION}
 4.19249 ++  .eh_frame     ${RELOCATING-0} : ONLY_IF_RO { KEEP (*(.eh_frame)) }${RO_REGION}
 4.19250 ++  .gcc_except_table ${RELOCATING-0} : ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }${RO_REGION}
 4.19251 ++
 4.19252 ++  ${RELOCATING+${DALIGN}}
 4.19253 ++  ${RELOCATING+PROVIDE (_data = ORIGIN(${RW_VMA_REGION}));}
 4.19254 ++  . = ORIGIN(${RW_VMA_REGION});
 4.19255 ++  /* Exception handling  */
 4.19256 ++  .eh_frame     ${RELOCATING-0} : ONLY_IF_RW { KEEP (*(.eh_frame)) }${RW_REGION}
 4.19257 ++  .gcc_except_table ${RELOCATING-0} : ONLY_IF_RW { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }${RW_REGION}
 4.19258 ++
 4.19259 ++  /* Thread Local Storage sections  */
 4.19260 ++  .tdata	${RELOCATING-0} : { *(.tdata${RELOCATING+ .tdata.* .gnu.linkonce.td.*}) }${RW_REGION}
 4.19261 ++  .tbss		${RELOCATING-0} : { *(.tbss${RELOCATING+ .tbss.* .gnu.linkonce.tb.*})${RELOCATING+ *(.tcommon)} }${RW_REGION}
 4.19262 ++
 4.19263 ++  /* Ensure the __preinit_array_start label is properly aligned.  We
 4.19264 ++     could instead move the label definition inside the section, but
 4.19265 ++     the linker would then create the section even if it turns out to
 4.19266 ++     be empty, which isn't pretty.  */
 4.19267 ++  ${RELOCATING+${CREATE_SHLIB-PROVIDE (__preinit_array_start = ALIGN(${ALIGNMENT}));}}
 4.19268 ++  .preinit_array   ${RELOCATING-0} : { KEEP (*(.preinit_array)) }${RW_REGION}
 4.19269 ++  ${RELOCATING+${CREATE_SHLIB-PROVIDE (__preinit_array_end = .);}}
 4.19270 ++
 4.19271 ++  ${RELOCATING+${CREATE_SHLIB-PROVIDE (__init_array_start = .);}}
 4.19272 ++  .init_array   ${RELOCATING-0} : { KEEP (*(.init_array)) }${RW_REGION}
 4.19273 ++  ${RELOCATING+${CREATE_SHLIB-PROVIDE (__init_array_end = .);}}
 4.19274 ++
 4.19275 ++  ${RELOCATING+${CREATE_SHLIB-PROVIDE (__fini_array_start = .);}}
 4.19276 ++  .fini_array   ${RELOCATING-0} : { KEEP (*(.fini_array)) }${RW_REGION}
 4.19277 ++  ${RELOCATING+${CREATE_SHLIB-PROVIDE (__fini_array_end = .);}}
 4.19278 ++
 4.19279 ++  ${SMALL_DATA_CTOR-${RELOCATING+${CTOR}${RW_REGION}}}
 4.19280 ++  ${SMALL_DATA_DTOR-${RELOCATING+${DTOR}${RW_REGION}}}
 4.19281 ++  .jcr          ${RELOCATING-0} : { KEEP (*(.jcr)) }${RW_REGION}
 4.19282 ++
 4.19283 ++  ${RELOCATING+${DATARELRO}}
 4.19284 ++  ${OTHER_RELRO_SECTIONS}
 4.19285 ++  ${TEXT_DYNAMIC-${DYNAMIC}${RW_REGION}}
 4.19286 ++  ${NO_SMALL_DATA+${RELRO_NOW+${GOT}${RW_REGION}}}
 4.19287 ++  ${NO_SMALL_DATA+${RELRO_NOW-${SEPARATE_GOTPLT+${GOT}${RW_REGION}}}}
 4.19288 ++  ${NO_SMALL_DATA+${RELRO_NOW-${SEPARATE_GOTPLT+${GOTPLT}${RW_REGION}}}}
 4.19289 ++  ${RELOCATING+${DATA_SEGMENT_RELRO_END}}
 4.19290 ++  ${NO_SMALL_DATA+${RELRO_NOW-${SEPARATE_GOTPLT-${GOT}${RW_REGION}}}}
 4.19291 ++
 4.19292 ++  ${DATA_PLT+${PLT_BEFORE_GOT-${PLT}${RW_REGION}}}
 4.19293 ++
 4.19294 ++  .data         ${RELOCATING-0} :
 4.19295 ++  {
 4.19296 ++    ${RELOCATING+${DATA_START_SYMBOLS}}
 4.19297 ++    *(.data${RELOCATING+ .data.* .gnu.linkonce.d.*})
 4.19298 ++    KEEP (*(.gnu.linkonce.d.*personality*))
 4.19299 ++    ${CONSTRUCTING+SORT(CONSTRUCTORS)}
 4.19300 ++  }${RW_REGION}
 4.19301 ++  .data1        ${RELOCATING-0} : { *(.data1) }${RW_REGION}
 4.19302 ++  ${WRITABLE_RODATA+${RODATA}${RW_REGION}}
 4.19303 ++  ${OTHER_READWRITE_SECTIONS}
 4.19304 ++  ${SMALL_DATA_CTOR+${RELOCATING+${CTOR}${RW_REGION}}}
 4.19305 ++  ${SMALL_DATA_DTOR+${RELOCATING+${DTOR}${RW_REGION}}}
 4.19306 ++  ${DATA_PLT+${PLT_BEFORE_GOT+${PLT}${RW_REGION}}}
 4.19307 ++  ${RELOCATING+${OTHER_GOT_SYMBOLS}}
 4.19308 ++  ${NO_SMALL_DATA-${GOT}${RW_REGION}}
 4.19309 ++  ${OTHER_GOT_SECTIONS}
 4.19310 ++  ${SDATA}
 4.19311 ++  ${OTHER_SDATA_SECTIONS}
 4.19312 ++  ${RELOCATING+${BALIGN}}
 4.19313 ++  ${RELOCATING+_edata = .;}
 4.19314 ++  ${RELOCATING+PROVIDE (edata = .);}
 4.19315 ++  ${RELOCATING+__bss_start = .;}
 4.19316 ++  ${RELOCATING+${OTHER_BSS_SYMBOLS}}
 4.19317 ++  ${SBSS}
 4.19318 ++  ${BSS_PLT+${PLT}${RW_REGION}}
 4.19319 ++  .bss          ${RELOCATING-0} :
 4.19320 ++  {
 4.19321 ++   *(.dynbss)
 4.19322 ++   *(.bss${RELOCATING+ .bss.* .gnu.linkonce.b.*})
 4.19323 ++   *(COMMON)
 4.19324 ++   /* Align here to ensure that the .bss section occupies space up to
 4.19325 ++      _end.  Align after .bss to ensure correct alignment even if the
 4.19326 ++      .bss section disappears because there are no input sections.  */
 4.19327 ++   ${RELOCATING+. = ALIGN(${BSS_ALIGNMENT});}
 4.19328 ++  }${RW_REGION}
 4.19329 ++  ${OTHER_BSS_SECTIONS}
 4.19330 ++  ${RELOCATING+. = ALIGN(${BSS_ALIGNMENT});}
 4.19331 ++  ${RELOCATING+_end = .;}
 4.19332 ++  ${RELOCATING+${OTHER_BSS_END_SYMBOLS}}
 4.19333 ++  ${RELOCATING+PROVIDE (end = .);}
 4.19334 ++  ${RELOCATING+${DATA_SEGMENT_END}}
 4.19335 ++
 4.19336 ++  /* Stabs debugging sections.  */
 4.19337 ++  .stab          0 : { *(.stab) }
 4.19338 ++  .stabstr       0 : { *(.stabstr) }
 4.19339 ++  .stab.excl     0 : { *(.stab.excl) }
 4.19340 ++  .stab.exclstr  0 : { *(.stab.exclstr) }
 4.19341 ++  .stab.index    0 : { *(.stab.index) }
 4.19342 ++  .stab.indexstr 0 : { *(.stab.indexstr) }
 4.19343 ++
 4.19344 ++  .comment       0 : { *(.comment) }
 4.19345 ++
 4.19346 ++  /* DWARF debug sections.
 4.19347 ++     Symbols in the DWARF debugging sections are relative to the beginning
 4.19348 ++     of the section so we begin them at 0.  */
 4.19349 ++
 4.19350 ++  /* DWARF 1 */
 4.19351 ++  .debug          0 : { *(.debug) }
 4.19352 ++  .line           0 : { *(.line) }
 4.19353 ++
 4.19354 ++  /* GNU DWARF 1 extensions */
 4.19355 ++  .debug_srcinfo  0 : { *(.debug_srcinfo) }
 4.19356 ++  .debug_sfnames  0 : { *(.debug_sfnames) }
 4.19357 ++
 4.19358 ++  /* DWARF 1.1 and DWARF 2 */
 4.19359 ++  .debug_aranges  0 : { *(.debug_aranges) }
 4.19360 ++  .debug_pubnames 0 : { *(.debug_pubnames) }
 4.19361 ++
 4.19362 ++  /* DWARF 2 */
 4.19363 ++  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
 4.19364 ++  .debug_abbrev   0 : { *(.debug_abbrev) }
 4.19365 ++  .debug_line     0 : { *(.debug_line) }
 4.19366 ++  .debug_frame    0 : { *(.debug_frame) }
 4.19367 ++  .debug_str      0 : { *(.debug_str) }
 4.19368 ++  .debug_loc      0 : { *(.debug_loc) }
 4.19369 ++  .debug_macinfo  0 : { *(.debug_macinfo) }
 4.19370 ++
 4.19371 ++  /* SGI/MIPS DWARF 2 extensions */
 4.19372 ++  .debug_weaknames 0 : { *(.debug_weaknames) }
 4.19373 ++  .debug_funcnames 0 : { *(.debug_funcnames) }
 4.19374 ++  .debug_typenames 0 : { *(.debug_typenames) }
 4.19375 ++  .debug_varnames  0 : { *(.debug_varnames) }
 4.19376 ++
 4.19377 ++  ${STACK_ADDR+${STACK}}
 4.19378 ++  ${OTHER_SECTIONS}
 4.19379 ++  ${RELOCATING+${OTHER_END_SYMBOLS}}
 4.19380 ++  ${RELOCATING+${STACKNOTE}}
 4.19381 ++}
 4.19382 ++EOF
 4.19383 +--- /dev/null
 4.19384 ++++ b/ld/testsuite/ld-avr32/avr32.exp
 4.19385 +@@ -0,0 +1,25 @@
 4.19386 ++# Expect script for AVR32 ELF linker tests.
 4.19387 ++#   Copyright 2004-2006 Atmel Corporation.
 4.19388 ++#
 4.19389 ++# This file is free software; you can redistribute it and/or modify
 4.19390 ++# it under the terms of the GNU General Public License as published by
 4.19391 ++# the Free Software Foundation; either version 2 of the License, or
 4.19392 ++# (at your option) any later version.
 4.19393 ++#
 4.19394 ++# This program is distributed in the hope that it will be useful,
 4.19395 ++# but WITHOUT ANY WARRANTY; without even the implied warranty of
 4.19396 ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 4.19397 ++# GNU General Public License for more details.
 4.19398 ++#
 4.19399 ++# You should have received a copy of the GNU General Public License
 4.19400 ++# along with this program; if not, write to the Free Software
 4.19401 ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 4.19402 ++#
 4.19403 ++# Written by Haavard Skinnemoen (hskinnemoen@atmel.com)
 4.19404 ++#
 4.19405 ++
 4.19406 ++if ![istarget avr32-*-*] {
 4.19407 ++    return
 4.19408 ++}
 4.19409 ++
 4.19410 ++run_dump_test "pcrel"
 4.19411 +--- /dev/null
 4.19412 ++++ b/ld/testsuite/ld-avr32/pcrel.d
 4.19413 +@@ -0,0 +1,74 @@
 4.19414 ++#name: AVR32 ELF PC-relative external relocs
 4.19415 ++#source: symbols.s
 4.19416 ++#source: ../../../gas/testsuite/gas/avr32/pcrel.s
 4.19417 ++#ld: -T $srcdir/$subdir/pcrel.ld
 4.19418 ++#objdump: -d
 4.19419 ++
 4.19420 ++.*:     file format elf.*avr32.*
 4.19421 ++
 4.19422 ++Disassembly of section .text:
 4.19423 ++
 4.19424 ++a0000000 <_start>:
 4.19425 ++a0000000:	d7 03       	nop
 4.19426 ++a0000002:	d7 03       	nop
 4.19427 ++
 4.19428 ++a0000004 <test_rjmp>:
 4.19429 ++a0000004:	d7 03       	nop
 4.19430 ++a0000006:	c0 28       	rjmp a000000a <test_rjmp\+0x6>
 4.19431 ++a0000008:	d7 03       	nop
 4.19432 ++a000000a:	e0 8f 01 fb 	bral a0000400 <extsym10>
 4.19433 ++
 4.19434 ++a000000e <test_rcall>:
 4.19435 ++a000000e:	d7 03       	nop
 4.19436 ++a0000010 <test_rcall2>:
 4.19437 ++a0000010:	c0 2c       	rcall a0000014 <test_rcall2\+0x4>
 4.19438 ++a0000012:	d7 03       	nop
 4.19439 ++a0000014:	ee b0 ff f6 	rcall a0200000 <extsym21>
 4.19440 ++
 4.19441 ++a0000018 <test_branch>:
 4.19442 ++a0000018:	c0 31       	brne a000001e <test_branch\+0x6>
 4.19443 ++a000001a:	fe 9f ff ff 	bral a0000018 <test_branch>
 4.19444 ++a000001e:	ee 90 ff f1 	breq a0200000 <extsym21>
 4.19445 ++
 4.19446 ++a0000022 <test_lddpc>:
 4.19447 ++a0000022:	48 30       	lddpc r0,a000002c <sym1>
 4.19448 ++a0000024:	48 20       	lddpc r0,a000002c <sym1>
 4.19449 ++a0000026:	fe f0 7f da 	ld.w r0,pc\[32730\]
 4.19450 ++	...
 4.19451 ++
 4.19452 ++a000002c <sym1>:
 4.19453 ++a000002c:	d7 03       	nop
 4.19454 ++a000002e:	d7 03       	nop
 4.19455 ++
 4.19456 ++a0000030 <test_local>:
 4.19457 ++a0000030:	48 20       	lddpc r0,a0000038 <test_local\+0x8>
 4.19458 ++a0000032:	48 30       	lddpc r0,a000003c <test_local\+0xc>
 4.19459 ++a0000034:	48 20       	lddpc r0,a000003c <test_local\+0xc>
 4.19460 ++a0000036:	00 00       	add r0,r0
 4.19461 ++a0000038:	d7 03       	nop
 4.19462 ++a000003a:	d7 03       	nop
 4.19463 ++a000003c:	d7 03       	nop
 4.19464 ++a000003e:	d7 03       	nop
 4.19465 ++
 4.19466 ++Disassembly of section \.text\.init:
 4.19467 ++a0000040 <test_inter_section>:
 4.19468 ++a0000040:	fe b0 ff e7 	rcall a000000e <test_rcall>
 4.19469 ++a0000044:	d7 03       	nop
 4.19470 ++a0000046:	fe b0 ff e4 	rcall a000000e <test_rcall>
 4.19471 ++a000004a:	fe b0 ff e3 	rcall a0000010 <test_rcall2>
 4.19472 ++a000004e:	d7 03       	nop
 4.19473 ++a0000050:	fe b0 ff e0 	rcall a0000010 <test_rcall2>
 4.19474 ++
 4.19475 ++Disassembly of section \.text\.pcrel10:
 4.19476 ++
 4.19477 ++a0000400 <extsym10>:
 4.19478 ++a0000400:	d7 03       	nop
 4.19479 ++
 4.19480 ++Disassembly of section \.text\.pcrel16:
 4.19481 ++
 4.19482 ++a0008000 <extsym16>:
 4.19483 ++a0008000:	d7 03       	nop
 4.19484 ++
 4.19485 ++Disassembly of section \.text\.pcrel21:
 4.19486 ++a0200000 <extsym21>:
 4.19487 ++a0200000:	d7 03       	nop
 4.19488 +--- /dev/null
 4.19489 ++++ b/ld/testsuite/ld-avr32/pcrel.ld
 4.19490 +@@ -0,0 +1,23 @@
 4.19491 ++ENTRY(_start)
 4.19492 ++SECTIONS
 4.19493 ++{
 4.19494 ++	.text 0xa0000000:
 4.19495 ++	{
 4.19496 ++		*(.text)
 4.19497 ++	}
 4.19498 ++
 4.19499 ++	.text.pcrel10 0xa0000400:
 4.19500 ++	{
 4.19501 ++		*(.text.pcrel10)
 4.19502 ++	}
 4.19503 ++
 4.19504 ++	.text.pcrel16 0xa0008000:
 4.19505 ++	{
 4.19506 ++		*(.text.pcrel16)
 4.19507 ++	}
 4.19508 ++
 4.19509 ++	.text.pcrel21 0xa0200000:
 4.19510 ++	{
 4.19511 ++		*(.text.pcrel21)
 4.19512 ++	}
 4.19513 ++}
 4.19514 +--- /dev/null
 4.19515 ++++ b/ld/testsuite/ld-avr32/symbols.s
 4.19516 +@@ -0,0 +1,20 @@
 4.19517 ++	.text
 4.19518 ++	.global _start
 4.19519 ++_start:
 4.19520 ++	nop
 4.19521 ++	nop
 4.19522 ++
 4.19523 ++	.section .text.pcrel10,"ax"
 4.19524 ++	.global extsym10
 4.19525 ++extsym10:
 4.19526 ++	nop
 4.19527 ++
 4.19528 ++	.section .text.pcrel16,"ax"
 4.19529 ++	.global extsym16
 4.19530 ++extsym16:
 4.19531 ++	nop
 4.19532 ++
 4.19533 ++	.section .text.pcrel21,"ax"
 4.19534 ++	.global extsym21
 4.19535 ++extsym21:
 4.19536 ++	nop
 4.19537 +--- /dev/null
 4.19538 ++++ b/opcodes/avr32-asm.c
 4.19539 +@@ -0,0 +1,264 @@
 4.19540 ++/* Assembler interface for AVR32.
 4.19541 ++   Copyright 2005, 2006 Atmel Corporation.
 4.19542 ++
 4.19543 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
 4.19544 ++
 4.19545 ++   This file is part of libopcodes.
 4.19546 ++
 4.19547 ++   This program is free software; you can redistribute it and/or
 4.19548 ++   modify it under the terms of the GNU General Public License as
 4.19549 ++   published by the Free Software Foundation; either version 2 of the
 4.19550 ++   License, or (at your option) any later version.
 4.19551 ++
 4.19552 ++   This program is distributed in the hope that it will be useful, but
 4.19553 ++   WITHOUT ANY WARRANTY; without even the implied warranty of
 4.19554 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 4.19555 ++   General Public License for more details.
 4.19556 ++
 4.19557 ++   You should have received a copy of the GNU General Public License
 4.19558 ++   along with this program; if not, write to the Free Software
 4.19559 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 4.19560 ++   02111-1307, USA.  */
 4.19561 ++
 4.19562 ++#include <string.h>
 4.19563 ++
 4.19564 ++#include "avr32-opc.h"
 4.19565 ++#include "avr32-asm.h"
 4.19566 ++
 4.19567 ++/* Structure for a register hash table entry.  */
 4.19568 ++struct reg_entry
 4.19569 ++{
 4.19570 ++  const char	*name;
 4.19571 ++  int		number;
 4.19572 ++};
 4.19573 ++
 4.19574 ++/* Integer Registers.  */
 4.19575 ++static const struct reg_entry reg_table[] =
 4.19576 ++  {
 4.19577 ++    /* Primary names (used by the disassembler) */
 4.19578 ++    { "r0",   0 }, { "r1",   1 }, { "r2",   2 }, { "r3",   3 },
 4.19579 ++    { "r4",   4 }, { "r5",   5 }, { "r6",   6 }, { "r7",   7 },
 4.19580 ++    { "r8",   8 }, { "r9",   9 }, { "r10", 10 }, { "r11", 11 },
 4.19581 ++    { "r12", 12 }, { "sp",  13 }, { "lr",  14 }, { "pc",  15 },
 4.19582 ++    /* Alternatives to sp, lr and pc.  */
 4.19583 ++    { "r13", 13 }, { "r14", 14 }, { "r15", 15 },
 4.19584 ++  };
 4.19585 ++#define AVR32_NR_INTREGS (sizeof(reg_table)/sizeof(reg_table[0]))
 4.19586 ++
 4.19587 ++/* Coprocessor Registers.  */
 4.19588 ++static const struct reg_entry cr_table[] =
 4.19589 ++  {
 4.19590 ++    { "cr0",   0 }, { "cr1",   1 }, { "cr2",   2 }, { "cr3",   3 },
 4.19591 ++    { "cr4",   4 }, { "cr5",   5 }, { "cr6",   6 }, { "cr7",   7 },
 4.19592 ++    { "cr8",   8 }, { "cr9",   9 }, { "cr10", 10 }, { "cr11", 11 },
 4.19593 ++    { "cr12", 12 }, { "cr13", 13 }, { "cr14", 14 }, { "cr15", 15 },
 4.19594 ++  };
 4.19595 ++#define AVR32_NR_CPREGS (sizeof(cr_table)/sizeof(cr_table[0]))
 4.19596 ++
 4.19597 ++/* Floating-point Registers.  */
 4.19598 ++static const struct reg_entry fr_table[] =
 4.19599 ++  {
 4.19600 ++    { "fr0",   0 }, { "fr1",   1 }, { "fr2",   2 }, { "fr3",   3 },
 4.19601 ++    { "fr4",   4 }, { "fr5",   5 }, { "fr6",   6 }, { "fr7",   7 },
 4.19602 ++    { "fr8",   8 }, { "fr9",   9 }, { "fr10", 10 }, { "fr11", 11 },
 4.19603 ++    { "fr12", 12 }, { "fr13", 13 }, { "fr14", 14 }, { "fr15", 15 },
 4.19604 ++  };
 4.19605 ++#define AVR32_NR_FPREGS (sizeof(fr_table)/sizeof(fr_table[0]))
 4.19606 ++
 4.19607 ++/* PiCo Registers.  */
 4.19608 ++static const struct reg_entry pico_table[] =
 4.19609 ++  {
 4.19610 ++    { "inpix2",    0 }, { "inpix1",    1 }, { "inpix0",    2 },
 4.19611 ++    { "outpix2",   3 }, { "outpix1",   4 }, { "outpix0",   5 },
 4.19612 ++    { "coeff0_a",  6 }, { "coeff0_b",  7 }, { "coeff1_a",  8 },
 4.19613 ++    { "coeff1_b",  9 }, { "coeff2_a", 10 }, { "coeff2_b", 11 },
 4.19614 ++    { "vmu0_out", 12 }, { "vmu1_out", 13 }, { "vmu2_out", 14 },
 4.19615 ++    { "config",   15 },
 4.19616 ++  };
 4.19617 ++#define AVR32_NR_PICOREGS (sizeof(pico_table)/sizeof(pico_table[0]))
 4.19618 ++
 4.19619 ++int
 4.19620 ++avr32_parse_intreg(const char *str)
 4.19621 ++{
 4.19622 ++  unsigned int i;
 4.19623 ++
 4.19624 ++  for (i = 0; i < AVR32_NR_INTREGS; i++)
 4.19625 ++    {
 4.19626 ++      if (strcasecmp(reg_table[i].name, str) == 0)
 4.19627 ++	return reg_table[i].number;
 4.19628 ++    }
 4.19629 ++
 4.19630 ++  return -1;
 4.19631 ++}
 4.19632 ++
 4.19633 ++int
 4.19634 ++avr32_parse_cpreg(const char *str)
 4.19635 ++{
 4.19636 ++  unsigned int i;
 4.19637 ++
 4.19638 ++  for (i = 0; i < AVR32_NR_CPREGS; i++)
 4.19639 ++    {
 4.19640 ++      if (strcasecmp(cr_table[i].name, str) == 0)
 4.19641 ++	return cr_table[i].number;
 4.19642 ++    }
 4.19643 ++
 4.19644 ++  return -1;
 4.19645 ++}
 4.19646 ++
 4.19647 ++int avr32_parse_fpreg(const char *str)
 4.19648 ++{
 4.19649 ++  unsigned int i;
 4.19650 ++
 4.19651 ++  for (i = 0; i < AVR32_NR_FPREGS; i++)
 4.19652 ++    {
 4.19653 ++      if (strcasecmp(fr_table[i].name, str) == 0)
 4.19654 ++	return fr_table[i].number;
 4.19655 ++    }
 4.19656 ++
 4.19657 ++  return -1;
 4.19658 ++}
 4.19659 ++
 4.19660 ++int avr32_parse_picoreg(const char *str)
 4.19661 ++{
 4.19662 ++  unsigned int i;
 4.19663 ++
 4.19664 ++  for (i = 0; i < AVR32_NR_PICOREGS; i++)
 4.19665 ++    {
 4.19666 ++      if (strcasecmp(pico_table[i].name, str) == 0)
 4.19667 ++	return pico_table[i].number;
 4.19668 ++    }
 4.19669 ++
 4.19670 ++  return -1;
 4.19671 ++}
 4.19672 ++
 4.19673 ++static unsigned long
 4.19674 ++parse_reglist(char *str, char **endptr, int (*parse_reg)(const char *))
 4.19675 ++{
 4.19676 ++  int reg_from, reg_to;
 4.19677 ++  unsigned long result = 0;
 4.19678 ++  char *p1, *p2, c;
 4.19679 ++
 4.19680 ++  while (*str)
 4.19681 ++    {
 4.19682 ++      for (p1 = str; *p1; p1++)
 4.19683 ++	if (*p1 == ',' || *p1 == '-')
 4.19684 ++	  break;
 4.19685 ++
 4.19686 ++      c = *p1, *p1 = 0;
 4.19687 ++      reg_from = parse_reg(str);
 4.19688 ++      *p1 = c;
 4.19689 ++
 4.19690 ++      if (reg_from < 0)
 4.19691 ++	break;
 4.19692 ++
 4.19693 ++      if (*p1 == '-')
 4.19694 ++	{
 4.19695 ++	  for (p2 = ++p1; *p2; p2++)
 4.19696 ++	    if (*p2 == ',')
 4.19697 ++	      break;
 4.19698 ++
 4.19699 ++	  c = *p2, *p2 = 0;
 4.19700 ++	  /* printf("going to parse reg_to from `%s'\n", p1); */
 4.19701 ++	  reg_to = parse_reg(p1);
 4.19702 ++	  *p2 = c;
 4.19703 ++
 4.19704 ++	  if (reg_to < 0)
 4.19705 ++	    break;
 4.19706 ++
 4.19707 ++	  while (reg_from <= reg_to)
 4.19708 ++	    result |= (1 << reg_from++);
 4.19709 ++	  p1 = p2;
 4.19710 ++	}
 4.19711 ++      else
 4.19712 ++	result |= (1 << reg_from);
 4.19713 ++
 4.19714 ++      str = p1;
 4.19715 ++      if (*str) ++str;
 4.19716 ++    }
 4.19717 ++
 4.19718 ++  if (endptr)
 4.19719 ++    *endptr = str;
 4.19720 ++
 4.19721 ++  return result;
 4.19722 ++}
 4.19723 ++
 4.19724 ++unsigned long
 4.19725 ++avr32_parse_reglist(char *str, char **endptr)
 4.19726 ++{
 4.19727 ++  return parse_reglist(str, endptr, avr32_parse_intreg);
 4.19728 ++}
 4.19729 ++
 4.19730 ++unsigned long
 4.19731 ++avr32_parse_cpreglist(char *str, char **endptr)
 4.19732 ++{
 4.19733 ++  return parse_reglist(str, endptr, avr32_parse_cpreg);
 4.19734 ++}
 4.19735 ++
 4.19736 ++unsigned long
 4.19737 ++avr32_parse_pico_reglist(char *str, char **endptr)
 4.19738 ++{
 4.19739 ++  return parse_reglist(str, endptr, avr32_parse_picoreg);
 4.19740 ++}
 4.19741 ++
 4.19742 ++int
 4.19743 ++avr32_make_regmask8(unsigned long regmask16, unsigned long *regmask8)
 4.19744 ++{
 4.19745 ++  unsigned long result = 0;
 4.19746 ++
 4.19747 ++  /* printf("convert regmask16 0x%04lx\n", regmask16); */
 4.19748 ++
 4.19749 ++  if (regmask16 & 0xf)
 4.19750 ++    {
 4.19751 ++      if ((regmask16 & 0xf) == 0xf)
 4.19752 ++	result |= 1 << 0;
 4.19753 ++      else
 4.19754 ++	return -1;
 4.19755 ++    }
 4.19756 ++  if (regmask16 & 0xf0)
 4.19757 ++    {
 4.19758 ++      if ((regmask16 & 0xf0) == 0xf0)
 4.19759 ++	result |= 1 << 1;
 4.19760 ++      else
 4.19761 ++	return -1;
 4.19762 ++    }
 4.19763 ++  if (regmask16 & 0x300)
 4.19764 ++    {
 4.19765 ++      if ((regmask16 & 0x300) == 0x300)
 4.19766 ++	result |= 1 << 2;
 4.19767 ++      else
 4.19768 ++	return -1;
 4.19769 ++    }
 4.19770 ++  if (regmask16 & (1 << 13))
 4.19771 ++    return -1;
 4.19772 ++
 4.19773 ++  if (regmask16 & (1 << 10))
 4.19774 ++    result |= 1 << 3;
 4.19775 ++  if (regmask16 & (1 << 11))
 4.19776 ++    result |= 1 << 4;
 4.19777 ++  if (regmask16 & (1 << 12))
 4.19778 ++    result |= 1 << 5;
 4.19779 ++  if (regmask16 & (1 << 14))
 4.19780 ++    result |= 1 << 6;
 4.19781 ++  if (regmask16 & (1 << 15))
 4.19782 ++    result |= 1 << 7;
 4.19783 ++
 4.19784 ++  *regmask8 = result;
 4.19785 ++
 4.19786 ++  return 0;
 4.19787 ++}
 4.19788 ++
 4.19789 ++#if 0
 4.19790 ++struct reg_map
 4.19791 ++{
 4.19792 ++  const struct reg_entry	*names;
 4.19793 ++  int				nr_regs;
 4.19794 ++  struct hash_control		*htab;
 4.19795 ++  const char			*errmsg;
 4.19796 ++};
 4.19797 ++
 4.19798 ++struct reg_map all_reg_maps[] =
 4.19799 ++  {
 4.19800 ++    { reg_table, AVR32_NR_INTREGS, NULL, N_("integral register expected") },
 4.19801 ++    { cr_table,  AVR32_NR_CPREGS,  NULL, N_("coprocessor register expected") },
 4.19802 ++  };
 4.19803 ++#endif
 4.19804 +--- /dev/null
 4.19805 ++++ b/opcodes/avr32-asm.h
 4.19806 +@@ -0,0 +1,42 @@
 4.19807 ++/* Assembler interface for AVR32.
 4.19808 ++   Copyright 2005, 2006 Atmel Corporation.
 4.19809 ++
 4.19810 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
 4.19811 ++
 4.19812 ++   This file is part of libopcodes.
 4.19813 ++
 4.19814 ++   This program is free software; you can redistribute it and/or
 4.19815 ++   modify it under the terms of the GNU General Public License as
 4.19816 ++   published by the Free Software Foundation; either version 2 of the
 4.19817 ++   License, or (at your option) any later version.
 4.19818 ++
 4.19819 ++   This program is distributed in the hope that it will be useful, but
 4.19820 ++   WITHOUT ANY WARRANTY; without even the implied warranty of
 4.19821 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 4.19822 ++   General Public License for more details.
 4.19823 ++
 4.19824 ++   You should have received a copy of the GNU General Public License
 4.19825 ++   along with this program; if not, write to the Free Software
 4.19826 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 4.19827 ++   02111-1307, USA.  */
 4.19828 ++#ifndef __OPCODES_AVR32_ASM_H
 4.19829 ++#define __OPCODES_AVR32_ASM_H
 4.19830 ++
 4.19831 ++extern int
 4.19832 ++avr32_parse_intreg(const char *str);
 4.19833 ++extern int
 4.19834 ++avr32_parse_cpreg(const char *str);
 4.19835 ++extern int
 4.19836 ++avr32_parse_fpreg(const char *str);
 4.19837 ++extern int
 4.19838 ++avr32_parse_picoreg(const char *str);
 4.19839 ++extern unsigned long
 4.19840 ++avr32_parse_reglist(char *str, char **endptr);
 4.19841 ++extern unsigned long
 4.19842 ++avr32_parse_cpreglist(char *str, char **endptr);
 4.19843 ++extern unsigned long
 4.19844 ++avr32_parse_pico_reglist(char *str, char **endptr);
 4.19845 ++extern int
 4.19846 ++avr32_make_regmask8(unsigned long regmask16, unsigned long *regmask8);
 4.19847 ++
 4.19848 ++#endif /* __OPCODES_AVR32_ASM_H */
 4.19849 +--- /dev/null
 4.19850 ++++ b/opcodes/avr32-dis.c
 4.19851 +@@ -0,0 +1,891 @@
 4.19852 ++/* Print AVR32 instructions for GDB and objdump.
 4.19853 ++   Copyright 2005, 2006 Atmel Corporation.
 4.19854 ++
 4.19855 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
 4.19856 ++
 4.19857 ++   This file is part of libopcodes.
 4.19858 ++
 4.19859 ++   This program is free software; you can redistribute it and/or
 4.19860 ++   modify it under the terms of the GNU General Public License as
 4.19861 ++   published by the Free Software Foundation; either version 2 of the
 4.19862 ++   License, or (at your option) any later version.
 4.19863 ++
 4.19864 ++   This program is distributed in the hope that it will be useful, but
 4.19865 ++   WITHOUT ANY WARRANTY; without even the implied warranty of
 4.19866 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 4.19867 ++   General Public License for more details.
 4.19868 ++
 4.19869 ++   You should have received a copy of the GNU General Public License
 4.19870 ++   along with this program; if not, write to the Free Software
 4.19871 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 4.19872 ++   02111-1307, USA.  */
 4.19873 ++
 4.19874 ++#include "sysdep.h"
 4.19875 ++#include "dis-asm.h"
 4.19876 ++#include "avr32-opc.h"
 4.19877 ++#include "opintl.h"
 4.19878 ++#include "safe-ctype.h"
 4.19879 ++
 4.19880 ++/* TODO: Share this with -asm */
 4.19881 ++
 4.19882 ++/* Structure for a register hash table entry.  */
 4.19883 ++struct reg_entry
 4.19884 ++{
 4.19885 ++  const char	*name;
 4.19886 ++  int		number;
 4.19887 ++};
 4.19888 ++
 4.19889 ++#ifndef strneq
 4.19890 ++#define strneq(a,b,n)	(strncmp ((a), (b), (n)) == 0)
 4.19891 ++#endif
 4.19892 ++
 4.19893 ++
 4.19894 ++static const struct reg_entry reg_table[] =
 4.19895 ++  {
 4.19896 ++    /* Primary names (used by the disassembler) */
 4.19897 ++    { "r0",   0 }, { "r1",   1 }, { "r2",   2 }, { "r3",   3 },
 4.19898 ++    { "r4",   4 }, { "r5",   5 }, { "r6",   6 }, { "r7",   7 },
 4.19899 ++    { "r8",   8 }, { "r9",   9 }, { "r10", 10 }, { "r11", 11 },
 4.19900 ++    { "r12", 12 }, { "sp",  13 }, { "lr",  14 }, { "pc",  15 },
 4.19901 ++    /* Alternatives to sp, lr and pc.  */
 4.19902 ++    { "r13", 13 }, { "r14", 14 }, { "r15", 15 },
 4.19903 ++  };
 4.19904 ++#define AVR32_NR_INTREGS (sizeof(reg_table)/sizeof(reg_table[0]))
 4.19905 ++
 4.19906 ++/* Coprocessor Registers.  */
 4.19907 ++static const struct reg_entry cr_table[] =
 4.19908 ++  {
 4.19909 ++    { "cr0",   0 }, { "cr1",   1 }, { "cr2",   2 }, { "cr3",   3 },
 4.19910 ++    { "cr4",   4 }, { "cr5",   5 }, { "cr6",   6 }, { "cr7",   7 },
 4.19911 ++    { "cr8",   8 }, { "cr9",   9 }, { "cr10", 10 }, { "cr11", 11 },
 4.19912 ++    { "cr12", 12 }, { "cr13", 13 }, { "cr14", 14 }, { "cr15", 15 },
 4.19913 ++  };
 4.19914 ++#define AVR32_NR_CPREGS (sizeof(cr_table)/sizeof(cr_table[0]))
 4.19915 ++
 4.19916 ++static const char bparts[4] = { 'b', 'l', 'u', 't' };
 4.19917 ++static bfd_vma current_pc;
 4.19918 ++
 4.19919 ++struct avr32_field_value
 4.19920 ++{
 4.19921 ++  const struct avr32_ifield *ifield;
 4.19922 ++  unsigned long value;
 4.19923 ++};
 4.19924 ++
 4.19925 ++struct avr32_operand
 4.19926 ++{
 4.19927 ++  int id;
 4.19928 ++  int is_pcrel;
 4.19929 ++  int align_order;
 4.19930 ++  int (*print)(struct avr32_operand *op, struct disassemble_info *info,
 4.19931 ++	       struct avr32_field_value *ifields);
 4.19932 ++};
 4.19933 ++
 4.19934 ++static signed long
 4.19935 ++get_signed_value(const struct avr32_field_value *fv)
 4.19936 ++{
 4.19937 ++  signed long value = fv->value;
 4.19938 ++
 4.19939 ++  if (fv->value & (1 << (fv->ifield->bitsize - 1)))
 4.19940 ++    value |= (~0UL << fv->ifield->bitsize);
 4.19941 ++
 4.19942 ++  return value;
 4.19943 ++}
 4.19944 ++
 4.19945 ++static void
 4.19946 ++print_reglist_range(unsigned int first, unsigned int last,
 4.19947 ++		    const struct reg_entry *reg_names,
 4.19948 ++		    int need_comma,
 4.19949 ++		    struct disassemble_info *info)
 4.19950 ++{
 4.19951 ++  if (need_comma)
 4.19952 ++    info->fprintf_func(info->stream, ",");
 4.19953 ++
 4.19954 ++  if (first == last)
 4.19955 ++    info->fprintf_func(info->stream, "%s",
 4.19956 ++		       reg_names[first].name);
 4.19957 ++  else
 4.19958 ++    info->fprintf_func(info->stream, "%s-%s",
 4.19959 ++		       reg_names[first].name, reg_names[last].name);
 4.19960 ++}
 4.19961 ++
 4.19962 ++static int
 4.19963 ++print_intreg(struct avr32_operand *op,
 4.19964 ++	     struct disassemble_info *info,
 4.19965 ++	     struct avr32_field_value *ifields)
 4.19966 ++{
 4.19967 ++  unsigned long regid = ifields[0].value << op->align_order;
 4.19968 ++
 4.19969 ++  info->fprintf_func(info->stream, "%s",
 4.19970 ++		     reg_table[regid].name);
 4.19971 ++  return 1;
 4.19972 ++}
 4.19973 ++
 4.19974 ++static int
 4.19975 ++print_intreg_predec(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.19976 ++		    struct disassemble_info *info,
 4.19977 ++		    struct avr32_field_value *ifields)
 4.19978 ++{
 4.19979 ++  info->fprintf_func(info->stream, "--%s",
 4.19980 ++		     reg_table[ifields[0].value].name);
 4.19981 ++  return 1;
 4.19982 ++}
 4.19983 ++
 4.19984 ++static int
 4.19985 ++print_intreg_postinc(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.19986 ++		     struct disassemble_info *info,
 4.19987 ++		     struct avr32_field_value *ifields)
 4.19988 ++{
 4.19989 ++  info->fprintf_func(info->stream, "%s++",
 4.19990 ++		     reg_table[ifields[0].value].name);
 4.19991 ++  return 1;
 4.19992 ++}
 4.19993 ++
 4.19994 ++static int
 4.19995 ++print_intreg_lsl(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.19996 ++		 struct disassemble_info *info,
 4.19997 ++		 struct avr32_field_value *ifields)
 4.19998 ++{
 4.19999 ++  const char *rp = reg_table[ifields[0].value].name;
 4.20000 ++  unsigned long sa = ifields[1].value;
 4.20001 ++
 4.20002 ++  if (sa)
 4.20003 ++    info->fprintf_func(info->stream, "%s<<0x%lx", rp, sa);
 4.20004 ++  else
 4.20005 ++    info->fprintf_func(info->stream, "%s", rp);
 4.20006 ++
 4.20007 ++  return 2;
 4.20008 ++}
 4.20009 ++
 4.20010 ++static int
 4.20011 ++print_intreg_lsr(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.20012 ++		 struct disassemble_info *info,
 4.20013 ++		 struct avr32_field_value *ifields)
 4.20014 ++{
 4.20015 ++  const char *rp = reg_table[ifields[0].value].name;
 4.20016 ++  unsigned long sa = ifields[1].value;
 4.20017 ++
 4.20018 ++  if (sa)
 4.20019 ++    info->fprintf_func(info->stream, "%s>>0x%lx", rp, sa);
 4.20020 ++  else
 4.20021 ++    info->fprintf_func(info->stream, "%s", rp);
 4.20022 ++
 4.20023 ++  return 2;
 4.20024 ++}
 4.20025 ++
 4.20026 ++static int
 4.20027 ++print_intreg_bpart(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.20028 ++		   struct disassemble_info *info,
 4.20029 ++		   struct avr32_field_value *ifields)
 4.20030 ++{
 4.20031 ++  info->fprintf_func(info->stream, "%s:%c",
 4.20032 ++		     reg_table[ifields[0].value].name,
 4.20033 ++		     bparts[ifields[1].value]);
 4.20034 ++  return 2;
 4.20035 ++}
 4.20036 ++
 4.20037 ++static int
 4.20038 ++print_intreg_hpart(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.20039 ++		   struct disassemble_info *info,
 4.20040 ++		   struct avr32_field_value *ifields)
 4.20041 ++{
 4.20042 ++  info->fprintf_func(info->stream, "%s:%c",
 4.20043 ++		     reg_table[ifields[0].value].name,
 4.20044 ++		     ifields[1].value ? 't' : 'b');
 4.20045 ++  return 2;
 4.20046 ++}
 4.20047 ++
 4.20048 ++static int
 4.20049 ++print_intreg_sdisp(struct avr32_operand *op,
 4.20050 ++		  struct disassemble_info *info,
 4.20051 ++		  struct avr32_field_value *ifields)
 4.20052 ++{
 4.20053 ++  signed long disp;
 4.20054 ++
 4.20055 ++  disp = get_signed_value(&ifields[1]) << op->align_order;
 4.20056 ++
 4.20057 ++  info->fprintf_func(info->stream, "%s[%ld]",
 4.20058 ++		     reg_table[ifields[0].value].name, disp);
 4.20059 ++  return 2;
 4.20060 ++}
 4.20061 ++
 4.20062 ++static int
 4.20063 ++print_intreg_udisp(struct avr32_operand *op,
 4.20064 ++		   struct disassemble_info *info,
 4.20065 ++		   struct avr32_field_value *ifields)
 4.20066 ++{
 4.20067 ++  info->fprintf_func(info->stream, "%s[0x%lx]",
 4.20068 ++		     reg_table[ifields[0].value].name,
 4.20069 ++		     ifields[1].value << op->align_order);
 4.20070 ++  return 2;
 4.20071 ++}
 4.20072 ++
 4.20073 ++static int
 4.20074 ++print_intreg_index(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.20075 ++		   struct disassemble_info *info,
 4.20076 ++		   struct avr32_field_value *ifields)
 4.20077 ++{
 4.20078 ++  const char *rb, *ri;
 4.20079 ++  unsigned long sa = ifields[2].value;
 4.20080 ++
 4.20081 ++  rb = reg_table[ifields[0].value].name;
 4.20082 ++  ri = reg_table[ifields[1].value].name;
 4.20083 ++
 4.20084 ++  if (sa)
 4.20085 ++    info->fprintf_func(info->stream, "%s[%s<<0x%lx]", rb, ri, sa);
 4.20086 ++  else
 4.20087 ++    info->fprintf_func(info->stream, "%s[%s]", rb, ri);
 4.20088 ++
 4.20089 ++  return 3;
 4.20090 ++}
 4.20091 ++
 4.20092 ++static int
 4.20093 ++print_intreg_xindex(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.20094 ++		    struct disassemble_info *info,
 4.20095 ++		    struct avr32_field_value *ifields)
 4.20096 ++{
 4.20097 ++  info->fprintf_func(info->stream, "%s[%s:%c<<2]",
 4.20098 ++		     reg_table[ifields[0].value].name,
 4.20099 ++		     reg_table[ifields[1].value].name,
 4.20100 ++		     bparts[ifields[2].value]);
 4.20101 ++  return 3;
 4.20102 ++}
 4.20103 ++
 4.20104 ++static int
 4.20105 ++print_jmplabel(struct avr32_operand *op,
 4.20106 ++	       struct disassemble_info *info,
 4.20107 ++	       struct avr32_field_value *ifields)
 4.20108 ++{
 4.20109 ++  bfd_vma address, offset;
 4.20110 ++
 4.20111 ++  offset = get_signed_value(ifields) << op->align_order;
 4.20112 ++  address = (current_pc & (~0UL << op->align_order)) + offset;
 4.20113 ++
 4.20114 ++  info->print_address_func(address, info);
 4.20115 ++
 4.20116 ++  return 1;
 4.20117 ++}
 4.20118 ++
 4.20119 ++static int
 4.20120 ++print_pc_disp(struct avr32_operand *op,
 4.20121 ++	      struct disassemble_info *info,
 4.20122 ++	      struct avr32_field_value *ifields)
 4.20123 ++{
 4.20124 ++  bfd_vma address, offset;
 4.20125 ++
 4.20126 ++  offset = ifields[0].value << op->align_order;
 4.20127 ++  address = (current_pc & (~0UL << op->align_order)) + offset;
 4.20128 ++
 4.20129 ++  info->print_address_func(address, info);
 4.20130 ++
 4.20131 ++  return 1;
 4.20132 ++}
 4.20133 ++
 4.20134 ++static int
 4.20135 ++print_sp(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.20136 ++	 struct disassemble_info *info,
 4.20137 ++	 struct avr32_field_value *ifields ATTRIBUTE_UNUSED)
 4.20138 ++{
 4.20139 ++  info->fprintf_func(info->stream, "sp");
 4.20140 ++  return 1;
 4.20141 ++}
 4.20142 ++
 4.20143 ++static int
 4.20144 ++print_sp_disp(struct avr32_operand *op,
 4.20145 ++	      struct disassemble_info *info,
 4.20146 ++	      struct avr32_field_value *ifields)
 4.20147 ++{
 4.20148 ++  info->fprintf_func(info->stream, "sp[0x%lx]",
 4.20149 ++		     ifields[0].value << op->align_order);
 4.20150 ++  return 1;
 4.20151 ++}
 4.20152 ++
 4.20153 ++static int
 4.20154 ++print_cpno(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.20155 ++	   struct disassemble_info *info,
 4.20156 ++	   struct avr32_field_value *ifields)
 4.20157 ++{
 4.20158 ++  info->fprintf_func(info->stream, "cp%lu", ifields[0].value);
 4.20159 ++  return 1;
 4.20160 ++}
 4.20161 ++
 4.20162 ++static int
 4.20163 ++print_cpreg(struct avr32_operand *op,
 4.20164 ++	    struct disassemble_info *info,
 4.20165 ++	    struct avr32_field_value *ifields)
 4.20166 ++{
 4.20167 ++  info->fprintf_func(info->stream, "cr%lu",
 4.20168 ++		     ifields[0].value << op->align_order);
 4.20169 ++  return 1;
 4.20170 ++}
 4.20171 ++
 4.20172 ++static int
 4.20173 ++print_uconst(struct avr32_operand *op,
 4.20174 ++	     struct disassemble_info *info,
 4.20175 ++	     struct avr32_field_value *ifields)
 4.20176 ++{
 4.20177 ++  info->fprintf_func(info->stream, "0x%lx",
 4.20178 ++		     ifields[0].value << op->align_order);
 4.20179 ++  return 1;
 4.20180 ++}
 4.20181 ++
 4.20182 ++static int
 4.20183 ++print_sconst(struct avr32_operand *op,
 4.20184 ++	     struct disassemble_info *info,
 4.20185 ++	     struct avr32_field_value *ifields)
 4.20186 ++{
 4.20187 ++  info->fprintf_func(info->stream, "%ld",
 4.20188 ++		     get_signed_value(ifields) << op->align_order);
 4.20189 ++  return 1;
 4.20190 ++}
 4.20191 ++
 4.20192 ++static int
 4.20193 ++print_reglist8_head(unsigned long regmask, int *commap,
 4.20194 ++		    struct disassemble_info *info)
 4.20195 ++{
 4.20196 ++  int first = -1, last, i = 0;
 4.20197 ++  int need_comma = 0;
 4.20198 ++
 4.20199 ++  while (i < 12)
 4.20200 ++    {
 4.20201 ++      if (first == -1 && (regmask & 1))
 4.20202 ++	{
 4.20203 ++	  first = i;
 4.20204 ++	}
 4.20205 ++      else if (first != -1 && !(regmask & 1))
 4.20206 ++	{
 4.20207 ++	  last = i - 1;
 4.20208 ++
 4.20209 ++	  print_reglist_range(first, last, reg_table, need_comma, info);
 4.20210 ++	  need_comma = 1;
 4.20211 ++	  first = -1;
 4.20212 ++	}
 4.20213 ++
 4.20214 ++      if (i < 8)
 4.20215 ++	i += 4;
 4.20216 ++      else if (i < 10)
 4.20217 ++	i += 2;
 4.20218 ++      else
 4.20219 ++	i++;
 4.20220 ++      regmask >>= 1;
 4.20221 ++    }
 4.20222 ++
 4.20223 ++  *commap = need_comma;
 4.20224 ++  return first;
 4.20225 ++}
 4.20226 ++
 4.20227 ++static void
 4.20228 ++print_reglist8_tail(unsigned long regmask, int first, int need_comma,
 4.20229 ++		    struct disassemble_info *info)
 4.20230 ++{
 4.20231 ++  int last = 11;
 4.20232 ++
 4.20233 ++  if (regmask & 0x20)
 4.20234 ++    {
 4.20235 ++      if (first == -1)
 4.20236 ++	first = 12;
 4.20237 ++      last = 12;
 4.20238 ++    }
 4.20239 ++
 4.20240 ++  if (first != -1)
 4.20241 ++    {
 4.20242 ++      print_reglist_range(first, last, reg_table, need_comma, info);
 4.20243 ++      need_comma = 1;
 4.20244 ++      first = -1;
 4.20245 ++    }
 4.20246 ++
 4.20247 ++  if (regmask & 0x40)
 4.20248 ++    {
 4.20249 ++      if (first == -1)
 4.20250 ++	first = 14;
 4.20251 ++      last = 14;
 4.20252 ++    }
 4.20253 ++
 4.20254 ++  if (regmask & 0x80)
 4.20255 ++    {
 4.20256 ++      if (first == -1)
 4.20257 ++	first = 15;
 4.20258 ++      last = 15;
 4.20259 ++    }
 4.20260 ++
 4.20261 ++  if (first != -1)
 4.20262 ++    print_reglist_range(first, last, reg_table, need_comma, info);
 4.20263 ++}
 4.20264 ++
 4.20265 ++static int
 4.20266 ++print_reglist8(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.20267 ++	       struct disassemble_info *info,
 4.20268 ++	       struct avr32_field_value *ifields)
 4.20269 ++{
 4.20270 ++  unsigned long regmask = ifields[0].value;
 4.20271 ++  int first, need_comma;
 4.20272 ++
 4.20273 ++  first = print_reglist8_head(regmask, &need_comma, info);
 4.20274 ++  print_reglist8_tail(regmask, first, need_comma, info);
 4.20275 ++
 4.20276 ++  return 1;
 4.20277 ++}
 4.20278 ++
 4.20279 ++static int
 4.20280 ++print_reglist9(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.20281 ++	       struct disassemble_info *info,
 4.20282 ++	       struct avr32_field_value *ifields)
 4.20283 ++{
 4.20284 ++  unsigned long regmask = ifields[0].value >> 1;
 4.20285 ++  int first, last, need_comma;
 4.20286 ++
 4.20287 ++  first = print_reglist8_head(regmask, &need_comma, info);
 4.20288 ++
 4.20289 ++  if ((ifields[0].value & 0x101) == 0x101)
 4.20290 ++    {
 4.20291 ++      if (first != -1)
 4.20292 ++	{
 4.20293 ++	  last = 11;
 4.20294 ++
 4.20295 ++	  print_reglist_range(first, last, reg_table, need_comma, info);
 4.20296 ++	  need_comma = 1;
 4.20297 ++	  first = -1;
 4.20298 ++	}
 4.20299 ++
 4.20300 ++      print_reglist_range(15, 15, reg_table, need_comma, info);
 4.20301 ++
 4.20302 ++      regmask >>= 5;
 4.20303 ++
 4.20304 ++      if ((regmask & 3) == 0)
 4.20305 ++	info->fprintf_func(info->stream, ",r12=0");
 4.20306 ++      else if ((regmask & 3) == 1)
 4.20307 ++	info->fprintf_func(info->stream, ",r12=1");
 4.20308 ++      else
 4.20309 ++	info->fprintf_func(info->stream, ",r12=-1");
 4.20310 ++    }
 4.20311 ++  else
 4.20312 ++      print_reglist8_tail(regmask, first, need_comma, info);
 4.20313 ++
 4.20314 ++  return 1;
 4.20315 ++}
 4.20316 ++
 4.20317 ++static int
 4.20318 ++print_reglist16(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.20319 ++		struct disassemble_info *info,
 4.20320 ++		struct avr32_field_value *ifields)
 4.20321 ++{
 4.20322 ++  unsigned long regmask = ifields[0].value;
 4.20323 ++  unsigned int i = 0, first, last;
 4.20324 ++  int need_comma = 0;
 4.20325 ++
 4.20326 ++  while (i < 16)
 4.20327 ++    {
 4.20328 ++      if (regmask & 1)
 4.20329 ++	{
 4.20330 ++	  first = i;
 4.20331 ++	  while (i < 16)
 4.20332 ++	    {
 4.20333 ++	      i++;
 4.20334 ++	      regmask >>= 1;
 4.20335 ++	      if (!(regmask & 1))
 4.20336 ++		break;
 4.20337 ++	    }
 4.20338 ++	  last = i - 1;
 4.20339 ++	  print_reglist_range(first, last, reg_table, need_comma, info);
 4.20340 ++	  need_comma = 1;
 4.20341 ++	}
 4.20342 ++      else
 4.20343 ++	{
 4.20344 ++	  i++;
 4.20345 ++	  regmask >>= 1;
 4.20346 ++	}
 4.20347 ++    }
 4.20348 ++
 4.20349 ++  return 1;
 4.20350 ++}
 4.20351 ++
 4.20352 ++static int
 4.20353 ++print_reglist_ldm(struct avr32_operand *op,
 4.20354 ++		  struct disassemble_info *info,
 4.20355 ++		  struct avr32_field_value *ifields)
 4.20356 ++{
 4.20357 ++  int rp, w_bit;
 4.20358 ++  int i, first, last;
 4.20359 ++  unsigned long regmask;
 4.20360 ++
 4.20361 ++  rp = ifields[0].value;
 4.20362 ++  w_bit = ifields[1].value;
 4.20363 ++  regmask = ifields[2].value;
 4.20364 ++
 4.20365 ++  if (regmask & (1 << AVR32_REG_PC) && rp == AVR32_REG_PC)
 4.20366 ++    {
 4.20367 ++      if (w_bit)
 4.20368 ++	info->fprintf_func(info->stream, "sp++");
 4.20369 ++      else
 4.20370 ++	info->fprintf_func(info->stream, "sp");
 4.20371 ++
 4.20372 ++      for (i = 0; i < 12; )
 4.20373 ++	{
 4.20374 ++	  if (regmask & (1 << i))
 4.20375 ++	    {
 4.20376 ++	      first = i;
 4.20377 ++	      while (i < 12)
 4.20378 ++		{
 4.20379 ++		  i++;
 4.20380 ++		  if (!(regmask & (1 << i)))
 4.20381 ++		    break;
 4.20382 ++		}
 4.20383 ++	      last = i - 1;
 4.20384 ++	      print_reglist_range(first, last, reg_table, 1, info);
 4.20385 ++	    }
 4.20386 ++	  else
 4.20387 ++	    i++;
 4.20388 ++	}
 4.20389 ++
 4.20390 ++      info->fprintf_func(info->stream, ",pc");
 4.20391 ++      if (regmask & (1 << AVR32_REG_LR))
 4.20392 ++	info->fprintf_func(info->stream, ",r12=-1");
 4.20393 ++      else if (regmask & (1 << AVR32_REG_R12))
 4.20394 ++	info->fprintf_func(info->stream, ",r12=1");
 4.20395 ++      else
 4.20396 ++	info->fprintf_func(info->stream, ",r12=0");
 4.20397 ++    }
 4.20398 ++  else
 4.20399 ++    {
 4.20400 ++      if (w_bit)
 4.20401 ++	info->fprintf_func(info->stream, "%s++,", reg_table[rp].name);
 4.20402 ++      else
 4.20403 ++	info->fprintf_func(info->stream, "%s,", reg_table[rp].name);
 4.20404 ++
 4.20405 ++      print_reglist16(op, info, ifields + 2);
 4.20406 ++    }
 4.20407 ++
 4.20408 ++  return 3;
 4.20409 ++}
 4.20410 ++
 4.20411 ++static int
 4.20412 ++print_reglist_cp8(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.20413 ++		  struct disassemble_info *info,
 4.20414 ++		  struct avr32_field_value *ifields)
 4.20415 ++{
 4.20416 ++  unsigned long regmask = ifields[0].value;
 4.20417 ++  unsigned int i = 0, first, last, offset = 0;
 4.20418 ++  int need_comma = 0;
 4.20419 ++
 4.20420 ++  if (ifields[1].value)
 4.20421 ++    offset = 8;
 4.20422 ++
 4.20423 ++  while (i < 8)
 4.20424 ++    {
 4.20425 ++      if (regmask & 1)
 4.20426 ++	{
 4.20427 ++	  first = i;
 4.20428 ++	  while (i < 8)
 4.20429 ++	    {
 4.20430 ++	      i++;
 4.20431 ++	      regmask >>= 1;
 4.20432 ++	      if (!(regmask & 1))
 4.20433 ++		break;
 4.20434 ++	    }
 4.20435 ++	  last = i - 1;
 4.20436 ++	  print_reglist_range(offset + first, offset + last,
 4.20437 ++			      cr_table, need_comma, info);
 4.20438 ++	  need_comma = 1;
 4.20439 ++	}
 4.20440 ++      else
 4.20441 ++	{
 4.20442 ++	  i++;
 4.20443 ++	  regmask >>= 1;
 4.20444 ++	}
 4.20445 ++    }
 4.20446 ++
 4.20447 ++  return 2;
 4.20448 ++}
 4.20449 ++
 4.20450 ++static int
 4.20451 ++print_reglist_cpd8(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.20452 ++		   struct disassemble_info *info,
 4.20453 ++		   struct avr32_field_value *ifields)
 4.20454 ++{
 4.20455 ++  unsigned long regmask = ifields[0].value;
 4.20456 ++  unsigned int i = 0, first, last;
 4.20457 ++  int need_comma = 0;
 4.20458 ++
 4.20459 ++  while (i < 8)
 4.20460 ++    {
 4.20461 ++      if (regmask & 1)
 4.20462 ++	{
 4.20463 ++	  first = 2 * i;
 4.20464 ++	  while (i < 8)
 4.20465 ++	    {
 4.20466 ++	      i++;
 4.20467 ++	      regmask >>= 1;
 4.20468 ++	      if (!(regmask & 1))
 4.20469 ++		break;
 4.20470 ++	    }
 4.20471 ++	  last = 2 * (i - 1) + 1;
 4.20472 ++	  print_reglist_range(first, last, cr_table, need_comma, info);
 4.20473 ++	  need_comma = 1;
 4.20474 ++	}
 4.20475 ++      else
 4.20476 ++	{
 4.20477 ++	  i++;
 4.20478 ++	  regmask >>= 1;
 4.20479 ++	}
 4.20480 ++    }
 4.20481 ++
 4.20482 ++  return 1;
 4.20483 ++}
 4.20484 ++
 4.20485 ++static int
 4.20486 ++print_retval(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.20487 ++	     struct disassemble_info *info,
 4.20488 ++	     struct avr32_field_value *ifields)
 4.20489 ++{
 4.20490 ++  unsigned long regid = ifields[0].value;
 4.20491 ++  const char *retval;
 4.20492 ++
 4.20493 ++  if (regid < AVR32_REG_SP)
 4.20494 ++    retval = reg_table[regid].name;
 4.20495 ++  else if (regid == AVR32_REG_SP)
 4.20496 ++    retval = "0";
 4.20497 ++  else if (regid == AVR32_REG_LR)
 4.20498 ++    retval = "-1";
 4.20499 ++  else
 4.20500 ++    retval = "1";
 4.20501 ++
 4.20502 ++  info->fprintf_func(info->stream, "%s", retval);
 4.20503 ++
 4.20504 ++  return 1;
 4.20505 ++}
 4.20506 ++
 4.20507 ++static int
 4.20508 ++print_mcall(struct avr32_operand *op,
 4.20509 ++	    struct disassemble_info *info,
 4.20510 ++	    struct avr32_field_value *ifields)
 4.20511 ++{
 4.20512 ++  unsigned long regid = ifields[0].value;
 4.20513 ++
 4.20514 ++  if (regid == AVR32_REG_PC)
 4.20515 ++    print_jmplabel(op, info, ifields + 1);
 4.20516 ++  else
 4.20517 ++    print_intreg_sdisp(op, info, ifields);
 4.20518 ++
 4.20519 ++  return 2;
 4.20520 ++}
 4.20521 ++
 4.20522 ++static int
 4.20523 ++print_jospinc(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.20524 ++	      struct disassemble_info *info,
 4.20525 ++	      struct avr32_field_value *ifields)
 4.20526 ++{
 4.20527 ++  signed long value = ifields[0].value;
 4.20528 ++
 4.20529 ++  if (value >= 4)
 4.20530 ++    value -= 8;
 4.20531 ++  else
 4.20532 ++    value += 1;
 4.20533 ++
 4.20534 ++  info->fprintf_func(info->stream, "%ld", value);
 4.20535 ++
 4.20536 ++  return 1;
 4.20537 ++}
 4.20538 ++
 4.20539 ++static int
 4.20540 ++print_coh(struct avr32_operand *op ATTRIBUTE_UNUSED,
 4.20541 ++	  struct disassemble_info *info,
 4.20542 ++	  struct avr32_field_value *ifields ATTRIBUTE_UNUSED)
 4.20543 ++{
 4.20544 ++  info->fprintf_func(info->stream, "COH");
 4.20545 ++  return 0;
 4.20546 ++}
 4.20547 ++
 4.20548 ++#define OP(name, sgn, pcrel, align, func) \
 4.20549 ++  { AVR32_OPERAND_##name, pcrel, align, print_##func }
 4.20550 ++
 4.20551 ++struct avr32_operand operand[AVR32_NR_OPERANDS] =
 4.20552 ++  {
 4.20553 ++    OP(INTREG, 0, 0, 0, intreg),
 4.20554 ++    OP(INTREG_PREDEC, 0, 0, 0, intreg_predec),
 4.20555 ++    OP(INTREG_POSTINC, 0, 0, 0, intreg_postinc),
 4.20556 ++    OP(INTREG_LSL, 0, 0, 0, intreg_lsl),
 4.20557 ++    OP(INTREG_LSR, 0, 0, 0, intreg_lsr),
 4.20558 ++    OP(INTREG_BSEL, 0, 0, 0, intreg_bpart),
 4.20559 ++    OP(INTREG_HSEL, 0, 0, 1, intreg_hpart),
 4.20560 ++    OP(INTREG_SDISP, 1, 0, 0, intreg_sdisp),
 4.20561 ++    OP(INTREG_SDISP_H, 1, 0, 1, intreg_sdisp),
 4.20562 ++    OP(INTREG_SDISP_W, 1, 0, 2, intreg_sdisp),
 4.20563 ++    OP(INTREG_UDISP, 0, 0, 0, intreg_udisp),
 4.20564 ++    OP(INTREG_UDISP_H, 0, 0, 1, intreg_udisp),
 4.20565 ++    OP(INTREG_UDISP_W, 0, 0, 2, intreg_udisp),
 4.20566 ++    OP(INTREG_INDEX, 0, 0, 0, intreg_index),
 4.20567 ++    OP(INTREG_XINDEX, 0, 0, 0, intreg_xindex),
 4.20568 ++    OP(DWREG, 0, 0, 1, intreg),
 4.20569 ++    OP(PC_UDISP_W, 0, 1, 2, pc_disp),
 4.20570 ++    OP(SP, 0, 0, 0, sp),
 4.20571 ++    OP(SP_UDISP_W, 0, 0, 2, sp_disp),
 4.20572 ++    OP(CPNO, 0, 0, 0, cpno),
 4.20573 ++    OP(CPREG, 0, 0, 0, cpreg),
 4.20574 ++    OP(CPREG_D, 0, 0, 1, cpreg),
 4.20575 ++    OP(UNSIGNED_CONST, 0, 0, 0, uconst),
 4.20576 ++    OP(UNSIGNED_CONST_W, 0, 0, 2, uconst),
 4.20577 ++    OP(SIGNED_CONST, 1, 0, 0, sconst),
 4.20578 ++    OP(SIGNED_CONST_W, 1, 0, 2, sconst),
 4.20579 ++    OP(JMPLABEL, 1, 1, 1, jmplabel),
 4.20580 ++    OP(UNSIGNED_NUMBER, 0, 0, 0, uconst),
 4.20581 ++    OP(UNSIGNED_NUMBER_W, 0, 0, 2, uconst),
 4.20582 ++    OP(REGLIST8, 0, 0, 0, reglist8),
 4.20583 ++    OP(REGLIST9, 0, 0, 0, reglist9),
 4.20584 ++    OP(REGLIST16, 0, 0, 0, reglist16),
 4.20585 ++    OP(REGLIST_LDM, 0, 0, 0, reglist_ldm),
 4.20586 ++    OP(REGLIST_CP8, 0, 0, 0, reglist_cp8),
 4.20587 ++    OP(REGLIST_CPD8, 0, 0, 0, reglist_cpd8),
 4.20588 ++    OP(RETVAL, 0, 0, 0, retval),
 4.20589 ++    OP(MCALL, 1, 0, 2, mcall),
 4.20590 ++    OP(JOSPINC, 0, 0, 0, jospinc),
 4.20591 ++    OP(COH, 0, 0, 0, coh),
 4.20592 ++  };
 4.20593 ++
 4.20594 ++static void
 4.20595 ++print_opcode(bfd_vma insn_word, const struct avr32_opcode *opc,
 4.20596 ++	     bfd_vma pc, struct disassemble_info *info)
 4.20597 ++{
 4.20598 ++  const struct avr32_syntax *syntax = opc->syntax;
 4.20599 ++  struct avr32_field_value fields[AVR32_MAX_FIELDS];
 4.20600 ++  unsigned int i, next_field = 0, nr_operands;
 4.20601 ++
 4.20602 ++  for (i = 0; i < opc->nr_fields; i++)
 4.20603 ++    {
 4.20604 ++      opc->fields[i]->extract(opc->fields[i], &insn_word, &fields[i].value);
 4.20605 ++      fields[i].ifield = opc->fields[i];
 4.20606 ++    }
 4.20607 ++
 4.20608 ++  current_pc = pc;
 4.20609 ++  info->fprintf_func(info->stream, "%s", syntax->mnemonic->name);
 4.20610 ++
 4.20611 ++  if (syntax->nr_operands < 0)
 4.20612 ++    nr_operands = (unsigned int) -syntax->nr_operands;
 4.20613 ++  else
 4.20614 ++    nr_operands = (unsigned int) syntax->nr_operands;
 4.20615 ++
 4.20616 ++  for (i = 0; i < nr_operands; i++)
 4.20617 ++    {
 4.20618 ++      struct avr32_operand *op = &operand[syntax->operand[i]];
 4.20619 ++
 4.20620 ++      if (i)
 4.20621 ++	info->fprintf_func(info->stream, ",");
 4.20622 ++      else
 4.20623 ++	info->fprintf_func(info->stream, "\t");
 4.20624 ++      next_field += op->print(op, info, &fields[next_field]);
 4.20625 ++    }
 4.20626 ++}
 4.20627 ++
 4.20628 ++static const struct avr32_opcode *
 4.20629 ++find_opcode(bfd_vma insn_word)
 4.20630 ++{
 4.20631 ++  int i;
 4.20632 ++
 4.20633 ++  for (i = 0; i < AVR32_NR_OPCODES; i++)
 4.20634 ++    {
 4.20635 ++      const struct avr32_opcode *opc = &avr32_opc_table[i];
 4.20636 ++
 4.20637 ++      if ((insn_word & opc->mask) == opc->value)
 4.20638 ++	return opc;
 4.20639 ++    }
 4.20640 ++
 4.20641 ++  return NULL;
 4.20642 ++}
 4.20643 ++
 4.20644 ++static int
 4.20645 ++read_insn_word(bfd_vma pc, bfd_vma *valuep,
 4.20646 ++	       struct disassemble_info *info)
 4.20647 ++{
 4.20648 ++  bfd_byte b[4];
 4.20649 ++  int status;
 4.20650 ++
 4.20651 ++  status = info->read_memory_func(pc, b, 4, info);
 4.20652 ++  if (status)
 4.20653 ++    {
 4.20654 ++      status = info->read_memory_func(pc, b, 2, info);
 4.20655 ++      if (status)
 4.20656 ++	{
 4.20657 ++	  info->memory_error_func(status, pc, info);
 4.20658 ++	  return -1;
 4.20659 ++	}
 4.20660 ++      b[3] = b[2] = 0;
 4.20661 ++    }
 4.20662 ++
 4.20663 ++  *valuep =  (b[0] << 24) | (b[1] << 16) | (b[2] << 8) | b[3];
 4.20664 ++  return 0;
 4.20665 ++}
 4.20666 ++
 4.20667 ++/* Parse an individual disassembler option.  */
 4.20668 ++
 4.20669 ++void
 4.20670 ++parse_avr32_disassembler_option (option)
 4.20671 ++     char * option;
 4.20672 ++{
 4.20673 ++  if (option == NULL)
 4.20674 ++    return;
 4.20675 ++
 4.20676 ++  /* XXX - should break 'option' at following delimiter.  */
 4.20677 ++  fprintf (stderr, _("Unrecognised disassembler option: %s\n"), option);
 4.20678 ++
 4.20679 ++  return;
 4.20680 ++}
 4.20681 ++
 4.20682 ++/* Parse the string of disassembler options, spliting it at whitespaces
 4.20683 ++   or commas.  (Whitespace separators supported for backwards compatibility).  */
 4.20684 ++
 4.20685 ++static void
 4.20686 ++parse_disassembler_options (char *options)
 4.20687 ++{
 4.20688 ++  if (options == NULL)
 4.20689 ++    return;
 4.20690 ++
 4.20691 ++  while (*options)
 4.20692 ++    {
 4.20693 ++      parse_avr32_disassembler_option (options);
 4.20694 ++
 4.20695 ++      /* Skip forward to next seperator.  */
 4.20696 ++      while ((*options) && (! ISSPACE (*options)) && (*options != ','))
 4.20697 ++	++ options;
 4.20698 ++      /* Skip forward past seperators.  */
 4.20699 ++      while (ISSPACE (*options) || (*options == ','))
 4.20700 ++	++ options;
 4.20701 ++    }
 4.20702 ++}
 4.20703 ++
 4.20704 ++int
 4.20705 ++print_insn_avr32(bfd_vma pc, struct disassemble_info *info)
 4.20706 ++{
 4.20707 ++  bfd_vma insn_word;
 4.20708 ++  const struct avr32_opcode *opc;
 4.20709 ++
 4.20710 ++  if (info->disassembler_options)
 4.20711 ++    {
 4.20712 ++      parse_disassembler_options (info->disassembler_options);
 4.20713 ++
 4.20714 ++      /* To avoid repeated parsing of these options, we remove them here.  */
 4.20715 ++      info->disassembler_options = NULL;
 4.20716 ++    }
 4.20717 ++
 4.20718 ++  info->bytes_per_chunk = 1;
 4.20719 ++  info->display_endian = BFD_ENDIAN_BIG;
 4.20720 ++
 4.20721 ++  if (read_insn_word(pc, &insn_word, info))
 4.20722 ++    return -1;
 4.20723 ++
 4.20724 ++  opc = find_opcode(insn_word);
 4.20725 ++  if (opc)
 4.20726 ++    {
 4.20727 ++      print_opcode(insn_word, opc, pc, info);
 4.20728 ++      return opc->size;
 4.20729 ++    }
 4.20730 ++  else
 4.20731 ++    {
 4.20732 ++      info->fprintf_func(info->stream, _("*unknown*"));
 4.20733 ++      return 2;
 4.20734 ++    }
 4.20735 ++
 4.20736 ++}
 4.20737 ++
 4.20738 ++void
 4.20739 ++print_avr32_disassembler_options (FILE *stream ATTRIBUTE_UNUSED)
 4.20740 ++{
 4.20741 ++
 4.20742 ++}
 4.20743 +--- /dev/null
 4.20744 ++++ b/opcodes/avr32-opc.c
 4.20745 +@@ -0,0 +1,6932 @@
 4.20746 ++/* Opcode tables for AVR32.
 4.20747 ++   Copyright 2005, 2006 Atmel Corporation.
 4.20748 ++
 4.20749 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
 4.20750 ++
 4.20751 ++   This file is part of libopcodes.
 4.20752 ++
 4.20753 ++   This program is free software; you can redistribute it and/or
 4.20754 ++   modify it under the terms of the GNU General Public License as
 4.20755 ++   published by the Free Software Foundation; either version 2 of the
 4.20756 ++   License, or (at your option) any later version.
 4.20757 ++
 4.20758 ++   This program is distributed in the hope that it will be useful, but
 4.20759 ++   WITHOUT ANY WARRANTY; without even the implied warranty of
 4.20760 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 4.20761 ++   General Public License for more details.
 4.20762 ++
 4.20763 ++   You should have received a copy of the GNU General Public License
 4.20764 ++   along with this program; if not, write to the Free Software
 4.20765 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 4.20766 ++   02111-1307, USA.  */
 4.20767 ++
 4.20768 ++#include <stdlib.h>
 4.20769 ++#include <assert.h>
 4.20770 ++
 4.20771 ++#include "avr32-opc.h"
 4.20772 ++
 4.20773 ++#define PICO_CPNO	1
 4.20774 ++
 4.20775 ++void
 4.20776 ++avr32_insert_simple(const struct avr32_ifield *field,
 4.20777 ++		    void *buf, unsigned long value)
 4.20778 ++{
 4.20779 ++  bfd_vma word;
 4.20780 ++
 4.20781 ++  word = bfd_getb32(buf);
 4.20782 ++  word &= ~field->mask;
 4.20783 ++  word |= (value << field->shift) & field->mask;
 4.20784 ++  bfd_putb32(word, buf);
 4.20785 ++}
 4.20786 ++
 4.20787 ++void
 4.20788 ++avr32_insert_bit5c(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
 4.20789 ++		   void *buf, unsigned long value)
 4.20790 ++{
 4.20791 ++  char *opcode = buf;
 4.20792 ++
 4.20793 ++  opcode[0] = (opcode[0] & 0xe1) | (value & 0x1e);
 4.20794 ++  opcode[1] = (opcode[1] & 0xef) | ((value & 1) << 4);
 4.20795 ++}
 4.20796 ++
 4.20797 ++void
 4.20798 ++avr32_insert_k10(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
 4.20799 ++		 void *buf, unsigned long value)
 4.20800 ++{
 4.20801 ++  char *opcode = buf;
 4.20802 ++
 4.20803 ++  opcode[0] = (opcode[0] & 0xf0) | ((value & 0xf0) >> 4);
 4.20804 ++  opcode[1] = ((opcode[1] & 0x0c) | ((value & 0x0f) << 4)
 4.20805 ++	       | ((value & 0x300) >> 8));
 4.20806 ++}
 4.20807 ++
 4.20808 ++
 4.20809 ++void
 4.20810 ++avr32_insert_k21(const struct avr32_ifield *field,
 4.20811 ++		 void *buf, unsigned long value)
 4.20812 ++{
 4.20813 ++  bfd_vma word;
 4.20814 ++  bfd_vma k21;
 4.20815 ++
 4.20816 ++  word = bfd_getb32(buf);
 4.20817 ++  word &= ~field->mask;
 4.20818 ++  k21 = ((value & 0xffff) | ((value & 0x10000) << 4)
 4.20819 ++	 | ((value & 0x1e0000) << 8));
 4.20820 ++  assert(!(k21 & ~field->mask));
 4.20821 ++  word |= k21;
 4.20822 ++  bfd_putb32(word, buf);
 4.20823 ++}
 4.20824 ++
 4.20825 ++void
 4.20826 ++avr32_insert_cpop(const struct avr32_ifield *field,
 4.20827 ++		  void *buf, unsigned long value)
 4.20828 ++{
 4.20829 ++  bfd_vma word;
 4.20830 ++
 4.20831 ++  word = bfd_getb32(buf);
 4.20832 ++  word &= ~field->mask;
 4.20833 ++  word |= (((value & 0x1e) << 15) | ((value & 0x60) << 20)
 4.20834 ++	   | ((value & 0x01) << 12));
 4.20835 ++  bfd_putb32(word, buf);
 4.20836 ++}
 4.20837 ++
 4.20838 ++void
 4.20839 ++avr32_insert_k12cp(const struct avr32_ifield *field,
 4.20840 ++		   void *buf, unsigned long value)
 4.20841 ++{
 4.20842 ++  bfd_vma word;
 4.20843 ++
 4.20844 ++  word = bfd_getb32(buf);
 4.20845 ++  word &= ~field->mask;
 4.20846 ++  word |= ((value & 0xf00) << 4) | (value & 0xff);
 4.20847 ++  bfd_putb32(word, buf);
 4.20848 ++}
 4.20849 ++
 4.20850 ++void avr32_extract_simple(const struct avr32_ifield *field,
 4.20851 ++			  void *buf, unsigned long *value)
 4.20852 ++{
 4.20853 ++  /* XXX: The disassembler has done any necessary byteswapping already */
 4.20854 ++  bfd_vma word = *(bfd_vma *)buf;
 4.20855 ++
 4.20856 ++  *value = (word & field->mask) >> field->shift;
 4.20857 ++}
 4.20858 ++
 4.20859 ++void avr32_extract_bit5c(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
 4.20860 ++			 void *buf, unsigned long *value)
 4.20861 ++{
 4.20862 ++  bfd_vma word = *(bfd_vma *)buf;
 4.20863 ++
 4.20864 ++  *value = ((word >> 20) & 1) | ((word >> 24) & 0x1e);
 4.20865 ++}
 4.20866 ++
 4.20867 ++void avr32_extract_k10(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
 4.20868 ++		       void *buf, unsigned long *value)
 4.20869 ++{
 4.20870 ++  bfd_vma word = *(bfd_vma *)buf;
 4.20871 ++
 4.20872 ++  *value = ((word >> 8) & 0x300) | ((word >> 20) & 0xff);
 4.20873 ++}
 4.20874 ++
 4.20875 ++void avr32_extract_k21(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
 4.20876 ++		       void *buf, unsigned long *value)
 4.20877 ++{
 4.20878 ++  bfd_vma word = *(bfd_vma *)buf;
 4.20879 ++
 4.20880 ++  *value = ((word & 0xffff) | ((word >> 4) & 0x10000)
 4.20881 ++	    | ((word >> 8) & 0x1e0000));
 4.20882 ++}
 4.20883 ++
 4.20884 ++void avr32_extract_cpop(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
 4.20885 ++			void *buf, unsigned long *value)
 4.20886 ++{
 4.20887 ++  bfd_vma word = *(bfd_vma *)buf;
 4.20888 ++
 4.20889 ++  *value = (((word >> 12) & 1) | ((word >> 15) & 0x1e)
 4.20890 ++	    | ((word >> 20) & 0x60));
 4.20891 ++}
 4.20892 ++
 4.20893 ++void avr32_extract_k12cp(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
 4.20894 ++			 void *buf, unsigned long *value)
 4.20895 ++{
 4.20896 ++  bfd_vma word = *(bfd_vma *)buf;
 4.20897 ++
 4.20898 ++  *value = ((word >> 4) & 0xf00) | (word & 0xff);
 4.20899 ++}
 4.20900 ++
 4.20901 ++
 4.20902 ++#define IFLD(id, bitsz, shift, mask, func) \
 4.20903 ++  { AVR32_IFIELD_##id, bitsz, shift, mask, \
 4.20904 ++    avr32_insert_##func, avr32_extract_##func }
 4.20905 ++
 4.20906 ++const struct avr32_ifield avr32_ifield_table[] =
 4.20907 ++  {
 4.20908 ++    IFLD(RX, 4, 25, 0x1e000000, simple),
 4.20909 ++    IFLD(RY, 4, 16, 0x000f0000, simple),
 4.20910 ++    IFLD(COND4C, 4, 20, 0x00f00000, simple),
 4.20911 ++    IFLD(K8C, 8, 20, 0x0ff00000, simple),
 4.20912 ++    IFLD(K7C, 7, 20, 0x07f00000, simple),
 4.20913 ++    IFLD(K5C, 5, 20, 0x01f00000, simple),
 4.20914 ++    IFLD(K3, 3, 20, 0x00700000, simple),
 4.20915 ++    IFLD(RY_DW, 3, 17, 0x000e0000, simple),
 4.20916 ++    IFLD(COND4E, 4, 8, 0x00000f00, simple),
 4.20917 ++    IFLD(K8E, 8, 0, 0x000000ff, simple),
 4.20918 ++    IFLD(BIT5C, 5, 20, 0x1e100000, bit5c),
 4.20919 ++    IFLD(COND3, 3, 16, 0x00070000, simple),
 4.20920 ++    IFLD(K10, 10, 16, 0x0ff30000, k10),
 4.20921 ++    IFLD(POPM, 9, 19, 0x0ff80000, simple),
 4.20922 ++    IFLD(K2, 2, 4, 0x00000030, simple),
 4.20923 ++    IFLD(RD_E, 4, 0, 0x0000000f, simple),
 4.20924 ++    IFLD(RD_DW, 3, 1, 0x0000000e, simple),
 4.20925 ++    IFLD(X, 1, 5, 0x00000020, simple),
 4.20926 ++    IFLD(Y, 1, 4, 0x00000010, simple),
 4.20927 ++    IFLD(X2, 1, 13, 0x00002000, simple),
 4.20928 ++    IFLD(Y2, 1, 12, 0x00001000, simple),
 4.20929 ++    IFLD(K5E, 5, 0, 0x0000001f, simple),
 4.20930 ++    IFLD(PART2, 2, 0, 0x00000003, simple),
 4.20931 ++    IFLD(PART1, 1, 0, 0x00000001, simple),
 4.20932 ++    IFLD(K16, 16, 0, 0x0000ffff, simple),
 4.20933 ++    IFLD(CACHEOP, 5, 11, 0x0000f800, simple),
 4.20934 ++    IFLD(K11, 11, 0, 0x000007ff, simple),
 4.20935 ++    IFLD(K21, 21, 0, 0x1e10ffff, k21),
 4.20936 ++    IFLD(CPOP, 7, 12, 0x060f1000, cpop),
 4.20937 ++    IFLD(CPNO, 3, 13, 0x0000e000, simple),
 4.20938 ++    IFLD(CRD_RI, 4, 8, 0x00000f00, simple),
 4.20939 ++    IFLD(CRX, 4, 4, 0x000000f0, simple),
 4.20940 ++    IFLD(CRY, 4, 0, 0x0000000f, simple),
 4.20941 ++    IFLD(K7E, 7, 0, 0x0000007f, simple),
 4.20942 ++    IFLD(CRD_DW, 3, 9, 0x00000e00, simple),
 4.20943 ++    IFLD(PART1_K12, 1, 12, 0x00001000, simple),
 4.20944 ++    IFLD(PART2_K12, 2, 12, 0x00003000, simple),
 4.20945 ++    IFLD(K12, 12, 0, 0x00000fff, simple),
 4.20946 ++    IFLD(S5, 5, 5, 0x000003e0, simple),
 4.20947 ++    IFLD(K5E2, 5, 4, 0x000001f0, simple),
 4.20948 ++    IFLD(K4, 4, 20, 0x00f00000, simple),
 4.20949 ++    IFLD(COND4E2, 4, 4, 0x000000f0, simple),
 4.20950 ++    IFLD(K8E2, 8, 4, 0x00000ff0, simple),
 4.20951 ++    IFLD(K6, 6, 20, 0x03f00000, simple),
 4.20952 ++    IFLD(MEM15, 15, 0, 0x00007fff, simple),
 4.20953 ++    IFLD(MEMB5, 5, 15, 0x000f8000, simple),
 4.20954 ++    IFLD(W, 1, 25, 0x02000000, simple),
 4.20955 ++    /* Coprocessor Multiple High/Low */
 4.20956 ++    IFLD(CM_HL, 1, 8, 0x00000100, simple),
 4.20957 ++    IFLD(K12CP, 12 ,0, 0x0000f0ff, k12cp),
 4.20958 ++    IFLD(K9E, 9 ,0, 0x000001ff, simple),
 4.20959 ++  };
 4.20960 ++#undef IFLD
 4.20961 ++
 4.20962 ++
 4.20963 ++struct avr32_opcode avr32_opc_table[] =
 4.20964 ++  {
 4.20965 ++    {
 4.20966 ++      AVR32_OPC_ABS, 2, 0x5c400000, 0xfff00000,
 4.20967 ++      &avr32_syntax_table[AVR32_SYNTAX_ABS],
 4.20968 ++      BFD_RELOC_UNUSED, 1, -1,
 4.20969 ++      {
 4.20970 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.20971 ++      }
 4.20972 ++    },
 4.20973 ++    {
 4.20974 ++      AVR32_OPC_ACALL, 2, 0xd0000000, 0xf00f0000,
 4.20975 ++      &avr32_syntax_table[AVR32_SYNTAX_ACALL],
 4.20976 ++      BFD_RELOC_UNUSED, 1, -1,
 4.20977 ++      {
 4.20978 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 4.20979 ++      },
 4.20980 ++    },
 4.20981 ++    {
 4.20982 ++      AVR32_OPC_ACR, 2, 0x5c000000, 0xfff00000,
 4.20983 ++      &avr32_syntax_table[AVR32_SYNTAX_ACR],
 4.20984 ++      BFD_RELOC_UNUSED, 1, -1,
 4.20985 ++      {
 4.20986 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.20987 ++      },
 4.20988 ++    },
 4.20989 ++    {
 4.20990 ++      AVR32_OPC_ADC, 4, 0xe0000040, 0xe1f0fff0,
 4.20991 ++      &avr32_syntax_table[AVR32_SYNTAX_ADC],
 4.20992 ++      BFD_RELOC_UNUSED, 3, -1,
 4.20993 ++      {
 4.20994 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.20995 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.20996 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.20997 ++      },
 4.20998 ++    },
 4.20999 ++    {
 4.21000 ++      AVR32_OPC_ADD1, 2, 0x00000000, 0xe1f00000,
 4.21001 ++      &avr32_syntax_table[AVR32_SYNTAX_ADD1],
 4.21002 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21003 ++      {
 4.21004 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21005 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21006 ++      },
 4.21007 ++    },
 4.21008 ++    {
 4.21009 ++      AVR32_OPC_ADD2, 4, 0xe0000000, 0xe1f0ffc0,
 4.21010 ++      &avr32_syntax_table[AVR32_SYNTAX_ADD2],
 4.21011 ++      BFD_RELOC_UNUSED, 4, -1,
 4.21012 ++      {
 4.21013 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21014 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21015 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21016 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.21017 ++      },
 4.21018 ++    },
 4.21019 ++    {
 4.21020 ++      AVR32_OPC_ADDABS, 4, 0xe0000e40, 0xe1f0fff0,
 4.21021 ++      &avr32_syntax_table[AVR32_SYNTAX_ADDABS],
 4.21022 ++      BFD_RELOC_UNUSED, 3, -1,
 4.21023 ++      {
 4.21024 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21025 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21026 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21027 ++      },
 4.21028 ++    },
 4.21029 ++    {
 4.21030 ++      AVR32_OPC_ADDHH_W, 4, 0xe0000e00, 0xe1f0ffc0,
 4.21031 ++      &avr32_syntax_table[AVR32_SYNTAX_ADDHH_W],
 4.21032 ++      BFD_RELOC_UNUSED, 5, -1,
 4.21033 ++      {
 4.21034 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21035 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21036 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.21037 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21038 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.21039 ++      },
 4.21040 ++    },
 4.21041 ++    {
 4.21042 ++      AVR32_OPC_AND1, 2, 0x00600000, 0xe1f00000,
 4.21043 ++      &avr32_syntax_table[AVR32_SYNTAX_AND1],
 4.21044 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21045 ++      {
 4.21046 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21047 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21048 ++      },
 4.21049 ++    },
 4.21050 ++    {
 4.21051 ++      AVR32_OPC_AND2, 4, 0xe1e00000, 0xe1f0fe00,
 4.21052 ++      &avr32_syntax_table[AVR32_SYNTAX_AND2],
 4.21053 ++      BFD_RELOC_UNUSED, 4, -1,
 4.21054 ++      {
 4.21055 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21056 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21057 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21058 ++	&avr32_ifield_table[AVR32_IFIELD_K5E2],
 4.21059 ++      },
 4.21060 ++    },
 4.21061 ++    {
 4.21062 ++      AVR32_OPC_AND3, 4, 0xe1e00200, 0xe1f0fe00,
 4.21063 ++      &avr32_syntax_table[AVR32_SYNTAX_AND3],
 4.21064 ++      BFD_RELOC_UNUSED, 4, -1,
 4.21065 ++      {
 4.21066 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21067 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21068 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21069 ++	&avr32_ifield_table[AVR32_IFIELD_K5E2],
 4.21070 ++      },
 4.21071 ++    },
 4.21072 ++    {
 4.21073 ++      AVR32_OPC_ANDH, 4, 0xe4100000, 0xfff00000,
 4.21074 ++      &avr32_syntax_table[AVR32_SYNTAX_ANDH],
 4.21075 ++      BFD_RELOC_AVR32_16U, 2, 1,
 4.21076 ++      {
 4.21077 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21078 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.21079 ++      },
 4.21080 ++    },
 4.21081 ++    {
 4.21082 ++      AVR32_OPC_ANDH_COH, 4, 0xe6100000, 0xfff00000,
 4.21083 ++      &avr32_syntax_table[AVR32_SYNTAX_ANDH_COH],
 4.21084 ++      BFD_RELOC_AVR32_16U, 2, 1,
 4.21085 ++      {
 4.21086 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21087 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.21088 ++      },
 4.21089 ++    },
 4.21090 ++    {
 4.21091 ++      AVR32_OPC_ANDL, 4, 0xe0100000, 0xfff00000,
 4.21092 ++      &avr32_syntax_table[AVR32_SYNTAX_ANDL],
 4.21093 ++      BFD_RELOC_AVR32_16U, 2, 1,
 4.21094 ++      {
 4.21095 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21096 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.21097 ++      },
 4.21098 ++    },
 4.21099 ++    {
 4.21100 ++      AVR32_OPC_ANDL_COH, 4, 0xe2100000, 0xfff00000,
 4.21101 ++      &avr32_syntax_table[AVR32_SYNTAX_ANDL_COH],
 4.21102 ++      BFD_RELOC_AVR32_16U, 2, 1,
 4.21103 ++      {
 4.21104 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21105 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.21106 ++      },
 4.21107 ++    },
 4.21108 ++    {
 4.21109 ++      AVR32_OPC_ANDN, 2, 0x00800000, 0xe1f00000,
 4.21110 ++      &avr32_syntax_table[AVR32_SYNTAX_ANDN],
 4.21111 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21112 ++      {
 4.21113 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21114 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21115 ++      },
 4.21116 ++    },
 4.21117 ++    {
 4.21118 ++      AVR32_OPC_ASR1, 4, 0xe0000840, 0xe1f0fff0,
 4.21119 ++      &avr32_syntax_table[AVR32_SYNTAX_ASR1],
 4.21120 ++      BFD_RELOC_UNUSED, 3, -1,
 4.21121 ++      {
 4.21122 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21123 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21124 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21125 ++      },
 4.21126 ++    },
 4.21127 ++    {
 4.21128 ++      AVR32_OPC_ASR3, 4, 0xe0001400, 0xe1f0ffe0,
 4.21129 ++      &avr32_syntax_table[AVR32_SYNTAX_ASR3],
 4.21130 ++      BFD_RELOC_UNUSED, 3, -1,
 4.21131 ++      {
 4.21132 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21133 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21134 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 4.21135 ++      },
 4.21136 ++    },
 4.21137 ++    {
 4.21138 ++      AVR32_OPC_ASR2, 2, 0xa1400000, 0xe1e00000,
 4.21139 ++      &avr32_syntax_table[AVR32_SYNTAX_ASR2],
 4.21140 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21141 ++      {
 4.21142 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21143 ++	&avr32_ifield_table[AVR32_IFIELD_BIT5C],
 4.21144 ++      },
 4.21145 ++    },
 4.21146 ++    {
 4.21147 ++      AVR32_OPC_BLD, 4, 0xedb00000, 0xfff0ffe0,
 4.21148 ++      &avr32_syntax_table[AVR32_SYNTAX_BLD],
 4.21149 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21150 ++      {
 4.21151 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21152 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 4.21153 ++      },
 4.21154 ++    },
 4.21155 ++    {
 4.21156 ++      AVR32_OPC_BREQ1, 2, 0xc0000000, 0xf00f0000,
 4.21157 ++      &avr32_syntax_table[AVR32_SYNTAX_BREQ1],
 4.21158 ++      BFD_RELOC_AVR32_9H_PCREL, 1, 0,
 4.21159 ++      {
 4.21160 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 4.21161 ++      },
 4.21162 ++    },
 4.21163 ++    {
 4.21164 ++      AVR32_OPC_BRNE1, 2, 0xc0010000, 0xf00f0000,
 4.21165 ++      &avr32_syntax_table[AVR32_SYNTAX_BRNE1],
 4.21166 ++      BFD_RELOC_AVR32_9H_PCREL, 1, 0,
 4.21167 ++      {
 4.21168 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 4.21169 ++      },
 4.21170 ++    },
 4.21171 ++    {
 4.21172 ++      AVR32_OPC_BRCC1, 2, 0xc0020000, 0xf00f0000,
 4.21173 ++      &avr32_syntax_table[AVR32_SYNTAX_BRCC1],
 4.21174 ++      BFD_RELOC_AVR32_9H_PCREL, 1, 0,
 4.21175 ++      {
 4.21176 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 4.21177 ++      },
 4.21178 ++    },
 4.21179 ++    {
 4.21180 ++      AVR32_OPC_BRCS1, 2, 0xc0030000, 0xf00f0000,
 4.21181 ++      &avr32_syntax_table[AVR32_SYNTAX_BRCS1],
 4.21182 ++      BFD_RELOC_AVR32_9H_PCREL, 1, 0,
 4.21183 ++      {
 4.21184 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 4.21185 ++      },
 4.21186 ++    },
 4.21187 ++    {
 4.21188 ++      AVR32_OPC_BRGE1, 2, 0xc0040000, 0xf00f0000,
 4.21189 ++      &avr32_syntax_table[AVR32_SYNTAX_BRGE1],
 4.21190 ++      BFD_RELOC_AVR32_9H_PCREL, 1, 0,
 4.21191 ++      {
 4.21192 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 4.21193 ++      },
 4.21194 ++    },
 4.21195 ++    {
 4.21196 ++      AVR32_OPC_BRLT1, 2, 0xc0050000, 0xf00f0000,
 4.21197 ++      &avr32_syntax_table[AVR32_SYNTAX_BRLT1],
 4.21198 ++      BFD_RELOC_AVR32_9H_PCREL, 1, 0,
 4.21199 ++      {
 4.21200 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 4.21201 ++      },
 4.21202 ++    },
 4.21203 ++    {
 4.21204 ++      AVR32_OPC_BRMI1, 2, 0xc0060000, 0xf00f0000,
 4.21205 ++      &avr32_syntax_table[AVR32_SYNTAX_BRMI1],
 4.21206 ++      BFD_RELOC_AVR32_9H_PCREL, 1, 0,
 4.21207 ++      {
 4.21208 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 4.21209 ++      },
 4.21210 ++    },
 4.21211 ++    {
 4.21212 ++      AVR32_OPC_BRPL1, 2, 0xc0070000, 0xf00f0000,
 4.21213 ++      &avr32_syntax_table[AVR32_SYNTAX_BRPL1],
 4.21214 ++      BFD_RELOC_AVR32_9H_PCREL, 1, 0,
 4.21215 ++      {
 4.21216 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 4.21217 ++      },
 4.21218 ++    },
 4.21219 ++    {
 4.21220 ++      AVR32_OPC_BREQ2, 4, 0xe0800000, 0xe1ef0000,
 4.21221 ++      &avr32_syntax_table[AVR32_SYNTAX_BREQ2],
 4.21222 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.21223 ++      {
 4.21224 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21225 ++      },
 4.21226 ++    },
 4.21227 ++    {
 4.21228 ++      AVR32_OPC_BRNE2, 4, 0xe0810000, 0xe1ef0000,
 4.21229 ++      &avr32_syntax_table[AVR32_SYNTAX_BRNE2],
 4.21230 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.21231 ++      {
 4.21232 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21233 ++      },
 4.21234 ++    },
 4.21235 ++    {
 4.21236 ++      AVR32_OPC_BRCC2, 4, 0xe0820000, 0xe1ef0000,
 4.21237 ++      &avr32_syntax_table[AVR32_SYNTAX_BRHS2],
 4.21238 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.21239 ++      {
 4.21240 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21241 ++      },
 4.21242 ++    },
 4.21243 ++    {
 4.21244 ++      AVR32_OPC_BRCS2, 4, 0xe0830000, 0xe1ef0000,
 4.21245 ++      &avr32_syntax_table[AVR32_SYNTAX_BRLO2],
 4.21246 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.21247 ++      {
 4.21248 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21249 ++      },
 4.21250 ++    },
 4.21251 ++    {
 4.21252 ++      AVR32_OPC_BRGE2, 4, 0xe0840000, 0xe1ef0000,
 4.21253 ++      &avr32_syntax_table[AVR32_SYNTAX_BRGE2],
 4.21254 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.21255 ++      {
 4.21256 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21257 ++      },
 4.21258 ++    },
 4.21259 ++    {
 4.21260 ++      AVR32_OPC_BRLT2, 4, 0xe0850000, 0xe1ef0000,
 4.21261 ++      &avr32_syntax_table[AVR32_SYNTAX_BRLT2],
 4.21262 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.21263 ++      {
 4.21264 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21265 ++      },
 4.21266 ++    },
 4.21267 ++    {
 4.21268 ++      AVR32_OPC_BRMI2, 4, 0xe0860000, 0xe1ef0000,
 4.21269 ++      &avr32_syntax_table[AVR32_SYNTAX_BRMI2],
 4.21270 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.21271 ++      {
 4.21272 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21273 ++      },
 4.21274 ++    },
 4.21275 ++    {
 4.21276 ++      AVR32_OPC_BRPL2, 4, 0xe0870000, 0xe1ef0000,
 4.21277 ++      &avr32_syntax_table[AVR32_SYNTAX_BRPL2],
 4.21278 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.21279 ++      {
 4.21280 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21281 ++      },
 4.21282 ++    },
 4.21283 ++    {
 4.21284 ++      AVR32_OPC_BRLS, 4, 0xe0880000, 0xe1ef0000,
 4.21285 ++      &avr32_syntax_table[AVR32_SYNTAX_BRLS],
 4.21286 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.21287 ++      {
 4.21288 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21289 ++      },
 4.21290 ++    },
 4.21291 ++    {
 4.21292 ++      AVR32_OPC_BRGT, 4, 0xe0890000, 0xe1ef0000,
 4.21293 ++      &avr32_syntax_table[AVR32_SYNTAX_BRGT],
 4.21294 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.21295 ++      {
 4.21296 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21297 ++      },
 4.21298 ++    },
 4.21299 ++    {
 4.21300 ++      AVR32_OPC_BRLE, 4, 0xe08a0000, 0xe1ef0000,
 4.21301 ++      &avr32_syntax_table[AVR32_SYNTAX_BRLE],
 4.21302 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.21303 ++      {
 4.21304 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21305 ++      },
 4.21306 ++    },
 4.21307 ++    {
 4.21308 ++      AVR32_OPC_BRHI, 4, 0xe08b0000, 0xe1ef0000,
 4.21309 ++      &avr32_syntax_table[AVR32_SYNTAX_BRHI],
 4.21310 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.21311 ++      {
 4.21312 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21313 ++      },
 4.21314 ++    },
 4.21315 ++    {
 4.21316 ++      AVR32_OPC_BRVS, 4, 0xe08c0000, 0xe1ef0000,
 4.21317 ++      &avr32_syntax_table[AVR32_SYNTAX_BRVS],
 4.21318 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.21319 ++      {
 4.21320 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21321 ++      },
 4.21322 ++    },
 4.21323 ++    {
 4.21324 ++      AVR32_OPC_BRVC, 4, 0xe08d0000, 0xe1ef0000,
 4.21325 ++      &avr32_syntax_table[AVR32_SYNTAX_BRVC],
 4.21326 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.21327 ++      {
 4.21328 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21329 ++      },
 4.21330 ++    },
 4.21331 ++    {
 4.21332 ++      AVR32_OPC_BRQS, 4, 0xe08e0000, 0xe1ef0000,
 4.21333 ++      &avr32_syntax_table[AVR32_SYNTAX_BRQS],
 4.21334 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.21335 ++      {
 4.21336 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21337 ++      },
 4.21338 ++    },
 4.21339 ++    {
 4.21340 ++      AVR32_OPC_BRAL, 4, 0xe08f0000, 0xe1ef0000,
 4.21341 ++      &avr32_syntax_table[AVR32_SYNTAX_BRAL],
 4.21342 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.21343 ++      {
 4.21344 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21345 ++      },
 4.21346 ++    },
 4.21347 ++    {
 4.21348 ++      AVR32_OPC_BREAKPOINT, 2, 0xd6730000, 0xffff0000,
 4.21349 ++      &avr32_syntax_table[AVR32_SYNTAX_BREAKPOINT],
 4.21350 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 4.21351 ++    },
 4.21352 ++    {
 4.21353 ++      AVR32_OPC_BREV, 2, 0x5c900000, 0xfff00000,
 4.21354 ++      &avr32_syntax_table[AVR32_SYNTAX_BREV],
 4.21355 ++      BFD_RELOC_UNUSED, 1, -1,
 4.21356 ++      {
 4.21357 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21358 ++      },
 4.21359 ++    },
 4.21360 ++    {
 4.21361 ++      AVR32_OPC_BST, 4, 0xefb00000, 0xfff0ffe0,
 4.21362 ++      &avr32_syntax_table[AVR32_SYNTAX_BST],
 4.21363 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21364 ++      {
 4.21365 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21366 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 4.21367 ++      },
 4.21368 ++    },
 4.21369 ++    {
 4.21370 ++      AVR32_OPC_CACHE, 4, 0xf4100000, 0xfff00000,
 4.21371 ++      &avr32_syntax_table[AVR32_SYNTAX_CACHE],
 4.21372 ++      BFD_RELOC_UNUSED, 3, -1,
 4.21373 ++      {
 4.21374 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21375 ++	&avr32_ifield_table[AVR32_IFIELD_K11],
 4.21376 ++	&avr32_ifield_table[AVR32_IFIELD_CACHEOP],
 4.21377 ++      },
 4.21378 ++    },
 4.21379 ++    {
 4.21380 ++      AVR32_OPC_CASTS_B, 2, 0x5c600000, 0xfff00000,
 4.21381 ++      &avr32_syntax_table[AVR32_SYNTAX_CASTS_B],
 4.21382 ++      BFD_RELOC_UNUSED, 1, -1,
 4.21383 ++      {
 4.21384 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21385 ++      },
 4.21386 ++    },
 4.21387 ++    {
 4.21388 ++      AVR32_OPC_CASTS_H, 2, 0x5c800000, 0xfff00000,
 4.21389 ++      &avr32_syntax_table[AVR32_SYNTAX_CASTS_H],
 4.21390 ++      BFD_RELOC_UNUSED, 1, -1,
 4.21391 ++      {
 4.21392 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21393 ++      },
 4.21394 ++    },
 4.21395 ++    {
 4.21396 ++      AVR32_OPC_CASTU_B, 2, 0x5c500000, 0xfff00000,
 4.21397 ++      &avr32_syntax_table[AVR32_SYNTAX_CASTU_B],
 4.21398 ++      BFD_RELOC_UNUSED, 1, -1,
 4.21399 ++      {
 4.21400 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21401 ++      },
 4.21402 ++    },
 4.21403 ++    {
 4.21404 ++      AVR32_OPC_CASTU_H, 2, 0x5c700000, 0xfff00000,
 4.21405 ++      &avr32_syntax_table[AVR32_SYNTAX_CASTU_H],
 4.21406 ++      BFD_RELOC_UNUSED, 1, -1,
 4.21407 ++      {
 4.21408 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21409 ++      },
 4.21410 ++    },
 4.21411 ++    {
 4.21412 ++      AVR32_OPC_CBR, 2, 0xa1c00000, 0xe1e00000,
 4.21413 ++      &avr32_syntax_table[AVR32_SYNTAX_CBR],
 4.21414 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21415 ++      {
 4.21416 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21417 ++	&avr32_ifield_table[AVR32_IFIELD_BIT5C],
 4.21418 ++      },
 4.21419 ++    },
 4.21420 ++    {
 4.21421 ++      AVR32_OPC_CLZ, 4, 0xe0001200, 0xe1f0ffff,
 4.21422 ++      &avr32_syntax_table[AVR32_SYNTAX_CLZ],
 4.21423 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21424 ++      {
 4.21425 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21426 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21427 ++      },
 4.21428 ++    },
 4.21429 ++    {
 4.21430 ++      AVR32_OPC_COM, 2, 0x5cd00000, 0xfff00000,
 4.21431 ++      &avr32_syntax_table[AVR32_SYNTAX_COM],
 4.21432 ++      BFD_RELOC_UNUSED, 1, -1,
 4.21433 ++      {
 4.21434 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21435 ++      },
 4.21436 ++    },
 4.21437 ++    {
 4.21438 ++      AVR32_OPC_COP, 4, 0xe1a00000, 0xf9f00000,
 4.21439 ++      &avr32_syntax_table[AVR32_SYNTAX_COP],
 4.21440 ++      BFD_RELOC_UNUSED, 5, -1,
 4.21441 ++      {
 4.21442 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.21443 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 4.21444 ++	&avr32_ifield_table[AVR32_IFIELD_CRX],
 4.21445 ++	&avr32_ifield_table[AVR32_IFIELD_CRY],
 4.21446 ++	&avr32_ifield_table[AVR32_IFIELD_CPOP],
 4.21447 ++      },
 4.21448 ++    },
 4.21449 ++    {
 4.21450 ++      AVR32_OPC_CP_B, 4, 0xe0001800, 0xe1f0ffff,
 4.21451 ++      &avr32_syntax_table[AVR32_SYNTAX_CP_B],
 4.21452 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21453 ++      {
 4.21454 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21455 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21456 ++      },
 4.21457 ++    },
 4.21458 ++    {
 4.21459 ++      AVR32_OPC_CP_H, 4, 0xe0001900, 0xe1f0ffff,
 4.21460 ++      &avr32_syntax_table[AVR32_SYNTAX_CP_H],
 4.21461 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21462 ++      {
 4.21463 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21464 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21465 ++      },
 4.21466 ++    },
 4.21467 ++    {
 4.21468 ++      AVR32_OPC_CP_W1, 2, 0x00300000, 0xe1f00000,
 4.21469 ++      &avr32_syntax_table[AVR32_SYNTAX_CP_W1],
 4.21470 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21471 ++      {
 4.21472 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21473 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21474 ++      },
 4.21475 ++    },
 4.21476 ++    {
 4.21477 ++      AVR32_OPC_CP_W2, 2, 0x58000000, 0xfc000000,
 4.21478 ++      &avr32_syntax_table[AVR32_SYNTAX_CP_W2],
 4.21479 ++      BFD_RELOC_AVR32_6S, 2, 1,
 4.21480 ++      {
 4.21481 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21482 ++	&avr32_ifield_table[AVR32_IFIELD_K6],
 4.21483 ++      },
 4.21484 ++    },
 4.21485 ++    {
 4.21486 ++      AVR32_OPC_CP_W3, 4, 0xe0400000, 0xe1e00000,
 4.21487 ++      &avr32_syntax_table[AVR32_SYNTAX_CP_W3],
 4.21488 ++      BFD_RELOC_AVR32_21S, 2, 1,
 4.21489 ++      {
 4.21490 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21491 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.21492 ++      },
 4.21493 ++    },
 4.21494 ++    {
 4.21495 ++      AVR32_OPC_CPC1, 4, 0xe0001300, 0xe1f0ffff,
 4.21496 ++      &avr32_syntax_table[AVR32_SYNTAX_CPC1],
 4.21497 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21498 ++      {
 4.21499 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21500 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21501 ++      },
 4.21502 ++    },
 4.21503 ++    {
 4.21504 ++      AVR32_OPC_CPC2, 2, 0x5c200000, 0xfff00000,
 4.21505 ++      &avr32_syntax_table[AVR32_SYNTAX_CPC2],
 4.21506 ++      BFD_RELOC_UNUSED, 1, -1,
 4.21507 ++      {
 4.21508 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21509 ++      },
 4.21510 ++    },
 4.21511 ++    {
 4.21512 ++      AVR32_OPC_CSRF, 2, 0xd4030000, 0xfe0f0000,
 4.21513 ++      &avr32_syntax_table[AVR32_SYNTAX_CSRF],
 4.21514 ++      BFD_RELOC_UNUSED, 1, -1,
 4.21515 ++      {
 4.21516 ++	&avr32_ifield_table[AVR32_IFIELD_K5C],
 4.21517 ++      },
 4.21518 ++    },
 4.21519 ++    {
 4.21520 ++      AVR32_OPC_CSRFCZ, 2, 0xd0030000, 0xfe0f0000,
 4.21521 ++      &avr32_syntax_table[AVR32_SYNTAX_CSRFCZ],
 4.21522 ++      BFD_RELOC_UNUSED, 1, -1,
 4.21523 ++      {
 4.21524 ++	&avr32_ifield_table[AVR32_IFIELD_K5C],
 4.21525 ++      },
 4.21526 ++    },
 4.21527 ++    {
 4.21528 ++      AVR32_OPC_DIVS, 4, 0xe0000c00, 0xe1f0ffc0,
 4.21529 ++      &avr32_syntax_table[AVR32_SYNTAX_DIVS],
 4.21530 ++      BFD_RELOC_UNUSED, 3, -1,
 4.21531 ++      {
 4.21532 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21533 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21534 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21535 ++      },
 4.21536 ++    },
 4.21537 ++    {
 4.21538 ++      AVR32_OPC_DIVU, 4, 0xe0000d00, 0xe1f0ffc0,
 4.21539 ++      &avr32_syntax_table[AVR32_SYNTAX_DIVU],
 4.21540 ++      BFD_RELOC_UNUSED, 3, -1,
 4.21541 ++      {
 4.21542 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21543 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21544 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21545 ++      },
 4.21546 ++    },
 4.21547 ++    {
 4.21548 ++      AVR32_OPC_EOR1, 2, 0x00500000, 0xe1f00000,
 4.21549 ++      &avr32_syntax_table[AVR32_SYNTAX_EOR1],
 4.21550 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21551 ++      {
 4.21552 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21553 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21554 ++      },
 4.21555 ++    },
 4.21556 ++    {
 4.21557 ++      AVR32_OPC_EOR2, 4, 0xe1e02000, 0xe1f0fe00,
 4.21558 ++      &avr32_syntax_table[AVR32_SYNTAX_EOR2],
 4.21559 ++      BFD_RELOC_UNUSED, 4, -1,
 4.21560 ++      {
 4.21561 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21562 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21563 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21564 ++	&avr32_ifield_table[AVR32_IFIELD_K5E2],
 4.21565 ++      }
 4.21566 ++    },
 4.21567 ++    {
 4.21568 ++      AVR32_OPC_EOR3, 4, 0xe1e02200, 0xe1f0fe00,
 4.21569 ++      &avr32_syntax_table[AVR32_SYNTAX_EOR3],
 4.21570 ++      BFD_RELOC_UNUSED, 4, -1,
 4.21571 ++      {
 4.21572 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21573 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21574 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21575 ++	&avr32_ifield_table[AVR32_IFIELD_K5E2],
 4.21576 ++      }
 4.21577 ++    },
 4.21578 ++    {
 4.21579 ++      AVR32_OPC_EORL, 4, 0xec100000, 0xfff00000,
 4.21580 ++      &avr32_syntax_table[AVR32_SYNTAX_EORL],
 4.21581 ++      BFD_RELOC_AVR32_16U, 2, 1,
 4.21582 ++      {
 4.21583 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21584 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.21585 ++      },
 4.21586 ++    },
 4.21587 ++    {
 4.21588 ++      AVR32_OPC_EORH, 4, 0xee100000, 0xfff00000,
 4.21589 ++      &avr32_syntax_table[AVR32_SYNTAX_EORH],
 4.21590 ++      BFD_RELOC_AVR32_16U, 2, 1,
 4.21591 ++      {
 4.21592 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21593 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.21594 ++      },
 4.21595 ++    },
 4.21596 ++    {
 4.21597 ++      AVR32_OPC_FRS, 2, 0xd7430000, 0xffff0000,
 4.21598 ++      &avr32_syntax_table[AVR32_SYNTAX_FRS],
 4.21599 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 4.21600 ++    },
 4.21601 ++    {
 4.21602 ++      AVR32_OPC_ICALL, 2, 0x5d100000, 0xfff00000,
 4.21603 ++      &avr32_syntax_table[AVR32_SYNTAX_ICALL],
 4.21604 ++      BFD_RELOC_UNUSED, 1, -1,
 4.21605 ++      {
 4.21606 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21607 ++      },
 4.21608 ++    },
 4.21609 ++    {
 4.21610 ++      AVR32_OPC_INCJOSP, 2, 0xd6830000, 0xff8f0000,
 4.21611 ++      &avr32_syntax_table[AVR32_SYNTAX_INCJOSP],
 4.21612 ++      BFD_RELOC_UNUSED, 1, -1,
 4.21613 ++      {
 4.21614 ++	&avr32_ifield_table[AVR32_IFIELD_K3],
 4.21615 ++      },
 4.21616 ++    },
 4.21617 ++    {
 4.21618 ++      AVR32_OPC_LD_D1, 2, 0xa1010000, 0xe1f10000,
 4.21619 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_D1],
 4.21620 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21621 ++      {
 4.21622 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 4.21623 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21624 ++      },
 4.21625 ++    },
 4.21626 ++    {
 4.21627 ++      AVR32_OPC_LD_D2, 2, 0xa1100000, 0xe1f10000,
 4.21628 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_D2],
 4.21629 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21630 ++      {
 4.21631 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 4.21632 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21633 ++      },
 4.21634 ++    },
 4.21635 ++    {
 4.21636 ++      AVR32_OPC_LD_D3, 2, 0xa1000000, 0xe1f10000,
 4.21637 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_D3],
 4.21638 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21639 ++      {
 4.21640 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 4.21641 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21642 ++      },
 4.21643 ++    },
 4.21644 ++    {
 4.21645 ++      AVR32_OPC_LD_D5, 4, 0xe0000200, 0xe1f0ffc1,
 4.21646 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_D5],
 4.21647 ++      BFD_RELOC_UNUSED, 4, -1,
 4.21648 ++      {
 4.21649 ++	&avr32_ifield_table[AVR32_IFIELD_RD_DW],
 4.21650 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21651 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21652 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.21653 ++      },
 4.21654 ++    },
 4.21655 ++    {
 4.21656 ++      AVR32_OPC_LD_D4, 4, 0xe0e00000, 0xe1f10000,
 4.21657 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_D4],
 4.21658 ++      BFD_RELOC_AVR32_16S, 3, 2,
 4.21659 ++      {
 4.21660 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 4.21661 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21662 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.21663 ++      },
 4.21664 ++    },
 4.21665 ++    {
 4.21666 ++      AVR32_OPC_LD_SB2, 4, 0xe0000600, 0xe1f0ffc0,
 4.21667 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_SB2],
 4.21668 ++      BFD_RELOC_UNUSED, 4, -1,
 4.21669 ++      {
 4.21670 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21671 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21672 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21673 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.21674 ++      },
 4.21675 ++    },
 4.21676 ++    {
 4.21677 ++      AVR32_OPC_LD_SB1, 4, 0xe1200000, 0xe1f00000,
 4.21678 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_SB1],
 4.21679 ++      BFD_RELOC_AVR32_16S, 3, -1,
 4.21680 ++      {
 4.21681 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21682 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21683 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.21684 ++      },
 4.21685 ++    },
 4.21686 ++    {
 4.21687 ++      AVR32_OPC_LD_UB1, 2, 0x01300000, 0xe1f00000,
 4.21688 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UB1],
 4.21689 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21690 ++      {
 4.21691 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21692 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21693 ++      },
 4.21694 ++    },
 4.21695 ++    {
 4.21696 ++      AVR32_OPC_LD_UB2, 2, 0x01700000, 0xe1f00000,
 4.21697 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UB2],
 4.21698 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21699 ++      {
 4.21700 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21701 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21702 ++      },
 4.21703 ++    },
 4.21704 ++    {
 4.21705 ++      AVR32_OPC_LD_UB5, 4, 0xe0000700, 0xe1f0ffc0,
 4.21706 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UB5],
 4.21707 ++      BFD_RELOC_UNUSED, 4, -1,
 4.21708 ++      {
 4.21709 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21710 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21711 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21712 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.21713 ++      },
 4.21714 ++    },
 4.21715 ++    {
 4.21716 ++      AVR32_OPC_LD_UB3, 2, 0x01800000, 0xe1800000,
 4.21717 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UB3],
 4.21718 ++      BFD_RELOC_AVR32_3U, 3, 2,
 4.21719 ++      {
 4.21720 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21721 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21722 ++	&avr32_ifield_table[AVR32_IFIELD_K3],
 4.21723 ++      },
 4.21724 ++    },
 4.21725 ++    {
 4.21726 ++      AVR32_OPC_LD_UB4, 4, 0xe1300000, 0xe1f00000,
 4.21727 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UB4],
 4.21728 ++      BFD_RELOC_AVR32_16S, 3, 2,
 4.21729 ++      {
 4.21730 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21731 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21732 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.21733 ++      },
 4.21734 ++    },
 4.21735 ++    {
 4.21736 ++      AVR32_OPC_LD_SH1, 2, 0x01100000, 0xe1f00000,
 4.21737 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_SH1],
 4.21738 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21739 ++      {
 4.21740 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21741 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21742 ++      },
 4.21743 ++    },
 4.21744 ++    {
 4.21745 ++      AVR32_OPC_LD_SH2, 2, 0x01500000, 0xe1f00000,
 4.21746 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_SH2],
 4.21747 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21748 ++      {
 4.21749 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21750 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21751 ++      },
 4.21752 ++    },
 4.21753 ++    {
 4.21754 ++      AVR32_OPC_LD_SH5, 4, 0xe0000400, 0xe1f0ffc0,
 4.21755 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_SH5],
 4.21756 ++      BFD_RELOC_UNUSED, 4, -1,
 4.21757 ++      {
 4.21758 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21759 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21760 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21761 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.21762 ++      },
 4.21763 ++    },
 4.21764 ++    {
 4.21765 ++      AVR32_OPC_LD_SH3, 2, 0x80000000, 0xe1800000,
 4.21766 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_SH3],
 4.21767 ++      BFD_RELOC_AVR32_4UH, 3, 2,
 4.21768 ++      {
 4.21769 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21770 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21771 ++	&avr32_ifield_table[AVR32_IFIELD_K3],
 4.21772 ++      },
 4.21773 ++    },
 4.21774 ++    {
 4.21775 ++      AVR32_OPC_LD_SH4, 4, 0xe1000000, 0xe1f00000,
 4.21776 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_SH4],
 4.21777 ++      BFD_RELOC_AVR32_16S, 3, 2,
 4.21778 ++      {
 4.21779 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21780 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21781 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.21782 ++      },
 4.21783 ++    },
 4.21784 ++    {
 4.21785 ++      AVR32_OPC_LD_UH1, 2, 0x01200000, 0xe1f00000,
 4.21786 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UH1],
 4.21787 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21788 ++      {
 4.21789 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21790 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21791 ++      },
 4.21792 ++    },
 4.21793 ++    {
 4.21794 ++      AVR32_OPC_LD_UH2, 2, 0x01600000, 0xe1f00000,
 4.21795 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UH2],
 4.21796 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21797 ++      {
 4.21798 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21799 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21800 ++      },
 4.21801 ++    },
 4.21802 ++    {
 4.21803 ++      AVR32_OPC_LD_UH5, 4, 0xe0000500, 0xe1f0ffc0,
 4.21804 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UH5],
 4.21805 ++      BFD_RELOC_UNUSED, 4, -1,
 4.21806 ++      {
 4.21807 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21808 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21809 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21810 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.21811 ++      },
 4.21812 ++    },
 4.21813 ++    {
 4.21814 ++      AVR32_OPC_LD_UH3, 2, 0x80800000, 0xe1800000,
 4.21815 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UH3],
 4.21816 ++      BFD_RELOC_AVR32_4UH, 3, 2,
 4.21817 ++      {
 4.21818 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21819 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21820 ++	&avr32_ifield_table[AVR32_IFIELD_K3],
 4.21821 ++      },
 4.21822 ++    },
 4.21823 ++    {
 4.21824 ++      AVR32_OPC_LD_UH4, 4, 0xe1100000, 0xe1f00000,
 4.21825 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UH4],
 4.21826 ++      BFD_RELOC_AVR32_16S, 3, 2,
 4.21827 ++      {
 4.21828 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21829 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21830 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.21831 ++      },
 4.21832 ++    },
 4.21833 ++    {
 4.21834 ++      AVR32_OPC_LD_W1, 2, 0x01000000, 0xe1f00000,
 4.21835 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_W1],
 4.21836 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21837 ++      {
 4.21838 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21839 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21840 ++      },
 4.21841 ++    },
 4.21842 ++    {
 4.21843 ++      AVR32_OPC_LD_W2, 2, 0x01400000, 0xe1f00000,
 4.21844 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_W2],
 4.21845 ++      BFD_RELOC_UNUSED, 2, -1,
 4.21846 ++      {
 4.21847 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21848 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21849 ++      },
 4.21850 ++    },
 4.21851 ++    {
 4.21852 ++      AVR32_OPC_LD_W5, 4, 0xe0000300, 0xe1f0ffc0,
 4.21853 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_W5],
 4.21854 ++      BFD_RELOC_UNUSED, 4, -1,
 4.21855 ++      {
 4.21856 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21857 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21858 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21859 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.21860 ++      },
 4.21861 ++    },
 4.21862 ++    {
 4.21863 ++      AVR32_OPC_LD_W6, 4, 0xe0000f80, 0xe1f0ffc0,
 4.21864 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_W6],
 4.21865 ++      BFD_RELOC_UNUSED, 4, -1,
 4.21866 ++      {
 4.21867 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21868 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21869 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21870 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.21871 ++      },
 4.21872 ++    },
 4.21873 ++    {
 4.21874 ++      AVR32_OPC_LD_W3, 2, 0x60000000, 0xe0000000,
 4.21875 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_W3],
 4.21876 ++      BFD_RELOC_AVR32_7UW, 3, 2,
 4.21877 ++      {
 4.21878 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21879 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21880 ++	&avr32_ifield_table[AVR32_IFIELD_K5C],
 4.21881 ++      },
 4.21882 ++    },
 4.21883 ++    {
 4.21884 ++      AVR32_OPC_LD_W4, 4, 0xe0f00000, 0xe1f00000,
 4.21885 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_W4],
 4.21886 ++      BFD_RELOC_AVR32_16S, 3, 2,
 4.21887 ++      {
 4.21888 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21889 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.21890 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.21891 ++      },
 4.21892 ++    },
 4.21893 ++    {
 4.21894 ++      AVR32_OPC_LDC_D1, 4, 0xe9a01000, 0xfff01100,
 4.21895 ++      &avr32_syntax_table[AVR32_SYNTAX_LDC_D1],
 4.21896 ++      BFD_RELOC_AVR32_10UW, 4, 3,
 4.21897 ++      {
 4.21898 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.21899 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 4.21900 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21901 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.21902 ++      },
 4.21903 ++    },
 4.21904 ++    {
 4.21905 ++      AVR32_OPC_LDC_D2, 4, 0xefa00050, 0xfff011ff,
 4.21906 ++      &avr32_syntax_table[AVR32_SYNTAX_LDC_D2],
 4.21907 ++      BFD_RELOC_UNUSED, 3, -1,
 4.21908 ++      {
 4.21909 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.21910 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 4.21911 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21912 ++      },
 4.21913 ++    },
 4.21914 ++    {
 4.21915 ++      AVR32_OPC_LDC_D3, 4, 0xefa01040, 0xfff011c0,
 4.21916 ++      &avr32_syntax_table[AVR32_SYNTAX_LDC_D3],
 4.21917 ++      BFD_RELOC_UNUSED, 5, -1,
 4.21918 ++      {
 4.21919 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.21920 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 4.21921 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21922 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21923 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.21924 ++      },
 4.21925 ++    },
 4.21926 ++    {
 4.21927 ++      AVR32_OPC_LDC_W1, 4, 0xe9a00000, 0xfff01000,
 4.21928 ++      &avr32_syntax_table[AVR32_SYNTAX_LDC_W1],
 4.21929 ++      BFD_RELOC_AVR32_10UW, 4, 3,
 4.21930 ++      {
 4.21931 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.21932 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 4.21933 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21934 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.21935 ++      },
 4.21936 ++    },
 4.21937 ++    {
 4.21938 ++      AVR32_OPC_LDC_W2, 4, 0xefa00040, 0xfff010ff,
 4.21939 ++      &avr32_syntax_table[AVR32_SYNTAX_LDC_W2],
 4.21940 ++      BFD_RELOC_UNUSED, 3, -1,
 4.21941 ++      {
 4.21942 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.21943 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 4.21944 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21945 ++      },
 4.21946 ++    },
 4.21947 ++    {
 4.21948 ++      AVR32_OPC_LDC_W3, 4, 0xefa01000, 0xfff010c0,
 4.21949 ++      &avr32_syntax_table[AVR32_SYNTAX_LDC_W3],
 4.21950 ++      BFD_RELOC_UNUSED, 5, -1,
 4.21951 ++      {
 4.21952 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.21953 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 4.21954 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21955 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.21956 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.21957 ++      },
 4.21958 ++    },
 4.21959 ++    {
 4.21960 ++      AVR32_OPC_LDC0_D, 4, 0xf3a00000, 0xfff00100,
 4.21961 ++      &avr32_syntax_table[AVR32_SYNTAX_LDC0_D],
 4.21962 ++      BFD_RELOC_AVR32_14UW, 3, 2,
 4.21963 ++      {
 4.21964 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 4.21965 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21966 ++	&avr32_ifield_table[AVR32_IFIELD_K12CP],
 4.21967 ++      },
 4.21968 ++    },
 4.21969 ++    {
 4.21970 ++      AVR32_OPC_LDC0_W, 4, 0xf1a00000, 0xfff00000,
 4.21971 ++      &avr32_syntax_table[AVR32_SYNTAX_LDC0_W],
 4.21972 ++      BFD_RELOC_AVR32_14UW, 3, 2,
 4.21973 ++      {
 4.21974 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 4.21975 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21976 ++	&avr32_ifield_table[AVR32_IFIELD_K12CP],
 4.21977 ++      },
 4.21978 ++    },
 4.21979 ++    {
 4.21980 ++      AVR32_OPC_LDCM_D, 4, 0xeda00400, 0xfff01f00,
 4.21981 ++      &avr32_syntax_table[AVR32_SYNTAX_LDCM_D],
 4.21982 ++      BFD_RELOC_UNUSED, 3, -1,
 4.21983 ++      {
 4.21984 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.21985 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21986 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.21987 ++      },
 4.21988 ++    },
 4.21989 ++    {
 4.21990 ++      AVR32_OPC_LDCM_D_PU, 4, 0xeda01400, 0xfff01f00,
 4.21991 ++      &avr32_syntax_table[AVR32_SYNTAX_LDCM_D_PU],
 4.21992 ++      BFD_RELOC_UNUSED, 3, -1,
 4.21993 ++      {
 4.21994 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.21995 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.21996 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.21997 ++      },
 4.21998 ++    },
 4.21999 ++    {
 4.22000 ++      AVR32_OPC_LDCM_W, 4, 0xeda00000, 0xfff01e00,
 4.22001 ++      &avr32_syntax_table[AVR32_SYNTAX_LDCM_W],
 4.22002 ++      BFD_RELOC_UNUSED, 4, -1,
 4.22003 ++      {
 4.22004 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.22005 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22006 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22007 ++	&avr32_ifield_table[AVR32_IFIELD_CM_HL],
 4.22008 ++      },
 4.22009 ++    },
 4.22010 ++    {
 4.22011 ++      AVR32_OPC_LDCM_W_PU, 4, 0xeda01000, 0xfff01e00,
 4.22012 ++      &avr32_syntax_table[AVR32_SYNTAX_LDCM_W_PU],
 4.22013 ++      BFD_RELOC_UNUSED, 4, -1,
 4.22014 ++      {
 4.22015 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.22016 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22017 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22018 ++	&avr32_ifield_table[AVR32_IFIELD_CM_HL],
 4.22019 ++      },
 4.22020 ++    },
 4.22021 ++    {
 4.22022 ++      AVR32_OPC_LDDPC, 2, 0x48000000, 0xf8000000,
 4.22023 ++      &avr32_syntax_table[AVR32_SYNTAX_LDDPC],
 4.22024 ++      BFD_RELOC_AVR32_9UW_PCREL, 2, 1,
 4.22025 ++      {
 4.22026 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22027 ++	&avr32_ifield_table[AVR32_IFIELD_K7C],
 4.22028 ++      },
 4.22029 ++    },
 4.22030 ++    {
 4.22031 ++      AVR32_OPC_LDDPC_EXT, 4, 0xfef00000, 0xfff00000,
 4.22032 ++      &avr32_syntax_table[AVR32_SYNTAX_LDDPC_EXT],
 4.22033 ++      BFD_RELOC_AVR32_16B_PCREL, 2, 1,
 4.22034 ++      {
 4.22035 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22036 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.22037 ++      },
 4.22038 ++    },
 4.22039 ++    {
 4.22040 ++      AVR32_OPC_LDDSP, 2, 0x40000000, 0xf8000000,
 4.22041 ++      &avr32_syntax_table[AVR32_SYNTAX_LDDSP],
 4.22042 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22043 ++      {
 4.22044 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22045 ++	&avr32_ifield_table[AVR32_IFIELD_K7C],
 4.22046 ++      },
 4.22047 ++    },
 4.22048 ++    {
 4.22049 ++      AVR32_OPC_LDINS_B, 4, 0xe1d04000, 0xe1f0c000,
 4.22050 ++      &avr32_syntax_table[AVR32_SYNTAX_LDINS_B],
 4.22051 ++      BFD_RELOC_UNUSED, 4, -1,
 4.22052 ++      {
 4.22053 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22054 ++	&avr32_ifield_table[AVR32_IFIELD_PART2_K12],
 4.22055 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22056 ++	&avr32_ifield_table[AVR32_IFIELD_K12],
 4.22057 ++      },
 4.22058 ++    },
 4.22059 ++    {
 4.22060 ++      AVR32_OPC_LDINS_H, 4, 0xe1d00000, 0xe1f0e000,
 4.22061 ++      &avr32_syntax_table[AVR32_SYNTAX_LDINS_H],
 4.22062 ++      BFD_RELOC_UNUSED, 4, -1,
 4.22063 ++      {
 4.22064 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22065 ++	&avr32_ifield_table[AVR32_IFIELD_PART1_K12],
 4.22066 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22067 ++	&avr32_ifield_table[AVR32_IFIELD_K12],
 4.22068 ++      },
 4.22069 ++    },
 4.22070 ++    {
 4.22071 ++      AVR32_OPC_LDM, 4, 0xe1c00000, 0xfdf00000,
 4.22072 ++      &avr32_syntax_table[AVR32_SYNTAX_LDM],
 4.22073 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22074 ++      {
 4.22075 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22076 ++	&avr32_ifield_table[AVR32_IFIELD_W],
 4.22077 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.22078 ++      },
 4.22079 ++    },
 4.22080 ++    {
 4.22081 ++      AVR32_OPC_LDMTS, 4, 0xe5c00000, 0xfff00000,
 4.22082 ++      &avr32_syntax_table[AVR32_SYNTAX_LDMTS],
 4.22083 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22084 ++      {
 4.22085 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22086 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.22087 ++      },
 4.22088 ++    },
 4.22089 ++    {
 4.22090 ++      AVR32_OPC_LDMTS_PU, 4, 0xe7c00000, 0xfff00000,
 4.22091 ++      &avr32_syntax_table[AVR32_SYNTAX_LDMTS_PU],
 4.22092 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22093 ++      {
 4.22094 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22095 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.22096 ++      },
 4.22097 ++    },
 4.22098 ++    {
 4.22099 ++      AVR32_OPC_LDSWP_SH, 4, 0xe1d02000, 0xe1f0f000,
 4.22100 ++      &avr32_syntax_table[AVR32_SYNTAX_LDSWP_SH],
 4.22101 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22102 ++      {
 4.22103 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22104 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22105 ++	&avr32_ifield_table[AVR32_IFIELD_K12],
 4.22106 ++      },
 4.22107 ++    },
 4.22108 ++    {
 4.22109 ++      AVR32_OPC_LDSWP_UH, 4, 0xe1d03000, 0xe1f0f000,
 4.22110 ++      &avr32_syntax_table[AVR32_SYNTAX_LDSWP_UH],
 4.22111 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22112 ++      {
 4.22113 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22114 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22115 ++	&avr32_ifield_table[AVR32_IFIELD_K12],
 4.22116 ++      },
 4.22117 ++    },
 4.22118 ++    {
 4.22119 ++      AVR32_OPC_LDSWP_W, 4, 0xe1d08000, 0xe1f0f000,
 4.22120 ++      &avr32_syntax_table[AVR32_SYNTAX_LDSWP_W],
 4.22121 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22122 ++      {
 4.22123 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22124 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22125 ++	&avr32_ifield_table[AVR32_IFIELD_K12],
 4.22126 ++      },
 4.22127 ++    },
 4.22128 ++    {
 4.22129 ++      AVR32_OPC_LSL1, 4, 0xe0000940, 0xe1f0fff0,
 4.22130 ++      &avr32_syntax_table[AVR32_SYNTAX_LSL1],
 4.22131 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22132 ++      {
 4.22133 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22134 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22135 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22136 ++      },
 4.22137 ++    },
 4.22138 ++    {
 4.22139 ++      AVR32_OPC_LSL3, 4, 0xe0001500, 0xe1f0ffe0,
 4.22140 ++      &avr32_syntax_table[AVR32_SYNTAX_LSL3],
 4.22141 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22142 ++      {
 4.22143 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22144 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22145 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 4.22146 ++      },
 4.22147 ++    },
 4.22148 ++    {
 4.22149 ++      AVR32_OPC_LSL2, 2, 0xa1600000, 0xe1e00000,
 4.22150 ++      &avr32_syntax_table[AVR32_SYNTAX_LSL2],
 4.22151 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22152 ++      {
 4.22153 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22154 ++	&avr32_ifield_table[AVR32_IFIELD_BIT5C],
 4.22155 ++      },
 4.22156 ++    },
 4.22157 ++    {
 4.22158 ++      AVR32_OPC_LSR1, 4, 0xe0000a40, 0xe1f0fff0,
 4.22159 ++      &avr32_syntax_table[AVR32_SYNTAX_LSR1],
 4.22160 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22161 ++      {
 4.22162 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22163 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22164 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22165 ++      },
 4.22166 ++    },
 4.22167 ++    {
 4.22168 ++      AVR32_OPC_LSR3, 4, 0xe0001600, 0xe1f0ffe0,
 4.22169 ++      &avr32_syntax_table[AVR32_SYNTAX_LSR3],
 4.22170 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22171 ++      {
 4.22172 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22173 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22174 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 4.22175 ++      },
 4.22176 ++    },
 4.22177 ++    {
 4.22178 ++      AVR32_OPC_LSR2, 2, 0xa1800000, 0xe1e00000,
 4.22179 ++      &avr32_syntax_table[AVR32_SYNTAX_LSR2],
 4.22180 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22181 ++      {
 4.22182 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22183 ++	&avr32_ifield_table[AVR32_IFIELD_BIT5C],
 4.22184 ++      },
 4.22185 ++    },
 4.22186 ++    {
 4.22187 ++      AVR32_OPC_MAC, 4, 0xe0000340, 0xe1f0fff0,
 4.22188 ++      &avr32_syntax_table[AVR32_SYNTAX_MAC],
 4.22189 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22190 ++      {
 4.22191 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22192 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22193 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22194 ++      },
 4.22195 ++    },
 4.22196 ++    {
 4.22197 ++      AVR32_OPC_MACHH_D, 4, 0xe0000580, 0xe1f0ffc1,
 4.22198 ++      &avr32_syntax_table[AVR32_SYNTAX_MACHH_D],
 4.22199 ++      BFD_RELOC_UNUSED, 5, -1,
 4.22200 ++      {
 4.22201 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22202 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22203 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.22204 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22205 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.22206 ++      },
 4.22207 ++    },
 4.22208 ++    {
 4.22209 ++      AVR32_OPC_MACHH_W, 4, 0xe0000480, 0xe1f0ffc0,
 4.22210 ++      &avr32_syntax_table[AVR32_SYNTAX_MACHH_W],
 4.22211 ++      BFD_RELOC_UNUSED, 5, -1,
 4.22212 ++      {
 4.22213 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22214 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22215 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.22216 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22217 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.22218 ++      },
 4.22219 ++    },
 4.22220 ++    {
 4.22221 ++      AVR32_OPC_MACS_D, 4, 0xe0000540, 0xe1f0fff1,
 4.22222 ++      &avr32_syntax_table[AVR32_SYNTAX_MACS_D],
 4.22223 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22224 ++      {
 4.22225 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22226 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22227 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22228 ++      },
 4.22229 ++    },
 4.22230 ++    {
 4.22231 ++      AVR32_OPC_MACSATHH_W, 4, 0xe0000680, 0xe1f0ffc0,
 4.22232 ++      &avr32_syntax_table[AVR32_SYNTAX_MACSATHH_W],
 4.22233 ++      BFD_RELOC_UNUSED, 5, -1,
 4.22234 ++      {
 4.22235 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22236 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22237 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.22238 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22239 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.22240 ++      },
 4.22241 ++    },
 4.22242 ++    {
 4.22243 ++      AVR32_OPC_MACUD, 4, 0xe0000740, 0xe1f0fff1,
 4.22244 ++      &avr32_syntax_table[AVR32_SYNTAX_MACUD],
 4.22245 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22246 ++      {
 4.22247 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22248 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22249 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22250 ++      },
 4.22251 ++    },
 4.22252 ++    {
 4.22253 ++      AVR32_OPC_MACWH_D, 4, 0xe0000c80, 0xe1f0ffe1,
 4.22254 ++      &avr32_syntax_table[AVR32_SYNTAX_MACWH_D],
 4.22255 ++      BFD_RELOC_UNUSED, 4, -1,
 4.22256 ++      {
 4.22257 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22258 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22259 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22260 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.22261 ++      },
 4.22262 ++    },
 4.22263 ++    {
 4.22264 ++      AVR32_OPC_MAX, 4, 0xe0000c40, 0xe1f0fff0,
 4.22265 ++      &avr32_syntax_table[AVR32_SYNTAX_MAX],
 4.22266 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22267 ++      {
 4.22268 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22269 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22270 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22271 ++      },
 4.22272 ++    },
 4.22273 ++    {
 4.22274 ++      AVR32_OPC_MCALL, 4, 0xf0100000, 0xfff00000,
 4.22275 ++      &avr32_syntax_table[AVR32_SYNTAX_MCALL],
 4.22276 ++      BFD_RELOC_AVR32_18W_PCREL, 2, 1,
 4.22277 ++      {
 4.22278 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22279 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.22280 ++      },
 4.22281 ++    },
 4.22282 ++    {
 4.22283 ++      AVR32_OPC_MFDR, 4, 0xe5b00000, 0xfff0ff00,
 4.22284 ++      &avr32_syntax_table[AVR32_SYNTAX_MFDR],
 4.22285 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22286 ++      {
 4.22287 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22288 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22289 ++      },
 4.22290 ++    },
 4.22291 ++    {
 4.22292 ++      AVR32_OPC_MFSR, 4, 0xe1b00000, 0xfff0ff00,
 4.22293 ++      &avr32_syntax_table[AVR32_SYNTAX_MFSR],
 4.22294 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22295 ++      {
 4.22296 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22297 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22298 ++      },
 4.22299 ++    },
 4.22300 ++    {
 4.22301 ++      AVR32_OPC_MIN, 4, 0xe0000d40, 0xe1f0fff0,
 4.22302 ++      &avr32_syntax_table[AVR32_SYNTAX_MIN],
 4.22303 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22304 ++      {
 4.22305 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22306 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22307 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22308 ++      },
 4.22309 ++    },
 4.22310 ++    {
 4.22311 ++      AVR32_OPC_MOV3, 2, 0x00900000, 0xe1f00000,
 4.22312 ++      &avr32_syntax_table[AVR32_SYNTAX_MOV3],
 4.22313 ++      BFD_RELOC_NONE, 2, -1,
 4.22314 ++      {
 4.22315 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22316 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22317 ++      },
 4.22318 ++    },
 4.22319 ++    {
 4.22320 ++      AVR32_OPC_MOV1, 2, 0x30000000, 0xf0000000,
 4.22321 ++      &avr32_syntax_table[AVR32_SYNTAX_MOV1],
 4.22322 ++      BFD_RELOC_AVR32_8S, 2, 1,
 4.22323 ++      {
 4.22324 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22325 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 4.22326 ++      },
 4.22327 ++    },
 4.22328 ++    {
 4.22329 ++      AVR32_OPC_MOV2, 4, 0xe0600000, 0xe1e00000,
 4.22330 ++      &avr32_syntax_table[AVR32_SYNTAX_MOV2],
 4.22331 ++      BFD_RELOC_AVR32_21S, 2, 1,
 4.22332 ++      {
 4.22333 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22334 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.22335 ++      },
 4.22336 ++    },
 4.22337 ++    {
 4.22338 ++      AVR32_OPC_MOVEQ1, 4, 0xe0001700, 0xe1f0ffff,
 4.22339 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVEQ1],
 4.22340 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22341 ++      {
 4.22342 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22343 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22344 ++      },
 4.22345 ++    },
 4.22346 ++    {
 4.22347 ++      AVR32_OPC_MOVNE1, 4, 0xe0001710, 0xe1f0ffff,
 4.22348 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVNE1],
 4.22349 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22350 ++      {
 4.22351 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22352 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22353 ++      },
 4.22354 ++    },
 4.22355 ++    {
 4.22356 ++      AVR32_OPC_MOVCC1, 4, 0xe0001720, 0xe1f0ffff,
 4.22357 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVHS1],
 4.22358 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22359 ++      {
 4.22360 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22361 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22362 ++      },
 4.22363 ++    },
 4.22364 ++    {
 4.22365 ++      AVR32_OPC_MOVCS1, 4, 0xe0001730, 0xe1f0ffff,
 4.22366 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVLO1],
 4.22367 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22368 ++      {
 4.22369 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22370 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22371 ++      },
 4.22372 ++    },
 4.22373 ++    {
 4.22374 ++      AVR32_OPC_MOVGE1, 4, 0xe0001740, 0xe1f0ffff,
 4.22375 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVGE1],
 4.22376 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22377 ++      {
 4.22378 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22379 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22380 ++      },
 4.22381 ++    },
 4.22382 ++    {
 4.22383 ++      AVR32_OPC_MOVLT1, 4, 0xe0001750, 0xe1f0ffff,
 4.22384 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVLT1],
 4.22385 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22386 ++      {
 4.22387 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22388 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22389 ++      },
 4.22390 ++    },
 4.22391 ++    {
 4.22392 ++      AVR32_OPC_MOVMI1, 4, 0xe0001760, 0xe1f0ffff,
 4.22393 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVMI1],
 4.22394 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22395 ++      {
 4.22396 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22397 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22398 ++      },
 4.22399 ++    },
 4.22400 ++    {
 4.22401 ++      AVR32_OPC_MOVPL1, 4, 0xe0001770, 0xe1f0ffff,
 4.22402 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVPL1],
 4.22403 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22404 ++      {
 4.22405 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22406 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22407 ++      },
 4.22408 ++    },
 4.22409 ++    {
 4.22410 ++      AVR32_OPC_MOVLS1, 4, 0xe0001780, 0xe1f0ffff,
 4.22411 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVLS1],
 4.22412 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22413 ++      {
 4.22414 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22415 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22416 ++      },
 4.22417 ++    },
 4.22418 ++    {
 4.22419 ++      AVR32_OPC_MOVGT1, 4, 0xe0001790, 0xe1f0ffff,
 4.22420 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVGT1],
 4.22421 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22422 ++      {
 4.22423 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22424 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22425 ++      },
 4.22426 ++    },
 4.22427 ++    {
 4.22428 ++      AVR32_OPC_MOVLE1, 4, 0xe00017a0, 0xe1f0ffff,
 4.22429 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVLE1],
 4.22430 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22431 ++      {
 4.22432 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22433 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22434 ++      },
 4.22435 ++    },
 4.22436 ++    {
 4.22437 ++      AVR32_OPC_MOVHI1, 4, 0xe00017b0, 0xe1f0ffff,
 4.22438 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVHI1],
 4.22439 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22440 ++      {
 4.22441 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22442 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22443 ++      },
 4.22444 ++    },
 4.22445 ++    {
 4.22446 ++      AVR32_OPC_MOVVS1, 4, 0xe00017c0, 0xe1f0ffff,
 4.22447 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVVS1],
 4.22448 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22449 ++      {
 4.22450 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22451 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22452 ++      },
 4.22453 ++    },
 4.22454 ++    {
 4.22455 ++      AVR32_OPC_MOVVC1, 4, 0xe00017d0, 0xe1f0ffff,
 4.22456 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVVC1],
 4.22457 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22458 ++      {
 4.22459 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22460 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22461 ++      },
 4.22462 ++    },
 4.22463 ++    {
 4.22464 ++      AVR32_OPC_MOVQS1, 4, 0xe00017e0, 0xe1f0ffff,
 4.22465 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVQS1],
 4.22466 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22467 ++      {
 4.22468 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22469 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22470 ++      },
 4.22471 ++    },
 4.22472 ++    {
 4.22473 ++      AVR32_OPC_MOVAL1, 4, 0xe00017f0, 0xe1f0ffff,
 4.22474 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVAL1],
 4.22475 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22476 ++      {
 4.22477 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22478 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22479 ++      },
 4.22480 ++    },
 4.22481 ++    {
 4.22482 ++      AVR32_OPC_MOVEQ2, 4, 0xf9b00000, 0xfff0ff00,
 4.22483 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVEQ2],
 4.22484 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22485 ++      {
 4.22486 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22487 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22488 ++      },
 4.22489 ++    },
 4.22490 ++    {
 4.22491 ++      AVR32_OPC_MOVNE2, 4, 0xf9b00100, 0xfff0ff00,
 4.22492 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVNE2],
 4.22493 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22494 ++      {
 4.22495 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22496 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22497 ++      },
 4.22498 ++    },
 4.22499 ++    {
 4.22500 ++      AVR32_OPC_MOVCC2, 4, 0xf9b00200, 0xfff0ff00,
 4.22501 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVHS2],
 4.22502 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22503 ++      {
 4.22504 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22505 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22506 ++      },
 4.22507 ++    },
 4.22508 ++    {
 4.22509 ++      AVR32_OPC_MOVCS2, 4, 0xf9b00300, 0xfff0ff00,
 4.22510 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVLO2],
 4.22511 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22512 ++      {
 4.22513 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22514 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22515 ++      },
 4.22516 ++    },
 4.22517 ++    {
 4.22518 ++      AVR32_OPC_MOVGE2, 4, 0xf9b00400, 0xfff0ff00,
 4.22519 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVGE2],
 4.22520 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22521 ++      {
 4.22522 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22523 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22524 ++      },
 4.22525 ++    },
 4.22526 ++    {
 4.22527 ++      AVR32_OPC_MOVLT2, 4, 0xf9b00500, 0xfff0ff00,
 4.22528 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVLT2],
 4.22529 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22530 ++      {
 4.22531 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22532 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22533 ++      },
 4.22534 ++    },
 4.22535 ++    {
 4.22536 ++      AVR32_OPC_MOVMI2, 4, 0xf9b00600, 0xfff0ff00,
 4.22537 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVMI2],
 4.22538 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22539 ++      {
 4.22540 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22541 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22542 ++      },
 4.22543 ++    },
 4.22544 ++    {
 4.22545 ++      AVR32_OPC_MOVPL2, 4, 0xf9b00700, 0xfff0ff00,
 4.22546 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVPL2],
 4.22547 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22548 ++      {
 4.22549 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22550 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22551 ++      },
 4.22552 ++    },
 4.22553 ++    {
 4.22554 ++      AVR32_OPC_MOVLS2, 4, 0xf9b00800, 0xfff0ff00,
 4.22555 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVLS2],
 4.22556 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22557 ++      {
 4.22558 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22559 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22560 ++      },
 4.22561 ++    },
 4.22562 ++    {
 4.22563 ++      AVR32_OPC_MOVGT2, 4, 0xf9b00900, 0xfff0ff00,
 4.22564 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVGT2],
 4.22565 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22566 ++      {
 4.22567 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22568 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22569 ++      },
 4.22570 ++    },
 4.22571 ++    {
 4.22572 ++      AVR32_OPC_MOVLE2, 4, 0xf9b00a00, 0xfff0ff00,
 4.22573 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVLE2],
 4.22574 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22575 ++      {
 4.22576 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22577 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22578 ++      },
 4.22579 ++    },
 4.22580 ++    {
 4.22581 ++      AVR32_OPC_MOVHI2, 4, 0xf9b00b00, 0xfff0ff00,
 4.22582 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVHI2],
 4.22583 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22584 ++      {
 4.22585 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22586 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22587 ++      },
 4.22588 ++    },
 4.22589 ++    {
 4.22590 ++      AVR32_OPC_MOVVS2, 4, 0xf9b00c00, 0xfff0ff00,
 4.22591 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVVS2],
 4.22592 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22593 ++      {
 4.22594 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22595 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22596 ++      },
 4.22597 ++    },
 4.22598 ++    {
 4.22599 ++      AVR32_OPC_MOVVC2, 4, 0xf9b00d00, 0xfff0ff00,
 4.22600 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVVC2],
 4.22601 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22602 ++      {
 4.22603 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22604 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22605 ++      },
 4.22606 ++    },
 4.22607 ++    {
 4.22608 ++      AVR32_OPC_MOVQS2, 4, 0xf9b00e00, 0xfff0ff00,
 4.22609 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVQS2],
 4.22610 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22611 ++      {
 4.22612 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22613 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22614 ++      },
 4.22615 ++    },
 4.22616 ++    {
 4.22617 ++      AVR32_OPC_MOVAL2, 4, 0xf9b00f00, 0xfff0ff00,
 4.22618 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVAL2],
 4.22619 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.22620 ++      {
 4.22621 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22622 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22623 ++      },
 4.22624 ++    },
 4.22625 ++    {
 4.22626 ++      AVR32_OPC_MTDR, 4, 0xe7b00000, 0xfff0ff00,
 4.22627 ++      &avr32_syntax_table[AVR32_SYNTAX_MTDR],
 4.22628 ++      BFD_RELOC_AVR32_8S_EXT, 2, 0,
 4.22629 ++      {
 4.22630 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22631 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22632 ++      },
 4.22633 ++    },
 4.22634 ++    {
 4.22635 ++      AVR32_OPC_MTSR, 4, 0xe3b00000, 0xfff0ff00,
 4.22636 ++      &avr32_syntax_table[AVR32_SYNTAX_MTSR],
 4.22637 ++      BFD_RELOC_AVR32_8S_EXT, 2, 0,
 4.22638 ++      {
 4.22639 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22640 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22641 ++      },
 4.22642 ++    },
 4.22643 ++    {
 4.22644 ++      AVR32_OPC_MUL1, 2, 0xa1300000, 0xe1f00000,
 4.22645 ++      &avr32_syntax_table[AVR32_SYNTAX_MUL1],
 4.22646 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22647 ++      {
 4.22648 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22649 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22650 ++      },
 4.22651 ++    },
 4.22652 ++    {
 4.22653 ++      AVR32_OPC_MUL2, 4, 0xe0000240, 0xe1f0fff0,
 4.22654 ++      &avr32_syntax_table[AVR32_SYNTAX_MUL2],
 4.22655 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22656 ++      {
 4.22657 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22658 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22659 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22660 ++      },
 4.22661 ++    },
 4.22662 ++    {
 4.22663 ++      AVR32_OPC_MUL3, 4, 0xe0001000, 0xe1f0ff00,
 4.22664 ++      &avr32_syntax_table[AVR32_SYNTAX_MUL3],
 4.22665 ++      BFD_RELOC_AVR32_8S_EXT, 3, 2,
 4.22666 ++      {
 4.22667 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22668 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22669 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.22670 ++      },
 4.22671 ++    },
 4.22672 ++    {
 4.22673 ++      AVR32_OPC_MULHH_W, 4, 0xe0000780, 0xe1f0ffc0,
 4.22674 ++      &avr32_syntax_table[AVR32_SYNTAX_MULHH_W],
 4.22675 ++      BFD_RELOC_UNUSED, 5, -1,
 4.22676 ++      {
 4.22677 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22678 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22679 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.22680 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22681 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.22682 ++      },
 4.22683 ++    },
 4.22684 ++    {
 4.22685 ++      AVR32_OPC_MULNHH_W, 4, 0xe0000180, 0xe1f0ffc0,
 4.22686 ++      &avr32_syntax_table[AVR32_SYNTAX_MULNHH_W],
 4.22687 ++      BFD_RELOC_UNUSED, 5, -1,
 4.22688 ++      {
 4.22689 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22690 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22691 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.22692 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22693 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.22694 ++      },
 4.22695 ++    },
 4.22696 ++    {
 4.22697 ++      AVR32_OPC_MULNWH_D, 4, 0xe0000280, 0xe1f0ffe1,
 4.22698 ++      &avr32_syntax_table[AVR32_SYNTAX_MULNWH_D],
 4.22699 ++      BFD_RELOC_UNUSED, 4, -1,
 4.22700 ++      {
 4.22701 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22702 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22703 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22704 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.22705 ++      },
 4.22706 ++    },
 4.22707 ++    {
 4.22708 ++      AVR32_OPC_MULSD, 4, 0xe0000440, 0xe1f0fff0,
 4.22709 ++      &avr32_syntax_table[AVR32_SYNTAX_MULSD],
 4.22710 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22711 ++      {
 4.22712 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22713 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22714 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22715 ++      },
 4.22716 ++    },
 4.22717 ++    {
 4.22718 ++      AVR32_OPC_MULSATHH_H, 4, 0xe0000880, 0xe1f0ffc0,
 4.22719 ++      &avr32_syntax_table[AVR32_SYNTAX_MULSATHH_H],
 4.22720 ++      BFD_RELOC_UNUSED, 5, -1,
 4.22721 ++      {
 4.22722 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22723 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22724 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.22725 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22726 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.22727 ++      },
 4.22728 ++    },
 4.22729 ++    {
 4.22730 ++      AVR32_OPC_MULSATHH_W, 4, 0xe0000980, 0xe1f0ffc0,
 4.22731 ++      &avr32_syntax_table[AVR32_SYNTAX_MULSATHH_W],
 4.22732 ++      BFD_RELOC_UNUSED, 5, -1,
 4.22733 ++      {
 4.22734 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22735 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22736 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.22737 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22738 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.22739 ++      },
 4.22740 ++    },
 4.22741 ++    {
 4.22742 ++      AVR32_OPC_MULSATRNDHH_H, 4, 0xe0000a80, 0xe1f0ffc0,
 4.22743 ++      &avr32_syntax_table[AVR32_SYNTAX_MULSATRNDHH_H],
 4.22744 ++      BFD_RELOC_UNUSED, 5, -1,
 4.22745 ++      {
 4.22746 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22747 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22748 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.22749 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22750 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.22751 ++      },
 4.22752 ++    },
 4.22753 ++    {
 4.22754 ++      AVR32_OPC_MULSATRNDWH_W, 4, 0xe0000b80, 0xe1f0ffe0,
 4.22755 ++      &avr32_syntax_table[AVR32_SYNTAX_MULSATRNDWH_W],
 4.22756 ++      BFD_RELOC_UNUSED, 4, -1,
 4.22757 ++      {
 4.22758 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22759 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22760 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22761 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.22762 ++      },
 4.22763 ++    },
 4.22764 ++    {
 4.22765 ++      AVR32_OPC_MULSATWH_W, 4, 0xe0000e80, 0xe1f0ffe0,
 4.22766 ++      &avr32_syntax_table[AVR32_SYNTAX_MULSATWH_W],
 4.22767 ++      BFD_RELOC_UNUSED, 4, -1,
 4.22768 ++      {
 4.22769 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22770 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22771 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22772 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.22773 ++      },
 4.22774 ++    },
 4.22775 ++    {
 4.22776 ++      AVR32_OPC_MULU_D, 4, 0xe0000640, 0xe1f0fff1,
 4.22777 ++      &avr32_syntax_table[AVR32_SYNTAX_MULU_D],
 4.22778 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22779 ++      {
 4.22780 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22781 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22782 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22783 ++      },
 4.22784 ++    },
 4.22785 ++    {
 4.22786 ++      AVR32_OPC_MULWH_D, 4, 0xe0000d80, 0xe1f0ffe1,
 4.22787 ++      &avr32_syntax_table[AVR32_SYNTAX_MULWH_D],
 4.22788 ++      BFD_RELOC_UNUSED, 4, -1,
 4.22789 ++      {
 4.22790 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22791 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22792 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22793 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.22794 ++      },
 4.22795 ++    },
 4.22796 ++    {
 4.22797 ++      AVR32_OPC_MUSFR, 2, 0x5d300000, 0xfff00000,
 4.22798 ++      &avr32_syntax_table[AVR32_SYNTAX_MUSFR],
 4.22799 ++      BFD_RELOC_UNUSED, 1, -1,
 4.22800 ++      {
 4.22801 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22802 ++      }
 4.22803 ++    },
 4.22804 ++    {
 4.22805 ++      AVR32_OPC_MUSTR, 2, 0x5d200000, 0xfff00000,
 4.22806 ++      &avr32_syntax_table[AVR32_SYNTAX_MUSTR],
 4.22807 ++      BFD_RELOC_UNUSED, 1, -1,
 4.22808 ++      {
 4.22809 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22810 ++      }
 4.22811 ++    },
 4.22812 ++    {
 4.22813 ++      AVR32_OPC_MVCR_D, 4, 0xefa00010, 0xfff111ff,
 4.22814 ++      &avr32_syntax_table[AVR32_SYNTAX_MVCR_D],
 4.22815 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22816 ++      {
 4.22817 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.22818 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 4.22819 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 4.22820 ++      },
 4.22821 ++    },
 4.22822 ++    {
 4.22823 ++      AVR32_OPC_MVCR_W, 4, 0xefa00000, 0xfff010ff,
 4.22824 ++      &avr32_syntax_table[AVR32_SYNTAX_MVCR_W],
 4.22825 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22826 ++      {
 4.22827 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.22828 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22829 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 4.22830 ++      },
 4.22831 ++    },
 4.22832 ++    {
 4.22833 ++      AVR32_OPC_MVRC_D, 4, 0xefa00030, 0xfff111ff,
 4.22834 ++      &avr32_syntax_table[AVR32_SYNTAX_MVRC_D],
 4.22835 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22836 ++      {
 4.22837 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.22838 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 4.22839 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 4.22840 ++      },
 4.22841 ++    },
 4.22842 ++    {
 4.22843 ++      AVR32_OPC_MVRC_W, 4, 0xefa00020, 0xfff010ff,
 4.22844 ++      &avr32_syntax_table[AVR32_SYNTAX_MVRC_W],
 4.22845 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22846 ++      {
 4.22847 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.22848 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 4.22849 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22850 ++      },
 4.22851 ++    },
 4.22852 ++    {
 4.22853 ++      AVR32_OPC_NEG, 2, 0x5c300000, 0xfff00000,
 4.22854 ++      &avr32_syntax_table[AVR32_SYNTAX_NEG],
 4.22855 ++      BFD_RELOC_UNUSED, 1, -1,
 4.22856 ++      {
 4.22857 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22858 ++      }
 4.22859 ++    },
 4.22860 ++    {
 4.22861 ++      AVR32_OPC_NOP, 2, 0xd7030000, 0xffff0000,
 4.22862 ++      &avr32_syntax_table[AVR32_SYNTAX_NOP],
 4.22863 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 4.22864 ++    },
 4.22865 ++    {
 4.22866 ++      AVR32_OPC_OR1, 2, 0x00400000, 0xe1f00000,
 4.22867 ++      &avr32_syntax_table[AVR32_SYNTAX_OR1],
 4.22868 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22869 ++      {
 4.22870 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22871 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22872 ++      },
 4.22873 ++    },
 4.22874 ++    {
 4.22875 ++      AVR32_OPC_OR2, 4, 0xe1e01000, 0xe1f0fe00,
 4.22876 ++      &avr32_syntax_table[AVR32_SYNTAX_OR2],
 4.22877 ++      BFD_RELOC_UNUSED, 4, -1,
 4.22878 ++      {
 4.22879 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22880 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22881 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22882 ++	&avr32_ifield_table[AVR32_IFIELD_K5E2],
 4.22883 ++      },
 4.22884 ++    },
 4.22885 ++    {
 4.22886 ++      AVR32_OPC_OR3, 4, 0xe1e01200, 0xe1f0fe00,
 4.22887 ++      &avr32_syntax_table[AVR32_SYNTAX_OR3],
 4.22888 ++      BFD_RELOC_UNUSED, 4, -1,
 4.22889 ++      {
 4.22890 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22891 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22892 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22893 ++	&avr32_ifield_table[AVR32_IFIELD_K5E2],
 4.22894 ++      },
 4.22895 ++    },
 4.22896 ++    {
 4.22897 ++      AVR32_OPC_ORH, 4, 0xea100000, 0xfff00000,
 4.22898 ++      &avr32_syntax_table[AVR32_SYNTAX_ORH],
 4.22899 ++      BFD_RELOC_AVR32_16U, 2, 1,
 4.22900 ++      {
 4.22901 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22902 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.22903 ++      },
 4.22904 ++    },
 4.22905 ++    {
 4.22906 ++      AVR32_OPC_ORL, 4, 0xe8100000, 0xfff00000,
 4.22907 ++      &avr32_syntax_table[AVR32_SYNTAX_ORL],
 4.22908 ++      BFD_RELOC_AVR32_16U, 2, 1,
 4.22909 ++      {
 4.22910 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22911 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.22912 ++      },
 4.22913 ++    },
 4.22914 ++    {
 4.22915 ++      AVR32_OPC_PABS_SB, 4, 0xe00023e0, 0xfff0fff0,
 4.22916 ++      &avr32_syntax_table[AVR32_SYNTAX_PABS_SB],
 4.22917 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22918 ++      {
 4.22919 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22920 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22921 ++      },
 4.22922 ++    },
 4.22923 ++    {
 4.22924 ++      AVR32_OPC_PABS_SH, 4, 0xe00023f0, 0xfff0fff0,
 4.22925 ++      &avr32_syntax_table[AVR32_SYNTAX_PABS_SH],
 4.22926 ++      BFD_RELOC_UNUSED, 2, -1,
 4.22927 ++      {
 4.22928 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22929 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22930 ++      },
 4.22931 ++    },
 4.22932 ++    {
 4.22933 ++      AVR32_OPC_PACKSH_SB, 4, 0xe00024d0, 0xe1f0fff0,
 4.22934 ++      &avr32_syntax_table[AVR32_SYNTAX_PACKSH_SB],
 4.22935 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22936 ++      {
 4.22937 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22938 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22939 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22940 ++      },
 4.22941 ++    },
 4.22942 ++    {
 4.22943 ++      AVR32_OPC_PACKSH_UB, 4, 0xe00024c0, 0xe1f0fff0,
 4.22944 ++      &avr32_syntax_table[AVR32_SYNTAX_PACKSH_UB],
 4.22945 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22946 ++      {
 4.22947 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22948 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22949 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22950 ++      },
 4.22951 ++    },
 4.22952 ++    {
 4.22953 ++      AVR32_OPC_PACKW_SH, 4, 0xe0002470, 0xe1f0fff0,
 4.22954 ++      &avr32_syntax_table[AVR32_SYNTAX_PACKW_SH],
 4.22955 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22956 ++      {
 4.22957 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22958 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22959 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22960 ++      },
 4.22961 ++    },
 4.22962 ++    {
 4.22963 ++      AVR32_OPC_PADD_B, 4, 0xe0002300, 0xe1f0fff0,
 4.22964 ++      &avr32_syntax_table[AVR32_SYNTAX_PADD_B],
 4.22965 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22966 ++      {
 4.22967 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22968 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22969 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22970 ++      },
 4.22971 ++    },
 4.22972 ++    {
 4.22973 ++      AVR32_OPC_PADD_H, 4, 0xe0002000, 0xe1f0fff0,
 4.22974 ++      &avr32_syntax_table[AVR32_SYNTAX_PADD_H],
 4.22975 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22976 ++      {
 4.22977 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22978 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22979 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22980 ++      },
 4.22981 ++    },
 4.22982 ++    {
 4.22983 ++      AVR32_OPC_PADDH_SH, 4, 0xe00020c0, 0xe1f0fff0,
 4.22984 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDH_SH],
 4.22985 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22986 ++      {
 4.22987 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22988 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22989 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.22990 ++      },
 4.22991 ++    },
 4.22992 ++    {
 4.22993 ++      AVR32_OPC_PADDH_UB, 4, 0xe0002360, 0xe1f0fff0,
 4.22994 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDH_UB],
 4.22995 ++      BFD_RELOC_UNUSED, 3, -1,
 4.22996 ++      {
 4.22997 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.22998 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.22999 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23000 ++      },
 4.23001 ++    },
 4.23002 ++    {
 4.23003 ++      AVR32_OPC_PADDS_SB, 4, 0xe0002320, 0xe1f0fff0,
 4.23004 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDS_SB],
 4.23005 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23006 ++      {
 4.23007 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23008 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23009 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23010 ++      },
 4.23011 ++    },
 4.23012 ++    {
 4.23013 ++      AVR32_OPC_PADDS_SH, 4, 0xe0002040, 0xe1f0fff0,
 4.23014 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDS_SH],
 4.23015 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23016 ++      {
 4.23017 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23018 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23019 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23020 ++      },
 4.23021 ++    },
 4.23022 ++    {
 4.23023 ++      AVR32_OPC_PADDS_UB, 4, 0xe0002340, 0xe1f0fff0,
 4.23024 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDS_UB],
 4.23025 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23026 ++      {
 4.23027 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23028 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23029 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23030 ++      },
 4.23031 ++    },
 4.23032 ++    {
 4.23033 ++      AVR32_OPC_PADDS_UH, 4, 0xe0002080, 0xe1f0fff0,
 4.23034 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDS_UH],
 4.23035 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23036 ++      {
 4.23037 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23038 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23039 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23040 ++      },
 4.23041 ++    },
 4.23042 ++    {
 4.23043 ++      AVR32_OPC_PADDSUB_H, 4, 0xe0002100, 0xe1f0ffc0,
 4.23044 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDSUB_H],
 4.23045 ++      BFD_RELOC_UNUSED, 5, -1,
 4.23046 ++      {
 4.23047 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23048 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23049 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.23050 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23051 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.23052 ++      },
 4.23053 ++    },
 4.23054 ++    {
 4.23055 ++      AVR32_OPC_PADDSUBH_SH, 4, 0xe0002280, 0xe1f0ffc0,
 4.23056 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDSUBH_SH],
 4.23057 ++      BFD_RELOC_UNUSED, 5, -1,
 4.23058 ++      {
 4.23059 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23060 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23061 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.23062 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23063 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.23064 ++      },
 4.23065 ++    },
 4.23066 ++    {
 4.23067 ++      AVR32_OPC_PADDSUBS_SH, 4, 0xe0002180, 0xe1f0ffc0,
 4.23068 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDSUBS_SH],
 4.23069 ++      BFD_RELOC_UNUSED, 5, -1,
 4.23070 ++      {
 4.23071 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23072 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23073 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.23074 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23075 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.23076 ++      },
 4.23077 ++    },
 4.23078 ++    {
 4.23079 ++      AVR32_OPC_PADDSUBS_UH, 4, 0xe0002200, 0xe1f0ffc0,
 4.23080 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDSUBS_UH],
 4.23081 ++      BFD_RELOC_UNUSED, 5, -1,
 4.23082 ++      {
 4.23083 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23084 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23085 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.23086 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23087 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.23088 ++      },
 4.23089 ++    },
 4.23090 ++    {
 4.23091 ++      AVR32_OPC_PADDX_H, 4, 0xe0002020, 0xe1f0fff0,
 4.23092 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDX_H],
 4.23093 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23094 ++      {
 4.23095 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23096 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23097 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23098 ++      },
 4.23099 ++    },
 4.23100 ++    {
 4.23101 ++      AVR32_OPC_PADDXH_SH, 4, 0xe00020e0, 0xe1f0fff0,
 4.23102 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDXH_SH],
 4.23103 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23104 ++      {
 4.23105 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23106 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23107 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23108 ++      },
 4.23109 ++    },
 4.23110 ++    {
 4.23111 ++      AVR32_OPC_PADDXS_SH, 4, 0xe0002060, 0xe1f0fff0,
 4.23112 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDXS_SH],
 4.23113 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23114 ++      {
 4.23115 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23116 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23117 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23118 ++      },
 4.23119 ++    },
 4.23120 ++    {
 4.23121 ++      AVR32_OPC_PADDXS_UH, 4, 0xe00020a0, 0xe1f0fff0,
 4.23122 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDXS_UH],
 4.23123 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23124 ++      {
 4.23125 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23126 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23127 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23128 ++      },
 4.23129 ++    },
 4.23130 ++    {
 4.23131 ++      AVR32_OPC_PASR_B, 4, 0xe0002410, 0xe1f8fff0,
 4.23132 ++      &avr32_syntax_table[AVR32_SYNTAX_PASR_B],
 4.23133 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23134 ++      {
 4.23135 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23136 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23137 ++	&avr32_ifield_table[AVR32_IFIELD_COND3],
 4.23138 ++      },
 4.23139 ++    },
 4.23140 ++    {
 4.23141 ++      AVR32_OPC_PASR_H, 4, 0xe0002440, 0xe1f0fff0,
 4.23142 ++      &avr32_syntax_table[AVR32_SYNTAX_PASR_H],
 4.23143 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23144 ++      {
 4.23145 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23146 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23147 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23148 ++      },
 4.23149 ++    },
 4.23150 ++    {
 4.23151 ++      AVR32_OPC_PAVG_SH, 4, 0xe00023d0, 0xe1f0fff0,
 4.23152 ++      &avr32_syntax_table[AVR32_SYNTAX_PAVG_SH],
 4.23153 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23154 ++      {
 4.23155 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23156 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23157 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23158 ++      },
 4.23159 ++    },
 4.23160 ++    {
 4.23161 ++      AVR32_OPC_PAVG_UB, 4, 0xe00023c0, 0xe1f0fff0,
 4.23162 ++      &avr32_syntax_table[AVR32_SYNTAX_PAVG_UB],
 4.23163 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23164 ++      {
 4.23165 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23166 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23167 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23168 ++      },
 4.23169 ++    },
 4.23170 ++    {
 4.23171 ++      AVR32_OPC_PLSL_B, 4, 0xe0002420, 0xe1f8fff0,
 4.23172 ++      &avr32_syntax_table[AVR32_SYNTAX_PLSL_B],
 4.23173 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23174 ++      {
 4.23175 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23176 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23177 ++	&avr32_ifield_table[AVR32_IFIELD_COND3],
 4.23178 ++      },
 4.23179 ++    },
 4.23180 ++    {
 4.23181 ++      AVR32_OPC_PLSL_H, 4, 0xe0002450, 0xe1f0fff0,
 4.23182 ++      &avr32_syntax_table[AVR32_SYNTAX_PLSL_H],
 4.23183 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23184 ++      {
 4.23185 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23186 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23187 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23188 ++      },
 4.23189 ++    },
 4.23190 ++    {
 4.23191 ++      AVR32_OPC_PLSR_B, 4, 0xe0002430, 0xe1f8fff0,
 4.23192 ++      &avr32_syntax_table[AVR32_SYNTAX_PLSR_B],
 4.23193 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23194 ++      {
 4.23195 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23196 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23197 ++	&avr32_ifield_table[AVR32_IFIELD_COND3],
 4.23198 ++      },
 4.23199 ++    },
 4.23200 ++    {
 4.23201 ++      AVR32_OPC_PLSR_H, 4, 0xe0002460, 0xe1f0fff0,
 4.23202 ++      &avr32_syntax_table[AVR32_SYNTAX_PLSR_H],
 4.23203 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23204 ++      {
 4.23205 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23206 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23207 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23208 ++      },
 4.23209 ++    },
 4.23210 ++    {
 4.23211 ++      AVR32_OPC_PMAX_SH, 4, 0xe0002390, 0xe1f0fff0,
 4.23212 ++      &avr32_syntax_table[AVR32_SYNTAX_PMAX_SH],
 4.23213 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23214 ++      {
 4.23215 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23216 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23217 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23218 ++      },
 4.23219 ++    },
 4.23220 ++    {
 4.23221 ++      AVR32_OPC_PMAX_UB, 4, 0xe0002380, 0xe1f0fff0,
 4.23222 ++      &avr32_syntax_table[AVR32_SYNTAX_PMAX_UB],
 4.23223 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23224 ++      {
 4.23225 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23226 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23227 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23228 ++      },
 4.23229 ++    },
 4.23230 ++    {
 4.23231 ++      AVR32_OPC_PMIN_SH, 4, 0xe00023b0, 0xe1f0fff0,
 4.23232 ++      &avr32_syntax_table[AVR32_SYNTAX_PMIN_SH],
 4.23233 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23234 ++      {
 4.23235 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23236 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23237 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23238 ++      },
 4.23239 ++    },
 4.23240 ++    {
 4.23241 ++      AVR32_OPC_PMIN_UB, 4, 0xe00023a0, 0xe1f0fff0,
 4.23242 ++      &avr32_syntax_table[AVR32_SYNTAX_PMIN_UB],
 4.23243 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23244 ++      {
 4.23245 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23246 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23247 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23248 ++      },
 4.23249 ++    },
 4.23250 ++    {
 4.23251 ++      AVR32_OPC_POPJC, 2, 0xd7130000, 0xffff0000,
 4.23252 ++      &avr32_syntax_table[AVR32_SYNTAX_POPJC],
 4.23253 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 4.23254 ++    },
 4.23255 ++    {
 4.23256 ++      AVR32_OPC_POPM, 2, 0xd0020000, 0xf0070000,
 4.23257 ++      &avr32_syntax_table[AVR32_SYNTAX_POPM],
 4.23258 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23259 ++      {
 4.23260 ++	&avr32_ifield_table[AVR32_IFIELD_POPM],
 4.23261 ++      },
 4.23262 ++    },
 4.23263 ++    {
 4.23264 ++      AVR32_OPC_POPM_E, 4, 0xe3cd0000, 0xffff0000,
 4.23265 ++      &avr32_syntax_table[AVR32_SYNTAX_POPM_E],
 4.23266 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23267 ++      {
 4.23268 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.23269 ++      },
 4.23270 ++    },
 4.23271 ++    {
 4.23272 ++      AVR32_OPC_PREF, 4, 0xf2100000, 0xfff00000,
 4.23273 ++      &avr32_syntax_table[AVR32_SYNTAX_PREF],
 4.23274 ++      BFD_RELOC_AVR32_16S, 2, -1,
 4.23275 ++      {
 4.23276 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23277 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.23278 ++      },
 4.23279 ++    },
 4.23280 ++    {
 4.23281 ++      AVR32_OPC_PSAD, 4, 0xe0002400, 0xe1f0fff0,
 4.23282 ++      &avr32_syntax_table[AVR32_SYNTAX_PSAD],
 4.23283 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23284 ++      {
 4.23285 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23286 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23287 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23288 ++      },
 4.23289 ++    },
 4.23290 ++    {
 4.23291 ++      AVR32_OPC_PSUB_B, 4, 0xe0002310, 0xe1f0fff0,
 4.23292 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUB_B],
 4.23293 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23294 ++      {
 4.23295 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23296 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23297 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23298 ++      },
 4.23299 ++    },
 4.23300 ++    {
 4.23301 ++      AVR32_OPC_PSUB_H, 4, 0xe0002010, 0xe1f0fff0,
 4.23302 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUB_H],
 4.23303 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23304 ++      {
 4.23305 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23306 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23307 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23308 ++      },
 4.23309 ++    },
 4.23310 ++    {
 4.23311 ++      AVR32_OPC_PSUBADD_H, 4, 0xe0002140, 0xe1f0ffc0,
 4.23312 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBADD_H],
 4.23313 ++      BFD_RELOC_UNUSED, 5, -1,
 4.23314 ++      {
 4.23315 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23316 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23317 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.23318 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23319 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.23320 ++      },
 4.23321 ++    },
 4.23322 ++    {
 4.23323 ++      AVR32_OPC_PSUBADDH_SH, 4, 0xe00022c0, 0xe1f0ffc0,
 4.23324 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBADDH_SH],
 4.23325 ++      BFD_RELOC_UNUSED, 5, -1,
 4.23326 ++      {
 4.23327 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23328 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23329 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.23330 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23331 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.23332 ++      },
 4.23333 ++    },
 4.23334 ++    {
 4.23335 ++      AVR32_OPC_PSUBADDS_SH, 4, 0xe00021c0, 0xe1f0ffc0,
 4.23336 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBADDS_SH],
 4.23337 ++      BFD_RELOC_UNUSED, 5, -1,
 4.23338 ++      {
 4.23339 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23340 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23341 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.23342 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23343 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.23344 ++      },
 4.23345 ++    },
 4.23346 ++    {
 4.23347 ++      AVR32_OPC_PSUBADDS_UH, 4, 0xe0002240, 0xe1f0ffc0,
 4.23348 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBADDS_UH],
 4.23349 ++      BFD_RELOC_UNUSED, 5, -1,
 4.23350 ++      {
 4.23351 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23352 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23353 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.23354 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23355 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.23356 ++      },
 4.23357 ++    },
 4.23358 ++    {
 4.23359 ++      AVR32_OPC_PSUBH_SH, 4, 0xe00020d0, 0xe1f0fff0,
 4.23360 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBH_SH],
 4.23361 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23362 ++      {
 4.23363 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23364 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23365 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23366 ++      },
 4.23367 ++    },
 4.23368 ++    {
 4.23369 ++      AVR32_OPC_PSUBH_UB, 4, 0xe0002370, 0xe1f0fff0,
 4.23370 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBH_UB],
 4.23371 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23372 ++      {
 4.23373 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23374 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23375 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23376 ++      },
 4.23377 ++    },
 4.23378 ++    {
 4.23379 ++      AVR32_OPC_PSUBS_SB, 4, 0xe0002330, 0xe1f0fff0,
 4.23380 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBS_SB],
 4.23381 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23382 ++      {
 4.23383 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23384 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23385 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23386 ++      },
 4.23387 ++    },
 4.23388 ++    {
 4.23389 ++      AVR32_OPC_PSUBS_SH, 4, 0xe0002050, 0xe1f0fff0,
 4.23390 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBS_SH],
 4.23391 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23392 ++      {
 4.23393 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23394 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23395 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23396 ++      },
 4.23397 ++    },
 4.23398 ++    {
 4.23399 ++      AVR32_OPC_PSUBS_UB, 4, 0xe0002350, 0xe1f0fff0,
 4.23400 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBS_UB],
 4.23401 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23402 ++      {
 4.23403 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23404 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23405 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23406 ++      },
 4.23407 ++    },
 4.23408 ++    {
 4.23409 ++      AVR32_OPC_PSUBS_UH, 4, 0xe0002090, 0xe1f0fff0,
 4.23410 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBS_UH],
 4.23411 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23412 ++      {
 4.23413 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23414 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23415 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23416 ++      },
 4.23417 ++    },
 4.23418 ++    {
 4.23419 ++      AVR32_OPC_PSUBX_H, 4, 0xe0002030, 0xe1f0fff0,
 4.23420 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBX_H],
 4.23421 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23422 ++      {
 4.23423 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23424 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23425 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23426 ++      },
 4.23427 ++    },
 4.23428 ++    {
 4.23429 ++      AVR32_OPC_PSUBXH_SH, 4, 0xe00020f0, 0xe1f0fff0,
 4.23430 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBXH_SH],
 4.23431 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23432 ++      {
 4.23433 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23434 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23435 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23436 ++      },
 4.23437 ++    },
 4.23438 ++    {
 4.23439 ++      AVR32_OPC_PSUBXS_SH, 4, 0xe0002070, 0xe1f0fff0,
 4.23440 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBXS_SH],
 4.23441 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23442 ++      {
 4.23443 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23444 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23445 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23446 ++      },
 4.23447 ++    },
 4.23448 ++    {
 4.23449 ++      AVR32_OPC_PSUBXS_UH, 4, 0xe00020b0, 0xe1f0fff0,
 4.23450 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBXS_UH],
 4.23451 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23452 ++      {
 4.23453 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23454 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23455 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23456 ++      },
 4.23457 ++    },
 4.23458 ++    {
 4.23459 ++      AVR32_OPC_PUNPCKSB_H, 4, 0xe00024a0, 0xe1ffffe0,
 4.23460 ++      &avr32_syntax_table[AVR32_SYNTAX_PUNPCKSB_H],
 4.23461 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23462 ++      {
 4.23463 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23464 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23465 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.23466 ++      },
 4.23467 ++    },
 4.23468 ++    {
 4.23469 ++      AVR32_OPC_PUNPCKUB_H, 4, 0xe0002480, 0xe1ffffe0,
 4.23470 ++      &avr32_syntax_table[AVR32_SYNTAX_PUNPCKUB_H],
 4.23471 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23472 ++      {
 4.23473 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23474 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23475 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.23476 ++      },
 4.23477 ++    },
 4.23478 ++    {
 4.23479 ++      AVR32_OPC_PUSHJC, 2, 0xd7230000, 0xffff0000,
 4.23480 ++      &avr32_syntax_table[AVR32_SYNTAX_PUSHJC],
 4.23481 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 4.23482 ++    },
 4.23483 ++    {
 4.23484 ++      AVR32_OPC_PUSHM, 2, 0xd0010000, 0xf00f0000,
 4.23485 ++      &avr32_syntax_table[AVR32_SYNTAX_PUSHM],
 4.23486 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23487 ++      {
 4.23488 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 4.23489 ++      },
 4.23490 ++    },
 4.23491 ++    {
 4.23492 ++      AVR32_OPC_PUSHM_E, 4, 0xebcd0000, 0xffff0000,
 4.23493 ++      &avr32_syntax_table[AVR32_SYNTAX_PUSHM_E],
 4.23494 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23495 ++      {
 4.23496 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.23497 ++      },
 4.23498 ++    },
 4.23499 ++    {
 4.23500 ++      AVR32_OPC_RCALL1, 2, 0xc00c0000, 0xf00c0000,
 4.23501 ++      &avr32_syntax_table[AVR32_SYNTAX_RCALL1],
 4.23502 ++      BFD_RELOC_AVR32_11H_PCREL, 1, 0,
 4.23503 ++      {
 4.23504 ++	&avr32_ifield_table[AVR32_IFIELD_K10],
 4.23505 ++      },
 4.23506 ++    },
 4.23507 ++    {
 4.23508 ++      AVR32_OPC_RCALL2, 4, 0xe0a00000, 0xe1ef0000,
 4.23509 ++      &avr32_syntax_table[AVR32_SYNTAX_RCALL2],
 4.23510 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 4.23511 ++      {
 4.23512 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.23513 ++      },
 4.23514 ++    },
 4.23515 ++    {
 4.23516 ++      AVR32_OPC_RETEQ, 2, 0x5e000000, 0xfff00000,
 4.23517 ++      &avr32_syntax_table[AVR32_SYNTAX_RETEQ],
 4.23518 ++      BFD_RELOC_NONE, 1, -1,
 4.23519 ++      {
 4.23520 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23521 ++      },
 4.23522 ++    },
 4.23523 ++    {
 4.23524 ++      AVR32_OPC_RETNE, 2, 0x5e100000, 0xfff00000,
 4.23525 ++      &avr32_syntax_table[AVR32_SYNTAX_RETNE],
 4.23526 ++      BFD_RELOC_NONE, 1, -1,
 4.23527 ++      {
 4.23528 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23529 ++      },
 4.23530 ++    },
 4.23531 ++    {
 4.23532 ++      AVR32_OPC_RETCC, 2, 0x5e200000, 0xfff00000,
 4.23533 ++      &avr32_syntax_table[AVR32_SYNTAX_RETHS],
 4.23534 ++      BFD_RELOC_NONE, 1, -1,
 4.23535 ++      {
 4.23536 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23537 ++      },
 4.23538 ++    },
 4.23539 ++    {
 4.23540 ++      AVR32_OPC_RETCS, 2, 0x5e300000, 0xfff00000,
 4.23541 ++      &avr32_syntax_table[AVR32_SYNTAX_RETLO],
 4.23542 ++      BFD_RELOC_NONE, 1, -1,
 4.23543 ++      {
 4.23544 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23545 ++      },
 4.23546 ++    },
 4.23547 ++    {
 4.23548 ++      AVR32_OPC_RETGE, 2, 0x5e400000, 0xfff00000,
 4.23549 ++      &avr32_syntax_table[AVR32_SYNTAX_RETGE],
 4.23550 ++      BFD_RELOC_NONE, 1, -1,
 4.23551 ++      {
 4.23552 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23553 ++      },
 4.23554 ++    },
 4.23555 ++    {
 4.23556 ++      AVR32_OPC_RETLT, 2, 0x5e500000, 0xfff00000,
 4.23557 ++      &avr32_syntax_table[AVR32_SYNTAX_RETLT],
 4.23558 ++      BFD_RELOC_NONE, 1, -1,
 4.23559 ++      {
 4.23560 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23561 ++      },
 4.23562 ++    },
 4.23563 ++    {
 4.23564 ++      AVR32_OPC_RETMI, 2, 0x5e600000, 0xfff00000,
 4.23565 ++      &avr32_syntax_table[AVR32_SYNTAX_RETMI],
 4.23566 ++      BFD_RELOC_NONE, 1, -1,
 4.23567 ++      {
 4.23568 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23569 ++      },
 4.23570 ++    },
 4.23571 ++    {
 4.23572 ++      AVR32_OPC_RETPL, 2, 0x5e700000, 0xfff00000,
 4.23573 ++      &avr32_syntax_table[AVR32_SYNTAX_RETPL],
 4.23574 ++      BFD_RELOC_NONE, 1, -1,
 4.23575 ++      {
 4.23576 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23577 ++      },
 4.23578 ++    },
 4.23579 ++    {
 4.23580 ++      AVR32_OPC_RETLS, 2, 0x5e800000, 0xfff00000,
 4.23581 ++      &avr32_syntax_table[AVR32_SYNTAX_RETLS],
 4.23582 ++      BFD_RELOC_NONE, 1, -1,
 4.23583 ++      {
 4.23584 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23585 ++      },
 4.23586 ++    },
 4.23587 ++    {
 4.23588 ++      AVR32_OPC_RETGT, 2, 0x5e900000, 0xfff00000,
 4.23589 ++      &avr32_syntax_table[AVR32_SYNTAX_RETGT],
 4.23590 ++      BFD_RELOC_NONE, 1, -1,
 4.23591 ++      {
 4.23592 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23593 ++      },
 4.23594 ++    },
 4.23595 ++    {
 4.23596 ++      AVR32_OPC_RETLE, 2, 0x5ea00000, 0xfff00000,
 4.23597 ++      &avr32_syntax_table[AVR32_SYNTAX_RETLE],
 4.23598 ++      BFD_RELOC_NONE, 1, -1,
 4.23599 ++      {
 4.23600 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23601 ++      },
 4.23602 ++    },
 4.23603 ++    {
 4.23604 ++      AVR32_OPC_RETHI, 2, 0x5eb00000, 0xfff00000,
 4.23605 ++      &avr32_syntax_table[AVR32_SYNTAX_RETHI],
 4.23606 ++      BFD_RELOC_NONE, 1, -1,
 4.23607 ++      {
 4.23608 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23609 ++      },
 4.23610 ++    },
 4.23611 ++    {
 4.23612 ++      AVR32_OPC_RETVS, 2, 0x5ec00000, 0xfff00000,
 4.23613 ++      &avr32_syntax_table[AVR32_SYNTAX_RETVS],
 4.23614 ++      BFD_RELOC_NONE, 1, -1,
 4.23615 ++      {
 4.23616 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23617 ++      },
 4.23618 ++    },
 4.23619 ++    {
 4.23620 ++      AVR32_OPC_RETVC, 2, 0x5ed00000, 0xfff00000,
 4.23621 ++      &avr32_syntax_table[AVR32_SYNTAX_RETVC],
 4.23622 ++      BFD_RELOC_NONE, 1, -1,
 4.23623 ++      {
 4.23624 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23625 ++      },
 4.23626 ++    },
 4.23627 ++    {
 4.23628 ++      AVR32_OPC_RETQS, 2, 0x5ee00000, 0xfff00000,
 4.23629 ++      &avr32_syntax_table[AVR32_SYNTAX_RETQS],
 4.23630 ++      BFD_RELOC_NONE, 1, -1,
 4.23631 ++      {
 4.23632 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23633 ++      },
 4.23634 ++    },
 4.23635 ++    {
 4.23636 ++      AVR32_OPC_RETAL, 2, 0x5ef00000, 0xfff00000,
 4.23637 ++      &avr32_syntax_table[AVR32_SYNTAX_RETAL],
 4.23638 ++      BFD_RELOC_NONE, 1, -1,
 4.23639 ++      {
 4.23640 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23641 ++      },
 4.23642 ++    },
 4.23643 ++    {
 4.23644 ++      AVR32_OPC_RETD, 2, 0xd6230000, 0xffff0000,
 4.23645 ++      &avr32_syntax_table[AVR32_SYNTAX_RETD],
 4.23646 ++      BFD_RELOC_NONE, 0, -1, { NULL },
 4.23647 ++    },
 4.23648 ++    {
 4.23649 ++      AVR32_OPC_RETE, 2, 0xd6030000, 0xffff0000,
 4.23650 ++      &avr32_syntax_table[AVR32_SYNTAX_RETE],
 4.23651 ++      BFD_RELOC_NONE, 0, -1, { NULL },
 4.23652 ++    },
 4.23653 ++    {
 4.23654 ++      AVR32_OPC_RETJ, 2, 0xd6330000, 0xffff0000,
 4.23655 ++      &avr32_syntax_table[AVR32_SYNTAX_RETJ],
 4.23656 ++      BFD_RELOC_NONE, 0, -1, { NULL },
 4.23657 ++    },
 4.23658 ++    {
 4.23659 ++      AVR32_OPC_RETS, 2, 0xd6130000, 0xffff0000,
 4.23660 ++      &avr32_syntax_table[AVR32_SYNTAX_RETS],
 4.23661 ++      BFD_RELOC_NONE, 0, -1, { NULL },
 4.23662 ++    },
 4.23663 ++    {
 4.23664 ++      AVR32_OPC_RJMP, 2, 0xc0080000, 0xf00c0000,
 4.23665 ++      &avr32_syntax_table[AVR32_SYNTAX_RJMP],
 4.23666 ++      BFD_RELOC_AVR32_11H_PCREL, 1, 0,
 4.23667 ++      {
 4.23668 ++	&avr32_ifield_table[AVR32_IFIELD_K10],
 4.23669 ++      },
 4.23670 ++    },
 4.23671 ++    {
 4.23672 ++      AVR32_OPC_ROL, 2, 0x5cf00000, 0xfff00000,
 4.23673 ++      &avr32_syntax_table[AVR32_SYNTAX_ROL],
 4.23674 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23675 ++      {
 4.23676 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23677 ++      }
 4.23678 ++    },
 4.23679 ++    {
 4.23680 ++      AVR32_OPC_ROR, 2, 0x5d000000, 0xfff00000,
 4.23681 ++      &avr32_syntax_table[AVR32_SYNTAX_ROR],
 4.23682 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23683 ++      {
 4.23684 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23685 ++      }
 4.23686 ++    },
 4.23687 ++    {
 4.23688 ++      AVR32_OPC_RSUB1, 2, 0x00200000, 0xe1f00000,
 4.23689 ++      &avr32_syntax_table[AVR32_SYNTAX_RSUB1],
 4.23690 ++      BFD_RELOC_UNUSED, 2, -1,
 4.23691 ++      {
 4.23692 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23693 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23694 ++      },
 4.23695 ++    },
 4.23696 ++    {
 4.23697 ++      AVR32_OPC_RSUB2, 4, 0xe0001100, 0xe1f0ff00,
 4.23698 ++      &avr32_syntax_table[AVR32_SYNTAX_RSUB2],
 4.23699 ++      BFD_RELOC_AVR32_8S_EXT, 3, 2,
 4.23700 ++      {
 4.23701 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23702 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23703 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.23704 ++      },
 4.23705 ++    },
 4.23706 ++    {
 4.23707 ++      AVR32_OPC_SATADD_H, 4, 0xe00002c0, 0xe1f0fff0,
 4.23708 ++      &avr32_syntax_table[AVR32_SYNTAX_SATADD_H],
 4.23709 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23710 ++      {
 4.23711 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23712 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23713 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23714 ++      },
 4.23715 ++    },
 4.23716 ++    {
 4.23717 ++      AVR32_OPC_SATADD_W, 4, 0xe00000c0, 0xe1f0fff0,
 4.23718 ++      &avr32_syntax_table[AVR32_SYNTAX_SATADD_W],
 4.23719 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23720 ++      {
 4.23721 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23722 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23723 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23724 ++      },
 4.23725 ++    },
 4.23726 ++    {
 4.23727 ++      AVR32_OPC_SATRNDS, 4, 0xf3b00000, 0xfff0fc00,
 4.23728 ++      &avr32_syntax_table[AVR32_SYNTAX_SATRNDS],
 4.23729 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23730 ++      {
 4.23731 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23732 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 4.23733 ++	&avr32_ifield_table[AVR32_IFIELD_S5],
 4.23734 ++      },
 4.23735 ++    },
 4.23736 ++    {
 4.23737 ++      AVR32_OPC_SATRNDU, 4, 0xf3b00400, 0xfff0fc00,
 4.23738 ++      &avr32_syntax_table[AVR32_SYNTAX_SATRNDU],
 4.23739 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23740 ++      {
 4.23741 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23742 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 4.23743 ++	&avr32_ifield_table[AVR32_IFIELD_S5],
 4.23744 ++      },
 4.23745 ++    },
 4.23746 ++    {
 4.23747 ++      AVR32_OPC_SATS, 4, 0xf1b00000, 0xfff0fc00,
 4.23748 ++      &avr32_syntax_table[AVR32_SYNTAX_SATS],
 4.23749 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23750 ++      {
 4.23751 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23752 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 4.23753 ++	&avr32_ifield_table[AVR32_IFIELD_S5],
 4.23754 ++      },
 4.23755 ++    },
 4.23756 ++    {
 4.23757 ++      AVR32_OPC_SATSUB_H, 4, 0xe00003c0, 0xe1f0fff0,
 4.23758 ++      &avr32_syntax_table[AVR32_SYNTAX_SATSUB_H],
 4.23759 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23760 ++      {
 4.23761 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23762 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23763 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23764 ++      },
 4.23765 ++    },
 4.23766 ++    {
 4.23767 ++      AVR32_OPC_SATSUB_W1, 4, 0xe00001c0, 0xe1f0fff0,
 4.23768 ++      &avr32_syntax_table[AVR32_SYNTAX_SATSUB_W1],
 4.23769 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23770 ++      {
 4.23771 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23772 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23773 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23774 ++      },
 4.23775 ++    },
 4.23776 ++    {
 4.23777 ++      AVR32_OPC_SATSUB_W2, 4, 0xe0d00000, 0xe1f00000,
 4.23778 ++      &avr32_syntax_table[AVR32_SYNTAX_SATSUB_W2],
 4.23779 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23780 ++      {
 4.23781 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23782 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23783 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.23784 ++      },
 4.23785 ++    },
 4.23786 ++    {
 4.23787 ++      AVR32_OPC_SATU, 4, 0xf1b00400, 0xfff0fc00,
 4.23788 ++      &avr32_syntax_table[AVR32_SYNTAX_SATU],
 4.23789 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23790 ++      {
 4.23791 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23792 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 4.23793 ++	&avr32_ifield_table[AVR32_IFIELD_S5],
 4.23794 ++      },
 4.23795 ++    },
 4.23796 ++    {
 4.23797 ++      AVR32_OPC_SBC, 4, 0xe0000140, 0xe1f0fff0,
 4.23798 ++      &avr32_syntax_table[AVR32_SYNTAX_SBC],
 4.23799 ++      BFD_RELOC_UNUSED, 3, -1,
 4.23800 ++      {
 4.23801 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23802 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23803 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23804 ++      },
 4.23805 ++    },
 4.23806 ++    {
 4.23807 ++      AVR32_OPC_SBR, 2, 0xa1a00000, 0xe1e00000,
 4.23808 ++      &avr32_syntax_table[AVR32_SYNTAX_SBR],
 4.23809 ++      BFD_RELOC_UNUSED, 2, -1,
 4.23810 ++      {
 4.23811 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23812 ++	&avr32_ifield_table[AVR32_IFIELD_BIT5C],
 4.23813 ++      },
 4.23814 ++    },
 4.23815 ++    {
 4.23816 ++      AVR32_OPC_SCALL, 2, 0xd7330000, 0xffff0000,
 4.23817 ++      &avr32_syntax_table[AVR32_SYNTAX_SCALL],
 4.23818 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 4.23819 ++    },
 4.23820 ++    {
 4.23821 ++      AVR32_OPC_SCR, 2, 0x5c100000, 0xfff00000,
 4.23822 ++      &avr32_syntax_table[AVR32_SYNTAX_SCR],
 4.23823 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23824 ++      {
 4.23825 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23826 ++      },
 4.23827 ++    },
 4.23828 ++    {
 4.23829 ++      AVR32_OPC_SLEEP, 4, 0xe9b00000, 0xffffff00,
 4.23830 ++      &avr32_syntax_table[AVR32_SYNTAX_SLEEP],
 4.23831 ++      BFD_RELOC_AVR32_8S_EXT, 1, 0,
 4.23832 ++      {
 4.23833 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.23834 ++      },
 4.23835 ++    },
 4.23836 ++    {
 4.23837 ++      AVR32_OPC_SREQ, 2, 0x5f000000, 0xfff00000,
 4.23838 ++      &avr32_syntax_table[AVR32_SYNTAX_SREQ],
 4.23839 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23840 ++      {
 4.23841 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23842 ++      },
 4.23843 ++    },
 4.23844 ++    {
 4.23845 ++      AVR32_OPC_SRNE, 2, 0x5f100000, 0xfff00000,
 4.23846 ++      &avr32_syntax_table[AVR32_SYNTAX_SRNE],
 4.23847 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23848 ++      {
 4.23849 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23850 ++      },
 4.23851 ++    },
 4.23852 ++    {
 4.23853 ++      AVR32_OPC_SRCC, 2, 0x5f200000, 0xfff00000,
 4.23854 ++      &avr32_syntax_table[AVR32_SYNTAX_SRHS],
 4.23855 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23856 ++      {
 4.23857 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23858 ++      },
 4.23859 ++    },
 4.23860 ++    {
 4.23861 ++      AVR32_OPC_SRCS, 2, 0x5f300000, 0xfff00000,
 4.23862 ++      &avr32_syntax_table[AVR32_SYNTAX_SRLO],
 4.23863 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23864 ++      {
 4.23865 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23866 ++      },
 4.23867 ++    },
 4.23868 ++    {
 4.23869 ++      AVR32_OPC_SRGE, 2, 0x5f400000, 0xfff00000,
 4.23870 ++      &avr32_syntax_table[AVR32_SYNTAX_SRGE],
 4.23871 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23872 ++      {
 4.23873 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23874 ++      },
 4.23875 ++    },
 4.23876 ++    {
 4.23877 ++      AVR32_OPC_SRLT, 2, 0x5f500000, 0xfff00000,
 4.23878 ++      &avr32_syntax_table[AVR32_SYNTAX_SRLT],
 4.23879 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23880 ++      {
 4.23881 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23882 ++      },
 4.23883 ++    },
 4.23884 ++    {
 4.23885 ++      AVR32_OPC_SRMI, 2, 0x5f600000, 0xfff00000,
 4.23886 ++      &avr32_syntax_table[AVR32_SYNTAX_SRMI],
 4.23887 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23888 ++      {
 4.23889 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23890 ++      },
 4.23891 ++    },
 4.23892 ++    {
 4.23893 ++      AVR32_OPC_SRPL, 2, 0x5f700000, 0xfff00000,
 4.23894 ++      &avr32_syntax_table[AVR32_SYNTAX_SRPL],
 4.23895 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23896 ++      {
 4.23897 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23898 ++      },
 4.23899 ++    },
 4.23900 ++    {
 4.23901 ++      AVR32_OPC_SRLS, 2, 0x5f800000, 0xfff00000,
 4.23902 ++      &avr32_syntax_table[AVR32_SYNTAX_SRLS],
 4.23903 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23904 ++      {
 4.23905 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23906 ++      },
 4.23907 ++    },
 4.23908 ++    {
 4.23909 ++      AVR32_OPC_SRGT, 2, 0x5f900000, 0xfff00000,
 4.23910 ++      &avr32_syntax_table[AVR32_SYNTAX_SRGT],
 4.23911 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23912 ++      {
 4.23913 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23914 ++      },
 4.23915 ++    },
 4.23916 ++    {
 4.23917 ++      AVR32_OPC_SRLE, 2, 0x5fa00000, 0xfff00000,
 4.23918 ++      &avr32_syntax_table[AVR32_SYNTAX_SRLE],
 4.23919 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23920 ++      {
 4.23921 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23922 ++      },
 4.23923 ++    },
 4.23924 ++    {
 4.23925 ++      AVR32_OPC_SRHI, 2, 0x5fb00000, 0xfff00000,
 4.23926 ++      &avr32_syntax_table[AVR32_SYNTAX_SRHI],
 4.23927 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23928 ++      {
 4.23929 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23930 ++      },
 4.23931 ++    },
 4.23932 ++    {
 4.23933 ++      AVR32_OPC_SRVS, 2, 0x5fc00000, 0xfff00000,
 4.23934 ++      &avr32_syntax_table[AVR32_SYNTAX_SRVS],
 4.23935 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23936 ++      {
 4.23937 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23938 ++      },
 4.23939 ++    },
 4.23940 ++    {
 4.23941 ++      AVR32_OPC_SRVC, 2, 0x5fd00000, 0xfff00000,
 4.23942 ++      &avr32_syntax_table[AVR32_SYNTAX_SRVC],
 4.23943 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23944 ++      {
 4.23945 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23946 ++      },
 4.23947 ++    },
 4.23948 ++    {
 4.23949 ++      AVR32_OPC_SRQS, 2, 0x5fe00000, 0xfff00000,
 4.23950 ++      &avr32_syntax_table[AVR32_SYNTAX_SRQS],
 4.23951 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23952 ++      {
 4.23953 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23954 ++      },
 4.23955 ++    },
 4.23956 ++    {
 4.23957 ++      AVR32_OPC_SRAL, 2, 0x5ff00000, 0xfff00000,
 4.23958 ++      &avr32_syntax_table[AVR32_SYNTAX_SRAL],
 4.23959 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23960 ++      {
 4.23961 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23962 ++      },
 4.23963 ++    },
 4.23964 ++    {
 4.23965 ++      AVR32_OPC_SSRF, 2, 0xd2030000, 0xfe0f0000,
 4.23966 ++      &avr32_syntax_table[AVR32_SYNTAX_SSRF],
 4.23967 ++      BFD_RELOC_UNUSED, 1, -1,
 4.23968 ++      {
 4.23969 ++	&avr32_ifield_table[AVR32_IFIELD_K5C],
 4.23970 ++      },
 4.23971 ++    },
 4.23972 ++    {
 4.23973 ++      AVR32_OPC_ST_B1, 2, 0x00c00000, 0xe1f00000,
 4.23974 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_B1],
 4.23975 ++      BFD_RELOC_UNUSED, 2, -1,
 4.23976 ++      {
 4.23977 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23978 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23979 ++      },
 4.23980 ++    },
 4.23981 ++    {
 4.23982 ++      AVR32_OPC_ST_B2, 2, 0x00f00000, 0xe1f00000,
 4.23983 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_B2],
 4.23984 ++      BFD_RELOC_UNUSED, 2, -1,
 4.23985 ++      {
 4.23986 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23987 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23988 ++      },
 4.23989 ++    },
 4.23990 ++    {
 4.23991 ++      AVR32_OPC_ST_B5, 4, 0xe0000b00, 0xe1f0ffc0,
 4.23992 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_B5],
 4.23993 ++      BFD_RELOC_UNUSED, 4, -1,
 4.23994 ++      {
 4.23995 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.23996 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.23997 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.23998 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.23999 ++      },
 4.24000 ++    },
 4.24001 ++    {
 4.24002 ++      AVR32_OPC_ST_B3, 2, 0xa0800000, 0xe1800000,
 4.24003 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_B3],
 4.24004 ++      BFD_RELOC_AVR32_3U, 3, 1,
 4.24005 ++      {
 4.24006 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24007 ++	&avr32_ifield_table[AVR32_IFIELD_K3],
 4.24008 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24009 ++      },
 4.24010 ++    },
 4.24011 ++    {
 4.24012 ++      AVR32_OPC_ST_B4, 4, 0xe1600000, 0xe1f00000,
 4.24013 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_B4],
 4.24014 ++      BFD_RELOC_AVR32_16S, 3, 1,
 4.24015 ++      {
 4.24016 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24017 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.24018 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24019 ++      },
 4.24020 ++    },
 4.24021 ++    {
 4.24022 ++      AVR32_OPC_ST_D1, 2, 0xa1200000, 0xe1f10000,
 4.24023 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_D1],
 4.24024 ++      BFD_RELOC_UNUSED, 2, -1,
 4.24025 ++      {
 4.24026 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24027 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 4.24028 ++      },
 4.24029 ++    },
 4.24030 ++    {
 4.24031 ++      AVR32_OPC_ST_D2, 2, 0xa1210000, 0xe1f10000,
 4.24032 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_D2],
 4.24033 ++      BFD_RELOC_UNUSED, 2, -1,
 4.24034 ++      {
 4.24035 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24036 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 4.24037 ++      },
 4.24038 ++    },
 4.24039 ++    {
 4.24040 ++      AVR32_OPC_ST_D3, 2, 0xa1110000, 0xe1f10000,
 4.24041 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_D3],
 4.24042 ++      BFD_RELOC_UNUSED, 2, -1,
 4.24043 ++      {
 4.24044 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24045 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 4.24046 ++      },
 4.24047 ++    },
 4.24048 ++    {
 4.24049 ++      AVR32_OPC_ST_D5, 4, 0xe0000800, 0xe1f0ffc1,
 4.24050 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_D5],
 4.24051 ++      BFD_RELOC_UNUSED, 4, -1,
 4.24052 ++      {
 4.24053 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24054 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24055 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.24056 ++	&avr32_ifield_table[AVR32_IFIELD_RD_DW],
 4.24057 ++      },
 4.24058 ++    },
 4.24059 ++    {
 4.24060 ++      AVR32_OPC_ST_D4, 4, 0xe0e10000, 0xe1f10000,
 4.24061 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_D4],
 4.24062 ++      BFD_RELOC_AVR32_16S, 3, 1,
 4.24063 ++      {
 4.24064 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24065 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.24066 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 4.24067 ++      },
 4.24068 ++    },
 4.24069 ++    {
 4.24070 ++      AVR32_OPC_ST_H1, 2, 0x00b00000, 0xe1f00000,
 4.24071 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_H1],
 4.24072 ++      BFD_RELOC_UNUSED, 2, -1,
 4.24073 ++      {
 4.24074 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24075 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24076 ++      },
 4.24077 ++    },
 4.24078 ++    {
 4.24079 ++      AVR32_OPC_ST_H2, 2, 0x00e00000, 0xe1f00000,
 4.24080 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_H2],
 4.24081 ++      BFD_RELOC_UNUSED, 2, -1,
 4.24082 ++      {
 4.24083 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24084 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24085 ++      },
 4.24086 ++    },
 4.24087 ++    {
 4.24088 ++      AVR32_OPC_ST_H5, 4, 0xe0000a00, 0xe1f0ffc0,
 4.24089 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_H5],
 4.24090 ++      BFD_RELOC_UNUSED, 4, -1,
 4.24091 ++      {
 4.24092 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24093 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24094 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.24095 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.24096 ++      },
 4.24097 ++    },
 4.24098 ++    {
 4.24099 ++      AVR32_OPC_ST_H3, 2, 0xa0000000, 0xe1800000,
 4.24100 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_H3],
 4.24101 ++      BFD_RELOC_AVR32_4UH, 3, 1,
 4.24102 ++      {
 4.24103 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24104 ++	&avr32_ifield_table[AVR32_IFIELD_K3],
 4.24105 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24106 ++      },
 4.24107 ++    },
 4.24108 ++    {
 4.24109 ++      AVR32_OPC_ST_H4, 4, 0xe1500000, 0xe1f00000,
 4.24110 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_H4],
 4.24111 ++      BFD_RELOC_AVR32_16S, 3, 1,
 4.24112 ++      {
 4.24113 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24114 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.24115 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24116 ++      },
 4.24117 ++    },
 4.24118 ++    {
 4.24119 ++      AVR32_OPC_ST_W1, 2, 0x00a00000, 0xe1f00000,
 4.24120 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_W1],
 4.24121 ++      BFD_RELOC_UNUSED, 2, -1,
 4.24122 ++      {
 4.24123 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24124 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24125 ++      },
 4.24126 ++    },
 4.24127 ++    {
 4.24128 ++      AVR32_OPC_ST_W2, 2, 0x00d00000, 0xe1f00000,
 4.24129 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_W2],
 4.24130 ++      BFD_RELOC_UNUSED, 2, -1,
 4.24131 ++      {
 4.24132 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24133 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24134 ++      },
 4.24135 ++    },
 4.24136 ++    {
 4.24137 ++      AVR32_OPC_ST_W5, 4, 0xe0000900, 0xe1f0ffc0,
 4.24138 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_W5],
 4.24139 ++      BFD_RELOC_UNUSED, 4, -1,
 4.24140 ++      {
 4.24141 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24142 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24143 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.24144 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.24145 ++      },
 4.24146 ++    },
 4.24147 ++    {
 4.24148 ++      AVR32_OPC_ST_W3, 2, 0x81000000, 0xe1000000,
 4.24149 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_W3],
 4.24150 ++      BFD_RELOC_AVR32_6UW, 3, 1,
 4.24151 ++      {
 4.24152 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24153 ++	&avr32_ifield_table[AVR32_IFIELD_K4],
 4.24154 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24155 ++      },
 4.24156 ++    },
 4.24157 ++    {
 4.24158 ++      AVR32_OPC_ST_W4, 4, 0xe1400000, 0xe1f00000,
 4.24159 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_W4],
 4.24160 ++      BFD_RELOC_AVR32_16S, 3, 1,
 4.24161 ++      {
 4.24162 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24163 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.24164 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24165 ++      },
 4.24166 ++    },
 4.24167 ++    {
 4.24168 ++      AVR32_OPC_STC_D1, 4, 0xeba01000, 0xfff01100,
 4.24169 ++      &avr32_syntax_table[AVR32_SYNTAX_STC_D1],
 4.24170 ++      BFD_RELOC_AVR32_10UW, 4, 2,
 4.24171 ++      {
 4.24172 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.24173 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24174 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24175 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 4.24176 ++      },
 4.24177 ++    },
 4.24178 ++    {
 4.24179 ++      AVR32_OPC_STC_D2, 4, 0xefa00070, 0xfff011f0,
 4.24180 ++      &avr32_syntax_table[AVR32_SYNTAX_STC_D2],
 4.24181 ++      BFD_RELOC_UNUSED, 3, -1,
 4.24182 ++      {
 4.24183 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.24184 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24185 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 4.24186 ++      },
 4.24187 ++    },
 4.24188 ++    {
 4.24189 ++      AVR32_OPC_STC_D3, 4, 0xefa010c0, 0xfff011c0,
 4.24190 ++      &avr32_syntax_table[AVR32_SYNTAX_STC_D3],
 4.24191 ++      BFD_RELOC_UNUSED, 5, -1,
 4.24192 ++      {
 4.24193 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.24194 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24195 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.24196 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.24197 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 4.24198 ++      },
 4.24199 ++    },
 4.24200 ++    {
 4.24201 ++      AVR32_OPC_STC_W1, 4, 0xeba00000, 0xfff01000,
 4.24202 ++      &avr32_syntax_table[AVR32_SYNTAX_STC_W1],
 4.24203 ++      BFD_RELOC_AVR32_10UW, 4, 2,
 4.24204 ++      {
 4.24205 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.24206 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24207 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24208 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 4.24209 ++      },
 4.24210 ++    },
 4.24211 ++    {
 4.24212 ++      AVR32_OPC_STC_W2, 4, 0xefa00060, 0xfff010ff,
 4.24213 ++      &avr32_syntax_table[AVR32_SYNTAX_STC_W2],
 4.24214 ++      BFD_RELOC_UNUSED, 3, -1,
 4.24215 ++      {
 4.24216 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.24217 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24218 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 4.24219 ++      },
 4.24220 ++    },
 4.24221 ++    {
 4.24222 ++      AVR32_OPC_STC_W3, 4, 0xefa01080, 0xfff010c0,
 4.24223 ++      &avr32_syntax_table[AVR32_SYNTAX_STC_W3],
 4.24224 ++      BFD_RELOC_UNUSED, 5, -1,
 4.24225 ++      {
 4.24226 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.24227 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24228 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.24229 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.24230 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 4.24231 ++      },
 4.24232 ++    },
 4.24233 ++    {
 4.24234 ++      AVR32_OPC_STC0_D, 4, 0xf7a00000, 0xfff00100,
 4.24235 ++      &avr32_syntax_table[AVR32_SYNTAX_STC0_D],
 4.24236 ++      BFD_RELOC_AVR32_14UW, 3, 1,
 4.24237 ++      {
 4.24238 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24239 ++	&avr32_ifield_table[AVR32_IFIELD_K12CP],
 4.24240 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 4.24241 ++      },
 4.24242 ++    },
 4.24243 ++    {
 4.24244 ++      AVR32_OPC_STC0_W, 4, 0xf5a00000, 0xfff00000,
 4.24245 ++      &avr32_syntax_table[AVR32_SYNTAX_STC0_W],
 4.24246 ++      BFD_RELOC_AVR32_14UW, 3, 1,
 4.24247 ++      {
 4.24248 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24249 ++	&avr32_ifield_table[AVR32_IFIELD_K12CP],
 4.24250 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 4.24251 ++      },
 4.24252 ++    },
 4.24253 ++    {
 4.24254 ++      AVR32_OPC_STCM_D, 4, 0xeda00500, 0xfff01f00,
 4.24255 ++      &avr32_syntax_table[AVR32_SYNTAX_STCM_D],
 4.24256 ++      BFD_RELOC_UNUSED, 3, -1,
 4.24257 ++      {
 4.24258 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.24259 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24260 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24261 ++      },
 4.24262 ++    },
 4.24263 ++    {
 4.24264 ++      AVR32_OPC_STCM_D_PU, 4, 0xeda01500, 0xfff01f00,
 4.24265 ++      &avr32_syntax_table[AVR32_SYNTAX_STCM_D_PU],
 4.24266 ++      BFD_RELOC_UNUSED, 3, -1,
 4.24267 ++      {
 4.24268 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.24269 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24270 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24271 ++      },
 4.24272 ++    },
 4.24273 ++    {
 4.24274 ++      AVR32_OPC_STCM_W, 4, 0xeda00200, 0xfff01e00,
 4.24275 ++      &avr32_syntax_table[AVR32_SYNTAX_STCM_W],
 4.24276 ++      BFD_RELOC_UNUSED, 4, -1,
 4.24277 ++      {
 4.24278 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.24279 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24280 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24281 ++	&avr32_ifield_table[AVR32_IFIELD_CM_HL],
 4.24282 ++      },
 4.24283 ++    },
 4.24284 ++    {
 4.24285 ++      AVR32_OPC_STCM_W_PU, 4, 0xeda01200, 0xfff01e00,
 4.24286 ++      &avr32_syntax_table[AVR32_SYNTAX_STCM_W_PU],
 4.24287 ++      BFD_RELOC_UNUSED, 4, -1,
 4.24288 ++      {
 4.24289 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 4.24290 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24291 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24292 ++	&avr32_ifield_table[AVR32_IFIELD_CM_HL],
 4.24293 ++      },
 4.24294 ++    },
 4.24295 ++    {
 4.24296 ++      AVR32_OPC_STCOND, 4, 0xe1700000, 0xe1f00000,
 4.24297 ++      &avr32_syntax_table[AVR32_SYNTAX_STCOND],
 4.24298 ++      BFD_RELOC_UNUSED, 3, -1,
 4.24299 ++      {
 4.24300 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24301 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.24302 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24303 ++      },
 4.24304 ++    },
 4.24305 ++    {
 4.24306 ++      AVR32_OPC_STDSP, 2, 0x50000000, 0xf8000000,
 4.24307 ++      &avr32_syntax_table[AVR32_SYNTAX_STDSP],
 4.24308 ++      BFD_RELOC_UNUSED, 2, -1,
 4.24309 ++      {
 4.24310 ++	&avr32_ifield_table[AVR32_IFIELD_K7C],
 4.24311 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24312 ++      },
 4.24313 ++    },
 4.24314 ++    {
 4.24315 ++      AVR32_OPC_STHH_W2, 4, 0xe1e08000, 0xe1f0c0c0,
 4.24316 ++      &avr32_syntax_table[AVR32_SYNTAX_STHH_W2],
 4.24317 ++      BFD_RELOC_UNUSED, 7, -1,
 4.24318 ++      {
 4.24319 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.24320 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 4.24321 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.24322 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24323 ++	&avr32_ifield_table[AVR32_IFIELD_X2],
 4.24324 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24325 ++	&avr32_ifield_table[AVR32_IFIELD_Y2],
 4.24326 ++      },
 4.24327 ++    },
 4.24328 ++    {
 4.24329 ++      AVR32_OPC_STHH_W1, 4, 0xe1e0c000, 0xe1f0c000,
 4.24330 ++      &avr32_syntax_table[AVR32_SYNTAX_STHH_W1],
 4.24331 ++      BFD_RELOC_AVR32_STHH_W, 6, 1,
 4.24332 ++      {
 4.24333 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.24334 ++	&avr32_ifield_table[AVR32_IFIELD_K8E2],
 4.24335 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24336 ++	&avr32_ifield_table[AVR32_IFIELD_X2],
 4.24337 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24338 ++	&avr32_ifield_table[AVR32_IFIELD_Y2],
 4.24339 ++      },
 4.24340 ++    },
 4.24341 ++    {
 4.24342 ++      AVR32_OPC_STM, 4, 0xe9c00000, 0xfff00000,
 4.24343 ++      &avr32_syntax_table[AVR32_SYNTAX_STM],
 4.24344 ++      BFD_RELOC_UNUSED, 2, -1,
 4.24345 ++      {
 4.24346 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24347 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.24348 ++      },
 4.24349 ++    },
 4.24350 ++    {
 4.24351 ++      AVR32_OPC_STM_PU, 4, 0xebc00000, 0xfff00000,
 4.24352 ++      &avr32_syntax_table[AVR32_SYNTAX_STM_PU],
 4.24353 ++      BFD_RELOC_UNUSED, 2, -1,
 4.24354 ++      {
 4.24355 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24356 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.24357 ++      },
 4.24358 ++    },
 4.24359 ++    {
 4.24360 ++      AVR32_OPC_STMTS, 4, 0xedc00000, 0xfff00000,
 4.24361 ++      &avr32_syntax_table[AVR32_SYNTAX_STMTS],
 4.24362 ++      BFD_RELOC_UNUSED, 2, -1,
 4.24363 ++      {
 4.24364 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24365 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.24366 ++      },
 4.24367 ++    },
 4.24368 ++    {
 4.24369 ++      AVR32_OPC_STMTS_PU, 4, 0xefc00000, 0xfff00000,
 4.24370 ++      &avr32_syntax_table[AVR32_SYNTAX_STMTS_PU],
 4.24371 ++      BFD_RELOC_UNUSED, 2, -1,
 4.24372 ++      {
 4.24373 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24374 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.24375 ++      },
 4.24376 ++    },
 4.24377 ++    {
 4.24378 ++      AVR32_OPC_STSWP_H, 4, 0xe1d09000, 0xe1f0f000,
 4.24379 ++      &avr32_syntax_table[AVR32_SYNTAX_STSWP_H],
 4.24380 ++      BFD_RELOC_UNUSED, 3, -1,
 4.24381 ++      {
 4.24382 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24383 ++	&avr32_ifield_table[AVR32_IFIELD_K12],
 4.24384 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24385 ++      },
 4.24386 ++    },
 4.24387 ++    {
 4.24388 ++      AVR32_OPC_STSWP_W, 4, 0xe1d0a000, 0xe1f0f000,
 4.24389 ++      &avr32_syntax_table[AVR32_SYNTAX_STSWP_W],
 4.24390 ++      BFD_RELOC_UNUSED, 3, -1,
 4.24391 ++      {
 4.24392 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24393 ++	&avr32_ifield_table[AVR32_IFIELD_K12],
 4.24394 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24395 ++      },
 4.24396 ++    },
 4.24397 ++    {
 4.24398 ++      AVR32_OPC_SUB1, 2, 0x00100000, 0xe1f00000,
 4.24399 ++      &avr32_syntax_table[AVR32_SYNTAX_SUB1],
 4.24400 ++      BFD_RELOC_UNUSED, 2, -1,
 4.24401 ++      {
 4.24402 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24403 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24404 ++      },
 4.24405 ++    },
 4.24406 ++    {
 4.24407 ++      AVR32_OPC_SUB2, 4, 0xe0000100, 0xe1f0ffc0,
 4.24408 ++      &avr32_syntax_table[AVR32_SYNTAX_SUB2],
 4.24409 ++      BFD_RELOC_UNUSED, 4, -1,
 4.24410 ++      {
 4.24411 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.24412 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24413 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24414 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 4.24415 ++      },
 4.24416 ++    },
 4.24417 ++    {
 4.24418 ++      AVR32_OPC_SUB5, 4, 0xe0c00000, 0xe1f00000,
 4.24419 ++      &avr32_syntax_table[AVR32_SYNTAX_SUB5],
 4.24420 ++      BFD_RELOC_AVR32_SUB5, 3, 2,
 4.24421 ++      {
 4.24422 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24423 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24424 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.24425 ++      },
 4.24426 ++    },
 4.24427 ++    {
 4.24428 ++      AVR32_OPC_SUB3_SP, 2, 0x200d0000, 0xf00f0000,
 4.24429 ++      &avr32_syntax_table[AVR32_SYNTAX_SUB3_SP],
 4.24430 ++      BFD_RELOC_AVR32_10SW, 2, 1,
 4.24431 ++      {
 4.24432 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24433 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 4.24434 ++      },
 4.24435 ++    },
 4.24436 ++    {
 4.24437 ++      AVR32_OPC_SUB3, 2, 0x20000000, 0xf0000000,
 4.24438 ++      &avr32_syntax_table[AVR32_SYNTAX_SUB3],
 4.24439 ++      BFD_RELOC_AVR32_8S, 2, 1,
 4.24440 ++      {
 4.24441 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24442 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 4.24443 ++      },
 4.24444 ++    },
 4.24445 ++    {
 4.24446 ++      AVR32_OPC_SUB4, 4, 0xe0200000, 0xe1e00000,
 4.24447 ++      &avr32_syntax_table[AVR32_SYNTAX_SUB4],
 4.24448 ++      BFD_RELOC_AVR32_21S, 2, 1,
 4.24449 ++      {
 4.24450 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24451 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 4.24452 ++      },
 4.24453 ++    },
 4.24454 ++    {
 4.24455 ++      AVR32_OPC_SUBEQ, 4, 0xf7b00000, 0xfff0ff00,
 4.24456 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBEQ],
 4.24457 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24458 ++      {
 4.24459 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24460 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24461 ++      },
 4.24462 ++    },
 4.24463 ++    {
 4.24464 ++      AVR32_OPC_SUBNE, 4, 0xf7b00100, 0xfff0ff00,
 4.24465 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBNE],
 4.24466 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24467 ++      {
 4.24468 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24469 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24470 ++      },
 4.24471 ++    },
 4.24472 ++    {
 4.24473 ++      AVR32_OPC_SUBCC, 4, 0xf7b00200, 0xfff0ff00,
 4.24474 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBHS],
 4.24475 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24476 ++      {
 4.24477 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24478 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24479 ++      },
 4.24480 ++    },
 4.24481 ++    {
 4.24482 ++      AVR32_OPC_SUBCS, 4, 0xf7b00300, 0xfff0ff00,
 4.24483 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBLO],
 4.24484 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24485 ++      {
 4.24486 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24487 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24488 ++      },
 4.24489 ++    },
 4.24490 ++    {
 4.24491 ++      AVR32_OPC_SUBGE, 4, 0xf7b00400, 0xfff0ff00,
 4.24492 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBGE],
 4.24493 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24494 ++      {
 4.24495 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24496 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24497 ++      },
 4.24498 ++    },
 4.24499 ++    {
 4.24500 ++      AVR32_OPC_SUBLT, 4, 0xf7b00500, 0xfff0ff00,
 4.24501 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBLT],
 4.24502 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24503 ++      {
 4.24504 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24505 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24506 ++      },
 4.24507 ++    },
 4.24508 ++    {
 4.24509 ++      AVR32_OPC_SUBMI, 4, 0xf7b00600, 0xfff0ff00,
 4.24510 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBMI],
 4.24511 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24512 ++      {
 4.24513 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24514 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24515 ++      },
 4.24516 ++    },
 4.24517 ++    {
 4.24518 ++      AVR32_OPC_SUBPL, 4, 0xf7b00700, 0xfff0ff00,
 4.24519 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBPL],
 4.24520 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24521 ++      {
 4.24522 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24523 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24524 ++      },
 4.24525 ++    },
 4.24526 ++    {
 4.24527 ++      AVR32_OPC_SUBLS, 4, 0xf7b00800, 0xfff0ff00,
 4.24528 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBLS],
 4.24529 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24530 ++      {
 4.24531 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24532 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24533 ++      },
 4.24534 ++    },
 4.24535 ++    {
 4.24536 ++      AVR32_OPC_SUBGT, 4, 0xf7b00900, 0xfff0ff00,
 4.24537 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBGT],
 4.24538 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24539 ++      {
 4.24540 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24541 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24542 ++      },
 4.24543 ++    },
 4.24544 ++    {
 4.24545 ++      AVR32_OPC_SUBLE, 4, 0xf7b00a00, 0xfff0ff00,
 4.24546 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBLE],
 4.24547 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24548 ++      {
 4.24549 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24550 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24551 ++      },
 4.24552 ++    },
 4.24553 ++    {
 4.24554 ++      AVR32_OPC_SUBHI, 4, 0xf7b00b00, 0xfff0ff00,
 4.24555 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBHI],
 4.24556 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24557 ++      {
 4.24558 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24559 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24560 ++      },
 4.24561 ++    },
 4.24562 ++    {
 4.24563 ++      AVR32_OPC_SUBVS, 4, 0xf7b00c00, 0xfff0ff00,
 4.24564 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBVS],
 4.24565 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24566 ++      {
 4.24567 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24568 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24569 ++      },
 4.24570 ++    },
 4.24571 ++    {
 4.24572 ++      AVR32_OPC_SUBVC, 4, 0xf7b00d00, 0xfff0ff00,
 4.24573 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBVC],
 4.24574 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24575 ++      {
 4.24576 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24577 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24578 ++      },
 4.24579 ++    },
 4.24580 ++    {
 4.24581 ++      AVR32_OPC_SUBQS, 4, 0xf7b00e00, 0xfff0ff00,
 4.24582 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBQS],
 4.24583 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24584 ++      {
 4.24585 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24586 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24587 ++      },
 4.24588 ++    },
 4.24589 ++    {
 4.24590 ++      AVR32_OPC_SUBAL, 4, 0xf7b00f00, 0xfff0ff00,
 4.24591 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBAL],
 4.24592 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24593 ++      {
 4.24594 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24595 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24596 ++      },
 4.24597 ++    },
 4.24598 ++    {
 4.24599 ++      AVR32_OPC_SUBFEQ, 4, 0xf5b00000, 0xfff0ff00,
 4.24600 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFEQ],
 4.24601 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24602 ++      {
 4.24603 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24604 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24605 ++      },
 4.24606 ++    },
 4.24607 ++    {
 4.24608 ++      AVR32_OPC_SUBFNE, 4, 0xf5b00100, 0xfff0ff00,
 4.24609 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFNE],
 4.24610 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24611 ++      {
 4.24612 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24613 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24614 ++      },
 4.24615 ++    },
 4.24616 ++    {
 4.24617 ++      AVR32_OPC_SUBFCC, 4, 0xf5b00200, 0xfff0ff00,
 4.24618 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFHS],
 4.24619 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24620 ++      {
 4.24621 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24622 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24623 ++      },
 4.24624 ++    },
 4.24625 ++    {
 4.24626 ++      AVR32_OPC_SUBFCS, 4, 0xf5b00300, 0xfff0ff00,
 4.24627 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFLO],
 4.24628 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24629 ++      {
 4.24630 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24631 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24632 ++      },
 4.24633 ++    },
 4.24634 ++    {
 4.24635 ++      AVR32_OPC_SUBFGE, 4, 0xf5b00400, 0xfff0ff00,
 4.24636 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFGE],
 4.24637 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24638 ++      {
 4.24639 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24640 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24641 ++      },
 4.24642 ++    },
 4.24643 ++    {
 4.24644 ++      AVR32_OPC_SUBFLT, 4, 0xf5b00500, 0xfff0ff00,
 4.24645 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFLT],
 4.24646 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24647 ++      {
 4.24648 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24649 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24650 ++      },
 4.24651 ++    },
 4.24652 ++    {
 4.24653 ++      AVR32_OPC_SUBFMI, 4, 0xf5b00600, 0xfff0ff00,
 4.24654 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFMI],
 4.24655 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24656 ++      {
 4.24657 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24658 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24659 ++      },
 4.24660 ++    },
 4.24661 ++    {
 4.24662 ++      AVR32_OPC_SUBFPL, 4, 0xf5b00700, 0xfff0ff00,
 4.24663 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFPL],
 4.24664 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24665 ++      {
 4.24666 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24667 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24668 ++      },
 4.24669 ++    },
 4.24670 ++    {
 4.24671 ++      AVR32_OPC_SUBFLS, 4, 0xf5b00800, 0xfff0ff00,
 4.24672 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFLS],
 4.24673 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24674 ++      {
 4.24675 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24676 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24677 ++      },
 4.24678 ++    },
 4.24679 ++    {
 4.24680 ++      AVR32_OPC_SUBFGT, 4, 0xf5b00900, 0xfff0ff00,
 4.24681 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFGT],
 4.24682 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24683 ++      {
 4.24684 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24685 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24686 ++      },
 4.24687 ++    },
 4.24688 ++    {
 4.24689 ++      AVR32_OPC_SUBFLE, 4, 0xf5b00a00, 0xfff0ff00,
 4.24690 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFLE],
 4.24691 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24692 ++      {
 4.24693 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24694 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24695 ++      },
 4.24696 ++    },
 4.24697 ++    {
 4.24698 ++      AVR32_OPC_SUBFHI, 4, 0xf5b00b00, 0xfff0ff00,
 4.24699 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFHI],
 4.24700 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24701 ++      {
 4.24702 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24703 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24704 ++      },
 4.24705 ++    },
 4.24706 ++    {
 4.24707 ++      AVR32_OPC_SUBFVS, 4, 0xf5b00c00, 0xfff0ff00,
 4.24708 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFVS],
 4.24709 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24710 ++      {
 4.24711 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24712 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24713 ++      },
 4.24714 ++    },
 4.24715 ++    {
 4.24716 ++      AVR32_OPC_SUBFVC, 4, 0xf5b00d00, 0xfff0ff00,
 4.24717 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFVC],
 4.24718 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24719 ++      {
 4.24720 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24721 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24722 ++      },
 4.24723 ++    },
 4.24724 ++    {
 4.24725 ++      AVR32_OPC_SUBFQS, 4, 0xf5b00e00, 0xfff0ff00,
 4.24726 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFQS],
 4.24727 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24728 ++      {
 4.24729 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24730 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24731 ++      },
 4.24732 ++    },
 4.24733 ++    {
 4.24734 ++      AVR32_OPC_SUBFAL, 4, 0xf5b00f00, 0xfff0ff00,
 4.24735 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFAL],
 4.24736 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 4.24737 ++      {
 4.24738 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24739 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24740 ++      },
 4.24741 ++    },
 4.24742 ++    {
 4.24743 ++      AVR32_OPC_SUBHH_W, 4, 0xe0000f00, 0xe1f0ffc0,
 4.24744 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBHH_W],
 4.24745 ++      BFD_RELOC_UNUSED, 5, -1,
 4.24746 ++      {
 4.24747 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.24748 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24749 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 4.24750 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24751 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 4.24752 ++      },
 4.24753 ++    },
 4.24754 ++    {
 4.24755 ++      AVR32_OPC_SWAP_B, 2, 0x5cb00000, 0xfff00000,
 4.24756 ++      &avr32_syntax_table[AVR32_SYNTAX_SWAP_B],
 4.24757 ++      BFD_RELOC_UNUSED, 1, -1,
 4.24758 ++      {
 4.24759 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24760 ++      }
 4.24761 ++    },
 4.24762 ++    {
 4.24763 ++      AVR32_OPC_SWAP_BH, 2, 0x5cc00000, 0xfff00000,
 4.24764 ++      &avr32_syntax_table[AVR32_SYNTAX_SWAP_BH],
 4.24765 ++      BFD_RELOC_UNUSED, 1, -1,
 4.24766 ++      {
 4.24767 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24768 ++      }
 4.24769 ++    },
 4.24770 ++    {
 4.24771 ++      AVR32_OPC_SWAP_H, 2, 0x5ca00000, 0xfff00000,
 4.24772 ++      &avr32_syntax_table[AVR32_SYNTAX_SWAP_H],
 4.24773 ++      BFD_RELOC_UNUSED, 1, -1,
 4.24774 ++      {
 4.24775 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24776 ++      }
 4.24777 ++    },
 4.24778 ++    {
 4.24779 ++      AVR32_OPC_SYNC, 4, 0xebb00000, 0xffffff00,
 4.24780 ++      &avr32_syntax_table[AVR32_SYNTAX_SYNC],
 4.24781 ++      BFD_RELOC_AVR32_8S_EXT, 1, 0,
 4.24782 ++      {
 4.24783 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 4.24784 ++      }
 4.24785 ++    },
 4.24786 ++    {
 4.24787 ++      AVR32_OPC_TLBR, 2, 0xd6430000, 0xffff0000,
 4.24788 ++      &avr32_syntax_table[AVR32_SYNTAX_TLBR],
 4.24789 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 4.24790 ++    },
 4.24791 ++    {
 4.24792 ++      AVR32_OPC_TLBS, 2, 0xd6530000, 0xffff0000,
 4.24793 ++      &avr32_syntax_table[AVR32_SYNTAX_TLBS],
 4.24794 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 4.24795 ++    },
 4.24796 ++    {
 4.24797 ++      AVR32_OPC_TLBW, 2, 0xd6630000, 0xffff0000,
 4.24798 ++      &avr32_syntax_table[AVR32_SYNTAX_TLBW],
 4.24799 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 4.24800 ++    },
 4.24801 ++    {
 4.24802 ++      AVR32_OPC_TNBZ, 2, 0x5ce00000, 0xfff00000,
 4.24803 ++      &avr32_syntax_table[AVR32_SYNTAX_TNBZ],
 4.24804 ++      BFD_RELOC_UNUSED, 1, -1,
 4.24805 ++      {
 4.24806 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24807 ++      }
 4.24808 ++    },
 4.24809 ++    {
 4.24810 ++      AVR32_OPC_TST, 2, 0x00700000, 0xe1f00000,
 4.24811 ++      &avr32_syntax_table[AVR32_SYNTAX_TST],
 4.24812 ++      BFD_RELOC_UNUSED, 2, -1,
 4.24813 ++      {
 4.24814 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24815 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24816 ++      },
 4.24817 ++    },
 4.24818 ++    {
 4.24819 ++      AVR32_OPC_XCHG, 4, 0xe0000b40, 0xe1f0fff0,
 4.24820 ++      &avr32_syntax_table[AVR32_SYNTAX_XCHG],
 4.24821 ++      BFD_RELOC_UNUSED, 3, -1,
 4.24822 ++      {
 4.24823 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 4.24824 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24825 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24826 ++      },
 4.24827 ++    },
 4.24828 ++    {
 4.24829 ++      AVR32_OPC_MEMC, 4, 0xf6100000, 0xfff00000,
 4.24830 ++      &avr32_syntax_table[AVR32_SYNTAX_MEMC],
 4.24831 ++      BFD_RELOC_AVR32_15S, 2, 0,
 4.24832 ++      {
 4.24833 ++	&avr32_ifield_table[AVR32_IFIELD_MEM15],
 4.24834 ++	&avr32_ifield_table[AVR32_IFIELD_MEMB5],
 4.24835 ++      },
 4.24836 ++    },
 4.24837 ++    {
 4.24838 ++      AVR32_OPC_MEMS, 4, 0xf8100000, 0xfff00000,
 4.24839 ++      &avr32_syntax_table[AVR32_SYNTAX_MEMS],
 4.24840 ++      BFD_RELOC_AVR32_15S, 2, 0,
 4.24841 ++      {
 4.24842 ++	&avr32_ifield_table[AVR32_IFIELD_MEM15],
 4.24843 ++	&avr32_ifield_table[AVR32_IFIELD_MEMB5],
 4.24844 ++      },
 4.24845 ++    },
 4.24846 ++    {
 4.24847 ++      AVR32_OPC_MEMT, 4, 0xfa100000, 0xfff00000,
 4.24848 ++      &avr32_syntax_table[AVR32_SYNTAX_MEMT],
 4.24849 ++      BFD_RELOC_AVR32_15S, 2, 0,
 4.24850 ++      {
 4.24851 ++	&avr32_ifield_table[AVR32_IFIELD_MEM15],
 4.24852 ++	&avr32_ifield_table[AVR32_IFIELD_MEMB5],
 4.24853 ++      },
 4.24854 ++    },
 4.24855 ++    {
 4.24856 ++      AVR32_OPC_BFEXTS, 4, 0xe1d0b000, 0xe1f0fc00,
 4.24857 ++      &avr32_syntax_table[AVR32_SYNTAX_BFEXTS],
 4.24858 ++      BFD_RELOC_UNUSED, 4, -1,
 4.24859 ++      {
 4.24860 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24861 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24862 ++	&avr32_ifield_table[AVR32_IFIELD_S5],
 4.24863 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 4.24864 ++      },
 4.24865 ++    },
 4.24866 ++    {
 4.24867 ++      AVR32_OPC_BFEXTU, 4, 0xe1d0c000, 0xe1f0fc00,
 4.24868 ++      &avr32_syntax_table[AVR32_SYNTAX_BFEXTU],
 4.24869 ++      BFD_RELOC_UNUSED, 4, -1,
 4.24870 ++      {
 4.24871 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24872 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24873 ++	&avr32_ifield_table[AVR32_IFIELD_S5],
 4.24874 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 4.24875 ++      },
 4.24876 ++    },
 4.24877 ++    {
 4.24878 ++      AVR32_OPC_BFINS, 4, 0xe1d0d000, 0xe1f0fc00,
 4.24879 ++      &avr32_syntax_table[AVR32_SYNTAX_BFINS],
 4.24880 ++      BFD_RELOC_UNUSED, 4, -1,
 4.24881 ++      {
 4.24882 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 4.24883 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.24884 ++	&avr32_ifield_table[AVR32_IFIELD_S5],
 4.24885 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 4.24886 ++      },
 4.24887 ++    },
 4.24888 ++#define AVR32_OPCODE_RSUBCOND(cond_name, cond_field)                    \
 4.24889 ++    {                                                                   \
 4.24890 ++      AVR32_OPC_RSUB ## cond_name , 4,                                  \
 4.24891 ++      0xfbb00000 | (cond_field << 8), 0xfff0ff00,                       \
 4.24892 ++      &avr32_syntax_table[AVR32_SYNTAX_RSUB ## cond_name ],             \
 4.24893 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,                                     \
 4.24894 ++      {                                                                 \
 4.24895 ++	&avr32_ifield_table[AVR32_IFIELD_RY],                           \
 4.24896 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],                          \
 4.24897 ++      },                                                                \
 4.24898 ++    },
 4.24899 ++
 4.24900 ++    AVR32_OPCODE_RSUBCOND (EQ, 0) 
 4.24901 ++    AVR32_OPCODE_RSUBCOND (NE, 1) 
 4.24902 ++    AVR32_OPCODE_RSUBCOND (CC, 2) 
 4.24903 ++    AVR32_OPCODE_RSUBCOND (CS, 3) 
 4.24904 ++    AVR32_OPCODE_RSUBCOND (GE, 4) 
 4.24905 ++    AVR32_OPCODE_RSUBCOND (LT, 5) 
 4.24906 ++    AVR32_OPCODE_RSUBCOND (MI, 6) 
 4.24907 ++    AVR32_OPCODE_RSUBCOND (PL, 7) 
 4.24908 ++    AVR32_OPCODE_RSUBCOND (LS, 8) 
 4.24909 ++    AVR32_OPCODE_RSUBCOND (GT, 9) 
 4.24910 ++    AVR32_OPCODE_RSUBCOND (LE, 10) 
 4.24911 ++    AVR32_OPCODE_RSUBCOND (HI, 11) 
 4.24912 ++    AVR32_OPCODE_RSUBCOND (VS, 12) 
 4.24913 ++    AVR32_OPCODE_RSUBCOND (VC, 13) 
 4.24914 ++    AVR32_OPCODE_RSUBCOND (QS, 14) 
 4.24915 ++    AVR32_OPCODE_RSUBCOND (AL, 15) 
 4.24916 ++
 4.24917 ++#define AVR32_OPCODE_OP3_COND(op_name, op_field, cond_name, cond_field) \
 4.24918 ++    {                                                                   \
 4.24919 ++      AVR32_OPC_ ## op_name ## cond_name , 4,                           \
 4.24920 ++      0xe1d0e000 | (cond_field << 8) | (op_field << 4), 0xe1f0fff0,     \
 4.24921 ++      &avr32_syntax_table[AVR32_SYNTAX_ ## op_name ## cond_name ],      \
 4.24922 ++      BFD_RELOC_UNUSED, 3, -1,                                          \
 4.24923 ++      {                                                                 \
 4.24924 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],                         \
 4.24925 ++	&avr32_ifield_table[AVR32_IFIELD_RX],                           \
 4.24926 ++	&avr32_ifield_table[AVR32_IFIELD_RY],                           \
 4.24927 ++      },                                                                \
 4.24928 ++    },
 4.24929 ++
 4.24930 ++    AVR32_OPCODE_OP3_COND (ADD, 0, EQ, 0)
 4.24931 ++    AVR32_OPCODE_OP3_COND (ADD, 0, NE, 1)
 4.24932 ++    AVR32_OPCODE_OP3_COND (ADD, 0, CC, 2)
 4.24933 ++    AVR32_OPCODE_OP3_COND (ADD, 0, CS, 3)
 4.24934 ++    AVR32_OPCODE_OP3_COND (ADD, 0, GE, 4)
 4.24935 ++    AVR32_OPCODE_OP3_COND (ADD, 0, LT, 5)
 4.24936 ++    AVR32_OPCODE_OP3_COND (ADD, 0, MI, 6)
 4.24937 ++    AVR32_OPCODE_OP3_COND (ADD, 0, PL, 7)
 4.24938 ++    AVR32_OPCODE_OP3_COND (ADD, 0, LS, 8)
 4.24939 ++    AVR32_OPCODE_OP3_COND (ADD, 0, GT, 9)
 4.24940 ++    AVR32_OPCODE_OP3_COND (ADD, 0, LE, 10)
 4.24941 ++    AVR32_OPCODE_OP3_COND (ADD, 0, HI, 11)
 4.24942 ++    AVR32_OPCODE_OP3_COND (ADD, 0, VS, 12)
 4.24943 ++    AVR32_OPCODE_OP3_COND (ADD, 0, VC, 13)
 4.24944 ++    AVR32_OPCODE_OP3_COND (ADD, 0, QS, 14)
 4.24945 ++    AVR32_OPCODE_OP3_COND (ADD, 0, AL, 15)
 4.24946 ++
 4.24947 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, EQ, 0)
 4.24948 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, NE, 1)
 4.24949 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, CC, 2)
 4.24950 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, CS, 3)
 4.24951 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, GE, 4)
 4.24952 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, LT, 5)
 4.24953 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, MI, 6)
 4.24954 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, PL, 7)
 4.24955 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, LS, 8)
 4.24956 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, GT, 9)
 4.24957 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, LE, 10)
 4.24958 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, HI, 11)
 4.24959 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, VS, 12)
 4.24960 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, VC, 13)
 4.24961 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, QS, 14)
 4.24962 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, AL, 15)
 4.24963 ++
 4.24964 ++    AVR32_OPCODE_OP3_COND (AND, 2, EQ, 0)
 4.24965 ++    AVR32_OPCODE_OP3_COND (AND, 2, NE, 1)
 4.24966 ++    AVR32_OPCODE_OP3_COND (AND, 2, CC, 2)
 4.24967 ++    AVR32_OPCODE_OP3_COND (AND, 2, CS, 3)
 4.24968 ++    AVR32_OPCODE_OP3_COND (AND, 2, GE, 4)
 4.24969 ++    AVR32_OPCODE_OP3_COND (AND, 2, LT, 5)
 4.24970 ++    AVR32_OPCODE_OP3_COND (AND, 2, MI, 6)
 4.24971 ++    AVR32_OPCODE_OP3_COND (AND, 2, PL, 7)
 4.24972 ++    AVR32_OPCODE_OP3_COND (AND, 2, LS, 8)
 4.24973 ++    AVR32_OPCODE_OP3_COND (AND, 2, GT, 9)
 4.24974 ++    AVR32_OPCODE_OP3_COND (AND, 2, LE, 10)
 4.24975 ++    AVR32_OPCODE_OP3_COND (AND, 2, HI, 11)
 4.24976 ++    AVR32_OPCODE_OP3_COND (AND, 2, VS, 12)
 4.24977 ++    AVR32_OPCODE_OP3_COND (AND, 2, VC, 13)
 4.24978 ++    AVR32_OPCODE_OP3_COND (AND, 2, QS, 14)
 4.24979 ++    AVR32_OPCODE_OP3_COND (AND, 2, AL, 15)
 4.24980 ++
 4.24981 ++    AVR32_OPCODE_OP3_COND (OR, 3, EQ, 0)
 4.24982 ++    AVR32_OPCODE_OP3_COND (OR, 3, NE, 1)
 4.24983 ++    AVR32_OPCODE_OP3_COND (OR, 3, CC, 2)
 4.24984 ++    AVR32_OPCODE_OP3_COND (OR, 3, CS, 3)
 4.24985 ++    AVR32_OPCODE_OP3_COND (OR, 3, GE, 4)
 4.24986 ++    AVR32_OPCODE_OP3_COND (OR, 3, LT, 5)
 4.24987 ++    AVR32_OPCODE_OP3_COND (OR, 3, MI, 6)
 4.24988 ++    AVR32_OPCODE_OP3_COND (OR, 3, PL, 7)
 4.24989 ++    AVR32_OPCODE_OP3_COND (OR, 3, LS, 8)
 4.24990 ++    AVR32_OPCODE_OP3_COND (OR, 3, GT, 9)
 4.24991 ++    AVR32_OPCODE_OP3_COND (OR, 3, LE, 10)
 4.24992 ++    AVR32_OPCODE_OP3_COND (OR, 3, HI, 11)
 4.24993 ++    AVR32_OPCODE_OP3_COND (OR, 3, VS, 12)
 4.24994 ++    AVR32_OPCODE_OP3_COND (OR, 3, VC, 13)
 4.24995 ++    AVR32_OPCODE_OP3_COND (OR, 3, QS, 14)
 4.24996 ++    AVR32_OPCODE_OP3_COND (OR, 3, AL, 15)
 4.24997 ++
 4.24998 ++    AVR32_OPCODE_OP3_COND (EOR, 4, EQ, 0)
 4.24999 ++    AVR32_OPCODE_OP3_COND (EOR, 4, NE, 1)
 4.25000 ++    AVR32_OPCODE_OP3_COND (EOR, 4, CC, 2)
 4.25001 ++    AVR32_OPCODE_OP3_COND (EOR, 4, CS, 3)
 4.25002 ++    AVR32_OPCODE_OP3_COND (EOR, 4, GE, 4)
 4.25003 ++    AVR32_OPCODE_OP3_COND (EOR, 4, LT, 5)
 4.25004 ++    AVR32_OPCODE_OP3_COND (EOR, 4, MI, 6)
 4.25005 ++    AVR32_OPCODE_OP3_COND (EOR, 4, PL, 7)
 4.25006 ++    AVR32_OPCODE_OP3_COND (EOR, 4, LS, 8)
 4.25007 ++    AVR32_OPCODE_OP3_COND (EOR, 4, GT, 9)
 4.25008 ++    AVR32_OPCODE_OP3_COND (EOR, 4, LE, 10)
 4.25009 ++    AVR32_OPCODE_OP3_COND (EOR, 4, HI, 11)
 4.25010 ++    AVR32_OPCODE_OP3_COND (EOR, 4, VS, 12)
 4.25011 ++    AVR32_OPCODE_OP3_COND (EOR, 4, VC, 13)
 4.25012 ++    AVR32_OPCODE_OP3_COND (EOR, 4, QS, 14)
 4.25013 ++    AVR32_OPCODE_OP3_COND (EOR, 4, AL, 15) 
 4.25014 ++
 4.25015 ++#define AVR32_OPCODE_LD_COND(op_name, op_field, cond_name, cond_field)  \
 4.25016 ++    {                                                                   \
 4.25017 ++      AVR32_OPC_ ## op_name ## cond_name , 4,                           \
 4.25018 ++      0xe1f00000 | (cond_field << 12) | (op_field  << 9), 0xe1f0fe00,   \
 4.25019 ++      &avr32_syntax_table[AVR32_SYNTAX_ ## op_name ## cond_name ],      \
 4.25020 ++      BFD_RELOC_UNUSED, 3, -1,                                          \
 4.25021 ++      {                                                                 \
 4.25022 ++	&avr32_ifield_table[AVR32_IFIELD_RY],                           \
 4.25023 ++	&avr32_ifield_table[AVR32_IFIELD_RX],                           \
 4.25024 ++	&avr32_ifield_table[AVR32_IFIELD_K9E],                          \
 4.25025 ++      },                                                                \
 4.25026 ++    },
 4.25027 ++    
 4.25028 ++#define AVR32_OPCODE_ST_COND(op_name, op_field, cond_name, cond_field)  \
 4.25029 ++    {                                                                   \
 4.25030 ++      AVR32_OPC_ ## op_name ## cond_name , 4,                           \
 4.25031 ++      0xe1f00000 | (cond_field << 12) | (op_field  << 9), 0xe1f0fe00,   \
 4.25032 ++      &avr32_syntax_table[AVR32_SYNTAX_ ## op_name ## cond_name ],      \
 4.25033 ++      BFD_RELOC_UNUSED, 3, -1,                                          \
 4.25034 ++      {                                                                 \
 4.25035 ++	&avr32_ifield_table[AVR32_IFIELD_RX],                           \
 4.25036 ++	&avr32_ifield_table[AVR32_IFIELD_K9E],                          \
 4.25037 ++	&avr32_ifield_table[AVR32_IFIELD_RY],                           \
 4.25038 ++      },                                                                \
 4.25039 ++    },
 4.25040 ++
 4.25041 ++    AVR32_OPCODE_LD_COND (LD_W, 0, EQ, 0) 
 4.25042 ++    AVR32_OPCODE_LD_COND (LD_W, 0, NE, 1) 
 4.25043 ++    AVR32_OPCODE_LD_COND (LD_W, 0, CC, 2) 
 4.25044 ++    AVR32_OPCODE_LD_COND (LD_W, 0, CS, 3) 
 4.25045 ++    AVR32_OPCODE_LD_COND (LD_W, 0, GE, 4) 
 4.25046 ++    AVR32_OPCODE_LD_COND (LD_W, 0, LT, 5) 
 4.25047 ++    AVR32_OPCODE_LD_COND (LD_W, 0, MI, 6) 
 4.25048 ++    AVR32_OPCODE_LD_COND (LD_W, 0, PL, 7) 
 4.25049 ++    AVR32_OPCODE_LD_COND (LD_W, 0, LS, 8) 
 4.25050 ++    AVR32_OPCODE_LD_COND (LD_W, 0, GT, 9) 
 4.25051 ++    AVR32_OPCODE_LD_COND (LD_W, 0, LE, 10) 
 4.25052 ++    AVR32_OPCODE_LD_COND (LD_W, 0, HI, 11) 
 4.25053 ++    AVR32_OPCODE_LD_COND (LD_W, 0, VS, 12) 
 4.25054 ++    AVR32_OPCODE_LD_COND (LD_W, 0, VC, 13) 
 4.25055 ++    AVR32_OPCODE_LD_COND (LD_W, 0, QS, 14) 
 4.25056 ++    AVR32_OPCODE_LD_COND (LD_W, 0, AL, 15) 
 4.25057 ++
 4.25058 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, EQ, 0) 
 4.25059 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, NE, 1) 
 4.25060 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, CC, 2) 
 4.25061 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, CS, 3) 
 4.25062 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, GE, 4) 
 4.25063 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, LT, 5) 
 4.25064 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, MI, 6) 
 4.25065 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, PL, 7) 
 4.25066 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, LS, 8) 
 4.25067 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, GT, 9) 
 4.25068 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, LE, 10) 
 4.25069 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, HI, 11) 
 4.25070 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, VS, 12) 
 4.25071 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, VC, 13) 
 4.25072 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, QS, 14) 
 4.25073 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, AL, 15) 
 4.25074 ++
 4.25075 ++    AVR32_OPCODE_LD_COND (LD_UH, 2, EQ, 0) 
 4.25076 ++    AVR32_OPCODE_LD_COND (LD_UH, 2, NE, 1) 
 4.25077 ++    AVR32_OPCODE_LD_COND (LD_UH, 2, CC, 2) 
 4.25078 ++    AVR32_OPCODE_LD_COND (LD_UH, 2, CS, 3) 
 4.25079 ++    AVR32_OPCODE_LD_COND (LD_UH, 2, GE, 4) 
 4.25080 ++    AVR32_OPCODE_LD_COND (LD_UH, 2, LT, 5) 
 4.25081 ++    AVR32_OPCODE_LD_COND (LD_UH, 2, MI, 6) 
 4.25082 ++    AVR32_OPCODE_LD_COND (LD_UH, 2, PL, 7) 
 4.25083 ++    AVR32_OPCODE_LD_COND (LD_SH, 2, LS, 8) 
 4.25084 ++    AVR32_OPCODE_LD_COND (LD_SH, 2, GT, 9) 
 4.25085 ++    AVR32_OPCODE_LD_COND (LD_SH, 2, LE, 10) 
 4.25086 ++    AVR32_OPCODE_LD_COND (LD_SH, 2, HI, 11) 
 4.25087 ++    AVR32_OPCODE_LD_COND (LD_SH, 2, VS, 12) 
 4.25088 ++    AVR32_OPCODE_LD_COND (LD_SH, 2, VC, 13) 
 4.25089 ++    AVR32_OPCODE_LD_COND (LD_SH, 2, QS, 14) 
 4.25090 ++    AVR32_OPCODE_LD_COND (LD_SH, 2, AL, 15) 
 4.25091 ++
 4.25092 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, EQ, 0) 
 4.25093 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, NE, 1) 
 4.25094 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, CC, 2) 
 4.25095 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, CS, 3) 
 4.25096 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, GE, 4) 
 4.25097 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, LT, 5) 
 4.25098 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, MI, 6) 
 4.25099 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, PL, 7) 
 4.25100 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, LS, 8) 
 4.25101 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, GT, 9) 
 4.25102 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, LE, 10) 
 4.25103 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, HI, 11) 
 4.25104 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, VS, 12) 
 4.25105 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, VC, 13) 
 4.25106 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, QS, 14) 
 4.25107 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, AL, 15) 
 4.25108 ++
 4.25109 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, EQ, 0) 
 4.25110 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, NE, 1) 
 4.25111 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, CC, 2) 
 4.25112 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, CS, 3) 
 4.25113 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, GE, 4) 
 4.25114 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, LT, 5) 
 4.25115 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, MI, 6) 
 4.25116 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, PL, 7) 
 4.25117 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, LS, 8) 
 4.25118 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, GT, 9) 
 4.25119 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, LE, 10) 
 4.25120 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, HI, 11) 
 4.25121 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, VS, 12) 
 4.25122 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, VC, 13) 
 4.25123 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, QS, 14) 
 4.25124 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, AL, 15) 
 4.25125 ++
 4.25126 ++    AVR32_OPCODE_ST_COND (ST_W, 5, EQ, 0) 
 4.25127 ++    AVR32_OPCODE_ST_COND (ST_W, 5, NE, 1) 
 4.25128 ++    AVR32_OPCODE_ST_COND (ST_W, 5, CC, 2) 
 4.25129 ++    AVR32_OPCODE_ST_COND (ST_W, 5, CS, 3) 
 4.25130 ++    AVR32_OPCODE_ST_COND (ST_W, 5, GE, 4) 
 4.25131 ++    AVR32_OPCODE_ST_COND (ST_W, 5, LT, 5) 
 4.25132 ++    AVR32_OPCODE_ST_COND (ST_W, 5, MI, 6) 
 4.25133 ++    AVR32_OPCODE_ST_COND (ST_W, 5, PL, 7) 
 4.25134 ++    AVR32_OPCODE_ST_COND (ST_W, 5, LS, 8) 
 4.25135 ++    AVR32_OPCODE_ST_COND (ST_W, 5, GT, 9) 
 4.25136 ++    AVR32_OPCODE_ST_COND (ST_W, 5, LE, 10) 
 4.25137 ++    AVR32_OPCODE_ST_COND (ST_W, 5, HI, 11) 
 4.25138 ++    AVR32_OPCODE_ST_COND (ST_W, 5, VS, 12) 
 4.25139 ++    AVR32_OPCODE_ST_COND (ST_W, 5, VC, 13) 
 4.25140 ++    AVR32_OPCODE_ST_COND (ST_W, 5, QS, 14) 
 4.25141 ++    AVR32_OPCODE_ST_COND (ST_W, 5, AL, 15) 
 4.25142 ++
 4.25143 ++    AVR32_OPCODE_ST_COND (ST_H, 6, EQ, 0) 
 4.25144 ++    AVR32_OPCODE_ST_COND (ST_H, 6, NE, 1) 
 4.25145 ++    AVR32_OPCODE_ST_COND (ST_H, 6, CC, 2) 
 4.25146 ++    AVR32_OPCODE_ST_COND (ST_H, 6, CS, 3) 
 4.25147 ++    AVR32_OPCODE_ST_COND (ST_H, 6, GE, 4) 
 4.25148 ++    AVR32_OPCODE_ST_COND (ST_H, 6, LT, 5) 
 4.25149 ++    AVR32_OPCODE_ST_COND (ST_H, 6, MI, 6) 
 4.25150 ++    AVR32_OPCODE_ST_COND (ST_H, 6, PL, 7) 
 4.25151 ++    AVR32_OPCODE_ST_COND (ST_H, 6, LS, 8) 
 4.25152 ++    AVR32_OPCODE_ST_COND (ST_H, 6, GT, 9) 
 4.25153 ++    AVR32_OPCODE_ST_COND (ST_H, 6, LE, 10) 
 4.25154 ++    AVR32_OPCODE_ST_COND (ST_H, 6, HI, 11) 
 4.25155 ++    AVR32_OPCODE_ST_COND (ST_H, 6, VS, 12) 
 4.25156 ++    AVR32_OPCODE_ST_COND (ST_H, 6, VC, 13) 
 4.25157 ++    AVR32_OPCODE_ST_COND (ST_H, 6, QS, 14) 
 4.25158 ++    AVR32_OPCODE_ST_COND (ST_H, 6, AL, 15) 
 4.25159 ++
 4.25160 ++    AVR32_OPCODE_ST_COND (ST_B, 7, EQ, 0) 
 4.25161 ++    AVR32_OPCODE_ST_COND (ST_B, 7, NE, 1) 
 4.25162 ++    AVR32_OPCODE_ST_COND (ST_B, 7, CC, 2) 
 4.25163 ++    AVR32_OPCODE_ST_COND (ST_B, 7, CS, 3) 
 4.25164 ++    AVR32_OPCODE_ST_COND (ST_B, 7, GE, 4) 
 4.25165 ++    AVR32_OPCODE_ST_COND (ST_B, 7, LT, 5) 
 4.25166 ++    AVR32_OPCODE_ST_COND (ST_B, 7, MI, 6) 
 4.25167 ++    AVR32_OPCODE_ST_COND (ST_B, 7, PL, 7) 
 4.25168 ++    AVR32_OPCODE_ST_COND (ST_B, 7, LS, 8) 
 4.25169 ++    AVR32_OPCODE_ST_COND (ST_B, 7, GT, 9) 
 4.25170 ++    AVR32_OPCODE_ST_COND (ST_B, 7, LE, 10) 
 4.25171 ++    AVR32_OPCODE_ST_COND (ST_B, 7, HI, 11) 
 4.25172 ++    AVR32_OPCODE_ST_COND (ST_B, 7, VS, 12) 
 4.25173 ++    AVR32_OPCODE_ST_COND (ST_B, 7, VC, 13) 
 4.25174 ++    AVR32_OPCODE_ST_COND (ST_B, 7, QS, 14) 
 4.25175 ++    AVR32_OPCODE_ST_COND (ST_B, 7, AL, 15) 
 4.25176 ++
 4.25177 ++    {
 4.25178 ++      AVR32_OPC_MOVH, 4, 0xfc100000, 0xfff00000,
 4.25179 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVH],
 4.25180 ++      BFD_RELOC_AVR32_16U,  2, 1,
 4.25181 ++      {
 4.25182 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 4.25183 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 4.25184 ++      },
 4.25185 ++    },
 4.25186 ++
 4.25187 ++ };
 4.25188 ++
 4.25189 ++#define FPALIAS_DXY(name, opcode)			\
 4.25190 ++  {							\
 4.25191 ++    AVR32_ALIAS_##name##_S,				\
 4.25192 ++    &avr32_opc_table[AVR32_OPC_COP],			\
 4.25193 ++    {							\
 4.25194 ++      { 0, 0 },						\
 4.25195 ++      { 1, 0 }, { 1, 1 }, { 1, 2 },			\
 4.25196 ++      { 0, opcode },					\
 4.25197 ++    },							\
 4.25198 ++  }, {							\
 4.25199 ++    AVR32_ALIAS_##name##_D,				\
 4.25200 ++    &avr32_opc_table[AVR32_OPC_COP],			\
 4.25201 ++    {							\
 4.25202 ++      { 0, 0 },						\
 4.25203 ++      { 1, 0 }, { 1, 1 }, { 1, 2 },			\
 4.25204 ++      { 0, (opcode) | 0x40 },				\
 4.25205 ++    },							\
 4.25206 ++  }
 4.25207 ++#define FPALIAS_DX(name, opcode)			\
 4.25208 ++  {							\
 4.25209 ++    AVR32_ALIAS_##name##_S,				\
 4.25210 ++    &avr32_opc_table[AVR32_OPC_COP],			\
 4.25211 ++    {							\
 4.25212 ++      { 0, 0 },						\
 4.25213 ++      { 1, 0 }, { 1, 1 }, { 0, 0 },			\
 4.25214 ++      { 0, opcode },					\
 4.25215 ++    },							\
 4.25216 ++  }, {							\
 4.25217 ++    AVR32_ALIAS_##name##_D,				\
 4.25218 ++    &avr32_opc_table[AVR32_OPC_COP],			\
 4.25219 ++    {							\
 4.25220 ++      { 0, 0 },						\
 4.25221 ++      { 1, 0 }, { 1, 1 }, { 0, 0 },			\
 4.25222 ++      { 0, (opcode) | 0x40 },				\
 4.25223 ++    },							\
 4.25224 ++  }
 4.25225 ++#define FPALIAS_XY(name, opcode)			\
 4.25226 ++  {							\
 4.25227 ++    AVR32_ALIAS_##name##_S,				\
 4.25228 ++    &avr32_opc_table[AVR32_OPC_COP],			\
 4.25229 ++    {							\
 4.25230 ++      { 0, 0 },						\
 4.25231 ++      { 0, 0 }, { 1, 0 }, { 1, 1 },			\
 4.25232 ++      { 0, opcode },					\
 4.25233 ++    },							\
 4.25234 ++  }, {							\
 4.25235 ++    AVR32_ALIAS_##name##_D,				\
 4.25236 ++    &avr32_opc_table[AVR32_OPC_COP],			\
 4.25237 ++    {							\
 4.25238 ++      { 0, 0 },						\
 4.25239 ++      { 0, 0 }, { 1, 0 }, { 1, 1 },			\
 4.25240 ++      { 0, (opcode) | 0x40 },				\
 4.25241 ++    },							\
 4.25242 ++  }
 4.25243 ++
 4.25244 ++const struct avr32_alias avr32_alias_table[] =
 4.25245 ++  {
 4.25246 ++    FPALIAS_DXY(FMAC, 0x00),
 4.25247 ++    FPALIAS_DXY(FNMAC, 0x01),
 4.25248 ++    FPALIAS_DXY(FMSC, 0x02),
 4.25249 ++    FPALIAS_DXY(FNMSC, 0x03),
 4.25250 ++    FPALIAS_DXY(FADD, 0x04),
 4.25251 ++    FPALIAS_DXY(FSUB, 0x05),
 4.25252 ++    FPALIAS_DXY(FMUL, 0x06),
 4.25253 ++    FPALIAS_DXY(FNMUL, 0x07),
 4.25254 ++    FPALIAS_DX(FNEG, 0x08),
 4.25255 ++    FPALIAS_DX(FABS, 0x09),
 4.25256 ++    FPALIAS_XY(FCMP, 0x0d),
 4.25257 ++    FPALIAS_DX(FMOV1, 0x0a),
 4.25258 ++    {
 4.25259 ++      AVR32_ALIAS_FMOV2_S,
 4.25260 ++      &avr32_opc_table[AVR32_OPC_MVCR_W],
 4.25261 ++      { { 0, 0 }, { 1, 0 }, { 1, 1 }, },
 4.25262 ++    },
 4.25263 ++    {
 4.25264 ++      AVR32_ALIAS_FMOV2_D,
 4.25265 ++      &avr32_opc_table[AVR32_OPC_MVCR_D],
 4.25266 ++      { { 0, 0 }, { 1, 0 }, { 1, 1 }, },
 4.25267 ++    },
 4.25268 ++    {
 4.25269 ++      AVR32_ALIAS_FMOV3_S,
 4.25270 ++      &avr32_opc_table[AVR32_OPC_MVRC_W],
 4.25271 ++      { { 0, 0 }, { 1, 0 }, { 1, 1 }, },
 4.25272 ++    },
 4.25273 ++    {
 4.25274 ++      AVR32_ALIAS_FMOV3_D,
 4.25275 ++      &avr32_opc_table[AVR32_OPC_MVRC_D],
 4.25276 ++      { { 0, 0 }, { 1, 0 }, { 1, 1 }, },
 4.25277 ++    },
 4.25278 ++    {
 4.25279 ++      AVR32_ALIAS_FCASTS_D,
 4.25280 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25281 ++      {
 4.25282 ++	{ 0, 0 },
 4.25283 ++	{ 1, 0 }, { 1, 1 }, { 0, 0 },
 4.25284 ++	{ 0, 0x0f },
 4.25285 ++      },
 4.25286 ++    },
 4.25287 ++    {
 4.25288 ++      AVR32_ALIAS_FCASTD_S,
 4.25289 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25290 ++      {
 4.25291 ++	{ 0, 0 },
 4.25292 ++	{ 1, 0 }, { 1, 1 }, { 0, 0 },
 4.25293 ++	{ 0, 0x10 },
 4.25294 ++      },
 4.25295 ++    },
 4.25296 ++    {
 4.25297 ++      AVR32_ALIAS_PICOSVMAC0,
 4.25298 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25299 ++      {
 4.25300 ++	{ 0, PICO_CPNO },
 4.25301 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25302 ++	{ 0, 0x0c },
 4.25303 ++      },
 4.25304 ++    },
 4.25305 ++    {
 4.25306 ++      AVR32_ALIAS_PICOSVMAC1,
 4.25307 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25308 ++      {
 4.25309 ++	{ 0, PICO_CPNO },
 4.25310 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25311 ++	{ 0, 0x0d },
 4.25312 ++      },
 4.25313 ++    },
 4.25314 ++    {
 4.25315 ++      AVR32_ALIAS_PICOSVMAC2,
 4.25316 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25317 ++      {
 4.25318 ++	{ 0, PICO_CPNO },
 4.25319 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25320 ++	{ 0, 0x0e },
 4.25321 ++      },
 4.25322 ++    },
 4.25323 ++    {
 4.25324 ++      AVR32_ALIAS_PICOSVMAC3,
 4.25325 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25326 ++      {
 4.25327 ++	{ 0, PICO_CPNO },
 4.25328 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25329 ++	{ 0, 0x0f },
 4.25330 ++      },
 4.25331 ++    },
 4.25332 ++    {
 4.25333 ++      AVR32_ALIAS_PICOSVMUL0,
 4.25334 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25335 ++      {
 4.25336 ++	{ 0, PICO_CPNO },
 4.25337 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25338 ++	{ 0, 0x08 },
 4.25339 ++      },
 4.25340 ++    },
 4.25341 ++    {
 4.25342 ++      AVR32_ALIAS_PICOSVMUL1,
 4.25343 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25344 ++      {
 4.25345 ++	{ 0, PICO_CPNO },
 4.25346 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25347 ++	{ 0, 0x09 },
 4.25348 ++      },
 4.25349 ++    },
 4.25350 ++    {
 4.25351 ++      AVR32_ALIAS_PICOSVMUL2,
 4.25352 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25353 ++      {
 4.25354 ++	{ 0, PICO_CPNO },
 4.25355 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25356 ++	{ 0, 0x0a },
 4.25357 ++      },
 4.25358 ++    },
 4.25359 ++    {
 4.25360 ++      AVR32_ALIAS_PICOSVMUL3,
 4.25361 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25362 ++      {
 4.25363 ++	{ 0, PICO_CPNO },
 4.25364 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25365 ++	{ 0, 0x0b },
 4.25366 ++      },
 4.25367 ++    },
 4.25368 ++    {
 4.25369 ++      AVR32_ALIAS_PICOVMAC0,
 4.25370 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25371 ++      {
 4.25372 ++	{ 0, PICO_CPNO },
 4.25373 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25374 ++	{ 0, 0x04 },
 4.25375 ++      },
 4.25376 ++    },
 4.25377 ++    {
 4.25378 ++      AVR32_ALIAS_PICOVMAC1,
 4.25379 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25380 ++      {
 4.25381 ++	{ 0, PICO_CPNO },
 4.25382 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25383 ++	{ 0, 0x05 },
 4.25384 ++      },
 4.25385 ++    },
 4.25386 ++    {
 4.25387 ++      AVR32_ALIAS_PICOVMAC2,
 4.25388 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25389 ++      {
 4.25390 ++	{ 0, PICO_CPNO },
 4.25391 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25392 ++	{ 0, 0x06 },
 4.25393 ++      },
 4.25394 ++    },
 4.25395 ++    {
 4.25396 ++      AVR32_ALIAS_PICOVMAC3,
 4.25397 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25398 ++      {
 4.25399 ++	{ 0, PICO_CPNO },
 4.25400 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25401 ++	{ 0, 0x07 },
 4.25402 ++      },
 4.25403 ++    },
 4.25404 ++    {
 4.25405 ++      AVR32_ALIAS_PICOVMUL0,
 4.25406 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25407 ++      {
 4.25408 ++	{ 0, PICO_CPNO },
 4.25409 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25410 ++	{ 0, 0x00 },
 4.25411 ++      },
 4.25412 ++    },
 4.25413 ++    {
 4.25414 ++      AVR32_ALIAS_PICOVMUL1,
 4.25415 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25416 ++      {
 4.25417 ++	{ 0, PICO_CPNO },
 4.25418 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25419 ++	{ 0, 0x01 },
 4.25420 ++      },
 4.25421 ++    },
 4.25422 ++    {
 4.25423 ++      AVR32_ALIAS_PICOVMUL2,
 4.25424 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25425 ++      {
 4.25426 ++	{ 0, PICO_CPNO },
 4.25427 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25428 ++	{ 0, 0x02 },
 4.25429 ++      },
 4.25430 ++    },
 4.25431 ++    {
 4.25432 ++      AVR32_ALIAS_PICOVMUL3,
 4.25433 ++      &avr32_opc_table[AVR32_OPC_COP],
 4.25434 ++      {
 4.25435 ++	{ 0, PICO_CPNO },
 4.25436 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25437 ++	{ 0, 0x03 },
 4.25438 ++      },
 4.25439 ++    },
 4.25440 ++    {
 4.25441 ++      AVR32_ALIAS_PICOLD_D1,
 4.25442 ++      &avr32_opc_table[AVR32_OPC_LDC_D1],
 4.25443 ++      {
 4.25444 ++	{ 0, PICO_CPNO },
 4.25445 ++	{ 1, 0 }, { 1, 1 },
 4.25446 ++      },
 4.25447 ++    },
 4.25448 ++    {
 4.25449 ++      AVR32_ALIAS_PICOLD_D2,
 4.25450 ++      &avr32_opc_table[AVR32_OPC_LDC_D2],
 4.25451 ++      {
 4.25452 ++	{ 0, PICO_CPNO },
 4.25453 ++	{ 1, 0 }, { 1, 1 },
 4.25454 ++      },
 4.25455 ++    },
 4.25456 ++    {
 4.25457 ++      AVR32_ALIAS_PICOLD_D3,
 4.25458 ++      &avr32_opc_table[AVR32_OPC_LDC_D3],
 4.25459 ++      {
 4.25460 ++	{ 0, PICO_CPNO },
 4.25461 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 }, { 1, 3 },
 4.25462 ++      },
 4.25463 ++    },
 4.25464 ++    {
 4.25465 ++      AVR32_ALIAS_PICOLD_W1,
 4.25466 ++      &avr32_opc_table[AVR32_OPC_LDC_W1],
 4.25467 ++      {
 4.25468 ++	{ 0, PICO_CPNO },
 4.25469 ++	{ 1, 0 }, { 1, 1 },
 4.25470 ++      },
 4.25471 ++    },
 4.25472 ++    {
 4.25473 ++      AVR32_ALIAS_PICOLD_W2,
 4.25474 ++      &avr32_opc_table[AVR32_OPC_LDC_W2],
 4.25475 ++      {
 4.25476 ++	{ 0, PICO_CPNO },
 4.25477 ++	{ 1, 0 }, { 1, 1 },
 4.25478 ++      },
 4.25479 ++    },
 4.25480 ++    {
 4.25481 ++      AVR32_ALIAS_PICOLD_W3,
 4.25482 ++      &avr32_opc_table[AVR32_OPC_LDC_W3],
 4.25483 ++      {
 4.25484 ++	{ 0, PICO_CPNO },
 4.25485 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 }, { 1, 3 },
 4.25486 ++      },
 4.25487 ++    },
 4.25488 ++    {
 4.25489 ++      AVR32_ALIAS_PICOLDM_D,
 4.25490 ++      &avr32_opc_table[AVR32_OPC_LDCM_D],
 4.25491 ++      {
 4.25492 ++	{ 0, PICO_CPNO },
 4.25493 ++	{ 1, 0 }, { 1, 1 },
 4.25494 ++      },
 4.25495 ++    },
 4.25496 ++    {
 4.25497 ++      AVR32_ALIAS_PICOLDM_D_PU,
 4.25498 ++      &avr32_opc_table[AVR32_OPC_LDCM_D_PU],
 4.25499 ++      {
 4.25500 ++	{ 0, PICO_CPNO },
 4.25501 ++	{ 1, 0 }, { 1, 1 },
 4.25502 ++      },
 4.25503 ++    },
 4.25504 ++    {
 4.25505 ++      AVR32_ALIAS_PICOLDM_W,
 4.25506 ++      &avr32_opc_table[AVR32_OPC_LDCM_W],
 4.25507 ++      {
 4.25508 ++	{ 0, PICO_CPNO },
 4.25509 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25510 ++      },
 4.25511 ++    },
 4.25512 ++    {
 4.25513 ++      AVR32_ALIAS_PICOLDM_W_PU,
 4.25514 ++      &avr32_opc_table[AVR32_OPC_LDCM_W_PU],
 4.25515 ++      {
 4.25516 ++	{ 0, PICO_CPNO },
 4.25517 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25518 ++      },
 4.25519 ++    },
 4.25520 ++    {
 4.25521 ++      AVR32_ALIAS_PICOMV_D1,
 4.25522 ++      &avr32_opc_table[AVR32_OPC_MVCR_D],
 4.25523 ++      {
 4.25524 ++	{ 0, PICO_CPNO },
 4.25525 ++	{ 1, 0 }, { 1, 1 },
 4.25526 ++      },
 4.25527 ++    },
 4.25528 ++    {
 4.25529 ++      AVR32_ALIAS_PICOMV_D2,
 4.25530 ++      &avr32_opc_table[AVR32_OPC_MVRC_D],
 4.25531 ++      {
 4.25532 ++	{ 0, PICO_CPNO },
 4.25533 ++	{ 1, 0 }, { 1, 1 },
 4.25534 ++      },
 4.25535 ++    },
 4.25536 ++    {
 4.25537 ++      AVR32_ALIAS_PICOMV_W1,
 4.25538 ++      &avr32_opc_table[AVR32_OPC_MVCR_W],
 4.25539 ++      {
 4.25540 ++	{ 0, PICO_CPNO },
 4.25541 ++	{ 1, 0 }, { 1, 1 },
 4.25542 ++      },
 4.25543 ++    },
 4.25544 ++    {
 4.25545 ++      AVR32_ALIAS_PICOMV_W2,
 4.25546 ++      &avr32_opc_table[AVR32_OPC_MVRC_W],
 4.25547 ++      {
 4.25548 ++	{ 0, PICO_CPNO },
 4.25549 ++	{ 1, 0 }, { 1, 1 },
 4.25550 ++      },
 4.25551 ++    },
 4.25552 ++    {
 4.25553 ++      AVR32_ALIAS_PICOST_D1,
 4.25554 ++      &avr32_opc_table[AVR32_OPC_STC_D1],
 4.25555 ++      {
 4.25556 ++	{ 0, PICO_CPNO },
 4.25557 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25558 ++      },
 4.25559 ++    },
 4.25560 ++    {
 4.25561 ++      AVR32_ALIAS_PICOST_D2,
 4.25562 ++      &avr32_opc_table[AVR32_OPC_STC_D2],
 4.25563 ++      {
 4.25564 ++	{ 0, PICO_CPNO },
 4.25565 ++	{ 1, 0 }, { 1, 1 },
 4.25566 ++      },
 4.25567 ++    },
 4.25568 ++    {
 4.25569 ++      AVR32_ALIAS_PICOST_D3,
 4.25570 ++      &avr32_opc_table[AVR32_OPC_STC_D3],
 4.25571 ++      {
 4.25572 ++	{ 0, PICO_CPNO },
 4.25573 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 }, { 1, 3 },
 4.25574 ++      },
 4.25575 ++    },
 4.25576 ++    {
 4.25577 ++      AVR32_ALIAS_PICOST_W1,
 4.25578 ++      &avr32_opc_table[AVR32_OPC_STC_W1],
 4.25579 ++      {
 4.25580 ++	{ 0, PICO_CPNO },
 4.25581 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25582 ++      },
 4.25583 ++    },
 4.25584 ++    {
 4.25585 ++      AVR32_ALIAS_PICOST_W2,
 4.25586 ++      &avr32_opc_table[AVR32_OPC_STC_W2],
 4.25587 ++      {
 4.25588 ++	{ 0, PICO_CPNO },
 4.25589 ++	{ 1, 0 }, { 1, 1 },
 4.25590 ++      },
 4.25591 ++    },
 4.25592 ++    {
 4.25593 ++      AVR32_ALIAS_PICOST_W3,
 4.25594 ++      &avr32_opc_table[AVR32_OPC_STC_W3],
 4.25595 ++      {
 4.25596 ++	{ 0, PICO_CPNO },
 4.25597 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 }, { 1, 3 },
 4.25598 ++      },
 4.25599 ++    },
 4.25600 ++    {
 4.25601 ++      AVR32_ALIAS_PICOSTM_D,
 4.25602 ++      &avr32_opc_table[AVR32_OPC_STCM_D],
 4.25603 ++      {
 4.25604 ++	{ 0, PICO_CPNO },
 4.25605 ++	{ 1, 0 }, { 1, 1 },
 4.25606 ++      },
 4.25607 ++    },
 4.25608 ++    {
 4.25609 ++      AVR32_ALIAS_PICOSTM_D_PU,
 4.25610 ++      &avr32_opc_table[AVR32_OPC_STCM_D_PU],
 4.25611 ++      {
 4.25612 ++	{ 0, PICO_CPNO },
 4.25613 ++	{ 1, 0 }, { 1, 1 },
 4.25614 ++      },
 4.25615 ++    },
 4.25616 ++    {
 4.25617 ++      AVR32_ALIAS_PICOSTM_W,
 4.25618 ++      &avr32_opc_table[AVR32_OPC_STCM_W],
 4.25619 ++      {
 4.25620 ++	{ 0, PICO_CPNO },
 4.25621 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25622 ++      },
 4.25623 ++    },
 4.25624 ++    {
 4.25625 ++      AVR32_ALIAS_PICOSTM_W_PU,
 4.25626 ++      &avr32_opc_table[AVR32_OPC_STCM_W_PU],
 4.25627 ++      {
 4.25628 ++	{ 0, PICO_CPNO },
 4.25629 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 4.25630 ++      },
 4.25631 ++    },
 4.25632 ++  };
 4.25633 ++
 4.25634 ++
 4.25635 ++#define SYNTAX_NORMAL0(id, mne, opc, arch)			\
 4.25636 ++  {							\
 4.25637 ++    AVR32_SYNTAX_##id, arch,			\
 4.25638 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 4.25639 ++    AVR32_PARSER_NORMAL,					\
 4.25640 ++    { &avr32_opc_table[AVR32_OPC_##opc], },		\
 4.25641 ++    NULL, 0, { }					\
 4.25642 ++  }
 4.25643 ++#define SYNTAX_NORMAL1(id, mne, opc, op0, arch)		\
 4.25644 ++  {							\
 4.25645 ++    AVR32_SYNTAX_##id, arch,			\
 4.25646 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 4.25647 ++    AVR32_PARSER_NORMAL,					\
 4.25648 ++    { &avr32_opc_table[AVR32_OPC_##opc], },		\
 4.25649 ++    NULL, 1,						\
 4.25650 ++    {							\
 4.25651 ++      AVR32_OPERAND_##op0,				\
 4.25652 ++    }							\
 4.25653 ++  }
 4.25654 ++#define SYNTAX_NORMALM1(id, mne, opc, op0, arch)		\
 4.25655 ++  {							\
 4.25656 ++    AVR32_SYNTAX_##id, arch,			\
 4.25657 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 4.25658 ++    AVR32_PARSER_NORMAL,					\
 4.25659 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 4.25660 ++    NULL, -1,						\
 4.25661 ++    {							\
 4.25662 ++      AVR32_OPERAND_##op0,				\
 4.25663 ++    }							\
 4.25664 ++  }
 4.25665 ++#define SYNTAX_NORMAL2(id, mne, opc, op0, op1, arch)		\
 4.25666 ++  {							\
 4.25667 ++    AVR32_SYNTAX_##id, arch,			\
 4.25668 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 4.25669 ++    AVR32_PARSER_NORMAL,					\
 4.25670 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 4.25671 ++    NULL, 2,						\
 4.25672 ++    {							\
 4.25673 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,		\
 4.25674 ++    }							\
 4.25675 ++  }
 4.25676 ++#define SYNTAX_NORMALM2(id, mne, opc, op0, op1, arch)		\
 4.25677 ++  {							\
 4.25678 ++    AVR32_SYNTAX_##id, arch,			\
 4.25679 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 4.25680 ++    AVR32_PARSER_NORMAL,					\
 4.25681 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 4.25682 ++    NULL, -2,						\
 4.25683 ++    {							\
 4.25684 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,		\
 4.25685 ++    }							\
 4.25686 ++  }
 4.25687 ++#define SYNTAX_NORMAL3(id, mne, opc, op0, op1, op2, arch)	\
 4.25688 ++  {							\
 4.25689 ++    AVR32_SYNTAX_##id, arch,			\
 4.25690 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 4.25691 ++    AVR32_PARSER_NORMAL,					\
 4.25692 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 4.25693 ++    NULL, 3,						\
 4.25694 ++    {							\
 4.25695 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,		\
 4.25696 ++      AVR32_OPERAND_##op2,				\
 4.25697 ++    }							\
 4.25698 ++  }
 4.25699 ++#define SYNTAX_NORMALM3(id, mne, opc, op0, op1, op2, arch)	\
 4.25700 ++  {							\
 4.25701 ++    AVR32_SYNTAX_##id, arch,			\
 4.25702 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 4.25703 ++    AVR32_PARSER_NORMAL,					\
 4.25704 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 4.25705 ++    NULL, -3,						\
 4.25706 ++    {							\
 4.25707 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,		\
 4.25708 ++      AVR32_OPERAND_##op2,				\
 4.25709 ++    }							\
 4.25710 ++  }
 4.25711 ++#define SYNTAX_NORMAL4(id, mne, opc, op0, op1, op2, op3, arch)\
 4.25712 ++  {							\
 4.25713 ++    AVR32_SYNTAX_##id, arch,			\
 4.25714 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 4.25715 ++    AVR32_PARSER_NORMAL,					\
 4.25716 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 4.25717 ++    NULL, 4,						\
 4.25718 ++    {							\
 4.25719 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,		\
 4.25720 ++      AVR32_OPERAND_##op2, AVR32_OPERAND_##op3,		\
 4.25721 ++    }							\
 4.25722 ++  }
 4.25723 ++#define SYNTAX_NORMAL5(id, mne, opc, op0, op1, op2, op3, op4, arch)	\
 4.25724 ++  {								\
 4.25725 ++    AVR32_SYNTAX_##id, arch,				\
 4.25726 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],		\
 4.25727 ++    AVR32_PARSER_NORMAL,						\
 4.25728 ++    { &avr32_opc_table[AVR32_OPC_##opc], },				\
 4.25729 ++    NULL, 5,							\
 4.25730 ++    {								\
 4.25731 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,			\
 4.25732 ++      AVR32_OPERAND_##op2, AVR32_OPERAND_##op3,			\
 4.25733 ++      AVR32_OPERAND_##op4,					\
 4.25734 ++    }								\
 4.25735 ++  }
 4.25736 ++
 4.25737 ++#define SYNTAX_NORMAL_C1(id, mne, opc, nxt, op0, arch)	\
 4.25738 ++  {							\
 4.25739 ++    AVR32_SYNTAX_##id, arch,			\
 4.25740 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 4.25741 ++    AVR32_PARSER_NORMAL,					\
 4.25742 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 4.25743 ++    &avr32_syntax_table[AVR32_SYNTAX_##nxt], 1,		\
 4.25744 ++    {							\
 4.25745 ++      AVR32_OPERAND_##op0,				\
 4.25746 ++    }							\
 4.25747 ++  }
 4.25748 ++#define SYNTAX_NORMAL_CM1(id, mne, opc, nxt, op0, arch)	\
 4.25749 ++  {							\
 4.25750 ++    AVR32_SYNTAX_##id, arch,			\
 4.25751 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 4.25752 ++    AVR32_PARSER_NORMAL,					\
 4.25753 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 4.25754 ++    &avr32_syntax_table[AVR32_SYNTAX_##nxt], -1,	\
 4.25755 ++    {							\
 4.25756 ++      AVR32_OPERAND_##op0,				\
 4.25757 ++    }							\
 4.25758 ++  }
 4.25759 ++#define SYNTAX_NORMAL_C2(id, mne, opc, nxt, op0, op1, arch)	\
 4.25760 ++  {							\
 4.25761 ++    AVR32_SYNTAX_##id, arch,			\
 4.25762 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 4.25763 ++    AVR32_PARSER_NORMAL,					\
 4.25764 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 4.25765 ++    &avr32_syntax_table[AVR32_SYNTAX_##nxt], 2,		\
 4.25766 ++    {							\
 4.25767 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,		\
 4.25768 ++    }							\
 4.25769 ++  }
 4.25770 ++#define SYNTAX_NORMAL_CM2(id, mne, opc, nxt, op0, op1, arch)	\
 4.25771 ++  {							\
 4.25772 ++    AVR32_SYNTAX_##id, arch,			\
 4.25773 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 4.25774 ++    AVR32_PARSER_NORMAL,					\
 4.25775 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 4.25776 ++    &avr32_syntax_table[AVR32_SYNTAX_##nxt], -2,	\
 4.25777 ++    {							\
 4.25778 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,		\
 4.25779 ++    }							\
 4.25780 ++  }
 4.25781 ++#define SYNTAX_NORMAL_C3(id, mne, opc, nxt, op0, op1, op2, arch)	\
 4.25782 ++  {								\
 4.25783 ++    AVR32_SYNTAX_##id, arch,				\
 4.25784 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],		\
 4.25785 ++    AVR32_PARSER_NORMAL,						\
 4.25786 ++    { &avr32_opc_table[AVR32_OPC_##opc], },				\
 4.25787 ++    &avr32_syntax_table[AVR32_SYNTAX_##nxt], 3,			\
 4.25788 ++    {								\
 4.25789 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,			\
 4.25790 ++      AVR32_OPERAND_##op2,					\
 4.25791 ++    }								\
 4.25792 ++  }
 4.25793 ++#define SYNTAX_NORMAL_CM3(id, mne, opc, nxt, op0, op1, op2, arch)	\
 4.25794 ++  {								\
 4.25795 ++    AVR32_SYNTAX_##id, arch,				\
 4.25796 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],		\
 4.25797 ++    AVR32_PARSER_NORMAL,						\
 4.25798 ++    { &avr32_opc_table[AVR32_OPC_##opc], },				\
 4.25799 ++    &avr32_syntax_table[AVR32_SYNTAX_##nxt], -3,		\
 4.25800 ++    {								\
 4.25801 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,			\
 4.25802 ++      AVR32_OPERAND_##op2,					\
 4.25803 ++    }								\
 4.25804 ++  }
 4.25805 ++
 4.25806 ++#define SYNTAX_FP(name, nr_ops)					\
 4.25807 ++    {								\
 4.25808 ++      AVR32_SYNTAX_##name##_S,					\
 4.25809 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,			\
 4.25810 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_##name##_S] },	\
 4.25811 ++      NULL, nr_ops,						\
 4.25812 ++      {								\
 4.25813 ++	AVR32_OPERAND_FPREG_S,					\
 4.25814 ++	AVR32_OPERAND_FPREG_S,					\
 4.25815 ++	AVR32_OPERAND_FPREG_S,					\
 4.25816 ++      },							\
 4.25817 ++    },								\
 4.25818 ++    {								\
 4.25819 ++      AVR32_SYNTAX_##name##_D,					\
 4.25820 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,			\
 4.25821 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_##name##_D] },	\
 4.25822 ++      NULL, nr_ops,						\
 4.25823 ++      {								\
 4.25824 ++	AVR32_OPERAND_FPREG_D,					\
 4.25825 ++	AVR32_OPERAND_FPREG_D,					\
 4.25826 ++	AVR32_OPERAND_FPREG_D,					\
 4.25827 ++      },							\
 4.25828 ++    }
 4.25829 ++
 4.25830 ++const struct avr32_syntax avr32_syntax_table[] =
 4.25831 ++  {
 4.25832 ++    SYNTAX_NORMAL1(ABS, ABS, ABS, INTREG, AVR32_V1),
 4.25833 ++    SYNTAX_NORMAL1(ACALL, ACALL, ACALL, UNSIGNED_CONST_W, AVR32_V1),
 4.25834 ++    SYNTAX_NORMAL1(ACR, ACR, ACR, INTREG,AVR32_V1),
 4.25835 ++    SYNTAX_NORMAL3(ADC, ADC, ADC, INTREG, INTREG, INTREG, AVR32_V1),
 4.25836 ++    SYNTAX_NORMAL_C2(ADD1, ADD, ADD1, ADD2, INTREG, INTREG, AVR32_V1),
 4.25837 ++    SYNTAX_NORMAL3(ADD2, ADD, ADD2, INTREG, INTREG, INTREG_LSL, AVR32_V1),
 4.25838 ++    SYNTAX_NORMAL3(ADDABS, ADDABS, ADDABS, INTREG, INTREG, INTREG, AVR32_V1),
 4.25839 ++    SYNTAX_NORMAL3(ADDHH_W, ADDHH_W, ADDHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 4.25840 ++    SYNTAX_NORMAL_C2(AND1, AND, AND1, AND2, INTREG, INTREG, AVR32_V1),
 4.25841 ++    SYNTAX_NORMAL_C3(AND2, AND, AND2, AND3, INTREG, INTREG, INTREG_LSL, AVR32_V1),
 4.25842 ++    SYNTAX_NORMAL3(AND3, AND, AND3, INTREG, INTREG, INTREG_LSR, AVR32_V1),
 4.25843 ++    SYNTAX_NORMAL_C2(ANDH, ANDH, ANDH, ANDH_COH, INTREG, UNSIGNED_CONST, AVR32_V1),
 4.25844 ++    SYNTAX_NORMAL3(ANDH_COH, ANDH, ANDH_COH, INTREG, UNSIGNED_CONST, COH, AVR32_V1),
 4.25845 ++    SYNTAX_NORMAL_C2(ANDL, ANDL, ANDL, ANDL_COH, INTREG, UNSIGNED_CONST, AVR32_V1),
 4.25846 ++    SYNTAX_NORMAL3(ANDL_COH, ANDL, ANDL_COH, INTREG, UNSIGNED_CONST, COH, AVR32_V1),
 4.25847 ++    SYNTAX_NORMAL2(ANDN, ANDN, ANDN, INTREG, INTREG, AVR32_V1),
 4.25848 ++    SYNTAX_NORMAL_C3(ASR1, ASR, ASR1, ASR3, INTREG, INTREG, INTREG, AVR32_V1),
 4.25849 ++    SYNTAX_NORMAL_C3(ASR3, ASR, ASR3, ASR2, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 4.25850 ++    SYNTAX_NORMAL2(ASR2, ASR, ASR2, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 4.25851 ++    SYNTAX_NORMAL4(BFEXTS, BFEXTS, BFEXTS, INTREG, INTREG, UNSIGNED_NUMBER, UNSIGNED_NUMBER, AVR32_V1),
 4.25852 ++    SYNTAX_NORMAL4(BFEXTU, BFEXTU, BFEXTU, INTREG, INTREG, UNSIGNED_NUMBER, UNSIGNED_NUMBER, AVR32_V1),
 4.25853 ++    SYNTAX_NORMAL4(BFINS, BFINS, BFINS, INTREG, INTREG, UNSIGNED_NUMBER, UNSIGNED_NUMBER, AVR32_V1),
 4.25854 ++    SYNTAX_NORMAL2(BLD, BLD, BLD, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 4.25855 ++    SYNTAX_NORMAL_C1(BREQ1, BREQ, BREQ1, BREQ2, JMPLABEL, AVR32_V1),
 4.25856 ++    SYNTAX_NORMAL_C1(BRNE1, BRNE, BRNE1, BRNE2, JMPLABEL, AVR32_V1),
 4.25857 ++    SYNTAX_NORMAL_C1(BRCC1, BRCC, BRCC1, BRCC2, JMPLABEL, AVR32_V1),
 4.25858 ++    SYNTAX_NORMAL_C1(BRCS1, BRCS, BRCS1, BRCS2, JMPLABEL, AVR32_V1),
 4.25859 ++    SYNTAX_NORMAL_C1(BRGE1, BRGE, BRGE1, BRGE2, JMPLABEL, AVR32_V1),
 4.25860 ++    SYNTAX_NORMAL_C1(BRLT1, BRLT, BRLT1, BRLT2, JMPLABEL, AVR32_V1),
 4.25861 ++    SYNTAX_NORMAL_C1(BRMI1, BRMI, BRMI1, BRMI2, JMPLABEL, AVR32_V1),
 4.25862 ++    SYNTAX_NORMAL_C1(BRPL1, BRPL, BRPL1, BRPL2, JMPLABEL, AVR32_V1),
 4.25863 ++    SYNTAX_NORMAL_C1(BRHS1, BRHS, BRCC1, BRHS2, JMPLABEL, AVR32_V1),
 4.25864 ++    SYNTAX_NORMAL_C1(BRLO1, BRLO, BRCS1, BRLO2, JMPLABEL, AVR32_V1),
 4.25865 ++    SYNTAX_NORMAL1(BREQ2, BREQ, BREQ2, JMPLABEL, AVR32_V1),
 4.25866 ++    SYNTAX_NORMAL1(BRNE2, BRNE, BRNE2, JMPLABEL, AVR32_V1),
 4.25867 ++    SYNTAX_NORMAL1(BRCC2, BRCC, BRCC2, JMPLABEL, AVR32_V1),
 4.25868 ++    SYNTAX_NORMAL1(BRCS2, BRCS, BRCS2, JMPLABEL, AVR32_V1),
 4.25869 ++    SYNTAX_NORMAL1(BRGE2, BRGE, BRGE2, JMPLABEL, AVR32_V1),
 4.25870 ++    SYNTAX_NORMAL1(BRLT2, BRLT, BRLT2, JMPLABEL, AVR32_V1),
 4.25871 ++    SYNTAX_NORMAL1(BRMI2, BRMI, BRMI2, JMPLABEL, AVR32_V1),
 4.25872 ++    SYNTAX_NORMAL1(BRPL2, BRPL, BRPL2, JMPLABEL, AVR32_V1),
 4.25873 ++    SYNTAX_NORMAL1(BRLS, BRLS, BRLS, JMPLABEL, AVR32_V1),
 4.25874 ++    SYNTAX_NORMAL1(BRGT, BRGT, BRGT, JMPLABEL, AVR32_V1),
 4.25875 ++    SYNTAX_NORMAL1(BRLE, BRLE, BRLE, JMPLABEL, AVR32_V1),
 4.25876 ++    SYNTAX_NORMAL1(BRHI, BRHI, BRHI, JMPLABEL, AVR32_V1),
 4.25877 ++    SYNTAX_NORMAL1(BRVS, BRVS, BRVS, JMPLABEL, AVR32_V1),
 4.25878 ++    SYNTAX_NORMAL1(BRVC, BRVC, BRVC, JMPLABEL, AVR32_V1),
 4.25879 ++    SYNTAX_NORMAL1(BRQS, BRQS, BRQS, JMPLABEL, AVR32_V1),
 4.25880 ++    SYNTAX_NORMAL1(BRAL, BRAL, BRAL, JMPLABEL, AVR32_V1),
 4.25881 ++    SYNTAX_NORMAL1(BRHS2, BRHS, BRCC2, JMPLABEL, AVR32_V1),
 4.25882 ++    SYNTAX_NORMAL1(BRLO2, BRLO, BRCS2, JMPLABEL, AVR32_V1),
 4.25883 ++    SYNTAX_NORMAL0(BREAKPOINT, BREAKPOINT, BREAKPOINT, AVR32_V1),
 4.25884 ++    SYNTAX_NORMAL1(BREV, BREV, BREV, INTREG, AVR32_V1),
 4.25885 ++    SYNTAX_NORMAL2(BST, BST, BST, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 4.25886 ++    SYNTAX_NORMAL2(CACHE, CACHE, CACHE, INTREG_SDISP, UNSIGNED_NUMBER, AVR32_V1),
 4.25887 ++    SYNTAX_NORMAL1(CASTS_B, CASTS_B, CASTS_B, INTREG, AVR32_V1),
 4.25888 ++    SYNTAX_NORMAL1(CASTS_H, CASTS_H, CASTS_H, INTREG, AVR32_V1),
 4.25889 ++    SYNTAX_NORMAL1(CASTU_B, CASTU_B, CASTU_B, INTREG, AVR32_V1),
 4.25890 ++    SYNTAX_NORMAL1(CASTU_H, CASTU_H, CASTU_H, INTREG, AVR32_V1),
 4.25891 ++    SYNTAX_NORMAL2(CBR, CBR, CBR, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 4.25892 ++    SYNTAX_NORMAL2(CLZ, CLZ, CLZ, INTREG, INTREG, AVR32_V1),
 4.25893 ++    SYNTAX_NORMAL1(COM, COM, COM, INTREG, AVR32_V1),
 4.25894 ++    SYNTAX_NORMAL5(COP, COP, COP, CPNO, CPREG, CPREG, CPREG, UNSIGNED_NUMBER, AVR32_V1),
 4.25895 ++    SYNTAX_NORMAL2(CP_B, CP_B, CP_B, INTREG, INTREG, AVR32_V1),
 4.25896 ++    SYNTAX_NORMAL2(CP_H, CP_H, CP_H, INTREG, INTREG, AVR32_V1),
 4.25897 ++    SYNTAX_NORMAL_C2(CP_W1, CP_W, CP_W1, CP_W2, INTREG, INTREG, AVR32_V1),
 4.25898 ++    SYNTAX_NORMAL_C2(CP_W2, CP_W, CP_W2, CP_W3, INTREG, SIGNED_CONST, AVR32_V1),
 4.25899 ++    SYNTAX_NORMAL2(CP_W3, CP_W, CP_W3, INTREG, SIGNED_CONST, AVR32_V1),
 4.25900 ++    SYNTAX_NORMAL_C2(CPC1, CPC, CPC1, CPC2, INTREG, INTREG, AVR32_V1),
 4.25901 ++    SYNTAX_NORMAL1(CPC2, CPC, CPC2, INTREG, AVR32_V1),
 4.25902 ++    SYNTAX_NORMAL1(CSRF, CSRF, CSRF, UNSIGNED_NUMBER, AVR32_V1),
 4.25903 ++    SYNTAX_NORMAL1(CSRFCZ, CSRFCZ, CSRFCZ, UNSIGNED_NUMBER, AVR32_V1),
 4.25904 ++    SYNTAX_NORMAL3(DIVS, DIVS, DIVS, INTREG, INTREG, INTREG, AVR32_V1),
 4.25905 ++    SYNTAX_NORMAL3(DIVU, DIVU, DIVU, INTREG, INTREG, INTREG, AVR32_V1),
 4.25906 ++    SYNTAX_NORMAL_C2(EOR1, EOR, EOR1, EOR2, INTREG, INTREG, AVR32_V1),
 4.25907 ++    SYNTAX_NORMAL_C3(EOR2, EOR, EOR2, EOR3, INTREG, INTREG, INTREG_LSL, AVR32_V1),
 4.25908 ++    SYNTAX_NORMAL3(EOR3, EOR, EOR3, INTREG, INTREG, INTREG_LSR, AVR32_V1),
 4.25909 ++    SYNTAX_NORMAL2(EORL, EORL, EORL, INTREG, UNSIGNED_CONST, AVR32_V1),
 4.25910 ++    SYNTAX_NORMAL2(EORH, EORH, EORH, INTREG, UNSIGNED_CONST, AVR32_V1),
 4.25911 ++    SYNTAX_NORMAL0(FRS, FRS, FRS, AVR32_V1),
 4.25912 ++    SYNTAX_NORMAL1(ICALL, ICALL, ICALL, INTREG, AVR32_V1),
 4.25913 ++    SYNTAX_NORMAL1(INCJOSP, INCJOSP, INCJOSP, JOSPINC, AVR32_V1),
 4.25914 ++    SYNTAX_NORMAL_C2(LD_D1, LD_D, LD_D1, LD_D2, DWREG, INTREG_POSTINC, AVR32_V1),
 4.25915 ++    SYNTAX_NORMAL_C2(LD_D2, LD_D, LD_D2, LD_D3, DWREG, INTREG_PREDEC, AVR32_V1),
 4.25916 ++    SYNTAX_NORMAL_C2(LD_D3, LD_D, LD_D3, LD_D5, DWREG, INTREG, AVR32_V1),
 4.25917 ++    SYNTAX_NORMAL_C2(LD_D5, LD_D, LD_D5, LD_D4, DWREG, INTREG_INDEX, AVR32_V1),
 4.25918 ++    SYNTAX_NORMAL2(LD_D4, LD_D, LD_D4, DWREG, INTREG_SDISP, AVR32_V1),
 4.25919 ++    SYNTAX_NORMAL_C2(LD_SB2, LD_SB, LD_SB2, LD_SB1, INTREG, INTREG_INDEX, AVR32_V1),
 4.25920 ++    SYNTAX_NORMAL2(LD_SB1, LD_SB, LD_SB1, INTREG, INTREG_SDISP, AVR32_V1),
 4.25921 ++    SYNTAX_NORMAL_C2(LD_UB1, LD_UB, LD_UB1, LD_UB2, INTREG, INTREG_POSTINC, AVR32_V1),
 4.25922 ++    SYNTAX_NORMAL_C2(LD_UB2, LD_UB, LD_UB2, LD_UB5, INTREG, INTREG_PREDEC, AVR32_V1),
 4.25923 ++    SYNTAX_NORMAL_C2(LD_UB5, LD_UB, LD_UB5, LD_UB3, INTREG, INTREG_INDEX, AVR32_V1),
 4.25924 ++    SYNTAX_NORMAL_C2(LD_UB3, LD_UB, LD_UB3, LD_UB4, INTREG, INTREG_UDISP, AVR32_V1),
 4.25925 ++    SYNTAX_NORMAL2(LD_UB4, LD_UB, LD_UB4, INTREG, INTREG_SDISP, AVR32_V1),
 4.25926 ++    SYNTAX_NORMAL_C2(LD_SH1, LD_SH, LD_SH1, LD_SH2, INTREG, INTREG_POSTINC, AVR32_V1),
 4.25927 ++    SYNTAX_NORMAL_C2(LD_SH2, LD_SH, LD_SH2, LD_SH5, INTREG, INTREG_PREDEC, AVR32_V1),
 4.25928 ++    SYNTAX_NORMAL_C2(LD_SH5, LD_SH, LD_SH5, LD_SH3, INTREG, INTREG_INDEX, AVR32_V1),
 4.25929 ++    SYNTAX_NORMAL_C2(LD_SH3, LD_SH, LD_SH3, LD_SH4, INTREG, INTREG_UDISP_H, AVR32_V1),
 4.25930 ++    SYNTAX_NORMAL2(LD_SH4, LD_SH, LD_SH4, INTREG, INTREG_SDISP, AVR32_V1),
 4.25931 ++    SYNTAX_NORMAL_C2(LD_UH1, LD_UH, LD_UH1, LD_UH2, INTREG, INTREG_POSTINC, AVR32_V1),
 4.25932 ++    SYNTAX_NORMAL_C2(LD_UH2, LD_UH, LD_UH2, LD_UH5, INTREG, INTREG_PREDEC, AVR32_V1),
 4.25933 ++    SYNTAX_NORMAL_C2(LD_UH5, LD_UH, LD_UH5, LD_UH3, INTREG, INTREG_INDEX, AVR32_V1),
 4.25934 ++    SYNTAX_NORMAL_C2(LD_UH3, LD_UH, LD_UH3, LD_UH4, INTREG, INTREG_UDISP_H, AVR32_V1),
 4.25935 ++    SYNTAX_NORMAL2(LD_UH4, LD_UH, LD_UH4, INTREG, INTREG_SDISP, AVR32_V1),
 4.25936 ++    SYNTAX_NORMAL_C2(LD_W1, LD_W, LD_W1, LD_W2, INTREG, INTREG_POSTINC, AVR32_V1),
 4.25937 ++    SYNTAX_NORMAL_C2(LD_W2, LD_W, LD_W2, LD_W5, INTREG, INTREG_PREDEC, AVR32_V1),
 4.25938 ++    SYNTAX_NORMAL_C2(LD_W5, LD_W, LD_W5, LD_W6, INTREG, INTREG_INDEX, AVR32_V1),
 4.25939 ++    SYNTAX_NORMAL_C2(LD_W6, LD_W, LD_W6, LD_W3, INTREG, INTREG_XINDEX, AVR32_V1),
 4.25940 ++    SYNTAX_NORMAL_C2(LD_W3, LD_W, LD_W3, LD_W4, INTREG, INTREG_UDISP_W, AVR32_V1),
 4.25941 ++    SYNTAX_NORMAL2(LD_W4, LD_W, LD_W4, INTREG, INTREG_SDISP, AVR32_V1),
 4.25942 ++    SYNTAX_NORMAL3(LDC_D1, LDC_D, LDC_D1, CPNO, CPREG_D, INTREG_UDISP_W, AVR32_V1),
 4.25943 ++    SYNTAX_NORMAL_C3(LDC_D2, LDC_D, LDC_D2, LDC_D1, CPNO, CPREG_D, INTREG_PREDEC, AVR32_V1),
 4.25944 ++    SYNTAX_NORMAL_C3(LDC_D3, LDC_D, LDC_D3, LDC_D2, CPNO, CPREG_D, INTREG_INDEX, AVR32_V1),
 4.25945 ++    SYNTAX_NORMAL3(LDC_W1, LDC_W, LDC_W1, CPNO, CPREG, INTREG_UDISP_W, AVR32_V1),
 4.25946 ++    SYNTAX_NORMAL_C3(LDC_W2, LDC_W, LDC_W2, LDC_W1, CPNO, CPREG, INTREG_PREDEC, AVR32_V1),
 4.25947 ++    SYNTAX_NORMAL_C3(LDC_W3, LDC_W, LDC_W3, LDC_W2, CPNO, CPREG, INTREG_INDEX, AVR32_V1),
 4.25948 ++    SYNTAX_NORMAL2(LDC0_D, LDC0_D, LDC0_D, CPREG_D, INTREG_UDISP_W, AVR32_V1),
 4.25949 ++    SYNTAX_NORMAL2(LDC0_W, LDC0_W, LDC0_W, CPREG, INTREG_UDISP_W, AVR32_V1),
 4.25950 ++    SYNTAX_NORMAL_CM3(LDCM_D, LDCM_D, LDCM_D, LDCM_D_PU, CPNO, INTREG, REGLIST_CPD8, AVR32_V1),
 4.25951 ++    SYNTAX_NORMALM3(LDCM_D_PU, LDCM_D, LDCM_D_PU, CPNO, INTREG_POSTINC, REGLIST_CPD8, AVR32_V1),
 4.25952 ++    SYNTAX_NORMAL_CM3(LDCM_W, LDCM_W, LDCM_W, LDCM_W_PU, CPNO, INTREG, REGLIST_CP8, AVR32_V1),
 4.25953 ++    SYNTAX_NORMALM3(LDCM_W_PU, LDCM_W, LDCM_W_PU, CPNO, INTREG_POSTINC, REGLIST_CP8, AVR32_V1),
 4.25954 ++    SYNTAX_NORMAL2(LDDPC, LDDPC, LDDPC, INTREG, PC_UDISP_W, AVR32_V1),
 4.25955 ++    SYNTAX_NORMAL2(LDDPC_EXT, LDDPC, LDDPC_EXT, INTREG, SIGNED_CONST, AVR32_V1),
 4.25956 ++    SYNTAX_NORMAL2(LDDSP, LDDSP, LDDSP, INTREG, SP_UDISP_W, AVR32_V1),
 4.25957 ++    SYNTAX_NORMAL2(LDINS_B, LDINS_B, LDINS_B, INTREG_BSEL, INTREG_SDISP, AVR32_V1),
 4.25958 ++    SYNTAX_NORMAL2(LDINS_H, LDINS_H, LDINS_H, INTREG_HSEL, INTREG_SDISP_H, AVR32_V1),
 4.25959 ++    SYNTAX_NORMALM1(LDM, LDM, LDM, REGLIST_LDM, AVR32_V1),
 4.25960 ++    SYNTAX_NORMAL_CM2(LDMTS, LDMTS, LDMTS, LDMTS_PU, INTREG, REGLIST16, AVR32_V1),
 4.25961 ++    SYNTAX_NORMALM2(LDMTS_PU, LDMTS, LDMTS_PU, INTREG_POSTINC, REGLIST16, AVR32_V1),
 4.25962 ++    SYNTAX_NORMAL2(LDSWP_SH, LDSWP_SH, LDSWP_SH, INTREG, INTREG_SDISP_H, AVR32_V1),
 4.25963 ++    SYNTAX_NORMAL2(LDSWP_UH, LDSWP_UH, LDSWP_UH, INTREG, INTREG_SDISP_H, AVR32_V1),
 4.25964 ++    SYNTAX_NORMAL2(LDSWP_W, LDSWP_W, LDSWP_W, INTREG, INTREG_SDISP_W, AVR32_V1),
 4.25965 ++    SYNTAX_NORMAL_C3(LSL1, LSL, LSL1, LSL3, INTREG, INTREG, INTREG, AVR32_V1),
 4.25966 ++    SYNTAX_NORMAL_C3(LSL3, LSL, LSL3, LSL2, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 4.25967 ++    SYNTAX_NORMAL2(LSL2, LSL, LSL2, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 4.25968 ++    SYNTAX_NORMAL_C3(LSR1, LSR, LSR1, LSR3, INTREG, INTREG, INTREG, AVR32_V1),
 4.25969 ++    SYNTAX_NORMAL_C3(LSR3, LSR, LSR3, LSR2, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 4.25970 ++    SYNTAX_NORMAL2(LSR2, LSR, LSR2, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 4.25971 ++    SYNTAX_NORMAL3(MAC, MAC, MAC, INTREG, INTREG, INTREG, AVR32_V1),
 4.25972 ++    SYNTAX_NORMAL3(MACHH_D, MACHH_D, MACHH_D, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 4.25973 ++    SYNTAX_NORMAL3(MACHH_W, MACHH_W, MACHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 4.25974 ++    SYNTAX_NORMAL3(MACS_D, MACS_D, MACS_D, INTREG, INTREG, INTREG, AVR32_V1),
 4.25975 ++    SYNTAX_NORMAL3(MACSATHH_W, MACSATHH_W, MACSATHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 4.25976 ++    SYNTAX_NORMAL3(MACUD, MACU_D, MACUD, INTREG, INTREG, INTREG, AVR32_V1),
 4.25977 ++    SYNTAX_NORMAL3(MACWH_D, MACWH_D, MACWH_D, INTREG, INTREG, INTREG_HSEL, AVR32_DSP),
 4.25978 ++    SYNTAX_NORMAL3(MAX, MAX, MAX, INTREG, INTREG, INTREG, AVR32_V1),
 4.25979 ++    SYNTAX_NORMAL1(MCALL, MCALL, MCALL, MCALL, AVR32_V1),
 4.25980 ++    SYNTAX_NORMAL2(MFDR, MFDR, MFDR, INTREG, UNSIGNED_CONST_W, AVR32_V1),
 4.25981 ++    SYNTAX_NORMAL2(MFSR, MFSR, MFSR, INTREG, UNSIGNED_CONST_W, AVR32_V1),
 4.25982 ++    SYNTAX_NORMAL3(MIN, MIN, MIN, INTREG, INTREG, INTREG, AVR32_V1),
 4.25983 ++    SYNTAX_NORMAL_C2(MOV3, MOV, MOV3, MOV1, INTREG, INTREG, AVR32_V1),
 4.25984 ++    SYNTAX_NORMAL_C2(MOV1, MOV, MOV1, MOV2, INTREG, SIGNED_CONST, AVR32_V1),
 4.25985 ++    SYNTAX_NORMAL2(MOV2, MOV, MOV2,INTREG, SIGNED_CONST, AVR32_V1),
 4.25986 ++    SYNTAX_NORMAL_C2(MOVEQ1, MOVEQ, MOVEQ1, MOVEQ2, INTREG, INTREG, AVR32_V1),
 4.25987 ++    SYNTAX_NORMAL_C2(MOVNE1, MOVNE, MOVNE1, MOVNE2, INTREG, INTREG, AVR32_V1),
 4.25988 ++    SYNTAX_NORMAL_C2(MOVCC1, MOVCC, MOVCC1, MOVCC2, INTREG, INTREG, AVR32_V1),
 4.25989 ++    SYNTAX_NORMAL_C2(MOVCS1, MOVCS, MOVCS1, MOVCS2, INTREG, INTREG, AVR32_V1),
 4.25990 ++    SYNTAX_NORMAL_C2(MOVGE1, MOVGE, MOVGE1, MOVGE2, INTREG, INTREG, AVR32_V1),
 4.25991 ++    SYNTAX_NORMAL_C2(MOVLT1, MOVLT, MOVLT1, MOVLT2, INTREG, INTREG, AVR32_V1),
 4.25992 ++    SYNTAX_NORMAL_C2(MOVMI1, MOVMI, MOVMI1, MOVMI2, INTREG, INTREG, AVR32_V1),
 4.25993 ++    SYNTAX_NORMAL_C2(MOVPL1, MOVPL, MOVPL1, MOVPL2, INTREG, INTREG, AVR32_V1),
 4.25994 ++    SYNTAX_NORMAL_C2(MOVLS1, MOVLS, MOVLS1, MOVLS2, INTREG, INTREG, AVR32_V1),
 4.25995 ++    SYNTAX_NORMAL_C2(MOVGT1, MOVGT, MOVGT1, MOVGT2, INTREG, INTREG, AVR32_V1),
 4.25996 ++    SYNTAX_NORMAL_C2(MOVLE1, MOVLE, MOVLE1, MOVLE2, INTREG, INTREG, AVR32_V1),
 4.25997 ++    SYNTAX_NORMAL_C2(MOVHI1, MOVHI, MOVHI1, MOVHI2, INTREG, INTREG, AVR32_V1),
 4.25998 ++    SYNTAX_NORMAL_C2(MOVVS1, MOVVS, MOVVS1, MOVVS2, INTREG, INTREG, AVR32_V1),
 4.25999 ++    SYNTAX_NORMAL_C2(MOVVC1, MOVVC, MOVVC1, MOVVC2, INTREG, INTREG, AVR32_V1),
 4.26000 ++    SYNTAX_NORMAL_C2(MOVQS1, MOVQS, MOVQS1, MOVQS2, INTREG, INTREG, AVR32_V1),
 4.26001 ++    SYNTAX_NORMAL_C2(MOVAL1, MOVAL, MOVAL1, MOVAL2, INTREG, INTREG, AVR32_V1),
 4.26002 ++    SYNTAX_NORMAL_C2(MOVHS1, MOVHS, MOVCC1, MOVHS2, INTREG, INTREG, AVR32_V1),
 4.26003 ++    SYNTAX_NORMAL_C2(MOVLO1, MOVLO, MOVCS1, MOVLO2, INTREG, INTREG, AVR32_V1),
 4.26004 ++    SYNTAX_NORMAL2(MOVEQ2, MOVEQ, MOVEQ2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26005 ++    SYNTAX_NORMAL2(MOVNE2, MOVNE, MOVNE2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26006 ++    SYNTAX_NORMAL2(MOVCC2, MOVCC, MOVCC2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26007 ++    SYNTAX_NORMAL2(MOVCS2, MOVCS, MOVCS2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26008 ++    SYNTAX_NORMAL2(MOVGE2, MOVGE, MOVGE2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26009 ++    SYNTAX_NORMAL2(MOVLT2, MOVLT, MOVLT2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26010 ++    SYNTAX_NORMAL2(MOVMI2, MOVMI, MOVMI2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26011 ++    SYNTAX_NORMAL2(MOVPL2, MOVPL, MOVPL2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26012 ++    SYNTAX_NORMAL2(MOVLS2, MOVLS, MOVLS2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26013 ++    SYNTAX_NORMAL2(MOVGT2, MOVGT, MOVGT2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26014 ++    SYNTAX_NORMAL2(MOVLE2, MOVLE, MOVLE2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26015 ++    SYNTAX_NORMAL2(MOVHI2, MOVHI, MOVHI2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26016 ++    SYNTAX_NORMAL2(MOVVS2, MOVVS, MOVVS2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26017 ++    SYNTAX_NORMAL2(MOVVC2, MOVVC, MOVVC2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26018 ++    SYNTAX_NORMAL2(MOVQS2, MOVQS, MOVQS2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26019 ++    SYNTAX_NORMAL2(MOVAL2, MOVAL, MOVAL2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26020 ++    SYNTAX_NORMAL2(MOVHS2, MOVHS, MOVCC2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26021 ++    SYNTAX_NORMAL2(MOVLO2, MOVLO, MOVCS2, INTREG, SIGNED_CONST, AVR32_V1),
 4.26022 ++    SYNTAX_NORMAL2(MTDR, MTDR, MTDR, UNSIGNED_CONST_W, INTREG, AVR32_V1),
 4.26023 ++    SYNTAX_NORMAL2(MTSR, MTSR, MTSR, UNSIGNED_CONST_W, INTREG, AVR32_V1),
 4.26024 ++    SYNTAX_NORMAL_C2(MUL1, MUL, MUL1, MUL2, INTREG, INTREG, AVR32_V1),
 4.26025 ++    SYNTAX_NORMAL_C3(MUL2, MUL, MUL2, MUL3, INTREG, INTREG, INTREG, AVR32_V1),
 4.26026 ++    SYNTAX_NORMAL3(MUL3, MUL, MUL3, INTREG, INTREG, SIGNED_CONST, AVR32_V1),
 4.26027 ++    SYNTAX_NORMAL3(MULHH_W, MULHH_W, MULHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 4.26028 ++    SYNTAX_NORMAL3(MULNHH_W, MULNHH_W, MULNHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 4.26029 ++    SYNTAX_NORMAL3(MULNWH_D, MULNWH_D, MULNWH_D, INTREG, INTREG, INTREG_HSEL, AVR32_DSP),
 4.26030 ++    SYNTAX_NORMAL3(MULSD, MULS_D, MULSD, INTREG, INTREG, INTREG, AVR32_V1),
 4.26031 ++    SYNTAX_NORMAL3(MULSATHH_H, MULSATHH_H, MULSATHH_H, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 4.26032 ++    SYNTAX_NORMAL3(MULSATHH_W, MULSATHH_W, MULSATHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 4.26033 ++    SYNTAX_NORMAL3(MULSATRNDHH_H, MULSATRNDHH_H, MULSATRNDHH_H, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 4.26034 ++    SYNTAX_NORMAL3(MULSATRNDWH_W, MULSATRNDWH_W, MULSATRNDWH_W, INTREG, INTREG, INTREG_HSEL, AVR32_DSP),
 4.26035 ++    SYNTAX_NORMAL3(MULSATWH_W, MULSATWH_W, MULSATWH_W, INTREG, INTREG, INTREG_HSEL, AVR32_DSP),
 4.26036 ++    SYNTAX_NORMAL3(MULU_D, MULU_D, MULU_D, INTREG, INTREG, INTREG, AVR32_V1),
 4.26037 ++    SYNTAX_NORMAL3(MULWH_D, MULWH_D, MULWH_D, INTREG, INTREG, INTREG_HSEL, AVR32_DSP),
 4.26038 ++    SYNTAX_NORMAL1(MUSFR, MUSFR, MUSFR, INTREG, AVR32_V1),
 4.26039 ++    SYNTAX_NORMAL1(MUSTR, MUSTR, MUSTR, INTREG, AVR32_V1),
 4.26040 ++    SYNTAX_NORMAL3(MVCR_D, MVCR_D, MVCR_D, CPNO, DWREG, CPREG_D, AVR32_V1),
 4.26041 ++    SYNTAX_NORMAL3(MVCR_W, MVCR_W, MVCR_W, CPNO, INTREG, CPREG, AVR32_V1),
 4.26042 ++    SYNTAX_NORMAL3(MVRC_D, MVRC_D, MVRC_D, CPNO, CPREG_D, DWREG, AVR32_V1),
 4.26043 ++    SYNTAX_NORMAL3(MVRC_W, MVRC_W, MVRC_W, CPNO, CPREG, INTREG, AVR32_V1),
 4.26044 ++    SYNTAX_NORMAL1(NEG, NEG, NEG, INTREG, AVR32_V1),
 4.26045 ++    SYNTAX_NORMAL0(NOP, NOP, NOP, AVR32_V1),
 4.26046 ++    SYNTAX_NORMAL_C2(OR1, OR, OR1, OR2, INTREG, INTREG, AVR32_V1),
 4.26047 ++    SYNTAX_NORMAL_C3(OR2, OR, OR2, OR3, INTREG, INTREG, INTREG_LSL, AVR32_V1),
 4.26048 ++    SYNTAX_NORMAL3(OR3, OR, OR3, INTREG, INTREG, INTREG_LSR, AVR32_V1),
 4.26049 ++    SYNTAX_NORMAL2(ORH, ORH, ORH, INTREG, UNSIGNED_CONST, AVR32_V1),
 4.26050 ++    SYNTAX_NORMAL2(ORL, ORL, ORL, INTREG, UNSIGNED_CONST, AVR32_V1),
 4.26051 ++    SYNTAX_NORMAL2(PABS_SB, PABS_SB, PABS_SB, INTREG, INTREG, AVR32_SIMD),
 4.26052 ++    SYNTAX_NORMAL2(PABS_SH, PABS_SH, PABS_SH, INTREG, INTREG, AVR32_SIMD),
 4.26053 ++    SYNTAX_NORMAL3(PACKSH_SB, PACKSH_SB, PACKSH_SB, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26054 ++    SYNTAX_NORMAL3(PACKSH_UB, PACKSH_UB, PACKSH_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26055 ++    SYNTAX_NORMAL3(PACKW_SH, PACKW_SH, PACKW_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26056 ++    SYNTAX_NORMAL3(PADD_B, PADD_B, PADD_B, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26057 ++    SYNTAX_NORMAL3(PADD_H, PADD_H, PADD_H, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26058 ++    SYNTAX_NORMAL3(PADDH_SH, PADDH_SH, PADDH_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26059 ++    SYNTAX_NORMAL3(PADDH_UB, PADDH_UB, PADDH_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26060 ++    SYNTAX_NORMAL3(PADDS_SB, PADDS_SB, PADDS_SB, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26061 ++    SYNTAX_NORMAL3(PADDS_SH, PADDS_SH, PADDS_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26062 ++    SYNTAX_NORMAL3(PADDS_UB, PADDS_UB, PADDS_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26063 ++    SYNTAX_NORMAL3(PADDS_UH, PADDS_UH, PADDS_UH, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26064 ++    SYNTAX_NORMAL3(PADDSUB_H, PADDSUB_H, PADDSUB_H, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
 4.26065 ++    SYNTAX_NORMAL3(PADDSUBH_SH, PADDSUBH_SH, PADDSUBH_SH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
 4.26066 ++    SYNTAX_NORMAL3(PADDSUBS_SH, PADDSUBS_SH, PADDSUBS_SH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
 4.26067 ++    SYNTAX_NORMAL3(PADDSUBS_UH, PADDSUBS_UH, PADDSUBS_UH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
 4.26068 ++    SYNTAX_NORMAL3(PADDX_H, PADDX_H, PADDX_H, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26069 ++    SYNTAX_NORMAL3(PADDXH_SH, PADDXH_SH, PADDXH_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26070 ++    SYNTAX_NORMAL3(PADDXS_SH, PADDXS_SH, PADDXS_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26071 ++    SYNTAX_NORMAL3(PADDXS_UH, PADDXS_UH, PADDXS_UH, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26072 ++    SYNTAX_NORMAL3(PASR_B, PASR_B, PASR_B, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
 4.26073 ++    SYNTAX_NORMAL3(PASR_H, PASR_H, PASR_H, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
 4.26074 ++    SYNTAX_NORMAL3(PAVG_SH, PAVG_SH, PAVG_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26075 ++    SYNTAX_NORMAL3(PAVG_UB, PAVG_UB, PAVG_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26076 ++    SYNTAX_NORMAL3(PLSL_B, PLSL_B, PLSL_B, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
 4.26077 ++    SYNTAX_NORMAL3(PLSL_H, PLSL_H, PLSL_H, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
 4.26078 ++    SYNTAX_NORMAL3(PLSR_B, PLSR_B, PLSR_B, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
 4.26079 ++    SYNTAX_NORMAL3(PLSR_H, PLSR_H, PLSR_H, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
 4.26080 ++    SYNTAX_NORMAL3(PMAX_SH, PMAX_SH, PMAX_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26081 ++    SYNTAX_NORMAL3(PMAX_UB, PMAX_UB, PMAX_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26082 ++    SYNTAX_NORMAL3(PMIN_SH, PMIN_SH, PMIN_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26083 ++    SYNTAX_NORMAL3(PMIN_UB, PMIN_UB, PMIN_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26084 ++    SYNTAX_NORMAL0(POPJC, POPJC, POPJC, AVR32_V1),
 4.26085 ++    SYNTAX_NORMAL_CM1(POPM, POPM, POPM, POPM_E, REGLIST9, AVR32_V1),
 4.26086 ++    SYNTAX_NORMALM1(POPM_E, POPM, POPM_E, REGLIST16, AVR32_V1),
 4.26087 ++    SYNTAX_NORMAL1(PREF, PREF, PREF, INTREG_SDISP, AVR32_V1),
 4.26088 ++    SYNTAX_NORMAL3(PSAD, PSAD, PSAD, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26089 ++    SYNTAX_NORMAL3(PSUB_B, PSUB_B, PSUB_B, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26090 ++    SYNTAX_NORMAL3(PSUB_H, PSUB_H, PSUB_H, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26091 ++    SYNTAX_NORMAL3(PSUBADD_H, PSUBADD_H, PSUBADD_H, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
 4.26092 ++    SYNTAX_NORMAL3(PSUBADDH_SH, PSUBADDH_SH, PSUBADDH_SH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
 4.26093 ++    SYNTAX_NORMAL3(PSUBADDS_SH, PSUBADDS_SH, PSUBADDS_SH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
 4.26094 ++    SYNTAX_NORMAL3(PSUBADDS_UH, PSUBADDS_UH, PSUBADDS_UH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
 4.26095 ++    SYNTAX_NORMAL3(PSUBH_SH, PSUBH_SH, PSUBH_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26096 ++    SYNTAX_NORMAL3(PSUBH_UB, PSUBH_UB, PSUBH_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26097 ++    SYNTAX_NORMAL3(PSUBS_SB, PSUBS_SB, PSUBS_SB, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26098 ++    SYNTAX_NORMAL3(PSUBS_SH, PSUBS_SH, PSUBS_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26099 ++    SYNTAX_NORMAL3(PSUBS_UB, PSUBS_UB, PSUBS_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26100 ++    SYNTAX_NORMAL3(PSUBS_UH, PSUBS_UH, PSUBS_UH, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26101 ++    SYNTAX_NORMAL3(PSUBX_H, PSUBX_H, PSUBX_H, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26102 ++    SYNTAX_NORMAL3(PSUBXH_SH, PSUBXH_SH, PSUBXH_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26103 ++    SYNTAX_NORMAL3(PSUBXS_SH, PSUBXS_SH, PSUBXS_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26104 ++    SYNTAX_NORMAL3(PSUBXS_UH, PSUBXS_UH, PSUBXS_UH, INTREG, INTREG, INTREG, AVR32_SIMD),
 4.26105 ++    SYNTAX_NORMAL2(PUNPCKSB_H, PUNPCKSB_H, PUNPCKSB_H, INTREG, INTREG_HSEL, AVR32_SIMD),
 4.26106 ++    SYNTAX_NORMAL2(PUNPCKUB_H, PUNPCKUB_H, PUNPCKUB_H, INTREG, INTREG_HSEL, AVR32_SIMD),
 4.26107 ++    SYNTAX_NORMAL0(PUSHJC, PUSHJC, PUSHJC, AVR32_V1),
 4.26108 ++    SYNTAX_NORMAL_CM1(PUSHM, PUSHM, PUSHM, PUSHM_E, REGLIST8, AVR32_V1),
 4.26109 ++    SYNTAX_NORMALM1(PUSHM_E, PUSHM, PUSHM_E, REGLIST16, AVR32_V1),
 4.26110 ++    SYNTAX_NORMAL_C1(RCALL1, RCALL, RCALL1, RCALL2, JMPLABEL, AVR32_V1),
 4.26111 ++    SYNTAX_NORMAL1(RCALL2, RCALL, RCALL2, JMPLABEL, AVR32_V1),
 4.26112 ++    SYNTAX_NORMAL1(RETEQ, RETEQ, RETEQ, RETVAL, AVR32_V1),
 4.26113 ++    SYNTAX_NORMAL1(RETNE, RETNE, RETNE, RETVAL, AVR32_V1),
 4.26114 ++    SYNTAX_NORMAL1(RETCC, RETCC, RETCC, RETVAL, AVR32_V1),
 4.26115 ++    SYNTAX_NORMAL1(RETCS, RETCS, RETCS, RETVAL, AVR32_V1),
 4.26116 ++    SYNTAX_NORMAL1(RETGE, RETGE, RETGE, RETVAL, AVR32_V1),
 4.26117 ++    SYNTAX_NORMAL1(RETLT, RETLT, RETLT, RETVAL, AVR32_V1),
 4.26118 ++    SYNTAX_NORMAL1(RETMI, RETMI, RETMI, RETVAL, AVR32_V1),
 4.26119 ++    SYNTAX_NORMAL1(RETPL, RETPL, RETPL, RETVAL, AVR32_V1),
 4.26120 ++    SYNTAX_NORMAL1(RETLS, RETLS, RETLS, RETVAL, AVR32_V1),
 4.26121 ++    SYNTAX_NORMAL1(RETGT, RETGT, RETGT, RETVAL, AVR32_V1),
 4.26122 ++    SYNTAX_NORMAL1(RETLE, RETLE, RETLE, RETVAL, AVR32_V1),
 4.26123 ++    SYNTAX_NORMAL1(RETHI, RETHI, RETHI, RETVAL, AVR32_V1),
 4.26124 ++    SYNTAX_NORMAL1(RETVS, RETVS, RETVS, RETVAL, AVR32_V1),
 4.26125 ++    SYNTAX_NORMAL1(RETVC, RETVC, RETVC, RETVAL, AVR32_V1),
 4.26126 ++    SYNTAX_NORMAL1(RETQS, RETQS, RETQS, RETVAL, AVR32_V1),
 4.26127 ++    SYNTAX_NORMAL1(RETAL, RETAL, RETAL, RETVAL, AVR32_V1),
 4.26128 ++    SYNTAX_NORMAL1(RETHS, RETHS, RETCC, RETVAL, AVR32_V1),
 4.26129 ++    SYNTAX_NORMAL1(RETLO, RETLO, RETCS, RETVAL, AVR32_V1),
 4.26130 ++    SYNTAX_NORMAL0(RETD, RETD, RETD, AVR32_V1),
 4.26131 ++    SYNTAX_NORMAL0(RETE, RETE, RETE, AVR32_V1),
 4.26132 ++    SYNTAX_NORMAL0(RETJ, RETJ, RETJ, AVR32_V1),
 4.26133 ++    SYNTAX_NORMAL0(RETS, RETS, RETS, AVR32_V1),
 4.26134 ++    SYNTAX_NORMAL1(RJMP, RJMP, RJMP, JMPLABEL, AVR32_V1),
 4.26135 ++    SYNTAX_NORMAL1(ROL, ROL, ROL, INTREG, AVR32_V1),
 4.26136 ++    SYNTAX_NORMAL1(ROR, ROR, ROR, INTREG, AVR32_V1),
 4.26137 ++    SYNTAX_NORMAL_C2(RSUB1, RSUB, RSUB1, RSUB2, INTREG, INTREG, AVR32_V1),
 4.26138 ++    SYNTAX_NORMAL3(RSUB2, RSUB, RSUB2, INTREG, INTREG, SIGNED_CONST, AVR32_V1),
 4.26139 ++    SYNTAX_NORMAL3(SATADD_H, SATADD_H, SATADD_H, INTREG, INTREG, INTREG,  AVR32_DSP),
 4.26140 ++    SYNTAX_NORMAL3(SATADD_W, SATADD_W, SATADD_W, INTREG, INTREG, INTREG, AVR32_DSP),
 4.26141 ++    SYNTAX_NORMAL2(SATRNDS, SATRNDS, SATRNDS, INTREG_LSR, UNSIGNED_NUMBER, AVR32_DSP),
 4.26142 ++    SYNTAX_NORMAL2(SATRNDU, SATRNDU, SATRNDU, INTREG_LSR, UNSIGNED_NUMBER, AVR32_DSP),
 4.26143 ++    SYNTAX_NORMAL2(SATS, SATS, SATS, INTREG_LSR, UNSIGNED_NUMBER, AVR32_DSP),
 4.26144 ++    SYNTAX_NORMAL3(SATSUB_H, SATSUB_H, SATSUB_H, INTREG, INTREG, INTREG, AVR32_DSP),
 4.26145 ++    SYNTAX_NORMAL_C3(SATSUB_W1, SATSUB_W, SATSUB_W1, SATSUB_W2, INTREG, INTREG, INTREG, AVR32_DSP),
 4.26146 ++    SYNTAX_NORMAL3(SATSUB_W2, SATSUB_W, SATSUB_W2, INTREG, INTREG, SIGNED_CONST, AVR32_DSP),
 4.26147 ++    SYNTAX_NORMAL2(SATU, SATU, SATU, INTREG_LSR, UNSIGNED_NUMBER, AVR32_V1),
 4.26148 ++    SYNTAX_NORMAL3(SBC, SBC, SBC, INTREG, INTREG, INTREG, AVR32_V1),
 4.26149 ++    SYNTAX_NORMAL2(SBR, SBR, SBR, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 4.26150 ++    SYNTAX_NORMAL0(SCALL, SCALL, SCALL, AVR32_V1),
 4.26151 ++    SYNTAX_NORMAL1(SCR, SCR, SCR, INTREG, AVR32_V1),
 4.26152 ++    SYNTAX_NORMAL1(SLEEP, SLEEP, SLEEP, UNSIGNED_CONST, AVR32_V1),
 4.26153 ++    SYNTAX_NORMAL1(SREQ, SREQ, SREQ, INTREG, AVR32_V1),
 4.26154 ++    SYNTAX_NORMAL1(SRNE, SRNE, SRNE, INTREG, AVR32_V1),
 4.26155 ++    SYNTAX_NORMAL1(SRCC, SRCC, SRCC, INTREG, AVR32_V1),
 4.26156 ++    SYNTAX_NORMAL1(SRCS, SRCS, SRCS, INTREG, AVR32_V1),
 4.26157 ++    SYNTAX_NORMAL1(SRGE, SRGE, SRGE, INTREG, AVR32_V1),
 4.26158 ++    SYNTAX_NORMAL1(SRLT, SRLT, SRLT, INTREG, AVR32_V1),
 4.26159 ++    SYNTAX_NORMAL1(SRMI, SRMI, SRMI, INTREG, AVR32_V1),
 4.26160 ++    SYNTAX_NORMAL1(SRPL, SRPL, SRPL, INTREG, AVR32_V1),
 4.26161 ++    SYNTAX_NORMAL1(SRLS, SRLS, SRLS, INTREG, AVR32_V1),
 4.26162 ++    SYNTAX_NORMAL1(SRGT, SRGT, SRGT, INTREG, AVR32_V1),
 4.26163 ++    SYNTAX_NORMAL1(SRLE, SRLE, SRLE, INTREG, AVR32_V1),
 4.26164 ++    SYNTAX_NORMAL1(SRHI, SRHI, SRHI, INTREG, AVR32_V1),
 4.26165 ++    SYNTAX_NORMAL1(SRVS, SRVS, SRVS, INTREG, AVR32_V1),
 4.26166 ++    SYNTAX_NORMAL1(SRVC, SRVC, SRVC, INTREG, AVR32_V1),
 4.26167 ++    SYNTAX_NORMAL1(SRQS, SRQS, SRQS, INTREG, AVR32_V1),
 4.26168 ++    SYNTAX_NORMAL1(SRAL, SRAL, SRAL, INTREG, AVR32_V1),
 4.26169 ++    SYNTAX_NORMAL1(SRHS, SRHS, SRCC, INTREG, AVR32_V1),
 4.26170 ++    SYNTAX_NORMAL1(SRLO, SRLO, SRCS, INTREG, AVR32_V1),
 4.26171 ++    SYNTAX_NORMAL1(SSRF, SSRF, SSRF, UNSIGNED_NUMBER, AVR32_V1),
 4.26172 ++    SYNTAX_NORMAL_C2(ST_B1, ST_B, ST_B1, ST_B2, INTREG_POSTINC, INTREG, AVR32_V1),
 4.26173 ++    SYNTAX_NORMAL_C2(ST_B2, ST_B, ST_B2, ST_B5, INTREG_PREDEC, INTREG, AVR32_V1),
 4.26174 ++    SYNTAX_NORMAL_C2(ST_B5, ST_B, ST_B5, ST_B3, INTREG_INDEX, INTREG, AVR32_V1),
 4.26175 ++    SYNTAX_NORMAL_C2(ST_B3, ST_B, ST_B3, ST_B4, INTREG_UDISP, INTREG, AVR32_V1),
 4.26176 ++    SYNTAX_NORMAL2(ST_B4, ST_B, ST_B4, INTREG_SDISP, INTREG, AVR32_V1),
 4.26177 ++    SYNTAX_NORMAL_C2(ST_D1, ST_D, ST_D1, ST_D2, INTREG_POSTINC, DWREG, AVR32_V1),
 4.26178 ++    SYNTAX_NORMAL_C2(ST_D2, ST_D, ST_D2, ST_D3, INTREG_PREDEC, DWREG, AVR32_V1),
 4.26179 ++    SYNTAX_NORMAL_C2(ST_D3, ST_D, ST_D3, ST_D5, INTREG, DWREG, AVR32_V1),
 4.26180 ++    SYNTAX_NORMAL_C2(ST_D5, ST_D, ST_D5, ST_D4, INTREG_INDEX, DWREG, AVR32_V1),
 4.26181 ++    SYNTAX_NORMAL2(ST_D4, ST_D, ST_D4, INTREG_SDISP, DWREG, AVR32_V1),
 4.26182 ++    SYNTAX_NORMAL_C2(ST_H1, ST_H, ST_H1, ST_H2, INTREG_POSTINC, INTREG, AVR32_V1),
 4.26183 ++    SYNTAX_NORMAL_C2(ST_H2, ST_H, ST_H2, ST_H5, INTREG_PREDEC, INTREG, AVR32_V1),
 4.26184 ++    SYNTAX_NORMAL_C2(ST_H5, ST_H, ST_H5, ST_H3, INTREG_INDEX, INTREG, AVR32_V1),
 4.26185 ++    SYNTAX_NORMAL_C2(ST_H3, ST_H, ST_H3, ST_H4, INTREG_UDISP_H, INTREG, AVR32_V1),
 4.26186 ++    SYNTAX_NORMAL2(ST_H4, ST_H, ST_H4, INTREG_SDISP, INTREG, AVR32_V1),
 4.26187 ++    SYNTAX_NORMAL_C2(ST_W1, ST_W, ST_W1, ST_W2, INTREG_POSTINC, INTREG, AVR32_V1),
 4.26188 ++    SYNTAX_NORMAL_C2(ST_W2, ST_W, ST_W2, ST_W5, INTREG_PREDEC, INTREG, AVR32_V1),
 4.26189 ++    SYNTAX_NORMAL_C2(ST_W5, ST_W, ST_W5, ST_W3, INTREG_INDEX, INTREG, AVR32_V1),
 4.26190 ++    SYNTAX_NORMAL_C2(ST_W3, ST_W, ST_W3, ST_W4, INTREG_UDISP_W, INTREG, AVR32_V1),
 4.26191 ++    SYNTAX_NORMAL2(ST_W4, ST_W, ST_W4, INTREG_SDISP, INTREG, AVR32_V1),
 4.26192 ++    SYNTAX_NORMAL3(STC_D1, STC_D, STC_D1, CPNO, INTREG_UDISP_W, CPREG_D, AVR32_V1),
 4.26193 ++    SYNTAX_NORMAL_C3(STC_D2, STC_D, STC_D2, STC_D1, CPNO, INTREG_POSTINC, CPREG_D, AVR32_V1),
 4.26194 ++    SYNTAX_NORMAL_C3(STC_D3, STC_D, STC_D3, STC_D2, CPNO, INTREG_INDEX, CPREG_D, AVR32_V1),
 4.26195 ++    SYNTAX_NORMAL3(STC_W1, STC_W, STC_W1, CPNO, INTREG_UDISP_W, CPREG, AVR32_V1),
 4.26196 ++    SYNTAX_NORMAL_C3(STC_W2, STC_W, STC_W2, STC_W1, CPNO, INTREG_POSTINC, CPREG, AVR32_V1),
 4.26197 ++    SYNTAX_NORMAL_C3(STC_W3, STC_W, STC_W3, STC_W2, CPNO, INTREG_INDEX, CPREG, AVR32_V1),
 4.26198 ++    SYNTAX_NORMAL2(STC0_D, STC0_D, STC0_D, INTREG_UDISP_W, CPREG_D, AVR32_V1),
 4.26199 ++    SYNTAX_NORMAL2(STC0_W, STC0_W, STC0_W, INTREG_UDISP_W, CPREG, AVR32_V1),
 4.26200 ++    SYNTAX_NORMAL_CM3(STCM_D, STCM_D, STCM_D, STCM_D_PU, CPNO, INTREG, REGLIST_CPD8, AVR32_V1),
 4.26201 ++    SYNTAX_NORMALM3(STCM_D_PU, STCM_D, STCM_D_PU, CPNO, INTREG_PREDEC, REGLIST_CPD8, AVR32_V1),
 4.26202 ++    SYNTAX_NORMAL_CM3(STCM_W, STCM_W, STCM_W, STCM_W_PU, CPNO, INTREG, REGLIST_CP8, AVR32_V1),
 4.26203 ++    SYNTAX_NORMALM3(STCM_W_PU, STCM_W, STCM_W_PU, CPNO, INTREG_PREDEC, REGLIST_CP8, AVR32_V1),
 4.26204 ++    SYNTAX_NORMAL2(STCOND, STCOND, STCOND, INTREG_SDISP, INTREG, AVR32_V1),
 4.26205 ++    SYNTAX_NORMAL2(STDSP, STDSP, STDSP, SP_UDISP_W, INTREG, AVR32_V1),
 4.26206 ++    SYNTAX_NORMAL_C3(STHH_W2, STHH_W, STHH_W2, STHH_W1, INTREG_INDEX, INTREG_HSEL, INTREG_HSEL, AVR32_V1),
 4.26207 ++    SYNTAX_NORMAL3(STHH_W1, STHH_W, STHH_W1, INTREG_UDISP_W, INTREG_HSEL, INTREG_HSEL, AVR32_V1),
 4.26208 ++    SYNTAX_NORMAL_CM2(STM, STM, STM, STM_PU, INTREG, REGLIST16, AVR32_V1),
 4.26209 ++    SYNTAX_NORMALM2(STM_PU, STM, STM_PU, INTREG_PREDEC, REGLIST16, AVR32_V1),
 4.26210 ++    SYNTAX_NORMAL_CM2(STMTS, STMTS, STMTS, STMTS_PU, INTREG, REGLIST16, AVR32_V1),
 4.26211 ++    SYNTAX_NORMALM2(STMTS_PU, STMTS, STMTS_PU, INTREG_PREDEC, REGLIST16, AVR32_V1),
 4.26212 ++    SYNTAX_NORMAL2(STSWP_H, STSWP_H, STSWP_H, INTREG_SDISP_H, INTREG, AVR32_V1),
 4.26213 ++    SYNTAX_NORMAL2(STSWP_W, STSWP_W, STSWP_W, INTREG_SDISP_W, INTREG, AVR32_V1),
 4.26214 ++    SYNTAX_NORMAL_C2(SUB1, SUB, SUB1, SUB2, INTREG, INTREG, AVR32_V1),
 4.26215 ++    SYNTAX_NORMAL_C3(SUB2, SUB, SUB2, SUB5, INTREG, INTREG, INTREG_LSL, AVR32_V1),
 4.26216 ++    SYNTAX_NORMAL_C3(SUB5, SUB, SUB5, SUB3_SP, INTREG, INTREG, SIGNED_CONST, AVR32_V1),
 4.26217 ++    SYNTAX_NORMAL_C2(SUB3_SP, SUB, SUB3_SP, SUB3, SP, SIGNED_CONST_W, AVR32_V1),
 4.26218 ++    SYNTAX_NORMAL_C2(SUB3, SUB, SUB3, SUB4, INTREG, SIGNED_CONST, AVR32_V1),
 4.26219 ++    SYNTAX_NORMAL2(SUB4, SUB, SUB4, INTREG, SIGNED_CONST, AVR32_V1),
 4.26220 ++    SYNTAX_NORMAL_C2(SUBEQ, SUBEQ, SUBEQ, SUB2EQ, INTREG, SIGNED_CONST, AVR32_V1),
 4.26221 ++    SYNTAX_NORMAL_C2(SUBNE, SUBNE, SUBNE, SUB2NE, INTREG, SIGNED_CONST, AVR32_V1),
 4.26222 ++    SYNTAX_NORMAL_C2(SUBCC, SUBCC, SUBCC, SUB2CC, INTREG, SIGNED_CONST, AVR32_V1),
 4.26223 ++    SYNTAX_NORMAL_C2(SUBCS, SUBCS, SUBCS, SUB2CS, INTREG, SIGNED_CONST, AVR32_V1),
 4.26224 ++    SYNTAX_NORMAL_C2(SUBGE, SUBGE, SUBGE, SUB2GE, INTREG, SIGNED_CONST, AVR32_V1),
 4.26225 ++    SYNTAX_NORMAL_C2(SUBLT, SUBLT, SUBLT, SUB2LT, INTREG, SIGNED_CONST, AVR32_V1),
 4.26226 ++    SYNTAX_NORMAL_C2(SUBMI, SUBMI, SUBMI, SUB2MI, INTREG, SIGNED_CONST, AVR32_V1),
 4.26227 ++    SYNTAX_NORMAL_C2(SUBPL, SUBPL, SUBPL, SUB2PL, INTREG, SIGNED_CONST, AVR32_V1),
 4.26228 ++    SYNTAX_NORMAL_C2(SUBLS, SUBLS, SUBLS, SUB2LS, INTREG, SIGNED_CONST, AVR32_V1),
 4.26229 ++    SYNTAX_NORMAL_C2(SUBGT, SUBGT, SUBGT, SUB2GT, INTREG, SIGNED_CONST, AVR32_V1),
 4.26230 ++    SYNTAX_NORMAL_C2(SUBLE, SUBLE, SUBLE, SUB2LE, INTREG, SIGNED_CONST, AVR32_V1),
 4.26231 ++    SYNTAX_NORMAL_C2(SUBHI, SUBHI, SUBHI, SUB2HI, INTREG, SIGNED_CONST, AVR32_V1),
 4.26232 ++    SYNTAX_NORMAL_C2(SUBVS, SUBVS, SUBVS, SUB2VS, INTREG, SIGNED_CONST, AVR32_V1),
 4.26233 ++    SYNTAX_NORMAL_C2(SUBVC, SUBVC, SUBVC, SUB2VC, INTREG, SIGNED_CONST, AVR32_V1),
 4.26234 ++    SYNTAX_NORMAL_C2(SUBQS, SUBQS, SUBQS, SUB2QS, INTREG, SIGNED_CONST, AVR32_V1),
 4.26235 ++    SYNTAX_NORMAL_C2(SUBAL, SUBAL, SUBAL, SUB2AL, INTREG, SIGNED_CONST, AVR32_V1),
 4.26236 ++    SYNTAX_NORMAL_C2(SUBHS, SUBHS, SUBCC, SUB2CC, INTREG, SIGNED_CONST, AVR32_V1),
 4.26237 ++    SYNTAX_NORMAL_C2(SUBLO, SUBLO, SUBCS, SUB2CS, INTREG, SIGNED_CONST, AVR32_V1),
 4.26238 ++    SYNTAX_NORMAL2(SUBFEQ, SUBFEQ, SUBFEQ, INTREG, SIGNED_CONST, AVR32_V1),
 4.26239 ++    SYNTAX_NORMAL2(SUBFNE, SUBFNE, SUBFNE, INTREG, SIGNED_CONST, AVR32_V1),
 4.26240 ++    SYNTAX_NORMAL2(SUBFCC, SUBFCC, SUBFCC, INTREG, SIGNED_CONST, AVR32_V1),
 4.26241 ++    SYNTAX_NORMAL2(SUBFCS, SUBFCS, SUBFCS, INTREG, SIGNED_CONST, AVR32_V1),
 4.26242 ++    SYNTAX_NORMAL2(SUBFGE, SUBFGE, SUBFGE, INTREG, SIGNED_CONST, AVR32_V1),
 4.26243 ++    SYNTAX_NORMAL2(SUBFLT, SUBFLT, SUBFLT, INTREG, SIGNED_CONST, AVR32_V1),
 4.26244 ++    SYNTAX_NORMAL2(SUBFMI, SUBFMI, SUBFMI, INTREG, SIGNED_CONST, AVR32_V1),
 4.26245 ++    SYNTAX_NORMAL2(SUBFPL, SUBFPL, SUBFPL, INTREG, SIGNED_CONST, AVR32_V1),
 4.26246 ++    SYNTAX_NORMAL2(SUBFLS, SUBFLS, SUBFLS, INTREG, SIGNED_CONST, AVR32_V1),
 4.26247 ++    SYNTAX_NORMAL2(SUBFGT, SUBFGT, SUBFGT, INTREG, SIGNED_CONST, AVR32_V1),
 4.26248 ++    SYNTAX_NORMAL2(SUBFLE, SUBFLE, SUBFLE, INTREG, SIGNED_CONST, AVR32_V1),
 4.26249 ++    SYNTAX_NORMAL2(SUBFHI, SUBFHI, SUBFHI, INTREG, SIGNED_CONST, AVR32_V1),
 4.26250 ++    SYNTAX_NORMAL2(SUBFVS, SUBFVS, SUBFVS, INTREG, SIGNED_CONST, AVR32_V1),
 4.26251 ++    SYNTAX_NORMAL2(SUBFVC, SUBFVC, SUBFVC, INTREG, SIGNED_CONST, AVR32_V1),
 4.26252 ++    SYNTAX_NORMAL2(SUBFQS, SUBFQS, SUBFQS, INTREG, SIGNED_CONST, AVR32_V1),
 4.26253 ++    SYNTAX_NORMAL2(SUBFAL, SUBFAL, SUBFAL, INTREG, SIGNED_CONST, AVR32_V1),
 4.26254 ++    SYNTAX_NORMAL2(SUBFHS, SUBFHS, SUBFCC, INTREG, SIGNED_CONST, AVR32_V1),
 4.26255 ++    SYNTAX_NORMAL2(SUBFLO, SUBFLO, SUBFCS, INTREG, SIGNED_CONST, AVR32_V1),
 4.26256 ++    SYNTAX_NORMAL3(SUBHH_W, SUBHH_W, SUBHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 4.26257 ++    SYNTAX_NORMAL1(SWAP_B, SWAP_B, SWAP_B, INTREG, AVR32_V1),
 4.26258 ++    SYNTAX_NORMAL1(SWAP_BH, SWAP_BH, SWAP_BH, INTREG, AVR32_V1),
 4.26259 ++    SYNTAX_NORMAL1(SWAP_H, SWAP_H, SWAP_H, INTREG, AVR32_V1),
 4.26260 ++    SYNTAX_NORMAL1(SYNC, SYNC, SYNC, UNSIGNED_CONST, AVR32_V1),
 4.26261 ++    SYNTAX_NORMAL0(TLBR, TLBR, TLBR, AVR32_V1),
 4.26262 ++    SYNTAX_NORMAL0(TLBS, TLBS, TLBS, AVR32_V1),
 4.26263 ++    SYNTAX_NORMAL0(TLBW, TLBW, TLBW, AVR32_V1),
 4.26264 ++    SYNTAX_NORMAL1(TNBZ, TNBZ, TNBZ, INTREG, AVR32_V1),
 4.26265 ++    SYNTAX_NORMAL2(TST, TST, TST, INTREG, INTREG, AVR32_V1),
 4.26266 ++    SYNTAX_NORMAL3(XCHG, XCHG, XCHG, INTREG, INTREG, INTREG, AVR32_V1),
 4.26267 ++    SYNTAX_NORMAL2(MEMC, MEMC, MEMC, SIGNED_CONST_W, UNSIGNED_NUMBER, AVR32_RMW),
 4.26268 ++    SYNTAX_NORMAL2(MEMS, MEMS, MEMS, SIGNED_CONST_W, UNSIGNED_NUMBER, AVR32_RMW),
 4.26269 ++    SYNTAX_NORMAL2(MEMT, MEMT, MEMT, SIGNED_CONST_W, UNSIGNED_NUMBER, AVR32_RMW),
 4.26270 ++    SYNTAX_FP(FADD, 3),
 4.26271 ++    SYNTAX_FP(FSUB, 3),
 4.26272 ++    SYNTAX_FP(FMAC, 3),
 4.26273 ++    SYNTAX_FP(FNMAC, 3),
 4.26274 ++    SYNTAX_FP(FMSC, 3),
 4.26275 ++    SYNTAX_FP(FNMSC, 3),
 4.26276 ++    SYNTAX_FP(FMUL, 3),
 4.26277 ++    SYNTAX_FP(FNMUL, 3),
 4.26278 ++    SYNTAX_FP(FNEG, 2),
 4.26279 ++    SYNTAX_FP(FABS, 2),
 4.26280 ++    SYNTAX_FP(FCMP, 2),
 4.26281 ++    {
 4.26282 ++      AVR32_SYNTAX_FMOV1_S,
 4.26283 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,
 4.26284 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV1_S] },
 4.26285 ++      &avr32_syntax_table[AVR32_SYNTAX_FMOV2_S],
 4.26286 ++      2,
 4.26287 ++      {
 4.26288 ++	AVR32_OPERAND_FPREG_S,
 4.26289 ++	AVR32_OPERAND_FPREG_S,
 4.26290 ++      },
 4.26291 ++    },
 4.26292 ++    {
 4.26293 ++      AVR32_SYNTAX_FMOV1_D,
 4.26294 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,
 4.26295 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV1_D] },
 4.26296 ++      &avr32_syntax_table[AVR32_SYNTAX_FMOV2_D],
 4.26297 ++      2,
 4.26298 ++      {
 4.26299 ++	AVR32_OPERAND_FPREG_D,
 4.26300 ++	AVR32_OPERAND_FPREG_D,
 4.26301 ++      },
 4.26302 ++    },
 4.26303 ++    {
 4.26304 ++      AVR32_SYNTAX_FMOV2_S,
 4.26305 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,
 4.26306 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV2_S] },
 4.26307 ++      &avr32_syntax_table[AVR32_SYNTAX_FMOV3_S],
 4.26308 ++      2,
 4.26309 ++      {
 4.26310 ++	AVR32_OPERAND_INTREG,
 4.26311 ++	AVR32_OPERAND_FPREG_S,
 4.26312 ++      },
 4.26313 ++    },
 4.26314 ++    {
 4.26315 ++      AVR32_SYNTAX_FMOV2_D,
 4.26316 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,
 4.26317 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV2_D] },
 4.26318 ++      &avr32_syntax_table[AVR32_SYNTAX_FMOV3_D],
 4.26319 ++      2,
 4.26320 ++      {
 4.26321 ++	AVR32_OPERAND_DWREG,
 4.26322 ++	AVR32_OPERAND_FPREG_D,
 4.26323 ++      },
 4.26324 ++    },
 4.26325 ++    {
 4.26326 ++      AVR32_SYNTAX_FMOV3_S,
 4.26327 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,
 4.26328 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV3_S] }, NULL,
 4.26329 ++      2,
 4.26330 ++      {
 4.26331 ++	AVR32_OPERAND_FPREG_S,
 4.26332 ++	AVR32_OPERAND_INTREG,
 4.26333 ++      },
 4.26334 ++    },
 4.26335 ++    {
 4.26336 ++      AVR32_SYNTAX_FMOV3_D,
 4.26337 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,
 4.26338 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV3_D] }, NULL,
 4.26339 ++      2,
 4.26340 ++      {
 4.26341 ++	AVR32_OPERAND_FPREG_D,
 4.26342 ++	AVR32_OPERAND_DWREG,
 4.26343 ++      },
 4.26344 ++    },
 4.26345 ++    {
 4.26346 ++      AVR32_SYNTAX_FCASTS_D,
 4.26347 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,
 4.26348 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_FCASTS_D] }, NULL,
 4.26349 ++      2,
 4.26350 ++      {
 4.26351 ++	AVR32_OPERAND_FPREG_S,
 4.26352 ++	AVR32_OPERAND_FPREG_D,
 4.26353 ++      },
 4.26354 ++    },
 4.26355 ++    {
 4.26356 ++      AVR32_SYNTAX_FCASTD_S,
 4.26357 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,
 4.26358 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_FCASTD_S] }, NULL,
 4.26359 ++      2,
 4.26360 ++      {
 4.26361 ++	AVR32_OPERAND_FPREG_D,
 4.26362 ++	AVR32_OPERAND_FPREG_S,
 4.26363 ++      },
 4.26364 ++    },
 4.26365 ++    {
 4.26366 ++      AVR32_SYNTAX_LDA_W,
 4.26367 ++      AVR32_V1, NULL, AVR32_PARSER_LDA,
 4.26368 ++      { NULL }, NULL,
 4.26369 ++      2,
 4.26370 ++      {
 4.26371 ++	AVR32_OPERAND_INTREG,
 4.26372 ++	AVR32_OPERAND_SIGNED_CONST,
 4.26373 ++      },
 4.26374 ++    },
 4.26375 ++    {
 4.26376 ++      AVR32_SYNTAX_CALL,
 4.26377 ++      AVR32_V1, NULL, AVR32_PARSER_CALL,
 4.26378 ++      { NULL }, NULL,
 4.26379 ++      1,
 4.26380 ++      {
 4.26381 ++	AVR32_OPERAND_JMPLABEL,
 4.26382 ++      },
 4.26383 ++    },
 4.26384 ++    {
 4.26385 ++      AVR32_SYNTAX_PICOSVMAC0,
 4.26386 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMAC], AVR32_PARSER_ALIAS,
 4.26387 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMAC0] },
 4.26388 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOSVMAC1], 4,
 4.26389 ++      {
 4.26390 ++	AVR32_OPERAND_PICO_OUT0,
 4.26391 ++	AVR32_OPERAND_PICO_IN,
 4.26392 ++	AVR32_OPERAND_PICO_IN,
 4.26393 ++	AVR32_OPERAND_PICO_IN,
 4.26394 ++      },
 4.26395 ++    },
 4.26396 ++    {
 4.26397 ++      AVR32_SYNTAX_PICOSVMAC1,
 4.26398 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMAC], AVR32_PARSER_ALIAS,
 4.26399 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMAC1] },
 4.26400 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOSVMAC2], 4,
 4.26401 ++      {
 4.26402 ++	AVR32_OPERAND_PICO_OUT1,
 4.26403 ++	AVR32_OPERAND_PICO_IN,
 4.26404 ++	AVR32_OPERAND_PICO_IN,
 4.26405 ++	AVR32_OPERAND_PICO_IN,
 4.26406 ++      },
 4.26407 ++    },
 4.26408 ++    {
 4.26409 ++      AVR32_SYNTAX_PICOSVMAC2,
 4.26410 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMAC], AVR32_PARSER_ALIAS,
 4.26411 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMAC2] },
 4.26412 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOSVMAC3], 4,
 4.26413 ++      {
 4.26414 ++	AVR32_OPERAND_PICO_OUT2,
 4.26415 ++	AVR32_OPERAND_PICO_IN,
 4.26416 ++	AVR32_OPERAND_PICO_IN,
 4.26417 ++	AVR32_OPERAND_PICO_IN,
 4.26418 ++      },
 4.26419 ++    },
 4.26420 ++    {
 4.26421 ++      AVR32_SYNTAX_PICOSVMAC3,
 4.26422 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMAC], AVR32_PARSER_ALIAS,
 4.26423 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMAC3] },
 4.26424 ++      NULL, 4,
 4.26425 ++      {
 4.26426 ++	AVR32_OPERAND_PICO_OUT3,
 4.26427 ++	AVR32_OPERAND_PICO_IN,
 4.26428 ++	AVR32_OPERAND_PICO_IN,
 4.26429 ++	AVR32_OPERAND_PICO_IN,
 4.26430 ++      },
 4.26431 ++    },
 4.26432 ++    {
 4.26433 ++      AVR32_SYNTAX_PICOSVMUL0,
 4.26434 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMUL], AVR32_PARSER_ALIAS,
 4.26435 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMUL0] },
 4.26436 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOSVMUL1], 4,
 4.26437 ++      {
 4.26438 ++	AVR32_OPERAND_PICO_OUT0,
 4.26439 ++	AVR32_OPERAND_PICO_IN,
 4.26440 ++	AVR32_OPERAND_PICO_IN,
 4.26441 ++	AVR32_OPERAND_PICO_IN,
 4.26442 ++      },
 4.26443 ++    },
 4.26444 ++    {
 4.26445 ++      AVR32_SYNTAX_PICOSVMUL1,
 4.26446 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMUL], AVR32_PARSER_ALIAS,
 4.26447 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMUL1] },
 4.26448 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOSVMUL2], 4,
 4.26449 ++      {
 4.26450 ++	AVR32_OPERAND_PICO_OUT1,
 4.26451 ++	AVR32_OPERAND_PICO_IN,
 4.26452 ++	AVR32_OPERAND_PICO_IN,
 4.26453 ++	AVR32_OPERAND_PICO_IN,
 4.26454 ++      },
 4.26455 ++    },
 4.26456 ++    {
 4.26457 ++      AVR32_SYNTAX_PICOSVMUL2,
 4.26458 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMUL], AVR32_PARSER_ALIAS,
 4.26459 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMUL2] },
 4.26460 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOSVMUL3], 4,
 4.26461 ++      {
 4.26462 ++	AVR32_OPERAND_PICO_OUT2,
 4.26463 ++	AVR32_OPERAND_PICO_IN,
 4.26464 ++	AVR32_OPERAND_PICO_IN,
 4.26465 ++	AVR32_OPERAND_PICO_IN,
 4.26466 ++      },
 4.26467 ++    },
 4.26468 ++    {
 4.26469 ++      AVR32_SYNTAX_PICOSVMUL3,
 4.26470 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMUL], AVR32_PARSER_ALIAS,
 4.26471 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMUL3] },
 4.26472 ++      NULL, 4,
 4.26473 ++      {
 4.26474 ++	AVR32_OPERAND_PICO_OUT3,
 4.26475 ++	AVR32_OPERAND_PICO_IN,
 4.26476 ++	AVR32_OPERAND_PICO_IN,
 4.26477 ++	AVR32_OPERAND_PICO_IN,
 4.26478 ++      },
 4.26479 ++    },
 4.26480 ++    {
 4.26481 ++      AVR32_SYNTAX_PICOVMAC0,
 4.26482 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMAC], AVR32_PARSER_ALIAS,
 4.26483 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMAC0] },
 4.26484 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOVMAC1], 4,
 4.26485 ++      {
 4.26486 ++	AVR32_OPERAND_PICO_OUT0,
 4.26487 ++	AVR32_OPERAND_PICO_IN,
 4.26488 ++	AVR32_OPERAND_PICO_IN,
 4.26489 ++	AVR32_OPERAND_PICO_IN,
 4.26490 ++      },
 4.26491 ++    },
 4.26492 ++    {
 4.26493 ++      AVR32_SYNTAX_PICOVMAC1,
 4.26494 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMAC], AVR32_PARSER_ALIAS,
 4.26495 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMAC1] },
 4.26496 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOVMAC2], 4,
 4.26497 ++      {
 4.26498 ++	AVR32_OPERAND_PICO_OUT1,
 4.26499 ++	AVR32_OPERAND_PICO_IN,
 4.26500 ++	AVR32_OPERAND_PICO_IN,
 4.26501 ++	AVR32_OPERAND_PICO_IN,
 4.26502 ++      },
 4.26503 ++    },
 4.26504 ++    {
 4.26505 ++      AVR32_SYNTAX_PICOVMAC2,
 4.26506 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMAC], AVR32_PARSER_ALIAS,
 4.26507 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMAC2] },
 4.26508 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOVMAC3], 4,
 4.26509 ++      {
 4.26510 ++	AVR32_OPERAND_PICO_OUT2,
 4.26511 ++	AVR32_OPERAND_PICO_IN,
 4.26512 ++	AVR32_OPERAND_PICO_IN,
 4.26513 ++	AVR32_OPERAND_PICO_IN,
 4.26514 ++      },
 4.26515 ++    },
 4.26516 ++    {
 4.26517 ++      AVR32_SYNTAX_PICOVMAC3,
 4.26518 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMAC], AVR32_PARSER_ALIAS,
 4.26519 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMAC3] },
 4.26520 ++      NULL, 4,
 4.26521 ++      {
 4.26522 ++	AVR32_OPERAND_PICO_OUT3,
 4.26523 ++	AVR32_OPERAND_PICO_IN,
 4.26524 ++	AVR32_OPERAND_PICO_IN,
 4.26525 ++	AVR32_OPERAND_PICO_IN,
 4.26526 ++      },
 4.26527 ++    },
 4.26528 ++    {
 4.26529 ++      AVR32_SYNTAX_PICOVMUL0,
 4.26530 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMUL], AVR32_PARSER_ALIAS,
 4.26531 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMUL0] },
 4.26532 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOVMUL1], 4,
 4.26533 ++      {
 4.26534 ++	AVR32_OPERAND_PICO_OUT0,
 4.26535 ++	AVR32_OPERAND_PICO_IN,
 4.26536 ++	AVR32_OPERAND_PICO_IN,
 4.26537 ++	AVR32_OPERAND_PICO_IN,
 4.26538 ++      },
 4.26539 ++    },
 4.26540 ++    {
 4.26541 ++      AVR32_SYNTAX_PICOVMUL1,
 4.26542 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMUL], AVR32_PARSER_ALIAS,
 4.26543 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMUL1] },
 4.26544 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOVMUL2], 4,
 4.26545 ++      {
 4.26546 ++	AVR32_OPERAND_PICO_OUT1,
 4.26547 ++	AVR32_OPERAND_PICO_IN,
 4.26548 ++	AVR32_OPERAND_PICO_IN,
 4.26549 ++	AVR32_OPERAND_PICO_IN,
 4.26550 ++      },
 4.26551 ++    },
 4.26552 ++    {
 4.26553 ++      AVR32_SYNTAX_PICOVMUL2,
 4.26554 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMUL], AVR32_PARSER_ALIAS,
 4.26555 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMUL2] },
 4.26556 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOVMUL3], 4,
 4.26557 ++      {
 4.26558 ++	AVR32_OPERAND_PICO_OUT2,
 4.26559 ++	AVR32_OPERAND_PICO_IN,
 4.26560 ++	AVR32_OPERAND_PICO_IN,
 4.26561 ++	AVR32_OPERAND_PICO_IN,
 4.26562 ++      },
 4.26563 ++    },
 4.26564 ++    {
 4.26565 ++      AVR32_SYNTAX_PICOVMUL3,
 4.26566 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMUL], AVR32_PARSER_ALIAS,
 4.26567 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMUL3] },
 4.26568 ++      NULL, 4,
 4.26569 ++      {
 4.26570 ++	AVR32_OPERAND_PICO_OUT3,
 4.26571 ++	AVR32_OPERAND_PICO_IN,
 4.26572 ++	AVR32_OPERAND_PICO_IN,
 4.26573 ++	AVR32_OPERAND_PICO_IN,
 4.26574 ++      },
 4.26575 ++    },
 4.26576 ++    {
 4.26577 ++      AVR32_SYNTAX_PICOLD_D2,
 4.26578 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_D], AVR32_PARSER_ALIAS,
 4.26579 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_D2] },
 4.26580 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOLD_D3], 2,
 4.26581 ++      {
 4.26582 ++	AVR32_OPERAND_PICO_REG_D,
 4.26583 ++	AVR32_OPERAND_INTREG_PREDEC,
 4.26584 ++      },
 4.26585 ++    },
 4.26586 ++    {
 4.26587 ++      AVR32_SYNTAX_PICOLD_D3,
 4.26588 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_D], AVR32_PARSER_ALIAS,
 4.26589 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_D3] },
 4.26590 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOLD_D1], 2,
 4.26591 ++      {
 4.26592 ++	AVR32_OPERAND_PICO_REG_D,
 4.26593 ++	AVR32_OPERAND_INTREG_INDEX,
 4.26594 ++      },
 4.26595 ++    },
 4.26596 ++    {
 4.26597 ++      AVR32_SYNTAX_PICOLD_D1,
 4.26598 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_D], AVR32_PARSER_ALIAS,
 4.26599 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_D1] },
 4.26600 ++      NULL, 2,
 4.26601 ++      {
 4.26602 ++	AVR32_OPERAND_PICO_REG_D,
 4.26603 ++	AVR32_OPERAND_INTREG_UDISP_W,
 4.26604 ++      },
 4.26605 ++    },
 4.26606 ++    {
 4.26607 ++      AVR32_SYNTAX_PICOLD_W2,
 4.26608 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_W], AVR32_PARSER_ALIAS,
 4.26609 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_W2] },
 4.26610 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOLD_W3], 2,
 4.26611 ++      {
 4.26612 ++	AVR32_OPERAND_PICO_REG_W,
 4.26613 ++	AVR32_OPERAND_INTREG_PREDEC,
 4.26614 ++      },
 4.26615 ++    },
 4.26616 ++    {
 4.26617 ++      AVR32_SYNTAX_PICOLD_W3,
 4.26618 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_W], AVR32_PARSER_ALIAS,
 4.26619 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_W3] },
 4.26620 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOLD_W1], 2,
 4.26621 ++      {
 4.26622 ++	AVR32_OPERAND_PICO_REG_W,
 4.26623 ++	AVR32_OPERAND_INTREG_INDEX,
 4.26624 ++      },
 4.26625 ++    },
 4.26626 ++    {
 4.26627 ++      AVR32_SYNTAX_PICOLD_W1,
 4.26628 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_W], AVR32_PARSER_ALIAS,
 4.26629 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_W1] },
 4.26630 ++      NULL, 2,
 4.26631 ++      {
 4.26632 ++	AVR32_OPERAND_PICO_REG_W,
 4.26633 ++	AVR32_OPERAND_INTREG_UDISP_W,
 4.26634 ++      },
 4.26635 ++    },
 4.26636 ++    {
 4.26637 ++      AVR32_SYNTAX_PICOLDM_D,
 4.26638 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLDM_D], AVR32_PARSER_ALIAS,
 4.26639 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLDM_D] },
 4.26640 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOLDM_D_PU], -2,
 4.26641 ++      {
 4.26642 ++	AVR32_OPERAND_INTREG,
 4.26643 ++	AVR32_OPERAND_PICO_REGLIST_D,
 4.26644 ++      },
 4.26645 ++    },
 4.26646 ++    {
 4.26647 ++      AVR32_SYNTAX_PICOLDM_D_PU,
 4.26648 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLDM_D], AVR32_PARSER_ALIAS,
 4.26649 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLDM_D_PU] },
 4.26650 ++      NULL, -2,
 4.26651 ++      {
 4.26652 ++	AVR32_OPERAND_INTREG_POSTINC,
 4.26653 ++	AVR32_OPERAND_PICO_REGLIST_D,
 4.26654 ++      },
 4.26655 ++    },
 4.26656 ++    {
 4.26657 ++      AVR32_SYNTAX_PICOLDM_W,
 4.26658 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLDM_W], AVR32_PARSER_ALIAS,
 4.26659 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLDM_W] },
 4.26660 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOLDM_W_PU], -2,
 4.26661 ++      {
 4.26662 ++	AVR32_OPERAND_INTREG,
 4.26663 ++	AVR32_OPERAND_PICO_REGLIST_W,
 4.26664 ++      },
 4.26665 ++    },
 4.26666 ++    {
 4.26667 ++      AVR32_SYNTAX_PICOLDM_W_PU,
 4.26668 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLDM_W], AVR32_PARSER_ALIAS,
 4.26669 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLDM_W_PU] },
 4.26670 ++      NULL, -2,
 4.26671 ++      {
 4.26672 ++	AVR32_OPERAND_INTREG_POSTINC,
 4.26673 ++	AVR32_OPERAND_PICO_REGLIST_W,
 4.26674 ++      },
 4.26675 ++    },
 4.26676 ++    {
 4.26677 ++      AVR32_SYNTAX_PICOMV_D1,
 4.26678 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOMV_D], AVR32_PARSER_ALIAS,
 4.26679 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOMV_D1] },
 4.26680 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOMV_D2], 2,
 4.26681 ++      {
 4.26682 ++	AVR32_OPERAND_DWREG,
 4.26683 ++	AVR32_OPERAND_PICO_REG_D,
 4.26684 ++      },
 4.26685 ++    },
 4.26686 ++    {
 4.26687 ++      AVR32_SYNTAX_PICOMV_D2,
 4.26688 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOMV_D], AVR32_PARSER_ALIAS,
 4.26689 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOMV_D2] },
 4.26690 ++      NULL, 2,
 4.26691 ++      {
 4.26692 ++	AVR32_OPERAND_PICO_REG_D,
 4.26693 ++	AVR32_OPERAND_DWREG,
 4.26694 ++      },
 4.26695 ++    },
 4.26696 ++    {
 4.26697 ++      AVR32_SYNTAX_PICOMV_W1,
 4.26698 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOMV_W], AVR32_PARSER_ALIAS,
 4.26699 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOMV_W1] },
 4.26700 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOMV_W2], 2,
 4.26701 ++      {
 4.26702 ++	AVR32_OPERAND_INTREG,
 4.26703 ++	AVR32_OPERAND_PICO_REG_W,
 4.26704 ++      },
 4.26705 ++    },
 4.26706 ++    {
 4.26707 ++      AVR32_SYNTAX_PICOMV_W2,
 4.26708 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOMV_W], AVR32_PARSER_ALIAS,
 4.26709 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOMV_W2] },
 4.26710 ++      NULL, 2,
 4.26711 ++      {
 4.26712 ++	AVR32_OPERAND_PICO_REG_W,
 4.26713 ++	AVR32_OPERAND_INTREG,
 4.26714 ++      },
 4.26715 ++    },
 4.26716 ++    {
 4.26717 ++      AVR32_SYNTAX_PICOST_D2,
 4.26718 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_D], AVR32_PARSER_ALIAS,
 4.26719 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_D2] },
 4.26720 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOST_D3], 2,
 4.26721 ++      {
 4.26722 ++	AVR32_OPERAND_INTREG_POSTINC,
 4.26723 ++	AVR32_OPERAND_PICO_REG_D,
 4.26724 ++      },
 4.26725 ++    },
 4.26726 ++    {
 4.26727 ++      AVR32_SYNTAX_PICOST_D3,
 4.26728 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_D], AVR32_PARSER_ALIAS,
 4.26729 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_D3] },
 4.26730 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOST_D1], 2,
 4.26731 ++      {
 4.26732 ++	AVR32_OPERAND_INTREG_INDEX,
 4.26733 ++	AVR32_OPERAND_PICO_REG_D,
 4.26734 ++      },
 4.26735 ++    },
 4.26736 ++    {
 4.26737 ++      AVR32_SYNTAX_PICOST_D1,
 4.26738 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_D], AVR32_PARSER_ALIAS,
 4.26739 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_D1] },
 4.26740 ++      NULL, 2,
 4.26741 ++      {
 4.26742 ++	AVR32_OPERAND_INTREG_UDISP_W,
 4.26743 ++	AVR32_OPERAND_PICO_REG_D,
 4.26744 ++      },
 4.26745 ++    },
 4.26746 ++    {
 4.26747 ++      AVR32_SYNTAX_PICOST_W2,
 4.26748 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_W], AVR32_PARSER_ALIAS,
 4.26749 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_W2] },
 4.26750 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOST_W3], 2,
 4.26751 ++      {
 4.26752 ++	AVR32_OPERAND_INTREG_POSTINC,
 4.26753 ++	AVR32_OPERAND_PICO_REG_W,
 4.26754 ++      },
 4.26755 ++    },
 4.26756 ++    {
 4.26757 ++      AVR32_SYNTAX_PICOST_W3,
 4.26758 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_W], AVR32_PARSER_ALIAS,
 4.26759 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_W3] },
 4.26760 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOST_W1], 2,
 4.26761 ++      {
 4.26762 ++	AVR32_OPERAND_INTREG_INDEX,
 4.26763 ++	AVR32_OPERAND_PICO_REG_W,
 4.26764 ++      },
 4.26765 ++    },
 4.26766 ++    {
 4.26767 ++      AVR32_SYNTAX_PICOST_W1,
 4.26768 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_W], AVR32_PARSER_ALIAS,
 4.26769 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_W1] },
 4.26770 ++      NULL, 2,
 4.26771 ++      {
 4.26772 ++	AVR32_OPERAND_INTREG_UDISP_W,
 4.26773 ++	AVR32_OPERAND_PICO_REG_W,
 4.26774 ++      },
 4.26775 ++    },
 4.26776 ++    {
 4.26777 ++      AVR32_SYNTAX_PICOSTM_D,
 4.26778 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSTM_D], AVR32_PARSER_ALIAS,
 4.26779 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSTM_D] },
 4.26780 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOSTM_D_PU], -2,
 4.26781 ++      {
 4.26782 ++	AVR32_OPERAND_INTREG,
 4.26783 ++	AVR32_OPERAND_PICO_REGLIST_D,
 4.26784 ++      },
 4.26785 ++    },
 4.26786 ++    {
 4.26787 ++      AVR32_SYNTAX_PICOSTM_D_PU,
 4.26788 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSTM_D], AVR32_PARSER_ALIAS,
 4.26789 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSTM_D_PU] },
 4.26790 ++      NULL, -2,
 4.26791 ++      {
 4.26792 ++	AVR32_OPERAND_INTREG_PREDEC,
 4.26793 ++	AVR32_OPERAND_PICO_REGLIST_D,
 4.26794 ++      },
 4.26795 ++    },
 4.26796 ++    {
 4.26797 ++      AVR32_SYNTAX_PICOSTM_W,
 4.26798 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSTM_W], AVR32_PARSER_ALIAS,
 4.26799 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSTM_W] },
 4.26800 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOSTM_W_PU], -2,
 4.26801 ++      {
 4.26802 ++	AVR32_OPERAND_INTREG,
 4.26803 ++	AVR32_OPERAND_PICO_REGLIST_W,
 4.26804 ++      },
 4.26805 ++    },
 4.26806 ++    {
 4.26807 ++      AVR32_SYNTAX_PICOSTM_W_PU,
 4.26808 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSTM_W], AVR32_PARSER_ALIAS,
 4.26809 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSTM_W_PU] },
 4.26810 ++      NULL, -2,
 4.26811 ++      {
 4.26812 ++	AVR32_OPERAND_INTREG_PREDEC,
 4.26813 ++	AVR32_OPERAND_PICO_REGLIST_W,
 4.26814 ++      },
 4.26815 ++    },
 4.26816 ++    SYNTAX_NORMAL2(RSUBEQ, RSUBEQ, RSUBEQ, INTREG, SIGNED_CONST, AVR32_V1),
 4.26817 ++    SYNTAX_NORMAL2(RSUBNE, RSUBNE, RSUBNE, INTREG, SIGNED_CONST, AVR32_V2),
 4.26818 ++    SYNTAX_NORMAL2(RSUBCC, RSUBCC, RSUBCC, INTREG, SIGNED_CONST, AVR32_V2),
 4.26819 ++    SYNTAX_NORMAL2(RSUBCS, RSUBCS, RSUBCS, INTREG, SIGNED_CONST, AVR32_V2),
 4.26820 ++    SYNTAX_NORMAL2(RSUBGE, RSUBGE, RSUBGE, INTREG, SIGNED_CONST, AVR32_V2),
 4.26821 ++    SYNTAX_NORMAL2(RSUBLT, RSUBLT, RSUBLT, INTREG, SIGNED_CONST, AVR32_V2),
 4.26822 ++    SYNTAX_NORMAL2(RSUBMI, RSUBMI, RSUBMI, INTREG, SIGNED_CONST, AVR32_V2),
 4.26823 ++    SYNTAX_NORMAL2(RSUBPL, RSUBPL, RSUBPL, INTREG, SIGNED_CONST, AVR32_V2),
 4.26824 ++    SYNTAX_NORMAL2(RSUBLS, RSUBLS, RSUBLS, INTREG, SIGNED_CONST, AVR32_V2),
 4.26825 ++    SYNTAX_NORMAL2(RSUBGT, RSUBGT, RSUBGT, INTREG, SIGNED_CONST, AVR32_V2),
 4.26826 ++    SYNTAX_NORMAL2(RSUBLE, RSUBLE, RSUBLE, INTREG, SIGNED_CONST, AVR32_V2),
 4.26827 ++    SYNTAX_NORMAL2(RSUBHI, RSUBHI, RSUBHI, INTREG, SIGNED_CONST, AVR32_V2),
 4.26828 ++    SYNTAX_NORMAL2(RSUBVS, RSUBVS, RSUBVS, INTREG, SIGNED_CONST, AVR32_V2),
 4.26829 ++    SYNTAX_NORMAL2(RSUBVC, RSUBVC, RSUBVC, INTREG, SIGNED_CONST, AVR32_V2),
 4.26830 ++    SYNTAX_NORMAL2(RSUBQS, RSUBQS, RSUBQS, INTREG, SIGNED_CONST, AVR32_V2),
 4.26831 ++    SYNTAX_NORMAL2(RSUBAL, RSUBAL, RSUBAL, INTREG, SIGNED_CONST, AVR32_V2),
 4.26832 ++    SYNTAX_NORMAL2(RSUBHS, RSUBHS, RSUBCC, INTREG, SIGNED_CONST, AVR32_V2),
 4.26833 ++    SYNTAX_NORMAL2(RSUBLO, RSUBLO, RSUBCS, INTREG, SIGNED_CONST, AVR32_V2),
 4.26834 ++    SYNTAX_NORMAL3(ADDEQ, ADDEQ, ADDEQ, INTREG, INTREG, INTREG, AVR32_V2),
 4.26835 ++    SYNTAX_NORMAL3(ADDNE, ADDNE, ADDNE, INTREG, INTREG, INTREG, AVR32_V2),
 4.26836 ++    SYNTAX_NORMAL3(ADDCC, ADDCC, ADDCC, INTREG, INTREG, INTREG, AVR32_V2),
 4.26837 ++    SYNTAX_NORMAL3(ADDCS, ADDCS, ADDCS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26838 ++    SYNTAX_NORMAL3(ADDGE, ADDGE, ADDGE, INTREG, INTREG, INTREG, AVR32_V2),
 4.26839 ++    SYNTAX_NORMAL3(ADDLT, ADDLT, ADDLT, INTREG, INTREG, INTREG, AVR32_V2),
 4.26840 ++    SYNTAX_NORMAL3(ADDMI, ADDMI, ADDMI, INTREG, INTREG, INTREG, AVR32_V2),
 4.26841 ++    SYNTAX_NORMAL3(ADDPL, ADDPL, ADDPL, INTREG, INTREG, INTREG, AVR32_V2),
 4.26842 ++    SYNTAX_NORMAL3(ADDLS, ADDLS, ADDLS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26843 ++    SYNTAX_NORMAL3(ADDGT, ADDGT, ADDGT, INTREG, INTREG, INTREG, AVR32_V2),
 4.26844 ++    SYNTAX_NORMAL3(ADDLE, ADDLE, ADDLE, INTREG, INTREG, INTREG, AVR32_V2),
 4.26845 ++    SYNTAX_NORMAL3(ADDHI, ADDHI, ADDHI, INTREG, INTREG, INTREG, AVR32_V2),
 4.26846 ++    SYNTAX_NORMAL3(ADDVS, ADDVS, ADDVS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26847 ++    SYNTAX_NORMAL3(ADDVC, ADDVC, ADDVC, INTREG, INTREG, INTREG, AVR32_V2),
 4.26848 ++    SYNTAX_NORMAL3(ADDQS, ADDQS, ADDQS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26849 ++    SYNTAX_NORMAL3(ADDAL, ADDAL, ADDAL, INTREG, INTREG, INTREG, AVR32_V2),
 4.26850 ++    SYNTAX_NORMAL3(ADDHS, ADDHS, ADDCC, INTREG, INTREG, INTREG, AVR32_V2),
 4.26851 ++    SYNTAX_NORMAL3(ADDLO, ADDLO, ADDCS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26852 ++    SYNTAX_NORMAL3(SUB2EQ, SUBEQ, SUB2EQ, INTREG, INTREG, INTREG, AVR32_V2),
 4.26853 ++    SYNTAX_NORMAL3(SUB2NE, SUBNE, SUB2NE, INTREG, INTREG, INTREG, AVR32_V2),
 4.26854 ++    SYNTAX_NORMAL3(SUB2CC, SUBCC, SUB2CC, INTREG, INTREG, INTREG, AVR32_V2),
 4.26855 ++    SYNTAX_NORMAL3(SUB2CS, SUBCS, SUB2CS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26856 ++    SYNTAX_NORMAL3(SUB2GE, SUBGE, SUB2GE, INTREG, INTREG, INTREG, AVR32_V2),
 4.26857 ++    SYNTAX_NORMAL3(SUB2LT, SUBLT, SUB2LT, INTREG, INTREG, INTREG, AVR32_V2),
 4.26858 ++    SYNTAX_NORMAL3(SUB2MI, SUBMI, SUB2MI, INTREG, INTREG, INTREG, AVR32_V2),
 4.26859 ++    SYNTAX_NORMAL3(SUB2PL, SUBPL, SUB2PL, INTREG, INTREG, INTREG, AVR32_V2),
 4.26860 ++    SYNTAX_NORMAL3(SUB2LS, SUBLS, SUB2LS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26861 ++    SYNTAX_NORMAL3(SUB2GT, SUBGT, SUB2GT, INTREG, INTREG, INTREG, AVR32_V2),
 4.26862 ++    SYNTAX_NORMAL3(SUB2LE, SUBLE, SUB2LE, INTREG, INTREG, INTREG, AVR32_V2),
 4.26863 ++    SYNTAX_NORMAL3(SUB2HI, SUBHI, SUB2HI, INTREG, INTREG, INTREG, AVR32_V2),
 4.26864 ++    SYNTAX_NORMAL3(SUB2VS, SUBVS, SUB2VS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26865 ++    SYNTAX_NORMAL3(SUB2VC, SUBVC, SUB2VC, INTREG, INTREG, INTREG, AVR32_V2),
 4.26866 ++    SYNTAX_NORMAL3(SUB2QS, SUBQS, SUB2QS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26867 ++    SYNTAX_NORMAL3(SUB2AL, SUBAL, SUB2AL, INTREG, INTREG, INTREG, AVR32_V2),
 4.26868 ++    SYNTAX_NORMAL3(SUB2HS, SUBHS, SUB2CC, INTREG, INTREG, INTREG, AVR32_V2),
 4.26869 ++    SYNTAX_NORMAL3(SUB2LO, SUBLO, SUB2CS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26870 ++    SYNTAX_NORMAL3(ANDEQ, ANDEQ, ANDEQ, INTREG, INTREG, INTREG, AVR32_V2),
 4.26871 ++    SYNTAX_NORMAL3(ANDNE, ANDNE, ANDNE, INTREG, INTREG, INTREG, AVR32_V2),
 4.26872 ++    SYNTAX_NORMAL3(ANDCC, ANDCC, ANDCC, INTREG, INTREG, INTREG, AVR32_V2),
 4.26873 ++    SYNTAX_NORMAL3(ANDCS, ANDCS, ANDCS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26874 ++    SYNTAX_NORMAL3(ANDGE, ANDGE, ANDGE, INTREG, INTREG, INTREG, AVR32_V2),
 4.26875 ++    SYNTAX_NORMAL3(ANDLT, ANDLT, ANDLT, INTREG, INTREG, INTREG, AVR32_V2),
 4.26876 ++    SYNTAX_NORMAL3(ANDMI, ANDMI, ANDMI, INTREG, INTREG, INTREG, AVR32_V2),
 4.26877 ++    SYNTAX_NORMAL3(ANDPL, ANDPL, ANDPL, INTREG, INTREG, INTREG, AVR32_V2),
 4.26878 ++    SYNTAX_NORMAL3(ANDLS, ANDLS, ANDLS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26879 ++    SYNTAX_NORMAL3(ANDGT, ANDGT, ANDGT, INTREG, INTREG, INTREG, AVR32_V2),
 4.26880 ++    SYNTAX_NORMAL3(ANDLE, ANDLE, ANDLE, INTREG, INTREG, INTREG, AVR32_V2),
 4.26881 ++    SYNTAX_NORMAL3(ANDHI, ANDHI, ANDHI, INTREG, INTREG, INTREG, AVR32_V2),
 4.26882 ++    SYNTAX_NORMAL3(ANDVS, ANDVS, ANDVS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26883 ++    SYNTAX_NORMAL3(ANDVC, ANDVC, ANDVC, INTREG, INTREG, INTREG, AVR32_V2),
 4.26884 ++    SYNTAX_NORMAL3(ANDQS, ANDQS, ANDQS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26885 ++    SYNTAX_NORMAL3(ANDAL, ANDAL, ANDAL, INTREG, INTREG, INTREG, AVR32_V2),
 4.26886 ++    SYNTAX_NORMAL3(ANDHS, ANDHS, ANDCC, INTREG, INTREG, INTREG, AVR32_V2),
 4.26887 ++    SYNTAX_NORMAL3(ANDLO, ANDLO, ANDCS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26888 ++    SYNTAX_NORMAL3(OREQ, OREQ, OREQ, INTREG, INTREG, INTREG, AVR32_V2),
 4.26889 ++    SYNTAX_NORMAL3(ORNE, ORNE, ORNE, INTREG, INTREG, INTREG, AVR32_V2),
 4.26890 ++    SYNTAX_NORMAL3(ORCC, ORCC, ORCC, INTREG, INTREG, INTREG, AVR32_V2),
 4.26891 ++    SYNTAX_NORMAL3(ORCS, ORCS, ORCS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26892 ++    SYNTAX_NORMAL3(ORGE, ORGE, ORGE, INTREG, INTREG, INTREG, AVR32_V2),
 4.26893 ++    SYNTAX_NORMAL3(ORLT, ORLT, ORLT, INTREG, INTREG, INTREG, AVR32_V2),
 4.26894 ++    SYNTAX_NORMAL3(ORMI, ORMI, ORMI, INTREG, INTREG, INTREG, AVR32_V2),
 4.26895 ++    SYNTAX_NORMAL3(ORPL, ORPL, ORPL, INTREG, INTREG, INTREG, AVR32_V2),
 4.26896 ++    SYNTAX_NORMAL3(ORLS, ORLS, ORLS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26897 ++    SYNTAX_NORMAL3(ORGT, ORGT, ORGT, INTREG, INTREG, INTREG, AVR32_V2),
 4.26898 ++    SYNTAX_NORMAL3(ORLE, ORLE, ORLE, INTREG, INTREG, INTREG, AVR32_V2),
 4.26899 ++    SYNTAX_NORMAL3(ORHI, ORHI, ORHI, INTREG, INTREG, INTREG, AVR32_V2),
 4.26900 ++    SYNTAX_NORMAL3(ORVS, ORVS, ORVS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26901 ++    SYNTAX_NORMAL3(ORVC, ORVC, ORVC, INTREG, INTREG, INTREG, AVR32_V2),
 4.26902 ++    SYNTAX_NORMAL3(ORQS, ORQS, ORQS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26903 ++    SYNTAX_NORMAL3(ORAL, ORAL, ORAL, INTREG, INTREG, INTREG, AVR32_V2),
 4.26904 ++    SYNTAX_NORMAL3(ORHS, ORHS, ORCC, INTREG, INTREG, INTREG, AVR32_V2),
 4.26905 ++    SYNTAX_NORMAL3(ORLO, ORLO, ORCS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26906 ++    SYNTAX_NORMAL3(EOREQ, EOREQ, EOREQ, INTREG, INTREG, INTREG, AVR32_V2),
 4.26907 ++    SYNTAX_NORMAL3(EORNE, EORNE, EORNE, INTREG, INTREG, INTREG, AVR32_V2),
 4.26908 ++    SYNTAX_NORMAL3(EORCC, EORCC, EORCC, INTREG, INTREG, INTREG, AVR32_V2),
 4.26909 ++    SYNTAX_NORMAL3(EORCS, EORCS, EORCS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26910 ++    SYNTAX_NORMAL3(EORGE, EORGE, EORGE, INTREG, INTREG, INTREG, AVR32_V2),
 4.26911 ++    SYNTAX_NORMAL3(EORLT, EORLT, EORLT, INTREG, INTREG, INTREG, AVR32_V2),
 4.26912 ++    SYNTAX_NORMAL3(EORMI, EORMI, EORMI, INTREG, INTREG, INTREG, AVR32_V2),
 4.26913 ++    SYNTAX_NORMAL3(EORPL, EORPL, EORPL, INTREG, INTREG, INTREG, AVR32_V2),
 4.26914 ++    SYNTAX_NORMAL3(EORLS, EORLS, EORLS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26915 ++    SYNTAX_NORMAL3(EORGT, EORGT, EORGT, INTREG, INTREG, INTREG, AVR32_V2),
 4.26916 ++    SYNTAX_NORMAL3(EORLE, EORLE, EORLE, INTREG, INTREG, INTREG, AVR32_V2),
 4.26917 ++    SYNTAX_NORMAL3(EORHI, EORHI, EORHI, INTREG, INTREG, INTREG, AVR32_V2),
 4.26918 ++    SYNTAX_NORMAL3(EORVS, EORVS, EORVS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26919 ++    SYNTAX_NORMAL3(EORVC, EORVC, EORVC, INTREG, INTREG, INTREG, AVR32_V2),
 4.26920 ++    SYNTAX_NORMAL3(EORQS, EORQS, EORQS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26921 ++    SYNTAX_NORMAL3(EORAL, EORAL, EORAL, INTREG, INTREG, INTREG, AVR32_V2),
 4.26922 ++    SYNTAX_NORMAL3(EORHS, EORHS, EORCC, INTREG, INTREG, INTREG, AVR32_V2),
 4.26923 ++    SYNTAX_NORMAL3(EORLO, EORLO, EORCS, INTREG, INTREG, INTREG, AVR32_V2),
 4.26924 ++    SYNTAX_NORMAL2(LD_WEQ, LD_WEQ, LD_WEQ, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26925 ++    SYNTAX_NORMAL2(LD_WNE, LD_WNE, LD_WNE, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26926 ++    SYNTAX_NORMAL2(LD_WCC, LD_WCC, LD_WCC, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26927 ++    SYNTAX_NORMAL2(LD_WCS, LD_WCS, LD_WCS, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26928 ++    SYNTAX_NORMAL2(LD_WGE, LD_WGE, LD_WGE, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26929 ++    SYNTAX_NORMAL2(LD_WLT, LD_WLT, LD_WLT, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26930 ++    SYNTAX_NORMAL2(LD_WMI, LD_WMI, LD_WMI, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26931 ++    SYNTAX_NORMAL2(LD_WPL, LD_WPL, LD_WPL, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26932 ++    SYNTAX_NORMAL2(LD_WLS, LD_WLS, LD_WLS, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26933 ++    SYNTAX_NORMAL2(LD_WGT, LD_WGT, LD_WGT, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26934 ++    SYNTAX_NORMAL2(LD_WLE, LD_WLE, LD_WLE, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26935 ++    SYNTAX_NORMAL2(LD_WHI, LD_WHI, LD_WHI, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26936 ++    SYNTAX_NORMAL2(LD_WVS, LD_WVS, LD_WVS, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26937 ++    SYNTAX_NORMAL2(LD_WVC, LD_WVC, LD_WVC, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26938 ++    SYNTAX_NORMAL2(LD_WQS, LD_WQS, LD_WQS, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26939 ++    SYNTAX_NORMAL2(LD_WAL, LD_WAL, LD_WAL, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26940 ++    SYNTAX_NORMAL2(LD_WHS, LD_WHS, LD_WCC, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26941 ++    SYNTAX_NORMAL2(LD_WLO, LD_WLO, LD_WCS, INTREG, INTREG_UDISP_W, AVR32_V2),
 4.26942 ++    SYNTAX_NORMAL2(LD_SHEQ, LD_SHEQ, LD_SHEQ, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26943 ++    SYNTAX_NORMAL2(LD_SHNE, LD_SHNE, LD_SHNE, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26944 ++    SYNTAX_NORMAL2(LD_SHCC, LD_SHCC, LD_SHCC, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26945 ++    SYNTAX_NORMAL2(LD_SHCS, LD_SHCS, LD_SHCS, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26946 ++    SYNTAX_NORMAL2(LD_SHGE, LD_SHGE, LD_SHGE, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26947 ++    SYNTAX_NORMAL2(LD_SHLT, LD_SHLT, LD_SHLT, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26948 ++    SYNTAX_NORMAL2(LD_SHMI, LD_SHMI, LD_SHMI, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26949 ++    SYNTAX_NORMAL2(LD_SHPL, LD_SHPL, LD_SHPL, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26950 ++    SYNTAX_NORMAL2(LD_SHLS, LD_SHLS, LD_SHLS, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26951 ++    SYNTAX_NORMAL2(LD_SHGT, LD_SHGT, LD_SHGT, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26952 ++    SYNTAX_NORMAL2(LD_SHLE, LD_SHLE, LD_SHLE, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26953 ++    SYNTAX_NORMAL2(LD_SHHI, LD_SHHI, LD_SHHI, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26954 ++    SYNTAX_NORMAL2(LD_SHVS, LD_SHVS, LD_SHVS, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26955 ++    SYNTAX_NORMAL2(LD_SHVC, LD_SHVC, LD_SHVC, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26956 ++    SYNTAX_NORMAL2(LD_SHQS, LD_SHQS, LD_SHQS, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26957 ++    SYNTAX_NORMAL2(LD_SHAL, LD_SHAL, LD_SHAL, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26958 ++    SYNTAX_NORMAL2(LD_SHHS, LD_SHHS, LD_SHCC, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26959 ++    SYNTAX_NORMAL2(LD_SHLO, LD_SHLO, LD_SHCS, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26960 ++    SYNTAX_NORMAL2(LD_UHEQ, LD_UHEQ, LD_UHEQ, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26961 ++    SYNTAX_NORMAL2(LD_UHNE, LD_UHNE, LD_UHNE, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26962 ++    SYNTAX_NORMAL2(LD_UHCC, LD_UHCC, LD_UHCC, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26963 ++    SYNTAX_NORMAL2(LD_UHCS, LD_UHCS, LD_UHCS, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26964 ++    SYNTAX_NORMAL2(LD_UHGE, LD_UHGE, LD_UHGE, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26965 ++    SYNTAX_NORMAL2(LD_UHLT, LD_UHLT, LD_UHLT, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26966 ++    SYNTAX_NORMAL2(LD_UHMI, LD_UHMI, LD_UHMI, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26967 ++    SYNTAX_NORMAL2(LD_UHPL, LD_UHPL, LD_UHPL, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26968 ++    SYNTAX_NORMAL2(LD_UHLS, LD_UHLS, LD_UHLS, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26969 ++    SYNTAX_NORMAL2(LD_UHGT, LD_UHGT, LD_UHGT, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26970 ++    SYNTAX_NORMAL2(LD_UHLE, LD_UHLE, LD_UHLE, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26971 ++    SYNTAX_NORMAL2(LD_UHHI, LD_UHHI, LD_UHHI, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26972 ++    SYNTAX_NORMAL2(LD_UHVS, LD_UHVS, LD_UHVS, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26973 ++    SYNTAX_NORMAL2(LD_UHVC, LD_UHVC, LD_UHVC, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26974 ++    SYNTAX_NORMAL2(LD_UHQS, LD_UHQS, LD_UHQS, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26975 ++    SYNTAX_NORMAL2(LD_UHAL, LD_UHAL, LD_UHAL, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26976 ++    SYNTAX_NORMAL2(LD_UHHS, LD_UHHS, LD_UHCC, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26977 ++    SYNTAX_NORMAL2(LD_UHLO, LD_UHLO, LD_UHCS, INTREG, INTREG_UDISP_H, AVR32_V2),
 4.26978 ++    SYNTAX_NORMAL2(LD_SBEQ, LD_SBEQ, LD_SBEQ, INTREG, INTREG_UDISP, AVR32_V2),
 4.26979 ++    SYNTAX_NORMAL2(LD_SBNE, LD_SBNE, LD_SBNE, INTREG, INTREG_UDISP, AVR32_V2),
 4.26980 ++    SYNTAX_NORMAL2(LD_SBCC, LD_SBCC, LD_SBCC, INTREG, INTREG_UDISP, AVR32_V2),
 4.26981 ++    SYNTAX_NORMAL2(LD_SBCS, LD_SBCS, LD_SBCS, INTREG, INTREG_UDISP, AVR32_V2),
 4.26982 ++    SYNTAX_NORMAL2(LD_SBGE, LD_SBGE, LD_SBGE, INTREG, INTREG_UDISP, AVR32_V2),
 4.26983 ++    SYNTAX_NORMAL2(LD_SBLT, LD_SBLT, LD_SBLT, INTREG, INTREG_UDISP, AVR32_V2),
 4.26984 ++    SYNTAX_NORMAL2(LD_SBMI, LD_SBMI, LD_SBMI, INTREG, INTREG_UDISP, AVR32_V2),
 4.26985 ++    SYNTAX_NORMAL2(LD_SBPL, LD_SBPL, LD_SBPL, INTREG, INTREG_UDISP, AVR32_V2),
 4.26986 ++    SYNTAX_NORMAL2(LD_SBLS, LD_SBLS, LD_SBLS, INTREG, INTREG_UDISP, AVR32_V2),
 4.26987 ++    SYNTAX_NORMAL2(LD_SBGT, LD_SBGT, LD_SBGT, INTREG, INTREG_UDISP, AVR32_V2),
 4.26988 ++    SYNTAX_NORMAL2(LD_SBLE, LD_SBLE, LD_SBLE, INTREG, INTREG_UDISP, AVR32_V2),
 4.26989 ++    SYNTAX_NORMAL2(LD_SBHI, LD_SBHI, LD_SBHI, INTREG, INTREG_UDISP, AVR32_V2),
 4.26990 ++    SYNTAX_NORMAL2(LD_SBVS, LD_SBVS, LD_SBVS, INTREG, INTREG_UDISP, AVR32_V2),
 4.26991 ++    SYNTAX_NORMAL2(LD_SBVC, LD_SBVC, LD_SBVC, INTREG, INTREG_UDISP, AVR32_V2),
 4.26992 ++    SYNTAX_NORMAL2(LD_SBQS, LD_SBQS, LD_SBQS, INTREG, INTREG_UDISP, AVR32_V2),
 4.26993 ++    SYNTAX_NORMAL2(LD_SBAL, LD_SBAL, LD_SBAL, INTREG, INTREG_UDISP, AVR32_V2),
 4.26994 ++    SYNTAX_NORMAL2(LD_SBHS, LD_SBHS, LD_SBCC, INTREG, INTREG_UDISP, AVR32_V2),
 4.26995 ++    SYNTAX_NORMAL2(LD_SBLO, LD_SBLO, LD_SBCS, INTREG, INTREG_UDISP, AVR32_V2),
 4.26996 ++    SYNTAX_NORMAL2(LD_UBEQ, LD_UBEQ, LD_UBEQ, INTREG, INTREG_UDISP, AVR32_V2),
 4.26997 ++    SYNTAX_NORMAL2(LD_UBNE, LD_UBNE, LD_UBNE, INTREG, INTREG_UDISP, AVR32_V2),
 4.26998 ++    SYNTAX_NORMAL2(LD_UBCC, LD_UBCC, LD_UBCC, INTREG, INTREG_UDISP, AVR32_V2),
 4.26999 ++    SYNTAX_NORMAL2(LD_UBCS, LD_UBCS, LD_UBCS, INTREG, INTREG_UDISP, AVR32_V2),
 4.27000 ++    SYNTAX_NORMAL2(LD_UBGE, LD_UBGE, LD_UBGE, INTREG, INTREG_UDISP, AVR32_V2),
 4.27001 ++    SYNTAX_NORMAL2(LD_UBLT, LD_UBLT, LD_UBLT, INTREG, INTREG_UDISP, AVR32_V2),
 4.27002 ++    SYNTAX_NORMAL2(LD_UBMI, LD_UBMI, LD_UBMI, INTREG, INTREG_UDISP, AVR32_V2),
 4.27003 ++    SYNTAX_NORMAL2(LD_UBPL, LD_UBPL, LD_UBPL, INTREG, INTREG_UDISP, AVR32_V2),
 4.27004 ++    SYNTAX_NORMAL2(LD_UBLS, LD_UBLS, LD_UBLS, INTREG, INTREG_UDISP, AVR32_V2),
 4.27005 ++    SYNTAX_NORMAL2(LD_UBGT, LD_UBGT, LD_UBGT, INTREG, INTREG_UDISP, AVR32_V2),
 4.27006 ++    SYNTAX_NORMAL2(LD_UBLE, LD_UBLE, LD_UBLE, INTREG, INTREG_UDISP, AVR32_V2),
 4.27007 ++    SYNTAX_NORMAL2(LD_UBHI, LD_UBHI, LD_UBHI, INTREG, INTREG_UDISP, AVR32_V2),
 4.27008 ++    SYNTAX_NORMAL2(LD_UBVS, LD_UBVS, LD_UBVS, INTREG, INTREG_UDISP, AVR32_V2),
 4.27009 ++    SYNTAX_NORMAL2(LD_UBVC, LD_UBVC, LD_UBVC, INTREG, INTREG_UDISP, AVR32_V2),
 4.27010 ++    SYNTAX_NORMAL2(LD_UBQS, LD_UBQS, LD_UBQS, INTREG, INTREG_UDISP, AVR32_V2),
 4.27011 ++    SYNTAX_NORMAL2(LD_UBAL, LD_UBAL, LD_UBAL, INTREG, INTREG_UDISP, AVR32_V2),
 4.27012 ++    SYNTAX_NORMAL2(LD_UBHS, LD_UBHS, LD_UBCC, INTREG, INTREG_UDISP, AVR32_V2),
 4.27013 ++    SYNTAX_NORMAL2(LD_UBLO, LD_UBLO, LD_UBCS, INTREG, INTREG_UDISP, AVR32_V2),
 4.27014 ++    SYNTAX_NORMAL2(ST_WEQ, ST_WEQ, ST_WEQ, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27015 ++    SYNTAX_NORMAL2(ST_WNE, ST_WNE, ST_WNE, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27016 ++    SYNTAX_NORMAL2(ST_WCC, ST_WCC, ST_WCC, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27017 ++    SYNTAX_NORMAL2(ST_WCS, ST_WCS, ST_WCS, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27018 ++    SYNTAX_NORMAL2(ST_WGE, ST_WGE, ST_WGE, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27019 ++    SYNTAX_NORMAL2(ST_WLT, ST_WLT, ST_WLT, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27020 ++    SYNTAX_NORMAL2(ST_WMI, ST_WMI, ST_WMI, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27021 ++    SYNTAX_NORMAL2(ST_WPL, ST_WPL, ST_WPL, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27022 ++    SYNTAX_NORMAL2(ST_WLS, ST_WLS, ST_WLS, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27023 ++    SYNTAX_NORMAL2(ST_WGT, ST_WGT, ST_WGT, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27024 ++    SYNTAX_NORMAL2(ST_WLE, ST_WLE, ST_WLE, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27025 ++    SYNTAX_NORMAL2(ST_WHI, ST_WHI, ST_WHI, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27026 ++    SYNTAX_NORMAL2(ST_WVS, ST_WVS, ST_WVS, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27027 ++    SYNTAX_NORMAL2(ST_WVC, ST_WVC, ST_WVC, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27028 ++    SYNTAX_NORMAL2(ST_WQS, ST_WQS, ST_WQS, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27029 ++    SYNTAX_NORMAL2(ST_WAL, ST_WAL, ST_WAL, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27030 ++    SYNTAX_NORMAL2(ST_WHS, ST_WHS, ST_WCC, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27031 ++    SYNTAX_NORMAL2(ST_WLO, ST_WLO, ST_WCS, INTREG_UDISP_W, INTREG, AVR32_V2),
 4.27032 ++    SYNTAX_NORMAL2(ST_HEQ, ST_HEQ, ST_HEQ, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27033 ++    SYNTAX_NORMAL2(ST_HNE, ST_HNE, ST_HNE, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27034 ++    SYNTAX_NORMAL2(ST_HCC, ST_HCC, ST_HCC, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27035 ++    SYNTAX_NORMAL2(ST_HCS, ST_HCS, ST_HCS, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27036 ++    SYNTAX_NORMAL2(ST_HGE, ST_HGE, ST_HGE, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27037 ++    SYNTAX_NORMAL2(ST_HLT, ST_HLT, ST_HLT, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27038 ++    SYNTAX_NORMAL2(ST_HMI, ST_HMI, ST_HMI, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27039 ++    SYNTAX_NORMAL2(ST_HPL, ST_HPL, ST_HPL, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27040 ++    SYNTAX_NORMAL2(ST_HLS, ST_HLS, ST_HLS, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27041 ++    SYNTAX_NORMAL2(ST_HGT, ST_HGT, ST_HGT, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27042 ++    SYNTAX_NORMAL2(ST_HLE, ST_HLE, ST_HLE, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27043 ++    SYNTAX_NORMAL2(ST_HHI, ST_HHI, ST_HHI, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27044 ++    SYNTAX_NORMAL2(ST_HVS, ST_HVS, ST_HVS, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27045 ++    SYNTAX_NORMAL2(ST_HVC, ST_HVC, ST_HVC, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27046 ++    SYNTAX_NORMAL2(ST_HQS, ST_HQS, ST_HQS, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27047 ++    SYNTAX_NORMAL2(ST_HAL, ST_HAL, ST_HAL, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27048 ++    SYNTAX_NORMAL2(ST_HHS, ST_HHS, ST_HCC, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27049 ++    SYNTAX_NORMAL2(ST_HLO, ST_HLO, ST_HCS, INTREG_UDISP_H, INTREG, AVR32_V2),
 4.27050 ++    SYNTAX_NORMAL2(ST_BEQ, ST_BEQ, ST_BEQ, INTREG_UDISP, INTREG, AVR32_V2),
 4.27051 ++    SYNTAX_NORMAL2(ST_BNE, ST_BNE, ST_BNE, INTREG_UDISP, INTREG, AVR32_V2),
 4.27052 ++    SYNTAX_NORMAL2(ST_BCC, ST_BCC, ST_BCC, INTREG_UDISP, INTREG, AVR32_V2),
 4.27053 ++    SYNTAX_NORMAL2(ST_BCS, ST_BCS, ST_BCS, INTREG_UDISP, INTREG, AVR32_V2),
 4.27054 ++    SYNTAX_NORMAL2(ST_BGE, ST_BGE, ST_BGE, INTREG_UDISP, INTREG, AVR32_V2),
 4.27055 ++    SYNTAX_NORMAL2(ST_BLT, ST_BLT, ST_BLT, INTREG_UDISP, INTREG, AVR32_V2),
 4.27056 ++    SYNTAX_NORMAL2(ST_BMI, ST_BMI, ST_BMI, INTREG_UDISP, INTREG, AVR32_V2),
 4.27057 ++    SYNTAX_NORMAL2(ST_BPL, ST_BPL, ST_BPL, INTREG_UDISP, INTREG, AVR32_V2),
 4.27058 ++    SYNTAX_NORMAL2(ST_BLS, ST_BLS, ST_BLS, INTREG_UDISP, INTREG, AVR32_V2),
 4.27059 ++    SYNTAX_NORMAL2(ST_BGT, ST_BGT, ST_BGT, INTREG_UDISP, INTREG, AVR32_V2),
 4.27060 ++    SYNTAX_NORMAL2(ST_BLE, ST_BLE, ST_BLE, INTREG_UDISP, INTREG, AVR32_V2),
 4.27061 ++    SYNTAX_NORMAL2(ST_BHI, ST_BHI, ST_BHI, INTREG_UDISP, INTREG, AVR32_V2),
 4.27062 ++    SYNTAX_NORMAL2(ST_BVS, ST_BVS, ST_BVS, INTREG_UDISP, INTREG, AVR32_V2),
 4.27063 ++    SYNTAX_NORMAL2(ST_BVC, ST_BVC, ST_BVC, INTREG_UDISP, INTREG, AVR32_V2),
 4.27064 ++    SYNTAX_NORMAL2(ST_BQS, ST_BQS, ST_BQS, INTREG_UDISP, INTREG, AVR32_V2),
 4.27065 ++    SYNTAX_NORMAL2(ST_BAL, ST_BAL, ST_BAL, INTREG_UDISP, INTREG, AVR32_V2),
 4.27066 ++    SYNTAX_NORMAL2(ST_BHS, ST_BHS, ST_BCC, INTREG_UDISP, INTREG, AVR32_V2),
 4.27067 ++    SYNTAX_NORMAL2(ST_BLO, ST_BLO, ST_BCS, INTREG_UDISP, INTREG, AVR32_V2),
 4.27068 ++    SYNTAX_NORMAL2(MOVH, MOVH, MOVH, INTREG, UNSIGNED_CONST, AVR32_V2),
 4.27069 ++
 4.27070 ++  };
 4.27071 ++
 4.27072 ++#define NORMAL_MNEMONIC(name, syntax, str)		\
 4.27073 ++  {							\
 4.27074 ++    AVR32_MNEMONIC_##name, str,				\
 4.27075 ++    &avr32_syntax_table[AVR32_SYNTAX_##syntax],		\
 4.27076 ++  }
 4.27077 ++#define FP_MNEMONIC(name, syntax, str)			\
 4.27078 ++  NORMAL_MNEMONIC(name##_S, syntax##_S, str ".s"),	\
 4.27079 ++  NORMAL_MNEMONIC(name##_D, syntax##_D, str ".d")
 4.27080 ++
 4.27081 ++const struct avr32_mnemonic avr32_mnemonic_table[] =
 4.27082 ++  {
 4.27083 ++    NORMAL_MNEMONIC(ABS, ABS, "abs"),
 4.27084 ++    NORMAL_MNEMONIC(ACALL, ACALL, "acall"),
 4.27085 ++    NORMAL_MNEMONIC(ACR, ACR, "acr"),
 4.27086 ++    NORMAL_MNEMONIC(ADC, ADC, "adc"),
 4.27087 ++    NORMAL_MNEMONIC(ADD, ADD1, "add"),
 4.27088 ++    NORMAL_MNEMONIC(ADDABS, ADDABS, "addabs"),
 4.27089 ++    NORMAL_MNEMONIC(ADDHH_W, ADDHH_W, "addhh.w"),
 4.27090 ++    NORMAL_MNEMONIC(AND, AND1, "and"),
 4.27091 ++    NORMAL_MNEMONIC(ANDH, ANDH, "andh"),
 4.27092 ++    NORMAL_MNEMONIC(ANDL, ANDL, "andl"),
 4.27093 ++    NORMAL_MNEMONIC(ANDN, ANDN, "andn"),
 4.27094 ++    NORMAL_MNEMONIC(ASR, ASR1, "asr"),
 4.27095 ++    NORMAL_MNEMONIC(BFEXTS, BFEXTS, "bfexts"),
 4.27096 ++    NORMAL_MNEMONIC(BFEXTU, BFEXTU, "bfextu"),
 4.27097 ++    NORMAL_MNEMONIC(BFINS, BFINS, "bfins"),
 4.27098 ++    NORMAL_MNEMONIC(BLD, BLD, "bld"),
 4.27099 ++    NORMAL_MNEMONIC(BREQ, BREQ1, "breq"),
 4.27100 ++    NORMAL_MNEMONIC(BRNE, BRNE1, "brne"),
 4.27101 ++    NORMAL_MNEMONIC(BRCC, BRCC1, "brcc"),
 4.27102 ++    NORMAL_MNEMONIC(BRCS, BRCS1, "brcs"),
 4.27103 ++    NORMAL_MNEMONIC(BRGE, BRGE1, "brge"),
 4.27104 ++    NORMAL_MNEMONIC(BRLT, BRLT1, "brlt"),
 4.27105 ++    NORMAL_MNEMONIC(BRMI, BRMI1, "brmi"),
 4.27106 ++    NORMAL_MNEMONIC(BRPL, BRPL1, "brpl"),
 4.27107 ++    NORMAL_MNEMONIC(BRHS, BRHS1, "brhs"),
 4.27108 ++    NORMAL_MNEMONIC(BRLO, BRLO1, "brlo"),
 4.27109 ++    NORMAL_MNEMONIC(BRLS, BRLS, "brls"),
 4.27110 ++    NORMAL_MNEMONIC(BRGT, BRGT, "brgt"),
 4.27111 ++    NORMAL_MNEMONIC(BRLE, BRLE, "brle"),
 4.27112 ++    NORMAL_MNEMONIC(BRHI, BRHI, "brhi"),
 4.27113 ++    NORMAL_MNEMONIC(BRVS, BRVS, "brvs"),
 4.27114 ++    NORMAL_MNEMONIC(BRVC, BRVC, "brvc"),
 4.27115 ++    NORMAL_MNEMONIC(BRQS, BRQS, "brqs"),
 4.27116 ++    NORMAL_MNEMONIC(BRAL, BRAL, "bral"),
 4.27117 ++    NORMAL_MNEMONIC(BREAKPOINT, BREAKPOINT, "breakpoint"),
 4.27118 ++    NORMAL_MNEMONIC(BREV, BREV, "brev"),
 4.27119 ++    NORMAL_MNEMONIC(BST, BST, "bst"),
 4.27120 ++    NORMAL_MNEMONIC(CACHE, CACHE, "cache"),
 4.27121 ++    NORMAL_MNEMONIC(CASTS_B, CASTS_B, "casts.b"),
 4.27122 ++    NORMAL_MNEMONIC(CASTS_H, CASTS_H, "casts.h"),
 4.27123 ++    NORMAL_MNEMONIC(CASTU_B, CASTU_B, "castu.b"),
 4.27124 ++    NORMAL_MNEMONIC(CASTU_H, CASTU_H, "castu.h"),
 4.27125 ++    NORMAL_MNEMONIC(CBR, CBR, "cbr"),
 4.27126 ++    NORMAL_MNEMONIC(CLZ, CLZ, "clz"),
 4.27127 ++    NORMAL_MNEMONIC(COM, COM, "com"),
 4.27128 ++    NORMAL_MNEMONIC(COP, COP, "cop"),
 4.27129 ++    NORMAL_MNEMONIC(CP_B, CP_B, "cp.b"),
 4.27130 ++    NORMAL_MNEMONIC(CP_H, CP_H, "cp.h"),
 4.27131 ++    NORMAL_MNEMONIC(CP_W, CP_W1, "cp.w"),
 4.27132 ++    NORMAL_MNEMONIC(CP, CP_W1, "cp"),
 4.27133 ++    NORMAL_MNEMONIC(CPC, CPC1, "cpc"),
 4.27134 ++    NORMAL_MNEMONIC(CSRF, CSRF, "csrf"),
 4.27135 ++    NORMAL_MNEMONIC(CSRFCZ, CSRFCZ, "csrfcz"),
 4.27136 ++    NORMAL_MNEMONIC(DIVS, DIVS, "divs"),
 4.27137 ++    NORMAL_MNEMONIC(DIVU, DIVU, "divu"),
 4.27138 ++    NORMAL_MNEMONIC(EOR, EOR1, "eor"),
 4.27139 ++    NORMAL_MNEMONIC(EORL, EORL, "eorl"),
 4.27140 ++    NORMAL_MNEMONIC(EORH, EORH, "eorh"),
 4.27141 ++    NORMAL_MNEMONIC(FRS, FRS, "frs"),
 4.27142 ++    NORMAL_MNEMONIC(ICALL, ICALL, "icall"),
 4.27143 ++    NORMAL_MNEMONIC(INCJOSP, INCJOSP, "incjosp"),
 4.27144 ++    NORMAL_MNEMONIC(LD_D, LD_D1, "ld.d"),
 4.27145 ++    NORMAL_MNEMONIC(LD_SB, LD_SB2, "ld.sb"),
 4.27146 ++    NORMAL_MNEMONIC(LD_UB, LD_UB1, "ld.ub"),
 4.27147 ++    NORMAL_MNEMONIC(LD_SH, LD_SH1, "ld.sh"),
 4.27148 ++    NORMAL_MNEMONIC(LD_UH, LD_UH1, "ld.uh"),
 4.27149 ++    NORMAL_MNEMONIC(LD_W, LD_W1, "ld.w"),
 4.27150 ++    NORMAL_MNEMONIC(LDC_D, LDC_D3, "ldc.d"),
 4.27151 ++    NORMAL_MNEMONIC(LDC_W, LDC_W3, "ldc.w"),
 4.27152 ++    NORMAL_MNEMONIC(LDC0_D, LDC0_D, "ldc0.d"),
 4.27153 ++    NORMAL_MNEMONIC(LDC0_W, LDC0_W, "ldc0.w"),
 4.27154 ++    NORMAL_MNEMONIC(LDCM_D, LDCM_D, "ldcm.d"),
 4.27155 ++    NORMAL_MNEMONIC(LDCM_W, LDCM_W, "ldcm.w"),
 4.27156 ++    NORMAL_MNEMONIC(LDDPC, LDDPC, "lddpc"),
 4.27157 ++    NORMAL_MNEMONIC(LDDSP, LDDSP, "lddsp"),
 4.27158 ++    NORMAL_MNEMONIC(LDINS_B, LDINS_B, "ldins.b"),
 4.27159 ++    NORMAL_MNEMONIC(LDINS_H, LDINS_H, "ldins.h"),
 4.27160 ++    NORMAL_MNEMONIC(LDM, LDM, "ldm"),
 4.27161 ++    NORMAL_MNEMONIC(LDMTS, LDMTS, "ldmts"),
 4.27162 ++    NORMAL_MNEMONIC(LDSWP_SH, LDSWP_SH, "ldswp.sh"),
 4.27163 ++    NORMAL_MNEMONIC(LDSWP_UH, LDSWP_UH, "ldswp.uh"),
 4.27164 ++    NORMAL_MNEMONIC(LDSWP_W, LDSWP_W, "ldswp.w"),
 4.27165 ++    NORMAL_MNEMONIC(LSL, LSL1, "lsl"),
 4.27166 ++    NORMAL_MNEMONIC(LSR, LSR1, "lsr"),
 4.27167 ++    NORMAL_MNEMONIC(MAC, MAC, "mac"),
 4.27168 ++    NORMAL_MNEMONIC(MACHH_D, MACHH_D, "machh.d"),
 4.27169 ++    NORMAL_MNEMONIC(MACHH_W, MACHH_W, "machh.w"),
 4.27170 ++    NORMAL_MNEMONIC(MACS_D, MACS_D, "macs.d"),
 4.27171 ++    NORMAL_MNEMONIC(MACSATHH_W, MACSATHH_W, "macsathh.w"),
 4.27172 ++    NORMAL_MNEMONIC(MACU_D, MACUD, "macu.d"),
 4.27173 ++    NORMAL_MNEMONIC(MACWH_D, MACWH_D, "macwh.d"),
 4.27174 ++    NORMAL_MNEMONIC(MAX, MAX, "max"),
 4.27175 ++    NORMAL_MNEMONIC(MCALL, MCALL, "mcall"),
 4.27176 ++    NORMAL_MNEMONIC(MFDR, MFDR, "mfdr"),
 4.27177 ++    NORMAL_MNEMONIC(MFSR, MFSR, "mfsr"),
 4.27178 ++    NORMAL_MNEMONIC(MIN, MIN, "min"),
 4.27179 ++    NORMAL_MNEMONIC(MOV, MOV3, "mov"),
 4.27180 ++    NORMAL_MNEMONIC(MOVEQ, MOVEQ1, "moveq"),
 4.27181 ++    NORMAL_MNEMONIC(MOVNE, MOVNE1, "movne"),
 4.27182 ++    NORMAL_MNEMONIC(MOVCC, MOVCC1, "movcc"),
 4.27183 ++    NORMAL_MNEMONIC(MOVCS, MOVCS1, "movcs"),
 4.27184 ++    NORMAL_MNEMONIC(MOVGE, MOVGE1, "movge"),
 4.27185 ++    NORMAL_MNEMONIC(MOVLT, MOVLT1, "movlt"),
 4.27186 ++    NORMAL_MNEMONIC(MOVMI, MOVMI1, "movmi"),
 4.27187 ++    NORMAL_MNEMONIC(MOVPL, MOVPL1, "movpl"),
 4.27188 ++    NORMAL_MNEMONIC(MOVLS, MOVLS1, "movls"),
 4.27189 ++    NORMAL_MNEMONIC(MOVGT, MOVGT1, "movgt"),
 4.27190 ++    NORMAL_MNEMONIC(MOVLE, MOVLE1, "movle"),
 4.27191 ++    NORMAL_MNEMONIC(MOVHI, MOVHI1, "movhi"),
 4.27192 ++    NORMAL_MNEMONIC(MOVVS, MOVVS1, "movvs"),
 4.27193 ++    NORMAL_MNEMONIC(MOVVC, MOVVC1, "movvc"),
 4.27194 ++    NORMAL_MNEMONIC(MOVQS, MOVQS1, "movqs"),
 4.27195 ++    NORMAL_MNEMONIC(MOVAL, MOVAL1, "moval"),
 4.27196 ++    NORMAL_MNEMONIC(MOVHS, MOVHS1, "movhs"),
 4.27197 ++    NORMAL_MNEMONIC(MOVLO, MOVLO1, "movlo"),
 4.27198 ++    NORMAL_MNEMONIC(MTDR, MTDR, "mtdr"),
 4.27199 ++    NORMAL_MNEMONIC(MTSR, MTSR, "mtsr"),
 4.27200 ++    NORMAL_MNEMONIC(MUL, MUL1, "mul"),
 4.27201 ++    NORMAL_MNEMONIC(MULHH_W, MULHH_W, "mulhh.w"),
 4.27202 ++    NORMAL_MNEMONIC(MULNHH_W, MULNHH_W, "mulnhh.w"),
 4.27203 ++    NORMAL_MNEMONIC(MULNWH_D, MULNWH_D, "mulnwh.d"),
 4.27204 ++    NORMAL_MNEMONIC(MULS_D, MULSD, "muls.d"),
 4.27205 ++    NORMAL_MNEMONIC(MULSATHH_H, MULSATHH_H, "mulsathh.h"),
 4.27206 ++    NORMAL_MNEMONIC(MULSATHH_W, MULSATHH_W, "mulsathh.w"),
 4.27207 ++    NORMAL_MNEMONIC(MULSATRNDHH_H, MULSATRNDHH_H, "mulsatrndhh.h"),
 4.27208 ++    NORMAL_MNEMONIC(MULSATRNDWH_W, MULSATRNDWH_W, "mulsatrndwh.w"),
 4.27209 ++    NORMAL_MNEMONIC(MULSATWH_W, MULSATWH_W, "mulsatwh.w"),
 4.27210 ++    NORMAL_MNEMONIC(MULU_D, MULU_D, "mulu.d"),
 4.27211 ++    NORMAL_MNEMONIC(MULWH_D, MULWH_D, "mulwh.d"),
 4.27212 ++    NORMAL_MNEMONIC(MUSFR, MUSFR, "musfr"),
 4.27213 ++    NORMAL_MNEMONIC(MUSTR, MUSTR, "mustr"),
 4.27214 ++    NORMAL_MNEMONIC(MVCR_D, MVCR_D, "mvcr.d"),
 4.27215 ++    NORMAL_MNEMONIC(MVCR_W, MVCR_W, "mvcr.w"),
 4.27216 ++    NORMAL_MNEMONIC(MVRC_D, MVRC_D, "mvrc.d"),
 4.27217 ++    NORMAL_MNEMONIC(MVRC_W, MVRC_W, "mvrc.w"),
 4.27218 ++    NORMAL_MNEMONIC(NEG, NEG, "neg"),
 4.27219 ++    NORMAL_MNEMONIC(NOP, NOP, "nop"),
 4.27220 ++    NORMAL_MNEMONIC(OR, OR1, "or"),
 4.27221 ++    NORMAL_MNEMONIC(ORH, ORH, "orh"),
 4.27222 ++    NORMAL_MNEMONIC(ORL, ORL, "orl"),
 4.27223 ++    NORMAL_MNEMONIC(PABS_SB, PABS_SB, "pabs.sb"),
 4.27224 ++    NORMAL_MNEMONIC(PABS_SH, PABS_SH, "pabs.sh"),
 4.27225 ++    NORMAL_MNEMONIC(PACKSH_SB, PACKSH_SB, "packsh.sb"),
 4.27226 ++    NORMAL_MNEMONIC(PACKSH_UB, PACKSH_UB, "packsh.ub"),
 4.27227 ++    NORMAL_MNEMONIC(PACKW_SH, PACKW_SH, "packw.sh"),
 4.27228 ++    NORMAL_MNEMONIC(PADD_B, PADD_B, "padd.b"),
 4.27229 ++    NORMAL_MNEMONIC(PADD_H, PADD_H, "padd.h"),
 4.27230 ++    NORMAL_MNEMONIC(PADDH_SH, PADDH_SH, "paddh.sh"),
 4.27231 ++    NORMAL_MNEMONIC(PADDH_UB, PADDH_UB, "paddh.ub"),
 4.27232 ++    NORMAL_MNEMONIC(PADDS_SB, PADDS_SB, "padds.sb"),
 4.27233 ++    NORMAL_MNEMONIC(PADDS_SH, PADDS_SH, "padds.sh"),
 4.27234 ++    NORMAL_MNEMONIC(PADDS_UB, PADDS_UB, "padds.ub"),
 4.27235 ++    NORMAL_MNEMONIC(PADDS_UH, PADDS_UH, "padds.uh"),
 4.27236 ++    NORMAL_MNEMONIC(PADDSUB_H, PADDSUB_H, "paddsub.h"),
 4.27237 ++    NORMAL_MNEMONIC(PADDSUBH_SH, PADDSUBH_SH, "paddsubh.sh"),
 4.27238 ++    NORMAL_MNEMONIC(PADDSUBS_SH, PADDSUBS_SH, "paddsubs.sh"),
 4.27239 ++    NORMAL_MNEMONIC(PADDSUBS_UH, PADDSUBS_UH, "paddsubs.uh"),
 4.27240 ++    NORMAL_MNEMONIC(PADDX_H, PADDX_H, "paddx.h"),
 4.27241 ++    NORMAL_MNEMONIC(PADDXH_SH, PADDXH_SH, "paddxh.sh"),
 4.27242 ++    NORMAL_MNEMONIC(PADDXS_SH, PADDXS_SH, "paddxs.sh"),
 4.27243 ++    NORMAL_MNEMONIC(PADDXS_UH, PADDXS_UH, "paddxs.uh"),
 4.27244 ++    NORMAL_MNEMONIC(PASR_B, PASR_B, "pasr.b"),
 4.27245 ++    NORMAL_MNEMONIC(PASR_H, PASR_H, "pasr.h"),
 4.27246 ++    NORMAL_MNEMONIC(PAVG_SH, PAVG_SH, "pavg.sh"),
 4.27247 ++    NORMAL_MNEMONIC(PAVG_UB, PAVG_UB, "pavg.ub"),
 4.27248 ++    NORMAL_MNEMONIC(PLSL_B, PLSL_B, "plsl.b"),
 4.27249 ++    NORMAL_MNEMONIC(PLSL_H, PLSL_H, "plsl.h"),
 4.27250 ++    NORMAL_MNEMONIC(PLSR_B, PLSR_B, "plsr.b"),
 4.27251 ++    NORMAL_MNEMONIC(PLSR_H, PLSR_H, "plsr.h"),
 4.27252 ++    NORMAL_MNEMONIC(PMAX_SH, PMAX_SH, "pmax.sh"),
 4.27253 ++    NORMAL_MNEMONIC(PMAX_UB, PMAX_UB, "pmax.ub"),
 4.27254 ++    NORMAL_MNEMONIC(PMIN_SH, PMIN_SH, "pmin.sh"),
 4.27255 ++    NORMAL_MNEMONIC(PMIN_UB, PMIN_UB, "pmin.ub"),
 4.27256 ++    NORMAL_MNEMONIC(POPJC, POPJC, "popjc"),
 4.27257 ++    NORMAL_MNEMONIC(POPM, POPM, "popm"),
 4.27258 ++    NORMAL_MNEMONIC(PREF, PREF, "pref"),
 4.27259 ++    NORMAL_MNEMONIC(PSAD, PSAD, "psad"),
 4.27260 ++    NORMAL_MNEMONIC(PSUB_B, PSUB_B, "psub.b"),
 4.27261 ++    NORMAL_MNEMONIC(PSUB_H, PSUB_H, "psub.h"),
 4.27262 ++    NORMAL_MNEMONIC(PSUBADD_H, PSUBADD_H, "psubadd.h"),
 4.27263 ++    NORMAL_MNEMONIC(PSUBADDH_SH, PSUBADDH_SH, "psubaddh.sh"),
 4.27264 ++    NORMAL_MNEMONIC(PSUBADDS_SH, PSUBADDS_SH, "psubadds.sh"),
 4.27265 ++    NORMAL_MNEMONIC(PSUBADDS_UH, PSUBADDS_UH, "psubadds.uh"),
 4.27266 ++    NORMAL_MNEMONIC(PSUBH_SH, PSUBH_SH, "psubh.sh"),
 4.27267 ++    NORMAL_MNEMONIC(PSUBH_UB, PSUBH_UB, "psubh.ub"),
 4.27268 ++    NORMAL_MNEMONIC(PSUBS_SB, PSUBS_SB, "psubs.sb"),
 4.27269 ++    NORMAL_MNEMONIC(PSUBS_SH, PSUBS_SH, "psubs.sh"),
 4.27270 ++    NORMAL_MNEMONIC(PSUBS_UB, PSUBS_UB, "psubs.ub"),
 4.27271 ++    NORMAL_MNEMONIC(PSUBS_UH, PSUBS_UH, "psubs.uh"),
 4.27272 ++    NORMAL_MNEMONIC(PSUBX_H, PSUBX_H, "psubx.h"),
 4.27273 ++    NORMAL_MNEMONIC(PSUBXH_SH, PSUBXH_SH, "psubxh.sh"),
 4.27274 ++    NORMAL_MNEMONIC(PSUBXS_SH, PSUBXS_SH, "psubxs.sh"),
 4.27275 ++    NORMAL_MNEMONIC(PSUBXS_UH, PSUBXS_UH, "psubxs.uh"),
 4.27276 ++    NORMAL_MNEMONIC(PUNPCKSB_H, PUNPCKSB_H, "punpcksb.h"),
 4.27277 ++    NORMAL_MNEMONIC(PUNPCKUB_H, PUNPCKUB_H, "punpckub.h"),
 4.27278 ++    NORMAL_MNEMONIC(PUSHJC, PUSHJC, "pushjc"),
 4.27279 ++    NORMAL_MNEMONIC(PUSHM, PUSHM, "pushm"),
 4.27280 ++    NORMAL_MNEMONIC(RCALL, RCALL1, "rcall"),
 4.27281 ++    NORMAL_MNEMONIC(RETEQ, RETEQ, "reteq"),
 4.27282 ++    NORMAL_MNEMONIC(RETNE, RETNE, "retne"),
 4.27283 ++    NORMAL_MNEMONIC(RETCC, RETCC, "retcc"),
 4.27284 ++    NORMAL_MNEMONIC(RETCS, RETCS, "retcs"),
 4.27285 ++    NORMAL_MNEMONIC(RETGE, RETGE, "retge"),
 4.27286 ++    NORMAL_MNEMONIC(RETLT, RETLT, "retlt"),
 4.27287 ++    NORMAL_MNEMONIC(RETMI, RETMI, "retmi"),
 4.27288 ++    NORMAL_MNEMONIC(RETPL, RETPL, "retpl"),
 4.27289 ++    NORMAL_MNEMONIC(RETLS, RETLS, "retls"),
 4.27290 ++    NORMAL_MNEMONIC(RETGT, RETGT, "retgt"),
 4.27291 ++    NORMAL_MNEMONIC(RETLE, RETLE, "retle"),
 4.27292 ++    NORMAL_MNEMONIC(RETHI, RETHI, "rethi"),
 4.27293 ++    NORMAL_MNEMONIC(RETVS, RETVS, "retvs"),
 4.27294 ++    NORMAL_MNEMONIC(RETVC, RETVC, "retvc"),
 4.27295 ++    NORMAL_MNEMONIC(RETQS, RETQS, "retqs"),
 4.27296 ++    NORMAL_MNEMONIC(RETAL, RETAL, "retal"),
 4.27297 ++    NORMAL_MNEMONIC(RETHS, RETHS, "reths"),
 4.27298 ++    NORMAL_MNEMONIC(RETLO, RETLO, "retlo"),
 4.27299 ++    NORMAL_MNEMONIC(RET, RETAL, "ret"),
 4.27300 ++    NORMAL_MNEMONIC(RETD, RETD, "retd"),
 4.27301 ++    NORMAL_MNEMONIC(RETE, RETE, "rete"),
 4.27302 ++    NORMAL_MNEMONIC(RETJ, RETJ, "retj"),
 4.27303 ++    NORMAL_MNEMONIC(RETS, RETS, "rets"),
 4.27304 ++    NORMAL_MNEMONIC(RJMP, RJMP, "rjmp"),
 4.27305 ++    NORMAL_MNEMONIC(ROL, ROL, "rol"),
 4.27306 ++    NORMAL_MNEMONIC(ROR, ROR, "ror"),
 4.27307 ++    NORMAL_MNEMONIC(RSUB, RSUB1, "rsub"),
 4.27308 ++    NORMAL_MNEMONIC(SATADD_H, SATADD_H, "satadd.h"),
 4.27309 ++    NORMAL_MNEMONIC(SATADD_W, SATADD_W, "satadd.w"),
 4.27310 ++    NORMAL_MNEMONIC(SATRNDS, SATRNDS, "satrnds"),
 4.27311 ++    NORMAL_MNEMONIC(SATRNDU, SATRNDU, "satrndu"),
 4.27312 ++    NORMAL_MNEMONIC(SATS, SATS, "sats"),
 4.27313 ++    NORMAL_MNEMONIC(SATSUB_H, SATSUB_H, "satsub.h"),
 4.27314 ++    NORMAL_MNEMONIC(SATSUB_W, SATSUB_W1, "satsub.w"),
 4.27315 ++    NORMAL_MNEMONIC(SATU, SATU, "satu"),
 4.27316 ++    NORMAL_MNEMONIC(SBC, SBC, "sbc"),
 4.27317 ++    NORMAL_MNEMONIC(SBR, SBR, "sbr"),
 4.27318 ++    NORMAL_MNEMONIC(SCALL, SCALL, "scall"),
 4.27319 ++    NORMAL_MNEMONIC(SCR, SCR, "scr"),
 4.27320 ++    NORMAL_MNEMONIC(SLEEP, SLEEP, "sleep"),
 4.27321 ++    NORMAL_MNEMONIC(SREQ, SREQ, "sreq"),
 4.27322 ++    NORMAL_MNEMONIC(SRNE, SRNE, "srne"),
 4.27323 ++    NORMAL_MNEMONIC(SRCC, SRCC, "srcc"),
 4.27324 ++    NORMAL_MNEMONIC(SRCS, SRCS, "srcs"),
 4.27325 ++    NORMAL_MNEMONIC(SRGE, SRGE, "srge"),
 4.27326 ++    NORMAL_MNEMONIC(SRLT, SRLT, "srlt"),
 4.27327 ++    NORMAL_MNEMONIC(SRMI, SRMI, "srmi"),
 4.27328 ++    NORMAL_MNEMONIC(SRPL, SRPL, "srpl"),
 4.27329 ++    NORMAL_MNEMONIC(SRLS, SRLS, "srls"),
 4.27330 ++    NORMAL_MNEMONIC(SRGT, SRGT, "srgt"),
 4.27331 ++    NORMAL_MNEMONIC(SRLE, SRLE, "srle"),
 4.27332 ++    NORMAL_MNEMONIC(SRHI, SRHI, "srhi"),
 4.27333 ++    NORMAL_MNEMONIC(SRVS, SRVS, "srvs"),
 4.27334 ++    NORMAL_MNEMONIC(SRVC, SRVC, "srvc"),
 4.27335 ++    NORMAL_MNEMONIC(SRQS, SRQS, "srqs"),
 4.27336 ++    NORMAL_MNEMONIC(SRAL, SRAL, "sral"),
 4.27337 ++    NORMAL_MNEMONIC(SRHS, SRHS, "srhs"),
 4.27338 ++    NORMAL_MNEMONIC(SRLO, SRLO, "srlo"),
 4.27339 ++    NORMAL_MNEMONIC(SSRF, SSRF, "ssrf"),
 4.27340 ++    NORMAL_MNEMONIC(ST_B, ST_B1, "st.b"),
 4.27341 ++    NORMAL_MNEMONIC(ST_D, ST_D1, "st.d"),
 4.27342 ++    NORMAL_MNEMONIC(ST_H, ST_H1, "st.h"),
 4.27343 ++    NORMAL_MNEMONIC(ST_W, ST_W1, "st.w"),
 4.27344 ++    NORMAL_MNEMONIC(STC_D, STC_D3, "stc.d"),
 4.27345 ++    NORMAL_MNEMONIC(STC_W, STC_W3, "stc.w"),
 4.27346 ++    NORMAL_MNEMONIC(STC0_D, STC0_D, "stc0.d"),
 4.27347 ++    NORMAL_MNEMONIC(STC0_W, STC0_W, "stc0.w"),
 4.27348 ++    NORMAL_MNEMONIC(STCM_D, STCM_D, "stcm.d"),
 4.27349 ++    NORMAL_MNEMONIC(STCM_W, STCM_W, "stcm.w"),
 4.27350 ++    NORMAL_MNEMONIC(STCOND, STCOND, "stcond"),
 4.27351 ++    NORMAL_MNEMONIC(STDSP, STDSP, "stdsp"),
 4.27352 ++    NORMAL_MNEMONIC(STHH_W, STHH_W2, "sthh.w"),
 4.27353 ++    NORMAL_MNEMONIC(STM, STM, "stm"),
 4.27354 ++    NORMAL_MNEMONIC(STMTS, STMTS, "stmts"),
 4.27355 ++    NORMAL_MNEMONIC(STSWP_H, STSWP_H, "stswp.h"),
 4.27356 ++    NORMAL_MNEMONIC(STSWP_W, STSWP_W, "stswp.w"),
 4.27357 ++    NORMAL_MNEMONIC(SUB, SUB1, "sub"),
 4.27358 ++    NORMAL_MNEMONIC(SUBEQ, SUBEQ, "subeq"),
 4.27359 ++    NORMAL_MNEMONIC(SUBNE, SUBNE, "subne"),
 4.27360 ++    NORMAL_MNEMONIC(SUBCC, SUBCC, "subcc"),
 4.27361 ++    NORMAL_MNEMONIC(SUBCS, SUBCS, "subcs"),
 4.27362 ++    NORMAL_MNEMONIC(SUBGE, SUBGE, "subge"),
 4.27363 ++    NORMAL_MNEMONIC(SUBLT, SUBLT, "sublt"),
 4.27364 ++    NORMAL_MNEMONIC(SUBMI, SUBMI, "submi"),
 4.27365 ++    NORMAL_MNEMONIC(SUBPL, SUBPL, "subpl"),
 4.27366 ++    NORMAL_MNEMONIC(SUBLS, SUBLS, "subls"),
 4.27367 ++    NORMAL_MNEMONIC(SUBGT, SUBGT, "subgt"),
 4.27368 ++    NORMAL_MNEMONIC(SUBLE, SUBLE, "suble"),
 4.27369 ++    NORMAL_MNEMONIC(SUBHI, SUBHI, "subhi"),
 4.27370 ++    NORMAL_MNEMONIC(SUBVS, SUBVS, "subvs"),
 4.27371 ++    NORMAL_MNEMONIC(SUBVC, SUBVC, "subvc"),
 4.27372 ++    NORMAL_MNEMONIC(SUBQS, SUBQS, "subqs"),
 4.27373 ++    NORMAL_MNEMONIC(SUBAL, SUBAL, "subal"),
 4.27374 ++    NORMAL_MNEMONIC(SUBHS, SUBHS, "subhs"),
 4.27375 ++    NORMAL_MNEMONIC(SUBLO, SUBLO, "sublo"),
 4.27376 ++    NORMAL_MNEMONIC(SUBFEQ, SUBFEQ, "subfeq"),
 4.27377 ++    NORMAL_MNEMONIC(SUBFNE, SUBFNE, "subfne"),
 4.27378 ++    NORMAL_MNEMONIC(SUBFCC, SUBFCC, "subfcc"),
 4.27379 ++    NORMAL_MNEMONIC(SUBFCS, SUBFCS, "subfcs"),
 4.27380 ++    NORMAL_MNEMONIC(SUBFGE, SUBFGE, "subfge"),
 4.27381 ++    NORMAL_MNEMONIC(SUBFLT, SUBFLT, "subflt"),
 4.27382 ++    NORMAL_MNEMONIC(SUBFMI, SUBFMI, "subfmi"),
 4.27383 ++    NORMAL_MNEMONIC(SUBFPL, SUBFPL, "subfpl"),
 4.27384 ++    NORMAL_MNEMONIC(SUBFLS, SUBFLS, "subfls"),
 4.27385 ++    NORMAL_MNEMONIC(SUBFGT, SUBFGT, "subfgt"),
 4.27386 ++    NORMAL_MNEMONIC(SUBFLE, SUBFLE, "subfle"),
 4.27387 ++    NORMAL_MNEMONIC(SUBFHI, SUBFHI, "subfhi"),
 4.27388 ++    NORMAL_MNEMONIC(SUBFVS, SUBFVS, "subfvs"),
 4.27389 ++    NORMAL_MNEMONIC(SUBFVC, SUBFVC, "subfvc"),
 4.27390 ++    NORMAL_MNEMONIC(SUBFQS, SUBFQS, "subfqs"),
 4.27391 ++    NORMAL_MNEMONIC(SUBFAL, SUBFAL, "subfal"),
 4.27392 ++    NORMAL_MNEMONIC(SUBFHS, SUBFHS, "subfhs"),
 4.27393 ++    NORMAL_MNEMONIC(SUBFLO, SUBFLO, "subflo"),
 4.27394 ++    NORMAL_MNEMONIC(SUBHH_W, SUBHH_W, "subhh.w"),
 4.27395 ++    NORMAL_MNEMONIC(SWAP_B, SWAP_B, "swap.b"),
 4.27396 ++    NORMAL_MNEMONIC(SWAP_BH, SWAP_BH, "swap.bh"),
 4.27397 ++    NORMAL_MNEMONIC(SWAP_H, SWAP_H, "swap.h"),
 4.27398 ++    NORMAL_MNEMONIC(SYNC, SYNC, "sync"),
 4.27399 ++    NORMAL_MNEMONIC(TLBR, TLBR, "tlbr"),
 4.27400 ++    NORMAL_MNEMONIC(TLBS, TLBS, "tlbs"),
 4.27401 ++    NORMAL_MNEMONIC(TLBW, TLBW, "tlbw"),
 4.27402 ++    NORMAL_MNEMONIC(TNBZ, TNBZ, "tnbz"),
 4.27403 ++    NORMAL_MNEMONIC(TST, TST, "tst"),
 4.27404 ++    NORMAL_MNEMONIC(XCHG, XCHG, "xchg"),
 4.27405 ++    NORMAL_MNEMONIC(MEMC, MEMC, "memc"),
 4.27406 ++    NORMAL_MNEMONIC(MEMS, MEMS, "mems"),
 4.27407 ++    NORMAL_MNEMONIC(MEMT, MEMT, "memt"),
 4.27408 ++    FP_MNEMONIC(FADD, FADD, "fadd"),
 4.27409 ++    FP_MNEMONIC(FSUB, FSUB, "fsub"),
 4.27410 ++    FP_MNEMONIC(FMAC, FMAC, "fmac"),
 4.27411 ++    FP_MNEMONIC(FNMAC, FNMAC, "fnmac"),
 4.27412 ++    FP_MNEMONIC(FMSC, FMSC, "fmsc"),
 4.27413 ++    FP_MNEMONIC(FNMSC, FNMSC, "fnmsc"),
 4.27414 ++    FP_MNEMONIC(FMUL, FMUL, "fmul"),
 4.27415 ++    FP_MNEMONIC(FNMUL, FNMUL, "fnmul"),
 4.27416 ++    FP_MNEMONIC(FNEG, FNEG, "fneg"),
 4.27417 ++    FP_MNEMONIC(FABS, FABS, "fabs"),
 4.27418 ++    FP_MNEMONIC(FCMP, FCMP, "fcmp"),
 4.27419 ++    FP_MNEMONIC(FMOV, FMOV1, "fmov"),
 4.27420 ++    NORMAL_MNEMONIC(FCASTS_D, FCASTS_D, "fcasts.d"),
 4.27421 ++    NORMAL_MNEMONIC(FCASTD_S, FCASTD_S, "fcastd.s"),
 4.27422 ++    NORMAL_MNEMONIC(LDA_W, LDA_W, "lda.w"),
 4.27423 ++    NORMAL_MNEMONIC(CALL, CALL, "call"),
 4.27424 ++    NORMAL_MNEMONIC(PICOSVMAC, PICOSVMAC0, "picosvmac"),
 4.27425 ++    NORMAL_MNEMONIC(PICOSVMUL, PICOSVMUL0, "picosvmul"),
 4.27426 ++    NORMAL_MNEMONIC(PICOVMAC, PICOVMAC0, "picovmac"),
 4.27427 ++    NORMAL_MNEMONIC(PICOVMUL, PICOVMUL0, "picovmul"),
 4.27428 ++    NORMAL_MNEMONIC(PICOLD_D, PICOLD_D2, "picold.d"),
 4.27429 ++    NORMAL_MNEMONIC(PICOLD_W, PICOLD_W2, "picold.w"),
 4.27430 ++    NORMAL_MNEMONIC(PICOLDM_D, PICOLDM_D, "picoldm.d"),
 4.27431 ++    NORMAL_MNEMONIC(PICOLDM_W, PICOLDM_W, "picoldm.w"),
 4.27432 ++    NORMAL_MNEMONIC(PICOMV_D, PICOMV_D1, "picomv.d"),
 4.27433 ++    NORMAL_MNEMONIC(PICOMV_W, PICOMV_W1, "picomv.w"),
 4.27434 ++    NORMAL_MNEMONIC(PICOST_D, PICOST_D2, "picost.d"),
 4.27435 ++    NORMAL_MNEMONIC(PICOST_W, PICOST_W2, "picost.w"),
 4.27436 ++    NORMAL_MNEMONIC(PICOSTM_D, PICOSTM_D, "picostm.d"),
 4.27437 ++    NORMAL_MNEMONIC(PICOSTM_W, PICOSTM_W, "picostm.w"),
 4.27438 ++    NORMAL_MNEMONIC(RSUBEQ, RSUBEQ, "rsubeq"),
 4.27439 ++    NORMAL_MNEMONIC(RSUBNE, RSUBNE, "rsubne"),
 4.27440 ++    NORMAL_MNEMONIC(RSUBCC, RSUBCC, "rsubcc"),
 4.27441 ++    NORMAL_MNEMONIC(RSUBCS, RSUBCS, "rsubcs"),
 4.27442 ++    NORMAL_MNEMONIC(RSUBGE, RSUBGE, "rsubge"),
 4.27443 ++    NORMAL_MNEMONIC(RSUBLT, RSUBLT, "rsublt"),
 4.27444 ++    NORMAL_MNEMONIC(RSUBMI, RSUBMI, "rsubmi"),
 4.27445 ++    NORMAL_MNEMONIC(RSUBPL, RSUBPL, "rsubpl"),
 4.27446 ++    NORMAL_MNEMONIC(RSUBLS, RSUBLS, "rsubls"),
 4.27447 ++    NORMAL_MNEMONIC(RSUBGT, RSUBGT, "rsubgt"),
 4.27448 ++    NORMAL_MNEMONIC(RSUBLE, RSUBLE, "rsuble"),
 4.27449 ++    NORMAL_MNEMONIC(RSUBHI, RSUBHI, "rsubhi"),
 4.27450 ++    NORMAL_MNEMONIC(RSUBVS, RSUBVS, "rsubvs"),
 4.27451 ++    NORMAL_MNEMONIC(RSUBVC, RSUBVC, "rsubvc"),
 4.27452 ++    NORMAL_MNEMONIC(RSUBQS, RSUBQS, "rsubqs"),
 4.27453 ++    NORMAL_MNEMONIC(RSUBAL, RSUBAL, "rsubal"),
 4.27454 ++    NORMAL_MNEMONIC(RSUBHS, RSUBHS, "rsubhs"),
 4.27455 ++    NORMAL_MNEMONIC(RSUBLO, RSUBLO, "rsublo"),
 4.27456 ++    NORMAL_MNEMONIC(ADDEQ, ADDEQ, "addeq"),
 4.27457 ++    NORMAL_MNEMONIC(ADDNE, ADDNE, "addne"),
 4.27458 ++    NORMAL_MNEMONIC(ADDCC, ADDCC, "addcc"),
 4.27459 ++    NORMAL_MNEMONIC(ADDCS, ADDCS, "addcs"),
 4.27460 ++    NORMAL_MNEMONIC(ADDGE, ADDGE, "addge"),
 4.27461 ++    NORMAL_MNEMONIC(ADDLT, ADDLT, "addlt"),
 4.27462 ++    NORMAL_MNEMONIC(ADDMI, ADDMI, "addmi"),
 4.27463 ++    NORMAL_MNEMONIC(ADDPL, ADDPL, "addpl"),
 4.27464 ++    NORMAL_MNEMONIC(ADDLS, ADDLS, "addls"),
 4.27465 ++    NORMAL_MNEMONIC(ADDGT, ADDGT, "addgt"),
 4.27466 ++    NORMAL_MNEMONIC(ADDLE, ADDLE, "addle"),
 4.27467 ++    NORMAL_MNEMONIC(ADDHI, ADDHI, "addhi"),
 4.27468 ++    NORMAL_MNEMONIC(ADDVS, ADDVS, "addvs"),
 4.27469 ++    NORMAL_MNEMONIC(ADDVC, ADDVC, "addvc"),
 4.27470 ++    NORMAL_MNEMONIC(ADDQS, ADDQS, "addqs"),
 4.27471 ++    NORMAL_MNEMONIC(ADDAL, ADDAL, "addal"),
 4.27472 ++    NORMAL_MNEMONIC(ADDHS, ADDHS, "addhs"),
 4.27473 ++    NORMAL_MNEMONIC(ADDLO, ADDLO, "addlo"),
 4.27474 ++    NORMAL_MNEMONIC(ANDEQ, ANDEQ, "andeq"),
 4.27475 ++    NORMAL_MNEMONIC(ANDNE, ANDNE, "andne"),
 4.27476 ++    NORMAL_MNEMONIC(ANDCC, ANDCC, "andcc"),
 4.27477 ++    NORMAL_MNEMONIC(ANDCS, ANDCS, "andcs"),
 4.27478 ++    NORMAL_MNEMONIC(ANDGE, ANDGE, "andge"),
 4.27479 ++    NORMAL_MNEMONIC(ANDLT, ANDLT, "andlt"),
 4.27480 ++    NORMAL_MNEMONIC(ANDMI, ANDMI, "andmi"),
 4.27481 ++    NORMAL_MNEMONIC(ANDPL, ANDPL, "andpl"),
 4.27482 ++    NORMAL_MNEMONIC(ANDLS, ANDLS, "andls"),
 4.27483 ++    NORMAL_MNEMONIC(ANDGT, ANDGT, "andgt"),
 4.27484 ++    NORMAL_MNEMONIC(ANDLE, ANDLE, "andle"),
 4.27485 ++    NORMAL_MNEMONIC(ANDHI, ANDHI, "andhi"),
 4.27486 ++    NORMAL_MNEMONIC(ANDVS, ANDVS, "andvs"),
 4.27487 ++    NORMAL_MNEMONIC(ANDVC, ANDVC, "andvc"),
 4.27488 ++    NORMAL_MNEMONIC(ANDQS, ANDQS, "andqs"),
 4.27489 ++    NORMAL_MNEMONIC(ANDAL, ANDAL, "andal"),
 4.27490 ++    NORMAL_MNEMONIC(ANDHS, ANDHS, "andhs"),
 4.27491 ++    NORMAL_MNEMONIC(ANDLO, ANDLO, "andlo"),
 4.27492 ++    NORMAL_MNEMONIC(OREQ, OREQ, "oreq"),
 4.27493 ++    NORMAL_MNEMONIC(ORNE, ORNE, "orne"),
 4.27494 ++    NORMAL_MNEMONIC(ORCC, ORCC, "orcc"),
 4.27495 ++    NORMAL_MNEMONIC(ORCS, ORCS, "orcs"),
 4.27496 ++    NORMAL_MNEMONIC(ORGE, ORGE, "orge"),
 4.27497 ++    NORMAL_MNEMONIC(ORLT, ORLT, "orlt"),
 4.27498 ++    NORMAL_MNEMONIC(ORMI, ORMI, "ormi"),
 4.27499 ++    NORMAL_MNEMONIC(ORPL, ORPL, "orpl"),
 4.27500 ++    NORMAL_MNEMONIC(ORLS, ORLS, "orls"),
 4.27501 ++    NORMAL_MNEMONIC(ORGT, ORGT, "orgt"),
 4.27502 ++    NORMAL_MNEMONIC(ORLE, ORLE, "orle"),
 4.27503 ++    NORMAL_MNEMONIC(ORHI, ORHI, "orhi"),
 4.27504 ++    NORMAL_MNEMONIC(ORVS, ORVS, "orvs"),
 4.27505 ++    NORMAL_MNEMONIC(ORVC, ORVC, "orvc"),
 4.27506 ++    NORMAL_MNEMONIC(ORQS, ORQS, "orqs"),
 4.27507 ++    NORMAL_MNEMONIC(ORAL, ORAL, "oral"),
 4.27508 ++    NORMAL_MNEMONIC(ORHS, ORHS, "orhs"),
 4.27509 ++    NORMAL_MNEMONIC(ORLO, ORLO, "orlo"),
 4.27510 ++    NORMAL_MNEMONIC(EOREQ, EOREQ, "eoreq"),
 4.27511 ++    NORMAL_MNEMONIC(EORNE, EORNE, "eorne"),
 4.27512 ++    NORMAL_MNEMONIC(EORCC, EORCC, "eorcc"),
 4.27513 ++    NORMAL_MNEMONIC(EORCS, EORCS, "eorcs"),
 4.27514 ++    NORMAL_MNEMONIC(EORGE, EORGE, "eorge"),
 4.27515 ++    NORMAL_MNEMONIC(EORLT, EORLT, "eorlt"),
 4.27516 ++    NORMAL_MNEMONIC(EORMI, EORMI, "eormi"),
 4.27517 ++    NORMAL_MNEMONIC(EORPL, EORPL, "eorpl"),
 4.27518 ++    NORMAL_MNEMONIC(EORLS, EORLS, "eorls"),
 4.27519 ++    NORMAL_MNEMONIC(EORGT, EORGT, "eorgt"),
 4.27520 ++    NORMAL_MNEMONIC(EORLE, EORLE, "eorle"),
 4.27521 ++    NORMAL_MNEMONIC(EORHI, EORHI, "eorhi"),
 4.27522 ++    NORMAL_MNEMONIC(EORVS, EORVS, "eorvs"),
 4.27523 ++    NORMAL_MNEMONIC(EORVC, EORVC, "eorvc"),
 4.27524 ++    NORMAL_MNEMONIC(EORQS, EORQS, "eorqs"),
 4.27525 ++    NORMAL_MNEMONIC(EORAL, EORAL, "eoral"),
 4.27526 ++    NORMAL_MNEMONIC(EORHS, EORHS, "eorhs"),
 4.27527 ++    NORMAL_MNEMONIC(EORLO, EORLO, "eorlo"),
 4.27528 ++    NORMAL_MNEMONIC(LD_WEQ, LD_WEQ, "ld.weq"),
 4.27529 ++    NORMAL_MNEMONIC(LD_WNE, LD_WNE, "ld.wne"),
 4.27530 ++    NORMAL_MNEMONIC(LD_WCC, LD_WCC, "ld.wcc"),
 4.27531 ++    NORMAL_MNEMONIC(LD_WCS, LD_WCS, "ld.wcs"),
 4.27532 ++    NORMAL_MNEMONIC(LD_WGE, LD_WGE, "ld.wge"),
 4.27533 ++    NORMAL_MNEMONIC(LD_WLT, LD_WLT, "ld.wlt"),
 4.27534 ++    NORMAL_MNEMONIC(LD_WMI, LD_WMI, "ld.wmi"),
 4.27535 ++    NORMAL_MNEMONIC(LD_WPL, LD_WPL, "ld.wpl"),
 4.27536 ++    NORMAL_MNEMONIC(LD_WLS, LD_WLS, "ld.wls"),
 4.27537 ++    NORMAL_MNEMONIC(LD_WGT, LD_WGT, "ld.wgt"),
 4.27538 ++    NORMAL_MNEMONIC(LD_WLE, LD_WLE, "ld.wle"),
 4.27539 ++    NORMAL_MNEMONIC(LD_WHI, LD_WHI, "ld.whi"),
 4.27540 ++    NORMAL_MNEMONIC(LD_WVS, LD_WVS, "ld.wvs"),
 4.27541 ++    NORMAL_MNEMONIC(LD_WVC, LD_WVC, "ld.wvc"),
 4.27542 ++    NORMAL_MNEMONIC(LD_WQS, LD_WQS, "ld.wqs"),
 4.27543 ++    NORMAL_MNEMONIC(LD_WAL, LD_WAL, "ld.wal"),
 4.27544 ++    NORMAL_MNEMONIC(LD_WHS, LD_WHS, "ld.whs"),
 4.27545 ++    NORMAL_MNEMONIC(LD_WLO, LD_WLO, "ld.wlo"),
 4.27546 ++    NORMAL_MNEMONIC(LD_SHEQ, LD_SHEQ, "ld.sheq"),
 4.27547 ++    NORMAL_MNEMONIC(LD_SHNE, LD_SHNE, "ld.shne"),
 4.27548 ++    NORMAL_MNEMONIC(LD_SHCC, LD_SHCC, "ld.shcc"),
 4.27549 ++    NORMAL_MNEMONIC(LD_SHCS, LD_SHCS, "ld.shcs"),
 4.27550 ++    NORMAL_MNEMONIC(LD_SHGE, LD_SHGE, "ld.shge"),
 4.27551 ++    NORMAL_MNEMONIC(LD_SHLT, LD_SHLT, "ld.shlt"),
 4.27552 ++    NORMAL_MNEMONIC(LD_SHMI, LD_SHMI, "ld.shmi"),
 4.27553 ++    NORMAL_MNEMONIC(LD_SHPL, LD_SHPL, "ld.shpl"),
 4.27554 ++    NORMAL_MNEMONIC(LD_SHLS, LD_SHLS, "ld.shls"),
 4.27555 ++    NORMAL_MNEMONIC(LD_SHGT, LD_SHGT, "ld.shgt"),
 4.27556 ++    NORMAL_MNEMONIC(LD_SHLE, LD_SHLE, "ld.shle"),
 4.27557 ++    NORMAL_MNEMONIC(LD_SHHI, LD_SHHI, "ld.shhi"),
 4.27558 ++    NORMAL_MNEMONIC(LD_SHVS, LD_SHVS, "ld.shvs"),
 4.27559 ++    NORMAL_MNEMONIC(LD_SHVC, LD_SHVC, "ld.shvc"),
 4.27560 ++    NORMAL_MNEMONIC(LD_SHQS, LD_SHQS, "ld.shqs"),
 4.27561 ++    NORMAL_MNEMONIC(LD_SHAL, LD_SHAL, "ld.shal"),
 4.27562 ++    NORMAL_MNEMONIC(LD_SHHS, LD_SHHS, "ld.shhs"),
 4.27563 ++    NORMAL_MNEMONIC(LD_SHLO, LD_SHLO, "ld.shlo"),
 4.27564 ++    NORMAL_MNEMONIC(LD_UHEQ, LD_UHEQ, "ld.uheq"),
 4.27565 ++    NORMAL_MNEMONIC(LD_UHNE, LD_UHNE, "ld.uhne"),
 4.27566 ++    NORMAL_MNEMONIC(LD_UHCC, LD_UHCC, "ld.uhcc"),
 4.27567 ++    NORMAL_MNEMONIC(LD_UHCS, LD_UHCS, "ld.uhcs"),
 4.27568 ++    NORMAL_MNEMONIC(LD_UHGE, LD_UHGE, "ld.uhge"),
 4.27569 ++    NORMAL_MNEMONIC(LD_UHLT, LD_UHLT, "ld.uhlt"),
 4.27570 ++    NORMAL_MNEMONIC(LD_UHMI, LD_UHMI, "ld.uhmi"),
 4.27571 ++    NORMAL_MNEMONIC(LD_UHPL, LD_UHPL, "ld.uhpl"),
 4.27572 ++    NORMAL_MNEMONIC(LD_UHLS, LD_UHLS, "ld.uhls"),
 4.27573 ++    NORMAL_MNEMONIC(LD_UHGT, LD_UHGT, "ld.uhgt"),
 4.27574 ++    NORMAL_MNEMONIC(LD_UHLE, LD_UHLE, "ld.uhle"),
 4.27575 ++    NORMAL_MNEMONIC(LD_UHHI, LD_UHHI, "ld.uhhi"),
 4.27576 ++    NORMAL_MNEMONIC(LD_UHVS, LD_UHVS, "ld.uhvs"),
 4.27577 ++    NORMAL_MNEMONIC(LD_UHVC, LD_UHVC, "ld.uhvc"),
 4.27578 ++    NORMAL_MNEMONIC(LD_UHQS, LD_UHQS, "ld.uhqs"),
 4.27579 ++    NORMAL_MNEMONIC(LD_UHAL, LD_UHAL, "ld.uhal"),
 4.27580 ++    NORMAL_MNEMONIC(LD_UHHS, LD_UHHS, "ld.uhhs"),
 4.27581 ++    NORMAL_MNEMONIC(LD_UHLO, LD_UHLO, "ld.uhlo"),
 4.27582 ++    NORMAL_MNEMONIC(LD_SBEQ, LD_SBEQ, "ld.sbeq"),
 4.27583 ++    NORMAL_MNEMONIC(LD_SBNE, LD_SBNE, "ld.sbne"),
 4.27584 ++    NORMAL_MNEMONIC(LD_SBCC, LD_SBCC, "ld.sbcc"),
 4.27585 ++    NORMAL_MNEMONIC(LD_SBCS, LD_SBCS, "ld.sbcs"),
 4.27586 ++    NORMAL_MNEMONIC(LD_SBGE, LD_SBGE, "ld.sbge"),
 4.27587 ++    NORMAL_MNEMONIC(LD_SBLT, LD_SBLT, "ld.sblt"),
 4.27588 ++    NORMAL_MNEMONIC(LD_SBMI, LD_SBMI, "ld.sbmi"),
 4.27589 ++    NORMAL_MNEMONIC(LD_SBPL, LD_SBPL, "ld.sbpl"),
 4.27590 ++    NORMAL_MNEMONIC(LD_SBLS, LD_SBLS, "ld.sbls"),
 4.27591 ++    NORMAL_MNEMONIC(LD_SBGT, LD_SBGT, "ld.sbgt"),
 4.27592 ++    NORMAL_MNEMONIC(LD_SBLE, LD_SBLE, "ld.sble"),
 4.27593 ++    NORMAL_MNEMONIC(LD_SBHI, LD_SBHI, "ld.sbhi"),
 4.27594 ++    NORMAL_MNEMONIC(LD_SBVS, LD_SBVS, "ld.sbvs"),
 4.27595 ++    NORMAL_MNEMONIC(LD_SBVC, LD_SBVC, "ld.sbvc"),
 4.27596 ++    NORMAL_MNEMONIC(LD_SBQS, LD_SBQS, "ld.sbqs"),
 4.27597 ++    NORMAL_MNEMONIC(LD_SBAL, LD_SBAL, "ld.sbal"),
 4.27598 ++    NORMAL_MNEMONIC(LD_SBHS, LD_SBHS, "ld.sbhs"),
 4.27599 ++    NORMAL_MNEMONIC(LD_SBLO, LD_SBLO, "ld.sblo"),
 4.27600 ++    NORMAL_MNEMONIC(LD_UBEQ, LD_UBEQ, "ld.ubeq"),
 4.27601 ++    NORMAL_MNEMONIC(LD_UBNE, LD_UBNE, "ld.ubne"),
 4.27602 ++    NORMAL_MNEMONIC(LD_UBCC, LD_UBCC, "ld.ubcc"),
 4.27603 ++    NORMAL_MNEMONIC(LD_UBCS, LD_UBCS, "ld.ubcs"),
 4.27604 ++    NORMAL_MNEMONIC(LD_UBGE, LD_UBGE, "ld.ubge"),
 4.27605 ++    NORMAL_MNEMONIC(LD_UBLT, LD_UBLT, "ld.ublt"),
 4.27606 ++    NORMAL_MNEMONIC(LD_UBMI, LD_UBMI, "ld.ubmi"),
 4.27607 ++    NORMAL_MNEMONIC(LD_UBPL, LD_UBPL, "ld.ubpl"),
 4.27608 ++    NORMAL_MNEMONIC(LD_UBLS, LD_UBLS, "ld.ubls"),
 4.27609 ++    NORMAL_MNEMONIC(LD_UBGT, LD_UBGT, "ld.ubgt"),
 4.27610 ++    NORMAL_MNEMONIC(LD_UBLE, LD_UBLE, "ld.uble"),
 4.27611 ++    NORMAL_MNEMONIC(LD_UBHI, LD_UBHI, "ld.ubhi"),
 4.27612 ++    NORMAL_MNEMONIC(LD_UBVS, LD_UBVS, "ld.ubvs"),
 4.27613 ++    NORMAL_MNEMONIC(LD_UBVC, LD_UBVC, "ld.ubvc"),
 4.27614 ++    NORMAL_MNEMONIC(LD_UBQS, LD_UBQS, "ld.ubqs"),
 4.27615 ++    NORMAL_MNEMONIC(LD_UBAL, LD_UBAL, "ld.ubal"),
 4.27616 ++    NORMAL_MNEMONIC(LD_UBHS, LD_UBHS, "ld.ubhs"),
 4.27617 ++    NORMAL_MNEMONIC(LD_UBLO, LD_UBLO, "ld.ublo"),
 4.27618 ++    NORMAL_MNEMONIC(ST_WEQ, ST_WEQ, "st.weq"),
 4.27619 ++    NORMAL_MNEMONIC(ST_WNE, ST_WNE, "st.wne"),
 4.27620 ++    NORMAL_MNEMONIC(ST_WCC, ST_WCC, "st.wcc"),
 4.27621 ++    NORMAL_MNEMONIC(ST_WCS, ST_WCS, "st.wcs"),
 4.27622 ++    NORMAL_MNEMONIC(ST_WGE, ST_WGE, "st.wge"),
 4.27623 ++    NORMAL_MNEMONIC(ST_WLT, ST_WLT, "st.wlt"),
 4.27624 ++    NORMAL_MNEMONIC(ST_WMI, ST_WMI, "st.wmi"),
 4.27625 ++    NORMAL_MNEMONIC(ST_WPL, ST_WPL, "st.wpl"),
 4.27626 ++    NORMAL_MNEMONIC(ST_WLS, ST_WLS, "st.wls"),
 4.27627 ++    NORMAL_MNEMONIC(ST_WGT, ST_WGT, "st.wgt"),
 4.27628 ++    NORMAL_MNEMONIC(ST_WLE, ST_WLE, "st.wle"),
 4.27629 ++    NORMAL_MNEMONIC(ST_WHI, ST_WHI, "st.whi"),
 4.27630 ++    NORMAL_MNEMONIC(ST_WVS, ST_WVS, "st.wvs"),
 4.27631 ++    NORMAL_MNEMONIC(ST_WVC, ST_WVC, "st.wvc"),
 4.27632 ++    NORMAL_MNEMONIC(ST_WQS, ST_WQS, "st.wqs"),
 4.27633 ++    NORMAL_MNEMONIC(ST_WAL, ST_WAL, "st.wal"),
 4.27634 ++    NORMAL_MNEMONIC(ST_WHS, ST_WHS, "st.whs"),
 4.27635 ++    NORMAL_MNEMONIC(ST_WLO, ST_WLO, "st.wlo"),
 4.27636 ++    NORMAL_MNEMONIC(ST_HEQ, ST_HEQ, "st.heq"),
 4.27637 ++    NORMAL_MNEMONIC(ST_HNE, ST_HNE, "st.hne"),
 4.27638 ++    NORMAL_MNEMONIC(ST_HCC, ST_HCC, "st.hcc"),
 4.27639 ++    NORMAL_MNEMONIC(ST_HCS, ST_HCS, "st.hcs"),
 4.27640 ++    NORMAL_MNEMONIC(ST_HGE, ST_HGE, "st.hge"),
 4.27641 ++    NORMAL_MNEMONIC(ST_HLT, ST_HLT, "st.hlt"),
 4.27642 ++    NORMAL_MNEMONIC(ST_HMI, ST_HMI, "st.hmi"),
 4.27643 ++    NORMAL_MNEMONIC(ST_HPL, ST_HPL, "st.hpl"),
 4.27644 ++    NORMAL_MNEMONIC(ST_HLS, ST_HLS, "st.hls"),
 4.27645 ++    NORMAL_MNEMONIC(ST_HGT, ST_HGT, "st.hgt"),
 4.27646 ++    NORMAL_MNEMONIC(ST_HLE, ST_HLE, "st.hle"),
 4.27647 ++    NORMAL_MNEMONIC(ST_HHI, ST_HHI, "st.hhi"),
 4.27648 ++    NORMAL_MNEMONIC(ST_HVS, ST_HVS, "st.hvs"),
 4.27649 ++    NORMAL_MNEMONIC(ST_HVC, ST_HVC, "st.hvc"),
 4.27650 ++    NORMAL_MNEMONIC(ST_HQS, ST_HQS, "st.hqs"),
 4.27651 ++    NORMAL_MNEMONIC(ST_HAL, ST_HAL, "st.hal"),
 4.27652 ++    NORMAL_MNEMONIC(ST_HHS, ST_HHS, "st.hhs"),
 4.27653 ++    NORMAL_MNEMONIC(ST_HLO, ST_HLO, "st.hlo"),
 4.27654 ++    NORMAL_MNEMONIC(ST_BEQ, ST_BEQ, "st.beq"),
 4.27655 ++    NORMAL_MNEMONIC(ST_BNE, ST_BNE, "st.bne"),
 4.27656 ++    NORMAL_MNEMONIC(ST_BCC, ST_BCC, "st.bcc"),
 4.27657 ++    NORMAL_MNEMONIC(ST_BCS, ST_BCS, "st.bcs"),
 4.27658 ++    NORMAL_MNEMONIC(ST_BGE, ST_BGE, "st.bge"),
 4.27659 ++    NORMAL_MNEMONIC(ST_BLT, ST_BLT, "st.blt"),
 4.27660 ++    NORMAL_MNEMONIC(ST_BMI, ST_BMI, "st.bmi"),
 4.27661 ++    NORMAL_MNEMONIC(ST_BPL, ST_BPL, "st.bpl"),
 4.27662 ++    NORMAL_MNEMONIC(ST_BLS, ST_BLS, "st.bls"),
 4.27663 ++    NORMAL_MNEMONIC(ST_BGT, ST_BGT, "st.bgt"),
 4.27664 ++    NORMAL_MNEMONIC(ST_BLE, ST_BLE, "st.ble"),
 4.27665 ++    NORMAL_MNEMONIC(ST_BHI, ST_BHI, "st.bhi"),
 4.27666 ++    NORMAL_MNEMONIC(ST_BVS, ST_BVS, "st.bvs"),
 4.27667 ++    NORMAL_MNEMONIC(ST_BVC, ST_BVC, "st.bvc"),
 4.27668 ++    NORMAL_MNEMONIC(ST_BQS, ST_BQS, "st.bqs"),
 4.27669 ++    NORMAL_MNEMONIC(ST_BAL, ST_BAL, "st.bal"),
 4.27670 ++    NORMAL_MNEMONIC(ST_BHS, ST_BHS, "st.bhs"),
 4.27671 ++    NORMAL_MNEMONIC(ST_BLO, ST_BLO, "st.blo"),
 4.27672 ++    NORMAL_MNEMONIC(MOVH, MOVH, "movh"),
 4.27673 ++
 4.27674 ++  };
 4.27675 ++#undef NORMAL_MNEMONIC
 4.27676 ++#undef ALIAS_MNEMONIC
 4.27677 ++#undef FP_MNEMONIC
 4.27678 +--- /dev/null
 4.27679 ++++ b/opcodes/avr32-opc.h
 4.27680 +@@ -0,0 +1,2370 @@
 4.27681 ++/* Opcode tables for AVR32.
 4.27682 ++   Copyright 2005, 2006 Atmel Corporation.
 4.27683 ++
 4.27684 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
 4.27685 ++
 4.27686 ++   This file is part of libopcodes.
 4.27687 ++
 4.27688 ++   This program is free software; you can redistribute it and/or
 4.27689 ++   modify it under the terms of the GNU General Public License as
 4.27690 ++   published by the Free Software Foundation; either version 2 of the
 4.27691 ++   License, or (at your option) any later version.
 4.27692 ++
 4.27693 ++   This program is distributed in the hope that it will be useful, but
 4.27694 ++   WITHOUT ANY WARRANTY; without even the implied warranty of
 4.27695 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 4.27696 ++   General Public License for more details.
 4.27697 ++
 4.27698 ++   You should have received a copy of the GNU General Public License
 4.27699 ++   along with this program; if not, write to the Free Software
 4.27700 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 4.27701 ++   02111-1307, USA.  */
 4.27702 ++
 4.27703 ++#include "bfd.h"
 4.27704 ++
 4.27705 ++#define AVR32_MAX_OPERANDS	8
 4.27706 ++#define AVR32_MAX_FIELDS	8
 4.27707 ++
 4.27708 ++#define AVR32_V1	        (1 << 1)
 4.27709 ++#define AVR32_SIMD		(1 << 2)
 4.27710 ++#define AVR32_DSP		(1 << 3)
 4.27711 ++#define AVR32_RMW		(1 << 4)
 4.27712 ++#define AVR32_V2	        (1 << 5)
 4.27713 ++#define AVR32_FP		(1 << 16)
 4.27714 ++#define AVR32_PICO		(1 << 17)
 4.27715 ++
 4.27716 ++/* Registers we commonly refer to */
 4.27717 ++#define AVR32_REG_R12		12
 4.27718 ++#define AVR32_REG_SP		13
 4.27719 ++#define AVR32_REG_LR		14
 4.27720 ++#define AVR32_REG_PC		15
 4.27721 ++
 4.27722 ++struct avr32_ifield
 4.27723 ++{
 4.27724 ++  int id;
 4.27725 ++  unsigned short bitsize;
 4.27726 ++  unsigned short shift;
 4.27727 ++  unsigned long mask;
 4.27728 ++
 4.27729 ++  /* If the value doesn't fit, it will be truncated with no warning */
 4.27730 ++  void (*insert)(const struct avr32_ifield *, void *, unsigned long);
 4.27731 ++  void (*extract)(const struct avr32_ifield *, void *, unsigned long *);
 4.27732 ++};
 4.27733 ++
 4.27734 ++struct avr32_opcode
 4.27735 ++{
 4.27736 ++  int id;
 4.27737 ++  int size;
 4.27738 ++  unsigned long value;
 4.27739 ++  unsigned long mask;
 4.27740 ++  const struct avr32_syntax *syntax;
 4.27741 ++  bfd_reloc_code_real_type reloc_type;
 4.27742 ++  unsigned int nr_fields;
 4.27743 ++  /* if relaxable, which field is variable, otherwise -1 */
 4.27744 ++  int var_field;
 4.27745 ++  const struct avr32_ifield *fields[AVR32_MAX_FIELDS];
 4.27746 ++};
 4.27747 ++
 4.27748 ++struct avr32_alias
 4.27749 ++{
 4.27750 ++  int id;
 4.27751 ++  const struct avr32_opcode *opc;
 4.27752 ++  struct {
 4.27753 ++    int is_opindex;
 4.27754 ++    unsigned long value;
 4.27755 ++  } operand_map[AVR32_MAX_OPERANDS];
 4.27756 ++};
 4.27757 ++
 4.27758 ++struct avr32_syntax
 4.27759 ++{
 4.27760 ++  int id;
 4.27761 ++  unsigned long isa_flags;
 4.27762 ++  const struct avr32_mnemonic *mnemonic;
 4.27763 ++  int type;
 4.27764 ++  union {
 4.27765 ++    const struct avr32_opcode *opc;
 4.27766 ++    const struct avr32_alias *alias;
 4.27767 ++  } u;
 4.27768 ++  const struct avr32_syntax *next;
 4.27769 ++  /* negative means "vararg" */
 4.27770 ++  int nr_operands;
 4.27771 ++  int operand[AVR32_MAX_OPERANDS];
 4.27772 ++};
 4.27773 ++
 4.27774 ++#if 0
 4.27775 ++#define AVR32_ALIAS_MAKE_CONST(val) ((val) | 0x80000000UL)
 4.27776 ++#define AVR32_ALIAS_IS_CONST(mapval) (((mapval) & 0x80000000UL) != 0)
 4.27777 ++#define AVR32_ALIAS_GET_CONST(mapval) ((mapval) & ~0x80000000UL)
 4.27778 ++#endif
 4.27779 ++
 4.27780 ++struct avr32_mnemonic
 4.27781 ++{
 4.27782 ++  int id;
 4.27783 ++  const char *name;
 4.27784 ++  const struct avr32_syntax *syntax;
 4.27785 ++};
 4.27786 ++
 4.27787 ++extern const struct avr32_ifield avr32_ifield_table[];
 4.27788 ++extern struct avr32_opcode avr32_opc_table[];
 4.27789 ++extern const struct avr32_syntax avr32_syntax_table[];
 4.27790 ++extern const struct avr32_alias avr32_alias_table[];
 4.27791 ++extern const struct avr32_mnemonic avr32_mnemonic_table[];
 4.27792 ++
 4.27793 ++extern void avr32_insert_simple(const struct avr32_ifield *field,
 4.27794 ++				void *buf, unsigned long value);
 4.27795 ++extern void avr32_insert_bit5c(const struct avr32_ifield *field,
 4.27796 ++			       void *buf, unsigned long value);
 4.27797 ++extern void avr32_insert_k10(const struct avr32_ifield *field,
 4.27798 ++			     void *buf, unsigned long value);
 4.27799 ++extern void avr32_insert_k21(const struct avr32_ifield *field,
 4.27800 ++			     void *buf, unsigned long value);
 4.27801 ++extern void avr32_insert_cpop(const struct avr32_ifield *field,
 4.27802 ++			      void *buf, unsigned long value);
 4.27803 ++extern void avr32_insert_k12cp(const struct avr32_ifield *field,
 4.27804 ++			       void *buf, unsigned long value);
 4.27805 ++
 4.27806 ++extern void avr32_extract_simple(const struct avr32_ifield *field,
 4.27807 ++				 void *buf, unsigned long *value);
 4.27808 ++extern void avr32_extract_bit5c(const struct avr32_ifield *field,
 4.27809 ++				void *buf, unsigned long *value);
 4.27810 ++extern void avr32_extract_k10(const struct avr32_ifield *field,
 4.27811 ++			      void *buf, unsigned long *value);
 4.27812 ++extern void avr32_extract_k21(const struct avr32_ifield *field,
 4.27813 ++			      void *buf, unsigned long *value);
 4.27814 ++extern void avr32_extract_cpop(const struct avr32_ifield *field,
 4.27815 ++			       void *buf, unsigned long *value);
 4.27816 ++extern void avr32_extract_k12cp(const struct avr32_ifield *field,
 4.27817 ++				void *buf, unsigned long *value);
 4.27818 ++
 4.27819 ++enum avr32_operand_type
 4.27820 ++{
 4.27821 ++  AVR32_OPERAND_INTREG,		/* just a register */
 4.27822 ++  AVR32_OPERAND_INTREG_PREDEC,	/* register with pre-decrement */
 4.27823 ++  AVR32_OPERAND_INTREG_POSTINC,	/* register with post-increment */
 4.27824 ++  AVR32_OPERAND_INTREG_LSL,	/* register with left shift */
 4.27825 ++  AVR32_OPERAND_INTREG_LSR,	/* register with right shift */
 4.27826 ++  AVR32_OPERAND_INTREG_BSEL,	/* register with byte selector */
 4.27827 ++  AVR32_OPERAND_INTREG_HSEL,	/* register with halfword selector */
 4.27828 ++  AVR32_OPERAND_INTREG_SDISP,	/* Rp[signed disp] */
 4.27829 ++  AVR32_OPERAND_INTREG_SDISP_H,	/* Rp[signed hword-aligned disp] */
 4.27830 ++  AVR32_OPERAND_INTREG_SDISP_W,	/* Rp[signed word-aligned disp] */
 4.27831 ++  AVR32_OPERAND_INTREG_UDISP,	/* Rp[unsigned disp] */
 4.27832 ++  AVR32_OPERAND_INTREG_UDISP_H,	/* Rp[unsigned hword-aligned disp] */
 4.27833 ++  AVR32_OPERAND_INTREG_UDISP_W, /* Rp[unsigned word-aligned disp] */
 4.27834 ++  AVR32_OPERAND_INTREG_INDEX,	/* Rp[Ri << sa] */
 4.27835 ++  AVR32_OPERAND_INTREG_XINDEX,	/* Rp[Ri:bytesel << 2] */
 4.27836 ++  AVR32_OPERAND_DWREG,		/* Even-numbered register */
 4.27837 ++  AVR32_OPERAND_PC_UDISP_W,	/* PC[unsigned word-aligned disp] or label */
 4.27838 ++  AVR32_OPERAND_SP,		/* Just SP */
 4.27839 ++  AVR32_OPERAND_SP_UDISP_W,	/* SP[unsigned word-aligned disp] */
 4.27840 ++  AVR32_OPERAND_CPNO,
 4.27841 ++  AVR32_OPERAND_CPREG,
 4.27842 ++  AVR32_OPERAND_CPREG_D,
 4.27843 ++  AVR32_OPERAND_UNSIGNED_CONST,
 4.27844 ++  AVR32_OPERAND_UNSIGNED_CONST_W,
 4.27845 ++  AVR32_OPERAND_SIGNED_CONST,
 4.27846 ++  AVR32_OPERAND_SIGNED_CONST_W,
 4.27847 ++  AVR32_OPERAND_JMPLABEL,
 4.27848 ++  AVR32_OPERAND_UNSIGNED_NUMBER,
 4.27849 ++  AVR32_OPERAND_UNSIGNED_NUMBER_W,
 4.27850 ++  AVR32_OPERAND_REGLIST8,
 4.27851 ++  AVR32_OPERAND_REGLIST9,
 4.27852 ++  AVR32_OPERAND_REGLIST16,
 4.27853 ++  AVR32_OPERAND_REGLIST_LDM,
 4.27854 ++  AVR32_OPERAND_REGLIST_CP8,
 4.27855 ++  AVR32_OPERAND_REGLIST_CPD8,
 4.27856 ++  AVR32_OPERAND_RETVAL,
 4.27857 ++  AVR32_OPERAND_MCALL,
 4.27858 ++  AVR32_OPERAND_JOSPINC,
 4.27859 ++  AVR32_OPERAND_COH,
 4.27860 ++  AVR32_OPERAND_FPREG_S,
 4.27861 ++  AVR32_OPERAND_FPREG_D,
 4.27862 ++  AVR32_OPERAND_PICO_REG_W,
 4.27863 ++  AVR32_OPERAND_PICO_REG_D,
 4.27864 ++  AVR32_OPERAND_PICO_REGLIST_W,
 4.27865 ++  AVR32_OPERAND_PICO_REGLIST_D,
 4.27866 ++  AVR32_OPERAND_PICO_IN,
 4.27867 ++  AVR32_OPERAND_PICO_OUT0,
 4.27868 ++  AVR32_OPERAND_PICO_OUT1,
 4.27869 ++  AVR32_OPERAND_PICO_OUT2,
 4.27870 ++  AVR32_OPERAND_PICO_OUT3,
 4.27871 ++  AVR32_OPERAND__END_
 4.27872 ++};
 4.27873 ++#define AVR32_OPERAND_UNKNOWN AVR32_OPERAND__END_
 4.27874 ++#define AVR32_NR_OPERANDS AVR32_OPERAND__END_
 4.27875 ++
 4.27876 ++enum avr32_ifield_type
 4.27877 ++{
 4.27878 ++  AVR32_IFIELD_RX,
 4.27879 ++  AVR32_IFIELD_RY,
 4.27880 ++  AVR32_IFIELD_COND4C,
 4.27881 ++  AVR32_IFIELD_K8C,
 4.27882 ++  AVR32_IFIELD_K7C,
 4.27883 ++  AVR32_IFIELD_K5C,
 4.27884 ++  AVR32_IFIELD_K3,
 4.27885 ++  AVR32_IFIELD_RY_DW,
 4.27886 ++  AVR32_IFIELD_COND4E,
 4.27887 ++  AVR32_IFIELD_K8E,
 4.27888 ++  AVR32_IFIELD_BIT5C,
 4.27889 ++  AVR32_IFIELD_COND3,
 4.27890 ++  AVR32_IFIELD_K10,
 4.27891 ++  AVR32_IFIELD_POPM,
 4.27892 ++  AVR32_IFIELD_K2,
 4.27893 ++  AVR32_IFIELD_RD_E,
 4.27894 ++  AVR32_IFIELD_RD_DW,
 4.27895 ++  AVR32_IFIELD_X,
 4.27896 ++  AVR32_IFIELD_Y,
 4.27897 ++  AVR32_IFIELD_X2,
 4.27898 ++  AVR32_IFIELD_Y2,
 4.27899 ++  AVR32_IFIELD_K5E,
 4.27900 ++  AVR32_IFIELD_PART2,
 4.27901 ++  AVR32_IFIELD_PART1,
 4.27902 ++  AVR32_IFIELD_K16,
 4.27903 ++  AVR32_IFIELD_CACHEOP,
 4.27904 ++  AVR32_IFIELD_K11,
 4.27905 ++  AVR32_IFIELD_K21,
 4.27906 ++  AVR32_IFIELD_CPOP,
 4.27907 ++  AVR32_IFIELD_CPNO,
 4.27908 ++  AVR32_IFIELD_CRD_RI,
 4.27909 ++  AVR32_IFIELD_CRX,
 4.27910 ++  AVR32_IFIELD_CRY,
 4.27911 ++  AVR32_IFIELD_K7E,
 4.27912 ++  AVR32_IFIELD_CRD_DW,
 4.27913 ++  AVR32_IFIELD_PART1_K12,
 4.27914 ++  AVR32_IFIELD_PART2_K12,
 4.27915 ++  AVR32_IFIELD_K12,
 4.27916 ++  AVR32_IFIELD_S5,
 4.27917 ++  AVR32_IFIELD_K5E2,
 4.27918 ++  AVR32_IFIELD_K4,
 4.27919 ++  AVR32_IFIELD_COND4E2,
 4.27920 ++  AVR32_IFIELD_K8E2,
 4.27921 ++  AVR32_IFIELD_K6,
 4.27922 ++  AVR32_IFIELD_MEM15,
 4.27923 ++  AVR32_IFIELD_MEMB5,
 4.27924 ++  AVR32_IFIELD_W,
 4.27925 ++  AVR32_IFIELD_CM_HL,
 4.27926 ++  AVR32_IFIELD_K12CP,
 4.27927 ++  AVR32_IFIELD_K9E,
 4.27928 ++  AVR32_IFIELD__END_,
 4.27929 ++};
 4.27930 ++#define AVR32_NR_IFIELDS AVR32_IFIELD__END_
 4.27931 ++
 4.27932 ++enum avr32_opc_type
 4.27933 ++{
 4.27934 ++  AVR32_OPC_ABS,
 4.27935 ++  AVR32_OPC_ACALL,
 4.27936 ++  AVR32_OPC_ACR,
 4.27937 ++  AVR32_OPC_ADC,
 4.27938 ++  AVR32_OPC_ADD1,
 4.27939 ++  AVR32_OPC_ADD2,
 4.27940 ++  AVR32_OPC_ADDABS,
 4.27941 ++  AVR32_OPC_ADDHH_W,
 4.27942 ++  AVR32_OPC_AND1,
 4.27943 ++  AVR32_OPC_AND2,
 4.27944 ++  AVR32_OPC_AND3,
 4.27945 ++  AVR32_OPC_ANDH,
 4.27946 ++  AVR32_OPC_ANDH_COH,
 4.27947 ++  AVR32_OPC_ANDL,
 4.27948 ++  AVR32_OPC_ANDL_COH,
 4.27949 ++  AVR32_OPC_ANDN,
 4.27950 ++  AVR32_OPC_ASR1,
 4.27951 ++  AVR32_OPC_ASR3,
 4.27952 ++  AVR32_OPC_ASR2,
 4.27953 ++  AVR32_OPC_BLD,
 4.27954 ++  AVR32_OPC_BREQ1,
 4.27955 ++  AVR32_OPC_BRNE1,
 4.27956 ++  AVR32_OPC_BRCC1,
 4.27957 ++  AVR32_OPC_BRCS1,
 4.27958 ++  AVR32_OPC_BRGE1,
 4.27959 ++  AVR32_OPC_BRLT1,
 4.27960 ++  AVR32_OPC_BRMI1,
 4.27961 ++  AVR32_OPC_BRPL1,
 4.27962 ++  AVR32_OPC_BREQ2,
 4.27963 ++  AVR32_OPC_BRNE2,
 4.27964 ++  AVR32_OPC_BRCC2,
 4.27965 ++  AVR32_OPC_BRCS2,
 4.27966 ++  AVR32_OPC_BRGE2,
 4.27967 ++  AVR32_OPC_BRLT2,
 4.27968 ++  AVR32_OPC_BRMI2,
 4.27969 ++  AVR32_OPC_BRPL2,
 4.27970 ++  AVR32_OPC_BRLS,
 4.27971 ++  AVR32_OPC_BRGT,
 4.27972 ++  AVR32_OPC_BRLE,
 4.27973 ++  AVR32_OPC_BRHI,
 4.27974 ++  AVR32_OPC_BRVS,
 4.27975 ++  AVR32_OPC_BRVC,
 4.27976 ++  AVR32_OPC_BRQS,
 4.27977 ++  AVR32_OPC_BRAL,
 4.27978 ++  AVR32_OPC_BREAKPOINT,
 4.27979 ++  AVR32_OPC_BREV,
 4.27980 ++  AVR32_OPC_BST,
 4.27981 ++  AVR32_OPC_CACHE,
 4.27982 ++  AVR32_OPC_CASTS_B,
 4.27983 ++  AVR32_OPC_CASTS_H,
 4.27984 ++  AVR32_OPC_CASTU_B,
 4.27985 ++  AVR32_OPC_CASTU_H,
 4.27986 ++  AVR32_OPC_CBR,
 4.27987 ++  AVR32_OPC_CLZ,
 4.27988 ++  AVR32_OPC_COM,
 4.27989 ++  AVR32_OPC_COP,
 4.27990 ++  AVR32_OPC_CP_B,
 4.27991 ++  AVR32_OPC_CP_H,
 4.27992 ++  AVR32_OPC_CP_W1,
 4.27993 ++  AVR32_OPC_CP_W2,
 4.27994 ++  AVR32_OPC_CP_W3,
 4.27995 ++  AVR32_OPC_CPC1,
 4.27996 ++  AVR32_OPC_CPC2,
 4.27997 ++  AVR32_OPC_CSRF,
 4.27998 ++  AVR32_OPC_CSRFCZ,
 4.27999 ++  AVR32_OPC_DIVS,
 4.28000 ++  AVR32_OPC_DIVU,
 4.28001 ++  AVR32_OPC_EOR1,
 4.28002 ++  AVR32_OPC_EOR2,
 4.28003 ++  AVR32_OPC_EOR3,
 4.28004 ++  AVR32_OPC_EORL,
 4.28005 ++  AVR32_OPC_EORH,
 4.28006 ++  AVR32_OPC_FRS,
 4.28007 ++  AVR32_OPC_ICALL,
 4.28008 ++  AVR32_OPC_INCJOSP,
 4.28009 ++  AVR32_OPC_LD_D1,
 4.28010 ++  AVR32_OPC_LD_D2,
 4.28011 ++  AVR32_OPC_LD_D3,
 4.28012 ++  AVR32_OPC_LD_D5,
 4.28013 ++  AVR32_OPC_LD_D4,
 4.28014 ++  AVR32_OPC_LD_SB2,
 4.28015 ++  AVR32_OPC_LD_SB1,
 4.28016 ++  AVR32_OPC_LD_UB1,
 4.28017 ++  AVR32_OPC_LD_UB2,
 4.28018 ++  AVR32_OPC_LD_UB5,
 4.28019 ++  AVR32_OPC_LD_UB3,
 4.28020 ++  AVR32_OPC_LD_UB4,
 4.28021 ++  AVR32_OPC_LD_SH1,
 4.28022 ++  AVR32_OPC_LD_SH2,
 4.28023 ++  AVR32_OPC_LD_SH5,
 4.28024 ++  AVR32_OPC_LD_SH3,
 4.28025 ++  AVR32_OPC_LD_SH4,
 4.28026 ++  AVR32_OPC_LD_UH1,
 4.28027 ++  AVR32_OPC_LD_UH2,
 4.28028 ++  AVR32_OPC_LD_UH5,
 4.28029 ++  AVR32_OPC_LD_UH3,
 4.28030 ++  AVR32_OPC_LD_UH4,
 4.28031 ++  AVR32_OPC_LD_W1,
 4.28032 ++  AVR32_OPC_LD_W2,
 4.28033 ++  AVR32_OPC_LD_W5,
 4.28034 ++  AVR32_OPC_LD_W6,
 4.28035 ++  AVR32_OPC_LD_W3,
 4.28036 ++  AVR32_OPC_LD_W4,
 4.28037 ++  AVR32_OPC_LDC_D1,
 4.28038 ++  AVR32_OPC_LDC_D2,
 4.28039 ++  AVR32_OPC_LDC_D3,
 4.28040 ++  AVR32_OPC_LDC_W1,
 4.28041 ++  AVR32_OPC_LDC_W2,
 4.28042 ++  AVR32_OPC_LDC_W3,
 4.28043 ++  AVR32_OPC_LDC0_D,
 4.28044 ++  AVR32_OPC_LDC0_W,
 4.28045 ++  AVR32_OPC_LDCM_D,
 4.28046 ++  AVR32_OPC_LDCM_D_PU,
 4.28047 ++  AVR32_OPC_LDCM_W,
 4.28048 ++  AVR32_OPC_LDCM_W_PU,
 4.28049 ++  AVR32_OPC_LDDPC,
 4.28050 ++  AVR32_OPC_LDDPC_EXT,
 4.28051 ++  AVR32_OPC_LDDSP,
 4.28052 ++  AVR32_OPC_LDINS_B,
 4.28053 ++  AVR32_OPC_LDINS_H,
 4.28054 ++  AVR32_OPC_LDM,
 4.28055 ++  AVR32_OPC_LDMTS,
 4.28056 ++  AVR32_OPC_LDMTS_PU,
 4.28057 ++  AVR32_OPC_LDSWP_SH,
 4.28058 ++  AVR32_OPC_LDSWP_UH,
 4.28059 ++  AVR32_OPC_LDSWP_W,
 4.28060 ++  AVR32_OPC_LSL1,
 4.28061 ++  AVR32_OPC_LSL3,
 4.28062 ++  AVR32_OPC_LSL2,
 4.28063 ++  AVR32_OPC_LSR1,
 4.28064 ++  AVR32_OPC_LSR3,
 4.28065 ++  AVR32_OPC_LSR2,
 4.28066 ++  AVR32_OPC_MAC,
 4.28067 ++  AVR32_OPC_MACHH_D,
 4.28068 ++  AVR32_OPC_MACHH_W,
 4.28069 ++  AVR32_OPC_MACS_D,
 4.28070 ++  AVR32_OPC_MACSATHH_W,
 4.28071 ++  AVR32_OPC_MACUD,
 4.28072 ++  AVR32_OPC_MACWH_D,
 4.28073 ++  AVR32_OPC_MAX,
 4.28074 ++  AVR32_OPC_MCALL,
 4.28075 ++  AVR32_OPC_MFDR,
 4.28076 ++  AVR32_OPC_MFSR,
 4.28077 ++  AVR32_OPC_MIN,
 4.28078 ++  AVR32_OPC_MOV3,
 4.28079 ++  AVR32_OPC_MOV1,
 4.28080 ++  AVR32_OPC_MOV2,
 4.28081 ++  AVR32_OPC_MOVEQ1,
 4.28082 ++  AVR32_OPC_MOVNE1,
 4.28083 ++  AVR32_OPC_MOVCC1,
 4.28084 ++  AVR32_OPC_MOVCS1,
 4.28085 ++  AVR32_OPC_MOVGE1,
 4.28086 ++  AVR32_OPC_MOVLT1,
 4.28087 ++  AVR32_OPC_MOVMI1,
 4.28088 ++  AVR32_OPC_MOVPL1,
 4.28089 ++  AVR32_OPC_MOVLS1,
 4.28090 ++  AVR32_OPC_MOVGT1,
 4.28091 ++  AVR32_OPC_MOVLE1,
 4.28092 ++  AVR32_OPC_MOVHI1,
 4.28093 ++  AVR32_OPC_MOVVS1,
 4.28094 ++  AVR32_OPC_MOVVC1,
 4.28095 ++  AVR32_OPC_MOVQS1,
 4.28096 ++  AVR32_OPC_MOVAL1,
 4.28097 ++  AVR32_OPC_MOVEQ2,
 4.28098 ++  AVR32_OPC_MOVNE2,
 4.28099 ++  AVR32_OPC_MOVCC2,
 4.28100 ++  AVR32_OPC_MOVCS2,
 4.28101 ++  AVR32_OPC_MOVGE2,
 4.28102 ++  AVR32_OPC_MOVLT2,
 4.28103 ++  AVR32_OPC_MOVMI2,
 4.28104 ++  AVR32_OPC_MOVPL2,
 4.28105 ++  AVR32_OPC_MOVLS2,
 4.28106 ++  AVR32_OPC_MOVGT2,
 4.28107 ++  AVR32_OPC_MOVLE2,
 4.28108 ++  AVR32_OPC_MOVHI2,
 4.28109 ++  AVR32_OPC_MOVVS2,
 4.28110 ++  AVR32_OPC_MOVVC2,
 4.28111 ++  AVR32_OPC_MOVQS2,
 4.28112 ++  AVR32_OPC_MOVAL2,
 4.28113 ++  AVR32_OPC_MTDR,
 4.28114 ++  AVR32_OPC_MTSR,
 4.28115 ++  AVR32_OPC_MUL1,
 4.28116 ++  AVR32_OPC_MUL2,
 4.28117 ++  AVR32_OPC_MUL3,
 4.28118 ++  AVR32_OPC_MULHH_W,
 4.28119 ++  AVR32_OPC_MULNHH_W,
 4.28120 ++  AVR32_OPC_MULNWH_D,
 4.28121 ++  AVR32_OPC_MULSD,
 4.28122 ++  AVR32_OPC_MULSATHH_H,
 4.28123 ++  AVR32_OPC_MULSATHH_W,
 4.28124 ++  AVR32_OPC_MULSATRNDHH_H,
 4.28125 ++  AVR32_OPC_MULSATRNDWH_W,
 4.28126 ++  AVR32_OPC_MULSATWH_W,
 4.28127 ++  AVR32_OPC_MULU_D,
 4.28128 ++  AVR32_OPC_MULWH_D,
 4.28129 ++  AVR32_OPC_MUSFR,
 4.28130 ++  AVR32_OPC_MUSTR,
 4.28131 ++  AVR32_OPC_MVCR_D,
 4.28132 ++  AVR32_OPC_MVCR_W,
 4.28133 ++  AVR32_OPC_MVRC_D,
 4.28134 ++  AVR32_OPC_MVRC_W,
 4.28135 ++  AVR32_OPC_NEG,
 4.28136 ++  AVR32_OPC_NOP,
 4.28137 ++  AVR32_OPC_OR1,
 4.28138 ++  AVR32_OPC_OR2,
 4.28139 ++  AVR32_OPC_OR3,
 4.28140 ++  AVR32_OPC_ORH,
 4.28141 ++  AVR32_OPC_ORL,
 4.28142 ++  AVR32_OPC_PABS_SB,
 4.28143 ++  AVR32_OPC_PABS_SH,
 4.28144 ++  AVR32_OPC_PACKSH_SB,
 4.28145 ++  AVR32_OPC_PACKSH_UB,
 4.28146 ++  AVR32_OPC_PACKW_SH,
 4.28147 ++  AVR32_OPC_PADD_B,
 4.28148 ++  AVR32_OPC_PADD_H,
 4.28149 ++  AVR32_OPC_PADDH_SH,
 4.28150 ++  AVR32_OPC_PADDH_UB,
 4.28151 ++  AVR32_OPC_PADDS_SB,
 4.28152 ++  AVR32_OPC_PADDS_SH,
 4.28153 ++  AVR32_OPC_PADDS_UB,
 4.28154 ++  AVR32_OPC_PADDS_UH,
 4.28155 ++  AVR32_OPC_PADDSUB_H,
 4.28156 ++  AVR32_OPC_PADDSUBH_SH,
 4.28157 ++  AVR32_OPC_PADDSUBS_SH,
 4.28158 ++  AVR32_OPC_PADDSUBS_UH,
 4.28159 ++  AVR32_OPC_PADDX_H,
 4.28160 ++  AVR32_OPC_PADDXH_SH,
 4.28161 ++  AVR32_OPC_PADDXS_SH,
 4.28162 ++  AVR32_OPC_PADDXS_UH,
 4.28163 ++  AVR32_OPC_PASR_B,
 4.28164 ++  AVR32_OPC_PASR_H,
 4.28165 ++  AVR32_OPC_PAVG_SH,
 4.28166 ++  AVR32_OPC_PAVG_UB,
 4.28167 ++  AVR32_OPC_PLSL_B,
 4.28168 ++  AVR32_OPC_PLSL_H,
 4.28169 ++  AVR32_OPC_PLSR_B,
 4.28170 ++  AVR32_OPC_PLSR_H,
 4.28171 ++  AVR32_OPC_PMAX_SH,
 4.28172 ++  AVR32_OPC_PMAX_UB,
 4.28173 ++  AVR32_OPC_PMIN_SH,
 4.28174 ++  AVR32_OPC_PMIN_UB,
 4.28175 ++  AVR32_OPC_POPJC,
 4.28176 ++  AVR32_OPC_POPM,
 4.28177 ++  AVR32_OPC_POPM_E,
 4.28178 ++  AVR32_OPC_PREF,
 4.28179 ++  AVR32_OPC_PSAD,
 4.28180 ++  AVR32_OPC_PSUB_B,
 4.28181 ++  AVR32_OPC_PSUB_H,
 4.28182 ++  AVR32_OPC_PSUBADD_H,
 4.28183 ++  AVR32_OPC_PSUBADDH_SH,
 4.28184 ++  AVR32_OPC_PSUBADDS_SH,
 4.28185 ++  AVR32_OPC_PSUBADDS_UH,
 4.28186 ++  AVR32_OPC_PSUBH_SH,
 4.28187 ++  AVR32_OPC_PSUBH_UB,
 4.28188 ++  AVR32_OPC_PSUBS_SB,
 4.28189 ++  AVR32_OPC_PSUBS_SH,
 4.28190 ++  AVR32_OPC_PSUBS_UB,
 4.28191 ++  AVR32_OPC_PSUBS_UH,
 4.28192 ++  AVR32_OPC_PSUBX_H,
 4.28193 ++  AVR32_OPC_PSUBXH_SH,
 4.28194 ++  AVR32_OPC_PSUBXS_SH,
 4.28195 ++  AVR32_OPC_PSUBXS_UH,
 4.28196 ++  AVR32_OPC_PUNPCKSB_H,
 4.28197 ++  AVR32_OPC_PUNPCKUB_H,
 4.28198 ++  AVR32_OPC_PUSHJC,
 4.28199 ++  AVR32_OPC_PUSHM,
 4.28200 ++  AVR32_OPC_PUSHM_E,
 4.28201 ++  AVR32_OPC_RCALL1,
 4.28202 ++  AVR32_OPC_RCALL2,
 4.28203 ++  AVR32_OPC_RETEQ,
 4.28204 ++  AVR32_OPC_RETNE,
 4.28205 ++  AVR32_OPC_RETCC,
 4.28206 ++  AVR32_OPC_RETCS,
 4.28207 ++  AVR32_OPC_RETGE,
 4.28208 ++  AVR32_OPC_RETLT,
 4.28209 ++  AVR32_OPC_RETMI,
 4.28210 ++  AVR32_OPC_RETPL,
 4.28211 ++  AVR32_OPC_RETLS,
 4.28212 ++  AVR32_OPC_RETGT,
 4.28213 ++  AVR32_OPC_RETLE,
 4.28214 ++  AVR32_OPC_RETHI,
 4.28215 ++  AVR32_OPC_RETVS,
 4.28216 ++  AVR32_OPC_RETVC,
 4.28217 ++  AVR32_OPC_RETQS,
 4.28218 ++  AVR32_OPC_RETAL,
 4.28219 ++  AVR32_OPC_RETD,
 4.28220 ++  AVR32_OPC_RETE,
 4.28221 ++  AVR32_OPC_RETJ,
 4.28222 ++  AVR32_OPC_RETS,
 4.28223 ++  AVR32_OPC_RJMP,
 4.28224 ++  AVR32_OPC_ROL,
 4.28225 ++  AVR32_OPC_ROR,
 4.28226 ++  AVR32_OPC_RSUB1,
 4.28227 ++  AVR32_OPC_RSUB2,
 4.28228 ++  AVR32_OPC_SATADD_H,
 4.28229 ++  AVR32_OPC_SATADD_W,
 4.28230 ++  AVR32_OPC_SATRNDS,
 4.28231 ++  AVR32_OPC_SATRNDU,
 4.28232 ++  AVR32_OPC_SATS,
 4.28233 ++  AVR32_OPC_SATSUB_H,
 4.28234 ++  AVR32_OPC_SATSUB_W1,
 4.28235 ++  AVR32_OPC_SATSUB_W2,
 4.28236 ++  AVR32_OPC_SATU,
 4.28237 ++  AVR32_OPC_SBC,
 4.28238 ++  AVR32_OPC_SBR,
 4.28239 ++  AVR32_OPC_SCALL,
 4.28240 ++  AVR32_OPC_SCR,
 4.28241 ++  AVR32_OPC_SLEEP,
 4.28242 ++  AVR32_OPC_SREQ,
 4.28243 ++  AVR32_OPC_SRNE,
 4.28244 ++  AVR32_OPC_SRCC,
 4.28245 ++  AVR32_OPC_SRCS,
 4.28246 ++  AVR32_OPC_SRGE,
 4.28247 ++  AVR32_OPC_SRLT,
 4.28248 ++  AVR32_OPC_SRMI,
 4.28249 ++  AVR32_OPC_SRPL,
 4.28250 ++  AVR32_OPC_SRLS,
 4.28251 ++  AVR32_OPC_SRGT,
 4.28252 ++  AVR32_OPC_SRLE,
 4.28253 ++  AVR32_OPC_SRHI,
 4.28254 ++  AVR32_OPC_SRVS,
 4.28255 ++  AVR32_OPC_SRVC,
 4.28256 ++  AVR32_OPC_SRQS,
 4.28257 ++  AVR32_OPC_SRAL,
 4.28258 ++  AVR32_OPC_SSRF,
 4.28259 ++  AVR32_OPC_ST_B1,
 4.28260 ++  AVR32_OPC_ST_B2,
 4.28261 ++  AVR32_OPC_ST_B5,
 4.28262 ++  AVR32_OPC_ST_B3,
 4.28263 ++  AVR32_OPC_ST_B4,
 4.28264 ++  AVR32_OPC_ST_D1,
 4.28265 ++  AVR32_OPC_ST_D2,
 4.28266 ++  AVR32_OPC_ST_D3,
 4.28267 ++  AVR32_OPC_ST_D5,
 4.28268 ++  AVR32_OPC_ST_D4,
 4.28269 ++  AVR32_OPC_ST_H1,
 4.28270 ++  AVR32_OPC_ST_H2,
 4.28271 ++  AVR32_OPC_ST_H5,
 4.28272 ++  AVR32_OPC_ST_H3,
 4.28273 ++  AVR32_OPC_ST_H4,
 4.28274 ++  AVR32_OPC_ST_W1,
 4.28275 ++  AVR32_OPC_ST_W2,
 4.28276 ++  AVR32_OPC_ST_W5,
 4.28277 ++  AVR32_OPC_ST_W3,
 4.28278 ++  AVR32_OPC_ST_W4,
 4.28279 ++  AVR32_OPC_STC_D1,
 4.28280 ++  AVR32_OPC_STC_D2,
 4.28281 ++  AVR32_OPC_STC_D3,
 4.28282 ++  AVR32_OPC_STC_W1,
 4.28283 ++  AVR32_OPC_STC_W2,
 4.28284 ++  AVR32_OPC_STC_W3,
 4.28285 ++  AVR32_OPC_STC0_D,
 4.28286 ++  AVR32_OPC_STC0_W,
 4.28287 ++  AVR32_OPC_STCM_D,
 4.28288 ++  AVR32_OPC_STCM_D_PU,
 4.28289 ++  AVR32_OPC_STCM_W,
 4.28290 ++  AVR32_OPC_STCM_W_PU,
 4.28291 ++  AVR32_OPC_STCOND,
 4.28292 ++  AVR32_OPC_STDSP,
 4.28293 ++  AVR32_OPC_STHH_W2,
 4.28294 ++  AVR32_OPC_STHH_W1,
 4.28295 ++  AVR32_OPC_STM,
 4.28296 ++  AVR32_OPC_STM_PU,
 4.28297 ++  AVR32_OPC_STMTS,
 4.28298 ++  AVR32_OPC_STMTS_PU,
 4.28299 ++  AVR32_OPC_STSWP_H,
 4.28300 ++  AVR32_OPC_STSWP_W,
 4.28301 ++  AVR32_OPC_SUB1,
 4.28302 ++  AVR32_OPC_SUB2,
 4.28303 ++  AVR32_OPC_SUB5,
 4.28304 ++  AVR32_OPC_SUB3_SP,
 4.28305 ++  AVR32_OPC_SUB3,
 4.28306 ++  AVR32_OPC_SUB4,
 4.28307 ++  AVR32_OPC_SUBEQ,
 4.28308 ++  AVR32_OPC_SUBNE,
 4.28309 ++  AVR32_OPC_SUBCC,
 4.28310 ++  AVR32_OPC_SUBCS,
 4.28311 ++  AVR32_OPC_SUBGE,
 4.28312 ++  AVR32_OPC_SUBLT,
 4.28313 ++  AVR32_OPC_SUBMI,
 4.28314 ++  AVR32_OPC_SUBPL,
 4.28315 ++  AVR32_OPC_SUBLS,
 4.28316 ++  AVR32_OPC_SUBGT,
 4.28317 ++  AVR32_OPC_SUBLE,
 4.28318 ++  AVR32_OPC_SUBHI,
 4.28319 ++  AVR32_OPC_SUBVS,
 4.28320 ++  AVR32_OPC_SUBVC,
 4.28321 ++  AVR32_OPC_SUBQS,
 4.28322 ++  AVR32_OPC_SUBAL,
 4.28323 ++  AVR32_OPC_SUBFEQ,
 4.28324 ++  AVR32_OPC_SUBFNE,
 4.28325 ++  AVR32_OPC_SUBFCC,
 4.28326 ++  AVR32_OPC_SUBFCS,
 4.28327 ++  AVR32_OPC_SUBFGE,
 4.28328 ++  AVR32_OPC_SUBFLT,
 4.28329 ++  AVR32_OPC_SUBFMI,
 4.28330 ++  AVR32_OPC_SUBFPL,
 4.28331 ++  AVR32_OPC_SUBFLS,
 4.28332 ++  AVR32_OPC_SUBFGT,
 4.28333 ++  AVR32_OPC_SUBFLE,
 4.28334 ++  AVR32_OPC_SUBFHI,
 4.28335 ++  AVR32_OPC_SUBFVS,
 4.28336 ++  AVR32_OPC_SUBFVC,
 4.28337 ++  AVR32_OPC_SUBFQS,
 4.28338 ++  AVR32_OPC_SUBFAL,
 4.28339 ++  AVR32_OPC_SUBHH_W,
 4.28340 ++  AVR32_OPC_SWAP_B,
 4.28341 ++  AVR32_OPC_SWAP_BH,
 4.28342 ++  AVR32_OPC_SWAP_H,
 4.28343 ++  AVR32_OPC_SYNC,
 4.28344 ++  AVR32_OPC_TLBR,
 4.28345 ++  AVR32_OPC_TLBS,
 4.28346 ++  AVR32_OPC_TLBW,
 4.28347 ++  AVR32_OPC_TNBZ,
 4.28348 ++  AVR32_OPC_TST,
 4.28349 ++  AVR32_OPC_XCHG,
 4.28350 ++  AVR32_OPC_MEMC,
 4.28351 ++  AVR32_OPC_MEMS,
 4.28352 ++  AVR32_OPC_MEMT,
 4.28353 ++  AVR32_OPC_BFEXTS,
 4.28354 ++  AVR32_OPC_BFEXTU,
 4.28355 ++  AVR32_OPC_BFINS,
 4.28356 ++  AVR32_OPC_RSUBEQ,
 4.28357 ++  AVR32_OPC_RSUBNE,
 4.28358 ++  AVR32_OPC_RSUBCC,
 4.28359 ++  AVR32_OPC_RSUBCS,
 4.28360 ++  AVR32_OPC_RSUBGE,
 4.28361 ++  AVR32_OPC_RSUBLT,
 4.28362 ++  AVR32_OPC_RSUBMI,
 4.28363 ++  AVR32_OPC_RSUBPL,
 4.28364 ++  AVR32_OPC_RSUBLS,
 4.28365 ++  AVR32_OPC_RSUBGT,
 4.28366 ++  AVR32_OPC_RSUBLE,
 4.28367 ++  AVR32_OPC_RSUBHI,
 4.28368 ++  AVR32_OPC_RSUBVS,
 4.28369 ++  AVR32_OPC_RSUBVC,
 4.28370 ++  AVR32_OPC_RSUBQS,
 4.28371 ++  AVR32_OPC_RSUBAL,
 4.28372 ++  AVR32_OPC_ADDEQ,
 4.28373 ++  AVR32_OPC_ADDNE,
 4.28374 ++  AVR32_OPC_ADDCC,
 4.28375 ++  AVR32_OPC_ADDCS,
 4.28376 ++  AVR32_OPC_ADDGE,
 4.28377 ++  AVR32_OPC_ADDLT,
 4.28378 ++  AVR32_OPC_ADDMI,
 4.28379 ++  AVR32_OPC_ADDPL,
 4.28380 ++  AVR32_OPC_ADDLS,
 4.28381 ++  AVR32_OPC_ADDGT,
 4.28382 ++  AVR32_OPC_ADDLE,
 4.28383 ++  AVR32_OPC_ADDHI,
 4.28384 ++  AVR32_OPC_ADDVS,
 4.28385 ++  AVR32_OPC_ADDVC,
 4.28386 ++  AVR32_OPC_ADDQS,
 4.28387 ++  AVR32_OPC_ADDAL,
 4.28388 ++  AVR32_OPC_SUB2EQ,
 4.28389 ++  AVR32_OPC_SUB2NE,
 4.28390 ++  AVR32_OPC_SUB2CC,
 4.28391 ++  AVR32_OPC_SUB2CS,
 4.28392 ++  AVR32_OPC_SUB2GE,
 4.28393 ++  AVR32_OPC_SUB2LT,
 4.28394 ++  AVR32_OPC_SUB2MI,
 4.28395 ++  AVR32_OPC_SUB2PL,
 4.28396 ++  AVR32_OPC_SUB2LS,
 4.28397 ++  AVR32_OPC_SUB2GT,
 4.28398 ++  AVR32_OPC_SUB2LE,
 4.28399 ++  AVR32_OPC_SUB2HI,
 4.28400 ++  AVR32_OPC_SUB2VS,
 4.28401 ++  AVR32_OPC_SUB2VC,
 4.28402 ++  AVR32_OPC_SUB2QS,
 4.28403 ++  AVR32_OPC_SUB2AL,
 4.28404 ++  AVR32_OPC_ANDEQ,
 4.28405 ++  AVR32_OPC_ANDNE,
 4.28406 ++  AVR32_OPC_ANDCC,
 4.28407 ++  AVR32_OPC_ANDCS,
 4.28408 ++  AVR32_OPC_ANDGE,
 4.28409 ++  AVR32_OPC_ANDLT,
 4.28410 ++  AVR32_OPC_ANDMI,
 4.28411 ++  AVR32_OPC_ANDPL,
 4.28412 ++  AVR32_OPC_ANDLS,
 4.28413 ++  AVR32_OPC_ANDGT,
 4.28414 ++  AVR32_OPC_ANDLE,
 4.28415 ++  AVR32_OPC_ANDHI,
 4.28416 ++  AVR32_OPC_ANDVS,
 4.28417 ++  AVR32_OPC_ANDVC,
 4.28418 ++  AVR32_OPC_ANDQS,
 4.28419 ++  AVR32_OPC_ANDAL,
 4.28420 ++  AVR32_OPC_OREQ,
 4.28421 ++  AVR32_OPC_ORNE,
 4.28422 ++  AVR32_OPC_ORCC,
 4.28423 ++  AVR32_OPC_ORCS,
 4.28424 ++  AVR32_OPC_ORGE,
 4.28425 ++  AVR32_OPC_ORLT,
 4.28426 ++  AVR32_OPC_ORMI,
 4.28427 ++  AVR32_OPC_ORPL,
 4.28428 ++  AVR32_OPC_ORLS,
 4.28429 ++  AVR32_OPC_ORGT,
 4.28430 ++  AVR32_OPC_ORLE,
 4.28431 ++  AVR32_OPC_ORHI,
 4.28432 ++  AVR32_OPC_ORVS,
 4.28433 ++  AVR32_OPC_ORVC,
 4.28434 ++  AVR32_OPC_ORQS,
 4.28435 ++  AVR32_OPC_ORAL,
 4.28436 ++  AVR32_OPC_EOREQ,
 4.28437 ++  AVR32_OPC_EORNE,
 4.28438 ++  AVR32_OPC_EORCC,
 4.28439 ++  AVR32_OPC_EORCS,
 4.28440 ++  AVR32_OPC_EORGE,
 4.28441 ++  AVR32_OPC_EORLT,
 4.28442 ++  AVR32_OPC_EORMI,
 4.28443 ++  AVR32_OPC_EORPL,
 4.28444 ++  AVR32_OPC_EORLS,
 4.28445 ++  AVR32_OPC_EORGT,
 4.28446 ++  AVR32_OPC_EORLE,
 4.28447 ++  AVR32_OPC_EORHI,
 4.28448 ++  AVR32_OPC_EORVS,
 4.28449 ++  AVR32_OPC_EORVC,
 4.28450 ++  AVR32_OPC_EORQS,
 4.28451 ++  AVR32_OPC_EORAL,
 4.28452 ++  AVR32_OPC_LD_WEQ,
 4.28453 ++  AVR32_OPC_LD_WNE,
 4.28454 ++  AVR32_OPC_LD_WCC,
 4.28455 ++  AVR32_OPC_LD_WCS,
 4.28456 ++  AVR32_OPC_LD_WGE,
 4.28457 ++  AVR32_OPC_LD_WLT,
 4.28458 ++  AVR32_OPC_LD_WMI,
 4.28459 ++  AVR32_OPC_LD_WPL,
 4.28460 ++  AVR32_OPC_LD_WLS,
 4.28461 ++  AVR32_OPC_LD_WGT,
 4.28462 ++  AVR32_OPC_LD_WLE,
 4.28463 ++  AVR32_OPC_LD_WHI,
 4.28464 ++  AVR32_OPC_LD_WVS,
 4.28465 ++  AVR32_OPC_LD_WVC,
 4.28466 ++  AVR32_OPC_LD_WQS,
 4.28467 ++  AVR32_OPC_LD_WAL,
 4.28468 ++  AVR32_OPC_LD_SHEQ,
 4.28469 ++  AVR32_OPC_LD_SHNE,
 4.28470 ++  AVR32_OPC_LD_SHCC,
 4.28471 ++  AVR32_OPC_LD_SHCS,
 4.28472 ++  AVR32_OPC_LD_SHGE,
 4.28473 ++  AVR32_OPC_LD_SHLT,
 4.28474 ++  AVR32_OPC_LD_SHMI,
 4.28475 ++  AVR32_OPC_LD_SHPL,
 4.28476 ++  AVR32_OPC_LD_SHLS,
 4.28477 ++  AVR32_OPC_LD_SHGT,
 4.28478 ++  AVR32_OPC_LD_SHLE,
 4.28479 ++  AVR32_OPC_LD_SHHI,
 4.28480 ++  AVR32_OPC_LD_SHVS,
 4.28481 ++  AVR32_OPC_LD_SHVC,
 4.28482 ++  AVR32_OPC_LD_SHQS,
 4.28483 ++  AVR32_OPC_LD_SHAL,
 4.28484 ++  AVR32_OPC_LD_UHEQ,
 4.28485 ++  AVR32_OPC_LD_UHNE,
 4.28486 ++  AVR32_OPC_LD_UHCC,
 4.28487 ++  AVR32_OPC_LD_UHCS,
 4.28488 ++  AVR32_OPC_LD_UHGE,
 4.28489 ++  AVR32_OPC_LD_UHLT,
 4.28490 ++  AVR32_OPC_LD_UHMI,
 4.28491 ++  AVR32_OPC_LD_UHPL,
 4.28492 ++  AVR32_OPC_LD_UHLS,
 4.28493 ++  AVR32_OPC_LD_UHGT,
 4.28494 ++  AVR32_OPC_LD_UHLE,
 4.28495 ++  AVR32_OPC_LD_UHHI,
 4.28496 ++  AVR32_OPC_LD_UHVS,
 4.28497 ++  AVR32_OPC_LD_UHVC,
 4.28498 ++  AVR32_OPC_LD_UHQS,
 4.28499 ++  AVR32_OPC_LD_UHAL,
 4.28500 ++  AVR32_OPC_LD_SBEQ,
 4.28501 ++  AVR32_OPC_LD_SBNE,
 4.28502 ++  AVR32_OPC_LD_SBCC,
 4.28503 ++  AVR32_OPC_LD_SBCS,
 4.28504 ++  AVR32_OPC_LD_SBGE,
 4.28505 ++  AVR32_OPC_LD_SBLT,
 4.28506 ++  AVR32_OPC_LD_SBMI,
 4.28507 ++  AVR32_OPC_LD_SBPL,
 4.28508 ++  AVR32_OPC_LD_SBLS,
 4.28509 ++  AVR32_OPC_LD_SBGT,
 4.28510 ++  AVR32_OPC_LD_SBLE,
 4.28511 ++  AVR32_OPC_LD_SBHI,
 4.28512 ++  AVR32_OPC_LD_SBVS,
 4.28513 ++  AVR32_OPC_LD_SBVC,
 4.28514 ++  AVR32_OPC_LD_SBQS,
 4.28515 ++  AVR32_OPC_LD_SBAL,
 4.28516 ++  AVR32_OPC_LD_UBEQ,
 4.28517 ++  AVR32_OPC_LD_UBNE,
 4.28518 ++  AVR32_OPC_LD_UBCC,
 4.28519 ++  AVR32_OPC_LD_UBCS,
 4.28520 ++  AVR32_OPC_LD_UBGE,
 4.28521 ++  AVR32_OPC_LD_UBLT,
 4.28522 ++  AVR32_OPC_LD_UBMI,
 4.28523 ++  AVR32_OPC_LD_UBPL,
 4.28524 ++  AVR32_OPC_LD_UBLS,
 4.28525 ++  AVR32_OPC_LD_UBGT,
 4.28526 ++  AVR32_OPC_LD_UBLE,
 4.28527 ++  AVR32_OPC_LD_UBHI,
 4.28528 ++  AVR32_OPC_LD_UBVS,
 4.28529 ++  AVR32_OPC_LD_UBVC,
 4.28530 ++  AVR32_OPC_LD_UBQS,
 4.28531 ++  AVR32_OPC_LD_UBAL,
 4.28532 ++  AVR32_OPC_ST_WEQ,
 4.28533 ++  AVR32_OPC_ST_WNE,
 4.28534 ++  AVR32_OPC_ST_WCC,
 4.28535 ++  AVR32_OPC_ST_WCS,
 4.28536 ++  AVR32_OPC_ST_WGE,
 4.28537 ++  AVR32_OPC_ST_WLT,
 4.28538 ++  AVR32_OPC_ST_WMI,
 4.28539 ++  AVR32_OPC_ST_WPL,
 4.28540 ++  AVR32_OPC_ST_WLS,
 4.28541 ++  AVR32_OPC_ST_WGT,
 4.28542 ++  AVR32_OPC_ST_WLE,
 4.28543 ++  AVR32_OPC_ST_WHI,
 4.28544 ++  AVR32_OPC_ST_WVS,
 4.28545 ++  AVR32_OPC_ST_WVC,
 4.28546 ++  AVR32_OPC_ST_WQS,
 4.28547 ++  AVR32_OPC_ST_WAL,
 4.28548 ++  AVR32_OPC_ST_HEQ,
 4.28549 ++  AVR32_OPC_ST_HNE,
 4.28550 ++  AVR32_OPC_ST_HCC,
 4.28551 ++  AVR32_OPC_ST_HCS,
 4.28552 ++  AVR32_OPC_ST_HGE,
 4.28553 ++  AVR32_OPC_ST_HLT,
 4.28554 ++  AVR32_OPC_ST_HMI,
 4.28555 ++  AVR32_OPC_ST_HPL,
 4.28556 ++  AVR32_OPC_ST_HLS,
 4.28557 ++  AVR32_OPC_ST_HGT,
 4.28558 ++  AVR32_OPC_ST_HLE,
 4.28559 ++  AVR32_OPC_ST_HHI,
 4.28560 ++  AVR32_OPC_ST_HVS,
 4.28561 ++  AVR32_OPC_ST_HVC,
 4.28562 ++  AVR32_OPC_ST_HQS,
 4.28563 ++  AVR32_OPC_ST_HAL,
 4.28564 ++  AVR32_OPC_ST_BEQ,
 4.28565 ++  AVR32_OPC_ST_BNE,
 4.28566 ++  AVR32_OPC_ST_BCC,
 4.28567 ++  AVR32_OPC_ST_BCS,
 4.28568 ++  AVR32_OPC_ST_BGE,
 4.28569 ++  AVR32_OPC_ST_BLT,
 4.28570 ++  AVR32_OPC_ST_BMI,
 4.28571 ++  AVR32_OPC_ST_BPL,
 4.28572 ++  AVR32_OPC_ST_BLS,
 4.28573 ++  AVR32_OPC_ST_BGT,
 4.28574 ++  AVR32_OPC_ST_BLE,
 4.28575 ++  AVR32_OPC_ST_BHI,
 4.28576 ++  AVR32_OPC_ST_BVS,
 4.28577 ++  AVR32_OPC_ST_BVC,
 4.28578 ++  AVR32_OPC_ST_BQS,
 4.28579 ++  AVR32_OPC_ST_BAL,
 4.28580 ++  AVR32_OPC_MOVH,
 4.28581 ++  AVR32_OPC__END_
 4.28582 ++};
 4.28583 ++#define AVR32_NR_OPCODES AVR32_OPC__END_
 4.28584 ++
 4.28585 ++enum avr32_syntax_type
 4.28586 ++{
 4.28587 ++  AVR32_SYNTAX_ABS,
 4.28588 ++  AVR32_SYNTAX_ACALL,
 4.28589 ++  AVR32_SYNTAX_ACR,
 4.28590 ++  AVR32_SYNTAX_ADC,
 4.28591 ++  AVR32_SYNTAX_ADD1,
 4.28592 ++  AVR32_SYNTAX_ADD2,
 4.28593 ++  AVR32_SYNTAX_ADDABS,
 4.28594 ++  AVR32_SYNTAX_ADDHH_W,
 4.28595 ++  AVR32_SYNTAX_AND1,
 4.28596 ++  AVR32_SYNTAX_AND2,
 4.28597 ++  AVR32_SYNTAX_AND3,
 4.28598 ++  AVR32_SYNTAX_ANDH,
 4.28599 ++  AVR32_SYNTAX_ANDH_COH,
 4.28600 ++  AVR32_SYNTAX_ANDL,
 4.28601 ++  AVR32_SYNTAX_ANDL_COH,
 4.28602 ++  AVR32_SYNTAX_ANDN,
 4.28603 ++  AVR32_SYNTAX_ASR1,
 4.28604 ++  AVR32_SYNTAX_ASR3,
 4.28605 ++  AVR32_SYNTAX_ASR2,
 4.28606 ++  AVR32_SYNTAX_BFEXTS,
 4.28607 ++  AVR32_SYNTAX_BFEXTU,
 4.28608 ++  AVR32_SYNTAX_BFINS,
 4.28609 ++  AVR32_SYNTAX_BLD,
 4.28610 ++  AVR32_SYNTAX_BREQ1,
 4.28611 ++  AVR32_SYNTAX_BRNE1,
 4.28612 ++  AVR32_SYNTAX_BRCC1,
 4.28613 ++  AVR32_SYNTAX_BRCS1,
 4.28614 ++  AVR32_SYNTAX_BRGE1,
 4.28615 ++  AVR32_SYNTAX_BRLT1,
 4.28616 ++  AVR32_SYNTAX_BRMI1,
 4.28617 ++  AVR32_SYNTAX_BRPL1,
 4.28618 ++  AVR32_SYNTAX_BRHS1,
 4.28619 ++  AVR32_SYNTAX_BRLO1,
 4.28620 ++  AVR32_SYNTAX_BREQ2,
 4.28621 ++  AVR32_SYNTAX_BRNE2,
 4.28622 ++  AVR32_SYNTAX_BRCC2,
 4.28623 ++  AVR32_SYNTAX_BRCS2,
 4.28624 ++  AVR32_SYNTAX_BRGE2,
 4.28625 ++  AVR32_SYNTAX_BRLT2,
 4.28626 ++  AVR32_SYNTAX_BRMI2,
 4.28627 ++  AVR32_SYNTAX_BRPL2,
 4.28628 ++  AVR32_SYNTAX_BRLS,
 4.28629 ++  AVR32_SYNTAX_BRGT,
 4.28630 ++  AVR32_SYNTAX_BRLE,
 4.28631 ++  AVR32_SYNTAX_BRHI,
 4.28632 ++  AVR32_SYNTAX_BRVS,
 4.28633 ++  AVR32_SYNTAX_BRVC,
 4.28634 ++  AVR32_SYNTAX_BRQS,
 4.28635 ++  AVR32_SYNTAX_BRAL,
 4.28636 ++  AVR32_SYNTAX_BRHS2,
 4.28637 ++  AVR32_SYNTAX_BRLO2,
 4.28638 ++  AVR32_SYNTAX_BREAKPOINT,
 4.28639 ++  AVR32_SYNTAX_BREV,
 4.28640 ++  AVR32_SYNTAX_BST,
 4.28641 ++  AVR32_SYNTAX_CACHE,
 4.28642 ++  AVR32_SYNTAX_CASTS_B,
 4.28643 ++  AVR32_SYNTAX_CASTS_H,
 4.28644 ++  AVR32_SYNTAX_CASTU_B,
 4.28645 ++  AVR32_SYNTAX_CASTU_H,
 4.28646 ++  AVR32_SYNTAX_CBR,
 4.28647 ++  AVR32_SYNTAX_CLZ,
 4.28648 ++  AVR32_SYNTAX_COM,
 4.28649 ++  AVR32_SYNTAX_COP,
 4.28650 ++  AVR32_SYNTAX_CP_B,
 4.28651 ++  AVR32_SYNTAX_CP_H,
 4.28652 ++  AVR32_SYNTAX_CP_W1,
 4.28653 ++  AVR32_SYNTAX_CP_W2,
 4.28654 ++  AVR32_SYNTAX_CP_W3,
 4.28655 ++  AVR32_SYNTAX_CPC1,
 4.28656 ++  AVR32_SYNTAX_CPC2,
 4.28657 ++  AVR32_SYNTAX_CSRF,
 4.28658 ++  AVR32_SYNTAX_CSRFCZ,
 4.28659 ++  AVR32_SYNTAX_DIVS,
 4.28660 ++  AVR32_SYNTAX_DIVU,
 4.28661 ++  AVR32_SYNTAX_EOR1,
 4.28662 ++  AVR32_SYNTAX_EOR2,
 4.28663 ++  AVR32_SYNTAX_EOR3,
 4.28664 ++  AVR32_SYNTAX_EORL,
 4.28665 ++  AVR32_SYNTAX_EORH,
 4.28666 ++  AVR32_SYNTAX_FRS,
 4.28667 ++  AVR32_SYNTAX_ICALL,
 4.28668 ++  AVR32_SYNTAX_INCJOSP,
 4.28669 ++  AVR32_SYNTAX_LD_D1,
 4.28670 ++  AVR32_SYNTAX_LD_D2,
 4.28671 ++  AVR32_SYNTAX_LD_D3,
 4.28672 ++  AVR32_SYNTAX_LD_D5,
 4.28673 ++  AVR32_SYNTAX_LD_D4,
 4.28674 ++  AVR32_SYNTAX_LD_SB2,
 4.28675 ++  AVR32_SYNTAX_LD_SB1,
 4.28676 ++  AVR32_SYNTAX_LD_UB1,
 4.28677 ++  AVR32_SYNTAX_LD_UB2,
 4.28678 ++  AVR32_SYNTAX_LD_UB5,
 4.28679 ++  AVR32_SYNTAX_LD_UB3,
 4.28680 ++  AVR32_SYNTAX_LD_UB4,
 4.28681 ++  AVR32_SYNTAX_LD_SH1,
 4.28682 ++  AVR32_SYNTAX_LD_SH2,
 4.28683 ++  AVR32_SYNTAX_LD_SH5,
 4.28684 ++  AVR32_SYNTAX_LD_SH3,
 4.28685 ++  AVR32_SYNTAX_LD_SH4,
 4.28686 ++  AVR32_SYNTAX_LD_UH1,
 4.28687 ++  AVR32_SYNTAX_LD_UH2,
 4.28688 ++  AVR32_SYNTAX_LD_UH5,
 4.28689 ++  AVR32_SYNTAX_LD_UH3,
 4.28690 ++  AVR32_SYNTAX_LD_UH4,
 4.28691 ++  AVR32_SYNTAX_LD_W1,
 4.28692 ++  AVR32_SYNTAX_LD_W2,
 4.28693 ++  AVR32_SYNTAX_LD_W5,
 4.28694 ++  AVR32_SYNTAX_LD_W6,
 4.28695 ++  AVR32_SYNTAX_LD_W3,
 4.28696 ++  AVR32_SYNTAX_LD_W4,
 4.28697 ++  AVR32_SYNTAX_LDC_D1,
 4.28698 ++  AVR32_SYNTAX_LDC_D2,
 4.28699 ++  AVR32_SYNTAX_LDC_D3,
 4.28700 ++  AVR32_SYNTAX_LDC_W1,
 4.28701 ++  AVR32_SYNTAX_LDC_W2,
 4.28702 ++  AVR32_SYNTAX_LDC_W3,
 4.28703 ++  AVR32_SYNTAX_LDC0_D,
 4.28704 ++  AVR32_SYNTAX_LDC0_W,
 4.28705 ++  AVR32_SYNTAX_LDCM_D,
 4.28706 ++  AVR32_SYNTAX_LDCM_D_PU,
 4.28707 ++  AVR32_SYNTAX_LDCM_W,
 4.28708 ++  AVR32_SYNTAX_LDCM_W_PU,
 4.28709 ++  AVR32_SYNTAX_LDDPC,
 4.28710 ++  AVR32_SYNTAX_LDDPC_EXT,
 4.28711 ++  AVR32_SYNTAX_LDDSP,
 4.28712 ++  AVR32_SYNTAX_LDINS_B,
 4.28713 ++  AVR32_SYNTAX_LDINS_H,
 4.28714 ++  AVR32_SYNTAX_LDM,
 4.28715 ++  AVR32_SYNTAX_LDMTS,
 4.28716 ++  AVR32_SYNTAX_LDMTS_PU,
 4.28717 ++  AVR32_SYNTAX_LDSWP_SH,
 4.28718 ++  AVR32_SYNTAX_LDSWP_UH,
 4.28719 ++  AVR32_SYNTAX_LDSWP_W,
 4.28720 ++  AVR32_SYNTAX_LSL1,
 4.28721 ++  AVR32_SYNTAX_LSL3,
 4.28722 ++  AVR32_SYNTAX_LSL2,
 4.28723 ++  AVR32_SYNTAX_LSR1,
 4.28724 ++  AVR32_SYNTAX_LSR3,
 4.28725 ++  AVR32_SYNTAX_LSR2,
 4.28726 ++  AVR32_SYNTAX_MAC,
 4.28727 ++  AVR32_SYNTAX_MACHH_D,
 4.28728 ++  AVR32_SYNTAX_MACHH_W,
 4.28729 ++  AVR32_SYNTAX_MACS_D,
 4.28730 ++  AVR32_SYNTAX_MACSATHH_W,
 4.28731 ++  AVR32_SYNTAX_MACUD,
 4.28732 ++  AVR32_SYNTAX_MACWH_D,
 4.28733 ++  AVR32_SYNTAX_MAX,
 4.28734 ++  AVR32_SYNTAX_MCALL,
 4.28735 ++  AVR32_SYNTAX_MFDR,
 4.28736 ++  AVR32_SYNTAX_MFSR,
 4.28737 ++  AVR32_SYNTAX_MIN,
 4.28738 ++  AVR32_SYNTAX_MOV3,
 4.28739 ++  AVR32_SYNTAX_MOV1,
 4.28740 ++  AVR32_SYNTAX_MOV2,
 4.28741 ++  AVR32_SYNTAX_MOVEQ1,
 4.28742 ++  AVR32_SYNTAX_MOVNE1,
 4.28743 ++  AVR32_SYNTAX_MOVCC1,
 4.28744 ++  AVR32_SYNTAX_MOVCS1,
 4.28745 ++  AVR32_SYNTAX_MOVGE1,
 4.28746 ++  AVR32_SYNTAX_MOVLT1,
 4.28747 ++  AVR32_SYNTAX_MOVMI1,
 4.28748 ++  AVR32_SYNTAX_MOVPL1,
 4.28749 ++  AVR32_SYNTAX_MOVLS1,
 4.28750 ++  AVR32_SYNTAX_MOVGT1,
 4.28751 ++  AVR32_SYNTAX_MOVLE1,
 4.28752 ++  AVR32_SYNTAX_MOVHI1,
 4.28753 ++  AVR32_SYNTAX_MOVVS1,
 4.28754 ++  AVR32_SYNTAX_MOVVC1,
 4.28755 ++  AVR32_SYNTAX_MOVQS1,
 4.28756 ++  AVR32_SYNTAX_MOVAL1,
 4.28757 ++  AVR32_SYNTAX_MOVHS1,
 4.28758 ++  AVR32_SYNTAX_MOVLO1,
 4.28759 ++  AVR32_SYNTAX_MOVEQ2,
 4.28760 ++  AVR32_SYNTAX_MOVNE2,
 4.28761 ++  AVR32_SYNTAX_MOVCC2,
 4.28762 ++  AVR32_SYNTAX_MOVCS2,
 4.28763 ++  AVR32_SYNTAX_MOVGE2,
 4.28764 ++  AVR32_SYNTAX_MOVLT2,
 4.28765 ++  AVR32_SYNTAX_MOVMI2,
 4.28766 ++  AVR32_SYNTAX_MOVPL2,
 4.28767 ++  AVR32_SYNTAX_MOVLS2,
 4.28768 ++  AVR32_SYNTAX_MOVGT2,
 4.28769 ++  AVR32_SYNTAX_MOVLE2,
 4.28770 ++  AVR32_SYNTAX_MOVHI2,
 4.28771 ++  AVR32_SYNTAX_MOVVS2,
 4.28772 ++  AVR32_SYNTAX_MOVVC2,
 4.28773 ++  AVR32_SYNTAX_MOVQS2,
 4.28774 ++  AVR32_SYNTAX_MOVAL2,
 4.28775 ++  AVR32_SYNTAX_MOVHS2,
 4.28776 ++  AVR32_SYNTAX_MOVLO2,
 4.28777 ++  AVR32_SYNTAX_MTDR,
 4.28778 ++  AVR32_SYNTAX_MTSR,
 4.28779 ++  AVR32_SYNTAX_MUL1,
 4.28780 ++  AVR32_SYNTAX_MUL2,
 4.28781 ++  AVR32_SYNTAX_MUL3,
 4.28782 ++  AVR32_SYNTAX_MULHH_W,
 4.28783 ++  AVR32_SYNTAX_MULNHH_W,
 4.28784 ++  AVR32_SYNTAX_MULNWH_D,
 4.28785 ++  AVR32_SYNTAX_MULSD,
 4.28786 ++  AVR32_SYNTAX_MULSATHH_H,
 4.28787 ++  AVR32_SYNTAX_MULSATHH_W,
 4.28788 ++  AVR32_SYNTAX_MULSATRNDHH_H,
 4.28789 ++  AVR32_SYNTAX_MULSATRNDWH_W,
 4.28790 ++  AVR32_SYNTAX_MULSATWH_W,
 4.28791 ++  AVR32_SYNTAX_MULU_D,
 4.28792 ++  AVR32_SYNTAX_MULWH_D,
 4.28793 ++  AVR32_SYNTAX_MUSFR,
 4.28794 ++  AVR32_SYNTAX_MUSTR,
 4.28795 ++  AVR32_SYNTAX_MVCR_D,
 4.28796 ++  AVR32_SYNTAX_MVCR_W,
 4.28797 ++  AVR32_SYNTAX_MVRC_D,
 4.28798 ++  AVR32_SYNTAX_MVRC_W,
 4.28799 ++  AVR32_SYNTAX_NEG,
 4.28800 ++  AVR32_SYNTAX_NOP,
 4.28801 ++  AVR32_SYNTAX_OR1,
 4.28802 ++  AVR32_SYNTAX_OR2,
 4.28803 ++  AVR32_SYNTAX_OR3,
 4.28804 ++  AVR32_SYNTAX_ORH,
 4.28805 ++  AVR32_SYNTAX_ORL,
 4.28806 ++  AVR32_SYNTAX_PABS_SB,
 4.28807 ++  AVR32_SYNTAX_PABS_SH,
 4.28808 ++  AVR32_SYNTAX_PACKSH_SB,
 4.28809 ++  AVR32_SYNTAX_PACKSH_UB,
 4.28810 ++  AVR32_SYNTAX_PACKW_SH,
 4.28811 ++  AVR32_SYNTAX_PADD_B,
 4.28812 ++  AVR32_SYNTAX_PADD_H,
 4.28813 ++  AVR32_SYNTAX_PADDH_SH,
 4.28814 ++  AVR32_SYNTAX_PADDH_UB,
 4.28815 ++  AVR32_SYNTAX_PADDS_SB,
 4.28816 ++  AVR32_SYNTAX_PADDS_SH,
 4.28817 ++  AVR32_SYNTAX_PADDS_UB,
 4.28818 ++  AVR32_SYNTAX_PADDS_UH,
 4.28819 ++  AVR32_SYNTAX_PADDSUB_H,
 4.28820 ++  AVR32_SYNTAX_PADDSUBH_SH,
 4.28821 ++  AVR32_SYNTAX_PADDSUBS_SH,
 4.28822 ++  AVR32_SYNTAX_PADDSUBS_UH,
 4.28823 ++  AVR32_SYNTAX_PADDX_H,
 4.28824 ++  AVR32_SYNTAX_PADDXH_SH,
 4.28825 ++  AVR32_SYNTAX_PADDXS_SH,
 4.28826 ++  AVR32_SYNTAX_PADDXS_UH,
 4.28827 ++  AVR32_SYNTAX_PASR_B,
 4.28828 ++  AVR32_SYNTAX_PASR_H,
 4.28829 ++  AVR32_SYNTAX_PAVG_SH,
 4.28830 ++  AVR32_SYNTAX_PAVG_UB,
 4.28831 ++  AVR32_SYNTAX_PLSL_B,
 4.28832 ++  AVR32_SYNTAX_PLSL_H,
 4.28833 ++  AVR32_SYNTAX_PLSR_B,
 4.28834 ++  AVR32_SYNTAX_PLSR_H,
 4.28835 ++  AVR32_SYNTAX_PMAX_SH,
 4.28836 ++  AVR32_SYNTAX_PMAX_UB,
 4.28837 ++  AVR32_SYNTAX_PMIN_SH,
 4.28838 ++  AVR32_SYNTAX_PMIN_UB,
 4.28839 ++  AVR32_SYNTAX_POPJC,
 4.28840 ++  AVR32_SYNTAX_POPM,
 4.28841 ++  AVR32_SYNTAX_POPM_E,
 4.28842 ++  AVR32_SYNTAX_PREF,
 4.28843 ++  AVR32_SYNTAX_PSAD,
 4.28844 ++  AVR32_SYNTAX_PSUB_B,
 4.28845 ++  AVR32_SYNTAX_PSUB_H,
 4.28846 ++  AVR32_SYNTAX_PSUBADD_H,
 4.28847 ++  AVR32_SYNTAX_PSUBADDH_SH,
 4.28848 ++  AVR32_SYNTAX_PSUBADDS_SH,
 4.28849 ++  AVR32_SYNTAX_PSUBADDS_UH,
 4.28850 ++  AVR32_SYNTAX_PSUBH_SH,
 4.28851 ++  AVR32_SYNTAX_PSUBH_UB,
 4.28852 ++  AVR32_SYNTAX_PSUBS_SB,
 4.28853 ++  AVR32_SYNTAX_PSUBS_SH,
 4.28854 ++  AVR32_SYNTAX_PSUBS_UB,
 4.28855 ++  AVR32_SYNTAX_PSUBS_UH,
 4.28856 ++  AVR32_SYNTAX_PSUBX_H,
 4.28857 ++  AVR32_SYNTAX_PSUBXH_SH,
 4.28858 ++  AVR32_SYNTAX_PSUBXS_SH,
 4.28859 ++  AVR32_SYNTAX_PSUBXS_UH,
 4.28860 ++  AVR32_SYNTAX_PUNPCKSB_H,
 4.28861 ++  AVR32_SYNTAX_PUNPCKUB_H,
 4.28862 ++  AVR32_SYNTAX_PUSHJC,
 4.28863 ++  AVR32_SYNTAX_PUSHM,
 4.28864 ++  AVR32_SYNTAX_PUSHM_E,
 4.28865 ++  AVR32_SYNTAX_RCALL1,
 4.28866 ++  AVR32_SYNTAX_RCALL2,
 4.28867 ++  AVR32_SYNTAX_RETEQ,
 4.28868 ++  AVR32_SYNTAX_RETNE,
 4.28869 ++  AVR32_SYNTAX_RETCC,
 4.28870 ++  AVR32_SYNTAX_RETCS,
 4.28871 ++  AVR32_SYNTAX_RETGE,
 4.28872 ++  AVR32_SYNTAX_RETLT,
 4.28873 ++  AVR32_SYNTAX_RETMI,
 4.28874 ++  AVR32_SYNTAX_RETPL,
 4.28875 ++  AVR32_SYNTAX_RETLS,
 4.28876 ++  AVR32_SYNTAX_RETGT,
 4.28877 ++  AVR32_SYNTAX_RETLE,
 4.28878 ++  AVR32_SYNTAX_RETHI,
 4.28879 ++  AVR32_SYNTAX_RETVS,
 4.28880 ++  AVR32_SYNTAX_RETVC,
 4.28881 ++  AVR32_SYNTAX_RETQS,
 4.28882 ++  AVR32_SYNTAX_RETAL,
 4.28883 ++  AVR32_SYNTAX_RETHS,
 4.28884 ++  AVR32_SYNTAX_RETLO,
 4.28885 ++  AVR32_SYNTAX_RETD,
 4.28886 ++  AVR32_SYNTAX_RETE,
 4.28887 ++  AVR32_SYNTAX_RETJ,
 4.28888 ++  AVR32_SYNTAX_RETS,
 4.28889 ++  AVR32_SYNTAX_RJMP,
 4.28890 ++  AVR32_SYNTAX_ROL,
 4.28891 ++  AVR32_SYNTAX_ROR,
 4.28892 ++  AVR32_SYNTAX_RSUB1,
 4.28893 ++  AVR32_SYNTAX_RSUB2,
 4.28894 ++  AVR32_SYNTAX_SATADD_H,
 4.28895 ++  AVR32_SYNTAX_SATADD_W,
 4.28896 ++  AVR32_SYNTAX_SATRNDS,
 4.28897 ++  AVR32_SYNTAX_SATRNDU,
 4.28898 ++  AVR32_SYNTAX_SATS,
 4.28899 ++  AVR32_SYNTAX_SATSUB_H,
 4.28900 ++  AVR32_SYNTAX_SATSUB_W1,
 4.28901 ++  AVR32_SYNTAX_SATSUB_W2,
 4.28902 ++  AVR32_SYNTAX_SATU,
 4.28903 ++  AVR32_SYNTAX_SBC,
 4.28904 ++  AVR32_SYNTAX_SBR,
 4.28905 ++  AVR32_SYNTAX_SCALL,
 4.28906 ++  AVR32_SYNTAX_SCR,
 4.28907 ++  AVR32_SYNTAX_SLEEP,
 4.28908 ++  AVR32_SYNTAX_SREQ,
 4.28909 ++  AVR32_SYNTAX_SRNE,
 4.28910 ++  AVR32_SYNTAX_SRCC,
 4.28911 ++  AVR32_SYNTAX_SRCS,
 4.28912 ++  AVR32_SYNTAX_SRGE,
 4.28913 ++  AVR32_SYNTAX_SRLT,
 4.28914 ++  AVR32_SYNTAX_SRMI,
 4.28915 ++  AVR32_SYNTAX_SRPL,
 4.28916 ++  AVR32_SYNTAX_SRLS,
 4.28917 ++  AVR32_SYNTAX_SRGT,
 4.28918 ++  AVR32_SYNTAX_SRLE,
 4.28919 ++  AVR32_SYNTAX_SRHI,
 4.28920 ++  AVR32_SYNTAX_SRVS,
 4.28921 ++  AVR32_SYNTAX_SRVC,
 4.28922 ++  AVR32_SYNTAX_SRQS,
 4.28923 ++  AVR32_SYNTAX_SRAL,
 4.28924 ++  AVR32_SYNTAX_SRHS,
 4.28925 ++  AVR32_SYNTAX_SRLO,
 4.28926 ++  AVR32_SYNTAX_SSRF,
 4.28927 ++  AVR32_SYNTAX_ST_B1,
 4.28928 ++  AVR32_SYNTAX_ST_B2,
 4.28929 ++  AVR32_SYNTAX_ST_B5,
 4.28930 ++  AVR32_SYNTAX_ST_B3,
 4.28931 ++  AVR32_SYNTAX_ST_B4,
 4.28932 ++  AVR32_SYNTAX_ST_D1,
 4.28933 ++  AVR32_SYNTAX_ST_D2,
 4.28934 ++  AVR32_SYNTAX_ST_D3,
 4.28935 ++  AVR32_SYNTAX_ST_D5,
 4.28936 ++  AVR32_SYNTAX_ST_D4,
 4.28937 ++  AVR32_SYNTAX_ST_H1,
 4.28938 ++  AVR32_SYNTAX_ST_H2,
 4.28939 ++  AVR32_SYNTAX_ST_H5,
 4.28940 ++  AVR32_SYNTAX_ST_H3,
 4.28941 ++  AVR32_SYNTAX_ST_H4,
 4.28942 ++  AVR32_SYNTAX_ST_W1,
 4.28943 ++  AVR32_SYNTAX_ST_W2,
 4.28944 ++  AVR32_SYNTAX_ST_W5,
 4.28945 ++  AVR32_SYNTAX_ST_W3,
 4.28946 ++  AVR32_SYNTAX_ST_W4,
 4.28947 ++  AVR32_SYNTAX_STC_D1,
 4.28948 ++  AVR32_SYNTAX_STC_D2,
 4.28949 ++  AVR32_SYNTAX_STC_D3,
 4.28950 ++  AVR32_SYNTAX_STC_W1,
 4.28951 ++  AVR32_SYNTAX_STC_W2,
 4.28952 ++  AVR32_SYNTAX_STC_W3,
 4.28953 ++  AVR32_SYNTAX_STC0_D,
 4.28954 ++  AVR32_SYNTAX_STC0_W,
 4.28955 ++  AVR32_SYNTAX_STCM_D,
 4.28956 ++  AVR32_SYNTAX_STCM_D_PU,
 4.28957 ++  AVR32_SYNTAX_STCM_W,
 4.28958 ++  AVR32_SYNTAX_STCM_W_PU,
 4.28959 ++  AVR32_SYNTAX_STCOND,
 4.28960 ++  AVR32_SYNTAX_STDSP,
 4.28961 ++  AVR32_SYNTAX_STHH_W2,
 4.28962 ++  AVR32_SYNTAX_STHH_W1,
 4.28963 ++  AVR32_SYNTAX_STM,
 4.28964 ++  AVR32_SYNTAX_STM_PU,
 4.28965 ++  AVR32_SYNTAX_STMTS,
 4.28966 ++  AVR32_SYNTAX_STMTS_PU,
 4.28967 ++  AVR32_SYNTAX_STSWP_H,
 4.28968 ++  AVR32_SYNTAX_STSWP_W,
 4.28969 ++  AVR32_SYNTAX_SUB1,
 4.28970 ++  AVR32_SYNTAX_SUB2,
 4.28971 ++  AVR32_SYNTAX_SUB5,
 4.28972 ++  AVR32_SYNTAX_SUB3_SP,
 4.28973 ++  AVR32_SYNTAX_SUB3,
 4.28974 ++  AVR32_SYNTAX_SUB4,
 4.28975 ++  AVR32_SYNTAX_SUBEQ,
 4.28976 ++  AVR32_SYNTAX_SUBNE,
 4.28977 ++  AVR32_SYNTAX_SUBCC,
 4.28978 ++  AVR32_SYNTAX_SUBCS,
 4.28979 ++  AVR32_SYNTAX_SUBGE,
 4.28980 ++  AVR32_SYNTAX_SUBLT,
 4.28981 ++  AVR32_SYNTAX_SUBMI,
 4.28982 ++  AVR32_SYNTAX_SUBPL,
 4.28983 ++  AVR32_SYNTAX_SUBLS,
 4.28984 ++  AVR32_SYNTAX_SUBGT,
 4.28985 ++  AVR32_SYNTAX_SUBLE,
 4.28986 ++  AVR32_SYNTAX_SUBHI,
 4.28987 ++  AVR32_SYNTAX_SUBVS,
 4.28988 ++  AVR32_SYNTAX_SUBVC,
 4.28989 ++  AVR32_SYNTAX_SUBQS,
 4.28990 ++  AVR32_SYNTAX_SUBAL,
 4.28991 ++  AVR32_SYNTAX_SUBHS,
 4.28992 ++  AVR32_SYNTAX_SUBLO,
 4.28993 ++  AVR32_SYNTAX_SUBFEQ,
 4.28994 ++  AVR32_SYNTAX_SUBFNE,
 4.28995 ++  AVR32_SYNTAX_SUBFCC,
 4.28996 ++  AVR32_SYNTAX_SUBFCS,
 4.28997 ++  AVR32_SYNTAX_SUBFGE,
 4.28998 ++  AVR32_SYNTAX_SUBFLT,
 4.28999 ++  AVR32_SYNTAX_SUBFMI,
 4.29000 ++  AVR32_SYNTAX_SUBFPL,
 4.29001 ++  AVR32_SYNTAX_SUBFLS,
 4.29002 ++  AVR32_SYNTAX_SUBFGT,
 4.29003 ++  AVR32_SYNTAX_SUBFLE,
 4.29004 ++  AVR32_SYNTAX_SUBFHI,
 4.29005 ++  AVR32_SYNTAX_SUBFVS,
 4.29006 ++  AVR32_SYNTAX_SUBFVC,
 4.29007 ++  AVR32_SYNTAX_SUBFQS,
 4.29008 ++  AVR32_SYNTAX_SUBFAL,
 4.29009 ++  AVR32_SYNTAX_SUBFHS,
 4.29010 ++  AVR32_SYNTAX_SUBFLO,
 4.29011 ++  AVR32_SYNTAX_SUBHH_W,
 4.29012 ++  AVR32_SYNTAX_SWAP_B,
 4.29013 ++  AVR32_SYNTAX_SWAP_BH,
 4.29014 ++  AVR32_SYNTAX_SWAP_H,
 4.29015 ++  AVR32_SYNTAX_SYNC,
 4.29016 ++  AVR32_SYNTAX_TLBR,
 4.29017 ++  AVR32_SYNTAX_TLBS,
 4.29018 ++  AVR32_SYNTAX_TLBW,
 4.29019 ++  AVR32_SYNTAX_TNBZ,
 4.29020 ++  AVR32_SYNTAX_TST,
 4.29021 ++  AVR32_SYNTAX_XCHG,
 4.29022 ++  AVR32_SYNTAX_MEMC,
 4.29023 ++  AVR32_SYNTAX_MEMS,
 4.29024 ++  AVR32_SYNTAX_MEMT,
 4.29025 ++  AVR32_SYNTAX_FADD_S,
 4.29026 ++  AVR32_SYNTAX_FADD_D,
 4.29027 ++  AVR32_SYNTAX_FSUB_S,
 4.29028 ++  AVR32_SYNTAX_FSUB_D,
 4.29029 ++  AVR32_SYNTAX_FMAC_S,
 4.29030 ++  AVR32_SYNTAX_FMAC_D,
 4.29031 ++  AVR32_SYNTAX_FNMAC_S,
 4.29032 ++  AVR32_SYNTAX_FNMAC_D,
 4.29033 ++  AVR32_SYNTAX_FMSC_S,
 4.29034 ++  AVR32_SYNTAX_FMSC_D,
 4.29035 ++  AVR32_SYNTAX_FNMSC_S,
 4.29036 ++  AVR32_SYNTAX_FNMSC_D,
 4.29037 ++  AVR32_SYNTAX_FMUL_S,
 4.29038 ++  AVR32_SYNTAX_FMUL_D,
 4.29039 ++  AVR32_SYNTAX_FNMUL_S,
 4.29040 ++  AVR32_SYNTAX_FNMUL_D,
 4.29041 ++  AVR32_SYNTAX_FNEG_S,
 4.29042 ++  AVR32_SYNTAX_FNEG_D,
 4.29043 ++  AVR32_SYNTAX_FABS_S,
 4.29044 ++  AVR32_SYNTAX_FABS_D,
 4.29045 ++  AVR32_SYNTAX_FCMP_S,
 4.29046 ++  AVR32_SYNTAX_FCMP_D,
 4.29047 ++  AVR32_SYNTAX_FMOV1_S,
 4.29048 ++  AVR32_SYNTAX_FMOV1_D,
 4.29049 ++  AVR32_SYNTAX_FMOV2_S,
 4.29050 ++  AVR32_SYNTAX_FMOV2_D,
 4.29051 ++  AVR32_SYNTAX_FMOV3_S,
 4.29052 ++  AVR32_SYNTAX_FMOV3_D,
 4.29053 ++  AVR32_SYNTAX_FCASTS_D,
 4.29054 ++  AVR32_SYNTAX_FCASTD_S,
 4.29055 ++  AVR32_SYNTAX_LDA_W,
 4.29056 ++  AVR32_SYNTAX_CALL,
 4.29057 ++  AVR32_SYNTAX_PICOSVMAC0,
 4.29058 ++  AVR32_SYNTAX_PICOSVMAC1,
 4.29059 ++  AVR32_SYNTAX_PICOSVMAC2,
 4.29060 ++  AVR32_SYNTAX_PICOSVMAC3,
 4.29061 ++  AVR32_SYNTAX_PICOSVMUL0,
 4.29062 ++  AVR32_SYNTAX_PICOSVMUL1,
 4.29063 ++  AVR32_SYNTAX_PICOSVMUL2,
 4.29064 ++  AVR32_SYNTAX_PICOSVMUL3,
 4.29065 ++  AVR32_SYNTAX_PICOVMAC0,
 4.29066 ++  AVR32_SYNTAX_PICOVMAC1,
 4.29067 ++  AVR32_SYNTAX_PICOVMAC2,
 4.29068 ++  AVR32_SYNTAX_PICOVMAC3,
 4.29069 ++  AVR32_SYNTAX_PICOVMUL0,
 4.29070 ++  AVR32_SYNTAX_PICOVMUL1,
 4.29071 ++  AVR32_SYNTAX_PICOVMUL2,
 4.29072 ++  AVR32_SYNTAX_PICOVMUL3,
 4.29073 ++  AVR32_SYNTAX_PICOLD_D2,
 4.29074 ++  AVR32_SYNTAX_PICOLD_D3,
 4.29075 ++  AVR32_SYNTAX_PICOLD_D1,
 4.29076 ++  AVR32_SYNTAX_PICOLD_W2,
 4.29077 ++  AVR32_SYNTAX_PICOLD_W3,
 4.29078 ++  AVR32_SYNTAX_PICOLD_W1,
 4.29079 ++  AVR32_SYNTAX_PICOLDM_D,
 4.29080 ++  AVR32_SYNTAX_PICOLDM_D_PU,
 4.29081 ++  AVR32_SYNTAX_PICOLDM_W,
 4.29082 ++  AVR32_SYNTAX_PICOLDM_W_PU,
 4.29083 ++  AVR32_SYNTAX_PICOMV_D1,
 4.29084 ++  AVR32_SYNTAX_PICOMV_D2,
 4.29085 ++  AVR32_SYNTAX_PICOMV_W1,
 4.29086 ++  AVR32_SYNTAX_PICOMV_W2,
 4.29087 ++  AVR32_SYNTAX_PICOST_D2,
 4.29088 ++  AVR32_SYNTAX_PICOST_D3,
 4.29089 ++  AVR32_SYNTAX_PICOST_D1,
 4.29090 ++  AVR32_SYNTAX_PICOST_W2,
 4.29091 ++  AVR32_SYNTAX_PICOST_W3,
 4.29092 ++  AVR32_SYNTAX_PICOST_W1,
 4.29093 ++  AVR32_SYNTAX_PICOSTM_D,
 4.29094 ++  AVR32_SYNTAX_PICOSTM_D_PU,
 4.29095 ++  AVR32_SYNTAX_PICOSTM_W,
 4.29096 ++  AVR32_SYNTAX_PICOSTM_W_PU,
 4.29097 ++  AVR32_SYNTAX_RSUBEQ,
 4.29098 ++  AVR32_SYNTAX_RSUBNE,
 4.29099 ++  AVR32_SYNTAX_RSUBCC,
 4.29100 ++  AVR32_SYNTAX_RSUBCS,
 4.29101 ++  AVR32_SYNTAX_RSUBGE,
 4.29102 ++  AVR32_SYNTAX_RSUBLT,
 4.29103 ++  AVR32_SYNTAX_RSUBMI,
 4.29104 ++  AVR32_SYNTAX_RSUBPL,
 4.29105 ++  AVR32_SYNTAX_RSUBLS,
 4.29106 ++  AVR32_SYNTAX_RSUBGT,
 4.29107 ++  AVR32_SYNTAX_RSUBLE,
 4.29108 ++  AVR32_SYNTAX_RSUBHI,
 4.29109 ++  AVR32_SYNTAX_RSUBVS,
 4.29110 ++  AVR32_SYNTAX_RSUBVC,
 4.29111 ++  AVR32_SYNTAX_RSUBQS,
 4.29112 ++  AVR32_SYNTAX_RSUBAL,
 4.29113 ++  AVR32_SYNTAX_RSUBHS,
 4.29114 ++  AVR32_SYNTAX_RSUBLO,
 4.29115 ++  AVR32_SYNTAX_ADDEQ,
 4.29116 ++  AVR32_SYNTAX_ADDNE,
 4.29117 ++  AVR32_SYNTAX_ADDCC,
 4.29118 ++  AVR32_SYNTAX_ADDCS,
 4.29119 ++  AVR32_SYNTAX_ADDGE,
 4.29120 ++  AVR32_SYNTAX_ADDLT,
 4.29121 ++  AVR32_SYNTAX_ADDMI,
 4.29122 ++  AVR32_SYNTAX_ADDPL,
 4.29123 ++  AVR32_SYNTAX_ADDLS,
 4.29124 ++  AVR32_SYNTAX_ADDGT,
 4.29125 ++  AVR32_SYNTAX_ADDLE,
 4.29126 ++  AVR32_SYNTAX_ADDHI,
 4.29127 ++  AVR32_SYNTAX_ADDVS,
 4.29128 ++  AVR32_SYNTAX_ADDVC,
 4.29129 ++  AVR32_SYNTAX_ADDQS,
 4.29130 ++  AVR32_SYNTAX_ADDAL,
 4.29131 ++  AVR32_SYNTAX_ADDHS,
 4.29132 ++  AVR32_SYNTAX_ADDLO,
 4.29133 ++  AVR32_SYNTAX_SUB2EQ,
 4.29134 ++  AVR32_SYNTAX_SUB2NE,
 4.29135 ++  AVR32_SYNTAX_SUB2CC,
 4.29136 ++  AVR32_SYNTAX_SUB2CS,
 4.29137 ++  AVR32_SYNTAX_SUB2GE,
 4.29138 ++  AVR32_SYNTAX_SUB2LT,
 4.29139 ++  AVR32_SYNTAX_SUB2MI,
 4.29140 ++  AVR32_SYNTAX_SUB2PL,
 4.29141 ++  AVR32_SYNTAX_SUB2LS,
 4.29142 ++  AVR32_SYNTAX_SUB2GT,
 4.29143 ++  AVR32_SYNTAX_SUB2LE,
 4.29144 ++  AVR32_SYNTAX_SUB2HI,
 4.29145 ++  AVR32_SYNTAX_SUB2VS,
 4.29146 ++  AVR32_SYNTAX_SUB2VC,
 4.29147 ++  AVR32_SYNTAX_SUB2QS,
 4.29148 ++  AVR32_SYNTAX_SUB2AL,
 4.29149 ++  AVR32_SYNTAX_SUB2HS,
 4.29150 ++  AVR32_SYNTAX_SUB2LO,
 4.29151 ++  AVR32_SYNTAX_ANDEQ,
 4.29152 ++  AVR32_SYNTAX_ANDNE,
 4.29153 ++  AVR32_SYNTAX_ANDCC,
 4.29154 ++  AVR32_SYNTAX_ANDCS,
 4.29155 ++  AVR32_SYNTAX_ANDGE,
 4.29156 ++  AVR32_SYNTAX_ANDLT,
 4.29157 ++  AVR32_SYNTAX_ANDMI,
 4.29158 ++  AVR32_SYNTAX_ANDPL,
 4.29159 ++  AVR32_SYNTAX_ANDLS,
 4.29160 ++  AVR32_SYNTAX_ANDGT,
 4.29161 ++  AVR32_SYNTAX_ANDLE,
 4.29162 ++  AVR32_SYNTAX_ANDHI,
 4.29163 ++  AVR32_SYNTAX_ANDVS,
 4.29164 ++  AVR32_SYNTAX_ANDVC,
 4.29165 ++  AVR32_SYNTAX_ANDQS,
 4.29166 ++  AVR32_SYNTAX_ANDAL,
 4.29167 ++  AVR32_SYNTAX_ANDHS,
 4.29168 ++  AVR32_SYNTAX_ANDLO,
 4.29169 ++  AVR32_SYNTAX_OREQ,
 4.29170 ++  AVR32_SYNTAX_ORNE,
 4.29171 ++  AVR32_SYNTAX_ORCC,
 4.29172 ++  AVR32_SYNTAX_ORCS,
 4.29173 ++  AVR32_SYNTAX_ORGE,
 4.29174 ++  AVR32_SYNTAX_ORLT,
 4.29175 ++  AVR32_SYNTAX_ORMI,
 4.29176 ++  AVR32_SYNTAX_ORPL,
 4.29177 ++  AVR32_SYNTAX_ORLS,
 4.29178 ++  AVR32_SYNTAX_ORGT,
 4.29179 ++  AVR32_SYNTAX_ORLE,
 4.29180 ++  AVR32_SYNTAX_ORHI,
 4.29181 ++  AVR32_SYNTAX_ORVS,
 4.29182 ++  AVR32_SYNTAX_ORVC,
 4.29183 ++  AVR32_SYNTAX_ORQS,
 4.29184 ++  AVR32_SYNTAX_ORAL,
 4.29185 ++  AVR32_SYNTAX_ORHS,
 4.29186 ++  AVR32_SYNTAX_ORLO,
 4.29187 ++  AVR32_SYNTAX_EOREQ,
 4.29188 ++  AVR32_SYNTAX_EORNE,
 4.29189 ++  AVR32_SYNTAX_EORCC,
 4.29190 ++  AVR32_SYNTAX_EORCS,
 4.29191 ++  AVR32_SYNTAX_EORGE,
 4.29192 ++  AVR32_SYNTAX_EORLT,
 4.29193 ++  AVR32_SYNTAX_EORMI,
 4.29194 ++  AVR32_SYNTAX_EORPL,
 4.29195 ++  AVR32_SYNTAX_EORLS,
 4.29196 ++  AVR32_SYNTAX_EORGT,
 4.29197 ++  AVR32_SYNTAX_EORLE,
 4.29198 ++  AVR32_SYNTAX_EORHI,
 4.29199 ++  AVR32_SYNTAX_EORVS,
 4.29200 ++  AVR32_SYNTAX_EORVC,
 4.29201 ++  AVR32_SYNTAX_EORQS,
 4.29202 ++  AVR32_SYNTAX_EORAL,
 4.29203 ++  AVR32_SYNTAX_EORHS,
 4.29204 ++  AVR32_SYNTAX_EORLO,
 4.29205 ++  AVR32_SYNTAX_LD_WEQ,
 4.29206 ++  AVR32_SYNTAX_LD_WNE,
 4.29207 ++  AVR32_SYNTAX_LD_WCC,
 4.29208 ++  AVR32_SYNTAX_LD_WCS,
 4.29209 ++  AVR32_SYNTAX_LD_WGE,
 4.29210 ++  AVR32_SYNTAX_LD_WLT,
 4.29211 ++  AVR32_SYNTAX_LD_WMI,
 4.29212 ++  AVR32_SYNTAX_LD_WPL,
 4.29213 ++  AVR32_SYNTAX_LD_WLS,
 4.29214 ++  AVR32_SYNTAX_LD_WGT,
 4.29215 ++  AVR32_SYNTAX_LD_WLE,
 4.29216 ++  AVR32_SYNTAX_LD_WHI,
 4.29217 ++  AVR32_SYNTAX_LD_WVS,
 4.29218 ++  AVR32_SYNTAX_LD_WVC,
 4.29219 ++  AVR32_SYNTAX_LD_WQS,
 4.29220 ++  AVR32_SYNTAX_LD_WAL,
 4.29221 ++  AVR32_SYNTAX_LD_WHS,
 4.29222 ++  AVR32_SYNTAX_LD_WLO,
 4.29223 ++  AVR32_SYNTAX_LD_SHEQ,
 4.29224 ++  AVR32_SYNTAX_LD_SHNE,
 4.29225 ++  AVR32_SYNTAX_LD_SHCC,
 4.29226 ++  AVR32_SYNTAX_LD_SHCS,
 4.29227 ++  AVR32_SYNTAX_LD_SHGE,
 4.29228 ++  AVR32_SYNTAX_LD_SHLT,
 4.29229 ++  AVR32_SYNTAX_LD_SHMI,
 4.29230 ++  AVR32_SYNTAX_LD_SHPL,
 4.29231 ++  AVR32_SYNTAX_LD_SHLS,
 4.29232 ++  AVR32_SYNTAX_LD_SHGT,
 4.29233 ++  AVR32_SYNTAX_LD_SHLE,
 4.29234 ++  AVR32_SYNTAX_LD_SHHI,
 4.29235 ++  AVR32_SYNTAX_LD_SHVS,
 4.29236 ++  AVR32_SYNTAX_LD_SHVC,
 4.29237 ++  AVR32_SYNTAX_LD_SHQS,
 4.29238 ++  AVR32_SYNTAX_LD_SHAL,
 4.29239 ++  AVR32_SYNTAX_LD_SHHS,
 4.29240 ++  AVR32_SYNTAX_LD_SHLO,
 4.29241 ++  AVR32_SYNTAX_LD_UHEQ,
 4.29242 ++  AVR32_SYNTAX_LD_UHNE,
 4.29243 ++  AVR32_SYNTAX_LD_UHCC,
 4.29244 ++  AVR32_SYNTAX_LD_UHCS,
 4.29245 ++  AVR32_SYNTAX_LD_UHGE,
 4.29246 ++  AVR32_SYNTAX_LD_UHLT,
 4.29247 ++  AVR32_SYNTAX_LD_UHMI,
 4.29248 ++  AVR32_SYNTAX_LD_UHPL,
 4.29249 ++  AVR32_SYNTAX_LD_UHLS,
 4.29250 ++  AVR32_SYNTAX_LD_UHGT,
 4.29251 ++  AVR32_SYNTAX_LD_UHLE,
 4.29252 ++  AVR32_SYNTAX_LD_UHHI,
 4.29253 ++  AVR32_SYNTAX_LD_UHVS,
 4.29254 ++  AVR32_SYNTAX_LD_UHVC,
 4.29255 ++  AVR32_SYNTAX_LD_UHQS,
 4.29256 ++  AVR32_SYNTAX_LD_UHAL,
 4.29257 ++  AVR32_SYNTAX_LD_UHHS,
 4.29258 ++  AVR32_SYNTAX_LD_UHLO,
 4.29259 ++  AVR32_SYNTAX_LD_SBEQ,
 4.29260 ++  AVR32_SYNTAX_LD_SBNE,
 4.29261 ++  AVR32_SYNTAX_LD_SBCC,
 4.29262 ++  AVR32_SYNTAX_LD_SBCS,
 4.29263 ++  AVR32_SYNTAX_LD_SBGE,
 4.29264 ++  AVR32_SYNTAX_LD_SBLT,
 4.29265 ++  AVR32_SYNTAX_LD_SBMI,
 4.29266 ++  AVR32_SYNTAX_LD_SBPL,
 4.29267 ++  AVR32_SYNTAX_LD_SBLS,
 4.29268 ++  AVR32_SYNTAX_LD_SBGT,
 4.29269 ++  AVR32_SYNTAX_LD_SBLE,
 4.29270 ++  AVR32_SYNTAX_LD_SBHI,
 4.29271 ++  AVR32_SYNTAX_LD_SBVS,
 4.29272 ++  AVR32_SYNTAX_LD_SBVC,
 4.29273 ++  AVR32_SYNTAX_LD_SBQS,
 4.29274 ++  AVR32_SYNTAX_LD_SBAL,
 4.29275 ++  AVR32_SYNTAX_LD_SBHS,
 4.29276 ++  AVR32_SYNTAX_LD_SBLO,
 4.29277 ++  AVR32_SYNTAX_LD_UBEQ,
 4.29278 ++  AVR32_SYNTAX_LD_UBNE,
 4.29279 ++  AVR32_SYNTAX_LD_UBCC,
 4.29280 ++  AVR32_SYNTAX_LD_UBCS,
 4.29281 ++  AVR32_SYNTAX_LD_UBGE,
 4.29282 ++  AVR32_SYNTAX_LD_UBLT,
 4.29283 ++  AVR32_SYNTAX_LD_UBMI,
 4.29284 ++  AVR32_SYNTAX_LD_UBPL,
 4.29285 ++  AVR32_SYNTAX_LD_UBLS,
 4.29286 ++  AVR32_SYNTAX_LD_UBGT,
 4.29287 ++  AVR32_SYNTAX_LD_UBLE,
 4.29288 ++  AVR32_SYNTAX_LD_UBHI,
 4.29289 ++  AVR32_SYNTAX_LD_UBVS,
 4.29290 ++  AVR32_SYNTAX_LD_UBVC,
 4.29291 ++  AVR32_SYNTAX_LD_UBQS,
 4.29292 ++  AVR32_SYNTAX_LD_UBAL,
 4.29293 ++  AVR32_SYNTAX_LD_UBHS,
 4.29294 ++  AVR32_SYNTAX_LD_UBLO,
 4.29295 ++  AVR32_SYNTAX_ST_WEQ,
 4.29296 ++  AVR32_SYNTAX_ST_WNE,
 4.29297 ++  AVR32_SYNTAX_ST_WCC,
 4.29298 ++  AVR32_SYNTAX_ST_WCS,
 4.29299 ++  AVR32_SYNTAX_ST_WGE,
 4.29300 ++  AVR32_SYNTAX_ST_WLT,
 4.29301 ++  AVR32_SYNTAX_ST_WMI,
 4.29302 ++  AVR32_SYNTAX_ST_WPL,
 4.29303 ++  AVR32_SYNTAX_ST_WLS,
 4.29304 ++  AVR32_SYNTAX_ST_WGT,
 4.29305 ++  AVR32_SYNTAX_ST_WLE,
 4.29306 ++  AVR32_SYNTAX_ST_WHI,
 4.29307 ++  AVR32_SYNTAX_ST_WVS,
 4.29308 ++  AVR32_SYNTAX_ST_WVC,
 4.29309 ++  AVR32_SYNTAX_ST_WQS,
 4.29310 ++  AVR32_SYNTAX_ST_WAL,
 4.29311 ++  AVR32_SYNTAX_ST_WHS,
 4.29312 ++  AVR32_SYNTAX_ST_WLO,
 4.29313 ++  AVR32_SYNTAX_ST_HEQ,
 4.29314 ++  AVR32_SYNTAX_ST_HNE,
 4.29315 ++  AVR32_SYNTAX_ST_HCC,
 4.29316 ++  AVR32_SYNTAX_ST_HCS,
 4.29317 ++  AVR32_SYNTAX_ST_HGE,
 4.29318 ++  AVR32_SYNTAX_ST_HLT,
 4.29319 ++  AVR32_SYNTAX_ST_HMI,
 4.29320 ++  AVR32_SYNTAX_ST_HPL,
 4.29321 ++  AVR32_SYNTAX_ST_HLS,
 4.29322 ++  AVR32_SYNTAX_ST_HGT,
 4.29323 ++  AVR32_SYNTAX_ST_HLE,
 4.29324 ++  AVR32_SYNTAX_ST_HHI,
 4.29325 ++  AVR32_SYNTAX_ST_HVS,
 4.29326 ++  AVR32_SYNTAX_ST_HVC,
 4.29327 ++  AVR32_SYNTAX_ST_HQS,
 4.29328 ++  AVR32_SYNTAX_ST_HAL,
 4.29329 ++  AVR32_SYNTAX_ST_HHS,
 4.29330 ++  AVR32_SYNTAX_ST_HLO,
 4.29331 ++  AVR32_SYNTAX_ST_BEQ,
 4.29332 ++  AVR32_SYNTAX_ST_BNE,
 4.29333 ++  AVR32_SYNTAX_ST_BCC,
 4.29334 ++  AVR32_SYNTAX_ST_BCS,
 4.29335 ++  AVR32_SYNTAX_ST_BGE,
 4.29336 ++  AVR32_SYNTAX_ST_BLT,
 4.29337 ++  AVR32_SYNTAX_ST_BMI,
 4.29338 ++  AVR32_SYNTAX_ST_BPL,
 4.29339 ++  AVR32_SYNTAX_ST_BLS,
 4.29340 ++  AVR32_SYNTAX_ST_BGT,
 4.29341 ++  AVR32_SYNTAX_ST_BLE,
 4.29342 ++  AVR32_SYNTAX_ST_BHI,
 4.29343 ++  AVR32_SYNTAX_ST_BVS,
 4.29344 ++  AVR32_SYNTAX_ST_BVC,
 4.29345 ++  AVR32_SYNTAX_ST_BQS,
 4.29346 ++  AVR32_SYNTAX_ST_BAL,
 4.29347 ++  AVR32_SYNTAX_ST_BHS,
 4.29348 ++  AVR32_SYNTAX_ST_BLO,
 4.29349 ++  AVR32_SYNTAX_MOVH,
 4.29350 ++  AVR32_SYNTAX__END_
 4.29351 ++};
 4.29352 ++#define AVR32_NR_SYNTAX AVR32_SYNTAX__END_
 4.29353 ++
 4.29354 ++enum avr32_alias_type
 4.29355 ++  {
 4.29356 ++    AVR32_ALIAS_FMAC_S,
 4.29357 ++    AVR32_ALIAS_FMAC_D,
 4.29358 ++    AVR32_ALIAS_FNMAC_S,
 4.29359 ++    AVR32_ALIAS_FNMAC_D,
 4.29360 ++    AVR32_ALIAS_FMSC_S,
 4.29361 ++    AVR32_ALIAS_FMSC_D,
 4.29362 ++    AVR32_ALIAS_FNMSC_S,
 4.29363 ++    AVR32_ALIAS_FNMSC_D,
 4.29364 ++    AVR32_ALIAS_FADD_S,
 4.29365 ++    AVR32_ALIAS_FADD_D,
 4.29366 ++    AVR32_ALIAS_FSUB_S,
 4.29367 ++    AVR32_ALIAS_FSUB_D,
 4.29368 ++    AVR32_ALIAS_FMUL_S,
 4.29369 ++    AVR32_ALIAS_FMUL_D,
 4.29370 ++    AVR32_ALIAS_FNMUL_S,
 4.29371 ++    AVR32_ALIAS_FNMUL_D,
 4.29372 ++    AVR32_ALIAS_FNEG_S,
 4.29373 ++    AVR32_ALIAS_FNEG_D,
 4.29374 ++    AVR32_ALIAS_FABS_S,
 4.29375 ++    AVR32_ALIAS_FABS_D,
 4.29376 ++    AVR32_ALIAS_FCMP_S,
 4.29377 ++    AVR32_ALIAS_FCMP_D,
 4.29378 ++    AVR32_ALIAS_FMOV1_S,
 4.29379 ++    AVR32_ALIAS_FMOV1_D,
 4.29380 ++    AVR32_ALIAS_FMOV2_S,
 4.29381 ++    AVR32_ALIAS_FMOV2_D,
 4.29382 ++    AVR32_ALIAS_FMOV3_S,
 4.29383 ++    AVR32_ALIAS_FMOV3_D,
 4.29384 ++    AVR32_ALIAS_FCASTS_D,
 4.29385 ++    AVR32_ALIAS_FCASTD_S,
 4.29386 ++    AVR32_ALIAS_PICOSVMAC0,
 4.29387 ++    AVR32_ALIAS_PICOSVMAC1,
 4.29388 ++    AVR32_ALIAS_PICOSVMAC2,
 4.29389 ++    AVR32_ALIAS_PICOSVMAC3,
 4.29390 ++    AVR32_ALIAS_PICOSVMUL0,
 4.29391 ++    AVR32_ALIAS_PICOSVMUL1,
 4.29392 ++    AVR32_ALIAS_PICOSVMUL2,
 4.29393 ++    AVR32_ALIAS_PICOSVMUL3,
 4.29394 ++    AVR32_ALIAS_PICOVMAC0,
 4.29395 ++    AVR32_ALIAS_PICOVMAC1,
 4.29396 ++    AVR32_ALIAS_PICOVMAC2,
 4.29397 ++    AVR32_ALIAS_PICOVMAC3,
 4.29398 ++    AVR32_ALIAS_PICOVMUL0,
 4.29399 ++    AVR32_ALIAS_PICOVMUL1,
 4.29400 ++    AVR32_ALIAS_PICOVMUL2,
 4.29401 ++    AVR32_ALIAS_PICOVMUL3,
 4.29402 ++    AVR32_ALIAS_PICOLD_D1,
 4.29403 ++    AVR32_ALIAS_PICOLD_D2,
 4.29404 ++    AVR32_ALIAS_PICOLD_D3,
 4.29405 ++    AVR32_ALIAS_PICOLD_W1,
 4.29406 ++    AVR32_ALIAS_PICOLD_W2,
 4.29407 ++    AVR32_ALIAS_PICOLD_W3,
 4.29408 ++    AVR32_ALIAS_PICOLDM_D,
 4.29409 ++    AVR32_ALIAS_PICOLDM_D_PU,
 4.29410 ++    AVR32_ALIAS_PICOLDM_W,
 4.29411 ++    AVR32_ALIAS_PICOLDM_W_PU,
 4.29412 ++    AVR32_ALIAS_PICOMV_D1,
 4.29413 ++    AVR32_ALIAS_PICOMV_D2,
 4.29414 ++    AVR32_ALIAS_PICOMV_W1,
 4.29415 ++    AVR32_ALIAS_PICOMV_W2,
 4.29416 ++    AVR32_ALIAS_PICOST_D1,
 4.29417 ++    AVR32_ALIAS_PICOST_D2,
 4.29418 ++    AVR32_ALIAS_PICOST_D3,
 4.29419 ++    AVR32_ALIAS_PICOST_W1,
 4.29420 ++    AVR32_ALIAS_PICOST_W2,
 4.29421 ++    AVR32_ALIAS_PICOST_W3,
 4.29422 ++    AVR32_ALIAS_PICOSTM_D,
 4.29423 ++    AVR32_ALIAS_PICOSTM_D_PU,
 4.29424 ++    AVR32_ALIAS_PICOSTM_W,
 4.29425 ++    AVR32_ALIAS_PICOSTM_W_PU,
 4.29426 ++    AVR32_ALIAS__END_
 4.29427 ++  };
 4.29428 ++#define AVR32_NR_ALIAS AVR32_ALIAS__END_
 4.29429 ++
 4.29430 ++enum avr32_mnemonic_type
 4.29431 ++{
 4.29432 ++  AVR32_MNEMONIC_ABS,
 4.29433 ++  AVR32_MNEMONIC_ACALL,
 4.29434 ++  AVR32_MNEMONIC_ACR,
 4.29435 ++  AVR32_MNEMONIC_ADC,
 4.29436 ++  AVR32_MNEMONIC_ADD,
 4.29437 ++  AVR32_MNEMONIC_ADDABS,
 4.29438 ++  AVR32_MNEMONIC_ADDHH_W,
 4.29439 ++  AVR32_MNEMONIC_AND,
 4.29440 ++  AVR32_MNEMONIC_ANDH,
 4.29441 ++  AVR32_MNEMONIC_ANDL,
 4.29442 ++  AVR32_MNEMONIC_ANDN,
 4.29443 ++  AVR32_MNEMONIC_ASR,
 4.29444 ++  AVR32_MNEMONIC_BFEXTS,
 4.29445 ++  AVR32_MNEMONIC_BFEXTU,
 4.29446 ++  AVR32_MNEMONIC_BFINS,
 4.29447 ++  AVR32_MNEMONIC_BLD,
 4.29448 ++  AVR32_MNEMONIC_BREQ,
 4.29449 ++  AVR32_MNEMONIC_BRNE,
 4.29450 ++  AVR32_MNEMONIC_BRCC,
 4.29451 ++  AVR32_MNEMONIC_BRCS,
 4.29452 ++  AVR32_MNEMONIC_BRGE,
 4.29453 ++  AVR32_MNEMONIC_BRLT,
 4.29454 ++  AVR32_MNEMONIC_BRMI,
 4.29455 ++  AVR32_MNEMONIC_BRPL,
 4.29456 ++  AVR32_MNEMONIC_BRHS,
 4.29457 ++  AVR32_MNEMONIC_BRLO,
 4.29458 ++  AVR32_MNEMONIC_BRLS,
 4.29459 ++  AVR32_MNEMONIC_BRGT,
 4.29460 ++  AVR32_MNEMONIC_BRLE,
 4.29461 ++  AVR32_MNEMONIC_BRHI,
 4.29462 ++  AVR32_MNEMONIC_BRVS,
 4.29463 ++  AVR32_MNEMONIC_BRVC,
 4.29464 ++  AVR32_MNEMONIC_BRQS,
 4.29465 ++  AVR32_MNEMONIC_BRAL,
 4.29466 ++  AVR32_MNEMONIC_BREAKPOINT,
 4.29467 ++  AVR32_MNEMONIC_BREV,
 4.29468 ++  AVR32_MNEMONIC_BST,
 4.29469 ++  AVR32_MNEMONIC_CACHE,
 4.29470 ++  AVR32_MNEMONIC_CASTS_B,
 4.29471 ++  AVR32_MNEMONIC_CASTS_H,
 4.29472 ++  AVR32_MNEMONIC_CASTU_B,
 4.29473 ++  AVR32_MNEMONIC_CASTU_H,
 4.29474 ++  AVR32_MNEMONIC_CBR,
 4.29475 ++  AVR32_MNEMONIC_CLZ,
 4.29476 ++  AVR32_MNEMONIC_COM,
 4.29477 ++  AVR32_MNEMONIC_COP,
 4.29478 ++  AVR32_MNEMONIC_CP_B,
 4.29479 ++  AVR32_MNEMONIC_CP_H,
 4.29480 ++  AVR32_MNEMONIC_CP_W,
 4.29481 ++  AVR32_MNEMONIC_CP,
 4.29482 ++  AVR32_MNEMONIC_CPC,
 4.29483 ++  AVR32_MNEMONIC_CSRF,
 4.29484 ++  AVR32_MNEMONIC_CSRFCZ,
 4.29485 ++  AVR32_MNEMONIC_DIVS,
 4.29486 ++  AVR32_MNEMONIC_DIVU,
 4.29487 ++  AVR32_MNEMONIC_EOR,
 4.29488 ++  AVR32_MNEMONIC_EORL,
 4.29489 ++  AVR32_MNEMONIC_EORH,
 4.29490 ++  AVR32_MNEMONIC_FRS,
 4.29491 ++  AVR32_MNEMONIC_ICALL,
 4.29492 ++  AVR32_MNEMONIC_INCJOSP,
 4.29493 ++  AVR32_MNEMONIC_LD_D,
 4.29494 ++  AVR32_MNEMONIC_LD_SB,
 4.29495 ++  AVR32_MNEMONIC_LD_UB,
 4.29496 ++  AVR32_MNEMONIC_LD_SH,
 4.29497 ++  AVR32_MNEMONIC_LD_UH,
 4.29498 ++  AVR32_MNEMONIC_LD_W,
 4.29499 ++  AVR32_MNEMONIC_LDC_D,
 4.29500 ++  AVR32_MNEMONIC_LDC_W,
 4.29501 ++  AVR32_MNEMONIC_LDC0_D,
 4.29502 ++  AVR32_MNEMONIC_LDC0_W,
 4.29503 ++  AVR32_MNEMONIC_LDCM_D,
 4.29504 ++  AVR32_MNEMONIC_LDCM_W,
 4.29505 ++  AVR32_MNEMONIC_LDDPC,
 4.29506 ++  AVR32_MNEMONIC_LDDSP,
 4.29507 ++  AVR32_MNEMONIC_LDINS_B,
 4.29508 ++  AVR32_MNEMONIC_LDINS_H,
 4.29509 ++  AVR32_MNEMONIC_LDM,
 4.29510 ++  AVR32_MNEMONIC_LDMTS,
 4.29511 ++  AVR32_MNEMONIC_LDSWP_SH,
 4.29512 ++  AVR32_MNEMONIC_LDSWP_UH,
 4.29513 ++  AVR32_MNEMONIC_LDSWP_W,
 4.29514 ++  AVR32_MNEMONIC_LSL,
 4.29515 ++  AVR32_MNEMONIC_LSR,
 4.29516 ++  AVR32_MNEMONIC_MAC,
 4.29517 ++  AVR32_MNEMONIC_MACHH_D,
 4.29518 ++  AVR32_MNEMONIC_MACHH_W,
 4.29519 ++  AVR32_MNEMONIC_MACS_D,
 4.29520 ++  AVR32_MNEMONIC_MACSATHH_W,
 4.29521 ++  AVR32_MNEMONIC_MACU_D,
 4.29522 ++  AVR32_MNEMONIC_MACWH_D,
 4.29523 ++  AVR32_MNEMONIC_MAX,
 4.29524 ++  AVR32_MNEMONIC_MCALL,
 4.29525 ++  AVR32_MNEMONIC_MFDR,
 4.29526 ++  AVR32_MNEMONIC_MFSR,
 4.29527 ++  AVR32_MNEMONIC_MIN,
 4.29528 ++  AVR32_MNEMONIC_MOV,
 4.29529 ++  AVR32_MNEMONIC_MOVEQ,
 4.29530 ++  AVR32_MNEMONIC_MOVNE,
 4.29531 ++  AVR32_MNEMONIC_MOVCC,
 4.29532 ++  AVR32_MNEMONIC_MOVCS,
 4.29533 ++  AVR32_MNEMONIC_MOVGE,
 4.29534 ++  AVR32_MNEMONIC_MOVLT,
 4.29535 ++  AVR32_MNEMONIC_MOVMI,
 4.29536 ++  AVR32_MNEMONIC_MOVPL,
 4.29537 ++  AVR32_MNEMONIC_MOVLS,
 4.29538 ++  AVR32_MNEMONIC_MOVGT,
 4.29539 ++  AVR32_MNEMONIC_MOVLE,
 4.29540 ++  AVR32_MNEMONIC_MOVHI,
 4.29541 ++  AVR32_MNEMONIC_MOVVS,
 4.29542 ++  AVR32_MNEMONIC_MOVVC,
 4.29543 ++  AVR32_MNEMONIC_MOVQS,
 4.29544 ++  AVR32_MNEMONIC_MOVAL,
 4.29545 ++  AVR32_MNEMONIC_MOVHS,
 4.29546 ++  AVR32_MNEMONIC_MOVLO,
 4.29547 ++  AVR32_MNEMONIC_MTDR,
 4.29548 ++  AVR32_MNEMONIC_MTSR,
 4.29549 ++  AVR32_MNEMONIC_MUL,
 4.29550 ++  AVR32_MNEMONIC_MULHH_W,
 4.29551 ++  AVR32_MNEMONIC_MULNHH_W,
 4.29552 ++  AVR32_MNEMONIC_MULNWH_D,
 4.29553 ++  AVR32_MNEMONIC_MULS_D,
 4.29554 ++  AVR32_MNEMONIC_MULSATHH_H,
 4.29555 ++  AVR32_MNEMONIC_MULSATHH_W,
 4.29556 ++  AVR32_MNEMONIC_MULSATRNDHH_H,
 4.29557 ++  AVR32_MNEMONIC_MULSATRNDWH_W,
 4.29558 ++  AVR32_MNEMONIC_MULSATWH_W,
 4.29559 ++  AVR32_MNEMONIC_MULU_D,
 4.29560 ++  AVR32_MNEMONIC_MULWH_D,
 4.29561 ++  AVR32_MNEMONIC_MUSFR,
 4.29562 ++  AVR32_MNEMONIC_MUSTR,
 4.29563 ++  AVR32_MNEMONIC_MVCR_D,
 4.29564 ++  AVR32_MNEMONIC_MVCR_W,
 4.29565 ++  AVR32_MNEMONIC_MVRC_D,
 4.29566 ++  AVR32_MNEMONIC_MVRC_W,
 4.29567 ++  AVR32_MNEMONIC_NEG,
 4.29568 ++  AVR32_MNEMONIC_NOP,
 4.29569 ++  AVR32_MNEMONIC_OR,
 4.29570 ++  AVR32_MNEMONIC_ORH,
 4.29571 ++  AVR32_MNEMONIC_ORL,
 4.29572 ++  AVR32_MNEMONIC_PABS_SB,
 4.29573 ++  AVR32_MNEMONIC_PABS_SH,
 4.29574 ++  AVR32_MNEMONIC_PACKSH_SB,
 4.29575 ++  AVR32_MNEMONIC_PACKSH_UB,
 4.29576 ++  AVR32_MNEMONIC_PACKW_SH,
 4.29577 ++  AVR32_MNEMONIC_PADD_B,
 4.29578 ++  AVR32_MNEMONIC_PADD_H,
 4.29579 ++  AVR32_MNEMONIC_PADDH_SH,
 4.29580 ++  AVR32_MNEMONIC_PADDH_UB,
 4.29581 ++  AVR32_MNEMONIC_PADDS_SB,
 4.29582 ++  AVR32_MNEMONIC_PADDS_SH,
 4.29583 ++  AVR32_MNEMONIC_PADDS_UB,
 4.29584 ++  AVR32_MNEMONIC_PADDS_UH,
 4.29585 ++  AVR32_MNEMONIC_PADDSUB_H,
 4.29586 ++  AVR32_MNEMONIC_PADDSUBH_SH,
 4.29587 ++  AVR32_MNEMONIC_PADDSUBS_SH,
 4.29588 ++  AVR32_MNEMONIC_PADDSUBS_UH,
 4.29589 ++  AVR32_MNEMONIC_PADDX_H,
 4.29590 ++  AVR32_MNEMONIC_PADDXH_SH,
 4.29591 ++  AVR32_MNEMONIC_PADDXS_SH,
 4.29592 ++  AVR32_MNEMONIC_PADDXS_UH,
 4.29593 ++  AVR32_MNEMONIC_PASR_B,
 4.29594 ++  AVR32_MNEMONIC_PASR_H,
 4.29595 ++  AVR32_MNEMONIC_PAVG_SH,
 4.29596 ++  AVR32_MNEMONIC_PAVG_UB,
 4.29597 ++  AVR32_MNEMONIC_PLSL_B,
 4.29598 ++  AVR32_MNEMONIC_PLSL_H,
 4.29599 ++  AVR32_MNEMONIC_PLSR_B,
 4.29600 ++  AVR32_MNEMONIC_PLSR_H,
 4.29601 ++  AVR32_MNEMONIC_PMAX_SH,
 4.29602 ++  AVR32_MNEMONIC_PMAX_UB,
 4.29603 ++  AVR32_MNEMONIC_PMIN_SH,
 4.29604 ++  AVR32_MNEMONIC_PMIN_UB,
 4.29605 ++  AVR32_MNEMONIC_POPJC,
 4.29606 ++  AVR32_MNEMONIC_POPM,
 4.29607 ++  AVR32_MNEMONIC_PREF,
 4.29608 ++  AVR32_MNEMONIC_PSAD,
 4.29609 ++  AVR32_MNEMONIC_PSUB_B,
 4.29610 ++  AVR32_MNEMONIC_PSUB_H,
 4.29611 ++  AVR32_MNEMONIC_PSUBADD_H,
 4.29612 ++  AVR32_MNEMONIC_PSUBADDH_SH,
 4.29613 ++  AVR32_MNEMONIC_PSUBADDS_SH,
 4.29614 ++  AVR32_MNEMONIC_PSUBADDS_UH,
 4.29615 ++  AVR32_MNEMONIC_PSUBH_SH,
 4.29616 ++  AVR32_MNEMONIC_PSUBH_UB,
 4.29617 ++  AVR32_MNEMONIC_PSUBS_SB,
 4.29618 ++  AVR32_MNEMONIC_PSUBS_SH,
 4.29619 ++  AVR32_MNEMONIC_PSUBS_UB,
 4.29620 ++  AVR32_MNEMONIC_PSUBS_UH,
 4.29621 ++  AVR32_MNEMONIC_PSUBX_H,
 4.29622 ++  AVR32_MNEMONIC_PSUBXH_SH,
 4.29623 ++  AVR32_MNEMONIC_PSUBXS_SH,
 4.29624 ++  AVR32_MNEMONIC_PSUBXS_UH,
 4.29625 ++  AVR32_MNEMONIC_PUNPCKSB_H,
 4.29626 ++  AVR32_MNEMONIC_PUNPCKUB_H,
 4.29627 ++  AVR32_MNEMONIC_PUSHJC,
 4.29628 ++  AVR32_MNEMONIC_PUSHM,
 4.29629 ++  AVR32_MNEMONIC_RCALL,
 4.29630 ++  AVR32_MNEMONIC_RETEQ,
 4.29631 ++  AVR32_MNEMONIC_RETNE,
 4.29632 ++  AVR32_MNEMONIC_RETCC,
 4.29633 ++  AVR32_MNEMONIC_RETCS,
 4.29634 ++  AVR32_MNEMONIC_RETGE,
 4.29635 ++  AVR32_MNEMONIC_RETLT,
 4.29636 ++  AVR32_MNEMONIC_RETMI,
 4.29637 ++  AVR32_MNEMONIC_RETPL,
 4.29638 ++  AVR32_MNEMONIC_RETLS,
 4.29639 ++  AVR32_MNEMONIC_RETGT,
 4.29640 ++  AVR32_MNEMONIC_RETLE,
 4.29641 ++  AVR32_MNEMONIC_RETHI,
 4.29642 ++  AVR32_MNEMONIC_RETVS,
 4.29643 ++  AVR32_MNEMONIC_RETVC,
 4.29644 ++  AVR32_MNEMONIC_RETQS,
 4.29645 ++  AVR32_MNEMONIC_RETAL,
 4.29646 ++  AVR32_MNEMONIC_RETHS,
 4.29647 ++  AVR32_MNEMONIC_RETLO,
 4.29648 ++  AVR32_MNEMONIC_RET,
 4.29649 ++  AVR32_MNEMONIC_RETD,
 4.29650 ++  AVR32_MNEMONIC_RETE,
 4.29651 ++  AVR32_MNEMONIC_RETJ,
 4.29652 ++  AVR32_MNEMONIC_RETS,
 4.29653 ++  AVR32_MNEMONIC_RJMP,
 4.29654 ++  AVR32_MNEMONIC_ROL,
 4.29655 ++  AVR32_MNEMONIC_ROR,
 4.29656 ++  AVR32_MNEMONIC_RSUB,
 4.29657 ++  AVR32_MNEMONIC_SATADD_H,
 4.29658 ++  AVR32_MNEMONIC_SATADD_W,
 4.29659 ++  AVR32_MNEMONIC_SATRNDS,
 4.29660 ++  AVR32_MNEMONIC_SATRNDU,
 4.29661 ++  AVR32_MNEMONIC_SATS,
 4.29662 ++  AVR32_MNEMONIC_SATSUB_H,
 4.29663 ++  AVR32_MNEMONIC_SATSUB_W,
 4.29664 ++  AVR32_MNEMONIC_SATU,
 4.29665 ++  AVR32_MNEMONIC_SBC,
 4.29666 ++  AVR32_MNEMONIC_SBR,
 4.29667 ++  AVR32_MNEMONIC_SCALL,
 4.29668 ++  AVR32_MNEMONIC_SCR,
 4.29669 ++  AVR32_MNEMONIC_SLEEP,
 4.29670 ++  AVR32_MNEMONIC_SREQ,
 4.29671 ++  AVR32_MNEMONIC_SRNE,
 4.29672 ++  AVR32_MNEMONIC_SRCC,
 4.29673 ++  AVR32_MNEMONIC_SRCS,
 4.29674 ++  AVR32_MNEMONIC_SRGE,
 4.29675 ++  AVR32_MNEMONIC_SRLT,
 4.29676 ++  AVR32_MNEMONIC_SRMI,
 4.29677 ++  AVR32_MNEMONIC_SRPL,
 4.29678 ++  AVR32_MNEMONIC_SRLS,
 4.29679 ++  AVR32_MNEMONIC_SRGT,
 4.29680 ++  AVR32_MNEMONIC_SRLE,
 4.29681 ++  AVR32_MNEMONIC_SRHI,
 4.29682 ++  AVR32_MNEMONIC_SRVS,
 4.29683 ++  AVR32_MNEMONIC_SRVC,
 4.29684 ++  AVR32_MNEMONIC_SRQS,
 4.29685 ++  AVR32_MNEMONIC_SRAL,
 4.29686 ++  AVR32_MNEMONIC_SRHS,
 4.29687 ++  AVR32_MNEMONIC_SRLO,
 4.29688 ++  AVR32_MNEMONIC_SSRF,
 4.29689 ++  AVR32_MNEMONIC_ST_B,
 4.29690 ++  AVR32_MNEMONIC_ST_D,
 4.29691 ++  AVR32_MNEMONIC_ST_H,
 4.29692 ++  AVR32_MNEMONIC_ST_W,
 4.29693 ++  AVR32_MNEMONIC_STC_D,
 4.29694 ++  AVR32_MNEMONIC_STC_W,
 4.29695 ++  AVR32_MNEMONIC_STC0_D,
 4.29696 ++  AVR32_MNEMONIC_STC0_W,
 4.29697 ++  AVR32_MNEMONIC_STCM_D,
 4.29698 ++  AVR32_MNEMONIC_STCM_W,
 4.29699 ++  AVR32_MNEMONIC_STCOND,
 4.29700 ++  AVR32_MNEMONIC_STDSP,
 4.29701 ++  AVR32_MNEMONIC_STHH_W,
 4.29702 ++  AVR32_MNEMONIC_STM,
 4.29703 ++  AVR32_MNEMONIC_STMTS,
 4.29704 ++  AVR32_MNEMONIC_STSWP_H,
 4.29705 ++  AVR32_MNEMONIC_STSWP_W,
 4.29706 ++  AVR32_MNEMONIC_SUB,
 4.29707 ++  AVR32_MNEMONIC_SUBEQ,
 4.29708 ++  AVR32_MNEMONIC_SUBNE,
 4.29709 ++  AVR32_MNEMONIC_SUBCC,
 4.29710 ++  AVR32_MNEMONIC_SUBCS,
 4.29711 ++  AVR32_MNEMONIC_SUBGE,
 4.29712 ++  AVR32_MNEMONIC_SUBLT,
 4.29713 ++  AVR32_MNEMONIC_SUBMI,
 4.29714 ++  AVR32_MNEMONIC_SUBPL,
 4.29715 ++  AVR32_MNEMONIC_SUBLS,
 4.29716 ++  AVR32_MNEMONIC_SUBGT,
 4.29717 ++  AVR32_MNEMONIC_SUBLE,
 4.29718 ++  AVR32_MNEMONIC_SUBHI,
 4.29719 ++  AVR32_MNEMONIC_SUBVS,
 4.29720 ++  AVR32_MNEMONIC_SUBVC,
 4.29721 ++  AVR32_MNEMONIC_SUBQS,
 4.29722 ++  AVR32_MNEMONIC_SUBAL,
 4.29723 ++  AVR32_MNEMONIC_SUBHS,
 4.29724 ++  AVR32_MNEMONIC_SUBLO,
 4.29725 ++  AVR32_MNEMONIC_SUBFEQ,
 4.29726 ++  AVR32_MNEMONIC_SUBFNE,
 4.29727 ++  AVR32_MNEMONIC_SUBFCC,
 4.29728 ++  AVR32_MNEMONIC_SUBFCS,
 4.29729 ++  AVR32_MNEMONIC_SUBFGE,
 4.29730 ++  AVR32_MNEMONIC_SUBFLT,
 4.29731 ++  AVR32_MNEMONIC_SUBFMI,
 4.29732 ++  AVR32_MNEMONIC_SUBFPL,
 4.29733 ++  AVR32_MNEMONIC_SUBFLS,
 4.29734 ++  AVR32_MNEMONIC_SUBFGT,
 4.29735 ++  AVR32_MNEMONIC_SUBFLE,
 4.29736 ++  AVR32_MNEMONIC_SUBFHI,
 4.29737 ++  AVR32_MNEMONIC_SUBFVS,
 4.29738 ++  AVR32_MNEMONIC_SUBFVC,
 4.29739 ++  AVR32_MNEMONIC_SUBFQS,
 4.29740 ++  AVR32_MNEMONIC_SUBFAL,
 4.29741 ++  AVR32_MNEMONIC_SUBFHS,
 4.29742 ++  AVR32_MNEMONIC_SUBFLO,
 4.29743 ++  AVR32_MNEMONIC_SUBHH_W,
 4.29744 ++  AVR32_MNEMONIC_SWAP_B,
 4.29745 ++  AVR32_MNEMONIC_SWAP_BH,
 4.29746 ++  AVR32_MNEMONIC_SWAP_H,
 4.29747 ++  AVR32_MNEMONIC_SYNC,
 4.29748 ++  AVR32_MNEMONIC_TLBR,
 4.29749 ++  AVR32_MNEMONIC_TLBS,
 4.29750 ++  AVR32_MNEMONIC_TLBW,
 4.29751 ++  AVR32_MNEMONIC_TNBZ,
 4.29752 ++  AVR32_MNEMONIC_TST,
 4.29753 ++  AVR32_MNEMONIC_XCHG,
 4.29754 ++  AVR32_MNEMONIC_MEMC,
 4.29755 ++  AVR32_MNEMONIC_MEMS,
 4.29756 ++  AVR32_MNEMONIC_MEMT,
 4.29757 ++  AVR32_MNEMONIC_FADD_S,
 4.29758 ++  AVR32_MNEMONIC_FADD_D,
 4.29759 ++  AVR32_MNEMONIC_FSUB_S,
 4.29760 ++  AVR32_MNEMONIC_FSUB_D,
 4.29761 ++  AVR32_MNEMONIC_FMAC_S,
 4.29762 ++  AVR32_MNEMONIC_FMAC_D,
 4.29763 ++  AVR32_MNEMONIC_FNMAC_S,
 4.29764 ++  AVR32_MNEMONIC_FNMAC_D,
 4.29765 ++  AVR32_MNEMONIC_FMSC_S,
 4.29766 ++  AVR32_MNEMONIC_FMSC_D,
 4.29767 ++  AVR32_MNEMONIC_FNMSC_S,
 4.29768 ++  AVR32_MNEMONIC_FNMSC_D,
 4.29769 ++  AVR32_MNEMONIC_FMUL_S,
 4.29770 ++  AVR32_MNEMONIC_FMUL_D,
 4.29771 ++  AVR32_MNEMONIC_FNMUL_S,
 4.29772 ++  AVR32_MNEMONIC_FNMUL_D,
 4.29773 ++  AVR32_MNEMONIC_FNEG_S,
 4.29774 ++  AVR32_MNEMONIC_FNEG_D,
 4.29775 ++  AVR32_MNEMONIC_FABS_S,
 4.29776 ++  AVR32_MNEMONIC_FABS_D,
 4.29777 ++  AVR32_MNEMONIC_FCMP_S,
 4.29778 ++  AVR32_MNEMONIC_FCMP_D,
 4.29779 ++  AVR32_MNEMONIC_FMOV_S,
 4.29780 ++  AVR32_MNEMONIC_FMOV_D,
 4.29781 ++  AVR32_MNEMONIC_FCASTS_D,
 4.29782 ++  AVR32_MNEMONIC_FCASTD_S,
 4.29783 ++  /* AVR32_MNEMONIC_FLD_S,
 4.29784 ++     AVR32_MNEMONIC_FLD_D,
 4.29785 ++     AVR32_MNEMONIC_FST_S,
 4.29786 ++     AVR32_MNEMONIC_FST_D, */
 4.29787 ++  AVR32_MNEMONIC_LDA_W,
 4.29788 ++  AVR32_MNEMONIC_CALL,
 4.29789 ++  AVR32_MNEMONIC_PICOSVMAC,
 4.29790 ++  AVR32_MNEMONIC_PICOSVMUL,
 4.29791 ++  AVR32_MNEMONIC_PICOVMAC,
 4.29792 ++  AVR32_MNEMONIC_PICOVMUL,
 4.29793 ++  AVR32_MNEMONIC_PICOLD_D,
 4.29794 ++  AVR32_MNEMONIC_PICOLD_W,
 4.29795 ++  AVR32_MNEMONIC_PICOLDM_D,
 4.29796 ++  AVR32_MNEMONIC_PICOLDM_W,
 4.29797 ++  AVR32_MNEMONIC_PICOMV_D,
 4.29798 ++  AVR32_MNEMONIC_PICOMV_W,
 4.29799 ++  AVR32_MNEMONIC_PICOST_D,
 4.29800 ++  AVR32_MNEMONIC_PICOST_W,
 4.29801 ++  AVR32_MNEMONIC_PICOSTM_D,
 4.29802 ++  AVR32_MNEMONIC_PICOSTM_W,
 4.29803 ++  AVR32_MNEMONIC_RSUBEQ,
 4.29804 ++  AVR32_MNEMONIC_RSUBNE,
 4.29805 ++  AVR32_MNEMONIC_RSUBCC,
 4.29806 ++  AVR32_MNEMONIC_RSUBCS,
 4.29807 ++  AVR32_MNEMONIC_RSUBGE,
 4.29808 ++  AVR32_MNEMONIC_RSUBLT,
 4.29809 ++  AVR32_MNEMONIC_RSUBMI,
 4.29810 ++  AVR32_MNEMONIC_RSUBPL,
 4.29811 ++  AVR32_MNEMONIC_RSUBLS,
 4.29812 ++  AVR32_MNEMONIC_RSUBGT,
 4.29813 ++  AVR32_MNEMONIC_RSUBLE,
 4.29814 ++  AVR32_MNEMONIC_RSUBHI,
 4.29815 ++  AVR32_MNEMONIC_RSUBVS,
 4.29816 ++  AVR32_MNEMONIC_RSUBVC,
 4.29817 ++  AVR32_MNEMONIC_RSUBQS,
 4.29818 ++  AVR32_MNEMONIC_RSUBAL,
 4.29819 ++  AVR32_MNEMONIC_RSUBHS,
 4.29820 ++  AVR32_MNEMONIC_RSUBLO,
 4.29821 ++  AVR32_MNEMONIC_ADDEQ,
 4.29822 ++  AVR32_MNEMONIC_ADDNE,
 4.29823 ++  AVR32_MNEMONIC_ADDCC,
 4.29824 ++  AVR32_MNEMONIC_ADDCS,
 4.29825 ++  AVR32_MNEMONIC_ADDGE,
 4.29826 ++  AVR32_MNEMONIC_ADDLT,
 4.29827 ++  AVR32_MNEMONIC_ADDMI,
 4.29828 ++  AVR32_MNEMONIC_ADDPL,
 4.29829 ++  AVR32_MNEMONIC_ADDLS,
 4.29830 ++  AVR32_MNEMONIC_ADDGT,
 4.29831 ++  AVR32_MNEMONIC_ADDLE,
 4.29832 ++  AVR32_MNEMONIC_ADDHI,
 4.29833 ++  AVR32_MNEMONIC_ADDVS,
 4.29834 ++  AVR32_MNEMONIC_ADDVC,
 4.29835 ++  AVR32_MNEMONIC_ADDQS,
 4.29836 ++  AVR32_MNEMONIC_ADDAL,
 4.29837 ++  AVR32_MNEMONIC_ADDHS,
 4.29838 ++  AVR32_MNEMONIC_ADDLO,
 4.29839 ++  AVR32_MNEMONIC_ANDEQ,
 4.29840 ++  AVR32_MNEMONIC_ANDNE,
 4.29841 ++  AVR32_MNEMONIC_ANDCC,
 4.29842 ++  AVR32_MNEMONIC_ANDCS,
 4.29843 ++  AVR32_MNEMONIC_ANDGE,
 4.29844 ++  AVR32_MNEMONIC_ANDLT,
 4.29845 ++  AVR32_MNEMONIC_ANDMI,
 4.29846 ++  AVR32_MNEMONIC_ANDPL,
 4.29847 ++  AVR32_MNEMONIC_ANDLS,
 4.29848 ++  AVR32_MNEMONIC_ANDGT,
 4.29849 ++  AVR32_MNEMONIC_ANDLE,
 4.29850 ++  AVR32_MNEMONIC_ANDHI,
 4.29851 ++  AVR32_MNEMONIC_ANDVS,
 4.29852 ++  AVR32_MNEMONIC_ANDVC,
 4.29853 ++  AVR32_MNEMONIC_ANDQS,
 4.29854 ++  AVR32_MNEMONIC_ANDAL,
 4.29855 ++  AVR32_MNEMONIC_ANDHS,
 4.29856 ++  AVR32_MNEMONIC_ANDLO,
 4.29857 ++  AVR32_MNEMONIC_OREQ,
 4.29858 ++  AVR32_MNEMONIC_ORNE,
 4.29859 ++  AVR32_MNEMONIC_ORCC,
 4.29860 ++  AVR32_MNEMONIC_ORCS,
 4.29861 ++  AVR32_MNEMONIC_ORGE,
 4.29862 ++  AVR32_MNEMONIC_ORLT,
 4.29863 ++  AVR32_MNEMONIC_ORMI,
 4.29864 ++  AVR32_MNEMONIC_ORPL,
 4.29865 ++  AVR32_MNEMONIC_ORLS,
 4.29866 ++  AVR32_MNEMONIC_ORGT,
 4.29867 ++  AVR32_MNEMONIC_ORLE,
 4.29868 ++  AVR32_MNEMONIC_ORHI,
 4.29869 ++  AVR32_MNEMONIC_ORVS,
 4.29870 ++  AVR32_MNEMONIC_ORVC,
 4.29871 ++  AVR32_MNEMONIC_ORQS,
 4.29872 ++  AVR32_MNEMONIC_ORAL,
 4.29873 ++  AVR32_MNEMONIC_ORHS,
 4.29874 ++  AVR32_MNEMONIC_ORLO,
 4.29875 ++  AVR32_MNEMONIC_EOREQ,
 4.29876 ++  AVR32_MNEMONIC_EORNE,
 4.29877 ++  AVR32_MNEMONIC_EORCC,
 4.29878 ++  AVR32_MNEMONIC_EORCS,
 4.29879 ++  AVR32_MNEMONIC_EORGE,
 4.29880 ++  AVR32_MNEMONIC_EORLT,
 4.29881 ++  AVR32_MNEMONIC_EORMI,
 4.29882 ++  AVR32_MNEMONIC_EORPL,
 4.29883 ++  AVR32_MNEMONIC_EORLS,
 4.29884 ++  AVR32_MNEMONIC_EORGT,
 4.29885 ++  AVR32_MNEMONIC_EORLE,
 4.29886 ++  AVR32_MNEMONIC_EORHI,
 4.29887 ++  AVR32_MNEMONIC_EORVS,
 4.29888 ++  AVR32_MNEMONIC_EORVC,
 4.29889 ++  AVR32_MNEMONIC_EORQS,
 4.29890 ++  AVR32_MNEMONIC_EORAL,
 4.29891 ++  AVR32_MNEMONIC_EORHS,
 4.29892 ++  AVR32_MNEMONIC_EORLO,
 4.29893 ++  AVR32_MNEMONIC_LD_WEQ,
 4.29894 ++  AVR32_MNEMONIC_LD_WNE,
 4.29895 ++  AVR32_MNEMONIC_LD_WCC,
 4.29896 ++  AVR32_MNEMONIC_LD_WCS,
 4.29897 ++  AVR32_MNEMONIC_LD_WGE,
 4.29898 ++  AVR32_MNEMONIC_LD_WLT,
 4.29899 ++  AVR32_MNEMONIC_LD_WMI,
 4.29900 ++  AVR32_MNEMONIC_LD_WPL,
 4.29901 ++  AVR32_MNEMONIC_LD_WLS,
 4.29902 ++  AVR32_MNEMONIC_LD_WGT,
 4.29903 ++  AVR32_MNEMONIC_LD_WLE,
 4.29904 ++  AVR32_MNEMONIC_LD_WHI,
 4.29905 ++  AVR32_MNEMONIC_LD_WVS,
 4.29906 ++  AVR32_MNEMONIC_LD_WVC,
 4.29907 ++  AVR32_MNEMONIC_LD_WQS,
 4.29908 ++  AVR32_MNEMONIC_LD_WAL,
 4.29909 ++  AVR32_MNEMONIC_LD_WHS,
 4.29910 ++  AVR32_MNEMONIC_LD_WLO,
 4.29911 ++  AVR32_MNEMONIC_LD_SHEQ,
 4.29912 ++  AVR32_MNEMONIC_LD_SHNE,
 4.29913 ++  AVR32_MNEMONIC_LD_SHCC,
 4.29914 ++  AVR32_MNEMONIC_LD_SHCS,
 4.29915 ++  AVR32_MNEMONIC_LD_SHGE,
 4.29916 ++  AVR32_MNEMONIC_LD_SHLT,
 4.29917 ++  AVR32_MNEMONIC_LD_SHMI,
 4.29918 ++  AVR32_MNEMONIC_LD_SHPL,
 4.29919 ++  AVR32_MNEMONIC_LD_SHLS,
 4.29920 ++  AVR32_MNEMONIC_LD_SHGT,
 4.29921 ++  AVR32_MNEMONIC_LD_SHLE,
 4.29922 ++  AVR32_MNEMONIC_LD_SHHI,
 4.29923 ++  AVR32_MNEMONIC_LD_SHVS,
 4.29924 ++  AVR32_MNEMONIC_LD_SHVC,
 4.29925 ++  AVR32_MNEMONIC_LD_SHQS,
 4.29926 ++  AVR32_MNEMONIC_LD_SHAL,
 4.29927 ++  AVR32_MNEMONIC_LD_SHHS,
 4.29928 ++  AVR32_MNEMONIC_LD_SHLO,
 4.29929 ++  AVR32_MNEMONIC_LD_UHEQ,
 4.29930 ++  AVR32_MNEMONIC_LD_UHNE,
 4.29931 ++  AVR32_MNEMONIC_LD_UHCC,
 4.29932 ++  AVR32_MNEMONIC_LD_UHCS,
 4.29933 ++  AVR32_MNEMONIC_LD_UHGE,
 4.29934 ++  AVR32_MNEMONIC_LD_UHLT,
 4.29935 ++  AVR32_MNEMONIC_LD_UHMI,
 4.29936 ++  AVR32_MNEMONIC_LD_UHPL,
 4.29937 ++  AVR32_MNEMONIC_LD_UHLS,
 4.29938 ++  AVR32_MNEMONIC_LD_UHGT,
 4.29939 ++  AVR32_MNEMONIC_LD_UHLE,
 4.29940 ++  AVR32_MNEMONIC_LD_UHHI,
 4.29941 ++  AVR32_MNEMONIC_LD_UHVS,
 4.29942 ++  AVR32_MNEMONIC_LD_UHVC,
 4.29943 ++  AVR32_MNEMONIC_LD_UHQS,
 4.29944 ++  AVR32_MNEMONIC_LD_UHAL,
 4.29945 ++  AVR32_MNEMONIC_LD_UHHS,
 4.29946 ++  AVR32_MNEMONIC_LD_UHLO,
 4.29947 ++  AVR32_MNEMONIC_LD_SBEQ,
 4.29948 ++  AVR32_MNEMONIC_LD_SBNE,
 4.29949 ++  AVR32_MNEMONIC_LD_SBCC,
 4.29950 ++  AVR32_MNEMONIC_LD_SBCS,
 4.29951 ++  AVR32_MNEMONIC_LD_SBGE,
 4.29952 ++  AVR32_MNEMONIC_LD_SBLT,
 4.29953 ++  AVR32_MNEMONIC_LD_SBMI,
 4.29954 ++  AVR32_MNEMONIC_LD_SBPL,
 4.29955 ++  AVR32_MNEMONIC_LD_SBLS,
 4.29956 ++  AVR32_MNEMONIC_LD_SBGT,
 4.29957 ++  AVR32_MNEMONIC_LD_SBLE,
 4.29958 ++  AVR32_MNEMONIC_LD_SBHI,
 4.29959 ++  AVR32_MNEMONIC_LD_SBVS,
 4.29960 ++  AVR32_MNEMONIC_LD_SBVC,
 4.29961 ++  AVR32_MNEMONIC_LD_SBQS,
 4.29962 ++  AVR32_MNEMONIC_LD_SBAL,
 4.29963 ++  AVR32_MNEMONIC_LD_SBHS,
 4.29964 ++  AVR32_MNEMONIC_LD_SBLO,
 4.29965 ++  AVR32_MNEMONIC_LD_UBEQ,
 4.29966 ++  AVR32_MNEMONIC_LD_UBNE,
 4.29967 ++  AVR32_MNEMONIC_LD_UBCC,
 4.29968 ++  AVR32_MNEMONIC_LD_UBCS,
 4.29969 ++  AVR32_MNEMONIC_LD_UBGE,
 4.29970 ++  AVR32_MNEMONIC_LD_UBLT,
 4.29971 ++  AVR32_MNEMONIC_LD_UBMI,
 4.29972 ++  AVR32_MNEMONIC_LD_UBPL,
 4.29973 ++  AVR32_MNEMONIC_LD_UBLS,
 4.29974 ++  AVR32_MNEMONIC_LD_UBGT,
 4.29975 ++  AVR32_MNEMONIC_LD_UBLE,
 4.29976 ++  AVR32_MNEMONIC_LD_UBHI,
 4.29977 ++  AVR32_MNEMONIC_LD_UBVS,
 4.29978 ++  AVR32_MNEMONIC_LD_UBVC,
 4.29979 ++  AVR32_MNEMONIC_LD_UBQS,
 4.29980 ++  AVR32_MNEMONIC_LD_UBAL,
 4.29981 ++  AVR32_MNEMONIC_LD_UBHS,
 4.29982 ++  AVR32_MNEMONIC_LD_UBLO,
 4.29983 ++  AVR32_MNEMONIC_ST_WEQ,
 4.29984 ++  AVR32_MNEMONIC_ST_WNE,
 4.29985 ++  AVR32_MNEMONIC_ST_WCC,
 4.29986 ++  AVR32_MNEMONIC_ST_WCS,
 4.29987 ++  AVR32_MNEMONIC_ST_WGE,
 4.29988 ++  AVR32_MNEMONIC_ST_WLT,
 4.29989 ++  AVR32_MNEMONIC_ST_WMI,
 4.29990 ++  AVR32_MNEMONIC_ST_WPL,
 4.29991 ++  AVR32_MNEMONIC_ST_WLS,
 4.29992 ++  AVR32_MNEMONIC_ST_WGT,
 4.29993 ++  AVR32_MNEMONIC_ST_WLE,
 4.29994 ++  AVR32_MNEMONIC_ST_WHI,
 4.29995 ++  AVR32_MNEMONIC_ST_WVS,
 4.29996 ++  AVR32_MNEMONIC_ST_WVC,
 4.29997 ++  AVR32_MNEMONIC_ST_WQS,
 4.29998 ++  AVR32_MNEMONIC_ST_WAL,
 4.29999 ++  AVR32_MNEMONIC_ST_WHS,
 4.30000 ++  AVR32_MNEMONIC_ST_WLO,
 4.30001 ++  AVR32_MNEMONIC_ST_HEQ,
 4.30002 ++  AVR32_MNEMONIC_ST_HNE,
 4.30003 ++  AVR32_MNEMONIC_ST_HCC,
 4.30004 ++  AVR32_MNEMONIC_ST_HCS,
 4.30005 ++  AVR32_MNEMONIC_ST_HGE,
 4.30006 ++  AVR32_MNEMONIC_ST_HLT,
 4.30007 ++  AVR32_MNEMONIC_ST_HMI,
 4.30008 ++  AVR32_MNEMONIC_ST_HPL,
 4.30009 ++  AVR32_MNEMONIC_ST_HLS,
 4.30010 ++  AVR32_MNEMONIC_ST_HGT,
 4.30011 ++  AVR32_MNEMONIC_ST_HLE,
 4.30012 ++  AVR32_MNEMONIC_ST_HHI,
 4.30013 ++  AVR32_MNEMONIC_ST_HVS,
 4.30014 ++  AVR32_MNEMONIC_ST_HVC,
 4.30015 ++  AVR32_MNEMONIC_ST_HQS,
 4.30016 ++  AVR32_MNEMONIC_ST_HAL,
 4.30017 ++  AVR32_MNEMONIC_ST_HHS,
 4.30018 ++  AVR32_MNEMONIC_ST_HLO,
 4.30019 ++  AVR32_MNEMONIC_ST_BEQ,
 4.30020 ++  AVR32_MNEMONIC_ST_BNE,
 4.30021 ++  AVR32_MNEMONIC_ST_BCC,
 4.30022 ++  AVR32_MNEMONIC_ST_BCS,
 4.30023 ++  AVR32_MNEMONIC_ST_BGE,
 4.30024 ++  AVR32_MNEMONIC_ST_BLT,
 4.30025 ++  AVR32_MNEMONIC_ST_BMI,
 4.30026 ++  AVR32_MNEMONIC_ST_BPL,
 4.30027 ++  AVR32_MNEMONIC_ST_BLS,
 4.30028 ++  AVR32_MNEMONIC_ST_BGT,
 4.30029 ++  AVR32_MNEMONIC_ST_BLE,
 4.30030 ++  AVR32_MNEMONIC_ST_BHI,
 4.30031 ++  AVR32_MNEMONIC_ST_BVS,
 4.30032 ++  AVR32_MNEMONIC_ST_BVC,
 4.30033 ++  AVR32_MNEMONIC_ST_BQS,
 4.30034 ++  AVR32_MNEMONIC_ST_BAL,
 4.30035 ++  AVR32_MNEMONIC_ST_BHS,
 4.30036 ++  AVR32_MNEMONIC_ST_BLO,
 4.30037 ++  AVR32_MNEMONIC_MOVH,
 4.30038 ++  AVR32_MNEMONIC__END_
 4.30039 ++};
 4.30040 ++#define AVR32_NR_MNEMONICS AVR32_MNEMONIC__END_
 4.30041 ++
 4.30042 ++enum avr32_syntax_parser
 4.30043 ++  {
 4.30044 ++    AVR32_PARSER_NORMAL,
 4.30045 ++    AVR32_PARSER_ALIAS,
 4.30046 ++    AVR32_PARSER_LDA,
 4.30047 ++    AVR32_PARSER_CALL,
 4.30048 ++    AVR32_PARSER__END_
 4.30049 ++  };
 4.30050 ++#define AVR32_NR_PARSERS AVR32_PARSER__END_
 4.30051 +--- a/opcodes/configure.in
 4.30052 ++++ b/opcodes/configure.in
 4.30053 +@@ -158,6 +158,7 @@ if test x${all_targets} = xfalse ; then
 4.30054 + 	bfd_arc_arch)		ta="$ta arc-dis.lo arc-opc.lo arc-ext.lo" ;;
 4.30055 + 	bfd_arm_arch)		ta="$ta arm-dis.lo" ;;
 4.30056 + 	bfd_avr_arch)		ta="$ta avr-dis.lo" ;;
 4.30057 ++	bfd_avr32_arch)		ta="$ta avr32-asm.lo avr32-dis.lo avr32-opc.lo" ;;
 4.30058 + 	bfd_bfin_arch)		ta="$ta bfin-dis.lo" ;;
 4.30059 + 	bfd_cr16_arch)    	ta="$ta cr16-dis.lo cr16-opc.lo" ;;
 4.30060 + 	bfd_cris_arch)		ta="$ta cris-dis.lo cris-opc.lo cgen-bitset.lo" ;;
 4.30061 +@@ -216,7 +217,7 @@ if test x${all_targets} = xfalse ; then
 4.30062 + 				ta="$ta sh64-dis.lo sh64-opc.lo"
 4.30063 + 				archdefs="$archdefs -DINCLUDE_SHMEDIA"
 4.30064 + 				break;;
 4.30065 +-	    esac;
 4.30066 ++	    esac
 4.30067 + 	  done
 4.30068 + 				ta="$ta sh-dis.lo cgen-bitset.lo" ;;
 4.30069 + 	bfd_sparc_arch)		ta="$ta sparc-dis.lo sparc-opc.lo" ;;
 4.30070 +--- a/opcodes/disassemble.c
 4.30071 ++++ b/opcodes/disassemble.c
 4.30072 +@@ -27,6 +27,7 @@
 4.30073 + #define ARCH_arc
 4.30074 + #define ARCH_arm
 4.30075 + #define ARCH_avr
 4.30076 ++#define ARCH_avr32
 4.30077 + #define ARCH_bfin
 4.30078 + #define ARCH_cr16
 4.30079 + #define ARCH_cris
 4.30080 +@@ -128,6 +129,11 @@ disassembler (abfd)
 4.30081 +       disassemble = print_insn_avr;
 4.30082 +       break;
 4.30083 + #endif
 4.30084 ++#ifdef ARCH_avr32
 4.30085 ++    case bfd_arch_avr32:
 4.30086 ++      disassemble = print_insn_avr32;
 4.30087 ++      break;
 4.30088 ++#endif
 4.30089 + #ifdef ARCH_bfin
 4.30090 +     case bfd_arch_bfin:
 4.30091 +       disassemble = print_insn_bfin;
 4.30092 +@@ -346,9 +352,9 @@ disassembler (abfd)
 4.30093 + #ifdef ARCH_score
 4.30094 +     case bfd_arch_score:
 4.30095 +       if (bfd_big_endian (abfd))
 4.30096 +-        disassemble = print_insn_big_score;      
 4.30097 ++        disassemble = print_insn_big_score;
 4.30098 +       else
 4.30099 +-        disassemble = print_insn_little_score; 
 4.30100 ++        disassemble = print_insn_little_score;
 4.30101 +      break;
 4.30102 + #endif
 4.30103 + #ifdef ARCH_sh
 4.30104 +@@ -466,6 +472,9 @@ disassembler_usage (stream)
 4.30105 + #ifdef ARCH_i386
 4.30106 +   print_i386_disassembler_options (stream);
 4.30107 + #endif
 4.30108 ++#ifdef ARCH_avr32
 4.30109 ++  print_avr32_disassembler_options (stream);
 4.30110 ++#endif
 4.30111 + 
 4.30112 +   return;
 4.30113 + }
 4.30114 +--- a/opcodes/Makefile.am
 4.30115 ++++ b/opcodes/Makefile.am
 4.30116 +@@ -30,6 +30,7 @@ LIBIBERTY = ../libiberty/libiberty.a
 4.30117 + # Header files.
 4.30118 + HFILES = \
 4.30119 + 	cgen-ops.h cgen-types.h \
 4.30120 ++	avr32-asm.h avr32-opc.h \
 4.30121 + 	fr30-desc.h fr30-opc.h \
 4.30122 + 	frv-desc.h frv-opc.h \
 4.30123 + 	h8500-opc.h \
 4.30124 +@@ -63,6 +64,9 @@ CFILES = \
 4.30125 + 	arc-ext.c \
 4.30126 + 	arm-dis.c \
 4.30127 + 	avr-dis.c \
 4.30128 ++	avr32-asm.c \
 4.30129 ++	avr32-dis.c \
 4.30130 ++	avr32-opc.c \
 4.30131 + 	bfin-dis.c \
 4.30132 + 	cgen-asm.c \
 4.30133 + 	cgen-bitset.c \
 4.30134 +@@ -217,6 +221,9 @@ ALL_MACHINES = \
 4.30135 + 	arc-ext.lo \
 4.30136 + 	arm-dis.lo \
 4.30137 + 	avr-dis.lo \
 4.30138 ++	avr32-asm.lo \
 4.30139 ++	avr32-dis.lo \
 4.30140 ++	avr32-opc.lo \
 4.30141 + 	bfin-dis.lo \
 4.30142 + 	cgen-asm.lo \
 4.30143 + 	cgen-bitset.lo \
 4.30144 +@@ -674,6 +681,15 @@ avr-dis.lo: avr-dis.c sysdep.h config.h 
 4.30145 +   $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
 4.30146 +   opintl.h $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h \
 4.30147 +   $(INCDIR)/opcode/avr.h
 4.30148 ++avr32-asm.lo: avr32-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \
 4.30149 ++  $(BFD_H) $(INCDIR)/symcat.h avr32-opc.h opintl.h \
 4.30150 ++  $(INCDIR)/xregex.h $(INCDIR)/xregex2.h \
 4.30151 ++  $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
 4.30152 ++avr32-dis.lo: avr32-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
 4.30153 ++  $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
 4.30154 ++  avr32-opc.h opintl.h
 4.30155 ++avr32-opc.lo: avr32-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \
 4.30156 ++  $(BFD_H) $(INCDIR)/symcat.h avr32-opc.h $(INCDIR)/libiberty.h
 4.30157 + bfin-dis.lo: bfin-dis.c $(INCDIR)/opcode/bfin.h $(INCDIR)/dis-asm.h \
 4.30158 +   $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h
 4.30159 + cgen-asm.lo: cgen-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \
 4.30160 +--- a/bfd/bfd-in2.h
 4.30161 ++++ b/bfd/bfd-in2.h
 4.30162 +@@ -2017,6 +2017,11 @@ enum bfd_architecture
 4.30163 + #define bfd_mach_avr4          4
 4.30164 + #define bfd_mach_avr5          5
 4.30165 + #define bfd_mach_avr6          6
 4.30166 ++  bfd_arch_avr32,     /* Atmel AVR32 */
 4.30167 ++#define bfd_mach_avr32_ap      7000
 4.30168 ++#define bfd_mach_avr32_uc      3000
 4.30169 ++#define bfd_mach_avr32_ucr1    3001
 4.30170 ++#define bfd_mach_avr32_ucr2    3002
 4.30171 +   bfd_arch_bfin,        /* ADI Blackfin */
 4.30172 + #define bfd_mach_bfin          1
 4.30173 +   bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
 4.30174 +@@ -3758,6 +3763,88 @@ instructions  */
 4.30175 + instructions  */
 4.30176 +   BFD_RELOC_AVR_6_ADIW,
 4.30177 + 
 4.30178 ++/* Difference between two labels: L2 - L1. The value of L1 is encoded
 4.30179 ++as sym + addend, while the initial difference after assembly is
 4.30180 ++inserted into the object file by the assembler.  */
 4.30181 ++  BFD_RELOC_AVR32_DIFF32,
 4.30182 ++  BFD_RELOC_AVR32_DIFF16,
 4.30183 ++  BFD_RELOC_AVR32_DIFF8,
 4.30184 ++
 4.30185 ++/* Reference to a symbol through the Global Offset Table. The linker
 4.30186 ++will allocate an entry for symbol in the GOT and insert the offset
 4.30187 ++of this entry as the relocation value.  */
 4.30188 ++  BFD_RELOC_AVR32_GOT32,
 4.30189 ++  BFD_RELOC_AVR32_GOT16,
 4.30190 ++  BFD_RELOC_AVR32_GOT8,
 4.30191 ++
 4.30192 ++/* Normal (non-pc-relative) code relocations. Alignment and signedness
 4.30193 ++is indicated by the suffixes. S means signed, U means unsigned. W
 4.30194 ++means word-aligned, H means halfword-aligned, neither means
 4.30195 ++byte-aligned (no alignment.) SUB5 is the same relocation as 16S.  */
 4.30196 ++  BFD_RELOC_AVR32_21S,
 4.30197 ++  BFD_RELOC_AVR32_16U,
 4.30198 ++  BFD_RELOC_AVR32_16S,
 4.30199 ++  BFD_RELOC_AVR32_SUB5,
 4.30200 ++  BFD_RELOC_AVR32_8S_EXT,
 4.30201 ++  BFD_RELOC_AVR32_8S,
 4.30202 ++  BFD_RELOC_AVR32_15S,
 4.30203 ++
 4.30204 ++/* PC-relative relocations are signed if neither 'U' nor 'S' is
 4.30205 ++specified. However, we explicitly tack on a 'B' to indicate no
 4.30206 ++alignment, to avoid confusion with data relocs. All of these resolve
 4.30207 ++to sym + addend - offset, except the one with 'N' (negated) suffix.
 4.30208 ++This particular one resolves to offset - sym - addend.  */
 4.30209 ++  BFD_RELOC_AVR32_22H_PCREL,
 4.30210 ++  BFD_RELOC_AVR32_18W_PCREL,
 4.30211 ++  BFD_RELOC_AVR32_16B_PCREL,
 4.30212 ++  BFD_RELOC_AVR32_16N_PCREL,
 4.30213 ++  BFD_RELOC_AVR32_14UW_PCREL,
 4.30214 ++  BFD_RELOC_AVR32_11H_PCREL,
 4.30215 ++  BFD_RELOC_AVR32_10UW_PCREL,
 4.30216 ++  BFD_RELOC_AVR32_9H_PCREL,
 4.30217 ++  BFD_RELOC_AVR32_9UW_PCREL,
 4.30218 ++
 4.30219 ++/* Subtract the link-time address of the GOT from (symbol + addend)
 4.30220 ++and insert the result.  */
 4.30221 ++  BFD_RELOC_AVR32_GOTPC,
 4.30222 ++
 4.30223 ++/* Reference to a symbol through the GOT. The linker will allocate an
 4.30224 ++entry for symbol in the GOT and insert the offset of this entry as
 4.30225 ++the relocation value. addend must be zero. As usual, 'S' means
 4.30226 ++signed, 'W' means word-aligned, etc.  */
 4.30227 ++  BFD_RELOC_AVR32_GOTCALL,
 4.30228 ++  BFD_RELOC_AVR32_LDA_GOT,
 4.30229 ++  BFD_RELOC_AVR32_GOT21S,
 4.30230 ++  BFD_RELOC_AVR32_GOT18SW,
 4.30231 ++  BFD_RELOC_AVR32_GOT16S,
 4.30232 ++
 4.30233 ++/* 32-bit constant pool entry. I don't think 8- and 16-bit entries make
 4.30234 ++a whole lot of sense.  */
 4.30235 ++  BFD_RELOC_AVR32_32_CPENT,
 4.30236 ++
 4.30237 ++/* Constant pool references. Some of these relocations are signed,
 4.30238 ++others are unsigned. It doesn't really matter, since the constant
 4.30239 ++pool always comes after the code that references it.  */
 4.30240 ++  BFD_RELOC_AVR32_CPCALL,
 4.30241 ++  BFD_RELOC_AVR32_16_CP,
 4.30242 ++  BFD_RELOC_AVR32_9W_CP,
 4.30243 ++
 4.30244 ++/* sym must be the absolute symbol. The addend specifies the alignment
 4.30245 ++order, e.g. if addend is 2, the linker must add padding so that the
 4.30246 ++next address is aligned to a 4-byte boundary.  */
 4.30247 ++  BFD_RELOC_AVR32_ALIGN,
 4.30248 ++
 4.30249 ++/* Code relocations that will never make it to the output file.  */
 4.30250 ++  BFD_RELOC_AVR32_14UW,
 4.30251 ++  BFD_RELOC_AVR32_10UW,
 4.30252 ++  BFD_RELOC_AVR32_10SW,
 4.30253 ++  BFD_RELOC_AVR32_STHH_W,
 4.30254 ++  BFD_RELOC_AVR32_7UW,
 4.30255 ++  BFD_RELOC_AVR32_6S,
 4.30256 ++  BFD_RELOC_AVR32_6UW,
 4.30257 ++  BFD_RELOC_AVR32_4UH,
 4.30258 ++  BFD_RELOC_AVR32_3U,
 4.30259 ++
 4.30260 + /* Direct 12 bit.  */
 4.30261 +   BFD_RELOC_390_12,
 4.30262 + 
 4.30263 +--- /dev/null
 4.30264 ++++ b/bfd/bfd-in3.h
 4.30265 +@@ -0,0 +1,5406 @@
 4.30266 ++/* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically 
 4.30267 ++   generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c", 
 4.30268 ++   "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c", 
 4.30269 ++   "syms.c", "bfd.c", "archive.c", "corefile.c", "targets.c", "format.c", 
 4.30270 ++   "linker.c" and "simple.c".
 4.30271 ++   Run "make headers" in your build bfd/ to regenerate.  */
 4.30272 ++
 4.30273 ++/* Main header file for the bfd library -- portable access to object files.
 4.30274 ++
 4.30275 ++   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
 4.30276 ++   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 4.30277 ++   Free Software Foundation, Inc.
 4.30278 ++
 4.30279 ++   Contributed by Cygnus Support.
 4.30280 ++
 4.30281 ++   This file is part of BFD, the Binary File Descriptor library.
 4.30282 ++
 4.30283 ++   This program is free software; you can redistribute it and/or modify
 4.30284 ++   it under the terms of the GNU General Public License as published by
 4.30285 ++   the Free Software Foundation; either version 3 of the License, or
 4.30286 ++   (at your option) any later version.
 4.30287 ++
 4.30288 ++   This program is distributed in the hope that it will be useful,
 4.30289 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
 4.30290 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 4.30291 ++   GNU General Public License for more details.
 4.30292 ++
 4.30293 ++   You should have received a copy of the GNU General Public License
 4.30294 ++   along with this program; if not, write to the Free Software
 4.30295 ++   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 4.30296 ++
 4.30297 ++#ifndef __BFD_H_SEEN__
 4.30298 ++#define __BFD_H_SEEN__
 4.30299 ++
 4.30300 ++#ifdef __cplusplus
 4.30301 ++extern "C" {
 4.30302 ++#endif
 4.30303 ++
 4.30304 ++#include "ansidecl.h"
 4.30305 ++#include "symcat.h"
 4.30306 ++#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
 4.30307 ++#ifndef SABER
 4.30308 ++/* This hack is to avoid a problem with some strict ANSI C preprocessors.
 4.30309 ++   The problem is, "32_" is not a valid preprocessing token, and we don't
 4.30310 ++   want extra underscores (e.g., "nlm_32_").  The XCONCAT2 macro will
 4.30311 ++   cause the inner CONCAT2 macros to be evaluated first, producing
 4.30312 ++   still-valid pp-tokens.  Then the final concatenation can be done.  */
 4.30313 ++#undef CONCAT4
 4.30314 ++#define CONCAT4(a,b,c,d) XCONCAT2(CONCAT2(a,b),CONCAT2(c,d))
 4.30315 ++#endif
 4.30316 ++#endif
 4.30317 ++
 4.30318 ++/* This is a utility macro to handle the situation where the code
 4.30319 ++   wants to place a constant string into the code, followed by a
 4.30320 ++   comma and then the length of the string.  Doing this by hand
 4.30321 ++   is error prone, so using this macro is safer.  The macro will
 4.30322 ++   also safely handle the case where a NULL is passed as the arg.  */
 4.30323 ++#define STRING_COMMA_LEN(STR) (STR), ((STR) ? sizeof (STR) - 1 : 0)
 4.30324 ++/* Unfortunately it is not possible to use the STRING_COMMA_LEN macro
 4.30325 ++   to create the arguments to another macro, since the preprocessor
 4.30326 ++   will mis-count the number of arguments to the outer macro (by not
 4.30327 ++   evaluating STRING_COMMA_LEN and so missing the comma).  This is a
 4.30328 ++   problem for example when trying to use STRING_COMMA_LEN to build
 4.30329 ++   the arguments to the strncmp() macro.  Hence this alternative
 4.30330 ++   definition of strncmp is provided here.
 4.30331 ++   
 4.30332 ++   Note - these macros do NOT work if STR2 is not a constant string.  */
 4.30333 ++#define CONST_STRNEQ(STR1,STR2) (strncmp ((STR1), (STR2), sizeof (STR2) - 1) == 0)
 4.30334 ++  /* strcpy() can have a similar problem, but since we know we are
 4.30335 ++     copying a constant string, we can use memcpy which will be faster
 4.30336 ++     since there is no need to check for a NUL byte inside STR.  We
 4.30337 ++     can also save time if we do not need to copy the terminating NUL.  */
 4.30338 ++#define LITMEMCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2) - 1)
 4.30339 ++#define LITSTRCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2))
 4.30340 ++
 4.30341 ++
 4.30342 ++/* The word size used by BFD on the host.  This may be 64 with a 32
 4.30343 ++   bit target if the host is 64 bit, or if other 64 bit targets have
 4.30344 ++   been selected with --enable-targets, or if --enable-64-bit-bfd.  */
 4.30345 ++#define BFD_ARCH_SIZE 32
 4.30346 ++
 4.30347 ++/* The word size of the default bfd target.  */
 4.30348 ++#define BFD_DEFAULT_TARGET_SIZE 32
 4.30349 ++
 4.30350 ++#define BFD_HOST_64BIT_LONG 0
 4.30351 ++#define BFD_HOST_64BIT_LONG_LONG 0
 4.30352 ++#define BFD_HOST_LONG_LONG 1
 4.30353 ++#if 1
 4.30354 ++#define BFD_HOST_64_BIT long long
 4.30355 ++#define BFD_HOST_U_64_BIT unsigned long long
 4.30356 ++typedef BFD_HOST_64_BIT bfd_int64_t;
 4.30357 ++typedef BFD_HOST_U_64_BIT bfd_uint64_t;
 4.30358 ++#endif
 4.30359 ++
 4.30360 ++#if BFD_ARCH_SIZE >= 64
 4.30361 ++#define BFD64
 4.30362 ++#endif
 4.30363 ++
 4.30364 ++#ifndef INLINE
 4.30365 ++#if __GNUC__ >= 2
 4.30366 ++#define INLINE __inline__
 4.30367 ++#else
 4.30368 ++#define INLINE
 4.30369 ++#endif
 4.30370 ++#endif
 4.30371 ++
 4.30372 ++/* Declaring a type wide enough to hold a host long and a host pointer.  */
 4.30373 ++#define BFD_HOSTPTR_T	unsigned long
 4.30374 ++typedef BFD_HOSTPTR_T bfd_hostptr_t;
 4.30375 ++
 4.30376 ++/* Forward declaration.  */
 4.30377 ++typedef struct bfd bfd;
 4.30378 ++
 4.30379 ++/* Boolean type used in bfd.  Too many systems define their own
 4.30380 ++   versions of "boolean" for us to safely typedef a "boolean" of
 4.30381 ++   our own.  Using an enum for "bfd_boolean" has its own set of
 4.30382 ++   problems, with strange looking casts required to avoid warnings
 4.30383 ++   on some older compilers.  Thus we just use an int.
 4.30384 ++
 4.30385 ++   General rule: Functions which are bfd_boolean return TRUE on
 4.30386 ++   success and FALSE on failure (unless they're a predicate).  */
 4.30387 ++
 4.30388 ++typedef int bfd_boolean;
 4.30389 ++#undef FALSE
 4.30390 ++#undef TRUE
 4.30391 ++#define FALSE 0
 4.30392 ++#define TRUE 1
 4.30393 ++
 4.30394 ++#ifdef BFD64
 4.30395 ++
 4.30396 ++#ifndef BFD_HOST_64_BIT
 4.30397 ++ #error No 64 bit integer type available
 4.30398 ++#endif /* ! defined (BFD_HOST_64_BIT) */
 4.30399 ++
 4.30400 ++typedef BFD_HOST_U_64_BIT bfd_vma;
 4.30401 ++typedef BFD_HOST_64_BIT bfd_signed_vma;
 4.30402 ++typedef BFD_HOST_U_64_BIT bfd_size_type;
 4.30403 ++typedef BFD_HOST_U_64_BIT symvalue;
 4.30404 ++
 4.30405 ++#ifndef fprintf_vma
 4.30406 ++#if BFD_HOST_64BIT_LONG
 4.30407 ++#define sprintf_vma(s,x) sprintf (s, "%016lx", x)
 4.30408 ++#define fprintf_vma(f,x) fprintf (f, "%016lx", x)
 4.30409 ++#elif BFD_HOST_64BIT_LONG_LONG
 4.30410 ++#define sprintf_vma(s,x) sprintf (s, "%016llx", x)
 4.30411 ++#define fprintf_vma(f,x) fprintf (f, "%016llx", x)
 4.30412 ++#else
 4.30413 ++#define _bfd_int64_low(x) ((unsigned long) (((x) & 0xffffffff)))
 4.30414 ++#define _bfd_int64_high(x) ((unsigned long) (((x) >> 32) & 0xffffffff))
 4.30415 ++#define fprintf_vma(s,x) \
 4.30416 ++  fprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
 4.30417 ++#define sprintf_vma(s,x) \
 4.30418 ++  sprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
 4.30419 ++#endif
 4.30420 ++#endif
 4.30421 ++
 4.30422 ++#else /* not BFD64  */
 4.30423 ++
 4.30424 ++/* Represent a target address.  Also used as a generic unsigned type
 4.30425 ++   which is guaranteed to be big enough to hold any arithmetic types
 4.30426 ++   we need to deal with.  */
 4.30427 ++typedef unsigned long bfd_vma;
 4.30428 ++
 4.30429 ++/* A generic signed type which is guaranteed to be big enough to hold any
 4.30430 ++   arithmetic types we need to deal with.  Can be assumed to be compatible
 4.30431 ++   with bfd_vma in the same way that signed and unsigned ints are compatible
 4.30432 ++   (as parameters, in assignment, etc).  */
 4.30433 ++typedef long bfd_signed_vma;
 4.30434 ++
 4.30435 ++typedef unsigned long symvalue;
 4.30436 ++typedef unsigned long bfd_size_type;
 4.30437 ++
 4.30438 ++/* Print a bfd_vma x on stream s.  */
 4.30439 ++#define fprintf_vma(s,x) fprintf (s, "%08lx", x)
 4.30440 ++#define sprintf_vma(s,x) sprintf (s, "%08lx", x)
 4.30441 ++
 4.30442 ++#endif /* not BFD64  */
 4.30443 ++
 4.30444 ++#define HALF_BFD_SIZE_TYPE \
 4.30445 ++  (((bfd_size_type) 1) << (8 * sizeof (bfd_size_type) / 2))
 4.30446 ++
 4.30447 ++#ifndef BFD_HOST_64_BIT
 4.30448 ++/* Fall back on a 32 bit type.  The idea is to make these types always
 4.30449 ++   available for function return types, but in the case that
 4.30450 ++   BFD_HOST_64_BIT is undefined such a function should abort or
 4.30451 ++   otherwise signal an error.  */
 4.30452 ++typedef bfd_signed_vma bfd_int64_t;
 4.30453 ++typedef bfd_vma bfd_uint64_t;
 4.30454 ++#endif
 4.30455 ++
 4.30456 ++/* An offset into a file.  BFD always uses the largest possible offset
 4.30457 ++   based on the build time availability of fseek, fseeko, or fseeko64.  */
 4.30458 ++typedef BFD_HOST_64_BIT file_ptr;
 4.30459 ++typedef unsigned BFD_HOST_64_BIT ufile_ptr;
 4.30460 ++
 4.30461 ++extern void bfd_sprintf_vma (bfd *, char *, bfd_vma);
 4.30462 ++extern void bfd_fprintf_vma (bfd *, void *, bfd_vma);
 4.30463 ++
 4.30464 ++#define printf_vma(x) fprintf_vma(stdout,x)
 4.30465 ++#define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x)
 4.30466 ++
 4.30467 ++typedef unsigned int flagword;	/* 32 bits of flags */
 4.30468 ++typedef unsigned char bfd_byte;
 4.30469 ++
 4.30470 ++/* File formats.  */
 4.30471 ++
 4.30472 ++typedef enum bfd_format
 4.30473 ++{
 4.30474 ++  bfd_unknown = 0,	/* File format is unknown.  */
 4.30475 ++  bfd_object,		/* Linker/assembler/compiler output.  */
 4.30476 ++  bfd_archive,		/* Object archive file.  */
 4.30477 ++  bfd_core,		/* Core dump.  */
 4.30478 ++  bfd_type_end		/* Marks the end; don't use it!  */
 4.30479 ++}
 4.30480 ++bfd_format;
 4.30481 ++
 4.30482 ++/* Values that may appear in the flags field of a BFD.  These also
 4.30483 ++   appear in the object_flags field of the bfd_target structure, where
 4.30484 ++   they indicate the set of flags used by that backend (not all flags
 4.30485 ++   are meaningful for all object file formats) (FIXME: at the moment,
 4.30486 ++   the object_flags values have mostly just been copied from backend
 4.30487 ++   to another, and are not necessarily correct).  */
 4.30488 ++
 4.30489 ++/* No flags.  */
 4.30490 ++#define BFD_NO_FLAGS   	0x00
 4.30491 ++
 4.30492 ++/* BFD contains relocation entries.  */
 4.30493 ++#define HAS_RELOC   	0x01
 4.30494 ++
 4.30495 ++/* BFD is directly executable.  */
 4.30496 ++#define EXEC_P      	0x02
 4.30497 ++
 4.30498 ++/* BFD has line number information (basically used for F_LNNO in a
 4.30499 ++   COFF header).  */
 4.30500 ++#define HAS_LINENO  	0x04
 4.30501 ++
 4.30502 ++/* BFD has debugging information.  */
 4.30503 ++#define HAS_DEBUG   	0x08
 4.30504 ++
 4.30505 ++/* BFD has symbols.  */
 4.30506 ++#define HAS_SYMS    	0x10
 4.30507 ++
 4.30508 ++/* BFD has local symbols (basically used for F_LSYMS in a COFF
 4.30509 ++   header).  */
 4.30510 ++#define HAS_LOCALS  	0x20
 4.30511 ++
 4.30512 ++/* BFD is a dynamic object.  */
 4.30513 ++#define DYNAMIC     	0x40
 4.30514 ++
 4.30515 ++/* Text section is write protected (if D_PAGED is not set, this is
 4.30516 ++   like an a.out NMAGIC file) (the linker sets this by default, but
 4.30517 ++   clears it for -r or -N).  */
 4.30518 ++#define WP_TEXT     	0x80
 4.30519 ++
 4.30520 ++/* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
 4.30521 ++   linker sets this by default, but clears it for -r or -n or -N).  */
 4.30522 ++#define D_PAGED     	0x100
 4.30523 ++
 4.30524 ++/* BFD is relaxable (this means that bfd_relax_section may be able to
 4.30525 ++   do something) (sometimes bfd_relax_section can do something even if
 4.30526 ++   this is not set).  */
 4.30527 ++#define BFD_IS_RELAXABLE 0x200
 4.30528 ++
 4.30529 ++/* This may be set before writing out a BFD to request using a
 4.30530 ++   traditional format.  For example, this is used to request that when
 4.30531 ++   writing out an a.out object the symbols not be hashed to eliminate
 4.30532 ++   duplicates.  */
 4.30533 ++#define BFD_TRADITIONAL_FORMAT 0x400
 4.30534 ++
 4.30535 ++/* This flag indicates that the BFD contents are actually cached in
 4.30536 ++   memory.  If this is set, iostream points to a bfd_in_memory struct.  */
 4.30537 ++#define BFD_IN_MEMORY 0x800
 4.30538 ++
 4.30539 ++/* The sections in this BFD specify a memory page.  */
 4.30540 ++#define HAS_LOAD_PAGE 0x1000
 4.30541 ++
 4.30542 ++/* This BFD has been created by the linker and doesn't correspond
 4.30543 ++   to any input file.  */
 4.30544 ++#define BFD_LINKER_CREATED 0x2000
 4.30545 ++
 4.30546 ++/* Symbols and relocation.  */
 4.30547 ++
 4.30548 ++/* A count of carsyms (canonical archive symbols).  */
 4.30549 ++typedef unsigned long symindex;
 4.30550 ++
 4.30551 ++/* How to perform a relocation.  */
 4.30552 ++typedef const struct reloc_howto_struct reloc_howto_type;
 4.30553 ++
 4.30554 ++#define BFD_NO_MORE_SYMBOLS ((symindex) ~0)
 4.30555 ++
 4.30556 ++/* General purpose part of a symbol X;
 4.30557 ++   target specific parts are in libcoff.h, libaout.h, etc.  */
 4.30558 ++
 4.30559 ++#define bfd_get_section(x) ((x)->section)
 4.30560 ++#define bfd_get_output_section(x) ((x)->section->output_section)
 4.30561 ++#define bfd_set_section(x,y) ((x)->section) = (y)
 4.30562 ++#define bfd_asymbol_base(x) ((x)->section->vma)
 4.30563 ++#define bfd_asymbol_value(x) (bfd_asymbol_base(x) + (x)->value)
 4.30564 ++#define bfd_asymbol_name(x) ((x)->name)
 4.30565 ++/*Perhaps future: #define bfd_asymbol_bfd(x) ((x)->section->owner)*/
 4.30566 ++#define bfd_asymbol_bfd(x) ((x)->the_bfd)
 4.30567 ++#define bfd_asymbol_flavour(x) (bfd_asymbol_bfd(x)->xvec->flavour)
 4.30568 ++
 4.30569 ++/* A canonical archive symbol.  */
 4.30570 ++/* This is a type pun with struct ranlib on purpose!  */
 4.30571 ++typedef struct carsym
 4.30572 ++{
 4.30573 ++  char *name;
 4.30574 ++  file_ptr file_offset;	/* Look here to find the file.  */
 4.30575 ++}
 4.30576 ++carsym;			/* To make these you call a carsymogen.  */
 4.30577 ++
 4.30578 ++/* Used in generating armaps (archive tables of contents).
 4.30579 ++   Perhaps just a forward definition would do?  */
 4.30580 ++struct orl 			/* Output ranlib.  */
 4.30581 ++{
 4.30582 ++  char **name;		/* Symbol name.  */
 4.30583 ++  union
 4.30584 ++  {
 4.30585 ++    file_ptr pos;
 4.30586 ++    bfd *abfd;
 4.30587 ++  } u;			/* bfd* or file position.  */
 4.30588 ++  int namidx;		/* Index into string table.  */
 4.30589 ++};
 4.30590 ++
 4.30591 ++/* Linenumber stuff.  */
 4.30592 ++typedef struct lineno_cache_entry
 4.30593 ++{
 4.30594 ++  unsigned int line_number;	/* Linenumber from start of function.  */
 4.30595 ++  union
 4.30596 ++  {
 4.30597 ++    struct bfd_symbol *sym;	/* Function name.  */
 4.30598 ++    bfd_vma offset;	    		/* Offset into section.  */
 4.30599 ++  } u;
 4.30600 ++}
 4.30601 ++alent;
 4.30602 ++
 4.30603 ++/* Object and core file sections.  */
 4.30604 ++
 4.30605 ++#define	align_power(addr, align)	\
 4.30606 ++  (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align)))
 4.30607 ++
 4.30608 ++typedef struct bfd_section *sec_ptr;
 4.30609 ++
 4.30610 ++#define bfd_get_section_name(bfd, ptr) ((ptr)->name + 0)
 4.30611 ++#define bfd_get_section_vma(bfd, ptr) ((ptr)->vma + 0)
 4.30612 ++#define bfd_get_section_lma(bfd, ptr) ((ptr)->lma + 0)
 4.30613 ++#define bfd_get_section_alignment(bfd, ptr) ((ptr)->alignment_power + 0)
 4.30614 ++#define bfd_section_name(bfd, ptr) ((ptr)->name)
 4.30615 ++#define bfd_section_size(bfd, ptr) ((ptr)->size)
 4.30616 ++#define bfd_get_section_size(ptr) ((ptr)->size)
 4.30617 ++#define bfd_section_vma(bfd, ptr) ((ptr)->vma)
 4.30618 ++#define bfd_section_lma(bfd, ptr) ((ptr)->lma)
 4.30619 ++#define bfd_section_alignment(bfd, ptr) ((ptr)->alignment_power)
 4.30620 ++#define bfd_get_section_flags(bfd, ptr) ((ptr)->flags + 0)
 4.30621 ++#define bfd_get_section_userdata(bfd, ptr) ((ptr)->userdata)
 4.30622 ++
 4.30623 ++#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
 4.30624 ++
 4.30625 ++#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
 4.30626 ++#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
 4.30627 ++#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
 4.30628 ++/* Find the address one past the end of SEC.  */
 4.30629 ++#define bfd_get_section_limit(bfd, sec) \
 4.30630 ++  (((sec)->rawsize ? (sec)->rawsize : (sec)->size) \
 4.30631 ++   / bfd_octets_per_byte (bfd))
 4.30632 ++
 4.30633 ++/* Return TRUE if section has been discarded.  */
 4.30634 ++#define elf_discarded_section(sec)				\
 4.30635 ++  (!bfd_is_abs_section (sec)					\
 4.30636 ++   && bfd_is_abs_section ((sec)->output_section)		\
 4.30637 ++   && (sec)->sec_info_type != ELF_INFO_TYPE_MERGE		\
 4.30638 ++   && (sec)->sec_info_type != ELF_INFO_TYPE_JUST_SYMS)
 4.30639 ++
 4.30640 ++/* Forward define.  */
 4.30641 ++struct stat;
 4.30642 ++
 4.30643 ++typedef enum bfd_print_symbol
 4.30644 ++{
 4.30645 ++  bfd_print_symbol_name,
 4.30646 ++  bfd_print_symbol_more,
 4.30647 ++  bfd_print_symbol_all
 4.30648 ++} bfd_print_symbol_type;
 4.30649 ++
 4.30650 ++/* Information about a symbol that nm needs.  */
 4.30651 ++
 4.30652 ++typedef struct _symbol_info
 4.30653 ++{
 4.30654 ++  symvalue value;
 4.30655 ++  char type;
 4.30656 ++  const char *name;            /* Symbol name.  */
 4.30657 ++  unsigned char stab_type;     /* Stab type.  */
 4.30658 ++  char stab_other;             /* Stab other.  */
 4.30659 ++  short stab_desc;             /* Stab desc.  */
 4.30660 ++  const char *stab_name;       /* String for stab type.  */
 4.30661 ++} symbol_info;
 4.30662 ++
 4.30663 ++/* Get the name of a stabs type code.  */
 4.30664 ++
 4.30665 ++extern const char *bfd_get_stab_name (int);
 4.30666 ++
 4.30667 ++/* Hash table routines.  There is no way to free up a hash table.  */
 4.30668 ++
 4.30669 ++/* An element in the hash table.  Most uses will actually use a larger
 4.30670 ++   structure, and an instance of this will be the first field.  */
 4.30671 ++
 4.30672 ++struct bfd_hash_entry
 4.30673 ++{
 4.30674 ++  /* Next entry for this hash code.  */
 4.30675 ++  struct bfd_hash_entry *next;
 4.30676 ++  /* String being hashed.  */
 4.30677 ++  const char *string;
 4.30678 ++  /* Hash code.  This is the full hash code, not the index into the
 4.30679 ++     table.  */
 4.30680 ++  unsigned long hash;
 4.30681 ++};
 4.30682 ++
 4.30683 ++/* A hash table.  */
 4.30684 ++
 4.30685 ++struct bfd_hash_table
 4.30686 ++{
 4.30687 ++  /* The hash array.  */
 4.30688 ++  struct bfd_hash_entry **table;
 4.30689 ++  /* A function used to create new elements in the hash table.  The
 4.30690 ++     first entry is itself a pointer to an element.  When this
 4.30691 ++     function is first invoked, this pointer will be NULL.  However,
 4.30692 ++     having the pointer permits a hierarchy of method functions to be
 4.30693 ++     built each of which calls the function in the superclass.  Thus
 4.30694 ++     each function should be written to allocate a new block of memory
 4.30695 ++     only if the argument is NULL.  */
 4.30696 ++  struct bfd_hash_entry *(*newfunc)
 4.30697 ++    (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
 4.30698 ++   /* An objalloc for this hash table.  This is a struct objalloc *,
 4.30699 ++     but we use void * to avoid requiring the inclusion of objalloc.h.  */
 4.30700 ++  void *memory;
 4.30701 ++  /* The number of slots in the hash table.  */
 4.30702 ++  unsigned int size;
 4.30703 ++  /* The number of entries in the hash table.  */
 4.30704 ++  unsigned int count;
 4.30705 ++  /* The size of elements.  */
 4.30706 ++  unsigned int entsize;
 4.30707 ++  /* If non-zero, don't grow the hash table.  */
 4.30708 ++  unsigned int frozen:1;
 4.30709 ++};
 4.30710 ++
 4.30711 ++/* Initialize a hash table.  */
 4.30712 ++extern bfd_boolean bfd_hash_table_init
 4.30713 ++  (struct bfd_hash_table *,
 4.30714 ++   struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
 4.30715 ++			       struct bfd_hash_table *,
 4.30716 ++			       const char *),
 4.30717 ++   unsigned int);
 4.30718 ++
 4.30719 ++/* Initialize a hash table specifying a size.  */
 4.30720 ++extern bfd_boolean bfd_hash_table_init_n
 4.30721 ++  (struct bfd_hash_table *,
 4.30722 ++   struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
 4.30723 ++			       struct bfd_hash_table *,
 4.30724 ++			       const char *),
 4.30725 ++   unsigned int, unsigned int);
 4.30726 ++
 4.30727 ++/* Free up a hash table.  */
 4.30728 ++extern void bfd_hash_table_free
 4.30729 ++  (struct bfd_hash_table *);
 4.30730 ++
 4.30731 ++/* Look up a string in a hash table.  If CREATE is TRUE, a new entry
 4.30732 ++   will be created for this string if one does not already exist.  The
 4.30733 ++   COPY argument must be TRUE if this routine should copy the string
 4.30734 ++   into newly allocated memory when adding an entry.  */
 4.30735 ++extern struct bfd_hash_entry *bfd_hash_lookup
 4.30736 ++  (struct bfd_hash_table *, const char *, bfd_boolean create,
 4.30737 ++   bfd_boolean copy);
 4.30738 ++
 4.30739 ++/* Replace an entry in a hash table.  */
 4.30740 ++extern void bfd_hash_replace
 4.30741 ++  (struct bfd_hash_table *, struct bfd_hash_entry *old,
 4.30742 ++   struct bfd_hash_entry *nw);
 4.30743 ++
 4.30744 ++/* Base method for creating a hash table entry.  */
 4.30745 ++extern struct bfd_hash_entry *bfd_hash_newfunc
 4.30746 ++  (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
 4.30747 ++
 4.30748 ++/* Grab some space for a hash table entry.  */
 4.30749 ++extern void *bfd_hash_allocate
 4.30750 ++  (struct bfd_hash_table *, unsigned int);
 4.30751 ++
 4.30752 ++/* Traverse a hash table in a random order, calling a function on each
 4.30753 ++   element.  If the function returns FALSE, the traversal stops.  The
 4.30754 ++   INFO argument is passed to the function.  */
 4.30755 ++extern void bfd_hash_traverse
 4.30756 ++  (struct bfd_hash_table *,
 4.30757 ++   bfd_boolean (*) (struct bfd_hash_entry *, void *),
 4.30758 ++   void *info);
 4.30759 ++
 4.30760 ++/* Allows the default size of a hash table to be configured. New hash
 4.30761 ++   tables allocated using bfd_hash_table_init will be created with
 4.30762 ++   this size.  */
 4.30763 ++extern void bfd_hash_set_default_size (bfd_size_type);
 4.30764 ++
 4.30765 ++/* This structure is used to keep track of stabs in sections
 4.30766 ++   information while linking.  */
 4.30767 ++
 4.30768 ++struct stab_info
 4.30769 ++{
 4.30770 ++  /* A hash table used to hold stabs strings.  */
 4.30771 ++  struct bfd_strtab_hash *strings;
 4.30772 ++  /* The header file hash table.  */
 4.30773 ++  struct bfd_hash_table includes;
 4.30774 ++  /* The first .stabstr section.  */
 4.30775 ++  struct bfd_section *stabstr;
 4.30776 ++};
 4.30777 ++
 4.30778 ++#define COFF_SWAP_TABLE (void *) &bfd_coff_std_swap_table
 4.30779 ++
 4.30780 ++/* User program access to BFD facilities.  */
 4.30781 ++
 4.30782 ++/* Direct I/O routines, for programs which know more about the object
 4.30783 ++   file than BFD does.  Use higher level routines if possible.  */
 4.30784 ++
 4.30785 ++extern bfd_size_type bfd_bread (void *, bfd_size_type, bfd *);
 4.30786 ++extern bfd_size_type bfd_bwrite (const void *, bfd_size_type, bfd *);
 4.30787 ++extern int bfd_seek (bfd *, file_ptr, int);
 4.30788 ++extern file_ptr bfd_tell (bfd *);
 4.30789 ++extern int bfd_flush (bfd *);
 4.30790 ++extern int bfd_stat (bfd *, struct stat *);
 4.30791 ++
 4.30792 ++/* Deprecated old routines.  */
 4.30793 ++#if __GNUC__
 4.30794 ++#define bfd_read(BUF, ELTSIZE, NITEMS, ABFD)				\
 4.30795 ++  (warn_deprecated ("bfd_read", __FILE__, __LINE__, __FUNCTION__),	\
 4.30796 ++   bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 4.30797 ++#define bfd_write(BUF, ELTSIZE, NITEMS, ABFD)				\
 4.30798 ++  (warn_deprecated ("bfd_write", __FILE__, __LINE__, __FUNCTION__),	\
 4.30799 ++   bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 4.30800 ++#else
 4.30801 ++#define bfd_read(BUF, ELTSIZE, NITEMS, ABFD)				\
 4.30802 ++  (warn_deprecated ("bfd_read", (const char *) 0, 0, (const char *) 0), \
 4.30803 ++   bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 4.30804 ++#define bfd_write(BUF, ELTSIZE, NITEMS, ABFD)				\
 4.30805 ++  (warn_deprecated ("bfd_write", (const char *) 0, 0, (const char *) 0),\
 4.30806 ++   bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 4.30807 ++#endif
 4.30808 ++extern void warn_deprecated (const char *, const char *, int, const char *);
 4.30809 ++
 4.30810 ++/* Cast from const char * to char * so that caller can assign to
 4.30811 ++   a char * without a warning.  */
 4.30812 ++#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
 4.30813 ++#define bfd_get_cacheable(abfd) ((abfd)->cacheable)
 4.30814 ++#define bfd_get_format(abfd) ((abfd)->format)
 4.30815 ++#define bfd_get_target(abfd) ((abfd)->xvec->name)
 4.30816 ++#define bfd_get_flavour(abfd) ((abfd)->xvec->flavour)
 4.30817 ++#define bfd_family_coff(abfd) \
 4.30818 ++  (bfd_get_flavour (abfd) == bfd_target_coff_flavour || \
 4.30819 ++   bfd_get_flavour (abfd) == bfd_target_xcoff_flavour)
 4.30820 ++#define bfd_big_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_BIG)
 4.30821 ++#define bfd_little_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_LITTLE)
 4.30822 ++#define bfd_header_big_endian(abfd) \
 4.30823 ++  ((abfd)->xvec->header_byteorder == BFD_ENDIAN_BIG)
 4.30824 ++#define bfd_header_little_endian(abfd) \
 4.30825 ++  ((abfd)->xvec->header_byteorder == BFD_ENDIAN_LITTLE)
 4.30826 ++#define bfd_get_file_flags(abfd) ((abfd)->flags)
 4.30827 ++#define bfd_applicable_file_flags(abfd) ((abfd)->xvec->object_flags)
 4.30828 ++#define bfd_applicable_section_flags(abfd) ((abfd)->xvec->section_flags)
 4.30829 ++#define bfd_my_archive(abfd) ((abfd)->my_archive)
 4.30830 ++#define bfd_has_map(abfd) ((abfd)->has_armap)
 4.30831 ++
 4.30832 ++#define bfd_valid_reloc_types(abfd) ((abfd)->xvec->valid_reloc_types)
 4.30833 ++#define bfd_usrdata(abfd) ((abfd)->usrdata)
 4.30834 ++
 4.30835 ++#define bfd_get_start_address(abfd) ((abfd)->start_address)
 4.30836 ++#define bfd_get_symcount(abfd) ((abfd)->symcount)
 4.30837 ++#define bfd_get_outsymbols(abfd) ((abfd)->outsymbols)
 4.30838 ++#define bfd_count_sections(abfd) ((abfd)->section_count)
 4.30839 ++
 4.30840 ++#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount)
 4.30841 ++
 4.30842 ++#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
 4.30843 ++
 4.30844 ++#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
 4.30845 ++
 4.30846 ++extern bfd_boolean bfd_cache_close
 4.30847 ++  (bfd *abfd);
 4.30848 ++/* NB: This declaration should match the autogenerated one in libbfd.h.  */
 4.30849 ++
 4.30850 ++extern bfd_boolean bfd_cache_close_all (void);
 4.30851 ++
 4.30852 ++extern bfd_boolean bfd_record_phdr
 4.30853 ++  (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
 4.30854 ++   bfd_boolean, bfd_boolean, unsigned int, struct bfd_section **);
 4.30855 ++
 4.30856 ++/* Byte swapping routines.  */
 4.30857 ++
 4.30858 ++bfd_uint64_t bfd_getb64 (const void *);
 4.30859 ++bfd_uint64_t bfd_getl64 (const void *);
 4.30860 ++bfd_int64_t bfd_getb_signed_64 (const void *);
 4.30861 ++bfd_int64_t bfd_getl_signed_64 (const void *);
 4.30862 ++bfd_vma bfd_getb32 (const void *);
 4.30863 ++bfd_vma bfd_getl32 (const void *);
 4.30864 ++bfd_signed_vma bfd_getb_signed_32 (const void *);
 4.30865 ++bfd_signed_vma bfd_getl_signed_32 (const void *);
 4.30866 ++bfd_vma bfd_getb16 (const void *);
 4.30867 ++bfd_vma bfd_getl16 (const void *);
 4.30868 ++bfd_signed_vma bfd_getb_signed_16 (const void *);
 4.30869 ++bfd_signed_vma bfd_getl_signed_16 (const void *);
 4.30870 ++void bfd_putb64 (bfd_uint64_t, void *);
 4.30871 ++void bfd_putl64 (bfd_uint64_t, void *);
 4.30872 ++void bfd_putb32 (bfd_vma, void *);
 4.30873 ++void bfd_putl32 (bfd_vma, void *);
 4.30874 ++void bfd_putb16 (bfd_vma, void *);
 4.30875 ++void bfd_putl16 (bfd_vma, void *);
 4.30876 ++
 4.30877 ++/* Byte swapping routines which take size and endiannes as arguments.  */
 4.30878 ++
 4.30879 ++bfd_uint64_t bfd_get_bits (const void *, int, bfd_boolean);
 4.30880 ++void bfd_put_bits (bfd_uint64_t, void *, int, bfd_boolean);
 4.30881 ++
 4.30882 ++extern bfd_boolean bfd_section_already_linked_table_init (void);
 4.30883 ++extern void bfd_section_already_linked_table_free (void);
 4.30884 ++
 4.30885 ++/* Externally visible ECOFF routines.  */
 4.30886 ++
 4.30887 ++#if defined(__STDC__) || defined(ALMOST_STDC)
 4.30888 ++struct ecoff_debug_info;
 4.30889 ++struct ecoff_debug_swap;
 4.30890 ++struct ecoff_extr;
 4.30891 ++struct bfd_symbol;
 4.30892 ++struct bfd_link_info;
 4.30893 ++struct bfd_link_hash_entry;
 4.30894 ++struct bfd_elf_version_tree;
 4.30895 ++#endif
 4.30896 ++extern bfd_vma bfd_ecoff_get_gp_value
 4.30897 ++  (bfd * abfd);
 4.30898 ++extern bfd_boolean bfd_ecoff_set_gp_value
 4.30899 ++  (bfd *abfd, bfd_vma gp_value);
 4.30900 ++extern bfd_boolean bfd_ecoff_set_regmasks
 4.30901 ++  (bfd *abfd, unsigned long gprmask, unsigned long fprmask,
 4.30902 ++   unsigned long *cprmask);
 4.30903 ++extern void *bfd_ecoff_debug_init
 4.30904 ++  (bfd *output_bfd, struct ecoff_debug_info *output_debug,
 4.30905 ++   const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
 4.30906 ++extern void bfd_ecoff_debug_free
 4.30907 ++  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
 4.30908 ++   const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
 4.30909 ++extern bfd_boolean bfd_ecoff_debug_accumulate
 4.30910 ++  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
 4.30911 ++   const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
 4.30912 ++   struct ecoff_debug_info *input_debug,
 4.30913 ++   const struct ecoff_debug_swap *input_swap, struct bfd_link_info *);
 4.30914 ++extern bfd_boolean bfd_ecoff_debug_accumulate_other
 4.30915 ++  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
 4.30916 ++   const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
 4.30917 ++   struct bfd_link_info *);
 4.30918 ++extern bfd_boolean bfd_ecoff_debug_externals
 4.30919 ++  (bfd *abfd, struct ecoff_debug_info *debug,
 4.30920 ++   const struct ecoff_debug_swap *swap, bfd_boolean relocatable,
 4.30921 ++   bfd_boolean (*get_extr) (struct bfd_symbol *, struct ecoff_extr *),
 4.30922 ++   void (*set_index) (struct bfd_symbol *, bfd_size_type));
 4.30923 ++extern bfd_boolean bfd_ecoff_debug_one_external
 4.30924 ++  (bfd *abfd, struct ecoff_debug_info *debug,
 4.30925 ++   const struct ecoff_debug_swap *swap, const char *name,
 4.30926 ++   struct ecoff_extr *esym);
 4.30927 ++extern bfd_size_type bfd_ecoff_debug_size
 4.30928 ++  (bfd *abfd, struct ecoff_debug_info *debug,
 4.30929 ++   const struct ecoff_debug_swap *swap);
 4.30930 ++extern bfd_boolean bfd_ecoff_write_debug
 4.30931 ++  (bfd *abfd, struct ecoff_debug_info *debug,
 4.30932 ++   const struct ecoff_debug_swap *swap, file_ptr where);
 4.30933 ++extern bfd_boolean bfd_ecoff_write_accumulated_debug
 4.30934 ++  (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
 4.30935 ++   const struct ecoff_debug_swap *swap,
 4.30936 ++   struct bfd_link_info *info, file_ptr where);
 4.30937 ++
 4.30938 ++/* Externally visible ELF routines.  */
 4.30939 ++
 4.30940 ++struct bfd_link_needed_list
 4.30941 ++{
 4.30942 ++  struct bfd_link_needed_list *next;
 4.30943 ++  bfd *by;
 4.30944 ++  const char *name;
 4.30945 ++};
 4.30946 ++
 4.30947 ++enum dynamic_lib_link_class {
 4.30948 ++  DYN_NORMAL = 0,
 4.30949 ++  DYN_AS_NEEDED = 1,
 4.30950 ++  DYN_DT_NEEDED = 2,
 4.30951 ++  DYN_NO_ADD_NEEDED = 4,
 4.30952 ++  DYN_NO_NEEDED = 8
 4.30953 ++};
 4.30954 ++
 4.30955 ++enum notice_asneeded_action {
 4.30956 ++  notice_as_needed,
 4.30957 ++  notice_not_needed,
 4.30958 ++  notice_needed
 4.30959 ++};
 4.30960 ++
 4.30961 ++extern bfd_boolean bfd_elf_record_link_assignment
 4.30962 ++  (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
 4.30963 ++   bfd_boolean);
 4.30964 ++extern struct bfd_link_needed_list *bfd_elf_get_needed_list
 4.30965 ++  (bfd *, struct bfd_link_info *);
 4.30966 ++extern bfd_boolean bfd_elf_get_bfd_needed_list
 4.30967 ++  (bfd *, struct bfd_link_needed_list **);
 4.30968 ++extern bfd_boolean bfd_elf_size_dynamic_sections
 4.30969 ++  (bfd *, const char *, const char *, const char *, const char * const *,
 4.30970 ++   struct bfd_link_info *, struct bfd_section **,
 4.30971 ++   struct bfd_elf_version_tree *);
 4.30972 ++extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
 4.30973 ++  (bfd *, struct bfd_link_info *);
 4.30974 ++extern void bfd_elf_set_dt_needed_name
 4.30975 ++  (bfd *, const char *);
 4.30976 ++extern const char *bfd_elf_get_dt_soname
 4.30977 ++  (bfd *);
 4.30978 ++extern void bfd_elf_set_dyn_lib_class
 4.30979 ++  (bfd *, enum dynamic_lib_link_class);
 4.30980 ++extern int bfd_elf_get_dyn_lib_class
 4.30981 ++  (bfd *);
 4.30982 ++extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
 4.30983 ++  (bfd *, struct bfd_link_info *);
 4.30984 ++extern bfd_boolean bfd_elf_discard_info
 4.30985 ++  (bfd *, struct bfd_link_info *);
 4.30986 ++extern unsigned int _bfd_elf_default_action_discarded
 4.30987 ++  (struct bfd_section *);
 4.30988 ++
 4.30989 ++/* Return an upper bound on the number of bytes required to store a
 4.30990 ++   copy of ABFD's program header table entries.  Return -1 if an error
 4.30991 ++   occurs; bfd_get_error will return an appropriate code.  */
 4.30992 ++extern long bfd_get_elf_phdr_upper_bound
 4.30993 ++  (bfd *abfd);
 4.30994 ++
 4.30995 ++/* Copy ABFD's program header table entries to *PHDRS.  The entries
 4.30996 ++   will be stored as an array of Elf_Internal_Phdr structures, as
 4.30997 ++   defined in include/elf/internal.h.  To find out how large the
 4.30998 ++   buffer needs to be, call bfd_get_elf_phdr_upper_bound.
 4.30999 ++
 4.31000 ++   Return the number of program header table entries read, or -1 if an
 4.31001 ++   error occurs; bfd_get_error will return an appropriate code.  */
 4.31002 ++extern int bfd_get_elf_phdrs
 4.31003 ++  (bfd *abfd, void *phdrs);
 4.31004 ++
 4.31005 ++/* Create a new BFD as if by bfd_openr.  Rather than opening a file,
 4.31006 ++   reconstruct an ELF file by reading the segments out of remote memory
 4.31007 ++   based on the ELF file header at EHDR_VMA and the ELF program headers it
 4.31008 ++   points to.  If not null, *LOADBASEP is filled in with the difference
 4.31009 ++   between the VMAs from which the segments were read, and the VMAs the
 4.31010 ++   file headers (and hence BFD's idea of each section's VMA) put them at.
 4.31011 ++
 4.31012 ++   The function TARGET_READ_MEMORY is called to copy LEN bytes from the
 4.31013 ++   remote memory at target address VMA into the local buffer at MYADDR; it
 4.31014 ++   should return zero on success or an `errno' code on failure.  TEMPL must
 4.31015 ++   be a BFD for an ELF target with the word size and byte order found in
 4.31016 ++   the remote memory.  */
 4.31017 ++extern bfd *bfd_elf_bfd_from_remote_memory
 4.31018 ++  (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
 4.31019 ++   int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, int len));
 4.31020 ++
 4.31021 ++/* Return the arch_size field of an elf bfd, or -1 if not elf.  */
 4.31022 ++extern int bfd_get_arch_size
 4.31023 ++  (bfd *);
 4.31024 ++
 4.31025 ++/* Return TRUE if address "naturally" sign extends, or -1 if not elf.  */
 4.31026 ++extern int bfd_get_sign_extend_vma
 4.31027 ++  (bfd *);
 4.31028 ++
 4.31029 ++extern struct bfd_section *_bfd_elf_tls_setup
 4.31030 ++  (bfd *, struct bfd_link_info *);
 4.31031 ++
 4.31032 ++extern void _bfd_fix_excluded_sec_syms
 4.31033 ++  (bfd *, struct bfd_link_info *);
 4.31034 ++
 4.31035 ++extern unsigned bfd_m68k_mach_to_features (int);
 4.31036 ++
 4.31037 ++extern int bfd_m68k_features_to_mach (unsigned);
 4.31038 ++
 4.31039 ++extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
 4.31040 ++  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
 4.31041 ++   char **);
 4.31042 ++
 4.31043 ++extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
 4.31044 ++  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
 4.31045 ++   char **);
 4.31046 ++
 4.31047 ++/* SunOS shared library support routines for the linker.  */
 4.31048 ++
 4.31049 ++extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
 4.31050 ++  (bfd *, struct bfd_link_info *);
 4.31051 ++extern bfd_boolean bfd_sunos_record_link_assignment
 4.31052 ++  (bfd *, struct bfd_link_info *, const char *);
 4.31053 ++extern bfd_boolean bfd_sunos_size_dynamic_sections
 4.31054 ++  (bfd *, struct bfd_link_info *, struct bfd_section **,
 4.31055 ++   struct bfd_section **, struct bfd_section **);
 4.31056 ++
 4.31057 ++/* Linux shared library support routines for the linker.  */
 4.31058 ++
 4.31059 ++extern bfd_boolean bfd_i386linux_size_dynamic_sections
 4.31060 ++  (bfd *, struct bfd_link_info *);
 4.31061 ++extern bfd_boolean bfd_m68klinux_size_dynamic_sections
 4.31062 ++  (bfd *, struct bfd_link_info *);
 4.31063 ++extern bfd_boolean bfd_sparclinux_size_dynamic_sections
 4.31064 ++  (bfd *, struct bfd_link_info *);
 4.31065 ++
 4.31066 ++/* mmap hacks */
 4.31067 ++
 4.31068 ++struct _bfd_window_internal;
 4.31069 ++typedef struct _bfd_window_internal bfd_window_internal;
 4.31070 ++
 4.31071 ++typedef struct _bfd_window
 4.31072 ++{
 4.31073 ++  /* What the user asked for.  */
 4.31074 ++  void *data;
 4.31075 ++  bfd_size_type size;
 4.31076 ++  /* The actual window used by BFD.  Small user-requested read-only
 4.31077 ++     regions sharing a page may share a single window into the object
 4.31078 ++     file.  Read-write versions shouldn't until I've fixed things to
 4.31079 ++     keep track of which portions have been claimed by the
 4.31080 ++     application; don't want to give the same region back when the
 4.31081 ++     application wants two writable copies!  */
 4.31082 ++  struct _bfd_window_internal *i;
 4.31083 ++}
 4.31084 ++bfd_window;
 4.31085 ++
 4.31086 ++extern void bfd_init_window
 4.31087 ++  (bfd_window *);
 4.31088 ++extern void bfd_free_window
 4.31089 ++  (bfd_window *);
 4.31090 ++extern bfd_boolean bfd_get_file_window
 4.31091 ++  (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
 4.31092 ++
 4.31093 ++/* XCOFF support routines for the linker.  */
 4.31094 ++
 4.31095 ++extern bfd_boolean bfd_xcoff_link_record_set
 4.31096 ++  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type);
 4.31097 ++extern bfd_boolean bfd_xcoff_import_symbol
 4.31098 ++  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma,
 4.31099 ++   const char *, const char *, const char *, unsigned int);
 4.31100 ++extern bfd_boolean bfd_xcoff_export_symbol
 4.31101 ++  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
 4.31102 ++extern bfd_boolean bfd_xcoff_link_count_reloc
 4.31103 ++  (bfd *, struct bfd_link_info *, const char *);
 4.31104 ++extern bfd_boolean bfd_xcoff_record_link_assignment
 4.31105 ++  (bfd *, struct bfd_link_info *, const char *);
 4.31106 ++extern bfd_boolean bfd_xcoff_size_dynamic_sections
 4.31107 ++  (bfd *, struct bfd_link_info *, const char *, const char *,
 4.31108 ++   unsigned long, unsigned long, unsigned long, bfd_boolean,
 4.31109 ++   int, bfd_boolean, bfd_boolean, struct bfd_section **, bfd_boolean);
 4.31110 ++extern bfd_boolean bfd_xcoff_link_generate_rtinit
 4.31111 ++  (bfd *, const char *, const char *, bfd_boolean);
 4.31112 ++
 4.31113 ++/* XCOFF support routines for ar.  */
 4.31114 ++extern bfd_boolean bfd_xcoff_ar_archive_set_magic
 4.31115 ++  (bfd *, char *);
 4.31116 ++
 4.31117 ++/* Externally visible COFF routines.  */
 4.31118 ++
 4.31119 ++#if defined(__STDC__) || defined(ALMOST_STDC)
 4.31120 ++struct internal_syment;
 4.31121 ++union internal_auxent;
 4.31122 ++#endif
 4.31123 ++
 4.31124 ++extern bfd_boolean bfd_coff_get_syment
 4.31125 ++  (bfd *, struct bfd_symbol *, struct internal_syment *);
 4.31126 ++
 4.31127 ++extern bfd_boolean bfd_coff_get_auxent
 4.31128 ++  (bfd *, struct bfd_symbol *, int, union internal_auxent *);
 4.31129 ++
 4.31130 ++extern bfd_boolean bfd_coff_set_symbol_class
 4.31131 ++  (bfd *, struct bfd_symbol *, unsigned int);
 4.31132 ++
 4.31133 ++extern bfd_boolean bfd_m68k_coff_create_embedded_relocs
 4.31134 ++  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **);
 4.31135 ++
 4.31136 ++/* ARM VFP11 erratum workaround support.  */
 4.31137 ++typedef enum
 4.31138 ++{
 4.31139 ++  BFD_ARM_VFP11_FIX_DEFAULT,
 4.31140 ++  BFD_ARM_VFP11_FIX_NONE,
 4.31141 ++  BFD_ARM_VFP11_FIX_SCALAR,
 4.31142 ++  BFD_ARM_VFP11_FIX_VECTOR
 4.31143 ++} bfd_arm_vfp11_fix;
 4.31144 ++
 4.31145 ++extern void bfd_elf32_arm_init_maps
 4.31146 ++  (bfd *);
 4.31147 ++
 4.31148 ++extern void bfd_elf32_arm_set_vfp11_fix
 4.31149 ++  (bfd *, struct bfd_link_info *);
 4.31150 ++
 4.31151 ++extern bfd_boolean bfd_elf32_arm_vfp11_erratum_scan
 4.31152 ++  (bfd *, struct bfd_link_info *);
 4.31153 ++
 4.31154 ++extern void bfd_elf32_arm_vfp11_fix_veneer_locations
 4.31155 ++  (bfd *, struct bfd_link_info *);
 4.31156 ++
 4.31157 ++/* ARM Interworking support.  Called from linker.  */
 4.31158 ++extern bfd_boolean bfd_arm_allocate_interworking_sections
 4.31159 ++  (struct bfd_link_info *);
 4.31160 ++
 4.31161 ++extern bfd_boolean bfd_arm_process_before_allocation
 4.31162 ++  (bfd *, struct bfd_link_info *, int);
 4.31163 ++
 4.31164 ++extern bfd_boolean bfd_arm_get_bfd_for_interworking
 4.31165 ++  (bfd *, struct bfd_link_info *);
 4.31166 ++
 4.31167 ++/* PE ARM Interworking support.  Called from linker.  */
 4.31168 ++extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
 4.31169 ++  (struct bfd_link_info *);
 4.31170 ++
 4.31171 ++extern bfd_boolean bfd_arm_pe_process_before_allocation
 4.31172 ++  (bfd *, struct bfd_link_info *, int);
 4.31173 ++
 4.31174 ++extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
 4.31175 ++  (bfd *, struct bfd_link_info *);
 4.31176 ++
 4.31177 ++/* ELF ARM Interworking support.  Called from linker.  */
 4.31178 ++extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
 4.31179 ++  (struct bfd_link_info *);
 4.31180 ++
 4.31181 ++extern bfd_boolean bfd_elf32_arm_process_before_allocation
 4.31182 ++  (bfd *, struct bfd_link_info *);
 4.31183 ++
 4.31184 ++void bfd_elf32_arm_set_target_relocs
 4.31185 ++  (bfd *, struct bfd_link_info *, int, char *, int, int, bfd_arm_vfp11_fix,
 4.31186 ++   int, int);
 4.31187 ++
 4.31188 ++extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
 4.31189 ++  (bfd *, struct bfd_link_info *);
 4.31190 ++
 4.31191 ++extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
 4.31192 ++  (bfd *, struct bfd_link_info *);
 4.31193 ++
 4.31194 ++/* ELF ARM mapping symbol support */
 4.31195 ++#define BFD_ARM_SPECIAL_SYM_TYPE_MAP	(1 << 0)
 4.31196 ++#define BFD_ARM_SPECIAL_SYM_TYPE_TAG	(1 << 1)
 4.31197 ++#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER  (1 << 2)
 4.31198 ++#define BFD_ARM_SPECIAL_SYM_TYPE_ANY	(~0)
 4.31199 ++extern bfd_boolean bfd_is_arm_special_symbol_name
 4.31200 ++  (const char * name, int type);
 4.31201 ++
 4.31202 ++extern void bfd_elf32_arm_set_byteswap_code (struct bfd_link_info *, int);
 4.31203 ++
 4.31204 ++/* ARM Note section processing.  */
 4.31205 ++extern bfd_boolean bfd_arm_merge_machines
 4.31206 ++  (bfd *, bfd *);
 4.31207 ++
 4.31208 ++extern bfd_boolean bfd_arm_update_notes
 4.31209 ++  (bfd *, const char *);
 4.31210 ++
 4.31211 ++extern unsigned int bfd_arm_get_mach_from_notes
 4.31212 ++  (bfd *, const char *);
 4.31213 ++
 4.31214 ++/* TI COFF load page support.  */
 4.31215 ++extern void bfd_ticoff_set_section_load_page
 4.31216 ++  (struct bfd_section *, int);
 4.31217 ++
 4.31218 ++extern int bfd_ticoff_get_section_load_page
 4.31219 ++  (struct bfd_section *);
 4.31220 ++
 4.31221 ++/* H8/300 functions.  */
 4.31222 ++extern bfd_vma bfd_h8300_pad_address
 4.31223 ++  (bfd *, bfd_vma);
 4.31224 ++
 4.31225 ++/* IA64 Itanium code generation.  Called from linker.  */
 4.31226 ++extern void bfd_elf32_ia64_after_parse
 4.31227 ++  (int);
 4.31228 ++
 4.31229 ++extern void bfd_elf64_ia64_after_parse
 4.31230 ++  (int);
 4.31231 ++
 4.31232 ++/* This structure is used for a comdat section, as in PE.  A comdat
 4.31233 ++   section is associated with a particular symbol.  When the linker
 4.31234 ++   sees a comdat section, it keeps only one of the sections with a
 4.31235 ++   given name and associated with a given symbol.  */
 4.31236 ++
 4.31237 ++struct coff_comdat_info
 4.31238 ++{
 4.31239 ++  /* The name of the symbol associated with a comdat section.  */
 4.31240 ++  const char *name;
 4.31241 ++
 4.31242 ++  /* The local symbol table index of the symbol associated with a
 4.31243 ++     comdat section.  This is only meaningful to the object file format
 4.31244 ++     specific code; it is not an index into the list returned by
 4.31245 ++     bfd_canonicalize_symtab.  */
 4.31246 ++  long symbol;
 4.31247 ++};
 4.31248 ++
 4.31249 ++extern struct coff_comdat_info *bfd_coff_get_comdat_section
 4.31250 ++  (bfd *, struct bfd_section *);
 4.31251 ++
 4.31252 ++/* Extracted from init.c.  */
 4.31253 ++void bfd_init (void);
 4.31254 ++
 4.31255 ++/* Extracted from opncls.c.  */
 4.31256 ++bfd *bfd_fopen (const char *filename, const char *target,
 4.31257 ++    const char *mode, int fd);
 4.31258 ++
 4.31259 ++bfd *bfd_openr (const char *filename, const char *target);
 4.31260 ++
 4.31261 ++bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
 4.31262 ++
 4.31263 ++bfd *bfd_openstreamr (const char *, const char *, void *);
 4.31264 ++
 4.31265 ++bfd *bfd_openr_iovec (const char *filename, const char *target,
 4.31266 ++    void *(*open) (struct bfd *nbfd,
 4.31267 ++    void *open_closure),
 4.31268 ++    void *open_closure,
 4.31269 ++    file_ptr (*pread) (struct bfd *nbfd,
 4.31270 ++    void *stream,
 4.31271 ++    void *buf,
 4.31272 ++    file_ptr nbytes,
 4.31273 ++    file_ptr offset),
 4.31274 ++    int (*close) (struct bfd *nbfd,
 4.31275 ++    void *stream),
 4.31276 ++    int (*stat) (struct bfd *abfd,
 4.31277 ++    void *stream,
 4.31278 ++    struct stat *sb));
 4.31279 ++
 4.31280 ++bfd *bfd_openw (const char *filename, const char *target);
 4.31281 ++
 4.31282 ++bfd_boolean bfd_close (bfd *abfd);
 4.31283 ++
 4.31284 ++bfd_boolean bfd_close_all_done (bfd *);
 4.31285 ++
 4.31286 ++bfd *bfd_create (const char *filename, bfd *templ);
 4.31287 ++
 4.31288 ++bfd_boolean bfd_make_writable (bfd *abfd);
 4.31289 ++
 4.31290 ++bfd_boolean bfd_make_readable (bfd *abfd);
 4.31291 ++
 4.31292 ++unsigned long bfd_calc_gnu_debuglink_crc32
 4.31293 ++   (unsigned long crc, const unsigned char *buf, bfd_size_type len);
 4.31294 ++
 4.31295 ++char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
 4.31296 ++
 4.31297 ++struct bfd_section *bfd_create_gnu_debuglink_section
 4.31298 ++   (bfd *abfd, const char *filename);
 4.31299 ++
 4.31300 ++bfd_boolean bfd_fill_in_gnu_debuglink_section
 4.31301 ++   (bfd *abfd, struct bfd_section *sect, const char *filename);
 4.31302 ++
 4.31303 ++/* Extracted from libbfd.c.  */
 4.31304 ++
 4.31305 ++/* Byte swapping macros for user section data.  */
 4.31306 ++
 4.31307 ++#define bfd_put_8(abfd, val, ptr) \
 4.31308 ++  ((void) (*((unsigned char *) (ptr)) = (val) & 0xff))
 4.31309 ++#define bfd_put_signed_8 \
 4.31310 ++  bfd_put_8
 4.31311 ++#define bfd_get_8(abfd, ptr) \
 4.31312 ++  (*(unsigned char *) (ptr) & 0xff)
 4.31313 ++#define bfd_get_signed_8(abfd, ptr) \
 4.31314 ++  (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
 4.31315 ++
 4.31316 ++#define bfd_put_16(abfd, val, ptr) \
 4.31317 ++  BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
 4.31318 ++#define bfd_put_signed_16 \
 4.31319 ++  bfd_put_16
 4.31320 ++#define bfd_get_16(abfd, ptr) \
 4.31321 ++  BFD_SEND (abfd, bfd_getx16, (ptr))
 4.31322 ++#define bfd_get_signed_16(abfd, ptr) \
 4.31323 ++  BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
 4.31324 ++
 4.31325 ++#define bfd_put_32(abfd, val, ptr) \
 4.31326 ++  BFD_SEND (abfd, bfd_putx32, ((val),(ptr)))
 4.31327 ++#define bfd_put_signed_32 \
 4.31328 ++  bfd_put_32
 4.31329 ++#define bfd_get_32(abfd, ptr) \
 4.31330 ++  BFD_SEND (abfd, bfd_getx32, (ptr))
 4.31331 ++#define bfd_get_signed_32(abfd, ptr) \
 4.31332 ++  BFD_SEND (abfd, bfd_getx_signed_32, (ptr))
 4.31333 ++
 4.31334 ++#define bfd_put_64(abfd, val, ptr) \
 4.31335 ++  BFD_SEND (abfd, bfd_putx64, ((val), (ptr)))
 4.31336 ++#define bfd_put_signed_64 \
 4.31337 ++  bfd_put_64
 4.31338 ++#define bfd_get_64(abfd, ptr) \
 4.31339 ++  BFD_SEND (abfd, bfd_getx64, (ptr))
 4.31340 ++#define bfd_get_signed_64(abfd, ptr) \
 4.31341 ++  BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
 4.31342 ++
 4.31343 ++#define bfd_get(bits, abfd, ptr)                       \
 4.31344 ++  ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr)       \
 4.31345 ++   : (bits) == 16 ? bfd_get_16 (abfd, ptr)             \
 4.31346 ++   : (bits) == 32 ? bfd_get_32 (abfd, ptr)             \
 4.31347 ++   : (bits) == 64 ? bfd_get_64 (abfd, ptr)             \
 4.31348 ++   : (abort (), (bfd_vma) - 1))
 4.31349 ++
 4.31350 ++#define bfd_put(bits, abfd, val, ptr)                  \
 4.31351 ++  ((bits) == 8 ? bfd_put_8  (abfd, val, ptr)           \
 4.31352 ++   : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)                \
 4.31353 ++   : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)                \
 4.31354 ++   : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)                \
 4.31355 ++   : (abort (), (void) 0))
 4.31356 ++
 4.31357 ++
 4.31358 ++/* Byte swapping macros for file header data.  */
 4.31359 ++
 4.31360 ++#define bfd_h_put_8(abfd, val, ptr) \
 4.31361 ++  bfd_put_8 (abfd, val, ptr)
 4.31362 ++#define bfd_h_put_signed_8(abfd, val, ptr) \
 4.31363 ++  bfd_put_8 (abfd, val, ptr)
 4.31364 ++#define bfd_h_get_8(abfd, ptr) \
 4.31365 ++  bfd_get_8 (abfd, ptr)
 4.31366 ++#define bfd_h_get_signed_8(abfd, ptr) \
 4.31367 ++  bfd_get_signed_8 (abfd, ptr)
 4.31368 ++
 4.31369 ++#define bfd_h_put_16(abfd, val, ptr) \
 4.31370 ++  BFD_SEND (abfd, bfd_h_putx16, (val, ptr))
 4.31371 ++#define bfd_h_put_signed_16 \
 4.31372 ++  bfd_h_put_16
 4.31373 ++#define bfd_h_get_16(abfd, ptr) \
 4.31374 ++  BFD_SEND (abfd, bfd_h_getx16, (ptr))
 4.31375 ++#define bfd_h_get_signed_16(abfd, ptr) \
 4.31376 ++  BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr))
 4.31377 ++
 4.31378 ++#define bfd_h_put_32(abfd, val, ptr) \
 4.31379 ++  BFD_SEND (abfd, bfd_h_putx32, (val, ptr))
 4.31380 ++#define bfd_h_put_signed_32 \
 4.31381 ++  bfd_h_put_32
 4.31382 ++#define bfd_h_get_32(abfd, ptr) \
 4.31383 ++  BFD_SEND (abfd, bfd_h_getx32, (ptr))
 4.31384 ++#define bfd_h_get_signed_32(abfd, ptr) \
 4.31385 ++  BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr))
 4.31386 ++
 4.31387 ++#define bfd_h_put_64(abfd, val, ptr) \
 4.31388 ++  BFD_SEND (abfd, bfd_h_putx64, (val, ptr))
 4.31389 ++#define bfd_h_put_signed_64 \
 4.31390 ++  bfd_h_put_64
 4.31391 ++#define bfd_h_get_64(abfd, ptr) \
 4.31392 ++  BFD_SEND (abfd, bfd_h_getx64, (ptr))
 4.31393 ++#define bfd_h_get_signed_64(abfd, ptr) \
 4.31394 ++  BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr))
 4.31395 ++
 4.31396 ++/* Aliases for the above, which should eventually go away.  */
 4.31397 ++
 4.31398 ++#define H_PUT_64  bfd_h_put_64
 4.31399 ++#define H_PUT_32  bfd_h_put_32
 4.31400 ++#define H_PUT_16  bfd_h_put_16
 4.31401 ++#define H_PUT_8   bfd_h_put_8
 4.31402 ++#define H_PUT_S64 bfd_h_put_signed_64
 4.31403 ++#define H_PUT_S32 bfd_h_put_signed_32
 4.31404 ++#define H_PUT_S16 bfd_h_put_signed_16
 4.31405 ++#define H_PUT_S8  bfd_h_put_signed_8
 4.31406 ++#define H_GET_64  bfd_h_get_64
 4.31407 ++#define H_GET_32  bfd_h_get_32
 4.31408 ++#define H_GET_16  bfd_h_get_16
 4.31409 ++#define H_GET_8   bfd_h_get_8
 4.31410 ++#define H_GET_S64 bfd_h_get_signed_64
 4.31411 ++#define H_GET_S32 bfd_h_get_signed_32
 4.31412 ++#define H_GET_S16 bfd_h_get_signed_16
 4.31413 ++#define H_GET_S8  bfd_h_get_signed_8
 4.31414 ++
 4.31415 ++
 4.31416 ++/* Extracted from bfdio.c.  */
 4.31417 ++long bfd_get_mtime (bfd *abfd);
 4.31418 ++
 4.31419 ++file_ptr bfd_get_size (bfd *abfd);
 4.31420 ++
 4.31421 ++/* Extracted from bfdwin.c.  */
 4.31422 ++/* Extracted from section.c.  */
 4.31423 ++typedef struct bfd_section
 4.31424 ++{
 4.31425 ++  /* The name of the section; the name isn't a copy, the pointer is
 4.31426 ++     the same as that passed to bfd_make_section.  */
 4.31427 ++  const char *name;
 4.31428 ++
 4.31429 ++  /* A unique sequence number.  */
 4.31430 ++  int id;
 4.31431 ++
 4.31432 ++  /* Which section in the bfd; 0..n-1 as sections are created in a bfd.  */
 4.31433 ++  int index;
 4.31434 ++
 4.31435 ++  /* The next section in the list belonging to the BFD, or NULL.  */
 4.31436 ++  struct bfd_section *next;
 4.31437 ++
 4.31438 ++  /* The previous section in the list belonging to the BFD, or NULL.  */
 4.31439 ++  struct bfd_section *prev;
 4.31440 ++
 4.31441 ++  /* The field flags contains attributes of the section. Some
 4.31442 ++     flags are read in from the object file, and some are
 4.31443 ++     synthesized from other information.  */
 4.31444 ++  flagword flags;
 4.31445 ++
 4.31446 ++#define SEC_NO_FLAGS   0x000
 4.31447 ++
 4.31448 ++  /* Tells the OS to allocate space for this section when loading.
 4.31449 ++     This is clear for a section containing debug information only.  */
 4.31450 ++#define SEC_ALLOC      0x001
 4.31451 ++
 4.31452 ++  /* Tells the OS to load the section from the file when loading.
 4.31453 ++     This is clear for a .bss section.  */
 4.31454 ++#define SEC_LOAD       0x002
 4.31455 ++
 4.31456 ++  /* The section contains data still to be relocated, so there is
 4.31457 ++     some relocation information too.  */
 4.31458 ++#define SEC_RELOC      0x004
 4.31459 ++
 4.31460 ++  /* A signal to the OS that the section contains read only data.  */
 4.31461 ++#define SEC_READONLY   0x008
 4.31462 ++
 4.31463 ++  /* The section contains code only.  */
 4.31464 ++#define SEC_CODE       0x010
 4.31465 ++
 4.31466 ++  /* The section contains data only.  */
 4.31467 ++#define SEC_DATA       0x020
 4.31468 ++
 4.31469 ++  /* The section will reside in ROM.  */
 4.31470 ++#define SEC_ROM        0x040
 4.31471 ++
 4.31472 ++  /* The section contains constructor information. This section
 4.31473 ++     type is used by the linker to create lists of constructors and
 4.31474 ++     destructors used by <<g++>>. When a back end sees a symbol
 4.31475 ++     which should be used in a constructor list, it creates a new
 4.31476 ++     section for the type of name (e.g., <<__CTOR_LIST__>>), attaches
 4.31477 ++     the symbol to it, and builds a relocation. To build the lists
 4.31478 ++     of constructors, all the linker has to do is catenate all the
 4.31479 ++     sections called <<__CTOR_LIST__>> and relocate the data
 4.31480 ++     contained within - exactly the operations it would peform on
 4.31481 ++     standard data.  */
 4.31482 ++#define SEC_CONSTRUCTOR 0x080
 4.31483 ++
 4.31484 ++  /* The section has contents - a data section could be
 4.31485 ++     <<SEC_ALLOC>> | <<SEC_HAS_CONTENTS>>; a debug section could be
 4.31486 ++     <<SEC_HAS_CONTENTS>>  */
 4.31487 ++#define SEC_HAS_CONTENTS 0x100
 4.31488 ++
 4.31489 ++  /* An instruction to the linker to not output the section
 4.31490 ++     even if it has information which would normally be written.  */
 4.31491 ++#define SEC_NEVER_LOAD 0x200
 4.31492 ++
 4.31493 ++  /* The section contains thread local data.  */
 4.31494 ++#define SEC_THREAD_LOCAL 0x400
 4.31495 ++
 4.31496 ++  /* The section has GOT references.  This flag is only for the
 4.31497 ++     linker, and is currently only used by the elf32-hppa back end.
 4.31498 ++     It will be set if global offset table references were detected
 4.31499 ++     in this section, which indicate to the linker that the section
 4.31500 ++     contains PIC code, and must be handled specially when doing a
 4.31501 ++     static link.  */
 4.31502 ++#define SEC_HAS_GOT_REF 0x800
 4.31503 ++
 4.31504 ++  /* The section contains common symbols (symbols may be defined
 4.31505 ++     multiple times, the value of a symbol is the amount of
 4.31506 ++     space it requires, and the largest symbol value is the one
 4.31507 ++     used).  Most targets have exactly one of these (which we
 4.31508 ++     translate to bfd_com_section_ptr), but ECOFF has two.  */
 4.31509 ++#define SEC_IS_COMMON 0x1000
 4.31510 ++
 4.31511 ++  /* The section contains only debugging information.  For
 4.31512 ++     example, this is set for ELF .debug and .stab sections.
 4.31513 ++     strip tests this flag to see if a section can be
 4.31514 ++     discarded.  */
 4.31515 ++#define SEC_DEBUGGING 0x2000
 4.31516 ++
 4.31517 ++  /* The contents of this section are held in memory pointed to
 4.31518 ++     by the contents field.  This is checked by bfd_get_section_contents,
 4.31519 ++     and the data is retrieved from memory if appropriate.  */
 4.31520 ++#define SEC_IN_MEMORY 0x4000
 4.31521 ++
 4.31522 ++  /* The contents of this section are to be excluded by the
 4.31523 ++     linker for executable and shared objects unless those
 4.31524 ++     objects are to be further relocated.  */
 4.31525 ++#define SEC_EXCLUDE 0x8000
 4.31526 ++
 4.31527 ++  /* The contents of this section are to be sorted based on the sum of
 4.31528 ++     the symbol and addend values specified by the associated relocation
 4.31529 ++     entries.  Entries without associated relocation entries will be
 4.31530 ++     appended to the end of the section in an unspecified order.  */
 4.31531 ++#define SEC_SORT_ENTRIES 0x10000
 4.31532 ++
 4.31533 ++  /* When linking, duplicate sections of the same name should be
 4.31534 ++     discarded, rather than being combined into a single section as
 4.31535 ++     is usually done.  This is similar to how common symbols are
 4.31536 ++     handled.  See SEC_LINK_DUPLICATES below.  */
 4.31537 ++#define SEC_LINK_ONCE 0x20000
 4.31538 ++
 4.31539 ++  /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
 4.31540 ++     should handle duplicate sections.  */
 4.31541 ++#define SEC_LINK_DUPLICATES 0x40000
 4.31542 ++
 4.31543 ++  /* This value for SEC_LINK_DUPLICATES means that duplicate
 4.31544 ++     sections with the same name should simply be discarded.  */
 4.31545 ++#define SEC_LINK_DUPLICATES_DISCARD 0x0
 4.31546 ++
 4.31547 ++  /* This value for SEC_LINK_DUPLICATES means that the linker
 4.31548 ++     should warn if there are any duplicate sections, although
 4.31549 ++     it should still only link one copy.  */
 4.31550 ++#define SEC_LINK_DUPLICATES_ONE_ONLY 0x80000
 4.31551 ++
 4.31552 ++  /* This value for SEC_LINK_DUPLICATES means that the linker
 4.31553 ++     should warn if any duplicate sections are a different size.  */
 4.31554 ++#define SEC_LINK_DUPLICATES_SAME_SIZE 0x100000
 4.31555 ++
 4.31556 ++  /* This value for SEC_LINK_DUPLICATES means that the linker
 4.31557 ++     should warn if any duplicate sections contain different
 4.31558 ++     contents.  */
 4.31559 ++#define SEC_LINK_DUPLICATES_SAME_CONTENTS \
 4.31560 ++  (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE)
 4.31561 ++
 4.31562 ++  /* This section was created by the linker as part of dynamic
 4.31563 ++     relocation or other arcane processing.  It is skipped when
 4.31564 ++     going through the first-pass output, trusting that someone
 4.31565 ++     else up the line will take care of it later.  */
 4.31566 ++#define SEC_LINKER_CREATED 0x200000
 4.31567 ++
 4.31568 ++  /* This section should not be subject to garbage collection.
 4.31569 ++     Also set to inform the linker that this section should not be
 4.31570 ++     listed in the link map as discarded.  */
 4.31571 ++#define SEC_KEEP 0x400000
 4.31572 ++
 4.31573 ++  /* This section contains "short" data, and should be placed
 4.31574 ++     "near" the GP.  */
 4.31575 ++#define SEC_SMALL_DATA 0x800000
 4.31576 ++
 4.31577 ++  /* Attempt to merge identical entities in the section.
 4.31578 ++     Entity size is given in the entsize field.  */
 4.31579 ++#define SEC_MERGE 0x1000000
 4.31580 ++
 4.31581 ++  /* If given with SEC_MERGE, entities to merge are zero terminated
 4.31582 ++     strings where entsize specifies character size instead of fixed
 4.31583 ++     size entries.  */
 4.31584 ++#define SEC_STRINGS 0x2000000
 4.31585 ++
 4.31586 ++  /* This section contains data about section groups.  */
 4.31587 ++#define SEC_GROUP 0x4000000
 4.31588 ++
 4.31589 ++  /* The section is a COFF shared library section.  This flag is
 4.31590 ++     only for the linker.  If this type of section appears in
 4.31591 ++     the input file, the linker must copy it to the output file
 4.31592 ++     without changing the vma or size.  FIXME: Although this
 4.31593 ++     was originally intended to be general, it really is COFF
 4.31594 ++     specific (and the flag was renamed to indicate this).  It
 4.31595 ++     might be cleaner to have some more general mechanism to
 4.31596 ++     allow the back end to control what the linker does with
 4.31597 ++     sections.  */
 4.31598 ++#define SEC_COFF_SHARED_LIBRARY 0x10000000
 4.31599 ++
 4.31600 ++  /* This section contains data which may be shared with other
 4.31601 ++     executables or shared objects. This is for COFF only.  */
 4.31602 ++#define SEC_COFF_SHARED 0x20000000
 4.31603 ++
 4.31604 ++  /* When a section with this flag is being linked, then if the size of
 4.31605 ++     the input section is less than a page, it should not cross a page
 4.31606 ++     boundary.  If the size of the input section is one page or more,
 4.31607 ++     it should be aligned on a page boundary.  This is for TI
 4.31608 ++     TMS320C54X only.  */
 4.31609 ++#define SEC_TIC54X_BLOCK 0x40000000
 4.31610 ++
 4.31611 ++  /* Conditionally link this section; do not link if there are no
 4.31612 ++     references found to any symbol in the section.  This is for TI
 4.31613 ++     TMS320C54X only.  */
 4.31614 ++#define SEC_TIC54X_CLINK 0x80000000
 4.31615 ++
 4.31616 ++  /*  End of section flags.  */
 4.31617 ++
 4.31618 ++  /* Some internal packed boolean fields.  */
 4.31619 ++
 4.31620 ++  /* See the vma field.  */
 4.31621 ++  unsigned int user_set_vma : 1;
 4.31622 ++
 4.31623 ++  /* A mark flag used by some of the linker backends.  */
 4.31624 ++  unsigned int linker_mark : 1;
 4.31625 ++
 4.31626 ++  /* Another mark flag used by some of the linker backends.  Set for
 4.31627 ++     output sections that have an input section.  */
 4.31628 ++  unsigned int linker_has_input : 1;
 4.31629 ++
 4.31630 ++  /* Mark flags used by some linker backends for garbage collection.  */
 4.31631 ++  unsigned int gc_mark : 1;
 4.31632 ++  unsigned int gc_mark_from_eh : 1;
 4.31633 ++
 4.31634 ++  /* The following flags are used by the ELF linker. */
 4.31635 ++
 4.31636 ++  /* Mark sections which have been allocated to segments.  */
 4.31637 ++  unsigned int segment_mark : 1;
 4.31638 ++
 4.31639 ++  /* Type of sec_info information.  */
 4.31640 ++  unsigned int sec_info_type:3;
 4.31641 ++#define ELF_INFO_TYPE_NONE      0
 4.31642 ++#define ELF_INFO_TYPE_STABS     1
 4.31643 ++#define ELF_INFO_TYPE_MERGE     2
 4.31644 ++#define ELF_INFO_TYPE_EH_FRAME  3
 4.31645 ++#define ELF_INFO_TYPE_JUST_SYMS 4
 4.31646 ++
 4.31647 ++  /* Nonzero if this section uses RELA relocations, rather than REL.  */
 4.31648 ++  unsigned int use_rela_p:1;
 4.31649 ++
 4.31650 ++  /* Bits used by various backends.  The generic code doesn't touch
 4.31651 ++     these fields.  */
 4.31652 ++
 4.31653 ++  /* Nonzero if this section has TLS related relocations.  */
 4.31654 ++  unsigned int has_tls_reloc:1;
 4.31655 ++
 4.31656 ++  /* Nonzero if this section has a gp reloc.  */
 4.31657 ++  unsigned int has_gp_reloc:1;
 4.31658 ++
 4.31659 ++  /* Nonzero if this section needs the relax finalize pass.  */
 4.31660 ++  unsigned int need_finalize_relax:1;
 4.31661 ++
 4.31662 ++  /* Whether relocations have been processed.  */
 4.31663 ++  unsigned int reloc_done : 1;
 4.31664 ++
 4.31665 ++  /* End of internal packed boolean fields.  */
 4.31666 ++
 4.31667 ++  /*  The virtual memory address of the section - where it will be
 4.31668 ++      at run time.  The symbols are relocated against this.  The
 4.31669 ++      user_set_vma flag is maintained by bfd; if it's not set, the
 4.31670 ++      backend can assign addresses (for example, in <<a.out>>, where
 4.31671 ++      the default address for <<.data>> is dependent on the specific
 4.31672 ++      target and various flags).  */
 4.31673 ++  bfd_vma vma;
 4.31674 ++
 4.31675 ++  /*  The load address of the section - where it would be in a
 4.31676 ++      rom image; really only used for writing section header
 4.31677 ++      information.  */
 4.31678 ++  bfd_vma lma;
 4.31679 ++
 4.31680 ++  /* The size of the section in octets, as it will be output.
 4.31681 ++     Contains a value even if the section has no contents (e.g., the
 4.31682 ++     size of <<.bss>>).  */
 4.31683 ++  bfd_size_type size;
 4.31684 ++
 4.31685 ++  /* For input sections, the original size on disk of the section, in
 4.31686 ++     octets.  This field is used by the linker relaxation code.  It is
 4.31687 ++     currently only set for sections where the linker relaxation scheme
 4.31688 ++     doesn't cache altered section and reloc contents (stabs, eh_frame,
 4.31689 ++     SEC_MERGE, some coff relaxing targets), and thus the original size
 4.31690 ++     needs to be kept to read the section multiple times.
 4.31691 ++     For output sections, rawsize holds the section size calculated on
 4.31692 ++     a previous linker relaxation pass.  */
 4.31693 ++  bfd_size_type rawsize;
 4.31694 ++
 4.31695 ++  /* If this section is going to be output, then this value is the
 4.31696 ++     offset in *bytes* into the output section of the first byte in the
 4.31697 ++     input section (byte ==> smallest addressable unit on the
 4.31698 ++     target).  In most cases, if this was going to start at the
 4.31699 ++     100th octet (8-bit quantity) in the output section, this value
 4.31700 ++     would be 100.  However, if the target byte size is 16 bits
 4.31701 ++     (bfd_octets_per_byte is "2"), this value would be 50.  */
 4.31702 ++  bfd_vma output_offset;
 4.31703 ++
 4.31704 ++  /* The output section through which to map on output.  */
 4.31705 ++  struct bfd_section *output_section;
 4.31706 ++
 4.31707 ++  /* The alignment requirement of the section, as an exponent of 2 -
 4.31708 ++     e.g., 3 aligns to 2^3 (or 8).  */
 4.31709 ++  unsigned int alignment_power;
 4.31710 ++
 4.31711 ++  /* If an input section, a pointer to a vector of relocation
 4.31712 ++     records for the data in this section.  */
 4.31713 ++  struct reloc_cache_entry *relocation;
 4.31714 ++
 4.31715 ++  /* If an output section, a pointer to a vector of pointers to
 4.31716 ++     relocation records for the data in this section.  */
 4.31717 ++  struct reloc_cache_entry **orelocation;
 4.31718 ++
 4.31719 ++  /* The number of relocation records in one of the above.  */
 4.31720 ++  unsigned reloc_count;
 4.31721 ++
 4.31722 ++  /* Information below is back end specific - and not always used
 4.31723 ++     or updated.  */
 4.31724 ++
 4.31725 ++  /* File position of section data.  */
 4.31726 ++  file_ptr filepos;
 4.31727 ++
 4.31728 ++  /* File position of relocation info.  */
 4.31729 ++  file_ptr rel_filepos;
 4.31730 ++
 4.31731 ++  /* File position of line data.  */
 4.31732 ++  file_ptr line_filepos;
 4.31733 ++
 4.31734 ++  /* Pointer to data for applications.  */
 4.31735 ++  void *userdata;
 4.31736 ++
 4.31737 ++  /* If the SEC_IN_MEMORY flag is set, this points to the actual
 4.31738 ++     contents.  */
 4.31739 ++  unsigned char *contents;
 4.31740 ++
 4.31741 ++  /* Attached line number information.  */
 4.31742 ++  alent *lineno;
 4.31743 ++
 4.31744 ++  /* Number of line number records.  */
 4.31745 ++  unsigned int lineno_count;
 4.31746 ++
 4.31747 ++  /* Entity size for merging purposes.  */
 4.31748 ++  unsigned int entsize;
 4.31749 ++
 4.31750 ++  /* Points to the kept section if this section is a link-once section,
 4.31751 ++     and is discarded.  */
 4.31752 ++  struct bfd_section *kept_section;
 4.31753 ++
 4.31754 ++  /* When a section is being output, this value changes as more
 4.31755 ++     linenumbers are written out.  */
 4.31756 ++  file_ptr moving_line_filepos;
 4.31757 ++
 4.31758 ++  /* What the section number is in the target world.  */
 4.31759 ++  int target_index;
 4.31760 ++
 4.31761 ++  void *used_by_bfd;
 4.31762 ++
 4.31763 ++  /* If this is a constructor section then here is a list of the
 4.31764 ++     relocations created to relocate items within it.  */
 4.31765 ++  struct relent_chain *constructor_chain;
 4.31766 ++
 4.31767 ++  /* The BFD which owns the section.  */
 4.31768 ++  bfd *owner;
 4.31769 ++
 4.31770 ++  /* A symbol which points at this section only.  */
 4.31771 ++  struct bfd_symbol *symbol;
 4.31772 ++  struct bfd_symbol **symbol_ptr_ptr;
 4.31773 ++
 4.31774 ++  /* Early in the link process, map_head and map_tail are used to build
 4.31775 ++     a list of input sections attached to an output section.  Later,
 4.31776 ++     output sections use these fields for a list of bfd_link_order
 4.31777 ++     structs.  */
 4.31778 ++  union {
 4.31779 ++    struct bfd_link_order *link_order;
 4.31780 ++    struct bfd_section *s;
 4.31781 ++  } map_head, map_tail;
 4.31782 ++} asection;
 4.31783 ++
 4.31784 ++/* These sections are global, and are managed by BFD.  The application
 4.31785 ++   and target back end are not permitted to change the values in
 4.31786 ++   these sections.  New code should use the section_ptr macros rather
 4.31787 ++   than referring directly to the const sections.  The const sections
 4.31788 ++   may eventually vanish.  */
 4.31789 ++#define BFD_ABS_SECTION_NAME "*ABS*"
 4.31790 ++#define BFD_UND_SECTION_NAME "*UND*"
 4.31791 ++#define BFD_COM_SECTION_NAME "*COM*"
 4.31792 ++#define BFD_IND_SECTION_NAME "*IND*"
 4.31793 ++
 4.31794 ++/* The absolute section.  */
 4.31795 ++extern asection bfd_abs_section;
 4.31796 ++#define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
 4.31797 ++#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
 4.31798 ++/* Pointer to the undefined section.  */
 4.31799 ++extern asection bfd_und_section;
 4.31800 ++#define bfd_und_section_ptr ((asection *) &bfd_und_section)
 4.31801 ++#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
 4.31802 ++/* Pointer to the common section.  */
 4.31803 ++extern asection bfd_com_section;
 4.31804 ++#define bfd_com_section_ptr ((asection *) &bfd_com_section)
 4.31805 ++/* Pointer to the indirect section.  */
 4.31806 ++extern asection bfd_ind_section;
 4.31807 ++#define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
 4.31808 ++#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
 4.31809 ++
 4.31810 ++#define bfd_is_const_section(SEC)              \
 4.31811 ++ (   ((SEC) == bfd_abs_section_ptr)            \
 4.31812 ++  || ((SEC) == bfd_und_section_ptr)            \
 4.31813 ++  || ((SEC) == bfd_com_section_ptr)            \
 4.31814 ++  || ((SEC) == bfd_ind_section_ptr))
 4.31815 ++
 4.31816 ++/* Macros to handle insertion and deletion of a bfd's sections.  These
 4.31817 ++   only handle the list pointers, ie. do not adjust section_count,
 4.31818 ++   target_index etc.  */
 4.31819 ++#define bfd_section_list_remove(ABFD, S) \
 4.31820 ++  do                                                   \
 4.31821 ++    {                                                  \
 4.31822 ++      asection *_s = S;                                \
 4.31823 ++      asection *_next = _s->next;                      \
 4.31824 ++      asection *_prev = _s->prev;                      \
 4.31825 ++      if (_prev)                                       \
 4.31826 ++        _prev->next = _next;                           \
 4.31827 ++      else                                             \
 4.31828 ++        (ABFD)->sections = _next;                      \
 4.31829 ++      if (_next)                                       \
 4.31830 ++        _next->prev = _prev;                           \
 4.31831 ++      else                                             \
 4.31832 ++        (ABFD)->section_last = _prev;                  \
 4.31833 ++    }                                                  \
 4.31834 ++  while (0)
 4.31835 ++#define bfd_section_list_append(ABFD, S) \
 4.31836 ++  do                                                   \
 4.31837 ++    {                                                  \
 4.31838 ++      asection *_s = S;                                \
 4.31839 ++      bfd *_abfd = ABFD;                               \
 4.31840 ++      _s->next = NULL;                                 \
 4.31841 ++      if (_abfd->section_last)                         \
 4.31842 ++        {                                              \
 4.31843 ++          _s->prev = _abfd->section_last;              \
 4.31844 ++          _abfd->section_last->next = _s;              \
 4.31845 ++        }                                              \
 4.31846 ++      else                                             \
 4.31847 ++        {                                              \
 4.31848 ++          _s->prev = NULL;                             \
 4.31849 ++          _abfd->sections = _s;                        \
 4.31850 ++        }                                              \
 4.31851 ++      _abfd->section_last = _s;                        \
 4.31852 ++    }                                                  \
 4.31853 ++  while (0)
 4.31854 ++#define bfd_section_list_prepend(ABFD, S) \
 4.31855 ++  do                                                   \
 4.31856 ++    {                                                  \
 4.31857 ++      asection *_s = S;                                \
 4.31858 ++      bfd *_abfd = ABFD;                               \
 4.31859 ++      _s->prev = NULL;                                 \
 4.31860 ++      if (_abfd->sections)                             \
 4.31861 ++        {                                              \
 4.31862 ++          _s->next = _abfd->sections;                  \
 4.31863 ++          _abfd->sections->prev = _s;                  \
 4.31864 ++        }                                              \
 4.31865 ++      else                                             \
 4.31866 ++        {                                              \
 4.31867 ++          _s->next = NULL;                             \
 4.31868 ++          _abfd->section_last = _s;                    \
 4.31869 ++        }                                              \
 4.31870 ++      _abfd->sections = _s;                            \
 4.31871 ++    }                                                  \
 4.31872 ++  while (0)
 4.31873 ++#define bfd_section_list_insert_after(ABFD, A, S) \
 4.31874 ++  do                                                   \
 4.31875 ++    {                                                  \
 4.31876 ++      asection *_a = A;                                \
 4.31877 ++      asection *_s = S;                                \
 4.31878 ++      asection *_next = _a->next;                      \
 4.31879 ++      _s->next = _next;                                \
 4.31880 ++      _s->prev = _a;                                   \
 4.31881 ++      _a->next = _s;                                   \
 4.31882 ++      if (_next)                                       \
 4.31883 ++        _next->prev = _s;                              \
 4.31884 ++      else                                             \
 4.31885 ++        (ABFD)->section_last = _s;                     \
 4.31886 ++    }                                                  \
 4.31887 ++  while (0)
 4.31888 ++#define bfd_section_list_insert_before(ABFD, B, S) \
 4.31889 ++  do                                                   \
 4.31890 ++    {                                                  \
 4.31891 ++      asection *_b = B;                                \
 4.31892 ++      asection *_s = S;                                \
 4.31893 ++      asection *_prev = _b->prev;                      \
 4.31894 ++      _s->prev = _prev;                                \
 4.31895 ++      _s->next = _b;                                   \
 4.31896 ++      _b->prev = _s;                                   \
 4.31897 ++      if (_prev)                                       \
 4.31898 ++        _prev->next = _s;                              \
 4.31899 ++      else                                             \
 4.31900 ++        (ABFD)->sections = _s;                         \
 4.31901 ++    }                                                  \
 4.31902 ++  while (0)
 4.31903 ++#define bfd_section_removed_from_list(ABFD, S) \
 4.31904 ++  ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S))
 4.31905 ++
 4.31906 ++#define BFD_FAKE_SECTION(SEC, FLAGS, SYM, NAME, IDX)                   \
 4.31907 ++  /* name, id,  index, next, prev, flags, user_set_vma,            */  \
 4.31908 ++  { NAME,  IDX, 0,     NULL, NULL, FLAGS, 0,                           \
 4.31909 ++                                                                       \
 4.31910 ++  /* linker_mark, linker_has_input, gc_mark, gc_mark_from_eh,      */  \
 4.31911 ++     0,           0,                1,       0,                        \
 4.31912 ++                                                                       \
 4.31913 ++  /* segment_mark, sec_info_type, use_rela_p, has_tls_reloc,       */  \
 4.31914 ++     0,            0,             0,          0,                       \
 4.31915 ++                                                                       \
 4.31916 ++  /* has_gp_reloc, need_finalize_relax, reloc_done,                */  \
 4.31917 ++     0,            0,                   0,                             \
 4.31918 ++                                                                       \
 4.31919 ++  /* vma, lma, size, rawsize                                       */  \
 4.31920 ++     0,   0,   0,    0,                                                \
 4.31921 ++                                                                       \
 4.31922 ++  /* output_offset, output_section,              alignment_power,  */  \
 4.31923 ++     0,             (struct bfd_section *) &SEC, 0,                    \
 4.31924 ++                                                                       \
 4.31925 ++  /* relocation, orelocation, reloc_count, filepos, rel_filepos,   */  \
 4.31926 ++     NULL,       NULL,        0,           0,       0,                 \
 4.31927 ++                                                                       \
 4.31928 ++  /* line_filepos, userdata, contents, lineno, lineno_count,       */  \
 4.31929 ++     0,            NULL,     NULL,     NULL,   0,                      \
 4.31930 ++                                                                       \
 4.31931 ++  /* entsize, kept_section, moving_line_filepos,                    */ \
 4.31932 ++     0,       NULL,          0,                                        \
 4.31933 ++                                                                       \
 4.31934 ++  /* target_index, used_by_bfd, constructor_chain, owner,          */  \
 4.31935 ++     0,            NULL,        NULL,              NULL,               \
 4.31936 ++                                                                       \
 4.31937 ++  /* symbol,                    symbol_ptr_ptr,                    */  \
 4.31938 ++     (struct bfd_symbol *) SYM, &SEC.symbol,                           \
 4.31939 ++                                                                       \
 4.31940 ++  /* map_head, map_tail                                            */  \
 4.31941 ++     { NULL }, { NULL }                                                \
 4.31942 ++    }
 4.31943 ++
 4.31944 ++void bfd_section_list_clear (bfd *);
 4.31945 ++
 4.31946 ++asection *bfd_get_section_by_name (bfd *abfd, const char *name);
 4.31947 ++
 4.31948 ++asection *bfd_get_section_by_name_if
 4.31949 ++   (bfd *abfd,
 4.31950 ++    const char *name,
 4.31951 ++    bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj),
 4.31952 ++    void *obj);
 4.31953 ++
 4.31954 ++char *bfd_get_unique_section_name
 4.31955 ++   (bfd *abfd, const char *templat, int *count);
 4.31956 ++
 4.31957 ++asection *bfd_make_section_old_way (bfd *abfd, const char *name);
 4.31958 ++
 4.31959 ++asection *bfd_make_section_anyway_with_flags
 4.31960 ++   (bfd *abfd, const char *name, flagword flags);
 4.31961 ++
 4.31962 ++asection *bfd_make_section_anyway (bfd *abfd, const char *name);
 4.31963 ++
 4.31964 ++asection *bfd_make_section_with_flags
 4.31965 ++   (bfd *, const char *name, flagword flags);
 4.31966 ++
 4.31967 ++asection *bfd_make_section (bfd *, const char *name);
 4.31968 ++
 4.31969 ++bfd_boolean bfd_set_section_flags
 4.31970 ++   (bfd *abfd, asection *sec, flagword flags);
 4.31971 ++
 4.31972 ++void bfd_map_over_sections
 4.31973 ++   (bfd *abfd,
 4.31974 ++    void (*func) (bfd *abfd, asection *sect, void *obj),
 4.31975 ++    void *obj);
 4.31976 ++
 4.31977 ++asection *bfd_sections_find_if
 4.31978 ++   (bfd *abfd,
 4.31979 ++    bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
 4.31980 ++    void *obj);
 4.31981 ++
 4.31982 ++bfd_boolean bfd_set_section_size
 4.31983 ++   (bfd *abfd, asection *sec, bfd_size_type val);
 4.31984 ++
 4.31985 ++bfd_boolean bfd_set_section_contents
 4.31986 ++   (bfd *abfd, asection *section, const void *data,
 4.31987 ++    file_ptr offset, bfd_size_type count);
 4.31988 ++
 4.31989 ++bfd_boolean bfd_get_section_contents
 4.31990 ++   (bfd *abfd, asection *section, void *location, file_ptr offset,
 4.31991 ++    bfd_size_type count);
 4.31992 ++
 4.31993 ++bfd_boolean bfd_malloc_and_get_section
 4.31994 ++   (bfd *abfd, asection *section, bfd_byte **buf);
 4.31995 ++
 4.31996 ++bfd_boolean bfd_copy_private_section_data
 4.31997 ++   (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
 4.31998 ++
 4.31999 ++#define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
 4.32000 ++     BFD_SEND (obfd, _bfd_copy_private_section_data, \
 4.32001 ++               (ibfd, isection, obfd, osection))
 4.32002 ++bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
 4.32003 ++
 4.32004 ++bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
 4.32005 ++
 4.32006 ++/* Extracted from archures.c.  */
 4.32007 ++enum bfd_architecture
 4.32008 ++{
 4.32009 ++  bfd_arch_unknown,   /* File arch not known.  */
 4.32010 ++  bfd_arch_obscure,   /* Arch known, not one of these.  */
 4.32011 ++  bfd_arch_m68k,      /* Motorola 68xxx */
 4.32012 ++#define bfd_mach_m68000 1
 4.32013 ++#define bfd_mach_m68008 2
 4.32014 ++#define bfd_mach_m68010 3
 4.32015 ++#define bfd_mach_m68020 4
 4.32016 ++#define bfd_mach_m68030 5
 4.32017 ++#define bfd_mach_m68040 6
 4.32018 ++#define bfd_mach_m68060 7
 4.32019 ++#define bfd_mach_cpu32  8
 4.32020 ++#define bfd_mach_fido   9
 4.32021 ++#define bfd_mach_mcf_isa_a_nodiv 10
 4.32022 ++#define bfd_mach_mcf_isa_a 11
 4.32023 ++#define bfd_mach_mcf_isa_a_mac 12
 4.32024 ++#define bfd_mach_mcf_isa_a_emac 13
 4.32025 ++#define bfd_mach_mcf_isa_aplus 14
 4.32026 ++#define bfd_mach_mcf_isa_aplus_mac 15
 4.32027 ++#define bfd_mach_mcf_isa_aplus_emac 16
 4.32028 ++#define bfd_mach_mcf_isa_b_nousp 17
 4.32029 ++#define bfd_mach_mcf_isa_b_nousp_mac 18
 4.32030 ++#define bfd_mach_mcf_isa_b_nousp_emac 19
 4.32031 ++#define bfd_mach_mcf_isa_b 20
 4.32032 ++#define bfd_mach_mcf_isa_b_mac 21
 4.32033 ++#define bfd_mach_mcf_isa_b_emac 22
 4.32034 ++#define bfd_mach_mcf_isa_b_float 23
 4.32035 ++#define bfd_mach_mcf_isa_b_float_mac 24
 4.32036 ++#define bfd_mach_mcf_isa_b_float_emac 25
 4.32037 ++#define bfd_mach_mcf_isa_c 26
 4.32038 ++#define bfd_mach_mcf_isa_c_mac 27
 4.32039 ++#define bfd_mach_mcf_isa_c_emac 28
 4.32040 ++  bfd_arch_vax,       /* DEC Vax */
 4.32041 ++  bfd_arch_i960,      /* Intel 960 */
 4.32042 ++    /* The order of the following is important.
 4.32043 ++       lower number indicates a machine type that
 4.32044 ++       only accepts a subset of the instructions
 4.32045 ++       available to machines with higher numbers.
 4.32046 ++       The exception is the "ca", which is
 4.32047 ++       incompatible with all other machines except
 4.32048 ++       "core".  */
 4.32049 ++
 4.32050 ++#define bfd_mach_i960_core      1
 4.32051 ++#define bfd_mach_i960_ka_sa     2
 4.32052 ++#define bfd_mach_i960_kb_sb     3
 4.32053 ++#define bfd_mach_i960_mc        4
 4.32054 ++#define bfd_mach_i960_xa        5
 4.32055 ++#define bfd_mach_i960_ca        6
 4.32056 ++#define bfd_mach_i960_jx        7
 4.32057 ++#define bfd_mach_i960_hx        8
 4.32058 ++
 4.32059 ++  bfd_arch_or32,      /* OpenRISC 32 */
 4.32060 ++
 4.32061 ++  bfd_arch_sparc,     /* SPARC */
 4.32062 ++#define bfd_mach_sparc                 1
 4.32063 ++/* The difference between v8plus and v9 is that v9 is a true 64 bit env.  */
 4.32064 ++#define bfd_mach_sparc_sparclet        2
 4.32065 ++#define bfd_mach_sparc_sparclite       3
 4.32066 ++#define bfd_mach_sparc_v8plus          4
 4.32067 ++#define bfd_mach_sparc_v8plusa         5 /* with ultrasparc add'ns.  */
 4.32068 ++#define bfd_mach_sparc_sparclite_le    6
 4.32069 ++#define bfd_mach_sparc_v9              7
 4.32070 ++#define bfd_mach_sparc_v9a             8 /* with ultrasparc add'ns.  */
 4.32071 ++#define bfd_mach_sparc_v8plusb         9 /* with cheetah add'ns.  */
 4.32072 ++#define bfd_mach_sparc_v9b             10 /* with cheetah add'ns.  */
 4.32073 ++/* Nonzero if MACH has the v9 instruction set.  */
 4.32074 ++#define bfd_mach_sparc_v9_p(mach) \
 4.32075 ++  ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
 4.32076 ++   && (mach) != bfd_mach_sparc_sparclite_le)
 4.32077 ++/* Nonzero if MACH is a 64 bit sparc architecture.  */
 4.32078 ++#define bfd_mach_sparc_64bit_p(mach) \
 4.32079 ++  ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
 4.32080 ++  bfd_arch_spu,       /* PowerPC SPU */
 4.32081 ++#define bfd_mach_spu           256 
 4.32082 ++  bfd_arch_mips,      /* MIPS Rxxxx */
 4.32083 ++#define bfd_mach_mips3000              3000
 4.32084 ++#define bfd_mach_mips3900              3900
 4.32085 ++#define bfd_mach_mips4000              4000
 4.32086 ++#define bfd_mach_mips4010              4010
 4.32087 ++#define bfd_mach_mips4100              4100
 4.32088 ++#define bfd_mach_mips4111              4111
 4.32089 ++#define bfd_mach_mips4120              4120
 4.32090 ++#define bfd_mach_mips4300              4300
 4.32091 ++#define bfd_mach_mips4400              4400
 4.32092 ++#define bfd_mach_mips4600              4600
 4.32093 ++#define bfd_mach_mips4650              4650
 4.32094 ++#define bfd_mach_mips5000              5000
 4.32095 ++#define bfd_mach_mips5400              5400
 4.32096 ++#define bfd_mach_mips5500              5500
 4.32097 ++#define bfd_mach_mips6000              6000
 4.32098 ++#define bfd_mach_mips7000              7000
 4.32099 ++#define bfd_mach_mips8000              8000
 4.32100 ++#define bfd_mach_mips9000              9000
 4.32101 ++#define bfd_mach_mips10000             10000
 4.32102 ++#define bfd_mach_mips12000             12000
 4.32103 ++#define bfd_mach_mips16                16
 4.32104 ++#define bfd_mach_mips5                 5
 4.32105 ++#define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01 */
 4.32106 ++#define bfd_mach_mipsisa32             32
 4.32107 ++#define bfd_mach_mipsisa32r2           33
 4.32108 ++#define bfd_mach_mipsisa64             64
 4.32109 ++#define bfd_mach_mipsisa64r2           65
 4.32110 ++  bfd_arch_i386,      /* Intel 386 */
 4.32111 ++#define bfd_mach_i386_i386 1
 4.32112 ++#define bfd_mach_i386_i8086 2
 4.32113 ++#define bfd_mach_i386_i386_intel_syntax 3
 4.32114 ++#define bfd_mach_x86_64 64
 4.32115 ++#define bfd_mach_x86_64_intel_syntax 65
 4.32116 ++  bfd_arch_we32k,     /* AT&T WE32xxx */
 4.32117 ++  bfd_arch_tahoe,     /* CCI/Harris Tahoe */
 4.32118 ++  bfd_arch_i860,      /* Intel 860 */
 4.32119 ++  bfd_arch_i370,      /* IBM 360/370 Mainframes */
 4.32120 ++  bfd_arch_romp,      /* IBM ROMP PC/RT */
 4.32121 ++  bfd_arch_convex,    /* Convex */
 4.32122 ++  bfd_arch_m88k,      /* Motorola 88xxx */
 4.32123 ++  bfd_arch_m98k,      /* Motorola 98xxx */
 4.32124 ++  bfd_arch_pyramid,   /* Pyramid Technology */
 4.32125 ++  bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300) */
 4.32126 ++#define bfd_mach_h8300    1
 4.32127 ++#define bfd_mach_h8300h   2
 4.32128 ++#define bfd_mach_h8300s   3
 4.32129 ++#define bfd_mach_h8300hn  4
 4.32130 ++#define bfd_mach_h8300sn  5
 4.32131 ++#define bfd_mach_h8300sx  6
 4.32132 ++#define bfd_mach_h8300sxn 7
 4.32133 ++  bfd_arch_pdp11,     /* DEC PDP-11 */
 4.32134 ++  bfd_arch_powerpc,   /* PowerPC */
 4.32135 ++#define bfd_mach_ppc           32
 4.32136 ++#define bfd_mach_ppc64         64
 4.32137 ++#define bfd_mach_ppc_403       403
 4.32138 ++#define bfd_mach_ppc_403gc     4030
 4.32139 ++#define bfd_mach_ppc_505       505
 4.32140 ++#define bfd_mach_ppc_601       601
 4.32141 ++#define bfd_mach_ppc_602       602
 4.32142 ++#define bfd_mach_ppc_603       603
 4.32143 ++#define bfd_mach_ppc_ec603e    6031
 4.32144 ++#define bfd_mach_ppc_604       604
 4.32145 ++#define bfd_mach_ppc_620       620
 4.32146 ++#define bfd_mach_ppc_630       630
 4.32147 ++#define bfd_mach_ppc_750       750
 4.32148 ++#define bfd_mach_ppc_860       860
 4.32149 ++#define bfd_mach_ppc_a35       35
 4.32150 ++#define bfd_mach_ppc_rs64ii    642
 4.32151 ++#define bfd_mach_ppc_rs64iii   643
 4.32152 ++#define bfd_mach_ppc_7400      7400
 4.32153 ++#define bfd_mach_ppc_e500      500
 4.32154 ++  bfd_arch_rs6000,    /* IBM RS/6000 */
 4.32155 ++#define bfd_mach_rs6k          6000
 4.32156 ++#define bfd_mach_rs6k_rs1      6001
 4.32157 ++#define bfd_mach_rs6k_rsc      6003
 4.32158 ++#define bfd_mach_rs6k_rs2      6002
 4.32159 ++  bfd_arch_hppa,      /* HP PA RISC */
 4.32160 ++#define bfd_mach_hppa10        10
 4.32161 ++#define bfd_mach_hppa11        11
 4.32162 ++#define bfd_mach_hppa20        20
 4.32163 ++#define bfd_mach_hppa20w       25
 4.32164 ++  bfd_arch_d10v,      /* Mitsubishi D10V */
 4.32165 ++#define bfd_mach_d10v          1
 4.32166 ++#define bfd_mach_d10v_ts2      2
 4.32167 ++#define bfd_mach_d10v_ts3      3
 4.32168 ++  bfd_arch_d30v,      /* Mitsubishi D30V */
 4.32169 ++  bfd_arch_dlx,       /* DLX */
 4.32170 ++  bfd_arch_m68hc11,   /* Motorola 68HC11 */
 4.32171 ++  bfd_arch_m68hc12,   /* Motorola 68HC12 */
 4.32172 ++#define bfd_mach_m6812_default 0
 4.32173 ++#define bfd_mach_m6812         1
 4.32174 ++#define bfd_mach_m6812s        2
 4.32175 ++  bfd_arch_z8k,       /* Zilog Z8000 */
 4.32176 ++#define bfd_mach_z8001         1
 4.32177 ++#define bfd_mach_z8002         2
 4.32178 ++  bfd_arch_h8500,     /* Renesas H8/500 (formerly Hitachi H8/500) */
 4.32179 ++  bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH) */
 4.32180 ++#define bfd_mach_sh            1
 4.32181 ++#define bfd_mach_sh2        0x20
 4.32182 ++#define bfd_mach_sh_dsp     0x2d
 4.32183 ++#define bfd_mach_sh2a       0x2a
 4.32184 ++#define bfd_mach_sh2a_nofpu 0x2b
 4.32185 ++#define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
 4.32186 ++#define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
 4.32187 ++#define bfd_mach_sh2a_or_sh4  0x2a3
 4.32188 ++#define bfd_mach_sh2a_or_sh3e 0x2a4
 4.32189 ++#define bfd_mach_sh2e       0x2e
 4.32190 ++#define bfd_mach_sh3        0x30
 4.32191 ++#define bfd_mach_sh3_nommu  0x31
 4.32192 ++#define bfd_mach_sh3_dsp    0x3d
 4.32193 ++#define bfd_mach_sh3e       0x3e
 4.32194 ++#define bfd_mach_sh4        0x40
 4.32195 ++#define bfd_mach_sh4_nofpu  0x41
 4.32196 ++#define bfd_mach_sh4_nommu_nofpu  0x42
 4.32197 ++#define bfd_mach_sh4a       0x4a
 4.32198 ++#define bfd_mach_sh4a_nofpu 0x4b
 4.32199 ++#define bfd_mach_sh4al_dsp  0x4d
 4.32200 ++#define bfd_mach_sh5        0x50
 4.32201 ++  bfd_arch_alpha,     /* Dec Alpha */
 4.32202 ++#define bfd_mach_alpha_ev4  0x10
 4.32203 ++#define bfd_mach_alpha_ev5  0x20
 4.32204 ++#define bfd_mach_alpha_ev6  0x30
 4.32205 ++  bfd_arch_arm,       /* Advanced Risc Machines ARM.  */
 4.32206 ++#define bfd_mach_arm_unknown   0
 4.32207 ++#define bfd_mach_arm_2         1
 4.32208 ++#define bfd_mach_arm_2a        2
 4.32209 ++#define bfd_mach_arm_3         3
 4.32210 ++#define bfd_mach_arm_3M        4
 4.32211 ++#define bfd_mach_arm_4         5
 4.32212 ++#define bfd_mach_arm_4T        6
 4.32213 ++#define bfd_mach_arm_5         7
 4.32214 ++#define bfd_mach_arm_5T        8
 4.32215 ++#define bfd_mach_arm_5TE       9
 4.32216 ++#define bfd_mach_arm_XScale    10
 4.32217 ++#define bfd_mach_arm_ep9312    11
 4.32218 ++#define bfd_mach_arm_iWMMXt    12
 4.32219 ++#define bfd_mach_arm_iWMMXt2   13
 4.32220 ++  bfd_arch_ns32k,     /* National Semiconductors ns32000 */
 4.32221 ++  bfd_arch_w65,       /* WDC 65816 */
 4.32222 ++  bfd_arch_tic30,     /* Texas Instruments TMS320C30 */
 4.32223 ++  bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X */
 4.32224 ++#define bfd_mach_tic3x         30
 4.32225 ++#define bfd_mach_tic4x         40
 4.32226 ++  bfd_arch_tic54x,    /* Texas Instruments TMS320C54X */
 4.32227 ++  bfd_arch_tic80,     /* TI TMS320c80 (MVP) */
 4.32228 ++  bfd_arch_v850,      /* NEC V850 */
 4.32229 ++#define bfd_mach_v850          1
 4.32230 ++#define bfd_mach_v850e         'E'
 4.32231 ++#define bfd_mach_v850e1        '1'
 4.32232 ++  bfd_arch_arc,       /* ARC Cores */
 4.32233 ++#define bfd_mach_arc_5         5
 4.32234 ++#define bfd_mach_arc_6         6
 4.32235 ++#define bfd_mach_arc_7         7
 4.32236 ++#define bfd_mach_arc_8         8
 4.32237 ++ bfd_arch_m32c,     /* Renesas M16C/M32C.  */
 4.32238 ++#define bfd_mach_m16c        0x75
 4.32239 ++#define bfd_mach_m32c        0x78
 4.32240 ++  bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D) */
 4.32241 ++#define bfd_mach_m32r          1 /* For backwards compatibility.  */
 4.32242 ++#define bfd_mach_m32rx         'x'
 4.32243 ++#define bfd_mach_m32r2         '2'
 4.32244 ++  bfd_arch_mn10200,   /* Matsushita MN10200 */
 4.32245 ++  bfd_arch_mn10300,   /* Matsushita MN10300 */
 4.32246 ++#define bfd_mach_mn10300               300
 4.32247 ++#define bfd_mach_am33          330
 4.32248 ++#define bfd_mach_am33_2        332
 4.32249 ++  bfd_arch_fr30,
 4.32250 ++#define bfd_mach_fr30          0x46523330
 4.32251 ++  bfd_arch_frv,
 4.32252 ++#define bfd_mach_frv           1
 4.32253 ++#define bfd_mach_frvsimple     2
 4.32254 ++#define bfd_mach_fr300         300
 4.32255 ++#define bfd_mach_fr400         400
 4.32256 ++#define bfd_mach_fr450         450
 4.32257 ++#define bfd_mach_frvtomcat     499     /* fr500 prototype */
 4.32258 ++#define bfd_mach_fr500         500
 4.32259 ++#define bfd_mach_fr550         550
 4.32260 ++  bfd_arch_mcore,
 4.32261 ++  bfd_arch_mep,
 4.32262 ++#define bfd_mach_mep           1
 4.32263 ++#define bfd_mach_mep_h1        0x6831
 4.32264 ++  bfd_arch_ia64,      /* HP/Intel ia64 */
 4.32265 ++#define bfd_mach_ia64_elf64    64
 4.32266 ++#define bfd_mach_ia64_elf32    32
 4.32267 ++  bfd_arch_ip2k,      /* Ubicom IP2K microcontrollers. */
 4.32268 ++#define bfd_mach_ip2022        1
 4.32269 ++#define bfd_mach_ip2022ext     2
 4.32270 ++ bfd_arch_iq2000,     /* Vitesse IQ2000.  */
 4.32271 ++#define bfd_mach_iq2000        1
 4.32272 ++#define bfd_mach_iq10          2
 4.32273 ++  bfd_arch_mt,
 4.32274 ++#define bfd_mach_ms1           1
 4.32275 ++#define bfd_mach_mrisc2        2
 4.32276 ++#define bfd_mach_ms2           3
 4.32277 ++  bfd_arch_pj,
 4.32278 ++  bfd_arch_avr,       /* Atmel AVR microcontrollers.  */
 4.32279 ++#define bfd_mach_avr1          1
 4.32280 ++#define bfd_mach_avr2          2
 4.32281 ++#define bfd_mach_avr3          3
 4.32282 ++#define bfd_mach_avr4          4
 4.32283 ++#define bfd_mach_avr5          5
 4.32284 ++#define bfd_mach_avr6          6
 4.32285 ++  bfd_arch_bfin,        /* ADI Blackfin */
 4.32286 ++#define bfd_mach_bfin          1
 4.32287 ++  bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
 4.32288 ++#define bfd_mach_cr16          1
 4.32289 ++  bfd_arch_cr16c,       /* National Semiconductor CompactRISC. */
 4.32290 ++#define bfd_mach_cr16c         1
 4.32291 ++  bfd_arch_crx,       /*  National Semiconductor CRX.  */
 4.32292 ++#define bfd_mach_crx           1
 4.32293 ++  bfd_arch_cris,      /* Axis CRIS */
 4.32294 ++#define bfd_mach_cris_v0_v10   255
 4.32295 ++#define bfd_mach_cris_v32      32
 4.32296 ++#define bfd_mach_cris_v10_v32  1032
 4.32297 ++  bfd_arch_s390,      /* IBM s390 */
 4.32298 ++#define bfd_mach_s390_31       31
 4.32299 ++#define bfd_mach_s390_64       64
 4.32300 ++  bfd_arch_score,     /* Sunplus score */ 
 4.32301 ++  bfd_arch_openrisc,  /* OpenRISC */
 4.32302 ++  bfd_arch_mmix,      /* Donald Knuth's educational processor.  */
 4.32303 ++  bfd_arch_xstormy16,
 4.32304 ++#define bfd_mach_xstormy16     1
 4.32305 ++  bfd_arch_msp430,    /* Texas Instruments MSP430 architecture.  */
 4.32306 ++#define bfd_mach_msp11          11
 4.32307 ++#define bfd_mach_msp110         110
 4.32308 ++#define bfd_mach_msp12          12
 4.32309 ++#define bfd_mach_msp13          13
 4.32310 ++#define bfd_mach_msp14          14
 4.32311 ++#define bfd_mach_msp15          15
 4.32312 ++#define bfd_mach_msp16          16
 4.32313 ++#define bfd_mach_msp21          21
 4.32314 ++#define bfd_mach_msp31          31
 4.32315 ++#define bfd_mach_msp32          32
 4.32316 ++#define bfd_mach_msp33          33
 4.32317 ++#define bfd_mach_msp41          41
 4.32318 ++#define bfd_mach_msp42          42
 4.32319 ++#define bfd_mach_msp43          43
 4.32320 ++#define bfd_mach_msp44          44
 4.32321 ++  bfd_arch_xc16x,     /* Infineon's XC16X Series.               */
 4.32322 ++#define bfd_mach_xc16x         1
 4.32323 ++#define bfd_mach_xc16xl        2
 4.32324 ++#define bfd_mach_xc16xs         3
 4.32325 ++  bfd_arch_xtensa,    /* Tensilica's Xtensa cores.  */
 4.32326 ++#define bfd_mach_xtensa        1
 4.32327 ++   bfd_arch_maxq,     /* Dallas MAXQ 10/20 */
 4.32328 ++#define bfd_mach_maxq10    10
 4.32329 ++#define bfd_mach_maxq20    20
 4.32330 ++  bfd_arch_z80,
 4.32331 ++#define bfd_mach_z80strict      1 /* No undocumented opcodes.  */
 4.32332 ++#define bfd_mach_z80            3 /* With ixl, ixh, iyl, and iyh.  */
 4.32333 ++#define bfd_mach_z80full        7 /* All undocumented instructions.  */
 4.32334 ++#define bfd_mach_r800           11 /* R800: successor with multiplication.  */
 4.32335 ++  bfd_arch_last
 4.32336 ++  };
 4.32337 ++
 4.32338 ++typedef struct bfd_arch_info
 4.32339 ++{
 4.32340 ++  int bits_per_word;
 4.32341 ++  int bits_per_address;
 4.32342 ++  int bits_per_byte;
 4.32343 ++  enum bfd_architecture arch;
 4.32344 ++  unsigned long mach;
 4.32345 ++  const char *arch_name;
 4.32346 ++  const char *printable_name;
 4.32347 ++  unsigned int section_align_power;
 4.32348 ++  /* TRUE if this is the default machine for the architecture.
 4.32349 ++     The default arch should be the first entry for an arch so that
 4.32350 ++     all the entries for that arch can be accessed via <<next>>.  */
 4.32351 ++  bfd_boolean the_default;
 4.32352 ++  const struct bfd_arch_info * (*compatible)
 4.32353 ++    (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
 4.32354 ++
 4.32355 ++  bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
 4.32356 ++
 4.32357 ++  const struct bfd_arch_info *next;
 4.32358 ++}
 4.32359 ++bfd_arch_info_type;
 4.32360 ++
 4.32361 ++const char *bfd_printable_name (bfd *abfd);
 4.32362 ++
 4.32363 ++const bfd_arch_info_type *bfd_scan_arch (const char *string);
 4.32364 ++
 4.32365 ++const char **bfd_arch_list (void);
 4.32366 ++
 4.32367 ++const bfd_arch_info_type *bfd_arch_get_compatible
 4.32368 ++   (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
 4.32369 ++
 4.32370 ++void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
 4.32371 ++
 4.32372 ++enum bfd_architecture bfd_get_arch (bfd *abfd);
 4.32373 ++
 4.32374 ++unsigned long bfd_get_mach (bfd *abfd);
 4.32375 ++
 4.32376 ++unsigned int bfd_arch_bits_per_byte (bfd *abfd);
 4.32377 ++
 4.32378 ++unsigned int bfd_arch_bits_per_address (bfd *abfd);
 4.32379 ++
 4.32380 ++const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
 4.32381 ++
 4.32382 ++const bfd_arch_info_type *bfd_lookup_arch
 4.32383 ++   (enum bfd_architecture arch, unsigned long machine);
 4.32384 ++
 4.32385 ++const char *bfd_printable_arch_mach
 4.32386 ++   (enum bfd_architecture arch, unsigned long machine);
 4.32387 ++
 4.32388 ++unsigned int bfd_octets_per_byte (bfd *abfd);
 4.32389 ++
 4.32390 ++unsigned int bfd_arch_mach_octets_per_byte
 4.32391 ++   (enum bfd_architecture arch, unsigned long machine);
 4.32392 ++
 4.32393 ++/* Extracted from reloc.c.  */
 4.32394 ++typedef enum bfd_reloc_status
 4.32395 ++{
 4.32396 ++  /* No errors detected.  */
 4.32397 ++  bfd_reloc_ok,
 4.32398 ++
 4.32399 ++  /* The relocation was performed, but there was an overflow.  */
 4.32400 ++  bfd_reloc_overflow,
 4.32401 ++
 4.32402 ++  /* The address to relocate was not within the section supplied.  */
 4.32403 ++  bfd_reloc_outofrange,
 4.32404 ++
 4.32405 ++  /* Used by special functions.  */
 4.32406 ++  bfd_reloc_continue,
 4.32407 ++
 4.32408 ++  /* Unsupported relocation size requested.  */
 4.32409 ++  bfd_reloc_notsupported,
 4.32410 ++
 4.32411 ++  /* Unused.  */
 4.32412 ++  bfd_reloc_other,
 4.32413 ++
 4.32414 ++  /* The symbol to relocate against was undefined.  */
 4.32415 ++  bfd_reloc_undefined,
 4.32416 ++
 4.32417 ++  /* The relocation was performed, but may not be ok - presently
 4.32418 ++     generated only when linking i960 coff files with i960 b.out
 4.32419 ++     symbols.  If this type is returned, the error_message argument
 4.32420 ++     to bfd_perform_relocation will be set.  */
 4.32421 ++  bfd_reloc_dangerous
 4.32422 ++ }
 4.32423 ++ bfd_reloc_status_type;
 4.32424 ++
 4.32425 ++
 4.32426 ++typedef struct reloc_cache_entry
 4.32427 ++{
 4.32428 ++  /* A pointer into the canonical table of pointers.  */
 4.32429 ++  struct bfd_symbol **sym_ptr_ptr;
 4.32430 ++
 4.32431 ++  /* offset in section.  */
 4.32432 ++  bfd_size_type address;
 4.32433 ++
 4.32434 ++  /* addend for relocation value.  */
 4.32435 ++  bfd_vma addend;
 4.32436 ++
 4.32437 ++  /* Pointer to how to perform the required relocation.  */
 4.32438 ++  reloc_howto_type *howto;
 4.32439 ++
 4.32440 ++}
 4.32441 ++arelent;
 4.32442 ++
 4.32443 ++enum complain_overflow
 4.32444 ++{
 4.32445 ++  /* Do not complain on overflow.  */
 4.32446 ++  complain_overflow_dont,
 4.32447 ++
 4.32448 ++  /* Complain if the value overflows when considered as a signed
 4.32449 ++     number one bit larger than the field.  ie. A bitfield of N bits
 4.32450 ++     is allowed to represent -2**n to 2**n-1.  */
 4.32451 ++  complain_overflow_bitfield,
 4.32452 ++
 4.32453 ++  /* Complain if the value overflows when considered as a signed
 4.32454 ++     number.  */
 4.32455 ++  complain_overflow_signed,
 4.32456 ++
 4.32457 ++  /* Complain if the value overflows when considered as an
 4.32458 ++     unsigned number.  */
 4.32459 ++  complain_overflow_unsigned
 4.32460 ++};
 4.32461 ++
 4.32462 ++struct reloc_howto_struct
 4.32463 ++{
 4.32464 ++  /*  The type field has mainly a documentary use - the back end can
 4.32465 ++      do what it wants with it, though normally the back end's
 4.32466 ++      external idea of what a reloc number is stored
 4.32467 ++      in this field.  For example, a PC relative word relocation
 4.32468 ++      in a coff environment has the type 023 - because that's
 4.32469 ++      what the outside world calls a R_PCRWORD reloc.  */
 4.32470 ++  unsigned int type;
 4.32471 ++
 4.32472 ++  /*  The value the final relocation is shifted right by.  This drops
 4.32473 ++      unwanted data from the relocation.  */
 4.32474 ++  unsigned int rightshift;
 4.32475 ++
 4.32476 ++  /*  The size of the item to be relocated.  This is *not* a
 4.32477 ++      power-of-two measure.  To get the number of bytes operated
 4.32478 ++      on by a type of relocation, use bfd_get_reloc_size.  */
 4.32479 ++  int size;
 4.32480 ++
 4.32481 ++  /*  The number of bits in the item to be relocated.  This is used
 4.32482 ++      when doing overflow checking.  */
 4.32483 ++  unsigned int bitsize;
 4.32484 ++
 4.32485 ++  /*  Notes that the relocation is relative to the location in the
 4.32486 ++      data section of the addend.  The relocation function will
 4.32487 ++      subtract from the relocation value the address of the location
 4.32488 ++      being relocated.  */
 4.32489 ++  bfd_boolean pc_relative;
 4.32490 ++
 4.32491 ++  /*  The bit position of the reloc value in the destination.
 4.32492 ++      The relocated value is left shifted by this amount.  */
 4.32493 ++  unsigned int bitpos;
 4.32494 ++
 4.32495 ++  /* What type of overflow error should be checked for when
 4.32496 ++     relocating.  */
 4.32497 ++  enum complain_overflow complain_on_overflow;
 4.32498 ++
 4.32499 ++  /* If this field is non null, then the supplied function is
 4.32500 ++     called rather than the normal function.  This allows really
 4.32501 ++     strange relocation methods to be accommodated (e.g., i960 callj
 4.32502 ++     instructions).  */
 4.32503 ++  bfd_reloc_status_type (*special_function)
 4.32504 ++    (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
 4.32505 ++     bfd *, char **);
 4.32506 ++
 4.32507 ++  /* The textual name of the relocation type.  */
 4.32508 ++  char *name;
 4.32509 ++
 4.32510 ++  /* Some formats record a relocation addend in the section contents
 4.32511 ++     rather than with the relocation.  For ELF formats this is the
 4.32512 ++     distinction between USE_REL and USE_RELA (though the code checks
 4.32513 ++     for USE_REL == 1/0).  The value of this field is TRUE if the
 4.32514 ++     addend is recorded with the section contents; when performing a
 4.32515 ++     partial link (ld -r) the section contents (the data) will be
 4.32516 ++     modified.  The value of this field is FALSE if addends are
 4.32517 ++     recorded with the relocation (in arelent.addend); when performing
 4.32518 ++     a partial link the relocation will be modified.
 4.32519 ++     All relocations for all ELF USE_RELA targets should set this field
 4.32520 ++     to FALSE (values of TRUE should be looked on with suspicion).
 4.32521 ++     However, the converse is not true: not all relocations of all ELF
 4.32522 ++     USE_REL targets set this field to TRUE.  Why this is so is peculiar
 4.32523 ++     to each particular target.  For relocs that aren't used in partial
 4.32524 ++     links (e.g. GOT stuff) it doesn't matter what this is set to.  */
 4.32525 ++  bfd_boolean partial_inplace;
 4.32526 ++
 4.32527 ++  /* src_mask selects the part of the instruction (or data) to be used
 4.32528 ++     in the relocation sum.  If the target relocations don't have an
 4.32529 ++     addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
 4.32530 ++     dst_mask to extract the addend from the section contents.  If
 4.32531 ++     relocations do have an addend in the reloc, eg. ELF USE_RELA, this
 4.32532 ++     field should be zero.  Non-zero values for ELF USE_RELA targets are
 4.32533 ++     bogus as in those cases the value in the dst_mask part of the
 4.32534 ++     section contents should be treated as garbage.  */
 4.32535 ++  bfd_vma src_mask;
 4.32536 ++
 4.32537 ++  /* dst_mask selects which parts of the instruction (or data) are
 4.32538 ++     replaced with a relocated value.  */
 4.32539 ++  bfd_vma dst_mask;
 4.32540 ++
 4.32541 ++  /* When some formats create PC relative instructions, they leave
 4.32542 ++     the value of the pc of the place being relocated in the offset
 4.32543 ++     slot of the instruction, so that a PC relative relocation can
 4.32544 ++     be made just by adding in an ordinary offset (e.g., sun3 a.out).
 4.32545 ++     Some formats leave the displacement part of an instruction
 4.32546 ++     empty (e.g., m88k bcs); this flag signals the fact.  */
 4.32547 ++  bfd_boolean pcrel_offset;
 4.32548 ++};
 4.32549 ++
 4.32550 ++#define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
 4.32551 ++  { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC }
 4.32552 ++#define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
 4.32553 ++  HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
 4.32554 ++         NAME, FALSE, 0, 0, IN)
 4.32555 ++
 4.32556 ++#define EMPTY_HOWTO(C) \
 4.32557 ++  HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
 4.32558 ++         NULL, FALSE, 0, 0, FALSE)
 4.32559 ++
 4.32560 ++#define HOWTO_PREPARE(relocation, symbol)               \
 4.32561 ++  {                                                     \
 4.32562 ++    if (symbol != NULL)                                 \
 4.32563 ++      {                                                 \
 4.32564 ++        if (bfd_is_com_section (symbol->section))       \
 4.32565 ++          {                                             \
 4.32566 ++            relocation = 0;                             \
 4.32567 ++          }                                             \
 4.32568 ++        else                                            \
 4.32569 ++          {                                             \
 4.32570 ++            relocation = symbol->value;                 \
 4.32571 ++          }                                             \
 4.32572 ++      }                                                 \
 4.32573 ++  }
 4.32574 ++
 4.32575 ++unsigned int bfd_get_reloc_size (reloc_howto_type *);
 4.32576 ++
 4.32577 ++typedef struct relent_chain
 4.32578 ++{
 4.32579 ++  arelent relent;
 4.32580 ++  struct relent_chain *next;
 4.32581 ++}
 4.32582 ++arelent_chain;
 4.32583 ++
 4.32584 ++bfd_reloc_status_type bfd_check_overflow
 4.32585 ++   (enum complain_overflow how,
 4.32586 ++    unsigned int bitsize,
 4.32587 ++    unsigned int rightshift,
 4.32588 ++    unsigned int addrsize,
 4.32589 ++    bfd_vma relocation);
 4.32590 ++
 4.32591 ++bfd_reloc_status_type bfd_perform_relocation
 4.32592 ++   (bfd *abfd,
 4.32593 ++    arelent *reloc_entry,
 4.32594 ++    void *data,
 4.32595 ++    asection *input_section,
 4.32596 ++    bfd *output_bfd,
 4.32597 ++    char **error_message);
 4.32598 ++
 4.32599 ++bfd_reloc_status_type bfd_install_relocation
 4.32600 ++   (bfd *abfd,
 4.32601 ++    arelent *reloc_entry,
 4.32602 ++    void *data, bfd_vma data_start,
 4.32603 ++    asection *input_section,
 4.32604 ++    char **error_message);
 4.32605 ++
 4.32606 ++enum bfd_reloc_code_real {
 4.32607 ++  _dummy_first_bfd_reloc_code_real,
 4.32608 ++
 4.32609 ++
 4.32610 ++/* Basic absolute relocations of N bits.  */
 4.32611 ++  BFD_RELOC_64,
 4.32612 ++  BFD_RELOC_32,
 4.32613 ++  BFD_RELOC_26,
 4.32614 ++  BFD_RELOC_24,
 4.32615 ++  BFD_RELOC_16,
 4.32616 ++  BFD_RELOC_14,
 4.32617 ++  BFD_RELOC_8,
 4.32618 ++
 4.32619 ++/* PC-relative relocations.  Sometimes these are relative to the address
 4.32620 ++of the relocation itself; sometimes they are relative to the start of
 4.32621 ++the section containing the relocation.  It depends on the specific target.
 4.32622 ++
 4.32623 ++The 24-bit relocation is used in some Intel 960 configurations.  */
 4.32624 ++  BFD_RELOC_64_PCREL,
 4.32625 ++  BFD_RELOC_32_PCREL,
 4.32626 ++  BFD_RELOC_24_PCREL,
 4.32627 ++  BFD_RELOC_16_PCREL,
 4.32628 ++  BFD_RELOC_12_PCREL,
 4.32629 ++  BFD_RELOC_8_PCREL,
 4.32630 ++
 4.32631 ++/* Section relative relocations.  Some targets need this for DWARF2.  */
 4.32632 ++  BFD_RELOC_32_SECREL,
 4.32633 ++
 4.32634 ++/* For ELF.  */
 4.32635 ++  BFD_RELOC_32_GOT_PCREL,
 4.32636 ++  BFD_RELOC_16_GOT_PCREL,
 4.32637 ++  BFD_RELOC_8_GOT_PCREL,
 4.32638 ++  BFD_RELOC_32_GOTOFF,
 4.32639 ++  BFD_RELOC_16_GOTOFF,
 4.32640 ++  BFD_RELOC_LO16_GOTOFF,
 4.32641 ++  BFD_RELOC_HI16_GOTOFF,
 4.32642 ++  BFD_RELOC_HI16_S_GOTOFF,
 4.32643 ++  BFD_RELOC_8_GOTOFF,
 4.32644 ++  BFD_RELOC_64_PLT_PCREL,
 4.32645 ++  BFD_RELOC_32_PLT_PCREL,
 4.32646 ++  BFD_RELOC_24_PLT_PCREL,
 4.32647 ++  BFD_RELOC_16_PLT_PCREL,
 4.32648 ++  BFD_RELOC_8_PLT_PCREL,
 4.32649 ++  BFD_RELOC_64_PLTOFF,
 4.32650 ++  BFD_RELOC_32_PLTOFF,
 4.32651 ++  BFD_RELOC_16_PLTOFF,
 4.32652 ++  BFD_RELOC_LO16_PLTOFF,
 4.32653 ++  BFD_RELOC_HI16_PLTOFF,
 4.32654 ++  BFD_RELOC_HI16_S_PLTOFF,
 4.32655 ++  BFD_RELOC_8_PLTOFF,
 4.32656 ++
 4.32657 ++/* Relocations used by 68K ELF.  */
 4.32658 ++  BFD_RELOC_68K_GLOB_DAT,
 4.32659 ++  BFD_RELOC_68K_JMP_SLOT,
 4.32660 ++  BFD_RELOC_68K_RELATIVE,
 4.32661 ++
 4.32662 ++/* Linkage-table relative.  */
 4.32663 ++  BFD_RELOC_32_BASEREL,
 4.32664 ++  BFD_RELOC_16_BASEREL,
 4.32665 ++  BFD_RELOC_LO16_BASEREL,
 4.32666 ++  BFD_RELOC_HI16_BASEREL,
 4.32667 ++  BFD_RELOC_HI16_S_BASEREL,
 4.32668 ++  BFD_RELOC_8_BASEREL,
 4.32669 ++  BFD_RELOC_RVA,
 4.32670 ++
 4.32671 ++/* Absolute 8-bit relocation, but used to form an address like 0xFFnn.  */
 4.32672 ++  BFD_RELOC_8_FFnn,
 4.32673 ++
 4.32674 ++/* These PC-relative relocations are stored as word displacements --
 4.32675 ++i.e., byte displacements shifted right two bits.  The 30-bit word
 4.32676 ++displacement (<<32_PCREL_S2>> -- 32 bits, shifted 2) is used on the
 4.32677 ++SPARC.  (SPARC tools generally refer to this as <<WDISP30>>.)  The
 4.32678 ++signed 16-bit displacement is used on the MIPS, and the 23-bit
 4.32679 ++displacement is used on the Alpha.  */
 4.32680 ++  BFD_RELOC_32_PCREL_S2,
 4.32681 ++  BFD_RELOC_16_PCREL_S2,
 4.32682 ++  BFD_RELOC_23_PCREL_S2,
 4.32683 ++
 4.32684 ++/* High 22 bits and low 10 bits of 32-bit value, placed into lower bits of
 4.32685 ++the target word.  These are used on the SPARC.  */
 4.32686 ++  BFD_RELOC_HI22,
 4.32687 ++  BFD_RELOC_LO10,
 4.32688 ++
 4.32689 ++/* For systems that allocate a Global Pointer register, these are
 4.32690 ++displacements off that register.  These relocation types are
 4.32691 ++handled specially, because the value the register will have is
 4.32692 ++decided relatively late.  */
 4.32693 ++  BFD_RELOC_GPREL16,
 4.32694 ++  BFD_RELOC_GPREL32,
 4.32695 ++
 4.32696 ++/* Reloc types used for i960/b.out.  */
 4.32697 ++  BFD_RELOC_I960_CALLJ,
 4.32698 ++
 4.32699 ++/* SPARC ELF relocations.  There is probably some overlap with other
 4.32700 ++relocation types already defined.  */
 4.32701 ++  BFD_RELOC_NONE,
 4.32702 ++  BFD_RELOC_SPARC_WDISP22,
 4.32703 ++  BFD_RELOC_SPARC22,
 4.32704 ++  BFD_RELOC_SPARC13,
 4.32705 ++  BFD_RELOC_SPARC_GOT10,
 4.32706 ++  BFD_RELOC_SPARC_GOT13,
 4.32707 ++  BFD_RELOC_SPARC_GOT22,
 4.32708 ++  BFD_RELOC_SPARC_PC10,
 4.32709 ++  BFD_RELOC_SPARC_PC22,
 4.32710 ++  BFD_RELOC_SPARC_WPLT30,
 4.32711 ++  BFD_RELOC_SPARC_COPY,
 4.32712 ++  BFD_RELOC_SPARC_GLOB_DAT,
 4.32713 ++  BFD_RELOC_SPARC_JMP_SLOT,
 4.32714 ++  BFD_RELOC_SPARC_RELATIVE,
 4.32715 ++  BFD_RELOC_SPARC_UA16,
 4.32716 ++  BFD_RELOC_SPARC_UA32,
 4.32717 ++  BFD_RELOC_SPARC_UA64,
 4.32718 ++
 4.32719 ++/* I think these are specific to SPARC a.out (e.g., Sun 4).  */
 4.32720 ++  BFD_RELOC_SPARC_BASE13,
 4.32721 ++  BFD_RELOC_SPARC_BASE22,
 4.32722 ++
 4.32723 ++/* SPARC64 relocations  */
 4.32724 ++#define BFD_RELOC_SPARC_64 BFD_RELOC_64
 4.32725 ++  BFD_RELOC_SPARC_10,
 4.32726 ++  BFD_RELOC_SPARC_11,
 4.32727 ++  BFD_RELOC_SPARC_OLO10,
 4.32728 ++  BFD_RELOC_SPARC_HH22,
 4.32729 ++  BFD_RELOC_SPARC_HM10,
 4.32730 ++  BFD_RELOC_SPARC_LM22,
 4.32731 ++  BFD_RELOC_SPARC_PC_HH22,
 4.32732 ++  BFD_RELOC_SPARC_PC_HM10,
 4.32733 ++  BFD_RELOC_SPARC_PC_LM22,
 4.32734 ++  BFD_RELOC_SPARC_WDISP16,
 4.32735 ++  BFD_RELOC_SPARC_WDISP19,
 4.32736 ++  BFD_RELOC_SPARC_7,
 4.32737 ++  BFD_RELOC_SPARC_6,
 4.32738 ++  BFD_RELOC_SPARC_5,
 4.32739 ++#define BFD_RELOC_SPARC_DISP64 BFD_RELOC_64_PCREL
 4.32740 ++  BFD_RELOC_SPARC_PLT32,
 4.32741 ++  BFD_RELOC_SPARC_PLT64,
 4.32742 ++  BFD_RELOC_SPARC_HIX22,
 4.32743 ++  BFD_RELOC_SPARC_LOX10,
 4.32744 ++  BFD_RELOC_SPARC_H44,
 4.32745 ++  BFD_RELOC_SPARC_M44,
 4.32746 ++  BFD_RELOC_SPARC_L44,
 4.32747 ++  BFD_RELOC_SPARC_REGISTER,
 4.32748 ++
 4.32749 ++/* SPARC little endian relocation  */
 4.32750 ++  BFD_RELOC_SPARC_REV32,
 4.32751 ++
 4.32752 ++/* SPARC TLS relocations  */
 4.32753 ++  BFD_RELOC_SPARC_TLS_GD_HI22,
 4.32754 ++  BFD_RELOC_SPARC_TLS_GD_LO10,
 4.32755 ++  BFD_RELOC_SPARC_TLS_GD_ADD,
 4.32756 ++  BFD_RELOC_SPARC_TLS_GD_CALL,
 4.32757 ++  BFD_RELOC_SPARC_TLS_LDM_HI22,
 4.32758 ++  BFD_RELOC_SPARC_TLS_LDM_LO10,
 4.32759 ++  BFD_RELOC_SPARC_TLS_LDM_ADD,
 4.32760 ++  BFD_RELOC_SPARC_TLS_LDM_CALL,
 4.32761 ++  BFD_RELOC_SPARC_TLS_LDO_HIX22,
 4.32762 ++  BFD_RELOC_SPARC_TLS_LDO_LOX10,
 4.32763 ++  BFD_RELOC_SPARC_TLS_LDO_ADD,
 4.32764 ++  BFD_RELOC_SPARC_TLS_IE_HI22,
 4.32765 ++  BFD_RELOC_SPARC_TLS_IE_LO10,
 4.32766 ++  BFD_RELOC_SPARC_TLS_IE_LD,
 4.32767 ++  BFD_RELOC_SPARC_TLS_IE_LDX,
 4.32768 ++  BFD_RELOC_SPARC_TLS_IE_ADD,
 4.32769 ++  BFD_RELOC_SPARC_TLS_LE_HIX22,
 4.32770 ++  BFD_RELOC_SPARC_TLS_LE_LOX10,
 4.32771 ++  BFD_RELOC_SPARC_TLS_DTPMOD32,
 4.32772 ++  BFD_RELOC_SPARC_TLS_DTPMOD64,
 4.32773 ++  BFD_RELOC_SPARC_TLS_DTPOFF32,
 4.32774 ++  BFD_RELOC_SPARC_TLS_DTPOFF64,
 4.32775 ++  BFD_RELOC_SPARC_TLS_TPOFF32,
 4.32776 ++  BFD_RELOC_SPARC_TLS_TPOFF64,
 4.32777 ++
 4.32778 ++/* SPU Relocations.  */
 4.32779 ++  BFD_RELOC_SPU_IMM7,
 4.32780 ++  BFD_RELOC_SPU_IMM8,
 4.32781 ++  BFD_RELOC_SPU_IMM10,
 4.32782 ++  BFD_RELOC_SPU_IMM10W,
 4.32783 ++  BFD_RELOC_SPU_IMM16,
 4.32784 ++  BFD_RELOC_SPU_IMM16W,
 4.32785 ++  BFD_RELOC_SPU_IMM18,
 4.32786 ++  BFD_RELOC_SPU_PCREL9a,
 4.32787 ++  BFD_RELOC_SPU_PCREL9b,
 4.32788 ++  BFD_RELOC_SPU_PCREL16,
 4.32789 ++  BFD_RELOC_SPU_LO16,
 4.32790 ++  BFD_RELOC_SPU_HI16,
 4.32791 ++  BFD_RELOC_SPU_PPU32,
 4.32792 ++  BFD_RELOC_SPU_PPU64,
 4.32793 ++
 4.32794 ++/* Alpha ECOFF and ELF relocations.  Some of these treat the symbol or
 4.32795 ++"addend" in some special way.
 4.32796 ++For GPDISP_HI16 ("gpdisp") relocations, the symbol is ignored when
 4.32797 ++writing; when reading, it will be the absolute section symbol.  The
 4.32798 ++addend is the displacement in bytes of the "lda" instruction from
 4.32799 ++the "ldah" instruction (which is at the address of this reloc).  */
 4.32800 ++  BFD_RELOC_ALPHA_GPDISP_HI16,
 4.32801 ++
 4.32802 ++/* For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
 4.32803 ++with GPDISP_HI16 relocs.  The addend is ignored when writing the
 4.32804 ++relocations out, and is filled in with the file's GP value on
 4.32805 ++reading, for convenience.  */
 4.32806 ++  BFD_RELOC_ALPHA_GPDISP_LO16,
 4.32807 ++
 4.32808 ++/* The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
 4.32809 ++relocation except that there is no accompanying GPDISP_LO16
 4.32810 ++relocation.  */
 4.32811 ++  BFD_RELOC_ALPHA_GPDISP,
 4.32812 ++
 4.32813 ++/* The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
 4.32814 ++the assembler turns it into a LDQ instruction to load the address of
 4.32815 ++the symbol, and then fills in a register in the real instruction.
 4.32816 ++
 4.32817 ++The LITERAL reloc, at the LDQ instruction, refers to the .lita
 4.32818 ++section symbol.  The addend is ignored when writing, but is filled
 4.32819 ++in with the file's GP value on reading, for convenience, as with the
 4.32820 ++GPDISP_LO16 reloc.
 4.32821 ++
 4.32822 ++The ELF_LITERAL reloc is somewhere between 16_GOTOFF and GPDISP_LO16.
 4.32823 ++It should refer to the symbol to be referenced, as with 16_GOTOFF,
 4.32824 ++but it generates output not based on the position within the .got
 4.32825 ++section, but relative to the GP value chosen for the file during the
 4.32826 ++final link stage.
 4.32827 ++
 4.32828 ++The LITUSE reloc, on the instruction using the loaded address, gives
 4.32829 ++information to the linker that it might be able to use to optimize
 4.32830 ++away some literal section references.  The symbol is ignored (read
 4.32831 ++as the absolute section symbol), and the "addend" indicates the type
 4.32832 ++of instruction using the register:
 4.32833 ++1 - "memory" fmt insn
 4.32834 ++2 - byte-manipulation (byte offset reg)
 4.32835 ++3 - jsr (target of branch)  */
 4.32836 ++  BFD_RELOC_ALPHA_LITERAL,
 4.32837 ++  BFD_RELOC_ALPHA_ELF_LITERAL,
 4.32838 ++  BFD_RELOC_ALPHA_LITUSE,
 4.32839 ++
 4.32840 ++/* The HINT relocation indicates a value that should be filled into the
 4.32841 ++"hint" field of a jmp/jsr/ret instruction, for possible branch-
 4.32842 ++prediction logic which may be provided on some processors.  */
 4.32843 ++  BFD_RELOC_ALPHA_HINT,
 4.32844 ++
 4.32845 ++/* The LINKAGE relocation outputs a linkage pair in the object file,
 4.32846 ++which is filled by the linker.  */
 4.32847 ++  BFD_RELOC_ALPHA_LINKAGE,
 4.32848 ++
 4.32849 ++/* The CODEADDR relocation outputs a STO_CA in the object file,
 4.32850 ++which is filled by the linker.  */
 4.32851 ++  BFD_RELOC_ALPHA_CODEADDR,
 4.32852 ++
 4.32853 ++/* The GPREL_HI/LO relocations together form a 32-bit offset from the
 4.32854 ++GP register.  */
 4.32855 ++  BFD_RELOC_ALPHA_GPREL_HI16,
 4.32856 ++  BFD_RELOC_ALPHA_GPREL_LO16,
 4.32857 ++
 4.32858 ++/* Like BFD_RELOC_23_PCREL_S2, except that the source and target must
 4.32859 ++share a common GP, and the target address is adjusted for
 4.32860 ++STO_ALPHA_STD_GPLOAD.  */
 4.32861 ++  BFD_RELOC_ALPHA_BRSGP,
 4.32862 ++
 4.32863 ++/* Alpha thread-local storage relocations.  */
 4.32864 ++  BFD_RELOC_ALPHA_TLSGD,
 4.32865 ++  BFD_RELOC_ALPHA_TLSLDM,
 4.32866 ++  BFD_RELOC_ALPHA_DTPMOD64,
 4.32867 ++  BFD_RELOC_ALPHA_GOTDTPREL16,
 4.32868 ++  BFD_RELOC_ALPHA_DTPREL64,
 4.32869 ++  BFD_RELOC_ALPHA_DTPREL_HI16,
 4.32870 ++  BFD_RELOC_ALPHA_DTPREL_LO16,
 4.32871 ++  BFD_RELOC_ALPHA_DTPREL16,
 4.32872 ++  BFD_RELOC_ALPHA_GOTTPREL16,
 4.32873 ++  BFD_RELOC_ALPHA_TPREL64,
 4.32874 ++  BFD_RELOC_ALPHA_TPREL_HI16,
 4.32875 ++  BFD_RELOC_ALPHA_TPREL_LO16,
 4.32876 ++  BFD_RELOC_ALPHA_TPREL16,
 4.32877 ++
 4.32878 ++/* Bits 27..2 of the relocation address shifted right 2 bits;
 4.32879 ++simple reloc otherwise.  */
 4.32880 ++  BFD_RELOC_MIPS_JMP,
 4.32881 ++
 4.32882 ++/* The MIPS16 jump instruction.  */
 4.32883 ++  BFD_RELOC_MIPS16_JMP,
 4.32884 ++
 4.32885 ++/* MIPS16 GP relative reloc.  */
 4.32886 ++  BFD_RELOC_MIPS16_GPREL,
 4.32887 ++
 4.32888 ++/* High 16 bits of 32-bit value; simple reloc.  */
 4.32889 ++  BFD_RELOC_HI16,
 4.32890 ++
 4.32891 ++/* High 16 bits of 32-bit value but the low 16 bits will be sign
 4.32892 ++extended and added to form the final result.  If the low 16
 4.32893 ++bits form a negative number, we need to add one to the high value
 4.32894 ++to compensate for the borrow when the low bits are added.  */
 4.32895 ++  BFD_RELOC_HI16_S,
 4.32896 ++
 4.32897 ++/* Low 16 bits.  */
 4.32898 ++  BFD_RELOC_LO16,
 4.32899 ++
 4.32900 ++/* High 16 bits of 32-bit pc-relative value  */
 4.32901 ++  BFD_RELOC_HI16_PCREL,
 4.32902 ++
 4.32903 ++/* High 16 bits of 32-bit pc-relative value, adjusted  */
 4.32904 ++  BFD_RELOC_HI16_S_PCREL,
 4.32905 ++
 4.32906 ++/* Low 16 bits of pc-relative value  */
 4.32907 ++  BFD_RELOC_LO16_PCREL,
 4.32908 ++
 4.32909 ++/* MIPS16 high 16 bits of 32-bit value.  */
 4.32910 ++  BFD_RELOC_MIPS16_HI16,
 4.32911 ++
 4.32912 ++/* MIPS16 high 16 bits of 32-bit value but the low 16 bits will be sign
 4.32913 ++extended and added to form the final result.  If the low 16
 4.32914 ++bits form a negative number, we need to add one to the high value
 4.32915 ++to compensate for the borrow when the low bits are added.  */
 4.32916 ++  BFD_RELOC_MIPS16_HI16_S,
 4.32917 ++
 4.32918 ++/* MIPS16 low 16 bits.  */
 4.32919 ++  BFD_RELOC_MIPS16_LO16,
 4.32920 ++
 4.32921 ++/* Relocation against a MIPS literal section.  */
 4.32922 ++  BFD_RELOC_MIPS_LITERAL,
 4.32923 ++
 4.32924 ++/* MIPS ELF relocations.  */
 4.32925 ++  BFD_RELOC_MIPS_GOT16,
 4.32926 ++  BFD_RELOC_MIPS_CALL16,
 4.32927 ++  BFD_RELOC_MIPS_GOT_HI16,
 4.32928 ++  BFD_RELOC_MIPS_GOT_LO16,
 4.32929 ++  BFD_RELOC_MIPS_CALL_HI16,
 4.32930 ++  BFD_RELOC_MIPS_CALL_LO16,
 4.32931 ++  BFD_RELOC_MIPS_SUB,
 4.32932 ++  BFD_RELOC_MIPS_GOT_PAGE,
 4.32933 ++  BFD_RELOC_MIPS_GOT_OFST,
 4.32934 ++  BFD_RELOC_MIPS_GOT_DISP,
 4.32935 ++  BFD_RELOC_MIPS_SHIFT5,
 4.32936 ++  BFD_RELOC_MIPS_SHIFT6,
 4.32937 ++  BFD_RELOC_MIPS_INSERT_A,
 4.32938 ++  BFD_RELOC_MIPS_INSERT_B,
 4.32939 ++  BFD_RELOC_MIPS_DELETE,
 4.32940 ++  BFD_RELOC_MIPS_HIGHEST,
 4.32941 ++  BFD_RELOC_MIPS_HIGHER,
 4.32942 ++  BFD_RELOC_MIPS_SCN_DISP,
 4.32943 ++  BFD_RELOC_MIPS_REL16,
 4.32944 ++  BFD_RELOC_MIPS_RELGOT,
 4.32945 ++  BFD_RELOC_MIPS_JALR,
 4.32946 ++  BFD_RELOC_MIPS_TLS_DTPMOD32,
 4.32947 ++  BFD_RELOC_MIPS_TLS_DTPREL32,
 4.32948 ++  BFD_RELOC_MIPS_TLS_DTPMOD64,
 4.32949 ++  BFD_RELOC_MIPS_TLS_DTPREL64,
 4.32950 ++  BFD_RELOC_MIPS_TLS_GD,
 4.32951 ++  BFD_RELOC_MIPS_TLS_LDM,
 4.32952 ++  BFD_RELOC_MIPS_TLS_DTPREL_HI16,
 4.32953 ++  BFD_RELOC_MIPS_TLS_DTPREL_LO16,
 4.32954 ++  BFD_RELOC_MIPS_TLS_GOTTPREL,
 4.32955 ++  BFD_RELOC_MIPS_TLS_TPREL32,
 4.32956 ++  BFD_RELOC_MIPS_TLS_TPREL64,
 4.32957 ++  BFD_RELOC_MIPS_TLS_TPREL_HI16,
 4.32958 ++  BFD_RELOC_MIPS_TLS_TPREL_LO16,
 4.32959 ++
 4.32960 ++
 4.32961 ++/* MIPS ELF relocations (VxWorks extensions).  */
 4.32962 ++  BFD_RELOC_MIPS_COPY,
 4.32963 ++  BFD_RELOC_MIPS_JUMP_SLOT,
 4.32964 ++
 4.32965 ++
 4.32966 ++/* Fujitsu Frv Relocations.  */
 4.32967 ++  BFD_RELOC_FRV_LABEL16,
 4.32968 ++  BFD_RELOC_FRV_LABEL24,
 4.32969 ++  BFD_RELOC_FRV_LO16,
 4.32970 ++  BFD_RELOC_FRV_HI16,
 4.32971 ++  BFD_RELOC_FRV_GPREL12,
 4.32972 ++  BFD_RELOC_FRV_GPRELU12,
 4.32973 ++  BFD_RELOC_FRV_GPREL32,
 4.32974 ++  BFD_RELOC_FRV_GPRELHI,
 4.32975 ++  BFD_RELOC_FRV_GPRELLO,
 4.32976 ++  BFD_RELOC_FRV_GOT12,
 4.32977 ++  BFD_RELOC_FRV_GOTHI,
 4.32978 ++  BFD_RELOC_FRV_GOTLO,
 4.32979 ++  BFD_RELOC_FRV_FUNCDESC,
 4.32980 ++  BFD_RELOC_FRV_FUNCDESC_GOT12,
 4.32981 ++  BFD_RELOC_FRV_FUNCDESC_GOTHI,
 4.32982 ++  BFD_RELOC_FRV_FUNCDESC_GOTLO,
 4.32983 ++  BFD_RELOC_FRV_FUNCDESC_VALUE,
 4.32984 ++  BFD_RELOC_FRV_FUNCDESC_GOTOFF12,
 4.32985 ++  BFD_RELOC_FRV_FUNCDESC_GOTOFFHI,
 4.32986 ++  BFD_RELOC_FRV_FUNCDESC_GOTOFFLO,
 4.32987 ++  BFD_RELOC_FRV_GOTOFF12,
 4.32988 ++  BFD_RELOC_FRV_GOTOFFHI,
 4.32989 ++  BFD_RELOC_FRV_GOTOFFLO,
 4.32990 ++  BFD_RELOC_FRV_GETTLSOFF,
 4.32991 ++  BFD_RELOC_FRV_TLSDESC_VALUE,
 4.32992 ++  BFD_RELOC_FRV_GOTTLSDESC12,
 4.32993 ++  BFD_RELOC_FRV_GOTTLSDESCHI,
 4.32994 ++  BFD_RELOC_FRV_GOTTLSDESCLO,
 4.32995 ++  BFD_RELOC_FRV_TLSMOFF12,
 4.32996 ++  BFD_RELOC_FRV_TLSMOFFHI,
 4.32997 ++  BFD_RELOC_FRV_TLSMOFFLO,
 4.32998 ++  BFD_RELOC_FRV_GOTTLSOFF12,
 4.32999 ++  BFD_RELOC_FRV_GOTTLSOFFHI,
 4.33000 ++  BFD_RELOC_FRV_GOTTLSOFFLO,
 4.33001 ++  BFD_RELOC_FRV_TLSOFF,
 4.33002 ++  BFD_RELOC_FRV_TLSDESC_RELAX,
 4.33003 ++  BFD_RELOC_FRV_GETTLSOFF_RELAX,
 4.33004 ++  BFD_RELOC_FRV_TLSOFF_RELAX,
 4.33005 ++  BFD_RELOC_FRV_TLSMOFF,
 4.33006 ++
 4.33007 ++
 4.33008 ++/* This is a 24bit GOT-relative reloc for the mn10300.  */
 4.33009 ++  BFD_RELOC_MN10300_GOTOFF24,
 4.33010 ++
 4.33011 ++/* This is a 32bit GOT-relative reloc for the mn10300, offset by two bytes
 4.33012 ++in the instruction.  */
 4.33013 ++  BFD_RELOC_MN10300_GOT32,
 4.33014 ++
 4.33015 ++/* This is a 24bit GOT-relative reloc for the mn10300, offset by two bytes
 4.33016 ++in the instruction.  */
 4.33017 ++  BFD_RELOC_MN10300_GOT24,
 4.33018 ++
 4.33019 ++/* This is a 16bit GOT-relative reloc for the mn10300, offset by two bytes
 4.33020 ++in the instruction.  */
 4.33021 ++  BFD_RELOC_MN10300_GOT16,
 4.33022 ++
 4.33023 ++/* Copy symbol at runtime.  */
 4.33024 ++  BFD_RELOC_MN10300_COPY,
 4.33025 ++
 4.33026 ++/* Create GOT entry.  */
 4.33027 ++  BFD_RELOC_MN10300_GLOB_DAT,
 4.33028 ++
 4.33029 ++/* Create PLT entry.  */
 4.33030 ++  BFD_RELOC_MN10300_JMP_SLOT,
 4.33031 ++
 4.33032 ++/* Adjust by program base.  */
 4.33033 ++  BFD_RELOC_MN10300_RELATIVE,
 4.33034 ++
 4.33035 ++
 4.33036 ++/* i386/elf relocations  */
 4.33037 ++  BFD_RELOC_386_GOT32,
 4.33038 ++  BFD_RELOC_386_PLT32,
 4.33039 ++  BFD_RELOC_386_COPY,
 4.33040 ++  BFD_RELOC_386_GLOB_DAT,
 4.33041 ++  BFD_RELOC_386_JUMP_SLOT,
 4.33042 ++  BFD_RELOC_386_RELATIVE,
 4.33043 ++  BFD_RELOC_386_GOTOFF,
 4.33044 ++  BFD_RELOC_386_GOTPC,
 4.33045 ++  BFD_RELOC_386_TLS_TPOFF,
 4.33046 ++  BFD_RELOC_386_TLS_IE,
 4.33047 ++  BFD_RELOC_386_TLS_GOTIE,
 4.33048 ++  BFD_RELOC_386_TLS_LE,
 4.33049 ++  BFD_RELOC_386_TLS_GD,
 4.33050 ++  BFD_RELOC_386_TLS_LDM,
 4.33051 ++  BFD_RELOC_386_TLS_LDO_32,
 4.33052 ++  BFD_RELOC_386_TLS_IE_32,
 4.33053 ++  BFD_RELOC_386_TLS_LE_32,
 4.33054 ++  BFD_RELOC_386_TLS_DTPMOD32,
 4.33055 ++  BFD_RELOC_386_TLS_DTPOFF32,
 4.33056 ++  BFD_RELOC_386_TLS_TPOFF32,
 4.33057 ++  BFD_RELOC_386_TLS_GOTDESC,
 4.33058 ++  BFD_RELOC_386_TLS_DESC_CALL,
 4.33059 ++  BFD_RELOC_386_TLS_DESC,
 4.33060 ++
 4.33061 ++/* x86-64/elf relocations  */
 4.33062 ++  BFD_RELOC_X86_64_GOT32,
 4.33063 ++  BFD_RELOC_X86_64_PLT32,
 4.33064 ++  BFD_RELOC_X86_64_COPY,
 4.33065 ++  BFD_RELOC_X86_64_GLOB_DAT,
 4.33066 ++  BFD_RELOC_X86_64_JUMP_SLOT,
 4.33067 ++  BFD_RELOC_X86_64_RELATIVE,
 4.33068 ++  BFD_RELOC_X86_64_GOTPCREL,
 4.33069 ++  BFD_RELOC_X86_64_32S,
 4.33070 ++  BFD_RELOC_X86_64_DTPMOD64,
 4.33071 ++  BFD_RELOC_X86_64_DTPOFF64,
 4.33072 ++  BFD_RELOC_X86_64_TPOFF64,
 4.33073 ++  BFD_RELOC_X86_64_TLSGD,
 4.33074 ++  BFD_RELOC_X86_64_TLSLD,
 4.33075 ++  BFD_RELOC_X86_64_DTPOFF32,
 4.33076 ++  BFD_RELOC_X86_64_GOTTPOFF,
 4.33077 ++  BFD_RELOC_X86_64_TPOFF32,
 4.33078 ++  BFD_RELOC_X86_64_GOTOFF64,
 4.33079 ++  BFD_RELOC_X86_64_GOTPC32,
 4.33080 ++  BFD_RELOC_X86_64_GOT64,
 4.33081 ++  BFD_RELOC_X86_64_GOTPCREL64,
 4.33082 ++  BFD_RELOC_X86_64_GOTPC64,
 4.33083 ++  BFD_RELOC_X86_64_GOTPLT64,
 4.33084 ++  BFD_RELOC_X86_64_PLTOFF64,
 4.33085 ++  BFD_RELOC_X86_64_GOTPC32_TLSDESC,
 4.33086 ++  BFD_RELOC_X86_64_TLSDESC_CALL,
 4.33087 ++  BFD_RELOC_X86_64_TLSDESC,
 4.33088 ++
 4.33089 ++/* ns32k relocations  */
 4.33090 ++  BFD_RELOC_NS32K_IMM_8,
 4.33091 ++  BFD_RELOC_NS32K_IMM_16,
 4.33092 ++  BFD_RELOC_NS32K_IMM_32,
 4.33093 ++  BFD_RELOC_NS32K_IMM_8_PCREL,
 4.33094 ++  BFD_RELOC_NS32K_IMM_16_PCREL,
 4.33095 ++  BFD_RELOC_NS32K_IMM_32_PCREL,
 4.33096 ++  BFD_RELOC_NS32K_DISP_8,
 4.33097 ++  BFD_RELOC_NS32K_DISP_16,
 4.33098 ++  BFD_RELOC_NS32K_DISP_32,
 4.33099 ++  BFD_RELOC_NS32K_DISP_8_PCREL,
 4.33100 ++  BFD_RELOC_NS32K_DISP_16_PCREL,
 4.33101 ++  BFD_RELOC_NS32K_DISP_32_PCREL,
 4.33102 ++
 4.33103 ++/* PDP11 relocations  */
 4.33104 ++  BFD_RELOC_PDP11_DISP_8_PCREL,
 4.33105 ++  BFD_RELOC_PDP11_DISP_6_PCREL,
 4.33106 ++
 4.33107 ++/* Picojava relocs.  Not all of these appear in object files.  */
 4.33108 ++  BFD_RELOC_PJ_CODE_HI16,
 4.33109 ++  BFD_RELOC_PJ_CODE_LO16,
 4.33110 ++  BFD_RELOC_PJ_CODE_DIR16,
 4.33111 ++  BFD_RELOC_PJ_CODE_DIR32,
 4.33112 ++  BFD_RELOC_PJ_CODE_REL16,
 4.33113 ++  BFD_RELOC_PJ_CODE_REL32,
 4.33114 ++
 4.33115 ++/* Power(rs6000) and PowerPC relocations.  */
 4.33116 ++  BFD_RELOC_PPC_B26,
 4.33117 ++  BFD_RELOC_PPC_BA26,
 4.33118 ++  BFD_RELOC_PPC_TOC16,
 4.33119 ++  BFD_RELOC_PPC_B16,
 4.33120 ++  BFD_RELOC_PPC_B16_BRTAKEN,
 4.33121 ++  BFD_RELOC_PPC_B16_BRNTAKEN,
 4.33122 ++  BFD_RELOC_PPC_BA16,
 4.33123 ++  BFD_RELOC_PPC_BA16_BRTAKEN,
 4.33124 ++  BFD_RELOC_PPC_BA16_BRNTAKEN,
 4.33125 ++  BFD_RELOC_PPC_COPY,
 4.33126 ++  BFD_RELOC_PPC_GLOB_DAT,
 4.33127 ++  BFD_RELOC_PPC_JMP_SLOT,
 4.33128 ++  BFD_RELOC_PPC_RELATIVE,
 4.33129 ++  BFD_RELOC_PPC_LOCAL24PC,
 4.33130 ++  BFD_RELOC_PPC_EMB_NADDR32,
 4.33131 ++  BFD_RELOC_PPC_EMB_NADDR16,
 4.33132 ++  BFD_RELOC_PPC_EMB_NADDR16_LO,
 4.33133 ++  BFD_RELOC_PPC_EMB_NADDR16_HI,
 4.33134 ++  BFD_RELOC_PPC_EMB_NADDR16_HA,
 4.33135 ++  BFD_RELOC_PPC_EMB_SDAI16,
 4.33136 ++  BFD_RELOC_PPC_EMB_SDA2I16,
 4.33137 ++  BFD_RELOC_PPC_EMB_SDA2REL,
 4.33138 ++  BFD_RELOC_PPC_EMB_SDA21,
 4.33139 ++  BFD_RELOC_PPC_EMB_MRKREF,
 4.33140 ++  BFD_RELOC_PPC_EMB_RELSEC16,
 4.33141 ++  BFD_RELOC_PPC_EMB_RELST_LO,
 4.33142 ++  BFD_RELOC_PPC_EMB_RELST_HI,
 4.33143 ++  BFD_RELOC_PPC_EMB_RELST_HA,
 4.33144 ++  BFD_RELOC_PPC_EMB_BIT_FLD,
 4.33145 ++  BFD_RELOC_PPC_EMB_RELSDA,
 4.33146 ++  BFD_RELOC_PPC64_HIGHER,
 4.33147 ++  BFD_RELOC_PPC64_HIGHER_S,
 4.33148 ++  BFD_RELOC_PPC64_HIGHEST,
 4.33149 ++  BFD_RELOC_PPC64_HIGHEST_S,
 4.33150 ++  BFD_RELOC_PPC64_TOC16_LO,
 4.33151 ++  BFD_RELOC_PPC64_TOC16_HI,
 4.33152 ++  BFD_RELOC_PPC64_TOC16_HA,
 4.33153 ++  BFD_RELOC_PPC64_TOC,
 4.33154 ++  BFD_RELOC_PPC64_PLTGOT16,
 4.33155 ++  BFD_RELOC_PPC64_PLTGOT16_LO,
 4.33156 ++  BFD_RELOC_PPC64_PLTGOT16_HI,
 4.33157 ++  BFD_RELOC_PPC64_PLTGOT16_HA,
 4.33158 ++  BFD_RELOC_PPC64_ADDR16_DS,
 4.33159 ++  BFD_RELOC_PPC64_ADDR16_LO_DS,
 4.33160 ++  BFD_RELOC_PPC64_GOT16_DS,
 4.33161 ++  BFD_RELOC_PPC64_GOT16_LO_DS,
 4.33162 ++  BFD_RELOC_PPC64_PLT16_LO_DS,
 4.33163 ++  BFD_RELOC_PPC64_SECTOFF_DS,
 4.33164 ++  BFD_RELOC_PPC64_SECTOFF_LO_DS,
 4.33165 ++  BFD_RELOC_PPC64_TOC16_DS,
 4.33166 ++  BFD_RELOC_PPC64_TOC16_LO_DS,
 4.33167 ++  BFD_RELOC_PPC64_PLTGOT16_DS,
 4.33168 ++  BFD_RELOC_PPC64_PLTGOT16_LO_DS,
 4.33169 ++
 4.33170 ++/* PowerPC and PowerPC64 thread-local storage relocations.  */
 4.33171 ++  BFD_RELOC_PPC_TLS,
 4.33172 ++  BFD_RELOC_PPC_DTPMOD,
 4.33173 ++  BFD_RELOC_PPC_TPREL16,
 4.33174 ++  BFD_RELOC_PPC_TPREL16_LO,
 4.33175 ++  BFD_RELOC_PPC_TPREL16_HI,
 4.33176 ++  BFD_RELOC_PPC_TPREL16_HA,
 4.33177 ++  BFD_RELOC_PPC_TPREL,
 4.33178 ++  BFD_RELOC_PPC_DTPREL16,
 4.33179 ++  BFD_RELOC_PPC_DTPREL16_LO,
 4.33180 ++  BFD_RELOC_PPC_DTPREL16_HI,
 4.33181 ++  BFD_RELOC_PPC_DTPREL16_HA,
 4.33182 ++  BFD_RELOC_PPC_DTPREL,
 4.33183 ++  BFD_RELOC_PPC_GOT_TLSGD16,
 4.33184 ++  BFD_RELOC_PPC_GOT_TLSGD16_LO,
 4.33185 ++  BFD_RELOC_PPC_GOT_TLSGD16_HI,
 4.33186 ++  BFD_RELOC_PPC_GOT_TLSGD16_HA,
 4.33187 ++  BFD_RELOC_PPC_GOT_TLSLD16,
 4.33188 ++  BFD_RELOC_PPC_GOT_TLSLD16_LO,
 4.33189 ++  BFD_RELOC_PPC_GOT_TLSLD16_HI,
 4.33190 ++  BFD_RELOC_PPC_GOT_TLSLD16_HA,
 4.33191 ++  BFD_RELOC_PPC_GOT_TPREL16,
 4.33192 ++  BFD_RELOC_PPC_GOT_TPREL16_LO,
 4.33193 ++  BFD_RELOC_PPC_GOT_TPREL16_HI,
 4.33194 ++  BFD_RELOC_PPC_GOT_TPREL16_HA,
 4.33195 ++  BFD_RELOC_PPC_GOT_DTPREL16,
 4.33196 ++  BFD_RELOC_PPC_GOT_DTPREL16_LO,
 4.33197 ++  BFD_RELOC_PPC_GOT_DTPREL16_HI,
 4.33198 ++  BFD_RELOC_PPC_GOT_DTPREL16_HA,
 4.33199 ++  BFD_RELOC_PPC64_TPREL16_DS,
 4.33200 ++  BFD_RELOC_PPC64_TPREL16_LO_DS,
 4.33201 ++  BFD_RELOC_PPC64_TPREL16_HIGHER,
 4.33202 ++  BFD_RELOC_PPC64_TPREL16_HIGHERA,
 4.33203 ++  BFD_RELOC_PPC64_TPREL16_HIGHEST,
 4.33204 ++  BFD_RELOC_PPC64_TPREL16_HIGHESTA,
 4.33205 ++  BFD_RELOC_PPC64_DTPREL16_DS,
 4.33206 ++  BFD_RELOC_PPC64_DTPREL16_LO_DS,
 4.33207 ++  BFD_RELOC_PPC64_DTPREL16_HIGHER,
 4.33208 ++  BFD_RELOC_PPC64_DTPREL16_HIGHERA,
 4.33209 ++  BFD_RELOC_PPC64_DTPREL16_HIGHEST,
 4.33210 ++  BFD_RELOC_PPC64_DTPREL16_HIGHESTA,
 4.33211 ++
 4.33212 ++/* IBM 370/390 relocations  */
 4.33213 ++  BFD_RELOC_I370_D12,
 4.33214 ++
 4.33215 ++/* The type of reloc used to build a constructor table - at the moment
 4.33216 ++probably a 32 bit wide absolute relocation, but the target can choose.
 4.33217 ++It generally does map to one of the other relocation types.  */
 4.33218 ++  BFD_RELOC_CTOR,
 4.33219 ++
 4.33220 ++/* ARM 26 bit pc-relative branch.  The lowest two bits must be zero and are
 4.33221 ++not stored in the instruction.  */
 4.33222 ++  BFD_RELOC_ARM_PCREL_BRANCH,
 4.33223 ++
 4.33224 ++/* ARM 26 bit pc-relative branch.  The lowest bit must be zero and is
 4.33225 ++not stored in the instruction.  The 2nd lowest bit comes from a 1 bit
 4.33226 ++field in the instruction.  */
 4.33227 ++  BFD_RELOC_ARM_PCREL_BLX,
 4.33228 ++
 4.33229 ++/* Thumb 22 bit pc-relative branch.  The lowest bit must be zero and is
 4.33230 ++not stored in the instruction.  The 2nd lowest bit comes from a 1 bit
 4.33231 ++field in the instruction.  */
 4.33232 ++  BFD_RELOC_THUMB_PCREL_BLX,
 4.33233 ++
 4.33234 ++/* ARM 26-bit pc-relative branch for an unconditional BL or BLX instruction.  */
 4.33235 ++  BFD_RELOC_ARM_PCREL_CALL,
 4.33236 ++
 4.33237 ++/* ARM 26-bit pc-relative branch for B or conditional BL instruction.  */
 4.33238 ++  BFD_RELOC_ARM_PCREL_JUMP,
 4.33239 ++
 4.33240 ++/* Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.
 4.33241 ++The lowest bit must be zero and is not stored in the instruction.
 4.33242 ++Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
 4.33243 ++"nn" one smaller in all cases.  Note further that BRANCH23
 4.33244 ++corresponds to R_ARM_THM_CALL.  */
 4.33245 ++  BFD_RELOC_THUMB_PCREL_BRANCH7,
 4.33246 ++  BFD_RELOC_THUMB_PCREL_BRANCH9,
 4.33247 ++  BFD_RELOC_THUMB_PCREL_BRANCH12,
 4.33248 ++  BFD_RELOC_THUMB_PCREL_BRANCH20,
 4.33249 ++  BFD_RELOC_THUMB_PCREL_BRANCH23,
 4.33250 ++  BFD_RELOC_THUMB_PCREL_BRANCH25,
 4.33251 ++
 4.33252 ++/* 12-bit immediate offset, used in ARM-format ldr and str instructions.  */
 4.33253 ++  BFD_RELOC_ARM_OFFSET_IMM,
 4.33254 ++
 4.33255 ++/* 5-bit immediate offset, used in Thumb-format ldr and str instructions.  */
 4.33256 ++  BFD_RELOC_ARM_THUMB_OFFSET,
 4.33257 ++
 4.33258 ++/* Pc-relative or absolute relocation depending on target.  Used for
 4.33259 ++entries in .init_array sections.  */
 4.33260 ++  BFD_RELOC_ARM_TARGET1,
 4.33261 ++
 4.33262 ++/* Read-only segment base relative address.  */
 4.33263 ++  BFD_RELOC_ARM_ROSEGREL32,
 4.33264 ++
 4.33265 ++/* Data segment base relative address.  */
 4.33266 ++  BFD_RELOC_ARM_SBREL32,
 4.33267 ++
 4.33268 ++/* This reloc is used for references to RTTI data from exception handling
 4.33269 ++tables.  The actual definition depends on the target.  It may be a
 4.33270 ++pc-relative or some form of GOT-indirect relocation.  */
 4.33271 ++  BFD_RELOC_ARM_TARGET2,
 4.33272 ++
 4.33273 ++/* 31-bit PC relative address.  */
 4.33274 ++  BFD_RELOC_ARM_PREL31,
 4.33275 ++
 4.33276 ++/* Low and High halfword relocations for MOVW and MOVT instructions.  */
 4.33277 ++  BFD_RELOC_ARM_MOVW,
 4.33278 ++  BFD_RELOC_ARM_MOVT,
 4.33279 ++  BFD_RELOC_ARM_MOVW_PCREL,
 4.33280 ++  BFD_RELOC_ARM_MOVT_PCREL,
 4.33281 ++  BFD_RELOC_ARM_THUMB_MOVW,
 4.33282 ++  BFD_RELOC_ARM_THUMB_MOVT,
 4.33283 ++  BFD_RELOC_ARM_THUMB_MOVW_PCREL,
 4.33284 ++  BFD_RELOC_ARM_THUMB_MOVT_PCREL,
 4.33285 ++
 4.33286 ++/* Relocations for setting up GOTs and PLTs for shared libraries.  */
 4.33287 ++  BFD_RELOC_ARM_JUMP_SLOT,
 4.33288 ++  BFD_RELOC_ARM_GLOB_DAT,
 4.33289 ++  BFD_RELOC_ARM_GOT32,
 4.33290 ++  BFD_RELOC_ARM_PLT32,
 4.33291 ++  BFD_RELOC_ARM_RELATIVE,
 4.33292 ++  BFD_RELOC_ARM_GOTOFF,
 4.33293 ++  BFD_RELOC_ARM_GOTPC,
 4.33294 ++
 4.33295 ++/* ARM thread-local storage relocations.  */
 4.33296 ++  BFD_RELOC_ARM_TLS_GD32,
 4.33297 ++  BFD_RELOC_ARM_TLS_LDO32,
 4.33298 ++  BFD_RELOC_ARM_TLS_LDM32,
 4.33299 ++  BFD_RELOC_ARM_TLS_DTPOFF32,
 4.33300 ++  BFD_RELOC_ARM_TLS_DTPMOD32,
 4.33301 ++  BFD_RELOC_ARM_TLS_TPOFF32,
 4.33302 ++  BFD_RELOC_ARM_TLS_IE32,
 4.33303 ++  BFD_RELOC_ARM_TLS_LE32,
 4.33304 ++
 4.33305 ++/* ARM group relocations.  */
 4.33306 ++  BFD_RELOC_ARM_ALU_PC_G0_NC,
 4.33307 ++  BFD_RELOC_ARM_ALU_PC_G0,
 4.33308 ++  BFD_RELOC_ARM_ALU_PC_G1_NC,
 4.33309 ++  BFD_RELOC_ARM_ALU_PC_G1,
 4.33310 ++  BFD_RELOC_ARM_ALU_PC_G2,
 4.33311 ++  BFD_RELOC_ARM_LDR_PC_G0,
 4.33312 ++  BFD_RELOC_ARM_LDR_PC_G1,
 4.33313 ++  BFD_RELOC_ARM_LDR_PC_G2,
 4.33314 ++  BFD_RELOC_ARM_LDRS_PC_G0,
 4.33315 ++  BFD_RELOC_ARM_LDRS_PC_G1,
 4.33316 ++  BFD_RELOC_ARM_LDRS_PC_G2,
 4.33317 ++  BFD_RELOC_ARM_LDC_PC_G0,
 4.33318 ++  BFD_RELOC_ARM_LDC_PC_G1,
 4.33319 ++  BFD_RELOC_ARM_LDC_PC_G2,
 4.33320 ++  BFD_RELOC_ARM_ALU_SB_G0_NC,
 4.33321 ++  BFD_RELOC_ARM_ALU_SB_G0,
 4.33322 ++  BFD_RELOC_ARM_ALU_SB_G1_NC,
 4.33323 ++  BFD_RELOC_ARM_ALU_SB_G1,
 4.33324 ++  BFD_RELOC_ARM_ALU_SB_G2,
 4.33325 ++  BFD_RELOC_ARM_LDR_SB_G0,
 4.33326 ++  BFD_RELOC_ARM_LDR_SB_G1,
 4.33327 ++  BFD_RELOC_ARM_LDR_SB_G2,
 4.33328 ++  BFD_RELOC_ARM_LDRS_SB_G0,
 4.33329 ++  BFD_RELOC_ARM_LDRS_SB_G1,
 4.33330 ++  BFD_RELOC_ARM_LDRS_SB_G2,
 4.33331 ++  BFD_RELOC_ARM_LDC_SB_G0,
 4.33332 ++  BFD_RELOC_ARM_LDC_SB_G1,
 4.33333 ++  BFD_RELOC_ARM_LDC_SB_G2,
 4.33334 ++
 4.33335 ++/* These relocs are only used within the ARM assembler.  They are not
 4.33336 ++(at present) written to any object files.  */
 4.33337 ++  BFD_RELOC_ARM_IMMEDIATE,
 4.33338 ++  BFD_RELOC_ARM_ADRL_IMMEDIATE,
 4.33339 ++  BFD_RELOC_ARM_T32_IMMEDIATE,
 4.33340 ++  BFD_RELOC_ARM_T32_ADD_IMM,
 4.33341 ++  BFD_RELOC_ARM_T32_IMM12,
 4.33342 ++  BFD_RELOC_ARM_T32_ADD_PC12,
 4.33343 ++  BFD_RELOC_ARM_SHIFT_IMM,
 4.33344 ++  BFD_RELOC_ARM_SMC,
 4.33345 ++  BFD_RELOC_ARM_SWI,
 4.33346 ++  BFD_RELOC_ARM_MULTI,
 4.33347 ++  BFD_RELOC_ARM_CP_OFF_IMM,
 4.33348 ++  BFD_RELOC_ARM_CP_OFF_IMM_S2,
 4.33349 ++  BFD_RELOC_ARM_T32_CP_OFF_IMM,
 4.33350 ++  BFD_RELOC_ARM_T32_CP_OFF_IMM_S2,
 4.33351 ++  BFD_RELOC_ARM_ADR_IMM,
 4.33352 ++  BFD_RELOC_ARM_LDR_IMM,
 4.33353 ++  BFD_RELOC_ARM_LITERAL,
 4.33354 ++  BFD_RELOC_ARM_IN_POOL,
 4.33355 ++  BFD_RELOC_ARM_OFFSET_IMM8,
 4.33356 ++  BFD_RELOC_ARM_T32_OFFSET_U8,
 4.33357 ++  BFD_RELOC_ARM_T32_OFFSET_IMM,
 4.33358 ++  BFD_RELOC_ARM_HWLITERAL,
 4.33359 ++  BFD_RELOC_ARM_THUMB_ADD,
 4.33360 ++  BFD_RELOC_ARM_THUMB_IMM,
 4.33361 ++  BFD_RELOC_ARM_THUMB_SHIFT,
 4.33362 ++
 4.33363 ++/* Renesas / SuperH SH relocs.  Not all of these appear in object files.  */
 4.33364 ++  BFD_RELOC_SH_PCDISP8BY2,
 4.33365 ++  BFD_RELOC_SH_PCDISP12BY2,
 4.33366 ++  BFD_RELOC_SH_IMM3,
 4.33367 ++  BFD_RELOC_SH_IMM3U,
 4.33368 ++  BFD_RELOC_SH_DISP12,
 4.33369 ++  BFD_RELOC_SH_DISP12BY2,
 4.33370 ++  BFD_RELOC_SH_DISP12BY4,
 4.33371 ++  BFD_RELOC_SH_DISP12BY8,
 4.33372 ++  BFD_RELOC_SH_DISP20,
 4.33373 ++  BFD_RELOC_SH_DISP20BY8,
 4.33374 ++  BFD_RELOC_SH_IMM4,
 4.33375 ++  BFD_RELOC_SH_IMM4BY2,
 4.33376 ++  BFD_RELOC_SH_IMM4BY4,
 4.33377 ++  BFD_RELOC_SH_IMM8,
 4.33378 ++  BFD_RELOC_SH_IMM8BY2,
 4.33379 ++  BFD_RELOC_SH_IMM8BY4,
 4.33380 ++  BFD_RELOC_SH_PCRELIMM8BY2,
 4.33381 ++  BFD_RELOC_SH_PCRELIMM8BY4,
 4.33382 ++  BFD_RELOC_SH_SWITCH16,
 4.33383 ++  BFD_RELOC_SH_SWITCH32,
 4.33384 ++  BFD_RELOC_SH_USES,
 4.33385 ++  BFD_RELOC_SH_COUNT,
 4.33386 ++  BFD_RELOC_SH_ALIGN,
 4.33387 ++  BFD_RELOC_SH_CODE,
 4.33388 ++  BFD_RELOC_SH_DATA,
 4.33389 ++  BFD_RELOC_SH_LABEL,
 4.33390 ++  BFD_RELOC_SH_LOOP_START,
 4.33391 ++  BFD_RELOC_SH_LOOP_END,
 4.33392 ++  BFD_RELOC_SH_COPY,
 4.33393 ++  BFD_RELOC_SH_GLOB_DAT,
 4.33394 ++  BFD_RELOC_SH_JMP_SLOT,
 4.33395 ++  BFD_RELOC_SH_RELATIVE,
 4.33396 ++  BFD_RELOC_SH_GOTPC,
 4.33397 ++  BFD_RELOC_SH_GOT_LOW16,
 4.33398 ++  BFD_RELOC_SH_GOT_MEDLOW16,
 4.33399 ++  BFD_RELOC_SH_GOT_MEDHI16,
 4.33400 ++  BFD_RELOC_SH_GOT_HI16,
 4.33401 ++  BFD_RELOC_SH_GOTPLT_LOW16,
 4.33402 ++  BFD_RELOC_SH_GOTPLT_MEDLOW16,
 4.33403 ++  BFD_RELOC_SH_GOTPLT_MEDHI16,
 4.33404 ++  BFD_RELOC_SH_GOTPLT_HI16,
 4.33405 ++  BFD_RELOC_SH_PLT_LOW16,
 4.33406 ++  BFD_RELOC_SH_PLT_MEDLOW16,
 4.33407 ++  BFD_RELOC_SH_PLT_MEDHI16,
 4.33408 ++  BFD_RELOC_SH_PLT_HI16,
 4.33409 ++  BFD_RELOC_SH_GOTOFF_LOW16,
 4.33410 ++  BFD_RELOC_SH_GOTOFF_MEDLOW16,
 4.33411 ++  BFD_RELOC_SH_GOTOFF_MEDHI16,
 4.33412 ++  BFD_RELOC_SH_GOTOFF_HI16,
 4.33413 ++  BFD_RELOC_SH_GOTPC_LOW16,
 4.33414 ++  BFD_RELOC_SH_GOTPC_MEDLOW16,
 4.33415 ++  BFD_RELOC_SH_GOTPC_MEDHI16,
 4.33416 ++  BFD_RELOC_SH_GOTPC_HI16,
 4.33417 ++  BFD_RELOC_SH_COPY64,
 4.33418 ++  BFD_RELOC_SH_GLOB_DAT64,
 4.33419 ++  BFD_RELOC_SH_JMP_SLOT64,
 4.33420 ++  BFD_RELOC_SH_RELATIVE64,
 4.33421 ++  BFD_RELOC_SH_GOT10BY4,
 4.33422 ++  BFD_RELOC_SH_GOT10BY8,
 4.33423 ++  BFD_RELOC_SH_GOTPLT10BY4,
 4.33424 ++  BFD_RELOC_SH_GOTPLT10BY8,
 4.33425 ++  BFD_RELOC_SH_GOTPLT32,
 4.33426 ++  BFD_RELOC_SH_SHMEDIA_CODE,
 4.33427 ++  BFD_RELOC_SH_IMMU5,
 4.33428 ++  BFD_RELOC_SH_IMMS6,
 4.33429 ++  BFD_RELOC_SH_IMMS6BY32,
 4.33430 ++  BFD_RELOC_SH_IMMU6,
 4.33431 ++  BFD_RELOC_SH_IMMS10,
 4.33432 ++  BFD_RELOC_SH_IMMS10BY2,
 4.33433 ++  BFD_RELOC_SH_IMMS10BY4,
 4.33434 ++  BFD_RELOC_SH_IMMS10BY8,
 4.33435 ++  BFD_RELOC_SH_IMMS16,
 4.33436 ++  BFD_RELOC_SH_IMMU16,
 4.33437 ++  BFD_RELOC_SH_IMM_LOW16,
 4.33438 ++  BFD_RELOC_SH_IMM_LOW16_PCREL,
 4.33439 ++  BFD_RELOC_SH_IMM_MEDLOW16,
 4.33440 ++  BFD_RELOC_SH_IMM_MEDLOW16_PCREL,
 4.33441 ++  BFD_RELOC_SH_IMM_MEDHI16,
 4.33442 ++  BFD_RELOC_SH_IMM_MEDHI16_PCREL,
 4.33443 ++  BFD_RELOC_SH_IMM_HI16,
 4.33444 ++  BFD_RELOC_SH_IMM_HI16_PCREL,
 4.33445 ++  BFD_RELOC_SH_PT_16,
 4.33446 ++  BFD_RELOC_SH_TLS_GD_32,
 4.33447 ++  BFD_RELOC_SH_TLS_LD_32,
 4.33448 ++  BFD_RELOC_SH_TLS_LDO_32,
 4.33449 ++  BFD_RELOC_SH_TLS_IE_32,
 4.33450 ++  BFD_RELOC_SH_TLS_LE_32,
 4.33451 ++  BFD_RELOC_SH_TLS_DTPMOD32,
 4.33452 ++  BFD_RELOC_SH_TLS_DTPOFF32,
 4.33453 ++  BFD_RELOC_SH_TLS_TPOFF32,
 4.33454 ++
 4.33455 ++/* ARC Cores relocs.
 4.33456 ++ARC 22 bit pc-relative branch.  The lowest two bits must be zero and are
 4.33457 ++not stored in the instruction.  The high 20 bits are installed in bits 26
 4.33458 ++through 7 of the instruction.  */
 4.33459 ++  BFD_RELOC_ARC_B22_PCREL,
 4.33460 ++
 4.33461 ++/* ARC 26 bit absolute branch.  The lowest two bits must be zero and are not
 4.33462 ++stored in the instruction.  The high 24 bits are installed in bits 23
 4.33463 ++through 0.  */
 4.33464 ++  BFD_RELOC_ARC_B26,
 4.33465 ++
 4.33466 ++/* ADI Blackfin 16 bit immediate absolute reloc.  */
 4.33467 ++  BFD_RELOC_BFIN_16_IMM,
 4.33468 ++
 4.33469 ++/* ADI Blackfin 16 bit immediate absolute reloc higher 16 bits.  */
 4.33470 ++  BFD_RELOC_BFIN_16_HIGH,
 4.33471 ++
 4.33472 ++/* ADI Blackfin 'a' part of LSETUP.  */
 4.33473 ++  BFD_RELOC_BFIN_4_PCREL,
 4.33474 ++
 4.33475 ++/* ADI Blackfin.  */
 4.33476 ++  BFD_RELOC_BFIN_5_PCREL,
 4.33477 ++
 4.33478 ++/* ADI Blackfin 16 bit immediate absolute reloc lower 16 bits.  */
 4.33479 ++  BFD_RELOC_BFIN_16_LOW,
 4.33480 ++
 4.33481 ++/* ADI Blackfin.  */
 4.33482 ++  BFD_RELOC_BFIN_10_PCREL,
 4.33483 ++
 4.33484 ++/* ADI Blackfin 'b' part of LSETUP.  */
 4.33485 ++  BFD_RELOC_BFIN_11_PCREL,
 4.33486 ++
 4.33487 ++/* ADI Blackfin.  */
 4.33488 ++  BFD_RELOC_BFIN_12_PCREL_JUMP,
 4.33489 ++
 4.33490 ++/* ADI Blackfin Short jump, pcrel.  */
 4.33491 ++  BFD_RELOC_BFIN_12_PCREL_JUMP_S,
 4.33492 ++
 4.33493 ++/* ADI Blackfin Call.x not implemented.  */
 4.33494 ++  BFD_RELOC_BFIN_24_PCREL_CALL_X,
 4.33495 ++
 4.33496 ++/* ADI Blackfin Long Jump pcrel.  */
 4.33497 ++  BFD_RELOC_BFIN_24_PCREL_JUMP_L,
 4.33498 ++
 4.33499 ++/* ADI Blackfin FD-PIC relocations.  */
 4.33500 ++  BFD_RELOC_BFIN_GOT17M4,
 4.33501 ++  BFD_RELOC_BFIN_GOTHI,
 4.33502 ++  BFD_RELOC_BFIN_GOTLO,
 4.33503 ++  BFD_RELOC_BFIN_FUNCDESC,
 4.33504 ++  BFD_RELOC_BFIN_FUNCDESC_GOT17M4,
 4.33505 ++  BFD_RELOC_BFIN_FUNCDESC_GOTHI,
 4.33506 ++  BFD_RELOC_BFIN_FUNCDESC_GOTLO,
 4.33507 ++  BFD_RELOC_BFIN_FUNCDESC_VALUE,
 4.33508 ++  BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4,
 4.33509 ++  BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI,
 4.33510 ++  BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO,
 4.33511 ++  BFD_RELOC_BFIN_GOTOFF17M4,
 4.33512 ++  BFD_RELOC_BFIN_GOTOFFHI,
 4.33513 ++  BFD_RELOC_BFIN_GOTOFFLO,
 4.33514 ++
 4.33515 ++/* ADI Blackfin GOT relocation.  */
 4.33516 ++  BFD_RELOC_BFIN_GOT,
 4.33517 ++
 4.33518 ++/* ADI Blackfin PLTPC relocation.  */
 4.33519 ++  BFD_RELOC_BFIN_PLTPC,
 4.33520 ++
 4.33521 ++/* ADI Blackfin arithmetic relocation.  */
 4.33522 ++  BFD_ARELOC_BFIN_PUSH,
 4.33523 ++
 4.33524 ++/* ADI Blackfin arithmetic relocation.  */
 4.33525 ++  BFD_ARELOC_BFIN_CONST,
 4.33526 ++
 4.33527 ++/* ADI Blackfin arithmetic relocation.  */
 4.33528 ++  BFD_ARELOC_BFIN_ADD,
 4.33529 ++
 4.33530 ++/* ADI Blackfin arithmetic relocation.  */
 4.33531 ++  BFD_ARELOC_BFIN_SUB,
 4.33532 ++
 4.33533 ++/* ADI Blackfin arithmetic relocation.  */
 4.33534 ++  BFD_ARELOC_BFIN_MULT,
 4.33535 ++
 4.33536 ++/* ADI Blackfin arithmetic relocation.  */
 4.33537 ++  BFD_ARELOC_BFIN_DIV,
 4.33538 ++
 4.33539 ++/* ADI Blackfin arithmetic relocation.  */
 4.33540 ++  BFD_ARELOC_BFIN_MOD,
 4.33541 ++
 4.33542 ++/* ADI Blackfin arithmetic relocation.  */
 4.33543 ++  BFD_ARELOC_BFIN_LSHIFT,
 4.33544 ++
 4.33545 ++/* ADI Blackfin arithmetic relocation.  */
 4.33546 ++  BFD_ARELOC_BFIN_RSHIFT,
 4.33547 ++
 4.33548 ++/* ADI Blackfin arithmetic relocation.  */
 4.33549 ++  BFD_ARELOC_BFIN_AND,
 4.33550 ++
 4.33551 ++/* ADI Blackfin arithmetic relocation.  */
 4.33552 ++  BFD_ARELOC_BFIN_OR,
 4.33553 ++
 4.33554 ++/* ADI Blackfin arithmetic relocation.  */
 4.33555 ++  BFD_ARELOC_BFIN_XOR,
 4.33556 ++
 4.33557 ++/* ADI Blackfin arithmetic relocation.  */
 4.33558 ++  BFD_ARELOC_BFIN_LAND,
 4.33559 ++
 4.33560 ++/* ADI Blackfin arithmetic relocation.  */
 4.33561 ++  BFD_ARELOC_BFIN_LOR,
 4.33562 ++
 4.33563 ++/* ADI Blackfin arithmetic relocation.  */
 4.33564 ++  BFD_ARELOC_BFIN_LEN,
 4.33565 ++
 4.33566 ++/* ADI Blackfin arithmetic relocation.  */
 4.33567 ++  BFD_ARELOC_BFIN_NEG,
 4.33568 ++
 4.33569 ++/* ADI Blackfin arithmetic relocation.  */
 4.33570 ++  BFD_ARELOC_BFIN_COMP,
 4.33571 ++
 4.33572 ++/* ADI Blackfin arithmetic relocation.  */
 4.33573 ++  BFD_ARELOC_BFIN_PAGE,
 4.33574 ++
 4.33575 ++/* ADI Blackfin arithmetic relocation.  */
 4.33576 ++  BFD_ARELOC_BFIN_HWPAGE,
 4.33577 ++
 4.33578 ++/* ADI Blackfin arithmetic relocation.  */
 4.33579 ++  BFD_ARELOC_BFIN_ADDR,
 4.33580 ++
 4.33581 ++/* Mitsubishi D10V relocs.
 4.33582 ++This is a 10-bit reloc with the right 2 bits
 4.33583 ++assumed to be 0.  */
 4.33584 ++  BFD_RELOC_D10V_10_PCREL_R,
 4.33585 ++
 4.33586 ++/* Mitsubishi D10V relocs.
 4.33587 ++This is a 10-bit reloc with the right 2 bits
 4.33588 ++assumed to be 0.  This is the same as the previous reloc
 4.33589 ++except it is in the left container, i.e.,
 4.33590 ++shifted left 15 bits.  */
 4.33591 ++  BFD_RELOC_D10V_10_PCREL_L,
 4.33592 ++
 4.33593 ++/* This is an 18-bit reloc with the right 2 bits
 4.33594 ++assumed to be 0.  */
 4.33595 ++  BFD_RELOC_D10V_18,
 4.33596 ++
 4.33597 ++/* This is an 18-bit reloc with the right 2 bits
 4.33598 ++assumed to be 0.  */
 4.33599 ++  BFD_RELOC_D10V_18_PCREL,
 4.33600 ++
 4.33601 ++/* Mitsubishi D30V relocs.
 4.33602 ++This is a 6-bit absolute reloc.  */
 4.33603 ++  BFD_RELOC_D30V_6,
 4.33604 ++
 4.33605 ++/* This is a 6-bit pc-relative reloc with
 4.33606 ++the right 3 bits assumed to be 0.  */
 4.33607 ++  BFD_RELOC_D30V_9_PCREL,
 4.33608 ++
 4.33609 ++/* This is a 6-bit pc-relative reloc with
 4.33610 ++the right 3 bits assumed to be 0. Same
 4.33611 ++as the previous reloc but on the right side
 4.33612 ++of the container.  */
 4.33613 ++  BFD_RELOC_D30V_9_PCREL_R,
 4.33614 ++
 4.33615 ++/* This is a 12-bit absolute reloc with the
 4.33616 ++right 3 bitsassumed to be 0.  */
 4.33617 ++  BFD_RELOC_D30V_15,
 4.33618 ++
 4.33619 ++/* This is a 12-bit pc-relative reloc with
 4.33620 ++the right 3 bits assumed to be 0.  */
 4.33621 ++  BFD_RELOC_D30V_15_PCREL,
 4.33622 ++
 4.33623 ++/* This is a 12-bit pc-relative reloc with
 4.33624 ++the right 3 bits assumed to be 0. Same
 4.33625 ++as the previous reloc but on the right side
 4.33626 ++of the container.  */
 4.33627 ++  BFD_RELOC_D30V_15_PCREL_R,
 4.33628 ++
 4.33629 ++/* This is an 18-bit absolute reloc with
 4.33630 ++the right 3 bits assumed to be 0.  */
 4.33631 ++  BFD_RELOC_D30V_21,
 4.33632 ++
 4.33633 ++/* This is an 18-bit pc-relative reloc with
 4.33634 ++the right 3 bits assumed to be 0.  */
 4.33635 ++  BFD_RELOC_D30V_21_PCREL,
 4.33636 ++
 4.33637 ++/* This is an 18-bit pc-relative reloc with
 4.33638 ++the right 3 bits assumed to be 0. Same
 4.33639 ++as the previous reloc but on the right side
 4.33640 ++of the container.  */
 4.33641 ++  BFD_RELOC_D30V_21_PCREL_R,
 4.33642 ++
 4.33643 ++/* This is a 32-bit absolute reloc.  */
 4.33644 ++  BFD_RELOC_D30V_32,
 4.33645 ++
 4.33646 ++/* This is a 32-bit pc-relative reloc.  */
 4.33647 ++  BFD_RELOC_D30V_32_PCREL,
 4.33648 ++
 4.33649 ++/* DLX relocs  */
 4.33650 ++  BFD_RELOC_DLX_HI16_S,
 4.33651 ++
 4.33652 ++/* DLX relocs  */
 4.33653 ++  BFD_RELOC_DLX_LO16,
 4.33654 ++
 4.33655 ++/* DLX relocs  */
 4.33656 ++  BFD_RELOC_DLX_JMP26,
 4.33657 ++
 4.33658 ++/* Renesas M16C/M32C Relocations.  */
 4.33659 ++  BFD_RELOC_M32C_HI8,
 4.33660 ++  BFD_RELOC_M32C_RL_JUMP,
 4.33661 ++  BFD_RELOC_M32C_RL_1ADDR,
 4.33662 ++  BFD_RELOC_M32C_RL_2ADDR,
 4.33663 ++
 4.33664 ++/* Renesas M32R (formerly Mitsubishi M32R) relocs.
 4.33665 ++This is a 24 bit absolute address.  */
 4.33666 ++  BFD_RELOC_M32R_24,
 4.33667 ++
 4.33668 ++/* This is a 10-bit pc-relative reloc with the right 2 bits assumed to be 0.  */
 4.33669 ++  BFD_RELOC_M32R_10_PCREL,
 4.33670 ++
 4.33671 ++/* This is an 18-bit reloc with the right 2 bits assumed to be 0.  */
 4.33672 ++  BFD_RELOC_M32R_18_PCREL,
 4.33673 ++
 4.33674 ++/* This is a 26-bit reloc with the right 2 bits assumed to be 0.  */
 4.33675 ++  BFD_RELOC_M32R_26_PCREL,
 4.33676 ++
 4.33677 ++/* This is a 16-bit reloc containing the high 16 bits of an address
 4.33678 ++used when the lower 16 bits are treated as unsigned.  */
 4.33679 ++  BFD_RELOC_M32R_HI16_ULO,
 4.33680 ++
 4.33681 ++/* This is a 16-bit reloc containing the high 16 bits of an address
 4.33682 ++used when the lower 16 bits are treated as signed.  */
 4.33683 ++  BFD_RELOC_M32R_HI16_SLO,
 4.33684 ++
 4.33685 ++/* This is a 16-bit reloc containing the lower 16 bits of an address.  */
 4.33686 ++  BFD_RELOC_M32R_LO16,
 4.33687 ++
 4.33688 ++/* This is a 16-bit reloc containing the small data area offset for use in
 4.33689 ++add3, load, and store instructions.  */
 4.33690 ++  BFD_RELOC_M32R_SDA16,
 4.33691 ++
 4.33692 ++/* For PIC.  */
 4.33693 ++  BFD_RELOC_M32R_GOT24,
 4.33694 ++  BFD_RELOC_M32R_26_PLTREL,
 4.33695 ++  BFD_RELOC_M32R_COPY,
 4.33696 ++  BFD_RELOC_M32R_GLOB_DAT,
 4.33697 ++  BFD_RELOC_M32R_JMP_SLOT,
 4.33698 ++  BFD_RELOC_M32R_RELATIVE,
 4.33699 ++  BFD_RELOC_M32R_GOTOFF,
 4.33700 ++  BFD_RELOC_M32R_GOTOFF_HI_ULO,
 4.33701 ++  BFD_RELOC_M32R_GOTOFF_HI_SLO,
 4.33702 ++  BFD_RELOC_M32R_GOTOFF_LO,
 4.33703 ++  BFD_RELOC_M32R_GOTPC24,
 4.33704 ++  BFD_RELOC_M32R_GOT16_HI_ULO,
 4.33705 ++  BFD_RELOC_M32R_GOT16_HI_SLO,
 4.33706 ++  BFD_RELOC_M32R_GOT16_LO,
 4.33707 ++  BFD_RELOC_M32R_GOTPC_HI_ULO,
 4.33708 ++  BFD_RELOC_M32R_GOTPC_HI_SLO,
 4.33709 ++  BFD_RELOC_M32R_GOTPC_LO,
 4.33710 ++
 4.33711 ++/* This is a 9-bit reloc  */
 4.33712 ++  BFD_RELOC_V850_9_PCREL,
 4.33713 ++
 4.33714 ++/* This is a 22-bit reloc  */
 4.33715 ++  BFD_RELOC_V850_22_PCREL,
 4.33716 ++
 4.33717 ++/* This is a 16 bit offset from the short data area pointer.  */
 4.33718 ++  BFD_RELOC_V850_SDA_16_16_OFFSET,
 4.33719 ++
 4.33720 ++/* This is a 16 bit offset (of which only 15 bits are used) from the
 4.33721 ++short data area pointer.  */
 4.33722 ++  BFD_RELOC_V850_SDA_15_16_OFFSET,
 4.33723 ++
 4.33724 ++/* This is a 16 bit offset from the zero data area pointer.  */
 4.33725 ++  BFD_RELOC_V850_ZDA_16_16_OFFSET,
 4.33726 ++
 4.33727 ++/* This is a 16 bit offset (of which only 15 bits are used) from the
 4.33728 ++zero data area pointer.  */
 4.33729 ++  BFD_RELOC_V850_ZDA_15_16_OFFSET,
 4.33730 ++
 4.33731 ++/* This is an 8 bit offset (of which only 6 bits are used) from the
 4.33732 ++tiny data area pointer.  */
 4.33733 ++  BFD_RELOC_V850_TDA_6_8_OFFSET,
 4.33734 ++
 4.33735 ++/* This is an 8bit offset (of which only 7 bits are used) from the tiny
 4.33736 ++data area pointer.  */
 4.33737 ++  BFD_RELOC_V850_TDA_7_8_OFFSET,
 4.33738 ++
 4.33739 ++/* This is a 7 bit offset from the tiny data area pointer.  */
 4.33740 ++  BFD_RELOC_V850_TDA_7_7_OFFSET,
 4.33741 ++
 4.33742 ++/* This is a 16 bit offset from the tiny data area pointer.  */
 4.33743 ++  BFD_RELOC_V850_TDA_16_16_OFFSET,
 4.33744 ++
 4.33745 ++/* This is a 5 bit offset (of which only 4 bits are used) from the tiny
 4.33746 ++data area pointer.  */
 4.33747 ++  BFD_RELOC_V850_TDA_4_5_OFFSET,
 4.33748 ++
 4.33749 ++/* This is a 4 bit offset from the tiny data area pointer.  */
 4.33750 ++  BFD_RELOC_V850_TDA_4_4_OFFSET,
 4.33751 ++
 4.33752 ++/* This is a 16 bit offset from the short data area pointer, with the
 4.33753 ++bits placed non-contiguously in the instruction.  */
 4.33754 ++  BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET,
 4.33755 ++
 4.33756 ++/* This is a 16 bit offset from the zero data area pointer, with the
 4.33757 ++bits placed non-contiguously in the instruction.  */
 4.33758 ++  BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET,
 4.33759 ++
 4.33760 ++/* This is a 6 bit offset from the call table base pointer.  */
 4.33761 ++  BFD_RELOC_V850_CALLT_6_7_OFFSET,
 4.33762 ++
 4.33763 ++/* This is a 16 bit offset from the call table base pointer.  */
 4.33764 ++  BFD_RELOC_V850_CALLT_16_16_OFFSET,
 4.33765 ++
 4.33766 ++/* Used for relaxing indirect function calls.  */
 4.33767 ++  BFD_RELOC_V850_LONGCALL,
 4.33768 ++
 4.33769 ++/* Used for relaxing indirect jumps.  */
 4.33770 ++  BFD_RELOC_V850_LONGJUMP,
 4.33771 ++
 4.33772 ++/* Used to maintain alignment whilst relaxing.  */
 4.33773 ++  BFD_RELOC_V850_ALIGN,
 4.33774 ++
 4.33775 ++/* This is a variation of BFD_RELOC_LO16 that can be used in v850e ld.bu
 4.33776 ++instructions.  */
 4.33777 ++  BFD_RELOC_V850_LO16_SPLIT_OFFSET,
 4.33778 ++
 4.33779 ++/* This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the
 4.33780 ++instruction.  */
 4.33781 ++  BFD_RELOC_MN10300_32_PCREL,
 4.33782 ++
 4.33783 ++/* This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the
 4.33784 ++instruction.  */
 4.33785 ++  BFD_RELOC_MN10300_16_PCREL,
 4.33786 ++
 4.33787 ++/* This is a 8bit DP reloc for the tms320c30, where the most
 4.33788 ++significant 8 bits of a 24 bit word are placed into the least
 4.33789 ++significant 8 bits of the opcode.  */
 4.33790 ++  BFD_RELOC_TIC30_LDP,
 4.33791 ++
 4.33792 ++/* This is a 7bit reloc for the tms320c54x, where the least
 4.33793 ++significant 7 bits of a 16 bit word are placed into the least
 4.33794 ++significant 7 bits of the opcode.  */
 4.33795 ++  BFD_RELOC_TIC54X_PARTLS7,
 4.33796 ++
 4.33797 ++/* This is a 9bit DP reloc for the tms320c54x, where the most
 4.33798 ++significant 9 bits of a 16 bit word are placed into the least
 4.33799 ++significant 9 bits of the opcode.  */
 4.33800 ++  BFD_RELOC_TIC54X_PARTMS9,
 4.33801 ++
 4.33802 ++/* This is an extended address 23-bit reloc for the tms320c54x.  */
 4.33803 ++  BFD_RELOC_TIC54X_23,
 4.33804 ++
 4.33805 ++/* This is a 16-bit reloc for the tms320c54x, where the least
 4.33806 ++significant 16 bits of a 23-bit extended address are placed into
 4.33807 ++the opcode.  */
 4.33808 ++  BFD_RELOC_TIC54X_16_OF_23,
 4.33809 ++
 4.33810 ++/* This is a reloc for the tms320c54x, where the most
 4.33811 ++significant 7 bits of a 23-bit extended address are placed into
 4.33812 ++the opcode.  */
 4.33813 ++  BFD_RELOC_TIC54X_MS7_OF_23,
 4.33814 ++
 4.33815 ++/* This is a 48 bit reloc for the FR30 that stores 32 bits.  */
 4.33816 ++  BFD_RELOC_FR30_48,
 4.33817 ++
 4.33818 ++/* This is a 32 bit reloc for the FR30 that stores 20 bits split up into
 4.33819 ++two sections.  */
 4.33820 ++  BFD_RELOC_FR30_20,
 4.33821 ++
 4.33822 ++/* This is a 16 bit reloc for the FR30 that stores a 6 bit word offset in
 4.33823 ++4 bits.  */
 4.33824 ++  BFD_RELOC_FR30_6_IN_4,
 4.33825 ++
 4.33826 ++/* This is a 16 bit reloc for the FR30 that stores an 8 bit byte offset
 4.33827 ++into 8 bits.  */
 4.33828 ++  BFD_RELOC_FR30_8_IN_8,
 4.33829 ++
 4.33830 ++/* This is a 16 bit reloc for the FR30 that stores a 9 bit short offset
 4.33831 ++into 8 bits.  */
 4.33832 ++  BFD_RELOC_FR30_9_IN_8,
 4.33833 ++
 4.33834 ++/* This is a 16 bit reloc for the FR30 that stores a 10 bit word offset
 4.33835 ++into 8 bits.  */
 4.33836 ++  BFD_RELOC_FR30_10_IN_8,
 4.33837 ++
 4.33838 ++/* This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
 4.33839 ++short offset into 8 bits.  */
 4.33840 ++  BFD_RELOC_FR30_9_PCREL,
 4.33841 ++
 4.33842 ++/* This is a 16 bit reloc for the FR30 that stores a 12 bit pc relative
 4.33843 ++short offset into 11 bits.  */
 4.33844 ++  BFD_RELOC_FR30_12_PCREL,
 4.33845 ++
 4.33846 ++/* Motorola Mcore relocations.  */
 4.33847 ++  BFD_RELOC_MCORE_PCREL_IMM8BY4,
 4.33848 ++  BFD_RELOC_MCORE_PCREL_IMM11BY2,
 4.33849 ++  BFD_RELOC_MCORE_PCREL_IMM4BY2,
 4.33850 ++  BFD_RELOC_MCORE_PCREL_32,
 4.33851 ++  BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2,
 4.33852 ++  BFD_RELOC_MCORE_RVA,
 4.33853 ++
 4.33854 ++/* Toshiba Media Processor Relocations.  */
 4.33855 ++  BFD_RELOC_MEP_8,
 4.33856 ++  BFD_RELOC_MEP_16,
 4.33857 ++  BFD_RELOC_MEP_32,
 4.33858 ++  BFD_RELOC_MEP_PCREL8A2,
 4.33859 ++  BFD_RELOC_MEP_PCREL12A2,
 4.33860 ++  BFD_RELOC_MEP_PCREL17A2,
 4.33861 ++  BFD_RELOC_MEP_PCREL24A2,
 4.33862 ++  BFD_RELOC_MEP_PCABS24A2,
 4.33863 ++  BFD_RELOC_MEP_LOW16,
 4.33864 ++  BFD_RELOC_MEP_HI16U,
 4.33865 ++  BFD_RELOC_MEP_HI16S,
 4.33866 ++  BFD_RELOC_MEP_GPREL,
 4.33867 ++  BFD_RELOC_MEP_TPREL,
 4.33868 ++  BFD_RELOC_MEP_TPREL7,
 4.33869 ++  BFD_RELOC_MEP_TPREL7A2,
 4.33870 ++  BFD_RELOC_MEP_TPREL7A4,
 4.33871 ++  BFD_RELOC_MEP_UIMM24,
 4.33872 ++  BFD_RELOC_MEP_ADDR24A4,
 4.33873 ++  BFD_RELOC_MEP_GNU_VTINHERIT,
 4.33874 ++  BFD_RELOC_MEP_GNU_VTENTRY,
 4.33875 ++
 4.33876 ++
 4.33877 ++/* These are relocations for the GETA instruction.  */
 4.33878 ++  BFD_RELOC_MMIX_GETA,
 4.33879 ++  BFD_RELOC_MMIX_GETA_1,
 4.33880 ++  BFD_RELOC_MMIX_GETA_2,
 4.33881 ++  BFD_RELOC_MMIX_GETA_3,
 4.33882 ++
 4.33883 ++/* These are relocations for a conditional branch instruction.  */
 4.33884 ++  BFD_RELOC_MMIX_CBRANCH,
 4.33885 ++  BFD_RELOC_MMIX_CBRANCH_J,
 4.33886 ++  BFD_RELOC_MMIX_CBRANCH_1,
 4.33887 ++  BFD_RELOC_MMIX_CBRANCH_2,
 4.33888 ++  BFD_RELOC_MMIX_CBRANCH_3,
 4.33889 ++
 4.33890 ++/* These are relocations for the PUSHJ instruction.  */
 4.33891 ++  BFD_RELOC_MMIX_PUSHJ,
 4.33892 ++  BFD_RELOC_MMIX_PUSHJ_1,
 4.33893 ++  BFD_RELOC_MMIX_PUSHJ_2,
 4.33894 ++  BFD_RELOC_MMIX_PUSHJ_3,
 4.33895 ++  BFD_RELOC_MMIX_PUSHJ_STUBBABLE,
 4.33896 ++
 4.33897 ++/* These are relocations for the JMP instruction.  */
 4.33898 ++  BFD_RELOC_MMIX_JMP,
 4.33899 ++  BFD_RELOC_MMIX_JMP_1,
 4.33900 ++  BFD_RELOC_MMIX_JMP_2,
 4.33901 ++  BFD_RELOC_MMIX_JMP_3,
 4.33902 ++
 4.33903 ++/* This is a relocation for a relative address as in a GETA instruction or
 4.33904 ++a branch.  */
 4.33905 ++  BFD_RELOC_MMIX_ADDR19,
 4.33906 ++
 4.33907 ++/* This is a relocation for a relative address as in a JMP instruction.  */
 4.33908 ++  BFD_RELOC_MMIX_ADDR27,
 4.33909 ++
 4.33910 ++/* This is a relocation for an instruction field that may be a general
 4.33911 ++register or a value 0..255.  */
 4.33912 ++  BFD_RELOC_MMIX_REG_OR_BYTE,
 4.33913 ++
 4.33914 ++/* This is a relocation for an instruction field that may be a general
 4.33915 ++register.  */
 4.33916 ++  BFD_RELOC_MMIX_REG,
 4.33917 ++
 4.33918 ++/* This is a relocation for two instruction fields holding a register and
 4.33919 ++an offset, the equivalent of the relocation.  */
 4.33920 ++  BFD_RELOC_MMIX_BASE_PLUS_OFFSET,
 4.33921 ++
 4.33922 ++/* This relocation is an assertion that the expression is not allocated as
 4.33923 ++a global register.  It does not modify contents.  */
 4.33924 ++  BFD_RELOC_MMIX_LOCAL,
 4.33925 ++
 4.33926 ++/* This is a 16 bit reloc for the AVR that stores 8 bit pc relative
 4.33927 ++short offset into 7 bits.  */
 4.33928 ++  BFD_RELOC_AVR_7_PCREL,
 4.33929 ++
 4.33930 ++/* This is a 16 bit reloc for the AVR that stores 13 bit pc relative
 4.33931 ++short offset into 12 bits.  */
 4.33932 ++  BFD_RELOC_AVR_13_PCREL,
 4.33933 ++
 4.33934 ++/* This is a 16 bit reloc for the AVR that stores 17 bit value (usually
 4.33935 ++program memory address) into 16 bits.  */
 4.33936 ++  BFD_RELOC_AVR_16_PM,
 4.33937 ++
 4.33938 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
 4.33939 ++data memory address) into 8 bit immediate value of LDI insn.  */
 4.33940 ++  BFD_RELOC_AVR_LO8_LDI,
 4.33941 ++
 4.33942 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
 4.33943 ++of data memory address) into 8 bit immediate value of LDI insn.  */
 4.33944 ++  BFD_RELOC_AVR_HI8_LDI,
 4.33945 ++
 4.33946 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
 4.33947 ++of program memory address) into 8 bit immediate value of LDI insn.  */
 4.33948 ++  BFD_RELOC_AVR_HH8_LDI,
 4.33949 ++
 4.33950 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
 4.33951 ++of 32 bit value) into 8 bit immediate value of LDI insn.  */
 4.33952 ++  BFD_RELOC_AVR_MS8_LDI,
 4.33953 ++
 4.33954 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 4.33955 ++(usually data memory address) into 8 bit immediate value of SUBI insn.  */
 4.33956 ++  BFD_RELOC_AVR_LO8_LDI_NEG,
 4.33957 ++
 4.33958 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 4.33959 ++(high 8 bit of data memory address) into 8 bit immediate value of
 4.33960 ++SUBI insn.  */
 4.33961 ++  BFD_RELOC_AVR_HI8_LDI_NEG,
 4.33962 ++
 4.33963 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 4.33964 ++(most high 8 bit of program memory address) into 8 bit immediate value
 4.33965 ++of LDI or SUBI insn.  */
 4.33966 ++  BFD_RELOC_AVR_HH8_LDI_NEG,
 4.33967 ++
 4.33968 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value (msb
 4.33969 ++of 32 bit value) into 8 bit immediate value of LDI insn.  */
 4.33970 ++  BFD_RELOC_AVR_MS8_LDI_NEG,
 4.33971 ++
 4.33972 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
 4.33973 ++command address) into 8 bit immediate value of LDI insn.  */
 4.33974 ++  BFD_RELOC_AVR_LO8_LDI_PM,
 4.33975 ++
 4.33976 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value 
 4.33977 ++(command address) into 8 bit immediate value of LDI insn. If the address
 4.33978 ++is beyond the 128k boundary, the linker inserts a jump stub for this reloc
 4.33979 ++in the lower 128k.  */
 4.33980 ++  BFD_RELOC_AVR_LO8_LDI_GS,
 4.33981 ++
 4.33982 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
 4.33983 ++of command address) into 8 bit immediate value of LDI insn.  */
 4.33984 ++  BFD_RELOC_AVR_HI8_LDI_PM,
 4.33985 ++
 4.33986 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
 4.33987 ++of command address) into 8 bit immediate value of LDI insn.  If the address
 4.33988 ++is beyond the 128k boundary, the linker inserts a jump stub for this reloc
 4.33989 ++below 128k.  */
 4.33990 ++  BFD_RELOC_AVR_HI8_LDI_GS,
 4.33991 ++
 4.33992 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
 4.33993 ++of command address) into 8 bit immediate value of LDI insn.  */
 4.33994 ++  BFD_RELOC_AVR_HH8_LDI_PM,
 4.33995 ++
 4.33996 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 4.33997 ++(usually command address) into 8 bit immediate value of SUBI insn.  */
 4.33998 ++  BFD_RELOC_AVR_LO8_LDI_PM_NEG,
 4.33999 ++
 4.34000 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 4.34001 ++(high 8 bit of 16 bit command address) into 8 bit immediate value
 4.34002 ++of SUBI insn.  */
 4.34003 ++  BFD_RELOC_AVR_HI8_LDI_PM_NEG,
 4.34004 ++
 4.34005 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 4.34006 ++(high 6 bit of 22 bit command address) into 8 bit immediate
 4.34007 ++value of SUBI insn.  */
 4.34008 ++  BFD_RELOC_AVR_HH8_LDI_PM_NEG,
 4.34009 ++
 4.34010 ++/* This is a 32 bit reloc for the AVR that stores 23 bit value
 4.34011 ++into 22 bits.  */
 4.34012 ++  BFD_RELOC_AVR_CALL,
 4.34013 ++
 4.34014 ++/* This is a 16 bit reloc for the AVR that stores all needed bits
 4.34015 ++for absolute addressing with ldi with overflow check to linktime  */
 4.34016 ++  BFD_RELOC_AVR_LDI,
 4.34017 ++
 4.34018 ++/* This is a 6 bit reloc for the AVR that stores offset for ldd/std
 4.34019 ++instructions  */
 4.34020 ++  BFD_RELOC_AVR_6,
 4.34021 ++
 4.34022 ++/* This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
 4.34023 ++instructions  */
 4.34024 ++  BFD_RELOC_AVR_6_ADIW,
 4.34025 ++
 4.34026 ++/* Direct 12 bit.  */
 4.34027 ++  BFD_RELOC_390_12,
 4.34028 ++
 4.34029 ++/* 12 bit GOT offset.  */
 4.34030 ++  BFD_RELOC_390_GOT12,
 4.34031 ++
 4.34032 ++/* 32 bit PC relative PLT address.  */
 4.34033 ++  BFD_RELOC_390_PLT32,
 4.34034 ++
 4.34035 ++/* Copy symbol at runtime.  */
 4.34036 ++  BFD_RELOC_390_COPY,
 4.34037 ++
 4.34038 ++/* Create GOT entry.  */
 4.34039 ++  BFD_RELOC_390_GLOB_DAT,
 4.34040 ++
 4.34041 ++/* Create PLT entry.  */
 4.34042 ++  BFD_RELOC_390_JMP_SLOT,
 4.34043 ++
 4.34044 ++/* Adjust by program base.  */
 4.34045 ++  BFD_RELOC_390_RELATIVE,
 4.34046 ++
 4.34047 ++/* 32 bit PC relative offset to GOT.  */
 4.34048 ++  BFD_RELOC_390_GOTPC,
 4.34049 ++
 4.34050 ++/* 16 bit GOT offset.  */
 4.34051 ++  BFD_RELOC_390_GOT16,
 4.34052 ++
 4.34053 ++/* PC relative 16 bit shifted by 1.  */
 4.34054 ++  BFD_RELOC_390_PC16DBL,
 4.34055 ++
 4.34056 ++/* 16 bit PC rel. PLT shifted by 1.  */
 4.34057 ++  BFD_RELOC_390_PLT16DBL,
 4.34058 ++
 4.34059 ++/* PC relative 32 bit shifted by 1.  */
 4.34060 ++  BFD_RELOC_390_PC32DBL,
 4.34061 ++
 4.34062 ++/* 32 bit PC rel. PLT shifted by 1.  */
 4.34063 ++  BFD_RELOC_390_PLT32DBL,
 4.34064 ++
 4.34065 ++/* 32 bit PC rel. GOT shifted by 1.  */
 4.34066 ++  BFD_RELOC_390_GOTPCDBL,
 4.34067 ++
 4.34068 ++/* 64 bit GOT offset.  */
 4.34069 ++  BFD_RELOC_390_GOT64,
 4.34070 ++
 4.34071 ++/* 64 bit PC relative PLT address.  */
 4.34072 ++  BFD_RELOC_390_PLT64,
 4.34073 ++
 4.34074 ++/* 32 bit rel. offset to GOT entry.  */
 4.34075 ++  BFD_RELOC_390_GOTENT,
 4.34076 ++
 4.34077 ++/* 64 bit offset to GOT.  */
 4.34078 ++  BFD_RELOC_390_GOTOFF64,
 4.34079 ++
 4.34080 ++/* 12-bit offset to symbol-entry within GOT, with PLT handling.  */
 4.34081 ++  BFD_RELOC_390_GOTPLT12,
 4.34082 ++
 4.34083 ++/* 16-bit offset to symbol-entry within GOT, with PLT handling.  */
 4.34084 ++  BFD_RELOC_390_GOTPLT16,
 4.34085 ++
 4.34086 ++/* 32-bit offset to symbol-entry within GOT, with PLT handling.  */
 4.34087 ++  BFD_RELOC_390_GOTPLT32,
 4.34088 ++
 4.34089 ++/* 64-bit offset to symbol-entry within GOT, with PLT handling.  */
 4.34090 ++  BFD_RELOC_390_GOTPLT64,
 4.34091 ++
 4.34092 ++/* 32-bit rel. offset to symbol-entry within GOT, with PLT handling.  */
 4.34093 ++  BFD_RELOC_390_GOTPLTENT,
 4.34094 ++
 4.34095 ++/* 16-bit rel. offset from the GOT to a PLT entry.  */
 4.34096 ++  BFD_RELOC_390_PLTOFF16,
 4.34097 ++
 4.34098 ++/* 32-bit rel. offset from the GOT to a PLT entry.  */
 4.34099 ++  BFD_RELOC_390_PLTOFF32,
 4.34100 ++
 4.34101 ++/* 64-bit rel. offset from the GOT to a PLT entry.  */
 4.34102 ++  BFD_RELOC_390_PLTOFF64,
 4.34103 ++
 4.34104 ++/* s390 tls relocations.  */
 4.34105 ++  BFD_RELOC_390_TLS_LOAD,
 4.34106 ++  BFD_RELOC_390_TLS_GDCALL,
 4.34107 ++  BFD_RELOC_390_TLS_LDCALL,
 4.34108 ++  BFD_RELOC_390_TLS_GD32,
 4.34109 ++  BFD_RELOC_390_TLS_GD64,
 4.34110 ++  BFD_RELOC_390_TLS_GOTIE12,
 4.34111 ++  BFD_RELOC_390_TLS_GOTIE32,
 4.34112 ++  BFD_RELOC_390_TLS_GOTIE64,
 4.34113 ++  BFD_RELOC_390_TLS_LDM32,
 4.34114 ++  BFD_RELOC_390_TLS_LDM64,
 4.34115 ++  BFD_RELOC_390_TLS_IE32,
 4.34116 ++  BFD_RELOC_390_TLS_IE64,
 4.34117 ++  BFD_RELOC_390_TLS_IEENT,
 4.34118 ++  BFD_RELOC_390_TLS_LE32,
 4.34119 ++  BFD_RELOC_390_TLS_LE64,
 4.34120 ++  BFD_RELOC_390_TLS_LDO32,
 4.34121 ++  BFD_RELOC_390_TLS_LDO64,
 4.34122 ++  BFD_RELOC_390_TLS_DTPMOD,
 4.34123 ++  BFD_RELOC_390_TLS_DTPOFF,
 4.34124 ++  BFD_RELOC_390_TLS_TPOFF,
 4.34125 ++
 4.34126 ++/* Long displacement extension.  */
 4.34127 ++  BFD_RELOC_390_20,
 4.34128 ++  BFD_RELOC_390_GOT20,
 4.34129 ++  BFD_RELOC_390_GOTPLT20,
 4.34130 ++  BFD_RELOC_390_TLS_GOTIE20,
 4.34131 ++
 4.34132 ++/* Score relocations  */
 4.34133 ++  BFD_RELOC_SCORE_DUMMY1,
 4.34134 ++
 4.34135 ++/* Low 16 bit for load/store  */
 4.34136 ++  BFD_RELOC_SCORE_GPREL15,
 4.34137 ++
 4.34138 ++/* This is a 24-bit reloc with the right 1 bit assumed to be 0  */
 4.34139 ++  BFD_RELOC_SCORE_DUMMY2,
 4.34140 ++  BFD_RELOC_SCORE_JMP,
 4.34141 ++
 4.34142 ++/* This is a 19-bit reloc with the right 1 bit assumed to be 0  */
 4.34143 ++  BFD_RELOC_SCORE_BRANCH,
 4.34144 ++
 4.34145 ++/* This is a 11-bit reloc with the right 1 bit assumed to be 0  */
 4.34146 ++  BFD_RELOC_SCORE16_JMP,
 4.34147 ++
 4.34148 ++/* This is a 8-bit reloc with the right 1 bit assumed to be 0  */
 4.34149 ++  BFD_RELOC_SCORE16_BRANCH,
 4.34150 ++
 4.34151 ++/* Undocumented Score relocs  */
 4.34152 ++  BFD_RELOC_SCORE_GOT15,
 4.34153 ++  BFD_RELOC_SCORE_GOT_LO16,
 4.34154 ++  BFD_RELOC_SCORE_CALL15,
 4.34155 ++  BFD_RELOC_SCORE_DUMMY_HI16,
 4.34156 ++
 4.34157 ++/* Scenix IP2K - 9-bit register number / data address  */
 4.34158 ++  BFD_RELOC_IP2K_FR9,
 4.34159 ++
 4.34160 ++/* Scenix IP2K - 4-bit register/data bank number  */
 4.34161 ++  BFD_RELOC_IP2K_BANK,
 4.34162 ++
 4.34163 ++/* Scenix IP2K - low 13 bits of instruction word address  */
 4.34164 ++  BFD_RELOC_IP2K_ADDR16CJP,
 4.34165 ++
 4.34166 ++/* Scenix IP2K - high 3 bits of instruction word address  */
 4.34167 ++  BFD_RELOC_IP2K_PAGE3,
 4.34168 ++
 4.34169 ++/* Scenix IP2K - ext/low/high 8 bits of data address  */
 4.34170 ++  BFD_RELOC_IP2K_LO8DATA,
 4.34171 ++  BFD_RELOC_IP2K_HI8DATA,
 4.34172 ++  BFD_RELOC_IP2K_EX8DATA,
 4.34173 ++
 4.34174 ++/* Scenix IP2K - low/high 8 bits of instruction word address  */
 4.34175 ++  BFD_RELOC_IP2K_LO8INSN,
 4.34176 ++  BFD_RELOC_IP2K_HI8INSN,
 4.34177 ++
 4.34178 ++/* Scenix IP2K - even/odd PC modifier to modify snb pcl.0  */
 4.34179 ++  BFD_RELOC_IP2K_PC_SKIP,
 4.34180 ++
 4.34181 ++/* Scenix IP2K - 16 bit word address in text section.  */
 4.34182 ++  BFD_RELOC_IP2K_TEXT,
 4.34183 ++
 4.34184 ++/* Scenix IP2K - 7-bit sp or dp offset  */
 4.34185 ++  BFD_RELOC_IP2K_FR_OFFSET,
 4.34186 ++
 4.34187 ++/* Scenix VPE4K coprocessor - data/insn-space addressing  */
 4.34188 ++  BFD_RELOC_VPE4KMATH_DATA,
 4.34189 ++  BFD_RELOC_VPE4KMATH_INSN,
 4.34190 ++
 4.34191 ++/* These two relocations are used by the linker to determine which of
 4.34192 ++the entries in a C++ virtual function table are actually used.  When
 4.34193 ++the --gc-sections option is given, the linker will zero out the entries
 4.34194 ++that are not used, so that the code for those functions need not be
 4.34195 ++included in the output.
 4.34196 ++
 4.34197 ++VTABLE_INHERIT is a zero-space relocation used to describe to the
 4.34198 ++linker the inheritance tree of a C++ virtual function table.  The
 4.34199 ++relocation's symbol should be the parent class' vtable, and the
 4.34200 ++relocation should be located at the child vtable.
 4.34201 ++
 4.34202 ++VTABLE_ENTRY is a zero-space relocation that describes the use of a
 4.34203 ++virtual function table entry.  The reloc's symbol should refer to the
 4.34204 ++table of the class mentioned in the code.  Off of that base, an offset
 4.34205 ++describes the entry that is being used.  For Rela hosts, this offset
 4.34206 ++is stored in the reloc's addend.  For Rel hosts, we are forced to put
 4.34207 ++this offset in the reloc's section offset.  */
 4.34208 ++  BFD_RELOC_VTABLE_INHERIT,
 4.34209 ++  BFD_RELOC_VTABLE_ENTRY,
 4.34210 ++
 4.34211 ++/* Intel IA64 Relocations.  */
 4.34212 ++  BFD_RELOC_IA64_IMM14,
 4.34213 ++  BFD_RELOC_IA64_IMM22,
 4.34214 ++  BFD_RELOC_IA64_IMM64,
 4.34215 ++  BFD_RELOC_IA64_DIR32MSB,
 4.34216 ++  BFD_RELOC_IA64_DIR32LSB,
 4.34217 ++  BFD_RELOC_IA64_DIR64MSB,
 4.34218 ++  BFD_RELOC_IA64_DIR64LSB,
 4.34219 ++  BFD_RELOC_IA64_GPREL22,
 4.34220 ++  BFD_RELOC_IA64_GPREL64I,
 4.34221 ++  BFD_RELOC_IA64_GPREL32MSB,
 4.34222 ++  BFD_RELOC_IA64_GPREL32LSB,
 4.34223 ++  BFD_RELOC_IA64_GPREL64MSB,
 4.34224 ++  BFD_RELOC_IA64_GPREL64LSB,
 4.34225 ++  BFD_RELOC_IA64_LTOFF22,
 4.34226 ++  BFD_RELOC_IA64_LTOFF64I,
 4.34227 ++  BFD_RELOC_IA64_PLTOFF22,
 4.34228 ++  BFD_RELOC_IA64_PLTOFF64I,
 4.34229 ++  BFD_RELOC_IA64_PLTOFF64MSB,
 4.34230 ++  BFD_RELOC_IA64_PLTOFF64LSB,
 4.34231 ++  BFD_RELOC_IA64_FPTR64I,
 4.34232 ++  BFD_RELOC_IA64_FPTR32MSB,
 4.34233 ++  BFD_RELOC_IA64_FPTR32LSB,
 4.34234 ++  BFD_RELOC_IA64_FPTR64MSB,
 4.34235 ++  BFD_RELOC_IA64_FPTR64LSB,
 4.34236 ++  BFD_RELOC_IA64_PCREL21B,
 4.34237 ++  BFD_RELOC_IA64_PCREL21BI,
 4.34238 ++  BFD_RELOC_IA64_PCREL21M,
 4.34239 ++  BFD_RELOC_IA64_PCREL21F,
 4.34240 ++  BFD_RELOC_IA64_PCREL22,
 4.34241 ++  BFD_RELOC_IA64_PCREL60B,
 4.34242 ++  BFD_RELOC_IA64_PCREL64I,
 4.34243 ++  BFD_RELOC_IA64_PCREL32MSB,
 4.34244 ++  BFD_RELOC_IA64_PCREL32LSB,
 4.34245 ++  BFD_RELOC_IA64_PCREL64MSB,
 4.34246 ++  BFD_RELOC_IA64_PCREL64LSB,
 4.34247 ++  BFD_RELOC_IA64_LTOFF_FPTR22,
 4.34248 ++  BFD_RELOC_IA64_LTOFF_FPTR64I,
 4.34249 ++  BFD_RELOC_IA64_LTOFF_FPTR32MSB,
 4.34250 ++  BFD_RELOC_IA64_LTOFF_FPTR32LSB,
 4.34251 ++  BFD_RELOC_IA64_LTOFF_FPTR64MSB,
 4.34252 ++  BFD_RELOC_IA64_LTOFF_FPTR64LSB,
 4.34253 ++  BFD_RELOC_IA64_SEGREL32MSB,
 4.34254 ++  BFD_RELOC_IA64_SEGREL32LSB,
 4.34255 ++  BFD_RELOC_IA64_SEGREL64MSB,
 4.34256 ++  BFD_RELOC_IA64_SEGREL64LSB,
 4.34257 ++  BFD_RELOC_IA64_SECREL32MSB,
 4.34258 ++  BFD_RELOC_IA64_SECREL32LSB,
 4.34259 ++  BFD_RELOC_IA64_SECREL64MSB,
 4.34260 ++  BFD_RELOC_IA64_SECREL64LSB,
 4.34261 ++  BFD_RELOC_IA64_REL32MSB,
 4.34262 ++  BFD_RELOC_IA64_REL32LSB,
 4.34263 ++  BFD_RELOC_IA64_REL64MSB,
 4.34264 ++  BFD_RELOC_IA64_REL64LSB,
 4.34265 ++  BFD_RELOC_IA64_LTV32MSB,
 4.34266 ++  BFD_RELOC_IA64_LTV32LSB,
 4.34267 ++  BFD_RELOC_IA64_LTV64MSB,
 4.34268 ++  BFD_RELOC_IA64_LTV64LSB,
 4.34269 ++  BFD_RELOC_IA64_IPLTMSB,
 4.34270 ++  BFD_RELOC_IA64_IPLTLSB,
 4.34271 ++  BFD_RELOC_IA64_COPY,
 4.34272 ++  BFD_RELOC_IA64_LTOFF22X,
 4.34273 ++  BFD_RELOC_IA64_LDXMOV,
 4.34274 ++  BFD_RELOC_IA64_TPREL14,
 4.34275 ++  BFD_RELOC_IA64_TPREL22,
 4.34276 ++  BFD_RELOC_IA64_TPREL64I,
 4.34277 ++  BFD_RELOC_IA64_TPREL64MSB,
 4.34278 ++  BFD_RELOC_IA64_TPREL64LSB,
 4.34279 ++  BFD_RELOC_IA64_LTOFF_TPREL22,
 4.34280 ++  BFD_RELOC_IA64_DTPMOD64MSB,
 4.34281 ++  BFD_RELOC_IA64_DTPMOD64LSB,
 4.34282 ++  BFD_RELOC_IA64_LTOFF_DTPMOD22,
 4.34283 ++  BFD_RELOC_IA64_DTPREL14,
 4.34284 ++  BFD_RELOC_IA64_DTPREL22,
 4.34285 ++  BFD_RELOC_IA64_DTPREL64I,
 4.34286 ++  BFD_RELOC_IA64_DTPREL32MSB,
 4.34287 ++  BFD_RELOC_IA64_DTPREL32LSB,
 4.34288 ++  BFD_RELOC_IA64_DTPREL64MSB,
 4.34289 ++  BFD_RELOC_IA64_DTPREL64LSB,
 4.34290 ++  BFD_RELOC_IA64_LTOFF_DTPREL22,
 4.34291 ++
 4.34292 ++/* Motorola 68HC11 reloc.
 4.34293 ++This is the 8 bit high part of an absolute address.  */
 4.34294 ++  BFD_RELOC_M68HC11_HI8,
 4.34295 ++
 4.34296 ++/* Motorola 68HC11 reloc.
 4.34297 ++This is the 8 bit low part of an absolute address.  */
 4.34298 ++  BFD_RELOC_M68HC11_LO8,
 4.34299 ++
 4.34300 ++/* Motorola 68HC11 reloc.
 4.34301 ++This is the 3 bit of a value.  */
 4.34302 ++  BFD_RELOC_M68HC11_3B,
 4.34303 ++
 4.34304 ++/* Motorola 68HC11 reloc.
 4.34305 ++This reloc marks the beginning of a jump/call instruction.
 4.34306 ++It is used for linker relaxation to correctly identify beginning
 4.34307 ++of instruction and change some branches to use PC-relative
 4.34308 ++addressing mode.  */
 4.34309 ++  BFD_RELOC_M68HC11_RL_JUMP,
 4.34310 ++
 4.34311 ++/* Motorola 68HC11 reloc.
 4.34312 ++This reloc marks a group of several instructions that gcc generates
 4.34313 ++and for which the linker relaxation pass can modify and/or remove
 4.34314 ++some of them.  */
 4.34315 ++  BFD_RELOC_M68HC11_RL_GROUP,
 4.34316 ++
 4.34317 ++/* Motorola 68HC11 reloc.
 4.34318 ++This is the 16-bit lower part of an address.  It is used for 'call'
 4.34319 ++instruction to specify the symbol address without any special
 4.34320 ++transformation (due to memory bank window).  */
 4.34321 ++  BFD_RELOC_M68HC11_LO16,
 4.34322 ++
 4.34323 ++/* Motorola 68HC11 reloc.
 4.34324 ++This is a 8-bit reloc that specifies the page number of an address.
 4.34325 ++It is used by 'call' instruction to specify the page number of
 4.34326 ++the symbol.  */
 4.34327 ++  BFD_RELOC_M68HC11_PAGE,
 4.34328 ++
 4.34329 ++/* Motorola 68HC11 reloc.
 4.34330 ++This is a 24-bit reloc that represents the address with a 16-bit
 4.34331 ++value and a 8-bit page number.  The symbol address is transformed
 4.34332 ++to follow the 16K memory bank of 68HC12 (seen as mapped in the window).  */
 4.34333 ++  BFD_RELOC_M68HC11_24,
 4.34334 ++
 4.34335 ++/* Motorola 68HC12 reloc.
 4.34336 ++This is the 5 bits of a value.  */
 4.34337 ++  BFD_RELOC_M68HC12_5B,
 4.34338 ++
 4.34339 ++/* NS CR16C Relocations.  */
 4.34340 ++  BFD_RELOC_16C_NUM08,
 4.34341 ++  BFD_RELOC_16C_NUM08_C,
 4.34342 ++  BFD_RELOC_16C_NUM16,
 4.34343 ++  BFD_RELOC_16C_NUM16_C,
 4.34344 ++  BFD_RELOC_16C_NUM32,
 4.34345 ++  BFD_RELOC_16C_NUM32_C,
 4.34346 ++  BFD_RELOC_16C_DISP04,
 4.34347 ++  BFD_RELOC_16C_DISP04_C,
 4.34348 ++  BFD_RELOC_16C_DISP08,
 4.34349 ++  BFD_RELOC_16C_DISP08_C,
 4.34350 ++  BFD_RELOC_16C_DISP16,
 4.34351 ++  BFD_RELOC_16C_DISP16_C,
 4.34352 ++  BFD_RELOC_16C_DISP24,
 4.34353 ++  BFD_RELOC_16C_DISP24_C,
 4.34354 ++  BFD_RELOC_16C_DISP24a,
 4.34355 ++  BFD_RELOC_16C_DISP24a_C,
 4.34356 ++  BFD_RELOC_16C_REG04,
 4.34357 ++  BFD_RELOC_16C_REG04_C,
 4.34358 ++  BFD_RELOC_16C_REG04a,
 4.34359 ++  BFD_RELOC_16C_REG04a_C,
 4.34360 ++  BFD_RELOC_16C_REG14,
 4.34361 ++  BFD_RELOC_16C_REG14_C,
 4.34362 ++  BFD_RELOC_16C_REG16,
 4.34363 ++  BFD_RELOC_16C_REG16_C,
 4.34364 ++  BFD_RELOC_16C_REG20,
 4.34365 ++  BFD_RELOC_16C_REG20_C,
 4.34366 ++  BFD_RELOC_16C_ABS20,
 4.34367 ++  BFD_RELOC_16C_ABS20_C,
 4.34368 ++  BFD_RELOC_16C_ABS24,
 4.34369 ++  BFD_RELOC_16C_ABS24_C,
 4.34370 ++  BFD_RELOC_16C_IMM04,
 4.34371 ++  BFD_RELOC_16C_IMM04_C,
 4.34372 ++  BFD_RELOC_16C_IMM16,
 4.34373 ++  BFD_RELOC_16C_IMM16_C,
 4.34374 ++  BFD_RELOC_16C_IMM20,
 4.34375 ++  BFD_RELOC_16C_IMM20_C,
 4.34376 ++  BFD_RELOC_16C_IMM24,
 4.34377 ++  BFD_RELOC_16C_IMM24_C,
 4.34378 ++  BFD_RELOC_16C_IMM32,
 4.34379 ++  BFD_RELOC_16C_IMM32_C,
 4.34380 ++
 4.34381 ++/* NS CR16 Relocations.  */
 4.34382 ++  BFD_RELOC_CR16_NUM8,
 4.34383 ++  BFD_RELOC_CR16_NUM16,
 4.34384 ++  BFD_RELOC_CR16_NUM32,
 4.34385 ++  BFD_RELOC_CR16_NUM32a,
 4.34386 ++  BFD_RELOC_CR16_REGREL0,
 4.34387 ++  BFD_RELOC_CR16_REGREL4,
 4.34388 ++  BFD_RELOC_CR16_REGREL4a,
 4.34389 ++  BFD_RELOC_CR16_REGREL14,
 4.34390 ++  BFD_RELOC_CR16_REGREL14a,
 4.34391 ++  BFD_RELOC_CR16_REGREL16,
 4.34392 ++  BFD_RELOC_CR16_REGREL20,
 4.34393 ++  BFD_RELOC_CR16_REGREL20a,
 4.34394 ++  BFD_RELOC_CR16_ABS20,
 4.34395 ++  BFD_RELOC_CR16_ABS24,
 4.34396 ++  BFD_RELOC_CR16_IMM4,
 4.34397 ++  BFD_RELOC_CR16_IMM8,
 4.34398 ++  BFD_RELOC_CR16_IMM16,
 4.34399 ++  BFD_RELOC_CR16_IMM20,
 4.34400 ++  BFD_RELOC_CR16_IMM24,
 4.34401 ++  BFD_RELOC_CR16_IMM32,
 4.34402 ++  BFD_RELOC_CR16_IMM32a,
 4.34403 ++  BFD_RELOC_CR16_DISP4,
 4.34404 ++  BFD_RELOC_CR16_DISP8,
 4.34405 ++  BFD_RELOC_CR16_DISP16,
 4.34406 ++  BFD_RELOC_CR16_DISP20,
 4.34407 ++  BFD_RELOC_CR16_DISP24,
 4.34408 ++  BFD_RELOC_CR16_DISP24a,
 4.34409 ++
 4.34410 ++/* NS CRX Relocations.  */
 4.34411 ++  BFD_RELOC_CRX_REL4,
 4.34412 ++  BFD_RELOC_CRX_REL8,
 4.34413 ++  BFD_RELOC_CRX_REL8_CMP,
 4.34414 ++  BFD_RELOC_CRX_REL16,
 4.34415 ++  BFD_RELOC_CRX_REL24,
 4.34416 ++  BFD_RELOC_CRX_REL32,
 4.34417 ++  BFD_RELOC_CRX_REGREL12,
 4.34418 ++  BFD_RELOC_CRX_REGREL22,
 4.34419 ++  BFD_RELOC_CRX_REGREL28,
 4.34420 ++  BFD_RELOC_CRX_REGREL32,
 4.34421 ++  BFD_RELOC_CRX_ABS16,
 4.34422 ++  BFD_RELOC_CRX_ABS32,
 4.34423 ++  BFD_RELOC_CRX_NUM8,
 4.34424 ++  BFD_RELOC_CRX_NUM16,
 4.34425 ++  BFD_RELOC_CRX_NUM32,
 4.34426 ++  BFD_RELOC_CRX_IMM16,
 4.34427 ++  BFD_RELOC_CRX_IMM32,
 4.34428 ++  BFD_RELOC_CRX_SWITCH8,
 4.34429 ++  BFD_RELOC_CRX_SWITCH16,
 4.34430 ++  BFD_RELOC_CRX_SWITCH32,
 4.34431 ++
 4.34432 ++/* These relocs are only used within the CRIS assembler.  They are not
 4.34433 ++(at present) written to any object files.  */
 4.34434 ++  BFD_RELOC_CRIS_BDISP8,
 4.34435 ++  BFD_RELOC_CRIS_UNSIGNED_5,
 4.34436 ++  BFD_RELOC_CRIS_SIGNED_6,
 4.34437 ++  BFD_RELOC_CRIS_UNSIGNED_6,
 4.34438 ++  BFD_RELOC_CRIS_SIGNED_8,
 4.34439 ++  BFD_RELOC_CRIS_UNSIGNED_8,
 4.34440 ++  BFD_RELOC_CRIS_SIGNED_16,
 4.34441 ++  BFD_RELOC_CRIS_UNSIGNED_16,
 4.34442 ++  BFD_RELOC_CRIS_LAPCQ_OFFSET,
 4.34443 ++  BFD_RELOC_CRIS_UNSIGNED_4,
 4.34444 ++
 4.34445 ++/* Relocs used in ELF shared libraries for CRIS.  */
 4.34446 ++  BFD_RELOC_CRIS_COPY,
 4.34447 ++  BFD_RELOC_CRIS_GLOB_DAT,
 4.34448 ++  BFD_RELOC_CRIS_JUMP_SLOT,
 4.34449 ++  BFD_RELOC_CRIS_RELATIVE,
 4.34450 ++
 4.34451 ++/* 32-bit offset to symbol-entry within GOT.  */
 4.34452 ++  BFD_RELOC_CRIS_32_GOT,
 4.34453 ++
 4.34454 ++/* 16-bit offset to symbol-entry within GOT.  */
 4.34455 ++  BFD_RELOC_CRIS_16_GOT,
 4.34456 ++
 4.34457 ++/* 32-bit offset to symbol-entry within GOT, with PLT handling.  */
 4.34458 ++  BFD_RELOC_CRIS_32_GOTPLT,
 4.34459 ++
 4.34460 ++/* 16-bit offset to symbol-entry within GOT, with PLT handling.  */
 4.34461 ++  BFD_RELOC_CRIS_16_GOTPLT,
 4.34462 ++
 4.34463 ++/* 32-bit offset to symbol, relative to GOT.  */
 4.34464 ++  BFD_RELOC_CRIS_32_GOTREL,
 4.34465 ++
 4.34466 ++/* 32-bit offset to symbol with PLT entry, relative to GOT.  */
 4.34467 ++  BFD_RELOC_CRIS_32_PLT_GOTREL,
 4.34468 ++
 4.34469 ++/* 32-bit offset to symbol with PLT entry, relative to this relocation.  */
 4.34470 ++  BFD_RELOC_CRIS_32_PLT_PCREL,
 4.34471 ++
 4.34472 ++/* Intel i860 Relocations.  */
 4.34473 ++  BFD_RELOC_860_COPY,
 4.34474 ++  BFD_RELOC_860_GLOB_DAT,
 4.34475 ++  BFD_RELOC_860_JUMP_SLOT,
 4.34476 ++  BFD_RELOC_860_RELATIVE,
 4.34477 ++  BFD_RELOC_860_PC26,
 4.34478 ++  BFD_RELOC_860_PLT26,
 4.34479 ++  BFD_RELOC_860_PC16,
 4.34480 ++  BFD_RELOC_860_LOW0,
 4.34481 ++  BFD_RELOC_860_SPLIT0,
 4.34482 ++  BFD_RELOC_860_LOW1,
 4.34483 ++  BFD_RELOC_860_SPLIT1,
 4.34484 ++  BFD_RELOC_860_LOW2,
 4.34485 ++  BFD_RELOC_860_SPLIT2,
 4.34486 ++  BFD_RELOC_860_LOW3,
 4.34487 ++  BFD_RELOC_860_LOGOT0,
 4.34488 ++  BFD_RELOC_860_SPGOT0,
 4.34489 ++  BFD_RELOC_860_LOGOT1,
 4.34490 ++  BFD_RELOC_860_SPGOT1,
 4.34491 ++  BFD_RELOC_860_LOGOTOFF0,
 4.34492 ++  BFD_RELOC_860_SPGOTOFF0,
 4.34493 ++  BFD_RELOC_860_LOGOTOFF1,
 4.34494 ++  BFD_RELOC_860_SPGOTOFF1,
 4.34495 ++  BFD_RELOC_860_LOGOTOFF2,
 4.34496 ++  BFD_RELOC_860_LOGOTOFF3,
 4.34497 ++  BFD_RELOC_860_LOPC,
 4.34498 ++  BFD_RELOC_860_HIGHADJ,
 4.34499 ++  BFD_RELOC_860_HAGOT,
 4.34500 ++  BFD_RELOC_860_HAGOTOFF,
 4.34501 ++  BFD_RELOC_860_HAPC,
 4.34502 ++  BFD_RELOC_860_HIGH,
 4.34503 ++  BFD_RELOC_860_HIGOT,
 4.34504 ++  BFD_RELOC_860_HIGOTOFF,
 4.34505 ++
 4.34506 ++/* OpenRISC Relocations.  */
 4.34507 ++  BFD_RELOC_OPENRISC_ABS_26,
 4.34508 ++  BFD_RELOC_OPENRISC_REL_26,
 4.34509 ++
 4.34510 ++/* H8 elf Relocations.  */
 4.34511 ++  BFD_RELOC_H8_DIR16A8,
 4.34512 ++  BFD_RELOC_H8_DIR16R8,
 4.34513 ++  BFD_RELOC_H8_DIR24A8,
 4.34514 ++  BFD_RELOC_H8_DIR24R8,
 4.34515 ++  BFD_RELOC_H8_DIR32A16,
 4.34516 ++
 4.34517 ++/* Sony Xstormy16 Relocations.  */
 4.34518 ++  BFD_RELOC_XSTORMY16_REL_12,
 4.34519 ++  BFD_RELOC_XSTORMY16_12,
 4.34520 ++  BFD_RELOC_XSTORMY16_24,
 4.34521 ++  BFD_RELOC_XSTORMY16_FPTR16,
 4.34522 ++
 4.34523 ++/* Self-describing complex relocations.  */
 4.34524 ++  BFD_RELOC_RELC,
 4.34525 ++
 4.34526 ++
 4.34527 ++/* Infineon Relocations.  */
 4.34528 ++  BFD_RELOC_XC16X_PAG,
 4.34529 ++  BFD_RELOC_XC16X_POF,
 4.34530 ++  BFD_RELOC_XC16X_SEG,
 4.34531 ++  BFD_RELOC_XC16X_SOF,
 4.34532 ++
 4.34533 ++/* Relocations used by VAX ELF.  */
 4.34534 ++  BFD_RELOC_VAX_GLOB_DAT,
 4.34535 ++  BFD_RELOC_VAX_JMP_SLOT,
 4.34536 ++  BFD_RELOC_VAX_RELATIVE,
 4.34537 ++
 4.34538 ++/* Morpho MT - 16 bit immediate relocation.  */
 4.34539 ++  BFD_RELOC_MT_PC16,
 4.34540 ++
 4.34541 ++/* Morpho MT - Hi 16 bits of an address.  */
 4.34542 ++  BFD_RELOC_MT_HI16,
 4.34543 ++
 4.34544 ++/* Morpho MT - Low 16 bits of an address.  */
 4.34545 ++  BFD_RELOC_MT_LO16,
 4.34546 ++
 4.34547 ++/* Morpho MT - Used to tell the linker which vtable entries are used.  */
 4.34548 ++  BFD_RELOC_MT_GNU_VTINHERIT,
 4.34549 ++
 4.34550 ++/* Morpho MT - Used to tell the linker which vtable entries are used.  */
 4.34551 ++  BFD_RELOC_MT_GNU_VTENTRY,
 4.34552 ++
 4.34553 ++/* Morpho MT - 8 bit immediate relocation.  */
 4.34554 ++  BFD_RELOC_MT_PCINSN8,
 4.34555 ++
 4.34556 ++/* msp430 specific relocation codes  */
 4.34557 ++  BFD_RELOC_MSP430_10_PCREL,
 4.34558 ++  BFD_RELOC_MSP430_16_PCREL,
 4.34559 ++  BFD_RELOC_MSP430_16,
 4.34560 ++  BFD_RELOC_MSP430_16_PCREL_BYTE,
 4.34561 ++  BFD_RELOC_MSP430_16_BYTE,
 4.34562 ++  BFD_RELOC_MSP430_2X_PCREL,
 4.34563 ++  BFD_RELOC_MSP430_RL_PCREL,
 4.34564 ++
 4.34565 ++/* IQ2000 Relocations.  */
 4.34566 ++  BFD_RELOC_IQ2000_OFFSET_16,
 4.34567 ++  BFD_RELOC_IQ2000_OFFSET_21,
 4.34568 ++  BFD_RELOC_IQ2000_UHI16,
 4.34569 ++
 4.34570 ++/* Special Xtensa relocation used only by PLT entries in ELF shared
 4.34571 ++objects to indicate that the runtime linker should set the value
 4.34572 ++to one of its own internal functions or data structures.  */
 4.34573 ++  BFD_RELOC_XTENSA_RTLD,
 4.34574 ++
 4.34575 ++/* Xtensa relocations for ELF shared objects.  */
 4.34576 ++  BFD_RELOC_XTENSA_GLOB_DAT,
 4.34577 ++  BFD_RELOC_XTENSA_JMP_SLOT,
 4.34578 ++  BFD_RELOC_XTENSA_RELATIVE,
 4.34579 ++
 4.34580 ++/* Xtensa relocation used in ELF object files for symbols that may require
 4.34581 ++PLT entries.  Otherwise, this is just a generic 32-bit relocation.  */
 4.34582 ++  BFD_RELOC_XTENSA_PLT,
 4.34583 ++
 4.34584 ++/* Xtensa relocations to mark the difference of two local symbols.
 4.34585 ++These are only needed to support linker relaxation and can be ignored
 4.34586 ++when not relaxing.  The field is set to the value of the difference
 4.34587 ++assuming no relaxation.  The relocation encodes the position of the
 4.34588 ++first symbol so the linker can determine whether to adjust the field
 4.34589 ++value.  */
 4.34590 ++  BFD_RELOC_XTENSA_DIFF8,
 4.34591 ++  BFD_RELOC_XTENSA_DIFF16,
 4.34592 ++  BFD_RELOC_XTENSA_DIFF32,
 4.34593 ++
 4.34594 ++/* Generic Xtensa relocations for instruction operands.  Only the slot
 4.34595 ++number is encoded in the relocation.  The relocation applies to the
 4.34596 ++last PC-relative immediate operand, or if there are no PC-relative
 4.34597 ++immediates, to the last immediate operand.  */
 4.34598 ++  BFD_RELOC_XTENSA_SLOT0_OP,
 4.34599 ++  BFD_RELOC_XTENSA_SLOT1_OP,
 4.34600 ++  BFD_RELOC_XTENSA_SLOT2_OP,
 4.34601 ++  BFD_RELOC_XTENSA_SLOT3_OP,
 4.34602 ++  BFD_RELOC_XTENSA_SLOT4_OP,
 4.34603 ++  BFD_RELOC_XTENSA_SLOT5_OP,
 4.34604 ++  BFD_RELOC_XTENSA_SLOT6_OP,
 4.34605 ++  BFD_RELOC_XTENSA_SLOT7_OP,
 4.34606 ++  BFD_RELOC_XTENSA_SLOT8_OP,
 4.34607 ++  BFD_RELOC_XTENSA_SLOT9_OP,
 4.34608 ++  BFD_RELOC_XTENSA_SLOT10_OP,
 4.34609 ++  BFD_RELOC_XTENSA_SLOT11_OP,
 4.34610 ++  BFD_RELOC_XTENSA_SLOT12_OP,
 4.34611 ++  BFD_RELOC_XTENSA_SLOT13_OP,
 4.34612 ++  BFD_RELOC_XTENSA_SLOT14_OP,
 4.34613 ++
 4.34614 ++/* Alternate Xtensa relocations.  Only the slot is encoded in the
 4.34615 ++relocation.  The meaning of these relocations is opcode-specific.  */
 4.34616 ++  BFD_RELOC_XTENSA_SLOT0_ALT,
 4.34617 ++  BFD_RELOC_XTENSA_SLOT1_ALT,
 4.34618 ++  BFD_RELOC_XTENSA_SLOT2_ALT,
 4.34619 ++  BFD_RELOC_XTENSA_SLOT3_ALT,
 4.34620 ++  BFD_RELOC_XTENSA_SLOT4_ALT,
 4.34621 ++  BFD_RELOC_XTENSA_SLOT5_ALT,
 4.34622 ++  BFD_RELOC_XTENSA_SLOT6_ALT,
 4.34623 ++  BFD_RELOC_XTENSA_SLOT7_ALT,
 4.34624 ++  BFD_RELOC_XTENSA_SLOT8_ALT,
 4.34625 ++  BFD_RELOC_XTENSA_SLOT9_ALT,
 4.34626 ++  BFD_RELOC_XTENSA_SLOT10_ALT,
 4.34627 ++  BFD_RELOC_XTENSA_SLOT11_ALT,
 4.34628 ++  BFD_RELOC_XTENSA_SLOT12_ALT,
 4.34629 ++  BFD_RELOC_XTENSA_SLOT13_ALT,
 4.34630 ++  BFD_RELOC_XTENSA_SLOT14_ALT,
 4.34631 ++
 4.34632 ++/* Xtensa relocations for backward compatibility.  These have all been
 4.34633 ++replaced by BFD_RELOC_XTENSA_SLOT0_OP.  */
 4.34634 ++  BFD_RELOC_XTENSA_OP0,
 4.34635 ++  BFD_RELOC_XTENSA_OP1,
 4.34636 ++  BFD_RELOC_XTENSA_OP2,
 4.34637 ++
 4.34638 ++/* Xtensa relocation to mark that the assembler expanded the
 4.34639 ++instructions from an original target.  The expansion size is
 4.34640 ++encoded in the reloc size.  */
 4.34641 ++  BFD_RELOC_XTENSA_ASM_EXPAND,
 4.34642 ++
 4.34643 ++/* Xtensa relocation to mark that the linker should simplify
 4.34644 ++assembler-expanded instructions.  This is commonly used
 4.34645 ++internally by the linker after analysis of a
 4.34646 ++BFD_RELOC_XTENSA_ASM_EXPAND.  */
 4.34647 ++  BFD_RELOC_XTENSA_ASM_SIMPLIFY,
 4.34648 ++
 4.34649 ++/* 8 bit signed offset in (ix+d) or (iy+d).  */
 4.34650 ++  BFD_RELOC_Z80_DISP8,
 4.34651 ++
 4.34652 ++/* DJNZ offset.  */
 4.34653 ++  BFD_RELOC_Z8K_DISP7,
 4.34654 ++
 4.34655 ++/* CALR offset.  */
 4.34656 ++  BFD_RELOC_Z8K_CALLR,
 4.34657 ++
 4.34658 ++/* 4 bit value.  */
 4.34659 ++  BFD_RELOC_Z8K_IMM4L,
 4.34660 ++  BFD_RELOC_UNUSED };
 4.34661 ++typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
 4.34662 ++reloc_howto_type *bfd_reloc_type_lookup
 4.34663 ++   (bfd *abfd, bfd_reloc_code_real_type code);
 4.34664 ++reloc_howto_type *bfd_reloc_name_lookup
 4.34665 ++   (bfd *abfd, const char *reloc_name);
 4.34666 ++
 4.34667 ++const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
 4.34668 ++
 4.34669 ++/* Extracted from syms.c.  */
 4.34670 ++
 4.34671 ++typedef struct bfd_symbol
 4.34672 ++{
 4.34673 ++  /* A pointer to the BFD which owns the symbol. This information
 4.34674 ++     is necessary so that a back end can work out what additional
 4.34675 ++     information (invisible to the application writer) is carried
 4.34676 ++     with the symbol.
 4.34677 ++
 4.34678 ++     This field is *almost* redundant, since you can use section->owner
 4.34679 ++     instead, except that some symbols point to the global sections
 4.34680 ++     bfd_{abs,com,und}_section.  This could be fixed by making
 4.34681 ++     these globals be per-bfd (or per-target-flavor).  FIXME.  */
 4.34682 ++  struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field.  */
 4.34683 ++
 4.34684 ++  /* The text of the symbol. The name is left alone, and not copied; the
 4.34685 ++     application may not alter it.  */
 4.34686 ++  const char *name;
 4.34687 ++
 4.34688 ++  /* The value of the symbol.  This really should be a union of a
 4.34689 ++     numeric value with a pointer, since some flags indicate that
 4.34690 ++     a pointer to another symbol is stored here.  */
 4.34691 ++  symvalue value;
 4.34692 ++
 4.34693 ++  /* Attributes of a symbol.  */
 4.34694 ++#define BSF_NO_FLAGS    0x00
 4.34695 ++
 4.34696 ++  /* The symbol has local scope; <<static>> in <<C>>. The value
 4.34697 ++     is the offset into the section of the data.  */
 4.34698 ++#define BSF_LOCAL      0x01
 4.34699 ++
 4.34700 ++  /* The symbol has global scope; initialized data in <<C>>. The
 4.34701 ++     value is the offset into the section of the data.  */
 4.34702 ++#define BSF_GLOBAL     0x02
 4.34703 ++
 4.34704 ++  /* The symbol has global scope and is exported. The value is
 4.34705 ++     the offset into the section of the data.  */
 4.34706 ++#define BSF_EXPORT     BSF_GLOBAL /* No real difference.  */
 4.34707 ++
 4.34708 ++  /* A normal C symbol would be one of:
 4.34709 ++     <<BSF_LOCAL>>, <<BSF_FORT_COMM>>,  <<BSF_UNDEFINED>> or
 4.34710 ++     <<BSF_GLOBAL>>.  */
 4.34711 ++
 4.34712 ++  /* The symbol is a debugging record. The value has an arbitrary
 4.34713 ++     meaning, unless BSF_DEBUGGING_RELOC is also set.  */
 4.34714 ++#define BSF_DEBUGGING  0x08
 4.34715 ++
 4.34716 ++  /* The symbol denotes a function entry point.  Used in ELF,
 4.34717 ++     perhaps others someday.  */
 4.34718 ++#define BSF_FUNCTION    0x10
 4.34719 ++
 4.34720 ++  /* Used by the linker.  */
 4.34721 ++#define BSF_KEEP        0x20
 4.34722 ++#define BSF_KEEP_G      0x40
 4.34723 ++
 4.34724 ++  /* A weak global symbol, overridable without warnings by
 4.34725 ++     a regular global symbol of the same name.  */
 4.34726 ++#define BSF_WEAK        0x80
 4.34727 ++
 4.34728 ++  /* This symbol was created to point to a section, e.g. ELF's
 4.34729 ++     STT_SECTION symbols.  */
 4.34730 ++#define BSF_SECTION_SYM 0x100
 4.34731 ++
 4.34732 ++  /* The symbol used to be a common symbol, but now it is
 4.34733 ++     allocated.  */
 4.34734 ++#define BSF_OLD_COMMON  0x200
 4.34735 ++
 4.34736 ++  /* The default value for common data.  */
 4.34737 ++#define BFD_FORT_COMM_DEFAULT_VALUE 0
 4.34738 ++
 4.34739 ++  /* In some files the type of a symbol sometimes alters its
 4.34740 ++     location in an output file - ie in coff a <<ISFCN>> symbol
 4.34741 ++     which is also <<C_EXT>> symbol appears where it was
 4.34742 ++     declared and not at the end of a section.  This bit is set
 4.34743 ++     by the target BFD part to convey this information.  */
 4.34744 ++#define BSF_NOT_AT_END    0x400
 4.34745 ++
 4.34746 ++  /* Signal that the symbol is the label of constructor section.  */
 4.34747 ++#define BSF_CONSTRUCTOR   0x800
 4.34748 ++
 4.34749 ++  /* Signal that the symbol is a warning symbol.  The name is a
 4.34750 ++     warning.  The name of the next symbol is the one to warn about;
 4.34751 ++     if a reference is made to a symbol with the same name as the next
 4.34752 ++     symbol, a warning is issued by the linker.  */
 4.34753 ++#define BSF_WARNING       0x1000
 4.34754 ++
 4.34755 ++  /* Signal that the symbol is indirect.  This symbol is an indirect
 4.34756 ++     pointer to the symbol with the same name as the next symbol.  */
 4.34757 ++#define BSF_INDIRECT      0x2000
 4.34758 ++
 4.34759 ++  /* BSF_FILE marks symbols that contain a file name.  This is used
 4.34760 ++     for ELF STT_FILE symbols.  */
 4.34761 ++#define BSF_FILE          0x4000
 4.34762 ++
 4.34763 ++  /* Symbol is from dynamic linking information.  */
 4.34764 ++#define BSF_DYNAMIC       0x8000
 4.34765 ++
 4.34766 ++  /* The symbol denotes a data object.  Used in ELF, and perhaps
 4.34767 ++     others someday.  */
 4.34768 ++#define BSF_OBJECT        0x10000
 4.34769 ++
 4.34770 ++  /* This symbol is a debugging symbol.  The value is the offset
 4.34771 ++     into the section of the data.  BSF_DEBUGGING should be set
 4.34772 ++     as well.  */
 4.34773 ++#define BSF_DEBUGGING_RELOC 0x20000
 4.34774 ++
 4.34775 ++  /* This symbol is thread local.  Used in ELF.  */
 4.34776 ++#define BSF_THREAD_LOCAL  0x40000
 4.34777 ++
 4.34778 ++  /* This symbol represents a complex relocation expression,
 4.34779 ++     with the expression tree serialized in the symbol name.  */
 4.34780 ++#define BSF_RELC 0x80000
 4.34781 ++
 4.34782 ++  /* This symbol represents a signed complex relocation expression,
 4.34783 ++     with the expression tree serialized in the symbol name.  */
 4.34784 ++#define BSF_SRELC 0x100000
 4.34785 ++
 4.34786 ++  flagword flags;
 4.34787 ++
 4.34788 ++  /* A pointer to the section to which this symbol is
 4.34789 ++     relative.  This will always be non NULL, there are special
 4.34790 ++     sections for undefined and absolute symbols.  */
 4.34791 ++  struct bfd_section *section;
 4.34792 ++
 4.34793 ++  /* Back end special data.  */
 4.34794 ++  union
 4.34795 ++    {
 4.34796 ++      void *p;
 4.34797 ++      bfd_vma i;
 4.34798 ++    }
 4.34799 ++  udata;
 4.34800 ++}
 4.34801 ++asymbol;
 4.34802 ++
 4.34803 ++#define bfd_get_symtab_upper_bound(abfd) \
 4.34804 ++     BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
 4.34805 ++
 4.34806 ++bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
 4.34807 ++
 4.34808 ++bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
 4.34809 ++
 4.34810 ++#define bfd_is_local_label_name(abfd, name) \
 4.34811 ++  BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
 4.34812 ++
 4.34813 ++bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
 4.34814 ++
 4.34815 ++#define bfd_is_target_special_symbol(abfd, sym) \
 4.34816 ++  BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
 4.34817 ++
 4.34818 ++#define bfd_canonicalize_symtab(abfd, location) \
 4.34819 ++  BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
 4.34820 ++
 4.34821 ++bfd_boolean bfd_set_symtab
 4.34822 ++   (bfd *abfd, asymbol **location, unsigned int count);
 4.34823 ++
 4.34824 ++void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
 4.34825 ++
 4.34826 ++#define bfd_make_empty_symbol(abfd) \
 4.34827 ++  BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
 4.34828 ++
 4.34829 ++asymbol *_bfd_generic_make_empty_symbol (bfd *);
 4.34830 ++
 4.34831 ++#define bfd_make_debug_symbol(abfd,ptr,size) \
 4.34832 ++  BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
 4.34833 ++
 4.34834 ++int bfd_decode_symclass (asymbol *symbol);
 4.34835 ++
 4.34836 ++bfd_boolean bfd_is_undefined_symclass (int symclass);
 4.34837 ++
 4.34838 ++void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
 4.34839 ++
 4.34840 ++bfd_boolean bfd_copy_private_symbol_data
 4.34841 ++   (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
 4.34842 ++
 4.34843 ++#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
 4.34844 ++  BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
 4.34845 ++            (ibfd, isymbol, obfd, osymbol))
 4.34846 ++
 4.34847 ++/* Extracted from bfd.c.  */
 4.34848 ++struct bfd
 4.34849 ++{
 4.34850 ++  /* A unique identifier of the BFD  */
 4.34851 ++  unsigned int id;
 4.34852 ++
 4.34853 ++  /* The filename the application opened the BFD with.  */
 4.34854 ++  const char *filename;
 4.34855 ++
 4.34856 ++  /* A pointer to the target jump table.  */
 4.34857 ++  const struct bfd_target *xvec;
 4.34858 ++
 4.34859 ++  /* The IOSTREAM, and corresponding IO vector that provide access
 4.34860 ++     to the file backing the BFD.  */
 4.34861 ++  void *iostream;
 4.34862 ++  const struct bfd_iovec *iovec;
 4.34863 ++
 4.34864 ++  /* Is the file descriptor being cached?  That is, can it be closed as
 4.34865 ++     needed, and re-opened when accessed later?  */
 4.34866 ++  bfd_boolean cacheable;
 4.34867 ++
 4.34868 ++  /* Marks whether there was a default target specified when the
 4.34869 ++     BFD was opened. This is used to select which matching algorithm
 4.34870 ++     to use to choose the back end.  */
 4.34871 ++  bfd_boolean target_defaulted;
 4.34872 ++
 4.34873 ++  /* The caching routines use these to maintain a
 4.34874 ++     least-recently-used list of BFDs.  */
 4.34875 ++  struct bfd *lru_prev, *lru_next;
 4.34876 ++
 4.34877 ++  /* When a file is closed by the caching routines, BFD retains
 4.34878 ++     state information on the file here...  */
 4.34879 ++  ufile_ptr where;
 4.34880 ++
 4.34881 ++  /* ... and here: (``once'' means at least once).  */
 4.34882 ++  bfd_boolean opened_once;
 4.34883 ++
 4.34884 ++  /* Set if we have a locally maintained mtime value, rather than
 4.34885 ++     getting it from the file each time.  */
 4.34886 ++  bfd_boolean mtime_set;
 4.34887 ++
 4.34888 ++  /* File modified time, if mtime_set is TRUE.  */
 4.34889 ++  long mtime;
 4.34890 ++
 4.34891 ++  /* Reserved for an unimplemented file locking extension.  */
 4.34892 ++  int ifd;
 4.34893 ++
 4.34894 ++  /* The format which belongs to the BFD. (object, core, etc.)  */
 4.34895 ++  bfd_format format;
 4.34896 ++
 4.34897 ++  /* The direction with which the BFD was opened.  */
 4.34898 ++  enum bfd_direction
 4.34899 ++    {
 4.34900 ++      no_direction = 0,
 4.34901 ++      read_direction = 1,
 4.34902 ++      write_direction = 2,
 4.34903 ++      both_direction = 3
 4.34904 ++    }
 4.34905 ++  direction;
 4.34906 ++
 4.34907 ++  /* Format_specific flags.  */
 4.34908 ++  flagword flags;
 4.34909 ++
 4.34910 ++  /* Currently my_archive is tested before adding origin to
 4.34911 ++     anything. I believe that this can become always an add of
 4.34912 ++     origin, with origin set to 0 for non archive files.  */
 4.34913 ++  ufile_ptr origin;
 4.34914 ++
 4.34915 ++  /* Remember when output has begun, to stop strange things
 4.34916 ++     from happening.  */
 4.34917 ++  bfd_boolean output_has_begun;
 4.34918 ++
 4.34919 ++  /* A hash table for section names.  */
 4.34920 ++  struct bfd_hash_table section_htab;
 4.34921 ++
 4.34922 ++  /* Pointer to linked list of sections.  */
 4.34923 ++  struct bfd_section *sections;
 4.34924 ++
 4.34925 ++  /* The last section on the section list.  */
 4.34926 ++  struct bfd_section *section_last;
 4.34927 ++
 4.34928 ++  /* The number of sections.  */
 4.34929 ++  unsigned int section_count;
 4.34930 ++
 4.34931 ++  /* Stuff only useful for object files:
 4.34932 ++     The start address.  */
 4.34933 ++  bfd_vma start_address;
 4.34934 ++
 4.34935 ++  /* Used for input and output.  */
 4.34936 ++  unsigned int symcount;
 4.34937 ++
 4.34938 ++  /* Symbol table for output BFD (with symcount entries).  */
 4.34939 ++  struct bfd_symbol  **outsymbols;
 4.34940 ++
 4.34941 ++  /* Used for slurped dynamic symbol tables.  */
 4.34942 ++  unsigned int dynsymcount;
 4.34943 ++
 4.34944 ++  /* Pointer to structure which contains architecture information.  */
 4.34945 ++  const struct bfd_arch_info *arch_info;
 4.34946 ++
 4.34947 ++  /* Flag set if symbols from this BFD should not be exported.  */
 4.34948 ++  bfd_boolean no_export;
 4.34949 ++
 4.34950 ++  /* Stuff only useful for archives.  */
 4.34951 ++  void *arelt_data;
 4.34952 ++  struct bfd *my_archive;      /* The containing archive BFD.  */
 4.34953 ++  struct bfd *archive_next;    /* The next BFD in the archive.  */
 4.34954 ++  struct bfd *archive_head;    /* The first BFD in the archive.  */
 4.34955 ++  bfd_boolean has_armap;
 4.34956 ++
 4.34957 ++  /* A chain of BFD structures involved in a link.  */
 4.34958 ++  struct bfd *link_next;
 4.34959 ++
 4.34960 ++  /* A field used by _bfd_generic_link_add_archive_symbols.  This will
 4.34961 ++     be used only for archive elements.  */
 4.34962 ++  int archive_pass;
 4.34963 ++
 4.34964 ++  /* Used by the back end to hold private data.  */
 4.34965 ++  union
 4.34966 ++    {
 4.34967 ++      struct aout_data_struct *aout_data;
 4.34968 ++      struct artdata *aout_ar_data;
 4.34969 ++      struct _oasys_data *oasys_obj_data;
 4.34970 ++      struct _oasys_ar_data *oasys_ar_data;
 4.34971 ++      struct coff_tdata *coff_obj_data;
 4.34972 ++      struct pe_tdata *pe_obj_data;
 4.34973 ++      struct xcoff_tdata *xcoff_obj_data;
 4.34974 ++      struct ecoff_tdata *ecoff_obj_data;
 4.34975 ++      struct ieee_data_struct *ieee_data;
 4.34976 ++      struct ieee_ar_data_struct *ieee_ar_data;
 4.34977 ++      struct srec_data_struct *srec_data;
 4.34978 ++      struct ihex_data_struct *ihex_data;
 4.34979 ++      struct tekhex_data_struct *tekhex_data;
 4.34980 ++      struct elf_obj_tdata *elf_obj_data;
 4.34981 ++      struct nlm_obj_tdata *nlm_obj_data;
 4.34982 ++      struct bout_data_struct *bout_data;
 4.34983 ++      struct mmo_data_struct *mmo_data;
 4.34984 ++      struct sun_core_struct *sun_core_data;
 4.34985 ++      struct sco5_core_struct *sco5_core_data;
 4.34986 ++      struct trad_core_struct *trad_core_data;
 4.34987 ++      struct som_data_struct *som_data;
 4.34988 ++      struct hpux_core_struct *hpux_core_data;
 4.34989 ++      struct hppabsd_core_struct *hppabsd_core_data;
 4.34990 ++      struct sgi_core_struct *sgi_core_data;
 4.34991 ++      struct lynx_core_struct *lynx_core_data;
 4.34992 ++      struct osf_core_struct *osf_core_data;
 4.34993 ++      struct cisco_core_struct *cisco_core_data;
 4.34994 ++      struct versados_data_struct *versados_data;
 4.34995 ++      struct netbsd_core_struct *netbsd_core_data;
 4.34996 ++      struct mach_o_data_struct *mach_o_data;
 4.34997 ++      struct mach_o_fat_data_struct *mach_o_fat_data;
 4.34998 ++      struct bfd_pef_data_struct *pef_data;
 4.34999 ++      struct bfd_pef_xlib_data_struct *pef_xlib_data;
 4.35000 ++      struct bfd_sym_data_struct *sym_data;
 4.35001 ++      void *any;
 4.35002 ++    }
 4.35003 ++  tdata;
 4.35004 ++
 4.35005 ++  /* Used by the application to hold private data.  */
 4.35006 ++  void *usrdata;
 4.35007 ++
 4.35008 ++  /* Where all the allocated stuff under this BFD goes.  This is a
 4.35009 ++     struct objalloc *, but we use void * to avoid requiring the inclusion
 4.35010 ++     of objalloc.h.  */
 4.35011 ++  void *memory;
 4.35012 ++};
 4.35013 ++
 4.35014 ++typedef enum bfd_error
 4.35015 ++{
 4.35016 ++  bfd_error_no_error = 0,
 4.35017 ++  bfd_error_system_call,
 4.35018 ++  bfd_error_invalid_target,
 4.35019 ++  bfd_error_wrong_format,
 4.35020 ++  bfd_error_wrong_object_format,
 4.35021 ++  bfd_error_invalid_operation,
 4.35022 ++  bfd_error_no_memory,
 4.35023 ++  bfd_error_no_symbols,
 4.35024 ++  bfd_error_no_armap,
 4.35025 ++  bfd_error_no_more_archived_files,
 4.35026 ++  bfd_error_malformed_archive,
 4.35027 ++  bfd_error_file_not_recognized,
 4.35028 ++  bfd_error_file_ambiguously_recognized,
 4.35029 ++  bfd_error_no_contents,
 4.35030 ++  bfd_error_nonrepresentable_section,
 4.35031 ++  bfd_error_no_debug_section,
 4.35032 ++  bfd_error_bad_value,
 4.35033 ++  bfd_error_file_truncated,
 4.35034 ++  bfd_error_file_too_big,
 4.35035 ++  bfd_error_on_input,
 4.35036 ++  bfd_error_invalid_error_code
 4.35037 ++}
 4.35038 ++bfd_error_type;
 4.35039 ++
 4.35040 ++bfd_error_type bfd_get_error (void);
 4.35041 ++
 4.35042 ++void bfd_set_error (bfd_error_type error_tag, ...);
 4.35043 ++
 4.35044 ++const char *bfd_errmsg (bfd_error_type error_tag);
 4.35045 ++
 4.35046 ++void bfd_perror (const char *message);
 4.35047 ++
 4.35048 ++typedef void (*bfd_error_handler_type) (const char *, ...);
 4.35049 ++
 4.35050 ++bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
 4.35051 ++
 4.35052 ++void bfd_set_error_program_name (const char *);
 4.35053 ++
 4.35054 ++bfd_error_handler_type bfd_get_error_handler (void);
 4.35055 ++
 4.35056 ++long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
 4.35057 ++
 4.35058 ++long bfd_canonicalize_reloc
 4.35059 ++   (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
 4.35060 ++
 4.35061 ++void bfd_set_reloc
 4.35062 ++   (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
 4.35063 ++
 4.35064 ++bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
 4.35065 ++
 4.35066 ++int bfd_get_arch_size (bfd *abfd);
 4.35067 ++
 4.35068 ++int bfd_get_sign_extend_vma (bfd *abfd);
 4.35069 ++
 4.35070 ++bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
 4.35071 ++
 4.35072 ++unsigned int bfd_get_gp_size (bfd *abfd);
 4.35073 ++
 4.35074 ++void bfd_set_gp_size (bfd *abfd, unsigned int i);
 4.35075 ++
 4.35076 ++bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
 4.35077 ++
 4.35078 ++bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
 4.35079 ++
 4.35080 ++#define bfd_copy_private_header_data(ibfd, obfd) \
 4.35081 ++     BFD_SEND (obfd, _bfd_copy_private_header_data, \
 4.35082 ++               (ibfd, obfd))
 4.35083 ++bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
 4.35084 ++
 4.35085 ++#define bfd_copy_private_bfd_data(ibfd, obfd) \
 4.35086 ++     BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
 4.35087 ++               (ibfd, obfd))
 4.35088 ++bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);
 4.35089 ++
 4.35090 ++#define bfd_merge_private_bfd_data(ibfd, obfd) \
 4.35091 ++     BFD_SEND (obfd, _bfd_merge_private_bfd_data, \
 4.35092 ++               (ibfd, obfd))
 4.35093 ++bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
 4.35094 ++
 4.35095 ++#define bfd_set_private_flags(abfd, flags) \
 4.35096 ++     BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
 4.35097 ++#define bfd_sizeof_headers(abfd, info) \
 4.35098 ++       BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info))
 4.35099 ++
 4.35100 ++#define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
 4.35101 ++       BFD_SEND (abfd, _bfd_find_nearest_line, \
 4.35102 ++                 (abfd, sec, syms, off, file, func, line))
 4.35103 ++
 4.35104 ++#define bfd_find_line(abfd, syms, sym, file, line) \
 4.35105 ++       BFD_SEND (abfd, _bfd_find_line, \
 4.35106 ++                 (abfd, syms, sym, file, line))
 4.35107 ++
 4.35108 ++#define bfd_find_inliner_info(abfd, file, func, line) \
 4.35109 ++       BFD_SEND (abfd, _bfd_find_inliner_info, \
 4.35110 ++                 (abfd, file, func, line))
 4.35111 ++
 4.35112 ++#define bfd_debug_info_start(abfd) \
 4.35113 ++       BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
 4.35114 ++
 4.35115 ++#define bfd_debug_info_end(abfd) \
 4.35116 ++       BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
 4.35117 ++
 4.35118 ++#define bfd_debug_info_accumulate(abfd, section) \
 4.35119 ++       BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
 4.35120 ++
 4.35121 ++#define bfd_stat_arch_elt(abfd, stat) \
 4.35122 ++       BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
 4.35123 ++
 4.35124 ++#define bfd_update_armap_timestamp(abfd) \
 4.35125 ++       BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
 4.35126 ++
 4.35127 ++#define bfd_set_arch_mach(abfd, arch, mach)\
 4.35128 ++       BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
 4.35129 ++
 4.35130 ++#define bfd_relax_section(abfd, section, link_info, again) \
 4.35131 ++       BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
 4.35132 ++
 4.35133 ++#define bfd_gc_sections(abfd, link_info) \
 4.35134 ++       BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
 4.35135 ++
 4.35136 ++#define bfd_merge_sections(abfd, link_info) \
 4.35137 ++       BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
 4.35138 ++
 4.35139 ++#define bfd_is_group_section(abfd, sec) \
 4.35140 ++       BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
 4.35141 ++
 4.35142 ++#define bfd_discard_group(abfd, sec) \
 4.35143 ++       BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
 4.35144 ++
 4.35145 ++#define bfd_link_hash_table_create(abfd) \
 4.35146 ++       BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
 4.35147 ++
 4.35148 ++#define bfd_link_hash_table_free(abfd, hash) \
 4.35149 ++       BFD_SEND (abfd, _bfd_link_hash_table_free, (hash))
 4.35150 ++
 4.35151 ++#define bfd_link_add_symbols(abfd, info) \
 4.35152 ++       BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
 4.35153 ++
 4.35154 ++#define bfd_link_just_syms(abfd, sec, info) \
 4.35155 ++       BFD_SEND (abfd, _bfd_link_just_syms, (sec, info))
 4.35156 ++
 4.35157 ++#define bfd_final_link(abfd, info) \
 4.35158 ++       BFD_SEND (abfd, _bfd_final_link, (abfd, info))
 4.35159 ++
 4.35160 ++#define bfd_free_cached_info(abfd) \
 4.35161 ++       BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
 4.35162 ++
 4.35163 ++#define bfd_get_dynamic_symtab_upper_bound(abfd) \
 4.35164 ++       BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))
 4.35165 ++
 4.35166 ++#define bfd_print_private_bfd_data(abfd, file)\
 4.35167 ++       BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file))
 4.35168 ++
 4.35169 ++#define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \
 4.35170 ++       BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols))
 4.35171 ++
 4.35172 ++#define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \
 4.35173 ++       BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \
 4.35174 ++                                                   dyncount, dynsyms, ret))
 4.35175 ++
 4.35176 ++#define bfd_get_dynamic_reloc_upper_bound(abfd) \
 4.35177 ++       BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd))
 4.35178 ++
 4.35179 ++#define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \
 4.35180 ++       BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
 4.35181 ++
 4.35182 ++extern bfd_byte *bfd_get_relocated_section_contents
 4.35183 ++  (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
 4.35184 ++   bfd_boolean, asymbol **);
 4.35185 ++
 4.35186 ++bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
 4.35187 ++
 4.35188 ++struct bfd_preserve
 4.35189 ++{
 4.35190 ++  void *marker;
 4.35191 ++  void *tdata;
 4.35192 ++  flagword flags;
 4.35193 ++  const struct bfd_arch_info *arch_info;
 4.35194 ++  struct bfd_section *sections;
 4.35195 ++  struct bfd_section *section_last;
 4.35196 ++  unsigned int section_count;
 4.35197 ++  struct bfd_hash_table section_htab;
 4.35198 ++};
 4.35199 ++
 4.35200 ++bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *);
 4.35201 ++
 4.35202 ++void bfd_preserve_restore (bfd *, struct bfd_preserve *);
 4.35203 ++
 4.35204 ++void bfd_preserve_finish (bfd *, struct bfd_preserve *);
 4.35205 ++
 4.35206 ++bfd_vma bfd_emul_get_maxpagesize (const char *);
 4.35207 ++
 4.35208 ++void bfd_emul_set_maxpagesize (const char *, bfd_vma);
 4.35209 ++
 4.35210 ++bfd_vma bfd_emul_get_commonpagesize (const char *);
 4.35211 ++
 4.35212 ++void bfd_emul_set_commonpagesize (const char *, bfd_vma);
 4.35213 ++
 4.35214 ++char *bfd_demangle (bfd *, const char *, int);
 4.35215 ++
 4.35216 ++/* Extracted from archive.c.  */
 4.35217 ++symindex bfd_get_next_mapent
 4.35218 ++   (bfd *abfd, symindex previous, carsym **sym);
 4.35219 ++
 4.35220 ++bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
 4.35221 ++
 4.35222 ++bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
 4.35223 ++
 4.35224 ++/* Extracted from corefile.c.  */
 4.35225 ++const char *bfd_core_file_failing_command (bfd *abfd);
 4.35226 ++
 4.35227 ++int bfd_core_file_failing_signal (bfd *abfd);
 4.35228 ++
 4.35229 ++bfd_boolean core_file_matches_executable_p
 4.35230 ++   (bfd *core_bfd, bfd *exec_bfd);
 4.35231 ++
 4.35232 ++bfd_boolean generic_core_file_matches_executable_p
 4.35233 ++   (bfd *core_bfd, bfd *exec_bfd);
 4.35234 ++
 4.35235 ++/* Extracted from targets.c.  */
 4.35236 ++#define BFD_SEND(bfd, message, arglist) \
 4.35237 ++  ((*((bfd)->xvec->message)) arglist)
 4.35238 ++
 4.35239 ++#ifdef DEBUG_BFD_SEND
 4.35240 ++#undef BFD_SEND
 4.35241 ++#define BFD_SEND(bfd, message, arglist) \
 4.35242 ++  (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
 4.35243 ++    ((*((bfd)->xvec->message)) arglist) : \
 4.35244 ++    (bfd_assert (__FILE__,__LINE__), NULL))
 4.35245 ++#endif
 4.35246 ++#define BFD_SEND_FMT(bfd, message, arglist) \
 4.35247 ++  (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
 4.35248 ++
 4.35249 ++#ifdef DEBUG_BFD_SEND
 4.35250 ++#undef BFD_SEND_FMT
 4.35251 ++#define BFD_SEND_FMT(bfd, message, arglist) \
 4.35252 ++  (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
 4.35253 ++   (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
 4.35254 ++   (bfd_assert (__FILE__,__LINE__), NULL))
 4.35255 ++#endif
 4.35256 ++
 4.35257 ++enum bfd_flavour
 4.35258 ++{
 4.35259 ++  bfd_target_unknown_flavour,
 4.35260 ++  bfd_target_aout_flavour,
 4.35261 ++  bfd_target_coff_flavour,
 4.35262 ++  bfd_target_ecoff_flavour,
 4.35263 ++  bfd_target_xcoff_flavour,
 4.35264 ++  bfd_target_elf_flavour,
 4.35265 ++  bfd_target_ieee_flavour,
 4.35266 ++  bfd_target_nlm_flavour,
 4.35267 ++  bfd_target_oasys_flavour,
 4.35268 ++  bfd_target_tekhex_flavour,
 4.35269 ++  bfd_target_srec_flavour,
 4.35270 ++  bfd_target_ihex_flavour,
 4.35271 ++  bfd_target_som_flavour,
 4.35272 ++  bfd_target_os9k_flavour,
 4.35273 ++  bfd_target_versados_flavour,
 4.35274 ++  bfd_target_msdos_flavour,
 4.35275 ++  bfd_target_ovax_flavour,
 4.35276 ++  bfd_target_evax_flavour,
 4.35277 ++  bfd_target_mmo_flavour,
 4.35278 ++  bfd_target_mach_o_flavour,
 4.35279 ++  bfd_target_pef_flavour,
 4.35280 ++  bfd_target_pef_xlib_flavour,
 4.35281 ++  bfd_target_sym_flavour
 4.35282 ++};
 4.35283 ++
 4.35284 ++enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN };
 4.35285 ++
 4.35286 ++/* Forward declaration.  */
 4.35287 ++typedef struct bfd_link_info _bfd_link_info;
 4.35288 ++
 4.35289 ++typedef struct bfd_target
 4.35290 ++{
 4.35291 ++  /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc.  */
 4.35292 ++  char *name;
 4.35293 ++
 4.35294 ++ /* The "flavour" of a back end is a general indication about
 4.35295 ++    the contents of a file.  */
 4.35296 ++  enum bfd_flavour flavour;
 4.35297 ++
 4.35298 ++  /* The order of bytes within the data area of a file.  */
 4.35299 ++  enum bfd_endian byteorder;
 4.35300 ++
 4.35301 ++ /* The order of bytes within the header parts of a file.  */
 4.35302 ++  enum bfd_endian header_byteorder;
 4.35303 ++
 4.35304 ++  /* A mask of all the flags which an executable may have set -
 4.35305 ++     from the set <<BFD_NO_FLAGS>>, <<HAS_RELOC>>, ...<<D_PAGED>>.  */
 4.35306 ++  flagword object_flags;
 4.35307 ++
 4.35308 ++ /* A mask of all the flags which a section may have set - from
 4.35309 ++    the set <<SEC_NO_FLAGS>>, <<SEC_ALLOC>>, ...<<SET_NEVER_LOAD>>.  */
 4.35310 ++  flagword section_flags;
 4.35311 ++
 4.35312 ++ /* The character normally found at the front of a symbol.
 4.35313 ++    (if any), perhaps `_'.  */
 4.35314 ++  char symbol_leading_char;
 4.35315 ++
 4.35316 ++ /* The pad character for file names within an archive header.  */
 4.35317 ++  char ar_pad_char;
 4.35318 ++
 4.35319 ++  /* The maximum number of characters in an archive header.  */
 4.35320 ++  unsigned short ar_max_namelen;
 4.35321 ++
 4.35322 ++  /* Entries for byte swapping for data. These are different from the
 4.35323 ++     other entry points, since they don't take a BFD as the first argument.
 4.35324 ++     Certain other handlers could do the same.  */
 4.35325 ++  bfd_uint64_t   (*bfd_getx64) (const void *);
 4.35326 ++  bfd_int64_t    (*bfd_getx_signed_64) (const void *);
 4.35327 ++  void           (*bfd_putx64) (bfd_uint64_t, void *);
 4.35328 ++  bfd_vma        (*bfd_getx32) (const void *);
 4.35329 ++  bfd_signed_vma (*bfd_getx_signed_32) (const void *);
 4.35330 ++  void           (*bfd_putx32) (bfd_vma, void *);
 4.35331 ++  bfd_vma        (*bfd_getx16) (const void *);
 4.35332 ++  bfd_signed_vma (*bfd_getx_signed_16) (const void *);
 4.35333 ++  void           (*bfd_putx16) (bfd_vma, void *);
 4.35334 ++
 4.35335 ++  /* Byte swapping for the headers.  */
 4.35336 ++  bfd_uint64_t   (*bfd_h_getx64) (const void *);
 4.35337 ++  bfd_int64_t    (*bfd_h_getx_signed_64) (const void *);
 4.35338 ++  void           (*bfd_h_putx64) (bfd_uint64_t, void *);
 4.35339 ++  bfd_vma        (*bfd_h_getx32) (const void *);
 4.35340 ++  bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
 4.35341 ++  void           (*bfd_h_putx32) (bfd_vma, void *);
 4.35342 ++  bfd_vma        (*bfd_h_getx16) (const void *);
 4.35343 ++  bfd_signed_vma (*bfd_h_getx_signed_16) (const void *);
 4.35344 ++  void           (*bfd_h_putx16) (bfd_vma, void *);
 4.35345 ++
 4.35346 ++  /* Format dependent routines: these are vectors of entry points
 4.35347 ++     within the target vector structure, one for each format to check.  */
 4.35348 ++
 4.35349 ++  /* Check the format of a file being read.  Return a <<bfd_target *>> or zero.  */
 4.35350 ++  const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
 4.35351 ++
 4.35352 ++  /* Set the format of a file being written.  */
 4.35353 ++  bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
 4.35354 ++
 4.35355 ++  /* Write cached information into a file being written, at <<bfd_close>>.  */
 4.35356 ++  bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
 4.35357 ++
 4.35358 ++
 4.35359 ++  /* Generic entry points.  */
 4.35360 ++#define BFD_JUMP_TABLE_GENERIC(NAME) \
 4.35361 ++  NAME##_close_and_cleanup, \
 4.35362 ++  NAME##_bfd_free_cached_info, \
 4.35363 ++  NAME##_new_section_hook, \
 4.35364 ++  NAME##_get_section_contents, \
 4.35365 ++  NAME##_get_section_contents_in_window
 4.35366 ++
 4.35367 ++  /* Called when the BFD is being closed to do any necessary cleanup.  */
 4.35368 ++  bfd_boolean (*_close_and_cleanup) (bfd *);
 4.35369 ++  /* Ask the BFD to free all cached information.  */
 4.35370 ++  bfd_boolean (*_bfd_free_cached_info) (bfd *);
 4.35371 ++  /* Called when a new section is created.  */
 4.35372 ++  bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
 4.35373 ++  /* Read the contents of a section.  */
 4.35374 ++  bfd_boolean (*_bfd_get_section_contents)
 4.35375 ++    (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
 4.35376 ++  bfd_boolean (*_bfd_get_section_contents_in_window)
 4.35377 ++    (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
 4.35378 ++
 4.35379 ++  /* Entry points to copy private data.  */
 4.35380 ++#define BFD_JUMP_TABLE_COPY(NAME) \
 4.35381 ++  NAME##_bfd_copy_private_bfd_data, \
 4.35382 ++  NAME##_bfd_merge_private_bfd_data, \
 4.35383 ++  _bfd_generic_init_private_section_data, \
 4.35384 ++  NAME##_bfd_copy_private_section_data, \
 4.35385 ++  NAME##_bfd_copy_private_symbol_data, \
 4.35386 ++  NAME##_bfd_copy_private_header_data, \
 4.35387 ++  NAME##_bfd_set_private_flags, \
 4.35388 ++  NAME##_bfd_print_private_bfd_data
 4.35389 ++
 4.35390 ++  /* Called to copy BFD general private data from one object file
 4.35391 ++     to another.  */
 4.35392 ++  bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
 4.35393 ++  /* Called to merge BFD general private data from one object file
 4.35394 ++     to a common output file when linking.  */
 4.35395 ++  bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *);
 4.35396 ++  /* Called to initialize BFD private section data from one object file
 4.35397 ++     to another.  */
 4.35398 ++#define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
 4.35399 ++  BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info))
 4.35400 ++  bfd_boolean (*_bfd_init_private_section_data)
 4.35401 ++    (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *);
 4.35402 ++  /* Called to copy BFD private section data from one object file
 4.35403 ++     to another.  */
 4.35404 ++  bfd_boolean (*_bfd_copy_private_section_data)
 4.35405 ++    (bfd *, sec_ptr, bfd *, sec_ptr);
 4.35406 ++  /* Called to copy BFD private symbol data from one symbol
 4.35407 ++     to another.  */
 4.35408 ++  bfd_boolean (*_bfd_copy_private_symbol_data)
 4.35409 ++    (bfd *, asymbol *, bfd *, asymbol *);
 4.35410 ++  /* Called to copy BFD private header data from one object file
 4.35411 ++     to another.  */
 4.35412 ++  bfd_boolean (*_bfd_copy_private_header_data)
 4.35413 ++    (bfd *, bfd *);
 4.35414 ++  /* Called to set private backend flags.  */
 4.35415 ++  bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
 4.35416 ++
 4.35417 ++  /* Called to print private BFD data.  */
 4.35418 ++  bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
 4.35419 ++
 4.35420 ++  /* Core file entry points.  */
 4.35421 ++#define BFD_JUMP_TABLE_CORE(NAME) \
 4.35422 ++  NAME##_core_file_failing_command, \
 4.35423 ++  NAME##_core_file_failing_signal, \
 4.35424 ++  NAME##_core_file_matches_executable_p
 4.35425 ++
 4.35426 ++  char *      (*_core_file_failing_command) (bfd *);
 4.35427 ++  int         (*_core_file_failing_signal) (bfd *);
 4.35428 ++  bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
 4.35429 ++
 4.35430 ++  /* Archive entry points.  */
 4.35431 ++#define BFD_JUMP_TABLE_ARCHIVE(NAME) \
 4.35432 ++  NAME##_slurp_armap, \
 4.35433 ++  NAME##_slurp_extended_name_table, \
 4.35434 ++  NAME##_construct_extended_name_table, \
 4.35435 ++  NAME##_truncate_arname, \
 4.35436 ++  NAME##_write_armap, \
 4.35437 ++  NAME##_read_ar_hdr, \
 4.35438 ++  NAME##_openr_next_archived_file, \
 4.35439 ++  NAME##_get_elt_at_index, \
 4.35440 ++  NAME##_generic_stat_arch_elt, \
 4.35441 ++  NAME##_update_armap_timestamp
 4.35442 ++
 4.35443 ++  bfd_boolean (*_bfd_slurp_armap) (bfd *);
 4.35444 ++  bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
 4.35445 ++  bfd_boolean (*_bfd_construct_extended_name_table)
 4.35446 ++    (bfd *, char **, bfd_size_type *, const char **);
 4.35447 ++  void        (*_bfd_truncate_arname) (bfd *, const char *, char *);
 4.35448 ++  bfd_boolean (*write_armap)
 4.35449 ++    (bfd *, unsigned int, struct orl *, unsigned int, int);
 4.35450 ++  void *      (*_bfd_read_ar_hdr_fn) (bfd *);
 4.35451 ++  bfd *       (*openr_next_archived_file) (bfd *, bfd *);
 4.35452 ++#define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
 4.35453 ++  bfd *       (*_bfd_get_elt_at_index) (bfd *, symindex);
 4.35454 ++  int         (*_bfd_stat_arch_elt) (bfd *, struct stat *);
 4.35455 ++  bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
 4.35456 ++
 4.35457 ++  /* Entry points used for symbols.  */
 4.35458 ++#define BFD_JUMP_TABLE_SYMBOLS(NAME) \
 4.35459 ++  NAME##_get_symtab_upper_bound, \
 4.35460 ++  NAME##_canonicalize_symtab, \
 4.35461 ++  NAME##_make_empty_symbol, \
 4.35462 ++  NAME##_print_symbol, \
 4.35463 ++  NAME##_get_symbol_info, \
 4.35464 ++  NAME##_bfd_is_local_label_name, \
 4.35465 ++  NAME##_bfd_is_target_special_symbol, \
 4.35466 ++  NAME##_get_lineno, \
 4.35467 ++  NAME##_find_nearest_line, \
 4.35468 ++  _bfd_generic_find_line, \
 4.35469 ++  NAME##_find_inliner_info, \
 4.35470 ++  NAME##_bfd_make_debug_symbol, \
 4.35471 ++  NAME##_read_minisymbols, \
 4.35472 ++  NAME##_minisymbol_to_symbol
 4.35473 ++
 4.35474 ++  long        (*_bfd_get_symtab_upper_bound) (bfd *);
 4.35475 ++  long        (*_bfd_canonicalize_symtab)
 4.35476 ++    (bfd *, struct bfd_symbol **);
 4.35477 ++  struct bfd_symbol *
 4.35478 ++              (*_bfd_make_empty_symbol) (bfd *);
 4.35479 ++  void        (*_bfd_print_symbol)
 4.35480 ++    (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
 4.35481 ++#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
 4.35482 ++  void        (*_bfd_get_symbol_info)
 4.35483 ++    (bfd *, struct bfd_symbol *, symbol_info *);
 4.35484 ++#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
 4.35485 ++  bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
 4.35486 ++  bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
 4.35487 ++  alent *     (*_get_lineno) (bfd *, struct bfd_symbol *);
 4.35488 ++  bfd_boolean (*_bfd_find_nearest_line)
 4.35489 ++    (bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma,
 4.35490 ++     const char **, const char **, unsigned int *);
 4.35491 ++  bfd_boolean (*_bfd_find_line)
 4.35492 ++    (bfd *, struct bfd_symbol **, struct bfd_symbol *,
 4.35493 ++     const char **, unsigned int *);
 4.35494 ++  bfd_boolean (*_bfd_find_inliner_info)
 4.35495 ++    (bfd *, const char **, const char **, unsigned int *);
 4.35496 ++ /* Back-door to allow format-aware applications to create debug symbols
 4.35497 ++    while using BFD for everything else.  Currently used by the assembler
 4.35498 ++    when creating COFF files.  */
 4.35499 ++  asymbol *   (*_bfd_make_debug_symbol)
 4.35500 ++    (bfd *, void *, unsigned long size);
 4.35501 ++#define bfd_read_minisymbols(b, d, m, s) \
 4.35502 ++  BFD_SEND (b, _read_minisymbols, (b, d, m, s))
 4.35503 ++  long        (*_read_minisymbols)
 4.35504 ++    (bfd *, bfd_boolean, void **, unsigned int *);
 4.35505 ++#define bfd_minisymbol_to_symbol(b, d, m, f) \
 4.35506 ++  BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
 4.35507 ++  asymbol *   (*_minisymbol_to_symbol)
 4.35508 ++    (bfd *, bfd_boolean, const void *, asymbol *);
 4.35509 ++
 4.35510 ++  /* Routines for relocs.  */
 4.35511 ++#define BFD_JUMP_TABLE_RELOCS(NAME) \
 4.35512 ++  NAME##_get_reloc_upper_bound, \
 4.35513 ++  NAME##_canonicalize_reloc, \
 4.35514 ++  NAME##_bfd_reloc_type_lookup, \
 4.35515 ++  NAME##_bfd_reloc_name_lookup
 4.35516 ++
 4.35517 ++  long        (*_get_reloc_upper_bound) (bfd *, sec_ptr);
 4.35518 ++  long        (*_bfd_canonicalize_reloc)
 4.35519 ++    (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
 4.35520 ++  /* See documentation on reloc types.  */
 4.35521 ++  reloc_howto_type *
 4.35522 ++              (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
 4.35523 ++  reloc_howto_type *
 4.35524 ++              (*reloc_name_lookup) (bfd *, const char *);
 4.35525 ++
 4.35526 ++
 4.35527 ++  /* Routines used when writing an object file.  */
 4.35528 ++#define BFD_JUMP_TABLE_WRITE(NAME) \
 4.35529 ++  NAME##_set_arch_mach, \
 4.35530 ++  NAME##_set_section_contents
 4.35531 ++
 4.35532 ++  bfd_boolean (*_bfd_set_arch_mach)
 4.35533 ++    (bfd *, enum bfd_architecture, unsigned long);
 4.35534 ++  bfd_boolean (*_bfd_set_section_contents)
 4.35535 ++    (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
 4.35536 ++
 4.35537 ++  /* Routines used by the linker.  */
 4.35538 ++#define BFD_JUMP_TABLE_LINK(NAME) \
 4.35539 ++  NAME##_sizeof_headers, \
 4.35540 ++  NAME##_bfd_get_relocated_section_contents, \
 4.35541 ++  NAME##_bfd_relax_section, \
 4.35542 ++  NAME##_bfd_link_hash_table_create, \
 4.35543 ++  NAME##_bfd_link_hash_table_free, \
 4.35544 ++  NAME##_bfd_link_add_symbols, \
 4.35545 ++  NAME##_bfd_link_just_syms, \
 4.35546 ++  NAME##_bfd_final_link, \
 4.35547 ++  NAME##_bfd_link_split_section, \
 4.35548 ++  NAME##_bfd_gc_sections, \
 4.35549 ++  NAME##_bfd_merge_sections, \
 4.35550 ++  NAME##_bfd_is_group_section, \
 4.35551 ++  NAME##_bfd_discard_group, \
 4.35552 ++  NAME##_section_already_linked \
 4.35553 ++
 4.35554 ++  int         (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
 4.35555 ++  bfd_byte *  (*_bfd_get_relocated_section_contents)
 4.35556 ++    (bfd *, struct bfd_link_info *, struct bfd_link_order *,
 4.35557 ++     bfd_byte *, bfd_boolean, struct bfd_symbol **);
 4.35558 ++
 4.35559 ++  bfd_boolean (*_bfd_relax_section)
 4.35560 ++    (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
 4.35561 ++
 4.35562 ++  /* Create a hash table for the linker.  Different backends store
 4.35563 ++     different information in this table.  */
 4.35564 ++  struct bfd_link_hash_table *
 4.35565 ++              (*_bfd_link_hash_table_create) (bfd *);
 4.35566 ++
 4.35567 ++  /* Release the memory associated with the linker hash table.  */
 4.35568 ++  void        (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *);
 4.35569 ++
 4.35570 ++  /* Add symbols from this object file into the hash table.  */
 4.35571 ++  bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
 4.35572 ++
 4.35573 ++  /* Indicate that we are only retrieving symbol values from this section.  */
 4.35574 ++  void        (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
 4.35575 ++
 4.35576 ++  /* Do a link based on the link_order structures attached to each
 4.35577 ++     section of the BFD.  */
 4.35578 ++  bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
 4.35579 ++
 4.35580 ++  /* Should this section be split up into smaller pieces during linking.  */
 4.35581 ++  bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
 4.35582 ++
 4.35583 ++  /* Remove sections that are not referenced from the output.  */
 4.35584 ++  bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
 4.35585 ++
 4.35586 ++  /* Attempt to merge SEC_MERGE sections.  */
 4.35587 ++  bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
 4.35588 ++
 4.35589 ++  /* Is this section a member of a group?  */
 4.35590 ++  bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
 4.35591 ++
 4.35592 ++  /* Discard members of a group.  */
 4.35593 ++  bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
 4.35594 ++
 4.35595 ++  /* Check if SEC has been already linked during a reloceatable or
 4.35596 ++     final link.  */
 4.35597 ++  void (*_section_already_linked) (bfd *, struct bfd_section *,
 4.35598 ++                                   struct bfd_link_info *);
 4.35599 ++
 4.35600 ++  /* Routines to handle dynamic symbols and relocs.  */
 4.35601 ++#define BFD_JUMP_TABLE_DYNAMIC(NAME) \
 4.35602 ++  NAME##_get_dynamic_symtab_upper_bound, \
 4.35603 ++  NAME##_canonicalize_dynamic_symtab, \
 4.35604 ++  NAME##_get_synthetic_symtab, \
 4.35605 ++  NAME##_get_dynamic_reloc_upper_bound, \
 4.35606 ++  NAME##_canonicalize_dynamic_reloc
 4.35607 ++
 4.35608 ++  /* Get the amount of memory required to hold the dynamic symbols.  */
 4.35609 ++  long        (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
 4.35610 ++  /* Read in the dynamic symbols.  */
 4.35611 ++  long        (*_bfd_canonicalize_dynamic_symtab)
 4.35612 ++    (bfd *, struct bfd_symbol **);
 4.35613 ++  /* Create synthetized symbols.  */
 4.35614 ++  long        (*_bfd_get_synthetic_symtab)
 4.35615 ++    (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
 4.35616 ++     struct bfd_symbol **);
 4.35617 ++  /* Get the amount of memory required to hold the dynamic relocs.  */
 4.35618 ++  long        (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
 4.35619 ++  /* Read in the dynamic relocs.  */
 4.35620 ++  long        (*_bfd_canonicalize_dynamic_reloc)
 4.35621 ++    (bfd *, arelent **, struct bfd_symbol **);
 4.35622 ++
 4.35623 ++  /* Opposite endian version of this target.  */
 4.35624 ++  const struct bfd_target * alternative_target;
 4.35625 ++
 4.35626 ++  /* Data for use by back-end routines, which isn't
 4.35627 ++     generic enough to belong in this structure.  */
 4.35628 ++  const void *backend_data;
 4.35629 ++
 4.35630 ++} bfd_target;
 4.35631 ++
 4.35632 ++bfd_boolean bfd_set_default_target (const char *name);
 4.35633 ++
 4.35634 ++const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
 4.35635 ++
 4.35636 ++const char ** bfd_target_list (void);
 4.35637 ++
 4.35638 ++const bfd_target *bfd_search_for_target
 4.35639 ++   (int (*search_func) (const bfd_target *, void *),
 4.35640 ++    void *);
 4.35641 ++
 4.35642 ++/* Extracted from format.c.  */
 4.35643 ++bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
 4.35644 ++
 4.35645 ++bfd_boolean bfd_check_format_matches
 4.35646 ++   (bfd *abfd, bfd_format format, char ***matching);
 4.35647 ++
 4.35648 ++bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
 4.35649 ++
 4.35650 ++const char *bfd_format_string (bfd_format format);
 4.35651 ++
 4.35652 ++/* Extracted from linker.c.  */
 4.35653 ++bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
 4.35654 ++
 4.35655 ++#define bfd_link_split_section(abfd, sec) \
 4.35656 ++       BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
 4.35657 ++
 4.35658 ++void bfd_section_already_linked (bfd *abfd, asection *sec,
 4.35659 ++    struct bfd_link_info *info);
 4.35660 ++
 4.35661 ++#define bfd_section_already_linked(abfd, sec, info) \
 4.35662 ++       BFD_SEND (abfd, _section_already_linked, (abfd, sec, info))
 4.35663 ++
 4.35664 ++/* Extracted from simple.c.  */
 4.35665 ++bfd_byte *bfd_simple_get_relocated_section_contents
 4.35666 ++   (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
 4.35667 ++
 4.35668 ++#ifdef __cplusplus
 4.35669 ++}
 4.35670 ++#endif
 4.35671 ++#endif
 4.35672 +--- /dev/null
 4.35673 ++++ b/bfd/bfd_stdint.h
 4.35674 +@@ -0,0 +1,47 @@
 4.35675 ++/* generated for  gcc (GCC) 4.2.4 (Ubuntu 4.2.4-3ubuntu4) */
 4.35676 ++
 4.35677 ++#ifndef GCC_GENERATED_STDINT_H
 4.35678 ++#define GCC_GENERATED_STDINT_H 1
 4.35679 ++
 4.35680 ++#include <sys/types.h>
 4.35681 ++#include <stdint.h>
 4.35682 ++/* glibc uses these symbols as guards to prevent redefinitions.  */
 4.35683 ++#ifdef __int8_t_defined
 4.35684 ++#define _INT8_T
 4.35685 ++#define _INT16_T
 4.35686 ++#define _INT32_T
 4.35687 ++#endif
 4.35688 ++#ifdef __uint32_t_defined
 4.35689 ++#define _UINT32_T
 4.35690 ++#endif
 4.35691 ++
 4.35692 ++
 4.35693 ++/* Some systems have guard macros to prevent redefinitions, define them.  */
 4.35694 ++#ifndef _INT8_T
 4.35695 ++#define _INT8_T
 4.35696 ++#endif
 4.35697 ++#ifndef _INT16_T
 4.35698 ++#define _INT16_T
 4.35699 ++#endif
 4.35700 ++#ifndef _INT32_T
 4.35701 ++#define _INT32_T
 4.35702 ++#endif
 4.35703 ++#ifndef _UINT8_T
 4.35704 ++#define _UINT8_T
 4.35705 ++#endif
 4.35706 ++#ifndef _UINT16_T
 4.35707 ++#define _UINT16_T
 4.35708 ++#endif
 4.35709 ++#ifndef _UINT32_T
 4.35710 ++#define _UINT32_T
 4.35711 ++#endif
 4.35712 ++
 4.35713 ++/* system headers have good uint64_t and int64_t */
 4.35714 ++#ifndef _INT64_T
 4.35715 ++#define _INT64_T
 4.35716 ++#endif
 4.35717 ++#ifndef _UINT64_T
 4.35718 ++#define _UINT64_T
 4.35719 ++#endif
 4.35720 ++
 4.35721 ++#endif /* GCC_GENERATED_STDINT_H */
 4.35722 +--- a/bfd/configure
 4.35723 ++++ b/bfd/configure
 4.35724 +@@ -2994,7 +2994,7 @@ fi
 4.35725 + 
 4.35726 + # Define the identity of the package.
 4.35727 +  PACKAGE=bfd
 4.35728 +- VERSION=2.18
 4.35729 ++ VERSION=2.18.atmel.1.0.1.avr32linux.1
 4.35730 + 
 4.35731 + 
 4.35732 + cat >>confdefs.h <<_ACEOF
 4.35733 +@@ -19041,6 +19041,7 @@ do
 4.35734 +     bfd_efi_app_ia64_vec)	tb="$tb efi-app-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
 4.35735 +     bfd_elf32_am33lin_vec)	tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
 4.35736 +     bfd_elf32_avr_vec)		tb="$tb elf32-avr.lo elf32.lo $elf" ;;
 4.35737 ++    bfd_elf32_avr32_vec)	tb="$tb elf32-avr32.lo elf32.lo $elf" ;;
 4.35738 +     bfd_elf32_bfin_vec)		tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
 4.35739 +     bfd_elf32_bfinfdpic_vec)	tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
 4.35740 +     bfd_elf32_big_generic_vec) 	tb="$tb elf32-gen.lo elf32.lo $elf" ;;
 4.35741 +--- /dev/null
 4.35742 ++++ b/bfd/doc/bfd.h
 4.35743 +@@ -0,0 +1,5493 @@
 4.35744 ++/* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically 
 4.35745 ++   generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c", 
 4.35746 ++   "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c", 
 4.35747 ++   "syms.c", "bfd.c", "archive.c", "corefile.c", "targets.c", "format.c", 
 4.35748 ++   "linker.c" and "simple.c".
 4.35749 ++   Run "make headers" in your build bfd/ to regenerate.  */
 4.35750 ++
 4.35751 ++/* Main header file for the bfd library -- portable access to object files.
 4.35752 ++
 4.35753 ++   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
 4.35754 ++   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 4.35755 ++   Free Software Foundation, Inc.
 4.35756 ++
 4.35757 ++   Contributed by Cygnus Support.
 4.35758 ++
 4.35759 ++   This file is part of BFD, the Binary File Descriptor library.
 4.35760 ++
 4.35761 ++   This program is free software; you can redistribute it and/or modify
 4.35762 ++   it under the terms of the GNU General Public License as published by
 4.35763 ++   the Free Software Foundation; either version 3 of the License, or
 4.35764 ++   (at your option) any later version.
 4.35765 ++
 4.35766 ++   This program is distributed in the hope that it will be useful,
 4.35767 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
 4.35768 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 4.35769 ++   GNU General Public License for more details.
 4.35770 ++
 4.35771 ++   You should have received a copy of the GNU General Public License
 4.35772 ++   along with this program; if not, write to the Free Software
 4.35773 ++   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 4.35774 ++
 4.35775 ++#ifndef __BFD_H_SEEN__
 4.35776 ++#define __BFD_H_SEEN__
 4.35777 ++
 4.35778 ++#ifdef __cplusplus
 4.35779 ++extern "C" {
 4.35780 ++#endif
 4.35781 ++
 4.35782 ++#include "ansidecl.h"
 4.35783 ++#include "symcat.h"
 4.35784 ++#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
 4.35785 ++#ifndef SABER
 4.35786 ++/* This hack is to avoid a problem with some strict ANSI C preprocessors.
 4.35787 ++   The problem is, "32_" is not a valid preprocessing token, and we don't
 4.35788 ++   want extra underscores (e.g., "nlm_32_").  The XCONCAT2 macro will
 4.35789 ++   cause the inner CONCAT2 macros to be evaluated first, producing
 4.35790 ++   still-valid pp-tokens.  Then the final concatenation can be done.  */
 4.35791 ++#undef CONCAT4
 4.35792 ++#define CONCAT4(a,b,c,d) XCONCAT2(CONCAT2(a,b),CONCAT2(c,d))
 4.35793 ++#endif
 4.35794 ++#endif
 4.35795 ++
 4.35796 ++/* This is a utility macro to handle the situation where the code
 4.35797 ++   wants to place a constant string into the code, followed by a
 4.35798 ++   comma and then the length of the string.  Doing this by hand
 4.35799 ++   is error prone, so using this macro is safer.  The macro will
 4.35800 ++   also safely handle the case where a NULL is passed as the arg.  */
 4.35801 ++#define STRING_COMMA_LEN(STR) (STR), ((STR) ? sizeof (STR) - 1 : 0)
 4.35802 ++/* Unfortunately it is not possible to use the STRING_COMMA_LEN macro
 4.35803 ++   to create the arguments to another macro, since the preprocessor
 4.35804 ++   will mis-count the number of arguments to the outer macro (by not
 4.35805 ++   evaluating STRING_COMMA_LEN and so missing the comma).  This is a
 4.35806 ++   problem for example when trying to use STRING_COMMA_LEN to build
 4.35807 ++   the arguments to the strncmp() macro.  Hence this alternative
 4.35808 ++   definition of strncmp is provided here.
 4.35809 ++   
 4.35810 ++   Note - these macros do NOT work if STR2 is not a constant string.  */
 4.35811 ++#define CONST_STRNEQ(STR1,STR2) (strncmp ((STR1), (STR2), sizeof (STR2) - 1) == 0)
 4.35812 ++  /* strcpy() can have a similar problem, but since we know we are
 4.35813 ++     copying a constant string, we can use memcpy which will be faster
 4.35814 ++     since there is no need to check for a NUL byte inside STR.  We
 4.35815 ++     can also save time if we do not need to copy the terminating NUL.  */
 4.35816 ++#define LITMEMCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2) - 1)
 4.35817 ++#define LITSTRCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2))
 4.35818 ++
 4.35819 ++
 4.35820 ++/* The word size used by BFD on the host.  This may be 64 with a 32
 4.35821 ++   bit target if the host is 64 bit, or if other 64 bit targets have
 4.35822 ++   been selected with --enable-targets, or if --enable-64-bit-bfd.  */
 4.35823 ++#define BFD_ARCH_SIZE @wordsize@
 4.35824 ++
 4.35825 ++/* The word size of the default bfd target.  */
 4.35826 ++#define BFD_DEFAULT_TARGET_SIZE @bfd_default_target_size@
 4.35827 ++
 4.35828 ++#define BFD_HOST_64BIT_LONG @BFD_HOST_64BIT_LONG@
 4.35829 ++#define BFD_HOST_64BIT_LONG_LONG @BFD_HOST_64BIT_LONG_LONG@
 4.35830 ++#define BFD_HOST_LONG_LONG @BFD_HOST_LONG_LONG@
 4.35831 ++#if @BFD_HOST_64_BIT_DEFINED@
 4.35832 ++#define BFD_HOST_64_BIT @BFD_HOST_64_BIT@
 4.35833 ++#define BFD_HOST_U_64_BIT @BFD_HOST_U_64_BIT@
 4.35834 ++typedef BFD_HOST_64_BIT bfd_int64_t;
 4.35835 ++typedef BFD_HOST_U_64_BIT bfd_uint64_t;
 4.35836 ++#endif
 4.35837 ++
 4.35838 ++#if BFD_ARCH_SIZE >= 64
 4.35839 ++#define BFD64
 4.35840 ++#endif
 4.35841 ++
 4.35842 ++#ifndef INLINE
 4.35843 ++#if __GNUC__ >= 2
 4.35844 ++#define INLINE __inline__
 4.35845 ++#else
 4.35846 ++#define INLINE
 4.35847 ++#endif
 4.35848 ++#endif
 4.35849 ++
 4.35850 ++/* Declaring a type wide enough to hold a host long and a host pointer.  */
 4.35851 ++#define BFD_HOSTPTR_T	@BFD_HOSTPTR_T@
 4.35852 ++typedef BFD_HOSTPTR_T bfd_hostptr_t;
 4.35853 ++
 4.35854 ++/* Forward declaration.  */
 4.35855 ++typedef struct bfd bfd;
 4.35856 ++
 4.35857 ++/* Boolean type used in bfd.  Too many systems define their own
 4.35858 ++   versions of "boolean" for us to safely typedef a "boolean" of
 4.35859 ++   our own.  Using an enum for "bfd_boolean" has its own set of
 4.35860 ++   problems, with strange looking casts required to avoid warnings
 4.35861 ++   on some older compilers.  Thus we just use an int.
 4.35862 ++
 4.35863 ++   General rule: Functions which are bfd_boolean return TRUE on
 4.35864 ++   success and FALSE on failure (unless they're a predicate).  */
 4.35865 ++
 4.35866 ++typedef int bfd_boolean;
 4.35867 ++#undef FALSE
 4.35868 ++#undef TRUE
 4.35869 ++#define FALSE 0
 4.35870 ++#define TRUE 1
 4.35871 ++
 4.35872 ++#ifdef BFD64
 4.35873 ++
 4.35874 ++#ifndef BFD_HOST_64_BIT
 4.35875 ++ #error No 64 bit integer type available
 4.35876 ++#endif /* ! defined (BFD_HOST_64_BIT) */
 4.35877 ++
 4.35878 ++typedef BFD_HOST_U_64_BIT bfd_vma;
 4.35879 ++typedef BFD_HOST_64_BIT bfd_signed_vma;
 4.35880 ++typedef BFD_HOST_U_64_BIT bfd_size_type;
 4.35881 ++typedef BFD_HOST_U_64_BIT symvalue;
 4.35882 ++
 4.35883 ++#ifndef fprintf_vma
 4.35884 ++#if BFD_HOST_64BIT_LONG
 4.35885 ++#define sprintf_vma(s,x) sprintf (s, "%016lx", x)
 4.35886 ++#define fprintf_vma(f,x) fprintf (f, "%016lx", x)
 4.35887 ++#elif BFD_HOST_64BIT_LONG_LONG
 4.35888 ++#define sprintf_vma(s,x) sprintf (s, "%016llx", x)
 4.35889 ++#define fprintf_vma(f,x) fprintf (f, "%016llx", x)
 4.35890 ++#else
 4.35891 ++#define _bfd_int64_low(x) ((unsigned long) (((x) & 0xffffffff)))
 4.35892 ++#define _bfd_int64_high(x) ((unsigned long) (((x) >> 32) & 0xffffffff))
 4.35893 ++#define fprintf_vma(s,x) \
 4.35894 ++  fprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
 4.35895 ++#define sprintf_vma(s,x) \
 4.35896 ++  sprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
 4.35897 ++#endif
 4.35898 ++#endif
 4.35899 ++
 4.35900 ++#else /* not BFD64  */
 4.35901 ++
 4.35902 ++/* Represent a target address.  Also used as a generic unsigned type
 4.35903 ++   which is guaranteed to be big enough to hold any arithmetic types
 4.35904 ++   we need to deal with.  */
 4.35905 ++typedef unsigned long bfd_vma;
 4.35906 ++
 4.35907 ++/* A generic signed type which is guaranteed to be big enough to hold any
 4.35908 ++   arithmetic types we need to deal with.  Can be assumed to be compatible
 4.35909 ++   with bfd_vma in the same way that signed and unsigned ints are compatible
 4.35910 ++   (as parameters, in assignment, etc).  */
 4.35911 ++typedef long bfd_signed_vma;
 4.35912 ++
 4.35913 ++typedef unsigned long symvalue;
 4.35914 ++typedef unsigned long bfd_size_type;
 4.35915 ++
 4.35916 ++/* Print a bfd_vma x on stream s.  */
 4.35917 ++#define fprintf_vma(s,x) fprintf (s, "%08lx", x)
 4.35918 ++#define sprintf_vma(s,x) sprintf (s, "%08lx", x)
 4.35919 ++
 4.35920 ++#endif /* not BFD64  */
 4.35921 ++
 4.35922 ++#define HALF_BFD_SIZE_TYPE \
 4.35923 ++  (((bfd_size_type) 1) << (8 * sizeof (bfd_size_type) / 2))
 4.35924 ++
 4.35925 ++#ifndef BFD_HOST_64_BIT
 4.35926 ++/* Fall back on a 32 bit type.  The idea is to make these types always
 4.35927 ++   available for function return types, but in the case that
 4.35928 ++   BFD_HOST_64_BIT is undefined such a function should abort or
 4.35929 ++   otherwise signal an error.  */
 4.35930 ++typedef bfd_signed_vma bfd_int64_t;
 4.35931 ++typedef bfd_vma bfd_uint64_t;
 4.35932 ++#endif
 4.35933 ++
 4.35934 ++/* An offset into a file.  BFD always uses the largest possible offset
 4.35935 ++   based on the build time availability of fseek, fseeko, or fseeko64.  */
 4.35936 ++typedef @bfd_file_ptr@ file_ptr;
 4.35937 ++typedef unsigned @bfd_file_ptr@ ufile_ptr;
 4.35938 ++
 4.35939 ++extern void bfd_sprintf_vma (bfd *, char *, bfd_vma);
 4.35940 ++extern void bfd_fprintf_vma (bfd *, void *, bfd_vma);
 4.35941 ++
 4.35942 ++#define printf_vma(x) fprintf_vma(stdout,x)
 4.35943 ++#define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x)
 4.35944 ++
 4.35945 ++typedef unsigned int flagword;	/* 32 bits of flags */
 4.35946 ++typedef unsigned char bfd_byte;
 4.35947 ++
 4.35948 ++/* File formats.  */
 4.35949 ++
 4.35950 ++typedef enum bfd_format
 4.35951 ++{
 4.35952 ++  bfd_unknown = 0,	/* File format is unknown.  */
 4.35953 ++  bfd_object,		/* Linker/assembler/compiler output.  */
 4.35954 ++  bfd_archive,		/* Object archive file.  */
 4.35955 ++  bfd_core,		/* Core dump.  */
 4.35956 ++  bfd_type_end		/* Marks the end; don't use it!  */
 4.35957 ++}
 4.35958 ++bfd_format;
 4.35959 ++
 4.35960 ++/* Values that may appear in the flags field of a BFD.  These also
 4.35961 ++   appear in the object_flags field of the bfd_target structure, where
 4.35962 ++   they indicate the set of flags used by that backend (not all flags
 4.35963 ++   are meaningful for all object file formats) (FIXME: at the moment,
 4.35964 ++   the object_flags values have mostly just been copied from backend
 4.35965 ++   to another, and are not necessarily correct).  */
 4.35966 ++
 4.35967 ++/* No flags.  */
 4.35968 ++#define BFD_NO_FLAGS   	0x00
 4.35969 ++
 4.35970 ++/* BFD contains relocation entries.  */
 4.35971 ++#define HAS_RELOC   	0x01
 4.35972 ++
 4.35973 ++/* BFD is directly executable.  */
 4.35974 ++#define EXEC_P      	0x02
 4.35975 ++
 4.35976 ++/* BFD has line number information (basically used for F_LNNO in a
 4.35977 ++   COFF header).  */
 4.35978 ++#define HAS_LINENO  	0x04
 4.35979 ++
 4.35980 ++/* BFD has debugging information.  */
 4.35981 ++#define HAS_DEBUG   	0x08
 4.35982 ++
 4.35983 ++/* BFD has symbols.  */
 4.35984 ++#define HAS_SYMS    	0x10
 4.35985 ++
 4.35986 ++/* BFD has local symbols (basically used for F_LSYMS in a COFF
 4.35987 ++   header).  */
 4.35988 ++#define HAS_LOCALS  	0x20
 4.35989 ++
 4.35990 ++/* BFD is a dynamic object.  */
 4.35991 ++#define DYNAMIC     	0x40
 4.35992 ++
 4.35993 ++/* Text section is write protected (if D_PAGED is not set, this is
 4.35994 ++   like an a.out NMAGIC file) (the linker sets this by default, but
 4.35995 ++   clears it for -r or -N).  */
 4.35996 ++#define WP_TEXT     	0x80
 4.35997 ++
 4.35998 ++/* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
 4.35999 ++   linker sets this by default, but clears it for -r or -n or -N).  */
 4.36000 ++#define D_PAGED     	0x100
 4.36001 ++
 4.36002 ++/* BFD is relaxable (this means that bfd_relax_section may be able to
 4.36003 ++   do something) (sometimes bfd_relax_section can do something even if
 4.36004 ++   this is not set).  */
 4.36005 ++#define BFD_IS_RELAXABLE 0x200
 4.36006 ++
 4.36007 ++/* This may be set before writing out a BFD to request using a
 4.36008 ++   traditional format.  For example, this is used to request that when
 4.36009 ++   writing out an a.out object the symbols not be hashed to eliminate
 4.36010 ++   duplicates.  */
 4.36011 ++#define BFD_TRADITIONAL_FORMAT 0x400
 4.36012 ++
 4.36013 ++/* This flag indicates that the BFD contents are actually cached in
 4.36014 ++   memory.  If this is set, iostream points to a bfd_in_memory struct.  */
 4.36015 ++#define BFD_IN_MEMORY 0x800
 4.36016 ++
 4.36017 ++/* The sections in this BFD specify a memory page.  */
 4.36018 ++#define HAS_LOAD_PAGE 0x1000
 4.36019 ++
 4.36020 ++/* This BFD has been created by the linker and doesn't correspond
 4.36021 ++   to any input file.  */
 4.36022 ++#define BFD_LINKER_CREATED 0x2000
 4.36023 ++
 4.36024 ++/* Symbols and relocation.  */
 4.36025 ++
 4.36026 ++/* A count of carsyms (canonical archive symbols).  */
 4.36027 ++typedef unsigned long symindex;
 4.36028 ++
 4.36029 ++/* How to perform a relocation.  */
 4.36030 ++typedef const struct reloc_howto_struct reloc_howto_type;
 4.36031 ++
 4.36032 ++#define BFD_NO_MORE_SYMBOLS ((symindex) ~0)
 4.36033 ++
 4.36034 ++/* General purpose part of a symbol X;
 4.36035 ++   target specific parts are in libcoff.h, libaout.h, etc.  */
 4.36036 ++
 4.36037 ++#define bfd_get_section(x) ((x)->section)
 4.36038 ++#define bfd_get_output_section(x) ((x)->section->output_section)
 4.36039 ++#define bfd_set_section(x,y) ((x)->section) = (y)
 4.36040 ++#define bfd_asymbol_base(x) ((x)->section->vma)
 4.36041 ++#define bfd_asymbol_value(x) (bfd_asymbol_base(x) + (x)->value)
 4.36042 ++#define bfd_asymbol_name(x) ((x)->name)
 4.36043 ++/*Perhaps future: #define bfd_asymbol_bfd(x) ((x)->section->owner)*/
 4.36044 ++#define bfd_asymbol_bfd(x) ((x)->the_bfd)
 4.36045 ++#define bfd_asymbol_flavour(x) (bfd_asymbol_bfd(x)->xvec->flavour)
 4.36046 ++
 4.36047 ++/* A canonical archive symbol.  */
 4.36048 ++/* This is a type pun with struct ranlib on purpose!  */
 4.36049 ++typedef struct carsym
 4.36050 ++{
 4.36051 ++  char *name;
 4.36052 ++  file_ptr file_offset;	/* Look here to find the file.  */
 4.36053 ++}
 4.36054 ++carsym;			/* To make these you call a carsymogen.  */
 4.36055 ++
 4.36056 ++/* Used in generating armaps (archive tables of contents).
 4.36057 ++   Perhaps just a forward definition would do?  */
 4.36058 ++struct orl 			/* Output ranlib.  */
 4.36059 ++{
 4.36060 ++  char **name;		/* Symbol name.  */
 4.36061 ++  union
 4.36062 ++  {
 4.36063 ++    file_ptr pos;
 4.36064 ++    bfd *abfd;
 4.36065 ++  } u;			/* bfd* or file position.  */
 4.36066 ++  int namidx;		/* Index into string table.  */
 4.36067 ++};
 4.36068 ++
 4.36069 ++/* Linenumber stuff.  */
 4.36070 ++typedef struct lineno_cache_entry
 4.36071 ++{
 4.36072 ++  unsigned int line_number;	/* Linenumber from start of function.  */
 4.36073 ++  union
 4.36074 ++  {
 4.36075 ++    struct bfd_symbol *sym;	/* Function name.  */
 4.36076 ++    bfd_vma offset;	    		/* Offset into section.  */
 4.36077 ++  } u;
 4.36078 ++}
 4.36079 ++alent;
 4.36080 ++
 4.36081 ++/* Object and core file sections.  */
 4.36082 ++
 4.36083 ++#define	align_power(addr, align)	\
 4.36084 ++  (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align)))
 4.36085 ++
 4.36086 ++typedef struct bfd_section *sec_ptr;
 4.36087 ++
 4.36088 ++#define bfd_get_section_name(bfd, ptr) ((ptr)->name + 0)
 4.36089 ++#define bfd_get_section_vma(bfd, ptr) ((ptr)->vma + 0)
 4.36090 ++#define bfd_get_section_lma(bfd, ptr) ((ptr)->lma + 0)
 4.36091 ++#define bfd_get_section_alignment(bfd, ptr) ((ptr)->alignment_power + 0)
 4.36092 ++#define bfd_section_name(bfd, ptr) ((ptr)->name)
 4.36093 ++#define bfd_section_size(bfd, ptr) ((ptr)->size)
 4.36094 ++#define bfd_get_section_size(ptr) ((ptr)->size)
 4.36095 ++#define bfd_section_vma(bfd, ptr) ((ptr)->vma)
 4.36096 ++#define bfd_section_lma(bfd, ptr) ((ptr)->lma)
 4.36097 ++#define bfd_section_alignment(bfd, ptr) ((ptr)->alignment_power)
 4.36098 ++#define bfd_get_section_flags(bfd, ptr) ((ptr)->flags + 0)
 4.36099 ++#define bfd_get_section_userdata(bfd, ptr) ((ptr)->userdata)
 4.36100 ++
 4.36101 ++#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
 4.36102 ++
 4.36103 ++#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
 4.36104 ++#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
 4.36105 ++#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
 4.36106 ++/* Find the address one past the end of SEC.  */
 4.36107 ++#define bfd_get_section_limit(bfd, sec) \
 4.36108 ++  (((sec)->rawsize ? (sec)->rawsize : (sec)->size) \
 4.36109 ++   / bfd_octets_per_byte (bfd))
 4.36110 ++
 4.36111 ++/* Return TRUE if section has been discarded.  */
 4.36112 ++#define elf_discarded_section(sec)				\
 4.36113 ++  (!bfd_is_abs_section (sec)					\
 4.36114 ++   && bfd_is_abs_section ((sec)->output_section)		\
 4.36115 ++   && (sec)->sec_info_type != ELF_INFO_TYPE_MERGE		\
 4.36116 ++   && (sec)->sec_info_type != ELF_INFO_TYPE_JUST_SYMS)
 4.36117 ++
 4.36118 ++/* Forward define.  */
 4.36119 ++struct stat;
 4.36120 ++
 4.36121 ++typedef enum bfd_print_symbol
 4.36122 ++{
 4.36123 ++  bfd_print_symbol_name,
 4.36124 ++  bfd_print_symbol_more,
 4.36125 ++  bfd_print_symbol_all
 4.36126 ++} bfd_print_symbol_type;
 4.36127 ++
 4.36128 ++/* Information about a symbol that nm needs.  */
 4.36129 ++
 4.36130 ++typedef struct _symbol_info
 4.36131 ++{
 4.36132 ++  symvalue value;
 4.36133 ++  char type;
 4.36134 ++  const char *name;            /* Symbol name.  */
 4.36135 ++  unsigned char stab_type;     /* Stab type.  */
 4.36136 ++  char stab_other;             /* Stab other.  */
 4.36137 ++  short stab_desc;             /* Stab desc.  */
 4.36138 ++  const char *stab_name;       /* String for stab type.  */
 4.36139 ++} symbol_info;
 4.36140 ++
 4.36141 ++/* Get the name of a stabs type code.  */
 4.36142 ++
 4.36143 ++extern const char *bfd_get_stab_name (int);
 4.36144 ++
 4.36145 ++/* Hash table routines.  There is no way to free up a hash table.  */
 4.36146 ++
 4.36147 ++/* An element in the hash table.  Most uses will actually use a larger
 4.36148 ++   structure, and an instance of this will be the first field.  */
 4.36149 ++
 4.36150 ++struct bfd_hash_entry
 4.36151 ++{
 4.36152 ++  /* Next entry for this hash code.  */
 4.36153 ++  struct bfd_hash_entry *next;
 4.36154 ++  /* String being hashed.  */
 4.36155 ++  const char *string;
 4.36156 ++  /* Hash code.  This is the full hash code, not the index into the
 4.36157 ++     table.  */
 4.36158 ++  unsigned long hash;
 4.36159 ++};
 4.36160 ++
 4.36161 ++/* A hash table.  */
 4.36162 ++
 4.36163 ++struct bfd_hash_table
 4.36164 ++{
 4.36165 ++  /* The hash array.  */
 4.36166 ++  struct bfd_hash_entry **table;
 4.36167 ++  /* A function used to create new elements in the hash table.  The
 4.36168 ++     first entry is itself a pointer to an element.  When this
 4.36169 ++     function is first invoked, this pointer will be NULL.  However,
 4.36170 ++     having the pointer permits a hierarchy of method functions to be
 4.36171 ++     built each of which calls the function in the superclass.  Thus
 4.36172 ++     each function should be written to allocate a new block of memory
 4.36173 ++     only if the argument is NULL.  */
 4.36174 ++  struct bfd_hash_entry *(*newfunc)
 4.36175 ++    (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
 4.36176 ++   /* An objalloc for this hash table.  This is a struct objalloc *,
 4.36177 ++     but we use void * to avoid requiring the inclusion of objalloc.h.  */
 4.36178 ++  void *memory;
 4.36179 ++  /* The number of slots in the hash table.  */
 4.36180 ++  unsigned int size;
 4.36181 ++  /* The number of entries in the hash table.  */
 4.36182 ++  unsigned int count;
 4.36183 ++  /* The size of elements.  */
 4.36184 ++  unsigned int entsize;
 4.36185 ++  /* If non-zero, don't grow the hash table.  */
 4.36186 ++  unsigned int frozen:1;
 4.36187 ++};
 4.36188 ++
 4.36189 ++/* Initialize a hash table.  */
 4.36190 ++extern bfd_boolean bfd_hash_table_init
 4.36191 ++  (struct bfd_hash_table *,
 4.36192 ++   struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
 4.36193 ++			       struct bfd_hash_table *,
 4.36194 ++			       const char *),
 4.36195 ++   unsigned int);
 4.36196 ++
 4.36197 ++/* Initialize a hash table specifying a size.  */
 4.36198 ++extern bfd_boolean bfd_hash_table_init_n
 4.36199 ++  (struct bfd_hash_table *,
 4.36200 ++   struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
 4.36201 ++			       struct bfd_hash_table *,
 4.36202 ++			       const char *),
 4.36203 ++   unsigned int, unsigned int);
 4.36204 ++
 4.36205 ++/* Free up a hash table.  */
 4.36206 ++extern void bfd_hash_table_free
 4.36207 ++  (struct bfd_hash_table *);
 4.36208 ++
 4.36209 ++/* Look up a string in a hash table.  If CREATE is TRUE, a new entry
 4.36210 ++   will be created for this string if one does not already exist.  The
 4.36211 ++   COPY argument must be TRUE if this routine should copy the string
 4.36212 ++   into newly allocated memory when adding an entry.  */
 4.36213 ++extern struct bfd_hash_entry *bfd_hash_lookup
 4.36214 ++  (struct bfd_hash_table *, const char *, bfd_boolean create,
 4.36215 ++   bfd_boolean copy);
 4.36216 ++
 4.36217 ++/* Replace an entry in a hash table.  */
 4.36218 ++extern void bfd_hash_replace
 4.36219 ++  (struct bfd_hash_table *, struct bfd_hash_entry *old,
 4.36220 ++   struct bfd_hash_entry *nw);
 4.36221 ++
 4.36222 ++/* Base method for creating a hash table entry.  */
 4.36223 ++extern struct bfd_hash_entry *bfd_hash_newfunc
 4.36224 ++  (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
 4.36225 ++
 4.36226 ++/* Grab some space for a hash table entry.  */
 4.36227 ++extern void *bfd_hash_allocate
 4.36228 ++  (struct bfd_hash_table *, unsigned int);
 4.36229 ++
 4.36230 ++/* Traverse a hash table in a random order, calling a function on each
 4.36231 ++   element.  If the function returns FALSE, the traversal stops.  The
 4.36232 ++   INFO argument is passed to the function.  */
 4.36233 ++extern void bfd_hash_traverse
 4.36234 ++  (struct bfd_hash_table *,
 4.36235 ++   bfd_boolean (*) (struct bfd_hash_entry *, void *),
 4.36236 ++   void *info);
 4.36237 ++
 4.36238 ++/* Allows the default size of a hash table to be configured. New hash
 4.36239 ++   tables allocated using bfd_hash_table_init will be created with
 4.36240 ++   this size.  */
 4.36241 ++extern void bfd_hash_set_default_size (bfd_size_type);
 4.36242 ++
 4.36243 ++/* This structure is used to keep track of stabs in sections
 4.36244 ++   information while linking.  */
 4.36245 ++
 4.36246 ++struct stab_info
 4.36247 ++{
 4.36248 ++  /* A hash table used to hold stabs strings.  */
 4.36249 ++  struct bfd_strtab_hash *strings;
 4.36250 ++  /* The header file hash table.  */
 4.36251 ++  struct bfd_hash_table includes;
 4.36252 ++  /* The first .stabstr section.  */
 4.36253 ++  struct bfd_section *stabstr;
 4.36254 ++};
 4.36255 ++
 4.36256 ++#define COFF_SWAP_TABLE (void *) &bfd_coff_std_swap_table
 4.36257 ++
 4.36258 ++/* User program access to BFD facilities.  */
 4.36259 ++
 4.36260 ++/* Direct I/O routines, for programs which know more about the object
 4.36261 ++   file than BFD does.  Use higher level routines if possible.  */
 4.36262 ++
 4.36263 ++extern bfd_size_type bfd_bread (void *, bfd_size_type, bfd *);
 4.36264 ++extern bfd_size_type bfd_bwrite (const void *, bfd_size_type, bfd *);
 4.36265 ++extern int bfd_seek (bfd *, file_ptr, int);
 4.36266 ++extern file_ptr bfd_tell (bfd *);
 4.36267 ++extern int bfd_flush (bfd *);
 4.36268 ++extern int bfd_stat (bfd *, struct stat *);
 4.36269 ++
 4.36270 ++/* Deprecated old routines.  */
 4.36271 ++#if __GNUC__
 4.36272 ++#define bfd_read(BUF, ELTSIZE, NITEMS, ABFD)				\
 4.36273 ++  (warn_deprecated ("bfd_read", __FILE__, __LINE__, __FUNCTION__),	\
 4.36274 ++   bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 4.36275 ++#define bfd_write(BUF, ELTSIZE, NITEMS, ABFD)				\
 4.36276 ++  (warn_deprecated ("bfd_write", __FILE__, __LINE__, __FUNCTION__),	\
 4.36277 ++   bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 4.36278 ++#else
 4.36279 ++#define bfd_read(BUF, ELTSIZE, NITEMS, ABFD)				\
 4.36280 ++  (warn_deprecated ("bfd_read", (const char *) 0, 0, (const char *) 0), \
 4.36281 ++   bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 4.36282 ++#define bfd_write(BUF, ELTSIZE, NITEMS, ABFD)				\
 4.36283 ++  (warn_deprecated ("bfd_write", (const char *) 0, 0, (const char *) 0),\
 4.36284 ++   bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 4.36285 ++#endif
 4.36286 ++extern void warn_deprecated (const char *, const char *, int, const char *);
 4.36287 ++
 4.36288 ++/* Cast from const char * to char * so that caller can assign to
 4.36289 ++   a char * without a warning.  */
 4.36290 ++#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
 4.36291 ++#define bfd_get_cacheable(abfd) ((abfd)->cacheable)
 4.36292 ++#define bfd_get_format(abfd) ((abfd)->format)
 4.36293 ++#define bfd_get_target(abfd) ((abfd)->xvec->name)
 4.36294 ++#define bfd_get_flavour(abfd) ((abfd)->xvec->flavour)
 4.36295 ++#define bfd_family_coff(abfd) \
 4.36296 ++  (bfd_get_flavour (abfd) == bfd_target_coff_flavour || \
 4.36297 ++   bfd_get_flavour (abfd) == bfd_target_xcoff_flavour)
 4.36298 ++#define bfd_big_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_BIG)
 4.36299 ++#define bfd_little_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_LITTLE)
 4.36300 ++#define bfd_header_big_endian(abfd) \
 4.36301 ++  ((abfd)->xvec->header_byteorder == BFD_ENDIAN_BIG)
 4.36302 ++#define bfd_header_little_endian(abfd) \
 4.36303 ++  ((abfd)->xvec->header_byteorder == BFD_ENDIAN_LITTLE)
 4.36304 ++#define bfd_get_file_flags(abfd) ((abfd)->flags)
 4.36305 ++#define bfd_applicable_file_flags(abfd) ((abfd)->xvec->object_flags)
 4.36306 ++#define bfd_applicable_section_flags(abfd) ((abfd)->xvec->section_flags)
 4.36307 ++#define bfd_my_archive(abfd) ((abfd)->my_archive)
 4.36308 ++#define bfd_has_map(abfd) ((abfd)->has_armap)
 4.36309 ++
 4.36310 ++#define bfd_valid_reloc_types(abfd) ((abfd)->xvec->valid_reloc_types)
 4.36311 ++#define bfd_usrdata(abfd) ((abfd)->usrdata)
 4.36312 ++
 4.36313 ++#define bfd_get_start_address(abfd) ((abfd)->start_address)
 4.36314 ++#define bfd_get_symcount(abfd) ((abfd)->symcount)
 4.36315 ++#define bfd_get_outsymbols(abfd) ((abfd)->outsymbols)
 4.36316 ++#define bfd_count_sections(abfd) ((abfd)->section_count)
 4.36317 ++
 4.36318 ++#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount)
 4.36319 ++
 4.36320 ++#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
 4.36321 ++
 4.36322 ++#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
 4.36323 ++
 4.36324 ++extern bfd_boolean bfd_cache_close
 4.36325 ++  (bfd *abfd);
 4.36326 ++/* NB: This declaration should match the autogenerated one in libbfd.h.  */
 4.36327 ++
 4.36328 ++extern bfd_boolean bfd_cache_close_all (void);
 4.36329 ++
 4.36330 ++extern bfd_boolean bfd_record_phdr
 4.36331 ++  (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
 4.36332 ++   bfd_boolean, bfd_boolean, unsigned int, struct bfd_section **);
 4.36333 ++
 4.36334 ++/* Byte swapping routines.  */
 4.36335 ++
 4.36336 ++bfd_uint64_t bfd_getb64 (const void *);
 4.36337 ++bfd_uint64_t bfd_getl64 (const void *);
 4.36338 ++bfd_int64_t bfd_getb_signed_64 (const void *);
 4.36339 ++bfd_int64_t bfd_getl_signed_64 (const void *);
 4.36340 ++bfd_vma bfd_getb32 (const void *);
 4.36341 ++bfd_vma bfd_getl32 (const void *);
 4.36342 ++bfd_signed_vma bfd_getb_signed_32 (const void *);
 4.36343 ++bfd_signed_vma bfd_getl_signed_32 (const void *);
 4.36344 ++bfd_vma bfd_getb16 (const void *);
 4.36345 ++bfd_vma bfd_getl16 (const void *);
 4.36346 ++bfd_signed_vma bfd_getb_signed_16 (const void *);
 4.36347 ++bfd_signed_vma bfd_getl_signed_16 (const void *);
 4.36348 ++void bfd_putb64 (bfd_uint64_t, void *);
 4.36349 ++void bfd_putl64 (bfd_uint64_t, void *);
 4.36350 ++void bfd_putb32 (bfd_vma, void *);
 4.36351 ++void bfd_putl32 (bfd_vma, void *);
 4.36352 ++void bfd_putb16 (bfd_vma, void *);
 4.36353 ++void bfd_putl16 (bfd_vma, void *);
 4.36354 ++
 4.36355 ++/* Byte swapping routines which take size and endiannes as arguments.  */
 4.36356 ++
 4.36357 ++bfd_uint64_t bfd_get_bits (const void *, int, bfd_boolean);
 4.36358 ++void bfd_put_bits (bfd_uint64_t, void *, int, bfd_boolean);
 4.36359 ++
 4.36360 ++extern bfd_boolean bfd_section_already_linked_table_init (void);
 4.36361 ++extern void bfd_section_already_linked_table_free (void);
 4.36362 ++
 4.36363 ++/* Externally visible ECOFF routines.  */
 4.36364 ++
 4.36365 ++#if defined(__STDC__) || defined(ALMOST_STDC)
 4.36366 ++struct ecoff_debug_info;
 4.36367 ++struct ecoff_debug_swap;
 4.36368 ++struct ecoff_extr;
 4.36369 ++struct bfd_symbol;
 4.36370 ++struct bfd_link_info;
 4.36371 ++struct bfd_link_hash_entry;
 4.36372 ++struct bfd_elf_version_tree;
 4.36373 ++#endif
 4.36374 ++extern bfd_vma bfd_ecoff_get_gp_value
 4.36375 ++  (bfd * abfd);
 4.36376 ++extern bfd_boolean bfd_ecoff_set_gp_value
 4.36377 ++  (bfd *abfd, bfd_vma gp_value);
 4.36378 ++extern bfd_boolean bfd_ecoff_set_regmasks
 4.36379 ++  (bfd *abfd, unsigned long gprmask, unsigned long fprmask,
 4.36380 ++   unsigned long *cprmask);
 4.36381 ++extern void *bfd_ecoff_debug_init
 4.36382 ++  (bfd *output_bfd, struct ecoff_debug_info *output_debug,
 4.36383 ++   const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
 4.36384 ++extern void bfd_ecoff_debug_free
 4.36385 ++  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
 4.36386 ++   const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
 4.36387 ++extern bfd_boolean bfd_ecoff_debug_accumulate
 4.36388 ++  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
 4.36389 ++   const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
 4.36390 ++   struct ecoff_debug_info *input_debug,
 4.36391 ++   const struct ecoff_debug_swap *input_swap, struct bfd_link_info *);
 4.36392 ++extern bfd_boolean bfd_ecoff_debug_accumulate_other
 4.36393 ++  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
 4.36394 ++   const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
 4.36395 ++   struct bfd_link_info *);
 4.36396 ++extern bfd_boolean bfd_ecoff_debug_externals
 4.36397 ++  (bfd *abfd, struct ecoff_debug_info *debug,
 4.36398 ++   const struct ecoff_debug_swap *swap, bfd_boolean relocatable,
 4.36399 ++   bfd_boolean (*get_extr) (struct bfd_symbol *, struct ecoff_extr *),
 4.36400 ++   void (*set_index) (struct bfd_symbol *, bfd_size_type));
 4.36401 ++extern bfd_boolean bfd_ecoff_debug_one_external
 4.36402 ++  (bfd *abfd, struct ecoff_debug_info *debug,
 4.36403 ++   const struct ecoff_debug_swap *swap, const char *name,
 4.36404 ++   struct ecoff_extr *esym);
 4.36405 ++extern bfd_size_type bfd_ecoff_debug_size
 4.36406 ++  (bfd *abfd, struct ecoff_debug_info *debug,
 4.36407 ++   const struct ecoff_debug_swap *swap);
 4.36408 ++extern bfd_boolean bfd_ecoff_write_debug
 4.36409 ++  (bfd *abfd, struct ecoff_debug_info *debug,
 4.36410 ++   const struct ecoff_debug_swap *swap, file_ptr where);
 4.36411 ++extern bfd_boolean bfd_ecoff_write_accumulated_debug
 4.36412 ++  (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
 4.36413 ++   const struct ecoff_debug_swap *swap,
 4.36414 ++   struct bfd_link_info *info, file_ptr where);
 4.36415 ++
 4.36416 ++/* Externally visible ELF routines.  */
 4.36417 ++
 4.36418 ++struct bfd_link_needed_list
 4.36419 ++{
 4.36420 ++  struct bfd_link_needed_list *next;
 4.36421 ++  bfd *by;
 4.36422 ++  const char *name;
 4.36423 ++};
 4.36424 ++
 4.36425 ++enum dynamic_lib_link_class {
 4.36426 ++  DYN_NORMAL = 0,
 4.36427 ++  DYN_AS_NEEDED = 1,
 4.36428 ++  DYN_DT_NEEDED = 2,
 4.36429 ++  DYN_NO_ADD_NEEDED = 4,
 4.36430 ++  DYN_NO_NEEDED = 8
 4.36431 ++};
 4.36432 ++
 4.36433 ++enum notice_asneeded_action {
 4.36434 ++  notice_as_needed,
 4.36435 ++  notice_not_needed,
 4.36436 ++  notice_needed
 4.36437 ++};
 4.36438 ++
 4.36439 ++extern bfd_boolean bfd_elf_record_link_assignment
 4.36440 ++  (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
 4.36441 ++   bfd_boolean);
 4.36442 ++extern struct bfd_link_needed_list *bfd_elf_get_needed_list
 4.36443 ++  (bfd *, struct bfd_link_info *);
 4.36444 ++extern bfd_boolean bfd_elf_get_bfd_needed_list
 4.36445 ++  (bfd *, struct bfd_link_needed_list **);
 4.36446 ++extern bfd_boolean bfd_elf_size_dynamic_sections
 4.36447 ++  (bfd *, const char *, const char *, const char *, const char * const *,
 4.36448 ++   struct bfd_link_info *, struct bfd_section **,
 4.36449 ++   struct bfd_elf_version_tree *);
 4.36450 ++extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
 4.36451 ++  (bfd *, struct bfd_link_info *);
 4.36452 ++extern void bfd_elf_set_dt_needed_name
 4.36453 ++  (bfd *, const char *);
 4.36454 ++extern const char *bfd_elf_get_dt_soname
 4.36455 ++  (bfd *);
 4.36456 ++extern void bfd_elf_set_dyn_lib_class
 4.36457 ++  (bfd *, enum dynamic_lib_link_class);
 4.36458 ++extern int bfd_elf_get_dyn_lib_class
 4.36459 ++  (bfd *);
 4.36460 ++extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
 4.36461 ++  (bfd *, struct bfd_link_info *);
 4.36462 ++extern bfd_boolean bfd_elf_discard_info
 4.36463 ++  (bfd *, struct bfd_link_info *);
 4.36464 ++extern unsigned int _bfd_elf_default_action_discarded
 4.36465 ++  (struct bfd_section *);
 4.36466 ++
 4.36467 ++/* Return an upper bound on the number of bytes required to store a
 4.36468 ++   copy of ABFD's program header table entries.  Return -1 if an error
 4.36469 ++   occurs; bfd_get_error will return an appropriate code.  */
 4.36470 ++extern long bfd_get_elf_phdr_upper_bound
 4.36471 ++  (bfd *abfd);
 4.36472 ++
 4.36473 ++/* Copy ABFD's program header table entries to *PHDRS.  The entries
 4.36474 ++   will be stored as an array of Elf_Internal_Phdr structures, as
 4.36475 ++   defined in include/elf/internal.h.  To find out how large the
 4.36476 ++   buffer needs to be, call bfd_get_elf_phdr_upper_bound.
 4.36477 ++
 4.36478 ++   Return the number of program header table entries read, or -1 if an
 4.36479 ++   error occurs; bfd_get_error will return an appropriate code.  */
 4.36480 ++extern int bfd_get_elf_phdrs
 4.36481 ++  (bfd *abfd, void *phdrs);
 4.36482 ++
 4.36483 ++/* Create a new BFD as if by bfd_openr.  Rather than opening a file,
 4.36484 ++   reconstruct an ELF file by reading the segments out of remote memory
 4.36485 ++   based on the ELF file header at EHDR_VMA and the ELF program headers it
 4.36486 ++   points to.  If not null, *LOADBASEP is filled in with the difference
 4.36487 ++   between the VMAs from which the segments were read, and the VMAs the
 4.36488 ++   file headers (and hence BFD's idea of each section's VMA) put them at.
 4.36489 ++
 4.36490 ++   The function TARGET_READ_MEMORY is called to copy LEN bytes from the
 4.36491 ++   remote memory at target address VMA into the local buffer at MYADDR; it
 4.36492 ++   should return zero on success or an `errno' code on failure.  TEMPL must
 4.36493 ++   be a BFD for an ELF target with the word size and byte order found in
 4.36494 ++   the remote memory.  */
 4.36495 ++extern bfd *bfd_elf_bfd_from_remote_memory
 4.36496 ++  (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
 4.36497 ++   int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, int len));
 4.36498 ++
 4.36499 ++/* Return the arch_size field of an elf bfd, or -1 if not elf.  */
 4.36500 ++extern int bfd_get_arch_size
 4.36501 ++  (bfd *);
 4.36502 ++
 4.36503 ++/* Return TRUE if address "naturally" sign extends, or -1 if not elf.  */
 4.36504 ++extern int bfd_get_sign_extend_vma
 4.36505 ++  (bfd *);
 4.36506 ++
 4.36507 ++extern struct bfd_section *_bfd_elf_tls_setup
 4.36508 ++  (bfd *, struct bfd_link_info *);
 4.36509 ++
 4.36510 ++extern void _bfd_fix_excluded_sec_syms
 4.36511 ++  (bfd *, struct bfd_link_info *);
 4.36512 ++
 4.36513 ++extern unsigned bfd_m68k_mach_to_features (int);
 4.36514 ++
 4.36515 ++extern int bfd_m68k_features_to_mach (unsigned);
 4.36516 ++
 4.36517 ++extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
 4.36518 ++  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
 4.36519 ++   char **);
 4.36520 ++
 4.36521 ++extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
 4.36522 ++  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
 4.36523 ++   char **);
 4.36524 ++
 4.36525 ++/* SunOS shared library support routines for the linker.  */
 4.36526 ++
 4.36527 ++extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
 4.36528 ++  (bfd *, struct bfd_link_info *);
 4.36529 ++extern bfd_boolean bfd_sunos_record_link_assignment
 4.36530 ++  (bfd *, struct bfd_link_info *, const char *);
 4.36531 ++extern bfd_boolean bfd_sunos_size_dynamic_sections
 4.36532 ++  (bfd *, struct bfd_link_info *, struct bfd_section **,
 4.36533 ++   struct bfd_section **, struct bfd_section **);
 4.36534 ++
 4.36535 ++/* Linux shared library support routines for the linker.  */
 4.36536 ++
 4.36537 ++extern bfd_boolean bfd_i386linux_size_dynamic_sections
 4.36538 ++  (bfd *, struct bfd_link_info *);
 4.36539 ++extern bfd_boolean bfd_m68klinux_size_dynamic_sections
 4.36540 ++  (bfd *, struct bfd_link_info *);
 4.36541 ++extern bfd_boolean bfd_sparclinux_size_dynamic_sections
 4.36542 ++  (bfd *, struct bfd_link_info *);
 4.36543 ++
 4.36544 ++/* mmap hacks */
 4.36545 ++
 4.36546 ++struct _bfd_window_internal;
 4.36547 ++typedef struct _bfd_window_internal bfd_window_internal;
 4.36548 ++
 4.36549 ++typedef struct _bfd_window
 4.36550 ++{
 4.36551 ++  /* What the user asked for.  */
 4.36552 ++  void *data;
 4.36553 ++  bfd_size_type size;
 4.36554 ++  /* The actual window used by BFD.  Small user-requested read-only
 4.36555 ++     regions sharing a page may share a single window into the object
 4.36556 ++     file.  Read-write versions shouldn't until I've fixed things to
 4.36557 ++     keep track of which portions have been claimed by the
 4.36558 ++     application; don't want to give the same region back when the
 4.36559 ++     application wants two writable copies!  */
 4.36560 ++  struct _bfd_window_internal *i;
 4.36561 ++}
 4.36562 ++bfd_window;
 4.36563 ++
 4.36564 ++extern void bfd_init_window
 4.36565 ++  (bfd_window *);
 4.36566 ++extern void bfd_free_window
 4.36567 ++  (bfd_window *);
 4.36568 ++extern bfd_boolean bfd_get_file_window
 4.36569 ++  (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
 4.36570 ++
 4.36571 ++/* XCOFF support routines for the linker.  */
 4.36572 ++
 4.36573 ++extern bfd_boolean bfd_xcoff_link_record_set
 4.36574 ++  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type);
 4.36575 ++extern bfd_boolean bfd_xcoff_import_symbol
 4.36576 ++  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma,
 4.36577 ++   const char *, const char *, const char *, unsigned int);
 4.36578 ++extern bfd_boolean bfd_xcoff_export_symbol
 4.36579 ++  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
 4.36580 ++extern bfd_boolean bfd_xcoff_link_count_reloc
 4.36581 ++  (bfd *, struct bfd_link_info *, const char *);
 4.36582 ++extern bfd_boolean bfd_xcoff_record_link_assignment
 4.36583 ++  (bfd *, struct bfd_link_info *, const char *);
 4.36584 ++extern bfd_boolean bfd_xcoff_size_dynamic_sections
 4.36585 ++  (bfd *, struct bfd_link_info *, const char *, const char *,
 4.36586 ++   unsigned long, unsigned long, unsigned long, bfd_boolean,
 4.36587 ++   int, bfd_boolean, bfd_boolean, struct bfd_section **, bfd_boolean);
 4.36588 ++extern bfd_boolean bfd_xcoff_link_generate_rtinit
 4.36589 ++  (bfd *, const char *, const char *, bfd_boolean);
 4.36590 ++
 4.36591 ++/* XCOFF support routines for ar.  */
 4.36592 ++extern bfd_boolean bfd_xcoff_ar_archive_set_magic
 4.36593 ++  (bfd *, char *);
 4.36594 ++
 4.36595 ++/* Externally visible COFF routines.  */
 4.36596 ++
 4.36597 ++#if defined(__STDC__) || defined(ALMOST_STDC)
 4.36598 ++struct internal_syment;
 4.36599 ++union internal_auxent;
 4.36600 ++#endif
 4.36601 ++
 4.36602 ++extern bfd_boolean bfd_coff_get_syment
 4.36603 ++  (bfd *, struct bfd_symbol *, struct internal_syment *);
 4.36604 ++
 4.36605 ++extern bfd_boolean bfd_coff_get_auxent
 4.36606 ++  (bfd *, struct bfd_symbol *, int, union internal_auxent *);
 4.36607 ++
 4.36608 ++extern bfd_boolean bfd_coff_set_symbol_class
 4.36609 ++  (bfd *, struct bfd_symbol *, unsigned int);
 4.36610 ++
 4.36611 ++extern bfd_boolean bfd_m68k_coff_create_embedded_relocs
 4.36612 ++  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **);
 4.36613 ++
 4.36614 ++/* ARM VFP11 erratum workaround support.  */
 4.36615 ++typedef enum
 4.36616 ++{
 4.36617 ++  BFD_ARM_VFP11_FIX_DEFAULT,
 4.36618 ++  BFD_ARM_VFP11_FIX_NONE,
 4.36619 ++  BFD_ARM_VFP11_FIX_SCALAR,
 4.36620 ++  BFD_ARM_VFP11_FIX_VECTOR
 4.36621 ++} bfd_arm_vfp11_fix;
 4.36622 ++
 4.36623 ++extern void bfd_elf32_arm_init_maps
 4.36624 ++  (bfd *);
 4.36625 ++
 4.36626 ++extern void bfd_elf32_arm_set_vfp11_fix
 4.36627 ++  (bfd *, struct bfd_link_info *);
 4.36628 ++
 4.36629 ++extern bfd_boolean bfd_elf32_arm_vfp11_erratum_scan
 4.36630 ++  (bfd *, struct bfd_link_info *);
 4.36631 ++
 4.36632 ++extern void bfd_elf32_arm_vfp11_fix_veneer_locations
 4.36633 ++  (bfd *, struct bfd_link_info *);
 4.36634 ++
 4.36635 ++/* ARM Interworking support.  Called from linker.  */
 4.36636 ++extern bfd_boolean bfd_arm_allocate_interworking_sections
 4.36637 ++  (struct bfd_link_info *);
 4.36638 ++
 4.36639 ++extern bfd_boolean bfd_arm_process_before_allocation
 4.36640 ++  (bfd *, struct bfd_link_info *, int);
 4.36641 ++
 4.36642 ++extern bfd_boolean bfd_arm_get_bfd_for_interworking
 4.36643 ++  (bfd *, struct bfd_link_info *);
 4.36644 ++
 4.36645 ++/* PE ARM Interworking support.  Called from linker.  */
 4.36646 ++extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
 4.36647 ++  (struct bfd_link_info *);
 4.36648 ++
 4.36649 ++extern bfd_boolean bfd_arm_pe_process_before_allocation
 4.36650 ++  (bfd *, struct bfd_link_info *, int);
 4.36651 ++
 4.36652 ++extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
 4.36653 ++  (bfd *, struct bfd_link_info *);
 4.36654 ++
 4.36655 ++/* ELF ARM Interworking support.  Called from linker.  */
 4.36656 ++extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
 4.36657 ++  (struct bfd_link_info *);
 4.36658 ++
 4.36659 ++extern bfd_boolean bfd_elf32_arm_process_before_allocation
 4.36660 ++  (bfd *, struct bfd_link_info *);
 4.36661 ++
 4.36662 ++void bfd_elf32_arm_set_target_relocs
 4.36663 ++  (bfd *, struct bfd_link_info *, int, char *, int, int, bfd_arm_vfp11_fix,
 4.36664 ++   int, int);
 4.36665 ++
 4.36666 ++extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
 4.36667 ++  (bfd *, struct bfd_link_info *);
 4.36668 ++
 4.36669 ++extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
 4.36670 ++  (bfd *, struct bfd_link_info *);
 4.36671 ++
 4.36672 ++/* ELF ARM mapping symbol support */
 4.36673 ++#define BFD_ARM_SPECIAL_SYM_TYPE_MAP	(1 << 0)
 4.36674 ++#define BFD_ARM_SPECIAL_SYM_TYPE_TAG	(1 << 1)
 4.36675 ++#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER  (1 << 2)
 4.36676 ++#define BFD_ARM_SPECIAL_SYM_TYPE_ANY	(~0)
 4.36677 ++extern bfd_boolean bfd_is_arm_special_symbol_name
 4.36678 ++  (const char * name, int type);
 4.36679 ++
 4.36680 ++extern void bfd_elf32_arm_set_byteswap_code (struct bfd_link_info *, int);
 4.36681 ++
 4.36682 ++/* ARM Note section processing.  */
 4.36683 ++extern bfd_boolean bfd_arm_merge_machines
 4.36684 ++  (bfd *, bfd *);
 4.36685 ++
 4.36686 ++extern bfd_boolean bfd_arm_update_notes
 4.36687 ++  (bfd *, const char *);
 4.36688 ++
 4.36689 ++extern unsigned int bfd_arm_get_mach_from_notes
 4.36690 ++  (bfd *, const char *);
 4.36691 ++
 4.36692 ++/* TI COFF load page support.  */
 4.36693 ++extern void bfd_ticoff_set_section_load_page
 4.36694 ++  (struct bfd_section *, int);
 4.36695 ++
 4.36696 ++extern int bfd_ticoff_get_section_load_page
 4.36697 ++  (struct bfd_section *);
 4.36698 ++
 4.36699 ++/* H8/300 functions.  */
 4.36700 ++extern bfd_vma bfd_h8300_pad_address
 4.36701 ++  (bfd *, bfd_vma);
 4.36702 ++
 4.36703 ++/* IA64 Itanium code generation.  Called from linker.  */
 4.36704 ++extern void bfd_elf32_ia64_after_parse
 4.36705 ++  (int);
 4.36706 ++
 4.36707 ++extern void bfd_elf64_ia64_after_parse
 4.36708 ++  (int);
 4.36709 ++
 4.36710 ++/* This structure is used for a comdat section, as in PE.  A comdat
 4.36711 ++   section is associated with a particular symbol.  When the linker
 4.36712 ++   sees a comdat section, it keeps only one of the sections with a
 4.36713 ++   given name and associated with a given symbol.  */
 4.36714 ++
 4.36715 ++struct coff_comdat_info
 4.36716 ++{
 4.36717 ++  /* The name of the symbol associated with a comdat section.  */
 4.36718 ++  const char *name;
 4.36719 ++
 4.36720 ++  /* The local symbol table index of the symbol associated with a
 4.36721 ++     comdat section.  This is only meaningful to the object file format
 4.36722 ++     specific code; it is not an index into the list returned by
 4.36723 ++     bfd_canonicalize_symtab.  */
 4.36724 ++  long symbol;
 4.36725 ++};
 4.36726 ++
 4.36727 ++extern struct coff_comdat_info *bfd_coff_get_comdat_section
 4.36728 ++  (bfd *, struct bfd_section *);
 4.36729 ++
 4.36730 ++/* Extracted from init.c.  */
 4.36731 ++void bfd_init (void);
 4.36732 ++
 4.36733 ++/* Extracted from opncls.c.  */
 4.36734 ++bfd *bfd_fopen (const char *filename, const char *target,
 4.36735 ++    const char *mode, int fd);
 4.36736 ++
 4.36737 ++bfd *bfd_openr (const char *filename, const char *target);
 4.36738 ++
 4.36739 ++bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
 4.36740 ++
 4.36741 ++bfd *bfd_openstreamr (const char *, const char *, void *);
 4.36742 ++
 4.36743 ++bfd *bfd_openr_iovec (const char *filename, const char *target,
 4.36744 ++    void *(*open) (struct bfd *nbfd,
 4.36745 ++    void *open_closure),
 4.36746 ++    void *open_closure,
 4.36747 ++    file_ptr (*pread) (struct bfd *nbfd,
 4.36748 ++    void *stream,
 4.36749 ++    void *buf,
 4.36750 ++    file_ptr nbytes,
 4.36751 ++    file_ptr offset),
 4.36752 ++    int (*close) (struct bfd *nbfd,
 4.36753 ++    void *stream),
 4.36754 ++    int (*stat) (struct bfd *abfd,
 4.36755 ++    void *stream,
 4.36756 ++    struct stat *sb));
 4.36757 ++
 4.36758 ++bfd *bfd_openw (const char *filename, const char *target);
 4.36759 ++
 4.36760 ++bfd_boolean bfd_close (bfd *abfd);
 4.36761 ++
 4.36762 ++bfd_boolean bfd_close_all_done (bfd *);
 4.36763 ++
 4.36764 ++bfd *bfd_create (const char *filename, bfd *templ);
 4.36765 ++
 4.36766 ++bfd_boolean bfd_make_writable (bfd *abfd);
 4.36767 ++
 4.36768 ++bfd_boolean bfd_make_readable (bfd *abfd);
 4.36769 ++
 4.36770 ++unsigned long bfd_calc_gnu_debuglink_crc32
 4.36771 ++   (unsigned long crc, const unsigned char *buf, bfd_size_type len);
 4.36772 ++
 4.36773 ++char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
 4.36774 ++
 4.36775 ++struct bfd_section *bfd_create_gnu_debuglink_section
 4.36776 ++   (bfd *abfd, const char *filename);
 4.36777 ++
 4.36778 ++bfd_boolean bfd_fill_in_gnu_debuglink_section
 4.36779 ++   (bfd *abfd, struct bfd_section *sect, const char *filename);
 4.36780 ++
 4.36781 ++/* Extracted from libbfd.c.  */
 4.36782 ++
 4.36783 ++/* Byte swapping macros for user section data.  */
 4.36784 ++
 4.36785 ++#define bfd_put_8(abfd, val, ptr) \
 4.36786 ++  ((void) (*((unsigned char *) (ptr)) = (val) & 0xff))
 4.36787 ++#define bfd_put_signed_8 \
 4.36788 ++  bfd_put_8
 4.36789 ++#define bfd_get_8(abfd, ptr) \
 4.36790 ++  (*(unsigned char *) (ptr) & 0xff)
 4.36791 ++#define bfd_get_signed_8(abfd, ptr) \
 4.36792 ++  (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
 4.36793 ++
 4.36794 ++#define bfd_put_16(abfd, val, ptr) \
 4.36795 ++  BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
 4.36796 ++#define bfd_put_signed_16 \
 4.36797 ++  bfd_put_16
 4.36798 ++#define bfd_get_16(abfd, ptr) \
 4.36799 ++  BFD_SEND (abfd, bfd_getx16, (ptr))
 4.36800 ++#define bfd_get_signed_16(abfd, ptr) \
 4.36801 ++  BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
 4.36802 ++
 4.36803 ++#define bfd_put_32(abfd, val, ptr) \
 4.36804 ++  BFD_SEND (abfd, bfd_putx32, ((val),(ptr)))
 4.36805 ++#define bfd_put_signed_32 \
 4.36806 ++  bfd_put_32
 4.36807 ++#define bfd_get_32(abfd, ptr) \
 4.36808 ++  BFD_SEND (abfd, bfd_getx32, (ptr))
 4.36809 ++#define bfd_get_signed_32(abfd, ptr) \
 4.36810 ++  BFD_SEND (abfd, bfd_getx_signed_32, (ptr))
 4.36811 ++
 4.36812 ++#define bfd_put_64(abfd, val, ptr) \
 4.36813 ++  BFD_SEND (abfd, bfd_putx64, ((val), (ptr)))
 4.36814 ++#define bfd_put_signed_64 \
 4.36815 ++  bfd_put_64
 4.36816 ++#define bfd_get_64(abfd, ptr) \
 4.36817 ++  BFD_SEND (abfd, bfd_getx64, (ptr))
 4.36818 ++#define bfd_get_signed_64(abfd, ptr) \
 4.36819 ++  BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
 4.36820 ++
 4.36821 ++#define bfd_get(bits, abfd, ptr)                       \
 4.36822 ++  ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr)       \
 4.36823 ++   : (bits) == 16 ? bfd_get_16 (abfd, ptr)             \
 4.36824 ++   : (bits) == 32 ? bfd_get_32 (abfd, ptr)             \
 4.36825 ++   : (bits) == 64 ? bfd_get_64 (abfd, ptr)             \
 4.36826 ++   : (abort (), (bfd_vma) - 1))
 4.36827 ++
 4.36828 ++#define bfd_put(bits, abfd, val, ptr)                  \
 4.36829 ++  ((bits) == 8 ? bfd_put_8  (abfd, val, ptr)           \
 4.36830 ++   : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)                \
 4.36831 ++   : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)                \
 4.36832 ++   : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)                \
 4.36833 ++   : (abort (), (void) 0))
 4.36834 ++
 4.36835 ++
 4.36836 ++/* Byte swapping macros for file header data.  */
 4.36837 ++
 4.36838 ++#define bfd_h_put_8(abfd, val, ptr) \
 4.36839 ++  bfd_put_8 (abfd, val, ptr)
 4.36840 ++#define bfd_h_put_signed_8(abfd, val, ptr) \
 4.36841 ++  bfd_put_8 (abfd, val, ptr)
 4.36842 ++#define bfd_h_get_8(abfd, ptr) \
 4.36843 ++  bfd_get_8 (abfd, ptr)
 4.36844 ++#define bfd_h_get_signed_8(abfd, ptr) \
 4.36845 ++  bfd_get_signed_8 (abfd, ptr)
 4.36846 ++
 4.36847 ++#define bfd_h_put_16(abfd, val, ptr) \
 4.36848 ++  BFD_SEND (abfd, bfd_h_putx16, (val, ptr))
 4.36849 ++#define bfd_h_put_signed_16 \
 4.36850 ++  bfd_h_put_16
 4.36851 ++#define bfd_h_get_16(abfd, ptr) \
 4.36852 ++  BFD_SEND (abfd, bfd_h_getx16, (ptr))
 4.36853 ++#define bfd_h_get_signed_16(abfd, ptr) \
 4.36854 ++  BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr))
 4.36855 ++
 4.36856 ++#define bfd_h_put_32(abfd, val, ptr) \
 4.36857 ++  BFD_SEND (abfd, bfd_h_putx32, (val, ptr))
 4.36858 ++#define bfd_h_put_signed_32 \
 4.36859 ++  bfd_h_put_32
 4.36860 ++#define bfd_h_get_32(abfd, ptr) \
 4.36861 ++  BFD_SEND (abfd, bfd_h_getx32, (ptr))
 4.36862 ++#define bfd_h_get_signed_32(abfd, ptr) \
 4.36863 ++  BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr))
 4.36864 ++
 4.36865 ++#define bfd_h_put_64(abfd, val, ptr) \
 4.36866 ++  BFD_SEND (abfd, bfd_h_putx64, (val, ptr))
 4.36867 ++#define bfd_h_put_signed_64 \
 4.36868 ++  bfd_h_put_64
 4.36869 ++#define bfd_h_get_64(abfd, ptr) \
 4.36870 ++  BFD_SEND (abfd, bfd_h_getx64, (ptr))
 4.36871 ++#define bfd_h_get_signed_64(abfd, ptr) \
 4.36872 ++  BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr))
 4.36873 ++
 4.36874 ++/* Aliases for the above, which should eventually go away.  */
 4.36875 ++
 4.36876 ++#define H_PUT_64  bfd_h_put_64
 4.36877 ++#define H_PUT_32  bfd_h_put_32
 4.36878 ++#define H_PUT_16  bfd_h_put_16
 4.36879 ++#define H_PUT_8   bfd_h_put_8
 4.36880 ++#define H_PUT_S64 bfd_h_put_signed_64
 4.36881 ++#define H_PUT_S32 bfd_h_put_signed_32
 4.36882 ++#define H_PUT_S16 bfd_h_put_signed_16
 4.36883 ++#define H_PUT_S8  bfd_h_put_signed_8
 4.36884 ++#define H_GET_64  bfd_h_get_64
 4.36885 ++#define H_GET_32  bfd_h_get_32
 4.36886 ++#define H_GET_16  bfd_h_get_16
 4.36887 ++#define H_GET_8   bfd_h_get_8
 4.36888 ++#define H_GET_S64 bfd_h_get_signed_64
 4.36889 ++#define H_GET_S32 bfd_h_get_signed_32
 4.36890 ++#define H_GET_S16 bfd_h_get_signed_16
 4.36891 ++#define H_GET_S8  bfd_h_get_signed_8
 4.36892 ++
 4.36893 ++
 4.36894 ++/* Extracted from bfdio.c.  */
 4.36895 ++long bfd_get_mtime (bfd *abfd);
 4.36896 ++
 4.36897 ++file_ptr bfd_get_size (bfd *abfd);
 4.36898 ++
 4.36899 ++/* Extracted from bfdwin.c.  */
 4.36900 ++/* Extracted from section.c.  */
 4.36901 ++typedef struct bfd_section
 4.36902 ++{
 4.36903 ++  /* The name of the section; the name isn't a copy, the pointer is
 4.36904 ++     the same as that passed to bfd_make_section.  */
 4.36905 ++  const char *name;
 4.36906 ++
 4.36907 ++  /* A unique sequence number.  */
 4.36908 ++  int id;
 4.36909 ++
 4.36910 ++  /* Which section in the bfd; 0..n-1 as sections are created in a bfd.  */
 4.36911 ++  int index;
 4.36912 ++
 4.36913 ++  /* The next section in the list belonging to the BFD, or NULL.  */
 4.36914 ++  struct bfd_section *next;
 4.36915 ++
 4.36916 ++  /* The previous section in the list belonging to the BFD, or NULL.  */
 4.36917 ++  struct bfd_section *prev;
 4.36918 ++
 4.36919 ++  /* The field flags contains attributes of the section. Some
 4.36920 ++     flags are read in from the object file, and some are
 4.36921 ++     synthesized from other information.  */
 4.36922 ++  flagword flags;
 4.36923 ++
 4.36924 ++#define SEC_NO_FLAGS   0x000
 4.36925 ++
 4.36926 ++  /* Tells the OS to allocate space for this section when loading.
 4.36927 ++     This is clear for a section containing debug information only.  */
 4.36928 ++#define SEC_ALLOC      0x001
 4.36929 ++
 4.36930 ++  /* Tells the OS to load the section from the file when loading.
 4.36931 ++     This is clear for a .bss section.  */
 4.36932 ++#define SEC_LOAD       0x002
 4.36933 ++
 4.36934 ++  /* The section contains data still to be relocated, so there is
 4.36935 ++     some relocation information too.  */
 4.36936 ++#define SEC_RELOC      0x004
 4.36937 ++
 4.36938 ++  /* A signal to the OS that the section contains read only data.  */
 4.36939 ++#define SEC_READONLY   0x008
 4.36940 ++
 4.36941 ++  /* The section contains code only.  */
 4.36942 ++#define SEC_CODE       0x010
 4.36943 ++
 4.36944 ++  /* The section contains data only.  */
 4.36945 ++#define SEC_DATA       0x020
 4.36946 ++
 4.36947 ++  /* The section will reside in ROM.  */
 4.36948 ++#define SEC_ROM        0x040
 4.36949 ++
 4.36950 ++  /* The section contains constructor information. This section
 4.36951 ++     type is used by the linker to create lists of constructors and
 4.36952 ++     destructors used by <<g++>>. When a back end sees a symbol
 4.36953 ++     which should be used in a constructor list, it creates a new
 4.36954 ++     section for the type of name (e.g., <<__CTOR_LIST__>>), attaches
 4.36955 ++     the symbol to it, and builds a relocation. To build the lists
 4.36956 ++     of constructors, all the linker has to do is catenate all the
 4.36957 ++     sections called <<__CTOR_LIST__>> and relocate the data
 4.36958 ++     contained within - exactly the operations it would peform on
 4.36959 ++     standard data.  */
 4.36960 ++#define SEC_CONSTRUCTOR 0x080
 4.36961 ++
 4.36962 ++  /* The section has contents - a data section could be
 4.36963 ++     <<SEC_ALLOC>> | <<SEC_HAS_CONTENTS>>; a debug section could be
 4.36964 ++     <<SEC_HAS_CONTENTS>>  */
 4.36965 ++#define SEC_HAS_CONTENTS 0x100
 4.36966 ++
 4.36967 ++  /* An instruction to the linker to not output the section
 4.36968 ++     even if it has information which would normally be written.  */
 4.36969 ++#define SEC_NEVER_LOAD 0x200
 4.36970 ++
 4.36971 ++  /* The section contains thread local data.  */
 4.36972 ++#define SEC_THREAD_LOCAL 0x400
 4.36973 ++
 4.36974 ++  /* The section has GOT references.  This flag is only for the
 4.36975 ++     linker, and is currently only used by the elf32-hppa back end.
 4.36976 ++     It will be set if global offset table references were detected
 4.36977 ++     in this section, which indicate to the linker that the section
 4.36978 ++     contains PIC code, and must be handled specially when doing a
 4.36979 ++     static link.  */
 4.36980 ++#define SEC_HAS_GOT_REF 0x800
 4.36981 ++
 4.36982 ++  /* The section contains common symbols (symbols may be defined
 4.36983 ++     multiple times, the value of a symbol is the amount of
 4.36984 ++     space it requires, and the largest symbol value is the one
 4.36985 ++     used).  Most targets have exactly one of these (which we
 4.36986 ++     translate to bfd_com_section_ptr), but ECOFF has two.  */
 4.36987 ++#define SEC_IS_COMMON 0x1000
 4.36988 ++
 4.36989 ++  /* The section contains only debugging information.  For
 4.36990 ++     example, this is set for ELF .debug and .stab sections.
 4.36991 ++     strip tests this flag to see if a section can be
 4.36992 ++     discarded.  */
 4.36993 ++#define SEC_DEBUGGING 0x2000
 4.36994 ++
 4.36995 ++  /* The contents of this section are held in memory pointed to
 4.36996 ++     by the contents field.  This is checked by bfd_get_section_contents,
 4.36997 ++     and the data is retrieved from memory if appropriate.  */
 4.36998 ++#define SEC_IN_MEMORY 0x4000
 4.36999 ++
 4.37000 ++  /* The contents of this section are to be excluded by the
 4.37001 ++     linker for executable and shared objects unless those
 4.37002 ++     objects are to be further relocated.  */
 4.37003 ++#define SEC_EXCLUDE 0x8000
 4.37004 ++
 4.37005 ++  /* The contents of this section are to be sorted based on the sum of
 4.37006 ++     the symbol and addend values specified by the associated relocation
 4.37007 ++     entries.  Entries without associated relocation entries will be
 4.37008 ++     appended to the end of the section in an unspecified order.  */
 4.37009 ++#define SEC_SORT_ENTRIES 0x10000
 4.37010 ++
 4.37011 ++  /* When linking, duplicate sections of the same name should be
 4.37012 ++     discarded, rather than being combined into a single section as
 4.37013 ++     is usually done.  This is similar to how common symbols are
 4.37014 ++     handled.  See SEC_LINK_DUPLICATES below.  */
 4.37015 ++#define SEC_LINK_ONCE 0x20000
 4.37016 ++
 4.37017 ++  /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
 4.37018 ++     should handle duplicate sections.  */
 4.37019 ++#define SEC_LINK_DUPLICATES 0x40000
 4.37020 ++
 4.37021 ++  /* This value for SEC_LINK_DUPLICATES means that duplicate
 4.37022 ++     sections with the same name should simply be discarded.  */
 4.37023 ++#define SEC_LINK_DUPLICATES_DISCARD 0x0
 4.37024 ++
 4.37025 ++  /* This value for SEC_LINK_DUPLICATES means that the linker
 4.37026 ++     should warn if there are any duplicate sections, although
 4.37027 ++     it should still only link one copy.  */
 4.37028 ++#define SEC_LINK_DUPLICATES_ONE_ONLY 0x80000
 4.37029 ++
 4.37030 ++  /* This value for SEC_LINK_DUPLICATES means that the linker
 4.37031 ++     should warn if any duplicate sections are a different size.  */
 4.37032 ++#define SEC_LINK_DUPLICATES_SAME_SIZE 0x100000
 4.37033 ++
 4.37034 ++  /* This value for SEC_LINK_DUPLICATES means that the linker
 4.37035 ++     should warn if any duplicate sections contain different
 4.37036 ++     contents.  */
 4.37037 ++#define SEC_LINK_DUPLICATES_SAME_CONTENTS \
 4.37038 ++  (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE)
 4.37039 ++
 4.37040 ++  /* This section was created by the linker as part of dynamic
 4.37041 ++     relocation or other arcane processing.  It is skipped when
 4.37042 ++     going through the first-pass output, trusting that someone
 4.37043 ++     else up the line will take care of it later.  */
 4.37044 ++#define SEC_LINKER_CREATED 0x200000
 4.37045 ++
 4.37046 ++  /* This section should not be subject to garbage collection.
 4.37047 ++     Also set to inform the linker that this section should not be
 4.37048 ++     listed in the link map as discarded.  */
 4.37049 ++#define SEC_KEEP 0x400000
 4.37050 ++
 4.37051 ++  /* This section contains "short" data, and should be placed
 4.37052 ++     "near" the GP.  */
 4.37053 ++#define SEC_SMALL_DATA 0x800000
 4.37054 ++
 4.37055 ++  /* Attempt to merge identical entities in the section.
 4.37056 ++     Entity size is given in the entsize field.  */
 4.37057 ++#define SEC_MERGE 0x1000000
 4.37058 ++
 4.37059 ++  /* If given with SEC_MERGE, entities to merge are zero terminated
 4.37060 ++     strings where entsize specifies character size instead of fixed
 4.37061 ++     size entries.  */
 4.37062 ++#define SEC_STRINGS 0x2000000
 4.37063 ++
 4.37064 ++  /* This section contains data about section groups.  */
 4.37065 ++#define SEC_GROUP 0x4000000
 4.37066 ++
 4.37067 ++  /* The section is a COFF shared library section.  This flag is
 4.37068 ++     only for the linker.  If this type of section appears in
 4.37069 ++     the input file, the linker must copy it to the output file
 4.37070 ++     without changing the vma or size.  FIXME: Although this
 4.37071 ++     was originally intended to be general, it really is COFF
 4.37072 ++     specific (and the flag was renamed to indicate this).  It
 4.37073 ++     might be cleaner to have some more general mechanism to
 4.37074 ++     allow the back end to control what the linker does with
 4.37075 ++     sections.  */
 4.37076 ++#define SEC_COFF_SHARED_LIBRARY 0x10000000
 4.37077 ++
 4.37078 ++  /* This section contains data which may be shared with other
 4.37079 ++     executables or shared objects. This is for COFF only.  */
 4.37080 ++#define SEC_COFF_SHARED 0x20000000
 4.37081 ++
 4.37082 ++  /* When a section with this flag is being linked, then if the size of
 4.37083 ++     the input section is less than a page, it should not cross a page
 4.37084 ++     boundary.  If the size of the input section is one page or more,
 4.37085 ++     it should be aligned on a page boundary.  This is for TI
 4.37086 ++     TMS320C54X only.  */
 4.37087 ++#define SEC_TIC54X_BLOCK 0x40000000
 4.37088 ++
 4.37089 ++  /* Conditionally link this section; do not link if there are no
 4.37090 ++     references found to any symbol in the section.  This is for TI
 4.37091 ++     TMS320C54X only.  */
 4.37092 ++#define SEC_TIC54X_CLINK 0x80000000
 4.37093 ++
 4.37094 ++  /*  End of section flags.  */
 4.37095 ++
 4.37096 ++  /* Some internal packed boolean fields.  */
 4.37097 ++
 4.37098 ++  /* See the vma field.  */
 4.37099 ++  unsigned int user_set_vma : 1;
 4.37100 ++
 4.37101 ++  /* A mark flag used by some of the linker backends.  */
 4.37102 ++  unsigned int linker_mark : 1;
 4.37103 ++
 4.37104 ++  /* Another mark flag used by some of the linker backends.  Set for
 4.37105 ++     output sections that have an input section.  */
 4.37106 ++  unsigned int linker_has_input : 1;
 4.37107 ++
 4.37108 ++  /* Mark flags used by some linker backends for garbage collection.  */
 4.37109 ++  unsigned int gc_mark : 1;
 4.37110 ++  unsigned int gc_mark_from_eh : 1;
 4.37111 ++
 4.37112 ++  /* The following flags are used by the ELF linker. */
 4.37113 ++
 4.37114 ++  /* Mark sections which have been allocated to segments.  */
 4.37115 ++  unsigned int segment_mark : 1;
 4.37116 ++
 4.37117 ++  /* Type of sec_info information.  */
 4.37118 ++  unsigned int sec_info_type:3;
 4.37119 ++#define ELF_INFO_TYPE_NONE      0
 4.37120 ++#define ELF_INFO_TYPE_STABS     1
 4.37121 ++#define ELF_INFO_TYPE_MERGE     2
 4.37122 ++#define ELF_INFO_TYPE_EH_FRAME  3
 4.37123 ++#define ELF_INFO_TYPE_JUST_SYMS 4
 4.37124 ++
 4.37125 ++  /* Nonzero if this section uses RELA relocations, rather than REL.  */
 4.37126 ++  unsigned int use_rela_p:1;
 4.37127 ++
 4.37128 ++  /* Bits used by various backends.  The generic code doesn't touch
 4.37129 ++     these fields.  */
 4.37130 ++
 4.37131 ++  /* Nonzero if this section has TLS related relocations.  */
 4.37132 ++  unsigned int has_tls_reloc:1;
 4.37133 ++
 4.37134 ++  /* Nonzero if this section has a gp reloc.  */
 4.37135 ++  unsigned int has_gp_reloc:1;
 4.37136 ++
 4.37137 ++  /* Nonzero if this section needs the relax finalize pass.  */
 4.37138 ++  unsigned int need_finalize_relax:1;
 4.37139 ++
 4.37140 ++  /* Whether relocations have been processed.  */
 4.37141 ++  unsigned int reloc_done : 1;
 4.37142 ++
 4.37143 ++  /* End of internal packed boolean fields.  */
 4.37144 ++
 4.37145 ++  /*  The virtual memory address of the section - where it will be
 4.37146 ++      at run time.  The symbols are relocated against this.  The
 4.37147 ++      user_set_vma flag is maintained by bfd; if it's not set, the
 4.37148 ++      backend can assign addresses (for example, in <<a.out>>, where
 4.37149 ++      the default address for <<.data>> is dependent on the specific
 4.37150 ++      target and various flags).  */
 4.37151 ++  bfd_vma vma;
 4.37152 ++
 4.37153 ++  /*  The load address of the section - where it would be in a
 4.37154 ++      rom image; really only used for writing section header
 4.37155 ++      information.  */
 4.37156 ++  bfd_vma lma;
 4.37157 ++
 4.37158 ++  /* The size of the section in octets, as it will be output.
 4.37159 ++     Contains a value even if the section has no contents (e.g., the
 4.37160 ++     size of <<.bss>>).  */
 4.37161 ++  bfd_size_type size;
 4.37162 ++
 4.37163 ++  /* For input sections, the original size on disk of the section, in
 4.37164 ++     octets.  This field is used by the linker relaxation code.  It is
 4.37165 ++     currently only set for sections where the linker relaxation scheme
 4.37166 ++     doesn't cache altered section and reloc contents (stabs, eh_frame,
 4.37167 ++     SEC_MERGE, some coff relaxing targets), and thus the original size
 4.37168 ++     needs to be kept to read the section multiple times.
 4.37169 ++     For output sections, rawsize holds the section size calculated on
 4.37170 ++     a previous linker relaxation pass.  */
 4.37171 ++  bfd_size_type rawsize;
 4.37172 ++
 4.37173 ++  /* If this section is going to be output, then this value is the
 4.37174 ++     offset in *bytes* into the output section of the first byte in the
 4.37175 ++     input section (byte ==> smallest addressable unit on the
 4.37176 ++     target).  In most cases, if this was going to start at the
 4.37177 ++     100th octet (8-bit quantity) in the output section, this value
 4.37178 ++     would be 100.  However, if the target byte size is 16 bits
 4.37179 ++     (bfd_octets_per_byte is "2"), this value would be 50.  */
 4.37180 ++  bfd_vma output_offset;
 4.37181 ++
 4.37182 ++  /* The output section through which to map on output.  */
 4.37183 ++  struct bfd_section *output_section;
 4.37184 ++
 4.37185 ++  /* The alignment requirement of the section, as an exponent of 2 -
 4.37186 ++     e.g., 3 aligns to 2^3 (or 8).  */
 4.37187 ++  unsigned int alignment_power;
 4.37188 ++
 4.37189 ++  /* If an input section, a pointer to a vector of relocation
 4.37190 ++     records for the data in this section.  */
 4.37191 ++  struct reloc_cache_entry *relocation;
 4.37192 ++
 4.37193 ++  /* If an output section, a pointer to a vector of pointers to
 4.37194 ++     relocation records for the data in this section.  */
 4.37195 ++  struct reloc_cache_entry **orelocation;
 4.37196 ++
 4.37197 ++  /* The number of relocation records in one of the above.  */
 4.37198 ++  unsigned reloc_count;
 4.37199 ++
 4.37200 ++  /* Information below is back end specific - and not always used
 4.37201 ++     or updated.  */
 4.37202 ++
 4.37203 ++  /* File position of section data.  */
 4.37204 ++  file_ptr filepos;
 4.37205 ++
 4.37206 ++  /* File position of relocation info.  */
 4.37207 ++  file_ptr rel_filepos;
 4.37208 ++
 4.37209 ++  /* File position of line data.  */
 4.37210 ++  file_ptr line_filepos;
 4.37211 ++
 4.37212 ++  /* Pointer to data for applications.  */
 4.37213 ++  void *userdata;
 4.37214 ++
 4.37215 ++  /* If the SEC_IN_MEMORY flag is set, this points to the actual
 4.37216 ++     contents.  */
 4.37217 ++  unsigned char *contents;
 4.37218 ++
 4.37219 ++  /* Attached line number information.  */
 4.37220 ++  alent *lineno;
 4.37221 ++
 4.37222 ++  /* Number of line number records.  */
 4.37223 ++  unsigned int lineno_count;
 4.37224 ++
 4.37225 ++  /* Entity size for merging purposes.  */
 4.37226 ++  unsigned int entsize;
 4.37227 ++
 4.37228 ++  /* Points to the kept section if this section is a link-once section,
 4.37229 ++     and is discarded.  */
 4.37230 ++  struct bfd_section *kept_section;
 4.37231 ++
 4.37232 ++  /* When a section is being output, this value changes as more
 4.37233 ++     linenumbers are written out.  */
 4.37234 ++  file_ptr moving_line_filepos;
 4.37235 ++
 4.37236 ++  /* What the section number is in the target world.  */
 4.37237 ++  int target_index;
 4.37238 ++
 4.37239 ++  void *used_by_bfd;
 4.37240 ++
 4.37241 ++  /* If this is a constructor section then here is a list of the
 4.37242 ++     relocations created to relocate items within it.  */
 4.37243 ++  struct relent_chain *constructor_chain;
 4.37244 ++
 4.37245 ++  /* The BFD which owns the section.  */
 4.37246 ++  bfd *owner;
 4.37247 ++
 4.37248 ++  /* A symbol which points at this section only.  */
 4.37249 ++  struct bfd_symbol *symbol;
 4.37250 ++  struct bfd_symbol **symbol_ptr_ptr;
 4.37251 ++
 4.37252 ++  /* Early in the link process, map_head and map_tail are used to build
 4.37253 ++     a list of input sections attached to an output section.  Later,
 4.37254 ++     output sections use these fields for a list of bfd_link_order
 4.37255 ++     structs.  */
 4.37256 ++  union {
 4.37257 ++    struct bfd_link_order *link_order;
 4.37258 ++    struct bfd_section *s;
 4.37259 ++  } map_head, map_tail;
 4.37260 ++} asection;
 4.37261 ++
 4.37262 ++/* These sections are global, and are managed by BFD.  The application
 4.37263 ++   and target back end are not permitted to change the values in
 4.37264 ++   these sections.  New code should use the section_ptr macros rather
 4.37265 ++   than referring directly to the const sections.  The const sections
 4.37266 ++   may eventually vanish.  */
 4.37267 ++#define BFD_ABS_SECTION_NAME "*ABS*"
 4.37268 ++#define BFD_UND_SECTION_NAME "*UND*"
 4.37269 ++#define BFD_COM_SECTION_NAME "*COM*"
 4.37270 ++#define BFD_IND_SECTION_NAME "*IND*"
 4.37271 ++
 4.37272 ++/* The absolute section.  */
 4.37273 ++extern asection bfd_abs_section;
 4.37274 ++#define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
 4.37275 ++#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
 4.37276 ++/* Pointer to the undefined section.  */
 4.37277 ++extern asection bfd_und_section;
 4.37278 ++#define bfd_und_section_ptr ((asection *) &bfd_und_section)
 4.37279 ++#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
 4.37280 ++/* Pointer to the common section.  */
 4.37281 ++extern asection bfd_com_section;
 4.37282 ++#define bfd_com_section_ptr ((asection *) &bfd_com_section)
 4.37283 ++/* Pointer to the indirect section.  */
 4.37284 ++extern asection bfd_ind_section;
 4.37285 ++#define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
 4.37286 ++#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
 4.37287 ++
 4.37288 ++#define bfd_is_const_section(SEC)              \
 4.37289 ++ (   ((SEC) == bfd_abs_section_ptr)            \
 4.37290 ++  || ((SEC) == bfd_und_section_ptr)            \
 4.37291 ++  || ((SEC) == bfd_com_section_ptr)            \
 4.37292 ++  || ((SEC) == bfd_ind_section_ptr))
 4.37293 ++
 4.37294 ++/* Macros to handle insertion and deletion of a bfd's sections.  These
 4.37295 ++   only handle the list pointers, ie. do not adjust section_count,
 4.37296 ++   target_index etc.  */
 4.37297 ++#define bfd_section_list_remove(ABFD, S) \
 4.37298 ++  do                                                   \
 4.37299 ++    {                                                  \
 4.37300 ++      asection *_s = S;                                \
 4.37301 ++      asection *_next = _s->next;                      \
 4.37302 ++      asection *_prev = _s->prev;                      \
 4.37303 ++      if (_prev)                                       \
 4.37304 ++        _prev->next = _next;                           \
 4.37305 ++      else                                             \
 4.37306 ++        (ABFD)->sections = _next;                      \
 4.37307 ++      if (_next)                                       \
 4.37308 ++        _next->prev = _prev;                           \
 4.37309 ++      else                                             \
 4.37310 ++        (ABFD)->section_last = _prev;                  \
 4.37311 ++    }                                                  \
 4.37312 ++  while (0)
 4.37313 ++#define bfd_section_list_append(ABFD, S) \
 4.37314 ++  do                                                   \
 4.37315 ++    {                                                  \
 4.37316 ++      asection *_s = S;                                \
 4.37317 ++      bfd *_abfd = ABFD;                               \
 4.37318 ++      _s->next = NULL;                                 \
 4.37319 ++      if (_abfd->section_last)                         \
 4.37320 ++        {                                              \
 4.37321 ++          _s->prev = _abfd->section_last;              \
 4.37322 ++          _abfd->section_last->next = _s;              \
 4.37323 ++        }                                              \
 4.37324 ++      else                                             \
 4.37325 ++        {                                              \
 4.37326 ++          _s->prev = NULL;                             \
 4.37327 ++          _abfd->sections = _s;                        \
 4.37328 ++        }                                              \
 4.37329 ++      _abfd->section_last = _s;                        \
 4.37330 ++    }                                                  \
 4.37331 ++  while (0)
 4.37332 ++#define bfd_section_list_prepend(ABFD, S) \
 4.37333 ++  do                                                   \
 4.37334 ++    {                                                  \
 4.37335 ++      asection *_s = S;                                \
 4.37336 ++      bfd *_abfd = ABFD;                               \
 4.37337 ++      _s->prev = NULL;                                 \
 4.37338 ++      if (_abfd->sections)                             \
 4.37339 ++        {                                              \
 4.37340 ++          _s->next = _abfd->sections;                  \
 4.37341 ++          _abfd->sections->prev = _s;                  \
 4.37342 ++        }                                              \
 4.37343 ++      else                                             \
 4.37344 ++        {                                              \
 4.37345 ++          _s->next = NULL;                             \
 4.37346 ++          _abfd->section_last = _s;                    \
 4.37347 ++        }                                              \
 4.37348 ++      _abfd->sections = _s;                            \
 4.37349 ++    }                                                  \
 4.37350 ++  while (0)
 4.37351 ++#define bfd_section_list_insert_after(ABFD, A, S) \
 4.37352 ++  do                                                   \
 4.37353 ++    {                                                  \
 4.37354 ++      asection *_a = A;                                \
 4.37355 ++      asection *_s = S;                                \
 4.37356 ++      asection *_next = _a->next;                      \
 4.37357 ++      _s->next = _next;                                \
 4.37358 ++      _s->prev = _a;                                   \
 4.37359 ++      _a->next = _s;                                   \
 4.37360 ++      if (_next)                                       \
 4.37361 ++        _next->prev = _s;                              \
 4.37362 ++      else                                             \
 4.37363 ++        (ABFD)->section_last = _s;                     \
 4.37364 ++    }                                                  \
 4.37365 ++  while (0)
 4.37366 ++#define bfd_section_list_insert_before(ABFD, B, S) \
 4.37367 ++  do                                                   \
 4.37368 ++    {                                                  \
 4.37369 ++      asection *_b = B;                                \
 4.37370 ++      asection *_s = S;                                \
 4.37371 ++      asection *_prev = _b->prev;                      \
 4.37372 ++      _s->prev = _prev;                                \
 4.37373 ++      _s->next = _b;                                   \
 4.37374 ++      _b->prev = _s;                                   \
 4.37375 ++      if (_prev)                                       \
 4.37376 ++        _prev->next = _s;                              \
 4.37377 ++      else                                             \
 4.37378 ++        (ABFD)->sections = _s;                         \
 4.37379 ++    }                                                  \
 4.37380 ++  while (0)
 4.37381 ++#define bfd_section_removed_from_list(ABFD, S) \
 4.37382 ++  ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S))
 4.37383 ++
 4.37384 ++#define BFD_FAKE_SECTION(SEC, FLAGS, SYM, NAME, IDX)                   \
 4.37385 ++  /* name, id,  index, next, prev, flags, user_set_vma,            */  \
 4.37386 ++  { NAME,  IDX, 0,     NULL, NULL, FLAGS, 0,                           \
 4.37387 ++                                                                       \
 4.37388 ++  /* linker_mark, linker_has_input, gc_mark, gc_mark_from_eh,      */  \
 4.37389 ++     0,           0,                1,       0,                        \
 4.37390 ++                                                                       \
 4.37391 ++  /* segment_mark, sec_info_type, use_rela_p, has_tls_reloc,       */  \
 4.37392 ++     0,            0,             0,          0,                       \
 4.37393 ++                                                                       \
 4.37394 ++  /* has_gp_reloc, need_finalize_relax, reloc_done,                */  \
 4.37395 ++     0,            0,                   0,                             \
 4.37396 ++                                                                       \
 4.37397 ++  /* vma, lma, size, rawsize                                       */  \
 4.37398 ++     0,   0,   0,    0,                                                \
 4.37399 ++                                                                       \
 4.37400 ++  /* output_offset, output_section,              alignment_power,  */  \
 4.37401 ++     0,             (struct bfd_section *) &SEC, 0,                    \
 4.37402 ++                                                                       \
 4.37403 ++  /* relocation, orelocation, reloc_count, filepos, rel_filepos,   */  \
 4.37404 ++     NULL,       NULL,        0,           0,       0,                 \
 4.37405 ++                                                                       \
 4.37406 ++  /* line_filepos, userdata, contents, lineno, lineno_count,       */  \
 4.37407 ++     0,            NULL,     NULL,     NULL,   0,                      \
 4.37408 ++                                                                       \
 4.37409 ++  /* entsize, kept_section, moving_line_filepos,                    */ \
 4.37410 ++     0,       NULL,          0,                                        \
 4.37411 ++                                                                       \
 4.37412 ++  /* target_index, used_by_bfd, constructor_chain, owner,          */  \
 4.37413 ++     0,            NULL,        NULL,              NULL,               \
 4.37414 ++                                                                       \
 4.37415 ++  /* symbol,                    symbol_ptr_ptr,                    */  \
 4.37416 ++     (struct bfd_symbol *) SYM, &SEC.symbol,                           \
 4.37417 ++                                                                       \
 4.37418 ++  /* map_head, map_tail                                            */  \
 4.37419 ++     { NULL }, { NULL }                                                \
 4.37420 ++    }
 4.37421 ++
 4.37422 ++void bfd_section_list_clear (bfd *);
 4.37423 ++
 4.37424 ++asection *bfd_get_section_by_name (bfd *abfd, const char *name);
 4.37425 ++
 4.37426 ++asection *bfd_get_section_by_name_if
 4.37427 ++   (bfd *abfd,
 4.37428 ++    const char *name,
 4.37429 ++    bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj),
 4.37430 ++    void *obj);
 4.37431 ++
 4.37432 ++char *bfd_get_unique_section_name
 4.37433 ++   (bfd *abfd, const char *templat, int *count);
 4.37434 ++
 4.37435 ++asection *bfd_make_section_old_way (bfd *abfd, const char *name);
 4.37436 ++
 4.37437 ++asection *bfd_make_section_anyway_with_flags
 4.37438 ++   (bfd *abfd, const char *name, flagword flags);
 4.37439 ++
 4.37440 ++asection *bfd_make_section_anyway (bfd *abfd, const char *name);
 4.37441 ++
 4.37442 ++asection *bfd_make_section_with_flags
 4.37443 ++   (bfd *, const char *name, flagword flags);
 4.37444 ++
 4.37445 ++asection *bfd_make_section (bfd *, const char *name);
 4.37446 ++
 4.37447 ++bfd_boolean bfd_set_section_flags
 4.37448 ++   (bfd *abfd, asection *sec, flagword flags);
 4.37449 ++
 4.37450 ++void bfd_map_over_sections
 4.37451 ++   (bfd *abfd,
 4.37452 ++    void (*func) (bfd *abfd, asection *sect, void *obj),
 4.37453 ++    void *obj);
 4.37454 ++
 4.37455 ++asection *bfd_sections_find_if
 4.37456 ++   (bfd *abfd,
 4.37457 ++    bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
 4.37458 ++    void *obj);
 4.37459 ++
 4.37460 ++bfd_boolean bfd_set_section_size
 4.37461 ++   (bfd *abfd, asection *sec, bfd_size_type val);
 4.37462 ++
 4.37463 ++bfd_boolean bfd_set_section_contents
 4.37464 ++   (bfd *abfd, asection *section, const void *data,
 4.37465 ++    file_ptr offset, bfd_size_type count);
 4.37466 ++
 4.37467 ++bfd_boolean bfd_get_section_contents
 4.37468 ++   (bfd *abfd, asection *section, void *location, file_ptr offset,
 4.37469 ++    bfd_size_type count);
 4.37470 ++
 4.37471 ++bfd_boolean bfd_malloc_and_get_section
 4.37472 ++   (bfd *abfd, asection *section, bfd_byte **buf);
 4.37473 ++
 4.37474 ++bfd_boolean bfd_copy_private_section_data
 4.37475 ++   (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
 4.37476 ++
 4.37477 ++#define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
 4.37478 ++     BFD_SEND (obfd, _bfd_copy_private_section_data, \
 4.37479 ++               (ibfd, isection, obfd, osection))
 4.37480 ++bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
 4.37481 ++
 4.37482 ++bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
 4.37483 ++
 4.37484 ++/* Extracted from archures.c.  */
 4.37485 ++enum bfd_architecture
 4.37486 ++{
 4.37487 ++  bfd_arch_unknown,   /* File arch not known.  */
 4.37488 ++  bfd_arch_obscure,   /* Arch known, not one of these.  */
 4.37489 ++  bfd_arch_m68k,      /* Motorola 68xxx */
 4.37490 ++#define bfd_mach_m68000 1
 4.37491 ++#define bfd_mach_m68008 2
 4.37492 ++#define bfd_mach_m68010 3
 4.37493 ++#define bfd_mach_m68020 4
 4.37494 ++#define bfd_mach_m68030 5
 4.37495 ++#define bfd_mach_m68040 6
 4.37496 ++#define bfd_mach_m68060 7
 4.37497 ++#define bfd_mach_cpu32  8
 4.37498 ++#define bfd_mach_fido   9
 4.37499 ++#define bfd_mach_mcf_isa_a_nodiv 10
 4.37500 ++#define bfd_mach_mcf_isa_a 11
 4.37501 ++#define bfd_mach_mcf_isa_a_mac 12
 4.37502 ++#define bfd_mach_mcf_isa_a_emac 13
 4.37503 ++#define bfd_mach_mcf_isa_aplus 14
 4.37504 ++#define bfd_mach_mcf_isa_aplus_mac 15
 4.37505 ++#define bfd_mach_mcf_isa_aplus_emac 16
 4.37506 ++#define bfd_mach_mcf_isa_b_nousp 17
 4.37507 ++#define bfd_mach_mcf_isa_b_nousp_mac 18
 4.37508 ++#define bfd_mach_mcf_isa_b_nousp_emac 19
 4.37509 ++#define bfd_mach_mcf_isa_b 20
 4.37510 ++#define bfd_mach_mcf_isa_b_mac 21
 4.37511 ++#define bfd_mach_mcf_isa_b_emac 22
 4.37512 ++#define bfd_mach_mcf_isa_b_float 23
 4.37513 ++#define bfd_mach_mcf_isa_b_float_mac 24
 4.37514 ++#define bfd_mach_mcf_isa_b_float_emac 25
 4.37515 ++#define bfd_mach_mcf_isa_c 26
 4.37516 ++#define bfd_mach_mcf_isa_c_mac 27
 4.37517 ++#define bfd_mach_mcf_isa_c_emac 28
 4.37518 ++  bfd_arch_vax,       /* DEC Vax */
 4.37519 ++  bfd_arch_i960,      /* Intel 960 */
 4.37520 ++    /* The order of the following is important.
 4.37521 ++       lower number indicates a machine type that
 4.37522 ++       only accepts a subset of the instructions
 4.37523 ++       available to machines with higher numbers.
 4.37524 ++       The exception is the "ca", which is
 4.37525 ++       incompatible with all other machines except
 4.37526 ++       "core".  */
 4.37527 ++
 4.37528 ++#define bfd_mach_i960_core      1
 4.37529 ++#define bfd_mach_i960_ka_sa     2
 4.37530 ++#define bfd_mach_i960_kb_sb     3
 4.37531 ++#define bfd_mach_i960_mc        4
 4.37532 ++#define bfd_mach_i960_xa        5
 4.37533 ++#define bfd_mach_i960_ca        6
 4.37534 ++#define bfd_mach_i960_jx        7
 4.37535 ++#define bfd_mach_i960_hx        8
 4.37536 ++
 4.37537 ++  bfd_arch_or32,      /* OpenRISC 32 */
 4.37538 ++
 4.37539 ++  bfd_arch_sparc,     /* SPARC */
 4.37540 ++#define bfd_mach_sparc                 1
 4.37541 ++/* The difference between v8plus and v9 is that v9 is a true 64 bit env.  */
 4.37542 ++#define bfd_mach_sparc_sparclet        2
 4.37543 ++#define bfd_mach_sparc_sparclite       3
 4.37544 ++#define bfd_mach_sparc_v8plus          4
 4.37545 ++#define bfd_mach_sparc_v8plusa         5 /* with ultrasparc add'ns.  */
 4.37546 ++#define bfd_mach_sparc_sparclite_le    6
 4.37547 ++#define bfd_mach_sparc_v9              7
 4.37548 ++#define bfd_mach_sparc_v9a             8 /* with ultrasparc add'ns.  */
 4.37549 ++#define bfd_mach_sparc_v8plusb         9 /* with cheetah add'ns.  */
 4.37550 ++#define bfd_mach_sparc_v9b             10 /* with cheetah add'ns.  */
 4.37551 ++/* Nonzero if MACH has the v9 instruction set.  */
 4.37552 ++#define bfd_mach_sparc_v9_p(mach) \
 4.37553 ++  ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
 4.37554 ++   && (mach) != bfd_mach_sparc_sparclite_le)
 4.37555 ++/* Nonzero if MACH is a 64 bit sparc architecture.  */
 4.37556 ++#define bfd_mach_sparc_64bit_p(mach) \
 4.37557 ++  ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
 4.37558 ++  bfd_arch_spu,       /* PowerPC SPU */
 4.37559 ++#define bfd_mach_spu           256 
 4.37560 ++  bfd_arch_mips,      /* MIPS Rxxxx */
 4.37561 ++#define bfd_mach_mips3000              3000
 4.37562 ++#define bfd_mach_mips3900              3900
 4.37563 ++#define bfd_mach_mips4000              4000
 4.37564 ++#define bfd_mach_mips4010              4010
 4.37565 ++#define bfd_mach_mips4100              4100
 4.37566 ++#define bfd_mach_mips4111              4111
 4.37567 ++#define bfd_mach_mips4120              4120
 4.37568 ++#define bfd_mach_mips4300              4300
 4.37569 ++#define bfd_mach_mips4400              4400
 4.37570 ++#define bfd_mach_mips4600              4600
 4.37571 ++#define bfd_mach_mips4650              4650
 4.37572 ++#define bfd_mach_mips5000              5000
 4.37573 ++#define bfd_mach_mips5400              5400
 4.37574 ++#define bfd_mach_mips5500              5500
 4.37575 ++#define bfd_mach_mips6000              6000
 4.37576 ++#define bfd_mach_mips7000              7000
 4.37577 ++#define bfd_mach_mips8000              8000
 4.37578 ++#define bfd_mach_mips9000              9000
 4.37579 ++#define bfd_mach_mips10000             10000
 4.37580 ++#define bfd_mach_mips12000             12000
 4.37581 ++#define bfd_mach_mips16                16
 4.37582 ++#define bfd_mach_mips5                 5
 4.37583 ++#define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01 */
 4.37584 ++#define bfd_mach_mipsisa32             32
 4.37585 ++#define bfd_mach_mipsisa32r2           33
 4.37586 ++#define bfd_mach_mipsisa64             64
 4.37587 ++#define bfd_mach_mipsisa64r2           65
 4.37588 ++  bfd_arch_i386,      /* Intel 386 */
 4.37589 ++#define bfd_mach_i386_i386 1
 4.37590 ++#define bfd_mach_i386_i8086 2
 4.37591 ++#define bfd_mach_i386_i386_intel_syntax 3
 4.37592 ++#define bfd_mach_x86_64 64
 4.37593 ++#define bfd_mach_x86_64_intel_syntax 65
 4.37594 ++  bfd_arch_we32k,     /* AT&T WE32xxx */
 4.37595 ++  bfd_arch_tahoe,     /* CCI/Harris Tahoe */
 4.37596 ++  bfd_arch_i860,      /* Intel 860 */
 4.37597 ++  bfd_arch_i370,      /* IBM 360/370 Mainframes */
 4.37598 ++  bfd_arch_romp,      /* IBM ROMP PC/RT */
 4.37599 ++  bfd_arch_convex,    /* Convex */
 4.37600 ++  bfd_arch_m88k,      /* Motorola 88xxx */
 4.37601 ++  bfd_arch_m98k,      /* Motorola 98xxx */
 4.37602 ++  bfd_arch_pyramid,   /* Pyramid Technology */
 4.37603 ++  bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300) */
 4.37604 ++#define bfd_mach_h8300    1
 4.37605 ++#define bfd_mach_h8300h   2
 4.37606 ++#define bfd_mach_h8300s   3
 4.37607 ++#define bfd_mach_h8300hn  4
 4.37608 ++#define bfd_mach_h8300sn  5
 4.37609 ++#define bfd_mach_h8300sx  6
 4.37610 ++#define bfd_mach_h8300sxn 7
 4.37611 ++  bfd_arch_pdp11,     /* DEC PDP-11 */
 4.37612 ++  bfd_arch_powerpc,   /* PowerPC */
 4.37613 ++#define bfd_mach_ppc           32
 4.37614 ++#define bfd_mach_ppc64         64
 4.37615 ++#define bfd_mach_ppc_403       403
 4.37616 ++#define bfd_mach_ppc_403gc     4030
 4.37617 ++#define bfd_mach_ppc_505       505
 4.37618 ++#define bfd_mach_ppc_601       601
 4.37619 ++#define bfd_mach_ppc_602       602
 4.37620 ++#define bfd_mach_ppc_603       603
 4.37621 ++#define bfd_mach_ppc_ec603e    6031
 4.37622 ++#define bfd_mach_ppc_604       604
 4.37623 ++#define bfd_mach_ppc_620       620
 4.37624 ++#define bfd_mach_ppc_630       630
 4.37625 ++#define bfd_mach_ppc_750       750
 4.37626 ++#define bfd_mach_ppc_860       860
 4.37627 ++#define bfd_mach_ppc_a35       35
 4.37628 ++#define bfd_mach_ppc_rs64ii    642
 4.37629 ++#define bfd_mach_ppc_rs64iii   643
 4.37630 ++#define bfd_mach_ppc_7400      7400
 4.37631 ++#define bfd_mach_ppc_e500      500
 4.37632 ++  bfd_arch_rs6000,    /* IBM RS/6000 */
 4.37633 ++#define bfd_mach_rs6k          6000
 4.37634 ++#define bfd_mach_rs6k_rs1      6001
 4.37635 ++#define bfd_mach_rs6k_rsc      6003
 4.37636 ++#define bfd_mach_rs6k_rs2      6002
 4.37637 ++  bfd_arch_hppa,      /* HP PA RISC */
 4.37638 ++#define bfd_mach_hppa10        10
 4.37639 ++#define bfd_mach_hppa11        11
 4.37640 ++#define bfd_mach_hppa20        20
 4.37641 ++#define bfd_mach_hppa20w       25
 4.37642 ++  bfd_arch_d10v,      /* Mitsubishi D10V */
 4.37643 ++#define bfd_mach_d10v          1
 4.37644 ++#define bfd_mach_d10v_ts2      2
 4.37645 ++#define bfd_mach_d10v_ts3      3
 4.37646 ++  bfd_arch_d30v,      /* Mitsubishi D30V */
 4.37647 ++  bfd_arch_dlx,       /* DLX */
 4.37648 ++  bfd_arch_m68hc11,   /* Motorola 68HC11 */
 4.37649 ++  bfd_arch_m68hc12,   /* Motorola 68HC12 */
 4.37650 ++#define bfd_mach_m6812_default 0
 4.37651 ++#define bfd_mach_m6812         1
 4.37652 ++#define bfd_mach_m6812s        2
 4.37653 ++  bfd_arch_z8k,       /* Zilog Z8000 */
 4.37654 ++#define bfd_mach_z8001         1
 4.37655 ++#define bfd_mach_z8002         2
 4.37656 ++  bfd_arch_h8500,     /* Renesas H8/500 (formerly Hitachi H8/500) */
 4.37657 ++  bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH) */
 4.37658 ++#define bfd_mach_sh            1
 4.37659 ++#define bfd_mach_sh2        0x20
 4.37660 ++#define bfd_mach_sh_dsp     0x2d
 4.37661 ++#define bfd_mach_sh2a       0x2a
 4.37662 ++#define bfd_mach_sh2a_nofpu 0x2b
 4.37663 ++#define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
 4.37664 ++#define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
 4.37665 ++#define bfd_mach_sh2a_or_sh4  0x2a3
 4.37666 ++#define bfd_mach_sh2a_or_sh3e 0x2a4
 4.37667 ++#define bfd_mach_sh2e       0x2e
 4.37668 ++#define bfd_mach_sh3        0x30
 4.37669 ++#define bfd_mach_sh3_nommu  0x31
 4.37670 ++#define bfd_mach_sh3_dsp    0x3d
 4.37671 ++#define bfd_mach_sh3e       0x3e
 4.37672 ++#define bfd_mach_sh4        0x40
 4.37673 ++#define bfd_mach_sh4_nofpu  0x41
 4.37674 ++#define bfd_mach_sh4_nommu_nofpu  0x42
 4.37675 ++#define bfd_mach_sh4a       0x4a
 4.37676 ++#define bfd_mach_sh4a_nofpu 0x4b
 4.37677 ++#define bfd_mach_sh4al_dsp  0x4d
 4.37678 ++#define bfd_mach_sh5        0x50
 4.37679 ++  bfd_arch_alpha,     /* Dec Alpha */
 4.37680 ++#define bfd_mach_alpha_ev4  0x10
 4.37681 ++#define bfd_mach_alpha_ev5  0x20
 4.37682 ++#define bfd_mach_alpha_ev6  0x30
 4.37683 ++  bfd_arch_arm,       /* Advanced Risc Machines ARM.  */
 4.37684 ++#define bfd_mach_arm_unknown   0
 4.37685 ++#define bfd_mach_arm_2         1
 4.37686 ++#define bfd_mach_arm_2a        2
 4.37687 ++#define bfd_mach_arm_3         3
 4.37688 ++#define bfd_mach_arm_3M        4
 4.37689 ++#define bfd_mach_arm_4         5
 4.37690 ++#define bfd_mach_arm_4T        6
 4.37691 ++#define bfd_mach_arm_5         7
 4.37692 ++#define bfd_mach_arm_5T        8
 4.37693 ++#define bfd_mach_arm_5TE       9
 4.37694 ++#define bfd_mach_arm_XScale    10
 4.37695 ++#define bfd_mach_arm_ep9312    11
 4.37696 ++#define bfd_mach_arm_iWMMXt    12
 4.37697 ++#define bfd_mach_arm_iWMMXt2   13
 4.37698 ++  bfd_arch_ns32k,     /* National Semiconductors ns32000 */
 4.37699 ++  bfd_arch_w65,       /* WDC 65816 */
 4.37700 ++  bfd_arch_tic30,     /* Texas Instruments TMS320C30 */
 4.37701 ++  bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X */
 4.37702 ++#define bfd_mach_tic3x         30
 4.37703 ++#define bfd_mach_tic4x         40
 4.37704 ++  bfd_arch_tic54x,    /* Texas Instruments TMS320C54X */
 4.37705 ++  bfd_arch_tic80,     /* TI TMS320c80 (MVP) */
 4.37706 ++  bfd_arch_v850,      /* NEC V850 */
 4.37707 ++#define bfd_mach_v850          1
 4.37708 ++#define bfd_mach_v850e         'E'
 4.37709 ++#define bfd_mach_v850e1        '1'
 4.37710 ++  bfd_arch_arc,       /* ARC Cores */
 4.37711 ++#define bfd_mach_arc_5         5
 4.37712 ++#define bfd_mach_arc_6         6
 4.37713 ++#define bfd_mach_arc_7         7
 4.37714 ++#define bfd_mach_arc_8         8
 4.37715 ++ bfd_arch_m32c,     /* Renesas M16C/M32C.  */
 4.37716 ++#define bfd_mach_m16c        0x75
 4.37717 ++#define bfd_mach_m32c        0x78
 4.37718 ++  bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D) */
 4.37719 ++#define bfd_mach_m32r          1 /* For backwards compatibility.  */
 4.37720 ++#define bfd_mach_m32rx         'x'
 4.37721 ++#define bfd_mach_m32r2         '2'
 4.37722 ++  bfd_arch_mn10200,   /* Matsushita MN10200 */
 4.37723 ++  bfd_arch_mn10300,   /* Matsushita MN10300 */
 4.37724 ++#define bfd_mach_mn10300               300
 4.37725 ++#define bfd_mach_am33          330
 4.37726 ++#define bfd_mach_am33_2        332
 4.37727 ++  bfd_arch_fr30,
 4.37728 ++#define bfd_mach_fr30          0x46523330
 4.37729 ++  bfd_arch_frv,
 4.37730 ++#define bfd_mach_frv           1
 4.37731 ++#define bfd_mach_frvsimple     2
 4.37732 ++#define bfd_mach_fr300         300
 4.37733 ++#define bfd_mach_fr400         400
 4.37734 ++#define bfd_mach_fr450         450
 4.37735 ++#define bfd_mach_frvtomcat     499     /* fr500 prototype */
 4.37736 ++#define bfd_mach_fr500         500
 4.37737 ++#define bfd_mach_fr550         550
 4.37738 ++  bfd_arch_mcore,
 4.37739 ++  bfd_arch_mep,
 4.37740 ++#define bfd_mach_mep           1
 4.37741 ++#define bfd_mach_mep_h1        0x6831
 4.37742 ++  bfd_arch_ia64,      /* HP/Intel ia64 */
 4.37743 ++#define bfd_mach_ia64_elf64    64
 4.37744 ++#define bfd_mach_ia64_elf32    32
 4.37745 ++  bfd_arch_ip2k,      /* Ubicom IP2K microcontrollers. */
 4.37746 ++#define bfd_mach_ip2022        1
 4.37747 ++#define bfd_mach_ip2022ext     2
 4.37748 ++ bfd_arch_iq2000,     /* Vitesse IQ2000.  */
 4.37749 ++#define bfd_mach_iq2000        1
 4.37750 ++#define bfd_mach_iq10          2
 4.37751 ++  bfd_arch_mt,
 4.37752 ++#define bfd_mach_ms1           1
 4.37753 ++#define bfd_mach_mrisc2        2
 4.37754 ++#define bfd_mach_ms2           3
 4.37755 ++  bfd_arch_pj,
 4.37756 ++  bfd_arch_avr,       /* Atmel AVR microcontrollers.  */
 4.37757 ++#define bfd_mach_avr1          1
 4.37758 ++#define bfd_mach_avr2          2
 4.37759 ++#define bfd_mach_avr3          3
 4.37760 ++#define bfd_mach_avr4          4
 4.37761 ++#define bfd_mach_avr5          5
 4.37762 ++#define bfd_mach_avr6          6
 4.37763 ++  bfd_arch_avr32,     /* Atmel AVR32 */
 4.37764 ++#define bfd_mach_avr32_ap      7000
 4.37765 ++#define bfd_mach_avr32_uc      3000
 4.37766 ++#define bfd_mach_avr32_ucr1    3001
 4.37767 ++#define bfd_mach_avr32_ucr2    3002
 4.37768 ++  bfd_arch_bfin,        /* ADI Blackfin */
 4.37769 ++#define bfd_mach_bfin          1
 4.37770 ++  bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
 4.37771 ++#define bfd_mach_cr16          1
 4.37772 ++  bfd_arch_cr16c,       /* National Semiconductor CompactRISC. */
 4.37773 ++#define bfd_mach_cr16c         1
 4.37774 ++  bfd_arch_crx,       /*  National Semiconductor CRX.  */
 4.37775 ++#define bfd_mach_crx           1
 4.37776 ++  bfd_arch_cris,      /* Axis CRIS */
 4.37777 ++#define bfd_mach_cris_v0_v10   255
 4.37778 ++#define bfd_mach_cris_v32      32
 4.37779 ++#define bfd_mach_cris_v10_v32  1032
 4.37780 ++  bfd_arch_s390,      /* IBM s390 */
 4.37781 ++#define bfd_mach_s390_31       31
 4.37782 ++#define bfd_mach_s390_64       64
 4.37783 ++  bfd_arch_score,     /* Sunplus score */ 
 4.37784 ++  bfd_arch_openrisc,  /* OpenRISC */
 4.37785 ++  bfd_arch_mmix,      /* Donald Knuth's educational processor.  */
 4.37786 ++  bfd_arch_xstormy16,
 4.37787 ++#define bfd_mach_xstormy16     1
 4.37788 ++  bfd_arch_msp430,    /* Texas Instruments MSP430 architecture.  */
 4.37789 ++#define bfd_mach_msp11          11
 4.37790 ++#define bfd_mach_msp110         110
 4.37791 ++#define bfd_mach_msp12          12
 4.37792 ++#define bfd_mach_msp13          13
 4.37793 ++#define bfd_mach_msp14          14
 4.37794 ++#define bfd_mach_msp15          15
 4.37795 ++#define bfd_mach_msp16          16
 4.37796 ++#define bfd_mach_msp21          21
 4.37797 ++#define bfd_mach_msp31          31
 4.37798 ++#define bfd_mach_msp32          32
 4.37799 ++#define bfd_mach_msp33          33
 4.37800 ++#define bfd_mach_msp41          41
 4.37801 ++#define bfd_mach_msp42          42
 4.37802 ++#define bfd_mach_msp43          43
 4.37803 ++#define bfd_mach_msp44          44
 4.37804 ++  bfd_arch_xc16x,     /* Infineon's XC16X Series.               */
 4.37805 ++#define bfd_mach_xc16x         1
 4.37806 ++#define bfd_mach_xc16xl        2
 4.37807 ++#define bfd_mach_xc16xs         3
 4.37808 ++  bfd_arch_xtensa,    /* Tensilica's Xtensa cores.  */
 4.37809 ++#define bfd_mach_xtensa        1
 4.37810 ++   bfd_arch_maxq,     /* Dallas MAXQ 10/20 */
 4.37811 ++#define bfd_mach_maxq10    10
 4.37812 ++#define bfd_mach_maxq20    20
 4.37813 ++  bfd_arch_z80,
 4.37814 ++#define bfd_mach_z80strict      1 /* No undocumented opcodes.  */
 4.37815 ++#define bfd_mach_z80            3 /* With ixl, ixh, iyl, and iyh.  */
 4.37816 ++#define bfd_mach_z80full        7 /* All undocumented instructions.  */
 4.37817 ++#define bfd_mach_r800           11 /* R800: successor with multiplication.  */
 4.37818 ++  bfd_arch_last
 4.37819 ++  };
 4.37820 ++
 4.37821 ++typedef struct bfd_arch_info
 4.37822 ++{
 4.37823 ++  int bits_per_word;
 4.37824 ++  int bits_per_address;
 4.37825 ++  int bits_per_byte;
 4.37826 ++  enum bfd_architecture arch;
 4.37827 ++  unsigned long mach;
 4.37828 ++  const char *arch_name;
 4.37829 ++  const char *printable_name;
 4.37830 ++  unsigned int section_align_power;
 4.37831 ++  /* TRUE if this is the default machine for the architecture.
 4.37832 ++     The default arch should be the first entry for an arch so that
 4.37833 ++     all the entries for that arch can be accessed via <<next>>.  */
 4.37834 ++  bfd_boolean the_default;
 4.37835 ++  const struct bfd_arch_info * (*compatible)
 4.37836 ++    (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
 4.37837 ++
 4.37838 ++  bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
 4.37839 ++
 4.37840 ++  const struct bfd_arch_info *next;
 4.37841 ++}
 4.37842 ++bfd_arch_info_type;
 4.37843 ++
 4.37844 ++const char *bfd_printable_name (bfd *abfd);
 4.37845 ++
 4.37846 ++const bfd_arch_info_type *bfd_scan_arch (const char *string);
 4.37847 ++
 4.37848 ++const char **bfd_arch_list (void);
 4.37849 ++
 4.37850 ++const bfd_arch_info_type *bfd_arch_get_compatible
 4.37851 ++   (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
 4.37852 ++
 4.37853 ++void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
 4.37854 ++
 4.37855 ++enum bfd_architecture bfd_get_arch (bfd *abfd);
 4.37856 ++
 4.37857 ++unsigned long bfd_get_mach (bfd *abfd);
 4.37858 ++
 4.37859 ++unsigned int bfd_arch_bits_per_byte (bfd *abfd);
 4.37860 ++
 4.37861 ++unsigned int bfd_arch_bits_per_address (bfd *abfd);
 4.37862 ++
 4.37863 ++const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
 4.37864 ++
 4.37865 ++const bfd_arch_info_type *bfd_lookup_arch
 4.37866 ++   (enum bfd_architecture arch, unsigned long machine);
 4.37867 ++
 4.37868 ++const char *bfd_printable_arch_mach
 4.37869 ++   (enum bfd_architecture arch, unsigned long machine);
 4.37870 ++
 4.37871 ++unsigned int bfd_octets_per_byte (bfd *abfd);
 4.37872 ++
 4.37873 ++unsigned int bfd_arch_mach_octets_per_byte
 4.37874 ++   (enum bfd_architecture arch, unsigned long machine);
 4.37875 ++
 4.37876 ++/* Extracted from reloc.c.  */
 4.37877 ++typedef enum bfd_reloc_status
 4.37878 ++{
 4.37879 ++  /* No errors detected.  */
 4.37880 ++  bfd_reloc_ok,
 4.37881 ++
 4.37882 ++  /* The relocation was performed, but there was an overflow.  */
 4.37883 ++  bfd_reloc_overflow,
 4.37884 ++
 4.37885 ++  /* The address to relocate was not within the section supplied.  */
 4.37886 ++  bfd_reloc_outofrange,
 4.37887 ++
 4.37888 ++  /* Used by special functions.  */
 4.37889 ++  bfd_reloc_continue,
 4.37890 ++
 4.37891 ++  /* Unsupported relocation size requested.  */
 4.37892 ++  bfd_reloc_notsupported,
 4.37893 ++
 4.37894 ++  /* Unused.  */
 4.37895 ++  bfd_reloc_other,
 4.37896 ++
 4.37897 ++  /* The symbol to relocate against was undefined.  */
 4.37898 ++  bfd_reloc_undefined,
 4.37899 ++
 4.37900 ++  /* The relocation was performed, but may not be ok - presently
 4.37901 ++     generated only when linking i960 coff files with i960 b.out
 4.37902 ++     symbols.  If this type is returned, the error_message argument
 4.37903 ++     to bfd_perform_relocation will be set.  */
 4.37904 ++  bfd_reloc_dangerous
 4.37905 ++ }
 4.37906 ++ bfd_reloc_status_type;
 4.37907 ++
 4.37908 ++
 4.37909 ++typedef struct reloc_cache_entry
 4.37910 ++{
 4.37911 ++  /* A pointer into the canonical table of pointers.  */
 4.37912 ++  struct bfd_symbol **sym_ptr_ptr;
 4.37913 ++
 4.37914 ++  /* offset in section.  */
 4.37915 ++  bfd_size_type address;
 4.37916 ++
 4.37917 ++  /* addend for relocation value.  */
 4.37918 ++  bfd_vma addend;
 4.37919 ++
 4.37920 ++  /* Pointer to how to perform the required relocation.  */
 4.37921 ++  reloc_howto_type *howto;
 4.37922 ++
 4.37923 ++}
 4.37924 ++arelent;
 4.37925 ++
 4.37926 ++enum complain_overflow
 4.37927 ++{
 4.37928 ++  /* Do not complain on overflow.  */
 4.37929 ++  complain_overflow_dont,
 4.37930 ++
 4.37931 ++  /* Complain if the value overflows when considered as a signed
 4.37932 ++     number one bit larger than the field.  ie. A bitfield of N bits
 4.37933 ++     is allowed to represent -2**n to 2**n-1.  */
 4.37934 ++  complain_overflow_bitfield,
 4.37935 ++
 4.37936 ++  /* Complain if the value overflows when considered as a signed
 4.37937 ++     number.  */
 4.37938 ++  complain_overflow_signed,
 4.37939 ++
 4.37940 ++  /* Complain if the value overflows when considered as an
 4.37941 ++     unsigned number.  */
 4.37942 ++  complain_overflow_unsigned
 4.37943 ++};
 4.37944 ++
 4.37945 ++struct reloc_howto_struct
 4.37946 ++{
 4.37947 ++  /*  The type field has mainly a documentary use - the back end can
 4.37948 ++      do what it wants with it, though normally the back end's
 4.37949 ++      external idea of what a reloc number is stored
 4.37950 ++      in this field.  For example, a PC relative word relocation
 4.37951 ++      in a coff environment has the type 023 - because that's
 4.37952 ++      what the outside world calls a R_PCRWORD reloc.  */
 4.37953 ++  unsigned int type;
 4.37954 ++
 4.37955 ++  /*  The value the final relocation is shifted right by.  This drops
 4.37956 ++      unwanted data from the relocation.  */
 4.37957 ++  unsigned int rightshift;
 4.37958 ++
 4.37959 ++  /*  The size of the item to be relocated.  This is *not* a
 4.37960 ++      power-of-two measure.  To get the number of bytes operated
 4.37961 ++      on by a type of relocation, use bfd_get_reloc_size.  */
 4.37962 ++  int size;
 4.37963 ++
 4.37964 ++  /*  The number of bits in the item to be relocated.  This is used
 4.37965 ++      when doing overflow checking.  */
 4.37966 ++  unsigned int bitsize;
 4.37967 ++
 4.37968 ++  /*  Notes that the relocation is relative to the location in the
 4.37969 ++      data section of the addend.  The relocation function will
 4.37970 ++      subtract from the relocation value the address of the location
 4.37971 ++      being relocated.  */
 4.37972 ++  bfd_boolean pc_relative;
 4.37973 ++
 4.37974 ++  /*  The bit position of the reloc value in the destination.
 4.37975 ++      The relocated value is left shifted by this amount.  */
 4.37976 ++  unsigned int bitpos;
 4.37977 ++
 4.37978 ++  /* What type of overflow error should be checked for when
 4.37979 ++     relocating.  */
 4.37980 ++  enum complain_overflow complain_on_overflow;
 4.37981 ++
 4.37982 ++  /* If this field is non null, then the supplied function is
 4.37983 ++     called rather than the normal function.  This allows really
 4.37984 ++     strange relocation methods to be accommodated (e.g., i960 callj
 4.37985 ++     instructions).  */
 4.37986 ++  bfd_reloc_status_type (*special_function)
 4.37987 ++    (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
 4.37988 ++     bfd *, char **);
 4.37989 ++
 4.37990 ++  /* The textual name of the relocation type.  */
 4.37991 ++  char *name;
 4.37992 ++
 4.37993 ++  /* Some formats record a relocation addend in the section contents
 4.37994 ++     rather than with the relocation.  For ELF formats this is the
 4.37995 ++     distinction between USE_REL and USE_RELA (though the code checks
 4.37996 ++     for USE_REL == 1/0).  The value of this field is TRUE if the
 4.37997 ++     addend is recorded with the section contents; when performing a
 4.37998 ++     partial link (ld -r) the section contents (the data) will be
 4.37999 ++     modified.  The value of this field is FALSE if addends are
 4.38000 ++     recorded with the relocation (in arelent.addend); when performing
 4.38001 ++     a partial link the relocation will be modified.
 4.38002 ++     All relocations for all ELF USE_RELA targets should set this field
 4.38003 ++     to FALSE (values of TRUE should be looked on with suspicion).
 4.38004 ++     However, the converse is not true: not all relocations of all ELF
 4.38005 ++     USE_REL targets set this field to TRUE.  Why this is so is peculiar
 4.38006 ++     to each particular target.  For relocs that aren't used in partial
 4.38007 ++     links (e.g. GOT stuff) it doesn't matter what this is set to.  */
 4.38008 ++  bfd_boolean partial_inplace;
 4.38009 ++
 4.38010 ++  /* src_mask selects the part of the instruction (or data) to be used
 4.38011 ++     in the relocation sum.  If the target relocations don't have an
 4.38012 ++     addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
 4.38013 ++     dst_mask to extract the addend from the section contents.  If
 4.38014 ++     relocations do have an addend in the reloc, eg. ELF USE_RELA, this
 4.38015 ++     field should be zero.  Non-zero values for ELF USE_RELA targets are
 4.38016 ++     bogus as in those cases the value in the dst_mask part of the
 4.38017 ++     section contents should be treated as garbage.  */
 4.38018 ++  bfd_vma src_mask;
 4.38019 ++
 4.38020 ++  /* dst_mask selects which parts of the instruction (or data) are
 4.38021 ++     replaced with a relocated value.  */
 4.38022 ++  bfd_vma dst_mask;
 4.38023 ++
 4.38024 ++  /* When some formats create PC relative instructions, they leave
 4.38025 ++     the value of the pc of the place being relocated in the offset
 4.38026 ++     slot of the instruction, so that a PC relative relocation can
 4.38027 ++     be made just by adding in an ordinary offset (e.g., sun3 a.out).
 4.38028 ++     Some formats leave the displacement part of an instruction
 4.38029 ++     empty (e.g., m88k bcs); this flag signals the fact.  */
 4.38030 ++  bfd_boolean pcrel_offset;
 4.38031 ++};
 4.38032 ++
 4.38033 ++#define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
 4.38034 ++  { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC }
 4.38035 ++#define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
 4.38036 ++  HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
 4.38037 ++         NAME, FALSE, 0, 0, IN)
 4.38038 ++
 4.38039 ++#define EMPTY_HOWTO(C) \
 4.38040 ++  HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
 4.38041 ++         NULL, FALSE, 0, 0, FALSE)
 4.38042 ++
 4.38043 ++#define HOWTO_PREPARE(relocation, symbol)               \
 4.38044 ++  {                                                     \
 4.38045 ++    if (symbol != NULL)                                 \
 4.38046 ++      {                                                 \
 4.38047 ++        if (bfd_is_com_section (symbol->section))       \
 4.38048 ++          {                                             \
 4.38049 ++            relocation = 0;                             \
 4.38050 ++          }                                             \
 4.38051 ++        else                                            \
 4.38052 ++          {                                             \
 4.38053 ++            relocation = symbol->value;                 \
 4.38054 ++          }                                             \
 4.38055 ++      }                                                 \
 4.38056 ++  }
 4.38057 ++
 4.38058 ++unsigned int bfd_get_reloc_size (reloc_howto_type *);
 4.38059 ++
 4.38060 ++typedef struct relent_chain
 4.38061 ++{
 4.38062 ++  arelent relent;
 4.38063 ++  struct relent_chain *next;
 4.38064 ++}
 4.38065 ++arelent_chain;
 4.38066 ++
 4.38067 ++bfd_reloc_status_type bfd_check_overflow
 4.38068 ++   (enum complain_overflow how,
 4.38069 ++    unsigned int bitsize,
 4.38070 ++    unsigned int rightshift,
 4.38071 ++    unsigned int addrsize,
 4.38072 ++    bfd_vma relocation);
 4.38073 ++
 4.38074 ++bfd_reloc_status_type bfd_perform_relocation
 4.38075 ++   (bfd *abfd,
 4.38076 ++    arelent *reloc_entry,
 4.38077 ++    void *data,
 4.38078 ++    asection *input_section,
 4.38079 ++    bfd *output_bfd,
 4.38080 ++    char **error_message);
 4.38081 ++
 4.38082 ++bfd_reloc_status_type bfd_install_relocation
 4.38083 ++   (bfd *abfd,
 4.38084 ++    arelent *reloc_entry,
 4.38085 ++    void *data, bfd_vma data_start,
 4.38086 ++    asection *input_section,
 4.38087 ++    char **error_message);
 4.38088 ++
 4.38089 ++enum bfd_reloc_code_real {
 4.38090 ++  _dummy_first_bfd_reloc_code_real,
 4.38091 ++
 4.38092 ++
 4.38093 ++/* Basic absolute relocations of N bits.  */
 4.38094 ++  BFD_RELOC_64,
 4.38095 ++  BFD_RELOC_32,
 4.38096 ++  BFD_RELOC_26,
 4.38097 ++  BFD_RELOC_24,
 4.38098 ++  BFD_RELOC_16,
 4.38099 ++  BFD_RELOC_14,
 4.38100 ++  BFD_RELOC_8,
 4.38101 ++
 4.38102 ++/* PC-relative relocations.  Sometimes these are relative to the address
 4.38103 ++of the relocation itself; sometimes they are relative to the start of
 4.38104 ++the section containing the relocation.  It depends on the specific target.
 4.38105 ++
 4.38106 ++The 24-bit relocation is used in some Intel 960 configurations.  */
 4.38107 ++  BFD_RELOC_64_PCREL,
 4.38108 ++  BFD_RELOC_32_PCREL,
 4.38109 ++  BFD_RELOC_24_PCREL,
 4.38110 ++  BFD_RELOC_16_PCREL,
 4.38111 ++  BFD_RELOC_12_PCREL,
 4.38112 ++  BFD_RELOC_8_PCREL,
 4.38113 ++
 4.38114 ++/* Section relative relocations.  Some targets need this for DWARF2.  */
 4.38115 ++  BFD_RELOC_32_SECREL,
 4.38116 ++
 4.38117 ++/* For ELF.  */
 4.38118 ++  BFD_RELOC_32_GOT_PCREL,
 4.38119 ++  BFD_RELOC_16_GOT_PCREL,
 4.38120 ++  BFD_RELOC_8_GOT_PCREL,
 4.38121 ++  BFD_RELOC_32_GOTOFF,
 4.38122 ++  BFD_RELOC_16_GOTOFF,
 4.38123 ++  BFD_RELOC_LO16_GOTOFF,
 4.38124 ++  BFD_RELOC_HI16_GOTOFF,
 4.38125 ++  BFD_RELOC_HI16_S_GOTOFF,
 4.38126 ++  BFD_RELOC_8_GOTOFF,
 4.38127 ++  BFD_RELOC_64_PLT_PCREL,
 4.38128 ++  BFD_RELOC_32_PLT_PCREL,
 4.38129 ++  BFD_RELOC_24_PLT_PCREL,
 4.38130 ++  BFD_RELOC_16_PLT_PCREL,
 4.38131 ++  BFD_RELOC_8_PLT_PCREL,
 4.38132 ++  BFD_RELOC_64_PLTOFF,
 4.38133 ++  BFD_RELOC_32_PLTOFF,
 4.38134 ++  BFD_RELOC_16_PLTOFF,
 4.38135 ++  BFD_RELOC_LO16_PLTOFF,
 4.38136 ++  BFD_RELOC_HI16_PLTOFF,
 4.38137 ++  BFD_RELOC_HI16_S_PLTOFF,
 4.38138 ++  BFD_RELOC_8_PLTOFF,
 4.38139 ++
 4.38140 ++/* Relocations used by 68K ELF.  */
 4.38141 ++  BFD_RELOC_68K_GLOB_DAT,
 4.38142 ++  BFD_RELOC_68K_JMP_SLOT,
 4.38143 ++  BFD_RELOC_68K_RELATIVE,
 4.38144 ++
 4.38145 ++/* Linkage-table relative.  */
 4.38146 ++  BFD_RELOC_32_BASEREL,
 4.38147 ++  BFD_RELOC_16_BASEREL,
 4.38148 ++  BFD_RELOC_LO16_BASEREL,
 4.38149 ++  BFD_RELOC_HI16_BASEREL,
 4.38150 ++  BFD_RELOC_HI16_S_BASEREL,
 4.38151 ++  BFD_RELOC_8_BASEREL,
 4.38152 ++  BFD_RELOC_RVA,
 4.38153 ++
 4.38154 ++/* Absolute 8-bit relocation, but used to form an address like 0xFFnn.  */
 4.38155 ++  BFD_RELOC_8_FFnn,
 4.38156 ++
 4.38157 ++/* These PC-relative relocations are stored as word displacements --
 4.38158 ++i.e., byte displacements shifted right two bits.  The 30-bit word
 4.38159 ++displacement (<<32_PCREL_S2>> -- 32 bits, shifted 2) is used on the
 4.38160 ++SPARC.  (SPARC tools generally refer to this as <<WDISP30>>.)  The
 4.38161 ++signed 16-bit displacement is used on the MIPS, and the 23-bit
 4.38162 ++displacement is used on the Alpha.  */
 4.38163 ++  BFD_RELOC_32_PCREL_S2,
 4.38164 ++  BFD_RELOC_16_PCREL_S2,
 4.38165 ++  BFD_RELOC_23_PCREL_S2,
 4.38166 ++
 4.38167 ++/* High 22 bits and low 10 bits of 32-bit value, placed into lower bits of
 4.38168 ++the target word.  These are used on the SPARC.  */
 4.38169 ++  BFD_RELOC_HI22,
 4.38170 ++  BFD_RELOC_LO10,
 4.38171 ++
 4.38172 ++/* For systems that allocate a Global Pointer register, these are
 4.38173 ++displacements off that register.  These relocation types are
 4.38174 ++handled specially, because the value the register will have is
 4.38175 ++decided relatively late.  */
 4.38176 ++  BFD_RELOC_GPREL16,
 4.38177 ++  BFD_RELOC_GPREL32,
 4.38178 ++
 4.38179 ++/* Reloc types used for i960/b.out.  */
 4.38180 ++  BFD_RELOC_I960_CALLJ,
 4.38181 ++
 4.38182 ++/* SPARC ELF relocations.  There is probably some overlap with other
 4.38183 ++relocation types already defined.  */
 4.38184 ++  BFD_RELOC_NONE,
 4.38185 ++  BFD_RELOC_SPARC_WDISP22,
 4.38186 ++  BFD_RELOC_SPARC22,
 4.38187 ++  BFD_RELOC_SPARC13,
 4.38188 ++  BFD_RELOC_SPARC_GOT10,
 4.38189 ++  BFD_RELOC_SPARC_GOT13,
 4.38190 ++  BFD_RELOC_SPARC_GOT22,
 4.38191 ++  BFD_RELOC_SPARC_PC10,
 4.38192 ++  BFD_RELOC_SPARC_PC22,
 4.38193 ++  BFD_RELOC_SPARC_WPLT30,
 4.38194 ++  BFD_RELOC_SPARC_COPY,
 4.38195 ++  BFD_RELOC_SPARC_GLOB_DAT,
 4.38196 ++  BFD_RELOC_SPARC_JMP_SLOT,
 4.38197 ++  BFD_RELOC_SPARC_RELATIVE,
 4.38198 ++  BFD_RELOC_SPARC_UA16,
 4.38199 ++  BFD_RELOC_SPARC_UA32,
 4.38200 ++  BFD_RELOC_SPARC_UA64,
 4.38201 ++
 4.38202 ++/* I think these are specific to SPARC a.out (e.g., Sun 4).  */
 4.38203 ++  BFD_RELOC_SPARC_BASE13,
 4.38204 ++  BFD_RELOC_SPARC_BASE22,
 4.38205 ++
 4.38206 ++/* SPARC64 relocations  */
 4.38207 ++#define BFD_RELOC_SPARC_64 BFD_RELOC_64
 4.38208 ++  BFD_RELOC_SPARC_10,
 4.38209 ++  BFD_RELOC_SPARC_11,
 4.38210 ++  BFD_RELOC_SPARC_OLO10,
 4.38211 ++  BFD_RELOC_SPARC_HH22,
 4.38212 ++  BFD_RELOC_SPARC_HM10,
 4.38213 ++  BFD_RELOC_SPARC_LM22,
 4.38214 ++  BFD_RELOC_SPARC_PC_HH22,
 4.38215 ++  BFD_RELOC_SPARC_PC_HM10,
 4.38216 ++  BFD_RELOC_SPARC_PC_LM22,
 4.38217 ++  BFD_RELOC_SPARC_WDISP16,
 4.38218 ++  BFD_RELOC_SPARC_WDISP19,
 4.38219 ++  BFD_RELOC_SPARC_7,
 4.38220 ++  BFD_RELOC_SPARC_6,
 4.38221 ++  BFD_RELOC_SPARC_5,
 4.38222 ++#define BFD_RELOC_SPARC_DISP64 BFD_RELOC_64_PCREL
 4.38223 ++  BFD_RELOC_SPARC_PLT32,
 4.38224 ++  BFD_RELOC_SPARC_PLT64,
 4.38225 ++  BFD_RELOC_SPARC_HIX22,
 4.38226 ++  BFD_RELOC_SPARC_LOX10,
 4.38227 ++  BFD_RELOC_SPARC_H44,
 4.38228 ++  BFD_RELOC_SPARC_M44,
 4.38229 ++  BFD_RELOC_SPARC_L44,
 4.38230 ++  BFD_RELOC_SPARC_REGISTER,
 4.38231 ++
 4.38232 ++/* SPARC little endian relocation  */
 4.38233 ++  BFD_RELOC_SPARC_REV32,
 4.38234 ++
 4.38235 ++/* SPARC TLS relocations  */
 4.38236 ++  BFD_RELOC_SPARC_TLS_GD_HI22,
 4.38237 ++  BFD_RELOC_SPARC_TLS_GD_LO10,
 4.38238 ++  BFD_RELOC_SPARC_TLS_GD_ADD,
 4.38239 ++  BFD_RELOC_SPARC_TLS_GD_CALL,
 4.38240 ++  BFD_RELOC_SPARC_TLS_LDM_HI22,
 4.38241 ++  BFD_RELOC_SPARC_TLS_LDM_LO10,
 4.38242 ++  BFD_RELOC_SPARC_TLS_LDM_ADD,
 4.38243 ++  BFD_RELOC_SPARC_TLS_LDM_CALL,
 4.38244 ++  BFD_RELOC_SPARC_TLS_LDO_HIX22,
 4.38245 ++  BFD_RELOC_SPARC_TLS_LDO_LOX10,
 4.38246 ++  BFD_RELOC_SPARC_TLS_LDO_ADD,
 4.38247 ++  BFD_RELOC_SPARC_TLS_IE_HI22,
 4.38248 ++  BFD_RELOC_SPARC_TLS_IE_LO10,
 4.38249 ++  BFD_RELOC_SPARC_TLS_IE_LD,
 4.38250 ++  BFD_RELOC_SPARC_TLS_IE_LDX,
 4.38251 ++  BFD_RELOC_SPARC_TLS_IE_ADD,
 4.38252 ++  BFD_RELOC_SPARC_TLS_LE_HIX22,
 4.38253 ++  BFD_RELOC_SPARC_TLS_LE_LOX10,
 4.38254 ++  BFD_RELOC_SPARC_TLS_DTPMOD32,
 4.38255 ++  BFD_RELOC_SPARC_TLS_DTPMOD64,
 4.38256 ++  BFD_RELOC_SPARC_TLS_DTPOFF32,
 4.38257 ++  BFD_RELOC_SPARC_TLS_DTPOFF64,
 4.38258 ++  BFD_RELOC_SPARC_TLS_TPOFF32,
 4.38259 ++  BFD_RELOC_SPARC_TLS_TPOFF64,
 4.38260 ++
 4.38261 ++/* SPU Relocations.  */
 4.38262 ++  BFD_RELOC_SPU_IMM7,
 4.38263 ++  BFD_RELOC_SPU_IMM8,
 4.38264 ++  BFD_RELOC_SPU_IMM10,
 4.38265 ++  BFD_RELOC_SPU_IMM10W,
 4.38266 ++  BFD_RELOC_SPU_IMM16,
 4.38267 ++  BFD_RELOC_SPU_IMM16W,
 4.38268 ++  BFD_RELOC_SPU_IMM18,
 4.38269 ++  BFD_RELOC_SPU_PCREL9a,
 4.38270 ++  BFD_RELOC_SPU_PCREL9b,
 4.38271 ++  BFD_RELOC_SPU_PCREL16,
 4.38272 ++  BFD_RELOC_SPU_LO16,
 4.38273 ++  BFD_RELOC_SPU_HI16,
 4.38274 ++  BFD_RELOC_SPU_PPU32,
 4.38275 ++  BFD_RELOC_SPU_PPU64,
 4.38276 ++
 4.38277 ++/* Alpha ECOFF and ELF relocations.  Some of these treat the symbol or
 4.38278 ++"addend" in some special way.
 4.38279 ++For GPDISP_HI16 ("gpdisp") relocations, the symbol is ignored when
 4.38280 ++writing; when reading, it will be the absolute section symbol.  The
 4.38281 ++addend is the displacement in bytes of the "lda" instruction from
 4.38282 ++the "ldah" instruction (which is at the address of this reloc).  */
 4.38283 ++  BFD_RELOC_ALPHA_GPDISP_HI16,
 4.38284 ++
 4.38285 ++/* For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
 4.38286 ++with GPDISP_HI16 relocs.  The addend is ignored when writing the
 4.38287 ++relocations out, and is filled in with the file's GP value on
 4.38288 ++reading, for convenience.  */
 4.38289 ++  BFD_RELOC_ALPHA_GPDISP_LO16,
 4.38290 ++
 4.38291 ++/* The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
 4.38292 ++relocation except that there is no accompanying GPDISP_LO16
 4.38293 ++relocation.  */
 4.38294 ++  BFD_RELOC_ALPHA_GPDISP,
 4.38295 ++
 4.38296 ++/* The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
 4.38297 ++the assembler turns it into a LDQ instruction to load the address of
 4.38298 ++the symbol, and then fills in a register in the real instruction.
 4.38299 ++
 4.38300 ++The LITERAL reloc, at the LDQ instruction, refers to the .lita
 4.38301 ++section symbol.  The addend is ignored when writing, but is filled
 4.38302 ++in with the file's GP value on reading, for convenience, as with the
 4.38303 ++GPDISP_LO16 reloc.
 4.38304 ++
 4.38305 ++The ELF_LITERAL reloc is somewhere between 16_GOTOFF and GPDISP_LO16.
 4.38306 ++It should refer to the symbol to be referenced, as with 16_GOTOFF,
 4.38307 ++but it generates output not based on the position within the .got
 4.38308 ++section, but relative to the GP value chosen for the file during the
 4.38309 ++final link stage.
 4.38310 ++
 4.38311 ++The LITUSE reloc, on the instruction using the loaded address, gives
 4.38312 ++information to the linker that it might be able to use to optimize
 4.38313 ++away some literal section references.  The symbol is ignored (read
 4.38314 ++as the absolute section symbol), and the "addend" indicates the type
 4.38315 ++of instruction using the register:
 4.38316 ++1 - "memory" fmt insn
 4.38317 ++2 - byte-manipulation (byte offset reg)
 4.38318 ++3 - jsr (target of branch)  */
 4.38319 ++  BFD_RELOC_ALPHA_LITERAL,
 4.38320 ++  BFD_RELOC_ALPHA_ELF_LITERAL,
 4.38321 ++  BFD_RELOC_ALPHA_LITUSE,
 4.38322 ++
 4.38323 ++/* The HINT relocation indicates a value that should be filled into the
 4.38324 ++"hint" field of a jmp/jsr/ret instruction, for possible branch-
 4.38325 ++prediction logic which may be provided on some processors.  */
 4.38326 ++  BFD_RELOC_ALPHA_HINT,
 4.38327 ++
 4.38328 ++/* The LINKAGE relocation outputs a linkage pair in the object file,
 4.38329 ++which is filled by the linker.  */
 4.38330 ++  BFD_RELOC_ALPHA_LINKAGE,
 4.38331 ++
 4.38332 ++/* The CODEADDR relocation outputs a STO_CA in the object file,
 4.38333 ++which is filled by the linker.  */
 4.38334 ++  BFD_RELOC_ALPHA_CODEADDR,
 4.38335 ++
 4.38336 ++/* The GPREL_HI/LO relocations together form a 32-bit offset from the
 4.38337 ++GP register.  */
 4.38338 ++  BFD_RELOC_ALPHA_GPREL_HI16,
 4.38339 ++  BFD_RELOC_ALPHA_GPREL_LO16,
 4.38340 ++
 4.38341 ++/* Like BFD_RELOC_23_PCREL_S2, except that the source and target must
 4.38342 ++share a common GP, and the target address is adjusted for
 4.38343 ++STO_ALPHA_STD_GPLOAD.  */
 4.38344 ++  BFD_RELOC_ALPHA_BRSGP,
 4.38345 ++
 4.38346 ++/* Alpha thread-local storage relocations.  */
 4.38347 ++  BFD_RELOC_ALPHA_TLSGD,
 4.38348 ++  BFD_RELOC_ALPHA_TLSLDM,
 4.38349 ++  BFD_RELOC_ALPHA_DTPMOD64,
 4.38350 ++  BFD_RELOC_ALPHA_GOTDTPREL16,
 4.38351 ++  BFD_RELOC_ALPHA_DTPREL64,
 4.38352 ++  BFD_RELOC_ALPHA_DTPREL_HI16,
 4.38353 ++  BFD_RELOC_ALPHA_DTPREL_LO16,
 4.38354 ++  BFD_RELOC_ALPHA_DTPREL16,
 4.38355 ++  BFD_RELOC_ALPHA_GOTTPREL16,
 4.38356 ++  BFD_RELOC_ALPHA_TPREL64,
 4.38357 ++  BFD_RELOC_ALPHA_TPREL_HI16,
 4.38358 ++  BFD_RELOC_ALPHA_TPREL_LO16,
 4.38359 ++  BFD_RELOC_ALPHA_TPREL16,
 4.38360 ++
 4.38361 ++/* Bits 27..2 of the relocation address shifted right 2 bits;
 4.38362 ++simple reloc otherwise.  */
 4.38363 ++  BFD_RELOC_MIPS_JMP,
 4.38364 ++
 4.38365 ++/* The MIPS16 jump instruction.  */
 4.38366 ++  BFD_RELOC_MIPS16_JMP,
 4.38367 ++
 4.38368 ++/* MIPS16 GP relative reloc.  */
 4.38369 ++  BFD_RELOC_MIPS16_GPREL,
 4.38370 ++
 4.38371 ++/* High 16 bits of 32-bit value; simple reloc.  */
 4.38372 ++  BFD_RELOC_HI16,
 4.38373 ++
 4.38374 ++/* High 16 bits of 32-bit value but the low 16 bits will be sign
 4.38375 ++extended and added to form the final result.  If the low 16
 4.38376 ++bits form a negative number, we need to add one to the high value
 4.38377 ++to compensate for the borrow when the low bits are added.  */
 4.38378 ++  BFD_RELOC_HI16_S,
 4.38379 ++
 4.38380 ++/* Low 16 bits.  */
 4.38381 ++  BFD_RELOC_LO16,
 4.38382 ++
 4.38383 ++/* High 16 bits of 32-bit pc-relative value  */
 4.38384 ++  BFD_RELOC_HI16_PCREL,
 4.38385 ++
 4.38386 ++/* High 16 bits of 32-bit pc-relative value, adjusted  */
 4.38387 ++  BFD_RELOC_HI16_S_PCREL,
 4.38388 ++
 4.38389 ++/* Low 16 bits of pc-relative value  */
 4.38390 ++  BFD_RELOC_LO16_PCREL,
 4.38391 ++
 4.38392 ++/* MIPS16 high 16 bits of 32-bit value.  */
 4.38393 ++  BFD_RELOC_MIPS16_HI16,
 4.38394 ++
 4.38395 ++/* MIPS16 high 16 bits of 32-bit value but the low 16 bits will be sign
 4.38396 ++extended and added to form the final result.  If the low 16
 4.38397 ++bits form a negative number, we need to add one to the high value
 4.38398 ++to compensate for the borrow when the low bits are added.  */
 4.38399 ++  BFD_RELOC_MIPS16_HI16_S,
 4.38400 ++
 4.38401 ++/* MIPS16 low 16 bits.  */
 4.38402 ++  BFD_RELOC_MIPS16_LO16,
 4.38403 ++
 4.38404 ++/* Relocation against a MIPS literal section.  */
 4.38405 ++  BFD_RELOC_MIPS_LITERAL,
 4.38406 ++
 4.38407 ++/* MIPS ELF relocations.  */
 4.38408 ++  BFD_RELOC_MIPS_GOT16,
 4.38409 ++  BFD_RELOC_MIPS_CALL16,
 4.38410 ++  BFD_RELOC_MIPS_GOT_HI16,
 4.38411 ++  BFD_RELOC_MIPS_GOT_LO16,
 4.38412 ++  BFD_RELOC_MIPS_CALL_HI16,
 4.38413 ++  BFD_RELOC_MIPS_CALL_LO16,
 4.38414 ++  BFD_RELOC_MIPS_SUB,
 4.38415 ++  BFD_RELOC_MIPS_GOT_PAGE,
 4.38416 ++  BFD_RELOC_MIPS_GOT_OFST,
 4.38417 ++  BFD_RELOC_MIPS_GOT_DISP,
 4.38418 ++  BFD_RELOC_MIPS_SHIFT5,
 4.38419 ++  BFD_RELOC_MIPS_SHIFT6,
 4.38420 ++  BFD_RELOC_MIPS_INSERT_A,
 4.38421 ++  BFD_RELOC_MIPS_INSERT_B,
 4.38422 ++  BFD_RELOC_MIPS_DELETE,
 4.38423 ++  BFD_RELOC_MIPS_HIGHEST,
 4.38424 ++  BFD_RELOC_MIPS_HIGHER,
 4.38425 ++  BFD_RELOC_MIPS_SCN_DISP,
 4.38426 ++  BFD_RELOC_MIPS_REL16,
 4.38427 ++  BFD_RELOC_MIPS_RELGOT,
 4.38428 ++  BFD_RELOC_MIPS_JALR,
 4.38429 ++  BFD_RELOC_MIPS_TLS_DTPMOD32,
 4.38430 ++  BFD_RELOC_MIPS_TLS_DTPREL32,
 4.38431 ++  BFD_RELOC_MIPS_TLS_DTPMOD64,
 4.38432 ++  BFD_RELOC_MIPS_TLS_DTPREL64,
 4.38433 ++  BFD_RELOC_MIPS_TLS_GD,
 4.38434 ++  BFD_RELOC_MIPS_TLS_LDM,
 4.38435 ++  BFD_RELOC_MIPS_TLS_DTPREL_HI16,
 4.38436 ++  BFD_RELOC_MIPS_TLS_DTPREL_LO16,
 4.38437 ++  BFD_RELOC_MIPS_TLS_GOTTPREL,
 4.38438 ++  BFD_RELOC_MIPS_TLS_TPREL32,
 4.38439 ++  BFD_RELOC_MIPS_TLS_TPREL64,
 4.38440 ++  BFD_RELOC_MIPS_TLS_TPREL_HI16,
 4.38441 ++  BFD_RELOC_MIPS_TLS_TPREL_LO16,
 4.38442 ++
 4.38443 ++
 4.38444 ++/* MIPS ELF relocations (VxWorks extensions).  */
 4.38445 ++  BFD_RELOC_MIPS_COPY,
 4.38446 ++  BFD_RELOC_MIPS_JUMP_SLOT,
 4.38447 ++
 4.38448 ++
 4.38449 ++/* Fujitsu Frv Relocations.  */
 4.38450 ++  BFD_RELOC_FRV_LABEL16,
 4.38451 ++  BFD_RELOC_FRV_LABEL24,
 4.38452 ++  BFD_RELOC_FRV_LO16,
 4.38453 ++  BFD_RELOC_FRV_HI16,
 4.38454 ++  BFD_RELOC_FRV_GPREL12,
 4.38455 ++  BFD_RELOC_FRV_GPRELU12,
 4.38456 ++  BFD_RELOC_FRV_GPREL32,
 4.38457 ++  BFD_RELOC_FRV_GPRELHI,
 4.38458 ++  BFD_RELOC_FRV_GPRELLO,
 4.38459 ++  BFD_RELOC_FRV_GOT12,
 4.38460 ++  BFD_RELOC_FRV_GOTHI,
 4.38461 ++  BFD_RELOC_FRV_GOTLO,
 4.38462 ++  BFD_RELOC_FRV_FUNCDESC,
 4.38463 ++  BFD_RELOC_FRV_FUNCDESC_GOT12,
 4.38464 ++  BFD_RELOC_FRV_FUNCDESC_GOTHI,
 4.38465 ++  BFD_RELOC_FRV_FUNCDESC_GOTLO,
 4.38466 ++  BFD_RELOC_FRV_FUNCDESC_VALUE,
 4.38467 ++  BFD_RELOC_FRV_FUNCDESC_GOTOFF12,
 4.38468 ++  BFD_RELOC_FRV_FUNCDESC_GOTOFFHI,
 4.38469 ++  BFD_RELOC_FRV_FUNCDESC_GOTOFFLO,
 4.38470 ++  BFD_RELOC_FRV_GOTOFF12,
 4.38471 ++  BFD_RELOC_FRV_GOTOFFHI,
 4.38472 ++  BFD_RELOC_FRV_GOTOFFLO,
 4.38473 ++  BFD_RELOC_FRV_GETTLSOFF,
 4.38474 ++  BFD_RELOC_FRV_TLSDESC_VALUE,
 4.38475 ++  BFD_RELOC_FRV_GOTTLSDESC12,
 4.38476 ++  BFD_RELOC_FRV_GOTTLSDESCHI,
 4.38477 ++  BFD_RELOC_FRV_GOTTLSDESCLO,
 4.38478 ++  BFD_RELOC_FRV_TLSMOFF12,
 4.38479 ++  BFD_RELOC_FRV_TLSMOFFHI,
 4.38480 ++  BFD_RELOC_FRV_TLSMOFFLO,
 4.38481 ++  BFD_RELOC_FRV_GOTTLSOFF12,
 4.38482 ++  BFD_RELOC_FRV_GOTTLSOFFHI,
 4.38483 ++  BFD_RELOC_FRV_GOTTLSOFFLO,
 4.38484 ++  BFD_RELOC_FRV_TLSOFF,
 4.38485 ++  BFD_RELOC_FRV_TLSDESC_RELAX,
 4.38486 ++  BFD_RELOC_FRV_GETTLSOFF_RELAX,
 4.38487 ++  BFD_RELOC_FRV_TLSOFF_RELAX,
 4.38488 ++  BFD_RELOC_FRV_TLSMOFF,
 4.38489 ++
 4.38490 ++
 4.38491 ++/* This is a 24bit GOT-relative reloc for the mn10300.  */
 4.38492 ++  BFD_RELOC_MN10300_GOTOFF24,
 4.38493 ++
 4.38494 ++/* This is a 32bit GOT-relative reloc for the mn10300, offset by two bytes
 4.38495 ++in the instruction.  */
 4.38496 ++  BFD_RELOC_MN10300_GOT32,
 4.38497 ++
 4.38498 ++/* This is a 24bit GOT-relative reloc for the mn10300, offset by two bytes
 4.38499 ++in the instruction.  */
 4.38500 ++  BFD_RELOC_MN10300_GOT24,
 4.38501 ++
 4.38502 ++/* This is a 16bit GOT-relative reloc for the mn10300, offset by two bytes
 4.38503 ++in the instruction.  */
 4.38504 ++  BFD_RELOC_MN10300_GOT16,
 4.38505 ++
 4.38506 ++/* Copy symbol at runtime.  */
 4.38507 ++  BFD_RELOC_MN10300_COPY,
 4.38508 ++
 4.38509 ++/* Create GOT entry.  */
 4.38510 ++  BFD_RELOC_MN10300_GLOB_DAT,
 4.38511 ++
 4.38512 ++/* Create PLT entry.  */
 4.38513 ++  BFD_RELOC_MN10300_JMP_SLOT,
 4.38514 ++
 4.38515 ++/* Adjust by program base.  */
 4.38516 ++  BFD_RELOC_MN10300_RELATIVE,
 4.38517 ++
 4.38518 ++
 4.38519 ++/* i386/elf relocations  */
 4.38520 ++  BFD_RELOC_386_GOT32,
 4.38521 ++  BFD_RELOC_386_PLT32,
 4.38522 ++  BFD_RELOC_386_COPY,
 4.38523 ++  BFD_RELOC_386_GLOB_DAT,
 4.38524 ++  BFD_RELOC_386_JUMP_SLOT,
 4.38525 ++  BFD_RELOC_386_RELATIVE,
 4.38526 ++  BFD_RELOC_386_GOTOFF,
 4.38527 ++  BFD_RELOC_386_GOTPC,
 4.38528 ++  BFD_RELOC_386_TLS_TPOFF,
 4.38529 ++  BFD_RELOC_386_TLS_IE,
 4.38530 ++  BFD_RELOC_386_TLS_GOTIE,
 4.38531 ++  BFD_RELOC_386_TLS_LE,
 4.38532 ++  BFD_RELOC_386_TLS_GD,
 4.38533 ++  BFD_RELOC_386_TLS_LDM,
 4.38534 ++  BFD_RELOC_386_TLS_LDO_32,
 4.38535 ++  BFD_RELOC_386_TLS_IE_32,
 4.38536 ++  BFD_RELOC_386_TLS_LE_32,
 4.38537 ++  BFD_RELOC_386_TLS_DTPMOD32,
 4.38538 ++  BFD_RELOC_386_TLS_DTPOFF32,
 4.38539 ++  BFD_RELOC_386_TLS_TPOFF32,
 4.38540 ++  BFD_RELOC_386_TLS_GOTDESC,
 4.38541 ++  BFD_RELOC_386_TLS_DESC_CALL,
 4.38542 ++  BFD_RELOC_386_TLS_DESC,
 4.38543 ++
 4.38544 ++/* x86-64/elf relocations  */
 4.38545 ++  BFD_RELOC_X86_64_GOT32,
 4.38546 ++  BFD_RELOC_X86_64_PLT32,
 4.38547 ++  BFD_RELOC_X86_64_COPY,
 4.38548 ++  BFD_RELOC_X86_64_GLOB_DAT,
 4.38549 ++  BFD_RELOC_X86_64_JUMP_SLOT,
 4.38550 ++  BFD_RELOC_X86_64_RELATIVE,
 4.38551 ++  BFD_RELOC_X86_64_GOTPCREL,
 4.38552 ++  BFD_RELOC_X86_64_32S,
 4.38553 ++  BFD_RELOC_X86_64_DTPMOD64,
 4.38554 ++  BFD_RELOC_X86_64_DTPOFF64,
 4.38555 ++  BFD_RELOC_X86_64_TPOFF64,
 4.38556 ++  BFD_RELOC_X86_64_TLSGD,
 4.38557 ++  BFD_RELOC_X86_64_TLSLD,
 4.38558 ++  BFD_RELOC_X86_64_DTPOFF32,
 4.38559 ++  BFD_RELOC_X86_64_GOTTPOFF,
 4.38560 ++  BFD_RELOC_X86_64_TPOFF32,
 4.38561 ++  BFD_RELOC_X86_64_GOTOFF64,
 4.38562 ++  BFD_RELOC_X86_64_GOTPC32,
 4.38563 ++  BFD_RELOC_X86_64_GOT64,
 4.38564 ++  BFD_RELOC_X86_64_GOTPCREL64,
 4.38565 ++  BFD_RELOC_X86_64_GOTPC64,
 4.38566 ++  BFD_RELOC_X86_64_GOTPLT64,
 4.38567 ++  BFD_RELOC_X86_64_PLTOFF64,
 4.38568 ++  BFD_RELOC_X86_64_GOTPC32_TLSDESC,
 4.38569 ++  BFD_RELOC_X86_64_TLSDESC_CALL,
 4.38570 ++  BFD_RELOC_X86_64_TLSDESC,
 4.38571 ++
 4.38572 ++/* ns32k relocations  */
 4.38573 ++  BFD_RELOC_NS32K_IMM_8,
 4.38574 ++  BFD_RELOC_NS32K_IMM_16,
 4.38575 ++  BFD_RELOC_NS32K_IMM_32,
 4.38576 ++  BFD_RELOC_NS32K_IMM_8_PCREL,
 4.38577 ++  BFD_RELOC_NS32K_IMM_16_PCREL,
 4.38578 ++  BFD_RELOC_NS32K_IMM_32_PCREL,
 4.38579 ++  BFD_RELOC_NS32K_DISP_8,
 4.38580 ++  BFD_RELOC_NS32K_DISP_16,
 4.38581 ++  BFD_RELOC_NS32K_DISP_32,
 4.38582 ++  BFD_RELOC_NS32K_DISP_8_PCREL,
 4.38583 ++  BFD_RELOC_NS32K_DISP_16_PCREL,
 4.38584 ++  BFD_RELOC_NS32K_DISP_32_PCREL,
 4.38585 ++
 4.38586 ++/* PDP11 relocations  */
 4.38587 ++  BFD_RELOC_PDP11_DISP_8_PCREL,
 4.38588 ++  BFD_RELOC_PDP11_DISP_6_PCREL,
 4.38589 ++
 4.38590 ++/* Picojava relocs.  Not all of these appear in object files.  */
 4.38591 ++  BFD_RELOC_PJ_CODE_HI16,
 4.38592 ++  BFD_RELOC_PJ_CODE_LO16,
 4.38593 ++  BFD_RELOC_PJ_CODE_DIR16,
 4.38594 ++  BFD_RELOC_PJ_CODE_DIR32,
 4.38595 ++  BFD_RELOC_PJ_CODE_REL16,
 4.38596 ++  BFD_RELOC_PJ_CODE_REL32,
 4.38597 ++
 4.38598 ++/* Power(rs6000) and PowerPC relocations.  */
 4.38599 ++  BFD_RELOC_PPC_B26,
 4.38600 ++  BFD_RELOC_PPC_BA26,
 4.38601 ++  BFD_RELOC_PPC_TOC16,
 4.38602 ++  BFD_RELOC_PPC_B16,
 4.38603 ++  BFD_RELOC_PPC_B16_BRTAKEN,
 4.38604 ++  BFD_RELOC_PPC_B16_BRNTAKEN,
 4.38605 ++  BFD_RELOC_PPC_BA16,
 4.38606 ++  BFD_RELOC_PPC_BA16_BRTAKEN,
 4.38607 ++  BFD_RELOC_PPC_BA16_BRNTAKEN,
 4.38608 ++  BFD_RELOC_PPC_COPY,
 4.38609 ++  BFD_RELOC_PPC_GLOB_DAT,
 4.38610 ++  BFD_RELOC_PPC_JMP_SLOT,
 4.38611 ++  BFD_RELOC_PPC_RELATIVE,
 4.38612 ++  BFD_RELOC_PPC_LOCAL24PC,
 4.38613 ++  BFD_RELOC_PPC_EMB_NADDR32,
 4.38614 ++  BFD_RELOC_PPC_EMB_NADDR16,
 4.38615 ++  BFD_RELOC_PPC_EMB_NADDR16_LO,
 4.38616 ++  BFD_RELOC_PPC_EMB_NADDR16_HI,
 4.38617 ++  BFD_RELOC_PPC_EMB_NADDR16_HA,
 4.38618 ++  BFD_RELOC_PPC_EMB_SDAI16,
 4.38619 ++  BFD_RELOC_PPC_EMB_SDA2I16,
 4.38620 ++  BFD_RELOC_PPC_EMB_SDA2REL,
 4.38621 ++  BFD_RELOC_PPC_EMB_SDA21,
 4.38622 ++  BFD_RELOC_PPC_EMB_MRKREF,
 4.38623 ++  BFD_RELOC_PPC_EMB_RELSEC16,
 4.38624 ++  BFD_RELOC_PPC_EMB_RELST_LO,
 4.38625 ++  BFD_RELOC_PPC_EMB_RELST_HI,
 4.38626 ++  BFD_RELOC_PPC_EMB_RELST_HA,
 4.38627 ++  BFD_RELOC_PPC_EMB_BIT_FLD,
 4.38628 ++  BFD_RELOC_PPC_EMB_RELSDA,
 4.38629 ++  BFD_RELOC_PPC64_HIGHER,
 4.38630 ++  BFD_RELOC_PPC64_HIGHER_S,
 4.38631 ++  BFD_RELOC_PPC64_HIGHEST,
 4.38632 ++  BFD_RELOC_PPC64_HIGHEST_S,
 4.38633 ++  BFD_RELOC_PPC64_TOC16_LO,
 4.38634 ++  BFD_RELOC_PPC64_TOC16_HI,
 4.38635 ++  BFD_RELOC_PPC64_TOC16_HA,
 4.38636 ++  BFD_RELOC_PPC64_TOC,
 4.38637 ++  BFD_RELOC_PPC64_PLTGOT16,
 4.38638 ++  BFD_RELOC_PPC64_PLTGOT16_LO,
 4.38639 ++  BFD_RELOC_PPC64_PLTGOT16_HI,
 4.38640 ++  BFD_RELOC_PPC64_PLTGOT16_HA,
 4.38641 ++  BFD_RELOC_PPC64_ADDR16_DS,
 4.38642 ++  BFD_RELOC_PPC64_ADDR16_LO_DS,
 4.38643 ++  BFD_RELOC_PPC64_GOT16_DS,
 4.38644 ++  BFD_RELOC_PPC64_GOT16_LO_DS,
 4.38645 ++  BFD_RELOC_PPC64_PLT16_LO_DS,
 4.38646 ++  BFD_RELOC_PPC64_SECTOFF_DS,
 4.38647 ++  BFD_RELOC_PPC64_SECTOFF_LO_DS,
 4.38648 ++  BFD_RELOC_PPC64_TOC16_DS,
 4.38649 ++  BFD_RELOC_PPC64_TOC16_LO_DS,
 4.38650 ++  BFD_RELOC_PPC64_PLTGOT16_DS,
 4.38651 ++  BFD_RELOC_PPC64_PLTGOT16_LO_DS,
 4.38652 ++
 4.38653 ++/* PowerPC and PowerPC64 thread-local storage relocations.  */
 4.38654 ++  BFD_RELOC_PPC_TLS,
 4.38655 ++  BFD_RELOC_PPC_DTPMOD,
 4.38656 ++  BFD_RELOC_PPC_TPREL16,
 4.38657 ++  BFD_RELOC_PPC_TPREL16_LO,
 4.38658 ++  BFD_RELOC_PPC_TPREL16_HI,
 4.38659 ++  BFD_RELOC_PPC_TPREL16_HA,
 4.38660 ++  BFD_RELOC_PPC_TPREL,
 4.38661 ++  BFD_RELOC_PPC_DTPREL16,
 4.38662 ++  BFD_RELOC_PPC_DTPREL16_LO,
 4.38663 ++  BFD_RELOC_PPC_DTPREL16_HI,
 4.38664 ++  BFD_RELOC_PPC_DTPREL16_HA,
 4.38665 ++  BFD_RELOC_PPC_DTPREL,
 4.38666 ++  BFD_RELOC_PPC_GOT_TLSGD16,
 4.38667 ++  BFD_RELOC_PPC_GOT_TLSGD16_LO,
 4.38668 ++  BFD_RELOC_PPC_GOT_TLSGD16_HI,
 4.38669 ++  BFD_RELOC_PPC_GOT_TLSGD16_HA,
 4.38670 ++  BFD_RELOC_PPC_GOT_TLSLD16,
 4.38671 ++  BFD_RELOC_PPC_GOT_TLSLD16_LO,
 4.38672 ++  BFD_RELOC_PPC_GOT_TLSLD16_HI,
 4.38673 ++  BFD_RELOC_PPC_GOT_TLSLD16_HA,
 4.38674 ++  BFD_RELOC_PPC_GOT_TPREL16,
 4.38675 ++  BFD_RELOC_PPC_GOT_TPREL16_LO,
 4.38676 ++  BFD_RELOC_PPC_GOT_TPREL16_HI,
 4.38677 ++  BFD_RELOC_PPC_GOT_TPREL16_HA,
 4.38678 ++  BFD_RELOC_PPC_GOT_DTPREL16,
 4.38679 ++  BFD_RELOC_PPC_GOT_DTPREL16_LO,
 4.38680 ++  BFD_RELOC_PPC_GOT_DTPREL16_HI,
 4.38681 ++  BFD_RELOC_PPC_GOT_DTPREL16_HA,
 4.38682 ++  BFD_RELOC_PPC64_TPREL16_DS,
 4.38683 ++  BFD_RELOC_PPC64_TPREL16_LO_DS,
 4.38684 ++  BFD_RELOC_PPC64_TPREL16_HIGHER,
 4.38685 ++  BFD_RELOC_PPC64_TPREL16_HIGHERA,
 4.38686 ++  BFD_RELOC_PPC64_TPREL16_HIGHEST,
 4.38687 ++  BFD_RELOC_PPC64_TPREL16_HIGHESTA,
 4.38688 ++  BFD_RELOC_PPC64_DTPREL16_DS,
 4.38689 ++  BFD_RELOC_PPC64_DTPREL16_LO_DS,
 4.38690 ++  BFD_RELOC_PPC64_DTPREL16_HIGHER,
 4.38691 ++  BFD_RELOC_PPC64_DTPREL16_HIGHERA,
 4.38692 ++  BFD_RELOC_PPC64_DTPREL16_HIGHEST,
 4.38693 ++  BFD_RELOC_PPC64_DTPREL16_HIGHESTA,
 4.38694 ++
 4.38695 ++/* IBM 370/390 relocations  */
 4.38696 ++  BFD_RELOC_I370_D12,
 4.38697 ++
 4.38698 ++/* The type of reloc used to build a constructor table - at the moment
 4.38699 ++probably a 32 bit wide absolute relocation, but the target can choose.
 4.38700 ++It generally does map to one of the other relocation types.  */
 4.38701 ++  BFD_RELOC_CTOR,
 4.38702 ++
 4.38703 ++/* ARM 26 bit pc-relative branch.  The lowest two bits must be zero and are
 4.38704 ++not stored in the instruction.  */
 4.38705 ++  BFD_RELOC_ARM_PCREL_BRANCH,
 4.38706 ++
 4.38707 ++/* ARM 26 bit pc-relative branch.  The lowest bit must be zero and is
 4.38708 ++not stored in the instruction.  The 2nd lowest bit comes from a 1 bit
 4.38709 ++field in the instruction.  */
 4.38710 ++  BFD_RELOC_ARM_PCREL_BLX,
 4.38711 ++
 4.38712 ++/* Thumb 22 bit pc-relative branch.  The lowest bit must be zero and is
 4.38713 ++not stored in the instruction.  The 2nd lowest bit comes from a 1 bit
 4.38714 ++field in the instruction.  */
 4.38715 ++  BFD_RELOC_THUMB_PCREL_BLX,
 4.38716 ++
 4.38717 ++/* ARM 26-bit pc-relative branch for an unconditional BL or BLX instruction.  */
 4.38718 ++  BFD_RELOC_ARM_PCREL_CALL,
 4.38719 ++
 4.38720 ++/* ARM 26-bit pc-relative branch for B or conditional BL instruction.  */
 4.38721 ++  BFD_RELOC_ARM_PCREL_JUMP,
 4.38722 ++
 4.38723 ++/* Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.
 4.38724 ++The lowest bit must be zero and is not stored in the instruction.
 4.38725 ++Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
 4.38726 ++"nn" one smaller in all cases.  Note further that BRANCH23
 4.38727 ++corresponds to R_ARM_THM_CALL.  */
 4.38728 ++  BFD_RELOC_THUMB_PCREL_BRANCH7,
 4.38729 ++  BFD_RELOC_THUMB_PCREL_BRANCH9,
 4.38730 ++  BFD_RELOC_THUMB_PCREL_BRANCH12,
 4.38731 ++  BFD_RELOC_THUMB_PCREL_BRANCH20,
 4.38732 ++  BFD_RELOC_THUMB_PCREL_BRANCH23,
 4.38733 ++  BFD_RELOC_THUMB_PCREL_BRANCH25,
 4.38734 ++
 4.38735 ++/* 12-bit immediate offset, used in ARM-format ldr and str instructions.  */
 4.38736 ++  BFD_RELOC_ARM_OFFSET_IMM,
 4.38737 ++
 4.38738 ++/* 5-bit immediate offset, used in Thumb-format ldr and str instructions.  */
 4.38739 ++  BFD_RELOC_ARM_THUMB_OFFSET,
 4.38740 ++
 4.38741 ++/* Pc-relative or absolute relocation depending on target.  Used for
 4.38742 ++entries in .init_array sections.  */
 4.38743 ++  BFD_RELOC_ARM_TARGET1,
 4.38744 ++
 4.38745 ++/* Read-only segment base relative address.  */
 4.38746 ++  BFD_RELOC_ARM_ROSEGREL32,
 4.38747 ++
 4.38748 ++/* Data segment base relative address.  */
 4.38749 ++  BFD_RELOC_ARM_SBREL32,
 4.38750 ++
 4.38751 ++/* This reloc is used for references to RTTI data from exception handling
 4.38752 ++tables.  The actual definition depends on the target.  It may be a
 4.38753 ++pc-relative or some form of GOT-indirect relocation.  */
 4.38754 ++  BFD_RELOC_ARM_TARGET2,
 4.38755 ++
 4.38756 ++/* 31-bit PC relative address.  */
 4.38757 ++  BFD_RELOC_ARM_PREL31,
 4.38758 ++
 4.38759 ++/* Low and High halfword relocations for MOVW and MOVT instructions.  */
 4.38760 ++  BFD_RELOC_ARM_MOVW,
 4.38761 ++  BFD_RELOC_ARM_MOVT,
 4.38762 ++  BFD_RELOC_ARM_MOVW_PCREL,
 4.38763 ++  BFD_RELOC_ARM_MOVT_PCREL,
 4.38764 ++  BFD_RELOC_ARM_THUMB_MOVW,
 4.38765 ++  BFD_RELOC_ARM_THUMB_MOVT,
 4.38766 ++  BFD_RELOC_ARM_THUMB_MOVW_PCREL,
 4.38767 ++  BFD_RELOC_ARM_THUMB_MOVT_PCREL,
 4.38768 ++
 4.38769 ++/* Relocations for setting up GOTs and PLTs for shared libraries.  */
 4.38770 ++  BFD_RELOC_ARM_JUMP_SLOT,
 4.38771 ++  BFD_RELOC_ARM_GLOB_DAT,
 4.38772 ++  BFD_RELOC_ARM_GOT32,
 4.38773 ++  BFD_RELOC_ARM_PLT32,
 4.38774 ++  BFD_RELOC_ARM_RELATIVE,
 4.38775 ++  BFD_RELOC_ARM_GOTOFF,
 4.38776 ++  BFD_RELOC_ARM_GOTPC,
 4.38777 ++
 4.38778 ++/* ARM thread-local storage relocations.  */
 4.38779 ++  BFD_RELOC_ARM_TLS_GD32,
 4.38780 ++  BFD_RELOC_ARM_TLS_LDO32,
 4.38781 ++  BFD_RELOC_ARM_TLS_LDM32,
 4.38782 ++  BFD_RELOC_ARM_TLS_DTPOFF32,
 4.38783 ++  BFD_RELOC_ARM_TLS_DTPMOD32,
 4.38784 ++  BFD_RELOC_ARM_TLS_TPOFF32,
 4.38785 ++  BFD_RELOC_ARM_TLS_IE32,
 4.38786 ++  BFD_RELOC_ARM_TLS_LE32,
 4.38787 ++
 4.38788 ++/* ARM group relocations.  */
 4.38789 ++  BFD_RELOC_ARM_ALU_PC_G0_NC,
 4.38790 ++  BFD_RELOC_ARM_ALU_PC_G0,
 4.38791 ++  BFD_RELOC_ARM_ALU_PC_G1_NC,
 4.38792 ++  BFD_RELOC_ARM_ALU_PC_G1,
 4.38793 ++  BFD_RELOC_ARM_ALU_PC_G2,
 4.38794 ++  BFD_RELOC_ARM_LDR_PC_G0,
 4.38795 ++  BFD_RELOC_ARM_LDR_PC_G1,
 4.38796 ++  BFD_RELOC_ARM_LDR_PC_G2,
 4.38797 ++  BFD_RELOC_ARM_LDRS_PC_G0,
 4.38798 ++  BFD_RELOC_ARM_LDRS_PC_G1,
 4.38799 ++  BFD_RELOC_ARM_LDRS_PC_G2,
 4.38800 ++  BFD_RELOC_ARM_LDC_PC_G0,
 4.38801 ++  BFD_RELOC_ARM_LDC_PC_G1,
 4.38802 ++  BFD_RELOC_ARM_LDC_PC_G2,
 4.38803 ++  BFD_RELOC_ARM_ALU_SB_G0_NC,
 4.38804 ++  BFD_RELOC_ARM_ALU_SB_G0,
 4.38805 ++  BFD_RELOC_ARM_ALU_SB_G1_NC,
 4.38806 ++  BFD_RELOC_ARM_ALU_SB_G1,
 4.38807 ++  BFD_RELOC_ARM_ALU_SB_G2,
 4.38808 ++  BFD_RELOC_ARM_LDR_SB_G0,
 4.38809 ++  BFD_RELOC_ARM_LDR_SB_G1,
 4.38810 ++  BFD_RELOC_ARM_LDR_SB_G2,
 4.38811 ++  BFD_RELOC_ARM_LDRS_SB_G0,
 4.38812 ++  BFD_RELOC_ARM_LDRS_SB_G1,
 4.38813 ++  BFD_RELOC_ARM_LDRS_SB_G2,
 4.38814 ++  BFD_RELOC_ARM_LDC_SB_G0,
 4.38815 ++  BFD_RELOC_ARM_LDC_SB_G1,
 4.38816 ++  BFD_RELOC_ARM_LDC_SB_G2,
 4.38817 ++
 4.38818 ++/* These relocs are only used within the ARM assembler.  They are not
 4.38819 ++(at present) written to any object files.  */
 4.38820 ++  BFD_RELOC_ARM_IMMEDIATE,
 4.38821 ++  BFD_RELOC_ARM_ADRL_IMMEDIATE,
 4.38822 ++  BFD_RELOC_ARM_T32_IMMEDIATE,
 4.38823 ++  BFD_RELOC_ARM_T32_ADD_IMM,
 4.38824 ++  BFD_RELOC_ARM_T32_IMM12,
 4.38825 ++  BFD_RELOC_ARM_T32_ADD_PC12,
 4.38826 ++  BFD_RELOC_ARM_SHIFT_IMM,
 4.38827 ++  BFD_RELOC_ARM_SMC,
 4.38828 ++  BFD_RELOC_ARM_SWI,
 4.38829 ++  BFD_RELOC_ARM_MULTI,
 4.38830 ++  BFD_RELOC_ARM_CP_OFF_IMM,
 4.38831 ++  BFD_RELOC_ARM_CP_OFF_IMM_S2,
 4.38832 ++  BFD_RELOC_ARM_T32_CP_OFF_IMM,
 4.38833 ++  BFD_RELOC_ARM_T32_CP_OFF_IMM_S2,
 4.38834 ++  BFD_RELOC_ARM_ADR_IMM,
 4.38835 ++  BFD_RELOC_ARM_LDR_IMM,
 4.38836 ++  BFD_RELOC_ARM_LITERAL,
 4.38837 ++  BFD_RELOC_ARM_IN_POOL,
 4.38838 ++  BFD_RELOC_ARM_OFFSET_IMM8,
 4.38839 ++  BFD_RELOC_ARM_T32_OFFSET_U8,
 4.38840 ++  BFD_RELOC_ARM_T32_OFFSET_IMM,
 4.38841 ++  BFD_RELOC_ARM_HWLITERAL,
 4.38842 ++  BFD_RELOC_ARM_THUMB_ADD,
 4.38843 ++  BFD_RELOC_ARM_THUMB_IMM,
 4.38844 ++  BFD_RELOC_ARM_THUMB_SHIFT,
 4.38845 ++
 4.38846 ++/* Renesas / SuperH SH relocs.  Not all of these appear in object files.  */
 4.38847 ++  BFD_RELOC_SH_PCDISP8BY2,
 4.38848 ++  BFD_RELOC_SH_PCDISP12BY2,
 4.38849 ++  BFD_RELOC_SH_IMM3,
 4.38850 ++  BFD_RELOC_SH_IMM3U,
 4.38851 ++  BFD_RELOC_SH_DISP12,
 4.38852 ++  BFD_RELOC_SH_DISP12BY2,
 4.38853 ++  BFD_RELOC_SH_DISP12BY4,
 4.38854 ++  BFD_RELOC_SH_DISP12BY8,
 4.38855 ++  BFD_RELOC_SH_DISP20,
 4.38856 ++  BFD_RELOC_SH_DISP20BY8,
 4.38857 ++  BFD_RELOC_SH_IMM4,
 4.38858 ++  BFD_RELOC_SH_IMM4BY2,
 4.38859 ++  BFD_RELOC_SH_IMM4BY4,
 4.38860 ++  BFD_RELOC_SH_IMM8,
 4.38861 ++  BFD_RELOC_SH_IMM8BY2,
 4.38862 ++  BFD_RELOC_SH_IMM8BY4,
 4.38863 ++  BFD_RELOC_SH_PCRELIMM8BY2,
 4.38864 ++  BFD_RELOC_SH_PCRELIMM8BY4,
 4.38865 ++  BFD_RELOC_SH_SWITCH16,
 4.38866 ++  BFD_RELOC_SH_SWITCH32,
 4.38867 ++  BFD_RELOC_SH_USES,
 4.38868 ++  BFD_RELOC_SH_COUNT,
 4.38869 ++  BFD_RELOC_SH_ALIGN,
 4.38870 ++  BFD_RELOC_SH_CODE,
 4.38871 ++  BFD_RELOC_SH_DATA,
 4.38872 ++  BFD_RELOC_SH_LABEL,
 4.38873 ++  BFD_RELOC_SH_LOOP_START,
 4.38874 ++  BFD_RELOC_SH_LOOP_END,
 4.38875 ++  BFD_RELOC_SH_COPY,
 4.38876 ++  BFD_RELOC_SH_GLOB_DAT,
 4.38877 ++  BFD_RELOC_SH_JMP_SLOT,
 4.38878 ++  BFD_RELOC_SH_RELATIVE,
 4.38879 ++  BFD_RELOC_SH_GOTPC,
 4.38880 ++  BFD_RELOC_SH_GOT_LOW16,
 4.38881 ++  BFD_RELOC_SH_GOT_MEDLOW16,
 4.38882 ++  BFD_RELOC_SH_GOT_MEDHI16,
 4.38883 ++  BFD_RELOC_SH_GOT_HI16,
 4.38884 ++  BFD_RELOC_SH_GOTPLT_LOW16,
 4.38885 ++  BFD_RELOC_SH_GOTPLT_MEDLOW16,
 4.38886 ++  BFD_RELOC_SH_GOTPLT_MEDHI16,
 4.38887 ++  BFD_RELOC_SH_GOTPLT_HI16,
 4.38888 ++  BFD_RELOC_SH_PLT_LOW16,
 4.38889 ++  BFD_RELOC_SH_PLT_MEDLOW16,
 4.38890 ++  BFD_RELOC_SH_PLT_MEDHI16,
 4.38891 ++  BFD_RELOC_SH_PLT_HI16,
 4.38892 ++  BFD_RELOC_SH_GOTOFF_LOW16,
 4.38893 ++  BFD_RELOC_SH_GOTOFF_MEDLOW16,
 4.38894 ++  BFD_RELOC_SH_GOTOFF_MEDHI16,
 4.38895 ++  BFD_RELOC_SH_GOTOFF_HI16,
 4.38896 ++  BFD_RELOC_SH_GOTPC_LOW16,
 4.38897 ++  BFD_RELOC_SH_GOTPC_MEDLOW16,
 4.38898 ++  BFD_RELOC_SH_GOTPC_MEDHI16,
 4.38899 ++  BFD_RELOC_SH_GOTPC_HI16,
 4.38900 ++  BFD_RELOC_SH_COPY64,
 4.38901 ++  BFD_RELOC_SH_GLOB_DAT64,
 4.38902 ++  BFD_RELOC_SH_JMP_SLOT64,
 4.38903 ++  BFD_RELOC_SH_RELATIVE64,
 4.38904 ++  BFD_RELOC_SH_GOT10BY4,
 4.38905 ++  BFD_RELOC_SH_GOT10BY8,
 4.38906 ++  BFD_RELOC_SH_GOTPLT10BY4,
 4.38907 ++  BFD_RELOC_SH_GOTPLT10BY8,
 4.38908 ++  BFD_RELOC_SH_GOTPLT32,
 4.38909 ++  BFD_RELOC_SH_SHMEDIA_CODE,
 4.38910 ++  BFD_RELOC_SH_IMMU5,
 4.38911 ++  BFD_RELOC_SH_IMMS6,
 4.38912 ++  BFD_RELOC_SH_IMMS6BY32,
 4.38913 ++  BFD_RELOC_SH_IMMU6,
 4.38914 ++  BFD_RELOC_SH_IMMS10,
 4.38915 ++  BFD_RELOC_SH_IMMS10BY2,
 4.38916 ++  BFD_RELOC_SH_IMMS10BY4,
 4.38917 ++  BFD_RELOC_SH_IMMS10BY8,
 4.38918 ++  BFD_RELOC_SH_IMMS16,
 4.38919 ++  BFD_RELOC_SH_IMMU16,
 4.38920 ++  BFD_RELOC_SH_IMM_LOW16,
 4.38921 ++  BFD_RELOC_SH_IMM_LOW16_PCREL,
 4.38922 ++  BFD_RELOC_SH_IMM_MEDLOW16,
 4.38923 ++  BFD_RELOC_SH_IMM_MEDLOW16_PCREL,
 4.38924 ++  BFD_RELOC_SH_IMM_MEDHI16,
 4.38925 ++  BFD_RELOC_SH_IMM_MEDHI16_PCREL,
 4.38926 ++  BFD_RELOC_SH_IMM_HI16,
 4.38927 ++  BFD_RELOC_SH_IMM_HI16_PCREL,
 4.38928 ++  BFD_RELOC_SH_PT_16,
 4.38929 ++  BFD_RELOC_SH_TLS_GD_32,
 4.38930 ++  BFD_RELOC_SH_TLS_LD_32,
 4.38931 ++  BFD_RELOC_SH_TLS_LDO_32,
 4.38932 ++  BFD_RELOC_SH_TLS_IE_32,
 4.38933 ++  BFD_RELOC_SH_TLS_LE_32,
 4.38934 ++  BFD_RELOC_SH_TLS_DTPMOD32,
 4.38935 ++  BFD_RELOC_SH_TLS_DTPOFF32,
 4.38936 ++  BFD_RELOC_SH_TLS_TPOFF32,
 4.38937 ++
 4.38938 ++/* ARC Cores relocs.
 4.38939 ++ARC 22 bit pc-relative branch.  The lowest two bits must be zero and are
 4.38940 ++not stored in the instruction.  The high 20 bits are installed in bits 26
 4.38941 ++through 7 of the instruction.  */
 4.38942 ++  BFD_RELOC_ARC_B22_PCREL,
 4.38943 ++
 4.38944 ++/* ARC 26 bit absolute branch.  The lowest two bits must be zero and are not
 4.38945 ++stored in the instruction.  The high 24 bits are installed in bits 23
 4.38946 ++through 0.  */
 4.38947 ++  BFD_RELOC_ARC_B26,
 4.38948 ++
 4.38949 ++/* ADI Blackfin 16 bit immediate absolute reloc.  */
 4.38950 ++  BFD_RELOC_BFIN_16_IMM,
 4.38951 ++
 4.38952 ++/* ADI Blackfin 16 bit immediate absolute reloc higher 16 bits.  */
 4.38953 ++  BFD_RELOC_BFIN_16_HIGH,
 4.38954 ++
 4.38955 ++/* ADI Blackfin 'a' part of LSETUP.  */
 4.38956 ++  BFD_RELOC_BFIN_4_PCREL,
 4.38957 ++
 4.38958 ++/* ADI Blackfin.  */
 4.38959 ++  BFD_RELOC_BFIN_5_PCREL,
 4.38960 ++
 4.38961 ++/* ADI Blackfin 16 bit immediate absolute reloc lower 16 bits.  */
 4.38962 ++  BFD_RELOC_BFIN_16_LOW,
 4.38963 ++
 4.38964 ++/* ADI Blackfin.  */
 4.38965 ++  BFD_RELOC_BFIN_10_PCREL,
 4.38966 ++
 4.38967 ++/* ADI Blackfin 'b' part of LSETUP.  */
 4.38968 ++  BFD_RELOC_BFIN_11_PCREL,
 4.38969 ++
 4.38970 ++/* ADI Blackfin.  */
 4.38971 ++  BFD_RELOC_BFIN_12_PCREL_JUMP,
 4.38972 ++
 4.38973 ++/* ADI Blackfin Short jump, pcrel.  */
 4.38974 ++  BFD_RELOC_BFIN_12_PCREL_JUMP_S,
 4.38975 ++
 4.38976 ++/* ADI Blackfin Call.x not implemented.  */
 4.38977 ++  BFD_RELOC_BFIN_24_PCREL_CALL_X,
 4.38978 ++
 4.38979 ++/* ADI Blackfin Long Jump pcrel.  */
 4.38980 ++  BFD_RELOC_BFIN_24_PCREL_JUMP_L,
 4.38981 ++
 4.38982 ++/* ADI Blackfin FD-PIC relocations.  */
 4.38983 ++  BFD_RELOC_BFIN_GOT17M4,
 4.38984 ++  BFD_RELOC_BFIN_GOTHI,
 4.38985 ++  BFD_RELOC_BFIN_GOTLO,
 4.38986 ++  BFD_RELOC_BFIN_FUNCDESC,
 4.38987 ++  BFD_RELOC_BFIN_FUNCDESC_GOT17M4,
 4.38988 ++  BFD_RELOC_BFIN_FUNCDESC_GOTHI,
 4.38989 ++  BFD_RELOC_BFIN_FUNCDESC_GOTLO,
 4.38990 ++  BFD_RELOC_BFIN_FUNCDESC_VALUE,
 4.38991 ++  BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4,
 4.38992 ++  BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI,
 4.38993 ++  BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO,
 4.38994 ++  BFD_RELOC_BFIN_GOTOFF17M4,
 4.38995 ++  BFD_RELOC_BFIN_GOTOFFHI,
 4.38996 ++  BFD_RELOC_BFIN_GOTOFFLO,
 4.38997 ++
 4.38998 ++/* ADI Blackfin GOT relocation.  */
 4.38999 ++  BFD_RELOC_BFIN_GOT,
 4.39000 ++
 4.39001 ++/* ADI Blackfin PLTPC relocation.  */
 4.39002 ++  BFD_RELOC_BFIN_PLTPC,
 4.39003 ++
 4.39004 ++/* ADI Blackfin arithmetic relocation.  */
 4.39005 ++  BFD_ARELOC_BFIN_PUSH,
 4.39006 ++
 4.39007 ++/* ADI Blackfin arithmetic relocation.  */
 4.39008 ++  BFD_ARELOC_BFIN_CONST,
 4.39009 ++
 4.39010 ++/* ADI Blackfin arithmetic relocation.  */
 4.39011 ++  BFD_ARELOC_BFIN_ADD,
 4.39012 ++
 4.39013 ++/* ADI Blackfin arithmetic relocation.  */
 4.39014 ++  BFD_ARELOC_BFIN_SUB,
 4.39015 ++
 4.39016 ++/* ADI Blackfin arithmetic relocation.  */
 4.39017 ++  BFD_ARELOC_BFIN_MULT,
 4.39018 ++
 4.39019 ++/* ADI Blackfin arithmetic relocation.  */
 4.39020 ++  BFD_ARELOC_BFIN_DIV,
 4.39021 ++
 4.39022 ++/* ADI Blackfin arithmetic relocation.  */
 4.39023 ++  BFD_ARELOC_BFIN_MOD,
 4.39024 ++
 4.39025 ++/* ADI Blackfin arithmetic relocation.  */
 4.39026 ++  BFD_ARELOC_BFIN_LSHIFT,
 4.39027 ++
 4.39028 ++/* ADI Blackfin arithmetic relocation.  */
 4.39029 ++  BFD_ARELOC_BFIN_RSHIFT,
 4.39030 ++
 4.39031 ++/* ADI Blackfin arithmetic relocation.  */
 4.39032 ++  BFD_ARELOC_BFIN_AND,
 4.39033 ++
 4.39034 ++/* ADI Blackfin arithmetic relocation.  */
 4.39035 ++  BFD_ARELOC_BFIN_OR,
 4.39036 ++
 4.39037 ++/* ADI Blackfin arithmetic relocation.  */
 4.39038 ++  BFD_ARELOC_BFIN_XOR,
 4.39039 ++
 4.39040 ++/* ADI Blackfin arithmetic relocation.  */
 4.39041 ++  BFD_ARELOC_BFIN_LAND,
 4.39042 ++
 4.39043 ++/* ADI Blackfin arithmetic relocation.  */
 4.39044 ++  BFD_ARELOC_BFIN_LOR,
 4.39045 ++
 4.39046 ++/* ADI Blackfin arithmetic relocation.  */
 4.39047 ++  BFD_ARELOC_BFIN_LEN,
 4.39048 ++
 4.39049 ++/* ADI Blackfin arithmetic relocation.  */
 4.39050 ++  BFD_ARELOC_BFIN_NEG,
 4.39051 ++
 4.39052 ++/* ADI Blackfin arithmetic relocation.  */
 4.39053 ++  BFD_ARELOC_BFIN_COMP,
 4.39054 ++
 4.39055 ++/* ADI Blackfin arithmetic relocation.  */
 4.39056 ++  BFD_ARELOC_BFIN_PAGE,
 4.39057 ++
 4.39058 ++/* ADI Blackfin arithmetic relocation.  */
 4.39059 ++  BFD_ARELOC_BFIN_HWPAGE,
 4.39060 ++
 4.39061 ++/* ADI Blackfin arithmetic relocation.  */
 4.39062 ++  BFD_ARELOC_BFIN_ADDR,
 4.39063 ++
 4.39064 ++/* Mitsubishi D10V relocs.
 4.39065 ++This is a 10-bit reloc with the right 2 bits
 4.39066 ++assumed to be 0.  */
 4.39067 ++  BFD_RELOC_D10V_10_PCREL_R,
 4.39068 ++
 4.39069 ++/* Mitsubishi D10V relocs.
 4.39070 ++This is a 10-bit reloc with the right 2 bits
 4.39071 ++assumed to be 0.  This is the same as the previous reloc
 4.39072 ++except it is in the left container, i.e.,
 4.39073 ++shifted left 15 bits.  */
 4.39074 ++  BFD_RELOC_D10V_10_PCREL_L,
 4.39075 ++
 4.39076 ++/* This is an 18-bit reloc with the right 2 bits
 4.39077 ++assumed to be 0.  */
 4.39078 ++  BFD_RELOC_D10V_18,
 4.39079 ++
 4.39080 ++/* This is an 18-bit reloc with the right 2 bits
 4.39081 ++assumed to be 0.  */
 4.39082 ++  BFD_RELOC_D10V_18_PCREL,
 4.39083 ++
 4.39084 ++/* Mitsubishi D30V relocs.
 4.39085 ++This is a 6-bit absolute reloc.  */
 4.39086 ++  BFD_RELOC_D30V_6,
 4.39087 ++
 4.39088 ++/* This is a 6-bit pc-relative reloc with
 4.39089 ++the right 3 bits assumed to be 0.  */
 4.39090 ++  BFD_RELOC_D30V_9_PCREL,
 4.39091 ++
 4.39092 ++/* This is a 6-bit pc-relative reloc with
 4.39093 ++the right 3 bits assumed to be 0. Same
 4.39094 ++as the previous reloc but on the right side
 4.39095 ++of the container.  */
 4.39096 ++  BFD_RELOC_D30V_9_PCREL_R,
 4.39097 ++
 4.39098 ++/* This is a 12-bit absolute reloc with the
 4.39099 ++right 3 bitsassumed to be 0.  */
 4.39100 ++  BFD_RELOC_D30V_15,
 4.39101 ++
 4.39102 ++/* This is a 12-bit pc-relative reloc with
 4.39103 ++the right 3 bits assumed to be 0.  */
 4.39104 ++  BFD_RELOC_D30V_15_PCREL,
 4.39105 ++
 4.39106 ++/* This is a 12-bit pc-relative reloc with
 4.39107 ++the right 3 bits assumed to be 0. Same
 4.39108 ++as the previous reloc but on the right side
 4.39109 ++of the container.  */
 4.39110 ++  BFD_RELOC_D30V_15_PCREL_R,
 4.39111 ++
 4.39112 ++/* This is an 18-bit absolute reloc with
 4.39113 ++the right 3 bits assumed to be 0.  */
 4.39114 ++  BFD_RELOC_D30V_21,
 4.39115 ++
 4.39116 ++/* This is an 18-bit pc-relative reloc with
 4.39117 ++the right 3 bits assumed to be 0.  */
 4.39118 ++  BFD_RELOC_D30V_21_PCREL,
 4.39119 ++
 4.39120 ++/* This is an 18-bit pc-relative reloc with
 4.39121 ++the right 3 bits assumed to be 0. Same
 4.39122 ++as the previous reloc but on the right side
 4.39123 ++of the container.  */
 4.39124 ++  BFD_RELOC_D30V_21_PCREL_R,
 4.39125 ++
 4.39126 ++/* This is a 32-bit absolute reloc.  */
 4.39127 ++  BFD_RELOC_D30V_32,
 4.39128 ++
 4.39129 ++/* This is a 32-bit pc-relative reloc.  */
 4.39130 ++  BFD_RELOC_D30V_32_PCREL,
 4.39131 ++
 4.39132 ++/* DLX relocs  */
 4.39133 ++  BFD_RELOC_DLX_HI16_S,
 4.39134 ++
 4.39135 ++/* DLX relocs  */
 4.39136 ++  BFD_RELOC_DLX_LO16,
 4.39137 ++
 4.39138 ++/* DLX relocs  */
 4.39139 ++  BFD_RELOC_DLX_JMP26,
 4.39140 ++
 4.39141 ++/* Renesas M16C/M32C Relocations.  */
 4.39142 ++  BFD_RELOC_M32C_HI8,
 4.39143 ++  BFD_RELOC_M32C_RL_JUMP,
 4.39144 ++  BFD_RELOC_M32C_RL_1ADDR,
 4.39145 ++  BFD_RELOC_M32C_RL_2ADDR,
 4.39146 ++
 4.39147 ++/* Renesas M32R (formerly Mitsubishi M32R) relocs.
 4.39148 ++This is a 24 bit absolute address.  */
 4.39149 ++  BFD_RELOC_M32R_24,
 4.39150 ++
 4.39151 ++/* This is a 10-bit pc-relative reloc with the right 2 bits assumed to be 0.  */
 4.39152 ++  BFD_RELOC_M32R_10_PCREL,
 4.39153 ++
 4.39154 ++/* This is an 18-bit reloc with the right 2 bits assumed to be 0.  */
 4.39155 ++  BFD_RELOC_M32R_18_PCREL,
 4.39156 ++
 4.39157 ++/* This is a 26-bit reloc with the right 2 bits assumed to be 0.  */
 4.39158 ++  BFD_RELOC_M32R_26_PCREL,
 4.39159 ++
 4.39160 ++/* This is a 16-bit reloc containing the high 16 bits of an address
 4.39161 ++used when the lower 16 bits are treated as unsigned.  */
 4.39162 ++  BFD_RELOC_M32R_HI16_ULO,
 4.39163 ++
 4.39164 ++/* This is a 16-bit reloc containing the high 16 bits of an address
 4.39165 ++used when the lower 16 bits are treated as signed.  */
 4.39166 ++  BFD_RELOC_M32R_HI16_SLO,
 4.39167 ++
 4.39168 ++/* This is a 16-bit reloc containing the lower 16 bits of an address.  */
 4.39169 ++  BFD_RELOC_M32R_LO16,
 4.39170 ++
 4.39171 ++/* This is a 16-bit reloc containing the small data area offset for use in
 4.39172 ++add3, load, and store instructions.  */
 4.39173 ++  BFD_RELOC_M32R_SDA16,
 4.39174 ++
 4.39175 ++/* For PIC.  */
 4.39176 ++  BFD_RELOC_M32R_GOT24,
 4.39177 ++  BFD_RELOC_M32R_26_PLTREL,
 4.39178 ++  BFD_RELOC_M32R_COPY,
 4.39179 ++  BFD_RELOC_M32R_GLOB_DAT,
 4.39180 ++  BFD_RELOC_M32R_JMP_SLOT,
 4.39181 ++  BFD_RELOC_M32R_RELATIVE,
 4.39182 ++  BFD_RELOC_M32R_GOTOFF,
 4.39183 ++  BFD_RELOC_M32R_GOTOFF_HI_ULO,
 4.39184 ++  BFD_RELOC_M32R_GOTOFF_HI_SLO,
 4.39185 ++  BFD_RELOC_M32R_GOTOFF_LO,
 4.39186 ++  BFD_RELOC_M32R_GOTPC24,
 4.39187 ++  BFD_RELOC_M32R_GOT16_HI_ULO,
 4.39188 ++  BFD_RELOC_M32R_GOT16_HI_SLO,
 4.39189 ++  BFD_RELOC_M32R_GOT16_LO,
 4.39190 ++  BFD_RELOC_M32R_GOTPC_HI_ULO,
 4.39191 ++  BFD_RELOC_M32R_GOTPC_HI_SLO,
 4.39192 ++  BFD_RELOC_M32R_GOTPC_LO,
 4.39193 ++
 4.39194 ++/* This is a 9-bit reloc  */
 4.39195 ++  BFD_RELOC_V850_9_PCREL,
 4.39196 ++
 4.39197 ++/* This is a 22-bit reloc  */
 4.39198 ++  BFD_RELOC_V850_22_PCREL,
 4.39199 ++
 4.39200 ++/* This is a 16 bit offset from the short data area pointer.  */
 4.39201 ++  BFD_RELOC_V850_SDA_16_16_OFFSET,
 4.39202 ++
 4.39203 ++/* This is a 16 bit offset (of which only 15 bits are used) from the
 4.39204 ++short data area pointer.  */
 4.39205 ++  BFD_RELOC_V850_SDA_15_16_OFFSET,
 4.39206 ++
 4.39207 ++/* This is a 16 bit offset from the zero data area pointer.  */
 4.39208 ++  BFD_RELOC_V850_ZDA_16_16_OFFSET,
 4.39209 ++
 4.39210 ++/* This is a 16 bit offset (of which only 15 bits are used) from the
 4.39211 ++zero data area pointer.  */
 4.39212 ++  BFD_RELOC_V850_ZDA_15_16_OFFSET,
 4.39213 ++
 4.39214 ++/* This is an 8 bit offset (of which only 6 bits are used) from the
 4.39215 ++tiny data area pointer.  */
 4.39216 ++  BFD_RELOC_V850_TDA_6_8_OFFSET,
 4.39217 ++
 4.39218 ++/* This is an 8bit offset (of which only 7 bits are used) from the tiny
 4.39219 ++data area pointer.  */
 4.39220 ++  BFD_RELOC_V850_TDA_7_8_OFFSET,
 4.39221 ++
 4.39222 ++/* This is a 7 bit offset from the tiny data area pointer.  */
 4.39223 ++  BFD_RELOC_V850_TDA_7_7_OFFSET,
 4.39224 ++
 4.39225 ++/* This is a 16 bit offset from the tiny data area pointer.  */
 4.39226 ++  BFD_RELOC_V850_TDA_16_16_OFFSET,
 4.39227 ++
 4.39228 ++/* This is a 5 bit offset (of which only 4 bits are used) from the tiny
 4.39229 ++data area pointer.  */
 4.39230 ++  BFD_RELOC_V850_TDA_4_5_OFFSET,
 4.39231 ++
 4.39232 ++/* This is a 4 bit offset from the tiny data area pointer.  */
 4.39233 ++  BFD_RELOC_V850_TDA_4_4_OFFSET,
 4.39234 ++
 4.39235 ++/* This is a 16 bit offset from the short data area pointer, with the
 4.39236 ++bits placed non-contiguously in the instruction.  */
 4.39237 ++  BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET,
 4.39238 ++
 4.39239 ++/* This is a 16 bit offset from the zero data area pointer, with the
 4.39240 ++bits placed non-contiguously in the instruction.  */
 4.39241 ++  BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET,
 4.39242 ++
 4.39243 ++/* This is a 6 bit offset from the call table base pointer.  */
 4.39244 ++  BFD_RELOC_V850_CALLT_6_7_OFFSET,
 4.39245 ++
 4.39246 ++/* This is a 16 bit offset from the call table base pointer.  */
 4.39247 ++  BFD_RELOC_V850_CALLT_16_16_OFFSET,
 4.39248 ++
 4.39249 ++/* Used for relaxing indirect function calls.  */
 4.39250 ++  BFD_RELOC_V850_LONGCALL,
 4.39251 ++
 4.39252 ++/* Used for relaxing indirect jumps.  */
 4.39253 ++  BFD_RELOC_V850_LONGJUMP,
 4.39254 ++
 4.39255 ++/* Used to maintain alignment whilst relaxing.  */
 4.39256 ++  BFD_RELOC_V850_ALIGN,
 4.39257 ++
 4.39258 ++/* This is a variation of BFD_RELOC_LO16 that can be used in v850e ld.bu
 4.39259 ++instructions.  */
 4.39260 ++  BFD_RELOC_V850_LO16_SPLIT_OFFSET,
 4.39261 ++
 4.39262 ++/* This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the
 4.39263 ++instruction.  */
 4.39264 ++  BFD_RELOC_MN10300_32_PCREL,
 4.39265 ++
 4.39266 ++/* This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the
 4.39267 ++instruction.  */
 4.39268 ++  BFD_RELOC_MN10300_16_PCREL,
 4.39269 ++
 4.39270 ++/* This is a 8bit DP reloc for the tms320c30, where the most
 4.39271 ++significant 8 bits of a 24 bit word are placed into the least
 4.39272 ++significant 8 bits of the opcode.  */
 4.39273 ++  BFD_RELOC_TIC30_LDP,
 4.39274 ++
 4.39275 ++/* This is a 7bit reloc for the tms320c54x, where the least
 4.39276 ++significant 7 bits of a 16 bit word are placed into the least
 4.39277 ++significant 7 bits of the opcode.  */
 4.39278 ++  BFD_RELOC_TIC54X_PARTLS7,
 4.39279 ++
 4.39280 ++/* This is a 9bit DP reloc for the tms320c54x, where the most
 4.39281 ++significant 9 bits of a 16 bit word are placed into the least
 4.39282 ++significant 9 bits of the opcode.  */
 4.39283 ++  BFD_RELOC_TIC54X_PARTMS9,
 4.39284 ++
 4.39285 ++/* This is an extended address 23-bit reloc for the tms320c54x.  */
 4.39286 ++  BFD_RELOC_TIC54X_23,
 4.39287 ++
 4.39288 ++/* This is a 16-bit reloc for the tms320c54x, where the least
 4.39289 ++significant 16 bits of a 23-bit extended address are placed into
 4.39290 ++the opcode.  */
 4.39291 ++  BFD_RELOC_TIC54X_16_OF_23,
 4.39292 ++
 4.39293 ++/* This is a reloc for the tms320c54x, where the most
 4.39294 ++significant 7 bits of a 23-bit extended address are placed into
 4.39295 ++the opcode.  */
 4.39296 ++  BFD_RELOC_TIC54X_MS7_OF_23,
 4.39297 ++
 4.39298 ++/* This is a 48 bit reloc for the FR30 that stores 32 bits.  */
 4.39299 ++  BFD_RELOC_FR30_48,
 4.39300 ++
 4.39301 ++/* This is a 32 bit reloc for the FR30 that stores 20 bits split up into
 4.39302 ++two sections.  */
 4.39303 ++  BFD_RELOC_FR30_20,
 4.39304 ++
 4.39305 ++/* This is a 16 bit reloc for the FR30 that stores a 6 bit word offset in
 4.39306 ++4 bits.  */
 4.39307 ++  BFD_RELOC_FR30_6_IN_4,
 4.39308 ++
 4.39309 ++/* This is a 16 bit reloc for the FR30 that stores an 8 bit byte offset
 4.39310 ++into 8 bits.  */
 4.39311 ++  BFD_RELOC_FR30_8_IN_8,
 4.39312 ++
 4.39313 ++/* This is a 16 bit reloc for the FR30 that stores a 9 bit short offset
 4.39314 ++into 8 bits.  */
 4.39315 ++  BFD_RELOC_FR30_9_IN_8,
 4.39316 ++
 4.39317 ++/* This is a 16 bit reloc for the FR30 that stores a 10 bit word offset
 4.39318 ++into 8 bits.  */
 4.39319 ++  BFD_RELOC_FR30_10_IN_8,
 4.39320 ++
 4.39321 ++/* This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
 4.39322 ++short offset into 8 bits.  */
 4.39323 ++  BFD_RELOC_FR30_9_PCREL,
 4.39324 ++
 4.39325 ++/* This is a 16 bit reloc for the FR30 that stores a 12 bit pc relative
 4.39326 ++short offset into 11 bits.  */
 4.39327 ++  BFD_RELOC_FR30_12_PCREL,
 4.39328 ++
 4.39329 ++/* Motorola Mcore relocations.  */
 4.39330 ++  BFD_RELOC_MCORE_PCREL_IMM8BY4,
 4.39331 ++  BFD_RELOC_MCORE_PCREL_IMM11BY2,
 4.39332 ++  BFD_RELOC_MCORE_PCREL_IMM4BY2,
 4.39333 ++  BFD_RELOC_MCORE_PCREL_32,
 4.39334 ++  BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2,
 4.39335 ++  BFD_RELOC_MCORE_RVA,
 4.39336 ++
 4.39337 ++/* Toshiba Media Processor Relocations.  */
 4.39338 ++  BFD_RELOC_MEP_8,
 4.39339 ++  BFD_RELOC_MEP_16,
 4.39340 ++  BFD_RELOC_MEP_32,
 4.39341 ++  BFD_RELOC_MEP_PCREL8A2,
 4.39342 ++  BFD_RELOC_MEP_PCREL12A2,
 4.39343 ++  BFD_RELOC_MEP_PCREL17A2,
 4.39344 ++  BFD_RELOC_MEP_PCREL24A2,
 4.39345 ++  BFD_RELOC_MEP_PCABS24A2,
 4.39346 ++  BFD_RELOC_MEP_LOW16,
 4.39347 ++  BFD_RELOC_MEP_HI16U,
 4.39348 ++  BFD_RELOC_MEP_HI16S,
 4.39349 ++  BFD_RELOC_MEP_GPREL,
 4.39350 ++  BFD_RELOC_MEP_TPREL,
 4.39351 ++  BFD_RELOC_MEP_TPREL7,
 4.39352 ++  BFD_RELOC_MEP_TPREL7A2,
 4.39353 ++  BFD_RELOC_MEP_TPREL7A4,
 4.39354 ++  BFD_RELOC_MEP_UIMM24,
 4.39355 ++  BFD_RELOC_MEP_ADDR24A4,
 4.39356 ++  BFD_RELOC_MEP_GNU_VTINHERIT,
 4.39357 ++  BFD_RELOC_MEP_GNU_VTENTRY,
 4.39358 ++
 4.39359 ++
 4.39360 ++/* These are relocations for the GETA instruction.  */
 4.39361 ++  BFD_RELOC_MMIX_GETA,
 4.39362 ++  BFD_RELOC_MMIX_GETA_1,
 4.39363 ++  BFD_RELOC_MMIX_GETA_2,
 4.39364 ++  BFD_RELOC_MMIX_GETA_3,
 4.39365 ++
 4.39366 ++/* These are relocations for a conditional branch instruction.  */
 4.39367 ++  BFD_RELOC_MMIX_CBRANCH,
 4.39368 ++  BFD_RELOC_MMIX_CBRANCH_J,
 4.39369 ++  BFD_RELOC_MMIX_CBRANCH_1,
 4.39370 ++  BFD_RELOC_MMIX_CBRANCH_2,
 4.39371 ++  BFD_RELOC_MMIX_CBRANCH_3,
 4.39372 ++
 4.39373 ++/* These are relocations for the PUSHJ instruction.  */
 4.39374 ++  BFD_RELOC_MMIX_PUSHJ,
 4.39375 ++  BFD_RELOC_MMIX_PUSHJ_1,
 4.39376 ++  BFD_RELOC_MMIX_PUSHJ_2,
 4.39377 ++  BFD_RELOC_MMIX_PUSHJ_3,
 4.39378 ++  BFD_RELOC_MMIX_PUSHJ_STUBBABLE,
 4.39379 ++
 4.39380 ++/* These are relocations for the JMP instruction.  */
 4.39381 ++  BFD_RELOC_MMIX_JMP,
 4.39382 ++  BFD_RELOC_MMIX_JMP_1,
 4.39383 ++  BFD_RELOC_MMIX_JMP_2,
 4.39384 ++  BFD_RELOC_MMIX_JMP_3,
 4.39385 ++
 4.39386 ++/* This is a relocation for a relative address as in a GETA instruction or
 4.39387 ++a branch.  */
 4.39388 ++  BFD_RELOC_MMIX_ADDR19,
 4.39389 ++
 4.39390 ++/* This is a relocation for a relative address as in a JMP instruction.  */
 4.39391 ++  BFD_RELOC_MMIX_ADDR27,
 4.39392 ++
 4.39393 ++/* This is a relocation for an instruction field that may be a general
 4.39394 ++register or a value 0..255.  */
 4.39395 ++  BFD_RELOC_MMIX_REG_OR_BYTE,
 4.39396 ++
 4.39397 ++/* This is a relocation for an instruction field that may be a general
 4.39398 ++register.  */
 4.39399 ++  BFD_RELOC_MMIX_REG,
 4.39400 ++
 4.39401 ++/* This is a relocation for two instruction fields holding a register and
 4.39402 ++an offset, the equivalent of the relocation.  */
 4.39403 ++  BFD_RELOC_MMIX_BASE_PLUS_OFFSET,
 4.39404 ++
 4.39405 ++/* This relocation is an assertion that the expression is not allocated as
 4.39406 ++a global register.  It does not modify contents.  */
 4.39407 ++  BFD_RELOC_MMIX_LOCAL,
 4.39408 ++
 4.39409 ++/* This is a 16 bit reloc for the AVR that stores 8 bit pc relative
 4.39410 ++short offset into 7 bits.  */
 4.39411 ++  BFD_RELOC_AVR_7_PCREL,
 4.39412 ++
 4.39413 ++/* This is a 16 bit reloc for the AVR that stores 13 bit pc relative
 4.39414 ++short offset into 12 bits.  */
 4.39415 ++  BFD_RELOC_AVR_13_PCREL,
 4.39416 ++
 4.39417 ++/* This is a 16 bit reloc for the AVR that stores 17 bit value (usually
 4.39418 ++program memory address) into 16 bits.  */
 4.39419 ++  BFD_RELOC_AVR_16_PM,
 4.39420 ++
 4.39421 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
 4.39422 ++data memory address) into 8 bit immediate value of LDI insn.  */
 4.39423 ++  BFD_RELOC_AVR_LO8_LDI,
 4.39424 ++
 4.39425 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
 4.39426 ++of data memory address) into 8 bit immediate value of LDI insn.  */
 4.39427 ++  BFD_RELOC_AVR_HI8_LDI,
 4.39428 ++
 4.39429 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
 4.39430 ++of program memory address) into 8 bit immediate value of LDI insn.  */
 4.39431 ++  BFD_RELOC_AVR_HH8_LDI,
 4.39432 ++
 4.39433 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
 4.39434 ++of 32 bit value) into 8 bit immediate value of LDI insn.  */
 4.39435 ++  BFD_RELOC_AVR_MS8_LDI,
 4.39436 ++
 4.39437 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 4.39438 ++(usually data memory address) into 8 bit immediate value of SUBI insn.  */
 4.39439 ++  BFD_RELOC_AVR_LO8_LDI_NEG,
 4.39440 ++
 4.39441 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 4.39442 ++(high 8 bit of data memory address) into 8 bit immediate value of
 4.39443 ++SUBI insn.  */
 4.39444 ++  BFD_RELOC_AVR_HI8_LDI_NEG,
 4.39445 ++
 4.39446 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 4.39447 ++(most high 8 bit of program memory address) into 8 bit immediate value
 4.39448 ++of LDI or SUBI insn.  */
 4.39449 ++  BFD_RELOC_AVR_HH8_LDI_NEG,
 4.39450 ++
 4.39451 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value (msb
 4.39452 ++of 32 bit value) into 8 bit immediate value of LDI insn.  */
 4.39453 ++  BFD_RELOC_AVR_MS8_LDI_NEG,
 4.39454 ++
 4.39455 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
 4.39456 ++command address) into 8 bit immediate value of LDI insn.  */
 4.39457 ++  BFD_RELOC_AVR_LO8_LDI_PM,
 4.39458 ++
 4.39459 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value 
 4.39460 ++(command address) into 8 bit immediate value of LDI insn. If the address
 4.39461 ++is beyond the 128k boundary, the linker inserts a jump stub for this reloc
 4.39462 ++in the lower 128k.  */
 4.39463 ++  BFD_RELOC_AVR_LO8_LDI_GS,
 4.39464 ++
 4.39465 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
 4.39466 ++of command address) into 8 bit immediate value of LDI insn.  */
 4.39467 ++  BFD_RELOC_AVR_HI8_LDI_PM,
 4.39468 ++
 4.39469 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
 4.39470 ++of command address) into 8 bit immediate value of LDI insn.  If the address
 4.39471 ++is beyond the 128k boundary, the linker inserts a jump stub for this reloc
 4.39472 ++below 128k.  */
 4.39473 ++  BFD_RELOC_AVR_HI8_LDI_GS,
 4.39474 ++
 4.39475 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
 4.39476 ++of command address) into 8 bit immediate value of LDI insn.  */
 4.39477 ++  BFD_RELOC_AVR_HH8_LDI_PM,
 4.39478 ++
 4.39479 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 4.39480 ++(usually command address) into 8 bit immediate value of SUBI insn.  */
 4.39481 ++  BFD_RELOC_AVR_LO8_LDI_PM_NEG,
 4.39482 ++
 4.39483 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 4.39484 ++(high 8 bit of 16 bit command address) into 8 bit immediate value
 4.39485 ++of SUBI insn.  */
 4.39486 ++  BFD_RELOC_AVR_HI8_LDI_PM_NEG,
 4.39487 ++
 4.39488 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 4.39489 ++(high 6 bit of 22 bit command address) into 8 bit immediate
 4.39490 ++value of SUBI insn.  */
 4.39491 ++  BFD_RELOC_AVR_HH8_LDI_PM_NEG,
 4.39492 ++
 4.39493 ++/* This is a 32 bit reloc for the AVR that stores 23 bit value
 4.39494 ++into 22 bits.  */
 4.39495 ++  BFD_RELOC_AVR_CALL,
 4.39496 ++
 4.39497 ++/* This is a 16 bit reloc for the AVR that stores all needed bits
 4.39498 ++for absolute addressing with ldi with overflow check to linktime  */
 4.39499 ++  BFD_RELOC_AVR_LDI,
 4.39500 ++
 4.39501 ++/* This is a 6 bit reloc for the AVR that stores offset for ldd/std
 4.39502 ++instructions  */
 4.39503 ++  BFD_RELOC_AVR_6,
 4.39504 ++
 4.39505 ++/* This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
 4.39506 ++instructions  */
 4.39507 ++  BFD_RELOC_AVR_6_ADIW,
 4.39508 ++
 4.39509 ++/* Difference between two labels: L2 - L1. The value of L1 is encoded
 4.39510 ++as sym + addend, while the initial difference after assembly is
 4.39511 ++inserted into the object file by the assembler.  */
 4.39512 ++  BFD_RELOC_AVR32_DIFF32,
 4.39513 ++  BFD_RELOC_AVR32_DIFF16,
 4.39514 ++  BFD_RELOC_AVR32_DIFF8,
 4.39515 ++
 4.39516 ++/* Reference to a symbol through the Global Offset Table. The linker
 4.39517 ++will allocate an entry for symbol in the GOT and insert the offset
 4.39518 ++of this entry as the relocation value.  */
 4.39519 ++  BFD_RELOC_AVR32_GOT32,
 4.39520 ++  BFD_RELOC_AVR32_GOT16,
 4.39521 ++  BFD_RELOC_AVR32_GOT8,
 4.39522 ++
 4.39523 ++/* Normal (non-pc-relative) code relocations. Alignment and signedness
 4.39524 ++is indicated by the suffixes. S means signed, U means unsigned. W
 4.39525 ++means word-aligned, H means halfword-aligned, neither means
 4.39526 ++byte-aligned (no alignment.) SUB5 is the same relocation as 16S.  */
 4.39527 ++  BFD_RELOC_AVR32_21S,
 4.39528 ++  BFD_RELOC_AVR32_16U,
 4.39529 ++  BFD_RELOC_AVR32_16S,
 4.39530 ++  BFD_RELOC_AVR32_SUB5,
 4.39531 ++  BFD_RELOC_AVR32_8S_EXT,
 4.39532 ++  BFD_RELOC_AVR32_8S,
 4.39533 ++  BFD_RELOC_AVR32_15S,
 4.39534 ++
 4.39535 ++/* PC-relative relocations are signed if neither 'U' nor 'S' is
 4.39536 ++specified. However, we explicitly tack on a 'B' to indicate no
 4.39537 ++alignment, to avoid confusion with data relocs. All of these resolve
 4.39538 ++to sym + addend - offset, except the one with 'N' (negated) suffix.
 4.39539 ++This particular one resolves to offset - sym - addend.  */
 4.39540 ++  BFD_RELOC_AVR32_22H_PCREL,
 4.39541 ++  BFD_RELOC_AVR32_18W_PCREL,
 4.39542 ++  BFD_RELOC_AVR32_16B_PCREL,
 4.39543 ++  BFD_RELOC_AVR32_16N_PCREL,
 4.39544 ++  BFD_RELOC_AVR32_14UW_PCREL,
 4.39545 ++  BFD_RELOC_AVR32_11H_PCREL,
 4.39546 ++  BFD_RELOC_AVR32_10UW_PCREL,
 4.39547 ++  BFD_RELOC_AVR32_9H_PCREL,
 4.39548 ++  BFD_RELOC_AVR32_9UW_PCREL,
 4.39549 ++
 4.39550 ++/* Subtract the link-time address of the GOT from (symbol + addend)
 4.39551 ++and insert the result.  */
 4.39552 ++  BFD_RELOC_AVR32_GOTPC,
 4.39553 ++
 4.39554 ++/* Reference to a symbol through the GOT. The linker will allocate an
 4.39555 ++entry for symbol in the GOT and insert the offset of this entry as
 4.39556 ++the relocation value. addend must be zero. As usual, 'S' means
 4.39557 ++signed, 'W' means word-aligned, etc.  */
 4.39558 ++  BFD_RELOC_AVR32_GOTCALL,
 4.39559 ++  BFD_RELOC_AVR32_LDA_GOT,
 4.39560 ++  BFD_RELOC_AVR32_GOT21S,
 4.39561 ++  BFD_RELOC_AVR32_GOT18SW,
 4.39562 ++  BFD_RELOC_AVR32_GOT16S,
 4.39563 ++
 4.39564 ++/* 32-bit constant pool entry. I don't think 8- and 16-bit entries make
 4.39565 ++a whole lot of sense.  */
 4.39566 ++  BFD_RELOC_AVR32_32_CPENT,
 4.39567 ++
 4.39568 ++/* Constant pool references. Some of these relocations are signed,
 4.39569 ++others are unsigned. It doesn't really matter, since the constant
 4.39570 ++pool always comes after the code that references it.  */
 4.39571 ++  BFD_RELOC_AVR32_CPCALL,
 4.39572 ++  BFD_RELOC_AVR32_16_CP,
 4.39573 ++  BFD_RELOC_AVR32_9W_CP,
 4.39574 ++
 4.39575 ++/* sym must be the absolute symbol. The addend specifies the alignment
 4.39576 ++order, e.g. if addend is 2, the linker must add padding so that the
 4.39577 ++next address is aligned to a 4-byte boundary.  */
 4.39578 ++  BFD_RELOC_AVR32_ALIGN,
 4.39579 ++
 4.39580 ++/* Code relocations that will never make it to the output file.  */
 4.39581 ++  BFD_RELOC_AVR32_14UW,
 4.39582 ++  BFD_RELOC_AVR32_10UW,
 4.39583 ++  BFD_RELOC_AVR32_10SW,
 4.39584 ++  BFD_RELOC_AVR32_STHH_W,
 4.39585 ++  BFD_RELOC_AVR32_7UW,
 4.39586 ++  BFD_RELOC_AVR32_6S,
 4.39587 ++  BFD_RELOC_AVR32_6UW,
 4.39588 ++  BFD_RELOC_AVR32_4UH,
 4.39589 ++  BFD_RELOC_AVR32_3U,
 4.39590 ++
 4.39591 ++/* Direct 12 bit.  */
 4.39592 ++  BFD_RELOC_390_12,
 4.39593 ++
 4.39594 ++/* 12 bit GOT offset.  */
 4.39595 ++  BFD_RELOC_390_GOT12,
 4.39596 ++
 4.39597 ++/* 32 bit PC relative PLT address.  */
 4.39598 ++  BFD_RELOC_390_PLT32,
 4.39599 ++
 4.39600 ++/* Copy symbol at runtime.  */
 4.39601 ++  BFD_RELOC_390_COPY,
 4.39602 ++
 4.39603 ++/* Create GOT entry.  */
 4.39604 ++  BFD_RELOC_390_GLOB_DAT,
 4.39605 ++
 4.39606 ++/* Create PLT entry.  */
 4.39607 ++  BFD_RELOC_390_JMP_SLOT,
 4.39608 ++
 4.39609 ++/* Adjust by program base.  */
 4.39610 ++  BFD_RELOC_390_RELATIVE,
 4.39611 ++
 4.39612 ++/* 32 bit PC relative offset to GOT.  */
 4.39613 ++  BFD_RELOC_390_GOTPC,
 4.39614 ++
 4.39615 ++/* 16 bit GOT offset.  */
 4.39616 ++  BFD_RELOC_390_GOT16,
 4.39617 ++
 4.39618 ++/* PC relative 16 bit shifted by 1.  */
 4.39619 ++  BFD_RELOC_390_PC16DBL,
 4.39620 ++
 4.39621 ++/* 16 bit PC rel. PLT shifted by 1.  */
 4.39622 ++  BFD_RELOC_390_PLT16DBL,
 4.39623 ++
 4.39624 ++/* PC relative 32 bit shifted by 1.  */
 4.39625 ++  BFD_RELOC_390_PC32DBL,
 4.39626 ++
 4.39627 ++/* 32 bit PC rel. PLT shifted by 1.  */
 4.39628 ++  BFD_RELOC_390_PLT32DBL,
 4.39629 ++
 4.39630 ++/* 32 bit PC rel. GOT shifted by 1.  */
 4.39631 ++  BFD_RELOC_390_GOTPCDBL,
 4.39632 ++
 4.39633 ++/* 64 bit GOT offset.  */
 4.39634 ++  BFD_RELOC_390_GOT64,
 4.39635 ++
 4.39636 ++/* 64 bit PC relative PLT address.  */
 4.39637 ++  BFD_RELOC_390_PLT64,
 4.39638 ++
 4.39639 ++/* 32 bit rel. offset to GOT entry.  */
 4.39640 ++  BFD_RELOC_390_GOTENT,
 4.39641 ++
 4.39642 ++/* 64 bit offset to GOT.  */
 4.39643 ++  BFD_RELOC_390_GOTOFF64,
 4.39644 ++
 4.39645 ++/* 12-bit offset to symbol-entry within GOT, with PLT handling.  */
 4.39646 ++  BFD_RELOC_390_GOTPLT12,
 4.39647 ++
 4.39648 ++/* 16-bit offset to symbol-entry within GOT, with PLT handling.  */
 4.39649 ++  BFD_RELOC_390_GOTPLT16,
 4.39650 ++
 4.39651 ++/* 32-bit offset to symbol-entry within GOT, with PLT handling.  */
 4.39652 ++  BFD_RELOC_390_GOTPLT32,
 4.39653 ++
 4.39654 ++/* 64-bit offset to symbol-entry within GOT, with PLT handling.  */
 4.39655 ++  BFD_RELOC_390_GOTPLT64,
 4.39656 ++
 4.39657 ++/* 32-bit rel. offset to symbol-entry within GOT, with PLT handling.  */
 4.39658 ++  BFD_RELOC_390_GOTPLTENT,
 4.39659 ++
 4.39660 ++/* 16-bit rel. offset from the GOT to a PLT entry.  */
 4.39661 ++  BFD_RELOC_390_PLTOFF16,
 4.39662 ++
 4.39663 ++/* 32-bit rel. offset from the GOT to a PLT entry.  */
 4.39664 ++  BFD_RELOC_390_PLTOFF32,
 4.39665 ++
 4.39666 ++/* 64-bit rel. offset from the GOT to a PLT entry.  */
 4.39667 ++  BFD_RELOC_390_PLTOFF64,
 4.39668 ++
 4.39669 ++/* s390 tls relocations.  */
 4.39670 ++  BFD_RELOC_390_TLS_LOAD,
 4.39671 ++  BFD_RELOC_390_TLS_GDCALL,
 4.39672 ++  BFD_RELOC_390_TLS_LDCALL,
 4.39673 ++  BFD_RELOC_390_TLS_GD32,
 4.39674 ++  BFD_RELOC_390_TLS_GD64,
 4.39675 ++  BFD_RELOC_390_TLS_GOTIE12,
 4.39676 ++  BFD_RELOC_390_TLS_GOTIE32,
 4.39677 ++  BFD_RELOC_390_TLS_GOTIE64,
 4.39678 ++  BFD_RELOC_390_TLS_LDM32,
 4.39679 ++  BFD_RELOC_390_TLS_LDM64,
 4.39680 ++  BFD_RELOC_390_TLS_IE32,
 4.39681 ++  BFD_RELOC_390_TLS_IE64,
 4.39682 ++  BFD_RELOC_390_TLS_IEENT,
 4.39683 ++  BFD_RELOC_390_TLS_LE32,
 4.39684 ++  BFD_RELOC_390_TLS_LE64,
 4.39685 ++  BFD_RELOC_390_TLS_LDO32,
 4.39686 ++  BFD_RELOC_390_TLS_LDO64,
 4.39687 ++  BFD_RELOC_390_TLS_DTPMOD,
 4.39688 ++  BFD_RELOC_390_TLS_DTPOFF,
 4.39689 ++  BFD_RELOC_390_TLS_TPOFF,
 4.39690 ++
 4.39691 ++/* Long displacement extension.  */
 4.39692 ++  BFD_RELOC_390_20,
 4.39693 ++  BFD_RELOC_390_GOT20,
 4.39694 ++  BFD_RELOC_390_GOTPLT20,
 4.39695 ++  BFD_RELOC_390_TLS_GOTIE20,
 4.39696 ++
 4.39697 ++/* Score relocations  */
 4.39698 ++  BFD_RELOC_SCORE_DUMMY1,
 4.39699 ++
 4.39700 ++/* Low 16 bit for load/store  */
 4.39701 ++  BFD_RELOC_SCORE_GPREL15,
 4.39702 ++
 4.39703 ++/* This is a 24-bit reloc with the right 1 bit assumed to be 0  */
 4.39704 ++  BFD_RELOC_SCORE_DUMMY2,
 4.39705 ++  BFD_RELOC_SCORE_JMP,
 4.39706 ++
 4.39707 ++/* This is a 19-bit reloc with the right 1 bit assumed to be 0  */
 4.39708 ++  BFD_RELOC_SCORE_BRANCH,
 4.39709 ++
 4.39710 ++/* This is a 11-bit reloc with the right 1 bit assumed to be 0  */
 4.39711 ++  BFD_RELOC_SCORE16_JMP,
 4.39712 ++
 4.39713 ++/* This is a 8-bit reloc with the right 1 bit assumed to be 0  */
 4.39714 ++  BFD_RELOC_SCORE16_BRANCH,
 4.39715 ++
 4.39716 ++/* Undocumented Score relocs  */
 4.39717 ++  BFD_RELOC_SCORE_GOT15,
 4.39718 ++  BFD_RELOC_SCORE_GOT_LO16,
 4.39719 ++  BFD_RELOC_SCORE_CALL15,
 4.39720 ++  BFD_RELOC_SCORE_DUMMY_HI16,
 4.39721 ++
 4.39722 ++/* Scenix IP2K - 9-bit register number / data address  */
 4.39723 ++  BFD_RELOC_IP2K_FR9,
 4.39724 ++
 4.39725 ++/* Scenix IP2K - 4-bit register/data bank number  */
 4.39726 ++  BFD_RELOC_IP2K_BANK,
 4.39727 ++
 4.39728 ++/* Scenix IP2K - low 13 bits of instruction word address  */
 4.39729 ++  BFD_RELOC_IP2K_ADDR16CJP,
 4.39730 ++
 4.39731 ++/* Scenix IP2K - high 3 bits of instruction word address  */
 4.39732 ++  BFD_RELOC_IP2K_PAGE3,
 4.39733 ++
 4.39734 ++/* Scenix IP2K - ext/low/high 8 bits of data address  */
 4.39735 ++  BFD_RELOC_IP2K_LO8DATA,
 4.39736 ++  BFD_RELOC_IP2K_HI8DATA,
 4.39737 ++  BFD_RELOC_IP2K_EX8DATA,
 4.39738 ++
 4.39739 ++/* Scenix IP2K - low/high 8 bits of instruction word address  */
 4.39740 ++  BFD_RELOC_IP2K_LO8INSN,
 4.39741 ++  BFD_RELOC_IP2K_HI8INSN,
 4.39742 ++
 4.39743 ++/* Scenix IP2K - even/odd PC modifier to modify snb pcl.0  */
 4.39744 ++  BFD_RELOC_IP2K_PC_SKIP,
 4.39745 ++
 4.39746 ++/* Scenix IP2K - 16 bit word address in text section.  */
 4.39747 ++  BFD_RELOC_IP2K_TEXT,
 4.39748 ++
 4.39749 ++/* Scenix IP2K - 7-bit sp or dp offset  */
 4.39750 ++  BFD_RELOC_IP2K_FR_OFFSET,
 4.39751 ++
 4.39752 ++/* Scenix VPE4K coprocessor - data/insn-space addressing  */
 4.39753 ++  BFD_RELOC_VPE4KMATH_DATA,
 4.39754 ++  BFD_RELOC_VPE4KMATH_INSN,
 4.39755 ++
 4.39756 ++/* These two relocations are used by the linker to determine which of
 4.39757 ++the entries in a C++ virtual function table are actually used.  When
 4.39758 ++the --gc-sections option is given, the linker will zero out the entries
 4.39759 ++that are not used, so that the code for those functions need not be
 4.39760 ++included in the output.
 4.39761 ++
 4.39762 ++VTABLE_INHERIT is a zero-space relocation used to describe to the
 4.39763 ++linker the inheritance tree of a C++ virtual function table.  The
 4.39764 ++relocation's symbol should be the parent class' vtable, and the
 4.39765 ++relocation should be located at the child vtable.
 4.39766 ++
 4.39767 ++VTABLE_ENTRY is a zero-space relocation that describes the use of a
 4.39768 ++virtual function table entry.  The reloc's symbol should refer to the
 4.39769 ++table of the class mentioned in the code.  Off of that base, an offset
 4.39770 ++describes the entry that is being used.  For Rela hosts, this offset
 4.39771 ++is stored in the reloc's addend.  For Rel hosts, we are forced to put
 4.39772 ++this offset in the reloc's section offset.  */
 4.39773 ++  BFD_RELOC_VTABLE_INHERIT,
 4.39774 ++  BFD_RELOC_VTABLE_ENTRY,
 4.39775 ++
 4.39776 ++/* Intel IA64 Relocations.  */
 4.39777 ++  BFD_RELOC_IA64_IMM14,
 4.39778 ++  BFD_RELOC_IA64_IMM22,
 4.39779 ++  BFD_RELOC_IA64_IMM64,
 4.39780 ++  BFD_RELOC_IA64_DIR32MSB,
 4.39781 ++  BFD_RELOC_IA64_DIR32LSB,
 4.39782 ++  BFD_RELOC_IA64_DIR64MSB,
 4.39783 ++  BFD_RELOC_IA64_DIR64LSB,
 4.39784 ++  BFD_RELOC_IA64_GPREL22,
 4.39785 ++  BFD_RELOC_IA64_GPREL64I,
 4.39786 ++  BFD_RELOC_IA64_GPREL32MSB,
 4.39787 ++  BFD_RELOC_IA64_GPREL32LSB,
 4.39788 ++  BFD_RELOC_IA64_GPREL64MSB,
 4.39789 ++  BFD_RELOC_IA64_GPREL64LSB,
 4.39790 ++  BFD_RELOC_IA64_LTOFF22,
 4.39791 ++  BFD_RELOC_IA64_LTOFF64I,
 4.39792 ++  BFD_RELOC_IA64_PLTOFF22,
 4.39793 ++  BFD_RELOC_IA64_PLTOFF64I,
 4.39794 ++  BFD_RELOC_IA64_PLTOFF64MSB,
 4.39795 ++  BFD_RELOC_IA64_PLTOFF64LSB,
 4.39796 ++  BFD_RELOC_IA64_FPTR64I,
 4.39797 ++  BFD_RELOC_IA64_FPTR32MSB,
 4.39798 ++  BFD_RELOC_IA64_FPTR32LSB,
 4.39799 ++  BFD_RELOC_IA64_FPTR64MSB,
 4.39800 ++  BFD_RELOC_IA64_FPTR64LSB,
 4.39801 ++  BFD_RELOC_IA64_PCREL21B,
 4.39802 ++  BFD_RELOC_IA64_PCREL21BI,
 4.39803 ++  BFD_RELOC_IA64_PCREL21M,
 4.39804 ++  BFD_RELOC_IA64_PCREL21F,
 4.39805 ++  BFD_RELOC_IA64_PCREL22,
 4.39806 ++  BFD_RELOC_IA64_PCREL60B,
 4.39807 ++  BFD_RELOC_IA64_PCREL64I,
 4.39808 ++  BFD_RELOC_IA64_PCREL32MSB,
 4.39809 ++  BFD_RELOC_IA64_PCREL32LSB,
 4.39810 ++  BFD_RELOC_IA64_PCREL64MSB,
 4.39811 ++  BFD_RELOC_IA64_PCREL64LSB,
 4.39812 ++  BFD_RELOC_IA64_LTOFF_FPTR22,
 4.39813 ++  BFD_RELOC_IA64_LTOFF_FPTR64I,
 4.39814 ++  BFD_RELOC_IA64_LTOFF_FPTR32MSB,
 4.39815 ++  BFD_RELOC_IA64_LTOFF_FPTR32LSB,
 4.39816 ++  BFD_RELOC_IA64_LTOFF_FPTR64MSB,
 4.39817 ++  BFD_RELOC_IA64_LTOFF_FPTR64LSB,
 4.39818 ++  BFD_RELOC_IA64_SEGREL32MSB,
 4.39819 ++  BFD_RELOC_IA64_SEGREL32LSB,
 4.39820 ++  BFD_RELOC_IA64_SEGREL64MSB,
 4.39821 ++  BFD_RELOC_IA64_SEGREL64LSB,
 4.39822 ++  BFD_RELOC_IA64_SECREL32MSB,
 4.39823 ++  BFD_RELOC_IA64_SECREL32LSB,
 4.39824 ++  BFD_RELOC_IA64_SECREL64MSB,
 4.39825 ++  BFD_RELOC_IA64_SECREL64LSB,
 4.39826 ++  BFD_RELOC_IA64_REL32MSB,
 4.39827 ++  BFD_RELOC_IA64_REL32LSB,
 4.39828 ++  BFD_RELOC_IA64_REL64MSB,
 4.39829 ++  BFD_RELOC_IA64_REL64LSB,
 4.39830 ++  BFD_RELOC_IA64_LTV32MSB,
 4.39831 ++  BFD_RELOC_IA64_LTV32LSB,
 4.39832 ++  BFD_RELOC_IA64_LTV64MSB,
 4.39833 ++  BFD_RELOC_IA64_LTV64LSB,
 4.39834 ++  BFD_RELOC_IA64_IPLTMSB,
 4.39835 ++  BFD_RELOC_IA64_IPLTLSB,
 4.39836 ++  BFD_RELOC_IA64_COPY,
 4.39837 ++  BFD_RELOC_IA64_LTOFF22X,
 4.39838 ++  BFD_RELOC_IA64_LDXMOV,
 4.39839 ++  BFD_RELOC_IA64_TPREL14,
 4.39840 ++  BFD_RELOC_IA64_TPREL22,
 4.39841 ++  BFD_RELOC_IA64_TPREL64I,
 4.39842 ++  BFD_RELOC_IA64_TPREL64MSB,
 4.39843 ++  BFD_RELOC_IA64_TPREL64LSB,
 4.39844 ++  BFD_RELOC_IA64_LTOFF_TPREL22,
 4.39845 ++  BFD_RELOC_IA64_DTPMOD64MSB,
 4.39846 ++  BFD_RELOC_IA64_DTPMOD64LSB,
 4.39847 ++  BFD_RELOC_IA64_LTOFF_DTPMOD22,
 4.39848 ++  BFD_RELOC_IA64_DTPREL14,
 4.39849 ++  BFD_RELOC_IA64_DTPREL22,
 4.39850 ++  BFD_RELOC_IA64_DTPREL64I,
 4.39851 ++  BFD_RELOC_IA64_DTPREL32MSB,
 4.39852 ++  BFD_RELOC_IA64_DTPREL32LSB,
 4.39853 ++  BFD_RELOC_IA64_DTPREL64MSB,
 4.39854 ++  BFD_RELOC_IA64_DTPREL64LSB,
 4.39855 ++  BFD_RELOC_IA64_LTOFF_DTPREL22,
 4.39856 ++
 4.39857 ++/* Motorola 68HC11 reloc.
 4.39858 ++This is the 8 bit high part of an absolute address.  */
 4.39859 ++  BFD_RELOC_M68HC11_HI8,
 4.39860 ++
 4.39861 ++/* Motorola 68HC11 reloc.
 4.39862 ++This is the 8 bit low part of an absolute address.  */
 4.39863 ++  BFD_RELOC_M68HC11_LO8,
 4.39864 ++
 4.39865 ++/* Motorola 68HC11 reloc.
 4.39866 ++This is the 3 bit of a value.  */
 4.39867 ++  BFD_RELOC_M68HC11_3B,
 4.39868 ++
 4.39869 ++/* Motorola 68HC11 reloc.
 4.39870 ++This reloc marks the beginning of a jump/call instruction.
 4.39871 ++It is used for linker relaxation to correctly identify beginning
 4.39872 ++of instruction and change some branches to use PC-relative
 4.39873 ++addressing mode.  */
 4.39874 ++  BFD_RELOC_M68HC11_RL_JUMP,
 4.39875 ++
 4.39876 ++/* Motorola 68HC11 reloc.
 4.39877 ++This reloc marks a group of several instructions that gcc generates
 4.39878 ++and for which the linker relaxation pass can modify and/or remove
 4.39879 ++some of them.  */
 4.39880 ++  BFD_RELOC_M68HC11_RL_GROUP,
 4.39881 ++
 4.39882 ++/* Motorola 68HC11 reloc.
 4.39883 ++This is the 16-bit lower part of an address.  It is used for 'call'
 4.39884 ++instruction to specify the symbol address without any special
 4.39885 ++transformation (due to memory bank window).  */
 4.39886 ++  BFD_RELOC_M68HC11_LO16,
 4.39887 ++
 4.39888 ++/* Motorola 68HC11 reloc.
 4.39889 ++This is a 8-bit reloc that specifies the page number of an address.
 4.39890 ++It is used by 'call' instruction to specify the page number of
 4.39891 ++the symbol.  */
 4.39892 ++  BFD_RELOC_M68HC11_PAGE,
 4.39893 ++
 4.39894 ++/* Motorola 68HC11 reloc.
 4.39895 ++This is a 24-bit reloc that represents the address with a 16-bit
 4.39896 ++value and a 8-bit page number.  The symbol address is transformed
 4.39897 ++to follow the 16K memory bank of 68HC12 (seen as mapped in the window).  */
 4.39898 ++  BFD_RELOC_M68HC11_24,
 4.39899 ++
 4.39900 ++/* Motorola 68HC12 reloc.
 4.39901 ++This is the 5 bits of a value.  */
 4.39902 ++  BFD_RELOC_M68HC12_5B,
 4.39903 ++
 4.39904 ++/* NS CR16C Relocations.  */
 4.39905 ++  BFD_RELOC_16C_NUM08,
 4.39906 ++  BFD_RELOC_16C_NUM08_C,
 4.39907 ++  BFD_RELOC_16C_NUM16,
 4.39908 ++  BFD_RELOC_16C_NUM16_C,
 4.39909 ++  BFD_RELOC_16C_NUM32,
 4.39910 ++  BFD_RELOC_16C_NUM32_C,
 4.39911 ++  BFD_RELOC_16C_DISP04,
 4.39912 ++  BFD_RELOC_16C_DISP04_C,
 4.39913 ++  BFD_RELOC_16C_DISP08,
 4.39914 ++  BFD_RELOC_16C_DISP08_C,
 4.39915 ++  BFD_RELOC_16C_DISP16,
 4.39916 ++  BFD_RELOC_16C_DISP16_C,
 4.39917 ++  BFD_RELOC_16C_DISP24,
 4.39918 ++  BFD_RELOC_16C_DISP24_C,
 4.39919 ++  BFD_RELOC_16C_DISP24a,
 4.39920 ++  BFD_RELOC_16C_DISP24a_C,
 4.39921 ++  BFD_RELOC_16C_REG04,
 4.39922 ++  BFD_RELOC_16C_REG04_C,
 4.39923 ++  BFD_RELOC_16C_REG04a,
 4.39924 ++  BFD_RELOC_16C_REG04a_C,
 4.39925 ++  BFD_RELOC_16C_REG14,
 4.39926 ++  BFD_RELOC_16C_REG14_C,
 4.39927 ++  BFD_RELOC_16C_REG16,
 4.39928 ++  BFD_RELOC_16C_REG16_C,
 4.39929 ++  BFD_RELOC_16C_REG20,
 4.39930 ++  BFD_RELOC_16C_REG20_C,
 4.39931 ++  BFD_RELOC_16C_ABS20,
 4.39932 ++  BFD_RELOC_16C_ABS20_C,
 4.39933 ++  BFD_RELOC_16C_ABS24,
 4.39934 ++  BFD_RELOC_16C_ABS24_C,
 4.39935 ++  BFD_RELOC_16C_IMM04,
 4.39936 ++  BFD_RELOC_16C_IMM04_C,
 4.39937 ++  BFD_RELOC_16C_IMM16,
 4.39938 ++  BFD_RELOC_16C_IMM16_C,
 4.39939 ++  BFD_RELOC_16C_IMM20,
 4.39940 ++  BFD_RELOC_16C_IMM20_C,
 4.39941 ++  BFD_RELOC_16C_IMM24,
 4.39942 ++  BFD_RELOC_16C_IMM24_C,
 4.39943 ++  BFD_RELOC_16C_IMM32,
 4.39944 ++  BFD_RELOC_16C_IMM32_C,
 4.39945 ++
 4.39946 ++/* NS CR16 Relocations.  */
 4.39947 ++  BFD_RELOC_CR16_NUM8,
 4.39948 ++  BFD_RELOC_CR16_NUM16,
 4.39949 ++  BFD_RELOC_CR16_NUM32,
 4.39950 ++  BFD_RELOC_CR16_NUM32a,
 4.39951 ++  BFD_RELOC_CR16_REGREL0,
 4.39952 ++  BFD_RELOC_CR16_REGREL4,
 4.39953 ++  BFD_RELOC_CR16_REGREL4a,
 4.39954 ++  BFD_RELOC_CR16_REGREL14,
 4.39955 ++  BFD_RELOC_CR16_REGREL14a,
 4.39956 ++  BFD_RELOC_CR16_REGREL16,
 4.39957 ++  BFD_RELOC_CR16_REGREL20,
 4.39958 ++  BFD_RELOC_CR16_REGREL20a,
 4.39959 ++  BFD_RELOC_CR16_ABS20,
 4.39960 ++  BFD_RELOC_CR16_ABS24,
 4.39961 ++  BFD_RELOC_CR16_IMM4,
 4.39962 ++  BFD_RELOC_CR16_IMM8,
 4.39963 ++  BFD_RELOC_CR16_IMM16,
 4.39964 ++  BFD_RELOC_CR16_IMM20,
 4.39965 ++  BFD_RELOC_CR16_IMM24,
 4.39966 ++  BFD_RELOC_CR16_IMM32,
 4.39967 ++  BFD_RELOC_CR16_IMM32a,
 4.39968 ++  BFD_RELOC_CR16_DISP4,
 4.39969 ++  BFD_RELOC_CR16_DISP8,
 4.39970 ++  BFD_RELOC_CR16_DISP16,
 4.39971 ++  BFD_RELOC_CR16_DISP20,
 4.39972 ++  BFD_RELOC_CR16_DISP24,
 4.39973 ++  BFD_RELOC_CR16_DISP24a,
 4.39974 ++
 4.39975 ++/* NS CRX Relocations.  */
 4.39976 ++  BFD_RELOC_CRX_REL4,
 4.39977 ++  BFD_RELOC_CRX_REL8,
 4.39978 ++  BFD_RELOC_CRX_REL8_CMP,
 4.39979 ++  BFD_RELOC_CRX_REL16,
 4.39980 ++  BFD_RELOC_CRX_REL24,
 4.39981 ++  BFD_RELOC_CRX_REL32,
 4.39982 ++  BFD_RELOC_CRX_REGREL12,
 4.39983 ++  BFD_RELOC_CRX_REGREL22,
 4.39984 ++  BFD_RELOC_CRX_REGREL28,
 4.39985 ++  BFD_RELOC_CRX_REGREL32,
 4.39986 ++  BFD_RELOC_CRX_ABS16,
 4.39987 ++  BFD_RELOC_CRX_ABS32,
 4.39988 ++  BFD_RELOC_CRX_NUM8,
 4.39989 ++  BFD_RELOC_CRX_NUM16,
 4.39990 ++  BFD_RELOC_CRX_NUM32,
 4.39991 ++  BFD_RELOC_CRX_IMM16,
 4.39992 ++  BFD_RELOC_CRX_IMM32,
 4.39993 ++  BFD_RELOC_CRX_SWITCH8,
 4.39994 ++  BFD_RELOC_CRX_SWITCH16,
 4.39995 ++  BFD_RELOC_CRX_SWITCH32,
 4.39996 ++
 4.39997 ++/* These relocs are only used within the CRIS assembler.  They are not
 4.39998 ++(at present) written to any object files.  */
 4.39999 ++  BFD_RELOC_CRIS_BDISP8,
 4.40000 ++  BFD_RELOC_CRIS_UNSIGNED_5,
 4.40001 ++  BFD_RELOC_CRIS_SIGNED_6,
 4.40002 ++  BFD_RELOC_CRIS_UNSIGNED_6,
 4.40003 ++  BFD_RELOC_CRIS_SIGNED_8,
 4.40004 ++  BFD_RELOC_CRIS_UNSIGNED_8,
 4.40005 ++  BFD_RELOC_CRIS_SIGNED_16,
 4.40006 ++  BFD_RELOC_CRIS_UNSIGNED_16,
 4.40007 ++  BFD_RELOC_CRIS_LAPCQ_OFFSET,
 4.40008 ++  BFD_RELOC_CRIS_UNSIGNED_4,
 4.40009 ++
 4.40010 ++/* Relocs used in ELF shared libraries for CRIS.  */
 4.40011 ++  BFD_RELOC_CRIS_COPY,
 4.40012 ++  BFD_RELOC_CRIS_GLOB_DAT,
 4.40013 ++  BFD_RELOC_CRIS_JUMP_SLOT,
 4.40014 ++  BFD_RELOC_CRIS_RELATIVE,
 4.40015 ++
 4.40016 ++/* 32-bit offset to symbol-entry within GOT.  */
 4.40017 ++  BFD_RELOC_CRIS_32_GOT,
 4.40018 ++
 4.40019 ++/* 16-bit offset to symbol-entry within GOT.  */
 4.40020 ++  BFD_RELOC_CRIS_16_GOT,
 4.40021 ++
 4.40022 ++/* 32-bit offset to symbol-entry within GOT, with PLT handling.  */
 4.40023 ++  BFD_RELOC_CRIS_32_GOTPLT,
 4.40024 ++
 4.40025 ++/* 16-bit offset to symbol-entry within GOT, with PLT handling.  */
 4.40026 ++  BFD_RELOC_CRIS_16_GOTPLT,
 4.40027 ++
 4.40028 ++/* 32-bit offset to symbol, relative to GOT.  */
 4.40029 ++  BFD_RELOC_CRIS_32_GOTREL,
 4.40030 ++
 4.40031 ++/* 32-bit offset to symbol with PLT entry, relative to GOT.  */
 4.40032 ++  BFD_RELOC_CRIS_32_PLT_GOTREL,
 4.40033 ++
 4.40034 ++/* 32-bit offset to symbol with PLT entry, relative to this relocation.  */
 4.40035 ++  BFD_RELOC_CRIS_32_PLT_PCREL,
 4.40036 ++
 4.40037 ++/* Intel i860 Relocations.  */
 4.40038 ++  BFD_RELOC_860_COPY,
 4.40039 ++  BFD_RELOC_860_GLOB_DAT,
 4.40040 ++  BFD_RELOC_860_JUMP_SLOT,
 4.40041 ++  BFD_RELOC_860_RELATIVE,
 4.40042 ++  BFD_RELOC_860_PC26,
 4.40043 ++  BFD_RELOC_860_PLT26,
 4.40044 ++  BFD_RELOC_860_PC16,
 4.40045 ++  BFD_RELOC_860_LOW0,
 4.40046 ++  BFD_RELOC_860_SPLIT0,
 4.40047 ++  BFD_RELOC_860_LOW1,
 4.40048 ++  BFD_RELOC_860_SPLIT1,
 4.40049 ++  BFD_RELOC_860_LOW2,
 4.40050 ++  BFD_RELOC_860_SPLIT2,
 4.40051 ++  BFD_RELOC_860_LOW3,
 4.40052 ++  BFD_RELOC_860_LOGOT0,
 4.40053 ++  BFD_RELOC_860_SPGOT0,
 4.40054 ++  BFD_RELOC_860_LOGOT1,
 4.40055 ++  BFD_RELOC_860_SPGOT1,
 4.40056 ++  BFD_RELOC_860_LOGOTOFF0,
 4.40057 ++  BFD_RELOC_860_SPGOTOFF0,
 4.40058 ++  BFD_RELOC_860_LOGOTOFF1,
 4.40059 ++  BFD_RELOC_860_SPGOTOFF1,
 4.40060 ++  BFD_RELOC_860_LOGOTOFF2,
 4.40061 ++  BFD_RELOC_860_LOGOTOFF3,
 4.40062 ++  BFD_RELOC_860_LOPC,
 4.40063 ++  BFD_RELOC_860_HIGHADJ,
 4.40064 ++  BFD_RELOC_860_HAGOT,
 4.40065 ++  BFD_RELOC_860_HAGOTOFF,
 4.40066 ++  BFD_RELOC_860_HAPC,
 4.40067 ++  BFD_RELOC_860_HIGH,
 4.40068 ++  BFD_RELOC_860_HIGOT,
 4.40069 ++  BFD_RELOC_860_HIGOTOFF,
 4.40070 ++
 4.40071 ++/* OpenRISC Relocations.  */
 4.40072 ++  BFD_RELOC_OPENRISC_ABS_26,
 4.40073 ++  BFD_RELOC_OPENRISC_REL_26,
 4.40074 ++
 4.40075 ++/* H8 elf Relocations.  */
 4.40076 ++  BFD_RELOC_H8_DIR16A8,
 4.40077 ++  BFD_RELOC_H8_DIR16R8,
 4.40078 ++  BFD_RELOC_H8_DIR24A8,
 4.40079 ++  BFD_RELOC_H8_DIR24R8,
 4.40080 ++  BFD_RELOC_H8_DIR32A16,
 4.40081 ++
 4.40082 ++/* Sony Xstormy16 Relocations.  */
 4.40083 ++  BFD_RELOC_XSTORMY16_REL_12,
 4.40084 ++  BFD_RELOC_XSTORMY16_12,
 4.40085 ++  BFD_RELOC_XSTORMY16_24,
 4.40086 ++  BFD_RELOC_XSTORMY16_FPTR16,
 4.40087 ++
 4.40088 ++/* Self-describing complex relocations.  */
 4.40089 ++  BFD_RELOC_RELC,
 4.40090 ++
 4.40091 ++
 4.40092 ++/* Infineon Relocations.  */
 4.40093 ++  BFD_RELOC_XC16X_PAG,
 4.40094 ++  BFD_RELOC_XC16X_POF,
 4.40095 ++  BFD_RELOC_XC16X_SEG,
 4.40096 ++  BFD_RELOC_XC16X_SOF,
 4.40097 ++
 4.40098 ++/* Relocations used by VAX ELF.  */
 4.40099 ++  BFD_RELOC_VAX_GLOB_DAT,
 4.40100 ++  BFD_RELOC_VAX_JMP_SLOT,
 4.40101 ++  BFD_RELOC_VAX_RELATIVE,
 4.40102 ++
 4.40103 ++/* Morpho MT - 16 bit immediate relocation.  */
 4.40104 ++  BFD_RELOC_MT_PC16,
 4.40105 ++
 4.40106 ++/* Morpho MT - Hi 16 bits of an address.  */
 4.40107 ++  BFD_RELOC_MT_HI16,
 4.40108 ++
 4.40109 ++/* Morpho MT - Low 16 bits of an address.  */
 4.40110 ++  BFD_RELOC_MT_LO16,
 4.40111 ++
 4.40112 ++/* Morpho MT - Used to tell the linker which vtable entries are used.  */
 4.40113 ++  BFD_RELOC_MT_GNU_VTINHERIT,
 4.40114 ++
 4.40115 ++/* Morpho MT - Used to tell the linker which vtable entries are used.  */
 4.40116 ++  BFD_RELOC_MT_GNU_VTENTRY,
 4.40117 ++
 4.40118 ++/* Morpho MT - 8 bit immediate relocation.  */
 4.40119 ++  BFD_RELOC_MT_PCINSN8,
 4.40120 ++
 4.40121 ++/* msp430 specific relocation codes  */
 4.40122 ++  BFD_RELOC_MSP430_10_PCREL,
 4.40123 ++  BFD_RELOC_MSP430_16_PCREL,
 4.40124 ++  BFD_RELOC_MSP430_16,
 4.40125 ++  BFD_RELOC_MSP430_16_PCREL_BYTE,
 4.40126 ++  BFD_RELOC_MSP430_16_BYTE,
 4.40127 ++  BFD_RELOC_MSP430_2X_PCREL,
 4.40128 ++  BFD_RELOC_MSP430_RL_PCREL,
 4.40129 ++
 4.40130 ++/* IQ2000 Relocations.  */
 4.40131 ++  BFD_RELOC_IQ2000_OFFSET_16,
 4.40132 ++  BFD_RELOC_IQ2000_OFFSET_21,
 4.40133 ++  BFD_RELOC_IQ2000_UHI16,
 4.40134 ++
 4.40135 ++/* Special Xtensa relocation used only by PLT entries in ELF shared
 4.40136 ++objects to indicate that the runtime linker should set the value
 4.40137 ++to one of its own internal functions or data structures.  */
 4.40138 ++  BFD_RELOC_XTENSA_RTLD,
 4.40139 ++
 4.40140 ++/* Xtensa relocations for ELF shared objects.  */
 4.40141 ++  BFD_RELOC_XTENSA_GLOB_DAT,
 4.40142 ++  BFD_RELOC_XTENSA_JMP_SLOT,
 4.40143 ++  BFD_RELOC_XTENSA_RELATIVE,
 4.40144 ++
 4.40145 ++/* Xtensa relocation used in ELF object files for symbols that may require
 4.40146 ++PLT entries.  Otherwise, this is just a generic 32-bit relocation.  */
 4.40147 ++  BFD_RELOC_XTENSA_PLT,
 4.40148 ++
 4.40149 ++/* Xtensa relocations to mark the difference of two local symbols.
 4.40150 ++These are only needed to support linker relaxation and can be ignored
 4.40151 ++when not relaxing.  The field is set to the value of the difference
 4.40152 ++assuming no relaxation.  The relocation encodes the position of the
 4.40153 ++first symbol so the linker can determine whether to adjust the field
 4.40154 ++value.  */
 4.40155 ++  BFD_RELOC_XTENSA_DIFF8,
 4.40156 ++  BFD_RELOC_XTENSA_DIFF16,
 4.40157 ++  BFD_RELOC_XTENSA_DIFF32,
 4.40158 ++
 4.40159 ++/* Generic Xtensa relocations for instruction operands.  Only the slot
 4.40160 ++number is encoded in the relocation.  The relocation applies to the
 4.40161 ++last PC-relative immediate operand, or if there are no PC-relative
 4.40162 ++immediates, to the last immediate operand.  */
 4.40163 ++  BFD_RELOC_XTENSA_SLOT0_OP,
 4.40164 ++  BFD_RELOC_XTENSA_SLOT1_OP,
 4.40165 ++  BFD_RELOC_XTENSA_SLOT2_OP,
 4.40166 ++  BFD_RELOC_XTENSA_SLOT3_OP,
 4.40167 ++  BFD_RELOC_XTENSA_SLOT4_OP,
 4.40168 ++  BFD_RELOC_XTENSA_SLOT5_OP,
 4.40169 ++  BFD_RELOC_XTENSA_SLOT6_OP,
 4.40170 ++  BFD_RELOC_XTENSA_SLOT7_OP,
 4.40171 ++  BFD_RELOC_XTENSA_SLOT8_OP,
 4.40172 ++  BFD_RELOC_XTENSA_SLOT9_OP,
 4.40173 ++  BFD_RELOC_XTENSA_SLOT10_OP,
 4.40174 ++  BFD_RELOC_XTENSA_SLOT11_OP,
 4.40175 ++  BFD_RELOC_XTENSA_SLOT12_OP,
 4.40176 ++  BFD_RELOC_XTENSA_SLOT13_OP,
 4.40177 ++  BFD_RELOC_XTENSA_SLOT14_OP,
 4.40178 ++
 4.40179 ++/* Alternate Xtensa relocations.  Only the slot is encoded in the
 4.40180 ++relocation.  The meaning of these relocations is opcode-specific.  */
 4.40181 ++  BFD_RELOC_XTENSA_SLOT0_ALT,
 4.40182 ++  BFD_RELOC_XTENSA_SLOT1_ALT,
 4.40183 ++  BFD_RELOC_XTENSA_SLOT2_ALT,
 4.40184 ++  BFD_RELOC_XTENSA_SLOT3_ALT,
 4.40185 ++  BFD_RELOC_XTENSA_SLOT4_ALT,
 4.40186 ++  BFD_RELOC_XTENSA_SLOT5_ALT,
 4.40187 ++  BFD_RELOC_XTENSA_SLOT6_ALT,
 4.40188 ++  BFD_RELOC_XTENSA_SLOT7_ALT,
 4.40189 ++  BFD_RELOC_XTENSA_SLOT8_ALT,
 4.40190 ++  BFD_RELOC_XTENSA_SLOT9_ALT,
 4.40191 ++  BFD_RELOC_XTENSA_SLOT10_ALT,
 4.40192 ++  BFD_RELOC_XTENSA_SLOT11_ALT,
 4.40193 ++  BFD_RELOC_XTENSA_SLOT12_ALT,
 4.40194 ++  BFD_RELOC_XTENSA_SLOT13_ALT,
 4.40195 ++  BFD_RELOC_XTENSA_SLOT14_ALT,
 4.40196 ++
 4.40197 ++/* Xtensa relocations for backward compatibility.  These have all been
 4.40198 ++replaced by BFD_RELOC_XTENSA_SLOT0_OP.  */
 4.40199 ++  BFD_RELOC_XTENSA_OP0,
 4.40200 ++  BFD_RELOC_XTENSA_OP1,
 4.40201 ++  BFD_RELOC_XTENSA_OP2,
 4.40202 ++
 4.40203 ++/* Xtensa relocation to mark that the assembler expanded the
 4.40204 ++instructions from an original target.  The expansion size is
 4.40205 ++encoded in the reloc size.  */
 4.40206 ++  BFD_RELOC_XTENSA_ASM_EXPAND,
 4.40207 ++
 4.40208 ++/* Xtensa relocation to mark that the linker should simplify
 4.40209 ++assembler-expanded instructions.  This is commonly used
 4.40210 ++internally by the linker after analysis of a
 4.40211 ++BFD_RELOC_XTENSA_ASM_EXPAND.  */
 4.40212 ++  BFD_RELOC_XTENSA_ASM_SIMPLIFY,
 4.40213 ++
 4.40214 ++/* 8 bit signed offset in (ix+d) or (iy+d).  */
 4.40215 ++  BFD_RELOC_Z80_DISP8,
 4.40216 ++
 4.40217 ++/* DJNZ offset.  */
 4.40218 ++  BFD_RELOC_Z8K_DISP7,
 4.40219 ++
 4.40220 ++/* CALR offset.  */
 4.40221 ++  BFD_RELOC_Z8K_CALLR,
 4.40222 ++
 4.40223 ++/* 4 bit value.  */
 4.40224 ++  BFD_RELOC_Z8K_IMM4L,
 4.40225 ++  BFD_RELOC_UNUSED };
 4.40226 ++typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
 4.40227 ++reloc_howto_type *bfd_reloc_type_lookup
 4.40228 ++   (bfd *abfd, bfd_reloc_code_real_type code);
 4.40229 ++reloc_howto_type *bfd_reloc_name_lookup
 4.40230 ++   (bfd *abfd, const char *reloc_name);
 4.40231 ++
 4.40232 ++const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
 4.40233 ++
 4.40234 ++/* Extracted from syms.c.  */
 4.40235 ++
 4.40236 ++typedef struct bfd_symbol
 4.40237 ++{
 4.40238 ++  /* A pointer to the BFD which owns the symbol. This information
 4.40239 ++     is necessary so that a back end can work out what additional
 4.40240 ++     information (invisible to the application writer) is carried
 4.40241 ++     with the symbol.
 4.40242 ++
 4.40243 ++     This field is *almost* redundant, since you can use section->owner
 4.40244 ++     instead, except that some symbols point to the global sections
 4.40245 ++     bfd_{abs,com,und}_section.  This could be fixed by making
 4.40246 ++     these globals be per-bfd (or per-target-flavor).  FIXME.  */
 4.40247 ++  struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field.  */
 4.40248 ++
 4.40249 ++  /* The text of the symbol. The name is left alone, and not copied; the
 4.40250 ++     application may not alter it.  */
 4.40251 ++  const char *name;
 4.40252 ++
 4.40253 ++  /* The value of the symbol.  This really should be a union of a
 4.40254 ++     numeric value with a pointer, since some flags indicate that
 4.40255 ++     a pointer to another symbol is stored here.  */
 4.40256 ++  symvalue value;
 4.40257 ++
 4.40258 ++  /* Attributes of a symbol.  */
 4.40259 ++#define BSF_NO_FLAGS    0x00
 4.40260 ++
 4.40261 ++  /* The symbol has local scope; <<static>> in <<C>>. The value
 4.40262 ++     is the offset into the section of the data.  */
 4.40263 ++#define BSF_LOCAL      0x01
 4.40264 ++
 4.40265 ++  /* The symbol has global scope; initialized data in <<C>>. The
 4.40266 ++     value is the offset into the section of the data.  */
 4.40267 ++#define BSF_GLOBAL     0x02
 4.40268 ++
 4.40269 ++  /* The symbol has global scope and is exported. The value is
 4.40270 ++     the offset into the section of the data.  */
 4.40271 ++#define BSF_EXPORT     BSF_GLOBAL /* No real difference.  */
 4.40272 ++
 4.40273 ++  /* A normal C symbol would be one of:
 4.40274 ++     <<BSF_LOCAL>>, <<BSF_FORT_COMM>>,  <<BSF_UNDEFINED>> or
 4.40275 ++     <<BSF_GLOBAL>>.  */
 4.40276 ++
 4.40277 ++  /* The symbol is a debugging record. The value has an arbitrary
 4.40278 ++     meaning, unless BSF_DEBUGGING_RELOC is also set.  */
 4.40279 ++#define BSF_DEBUGGING  0x08
 4.40280 ++
 4.40281 ++  /* The symbol denotes a function entry point.  Used in ELF,
 4.40282 ++     perhaps others someday.  */
 4.40283 ++#define BSF_FUNCTION    0x10
 4.40284 ++
 4.40285 ++  /* Used by the linker.  */
 4.40286 ++#define BSF_KEEP        0x20
 4.40287 ++#define BSF_KEEP_G      0x40
 4.40288 ++
 4.40289 ++  /* A weak global symbol, overridable without warnings by
 4.40290 ++     a regular global symbol of the same name.  */
 4.40291 ++#define BSF_WEAK        0x80
 4.40292 ++
 4.40293 ++  /* This symbol was created to point to a section, e.g. ELF's
 4.40294 ++     STT_SECTION symbols.  */
 4.40295 ++#define BSF_SECTION_SYM 0x100
 4.40296 ++
 4.40297 ++  /* The symbol used to be a common symbol, but now it is
 4.40298 ++     allocated.  */
 4.40299 ++#define BSF_OLD_COMMON  0x200
 4.40300 ++
 4.40301 ++  /* The default value for common data.  */
 4.40302 ++#define BFD_FORT_COMM_DEFAULT_VALUE 0
 4.40303 ++
 4.40304 ++  /* In some files the type of a symbol sometimes alters its
 4.40305 ++     location in an output file - ie in coff a <<ISFCN>> symbol
 4.40306 ++     which is also <<C_EXT>> symbol appears where it was
 4.40307 ++     declared and not at the end of a section.  This bit is set
 4.40308 ++     by the target BFD part to convey this information.  */
 4.40309 ++#define BSF_NOT_AT_END    0x400
 4.40310 ++
 4.40311 ++  /* Signal that the symbol is the label of constructor section.  */
 4.40312 ++#define BSF_CONSTRUCTOR   0x800
 4.40313 ++
 4.40314 ++  /* Signal that the symbol is a warning symbol.  The name is a
 4.40315 ++     warning.  The name of the next symbol is the one to warn about;
 4.40316 ++     if a reference is made to a symbol with the same name as the next
 4.40317 ++     symbol, a warning is issued by the linker.  */
 4.40318 ++#define BSF_WARNING       0x1000
 4.40319 ++
 4.40320 ++  /* Signal that the symbol is indirect.  This symbol is an indirect
 4.40321 ++     pointer to the symbol with the same name as the next symbol.  */
 4.40322 ++#define BSF_INDIRECT      0x2000
 4.40323 ++
 4.40324 ++  /* BSF_FILE marks symbols that contain a file name.  This is used
 4.40325 ++     for ELF STT_FILE symbols.  */
 4.40326 ++#define BSF_FILE          0x4000
 4.40327 ++
 4.40328 ++  /* Symbol is from dynamic linking information.  */
 4.40329 ++#define BSF_DYNAMIC       0x8000
 4.40330 ++
 4.40331 ++  /* The symbol denotes a data object.  Used in ELF, and perhaps
 4.40332 ++     others someday.  */
 4.40333 ++#define BSF_OBJECT        0x10000
 4.40334 ++
 4.40335 ++  /* This symbol is a debugging symbol.  The value is the offset
 4.40336 ++     into the section of the data.  BSF_DEBUGGING should be set
 4.40337 ++     as well.  */
 4.40338 ++#define BSF_DEBUGGING_RELOC 0x20000
 4.40339 ++
 4.40340 ++  /* This symbol is thread local.  Used in ELF.  */
 4.40341 ++#define BSF_THREAD_LOCAL  0x40000
 4.40342 ++
 4.40343 ++  /* This symbol represents a complex relocation expression,
 4.40344 ++     with the expression tree serialized in the symbol name.  */
 4.40345 ++#define BSF_RELC 0x80000
 4.40346 ++
 4.40347 ++  /* This symbol represents a signed complex relocation expression,
 4.40348 ++     with the expression tree serialized in the symbol name.  */
 4.40349 ++#define BSF_SRELC 0x100000
 4.40350 ++
 4.40351 ++  flagword flags;
 4.40352 ++
 4.40353 ++  /* A pointer to the section to which this symbol is
 4.40354 ++     relative.  This will always be non NULL, there are special
 4.40355 ++     sections for undefined and absolute symbols.  */
 4.40356 ++  struct bfd_section *section;
 4.40357 ++
 4.40358 ++  /* Back end special data.  */
 4.40359 ++  union
 4.40360 ++    {
 4.40361 ++      void *p;
 4.40362 ++      bfd_vma i;
 4.40363 ++    }
 4.40364 ++  udata;
 4.40365 ++}
 4.40366 ++asymbol;
 4.40367 ++
 4.40368 ++#define bfd_get_symtab_upper_bound(abfd) \
 4.40369 ++     BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
 4.40370 ++
 4.40371 ++bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
 4.40372 ++
 4.40373 ++bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
 4.40374 ++
 4.40375 ++#define bfd_is_local_label_name(abfd, name) \
 4.40376 ++  BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
 4.40377 ++
 4.40378 ++bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
 4.40379 ++
 4.40380 ++#define bfd_is_target_special_symbol(abfd, sym) \
 4.40381 ++  BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
 4.40382 ++
 4.40383 ++#define bfd_canonicalize_symtab(abfd, location) \
 4.40384 ++  BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
 4.40385 ++
 4.40386 ++bfd_boolean bfd_set_symtab
 4.40387 ++   (bfd *abfd, asymbol **location, unsigned int count);
 4.40388 ++
 4.40389 ++void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
 4.40390 ++
 4.40391 ++#define bfd_make_empty_symbol(abfd) \
 4.40392 ++  BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
 4.40393 ++
 4.40394 ++asymbol *_bfd_generic_make_empty_symbol (bfd *);
 4.40395 ++
 4.40396 ++#define bfd_make_debug_symbol(abfd,ptr,size) \
 4.40397 ++  BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
 4.40398 ++
 4.40399 ++int bfd_decode_symclass (asymbol *symbol);
 4.40400 ++
 4.40401 ++bfd_boolean bfd_is_undefined_symclass (int symclass);
 4.40402 ++
 4.40403 ++void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
 4.40404 ++
 4.40405 ++bfd_boolean bfd_copy_private_symbol_data
 4.40406 ++   (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
 4.40407 ++
 4.40408 ++#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
 4.40409 ++  BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
 4.40410 ++            (ibfd, isymbol, obfd, osymbol))
 4.40411 ++
 4.40412 ++/* Extracted from bfd.c.  */
 4.40413 ++struct bfd
 4.40414 ++{
 4.40415 ++  /* A unique identifier of the BFD  */
 4.40416 ++  unsigned int id;
 4.40417 ++
 4.40418 ++  /* The filename the application opened the BFD with.  */
 4.40419 ++  const char *filename;
 4.40420 ++
 4.40421 ++  /* A pointer to the target jump table.  */
 4.40422 ++  const struct bfd_target *xvec;
 4.40423 ++
 4.40424 ++  /* The IOSTREAM, and corresponding IO vector that provide access
 4.40425 ++     to the file backing the BFD.  */
 4.40426 ++  void *iostream;
 4.40427 ++  const struct bfd_iovec *iovec;
 4.40428 ++
 4.40429 ++  /* Is the file descriptor being cached?  That is, can it be closed as
 4.40430 ++     needed, and re-opened when accessed later?  */
 4.40431 ++  bfd_boolean cacheable;
 4.40432 ++
 4.40433 ++  /* Marks whether there was a default target specified when the
 4.40434 ++     BFD was opened. This is used to select which matching algorithm
 4.40435 ++     to use to choose the back end.  */
 4.40436 ++  bfd_boolean target_defaulted;
 4.40437 ++
 4.40438 ++  /* The caching routines use these to maintain a
 4.40439 ++     least-recently-used list of BFDs.  */
 4.40440 ++  struct bfd *lru_prev, *lru_next;
 4.40441 ++
 4.40442 ++  /* When a file is closed by the caching routines, BFD retains
 4.40443 ++     state information on the file here...  */
 4.40444 ++  ufile_ptr where;
 4.40445 ++
 4.40446 ++  /* ... and here: (``once'' means at least once).  */
 4.40447 ++  bfd_boolean opened_once;
 4.40448 ++
 4.40449 ++  /* Set if we have a locally maintained mtime value, rather than
 4.40450 ++     getting it from the file each time.  */
 4.40451 ++  bfd_boolean mtime_set;
 4.40452 ++
 4.40453 ++  /* File modified time, if mtime_set is TRUE.  */
 4.40454 ++  long mtime;
 4.40455 ++
 4.40456 ++  /* Reserved for an unimplemented file locking extension.  */
 4.40457 ++  int ifd;
 4.40458 ++
 4.40459 ++  /* The format which belongs to the BFD. (object, core, etc.)  */
 4.40460 ++  bfd_format format;
 4.40461 ++
 4.40462 ++  /* The direction with which the BFD was opened.  */
 4.40463 ++  enum bfd_direction
 4.40464 ++    {
 4.40465 ++      no_direction = 0,
 4.40466 ++      read_direction = 1,
 4.40467 ++      write_direction = 2,
 4.40468 ++      both_direction = 3
 4.40469 ++    }
 4.40470 ++  direction;
 4.40471 ++
 4.40472 ++  /* Format_specific flags.  */
 4.40473 ++  flagword flags;
 4.40474 ++
 4.40475 ++  /* Currently my_archive is tested before adding origin to
 4.40476 ++     anything. I believe that this can become always an add of
 4.40477 ++     origin, with origin set to 0 for non archive files.  */
 4.40478 ++  ufile_ptr origin;
 4.40479 ++
 4.40480 ++  /* Remember when output has begun, to stop strange things
 4.40481 ++     from happening.  */
 4.40482 ++  bfd_boolean output_has_begun;
 4.40483 ++
 4.40484 ++  /* A hash table for section names.  */
 4.40485 ++  struct bfd_hash_table section_htab;
 4.40486 ++
 4.40487 ++  /* Pointer to linked list of sections.  */
 4.40488 ++  struct bfd_section *sections;
 4.40489 ++
 4.40490 ++  /* The last section on the section list.  */
 4.40491 ++  struct bfd_section *section_last;
 4.40492 ++
 4.40493 ++  /* The number of sections.  */
 4.40494 ++  unsigned int section_count;
 4.40495 ++
 4.40496 ++  /* Stuff only useful for object files:
 4.40497 ++     The start address.  */
 4.40498 ++  bfd_vma start_address;
 4.40499 ++
 4.40500 ++  /* Used for input and output.  */
 4.40501 ++  unsigned int symcount;
 4.40502 ++
 4.40503 ++  /* Symbol table for output BFD (with symcount entries).  */
 4.40504 ++  struct bfd_symbol  **outsymbols;
 4.40505 ++
 4.40506 ++  /* Used for slurped dynamic symbol tables.  */
 4.40507 ++  unsigned int dynsymcount;
 4.40508 ++
 4.40509 ++  /* Pointer to structure which contains architecture information.  */
 4.40510 ++  const struct bfd_arch_info *arch_info;
 4.40511 ++
 4.40512 ++  /* Flag set if symbols from this BFD should not be exported.  */
 4.40513 ++  bfd_boolean no_export;
 4.40514 ++
 4.40515 ++  /* Stuff only useful for archives.  */
 4.40516 ++  void *arelt_data;
 4.40517 ++  struct bfd *my_archive;      /* The containing archive BFD.  */
 4.40518 ++  struct bfd *archive_next;    /* The next BFD in the archive.  */
 4.40519 ++  struct bfd *archive_head;    /* The first BFD in the archive.  */
 4.40520 ++  bfd_boolean has_armap;
 4.40521 ++
 4.40522 ++  /* A chain of BFD structures involved in a link.  */
 4.40523 ++  struct bfd *link_next;
 4.40524 ++
 4.40525 ++  /* A field used by _bfd_generic_link_add_archive_symbols.  This will
 4.40526 ++     be used only for archive elements.  */
 4.40527 ++  int archive_pass;
 4.40528 ++
 4.40529 ++  /* Used by the back end to hold private data.  */
 4.40530 ++  union
 4.40531 ++    {
 4.40532 ++      struct aout_data_struct *aout_data;
 4.40533 ++      struct artdata *aout_ar_data;
 4.40534 ++      struct _oasys_data *oasys_obj_data;
 4.40535 ++      struct _oasys_ar_data *oasys_ar_data;
 4.40536 ++      struct coff_tdata *coff_obj_data;
 4.40537 ++      struct pe_tdata *pe_obj_data;
 4.40538 ++      struct xcoff_tdata *xcoff_obj_data;
 4.40539 ++      struct ecoff_tdata *ecoff_obj_data;
 4.40540 ++      struct ieee_data_struct *ieee_data;
 4.40541 ++      struct ieee_ar_data_struct *ieee_ar_data;
 4.40542 ++      struct srec_data_struct *srec_data;
 4.40543 ++      struct ihex_data_struct *ihex_data;
 4.40544 ++      struct tekhex_data_struct *tekhex_data;
 4.40545 ++      struct elf_obj_tdata *elf_obj_data;
 4.40546 ++      struct nlm_obj_tdata *nlm_obj_data;
 4.40547 ++      struct bout_data_struct *bout_data;
 4.40548 ++      struct mmo_data_struct *mmo_data;
 4.40549 ++      struct sun_core_struct *sun_core_data;
 4.40550 ++      struct sco5_core_struct *sco5_core_data;
 4.40551 ++      struct trad_core_struct *trad_core_data;
 4.40552 ++      struct som_data_struct *som_data;
 4.40553 ++      struct hpux_core_struct *hpux_core_data;
 4.40554 ++      struct hppabsd_core_struct *hppabsd_core_data;
 4.40555 ++      struct sgi_core_struct *sgi_core_data;
 4.40556 ++      struct lynx_core_struct *lynx_core_data;
 4.40557 ++      struct osf_core_struct *osf_core_data;
 4.40558 ++      struct cisco_core_struct *cisco_core_data;
 4.40559 ++      struct versados_data_struct *versados_data;
 4.40560 ++      struct netbsd_core_struct *netbsd_core_data;
 4.40561 ++      struct mach_o_data_struct *mach_o_data;
 4.40562 ++      struct mach_o_fat_data_struct *mach_o_fat_data;
 4.40563 ++      struct bfd_pef_data_struct *pef_data;
 4.40564 ++      struct bfd_pef_xlib_data_struct *pef_xlib_data;
 4.40565 ++      struct bfd_sym_data_struct *sym_data;
 4.40566 ++      void *any;
 4.40567 ++    }
 4.40568 ++  tdata;
 4.40569 ++
 4.40570 ++  /* Used by the application to hold private data.  */
 4.40571 ++  void *usrdata;
 4.40572 ++
 4.40573 ++  /* Where all the allocated stuff under this BFD goes.  This is a
 4.40574 ++     struct objalloc *, but we use void * to avoid requiring the inclusion
 4.40575 ++     of objalloc.h.  */
 4.40576 ++  void *memory;
 4.40577 ++};
 4.40578 ++
 4.40579 ++typedef enum bfd_error
 4.40580 ++{
 4.40581 ++  bfd_error_no_error = 0,
 4.40582 ++  bfd_error_system_call,
 4.40583 ++  bfd_error_invalid_target,
 4.40584 ++  bfd_error_wrong_format,
 4.40585 ++  bfd_error_wrong_object_format,
 4.40586 ++  bfd_error_invalid_operation,
 4.40587 ++  bfd_error_no_memory,
 4.40588 ++  bfd_error_no_symbols,
 4.40589 ++  bfd_error_no_armap,
 4.40590 ++  bfd_error_no_more_archived_files,
 4.40591 ++  bfd_error_malformed_archive,
 4.40592 ++  bfd_error_file_not_recognized,
 4.40593 ++  bfd_error_file_ambiguously_recognized,
 4.40594 ++  bfd_error_no_contents,
 4.40595 ++  bfd_error_nonrepresentable_section,
 4.40596 ++  bfd_error_no_debug_section,
 4.40597 ++  bfd_error_bad_value,
 4.40598 ++  bfd_error_file_truncated,
 4.40599 ++  bfd_error_file_too_big,
 4.40600 ++  bfd_error_on_input,
 4.40601 ++  bfd_error_invalid_error_code
 4.40602 ++}
 4.40603 ++bfd_error_type;
 4.40604 ++
 4.40605 ++bfd_error_type bfd_get_error (void);
 4.40606 ++
 4.40607 ++void bfd_set_error (bfd_error_type error_tag, ...);
 4.40608 ++
 4.40609 ++const char *bfd_errmsg (bfd_error_type error_tag);
 4.40610 ++
 4.40611 ++void bfd_perror (const char *message);
 4.40612 ++
 4.40613 ++typedef void (*bfd_error_handler_type) (const char *, ...);
 4.40614 ++
 4.40615 ++bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
 4.40616 ++
 4.40617 ++void bfd_set_error_program_name (const char *);
 4.40618 ++
 4.40619 ++bfd_error_handler_type bfd_get_error_handler (void);
 4.40620 ++
 4.40621 ++long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
 4.40622 ++
 4.40623 ++long bfd_canonicalize_reloc
 4.40624 ++   (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
 4.40625 ++
 4.40626 ++void bfd_set_reloc
 4.40627 ++   (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
 4.40628 ++
 4.40629 ++bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
 4.40630 ++
 4.40631 ++int bfd_get_arch_size (bfd *abfd);
 4.40632 ++
 4.40633 ++int bfd_get_sign_extend_vma (bfd *abfd);
 4.40634 ++
 4.40635 ++bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
 4.40636 ++
 4.40637 ++unsigned int bfd_get_gp_size (bfd *abfd);
 4.40638 ++
 4.40639 ++void bfd_set_gp_size (bfd *abfd, unsigned int i);
 4.40640 ++
 4.40641 ++bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
 4.40642 ++
 4.40643 ++bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
 4.40644 ++
 4.40645 ++#define bfd_copy_private_header_data(ibfd, obfd) \
 4.40646 ++     BFD_SEND (obfd, _bfd_copy_private_header_data, \
 4.40647 ++               (ibfd, obfd))
 4.40648 ++bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
 4.40649 ++
 4.40650 ++#define bfd_copy_private_bfd_data(ibfd, obfd) \
 4.40651 ++     BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
 4.40652 ++               (ibfd, obfd))
 4.40653 ++bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);
 4.40654 ++
 4.40655 ++#define bfd_merge_private_bfd_data(ibfd, obfd) \
 4.40656 ++     BFD_SEND (obfd, _bfd_merge_private_bfd_data, \
 4.40657 ++               (ibfd, obfd))
 4.40658 ++bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
 4.40659 ++
 4.40660 ++#define bfd_set_private_flags(abfd, flags) \
 4.40661 ++     BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
 4.40662 ++#define bfd_sizeof_headers(abfd, info) \
 4.40663 ++       BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info))
 4.40664 ++
 4.40665 ++#define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
 4.40666 ++       BFD_SEND (abfd, _bfd_find_nearest_line, \
 4.40667 ++                 (abfd, sec, syms, off, file, func, line))
 4.40668 ++
 4.40669 ++#define bfd_find_line(abfd, syms, sym, file, line) \
 4.40670 ++       BFD_SEND (abfd, _bfd_find_line, \
 4.40671 ++                 (abfd, syms, sym, file, line))
 4.40672 ++
 4.40673 ++#define bfd_find_inliner_info(abfd, file, func, line) \
 4.40674 ++       BFD_SEND (abfd, _bfd_find_inliner_info, \
 4.40675 ++                 (abfd, file, func, line))
 4.40676 ++
 4.40677 ++#define bfd_debug_info_start(abfd) \
 4.40678 ++       BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
 4.40679 ++
 4.40680 ++#define bfd_debug_info_end(abfd) \
 4.40681 ++       BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
 4.40682 ++
 4.40683 ++#define bfd_debug_info_accumulate(abfd, section) \
 4.40684 ++       BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
 4.40685 ++
 4.40686 ++#define bfd_stat_arch_elt(abfd, stat) \
 4.40687 ++       BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
 4.40688 ++
 4.40689 ++#define bfd_update_armap_timestamp(abfd) \
 4.40690 ++       BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
 4.40691 ++
 4.40692 ++#define bfd_set_arch_mach(abfd, arch, mach)\
 4.40693 ++       BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
 4.40694 ++
 4.40695 ++#define bfd_relax_section(abfd, section, link_info, again) \
 4.40696 ++       BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
 4.40697 ++
 4.40698 ++#define bfd_gc_sections(abfd, link_info) \
 4.40699 ++       BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
 4.40700 ++
 4.40701 ++#define bfd_merge_sections(abfd, link_info) \
 4.40702 ++       BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
 4.40703 ++
 4.40704 ++#define bfd_is_group_section(abfd, sec) \
 4.40705 ++       BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
 4.40706 ++
 4.40707 ++#define bfd_discard_group(abfd, sec) \
 4.40708 ++       BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
 4.40709 ++
 4.40710 ++#define bfd_link_hash_table_create(abfd) \
 4.40711 ++       BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
 4.40712 ++
 4.40713 ++#define bfd_link_hash_table_free(abfd, hash) \
 4.40714 ++       BFD_SEND (abfd, _bfd_link_hash_table_free, (hash))
 4.40715 ++
 4.40716 ++#define bfd_link_add_symbols(abfd, info) \
 4.40717 ++       BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
 4.40718 ++
 4.40719 ++#define bfd_link_just_syms(abfd, sec, info) \
 4.40720 ++       BFD_SEND (abfd, _bfd_link_just_syms, (sec, info))
 4.40721 ++
 4.40722 ++#define bfd_final_link(abfd, info) \
 4.40723 ++       BFD_SEND (abfd, _bfd_final_link, (abfd, info))
 4.40724 ++
 4.40725 ++#define bfd_free_cached_info(abfd) \
 4.40726 ++       BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
 4.40727 ++
 4.40728 ++#define bfd_get_dynamic_symtab_upper_bound(abfd) \
 4.40729 ++       BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))
 4.40730 ++
 4.40731 ++#define bfd_print_private_bfd_data(abfd, file)\
 4.40732 ++       BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file))
 4.40733 ++
 4.40734 ++#define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \
 4.40735 ++       BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols))
 4.40736 ++
 4.40737 ++#define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \
 4.40738 ++       BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \
 4.40739 ++                                                   dyncount, dynsyms, ret))
 4.40740 ++
 4.40741 ++#define bfd_get_dynamic_reloc_upper_bound(abfd) \
 4.40742 ++       BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd))
 4.40743 ++
 4.40744 ++#define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \
 4.40745 ++       BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
 4.40746 ++
 4.40747 ++extern bfd_byte *bfd_get_relocated_section_contents
 4.40748 ++  (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
 4.40749 ++   bfd_boolean, asymbol **);
 4.40750 ++
 4.40751 ++bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
 4.40752 ++
 4.40753 ++struct bfd_preserve
 4.40754 ++{
 4.40755 ++  void *marker;
 4.40756 ++  void *tdata;
 4.40757 ++  flagword flags;
 4.40758 ++  const struct bfd_arch_info *arch_info;
 4.40759 ++  struct bfd_section *sections;
 4.40760 ++  struct bfd_section *section_last;
 4.40761 ++  unsigned int section_count;
 4.40762 ++  struct bfd_hash_table section_htab;
 4.40763 ++};
 4.40764 ++
 4.40765 ++bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *);
 4.40766 ++
 4.40767 ++void bfd_preserve_restore (bfd *, struct bfd_preserve *);
 4.40768 ++
 4.40769 ++void bfd_preserve_finish (bfd *, struct bfd_preserve *);
 4.40770 ++
 4.40771 ++bfd_vma bfd_emul_get_maxpagesize (const char *);
 4.40772 ++
 4.40773 ++void bfd_emul_set_maxpagesize (const char *, bfd_vma);
 4.40774 ++
 4.40775 ++bfd_vma bfd_emul_get_commonpagesize (const char *);
 4.40776 ++
 4.40777 ++void bfd_emul_set_commonpagesize (const char *, bfd_vma);
 4.40778 ++
 4.40779 ++char *bfd_demangle (bfd *, const char *, int);
 4.40780 ++
 4.40781 ++/* Extracted from archive.c.  */
 4.40782 ++symindex bfd_get_next_mapent
 4.40783 ++   (bfd *abfd, symindex previous, carsym **sym);
 4.40784 ++
 4.40785 ++bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
 4.40786 ++
 4.40787 ++bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
 4.40788 ++
 4.40789 ++/* Extracted from corefile.c.  */
 4.40790 ++const char *bfd_core_file_failing_command (bfd *abfd);
 4.40791 ++
 4.40792 ++int bfd_core_file_failing_signal (bfd *abfd);
 4.40793 ++
 4.40794 ++bfd_boolean core_file_matches_executable_p
 4.40795 ++   (bfd *core_bfd, bfd *exec_bfd);
 4.40796 ++
 4.40797 ++bfd_boolean generic_core_file_matches_executable_p
 4.40798 ++   (bfd *core_bfd, bfd *exec_bfd);
 4.40799 ++
 4.40800 ++/* Extracted from targets.c.  */
 4.40801 ++#define BFD_SEND(bfd, message, arglist) \
 4.40802 ++  ((*((bfd)->xvec->message)) arglist)
 4.40803 ++
 4.40804 ++#ifdef DEBUG_BFD_SEND
 4.40805 ++#undef BFD_SEND
 4.40806 ++#define BFD_SEND(bfd, message, arglist) \
 4.40807 ++  (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
 4.40808 ++    ((*((bfd)->xvec->message)) arglist) : \
 4.40809 ++    (bfd_assert (__FILE__,__LINE__), NULL))
 4.40810 ++#endif
 4.40811 ++#define BFD_SEND_FMT(bfd, message, arglist) \
 4.40812 ++  (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
 4.40813 ++
 4.40814 ++#ifdef DEBUG_BFD_SEND
 4.40815 ++#undef BFD_SEND_FMT
 4.40816 ++#define BFD_SEND_FMT(bfd, message, arglist) \
 4.40817 ++  (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
 4.40818 ++   (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
 4.40819 ++   (bfd_assert (__FILE__,__LINE__), NULL))
 4.40820 ++#endif
 4.40821 ++
 4.40822 ++enum bfd_flavour
 4.40823 ++{
 4.40824 ++  bfd_target_unknown_flavour,
 4.40825 ++  bfd_target_aout_flavour,
 4.40826 ++  bfd_target_coff_flavour,
 4.40827 ++  bfd_target_ecoff_flavour,
 4.40828 ++  bfd_target_xcoff_flavour,
 4.40829 ++  bfd_target_elf_flavour,
 4.40830 ++  bfd_target_ieee_flavour,
 4.40831 ++  bfd_target_nlm_flavour,
 4.40832 ++  bfd_target_oasys_flavour,
 4.40833 ++  bfd_target_tekhex_flavour,
 4.40834 ++  bfd_target_srec_flavour,
 4.40835 ++  bfd_target_ihex_flavour,
 4.40836 ++  bfd_target_som_flavour,
 4.40837 ++  bfd_target_os9k_flavour,
 4.40838 ++  bfd_target_versados_flavour,
 4.40839 ++  bfd_target_msdos_flavour,
 4.40840 ++  bfd_target_ovax_flavour,
 4.40841 ++  bfd_target_evax_flavour,
 4.40842 ++  bfd_target_mmo_flavour,
 4.40843 ++  bfd_target_mach_o_flavour,
 4.40844 ++  bfd_target_pef_flavour,
 4.40845 ++  bfd_target_pef_xlib_flavour,
 4.40846 ++  bfd_target_sym_flavour
 4.40847 ++};
 4.40848 ++
 4.40849 ++enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN };
 4.40850 ++
 4.40851 ++/* Forward declaration.  */
 4.40852 ++typedef struct bfd_link_info _bfd_link_info;
 4.40853 ++
 4.40854 ++typedef struct bfd_target
 4.40855 ++{
 4.40856 ++  /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc.  */
 4.40857 ++  char *name;
 4.40858 ++
 4.40859 ++ /* The "flavour" of a back end is a general indication about
 4.40860 ++    the contents of a file.  */
 4.40861 ++  enum bfd_flavour flavour;
 4.40862 ++
 4.40863 ++  /* The order of bytes within the data area of a file.  */
 4.40864 ++  enum bfd_endian byteorder;
 4.40865 ++
 4.40866 ++ /* The order of bytes within the header parts of a file.  */
 4.40867 ++  enum bfd_endian header_byteorder;
 4.40868 ++
 4.40869 ++  /* A mask of all the flags which an executable may have set -
 4.40870 ++     from the set <<BFD_NO_FLAGS>>, <<HAS_RELOC>>, ...<<D_PAGED>>.  */
 4.40871 ++  flagword object_flags;
 4.40872 ++
 4.40873 ++ /* A mask of all the flags which a section may have set - from
 4.40874 ++    the set <<SEC_NO_FLAGS>>, <<SEC_ALLOC>>, ...<<SET_NEVER_LOAD>>.  */
 4.40875 ++  flagword section_flags;
 4.40876 ++
 4.40877 ++ /* The character normally found at the front of a symbol.
 4.40878 ++    (if any), perhaps `_'.  */
 4.40879 ++  char symbol_leading_char;
 4.40880 ++
 4.40881 ++ /* The pad character for file names within an archive header.  */
 4.40882 ++  char ar_pad_char;
 4.40883 ++
 4.40884 ++  /* The maximum number of characters in an archive header.  */
 4.40885 ++  unsigned short ar_max_namelen;
 4.40886 ++
 4.40887 ++  /* Entries for byte swapping for data. These are different from the
 4.40888 ++     other entry points, since they don't take a BFD as the first argument.
 4.40889 ++     Certain other handlers could do the same.  */
 4.40890 ++  bfd_uint64_t   (*bfd_getx64) (const void *);
 4.40891 ++  bfd_int64_t    (*bfd_getx_signed_64) (const void *);
 4.40892 ++  void           (*bfd_putx64) (bfd_uint64_t, void *);
 4.40893 ++  bfd_vma        (*bfd_getx32) (const void *);
 4.40894 ++  bfd_signed_vma (*bfd_getx_signed_32) (const void *);
 4.40895 ++  void           (*bfd_putx32) (bfd_vma, void *);
 4.40896 ++  bfd_vma        (*bfd_getx16) (const void *);
 4.40897 ++  bfd_signed_vma (*bfd_getx_signed_16) (const void *);
 4.40898 ++  void           (*bfd_putx16) (bfd_vma, void *);
 4.40899 ++
 4.40900 ++  /* Byte swapping for the headers.  */
 4.40901 ++  bfd_uint64_t   (*bfd_h_getx64) (const void *);
 4.40902 ++  bfd_int64_t    (*bfd_h_getx_signed_64) (const void *);
 4.40903 ++  void           (*bfd_h_putx64) (bfd_uint64_t, void *);
 4.40904 ++  bfd_vma        (*bfd_h_getx32) (const void *);
 4.40905 ++  bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
 4.40906 ++  void           (*bfd_h_putx32) (bfd_vma, void *);
 4.40907 ++  bfd_vma        (*bfd_h_getx16) (const void *);
 4.40908 ++  bfd_signed_vma (*bfd_h_getx_signed_16) (const void *);
 4.40909 ++  void           (*bfd_h_putx16) (bfd_vma, void *);
 4.40910 ++
 4.40911 ++  /* Format dependent routines: these are vectors of entry points
 4.40912 ++     within the target vector structure, one for each format to check.  */
 4.40913 ++
 4.40914 ++  /* Check the format of a file being read.  Return a <<bfd_target *>> or zero.  */
 4.40915 ++  const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
 4.40916 ++
 4.40917 ++  /* Set the format of a file being written.  */
 4.40918 ++  bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
 4.40919 ++
 4.40920 ++  /* Write cached information into a file being written, at <<bfd_close>>.  */
 4.40921 ++  bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
 4.40922 ++
 4.40923 ++
 4.40924 ++  /* Generic entry points.  */
 4.40925 ++#define BFD_JUMP_TABLE_GENERIC(NAME) \
 4.40926 ++  NAME##_close_and_cleanup, \
 4.40927 ++  NAME##_bfd_free_cached_info, \
 4.40928 ++  NAME##_new_section_hook, \
 4.40929 ++  NAME##_get_section_contents, \
 4.40930 ++  NAME##_get_section_contents_in_window
 4.40931 ++
 4.40932 ++  /* Called when the BFD is being closed to do any necessary cleanup.  */
 4.40933 ++  bfd_boolean (*_close_and_cleanup) (bfd *);
 4.40934 ++  /* Ask the BFD to free all cached information.  */
 4.40935 ++  bfd_boolean (*_bfd_free_cached_info) (bfd *);
 4.40936 ++  /* Called when a new section is created.  */
 4.40937 ++  bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
 4.40938 ++  /* Read the contents of a section.  */
 4.40939 ++  bfd_boolean (*_bfd_get_section_contents)
 4.40940 ++    (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
 4.40941 ++  bfd_boolean (*_bfd_get_section_contents_in_window)
 4.40942 ++    (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
 4.40943 ++
 4.40944 ++  /* Entry points to copy private data.  */
 4.40945 ++#define BFD_JUMP_TABLE_COPY(NAME) \
 4.40946 ++  NAME##_bfd_copy_private_bfd_data, \
 4.40947 ++  NAME##_bfd_merge_private_bfd_data, \
 4.40948 ++  _bfd_generic_init_private_section_data, \
 4.40949 ++  NAME##_bfd_copy_private_section_data, \
 4.40950 ++  NAME##_bfd_copy_private_symbol_data, \
 4.40951 ++  NAME##_bfd_copy_private_header_data, \
 4.40952 ++  NAME##_bfd_set_private_flags, \
 4.40953 ++  NAME##_bfd_print_private_bfd_data
 4.40954 ++
 4.40955 ++  /* Called to copy BFD general private data from one object file
 4.40956 ++     to another.  */
 4.40957 ++  bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
 4.40958 ++  /* Called to merge BFD general private data from one object file
 4.40959 ++     to a common output file when linking.  */
 4.40960 ++  bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *);
 4.40961 ++  /* Called to initialize BFD private section data from one object file
 4.40962 ++     to another.  */
 4.40963 ++#define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
 4.40964 ++  BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info))
 4.40965 ++  bfd_boolean (*_bfd_init_private_section_data)
 4.40966 ++    (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *);
 4.40967 ++  /* Called to copy BFD private section data from one object file
 4.40968 ++     to another.  */
 4.40969 ++  bfd_boolean (*_bfd_copy_private_section_data)
 4.40970 ++    (bfd *, sec_ptr, bfd *, sec_ptr);
 4.40971 ++  /* Called to copy BFD private symbol data from one symbol
 4.40972 ++     to another.  */
 4.40973 ++  bfd_boolean (*_bfd_copy_private_symbol_data)
 4.40974 ++    (bfd *, asymbol *, bfd *, asymbol *);
 4.40975 ++  /* Called to copy BFD private header data from one object file
 4.40976 ++     to another.  */
 4.40977 ++  bfd_boolean (*_bfd_copy_private_header_data)
 4.40978 ++    (bfd *, bfd *);
 4.40979 ++  /* Called to set private backend flags.  */
 4.40980 ++  bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
 4.40981 ++
 4.40982 ++  /* Called to print private BFD data.  */
 4.40983 ++  bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
 4.40984 ++
 4.40985 ++  /* Core file entry points.  */
 4.40986 ++#define BFD_JUMP_TABLE_CORE(NAME) \
 4.40987 ++  NAME##_core_file_failing_command, \
 4.40988 ++  NAME##_core_file_failing_signal, \
 4.40989 ++  NAME##_core_file_matches_executable_p
 4.40990 ++
 4.40991 ++  char *      (*_core_file_failing_command) (bfd *);
 4.40992 ++  int         (*_core_file_failing_signal) (bfd *);
 4.40993 ++  bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
 4.40994 ++
 4.40995 ++  /* Archive entry points.  */
 4.40996 ++#define BFD_JUMP_TABLE_ARCHIVE(NAME) \
 4.40997 ++  NAME##_slurp_armap, \
 4.40998 ++  NAME##_slurp_extended_name_table, \
 4.40999 ++  NAME##_construct_extended_name_table, \
 4.41000 ++  NAME##_truncate_arname, \
 4.41001 ++  NAME##_write_armap, \
 4.41002 ++  NAME##_read_ar_hdr, \
 4.41003 ++  NAME##_openr_next_archived_file, \
 4.41004 ++  NAME##_get_elt_at_index, \
 4.41005 ++  NAME##_generic_stat_arch_elt, \
 4.41006 ++  NAME##_update_armap_timestamp
 4.41007 ++
 4.41008 ++  bfd_boolean (*_bfd_slurp_armap) (bfd *);
 4.41009 ++  bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
 4.41010 ++  bfd_boolean (*_bfd_construct_extended_name_table)
 4.41011 ++    (bfd *, char **, bfd_size_type *, const char **);
 4.41012 ++  void        (*_bfd_truncate_arname) (bfd *, const char *, char *);
 4.41013 ++  bfd_boolean (*write_armap)
 4.41014 ++    (bfd *, unsigned int, struct orl *, unsigned int, int);
 4.41015 ++  void *      (*_bfd_read_ar_hdr_fn) (bfd *);
 4.41016 ++  bfd *       (*openr_next_archived_file) (bfd *, bfd *);
 4.41017 ++#define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
 4.41018 ++  bfd *       (*_bfd_get_elt_at_index) (bfd *, symindex);
 4.41019 ++  int         (*_bfd_stat_arch_elt) (bfd *, struct stat *);
 4.41020 ++  bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
 4.41021 ++
 4.41022 ++  /* Entry points used for symbols.  */
 4.41023 ++#define BFD_JUMP_TABLE_SYMBOLS(NAME) \
 4.41024 ++  NAME##_get_symtab_upper_bound, \
 4.41025 ++  NAME##_canonicalize_symtab, \
 4.41026 ++  NAME##_make_empty_symbol, \
 4.41027 ++  NAME##_print_symbol, \
 4.41028 ++  NAME##_get_symbol_info, \
 4.41029 ++  NAME##_bfd_is_local_label_name, \
 4.41030 ++  NAME##_bfd_is_target_special_symbol, \
 4.41031 ++  NAME##_get_lineno, \
 4.41032 ++  NAME##_find_nearest_line, \
 4.41033 ++  _bfd_generic_find_line, \
 4.41034 ++  NAME##_find_inliner_info, \
 4.41035 ++  NAME##_bfd_make_debug_symbol, \
 4.41036 ++  NAME##_read_minisymbols, \
 4.41037 ++  NAME##_minisymbol_to_symbol
 4.41038 ++
 4.41039 ++  long        (*_bfd_get_symtab_upper_bound) (bfd *);
 4.41040 ++  long        (*_bfd_canonicalize_symtab)
 4.41041 ++    (bfd *, struct bfd_symbol **);
 4.41042 ++  struct bfd_symbol *
 4.41043 ++              (*_bfd_make_empty_symbol) (bfd *);
 4.41044 ++  void        (*_bfd_print_symbol)
 4.41045 ++    (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
 4.41046 ++#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
 4.41047 ++  void        (*_bfd_get_symbol_info)
 4.41048 ++    (bfd *, struct bfd_symbol *, symbol_info *);
 4.41049 ++#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
 4.41050 ++  bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
 4.41051 ++  bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
 4.41052 ++  alent *     (*_get_lineno) (bfd *, struct bfd_symbol *);
 4.41053 ++  bfd_boolean (*_bfd_find_nearest_line)
 4.41054 ++    (bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma,
 4.41055 ++     const char **, const char **, unsigned int *);
 4.41056 ++  bfd_boolean (*_bfd_find_line)
 4.41057 ++    (bfd *, struct bfd_symbol **, struct bfd_symbol *,
 4.41058 ++     const char **, unsigned int *);
 4.41059 ++  bfd_boolean (*_bfd_find_inliner_info)
 4.41060 ++    (bfd *, const char **, const char **, unsigned int *);
 4.41061 ++ /* Back-door to allow format-aware applications to create debug symbols
 4.41062 ++    while using BFD for everything else.  Currently used by the assembler
 4.41063 ++    when creating COFF files.  */
 4.41064 ++  asymbol *   (*_bfd_make_debug_symbol)
 4.41065 ++    (bfd *, void *, unsigned long size);
 4.41066 ++#define bfd_read_minisymbols(b, d, m, s) \
 4.41067 ++  BFD_SEND (b, _read_minisymbols, (b, d, m, s))
 4.41068 ++  long        (*_read_minisymbols)
 4.41069 ++    (bfd *, bfd_boolean, void **, unsigned int *);
 4.41070 ++#define bfd_minisymbol_to_symbol(b, d, m, f) \
 4.41071 ++  BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
 4.41072 ++  asymbol *   (*_minisymbol_to_symbol)
 4.41073 ++    (bfd *, bfd_boolean, const void *, asymbol *);
 4.41074 ++
 4.41075 ++  /* Routines for relocs.  */
 4.41076 ++#define BFD_JUMP_TABLE_RELOCS(NAME) \
 4.41077 ++  NAME##_get_reloc_upper_bound, \
 4.41078 ++  NAME##_canonicalize_reloc, \
 4.41079 ++  NAME##_bfd_reloc_type_lookup, \
 4.41080 ++  NAME##_bfd_reloc_name_lookup
 4.41081 ++
 4.41082 ++  long        (*_get_reloc_upper_bound) (bfd *, sec_ptr);
 4.41083 ++  long        (*_bfd_canonicalize_reloc)
 4.41084 ++    (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
 4.41085 ++  /* See documentation on reloc types.  */
 4.41086 ++  reloc_howto_type *
 4.41087 ++              (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
 4.41088 ++  reloc_howto_type *
 4.41089 ++              (*reloc_name_lookup) (bfd *, const char *);
 4.41090 ++
 4.41091 ++
 4.41092 ++  /* Routines used when writing an object file.  */
 4.41093 ++#define BFD_JUMP_TABLE_WRITE(NAME) \
 4.41094 ++  NAME##_set_arch_mach, \
 4.41095 ++  NAME##_set_section_contents
 4.41096 ++
 4.41097 ++  bfd_boolean (*_bfd_set_arch_mach)
 4.41098 ++    (bfd *, enum bfd_architecture, unsigned long);
 4.41099 ++  bfd_boolean (*_bfd_set_section_contents)
 4.41100 ++    (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
 4.41101 ++
 4.41102 ++  /* Routines used by the linker.  */
 4.41103 ++#define BFD_JUMP_TABLE_LINK(NAME) \
 4.41104 ++  NAME##_sizeof_headers, \
 4.41105 ++  NAME##_bfd_get_relocated_section_contents, \
 4.41106 ++  NAME##_bfd_relax_section, \
 4.41107 ++  NAME##_bfd_link_hash_table_create, \
 4.41108 ++  NAME##_bfd_link_hash_table_free, \
 4.41109 ++  NAME##_bfd_link_add_symbols, \
 4.41110 ++  NAME##_bfd_link_just_syms, \
 4.41111 ++  NAME##_bfd_final_link, \
 4.41112 ++  NAME##_bfd_link_split_section, \
 4.41113 ++  NAME##_bfd_gc_sections, \
 4.41114 ++  NAME##_bfd_merge_sections, \
 4.41115 ++  NAME##_bfd_is_group_section, \
 4.41116 ++  NAME##_bfd_discard_group, \
 4.41117 ++  NAME##_section_already_linked \
 4.41118 ++
 4.41119 ++  int         (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
 4.41120 ++  bfd_byte *  (*_bfd_get_relocated_section_contents)
 4.41121 ++    (bfd *, struct bfd_link_info *, struct bfd_link_order *,
 4.41122 ++     bfd_byte *, bfd_boolean, struct bfd_symbol **);
 4.41123 ++
 4.41124 ++  bfd_boolean (*_bfd_relax_section)
 4.41125 ++    (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
 4.41126 ++
 4.41127 ++  /* Create a hash table for the linker.  Different backends store
 4.41128 ++     different information in this table.  */
 4.41129 ++  struct bfd_link_hash_table *
 4.41130 ++              (*_bfd_link_hash_table_create) (bfd *);
 4.41131 ++
 4.41132 ++  /* Release the memory associated with the linker hash table.  */
 4.41133 ++  void        (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *);
 4.41134 ++
 4.41135 ++  /* Add symbols from this object file into the hash table.  */
 4.41136 ++  bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
 4.41137 ++
 4.41138 ++  /* Indicate that we are only retrieving symbol values from this section.  */
 4.41139 ++  void        (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
 4.41140 ++
 4.41141 ++  /* Do a link based on the link_order structures attached to each
 4.41142 ++     section of the BFD.  */
 4.41143 ++  bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
 4.41144 ++
 4.41145 ++  /* Should this section be split up into smaller pieces during linking.  */
 4.41146 ++  bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
 4.41147 ++
 4.41148 ++  /* Remove sections that are not referenced from the output.  */
 4.41149 ++  bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
 4.41150 ++
 4.41151 ++  /* Attempt to merge SEC_MERGE sections.  */
 4.41152 ++  bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
 4.41153 ++
 4.41154 ++  /* Is this section a member of a group?  */
 4.41155 ++  bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
 4.41156 ++
 4.41157 ++  /* Discard members of a group.  */
 4.41158 ++  bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
 4.41159 ++
 4.41160 ++  /* Check if SEC has been already linked during a reloceatable or
 4.41161 ++     final link.  */
 4.41162 ++  void (*_section_already_linked) (bfd *, struct bfd_section *,
 4.41163 ++                                   struct bfd_link_info *);
 4.41164 ++
 4.41165 ++  /* Routines to handle dynamic symbols and relocs.  */
 4.41166 ++#define BFD_JUMP_TABLE_DYNAMIC(NAME) \
 4.41167 ++  NAME##_get_dynamic_symtab_upper_bound, \
 4.41168 ++  NAME##_canonicalize_dynamic_symtab, \
 4.41169 ++  NAME##_get_synthetic_symtab, \
 4.41170 ++  NAME##_get_dynamic_reloc_upper_bound, \
 4.41171 ++  NAME##_canonicalize_dynamic_reloc
 4.41172 ++
 4.41173 ++  /* Get the amount of memory required to hold the dynamic symbols.  */
 4.41174 ++  long        (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
 4.41175 ++  /* Read in the dynamic symbols.  */
 4.41176 ++  long        (*_bfd_canonicalize_dynamic_symtab)
 4.41177 ++    (bfd *, struct bfd_symbol **);
 4.41178 ++  /* Create synthetized symbols.  */
 4.41179 ++  long        (*_bfd_get_synthetic_symtab)
 4.41180 ++    (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
 4.41181 ++     struct bfd_symbol **);
 4.41182 ++  /* Get the amount of memory required to hold the dynamic relocs.  */
 4.41183 ++  long        (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
 4.41184 ++  /* Read in the dynamic relocs.  */
 4.41185 ++  long        (*_bfd_canonicalize_dynamic_reloc)
 4.41186 ++    (bfd *, arelent **, struct bfd_symbol **);
 4.41187 ++
 4.41188 ++  /* Opposite endian version of this target.  */
 4.41189 ++  const struct bfd_target * alternative_target;
 4.41190 ++
 4.41191 ++  /* Data for use by back-end routines, which isn't
 4.41192 ++     generic enough to belong in this structure.  */
 4.41193 ++  const void *backend_data;
 4.41194 ++
 4.41195 ++} bfd_target;
 4.41196 ++
 4.41197 ++bfd_boolean bfd_set_default_target (const char *name);
 4.41198 ++
 4.41199 ++const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
 4.41200 ++
 4.41201 ++const char ** bfd_target_list (void);
 4.41202 ++
 4.41203 ++const bfd_target *bfd_search_for_target
 4.41204 ++   (int (*search_func) (const bfd_target *, void *),
 4.41205 ++    void *);
 4.41206 ++
 4.41207 ++/* Extracted from format.c.  */
 4.41208 ++bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
 4.41209 ++
 4.41210 ++bfd_boolean bfd_check_format_matches
 4.41211 ++   (bfd *abfd, bfd_format format, char ***matching);
 4.41212 ++
 4.41213 ++bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
 4.41214 ++
 4.41215 ++const char *bfd_format_string (bfd_format format);
 4.41216 ++
 4.41217 ++/* Extracted from linker.c.  */
 4.41218 ++bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
 4.41219 ++
 4.41220 ++#define bfd_link_split_section(abfd, sec) \
 4.41221 ++       BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
 4.41222 ++
 4.41223 ++void bfd_section_already_linked (bfd *abfd, asection *sec,
 4.41224 ++    struct bfd_link_info *info);
 4.41225 ++
 4.41226 ++#define bfd_section_already_linked(abfd, sec, info) \
 4.41227 ++       BFD_SEND (abfd, _section_already_linked, (abfd, sec, info))
 4.41228 ++
 4.41229 ++/* Extracted from simple.c.  */
 4.41230 ++bfd_byte *bfd_simple_get_relocated_section_contents
 4.41231 ++   (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
 4.41232 ++
 4.41233 ++#ifdef __cplusplus
 4.41234 ++}
 4.41235 ++#endif
 4.41236 ++#endif
 4.41237 +--- /dev/null
 4.41238 ++++ b/bfd/doc/libbfd.h
 4.41239 +@@ -0,0 +1,2074 @@
 4.41240 ++/* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically 
 4.41241 ++   generated from "libbfd-in.h", "init.c", "libbfd.c", "bfdio.c", 
 4.41242 ++   "bfdwin.c", "cache.c", "reloc.c", "archures.c" and "elf.c".
 4.41243 ++   Run "make headers" in your build bfd/ to regenerate.  */
 4.41244 ++
 4.41245 ++/* libbfd.h -- Declarations used by bfd library *implementation*.
 4.41246 ++   (This include file is not for users of the library.)
 4.41247 ++
 4.41248 ++   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
 4.41249 ++   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 4.41250 ++   Free Software Foundation, Inc.
 4.41251 ++
 4.41252 ++   Written by Cygnus Support.
 4.41253 ++
 4.41254 ++   This file is part of BFD, the Binary File Descriptor library.
 4.41255 ++
 4.41256 ++   This program is free software; you can redistribute it and/or modify
 4.41257 ++   it under the terms of the GNU General Public License as published by
 4.41258 ++   the Free Software Foundation; either version 3 of the License, or
 4.41259 ++   (at your option) any later version.
 4.41260 ++
 4.41261 ++   This program is distributed in the hope that it will be useful,
 4.41262 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
 4.41263 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 4.41264 ++   GNU General Public License for more details.
 4.41265 ++
 4.41266 ++   You should have received a copy of the GNU General Public License
 4.41267 ++   along with this program; if not, write to the Free Software
 4.41268 ++   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
 4.41269 ++   MA 02110-1301, USA.  */
 4.41270 ++
 4.41271 ++#include "hashtab.h"
 4.41272 ++
 4.41273 ++/* Align an address upward to a boundary, expressed as a number of bytes.
 4.41274 ++   E.g. align to an 8-byte boundary with argument of 8.  Take care never
 4.41275 ++   to wrap around if the address is within boundary-1 of the end of the
 4.41276 ++   address space.  */
 4.41277 ++#define BFD_ALIGN(this, boundary)					  \
 4.41278 ++  ((((bfd_vma) (this) + (boundary) - 1) >= (bfd_vma) (this))		  \
 4.41279 ++   ? (((bfd_vma) (this) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary)-1)) \
 4.41280 ++   : ~ (bfd_vma) 0)
 4.41281 ++
 4.41282 ++/* If you want to read and write large blocks, you might want to do it
 4.41283 ++   in quanta of this amount */
 4.41284 ++#define DEFAULT_BUFFERSIZE 8192
 4.41285 ++
 4.41286 ++/* Set a tdata field.  Can't use the other macros for this, since they
 4.41287 ++   do casts, and casting to the left of assignment isn't portable.  */
 4.41288 ++#define set_tdata(bfd, v) ((bfd)->tdata.any = (v))
 4.41289 ++
 4.41290 ++/* If BFD_IN_MEMORY is set for a BFD, then the iostream fields points
 4.41291 ++   to an instance of this structure.  */
 4.41292 ++
 4.41293 ++struct bfd_in_memory
 4.41294 ++{
 4.41295 ++  /* Size of buffer.  */
 4.41296 ++  bfd_size_type size;
 4.41297 ++  /* Buffer holding contents of BFD.  */
 4.41298 ++  bfd_byte *buffer;
 4.41299 ++};
 4.41300 ++
 4.41301 ++struct section_hash_entry
 4.41302 ++{
 4.41303 ++  struct bfd_hash_entry root;
 4.41304 ++  asection section;
 4.41305 ++};
 4.41306 ++
 4.41307 ++/* tdata for an archive.  For an input archive, cache
 4.41308 ++   needs to be free()'d.  For an output archive, symdefs do.  */
 4.41309 ++
 4.41310 ++struct artdata {
 4.41311 ++  file_ptr first_file_filepos;
 4.41312 ++  /* Speed up searching the armap */
 4.41313 ++  htab_t cache;
 4.41314 ++  bfd *archive_head;		/* Only interesting in output routines */
 4.41315 ++  carsym *symdefs;		/* the symdef entries */
 4.41316 ++  symindex symdef_count;	/* how many there are */
 4.41317 ++  char *extended_names;		/* clever intel extension */
 4.41318 ++  bfd_size_type extended_names_size; /* Size of extended names */
 4.41319 ++  /* when more compilers are standard C, this can be a time_t */
 4.41320 ++  long  armap_timestamp;	/* Timestamp value written into armap.
 4.41321 ++				   This is used for BSD archives to check
 4.41322 ++				   that the timestamp is recent enough
 4.41323 ++				   for the BSD linker to not complain,
 4.41324 ++				   just before we finish writing an
 4.41325 ++				   archive.  */
 4.41326 ++  file_ptr armap_datepos;	/* Position within archive to seek to
 4.41327 ++				   rewrite the date field.  */
 4.41328 ++  void *tdata;			/* Backend specific information.  */
 4.41329 ++};
 4.41330 ++
 4.41331 ++#define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data)
 4.41332 ++
 4.41333 ++/* Goes in bfd's arelt_data slot */
 4.41334 ++struct areltdata {
 4.41335 ++  char * arch_header;		/* it's actually a string */
 4.41336 ++  unsigned int parsed_size;	/* octets of filesize not including ar_hdr */
 4.41337 ++  char *filename;		/* null-terminated */
 4.41338 ++};
 4.41339 ++
 4.41340 ++#define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)
 4.41341 ++
 4.41342 ++extern void *bfd_malloc
 4.41343 ++  (bfd_size_type);
 4.41344 ++extern void *bfd_realloc
 4.41345 ++  (void *, bfd_size_type);
 4.41346 ++extern void *bfd_zmalloc
 4.41347 ++  (bfd_size_type);
 4.41348 ++extern void *bfd_malloc2
 4.41349 ++  (bfd_size_type, bfd_size_type);
 4.41350 ++extern void *bfd_realloc2
 4.41351 ++  (void *, bfd_size_type, bfd_size_type);
 4.41352 ++extern void *bfd_zmalloc2
 4.41353 ++  (bfd_size_type, bfd_size_type);
 4.41354 ++
 4.41355 ++extern void _bfd_default_error_handler (const char *s, ...);
 4.41356 ++extern bfd_error_handler_type _bfd_error_handler;
 4.41357 ++
 4.41358 ++/* These routines allocate and free things on the BFD's objalloc.  */
 4.41359 ++
 4.41360 ++extern void *bfd_alloc
 4.41361 ++  (bfd *, bfd_size_type);
 4.41362 ++extern void *bfd_zalloc
 4.41363 ++  (bfd *, bfd_size_type);
 4.41364 ++extern void *bfd_alloc2
 4.41365 ++  (bfd *, bfd_size_type, bfd_size_type);
 4.41366 ++extern void *bfd_zalloc2
 4.41367 ++  (bfd *, bfd_size_type, bfd_size_type);
 4.41368 ++extern void bfd_release
 4.41369 ++  (bfd *, void *);
 4.41370 ++
 4.41371 ++bfd * _bfd_create_empty_archive_element_shell
 4.41372 ++  (bfd *obfd);
 4.41373 ++bfd * _bfd_look_for_bfd_in_cache
 4.41374 ++  (bfd *, file_ptr);
 4.41375 ++bfd_boolean _bfd_add_bfd_to_archive_cache
 4.41376 ++  (bfd *, file_ptr, bfd *);
 4.41377 ++bfd_boolean _bfd_generic_mkarchive
 4.41378 ++  (bfd *abfd);
 4.41379 ++const bfd_target *bfd_generic_archive_p
 4.41380 ++  (bfd *abfd);
 4.41381 ++bfd_boolean bfd_slurp_armap
 4.41382 ++  (bfd *abfd);
 4.41383 ++bfd_boolean bfd_slurp_bsd_armap_f2
 4.41384 ++  (bfd *abfd);
 4.41385 ++#define bfd_slurp_bsd_armap bfd_slurp_armap
 4.41386 ++#define bfd_slurp_coff_armap bfd_slurp_armap
 4.41387 ++bfd_boolean _bfd_slurp_extended_name_table
 4.41388 ++  (bfd *abfd);
 4.41389 ++extern bfd_boolean _bfd_construct_extended_name_table
 4.41390 ++  (bfd *, bfd_boolean, char **, bfd_size_type *);
 4.41391 ++bfd_boolean _bfd_write_archive_contents
 4.41392 ++  (bfd *abfd);
 4.41393 ++bfd_boolean _bfd_compute_and_write_armap
 4.41394 ++  (bfd *, unsigned int elength);
 4.41395 ++bfd *_bfd_get_elt_at_filepos
 4.41396 ++  (bfd *archive, file_ptr filepos);
 4.41397 ++extern bfd *_bfd_generic_get_elt_at_index
 4.41398 ++  (bfd *, symindex);
 4.41399 ++bfd * _bfd_new_bfd
 4.41400 ++  (void);
 4.41401 ++void _bfd_delete_bfd
 4.41402 ++  (bfd *);
 4.41403 ++bfd_boolean _bfd_free_cached_info
 4.41404 ++  (bfd *);
 4.41405 ++
 4.41406 ++bfd_boolean bfd_false
 4.41407 ++  (bfd *ignore);
 4.41408 ++bfd_boolean bfd_true
 4.41409 ++  (bfd *ignore);
 4.41410 ++void *bfd_nullvoidptr
 4.41411 ++  (bfd *ignore);
 4.41412 ++int bfd_0
 4.41413 ++  (bfd *ignore);
 4.41414 ++unsigned int bfd_0u
 4.41415 ++  (bfd *ignore);
 4.41416 ++long bfd_0l
 4.41417 ++  (bfd *ignore);
 4.41418 ++long _bfd_n1
 4.41419 ++  (bfd *ignore);
 4.41420 ++void bfd_void
 4.41421 ++  (bfd *ignore);
 4.41422 ++
 4.41423 ++bfd *_bfd_new_bfd_contained_in
 4.41424 ++  (bfd *);
 4.41425 ++const bfd_target *_bfd_dummy_target
 4.41426 ++  (bfd *abfd);
 4.41427 ++
 4.41428 ++void bfd_dont_truncate_arname
 4.41429 ++  (bfd *abfd, const char *filename, char *hdr);
 4.41430 ++void bfd_bsd_truncate_arname
 4.41431 ++  (bfd *abfd, const char *filename, char *hdr);
 4.41432 ++void bfd_gnu_truncate_arname
 4.41433 ++  (bfd *abfd, const char *filename, char *hdr);
 4.41434 ++
 4.41435 ++bfd_boolean bsd_write_armap
 4.41436 ++  (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count,
 4.41437 ++   int stridx);
 4.41438 ++
 4.41439 ++bfd_boolean coff_write_armap
 4.41440 ++  (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count,
 4.41441 ++   int stridx);
 4.41442 ++
 4.41443 ++extern void *_bfd_generic_read_ar_hdr
 4.41444 ++  (bfd *);
 4.41445 ++extern void _bfd_ar_spacepad
 4.41446 ++  (char *, size_t, const char *, long);
 4.41447 ++
 4.41448 ++extern void *_bfd_generic_read_ar_hdr_mag
 4.41449 ++  (bfd *, const char *);
 4.41450 ++
 4.41451 ++bfd * bfd_generic_openr_next_archived_file
 4.41452 ++  (bfd *archive, bfd *last_file);
 4.41453 ++
 4.41454 ++int bfd_generic_stat_arch_elt
 4.41455 ++  (bfd *, struct stat *);
 4.41456 ++
 4.41457 ++#define _bfd_read_ar_hdr(abfd) \
 4.41458 ++  BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd))
 4.41459 ++
 4.41460 ++/* Generic routines to use for BFD_JUMP_TABLE_GENERIC.  Use
 4.41461 ++   BFD_JUMP_TABLE_GENERIC (_bfd_generic).  */
 4.41462 ++
 4.41463 ++#define _bfd_generic_close_and_cleanup bfd_true
 4.41464 ++#define _bfd_generic_bfd_free_cached_info bfd_true
 4.41465 ++extern bfd_boolean _bfd_generic_new_section_hook
 4.41466 ++  (bfd *, asection *);
 4.41467 ++extern bfd_boolean _bfd_generic_get_section_contents
 4.41468 ++  (bfd *, asection *, void *, file_ptr, bfd_size_type);
 4.41469 ++extern bfd_boolean _bfd_generic_get_section_contents_in_window
 4.41470 ++  (bfd *, asection *, bfd_window *, file_ptr, bfd_size_type);
 4.41471 ++
 4.41472 ++/* Generic routines to use for BFD_JUMP_TABLE_COPY.  Use
 4.41473 ++   BFD_JUMP_TABLE_COPY (_bfd_generic).  */
 4.41474 ++
 4.41475 ++#define _bfd_generic_bfd_copy_private_bfd_data \
 4.41476 ++  ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
 4.41477 ++#define _bfd_generic_bfd_merge_private_bfd_data \
 4.41478 ++  ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
 4.41479 ++#define _bfd_generic_bfd_set_private_flags \
 4.41480 ++  ((bfd_boolean (*) (bfd *, flagword)) bfd_true)
 4.41481 ++#define _bfd_generic_bfd_copy_private_section_data \
 4.41482 ++  ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true)
 4.41483 ++#define _bfd_generic_bfd_copy_private_symbol_data \
 4.41484 ++  ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true)
 4.41485 ++#define _bfd_generic_bfd_copy_private_header_data \
 4.41486 ++  ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
 4.41487 ++#define _bfd_generic_bfd_print_private_bfd_data \
 4.41488 ++  ((bfd_boolean (*) (bfd *, void *)) bfd_true)
 4.41489 ++
 4.41490 ++extern bfd_boolean _bfd_generic_init_private_section_data
 4.41491 ++  (bfd *, asection *, bfd *, asection *, struct bfd_link_info *);
 4.41492 ++
 4.41493 ++/* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file
 4.41494 ++   support.  Use BFD_JUMP_TABLE_CORE (_bfd_nocore).  */
 4.41495 ++
 4.41496 ++extern char *_bfd_nocore_core_file_failing_command
 4.41497 ++  (bfd *);
 4.41498 ++extern int _bfd_nocore_core_file_failing_signal
 4.41499 ++  (bfd *);
 4.41500 ++extern bfd_boolean _bfd_nocore_core_file_matches_executable_p
 4.41501 ++  (bfd *, bfd *);
 4.41502 ++
 4.41503 ++/* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive
 4.41504 ++   file support.  Use BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive).  */
 4.41505 ++
 4.41506 ++#define _bfd_noarchive_slurp_armap bfd_false
 4.41507 ++#define _bfd_noarchive_slurp_extended_name_table bfd_false
 4.41508 ++#define _bfd_noarchive_construct_extended_name_table \
 4.41509 ++  ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) \
 4.41510 ++   bfd_false)
 4.41511 ++#define _bfd_noarchive_truncate_arname \
 4.41512 ++  ((void (*) (bfd *, const char *, char *)) bfd_void)
 4.41513 ++#define _bfd_noarchive_write_armap \
 4.41514 ++  ((bfd_boolean (*) (bfd *, unsigned int, struct orl *, unsigned int, int)) \
 4.41515 ++   bfd_false)
 4.41516 ++#define _bfd_noarchive_read_ar_hdr bfd_nullvoidptr
 4.41517 ++#define _bfd_noarchive_openr_next_archived_file \
 4.41518 ++  ((bfd *(*) (bfd *, bfd *)) bfd_nullvoidptr)
 4.41519 ++#define _bfd_noarchive_get_elt_at_index \
 4.41520 ++  ((bfd *(*) (bfd *, symindex)) bfd_nullvoidptr)
 4.41521 ++#define _bfd_noarchive_generic_stat_arch_elt bfd_generic_stat_arch_elt
 4.41522 ++#define _bfd_noarchive_update_armap_timestamp bfd_false
 4.41523 ++
 4.41524 ++/* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get BSD style
 4.41525 ++   archives.  Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd).  */
 4.41526 ++
 4.41527 ++#define _bfd_archive_bsd_slurp_armap bfd_slurp_bsd_armap
 4.41528 ++#define _bfd_archive_bsd_slurp_extended_name_table \
 4.41529 ++  _bfd_slurp_extended_name_table
 4.41530 ++extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table
 4.41531 ++  (bfd *, char **, bfd_size_type *, const char **);
 4.41532 ++#define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname
 4.41533 ++#define _bfd_archive_bsd_write_armap bsd_write_armap
 4.41534 ++#define _bfd_archive_bsd_read_ar_hdr _bfd_generic_read_ar_hdr
 4.41535 ++#define _bfd_archive_bsd_openr_next_archived_file \
 4.41536 ++  bfd_generic_openr_next_archived_file
 4.41537 ++#define _bfd_archive_bsd_get_elt_at_index _bfd_generic_get_elt_at_index
 4.41538 ++#define _bfd_archive_bsd_generic_stat_arch_elt \
 4.41539 ++  bfd_generic_stat_arch_elt
 4.41540 ++extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp
 4.41541 ++  (bfd *);
 4.41542 ++
 4.41543 ++/* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style
 4.41544 ++   archives.  Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff).  */
 4.41545 ++
 4.41546 ++#define _bfd_archive_coff_slurp_armap bfd_slurp_coff_armap
 4.41547 ++#define _bfd_archive_coff_slurp_extended_name_table \
 4.41548 ++  _bfd_slurp_extended_name_table
 4.41549 ++extern bfd_boolean _bfd_archive_coff_construct_extended_name_table
 4.41550 ++  (bfd *, char **, bfd_size_type *, const char **);
 4.41551 ++#define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname
 4.41552 ++#define _bfd_archive_coff_write_armap coff_write_armap
 4.41553 ++#define _bfd_archive_coff_read_ar_hdr _bfd_generic_read_ar_hdr
 4.41554 ++#define _bfd_archive_coff_openr_next_archived_file \
 4.41555 ++  bfd_generic_openr_next_archived_file
 4.41556 ++#define _bfd_archive_coff_get_elt_at_index _bfd_generic_get_elt_at_index
 4.41557 ++#define _bfd_archive_coff_generic_stat_arch_elt \
 4.41558 ++  bfd_generic_stat_arch_elt
 4.41559 ++#define _bfd_archive_coff_update_armap_timestamp bfd_true
 4.41560 ++
 4.41561 ++/* Routines to use for BFD_JUMP_TABLE_SYMBOLS where there is no symbol
 4.41562 ++   support.  Use BFD_JUMP_TABLE_SYMBOLS (_bfd_nosymbols).  */
 4.41563 ++
 4.41564 ++#define _bfd_nosymbols_get_symtab_upper_bound _bfd_n1
 4.41565 ++#define _bfd_nosymbols_canonicalize_symtab \
 4.41566 ++  ((long (*) (bfd *, asymbol **)) _bfd_n1)
 4.41567 ++#define _bfd_nosymbols_make_empty_symbol _bfd_generic_make_empty_symbol
 4.41568 ++#define _bfd_nosymbols_print_symbol \
 4.41569 ++  ((void (*) (bfd *, void *, asymbol *, bfd_print_symbol_type)) bfd_void)
 4.41570 ++#define _bfd_nosymbols_get_symbol_info \
 4.41571 ++  ((void (*) (bfd *, asymbol *, symbol_info *)) bfd_void)
 4.41572 ++#define _bfd_nosymbols_bfd_is_local_label_name \
 4.41573 ++  ((bfd_boolean (*) (bfd *, const char *)) bfd_false)
 4.41574 ++#define _bfd_nosymbols_bfd_is_target_special_symbol \
 4.41575 ++  ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
 4.41576 ++#define _bfd_nosymbols_get_lineno \
 4.41577 ++  ((alent *(*) (bfd *, asymbol *)) bfd_nullvoidptr)
 4.41578 ++#define _bfd_nosymbols_find_nearest_line \
 4.41579 ++  ((bfd_boolean (*) (bfd *, asection *, asymbol **, bfd_vma, const char **, \
 4.41580 ++		     const char **, unsigned int *)) \
 4.41581 ++   bfd_false)
 4.41582 ++#define _bfd_nosymbols_find_inliner_info \
 4.41583 ++  ((bfd_boolean (*) (bfd *, const char **, const char **, unsigned int *)) \
 4.41584 ++   bfd_false)
 4.41585 ++#define _bfd_nosymbols_bfd_make_debug_symbol \
 4.41586 ++  ((asymbol *(*) (bfd *, void *, unsigned long)) bfd_nullvoidptr)
 4.41587 ++#define _bfd_nosymbols_read_minisymbols \
 4.41588 ++  ((long (*) (bfd *, bfd_boolean, void **, unsigned int *)) _bfd_n1)
 4.41589 ++#define _bfd_nosymbols_minisymbol_to_symbol \
 4.41590 ++  ((asymbol *(*) (bfd *, bfd_boolean, const void *, asymbol *)) \
 4.41591 ++   bfd_nullvoidptr)
 4.41592 ++
 4.41593 ++/* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc
 4.41594 ++   support.  Use BFD_JUMP_TABLE_RELOCS (_bfd_norelocs).  */
 4.41595 ++
 4.41596 ++extern long _bfd_norelocs_get_reloc_upper_bound (bfd *, asection *);
 4.41597 ++extern long _bfd_norelocs_canonicalize_reloc (bfd *, asection *,
 4.41598 ++					      arelent **, asymbol **);
 4.41599 ++#define _bfd_norelocs_bfd_reloc_type_lookup \
 4.41600 ++  ((reloc_howto_type *(*) (bfd *, bfd_reloc_code_real_type)) bfd_nullvoidptr)
 4.41601 ++#define _bfd_norelocs_bfd_reloc_name_lookup \
 4.41602 ++  ((reloc_howto_type *(*) (bfd *, const char *)) bfd_nullvoidptr)
 4.41603 ++
 4.41604 ++/* Routines to use for BFD_JUMP_TABLE_WRITE for targets which may not
 4.41605 ++   be written.  Use BFD_JUMP_TABLE_WRITE (_bfd_nowrite).  */
 4.41606 ++
 4.41607 ++#define _bfd_nowrite_set_arch_mach \
 4.41608 ++  ((bfd_boolean (*) (bfd *, enum bfd_architecture, unsigned long)) \
 4.41609 ++   bfd_false)
 4.41610 ++#define _bfd_nowrite_set_section_contents \
 4.41611 ++  ((bfd_boolean (*) (bfd *, asection *, const void *, file_ptr, bfd_size_type)) \
 4.41612 ++   bfd_false)
 4.41613 ++
 4.41614 ++/* Generic routines to use for BFD_JUMP_TABLE_WRITE.  Use
 4.41615 ++   BFD_JUMP_TABLE_WRITE (_bfd_generic).  */
 4.41616 ++
 4.41617 ++#define _bfd_generic_set_arch_mach bfd_default_set_arch_mach
 4.41618 ++extern bfd_boolean _bfd_generic_set_section_contents
 4.41619 ++  (bfd *, asection *, const void *, file_ptr, bfd_size_type);
 4.41620 ++
 4.41621 ++/* Routines to use for BFD_JUMP_TABLE_LINK for targets which do not
 4.41622 ++   support linking.  Use BFD_JUMP_TABLE_LINK (_bfd_nolink).  */
 4.41623 ++
 4.41624 ++#define _bfd_nolink_sizeof_headers \
 4.41625 ++  ((int (*) (bfd *, struct bfd_link_info *)) bfd_0)
 4.41626 ++#define _bfd_nolink_bfd_get_relocated_section_contents \
 4.41627 ++  ((bfd_byte *(*) (bfd *, struct bfd_link_info *, struct bfd_link_order *, \
 4.41628 ++		   bfd_byte *, bfd_boolean, asymbol **)) \
 4.41629 ++   bfd_nullvoidptr)
 4.41630 ++#define _bfd_nolink_bfd_relax_section \
 4.41631 ++  ((bfd_boolean (*) \
 4.41632 ++    (bfd *, asection *, struct bfd_link_info *, bfd_boolean *)) \
 4.41633 ++   bfd_false)
 4.41634 ++#define _bfd_nolink_bfd_gc_sections \
 4.41635 ++  ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
 4.41636 ++   bfd_false)
 4.41637 ++#define _bfd_nolink_bfd_merge_sections \
 4.41638 ++  ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
 4.41639 ++   bfd_false)
 4.41640 ++#define _bfd_nolink_bfd_is_group_section \
 4.41641 ++  ((bfd_boolean (*) (bfd *, const struct bfd_section *)) \
 4.41642 ++   bfd_false)
 4.41643 ++#define _bfd_nolink_bfd_discard_group \
 4.41644 ++  ((bfd_boolean (*) (bfd *, struct bfd_section *)) \
 4.41645 ++   bfd_false)
 4.41646 ++#define _bfd_nolink_bfd_link_hash_table_create \
 4.41647 ++  ((struct bfd_link_hash_table *(*) (bfd *)) bfd_nullvoidptr)
 4.41648 ++#define _bfd_nolink_bfd_link_hash_table_free \
 4.41649 ++  ((void (*) (struct bfd_link_hash_table *)) bfd_void)
 4.41650 ++#define _bfd_nolink_bfd_link_add_symbols \
 4.41651 ++  ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false)
 4.41652 ++#define _bfd_nolink_bfd_link_just_syms \
 4.41653 ++  ((void (*) (asection *, struct bfd_link_info *)) bfd_void)
 4.41654 ++#define _bfd_nolink_bfd_final_link \
 4.41655 ++  ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false)
 4.41656 ++#define _bfd_nolink_bfd_link_split_section \
 4.41657 ++  ((bfd_boolean (*) (bfd *, struct bfd_section *)) bfd_false)
 4.41658 ++#define _bfd_nolink_section_already_linked \
 4.41659 ++  ((void (*) (bfd *, struct bfd_section *, struct bfd_link_info *)) bfd_void)
 4.41660 ++
 4.41661 ++/* Routines to use for BFD_JUMP_TABLE_DYNAMIC for targets which do not
 4.41662 ++   have dynamic symbols or relocs.  Use BFD_JUMP_TABLE_DYNAMIC
 4.41663 ++   (_bfd_nodynamic).  */
 4.41664 ++
 4.41665 ++#define _bfd_nodynamic_get_dynamic_symtab_upper_bound _bfd_n1
 4.41666 ++#define _bfd_nodynamic_canonicalize_dynamic_symtab \
 4.41667 ++  ((long (*) (bfd *, asymbol **)) _bfd_n1)
 4.41668 ++#define _bfd_nodynamic_get_synthetic_symtab \
 4.41669 ++  ((long (*) (bfd *, long, asymbol **, long, asymbol **, asymbol **)) _bfd_n1)
 4.41670 ++#define _bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_n1
 4.41671 ++#define _bfd_nodynamic_canonicalize_dynamic_reloc \
 4.41672 ++  ((long (*) (bfd *, arelent **, asymbol **)) _bfd_n1)
 4.41673 ++
 4.41674 ++/* Generic routine to determine of the given symbol is a local
 4.41675 ++   label.  */
 4.41676 ++extern bfd_boolean bfd_generic_is_local_label_name
 4.41677 ++  (bfd *, const char *);
 4.41678 ++
 4.41679 ++/* Generic minisymbol routines.  */
 4.41680 ++extern long _bfd_generic_read_minisymbols
 4.41681 ++  (bfd *, bfd_boolean, void **, unsigned int *);
 4.41682 ++extern asymbol *_bfd_generic_minisymbol_to_symbol
 4.41683 ++  (bfd *, bfd_boolean, const void *, asymbol *);
 4.41684 ++
 4.41685 ++/* Find the nearest line using .stab/.stabstr sections.  */
 4.41686 ++extern bfd_boolean _bfd_stab_section_find_nearest_line
 4.41687 ++  (bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *,
 4.41688 ++   const char **, const char **, unsigned int *, void **);
 4.41689 ++
 4.41690 ++/* Find the nearest line using DWARF 1 debugging information.  */
 4.41691 ++extern bfd_boolean _bfd_dwarf1_find_nearest_line
 4.41692 ++  (bfd *, asection *, asymbol **, bfd_vma, const char **,
 4.41693 ++   const char **, unsigned int *);
 4.41694 ++
 4.41695 ++/* Find the nearest line using DWARF 2 debugging information.  */
 4.41696 ++extern bfd_boolean _bfd_dwarf2_find_nearest_line
 4.41697 ++  (bfd *, asection *, asymbol **, bfd_vma, const char **, const char **,
 4.41698 ++   unsigned int *, unsigned int, void **);
 4.41699 ++
 4.41700 ++/* Find the line using DWARF 2 debugging information.  */
 4.41701 ++extern bfd_boolean _bfd_dwarf2_find_line
 4.41702 ++  (bfd *, asymbol **, asymbol *, const char **,
 4.41703 ++   unsigned int *, unsigned int, void **);
 4.41704 ++
 4.41705 ++bfd_boolean _bfd_generic_find_line
 4.41706 ++  (bfd *, asymbol **, asymbol *, const char **, unsigned int *);
 4.41707 ++
 4.41708 ++/* Find inliner info after calling bfd_find_nearest_line. */
 4.41709 ++extern bfd_boolean _bfd_dwarf2_find_inliner_info
 4.41710 ++  (bfd *, const char **, const char **, unsigned int *, void **);
 4.41711 ++  
 4.41712 ++/* Create a new section entry.  */
 4.41713 ++extern struct bfd_hash_entry *bfd_section_hash_newfunc
 4.41714 ++  (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
 4.41715 ++
 4.41716 ++/* A routine to create entries for a bfd_link_hash_table.  */
 4.41717 ++extern struct bfd_hash_entry *_bfd_link_hash_newfunc
 4.41718 ++  (struct bfd_hash_entry *entry, struct bfd_hash_table *table,
 4.41719 ++   const char *string);
 4.41720 ++
 4.41721 ++/* Initialize a bfd_link_hash_table.  */
 4.41722 ++extern bfd_boolean _bfd_link_hash_table_init
 4.41723 ++  (struct bfd_link_hash_table *, bfd *,
 4.41724 ++   struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
 4.41725 ++			       struct bfd_hash_table *,
 4.41726 ++			       const char *),
 4.41727 ++   unsigned int);
 4.41728 ++
 4.41729 ++/* Generic link hash table creation routine.  */
 4.41730 ++extern struct bfd_link_hash_table *_bfd_generic_link_hash_table_create
 4.41731 ++  (bfd *);
 4.41732 ++
 4.41733 ++/* Generic link hash table destruction routine.  */
 4.41734 ++extern void _bfd_generic_link_hash_table_free
 4.41735 ++  (struct bfd_link_hash_table *);
 4.41736 ++
 4.41737 ++/* Generic add symbol routine.  */
 4.41738 ++extern bfd_boolean _bfd_generic_link_add_symbols
 4.41739 ++  (bfd *, struct bfd_link_info *);
 4.41740 ++
 4.41741 ++/* Generic add symbol routine.  This version is used by targets for
 4.41742 ++   which the linker must collect constructors and destructors by name,
 4.41743 ++   as the collect2 program does.  */
 4.41744 ++extern bfd_boolean _bfd_generic_link_add_symbols_collect
 4.41745 ++  (bfd *, struct bfd_link_info *);
 4.41746 ++
 4.41747 ++/* Generic archive add symbol routine.  */
 4.41748 ++extern bfd_boolean _bfd_generic_link_add_archive_symbols
 4.41749 ++  (bfd *, struct bfd_link_info *,
 4.41750 ++   bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *));
 4.41751 ++
 4.41752 ++/* Forward declaration to avoid prototype errors.  */
 4.41753 ++typedef struct bfd_link_hash_entry _bfd_link_hash_entry;
 4.41754 ++
 4.41755 ++/* Generic routine to add a single symbol.  */
 4.41756 ++extern bfd_boolean _bfd_generic_link_add_one_symbol
 4.41757 ++  (struct bfd_link_info *, bfd *, const char *name, flagword,
 4.41758 ++   asection *, bfd_vma, const char *, bfd_boolean copy,
 4.41759 ++   bfd_boolean constructor, struct bfd_link_hash_entry **);
 4.41760 ++
 4.41761 ++/* Generic routine to mark section as supplying symbols only.  */
 4.41762 ++extern void _bfd_generic_link_just_syms
 4.41763 ++  (asection *, struct bfd_link_info *);
 4.41764 ++
 4.41765 ++/* Generic link routine.  */
 4.41766 ++extern bfd_boolean _bfd_generic_final_link
 4.41767 ++  (bfd *, struct bfd_link_info *);
 4.41768 ++
 4.41769 ++extern bfd_boolean _bfd_generic_link_split_section
 4.41770 ++  (bfd *, struct bfd_section *);
 4.41771 ++
 4.41772 ++extern void _bfd_generic_section_already_linked
 4.41773 ++  (bfd *, struct bfd_section *, struct bfd_link_info *);
 4.41774 ++
 4.41775 ++/* Generic reloc_link_order processing routine.  */
 4.41776 ++extern bfd_boolean _bfd_generic_reloc_link_order
 4.41777 ++  (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *);
 4.41778 ++
 4.41779 ++/* Default link order processing routine.  */
 4.41780 ++extern bfd_boolean _bfd_default_link_order
 4.41781 ++  (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *);
 4.41782 ++
 4.41783 ++/* Count the number of reloc entries in a link order list.  */
 4.41784 ++extern unsigned int _bfd_count_link_order_relocs
 4.41785 ++  (struct bfd_link_order *);
 4.41786 ++
 4.41787 ++/* Final link relocation routine.  */
 4.41788 ++extern bfd_reloc_status_type _bfd_final_link_relocate
 4.41789 ++  (reloc_howto_type *, bfd *, asection *, bfd_byte *,
 4.41790 ++   bfd_vma, bfd_vma, bfd_vma);
 4.41791 ++
 4.41792 ++/* Relocate a particular location by a howto and a value.  */
 4.41793 ++extern bfd_reloc_status_type _bfd_relocate_contents
 4.41794 ++  (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *);
 4.41795 ++
 4.41796 ++/* Clear a given location using a given howto.  */
 4.41797 ++extern void _bfd_clear_contents (reloc_howto_type *howto, bfd *input_bfd,
 4.41798 ++				 bfd_byte *location);
 4.41799 ++
 4.41800 ++/* Link stabs in sections in the first pass.  */
 4.41801 ++
 4.41802 ++extern bfd_boolean _bfd_link_section_stabs
 4.41803 ++  (bfd *, struct stab_info *, asection *, asection *, void **,
 4.41804 ++   bfd_size_type *);
 4.41805 ++
 4.41806 ++/* Eliminate stabs for discarded functions and symbols.  */
 4.41807 ++extern bfd_boolean _bfd_discard_section_stabs
 4.41808 ++  (bfd *, asection *, void *, bfd_boolean (*) (bfd_vma, void *), void *);
 4.41809 ++
 4.41810 ++/* Write out the .stab section when linking stabs in sections.  */
 4.41811 ++
 4.41812 ++extern bfd_boolean _bfd_write_section_stabs
 4.41813 ++  (bfd *, struct stab_info *, asection *, void **, bfd_byte *);
 4.41814 ++
 4.41815 ++/* Write out the .stabstr string table when linking stabs in sections.  */
 4.41816 ++
 4.41817 ++extern bfd_boolean _bfd_write_stab_strings
 4.41818 ++  (bfd *, struct stab_info *);
 4.41819 ++
 4.41820 ++/* Find an offset within a .stab section when linking stabs in
 4.41821 ++   sections.  */
 4.41822 ++
 4.41823 ++extern bfd_vma _bfd_stab_section_offset
 4.41824 ++  (asection *, void *, bfd_vma);
 4.41825 ++
 4.41826 ++/* Register a SEC_MERGE section as a candidate for merging.  */
 4.41827 ++
 4.41828 ++extern bfd_boolean _bfd_add_merge_section
 4.41829 ++  (bfd *, void **, asection *, void **);
 4.41830 ++
 4.41831 ++/* Attempt to merge SEC_MERGE sections.  */
 4.41832 ++
 4.41833 ++extern bfd_boolean _bfd_merge_sections
 4.41834 ++  (bfd *, struct bfd_link_info *, void *, void (*) (bfd *, asection *));
 4.41835 ++
 4.41836 ++/* Write out a merged section.  */
 4.41837 ++
 4.41838 ++extern bfd_boolean _bfd_write_merged_section
 4.41839 ++  (bfd *, asection *, void *);
 4.41840 ++
 4.41841 ++/* Find an offset within a modified SEC_MERGE section.  */
 4.41842 ++
 4.41843 ++extern bfd_vma _bfd_merged_section_offset
 4.41844 ++  (bfd *, asection **, void *, bfd_vma);
 4.41845 ++
 4.41846 ++/* Create a string table.  */
 4.41847 ++extern struct bfd_strtab_hash *_bfd_stringtab_init
 4.41848 ++  (void);
 4.41849 ++
 4.41850 ++/* Create an XCOFF .debug section style string table.  */
 4.41851 ++extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init
 4.41852 ++  (void);
 4.41853 ++
 4.41854 ++/* Free a string table.  */
 4.41855 ++extern void _bfd_stringtab_free
 4.41856 ++  (struct bfd_strtab_hash *);
 4.41857 ++
 4.41858 ++/* Get the size of a string table.  */
 4.41859 ++extern bfd_size_type _bfd_stringtab_size
 4.41860 ++  (struct bfd_strtab_hash *);
 4.41861 ++
 4.41862 ++/* Add a string to a string table.  */
 4.41863 ++extern bfd_size_type _bfd_stringtab_add
 4.41864 ++  (struct bfd_strtab_hash *, const char *, bfd_boolean hash, bfd_boolean copy);
 4.41865 ++
 4.41866 ++/* Write out a string table.  */
 4.41867 ++extern bfd_boolean _bfd_stringtab_emit
 4.41868 ++  (bfd *, struct bfd_strtab_hash *);
 4.41869 ++
 4.41870 ++/* Check that endianness of input and output file match.  */
 4.41871 ++extern bfd_boolean _bfd_generic_verify_endian_match
 4.41872 ++  (bfd *, bfd *);
 4.41873 ++
 4.41874 ++/* Macros to tell if bfds are read or write enabled.
 4.41875 ++
 4.41876 ++   Note that bfds open for read may be scribbled into if the fd passed
 4.41877 ++   to bfd_fdopenr is actually open both for read and write
 4.41878 ++   simultaneously.  However an output bfd will never be open for
 4.41879 ++   read.  Therefore sometimes you want to check bfd_read_p or
 4.41880 ++   !bfd_read_p, and only sometimes bfd_write_p.
 4.41881 ++*/
 4.41882 ++
 4.41883 ++#define	bfd_read_p(abfd) \
 4.41884 ++  ((abfd)->direction == read_direction || (abfd)->direction == both_direction)
 4.41885 ++#define	bfd_write_p(abfd) \
 4.41886 ++  ((abfd)->direction == write_direction || (abfd)->direction == both_direction)
 4.41887 ++
 4.41888 ++void bfd_assert
 4.41889 ++  (const char*,int);
 4.41890 ++
 4.41891 ++#define BFD_ASSERT(x) \
 4.41892 ++  do { if (!(x)) bfd_assert(__FILE__,__LINE__); } while (0)
 4.41893 ++
 4.41894 ++#define BFD_FAIL() \
 4.41895 ++  do { bfd_assert(__FILE__,__LINE__); } while (0)
 4.41896 ++
 4.41897 ++extern void _bfd_abort
 4.41898 ++  (const char *, int, const char *) ATTRIBUTE_NORETURN;
 4.41899 ++
 4.41900 ++/* if gcc >= 2.6, we can give a function name, too */
 4.41901 ++#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6)
 4.41902 ++#define __PRETTY_FUNCTION__  ((char *) NULL)
 4.41903 ++#endif
 4.41904 ++
 4.41905 ++#undef abort
 4.41906 ++#define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
 4.41907 ++
 4.41908 ++/* Manipulate a system FILE but using BFD's "file_ptr", rather than
 4.41909 ++   the system "off_t" or "off64_t", as the offset.  */
 4.41910 ++extern file_ptr real_ftell (FILE *file);
 4.41911 ++extern int real_fseek (FILE *file, file_ptr offset, int whence);
 4.41912 ++extern FILE *real_fopen (const char *filename, const char *modes);
 4.41913 ++
 4.41914 ++/* List of supported target vectors, and the default vector (if
 4.41915 ++   bfd_default_vector[0] is NULL, there is no default).  */
 4.41916 ++extern const bfd_target * const *bfd_target_vector;
 4.41917 ++extern const bfd_target *bfd_default_vector[];
 4.41918 ++
 4.41919 ++/* List of associated target vectors.  */
 4.41920 ++extern const bfd_target * const *bfd_associated_vector;
 4.41921 ++
 4.41922 ++/* Functions shared by the ECOFF and MIPS ELF backends, which have no
 4.41923 ++   other common header files.  */
 4.41924 ++
 4.41925 ++#if defined(__STDC__) || defined(ALMOST_STDC)
 4.41926 ++struct ecoff_find_line;
 4.41927 ++#endif
 4.41928 ++
 4.41929 ++extern bfd_boolean _bfd_ecoff_locate_line
 4.41930 ++  (bfd *, asection *, bfd_vma, struct ecoff_debug_info * const,
 4.41931 ++   const struct ecoff_debug_swap * const, struct ecoff_find_line *,
 4.41932 ++   const char **, const char **, unsigned int *);
 4.41933 ++extern bfd_boolean _bfd_ecoff_get_accumulated_pdr
 4.41934 ++  (void *, bfd_byte *);
 4.41935 ++extern bfd_boolean _bfd_ecoff_get_accumulated_sym
 4.41936 ++  (void *, bfd_byte *);
 4.41937 ++extern bfd_boolean _bfd_ecoff_get_accumulated_ss
 4.41938 ++  (void *, bfd_byte *);
 4.41939 ++
 4.41940 ++extern bfd_vma _bfd_get_gp_value
 4.41941 ++  (bfd *);
 4.41942 ++extern void _bfd_set_gp_value
 4.41943 ++  (bfd *, bfd_vma);
 4.41944 ++
 4.41945 ++/* Function shared by the COFF and ELF SH backends, which have no
 4.41946 ++   other common header files.  */
 4.41947 ++
 4.41948 ++#ifndef _bfd_sh_align_load_span
 4.41949 ++extern bfd_boolean _bfd_sh_align_load_span
 4.41950 ++  (bfd *, asection *, bfd_byte *,
 4.41951 ++   bfd_boolean (*) (bfd *, asection *, void *, bfd_byte *, bfd_vma),
 4.41952 ++   void *, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *);
 4.41953 ++#endif
 4.41954 ++
 4.41955 ++/* This is the shape of the elements inside the already_linked hash
 4.41956 ++   table. It maps a name onto a list of already_linked elements with
 4.41957 ++   the same name.  */
 4.41958 ++
 4.41959 ++struct bfd_section_already_linked_hash_entry
 4.41960 ++{
 4.41961 ++  struct bfd_hash_entry root;
 4.41962 ++  struct bfd_section_already_linked *entry;
 4.41963 ++};
 4.41964 ++
 4.41965 ++struct bfd_section_already_linked
 4.41966 ++{
 4.41967 ++  struct bfd_section_already_linked *next;
 4.41968 ++  asection *sec;
 4.41969 ++};
 4.41970 ++
 4.41971 ++extern struct bfd_section_already_linked_hash_entry *
 4.41972 ++  bfd_section_already_linked_table_lookup (const char *);
 4.41973 ++extern bfd_boolean bfd_section_already_linked_table_insert
 4.41974 ++  (struct bfd_section_already_linked_hash_entry *, asection *);
 4.41975 ++extern void bfd_section_already_linked_table_traverse
 4.41976 ++  (bfd_boolean (*) (struct bfd_section_already_linked_hash_entry *,
 4.41977 ++		    void *), void *);
 4.41978 ++
 4.41979 ++extern bfd_vma read_unsigned_leb128 (bfd *, bfd_byte *, unsigned int *);
 4.41980 ++extern bfd_signed_vma read_signed_leb128 (bfd *, bfd_byte *, unsigned int *);
 4.41981 ++
 4.41982 ++/* Extracted from init.c.  */
 4.41983 ++/* Extracted from libbfd.c.  */
 4.41984 ++bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int);
 4.41985 ++
 4.41986 ++unsigned int bfd_log2 (bfd_vma x);
 4.41987 ++
 4.41988 ++/* Extracted from bfdio.c.  */
 4.41989 ++struct bfd_iovec
 4.41990 ++{
 4.41991 ++  /* To avoid problems with macros, a "b" rather than "f"
 4.41992 ++     prefix is prepended to each method name.  */
 4.41993 ++  /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching
 4.41994 ++     bytes starting at PTR.  Return the number of bytes actually
 4.41995 ++     transfered (a read past end-of-file returns less than NBYTES),
 4.41996 ++     or -1 (setting <<bfd_error>>) if an error occurs.  */
 4.41997 ++  file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes);
 4.41998 ++  file_ptr (*bwrite) (struct bfd *abfd, const void *ptr,
 4.41999 ++                      file_ptr nbytes);
 4.42000 ++  /* Return the current IOSTREAM file offset, or -1 (setting <<bfd_error>>
 4.42001 ++     if an error occurs.  */
 4.42002 ++  file_ptr (*btell) (struct bfd *abfd);
 4.42003 ++  /* For the following, on successful completion a value of 0 is returned.
 4.42004 ++     Otherwise, a value of -1 is returned (and  <<bfd_error>> is set).  */
 4.42005 ++  int (*bseek) (struct bfd *abfd, file_ptr offset, int whence);
 4.42006 ++  int (*bclose) (struct bfd *abfd);
 4.42007 ++  int (*bflush) (struct bfd *abfd);
 4.42008 ++  int (*bstat) (struct bfd *abfd, struct stat *sb);
 4.42009 ++};
 4.42010 ++/* Extracted from bfdwin.c.  */
 4.42011 ++struct _bfd_window_internal {
 4.42012 ++  struct _bfd_window_internal *next;
 4.42013 ++  void *data;
 4.42014 ++  bfd_size_type size;
 4.42015 ++  int refcount : 31;           /* should be enough...  */
 4.42016 ++  unsigned mapped : 1;         /* 1 = mmap, 0 = malloc */
 4.42017 ++};
 4.42018 ++/* Extracted from cache.c.  */
 4.42019 ++bfd_boolean bfd_cache_init (bfd *abfd);
 4.42020 ++
 4.42021 ++bfd_boolean bfd_cache_close (bfd *abfd);
 4.42022 ++
 4.42023 ++FILE* bfd_open_file (bfd *abfd);
 4.42024 ++
 4.42025 ++/* Extracted from reloc.c.  */
 4.42026 ++#ifdef _BFD_MAKE_TABLE_bfd_reloc_code_real
 4.42027 ++
 4.42028 ++static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
 4.42029 ++
 4.42030 ++  "BFD_RELOC_64",
 4.42031 ++  "BFD_RELOC_32",
 4.42032 ++  "BFD_RELOC_26",
 4.42033 ++  "BFD_RELOC_24",
 4.42034 ++  "BFD_RELOC_16",
 4.42035 ++  "BFD_RELOC_14",
 4.42036 ++  "BFD_RELOC_8",
 4.42037 ++  "BFD_RELOC_64_PCREL",
 4.42038 ++  "BFD_RELOC_32_PCREL",
 4.42039 ++  "BFD_RELOC_24_PCREL",
 4.42040 ++  "BFD_RELOC_16_PCREL",
 4.42041 ++  "BFD_RELOC_12_PCREL",
 4.42042 ++  "BFD_RELOC_8_PCREL",
 4.42043 ++  "BFD_RELOC_32_SECREL",
 4.42044 ++  "BFD_RELOC_32_GOT_PCREL",
 4.42045 ++  "BFD_RELOC_16_GOT_PCREL",
 4.42046 ++  "BFD_RELOC_8_GOT_PCREL",
 4.42047 ++  "BFD_RELOC_32_GOTOFF",
 4.42048 ++  "BFD_RELOC_16_GOTOFF",
 4.42049 ++  "BFD_RELOC_LO16_GOTOFF",
 4.42050 ++  "BFD_RELOC_HI16_GOTOFF",
 4.42051 ++  "BFD_RELOC_HI16_S_GOTOFF",
 4.42052 ++  "BFD_RELOC_8_GOTOFF",
 4.42053 ++  "BFD_RELOC_64_PLT_PCREL",
 4.42054 ++  "BFD_RELOC_32_PLT_PCREL",
 4.42055 ++  "BFD_RELOC_24_PLT_PCREL",
 4.42056 ++  "BFD_RELOC_16_PLT_PCREL",
 4.42057 ++  "BFD_RELOC_8_PLT_PCREL",
 4.42058 ++  "BFD_RELOC_64_PLTOFF",
 4.42059 ++  "BFD_RELOC_32_PLTOFF",
 4.42060 ++  "BFD_RELOC_16_PLTOFF",
 4.42061 ++  "BFD_RELOC_LO16_PLTOFF",
 4.42062 ++  "BFD_RELOC_HI16_PLTOFF",
 4.42063 ++  "BFD_RELOC_HI16_S_PLTOFF",
 4.42064 ++  "BFD_RELOC_8_PLTOFF",
 4.42065 ++  "BFD_RELOC_68K_GLOB_DAT",
 4.42066 ++  "BFD_RELOC_68K_JMP_SLOT",
 4.42067 ++  "BFD_RELOC_68K_RELATIVE",
 4.42068 ++  "BFD_RELOC_32_BASEREL",
 4.42069 ++  "BFD_RELOC_16_BASEREL",
 4.42070 ++  "BFD_RELOC_LO16_BASEREL",
 4.42071 ++  "BFD_RELOC_HI16_BASEREL",
 4.42072 ++  "BFD_RELOC_HI16_S_BASEREL",
 4.42073 ++  "BFD_RELOC_8_BASEREL",
 4.42074 ++  "BFD_RELOC_RVA",
 4.42075 ++  "BFD_RELOC_8_FFnn",
 4.42076 ++  "BFD_RELOC_32_PCREL_S2",
 4.42077 ++  "BFD_RELOC_16_PCREL_S2",
 4.42078 ++  "BFD_RELOC_23_PCREL_S2",
 4.42079 ++  "BFD_RELOC_HI22",
 4.42080 ++  "BFD_RELOC_LO10",
 4.42081 ++  "BFD_RELOC_GPREL16",
 4.42082 ++  "BFD_RELOC_GPREL32",
 4.42083 ++  "BFD_RELOC_I960_CALLJ",
 4.42084 ++  "BFD_RELOC_NONE",
 4.42085 ++  "BFD_RELOC_SPARC_WDISP22",
 4.42086 ++  "BFD_RELOC_SPARC22",
 4.42087 ++  "BFD_RELOC_SPARC13",
 4.42088 ++  "BFD_RELOC_SPARC_GOT10",
 4.42089 ++  "BFD_RELOC_SPARC_GOT13",
 4.42090 ++  "BFD_RELOC_SPARC_GOT22",
 4.42091 ++  "BFD_RELOC_SPARC_PC10",
 4.42092 ++  "BFD_RELOC_SPARC_PC22",
 4.42093 ++  "BFD_RELOC_SPARC_WPLT30",
 4.42094 ++  "BFD_RELOC_SPARC_COPY",
 4.42095 ++  "BFD_RELOC_SPARC_GLOB_DAT",
 4.42096 ++  "BFD_RELOC_SPARC_JMP_SLOT",
 4.42097 ++  "BFD_RELOC_SPARC_RELATIVE",
 4.42098 ++  "BFD_RELOC_SPARC_UA16",
 4.42099 ++  "BFD_RELOC_SPARC_UA32",
 4.42100 ++  "BFD_RELOC_SPARC_UA64",
 4.42101 ++  "BFD_RELOC_SPARC_BASE13",
 4.42102 ++  "BFD_RELOC_SPARC_BASE22",
 4.42103 ++  "BFD_RELOC_SPARC_10",
 4.42104 ++  "BFD_RELOC_SPARC_11",
 4.42105 ++  "BFD_RELOC_SPARC_OLO10",
 4.42106 ++  "BFD_RELOC_SPARC_HH22",
 4.42107 ++  "BFD_RELOC_SPARC_HM10",
 4.42108 ++  "BFD_RELOC_SPARC_LM22",
 4.42109 ++  "BFD_RELOC_SPARC_PC_HH22",
 4.42110 ++  "BFD_RELOC_SPARC_PC_HM10",
 4.42111 ++  "BFD_RELOC_SPARC_PC_LM22",
 4.42112 ++  "BFD_RELOC_SPARC_WDISP16",
 4.42113 ++  "BFD_RELOC_SPARC_WDISP19",
 4.42114 ++  "BFD_RELOC_SPARC_7",
 4.42115 ++  "BFD_RELOC_SPARC_6",
 4.42116 ++  "BFD_RELOC_SPARC_5",
 4.42117 ++  "BFD_RELOC_SPARC_PLT32",
 4.42118 ++  "BFD_RELOC_SPARC_PLT64",
 4.42119 ++  "BFD_RELOC_SPARC_HIX22",
 4.42120 ++  "BFD_RELOC_SPARC_LOX10",
 4.42121 ++  "BFD_RELOC_SPARC_H44",
 4.42122 ++  "BFD_RELOC_SPARC_M44",
 4.42123 ++  "BFD_RELOC_SPARC_L44",
 4.42124 ++  "BFD_RELOC_SPARC_REGISTER",
 4.42125 ++  "BFD_RELOC_SPARC_REV32",
 4.42126 ++  "BFD_RELOC_SPARC_TLS_GD_HI22",
 4.42127 ++  "BFD_RELOC_SPARC_TLS_GD_LO10",
 4.42128 ++  "BFD_RELOC_SPARC_TLS_GD_ADD",
 4.42129 ++  "BFD_RELOC_SPARC_TLS_GD_CALL",
 4.42130 ++  "BFD_RELOC_SPARC_TLS_LDM_HI22",
 4.42131 ++  "BFD_RELOC_SPARC_TLS_LDM_LO10",
 4.42132 ++  "BFD_RELOC_SPARC_TLS_LDM_ADD",
 4.42133 ++  "BFD_RELOC_SPARC_TLS_LDM_CALL",
 4.42134 ++  "BFD_RELOC_SPARC_TLS_LDO_HIX22",
 4.42135 ++  "BFD_RELOC_SPARC_TLS_LDO_LOX10",
 4.42136 ++  "BFD_RELOC_SPARC_TLS_LDO_ADD",
 4.42137 ++  "BFD_RELOC_SPARC_TLS_IE_HI22",
 4.42138 ++  "BFD_RELOC_SPARC_TLS_IE_LO10",
 4.42139 ++  "BFD_RELOC_SPARC_TLS_IE_LD",
 4.42140 ++  "BFD_RELOC_SPARC_TLS_IE_LDX",
 4.42141 ++  "BFD_RELOC_SPARC_TLS_IE_ADD",
 4.42142 ++  "BFD_RELOC_SPARC_TLS_LE_HIX22",
 4.42143 ++  "BFD_RELOC_SPARC_TLS_LE_LOX10",
 4.42144 ++  "BFD_RELOC_SPARC_TLS_DTPMOD32",
 4.42145 ++  "BFD_RELOC_SPARC_TLS_DTPMOD64",
 4.42146 ++  "BFD_RELOC_SPARC_TLS_DTPOFF32",
 4.42147 ++  "BFD_RELOC_SPARC_TLS_DTPOFF64",
 4.42148 ++  "BFD_RELOC_SPARC_TLS_TPOFF32",
 4.42149 ++  "BFD_RELOC_SPARC_TLS_TPOFF64",
 4.42150 ++  "BFD_RELOC_SPU_IMM7",
 4.42151 ++  "BFD_RELOC_SPU_IMM8",
 4.42152 ++  "BFD_RELOC_SPU_IMM10",
 4.42153 ++  "BFD_RELOC_SPU_IMM10W",
 4.42154 ++  "BFD_RELOC_SPU_IMM16",
 4.42155 ++  "BFD_RELOC_SPU_IMM16W",
 4.42156 ++  "BFD_RELOC_SPU_IMM18",
 4.42157 ++  "BFD_RELOC_SPU_PCREL9a",
 4.42158 ++  "BFD_RELOC_SPU_PCREL9b",
 4.42159 ++  "BFD_RELOC_SPU_PCREL16",
 4.42160 ++  "BFD_RELOC_SPU_LO16",
 4.42161 ++  "BFD_RELOC_SPU_HI16",
 4.42162 ++  "BFD_RELOC_SPU_PPU32",
 4.42163 ++  "BFD_RELOC_SPU_PPU64",
 4.42164 ++  "BFD_RELOC_ALPHA_GPDISP_HI16",
 4.42165 ++  "BFD_RELOC_ALPHA_GPDISP_LO16",
 4.42166 ++  "BFD_RELOC_ALPHA_GPDISP",
 4.42167 ++  "BFD_RELOC_ALPHA_LITERAL",
 4.42168 ++  "BFD_RELOC_ALPHA_ELF_LITERAL",
 4.42169 ++  "BFD_RELOC_ALPHA_LITUSE",
 4.42170 ++  "BFD_RELOC_ALPHA_HINT",
 4.42171 ++  "BFD_RELOC_ALPHA_LINKAGE",
 4.42172 ++  "BFD_RELOC_ALPHA_CODEADDR",
 4.42173 ++  "BFD_RELOC_ALPHA_GPREL_HI16",
 4.42174 ++  "BFD_RELOC_ALPHA_GPREL_LO16",
 4.42175 ++  "BFD_RELOC_ALPHA_BRSGP",
 4.42176 ++  "BFD_RELOC_ALPHA_TLSGD",
 4.42177 ++  "BFD_RELOC_ALPHA_TLSLDM",
 4.42178 ++  "BFD_RELOC_ALPHA_DTPMOD64",
 4.42179 ++  "BFD_RELOC_ALPHA_GOTDTPREL16",
 4.42180 ++  "BFD_RELOC_ALPHA_DTPREL64",
 4.42181 ++  "BFD_RELOC_ALPHA_DTPREL_HI16",
 4.42182 ++  "BFD_RELOC_ALPHA_DTPREL_LO16",
 4.42183 ++  "BFD_RELOC_ALPHA_DTPREL16",
 4.42184 ++  "BFD_RELOC_ALPHA_GOTTPREL16",
 4.42185 ++  "BFD_RELOC_ALPHA_TPREL64",
 4.42186 ++  "BFD_RELOC_ALPHA_TPREL_HI16",
 4.42187 ++  "BFD_RELOC_ALPHA_TPREL_LO16",
 4.42188 ++  "BFD_RELOC_ALPHA_TPREL16",
 4.42189 ++  "BFD_RELOC_MIPS_JMP",
 4.42190 ++  "BFD_RELOC_MIPS16_JMP",
 4.42191 ++  "BFD_RELOC_MIPS16_GPREL",
 4.42192 ++  "BFD_RELOC_HI16",
 4.42193 ++  "BFD_RELOC_HI16_S",
 4.42194 ++  "BFD_RELOC_LO16",
 4.42195 ++  "BFD_RELOC_HI16_PCREL",
 4.42196 ++  "BFD_RELOC_HI16_S_PCREL",
 4.42197 ++  "BFD_RELOC_LO16_PCREL",
 4.42198 ++  "BFD_RELOC_MIPS16_HI16",
 4.42199 ++  "BFD_RELOC_MIPS16_HI16_S",
 4.42200 ++  "BFD_RELOC_MIPS16_LO16",
 4.42201 ++  "BFD_RELOC_MIPS_LITERAL",
 4.42202 ++  "BFD_RELOC_MIPS_GOT16",
 4.42203 ++  "BFD_RELOC_MIPS_CALL16",
 4.42204 ++  "BFD_RELOC_MIPS_GOT_HI16",
 4.42205 ++  "BFD_RELOC_MIPS_GOT_LO16",
 4.42206 ++  "BFD_RELOC_MIPS_CALL_HI16",
 4.42207 ++  "BFD_RELOC_MIPS_CALL_LO16",
 4.42208 ++  "BFD_RELOC_MIPS_SUB",
 4.42209 ++  "BFD_RELOC_MIPS_GOT_PAGE",
 4.42210 ++  "BFD_RELOC_MIPS_GOT_OFST",
 4.42211 ++  "BFD_RELOC_MIPS_GOT_DISP",
 4.42212 ++  "BFD_RELOC_MIPS_SHIFT5",
 4.42213 ++  "BFD_RELOC_MIPS_SHIFT6",
 4.42214 ++  "BFD_RELOC_MIPS_INSERT_A",
 4.42215 ++  "BFD_RELOC_MIPS_INSERT_B",
 4.42216 ++  "BFD_RELOC_MIPS_DELETE",
 4.42217 ++  "BFD_RELOC_MIPS_HIGHEST",
 4.42218 ++  "BFD_RELOC_MIPS_HIGHER",
 4.42219 ++  "BFD_RELOC_MIPS_SCN_DISP",
 4.42220 ++  "BFD_RELOC_MIPS_REL16",
 4.42221 ++  "BFD_RELOC_MIPS_RELGOT",
 4.42222 ++  "BFD_RELOC_MIPS_JALR",
 4.42223 ++  "BFD_RELOC_MIPS_TLS_DTPMOD32",
 4.42224 ++  "BFD_RELOC_MIPS_TLS_DTPREL32",
 4.42225 ++  "BFD_RELOC_MIPS_TLS_DTPMOD64",
 4.42226 ++  "BFD_RELOC_MIPS_TLS_DTPREL64",
 4.42227 ++  "BFD_RELOC_MIPS_TLS_GD",
 4.42228 ++  "BFD_RELOC_MIPS_TLS_LDM",
 4.42229 ++  "BFD_RELOC_MIPS_TLS_DTPREL_HI16",
 4.42230 ++  "BFD_RELOC_MIPS_TLS_DTPREL_LO16",
 4.42231 ++  "BFD_RELOC_MIPS_TLS_GOTTPREL",
 4.42232 ++  "BFD_RELOC_MIPS_TLS_TPREL32",
 4.42233 ++  "BFD_RELOC_MIPS_TLS_TPREL64",
 4.42234 ++  "BFD_RELOC_MIPS_TLS_TPREL_HI16",
 4.42235 ++  "BFD_RELOC_MIPS_TLS_TPREL_LO16",
 4.42236 ++
 4.42237 ++  "BFD_RELOC_MIPS_COPY",
 4.42238 ++  "BFD_RELOC_MIPS_JUMP_SLOT",
 4.42239 ++
 4.42240 ++  "BFD_RELOC_FRV_LABEL16",
 4.42241 ++  "BFD_RELOC_FRV_LABEL24",
 4.42242 ++  "BFD_RELOC_FRV_LO16",
 4.42243 ++  "BFD_RELOC_FRV_HI16",
 4.42244 ++  "BFD_RELOC_FRV_GPREL12",
 4.42245 ++  "BFD_RELOC_FRV_GPRELU12",
 4.42246 ++  "BFD_RELOC_FRV_GPREL32",
 4.42247 ++  "BFD_RELOC_FRV_GPRELHI",
 4.42248 ++  "BFD_RELOC_FRV_GPRELLO",
 4.42249 ++  "BFD_RELOC_FRV_GOT12",
 4.42250 ++  "BFD_RELOC_FRV_GOTHI",
 4.42251 ++  "BFD_RELOC_FRV_GOTLO",
 4.42252 ++  "BFD_RELOC_FRV_FUNCDESC",
 4.42253 ++  "BFD_RELOC_FRV_FUNCDESC_GOT12",
 4.42254 ++  "BFD_RELOC_FRV_FUNCDESC_GOTHI",
 4.42255 ++  "BFD_RELOC_FRV_FUNCDESC_GOTLO",
 4.42256 ++  "BFD_RELOC_FRV_FUNCDESC_VALUE",
 4.42257 ++  "BFD_RELOC_FRV_FUNCDESC_GOTOFF12",
 4.42258 ++  "BFD_RELOC_FRV_FUNCDESC_GOTOFFHI",
 4.42259 ++  "BFD_RELOC_FRV_FUNCDESC_GOTOFFLO",
 4.42260 ++  "BFD_RELOC_FRV_GOTOFF12",
 4.42261 ++  "BFD_RELOC_FRV_GOTOFFHI",
 4.42262 ++  "BFD_RELOC_FRV_GOTOFFLO",
 4.42263 ++  "BFD_RELOC_FRV_GETTLSOFF",
 4.42264 ++  "BFD_RELOC_FRV_TLSDESC_VALUE",
 4.42265 ++  "BFD_RELOC_FRV_GOTTLSDESC12",
 4.42266 ++  "BFD_RELOC_FRV_GOTTLSDESCHI",
 4.42267 ++  "BFD_RELOC_FRV_GOTTLSDESCLO",
 4.42268 ++  "BFD_RELOC_FRV_TLSMOFF12",
 4.42269 ++  "BFD_RELOC_FRV_TLSMOFFHI",
 4.42270 ++  "BFD_RELOC_FRV_TLSMOFFLO",
 4.42271 ++  "BFD_RELOC_FRV_GOTTLSOFF12",
 4.42272 ++  "BFD_RELOC_FRV_GOTTLSOFFHI",
 4.42273 ++  "BFD_RELOC_FRV_GOTTLSOFFLO",
 4.42274 ++  "BFD_RELOC_FRV_TLSOFF",
 4.42275 ++  "BFD_RELOC_FRV_TLSDESC_RELAX",
 4.42276 ++  "BFD_RELOC_FRV_GETTLSOFF_RELAX",
 4.42277 ++  "BFD_RELOC_FRV_TLSOFF_RELAX",
 4.42278 ++  "BFD_RELOC_FRV_TLSMOFF",
 4.42279 ++
 4.42280 ++  "BFD_RELOC_MN10300_GOTOFF24",
 4.42281 ++  "BFD_RELOC_MN10300_GOT32",
 4.42282 ++  "BFD_RELOC_MN10300_GOT24",
 4.42283 ++  "BFD_RELOC_MN10300_GOT16",
 4.42284 ++  "BFD_RELOC_MN10300_COPY",
 4.42285 ++  "BFD_RELOC_MN10300_GLOB_DAT",
 4.42286 ++  "BFD_RELOC_MN10300_JMP_SLOT",
 4.42287 ++  "BFD_RELOC_MN10300_RELATIVE",
 4.42288 ++
 4.42289 ++  "BFD_RELOC_386_GOT32",
 4.42290 ++  "BFD_RELOC_386_PLT32",
 4.42291 ++  "BFD_RELOC_386_COPY",
 4.42292 ++  "BFD_RELOC_386_GLOB_DAT",
 4.42293 ++  "BFD_RELOC_386_JUMP_SLOT",
 4.42294 ++  "BFD_RELOC_386_RELATIVE",
 4.42295 ++  "BFD_RELOC_386_GOTOFF",
 4.42296 ++  "BFD_RELOC_386_GOTPC",
 4.42297 ++  "BFD_RELOC_386_TLS_TPOFF",
 4.42298 ++  "BFD_RELOC_386_TLS_IE",
 4.42299 ++  "BFD_RELOC_386_TLS_GOTIE",
 4.42300 ++  "BFD_RELOC_386_TLS_LE",
 4.42301 ++  "BFD_RELOC_386_TLS_GD",
 4.42302 ++  "BFD_RELOC_386_TLS_LDM",
 4.42303 ++  "BFD_RELOC_386_TLS_LDO_32",
 4.42304 ++  "BFD_RELOC_386_TLS_IE_32",
 4.42305 ++  "BFD_RELOC_386_TLS_LE_32",
 4.42306 ++  "BFD_RELOC_386_TLS_DTPMOD32",
 4.42307 ++  "BFD_RELOC_386_TLS_DTPOFF32",
 4.42308 ++  "BFD_RELOC_386_TLS_TPOFF32",
 4.42309 ++  "BFD_RELOC_386_TLS_GOTDESC",
 4.42310 ++  "BFD_RELOC_386_TLS_DESC_CALL",
 4.42311 ++  "BFD_RELOC_386_TLS_DESC",
 4.42312 ++  "BFD_RELOC_X86_64_GOT32",
 4.42313 ++  "BFD_RELOC_X86_64_PLT32",
 4.42314 ++  "BFD_RELOC_X86_64_COPY",
 4.42315 ++  "BFD_RELOC_X86_64_GLOB_DAT",
 4.42316 ++  "BFD_RELOC_X86_64_JUMP_SLOT",
 4.42317 ++  "BFD_RELOC_X86_64_RELATIVE",
 4.42318 ++  "BFD_RELOC_X86_64_GOTPCREL",
 4.42319 ++  "BFD_RELOC_X86_64_32S",
 4.42320 ++  "BFD_RELOC_X86_64_DTPMOD64",
 4.42321 ++  "BFD_RELOC_X86_64_DTPOFF64",
 4.42322 ++  "BFD_RELOC_X86_64_TPOFF64",
 4.42323 ++  "BFD_RELOC_X86_64_TLSGD",
 4.42324 ++  "BFD_RELOC_X86_64_TLSLD",
 4.42325 ++  "BFD_RELOC_X86_64_DTPOFF32",
 4.42326 ++  "BFD_RELOC_X86_64_GOTTPOFF",
 4.42327 ++  "BFD_RELOC_X86_64_TPOFF32",
 4.42328 ++  "BFD_RELOC_X86_64_GOTOFF64",
 4.42329 ++  "BFD_RELOC_X86_64_GOTPC32",
 4.42330 ++  "BFD_RELOC_X86_64_GOT64",
 4.42331 ++  "BFD_RELOC_X86_64_GOTPCREL64",
 4.42332 ++  "BFD_RELOC_X86_64_GOTPC64",
 4.42333 ++  "BFD_RELOC_X86_64_GOTPLT64",
 4.42334 ++  "BFD_RELOC_X86_64_PLTOFF64",
 4.42335 ++  "BFD_RELOC_X86_64_GOTPC32_TLSDESC",
 4.42336 ++  "BFD_RELOC_X86_64_TLSDESC_CALL",
 4.42337 ++  "BFD_RELOC_X86_64_TLSDESC",
 4.42338 ++  "BFD_RELOC_NS32K_IMM_8",
 4.42339 ++  "BFD_RELOC_NS32K_IMM_16",
 4.42340 ++  "BFD_RELOC_NS32K_IMM_32",
 4.42341 ++  "BFD_RELOC_NS32K_IMM_8_PCREL",
 4.42342 ++  "BFD_RELOC_NS32K_IMM_16_PCREL",
 4.42343 ++  "BFD_RELOC_NS32K_IMM_32_PCREL",
 4.42344 ++  "BFD_RELOC_NS32K_DISP_8",
 4.42345 ++  "BFD_RELOC_NS32K_DISP_16",
 4.42346 ++  "BFD_RELOC_NS32K_DISP_32",
 4.42347 ++  "BFD_RELOC_NS32K_DISP_8_PCREL",
 4.42348 ++  "BFD_RELOC_NS32K_DISP_16_PCREL",
 4.42349 ++  "BFD_RELOC_NS32K_DISP_32_PCREL",
 4.42350 ++  "BFD_RELOC_PDP11_DISP_8_PCREL",
 4.42351 ++  "BFD_RELOC_PDP11_DISP_6_PCREL",
 4.42352 ++  "BFD_RELOC_PJ_CODE_HI16",
 4.42353 ++  "BFD_RELOC_PJ_CODE_LO16",
 4.42354 ++  "BFD_RELOC_PJ_CODE_DIR16",
 4.42355 ++  "BFD_RELOC_PJ_CODE_DIR32",
 4.42356 ++  "BFD_RELOC_PJ_CODE_REL16",
 4.42357 ++  "BFD_RELOC_PJ_CODE_REL32",
 4.42358 ++  "BFD_RELOC_PPC_B26",
 4.42359 ++  "BFD_RELOC_PPC_BA26",
 4.42360 ++  "BFD_RELOC_PPC_TOC16",
 4.42361 ++  "BFD_RELOC_PPC_B16",
 4.42362 ++  "BFD_RELOC_PPC_B16_BRTAKEN",
 4.42363 ++  "BFD_RELOC_PPC_B16_BRNTAKEN",
 4.42364 ++  "BFD_RELOC_PPC_BA16",
 4.42365 ++  "BFD_RELOC_PPC_BA16_BRTAKEN",
 4.42366 ++  "BFD_RELOC_PPC_BA16_BRNTAKEN",
 4.42367 ++  "BFD_RELOC_PPC_COPY",
 4.42368 ++  "BFD_RELOC_PPC_GLOB_DAT",
 4.42369 ++  "BFD_RELOC_PPC_JMP_SLOT",
 4.42370 ++  "BFD_RELOC_PPC_RELATIVE",
 4.42371 ++  "BFD_RELOC_PPC_LOCAL24PC",
 4.42372 ++  "BFD_RELOC_PPC_EMB_NADDR32",
 4.42373 ++  "BFD_RELOC_PPC_EMB_NADDR16",
 4.42374 ++  "BFD_RELOC_PPC_EMB_NADDR16_LO",
 4.42375 ++  "BFD_RELOC_PPC_EMB_NADDR16_HI",
 4.42376 ++  "BFD_RELOC_PPC_EMB_NADDR16_HA",
 4.42377 ++  "BFD_RELOC_PPC_EMB_SDAI16",
 4.42378 ++  "BFD_RELOC_PPC_EMB_SDA2I16",
 4.42379 ++  "BFD_RELOC_PPC_EMB_SDA2REL",
 4.42380 ++  "BFD_RELOC_PPC_EMB_SDA21",
 4.42381 ++  "BFD_RELOC_PPC_EMB_MRKREF",
 4.42382 ++  "BFD_RELOC_PPC_EMB_RELSEC16",
 4.42383 ++  "BFD_RELOC_PPC_EMB_RELST_LO",
 4.42384 ++  "BFD_RELOC_PPC_EMB_RELST_HI",
 4.42385 ++  "BFD_RELOC_PPC_EMB_RELST_HA",
 4.42386 ++  "BFD_RELOC_PPC_EMB_BIT_FLD",
 4.42387 ++  "BFD_RELOC_PPC_EMB_RELSDA",
 4.42388 ++  "BFD_RELOC_PPC64_HIGHER",
 4.42389 ++  "BFD_RELOC_PPC64_HIGHER_S",
 4.42390 ++  "BFD_RELOC_PPC64_HIGHEST",
 4.42391 ++  "BFD_RELOC_PPC64_HIGHEST_S",
 4.42392 ++  "BFD_RELOC_PPC64_TOC16_LO",
 4.42393 ++  "BFD_RELOC_PPC64_TOC16_HI",
 4.42394 ++  "BFD_RELOC_PPC64_TOC16_HA",
 4.42395 ++  "BFD_RELOC_PPC64_TOC",
 4.42396 ++  "BFD_RELOC_PPC64_PLTGOT16",
 4.42397 ++  "BFD_RELOC_PPC64_PLTGOT16_LO",
 4.42398 ++  "BFD_RELOC_PPC64_PLTGOT16_HI",
 4.42399 ++  "BFD_RELOC_PPC64_PLTGOT16_HA",
 4.42400 ++  "BFD_RELOC_PPC64_ADDR16_DS",
 4.42401 ++  "BFD_RELOC_PPC64_ADDR16_LO_DS",
 4.42402 ++  "BFD_RELOC_PPC64_GOT16_DS",
 4.42403 ++  "BFD_RELOC_PPC64_GOT16_LO_DS",
 4.42404 ++  "BFD_RELOC_PPC64_PLT16_LO_DS",
 4.42405 ++  "BFD_RELOC_PPC64_SECTOFF_DS",
 4.42406 ++  "BFD_RELOC_PPC64_SECTOFF_LO_DS",
 4.42407 ++  "BFD_RELOC_PPC64_TOC16_DS",
 4.42408 ++  "BFD_RELOC_PPC64_TOC16_LO_DS",
 4.42409 ++  "BFD_RELOC_PPC64_PLTGOT16_DS",
 4.42410 ++  "BFD_RELOC_PPC64_PLTGOT16_LO_DS",
 4.42411 ++  "BFD_RELOC_PPC_TLS",
 4.42412 ++  "BFD_RELOC_PPC_DTPMOD",
 4.42413 ++  "BFD_RELOC_PPC_TPREL16",
 4.42414 ++  "BFD_RELOC_PPC_TPREL16_LO",
 4.42415 ++  "BFD_RELOC_PPC_TPREL16_HI",
 4.42416 ++  "BFD_RELOC_PPC_TPREL16_HA",
 4.42417 ++  "BFD_RELOC_PPC_TPREL",
 4.42418 ++  "BFD_RELOC_PPC_DTPREL16",
 4.42419 ++  "BFD_RELOC_PPC_DTPREL16_LO",
 4.42420 ++  "BFD_RELOC_PPC_DTPREL16_HI",
 4.42421 ++  "BFD_RELOC_PPC_DTPREL16_HA",
 4.42422 ++  "BFD_RELOC_PPC_DTPREL",
 4.42423 ++  "BFD_RELOC_PPC_GOT_TLSGD16",
 4.42424 ++  "BFD_RELOC_PPC_GOT_TLSGD16_LO",
 4.42425 ++  "BFD_RELOC_PPC_GOT_TLSGD16_HI",
 4.42426 ++  "BFD_RELOC_PPC_GOT_TLSGD16_HA",
 4.42427 ++  "BFD_RELOC_PPC_GOT_TLSLD16",
 4.42428 ++  "BFD_RELOC_PPC_GOT_TLSLD16_LO",
 4.42429 ++  "BFD_RELOC_PPC_GOT_TLSLD16_HI",
 4.42430 ++  "BFD_RELOC_PPC_GOT_TLSLD16_HA",
 4.42431 ++  "BFD_RELOC_PPC_GOT_TPREL16",
 4.42432 ++  "BFD_RELOC_PPC_GOT_TPREL16_LO",
 4.42433 ++  "BFD_RELOC_PPC_GOT_TPREL16_HI",
 4.42434 ++  "BFD_RELOC_PPC_GOT_TPREL16_HA",
 4.42435 ++  "BFD_RELOC_PPC_GOT_DTPREL16",
 4.42436 ++  "BFD_RELOC_PPC_GOT_DTPREL16_LO",
 4.42437 ++  "BFD_RELOC_PPC_GOT_DTPREL16_HI",
 4.42438 ++  "BFD_RELOC_PPC_GOT_DTPREL16_HA",
 4.42439 ++  "BFD_RELOC_PPC64_TPREL16_DS",
 4.42440 ++  "BFD_RELOC_PPC64_TPREL16_LO_DS",
 4.42441 ++  "BFD_RELOC_PPC64_TPREL16_HIGHER",
 4.42442 ++  "BFD_RELOC_PPC64_TPREL16_HIGHERA",
 4.42443 ++  "BFD_RELOC_PPC64_TPREL16_HIGHEST",
 4.42444 ++  "BFD_RELOC_PPC64_TPREL16_HIGHESTA",
 4.42445 ++  "BFD_RELOC_PPC64_DTPREL16_DS",
 4.42446 ++  "BFD_RELOC_PPC64_DTPREL16_LO_DS",
 4.42447 ++  "BFD_RELOC_PPC64_DTPREL16_HIGHER",
 4.42448 ++  "BFD_RELOC_PPC64_DTPREL16_HIGHERA",
 4.42449 ++  "BFD_RELOC_PPC64_DTPREL16_HIGHEST",
 4.42450 ++  "BFD_RELOC_PPC64_DTPREL16_HIGHESTA",
 4.42451 ++  "BFD_RELOC_I370_D12",
 4.42452 ++  "BFD_RELOC_CTOR",
 4.42453 ++  "BFD_RELOC_ARM_PCREL_BRANCH",
 4.42454 ++  "BFD_RELOC_ARM_PCREL_BLX",
 4.42455 ++  "BFD_RELOC_THUMB_PCREL_BLX",
 4.42456 ++  "BFD_RELOC_ARM_PCREL_CALL",
 4.42457 ++  "BFD_RELOC_ARM_PCREL_JUMP",
 4.42458 ++  "BFD_RELOC_THUMB_PCREL_BRANCH7",
 4.42459 ++  "BFD_RELOC_THUMB_PCREL_BRANCH9",
 4.42460 ++  "BFD_RELOC_THUMB_PCREL_BRANCH12",
 4.42461 ++  "BFD_RELOC_THUMB_PCREL_BRANCH20",
 4.42462 ++  "BFD_RELOC_THUMB_PCREL_BRANCH23",
 4.42463 ++  "BFD_RELOC_THUMB_PCREL_BRANCH25",
 4.42464 ++  "BFD_RELOC_ARM_OFFSET_IMM",
 4.42465 ++  "BFD_RELOC_ARM_THUMB_OFFSET",
 4.42466 ++  "BFD_RELOC_ARM_TARGET1",
 4.42467 ++  "BFD_RELOC_ARM_ROSEGREL32",
 4.42468 ++  "BFD_RELOC_ARM_SBREL32",
 4.42469 ++  "BFD_RELOC_ARM_TARGET2",
 4.42470 ++  "BFD_RELOC_ARM_PREL31",
 4.42471 ++  "BFD_RELOC_ARM_MOVW",
 4.42472 ++  "BFD_RELOC_ARM_MOVT",
 4.42473 ++  "BFD_RELOC_ARM_MOVW_PCREL",
 4.42474 ++  "BFD_RELOC_ARM_MOVT_PCREL",
 4.42475 ++  "BFD_RELOC_ARM_THUMB_MOVW",
 4.42476 ++  "BFD_RELOC_ARM_THUMB_MOVT",
 4.42477 ++  "BFD_RELOC_ARM_THUMB_MOVW_PCREL",
 4.42478 ++  "BFD_RELOC_ARM_THUMB_MOVT_PCREL",
 4.42479 ++  "BFD_RELOC_ARM_JUMP_SLOT",
 4.42480 ++  "BFD_RELOC_ARM_GLOB_DAT",
 4.42481 ++  "BFD_RELOC_ARM_GOT32",
 4.42482 ++  "BFD_RELOC_ARM_PLT32",
 4.42483 ++  "BFD_RELOC_ARM_RELATIVE",
 4.42484 ++  "BFD_RELOC_ARM_GOTOFF",
 4.42485 ++  "BFD_RELOC_ARM_GOTPC",
 4.42486 ++  "BFD_RELOC_ARM_TLS_GD32",
 4.42487 ++  "BFD_RELOC_ARM_TLS_LDO32",
 4.42488 ++  "BFD_RELOC_ARM_TLS_LDM32",
 4.42489 ++  "BFD_RELOC_ARM_TLS_DTPOFF32",
 4.42490 ++  "BFD_RELOC_ARM_TLS_DTPMOD32",
 4.42491 ++  "BFD_RELOC_ARM_TLS_TPOFF32",
 4.42492 ++  "BFD_RELOC_ARM_TLS_IE32",
 4.42493 ++  "BFD_RELOC_ARM_TLS_LE32",
 4.42494 ++  "BFD_RELOC_ARM_ALU_PC_G0_NC",
 4.42495 ++  "BFD_RELOC_ARM_ALU_PC_G0",
 4.42496 ++  "BFD_RELOC_ARM_ALU_PC_G1_NC",
 4.42497 ++  "BFD_RELOC_ARM_ALU_PC_G1",
 4.42498 ++  "BFD_RELOC_ARM_ALU_PC_G2",
 4.42499 ++  "BFD_RELOC_ARM_LDR_PC_G0",
 4.42500 ++  "BFD_RELOC_ARM_LDR_PC_G1",
 4.42501 ++  "BFD_RELOC_ARM_LDR_PC_G2",
 4.42502 ++  "BFD_RELOC_ARM_LDRS_PC_G0",
 4.42503 ++  "BFD_RELOC_ARM_LDRS_PC_G1",
 4.42504 ++  "BFD_RELOC_ARM_LDRS_PC_G2",
 4.42505 ++  "BFD_RELOC_ARM_LDC_PC_G0",
 4.42506 ++  "BFD_RELOC_ARM_LDC_PC_G1",
 4.42507 ++  "BFD_RELOC_ARM_LDC_PC_G2",
 4.42508 ++  "BFD_RELOC_ARM_ALU_SB_G0_NC",
 4.42509 ++  "BFD_RELOC_ARM_ALU_SB_G0",
 4.42510 ++  "BFD_RELOC_ARM_ALU_SB_G1_NC",
 4.42511 ++  "BFD_RELOC_ARM_ALU_SB_G1",
 4.42512 ++  "BFD_RELOC_ARM_ALU_SB_G2",
 4.42513 ++  "BFD_RELOC_ARM_LDR_SB_G0",
 4.42514 ++  "BFD_RELOC_ARM_LDR_SB_G1",
 4.42515 ++  "BFD_RELOC_ARM_LDR_SB_G2",
 4.42516 ++  "BFD_RELOC_ARM_LDRS_SB_G0",
 4.42517 ++  "BFD_RELOC_ARM_LDRS_SB_G1",
 4.42518 ++  "BFD_RELOC_ARM_LDRS_SB_G2",
 4.42519 ++  "BFD_RELOC_ARM_LDC_SB_G0",
 4.42520 ++  "BFD_RELOC_ARM_LDC_SB_G1",
 4.42521 ++  "BFD_RELOC_ARM_LDC_SB_G2",
 4.42522 ++  "BFD_RELOC_ARM_IMMEDIATE",
 4.42523 ++  "BFD_RELOC_ARM_ADRL_IMMEDIATE",
 4.42524 ++  "BFD_RELOC_ARM_T32_IMMEDIATE",
 4.42525 ++  "BFD_RELOC_ARM_T32_ADD_IMM",
 4.42526 ++  "BFD_RELOC_ARM_T32_IMM12",
 4.42527 ++  "BFD_RELOC_ARM_T32_ADD_PC12",
 4.42528 ++  "BFD_RELOC_ARM_SHIFT_IMM",
 4.42529 ++  "BFD_RELOC_ARM_SMC",
 4.42530 ++  "BFD_RELOC_ARM_SWI",
 4.42531 ++  "BFD_RELOC_ARM_MULTI",
 4.42532 ++  "BFD_RELOC_ARM_CP_OFF_IMM",
 4.42533 ++  "BFD_RELOC_ARM_CP_OFF_IMM_S2",
 4.42534 ++  "BFD_RELOC_ARM_T32_CP_OFF_IMM",
 4.42535 ++  "BFD_RELOC_ARM_T32_CP_OFF_IMM_S2",
 4.42536 ++  "BFD_RELOC_ARM_ADR_IMM",
 4.42537 ++  "BFD_RELOC_ARM_LDR_IMM",
 4.42538 ++  "BFD_RELOC_ARM_LITERAL",
 4.42539 ++  "BFD_RELOC_ARM_IN_POOL",
 4.42540 ++  "BFD_RELOC_ARM_OFFSET_IMM8",
 4.42541 ++  "BFD_RELOC_ARM_T32_OFFSET_U8",
 4.42542 ++  "BFD_RELOC_ARM_T32_OFFSET_IMM",
 4.42543 ++  "BFD_RELOC_ARM_HWLITERAL",
 4.42544 ++  "BFD_RELOC_ARM_THUMB_ADD",
 4.42545 ++  "BFD_RELOC_ARM_THUMB_IMM",
 4.42546 ++  "BFD_RELOC_ARM_THUMB_SHIFT",
 4.42547 ++  "BFD_RELOC_SH_PCDISP8BY2",
 4.42548 ++  "BFD_RELOC_SH_PCDISP12BY2",
 4.42549 ++  "BFD_RELOC_SH_IMM3",
 4.42550 ++  "BFD_RELOC_SH_IMM3U",
 4.42551 ++  "BFD_RELOC_SH_DISP12",
 4.42552 ++  "BFD_RELOC_SH_DISP12BY2",
 4.42553 ++  "BFD_RELOC_SH_DISP12BY4",
 4.42554 ++  "BFD_RELOC_SH_DISP12BY8",
 4.42555 ++  "BFD_RELOC_SH_DISP20",
 4.42556 ++  "BFD_RELOC_SH_DISP20BY8",
 4.42557 ++  "BFD_RELOC_SH_IMM4",
 4.42558 ++  "BFD_RELOC_SH_IMM4BY2",
 4.42559 ++  "BFD_RELOC_SH_IMM4BY4",
 4.42560 ++  "BFD_RELOC_SH_IMM8",
 4.42561 ++  "BFD_RELOC_SH_IMM8BY2",
 4.42562 ++  "BFD_RELOC_SH_IMM8BY4",
 4.42563 ++  "BFD_RELOC_SH_PCRELIMM8BY2",
 4.42564 ++  "BFD_RELOC_SH_PCRELIMM8BY4",
 4.42565 ++  "BFD_RELOC_SH_SWITCH16",
 4.42566 ++  "BFD_RELOC_SH_SWITCH32",
 4.42567 ++  "BFD_RELOC_SH_USES",
 4.42568 ++  "BFD_RELOC_SH_COUNT",
 4.42569 ++  "BFD_RELOC_SH_ALIGN",
 4.42570 ++  "BFD_RELOC_SH_CODE",
 4.42571 ++  "BFD_RELOC_SH_DATA",
 4.42572 ++  "BFD_RELOC_SH_LABEL",
 4.42573 ++  "BFD_RELOC_SH_LOOP_START",
 4.42574 ++  "BFD_RELOC_SH_LOOP_END",
 4.42575 ++  "BFD_RELOC_SH_COPY",
 4.42576 ++  "BFD_RELOC_SH_GLOB_DAT",
 4.42577 ++  "BFD_RELOC_SH_JMP_SLOT",
 4.42578 ++  "BFD_RELOC_SH_RELATIVE",
 4.42579 ++  "BFD_RELOC_SH_GOTPC",
 4.42580 ++  "BFD_RELOC_SH_GOT_LOW16",
 4.42581 ++  "BFD_RELOC_SH_GOT_MEDLOW16",
 4.42582 ++  "BFD_RELOC_SH_GOT_MEDHI16",
 4.42583 ++  "BFD_RELOC_SH_GOT_HI16",
 4.42584 ++  "BFD_RELOC_SH_GOTPLT_LOW16",
 4.42585 ++  "BFD_RELOC_SH_GOTPLT_MEDLOW16",
 4.42586 ++  "BFD_RELOC_SH_GOTPLT_MEDHI16",
 4.42587 ++  "BFD_RELOC_SH_GOTPLT_HI16",
 4.42588 ++  "BFD_RELOC_SH_PLT_LOW16",
 4.42589 ++  "BFD_RELOC_SH_PLT_MEDLOW16",
 4.42590 ++  "BFD_RELOC_SH_PLT_MEDHI16",
 4.42591 ++  "BFD_RELOC_SH_PLT_HI16",
 4.42592 ++  "BFD_RELOC_SH_GOTOFF_LOW16",
 4.42593 ++  "BFD_RELOC_SH_GOTOFF_MEDLOW16",
 4.42594 ++  "BFD_RELOC_SH_GOTOFF_MEDHI16",
 4.42595 ++  "BFD_RELOC_SH_GOTOFF_HI16",
 4.42596 ++  "BFD_RELOC_SH_GOTPC_LOW16",
 4.42597 ++  "BFD_RELOC_SH_GOTPC_MEDLOW16",
 4.42598 ++  "BFD_RELOC_SH_GOTPC_MEDHI16",
 4.42599 ++  "BFD_RELOC_SH_GOTPC_HI16",
 4.42600 ++  "BFD_RELOC_SH_COPY64",
 4.42601 ++  "BFD_RELOC_SH_GLOB_DAT64",
 4.42602 ++  "BFD_RELOC_SH_JMP_SLOT64",
 4.42603 ++  "BFD_RELOC_SH_RELATIVE64",
 4.42604 ++  "BFD_RELOC_SH_GOT10BY4",
 4.42605 ++  "BFD_RELOC_SH_GOT10BY8",
 4.42606 ++  "BFD_RELOC_SH_GOTPLT10BY4",
 4.42607 ++  "BFD_RELOC_SH_GOTPLT10BY8",
 4.42608 ++  "BFD_RELOC_SH_GOTPLT32",
 4.42609 ++  "BFD_RELOC_SH_SHMEDIA_CODE",
 4.42610 ++  "BFD_RELOC_SH_IMMU5",
 4.42611 ++  "BFD_RELOC_SH_IMMS6",
 4.42612 ++  "BFD_RELOC_SH_IMMS6BY32",
 4.42613 ++  "BFD_RELOC_SH_IMMU6",
 4.42614 ++  "BFD_RELOC_SH_IMMS10",
 4.42615 ++  "BFD_RELOC_SH_IMMS10BY2",
 4.42616 ++  "BFD_RELOC_SH_IMMS10BY4",
 4.42617 ++  "BFD_RELOC_SH_IMMS10BY8",
 4.42618 ++  "BFD_RELOC_SH_IMMS16",
 4.42619 ++  "BFD_RELOC_SH_IMMU16",
 4.42620 ++  "BFD_RELOC_SH_IMM_LOW16",
 4.42621 ++  "BFD_RELOC_SH_IMM_LOW16_PCREL",
 4.42622 ++  "BFD_RELOC_SH_IMM_MEDLOW16",
 4.42623 ++  "BFD_RELOC_SH_IMM_MEDLOW16_PCREL",
 4.42624 ++  "BFD_RELOC_SH_IMM_MEDHI16",
 4.42625 ++  "BFD_RELOC_SH_IMM_MEDHI16_PCREL",
 4.42626 ++  "BFD_RELOC_SH_IMM_HI16",
 4.42627 ++  "BFD_RELOC_SH_IMM_HI16_PCREL",
 4.42628 ++  "BFD_RELOC_SH_PT_16",
 4.42629 ++  "BFD_RELOC_SH_TLS_GD_32",
 4.42630 ++  "BFD_RELOC_SH_TLS_LD_32",
 4.42631 ++  "BFD_RELOC_SH_TLS_LDO_32",
 4.42632 ++  "BFD_RELOC_SH_TLS_IE_32",
 4.42633 ++  "BFD_RELOC_SH_TLS_LE_32",
 4.42634 ++  "BFD_RELOC_SH_TLS_DTPMOD32",
 4.42635 ++  "BFD_RELOC_SH_TLS_DTPOFF32",
 4.42636 ++  "BFD_RELOC_SH_TLS_TPOFF32",
 4.42637 ++  "BFD_RELOC_ARC_B22_PCREL",
 4.42638 ++  "BFD_RELOC_ARC_B26",
 4.42639 ++  "BFD_RELOC_BFIN_16_IMM",
 4.42640 ++  "BFD_RELOC_BFIN_16_HIGH",
 4.42641 ++  "BFD_RELOC_BFIN_4_PCREL",
 4.42642 ++  "BFD_RELOC_BFIN_5_PCREL",
 4.42643 ++  "BFD_RELOC_BFIN_16_LOW",
 4.42644 ++  "BFD_RELOC_BFIN_10_PCREL",
 4.42645 ++  "BFD_RELOC_BFIN_11_PCREL",
 4.42646 ++  "BFD_RELOC_BFIN_12_PCREL_JUMP",
 4.42647 ++  "BFD_RELOC_BFIN_12_PCREL_JUMP_S",
 4.42648 ++  "BFD_RELOC_BFIN_24_PCREL_CALL_X",
 4.42649 ++  "BFD_RELOC_BFIN_24_PCREL_JUMP_L",
 4.42650 ++  "BFD_RELOC_BFIN_GOT17M4",
 4.42651 ++  "BFD_RELOC_BFIN_GOTHI",
 4.42652 ++  "BFD_RELOC_BFIN_GOTLO",
 4.42653 ++  "BFD_RELOC_BFIN_FUNCDESC",
 4.42654 ++  "BFD_RELOC_BFIN_FUNCDESC_GOT17M4",
 4.42655 ++  "BFD_RELOC_BFIN_FUNCDESC_GOTHI",
 4.42656 ++  "BFD_RELOC_BFIN_FUNCDESC_GOTLO",
 4.42657 ++  "BFD_RELOC_BFIN_FUNCDESC_VALUE",
 4.42658 ++  "BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4",
 4.42659 ++  "BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI",
 4.42660 ++  "BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO",
 4.42661 ++  "BFD_RELOC_BFIN_GOTOFF17M4",
 4.42662 ++  "BFD_RELOC_BFIN_GOTOFFHI",
 4.42663 ++  "BFD_RELOC_BFIN_GOTOFFLO",
 4.42664 ++  "BFD_RELOC_BFIN_GOT",
 4.42665 ++  "BFD_RELOC_BFIN_PLTPC",
 4.42666 ++  "BFD_ARELOC_BFIN_PUSH",
 4.42667 ++  "BFD_ARELOC_BFIN_CONST",
 4.42668 ++  "BFD_ARELOC_BFIN_ADD",
 4.42669 ++  "BFD_ARELOC_BFIN_SUB",
 4.42670 ++  "BFD_ARELOC_BFIN_MULT",
 4.42671 ++  "BFD_ARELOC_BFIN_DIV",
 4.42672 ++  "BFD_ARELOC_BFIN_MOD",
 4.42673 ++  "BFD_ARELOC_BFIN_LSHIFT",
 4.42674 ++  "BFD_ARELOC_BFIN_RSHIFT",
 4.42675 ++  "BFD_ARELOC_BFIN_AND",
 4.42676 ++  "BFD_ARELOC_BFIN_OR",
 4.42677 ++  "BFD_ARELOC_BFIN_XOR",
 4.42678 ++  "BFD_ARELOC_BFIN_LAND",
 4.42679 ++  "BFD_ARELOC_BFIN_LOR",
 4.42680 ++  "BFD_ARELOC_BFIN_LEN",
 4.42681 ++  "BFD_ARELOC_BFIN_NEG",
 4.42682 ++  "BFD_ARELOC_BFIN_COMP",
 4.42683 ++  "BFD_ARELOC_BFIN_PAGE",
 4.42684 ++  "BFD_ARELOC_BFIN_HWPAGE",
 4.42685 ++  "BFD_ARELOC_BFIN_ADDR",
 4.42686 ++  "BFD_RELOC_D10V_10_PCREL_R",
 4.42687 ++  "BFD_RELOC_D10V_10_PCREL_L",
 4.42688 ++  "BFD_RELOC_D10V_18",
 4.42689 ++  "BFD_RELOC_D10V_18_PCREL",
 4.42690 ++  "BFD_RELOC_D30V_6",
 4.42691 ++  "BFD_RELOC_D30V_9_PCREL",
 4.42692 ++  "BFD_RELOC_D30V_9_PCREL_R",
 4.42693 ++  "BFD_RELOC_D30V_15",
 4.42694 ++  "BFD_RELOC_D30V_15_PCREL",
 4.42695 ++  "BFD_RELOC_D30V_15_PCREL_R",
 4.42696 ++  "BFD_RELOC_D30V_21",
 4.42697 ++  "BFD_RELOC_D30V_21_PCREL",
 4.42698 ++  "BFD_RELOC_D30V_21_PCREL_R",
 4.42699 ++  "BFD_RELOC_D30V_32",
 4.42700 ++  "BFD_RELOC_D30V_32_PCREL",
 4.42701 ++  "BFD_RELOC_DLX_HI16_S",
 4.42702 ++  "BFD_RELOC_DLX_LO16",
 4.42703 ++  "BFD_RELOC_DLX_JMP26",
 4.42704 ++  "BFD_RELOC_M32C_HI8",
 4.42705 ++  "BFD_RELOC_M32C_RL_JUMP",
 4.42706 ++  "BFD_RELOC_M32C_RL_1ADDR",
 4.42707 ++  "BFD_RELOC_M32C_RL_2ADDR",
 4.42708 ++  "BFD_RELOC_M32R_24",
 4.42709 ++  "BFD_RELOC_M32R_10_PCREL",
 4.42710 ++  "BFD_RELOC_M32R_18_PCREL",
 4.42711 ++  "BFD_RELOC_M32R_26_PCREL",
 4.42712 ++  "BFD_RELOC_M32R_HI16_ULO",
 4.42713 ++  "BFD_RELOC_M32R_HI16_SLO",
 4.42714 ++  "BFD_RELOC_M32R_LO16",
 4.42715 ++  "BFD_RELOC_M32R_SDA16",
 4.42716 ++  "BFD_RELOC_M32R_GOT24",
 4.42717 ++  "BFD_RELOC_M32R_26_PLTREL",
 4.42718 ++  "BFD_RELOC_M32R_COPY",
 4.42719 ++  "BFD_RELOC_M32R_GLOB_DAT",
 4.42720 ++  "BFD_RELOC_M32R_JMP_SLOT",
 4.42721 ++  "BFD_RELOC_M32R_RELATIVE",
 4.42722 ++  "BFD_RELOC_M32R_GOTOFF",
 4.42723 ++  "BFD_RELOC_M32R_GOTOFF_HI_ULO",
 4.42724 ++  "BFD_RELOC_M32R_GOTOFF_HI_SLO",
 4.42725 ++  "BFD_RELOC_M32R_GOTOFF_LO",
 4.42726 ++  "BFD_RELOC_M32R_GOTPC24",
 4.42727 ++  "BFD_RELOC_M32R_GOT16_HI_ULO",
 4.42728 ++  "BFD_RELOC_M32R_GOT16_HI_SLO",
 4.42729 ++  "BFD_RELOC_M32R_GOT16_LO",
 4.42730 ++  "BFD_RELOC_M32R_GOTPC_HI_ULO",
 4.42731 ++  "BFD_RELOC_M32R_GOTPC_HI_SLO",
 4.42732 ++  "BFD_RELOC_M32R_GOTPC_LO",
 4.42733 ++  "BFD_RELOC_V850_9_PCREL",
 4.42734 ++  "BFD_RELOC_V850_22_PCREL",
 4.42735 ++  "BFD_RELOC_V850_SDA_16_16_OFFSET",
 4.42736 ++  "BFD_RELOC_V850_SDA_15_16_OFFSET",
 4.42737 ++  "BFD_RELOC_V850_ZDA_16_16_OFFSET",
 4.42738 ++  "BFD_RELOC_V850_ZDA_15_16_OFFSET",
 4.42739 ++  "BFD_RELOC_V850_TDA_6_8_OFFSET",
 4.42740 ++  "BFD_RELOC_V850_TDA_7_8_OFFSET",
 4.42741 ++  "BFD_RELOC_V850_TDA_7_7_OFFSET",
 4.42742 ++  "BFD_RELOC_V850_TDA_16_16_OFFSET",
 4.42743 ++  "BFD_RELOC_V850_TDA_4_5_OFFSET",
 4.42744 ++  "BFD_RELOC_V850_TDA_4_4_OFFSET",
 4.42745 ++  "BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET",
 4.42746 ++  "BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET",
 4.42747 ++  "BFD_RELOC_V850_CALLT_6_7_OFFSET",
 4.42748 ++  "BFD_RELOC_V850_CALLT_16_16_OFFSET",
 4.42749 ++  "BFD_RELOC_V850_LONGCALL",
 4.42750 ++  "BFD_RELOC_V850_LONGJUMP",
 4.42751 ++  "BFD_RELOC_V850_ALIGN",
 4.42752 ++  "BFD_RELOC_V850_LO16_SPLIT_OFFSET",
 4.42753 ++  "BFD_RELOC_MN10300_32_PCREL",
 4.42754 ++  "BFD_RELOC_MN10300_16_PCREL",
 4.42755 ++  "BFD_RELOC_TIC30_LDP",
 4.42756 ++  "BFD_RELOC_TIC54X_PARTLS7",
 4.42757 ++  "BFD_RELOC_TIC54X_PARTMS9",
 4.42758 ++  "BFD_RELOC_TIC54X_23",
 4.42759 ++  "BFD_RELOC_TIC54X_16_OF_23",
 4.42760 ++  "BFD_RELOC_TIC54X_MS7_OF_23",
 4.42761 ++  "BFD_RELOC_FR30_48",
 4.42762 ++  "BFD_RELOC_FR30_20",
 4.42763 ++  "BFD_RELOC_FR30_6_IN_4",
 4.42764 ++  "BFD_RELOC_FR30_8_IN_8",
 4.42765 ++  "BFD_RELOC_FR30_9_IN_8",
 4.42766 ++  "BFD_RELOC_FR30_10_IN_8",
 4.42767 ++  "BFD_RELOC_FR30_9_PCREL",
 4.42768 ++  "BFD_RELOC_FR30_12_PCREL",
 4.42769 ++  "BFD_RELOC_MCORE_PCREL_IMM8BY4",
 4.42770 ++  "BFD_RELOC_MCORE_PCREL_IMM11BY2",
 4.42771 ++  "BFD_RELOC_MCORE_PCREL_IMM4BY2",
 4.42772 ++  "BFD_RELOC_MCORE_PCREL_32",
 4.42773 ++  "BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2",
 4.42774 ++  "BFD_RELOC_MCORE_RVA",
 4.42775 ++  "BFD_RELOC_MEP_8",
 4.42776 ++  "BFD_RELOC_MEP_16",
 4.42777 ++  "BFD_RELOC_MEP_32",
 4.42778 ++  "BFD_RELOC_MEP_PCREL8A2",
 4.42779 ++  "BFD_RELOC_MEP_PCREL12A2",
 4.42780 ++  "BFD_RELOC_MEP_PCREL17A2",
 4.42781 ++  "BFD_RELOC_MEP_PCREL24A2",
 4.42782 ++  "BFD_RELOC_MEP_PCABS24A2",
 4.42783 ++  "BFD_RELOC_MEP_LOW16",
 4.42784 ++  "BFD_RELOC_MEP_HI16U",
 4.42785 ++  "BFD_RELOC_MEP_HI16S",
 4.42786 ++  "BFD_RELOC_MEP_GPREL",
 4.42787 ++  "BFD_RELOC_MEP_TPREL",
 4.42788 ++  "BFD_RELOC_MEP_TPREL7",
 4.42789 ++  "BFD_RELOC_MEP_TPREL7A2",
 4.42790 ++  "BFD_RELOC_MEP_TPREL7A4",
 4.42791 ++  "BFD_RELOC_MEP_UIMM24",
 4.42792 ++  "BFD_RELOC_MEP_ADDR24A4",
 4.42793 ++  "BFD_RELOC_MEP_GNU_VTINHERIT",
 4.42794 ++  "BFD_RELOC_MEP_GNU_VTENTRY",
 4.42795 ++
 4.42796 ++  "BFD_RELOC_MMIX_GETA",
 4.42797 ++  "BFD_RELOC_MMIX_GETA_1",
 4.42798 ++  "BFD_RELOC_MMIX_GETA_2",
 4.42799 ++  "BFD_RELOC_MMIX_GETA_3",
 4.42800 ++  "BFD_RELOC_MMIX_CBRANCH",
 4.42801 ++  "BFD_RELOC_MMIX_CBRANCH_J",
 4.42802 ++  "BFD_RELOC_MMIX_CBRANCH_1",
 4.42803 ++  "BFD_RELOC_MMIX_CBRANCH_2",
 4.42804 ++  "BFD_RELOC_MMIX_CBRANCH_3",
 4.42805 ++  "BFD_RELOC_MMIX_PUSHJ",
 4.42806 ++  "BFD_RELOC_MMIX_PUSHJ_1",
 4.42807 ++  "BFD_RELOC_MMIX_PUSHJ_2",
 4.42808 ++  "BFD_RELOC_MMIX_PUSHJ_3",
 4.42809 ++  "BFD_RELOC_MMIX_PUSHJ_STUBBABLE",
 4.42810 ++  "BFD_RELOC_MMIX_JMP",
 4.42811 ++  "BFD_RELOC_MMIX_JMP_1",
 4.42812 ++  "BFD_RELOC_MMIX_JMP_2",
 4.42813 ++  "BFD_RELOC_MMIX_JMP_3",
 4.42814 ++  "BFD_RELOC_MMIX_ADDR19",
 4.42815 ++  "BFD_RELOC_MMIX_ADDR27",
 4.42816 ++  "BFD_RELOC_MMIX_REG_OR_BYTE",
 4.42817 ++  "BFD_RELOC_MMIX_REG",
 4.42818 ++  "BFD_RELOC_MMIX_BASE_PLUS_OFFSET",
 4.42819 ++  "BFD_RELOC_MMIX_LOCAL",
 4.42820 ++  "BFD_RELOC_AVR_7_PCREL",
 4.42821 ++  "BFD_RELOC_AVR_13_PCREL",
 4.42822 ++  "BFD_RELOC_AVR_16_PM",
 4.42823 ++  "BFD_RELOC_AVR_LO8_LDI",
 4.42824 ++  "BFD_RELOC_AVR_HI8_LDI",
 4.42825 ++  "BFD_RELOC_AVR_HH8_LDI",
 4.42826 ++  "BFD_RELOC_AVR_MS8_LDI",
 4.42827 ++  "BFD_RELOC_AVR_LO8_LDI_NEG",
 4.42828 ++  "BFD_RELOC_AVR_HI8_LDI_NEG",
 4.42829 ++  "BFD_RELOC_AVR_HH8_LDI_NEG",
 4.42830 ++  "BFD_RELOC_AVR_MS8_LDI_NEG",
 4.42831 ++  "BFD_RELOC_AVR_LO8_LDI_PM",
 4.42832 ++  "BFD_RELOC_AVR_LO8_LDI_GS",
 4.42833 ++  "BFD_RELOC_AVR_HI8_LDI_PM",
 4.42834 ++  "BFD_RELOC_AVR_HI8_LDI_GS",
 4.42835 ++  "BFD_RELOC_AVR_HH8_LDI_PM",
 4.42836 ++  "BFD_RELOC_AVR_LO8_LDI_PM_NEG",
 4.42837 ++  "BFD_RELOC_AVR_HI8_LDI_PM_NEG",
 4.42838 ++  "BFD_RELOC_AVR_HH8_LDI_PM_NEG",
 4.42839 ++  "BFD_RELOC_AVR_CALL",
 4.42840 ++  "BFD_RELOC_AVR_LDI",
 4.42841 ++  "BFD_RELOC_AVR_6",
 4.42842 ++  "BFD_RELOC_AVR_6_ADIW",
 4.42843 ++  "BFD_RELOC_AVR32_DIFF32",
 4.42844 ++  "BFD_RELOC_AVR32_DIFF16",
 4.42845 ++  "BFD_RELOC_AVR32_DIFF8",
 4.42846 ++  "BFD_RELOC_AVR32_GOT32",
 4.42847 ++  "BFD_RELOC_AVR32_GOT16",
 4.42848 ++  "BFD_RELOC_AVR32_GOT8",
 4.42849 ++  "BFD_RELOC_AVR32_21S",
 4.42850 ++  "BFD_RELOC_AVR32_16U",
 4.42851 ++  "BFD_RELOC_AVR32_16S",
 4.42852 ++  "BFD_RELOC_AVR32_SUB5",
 4.42853 ++  "BFD_RELOC_AVR32_8S_EXT",
 4.42854 ++  "BFD_RELOC_AVR32_8S",
 4.42855 ++  "BFD_RELOC_AVR32_15S",
 4.42856 ++  "BFD_RELOC_AVR32_22H_PCREL",
 4.42857 ++  "BFD_RELOC_AVR32_18W_PCREL",
 4.42858 ++  "BFD_RELOC_AVR32_16B_PCREL",
 4.42859 ++  "BFD_RELOC_AVR32_16N_PCREL",
 4.42860 ++  "BFD_RELOC_AVR32_14UW_PCREL",
 4.42861 ++  "BFD_RELOC_AVR32_11H_PCREL",
 4.42862 ++  "BFD_RELOC_AVR32_10UW_PCREL",
 4.42863 ++  "BFD_RELOC_AVR32_9H_PCREL",
 4.42864 ++  "BFD_RELOC_AVR32_9UW_PCREL",
 4.42865 ++  "BFD_RELOC_AVR32_GOTPC",
 4.42866 ++  "BFD_RELOC_AVR32_GOTCALL",
 4.42867 ++  "BFD_RELOC_AVR32_LDA_GOT",
 4.42868 ++  "BFD_RELOC_AVR32_GOT21S",
 4.42869 ++  "BFD_RELOC_AVR32_GOT18SW",
 4.42870 ++  "BFD_RELOC_AVR32_GOT16S",
 4.42871 ++  "BFD_RELOC_AVR32_32_CPENT",
 4.42872 ++  "BFD_RELOC_AVR32_CPCALL",
 4.42873 ++  "BFD_RELOC_AVR32_16_CP",
 4.42874 ++  "BFD_RELOC_AVR32_9W_CP",
 4.42875 ++  "BFD_RELOC_AVR32_ALIGN",
 4.42876 ++  "BFD_RELOC_AVR32_14UW",
 4.42877 ++  "BFD_RELOC_AVR32_10UW",
 4.42878 ++  "BFD_RELOC_AVR32_10SW",
 4.42879 ++  "BFD_RELOC_AVR32_STHH_W",
 4.42880 ++  "BFD_RELOC_AVR32_7UW",
 4.42881 ++  "BFD_RELOC_AVR32_6S",
 4.42882 ++  "BFD_RELOC_AVR32_6UW",
 4.42883 ++  "BFD_RELOC_AVR32_4UH",
 4.42884 ++  "BFD_RELOC_AVR32_3U",
 4.42885 ++  "BFD_RELOC_390_12",
 4.42886 ++  "BFD_RELOC_390_GOT12",
 4.42887 ++  "BFD_RELOC_390_PLT32",
 4.42888 ++  "BFD_RELOC_390_COPY",
 4.42889 ++  "BFD_RELOC_390_GLOB_DAT",
 4.42890 ++  "BFD_RELOC_390_JMP_SLOT",
 4.42891 ++  "BFD_RELOC_390_RELATIVE",
 4.42892 ++  "BFD_RELOC_390_GOTPC",
 4.42893 ++  "BFD_RELOC_390_GOT16",
 4.42894 ++  "BFD_RELOC_390_PC16DBL",
 4.42895 ++  "BFD_RELOC_390_PLT16DBL",
 4.42896 ++  "BFD_RELOC_390_PC32DBL",
 4.42897 ++  "BFD_RELOC_390_PLT32DBL",
 4.42898 ++  "BFD_RELOC_390_GOTPCDBL",
 4.42899 ++  "BFD_RELOC_390_GOT64",
 4.42900 ++  "BFD_RELOC_390_PLT64",
 4.42901 ++  "BFD_RELOC_390_GOTENT",
 4.42902 ++  "BFD_RELOC_390_GOTOFF64",
 4.42903 ++  "BFD_RELOC_390_GOTPLT12",
 4.42904 ++  "BFD_RELOC_390_GOTPLT16",
 4.42905 ++  "BFD_RELOC_390_GOTPLT32",
 4.42906 ++  "BFD_RELOC_390_GOTPLT64",
 4.42907 ++  "BFD_RELOC_390_GOTPLTENT",
 4.42908 ++  "BFD_RELOC_390_PLTOFF16",
 4.42909 ++  "BFD_RELOC_390_PLTOFF32",
 4.42910 ++  "BFD_RELOC_390_PLTOFF64",
 4.42911 ++  "BFD_RELOC_390_TLS_LOAD",
 4.42912 ++  "BFD_RELOC_390_TLS_GDCALL",
 4.42913 ++  "BFD_RELOC_390_TLS_LDCALL",
 4.42914 ++  "BFD_RELOC_390_TLS_GD32",
 4.42915 ++  "BFD_RELOC_390_TLS_GD64",
 4.42916 ++  "BFD_RELOC_390_TLS_GOTIE12",
 4.42917 ++  "BFD_RELOC_390_TLS_GOTIE32",
 4.42918 ++  "BFD_RELOC_390_TLS_GOTIE64",
 4.42919 ++  "BFD_RELOC_390_TLS_LDM32",
 4.42920 ++  "BFD_RELOC_390_TLS_LDM64",
 4.42921 ++  "BFD_RELOC_390_TLS_IE32",
 4.42922 ++  "BFD_RELOC_390_TLS_IE64",
 4.42923 ++  "BFD_RELOC_390_TLS_IEENT",
 4.42924 ++  "BFD_RELOC_390_TLS_LE32",
 4.42925 ++  "BFD_RELOC_390_TLS_LE64",
 4.42926 ++  "BFD_RELOC_390_TLS_LDO32",
 4.42927 ++  "BFD_RELOC_390_TLS_LDO64",
 4.42928 ++  "BFD_RELOC_390_TLS_DTPMOD",
 4.42929 ++  "BFD_RELOC_390_TLS_DTPOFF",
 4.42930 ++  "BFD_RELOC_390_TLS_TPOFF",
 4.42931 ++  "BFD_RELOC_390_20",
 4.42932 ++  "BFD_RELOC_390_GOT20",
 4.42933 ++  "BFD_RELOC_390_GOTPLT20",
 4.42934 ++  "BFD_RELOC_390_TLS_GOTIE20",
 4.42935 ++  "BFD_RELOC_SCORE_DUMMY1",
 4.42936 ++  "BFD_RELOC_SCORE_GPREL15",
 4.42937 ++  "BFD_RELOC_SCORE_DUMMY2",
 4.42938 ++  "BFD_RELOC_SCORE_JMP",
 4.42939 ++  "BFD_RELOC_SCORE_BRANCH",
 4.42940 ++  "BFD_RELOC_SCORE16_JMP",
 4.42941 ++  "BFD_RELOC_SCORE16_BRANCH",
 4.42942 ++  "BFD_RELOC_SCORE_GOT15",
 4.42943 ++  "BFD_RELOC_SCORE_GOT_LO16",
 4.42944 ++  "BFD_RELOC_SCORE_CALL15",
 4.42945 ++  "BFD_RELOC_SCORE_DUMMY_HI16",
 4.42946 ++  "BFD_RELOC_IP2K_FR9",
 4.42947 ++  "BFD_RELOC_IP2K_BANK",
 4.42948 ++  "BFD_RELOC_IP2K_ADDR16CJP",
 4.42949 ++  "BFD_RELOC_IP2K_PAGE3",
 4.42950 ++  "BFD_RELOC_IP2K_LO8DATA",
 4.42951 ++  "BFD_RELOC_IP2K_HI8DATA",
 4.42952 ++  "BFD_RELOC_IP2K_EX8DATA",
 4.42953 ++  "BFD_RELOC_IP2K_LO8INSN",
 4.42954 ++  "BFD_RELOC_IP2K_HI8INSN",
 4.42955 ++  "BFD_RELOC_IP2K_PC_SKIP",
 4.42956 ++  "BFD_RELOC_IP2K_TEXT",
 4.42957 ++  "BFD_RELOC_IP2K_FR_OFFSET",
 4.42958 ++  "BFD_RELOC_VPE4KMATH_DATA",
 4.42959 ++  "BFD_RELOC_VPE4KMATH_INSN",
 4.42960 ++  "BFD_RELOC_VTABLE_INHERIT",
 4.42961 ++  "BFD_RELOC_VTABLE_ENTRY",
 4.42962 ++  "BFD_RELOC_IA64_IMM14",
 4.42963 ++  "BFD_RELOC_IA64_IMM22",
 4.42964 ++  "BFD_RELOC_IA64_IMM64",
 4.42965 ++  "BFD_RELOC_IA64_DIR32MSB",
 4.42966 ++  "BFD_RELOC_IA64_DIR32LSB",
 4.42967 ++  "BFD_RELOC_IA64_DIR64MSB",
 4.42968 ++  "BFD_RELOC_IA64_DIR64LSB",
 4.42969 ++  "BFD_RELOC_IA64_GPREL22",
 4.42970 ++  "BFD_RELOC_IA64_GPREL64I",
 4.42971 ++  "BFD_RELOC_IA64_GPREL32MSB",
 4.42972 ++  "BFD_RELOC_IA64_GPREL32LSB",
 4.42973 ++  "BFD_RELOC_IA64_GPREL64MSB",
 4.42974 ++  "BFD_RELOC_IA64_GPREL64LSB",
 4.42975 ++  "BFD_RELOC_IA64_LTOFF22",
 4.42976 ++  "BFD_RELOC_IA64_LTOFF64I",
 4.42977 ++  "BFD_RELOC_IA64_PLTOFF22",
 4.42978 ++  "BFD_RELOC_IA64_PLTOFF64I",
 4.42979 ++  "BFD_RELOC_IA64_PLTOFF64MSB",
 4.42980 ++  "BFD_RELOC_IA64_PLTOFF64LSB",
 4.42981 ++  "BFD_RELOC_IA64_FPTR64I",
 4.42982 ++  "BFD_RELOC_IA64_FPTR32MSB",
 4.42983 ++  "BFD_RELOC_IA64_FPTR32LSB",
 4.42984 ++  "BFD_RELOC_IA64_FPTR64MSB",
 4.42985 ++  "BFD_RELOC_IA64_FPTR64LSB",
 4.42986 ++  "BFD_RELOC_IA64_PCREL21B",
 4.42987 ++  "BFD_RELOC_IA64_PCREL21BI",
 4.42988 ++  "BFD_RELOC_IA64_PCREL21M",
 4.42989 ++  "BFD_RELOC_IA64_PCREL21F",
 4.42990 ++  "BFD_RELOC_IA64_PCREL22",
 4.42991 ++  "BFD_RELOC_IA64_PCREL60B",
 4.42992 ++  "BFD_RELOC_IA64_PCREL64I",
 4.42993 ++  "BFD_RELOC_IA64_PCREL32MSB",
 4.42994 ++  "BFD_RELOC_IA64_PCREL32LSB",
 4.42995 ++  "BFD_RELOC_IA64_PCREL64MSB",
 4.42996 ++  "BFD_RELOC_IA64_PCREL64LSB",
 4.42997 ++  "BFD_RELOC_IA64_LTOFF_FPTR22",
 4.42998 ++  "BFD_RELOC_IA64_LTOFF_FPTR64I",
 4.42999 ++  "BFD_RELOC_IA64_LTOFF_FPTR32MSB",
 4.43000 ++  "BFD_RELOC_IA64_LTOFF_FPTR32LSB",
 4.43001 ++  "BFD_RELOC_IA64_LTOFF_FPTR64MSB",
 4.43002 ++  "BFD_RELOC_IA64_LTOFF_FPTR64LSB",
 4.43003 ++  "BFD_RELOC_IA64_SEGREL32MSB",
 4.43004 ++  "BFD_RELOC_IA64_SEGREL32LSB",
 4.43005 ++  "BFD_RELOC_IA64_SEGREL64MSB",
 4.43006 ++  "BFD_RELOC_IA64_SEGREL64LSB",
 4.43007 ++  "BFD_RELOC_IA64_SECREL32MSB",
 4.43008 ++  "BFD_RELOC_IA64_SECREL32LSB",
 4.43009 ++  "BFD_RELOC_IA64_SECREL64MSB",
 4.43010 ++  "BFD_RELOC_IA64_SECREL64LSB",
 4.43011 ++  "BFD_RELOC_IA64_REL32MSB",
 4.43012 ++  "BFD_RELOC_IA64_REL32LSB",
 4.43013 ++  "BFD_RELOC_IA64_REL64MSB",
 4.43014 ++  "BFD_RELOC_IA64_REL64LSB",
 4.43015 ++  "BFD_RELOC_IA64_LTV32MSB",
 4.43016 ++  "BFD_RELOC_IA64_LTV32LSB",
 4.43017 ++  "BFD_RELOC_IA64_LTV64MSB",
 4.43018 ++  "BFD_RELOC_IA64_LTV64LSB",
 4.43019 ++  "BFD_RELOC_IA64_IPLTMSB",
 4.43020 ++  "BFD_RELOC_IA64_IPLTLSB",
 4.43021 ++  "BFD_RELOC_IA64_COPY",
 4.43022 ++  "BFD_RELOC_IA64_LTOFF22X",
 4.43023 ++  "BFD_RELOC_IA64_LDXMOV",
 4.43024 ++  "BFD_RELOC_IA64_TPREL14",
 4.43025 ++  "BFD_RELOC_IA64_TPREL22",
 4.43026 ++  "BFD_RELOC_IA64_TPREL64I",
 4.43027 ++  "BFD_RELOC_IA64_TPREL64MSB",
 4.43028 ++  "BFD_RELOC_IA64_TPREL64LSB",
 4.43029 ++  "BFD_RELOC_IA64_LTOFF_TPREL22",
 4.43030 ++  "BFD_RELOC_IA64_DTPMOD64MSB",
 4.43031 ++  "BFD_RELOC_IA64_DTPMOD64LSB",
 4.43032 ++  "BFD_RELOC_IA64_LTOFF_DTPMOD22",
 4.43033 ++  "BFD_RELOC_IA64_DTPREL14",
 4.43034 ++  "BFD_RELOC_IA64_DTPREL22",
 4.43035 ++  "BFD_RELOC_IA64_DTPREL64I",
 4.43036 ++  "BFD_RELOC_IA64_DTPREL32MSB",
 4.43037 ++  "BFD_RELOC_IA64_DTPREL32LSB",
 4.43038 ++  "BFD_RELOC_IA64_DTPREL64MSB",
 4.43039 ++  "BFD_RELOC_IA64_DTPREL64LSB",
 4.43040 ++  "BFD_RELOC_IA64_LTOFF_DTPREL22",
 4.43041 ++  "BFD_RELOC_M68HC11_HI8",
 4.43042 ++  "BFD_RELOC_M68HC11_LO8",
 4.43043 ++  "BFD_RELOC_M68HC11_3B",
 4.43044 ++  "BFD_RELOC_M68HC11_RL_JUMP",
 4.43045 ++  "BFD_RELOC_M68HC11_RL_GROUP",
 4.43046 ++  "BFD_RELOC_M68HC11_LO16",
 4.43047 ++  "BFD_RELOC_M68HC11_PAGE",
 4.43048 ++  "BFD_RELOC_M68HC11_24",
 4.43049 ++  "BFD_RELOC_M68HC12_5B",
 4.43050 ++  "BFD_RELOC_16C_NUM08",
 4.43051 ++  "BFD_RELOC_16C_NUM08_C",
 4.43052 ++  "BFD_RELOC_16C_NUM16",
 4.43053 ++  "BFD_RELOC_16C_NUM16_C",
 4.43054 ++  "BFD_RELOC_16C_NUM32",
 4.43055 ++  "BFD_RELOC_16C_NUM32_C",
 4.43056 ++  "BFD_RELOC_16C_DISP04",
 4.43057 ++  "BFD_RELOC_16C_DISP04_C",
 4.43058 ++  "BFD_RELOC_16C_DISP08",
 4.43059 ++  "BFD_RELOC_16C_DISP08_C",
 4.43060 ++  "BFD_RELOC_16C_DISP16",
 4.43061 ++  "BFD_RELOC_16C_DISP16_C",
 4.43062 ++  "BFD_RELOC_16C_DISP24",
 4.43063 ++  "BFD_RELOC_16C_DISP24_C",
 4.43064 ++  "BFD_RELOC_16C_DISP24a",
 4.43065 ++  "BFD_RELOC_16C_DISP24a_C",
 4.43066 ++  "BFD_RELOC_16C_REG04",
 4.43067 ++  "BFD_RELOC_16C_REG04_C",
 4.43068 ++  "BFD_RELOC_16C_REG04a",
 4.43069 ++  "BFD_RELOC_16C_REG04a_C",
 4.43070 ++  "BFD_RELOC_16C_REG14",
 4.43071 ++  "BFD_RELOC_16C_REG14_C",
 4.43072 ++  "BFD_RELOC_16C_REG16",
 4.43073 ++  "BFD_RELOC_16C_REG16_C",
 4.43074 ++  "BFD_RELOC_16C_REG20",
 4.43075 ++  "BFD_RELOC_16C_REG20_C",
 4.43076 ++  "BFD_RELOC_16C_ABS20",
 4.43077 ++  "BFD_RELOC_16C_ABS20_C",
 4.43078 ++  "BFD_RELOC_16C_ABS24",
 4.43079 ++  "BFD_RELOC_16C_ABS24_C",
 4.43080 ++  "BFD_RELOC_16C_IMM04",
 4.43081 ++  "BFD_RELOC_16C_IMM04_C",
 4.43082 ++  "BFD_RELOC_16C_IMM16",
 4.43083 ++  "BFD_RELOC_16C_IMM16_C",
 4.43084 ++  "BFD_RELOC_16C_IMM20",
 4.43085 ++  "BFD_RELOC_16C_IMM20_C",
 4.43086 ++  "BFD_RELOC_16C_IMM24",
 4.43087 ++  "BFD_RELOC_16C_IMM24_C",
 4.43088 ++  "BFD_RELOC_16C_IMM32",
 4.43089 ++  "BFD_RELOC_16C_IMM32_C",
 4.43090 ++  "BFD_RELOC_CR16_NUM8",
 4.43091 ++  "BFD_RELOC_CR16_NUM16",
 4.43092 ++  "BFD_RELOC_CR16_NUM32",
 4.43093 ++  "BFD_RELOC_CR16_NUM32a",
 4.43094 ++  "BFD_RELOC_CR16_REGREL0",
 4.43095 ++  "BFD_RELOC_CR16_REGREL4",
 4.43096 ++  "BFD_RELOC_CR16_REGREL4a",
 4.43097 ++  "BFD_RELOC_CR16_REGREL14",
 4.43098 ++  "BFD_RELOC_CR16_REGREL14a",
 4.43099 ++  "BFD_RELOC_CR16_REGREL16",
 4.43100 ++  "BFD_RELOC_CR16_REGREL20",
 4.43101 ++  "BFD_RELOC_CR16_REGREL20a",
 4.43102 ++  "BFD_RELOC_CR16_ABS20",
 4.43103 ++  "BFD_RELOC_CR16_ABS24",
 4.43104 ++  "BFD_RELOC_CR16_IMM4",
 4.43105 ++  "BFD_RELOC_CR16_IMM8",
 4.43106 ++  "BFD_RELOC_CR16_IMM16",
 4.43107 ++  "BFD_RELOC_CR16_IMM20",
 4.43108 ++  "BFD_RELOC_CR16_IMM24",
 4.43109 ++  "BFD_RELOC_CR16_IMM32",
 4.43110 ++  "BFD_RELOC_CR16_IMM32a",
 4.43111 ++  "BFD_RELOC_CR16_DISP4",
 4.43112 ++  "BFD_RELOC_CR16_DISP8",
 4.43113 ++  "BFD_RELOC_CR16_DISP16",
 4.43114 ++  "BFD_RELOC_CR16_DISP20",
 4.43115 ++  "BFD_RELOC_CR16_DISP24",
 4.43116 ++  "BFD_RELOC_CR16_DISP24a",
 4.43117 ++  "BFD_RELOC_CRX_REL4",
 4.43118 ++  "BFD_RELOC_CRX_REL8",
 4.43119 ++  "BFD_RELOC_CRX_REL8_CMP",
 4.43120 ++  "BFD_RELOC_CRX_REL16",
 4.43121 ++  "BFD_RELOC_CRX_REL24",
 4.43122 ++  "BFD_RELOC_CRX_REL32",
 4.43123 ++  "BFD_RELOC_CRX_REGREL12",
 4.43124 ++  "BFD_RELOC_CRX_REGREL22",
 4.43125 ++  "BFD_RELOC_CRX_REGREL28",
 4.43126 ++  "BFD_RELOC_CRX_REGREL32",
 4.43127 ++  "BFD_RELOC_CRX_ABS16",
 4.43128 ++  "BFD_RELOC_CRX_ABS32",
 4.43129 ++  "BFD_RELOC_CRX_NUM8",
 4.43130 ++  "BFD_RELOC_CRX_NUM16",
 4.43131 ++  "BFD_RELOC_CRX_NUM32",
 4.43132 ++  "BFD_RELOC_CRX_IMM16",
 4.43133 ++  "BFD_RELOC_CRX_IMM32",
 4.43134 ++  "BFD_RELOC_CRX_SWITCH8",
 4.43135 ++  "BFD_RELOC_CRX_SWITCH16",
 4.43136 ++  "BFD_RELOC_CRX_SWITCH32",
 4.43137 ++  "BFD_RELOC_CRIS_BDISP8",
 4.43138 ++  "BFD_RELOC_CRIS_UNSIGNED_5",
 4.43139 ++  "BFD_RELOC_CRIS_SIGNED_6",
 4.43140 ++  "BFD_RELOC_CRIS_UNSIGNED_6",
 4.43141 ++  "BFD_RELOC_CRIS_SIGNED_8",
 4.43142 ++  "BFD_RELOC_CRIS_UNSIGNED_8",
 4.43143 ++  "BFD_RELOC_CRIS_SIGNED_16",
 4.43144 ++  "BFD_RELOC_CRIS_UNSIGNED_16",
 4.43145 ++  "BFD_RELOC_CRIS_LAPCQ_OFFSET",
 4.43146 ++  "BFD_RELOC_CRIS_UNSIGNED_4",
 4.43147 ++  "BFD_RELOC_CRIS_COPY",
 4.43148 ++  "BFD_RELOC_CRIS_GLOB_DAT",
 4.43149 ++  "BFD_RELOC_CRIS_JUMP_SLOT",
 4.43150 ++  "BFD_RELOC_CRIS_RELATIVE",
 4.43151 ++  "BFD_RELOC_CRIS_32_GOT",
 4.43152 ++  "BFD_RELOC_CRIS_16_GOT",
 4.43153 ++  "BFD_RELOC_CRIS_32_GOTPLT",
 4.43154 ++  "BFD_RELOC_CRIS_16_GOTPLT",
 4.43155 ++  "BFD_RELOC_CRIS_32_GOTREL",
 4.43156 ++  "BFD_RELOC_CRIS_32_PLT_GOTREL",
 4.43157 ++  "BFD_RELOC_CRIS_32_PLT_PCREL",
 4.43158 ++  "BFD_RELOC_860_COPY",
 4.43159 ++  "BFD_RELOC_860_GLOB_DAT",
 4.43160 ++  "BFD_RELOC_860_JUMP_SLOT",
 4.43161 ++  "BFD_RELOC_860_RELATIVE",
 4.43162 ++  "BFD_RELOC_860_PC26",
 4.43163 ++  "BFD_RELOC_860_PLT26",
 4.43164 ++  "BFD_RELOC_860_PC16",
 4.43165 ++  "BFD_RELOC_860_LOW0",
 4.43166 ++  "BFD_RELOC_860_SPLIT0",
 4.43167 ++  "BFD_RELOC_860_LOW1",
 4.43168 ++  "BFD_RELOC_860_SPLIT1",
 4.43169 ++  "BFD_RELOC_860_LOW2",
 4.43170 ++  "BFD_RELOC_860_SPLIT2",
 4.43171 ++  "BFD_RELOC_860_LOW3",
 4.43172 ++  "BFD_RELOC_860_LOGOT0",
 4.43173 ++  "BFD_RELOC_860_SPGOT0",
 4.43174 ++  "BFD_RELOC_860_LOGOT1",
 4.43175 ++  "BFD_RELOC_860_SPGOT1",
 4.43176 ++  "BFD_RELOC_860_LOGOTOFF0",
 4.43177 ++  "BFD_RELOC_860_SPGOTOFF0",
 4.43178 ++  "BFD_RELOC_860_LOGOTOFF1",
 4.43179 ++  "BFD_RELOC_860_SPGOTOFF1",
 4.43180 ++  "BFD_RELOC_860_LOGOTOFF2",
 4.43181 ++  "BFD_RELOC_860_LOGOTOFF3",
 4.43182 ++  "BFD_RELOC_860_LOPC",
 4.43183 ++  "BFD_RELOC_860_HIGHADJ",
 4.43184 ++  "BFD_RELOC_860_HAGOT",
 4.43185 ++  "BFD_RELOC_860_HAGOTOFF",
 4.43186 ++  "BFD_RELOC_860_HAPC",
 4.43187 ++  "BFD_RELOC_860_HIGH",
 4.43188 ++  "BFD_RELOC_860_HIGOT",
 4.43189 ++  "BFD_RELOC_860_HIGOTOFF",
 4.43190 ++  "BFD_RELOC_OPENRISC_ABS_26",
 4.43191 ++  "BFD_RELOC_OPENRISC_REL_26",
 4.43192 ++  "BFD_RELOC_H8_DIR16A8",
 4.43193 ++  "BFD_RELOC_H8_DIR16R8",
 4.43194 ++  "BFD_RELOC_H8_DIR24A8",
 4.43195 ++  "BFD_RELOC_H8_DIR24R8",
 4.43196 ++  "BFD_RELOC_H8_DIR32A16",
 4.43197 ++  "BFD_RELOC_XSTORMY16_REL_12",
 4.43198 ++  "BFD_RELOC_XSTORMY16_12",
 4.43199 ++  "BFD_RELOC_XSTORMY16_24",
 4.43200 ++  "BFD_RELOC_XSTORMY16_FPTR16",
 4.43201 ++  "BFD_RELOC_RELC",
 4.43202 ++
 4.43203 ++  "BFD_RELOC_XC16X_PAG",
 4.43204 ++  "BFD_RELOC_XC16X_POF",
 4.43205 ++  "BFD_RELOC_XC16X_SEG",
 4.43206 ++  "BFD_RELOC_XC16X_SOF",
 4.43207 ++  "BFD_RELOC_VAX_GLOB_DAT",
 4.43208 ++  "BFD_RELOC_VAX_JMP_SLOT",
 4.43209 ++  "BFD_RELOC_VAX_RELATIVE",
 4.43210 ++  "BFD_RELOC_MT_PC16",
 4.43211 ++  "BFD_RELOC_MT_HI16",
 4.43212 ++  "BFD_RELOC_MT_LO16",
 4.43213 ++  "BFD_RELOC_MT_GNU_VTINHERIT",
 4.43214 ++  "BFD_RELOC_MT_GNU_VTENTRY",
 4.43215 ++  "BFD_RELOC_MT_PCINSN8",
 4.43216 ++  "BFD_RELOC_MSP430_10_PCREL",
 4.43217 ++  "BFD_RELOC_MSP430_16_PCREL",
 4.43218 ++  "BFD_RELOC_MSP430_16",
 4.43219 ++  "BFD_RELOC_MSP430_16_PCREL_BYTE",
 4.43220 ++  "BFD_RELOC_MSP430_16_BYTE",
 4.43221 ++  "BFD_RELOC_MSP430_2X_PCREL",
 4.43222 ++  "BFD_RELOC_MSP430_RL_PCREL",
 4.43223 ++  "BFD_RELOC_IQ2000_OFFSET_16",
 4.43224 ++  "BFD_RELOC_IQ2000_OFFSET_21",
 4.43225 ++  "BFD_RELOC_IQ2000_UHI16",
 4.43226 ++  "BFD_RELOC_XTENSA_RTLD",
 4.43227 ++  "BFD_RELOC_XTENSA_GLOB_DAT",
 4.43228 ++  "BFD_RELOC_XTENSA_JMP_SLOT",
 4.43229 ++  "BFD_RELOC_XTENSA_RELATIVE",
 4.43230 ++  "BFD_RELOC_XTENSA_PLT",
 4.43231 ++  "BFD_RELOC_XTENSA_DIFF8",
 4.43232 ++  "BFD_RELOC_XTENSA_DIFF16",
 4.43233 ++  "BFD_RELOC_XTENSA_DIFF32",
 4.43234 ++  "BFD_RELOC_XTENSA_SLOT0_OP",
 4.43235 ++  "BFD_RELOC_XTENSA_SLOT1_OP",
 4.43236 ++  "BFD_RELOC_XTENSA_SLOT2_OP",
 4.43237 ++  "BFD_RELOC_XTENSA_SLOT3_OP",
 4.43238 ++  "BFD_RELOC_XTENSA_SLOT4_OP",
 4.43239 ++  "BFD_RELOC_XTENSA_SLOT5_OP",
 4.43240 ++  "BFD_RELOC_XTENSA_SLOT6_OP",
 4.43241 ++  "BFD_RELOC_XTENSA_SLOT7_OP",
 4.43242 ++  "BFD_RELOC_XTENSA_SLOT8_OP",
 4.43243 ++  "BFD_RELOC_XTENSA_SLOT9_OP",
 4.43244 ++  "BFD_RELOC_XTENSA_SLOT10_OP",
 4.43245 ++  "BFD_RELOC_XTENSA_SLOT11_OP",
 4.43246 ++  "BFD_RELOC_XTENSA_SLOT12_OP",
 4.43247 ++  "BFD_RELOC_XTENSA_SLOT13_OP",
 4.43248 ++  "BFD_RELOC_XTENSA_SLOT14_OP",
 4.43249 ++  "BFD_RELOC_XTENSA_SLOT0_ALT",
 4.43250 ++  "BFD_RELOC_XTENSA_SLOT1_ALT",
 4.43251 ++  "BFD_RELOC_XTENSA_SLOT2_ALT",
 4.43252 ++  "BFD_RELOC_XTENSA_SLOT3_ALT",
 4.43253 ++  "BFD_RELOC_XTENSA_SLOT4_ALT",
 4.43254 ++  "BFD_RELOC_XTENSA_SLOT5_ALT",
 4.43255 ++  "BFD_RELOC_XTENSA_SLOT6_ALT",
 4.43256 ++  "BFD_RELOC_XTENSA_SLOT7_ALT",
 4.43257 ++  "BFD_RELOC_XTENSA_SLOT8_ALT",
 4.43258 ++  "BFD_RELOC_XTENSA_SLOT9_ALT",
 4.43259 ++  "BFD_RELOC_XTENSA_SLOT10_ALT",
 4.43260 ++  "BFD_RELOC_XTENSA_SLOT11_ALT",
 4.43261 ++  "BFD_RELOC_XTENSA_SLOT12_ALT",
 4.43262 ++  "BFD_RELOC_XTENSA_SLOT13_ALT",
 4.43263 ++  "BFD_RELOC_XTENSA_SLOT14_ALT",
 4.43264 ++  "BFD_RELOC_XTENSA_OP0",
 4.43265 ++  "BFD_RELOC_XTENSA_OP1",
 4.43266 ++  "BFD_RELOC_XTENSA_OP2",
 4.43267 ++  "BFD_RELOC_XTENSA_ASM_EXPAND",
 4.43268 ++  "BFD_RELOC_XTENSA_ASM_SIMPLIFY",
 4.43269 ++  "BFD_RELOC_Z80_DISP8",
 4.43270 ++  "BFD_RELOC_Z8K_DISP7",
 4.43271 ++  "BFD_RELOC_Z8K_CALLR",
 4.43272 ++  "BFD_RELOC_Z8K_IMM4L",
 4.43273 ++ "@@overflow: BFD_RELOC_UNUSED@@",
 4.43274 ++};
 4.43275 ++#endif
 4.43276 ++
 4.43277 ++reloc_howto_type *bfd_default_reloc_type_lookup
 4.43278 ++   (bfd *abfd, bfd_reloc_code_real_type  code);
 4.43279 ++
 4.43280 ++bfd_boolean bfd_generic_relax_section
 4.43281 ++   (bfd *abfd,
 4.43282 ++    asection *section,
 4.43283 ++    struct bfd_link_info *,
 4.43284 ++    bfd_boolean *);
 4.43285 ++
 4.43286 ++bfd_boolean bfd_generic_gc_sections
 4.43287 ++   (bfd *, struct bfd_link_info *);
 4.43288 ++
 4.43289 ++bfd_boolean bfd_generic_merge_sections
 4.43290 ++   (bfd *, struct bfd_link_info *);
 4.43291 ++
 4.43292 ++bfd_byte *bfd_generic_get_relocated_section_contents
 4.43293 ++   (bfd *abfd,
 4.43294 ++    struct bfd_link_info *link_info,
 4.43295 ++    struct bfd_link_order *link_order,
 4.43296 ++    bfd_byte *data,
 4.43297 ++    bfd_boolean relocatable,
 4.43298 ++    asymbol **symbols);
 4.43299 ++
 4.43300 ++/* Extracted from archures.c.  */
 4.43301 ++extern const bfd_arch_info_type bfd_default_arch_struct;
 4.43302 ++bfd_boolean bfd_default_set_arch_mach
 4.43303 ++   (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
 4.43304 ++
 4.43305 ++const bfd_arch_info_type *bfd_default_compatible
 4.43306 ++   (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
 4.43307 ++
 4.43308 ++bfd_boolean bfd_default_scan
 4.43309 ++   (const struct bfd_arch_info *info, const char *string);
 4.43310 ++
 4.43311 ++/* Extracted from elf.c.  */
 4.43312 ++struct elf_internal_shdr *bfd_elf_find_section (bfd *abfd, char *name);
 4.43313 ++
 4.43314 +--- /dev/null
 4.43315 ++++ b/bfd/doc/libcoff.h
 4.43316 +@@ -0,0 +1,936 @@
 4.43317 ++/* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically 
 4.43318 ++   generated from "libcoff-in.h" and "coffcode.h".
 4.43319 ++   Run "make headers" in your build bfd/ to regenerate.  */
 4.43320 ++
 4.43321 ++/* BFD COFF object file private structure.
 4.43322 ++   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 4.43323 ++   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 4.43324 ++   Free Software Foundation, Inc.
 4.43325 ++   Written by Cygnus Support.
 4.43326 ++
 4.43327 ++   This file is part of BFD, the Binary File Descriptor library.
 4.43328 ++
 4.43329 ++   This program is free software; you can redistribute it and/or modify
 4.43330 ++   it under the terms of the GNU General Public License as published by
 4.43331 ++   the Free Software Foundation; either version 3 of the License, or
 4.43332 ++   (at your option) any later version.
 4.43333 ++
 4.43334 ++   This program is distributed in the hope that it will be useful,
 4.43335 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
 4.43336 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 4.43337 ++   GNU General Public License for more details.
 4.43338 ++
 4.43339 ++   You should have received a copy of the GNU General Public License
 4.43340 ++   along with this program; if not, write to the Free Software
 4.43341 ++   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
 4.43342 ++   MA 02110-1301, USA.  */
 4.43343 ++
 4.43344 ++#include "bfdlink.h"
 4.43345 ++
 4.43346 ++/* Object file tdata; access macros.  */
 4.43347 ++
 4.43348 ++#define coff_data(bfd)		      ((bfd)->tdata.coff_obj_data)
 4.43349 ++#define exec_hdr(bfd)		      (coff_data (bfd)->hdr)
 4.43350 ++#define obj_pe(bfd)                   (coff_data (bfd)->pe)
 4.43351 ++#define obj_symbols(bfd)	      (coff_data (bfd)->symbols)
 4.43352 ++#define	obj_sym_filepos(bfd)	      (coff_data (bfd)->sym_filepos)
 4.43353 ++#define obj_relocbase(bfd)	      (coff_data (bfd)->relocbase)
 4.43354 ++#define obj_raw_syments(bfd)	      (coff_data (bfd)->raw_syments)
 4.43355 ++#define obj_raw_syment_count(bfd)     (coff_data (bfd)->raw_syment_count)
 4.43356 ++#define obj_convert(bfd)	      (coff_data (bfd)->conversion_table)
 4.43357 ++#define obj_conv_table_size(bfd)      (coff_data (bfd)->conv_table_size)
 4.43358 ++#define obj_coff_external_syms(bfd)   (coff_data (bfd)->external_syms)
 4.43359 ++#define obj_coff_keep_syms(bfd)	      (coff_data (bfd)->keep_syms)
 4.43360 ++#define obj_coff_strings(bfd)	      (coff_data (bfd)->strings)
 4.43361 ++#define obj_coff_keep_strings(bfd)    (coff_data (bfd)->keep_strings)
 4.43362 ++#define obj_coff_sym_hashes(bfd)      (coff_data (bfd)->sym_hashes)
 4.43363 ++#define obj_coff_strings_written(bfd) (coff_data (bfd)->strings_written)
 4.43364 ++#define obj_coff_local_toc_table(bfd) (coff_data (bfd)->local_toc_sym_map)
 4.43365 ++
 4.43366 ++/* `Tdata' information kept for COFF files.  */
 4.43367 ++
 4.43368 ++typedef struct coff_tdata
 4.43369 ++{
 4.43370 ++  struct coff_symbol_struct *symbols;	/* Symtab for input bfd.  */
 4.43371 ++  unsigned int *conversion_table;
 4.43372 ++  int conv_table_size;
 4.43373 ++  file_ptr sym_filepos;
 4.43374 ++
 4.43375 ++  struct coff_ptr_struct *raw_syments;
 4.43376 ++  unsigned long raw_syment_count;
 4.43377 ++
 4.43378 ++  /* These are only valid once writing has begun.  */
 4.43379 ++  long int relocbase;
 4.43380 ++
 4.43381 ++  /* These members communicate important constants about the symbol table
 4.43382 ++     to GDB's symbol-reading code.  These `constants' unfortunately vary
 4.43383 ++     from coff implementation to implementation...  */
 4.43384 ++  unsigned local_n_btmask;
 4.43385 ++  unsigned local_n_btshft;
 4.43386 ++  unsigned local_n_tmask;
 4.43387 ++  unsigned local_n_tshift;
 4.43388 ++  unsigned local_symesz;
 4.43389 ++  unsigned local_auxesz;
 4.43390 ++  unsigned local_linesz;
 4.43391 ++
 4.43392 ++  /* The unswapped external symbols.  May be NULL.  Read by
 4.43393 ++     _bfd_coff_get_external_symbols.  */
 4.43394 ++  void * external_syms;
 4.43395 ++  /* If this is TRUE, the external_syms may not be freed.  */
 4.43396 ++  bfd_boolean keep_syms;
 4.43397 ++
 4.43398 ++  /* The string table.  May be NULL.  Read by
 4.43399 ++     _bfd_coff_read_string_table.  */
 4.43400 ++  char *strings;
 4.43401 ++  /* If this is TRUE, the strings may not be freed.  */
 4.43402 ++  bfd_boolean keep_strings;
 4.43403 ++  /* If this is TRUE, the strings have been written out already.  */
 4.43404 ++  bfd_boolean strings_written;
 4.43405 ++
 4.43406 ++  /* Is this a PE format coff file?  */
 4.43407 ++  int pe;
 4.43408 ++  /* Used by the COFF backend linker.  */
 4.43409 ++  struct coff_link_hash_entry **sym_hashes;
 4.43410 ++
 4.43411 ++  /* Used by the pe linker for PowerPC.  */
 4.43412 ++  int *local_toc_sym_map;
 4.43413 ++
 4.43414 ++  struct bfd_link_info *link_info;
 4.43415 ++
 4.43416 ++  /* Used by coff_find_nearest_line.  */
 4.43417 ++  void * line_info;
 4.43418 ++
 4.43419 ++  /* A place to stash dwarf2 info for this bfd.  */
 4.43420 ++  void * dwarf2_find_line_info;
 4.43421 ++
 4.43422 ++  /* The timestamp from the COFF file header.  */
 4.43423 ++  long timestamp;
 4.43424 ++
 4.43425 ++  /* Copy of some of the f_flags bits in the COFF filehdr structure,
 4.43426 ++     used by ARM code.  */
 4.43427 ++  flagword flags;
 4.43428 ++
 4.43429 ++} coff_data_type;
 4.43430 ++
 4.43431 ++/* Tdata for pe image files.  */
 4.43432 ++typedef struct pe_tdata
 4.43433 ++{
 4.43434 ++  coff_data_type coff;
 4.43435 ++  struct internal_extra_pe_aouthdr pe_opthdr;
 4.43436 ++  int dll;
 4.43437 ++  int has_reloc_section;
 4.43438 ++  bfd_boolean (*in_reloc_p) (bfd *, reloc_howto_type *);
 4.43439 ++  flagword real_flags;
 4.43440 ++  int target_subsystem;
 4.43441 ++  bfd_boolean force_minimum_alignment;
 4.43442 ++} pe_data_type;
 4.43443 ++
 4.43444 ++#define pe_data(bfd)		((bfd)->tdata.pe_obj_data)
 4.43445 ++
 4.43446 ++/* Tdata for XCOFF files.  */
 4.43447 ++
 4.43448 ++struct xcoff_tdata
 4.43449 ++{
 4.43450 ++  /* Basic COFF information.  */
 4.43451 ++  coff_data_type coff;
 4.43452 ++
 4.43453 ++  /* TRUE if this is an XCOFF64 file. */
 4.43454 ++  bfd_boolean xcoff64;
 4.43455 ++
 4.43456 ++  /* TRUE if a large a.out header should be generated.  */
 4.43457 ++  bfd_boolean full_aouthdr;
 4.43458 ++
 4.43459 ++  /* TOC value.  */
 4.43460 ++  bfd_vma toc;
 4.43461 ++
 4.43462 ++  /* Index of section holding TOC.  */
 4.43463 ++  int sntoc;
 4.43464 ++
 4.43465 ++  /* Index of section holding entry point.  */
 4.43466 ++  int snentry;
 4.43467 ++
 4.43468 ++  /* .text alignment from optional header.  */
 4.43469 ++  int text_align_power;
 4.43470 ++
 4.43471 ++  /* .data alignment from optional header.  */
 4.43472 ++  int data_align_power;
 4.43473 ++
 4.43474 ++  /* modtype from optional header.  */
 4.43475 ++  short modtype;
 4.43476 ++
 4.43477 ++  /* cputype from optional header.  */
 4.43478 ++  short cputype;
 4.43479 ++
 4.43480 ++  /* maxdata from optional header.  */
 4.43481 ++  bfd_vma maxdata;
 4.43482 ++
 4.43483 ++  /* maxstack from optional header.  */
 4.43484 ++  bfd_vma maxstack;
 4.43485 ++
 4.43486 ++  /* Used by the XCOFF backend linker.  */
 4.43487 ++  asection **csects;
 4.43488 ++  unsigned long *debug_indices;
 4.43489 ++  unsigned int import_file_id;
 4.43490 ++};
 4.43491 ++
 4.43492 ++#define xcoff_data(abfd) ((abfd)->tdata.xcoff_obj_data)
 4.43493 ++
 4.43494 ++/* We take the address of the first element of an asymbol to ensure that the
 4.43495 ++   macro is only ever applied to an asymbol.  */
 4.43496 ++#define coffsymbol(asymbol) ((coff_symbol_type *)(&((asymbol)->the_bfd)))
 4.43497 ++
 4.43498 ++/* The used_by_bfd field of a section may be set to a pointer to this
 4.43499 ++   structure.  */
 4.43500 ++
 4.43501 ++struct coff_section_tdata
 4.43502 ++{
 4.43503 ++  /* The relocs, swapped into COFF internal form.  This may be NULL.  */
 4.43504 ++  struct internal_reloc *relocs;
 4.43505 ++  /* If this is TRUE, the relocs entry may not be freed.  */
 4.43506 ++  bfd_boolean keep_relocs;
 4.43507 ++  /* The section contents.  This may be NULL.  */
 4.43508 ++  bfd_byte *contents;
 4.43509 ++  /* If this is TRUE, the contents entry may not be freed.  */
 4.43510 ++  bfd_boolean keep_contents;
 4.43511 ++  /* Information cached by coff_find_nearest_line.  */
 4.43512 ++  bfd_vma offset;
 4.43513 ++  unsigned int i;
 4.43514 ++  const char *function;
 4.43515 ++  /* Optional information about a COMDAT entry; NULL if not COMDAT. */
 4.43516 ++  struct coff_comdat_info *comdat;
 4.43517 ++  int line_base;
 4.43518 ++  /* A pointer used for .stab linking optimizations.  */
 4.43519 ++  void * stab_info;
 4.43520 ++  /* Available for individual backends.  */
 4.43521 ++  void * tdata;
 4.43522 ++};
 4.43523 ++
 4.43524 ++/* An accessor macro for the coff_section_tdata structure.  */
 4.43525 ++#define coff_section_data(abfd, sec) \
 4.43526 ++  ((struct coff_section_tdata *) (sec)->used_by_bfd)
 4.43527 ++
 4.43528 ++/* Tdata for sections in XCOFF files.  This is used by the linker.  */
 4.43529 ++
 4.43530 ++struct xcoff_section_tdata
 4.43531 ++{
 4.43532 ++  /* Used for XCOFF csects created by the linker; points to the real
 4.43533 ++     XCOFF section which contains this csect.  */
 4.43534 ++  asection *enclosing;
 4.43535 ++  /* The lineno_count field for the enclosing section, because we are
 4.43536 ++     going to clobber it there.  */
 4.43537 ++  unsigned int lineno_count;
 4.43538 ++  /* The first and one past the last symbol indices for symbols used
 4.43539 ++     by this csect.  */
 4.43540 ++  unsigned long first_symndx;
 4.43541 ++  unsigned long last_symndx;
 4.43542 ++};
 4.43543 ++
 4.43544 ++/* An accessor macro the xcoff_section_tdata structure.  */
 4.43545 ++#define xcoff_section_data(abfd, sec) \
 4.43546 ++  ((struct xcoff_section_tdata *) coff_section_data ((abfd), (sec))->tdata)
 4.43547 ++
 4.43548 ++/* Tdata for sections in PE files.  */
 4.43549 ++
 4.43550 ++struct pei_section_tdata
 4.43551 ++{
 4.43552 ++  /* The virtual size of the section.  */
 4.43553 ++  bfd_size_type virt_size;
 4.43554 ++  /* The PE section flags.  */
 4.43555 ++  long pe_flags;
 4.43556 ++};
 4.43557 ++
 4.43558 ++/* An accessor macro for the pei_section_tdata structure.  */
 4.43559 ++#define pei_section_data(abfd, sec) \
 4.43560 ++  ((struct pei_section_tdata *) coff_section_data ((abfd), (sec))->tdata)
 4.43561 ++
 4.43562 ++/* COFF linker hash table entries.  */
 4.43563 ++
 4.43564 ++struct coff_link_hash_entry
 4.43565 ++{
 4.43566 ++  struct bfd_link_hash_entry root;
 4.43567 ++
 4.43568 ++  /* Symbol index in output file.  Set to -1 initially.  Set to -2 if
 4.43569 ++     there is a reloc against this symbol.  */
 4.43570 ++  long indx;
 4.43571 ++
 4.43572 ++  /* Symbol type.  */
 4.43573 ++  unsigned short type;
 4.43574 ++
 4.43575 ++  /* Symbol class.  */
 4.43576 ++  unsigned char class;
 4.43577 ++
 4.43578 ++  /* Number of auxiliary entries.  */
 4.43579 ++  char numaux;
 4.43580 ++
 4.43581 ++  /* BFD to take auxiliary entries from.  */
 4.43582 ++  bfd *auxbfd;
 4.43583 ++
 4.43584 ++  /* Pointer to array of auxiliary entries, if any.  */
 4.43585 ++  union internal_auxent *aux;
 4.43586 ++
 4.43587 ++  /* Flag word; legal values follow.  */
 4.43588 ++  unsigned short coff_link_hash_flags;
 4.43589 ++  /* Symbol is a PE section symbol.  */
 4.43590 ++#define COFF_LINK_HASH_PE_SECTION_SYMBOL (01)
 4.43591 ++};
 4.43592 ++
 4.43593 ++/* COFF linker hash table.  */
 4.43594 ++
 4.43595 ++struct coff_link_hash_table
 4.43596 ++{
 4.43597 ++  struct bfd_link_hash_table root;
 4.43598 ++  /* A pointer to information used to link stabs in sections.  */
 4.43599 ++  struct stab_info stab_info;
 4.43600 ++};
 4.43601 ++
 4.43602 ++/* Look up an entry in a COFF linker hash table.  */
 4.43603 ++
 4.43604 ++#define coff_link_hash_lookup(table, string, create, copy, follow)	\
 4.43605 ++  ((struct coff_link_hash_entry *)					\
 4.43606 ++   bfd_link_hash_lookup (&(table)->root, (string), (create),		\
 4.43607 ++			 (copy), (follow)))
 4.43608 ++
 4.43609 ++/* Traverse a COFF linker hash table.  */
 4.43610 ++
 4.43611 ++#define coff_link_hash_traverse(table, func, info)			\
 4.43612 ++  (bfd_link_hash_traverse						\
 4.43613 ++   (&(table)->root,							\
 4.43614 ++    (bfd_boolean (*) (struct bfd_link_hash_entry *, void *)) (func), \
 4.43615 ++    (info)))
 4.43616 ++
 4.43617 ++/* Get the COFF linker hash table from a link_info structure.  */
 4.43618 ++
 4.43619 ++#define coff_hash_table(p) ((struct coff_link_hash_table *) ((p)->hash))
 4.43620 ++
 4.43621 ++/* Functions in coffgen.c.  */
 4.43622 ++extern const bfd_target *coff_object_p
 4.43623 ++  (bfd *);
 4.43624 ++extern struct bfd_section *coff_section_from_bfd_index
 4.43625 ++  (bfd *, int);
 4.43626 ++extern long coff_get_symtab_upper_bound
 4.43627 ++  (bfd *);
 4.43628 ++extern long coff_canonicalize_symtab
 4.43629 ++  (bfd *, asymbol **);
 4.43630 ++extern int coff_count_linenumbers
 4.43631 ++  (bfd *);
 4.43632 ++extern struct coff_symbol_struct *coff_symbol_from
 4.43633 ++  (bfd *, asymbol *);
 4.43634 ++extern bfd_boolean coff_renumber_symbols
 4.43635 ++  (bfd *, int *);
 4.43636 ++extern void coff_mangle_symbols
 4.43637 ++  (bfd *);
 4.43638 ++extern bfd_boolean coff_write_symbols
 4.43639 ++  (bfd *);
 4.43640 ++extern bfd_boolean coff_write_linenumbers
 4.43641 ++  (bfd *);
 4.43642 ++extern alent *coff_get_lineno
 4.43643 ++  (bfd *, asymbol *);
 4.43644 ++extern asymbol *coff_section_symbol
 4.43645 ++  (bfd *, char *);
 4.43646 ++extern bfd_boolean _bfd_coff_get_external_symbols
 4.43647 ++  (bfd *);
 4.43648 ++extern const char *_bfd_coff_read_string_table
 4.43649 ++  (bfd *);
 4.43650 ++extern bfd_boolean _bfd_coff_free_symbols
 4.43651 ++  (bfd *);
 4.43652 ++extern struct coff_ptr_struct *coff_get_normalized_symtab
 4.43653 ++  (bfd *);
 4.43654 ++extern long coff_get_reloc_upper_bound
 4.43655 ++  (bfd *, sec_ptr);
 4.43656 ++extern asymbol *coff_make_empty_symbol
 4.43657 ++  (bfd *);
 4.43658 ++extern void coff_print_symbol
 4.43659 ++  (bfd *, void * filep, asymbol *, bfd_print_symbol_type);
 4.43660 ++extern void coff_get_symbol_info
 4.43661 ++  (bfd *, asymbol *, symbol_info *ret);
 4.43662 ++extern bfd_boolean _bfd_coff_is_local_label_name
 4.43663 ++  (bfd *, const char *);
 4.43664 ++extern asymbol *coff_bfd_make_debug_symbol
 4.43665 ++  (bfd *, void *, unsigned long);
 4.43666 ++extern bfd_boolean coff_find_nearest_line
 4.43667 ++  (bfd *, asection *, asymbol **, bfd_vma, const char **,
 4.43668 ++   const char **, unsigned int *);
 4.43669 ++extern bfd_boolean coff_find_inliner_info
 4.43670 ++  (bfd *, const char **, const char **, unsigned int *);
 4.43671 ++extern int coff_sizeof_headers
 4.43672 ++  (bfd *, struct bfd_link_info *);
 4.43673 ++extern bfd_boolean bfd_coff_reloc16_relax_section
 4.43674 ++  (bfd *, asection *, struct bfd_link_info *, bfd_boolean *);
 4.43675 ++extern bfd_byte *bfd_coff_reloc16_get_relocated_section_contents
 4.43676 ++  (bfd *, struct bfd_link_info *, struct bfd_link_order *,
 4.43677 ++   bfd_byte *, bfd_boolean, asymbol **);
 4.43678 ++extern bfd_vma bfd_coff_reloc16_get_value
 4.43679 ++  (arelent *, struct bfd_link_info *, asection *);
 4.43680 ++extern void bfd_perform_slip
 4.43681 ++  (bfd *, unsigned int, asection *, bfd_vma);
 4.43682 ++
 4.43683 ++/* Functions and types in cofflink.c.  */
 4.43684 ++
 4.43685 ++#define STRING_SIZE_SIZE 4
 4.43686 ++
 4.43687 ++/* We use a hash table to merge identical enum, struct, and union
 4.43688 ++   definitions in the linker.  */
 4.43689 ++
 4.43690 ++/* Information we keep for a single element (an enum value, a
 4.43691 ++   structure or union field) in the debug merge hash table.  */
 4.43692 ++
 4.43693 ++struct coff_debug_merge_element
 4.43694 ++{
 4.43695 ++  /* Next element.  */
 4.43696 ++  struct coff_debug_merge_element *next;
 4.43697 ++
 4.43698 ++  /* Name.  */
 4.43699 ++  const char *name;
 4.43700 ++
 4.43701 ++  /* Type.  */
 4.43702 ++  unsigned int type;
 4.43703 ++
 4.43704 ++  /* Symbol index for complex type.  */
 4.43705 ++  long tagndx;
 4.43706 ++};
 4.43707 ++
 4.43708 ++/* A linked list of debug merge entries for a given name.  */
 4.43709 ++
 4.43710 ++struct coff_debug_merge_type
 4.43711 ++{
 4.43712 ++  /* Next type with the same name.  */
 4.43713 ++  struct coff_debug_merge_type *next;
 4.43714 ++
 4.43715 ++  /* Class of type.  */
 4.43716 ++  int class;
 4.43717 ++
 4.43718 ++  /* Symbol index where this type is defined.  */
 4.43719 ++  long indx;
 4.43720 ++
 4.43721 ++  /* List of elements.  */
 4.43722 ++  struct coff_debug_merge_element *elements;
 4.43723 ++};
 4.43724 ++
 4.43725 ++/* Information we store in the debug merge hash table.  */
 4.43726 ++
 4.43727 ++struct coff_debug_merge_hash_entry
 4.43728 ++{
 4.43729 ++  struct bfd_hash_entry root;
 4.43730 ++
 4.43731 ++  /* A list of types with this name.  */
 4.43732 ++  struct coff_debug_merge_type *types;
 4.43733 ++};
 4.43734 ++
 4.43735 ++/* The debug merge hash table.  */
 4.43736 ++
 4.43737 ++struct coff_debug_merge_hash_table
 4.43738 ++{
 4.43739 ++  struct bfd_hash_table root;
 4.43740 ++};
 4.43741 ++
 4.43742 ++/* Initialize a COFF debug merge hash table.  */
 4.43743 ++
 4.43744 ++#define coff_debug_merge_hash_table_init(table) \
 4.43745 ++  (bfd_hash_table_init (&(table)->root, _bfd_coff_debug_merge_hash_newfunc, \
 4.43746 ++			sizeof (struct coff_debug_merge_hash_entry)))
 4.43747 ++
 4.43748 ++/* Free a COFF debug merge hash table.  */
 4.43749 ++
 4.43750 ++#define coff_debug_merge_hash_table_free(table) \
 4.43751 ++  (bfd_hash_table_free (&(table)->root))
 4.43752 ++
 4.43753 ++/* Look up an entry in a COFF debug merge hash table.  */
 4.43754 ++
 4.43755 ++#define coff_debug_merge_hash_lookup(table, string, create, copy) \
 4.43756 ++  ((struct coff_debug_merge_hash_entry *) \
 4.43757 ++   bfd_hash_lookup (&(table)->root, (string), (create), (copy)))
 4.43758 ++
 4.43759 ++/* Information we keep for each section in the output file when doing
 4.43760 ++   a relocatable link.  */
 4.43761 ++
 4.43762 ++struct coff_link_section_info
 4.43763 ++{
 4.43764 ++  /* The relocs to be output.  */
 4.43765 ++  struct internal_reloc *relocs;
 4.43766 ++  /* For each reloc against a global symbol whose index was not known
 4.43767 ++     when the reloc was handled, the global hash table entry.  */
 4.43768 ++  struct coff_link_hash_entry **rel_hashes;
 4.43769 ++};
 4.43770 ++
 4.43771 ++/* Information that we pass around while doing the final link step.  */
 4.43772 ++
 4.43773 ++struct coff_final_link_info
 4.43774 ++{
 4.43775 ++  /* General link information.  */
 4.43776 ++  struct bfd_link_info *info;
 4.43777 ++  /* Output BFD.  */
 4.43778 ++  bfd *output_bfd;
 4.43779 ++  /* Used to indicate failure in traversal routine.  */
 4.43780 ++  bfd_boolean failed;
 4.43781 ++  /* If doing "task linking" set only during the time when we want the
 4.43782 ++     global symbol writer to convert the storage class of defined global
 4.43783 ++     symbols from global to static. */
 4.43784 ++  bfd_boolean global_to_static;
 4.43785 ++  /* Hash table for long symbol names.  */
 4.43786 ++  struct bfd_strtab_hash *strtab;
 4.43787 ++  /* When doing a relocatable link, an array of information kept for
 4.43788 ++     each output section, indexed by the target_index field.  */
 4.43789 ++  struct coff_link_section_info *section_info;
 4.43790 ++  /* Symbol index of last C_FILE symbol (-1 if none).  */
 4.43791 ++  long last_file_index;
 4.43792 ++  /* Contents of last C_FILE symbol.  */
 4.43793 ++  struct internal_syment last_file;
 4.43794 ++  /* Symbol index of first aux entry of last .bf symbol with an empty
 4.43795 ++     endndx field (-1 if none).  */
 4.43796 ++  long last_bf_index;
 4.43797 ++  /* Contents of last_bf_index aux entry.  */
 4.43798 ++  union internal_auxent last_bf;
 4.43799 ++  /* Hash table used to merge debug information.  */
 4.43800 ++  struct coff_debug_merge_hash_table debug_merge;
 4.43801 ++  /* Buffer large enough to hold swapped symbols of any input file.  */
 4.43802 ++  struct internal_syment *internal_syms;
 4.43803 ++  /* Buffer large enough to hold sections of symbols of any input file.  */
 4.43804 ++  asection **sec_ptrs;
 4.43805 ++  /* Buffer large enough to hold output indices of symbols of any
 4.43806 ++     input file.  */
 4.43807 ++  long *sym_indices;
 4.43808 ++  /* Buffer large enough to hold output symbols for any input file.  */
 4.43809 ++  bfd_byte *outsyms;
 4.43810 ++  /* Buffer large enough to hold external line numbers for any input
 4.43811 ++     section.  */
 4.43812 ++  bfd_byte *linenos;
 4.43813 ++  /* Buffer large enough to hold any input section.  */
 4.43814 ++  bfd_byte *contents;
 4.43815 ++  /* Buffer large enough to hold external relocs of any input section.  */
 4.43816 ++  bfd_byte *external_relocs;
 4.43817 ++  /* Buffer large enough to hold swapped relocs of any input section.  */
 4.43818 ++  struct internal_reloc *internal_relocs;
 4.43819 ++};
 4.43820 ++
 4.43821 ++/* Most COFF variants have no way to record the alignment of a
 4.43822 ++   section.  This struct is used to set a specific alignment based on
 4.43823 ++   the name of the section.  */
 4.43824 ++
 4.43825 ++struct coff_section_alignment_entry
 4.43826 ++{
 4.43827 ++  /* The section name.  */
 4.43828 ++  const char *name;
 4.43829 ++
 4.43830 ++  /* This is either (unsigned int) -1, indicating that the section
 4.43831 ++     name must match exactly, or it is the number of letters which
 4.43832 ++     must match at the start of the name.  */
 4.43833 ++  unsigned int comparison_length;
 4.43834 ++
 4.43835 ++  /* These macros may be used to fill in the first two fields in a
 4.43836 ++     structure initialization.  */
 4.43837 ++#define COFF_SECTION_NAME_EXACT_MATCH(name) (name), ((unsigned int) -1)
 4.43838 ++#define COFF_SECTION_NAME_PARTIAL_MATCH(name) (name), (sizeof (name) - 1)
 4.43839 ++
 4.43840 ++  /* Only use this entry if the default section alignment for this
 4.43841 ++     target is at least that much (as a power of two).  If this field
 4.43842 ++     is COFF_ALIGNMENT_FIELD_EMPTY, it should be ignored.  */
 4.43843 ++  unsigned int default_alignment_min;
 4.43844 ++
 4.43845 ++  /* Only use this entry if the default section alignment for this
 4.43846 ++     target is no greater than this (as a power of two).  If this
 4.43847 ++     field is COFF_ALIGNMENT_FIELD_EMPTY, it should be ignored.  */
 4.43848 ++  unsigned int default_alignment_max;
 4.43849 ++
 4.43850 ++#define COFF_ALIGNMENT_FIELD_EMPTY ((unsigned int) -1)
 4.43851 ++
 4.43852 ++  /* The desired alignment for this section (as a power of two).  */
 4.43853 ++  unsigned int alignment_power;
 4.43854 ++};
 4.43855 ++
 4.43856 ++extern struct bfd_hash_entry *_bfd_coff_link_hash_newfunc
 4.43857 ++  (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
 4.43858 ++extern bfd_boolean _bfd_coff_link_hash_table_init
 4.43859 ++  (struct coff_link_hash_table *, bfd *,
 4.43860 ++   struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
 4.43861 ++			       struct bfd_hash_table *,
 4.43862 ++			       const char *),
 4.43863 ++   unsigned int);
 4.43864 ++extern struct bfd_link_hash_table *_bfd_coff_link_hash_table_create
 4.43865 ++  (bfd *);
 4.43866 ++extern const char *_bfd_coff_internal_syment_name
 4.43867 ++  (bfd *, const struct internal_syment *, char *);
 4.43868 ++extern bfd_boolean _bfd_coff_link_add_symbols
 4.43869 ++  (bfd *, struct bfd_link_info *);
 4.43870 ++extern bfd_boolean _bfd_coff_final_link
 4.43871 ++  (bfd *, struct bfd_link_info *);
 4.43872 ++extern struct internal_reloc *_bfd_coff_read_internal_relocs
 4.43873 ++  (bfd *, asection *, bfd_boolean, bfd_byte *, bfd_boolean,
 4.43874 ++   struct internal_reloc *);
 4.43875 ++extern bfd_boolean _bfd_coff_generic_relocate_section
 4.43876 ++  (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
 4.43877 ++   struct internal_reloc *, struct internal_syment *, asection **);
 4.43878 ++extern struct bfd_hash_entry *_bfd_coff_debug_merge_hash_newfunc
 4.43879 ++  (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
 4.43880 ++extern bfd_boolean _bfd_coff_write_global_sym
 4.43881 ++  (struct coff_link_hash_entry *, void *);
 4.43882 ++extern bfd_boolean _bfd_coff_write_task_globals
 4.43883 ++  (struct coff_link_hash_entry *, void *);
 4.43884 ++extern bfd_boolean _bfd_coff_link_input_bfd
 4.43885 ++  (struct coff_final_link_info *, bfd *);
 4.43886 ++extern bfd_boolean _bfd_coff_reloc_link_order
 4.43887 ++  (bfd *, struct coff_final_link_info *, asection *,
 4.43888 ++   struct bfd_link_order *);
 4.43889 ++
 4.43890 ++
 4.43891 ++#define coff_get_section_contents_in_window \
 4.43892 ++  _bfd_generic_get_section_contents_in_window
 4.43893 ++
 4.43894 ++/* Functions in xcofflink.c.  */
 4.43895 ++
 4.43896 ++extern long _bfd_xcoff_get_dynamic_symtab_upper_bound
 4.43897 ++  (bfd *);
 4.43898 ++extern long _bfd_xcoff_canonicalize_dynamic_symtab
 4.43899 ++  (bfd *, asymbol **);
 4.43900 ++extern long _bfd_xcoff_get_dynamic_reloc_upper_bound
 4.43901 ++  (bfd *);
 4.43902 ++extern long _bfd_xcoff_canonicalize_dynamic_reloc
 4.43903 ++  (bfd *, arelent **, asymbol **);
 4.43904 ++extern struct bfd_link_hash_table *_bfd_xcoff_bfd_link_hash_table_create
 4.43905 ++  (bfd *);
 4.43906 ++extern void _bfd_xcoff_bfd_link_hash_table_free
 4.43907 ++  (struct bfd_link_hash_table *);
 4.43908 ++extern bfd_boolean _bfd_xcoff_bfd_link_add_symbols
 4.43909 ++  (bfd *, struct bfd_link_info *);
 4.43910 ++extern bfd_boolean _bfd_xcoff_bfd_final_link
 4.43911 ++  (bfd *, struct bfd_link_info *);
 4.43912 ++extern bfd_boolean _bfd_ppc_xcoff_relocate_section
 4.43913 ++  (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
 4.43914 ++   struct internal_reloc *, struct internal_syment *, asection **);
 4.43915 ++
 4.43916 ++/* Functions in coff-ppc.c.  FIXME: These are called be pe.em in the
 4.43917 ++   linker, and so should start with bfd and be declared in bfd.h.  */
 4.43918 ++
 4.43919 ++extern bfd_boolean ppc_allocate_toc_section
 4.43920 ++  (struct bfd_link_info *);
 4.43921 ++extern bfd_boolean ppc_process_before_allocation
 4.43922 ++  (bfd *, struct bfd_link_info *);
 4.43923 ++
 4.43924 ++/* Extracted from coffcode.h.  */
 4.43925 ++typedef struct coff_ptr_struct
 4.43926 ++{
 4.43927 ++  /* Remembers the offset from the first symbol in the file for
 4.43928 ++     this symbol. Generated by coff_renumber_symbols. */
 4.43929 ++  unsigned int offset;
 4.43930 ++
 4.43931 ++  /* Should the value of this symbol be renumbered.  Used for
 4.43932 ++     XCOFF C_BSTAT symbols.  Set by coff_slurp_symbol_table.  */
 4.43933 ++  unsigned int fix_value : 1;
 4.43934 ++
 4.43935 ++  /* Should the tag field of this symbol be renumbered.
 4.43936 ++     Created by coff_pointerize_aux. */
 4.43937 ++  unsigned int fix_tag : 1;
 4.43938 ++
 4.43939 ++  /* Should the endidx field of this symbol be renumbered.
 4.43940 ++     Created by coff_pointerize_aux. */
 4.43941 ++  unsigned int fix_end : 1;
 4.43942 ++
 4.43943 ++  /* Should the x_csect.x_scnlen field be renumbered.
 4.43944 ++     Created by coff_pointerize_aux. */
 4.43945 ++  unsigned int fix_scnlen : 1;
 4.43946 ++
 4.43947 ++  /* Fix up an XCOFF C_BINCL/C_EINCL symbol.  The value is the
 4.43948 ++     index into the line number entries.  Set by coff_slurp_symbol_table.  */
 4.43949 ++  unsigned int fix_line : 1;
 4.43950 ++
 4.43951 ++  /* The container for the symbol structure as read and translated
 4.43952 ++     from the file. */
 4.43953 ++  union
 4.43954 ++  {
 4.43955 ++    union internal_auxent auxent;
 4.43956 ++    struct internal_syment syment;
 4.43957 ++  } u;
 4.43958 ++} combined_entry_type;
 4.43959 ++
 4.43960 ++
 4.43961 ++/* Each canonical asymbol really looks like this: */
 4.43962 ++
 4.43963 ++typedef struct coff_symbol_struct
 4.43964 ++{
 4.43965 ++  /* The actual symbol which the rest of BFD works with */
 4.43966 ++  asymbol symbol;
 4.43967 ++
 4.43968 ++  /* A pointer to the hidden information for this symbol */
 4.43969 ++  combined_entry_type *native;
 4.43970 ++
 4.43971 ++  /* A pointer to the linenumber information for this symbol */
 4.43972 ++  struct lineno_cache_entry *lineno;
 4.43973 ++
 4.43974 ++  /* Have the line numbers been relocated yet ? */
 4.43975 ++  bfd_boolean done_lineno;
 4.43976 ++} coff_symbol_type;
 4.43977 ++/* COFF symbol classifications.  */
 4.43978 ++
 4.43979 ++enum coff_symbol_classification
 4.43980 ++{
 4.43981 ++  /* Global symbol.  */
 4.43982 ++  COFF_SYMBOL_GLOBAL,
 4.43983 ++  /* Common symbol.  */
 4.43984 ++  COFF_SYMBOL_COMMON,
 4.43985 ++  /* Undefined symbol.  */
 4.43986 ++  COFF_SYMBOL_UNDEFINED,
 4.43987 ++  /* Local symbol.  */
 4.43988 ++  COFF_SYMBOL_LOCAL,
 4.43989 ++  /* PE section symbol.  */
 4.43990 ++  COFF_SYMBOL_PE_SECTION
 4.43991 ++};
 4.43992 ++
 4.43993 ++typedef struct
 4.43994 ++{
 4.43995 ++  void (*_bfd_coff_swap_aux_in)
 4.43996 ++    (bfd *, void *, int, int, int, int, void *);
 4.43997 ++
 4.43998 ++  void (*_bfd_coff_swap_sym_in)
 4.43999 ++    (bfd *, void *, void *);
 4.44000 ++
 4.44001 ++  void (*_bfd_coff_swap_lineno_in)
 4.44002 ++    (bfd *, void *, void *);
 4.44003 ++
 4.44004 ++  unsigned int (*_bfd_coff_swap_aux_out)
 4.44005 ++    (bfd *, void *, int, int, int, int, void *);
 4.44006 ++
 4.44007 ++  unsigned int (*_bfd_coff_swap_sym_out)
 4.44008 ++    (bfd *, void *, void *);
 4.44009 ++
 4.44010 ++  unsigned int (*_bfd_coff_swap_lineno_out)
 4.44011 ++    (bfd *, void *, void *);
 4.44012 ++
 4.44013 ++  unsigned int (*_bfd_coff_swap_reloc_out)
 4.44014 ++    (bfd *, void *, void *);
 4.44015 ++
 4.44016 ++  unsigned int (*_bfd_coff_swap_filehdr_out)
 4.44017 ++    (bfd *, void *, void *);
 4.44018 ++
 4.44019 ++  unsigned int (*_bfd_coff_swap_aouthdr_out)
 4.44020 ++    (bfd *, void *, void *);
 4.44021 ++
 4.44022 ++  unsigned int (*_bfd_coff_swap_scnhdr_out)
 4.44023 ++    (bfd *, void *, void *);
 4.44024 ++
 4.44025 ++  unsigned int _bfd_filhsz;
 4.44026 ++  unsigned int _bfd_aoutsz;
 4.44027 ++  unsigned int _bfd_scnhsz;
 4.44028 ++  unsigned int _bfd_symesz;
 4.44029 ++  unsigned int _bfd_auxesz;
 4.44030 ++  unsigned int _bfd_relsz;
 4.44031 ++  unsigned int _bfd_linesz;
 4.44032 ++  unsigned int _bfd_filnmlen;
 4.44033 ++  bfd_boolean _bfd_coff_long_filenames;
 4.44034 ++  bfd_boolean _bfd_coff_long_section_names;
 4.44035 ++  unsigned int _bfd_coff_default_section_alignment_power;
 4.44036 ++  bfd_boolean _bfd_coff_force_symnames_in_strings;
 4.44037 ++  unsigned int _bfd_coff_debug_string_prefix_length;
 4.44038 ++
 4.44039 ++  void (*_bfd_coff_swap_filehdr_in)
 4.44040 ++    (bfd *, void *, void *);
 4.44041 ++
 4.44042 ++  void (*_bfd_coff_swap_aouthdr_in)
 4.44043 ++    (bfd *, void *, void *);
 4.44044 ++
 4.44045 ++  void (*_bfd_coff_swap_scnhdr_in)
 4.44046 ++    (bfd *, void *, void *);
 4.44047 ++
 4.44048 ++  void (*_bfd_coff_swap_reloc_in)
 4.44049 ++    (bfd *abfd, void *, void *);
 4.44050 ++
 4.44051 ++  bfd_boolean (*_bfd_coff_bad_format_hook)
 4.44052 ++    (bfd *, void *);
 4.44053 ++
 4.44054 ++  bfd_boolean (*_bfd_coff_set_arch_mach_hook)
 4.44055 ++    (bfd *, void *);
 4.44056 ++
 4.44057 ++  void * (*_bfd_coff_mkobject_hook)
 4.44058 ++    (bfd *, void *, void *);
 4.44059 ++
 4.44060 ++  bfd_boolean (*_bfd_styp_to_sec_flags_hook)
 4.44061 ++    (bfd *, void *, const char *, asection *, flagword *);
 4.44062 ++
 4.44063 ++  void (*_bfd_set_alignment_hook)
 4.44064 ++    (bfd *, asection *, void *);
 4.44065 ++
 4.44066 ++  bfd_boolean (*_bfd_coff_slurp_symbol_table)
 4.44067 ++    (bfd *);
 4.44068 ++
 4.44069 ++  bfd_boolean (*_bfd_coff_symname_in_debug)
 4.44070 ++    (bfd *, struct internal_syment *);
 4.44071 ++
 4.44072 ++  bfd_boolean (*_bfd_coff_pointerize_aux_hook)
 4.44073 ++    (bfd *, combined_entry_type *, combined_entry_type *,
 4.44074 ++            unsigned int, combined_entry_type *);
 4.44075 ++
 4.44076 ++  bfd_boolean (*_bfd_coff_print_aux)
 4.44077 ++    (bfd *, FILE *, combined_entry_type *, combined_entry_type *,
 4.44078 ++            combined_entry_type *, unsigned int);
 4.44079 ++
 4.44080 ++  void (*_bfd_coff_reloc16_extra_cases)
 4.44081 ++    (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
 4.44082 ++           bfd_byte *, unsigned int *, unsigned int *);
 4.44083 ++
 4.44084 ++  int (*_bfd_coff_reloc16_estimate)
 4.44085 ++    (bfd *, asection *, arelent *, unsigned int,
 4.44086 ++            struct bfd_link_info *);
 4.44087 ++
 4.44088 ++  enum coff_symbol_classification (*_bfd_coff_classify_symbol)
 4.44089 ++    (bfd *, struct internal_syment *);
 4.44090 ++
 4.44091 ++  bfd_boolean (*_bfd_coff_compute_section_file_positions)
 4.44092 ++    (bfd *);
 4.44093 ++
 4.44094 ++  bfd_boolean (*_bfd_coff_start_final_link)
 4.44095 ++    (bfd *, struct bfd_link_info *);
 4.44096 ++
 4.44097 ++  bfd_boolean (*_bfd_coff_relocate_section)
 4.44098 ++    (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
 4.44099 ++            struct internal_reloc *, struct internal_syment *, asection **);
 4.44100 ++
 4.44101 ++  reloc_howto_type *(*_bfd_coff_rtype_to_howto)
 4.44102 ++    (bfd *, asection *, struct internal_reloc *,
 4.44103 ++            struct coff_link_hash_entry *, struct internal_syment *,
 4.44104 ++            bfd_vma *);
 4.44105 ++
 4.44106 ++  bfd_boolean (*_bfd_coff_adjust_symndx)
 4.44107 ++    (bfd *, struct bfd_link_info *, bfd *, asection *,
 4.44108 ++            struct internal_reloc *, bfd_boolean *);
 4.44109 ++
 4.44110 ++  bfd_boolean (*_bfd_coff_link_add_one_symbol)
 4.44111 ++    (struct bfd_link_info *, bfd *, const char *, flagword,
 4.44112 ++            asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
 4.44113 ++            struct bfd_link_hash_entry **);
 4.44114 ++
 4.44115 ++  bfd_boolean (*_bfd_coff_link_output_has_begun)
 4.44116 ++    (bfd *, struct coff_final_link_info *);
 4.44117 ++
 4.44118 ++  bfd_boolean (*_bfd_coff_final_link_postscript)
 4.44119 ++    (bfd *, struct coff_final_link_info *);
 4.44120 ++
 4.44121 ++} bfd_coff_backend_data;
 4.44122 ++
 4.44123 ++#define coff_backend_info(abfd) \
 4.44124 ++  ((bfd_coff_backend_data *) (abfd)->xvec->backend_data)
 4.44125 ++
 4.44126 ++#define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \
 4.44127 ++  ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i))
 4.44128 ++
 4.44129 ++#define bfd_coff_swap_sym_in(a,e,i) \
 4.44130 ++  ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i))
 4.44131 ++
 4.44132 ++#define bfd_coff_swap_lineno_in(a,e,i) \
 4.44133 ++  ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i))
 4.44134 ++
 4.44135 ++#define bfd_coff_swap_reloc_out(abfd, i, o) \
 4.44136 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o))
 4.44137 ++
 4.44138 ++#define bfd_coff_swap_lineno_out(abfd, i, o) \
 4.44139 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o))
 4.44140 ++
 4.44141 ++#define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \
 4.44142 ++  ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o))
 4.44143 ++
 4.44144 ++#define bfd_coff_swap_sym_out(abfd, i,o) \
 4.44145 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o))
 4.44146 ++
 4.44147 ++#define bfd_coff_swap_scnhdr_out(abfd, i,o) \
 4.44148 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o))
 4.44149 ++
 4.44150 ++#define bfd_coff_swap_filehdr_out(abfd, i,o) \
 4.44151 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o))
 4.44152 ++
 4.44153 ++#define bfd_coff_swap_aouthdr_out(abfd, i,o) \
 4.44154 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o))
 4.44155 ++
 4.44156 ++#define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz)
 4.44157 ++#define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz)
 4.44158 ++#define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz)
 4.44159 ++#define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz)
 4.44160 ++#define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz)
 4.44161 ++#define bfd_coff_relsz(abfd)  (coff_backend_info (abfd)->_bfd_relsz)
 4.44162 ++#define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz)
 4.44163 ++#define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen)
 4.44164 ++#define bfd_coff_long_filenames(abfd) \
 4.44165 ++  (coff_backend_info (abfd)->_bfd_coff_long_filenames)
 4.44166 ++#define bfd_coff_long_section_names(abfd) \
 4.44167 ++  (coff_backend_info (abfd)->_bfd_coff_long_section_names)
 4.44168 ++#define bfd_coff_default_section_alignment_power(abfd) \
 4.44169 ++  (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power)
 4.44170 ++#define bfd_coff_swap_filehdr_in(abfd, i,o) \
 4.44171 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o))
 4.44172 ++
 4.44173 ++#define bfd_coff_swap_aouthdr_in(abfd, i,o) \
 4.44174 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o))
 4.44175 ++
 4.44176 ++#define bfd_coff_swap_scnhdr_in(abfd, i,o) \
 4.44177 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o))
 4.44178 ++
 4.44179 ++#define bfd_coff_swap_reloc_in(abfd, i, o) \
 4.44180 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o))
 4.44181 ++
 4.44182 ++#define bfd_coff_bad_format_hook(abfd, filehdr) \
 4.44183 ++  ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr))
 4.44184 ++
 4.44185 ++#define bfd_coff_set_arch_mach_hook(abfd, filehdr)\
 4.44186 ++  ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr))
 4.44187 ++#define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\
 4.44188 ++  ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\
 4.44189 ++   (abfd, filehdr, aouthdr))
 4.44190 ++
 4.44191 ++#define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\
 4.44192 ++  ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\
 4.44193 ++   (abfd, scnhdr, name, section, flags_ptr))
 4.44194 ++
 4.44195 ++#define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\
 4.44196 ++  ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr))
 4.44197 ++
 4.44198 ++#define bfd_coff_slurp_symbol_table(abfd)\
 4.44199 ++  ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd))
 4.44200 ++
 4.44201 ++#define bfd_coff_symname_in_debug(abfd, sym)\
 4.44202 ++  ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym))
 4.44203 ++
 4.44204 ++#define bfd_coff_force_symnames_in_strings(abfd)\
 4.44205 ++  (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings)
 4.44206 ++
 4.44207 ++#define bfd_coff_debug_string_prefix_length(abfd)\
 4.44208 ++  (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length)
 4.44209 ++
 4.44210 ++#define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\
 4.44211 ++  ((coff_backend_info (abfd)->_bfd_coff_print_aux)\
 4.44212 ++   (abfd, file, base, symbol, aux, indaux))
 4.44213 ++
 4.44214 ++#define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\
 4.44215 ++                                     reloc, data, src_ptr, dst_ptr)\
 4.44216 ++  ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
 4.44217 ++   (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
 4.44218 ++
 4.44219 ++#define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\
 4.44220 ++  ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\
 4.44221 ++   (abfd, section, reloc, shrink, link_info))
 4.44222 ++
 4.44223 ++#define bfd_coff_classify_symbol(abfd, sym)\
 4.44224 ++  ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\
 4.44225 ++   (abfd, sym))
 4.44226 ++
 4.44227 ++#define bfd_coff_compute_section_file_positions(abfd)\
 4.44228 ++  ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\
 4.44229 ++   (abfd))
 4.44230 ++
 4.44231 ++#define bfd_coff_start_final_link(obfd, info)\
 4.44232 ++  ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\
 4.44233 ++   (obfd, info))
 4.44234 ++#define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\
 4.44235 ++  ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\
 4.44236 ++   (obfd, info, ibfd, o, con, rel, isyms, secs))
 4.44237 ++#define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\
 4.44238 ++  ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\
 4.44239 ++   (abfd, sec, rel, h, sym, addendp))
 4.44240 ++#define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\
 4.44241 ++  ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
 4.44242 ++   (obfd, info, ibfd, sec, rel, adjustedp))
 4.44243 ++#define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
 4.44244 ++                                     value, string, cp, coll, hashp)\
 4.44245 ++  ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
 4.44246 ++   (info, abfd, name, flags, section, value, string, cp, coll, hashp))
 4.44247 ++
 4.44248 ++#define bfd_coff_link_output_has_begun(a,p) \
 4.44249 ++  ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p))
 4.44250 ++#define bfd_coff_final_link_postscript(a,p) \
 4.44251 ++  ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a, p))
 4.44252 ++
 4.44253 +--- a/bfd/libbfd.h
 4.44254 ++++ b/bfd/libbfd.h
 4.44255 +@@ -1601,6 +1601,48 @@ static const char *const bfd_reloc_code_
 4.44256 +   "BFD_RELOC_AVR_LDI",
 4.44257 +   "BFD_RELOC_AVR_6",
 4.44258 +   "BFD_RELOC_AVR_6_ADIW",
 4.44259 ++  "BFD_RELOC_AVR32_DIFF32",
 4.44260 ++  "BFD_RELOC_AVR32_DIFF16",
 4.44261 ++  "BFD_RELOC_AVR32_DIFF8",
 4.44262 ++  "BFD_RELOC_AVR32_GOT32",
 4.44263 ++  "BFD_RELOC_AVR32_GOT16",
 4.44264 ++  "BFD_RELOC_AVR32_GOT8",
 4.44265 ++  "BFD_RELOC_AVR32_21S",
 4.44266 ++  "BFD_RELOC_AVR32_16U",
 4.44267 ++  "BFD_RELOC_AVR32_16S",
 4.44268 ++  "BFD_RELOC_AVR32_SUB5",
 4.44269 ++  "BFD_RELOC_AVR32_8S_EXT",
 4.44270 ++  "BFD_RELOC_AVR32_8S",
 4.44271 ++  "BFD_RELOC_AVR32_15S",
 4.44272 ++  "BFD_RELOC_AVR32_22H_PCREL",
 4.44273 ++  "BFD_RELOC_AVR32_18W_PCREL",
 4.44274 ++  "BFD_RELOC_AVR32_16B_PCREL",
 4.44275 ++  "BFD_RELOC_AVR32_16N_PCREL",
 4.44276 ++  "BFD_RELOC_AVR32_14UW_PCREL",
 4.44277 ++  "BFD_RELOC_AVR32_11H_PCREL",
 4.44278 ++  "BFD_RELOC_AVR32_10UW_PCREL",
 4.44279 ++  "BFD_RELOC_AVR32_9H_PCREL",
 4.44280 ++  "BFD_RELOC_AVR32_9UW_PCREL",
 4.44281 ++  "BFD_RELOC_AVR32_GOTPC",
 4.44282 ++  "BFD_RELOC_AVR32_GOTCALL",
 4.44283 ++  "BFD_RELOC_AVR32_LDA_GOT",
 4.44284 ++  "BFD_RELOC_AVR32_GOT21S",
 4.44285 ++  "BFD_RELOC_AVR32_GOT18SW",
 4.44286 ++  "BFD_RELOC_AVR32_GOT16S",
 4.44287 ++  "BFD_RELOC_AVR32_32_CPENT",
 4.44288 ++  "BFD_RELOC_AVR32_CPCALL",
 4.44289 ++  "BFD_RELOC_AVR32_16_CP",
 4.44290 ++  "BFD_RELOC_AVR32_9W_CP",
 4.44291 ++  "BFD_RELOC_AVR32_ALIGN",
 4.44292 ++  "BFD_RELOC_AVR32_14UW",
 4.44293 ++  "BFD_RELOC_AVR32_10UW",
 4.44294 ++  "BFD_RELOC_AVR32_10SW",
 4.44295 ++  "BFD_RELOC_AVR32_STHH_W",
 4.44296 ++  "BFD_RELOC_AVR32_7UW",
 4.44297 ++  "BFD_RELOC_AVR32_6S",
 4.44298 ++  "BFD_RELOC_AVR32_6UW",
 4.44299 ++  "BFD_RELOC_AVR32_4UH",
 4.44300 ++  "BFD_RELOC_AVR32_3U",
 4.44301 +   "BFD_RELOC_390_12",
 4.44302 +   "BFD_RELOC_390_GOT12",
 4.44303 +   "BFD_RELOC_390_PLT32",
 4.44304 +--- /dev/null
 4.44305 ++++ b/bfd/libtool
 4.44306 +@@ -0,0 +1,7871 @@
 4.44307 ++#! /bin/bash
 4.44308 ++
 4.44309 ++# libtool - Provide generalized library-building support services.
 4.44310 ++# Generated automatically by config.status (bfd) 2.18.atmel.1.0.1
 4.44311 ++# Libtool was configured on host hcegtvedt:
 4.44312 ++# NOTE: Changes made to this file will be lost: look at ltmain.sh.
 4.44313 ++#
 4.44314 ++#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
 4.44315 ++#                 2006, 2007, 2008 Free Software Foundation, Inc.
 4.44316 ++#   Written by Gordon Matzigkeit, 1996
 4.44317 ++#
 4.44318 ++#   This file is part of GNU Libtool.
 4.44319 ++#
 4.44320 ++# GNU Libtool is free software; you can redistribute it and/or
 4.44321 ++# modify it under the terms of the GNU General Public License as
 4.44322 ++# published by the Free Software Foundation; either version 2 of
 4.44323 ++# the License, or (at your option) any later version.
 4.44324 ++#
 4.44325 ++# As a special exception to the GNU General Public License,
 4.44326 ++# if you distribute this file as part of a program or library that
 4.44327 ++# is built using GNU Libtool, you may include this file under the
 4.44328 ++# same distribution terms that you use for the rest of that program.
 4.44329 ++#
 4.44330 ++# GNU Libtool is distributed in the hope that it will be useful,
 4.44331 ++# but WITHOUT ANY WARRANTY; without even the implied warranty of
 4.44332 ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 4.44333 ++# GNU General Public License for more details.
 4.44334 ++#
 4.44335 ++# You should have received a copy of the GNU General Public License
 4.44336 ++# along with GNU Libtool; see the file COPYING.  If not, a copy
 4.44337 ++# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
 4.44338 ++# obtained by writing to the Free Software Foundation, Inc.,
 4.44339 ++# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 4.44340 ++
 4.44341 ++
 4.44342 ++# The names of the tagged configurations supported by this script.
 4.44343 ++available_tags=""
 4.44344 ++
 4.44345 ++# ### BEGIN LIBTOOL CONFIG
 4.44346 ++
 4.44347 ++# Whether or not to build shared libraries.
 4.44348 ++build_libtool_libs=no
 4.44349 ++
 4.44350 ++# Which release of libtool.m4 was used?
 4.44351 ++macro_version=2.2.4
 4.44352 ++macro_revision=1.2976
 4.44353 ++
 4.44354 ++# Whether or not to build static libraries.
 4.44355 ++build_old_libs=yes
 4.44356 ++
 4.44357 ++# What type of objects to build.
 4.44358 ++pic_mode=default
 4.44359 ++
 4.44360 ++# Whether or not to optimize for fast installation.
 4.44361 ++fast_install=needless
 4.44362 ++
 4.44363 ++# The host system.
 4.44364 ++host_alias=i686-pc-linux-gnu
 4.44365 ++host=i686-pc-linux-gnu
 4.44366 ++host_os=linux-gnu
 4.44367 ++
 4.44368 ++# The build system.
 4.44369 ++build_alias=i686-pc-linux-gnu
 4.44370 ++build=i686-pc-linux-gnu
 4.44371 ++build_os=linux-gnu
 4.44372 ++
 4.44373 ++# A sed program that does not truncate output.
 4.44374 ++SED="/bin/sed"
 4.44375 ++
 4.44376 ++# Sed that helps us avoid accidentally triggering echo(1) options like -n.
 4.44377 ++Xsed="$SED -e 1s/^X//"
 4.44378 ++
 4.44379 ++# A grep program that handles long lines.
 4.44380 ++GREP="/bin/grep"
 4.44381 ++
 4.44382 ++# An ERE matcher.
 4.44383 ++EGREP="/bin/grep -E"
 4.44384 ++
 4.44385 ++# A literal string matcher.
 4.44386 ++FGREP="/bin/grep -F"
 4.44387 ++
 4.44388 ++# A BSD- or MS-compatible name lister.
 4.44389 ++NM="nm"
 4.44390 ++
 4.44391 ++# Whether we need soft or hard links.
 4.44392 ++LN_S="ln -s"
 4.44393 ++
 4.44394 ++# What is the maximum length of a command?
 4.44395 ++max_cmd_len=805306365
 4.44396 ++
 4.44397 ++# Object file suffix (normally "o").
 4.44398 ++objext=o
 4.44399 ++
 4.44400 ++# Executable file suffix (normally "").
 4.44401 ++exeext=
 4.44402 ++
 4.44403 ++# whether the shell understands "unset".
 4.44404 ++lt_unset=unset
 4.44405 ++
 4.44406 ++# turn spaces into newlines.
 4.44407 ++SP2NL="tr \\040 \\012"
 4.44408 ++
 4.44409 ++# turn newlines into spaces.
 4.44410 ++NL2SP="tr \\015\\012 \\040\\040"
 4.44411 ++
 4.44412 ++# How to create reloadable object files.
 4.44413 ++reload_flag=" -r"
 4.44414 ++reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
 4.44415 ++
 4.44416 ++# Method to check whether dependent libraries are shared objects.
 4.44417 ++deplibs_check_method="pass_all"
 4.44418 ++
 4.44419 ++# Command to use when deplibs_check_method == "file_magic".
 4.44420 ++file_magic_cmd="\$MAGIC_CMD"
 4.44421 ++
 4.44422 ++# The archiver.
 4.44423 ++AR="ar"
 4.44424 ++AR_FLAGS="cru"
 4.44425 ++
 4.44426 ++# A symbol stripping program.
 4.44427 ++STRIP="strip"
 4.44428 ++
 4.44429 ++# Commands used to install an old-style archive.
 4.44430 ++RANLIB="ranlib"
 4.44431 ++old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
 4.44432 ++old_postuninstall_cmds=""
 4.44433 ++
 4.44434 ++# A C compiler.
 4.44435 ++LTCC="gcc"
 4.44436 ++
 4.44437 ++# LTCC compiler flags.
 4.44438 ++LTCFLAGS="-g -O2"
 4.44439 ++
 4.44440 ++# Take the output of nm and produce a listing of raw symbols and C names.
 4.44441 ++global_symbol_pipe="sed -n -e 's/^.*[	 ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[	 ][	 ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
 4.44442 ++
 4.44443 ++# Transform the output of nm in a proper C declaration.
 4.44444 ++global_symbol_to_cdecl="sed -n -e 's/^T .* \\(.*\\)\$/extern int \\1();/p' -e 's/^[ABCDGIRSTW]* .* \\(.*\\)\$/extern char \\1;/p'"
 4.44445 ++
 4.44446 ++# Transform the output of nm in a C name address pair.
 4.44447 ++global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/  {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  {\"\\2\", (void *) \\&\\2},/p'"
 4.44448 ++
 4.44449 ++# Transform the output of nm in a C name address pair when lib prefix is needed.
 4.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'"
 4.44451 ++
 4.44452 ++# The name of the directory that contains temporary libtool files.
 4.44453 ++objdir=.libs
 4.44454 ++
 4.44455 ++# Shell to use when invoking shell scripts.
 4.44456 ++SHELL="/bin/bash"
 4.44457 ++
 4.44458 ++# An echo program that does not interpret backslashes.
 4.44459 ++ECHO="echo"
 4.44460 ++
 4.44461 ++# Used to examine libraries when file_magic_cmd begins with "file".
 4.44462 ++MAGIC_CMD=file
 4.44463 ++
 4.44464 ++# Must we lock files when doing compilation?
 4.44465 ++need_locks="no"
 4.44466 ++
 4.44467 ++# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
 4.44468 ++DSYMUTIL=""
 4.44469 ++
 4.44470 ++# Tool to change global to local symbols on Mac OS X.
 4.44471 ++NMEDIT=""
 4.44472 ++
 4.44473 ++# Tool to manipulate fat objects and archives on Mac OS X.
 4.44474 ++LIPO=""
 4.44475 ++
 4.44476 ++# ldd/readelf like tool for Mach-O binaries on Mac OS X.
 4.44477 ++OTOOL=""
 4.44478 ++
 4.44479 ++# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
 4.44480 ++OTOOL64=""
 4.44481 ++
 4.44482 ++# Old archive suffix (normally "a").
 4.44483 ++libext=a
 4.44484 ++
 4.44485 ++# Shared library suffix (normally ".so").
 4.44486 ++shrext_cmds=".so"
 4.44487 ++
 4.44488 ++# The commands to extract the exported symbol list from a shared archive.
 4.44489 ++extract_expsyms_cmds=""
 4.44490 ++
 4.44491 ++# Variables whose values should be saved in libtool wrapper scripts and
 4.44492 ++# restored at link time.
 4.44493 ++variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 4.44494 ++
 4.44495 ++# Do we need the "lib" prefix for modules?
 4.44496 ++need_lib_prefix=no
 4.44497 ++
 4.44498 ++# Do we need a version for libraries?
 4.44499 ++need_version=no
 4.44500 ++
 4.44501 ++# Library versioning type.
 4.44502 ++version_type=linux
 4.44503 ++
 4.44504 ++# Shared library runtime path variable.
 4.44505 ++runpath_var=LD_RUN_PATH
 4.44506 ++
 4.44507 ++# Shared library path variable.
 4.44508 ++shlibpath_var=LD_LIBRARY_PATH
 4.44509 ++
 4.44510 ++# Is shlibpath searched before the hard-coded library search path?
 4.44511 ++shlibpath_overrides_runpath=no
 4.44512 ++
 4.44513 ++# Format of library name prefix.
 4.44514 ++libname_spec="lib\$name"
 4.44515 ++
 4.44516 ++# List of archive names.  First name is the real one, the rest are links.
 4.44517 ++# The last name is the one that the linker finds with -lNAME
 4.44518 ++library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}"
 4.44519 ++
 4.44520 ++# The coded name of the library, if different from the real name.
 4.44521 ++soname_spec="\${libname}\${release}\${shared_ext}\$major"
 4.44522 ++
 4.44523 ++# Command to use after installation of a shared archive.
 4.44524 ++postinstall_cmds=""
 4.44525 ++
 4.44526 ++# Command to use after uninstallation of a shared archive.
 4.44527 ++postuninstall_cmds=""
 4.44528 ++
 4.44529 ++# Commands used to finish a libtool library installation in a directory.
 4.44530 ++finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
 4.44531 ++
 4.44532 ++# As "finish_cmds", except a single script fragment to be evaled but
 4.44533 ++# not shown.
 4.44534 ++finish_eval=""
 4.44535 ++
 4.44536 ++# Whether we should hardcode library paths into libraries.
 4.44537 ++hardcode_into_libs=yes
 4.44538 ++
 4.44539 ++# Compile-time system search path for libraries.
 4.44540 ++sys_lib_search_path_spec="/usr/lib/gcc/i486-linux-gnu/4.2.4 /usr/lib /lib"
 4.44541 ++
 4.44542 ++# Run-time system search path for libraries.
 4.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 "
 4.44544 ++
 4.44545 ++# Whether dlopen is supported.
 4.44546 ++dlopen_support=unknown
 4.44547 ++
 4.44548 ++# Whether dlopen of programs is supported.
 4.44549 ++dlopen_self=unknown
 4.44550 ++
 4.44551 ++# Whether dlopen of statically linked programs is supported.
 4.44552 ++dlopen_self_static=unknown
 4.44553 ++
 4.44554 ++# Commands to strip libraries.
 4.44555 ++old_striplib="strip --strip-debug"
 4.44556 ++striplib="strip --strip-unneeded"
 4.44557 ++
 4.44558 ++
 4.44559 ++# The linker used to build libraries.
 4.44560 ++LD="ld"
 4.44561 ++
 4.44562 ++# Commands used to build an old-style archive.
 4.44563 ++old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib"
 4.44564 ++
 4.44565 ++# A language specific compiler.
 4.44566 ++CC="gcc"
 4.44567 ++
 4.44568 ++# Is the compiler the GNU compiler?
 4.44569 ++with_gcc=yes
 4.44570 ++
 4.44571 ++# Compiler flag to turn off builtin functions.
 4.44572 ++no_builtin_flag=" -fno-builtin"
 4.44573 ++
 4.44574 ++# How to pass a linker flag through the compiler.
 4.44575 ++wl="-Wl,"
 4.44576 ++
 4.44577 ++# Additional compiler flags for building library objects.
 4.44578 ++pic_flag=" -fPIC -DPIC"
 4.44579 ++
 4.44580 ++# Compiler flag to prevent dynamic linking.
 4.44581 ++link_static_flag="-static"
 4.44582 ++
 4.44583 ++# Does compiler simultaneously support -c and -o options?
 4.44584 ++compiler_c_o="yes"
 4.44585 ++
 4.44586 ++# Whether or not to add -lc for building shared libraries.
 4.44587 ++build_libtool_need_lc=yes
 4.44588 ++
 4.44589 ++# Whether or not to disallow shared libs when runtime libs are static.
 4.44590 ++allow_libtool_libs_with_static_runtimes=no
 4.44591 ++
 4.44592 ++# Compiler flag to allow reflexive dlopens.
 4.44593 ++export_dynamic_flag_spec="\${wl}--export-dynamic"
 4.44594 ++
 4.44595 ++# Compiler flag to generate shared objects directly from archives.
 4.44596 ++whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
 4.44597 ++
 4.44598 ++# Whether the compiler copes with passing no objects directly.
 4.44599 ++compiler_needs_object="no"
 4.44600 ++
 4.44601 ++# Create an old-style archive from a shared archive.
 4.44602 ++old_archive_from_new_cmds=""
 4.44603 ++
 4.44604 ++# Create a temporary old-style archive to link instead of a shared archive.
 4.44605 ++old_archive_from_expsyms_cmds=""
 4.44606 ++
 4.44607 ++# Commands used to build a shared archive.
 4.44608 ++archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
 4.44609 ++archive_expsym_cmds="echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~
 4.44610 ++	    cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~
 4.44611 ++	    echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
 4.44612 ++	    \$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"
 4.44613 ++
 4.44614 ++# Commands used to build a loadable module if different from building
 4.44615 ++# a shared archive.
 4.44616 ++module_cmds=""
 4.44617 ++module_expsym_cmds=""
 4.44618 ++
 4.44619 ++# Whether we are building with GNU ld or not.
 4.44620 ++with_gnu_ld="yes"
 4.44621 ++
 4.44622 ++# Flag that allows shared libraries with undefined symbols to be built.
 4.44623 ++allow_undefined_flag=""
 4.44624 ++
 4.44625 ++# Flag that enforces no undefined symbols.
 4.44626 ++no_undefined_flag=""
 4.44627 ++
 4.44628 ++# Flag to hardcode $libdir into a binary during linking.
 4.44629 ++# This must work even if $libdir does not exist
 4.44630 ++hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"
 4.44631 ++
 4.44632 ++# If ld is used when linking, flag to hardcode $libdir into a binary
 4.44633 ++# during linking.  This must work even if $libdir does not exist.
 4.44634 ++hardcode_libdir_flag_spec_ld=""
 4.44635 ++
 4.44636 ++# Whether we need a single "-rpath" flag with a separated argument.
 4.44637 ++hardcode_libdir_separator=""
 4.44638 ++
 4.44639 ++# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
 4.44640 ++# DIR into the resulting binary.
 4.44641 ++hardcode_direct=no
 4.44642 ++
 4.44643 ++# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
 4.44644 ++# DIR into the resulting binary and the resulting library dependency is
 4.44645 ++# "absolute",i.e impossible to change by setting ${shlibpath_var} if the
 4.44646 ++# library is relocated.
 4.44647 ++hardcode_direct_absolute=no
 4.44648 ++
 4.44649 ++# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
 4.44650 ++# into the resulting binary.
 4.44651 ++hardcode_minus_L=no
 4.44652 ++
 4.44653 ++# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
 4.44654 ++# into the resulting binary.
 4.44655 ++hardcode_shlibpath_var=unsupported
 4.44656 ++
 4.44657 ++# Set to "yes" if building a shared library automatically hardcodes DIR
 4.44658 ++# into the library and all subsequent libraries and executables linked
 4.44659 ++# against it.
 4.44660 ++hardcode_automatic=no
 4.44661 ++
 4.44662 ++# Set to yes if linker adds runtime paths of dependent libraries
 4.44663 ++# to runtime path list.
 4.44664 ++inherit_rpath=no
 4.44665 ++
 4.44666 ++# Whether libtool must link a program against all its dependency libraries.
 4.44667 ++link_all_deplibs=unknown
 4.44668 ++
 4.44669 ++# Fix the shell variable $srcfile for the compiler.
 4.44670 ++fix_srcfile_path=""
 4.44671 ++
 4.44672 ++# Set to "yes" if exported symbols are required.
 4.44673 ++always_export_symbols=no
 4.44674 ++
 4.44675 ++# The commands to list exported symbols.
 4.44676 ++export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
 4.44677 ++
 4.44678 ++# Symbols that should not be listed in the preloaded symbols.
 4.44679 ++exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
 4.44680 ++
 4.44681 ++# Symbols that must always be exported.
 4.44682 ++include_expsyms=""
 4.44683 ++
 4.44684 ++# Commands necessary for linking programs (against libraries) with templates.
 4.44685 ++prelink_cmds=""
 4.44686 ++
 4.44687 ++# Specify filename containing input files.
 4.44688 ++file_list_spec=""
 4.44689 ++
 4.44690 ++# How to hardcode a shared library path into an executable.
 4.44691 ++hardcode_action=immediate
 4.44692 ++
 4.44693 ++# ### END LIBTOOL CONFIG
 4.44694 ++
 4.44695 ++# Generated from ltmain.m4sh; do not edit by hand
 4.44696 ++
 4.44697 ++# ltmain.sh (GNU libtool 1.2435 2007/03/18 18:44:42) 2.1a
 4.44698 ++# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 4.44699 ++
 4.44700 ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
 4.44701 ++# This is free software; see the source for copying conditions.  There is NO
 4.44702 ++# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 4.44703 ++
 4.44704 ++# This program is free software; you can redistribute it and/or modify
 4.44705 ++# it under the terms of the GNU General Public License as published by
 4.44706 ++# the Free Software Foundation; either version 2 of the License, or
 4.44707 ++# (at your option) any later version.
 4.44708 ++#
 4.44709 ++# This program is distributed in the hope that it will be useful, but
 4.44710 ++# WITHOUT ANY WARRANTY; without even the implied warranty of
 4.44711 ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 4.44712 ++# General Public License for more details.
 4.44713 ++#
 4.44714 ++# You should have received a copy of the GNU General Public License
 4.44715 ++# along with this program; if not, write to the Free Software
 4.44716 ++# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 4.44717 ++#
 4.44718 ++# As a special exception to the GNU General Public License, if you
 4.44719 ++# distribute this file as part of a program that contains a
 4.44720 ++# configuration script generated by Autoconf, you may include it under
 4.44721 ++# the same distribution terms that you use for the rest of that program.
 4.44722 ++
 4.44723 ++# Usage: $progname [OPTION]... [MODE-ARG]...
 4.44724 ++#
 4.44725 ++# Provide generalized library-building support services.
 4.44726 ++#
 4.44727 ++#     --config             show all configuration variables
 4.44728 ++#     --debug              enable verbose shell tracing
 4.44729 ++# -n, --dry-run            display commands without modifying any files
 4.44730 ++#     --features           display basic configuration information and exit
 4.44731 ++#     --mode=MODE          use operation mode MODE
 4.44732 ++#     --preserve-dup-deps  don't remove duplicate dependency libraries
 4.44733 ++#     --quiet, --silent    don't print informational messages
 4.44734 ++#     --tag=TAG            use configuration variables from tag TAG
 4.44735 ++# -v, --verbose            print informational messages (default)
 4.44736 ++#     --version            print version information
 4.44737 ++# -h, --help               print short or long help message
 4.44738 ++#
 4.44739 ++# MODE must be one of the following:
 4.44740 ++#
 4.44741 ++#       clean              remove files from the build directory
 4.44742 ++#       compile            compile a source file into a libtool object
 4.44743 ++#       execute            automatically set library path, then run a program
 4.44744 ++#       finish             complete the installation of libtool libraries
 4.44745 ++#       install            install libraries or executables
 4.44746 ++#       link               create a library or an executable
 4.44747 ++#       uninstall          remove libraries from an installed directory
 4.44748 ++#
 4.44749 ++# MODE-ARGS vary depending on the MODE.
 4.44750 ++# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
 4.44751 ++#
 4.44752 ++# When reporting a bug, please describe a test case to reproduce it and
 4.44753 ++# include the following information:
 4.44754 ++#
 4.44755 ++#       host-triplet:	$host
 4.44756 ++#       shell:		$SHELL
 4.44757 ++#       compiler:		$LTCC
 4.44758 ++#       compiler flags:		$LTCFLAGS
 4.44759 ++#       linker:		$LD (gnu? $with_gnu_ld)
 4.44760 ++#       $progname:		(GNU libtool 1.2435 2007/03/18 18:44:42) 2.1a
 4.44761 ++#       automake:		$automake_version
 4.44762 ++#       autoconf:		$autoconf_version
 4.44763 ++#
 4.44764 ++# Report bugs to <bug-libtool@gnu.org>.
 4.44765 ++
 4.44766 ++PROGRAM=ltmain.sh
 4.44767 ++PACKAGE=libtool
 4.44768 ++VERSION=2.1a
 4.44769 ++TIMESTAMP=" 1.2435 2007/03/18 18:44:42"
 4.44770 ++package_revision=1.2435
 4.44771 ++
 4.44772 ++# Be Bourne compatible
 4.44773 ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
 4.44774 ++  emulate sh
 4.44775 ++  NULLCMD=:
 4.44776 ++  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
 4.44777 ++  # is contrary to our usage.  Disable this feature.
 4.44778 ++  alias -g '${1+"$@"}'='"$@"'
 4.44779 ++  setopt NO_GLOB_SUBST
 4.44780 ++else
 4.44781 ++  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
 4.44782 ++fi
 4.44783 ++BIN_SH=xpg4; export BIN_SH # for Tru64
 4.44784 ++DUALCASE=1; export DUALCASE # for MKS sh
 4.44785 ++
 4.44786 ++# NLS nuisances: We save the old values to restore during execute mode.
 4.44787 ++# Only set LANG and LC_ALL to C if already set.
 4.44788 ++# These must not be set unconditionally because not all systems understand
 4.44789 ++# e.g. LANG=C (notably SCO).
 4.44790 ++for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
 4.44791 ++do
 4.44792 ++  eval "if test \"\${$lt_var+set}\" = set; then
 4.44793 ++          save_$lt_var=\$$lt_var
 4.44794 ++          $lt_var=C
 4.44795 ++	  export $lt_var
 4.44796 ++	fi"
 4.44797 ++done
 4.44798 ++
 4.44799 ++$lt_unset CDPATH
 4.44800 ++
 4.44801 ++
 4.44802 ++
 4.44803 ++
 4.44804 ++
 4.44805 ++: ${CP="cp -f"}
 4.44806 ++: ${ECHO="echo"}
 4.44807 ++: ${EGREP="/bin/grep -E"}
 4.44808 ++: ${FGREP="/bin/grep -F"}
 4.44809 ++: ${GREP="/bin/grep"}
 4.44810 ++: ${LN_S="ln -s"}
 4.44811 ++: ${MAKE="make"}
 4.44812 ++: ${MKDIR="mkdir"}
 4.44813 ++: ${MV="mv -f"}
 4.44814 ++: ${RM="rm -f"}
 4.44815 ++: ${SED="/bin/sed"}
 4.44816 ++: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 4.44817 ++: ${Xsed="$SED -e 1s/^X//"}
 4.44818 ++
 4.44819 ++# Global variables:
 4.44820 ++EXIT_SUCCESS=0
 4.44821 ++EXIT_FAILURE=1
 4.44822 ++EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
 4.44823 ++EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
 4.44824 ++
 4.44825 ++exit_status=$EXIT_SUCCESS
 4.44826 ++
 4.44827 ++# Make sure IFS has a sensible default
 4.44828 ++lt_nl='
 4.44829 ++'
 4.44830 ++IFS=" 	$lt_nl"
 4.44831 ++
 4.44832 ++dirname="s,/[^/]*$,,"
 4.44833 ++basename="s,^.*/,,"
 4.44834 ++
 4.44835 ++# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
 4.44836 ++# is ksh but when the shell is invoked as "sh" and the current value of
 4.44837 ++# the _XPG environment variable is not equal to 1 (one), the special
 4.44838 ++# positional parameter $0, within a function call, is the name of the
 4.44839 ++# function.
 4.44840 ++progpath="$0"
 4.44841 ++
 4.44842 ++# The name of this program:
 4.44843 ++# In the unlikely event $progname began with a '-', it would play havoc with
 4.44844 ++# func_echo (imagine progname=-n), so we prepend ./ in that case:
 4.44845 ++progname=`$ECHO "X$progpath" | $Xsed -e "$basename" -e 's,^-,./-,'`
 4.44846 ++
 4.44847 ++# Make sure we have an absolute path for reexecution:
 4.44848 ++case $progpath in
 4.44849 ++  [\\/]*|[A-Za-z]:\\*) ;;
 4.44850 ++  *[\\/]*)
 4.44851 ++     progdir=`$ECHO "X$progpath" | $Xsed -e "$dirname"`
 4.44852 ++     progdir=`cd "$progdir" && pwd`
 4.44853 ++     progpath="$progdir/$progname"
 4.44854 ++     ;;
 4.44855 ++  *)
 4.44856 ++     save_IFS="$IFS"
 4.44857 ++     IFS=:
 4.44858 ++     for progdir in $PATH; do
 4.44859 ++       IFS="$save_IFS"
 4.44860 ++       test -x "$progdir/$progname" && break
 4.44861 ++     done
 4.44862 ++     IFS="$save_IFS"
 4.44863 ++     test -n "$progdir" || progdir=`pwd`
 4.44864 ++     progpath="$progdir/$progname"
 4.44865 ++     ;;
 4.44866 ++esac
 4.44867 ++
 4.44868 ++# Sed substitution that helps us do robust quoting.  It backslashifies
 4.44869 ++# metacharacters that are still active within double-quoted strings.
 4.44870 ++Xsed="${SED}"' -e 1s/^X//'
 4.44871 ++sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
 4.44872 ++
 4.44873 ++# Same as above, but do not quote variable references.
 4.44874 ++double_quote_subst='s/\(["`\\]\)/\\\1/g'
 4.44875 ++
 4.44876 ++# Re-`\' parameter expansions in output of double_quote_subst that were
 4.44877 ++# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
 4.44878 ++# in input to double_quote_subst, that '$' was protected from expansion.
 4.44879 ++# Since each input `\' is now two `\'s, look for any number of runs of
 4.44880 ++# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
 4.44881 ++bs='\\'
 4.44882 ++bs2='\\\\'
 4.44883 ++bs4='\\\\\\\\'
 4.44884 ++dollar='\$'
 4.44885 ++sed_double_backslash="\
 4.44886 ++  s/$bs4/&\\
 4.44887 ++/g
 4.44888 ++  s/^$bs2$dollar/$bs&/
 4.44889 ++  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
 4.44890 ++  s/\n//g"
 4.44891 ++
 4.44892 ++# Standard options:
 4.44893 ++opt_dry_run=false
 4.44894 ++opt_help=false
 4.44895 ++opt_quiet=false
 4.44896 ++opt_verbose=false
 4.44897 ++
 4.44898 ++# func_echo arg...
 4.44899 ++# Echo program name prefixed message, along with the current mode
 4.44900 ++# name if it has been set yet.
 4.44901 ++func_echo ()
 4.44902 ++{
 4.44903 ++    $ECHO "$progname${mode+: }$mode: "${1+"$@"}
 4.44904 ++}
 4.44905 ++
 4.44906 ++# func_verbose arg...
 4.44907 ++# Echo program name prefixed message in verbose mode only.
 4.44908 ++func_verbose ()
 4.44909 ++{
 4.44910 ++    $opt_verbose && func_echo ${1+"$@"}
 4.44911 ++
 4.44912 ++    # A bug in bash halts the script if the last line of a function
 4.44913 ++    # fails when set -e is in force, so we need another command to
 4.44914 ++    # work around that:
 4.44915 ++    :
 4.44916 ++}
 4.44917 ++
 4.44918 ++# func_error arg...
 4.44919 ++# Echo program name prefixed message to standard error.
 4.44920 ++func_error ()
 4.44921 ++{
 4.44922 ++    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
 4.44923 ++}
 4.44924 ++
 4.44925 ++# func_warning arg...
 4.44926 ++# Echo program name prefixed warning message to standard error.
 4.44927 ++func_warning ()
 4.44928 ++{
 4.44929 ++    $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
 4.44930 ++}
 4.44931 ++
 4.44932 ++# func_fatal_error arg...
 4.44933 ++# Echo program name prefixed message to standard error, and exit.
 4.44934 ++func_fatal_error ()
 4.44935 ++{
 4.44936 ++    func_error ${1+"$@"}
 4.44937 ++    exit $EXIT_FAILURE
 4.44938 ++}
 4.44939 ++
 4.44940 ++# func_fatal_help arg...
 4.44941 ++# Echo program name prefixed message to standard error, followed by
 4.44942 ++# a help hint, and exit.
 4.44943 ++func_fatal_help ()
 4.44944 ++{
 4.44945 ++    func_error ${1+"$@"}
 4.44946 ++    func_fatal_error "$help"
 4.44947 ++}
 4.44948 ++help="Try \`$progname --help' for more information."  ## default
 4.44949 ++
 4.44950 ++
 4.44951 ++# func_grep expression filename
 4.44952 ++# Check whether EXPRESSION matches any line of FILENAME, without output.
 4.44953 ++func_grep ()
 4.44954 ++{
 4.44955 ++    $GREP "$1" "$2" >/dev/null 2>&1
 4.44956 ++}
 4.44957 ++
 4.44958 ++
 4.44959 ++# func_mkdir_p directory-path
 4.44960 ++# Make sure the entire path to DIRECTORY-PATH is available.
 4.44961 ++func_mkdir_p ()
 4.44962 ++{
 4.44963 ++    my_directory_path="$1"
 4.44964 ++    my_dir_list=
 4.44965 ++
 4.44966 ++    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
 4.44967 ++
 4.44968 ++      # Protect directory names starting with `-'
 4.44969 ++      case $my_directory_path in
 4.44970 ++        -*) my_directory_path="./$my_directory_path" ;;
 4.44971 ++      esac
 4.44972 ++
 4.44973 ++      # While some portion of DIR does not yet exist...
 4.44974 ++      while test ! -d "$my_directory_path"; do
 4.44975 ++        # ...make a list in topmost first order.  Use a colon delimited
 4.44976 ++	# list incase some portion of path contains whitespace.
 4.44977 ++        my_dir_list="$my_directory_path:$my_dir_list"
 4.44978 ++
 4.44979 ++        # If the last portion added has no slash in it, the list is done
 4.44980 ++        case $my_directory_path in */*) ;; *) break ;; esac
 4.44981 ++
 4.44982 ++        # ...otherwise throw away the child directory and loop
 4.44983 ++        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
 4.44984 ++      done
 4.44985 ++      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
 4.44986 ++
 4.44987 ++      save_mkdir_p_IFS="$IFS"; IFS=':'
 4.44988 ++      for my_dir in $my_dir_list; do
 4.44989 ++	IFS="$save_mkdir_p_IFS"
 4.44990 ++        # mkdir can fail with a `File exist' error if two processes
 4.44991 ++        # try to create one of the directories concurrently.  Don't
 4.44992 ++        # stop in that case!
 4.44993 ++        $MKDIR "$my_dir" 2>/dev/null || :
 4.44994 ++      done
 4.44995 ++      IFS="$save_mkdir_p_IFS"
 4.44996 ++
 4.44997 ++      # Bail out if we (or some other process) failed to create a directory.
 4.44998 ++      test -d "$my_directory_path" || \
 4.44999 ++        func_fatal_error "Failed to create \`$1'"
 4.45000 ++    fi
 4.45001 ++}
 4.45002 ++
 4.45003 ++
 4.45004 ++# func_mktempdir [string]
 4.45005 ++# Make a temporary directory that won't clash with other running
 4.45006 ++# libtool processes, and avoids race conditions if possible.  If
 4.45007 ++# given, STRING is the basename for that directory.
 4.45008 ++func_mktempdir ()
 4.45009 ++{
 4.45010 ++    my_template="${TMPDIR-/tmp}/${1-$progname}"
 4.45011 ++
 4.45012 ++    if test "$opt_dry_run" = ":"; then
 4.45013 ++      # Return a directory name, but don't create it in dry-run mode
 4.45014 ++      my_tmpdir="${my_template}-$$"
 4.45015 ++    else
 4.45016 ++
 4.45017 ++      # If mktemp works, use that first and foremost
 4.45018 ++      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
 4.45019 ++
 4.45020 ++      if test ! -d "$my_tmpdir"; then
 4.45021 ++        # Failing that, at least try and use $RANDOM to avoid a race
 4.45022 ++        my_tmpdir="${my_template}-${RANDOM-0}$$"
 4.45023 ++
 4.45024 ++        save_mktempdir_umask=`umask`
 4.45025 ++        umask 0077
 4.45026 ++        $MKDIR "$my_tmpdir"
 4.45027 ++        umask $save_mktempdir_umask
 4.45028 ++      fi
 4.45029 ++
 4.45030 ++      # If we're not in dry-run mode, bomb out on failure
 4.45031 ++      test -d "$my_tmpdir" || \
 4.45032 ++        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
 4.45033 ++    fi
 4.45034 ++
 4.45035 ++    $ECHO "X$my_tmpdir" | $Xsed
 4.45036 ++}
 4.45037 ++
 4.45038 ++
 4.45039 ++# func_quote_for_eval arg
 4.45040 ++# Aesthetically quote ARG to be evaled later.
 4.45041 ++# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
 4.45042 ++# is double-quoted, suitable for a subsequent eval, whereas
 4.45043 ++# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
 4.45044 ++# which are still active within double quotes backslashified.
 4.45045 ++func_quote_for_eval ()
 4.45046 ++{
 4.45047 ++    case $1 in
 4.45048 ++      *[\\\`\"\$]*)
 4.45049 ++	func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
 4.45050 ++      *)
 4.45051 ++        func_quote_for_eval_unquoted_result="$1" ;;
 4.45052 ++    esac
 4.45053 ++
 4.45054 ++    case $func_quote_for_eval_unquoted_result in
 4.45055 ++      # Double-quote args containing shell metacharacters to delay
 4.45056 ++      # word splitting, command substitution and and variable
 4.45057 ++      # expansion for a subsequent eval.
 4.45058 ++      # Many Bourne shells cannot handle close brackets correctly
 4.45059 ++      # in scan sets, so we specify it separately.
 4.45060 ++      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
 4.45061 ++        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
 4.45062 ++        ;;
 4.45063 ++      *)
 4.45064 ++        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
 4.45065 ++    esac
 4.45066 ++}
 4.45067 ++
 4.45068 ++
 4.45069 ++# func_quote_for_expand arg
 4.45070 ++# Aesthetically quote ARG to be evaled later; same as above,
 4.45071 ++# but do not quote variable references.
 4.45072 ++func_quote_for_expand ()
 4.45073 ++{
 4.45074 ++    case $1 in
 4.45075 ++      *[\\\`\"]*)
 4.45076 ++	my_arg=`$ECHO "X$1" | $Xsed \
 4.45077 ++	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
 4.45078 ++      *)
 4.45079 ++        my_arg="$1" ;;
 4.45080 ++    esac
 4.45081 ++
 4.45082 ++    case $my_arg in
 4.45083 ++      # Double-quote args containing shell metacharacters to delay
 4.45084 ++      # word splitting and command substitution for a subsequent eval.
 4.45085 ++      # Many Bourne shells cannot handle close brackets correctly
 4.45086 ++      # in scan sets, so we specify it separately.
 4.45087 ++      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
 4.45088 ++        my_arg="\"$my_arg\""
 4.45089 ++        ;;
 4.45090 ++    esac
 4.45091 ++
 4.45092 ++    func_quote_for_expand_result="$my_arg"
 4.45093 ++}
 4.45094 ++
 4.45095 ++
 4.45096 ++# func_show_eval cmd [fail_exp]
 4.45097 ++# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
 4.45098 ++# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
 4.45099 ++# is given, then evaluate it.
 4.45100 ++func_show_eval ()
 4.45101 ++{
 4.45102 ++    my_cmd="$1"
 4.45103 ++    my_fail_exp="${2-:}"
 4.45104 ++
 4.45105 ++    ${opt_silent-false} || {
 4.45106 ++      func_quote_for_expand "$my_cmd"
 4.45107 ++      eval "func_echo $func_quote_for_expand_result"
 4.45108 ++    }
 4.45109 ++
 4.45110 ++    if ${opt_dry_run-false}; then :; else
 4.45111 ++      eval "$my_cmd"
 4.45112 ++      my_status=$?
 4.45113 ++      if test "$my_status" -eq 0; then :; else
 4.45114 ++	eval "(exit $my_status); $my_fail_exp"
 4.45115 ++      fi
 4.45116 ++    fi
 4.45117 ++}
 4.45118 ++
 4.45119 ++
 4.45120 ++
 4.45121 ++
 4.45122 ++
 4.45123 ++# func_version
 4.45124 ++# Echo version message to standard output and exit.
 4.45125 ++func_version ()
 4.45126 ++{
 4.45127 ++    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
 4.45128 ++        s/^# //
 4.45129 ++	s/^# *$//
 4.45130 ++        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
 4.45131 ++        p
 4.45132 ++     }' < "$progpath"
 4.45133 ++     exit $?
 4.45134 ++}
 4.45135 ++
 4.45136 ++# func_usage
 4.45137 ++# Echo short help message to standard output and exit.
 4.45138 ++func_usage ()
 4.45139 ++{
 4.45140 ++    $SED -n '/^# Usage:/,/# -h/ {
 4.45141 ++        s/^# //
 4.45142 ++	s/^# *$//
 4.45143 ++	s/\$progname/'$progname'/
 4.45144 ++	p
 4.45145 ++    }' < "$progpath"
 4.45146 ++    $ECHO
 4.45147 ++    $ECHO "run \`$progname --help | more' for full usage"
 4.45148 ++    exit $?
 4.45149 ++}
 4.45150 ++
 4.45151 ++# func_help
 4.45152 ++# Echo long help message to standard output and exit.
 4.45153 ++func_help ()
 4.45154 ++{
 4.45155 ++    $SED -n '/^# Usage:/,/# Report bugs to/ {
 4.45156 ++        s/^# //
 4.45157 ++	s/^# *$//
 4.45158 ++	s*\$progname*'$progname'*
 4.45159 ++	s*\$host*'"$host"'*
 4.45160 ++	s*\$SHELL*'"$SHELL"'*
 4.45161 ++	s*\$LTCC*'"$LTCC"'*
 4.45162 ++	s*\$LTCFLAGS*'"$LTCFLAGS"'*
 4.45163 ++	s*\$LD*'"$LD"'*
 4.45164 ++	s/\$with_gnu_ld/'"$with_gnu_ld"'/
 4.45165 ++	s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
 4.45166 ++	s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
 4.45167 ++	p
 4.45168 ++     }' < "$progpath"
 4.45169 ++    exit $?
 4.45170 ++}
 4.45171 ++
 4.45172 ++# func_missing_arg argname
 4.45173 ++# Echo program name prefixed message to standard error and set global
 4.45174 ++# exit_cmd.
 4.45175 ++func_missing_arg ()
 4.45176 ++{
 4.45177 ++    func_error "missing argument for $1"
 4.45178 ++    exit_cmd=exit
 4.45179 ++}
 4.45180 ++
 4.45181 ++exit_cmd=:
 4.45182 ++
 4.45183 ++
 4.45184 ++
 4.45185 ++
 4.45186 ++
 4.45187 ++# Check that we have a working $ECHO.
 4.45188 ++if test "X$1" = X--no-reexec; then
 4.45189 ++  # Discard the --no-reexec flag, and continue.
 4.45190 ++  shift
 4.45191 ++elif test "X$1" = X--fallback-echo; then
 4.45192 ++  # Avoid inline document here, it may be left over
 4.45193 ++  :
 4.45194 ++elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
 4.45195 ++  # Yippee, $ECHO works!
 4.45196 ++  :
 4.45197 ++else
 4.45198 ++  # Restart under the correct shell, and then maybe $ECHO will work.
 4.45199 ++  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
 4.45200 ++fi
 4.45201 ++
 4.45202 ++if test "X$1" = X--fallback-echo; then
 4.45203 ++  # used as fallback echo
 4.45204 ++  shift
 4.45205 ++  cat <<EOF
 4.45206 ++$*
 4.45207 ++EOF
 4.45208 ++  exit $EXIT_SUCCESS
 4.45209 ++fi
 4.45210 ++
 4.45211 ++magic="%%%MAGIC variable%%%"
 4.45212 ++
 4.45213 ++
 4.45214 ++# Global variables.
 4.45215 ++# $mode is unset
 4.45216 ++nonopt=
 4.45217 ++execute_dlfiles=
 4.45218 ++preserve_args=
 4.45219 ++lo2o="s/\\.lo\$/.${objext}/"
 4.45220 ++o2lo="s/\\.${objext}\$/.lo/"
 4.45221 ++extracted_archives=
 4.45222 ++extracted_serial=0
 4.45223 ++
 4.45224 ++opt_dry_run=false
 4.45225 ++opt_duplicate_deps=false
 4.45226 ++opt_silent=false
 4.45227 ++opt_debug=:
 4.45228 ++
 4.45229 ++# If this variable is set in any of the actions, the command in it
 4.45230 ++# will be execed at the end.  This prevents here-documents from being
 4.45231 ++# left over by shells.
 4.45232 ++exec_cmd=
 4.45233 ++
 4.45234 ++# func_fatal_configuration arg...
 4.45235 ++# Echo program name prefixed message to standard error, followed by
 4.45236 ++# a configuration failure hint, and exit.
 4.45237 ++func_fatal_configuration ()
 4.45238 ++{
 4.45239 ++    func_error ${1+"$@"}
 4.45240 ++    func_error "See the $PACKAGE documentation for more information."
 4.45241 ++    func_fatal_error "Fatal configuration error."
 4.45242 ++}
 4.45243 ++
 4.45244 ++
 4.45245 ++# func_config
 4.45246 ++# Display the configuration for all the tags in this script.
 4.45247 ++func_config ()
 4.45248 ++{
 4.45249 ++    re_begincf='^# ### BEGIN LIBTOOL'
 4.45250 ++    re_endcf='^# ### END LIBTOOL'
 4.45251 ++
 4.45252 ++    # Default configuration.
 4.45253 ++    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
 4.45254 ++
 4.45255 ++    # Now print the configurations for the tags.
 4.45256 ++    for tagname in $taglist; do
 4.45257 ++      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
 4.45258 ++    done
 4.45259 ++
 4.45260 ++    exit $?
 4.45261 ++}
 4.45262 ++
 4.45263 ++# func_features
 4.45264 ++# Display the features supported by this script.
 4.45265 ++func_features ()
 4.45266 ++{
 4.45267 ++    $ECHO "host: $host"
 4.45268 ++    if test "$build_libtool_libs" = yes; then
 4.45269 ++      $ECHO "enable shared libraries"
 4.45270 ++    else
 4.45271 ++      $ECHO "disable shared libraries"
 4.45272 ++    fi
 4.45273 ++    if test "$build_old_libs" = yes; then
 4.45274 ++      $ECHO "enable static libraries"
 4.45275 ++    else
 4.45276 ++      $ECHO "disable static libraries"
 4.45277 ++    fi
 4.45278 ++
 4.45279 ++    exit $?
 4.45280 ++}
 4.45281 ++
 4.45282 ++# func_enable_tag tagname
 4.45283 ++# Verify that TAGNAME is valid, and either flag an error and exit, or
 4.45284 ++# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
 4.45285 ++# variable here.
 4.45286 ++func_enable_tag ()
 4.45287 ++{
 4.45288 ++  # Global variable:
 4.45289 ++  tagname="$1"
 4.45290 ++
 4.45291 ++  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
 4.45292 ++  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
 4.45293 ++  sed_extractcf="/$re_begincf/,/$re_endcf/p"
 4.45294 ++
 4.45295 ++  # Validate tagname.
 4.45296 ++  case $tagname in
 4.45297 ++    *[!-_A-Za-z0-9,/]*)
 4.45298 ++      func_fatal_error "invalid tag name: $tagname"
 4.45299 ++      ;;
 4.45300 ++  esac
 4.45301 ++
 4.45302 ++  # Don't test for the "default" C tag, as we know it's
 4.45303 ++  # there but not specially marked.
 4.45304 ++  case $tagname in
 4.45305 ++    CC) ;;
 4.45306 ++    *)
 4.45307 ++      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
 4.45308 ++	taglist="$taglist $tagname"
 4.45309 ++
 4.45310 ++	# Evaluate the configuration.  Be careful to quote the path
 4.45311 ++	# and the sed script, to avoid splitting on whitespace, but
 4.45312 ++	# also don't use non-portable quotes within backquotes within
 4.45313 ++	# quotes we have to do it in 2 steps:
 4.45314 ++	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
 4.45315 ++	eval "$extractedcf"
 4.45316 ++      else
 4.45317 ++	func_error "ignoring unknown tag $tagname"
 4.45318 ++      fi
 4.45319 ++      ;;
 4.45320 ++  esac
 4.45321 ++}
 4.45322 ++
 4.45323 ++
 4.45324 ++func_mode_help ()
 4.45325 ++{
 4.45326 ++    # We need to display help for each of the modes.
 4.45327 ++    case $mode in
 4.45328 ++      "")
 4.45329 ++        # Generic help is extracted from the usage comments
 4.45330 ++        # at the start of this file.
 4.45331 ++        func_help
 4.45332 ++        ;;
 4.45333 ++
 4.45334 ++      clean)
 4.45335 ++        $ECHO \
 4.45336 ++"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
 4.45337 ++
 4.45338 ++Remove files from the build directory.
 4.45339 ++
 4.45340 ++RM is the name of the program to use to delete files associated with each FILE
 4.45341 ++(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
 4.45342 ++to RM.
 4.45343 ++
 4.45344 ++If FILE is a libtool library, object or program, all the files associated
 4.45345 ++with it are deleted. Otherwise, only FILE itself is deleted using RM."
 4.45346 ++        ;;
 4.45347 ++
 4.45348 ++      compile)
 4.45349 ++      $ECHO \
 4.45350 ++"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
 4.45351 ++
 4.45352 ++Compile a source file into a libtool library object.
 4.45353 ++
 4.45354 ++This mode accepts the following additional options:
 4.45355 ++
 4.45356 ++  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
 4.45357 ++  -no-suppress      do not suppress compiler output for multiple passes
 4.45358 ++  -prefer-pic       try to building PIC objects only
 4.45359 ++  -prefer-non-pic   try to building non-PIC objects only
 4.45360 ++  -shared           do not build a \`.o' file suitable for static linking
 4.45361 ++  -static           only build a \`.o' file suitable for static linking
 4.45362 ++
 4.45363 ++COMPILE-COMMAND is a command to be used in creating a \`standard' object file
 4.45364 ++from the given SOURCEFILE.
 4.45365 ++
 4.45366 ++The output file name is determined by removing the directory component from
 4.45367 ++SOURCEFILE, then substituting the C source code suffix \`.c' with the
 4.45368 ++library object suffix, \`.lo'."
 4.45369 ++        ;;
 4.45370 ++
 4.45371 ++      execute)
 4.45372 ++        $ECHO \
 4.45373 ++"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
 4.45374 ++
 4.45375 ++Automatically set library path, then run a program.
 4.45376 ++
 4.45377 ++This mode accepts the following additional options:
 4.45378 ++
 4.45379 ++  -dlopen FILE      add the directory containing FILE to the library path
 4.45380 ++
 4.45381 ++This mode sets the library path environment variable according to \`-dlopen'
 4.45382 ++flags.
 4.45383 ++
 4.45384 ++If any of the ARGS are libtool executable wrappers, then they are translated
 4.45385 ++into their corresponding uninstalled binary, and any of their required library
 4.45386 ++directories are added to the library path.
 4.45387 ++
 4.45388 ++Then, COMMAND is executed, with ARGS as arguments."
 4.45389 ++        ;;
 4.45390 ++
 4.45391 ++      finish)
 4.45392 ++        $ECHO \
 4.45393 ++"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
 4.45394 ++
 4.45395 ++Complete the installation of libtool libraries.
 4.45396 ++
 4.45397 ++Each LIBDIR is a directory that contains libtool libraries.
 4.45398 ++
 4.45399 ++The commands that this mode executes may require superuser privileges.  Use
 4.45400 ++the \`--dry-run' option if you just want to see what would be executed."
 4.45401 ++        ;;
 4.45402 ++
 4.45403 ++      install)
 4.45404 ++        $ECHO \
 4.45405 ++"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
 4.45406 ++
 4.45407 ++Install executables or libraries.
 4.45408 ++
 4.45409 ++INSTALL-COMMAND is the installation command.  The first component should be
 4.45410 ++either the \`install' or \`cp' program.
 4.45411 ++
 4.45412 ++The following components of INSTALL-COMMAND are treated specially:
 4.45413 ++
 4.45414 ++  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
 4.45415 ++
 4.45416 ++The rest of the components are interpreted as arguments to that command (only
 4.45417 ++BSD-compatible install options are recognized)."
 4.45418 ++        ;;
 4.45419 ++
 4.45420 ++      link)
 4.45421 ++        $ECHO \
 4.45422 ++"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
 4.45423 ++
 4.45424 ++Link object files or libraries together to form another library, or to
 4.45425 ++create an executable program.
 4.45426 ++
 4.45427 ++LINK-COMMAND is a command using the C compiler that you would use to create
 4.45428 ++a program from several object files.
 4.45429 ++
 4.45430 ++The following components of LINK-COMMAND are treated specially:
 4.45431 ++
 4.45432 ++  -all-static       do not do any dynamic linking at all
 4.45433 ++  -avoid-version    do not add a version suffix if possible
 4.45434 ++  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
 4.45435 ++  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
 4.45436 ++  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
 4.45437 ++  -export-symbols SYMFILE
 4.45438 ++                    try to export only the symbols listed in SYMFILE
 4.45439 ++  -export-symbols-regex REGEX
 4.45440 ++                    try to export only the symbols matching REGEX
 4.45441 ++  -LLIBDIR          search LIBDIR for required installed libraries
 4.45442 ++  -lNAME            OUTPUT-FILE requires the installed library libNAME
 4.45443 ++  -module           build a library that can dlopened
 4.45444 ++  -no-fast-install  disable the fast-install mode
 4.45445 ++  -no-install       link a not-installable executable
 4.45446 ++  -no-undefined     declare that a library does not refer to external symbols
 4.45447 ++  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
 4.45448 ++  -objectlist FILE  Use a list of object files found in FILE to specify objects
 4.45449 ++  -precious-files-regex REGEX
 4.45450 ++                    don't remove output files matching REGEX
 4.45451 ++  -release RELEASE  specify package release information
 4.45452 ++  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
 4.45453 ++  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
 4.45454 ++  -shared           only do dynamic linking of libtool libraries
 4.45455 ++  -shrext SUFFIX    override the standard shared library file extension
 4.45456 ++  -static           do not do any dynamic linking of uninstalled libtool libraries
 4.45457 ++  -static-libtool-libs
 4.45458 ++                    do not do any dynamic linking of libtool libraries
 4.45459 ++  -version-info CURRENT[:REVISION[:AGE]]
 4.45460 ++                    specify library version info [each variable defaults to 0]
 4.45461 ++  -weak LIBNAME     declare that the target provides the LIBNAME interface
 4.45462 ++
 4.45463 ++All other options (arguments beginning with \`-') are ignored.
 4.45464 ++
 4.45465 ++Every other argument is treated as a filename.  Files ending in \`.la' are
 4.45466 ++treated as uninstalled libtool libraries, other files are standard or library
 4.45467 ++object files.
 4.45468 ++
 4.45469 ++If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
 4.45470 ++only library objects (\`.lo' files) may be specified, and \`-rpath' is
 4.45471 ++required, except when creating a convenience library.
 4.45472 ++
 4.45473 ++If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
 4.45474 ++using \`ar' and \`ranlib', or on Windows using \`lib'.
 4.45475 ++
 4.45476 ++If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
 4.45477 ++is created, otherwise an executable program is created."
 4.45478 ++        ;;
 4.45479 ++
 4.45480 ++      uninstall)
 4.45481 ++        $ECHO \
 4.45482 ++"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
 4.45483 ++
 4.45484 ++Remove libraries from an installation directory.
 4.45485 ++
 4.45486 ++RM is the name of the program to use to delete files associated with each FILE
 4.45487 ++(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
 4.45488 ++to RM.
 4.45489 ++
 4.45490 ++If FILE is a libtool library, all the files associated with it are deleted.
 4.45491 ++Otherwise, only FILE itself is deleted using RM."
 4.45492 ++        ;;
 4.45493 ++
 4.45494 ++      *)
 4.45495 ++        func_fatal_help "invalid operation mode \`$mode'"
 4.45496 ++        ;;
 4.45497 ++    esac
 4.45498 ++
 4.45499 ++    $ECHO
 4.45500 ++    $ECHO "Try \`$progname --help' for more information about other modes."
 4.45501 ++
 4.45502 ++    exit $?
 4.45503 ++}
 4.45504 ++
 4.45505 ++# Generated shell functions inserted here.
 4.45506 ++
 4.45507 ++# func_dirname file append nondir_replacement
 4.45508 ++# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
 4.45509 ++# otherwise set result to NONDIR_REPLACEMENT.
 4.45510 ++func_dirname ()
 4.45511 ++{
 4.45512 ++  case ${1} in
 4.45513 ++    */*) func_dirname_result="${1%/*}${2}" ;;
 4.45514 ++    *  ) func_dirname_result="${3}" ;;
 4.45515 ++  esac
 4.45516 ++}
 4.45517 ++
 4.45518 ++# func_basename file
 4.45519 ++func_basename ()
 4.45520 ++{
 4.45521 ++  func_basename_result="${1##*/}"
 4.45522 ++}
 4.45523 ++
 4.45524 ++# func_dirname_and_basename file append nondir_replacement
 4.45525 ++# perform func_basename and func_dirname in a single function
 4.45526 ++# call:
 4.45527 ++#   dirname:  Compute the dirname of FILE.  If nonempty,
 4.45528 ++#             add APPEND to the result, otherwise set result
 4.45529 ++#             to NONDIR_REPLACEMENT.
 4.45530 ++#             value returned in "$func_dirname_result"
 4.45531 ++#   basename: Compute filename of FILE.
 4.45532 ++#             value retuned in "$func_basename_result"
 4.45533 ++# Implementation must be kept synchronized with func_dirname
 4.45534 ++# and func_basename. For efficiency, we do not delegate to
 4.45535 ++# those functions but instead duplicate the functionality here.
 4.45536 ++func_dirname_and_basename ()
 4.45537 ++{
 4.45538 ++  case ${1} in
 4.45539 ++    */*) func_dirname_result="${1%/*}${2}" ;;
 4.45540 ++    *  ) func_dirname_result="${3}" ;;
 4.45541 ++  esac
 4.45542 ++  func_basename_result="${1##*/}"
 4.45543 ++}
 4.45544 ++
 4.45545 ++# func_stripname prefix suffix name
 4.45546 ++# strip PREFIX and SUFFIX off of NAME.
 4.45547 ++# PREFIX and SUFFIX must not contain globbing or regex special
 4.45548 ++# characters, hashes, percent signs, but SUFFIX may contain a leading
 4.45549 ++# dot (in which case that matches only a dot).
 4.45550 ++func_stripname ()
 4.45551 ++{
 4.45552 ++  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
 4.45553 ++  # positional parameters, so assign one to ordinary parameter first.
 4.45554 ++  func_stripname_result=${3}
 4.45555 ++  func_stripname_result=${func_stripname_result#"${1}"}
 4.45556 ++  func_stripname_result=${func_stripname_result%"${2}"}
 4.45557 ++}
 4.45558 ++
 4.45559 ++# func_opt_split
 4.45560 ++func_opt_split ()
 4.45561 ++{
 4.45562 ++  func_opt_split_opt=${1%%=*}
 4.45563 ++  func_opt_split_arg=${1#*=}
 4.45564 ++}
 4.45565 ++
 4.45566 ++# func_lo2o object
 4.45567 ++func_lo2o ()
 4.45568 ++{
 4.45569 ++  case ${1} in
 4.45570 ++    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
 4.45571 ++    *)    func_lo2o_result=${1} ;;
 4.45572 ++  esac
 4.45573 ++}
 4.45574 ++
 4.45575 ++# func_xform libobj-or-source
 4.45576 ++func_xform ()
 4.45577 ++{
 4.45578 ++  func_xform_result=${1%.*}.lo
 4.45579 ++}
 4.45580 ++
 4.45581 ++# func_arith arithmetic-term...
 4.45582 ++func_arith ()
 4.45583 ++{
 4.45584 ++  func_arith_result=$(( $* ))
 4.45585 ++}
 4.45586 ++
 4.45587 ++# func_len string
 4.45588 ++# STRING may not start with a hyphen.
 4.45589 ++func_len ()
 4.45590 ++{
 4.45591 ++  func_len_result=${#1}
 4.45592 ++}
 4.45593 ++
 4.45594 ++
 4.45595 ++# func_append var value
 4.45596 ++# Append VALUE to the end of shell variable VAR.
 4.45597 ++func_append ()
 4.45598 ++{
 4.45599 ++  eval "$1+=\$2"
 4.45600 ++}
 4.45601 ++# Generated shell functions inserted here.
 4.45602 ++
 4.45603 ++
 4.45604 ++# Parse options once, thoroughly.  This comes as soon as possible in
 4.45605 ++# the script to make things like `libtool --version' happen quickly.
 4.45606 ++{
 4.45607 ++
 4.45608 ++  # Shorthand for --mode=foo, only valid as the first argument
 4.45609 ++  case $1 in
 4.45610 ++  clean|clea|cle|cl)
 4.45611 ++    shift; set dummy --mode clean ${1+"$@"}; shift
 4.45612 ++    ;;
 4.45613 ++  compile|compil|compi|comp|com|co|c)
 4.45614 ++    shift; set dummy --mode compile ${1+"$@"}; shift
 4.45615 ++    ;;
 4.45616 ++  execute|execut|execu|exec|exe|ex|e)
 4.45617 ++    shift; set dummy --mode execute ${1+"$@"}; shift
 4.45618 ++    ;;
 4.45619 ++  finish|finis|fini|fin|fi|f)
 4.45620 ++    shift; set dummy --mode finish ${1+"$@"}; shift
 4.45621 ++    ;;
 4.45622 ++  install|instal|insta|inst|ins|in|i)
 4.45623 ++    shift; set dummy --mode install ${1+"$@"}; shift
 4.45624 ++    ;;
 4.45625 ++  link|lin|li|l)
 4.45626 ++    shift; set dummy --mode link ${1+"$@"}; shift
 4.45627 ++    ;;
 4.45628 ++  uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
 4.45629 ++    shift; set dummy --mode uninstall ${1+"$@"}; shift
 4.45630 ++    ;;
 4.45631 ++  esac
 4.45632 ++
 4.45633 ++  # Parse non-mode specific arguments:
 4.45634 ++  while test "$#" -gt 0; do
 4.45635 ++    opt="$1"
 4.45636 ++    shift
 4.45637 ++
 4.45638 ++    case $opt in
 4.45639 ++      --config)		func_config 					;;
 4.45640 ++
 4.45641 ++      --debug)		preserve_args="$preserve_args $opt"
 4.45642 ++	    		func_echo "enabling shell trace mode"
 4.45643 ++	    		opt_debug='set -x'
 4.45644 ++			$opt_debug
 4.45645 ++			;;
 4.45646 ++
 4.45647 ++      -dlopen)		test "$#" -eq 0 && func_missing_arg "$opt" && break
 4.45648 ++			execute_dlfiles="$execute_dlfiles $1"
 4.45649 ++			shift
 4.45650 ++			;;
 4.45651 ++
 4.45652 ++      --dry-run | -n)	opt_dry_run=:					;;
 4.45653 ++      --features)       func_features					;;
 4.45654 ++      --finish)		mode="finish"					;;
 4.45655 ++
 4.45656 ++      --mode)		test "$#" -eq 0 && func_missing_arg "$opt" && break
 4.45657 ++	    		case $1 in
 4.45658 ++			  # Valid mode arguments:
 4.45659 ++			  clean)	;;
 4.45660 ++			  compile)	;;
 4.45661 ++			  execute)	;;
 4.45662 ++			  finish)	;;
 4.45663 ++			  install)	;;
 4.45664 ++			  link)		;;
 4.45665 ++			  relink)	;;
 4.45666 ++			  uninstall)	;;
 4.45667 ++
 4.45668 ++			  # Catch anything else as an error
 4.45669 ++			  *) func_error "invalid argument for $opt"
 4.45670 ++			     exit_cmd=exit
 4.45671 ++			     break
 4.45672 ++			     ;;
 4.45673 ++		        esac
 4.45674 ++
 4.45675 ++	    		mode="$1"
 4.45676 ++			shift
 4.45677 ++			;;
 4.45678 ++
 4.45679 ++      --preserve-dup-deps)
 4.45680 ++      			opt_duplicate_deps=:				;;
 4.45681 ++
 4.45682 ++      --quiet|--silent)	preserve_args="$preserve_args $opt"
 4.45683 ++	    		opt_silent=:
 4.45684 ++			;;
 4.45685 ++
 4.45686 ++      --verbose| -v)	preserve_args="$preserve_args $opt"
 4.45687 ++	    		opt_silent=false
 4.45688 ++			;;
 4.45689 ++
 4.45690 ++      --tag)		test "$#" -eq 0 && func_missing_arg "$opt" && break
 4.45691 ++			preserve_args="$preserve_args $opt $1"
 4.45692 ++			func_enable_tag "$1"	# tagname is set here
 4.45693 ++			shift
 4.45694 ++			;;
 4.45695 ++
 4.45696 ++      # Separate optargs to long options:
 4.45697 ++      -dlopen=*|--mode=*|--tag=*)
 4.45698 ++			func_opt_split "$opt"
 4.45699 ++			set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
 4.45700 ++			shift
 4.45701 ++			;;
 4.45702 ++
 4.45703 ++      -\?|-h)		func_usage					;;
 4.45704 ++      --help)		opt_help=:					;;
 4.45705 ++      --version)	func_version					;;
 4.45706 ++
 4.45707 ++      -*)		func_fatal_help "unrecognized option \`$opt'"	;;
 4.45708 ++
 4.45709 ++      *)		nonopt="$opt"
 4.45710 ++      			break
 4.45711 ++			;;
 4.45712 ++    esac
 4.45713 ++  done
 4.45714 ++
 4.45715 ++  # Now that we've collected a possible --mode arg, show help if necessary
 4.45716 ++  $opt_help && func_mode_help
 4.45717 ++
 4.45718 ++  case $host in
 4.45719 ++    *cygwin* | *mingw* | *pw32*)
 4.45720 ++      # don't eliminate duplications in $postdeps and $predeps
 4.45721 ++      opt_duplicate_compiler_generated_deps=:
 4.45722 ++      ;;
 4.45723 ++    *)
 4.45724 ++      opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
 4.45725 ++      ;;
 4.45726 ++  esac
 4.45727 ++
 4.45728 ++  # Having warned about all mis-specified options, bail out if
 4.45729 ++  # anything was wrong.
 4.45730 ++  $exit_cmd $EXIT_FAILURE
 4.45731 ++}
 4.45732 ++
 4.45733 ++# func_check_version_match
 4.45734 ++# Ensure that we are using m4 macros, and libtool script from the same
 4.45735 ++# release of libtool.
 4.45736 ++func_check_version_match ()
 4.45737 ++{
 4.45738 ++  if test "$package_revision" != "$macro_revision"; then
 4.45739 ++    if test "$VERSION" != "$macro_version"; then
 4.45740 ++      if test -z "$macro_version"; then
 4.45741 ++        cat >&2 <<_LT_EOF
 4.45742 ++$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
 4.45743 ++$progname: definition of this LT_INIT comes from an older release.
 4.45744 ++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
 4.45745 ++$progname: and run autoconf again.
 4.45746 ++_LT_EOF
 4.45747 ++      else
 4.45748 ++        cat >&2 <<_LT_EOF
 4.45749 ++$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
 4.45750 ++$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
 4.45751 ++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
 4.45752 ++$progname: and run autoconf again.
 4.45753 ++_LT_EOF
 4.45754 ++      fi
 4.45755 ++    else
 4.45756 ++      cat >&2 <<_LT_EOF
 4.45757 ++$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
 4.45758 ++$progname: but the definition of this LT_INIT comes from revision $macro_revision.
 4.45759 ++$progname: You should recreate aclocal.m4 with macros from revision $package_revision
 4.45760 ++$progname: of $PACKAGE $VERSION and run autoconf again.
 4.45761 ++_LT_EOF
 4.45762 ++    fi
 4.45763 ++
 4.45764 ++    exit $EXIT_MISMATCH
 4.45765 ++  fi
 4.45766 ++}
 4.45767 ++
 4.45768 ++
 4.45769 ++## ----------- ##
 4.45770 ++##    Main.    ##
 4.45771 ++## ----------- ##
 4.45772 ++
 4.45773 ++{
 4.45774 ++  # Sanity checks first:
 4.45775 ++  func_check_version_match
 4.45776 ++
 4.45777 ++  if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
 4.45778 ++    func_fatal_configuration "not configured to build any kind of library"
 4.45779 ++  fi
 4.45780 ++
 4.45781 ++  test -z "$mode" && func_fatal_error "error: you must specify a MODE."
 4.45782 ++
 4.45783 ++
 4.45784 ++  # Darwin sucks
 4.45785 ++  eval std_shrext=\"$shrext_cmds\"
 4.45786 ++
 4.45787 ++
 4.45788 ++  # Only execute mode is allowed to have -dlopen flags.
 4.45789 ++  if test -n "$execute_dlfiles" && test "$mode" != execute; then
 4.45790 ++    func_error "unrecognized option \`-dlopen'"
 4.45791 ++    $ECHO "$help" 1>&2
 4.45792 ++    exit $EXIT_FAILURE
 4.45793 ++  fi
 4.45794 ++
 4.45795 ++  # Change the help message to a mode-specific one.
 4.45796 ++  generic_help="$help"
 4.45797 ++  help="Try \`$progname --help --mode=$mode' for more information."
 4.45798 ++}
 4.45799 ++
 4.45800 ++
 4.45801 ++# func_lalib_p file
 4.45802 ++# True iff FILE is a libtool `.la' library or `.lo' object file.
 4.45803 ++# This function is only a basic sanity check; it will hardly flush out
 4.45804 ++# determined imposters.
 4.45805 ++func_lalib_p ()
 4.45806 ++{
 4.45807 ++    $SED -e 4q "$1" 2>/dev/null \
 4.45808 ++      | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
 4.45809 ++}
 4.45810 ++
 4.45811 ++# func_lalib_unsafe_p file
 4.45812 ++# True iff FILE is a libtool `.la' library or `.lo' object file.
 4.45813 ++# This function implements the same check as func_lalib_p without
 4.45814 ++# resorting to external programs.  To this end, it redirects stdin and
 4.45815 ++# closes it afterwards, without saving the original file descriptor.
 4.45816 ++# As a safety measure, use it only where a negative result would be
 4.45817 ++# fatal anyway.  Works if `file' does not exist.
 4.45818 ++func_lalib_unsafe_p ()
 4.45819 ++{
 4.45820 ++    lalib_p=no
 4.45821 ++    if test -r "$1" && exec 5<&1 <"$1"; then
 4.45822 ++	for lalib_p_l in 1 2 3 4
 4.45823 ++	do
 4.45824 ++	    read lalib_p_line
 4.45825 ++	    case "$lalib_p_line" in
 4.45826 ++		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
 4.45827 ++	    esac
 4.45828 ++	done
 4.45829 ++	exec 1<&5 5<&-
 4.45830 ++    fi
 4.45831 ++    test "$lalib_p" = yes
 4.45832 ++}
 4.45833 ++
 4.45834 ++# func_ltwrapper_p file
 4.45835 ++# True iff FILE is a libtool wrapper script.
 4.45836 ++# This function is only a basic sanity check; it will hardly flush out
 4.45837 ++# determined imposters.
 4.45838 ++func_ltwrapper_p ()
 4.45839 ++{
 4.45840 ++    func_lalib_p "$1"
 4.45841 ++}
 4.45842 ++
 4.45843 ++
 4.45844 ++# func_execute_cmds commands fail_cmd
 4.45845 ++# Execute tilde-delimited COMMANDS.
 4.45846 ++# If FAIL_CMD is given, eval that upon failure.
 4.45847 ++# FAIL_CMD may read-access the current command in variable CMD!
 4.45848 ++func_execute_cmds ()
 4.45849 ++{
 4.45850 ++    $opt_debug
 4.45851 ++    save_ifs=$IFS; IFS='~'
 4.45852 ++    for cmd in $1; do
 4.45853 ++      IFS=$save_ifs
 4.45854 ++      eval cmd=\"$cmd\"
 4.45855 ++      func_show_eval "$cmd" "${2-:}"
 4.45856 ++    done
 4.45857 ++    IFS=$save_ifs
 4.45858 ++}
 4.45859 ++
 4.45860 ++
 4.45861 ++# func_source file
 4.45862 ++# Source FILE, adding directory component if necessary.
 4.45863 ++# Note that it is not necessary on cygwin/mingw to append a dot to
 4.45864 ++# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
 4.45865 ++# behavior happens only for exec(3), not for open(2)!  Also, sourcing
 4.45866 ++# `FILE.' does not work on cygwin managed mounts.
 4.45867 ++func_source ()
 4.45868 ++{
 4.45869 ++    $opt_debug
 4.45870 ++    case $1 in
 4.45871 ++    */* | *\\*)	. "$1" ;;
 4.45872 ++    *)		. "./$1" ;;
 4.45873 ++    esac
 4.45874 ++}
 4.45875 ++
 4.45876 ++
 4.45877 ++# func_win32_libid arg
 4.45878 ++# return the library type of file 'arg'
 4.45879 ++#
 4.45880 ++# Need a lot of goo to handle *both* DLLs and import libs
 4.45881 ++# Has to be a shell function in order to 'eat' the argument
 4.45882 ++# that is supplied when $file_magic_command is called.
 4.45883 ++func_win32_libid ()
 4.45884 ++{
 4.45885 ++  $opt_debug
 4.45886 ++  win32_libid_type="unknown"
 4.45887 ++  win32_fileres=`file -L $1 2>/dev/null`
 4.45888 ++  case $win32_fileres in
 4.45889 ++  *ar\ archive\ import\ library*) # definitely import
 4.45890 ++    win32_libid_type="x86 archive import"
 4.45891 ++    ;;
 4.45892 ++  *ar\ archive*) # could be an import, or static
 4.45893 ++    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
 4.45894 ++       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
 4.45895 ++      win32_nmres=`eval $NM -f posix -A $1 |
 4.45896 ++	$SED -n -e '
 4.45897 ++	    1,100{
 4.45898 ++		/ I /{
 4.45899 ++		    s,.*,import,
 4.45900 ++		    p
 4.45901 ++		    q
 4.45902 ++		}
 4.45903 ++	    }'`
 4.45904 ++      case $win32_nmres in
 4.45905 ++      import*)  win32_libid_type="x86 archive import";;
 4.45906 ++      *)        win32_libid_type="x86 archive static";;
 4.45907 ++      esac
 4.45908 ++    fi
 4.45909 ++    ;;
 4.45910 ++  *DLL*)
 4.45911 ++    win32_libid_type="x86 DLL"
 4.45912 ++    ;;
 4.45913 ++  *executable*) # but shell scripts are "executable" too...
 4.45914 ++    case $win32_fileres in
 4.45915 ++    *MS\ Windows\ PE\ Intel*)
 4.45916 ++      win32_libid_type="x86 DLL"
 4.45917 ++      ;;
 4.45918 ++    esac
 4.45919 ++    ;;
 4.45920 ++  esac
 4.45921 ++  $ECHO "$win32_libid_type"
 4.45922 ++}
 4.45923 ++
 4.45924 ++
 4.45925 ++
 4.45926 ++# func_infer_tag arg
 4.45927 ++# Infer tagged configuration to use if any are available and
 4.45928 ++# if one wasn't chosen via the "--tag" command line option.
 4.45929 ++# Only attempt this if the compiler in the base compile
 4.45930 ++# command doesn't match the default compiler.
 4.45931 ++# arg is usually of the form 'gcc ...'
 4.45932 ++func_infer_tag ()
 4.45933 ++{
 4.45934 ++    $opt_debug
 4.45935 ++    if test -n "$available_tags" && test -z "$tagname"; then
 4.45936 ++      CC_quoted=
 4.45937 ++      for arg in $CC; do
 4.45938 ++        func_quote_for_eval "$arg"
 4.45939 ++	CC_quoted="$CC_quoted $func_quote_for_eval_result"
 4.45940 ++      done
 4.45941 ++      case $@ in
 4.45942 ++      # Blanks in the command may have been stripped by the calling shell,
 4.45943 ++      # but not from the CC environment variable when configure was run.
 4.45944 ++      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
 4.45945 ++      # Blanks at the start of $base_compile will cause this to fail
 4.45946 ++      # if we don't check for them as well.
 4.45947 ++      *)
 4.45948 ++	for z in $available_tags; do
 4.45949 ++	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
 4.45950 ++	    # Evaluate the configuration.
 4.45951 ++	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
 4.45952 ++	    CC_quoted=
 4.45953 ++	    for arg in $CC; do
 4.45954 ++	      # Double-quote args containing other shell metacharacters.
 4.45955 ++	      func_quote_for_eval "$arg"
 4.45956 ++	      CC_quoted="$CC_quoted $func_quote_for_eval_result"
 4.45957 ++	    done
 4.45958 ++	    case "$@ " in
 4.45959 ++	      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
 4.45960 ++	      # The compiler in the base compile command matches
 4.45961 ++	      # the one in the tagged configuration.
 4.45962 ++	      # Assume this is the tagged configuration we want.
 4.45963 ++	      tagname=$z
 4.45964 ++	      break
 4.45965 ++	      ;;
 4.45966 ++	    esac
 4.45967 ++	  fi
 4.45968 ++	done
 4.45969 ++	# If $tagname still isn't set, then no tagged configuration
 4.45970 ++	# was found and let the user know that the "--tag" command
 4.45971 ++	# line option must be used.
 4.45972 ++	if test -z "$tagname"; then
 4.45973 ++	  func_echo "unable to infer tagged configuration"
 4.45974 ++	  func_fatal_error "specify a tag with \`--tag'"
 4.45975 ++#	else
 4.45976 ++#	  func_verbose "using $tagname tagged configuration"
 4.45977 ++	fi
 4.45978 ++	;;
 4.45979 ++      esac
 4.45980 ++    fi
 4.45981 ++}
 4.45982 ++
 4.45983 ++
 4.45984 ++
 4.45985 ++# func_generate_dlsyms outputname originator pic_p
 4.45986 ++# Extract symbols from dlprefiles and create ${outputname}S.o with
 4.45987 ++# a dlpreopen symbol table.
 4.45988 ++func_generate_dlsyms ()
 4.45989 ++{
 4.45990 ++    $opt_debug
 4.45991 ++    my_outputname="$1"
 4.45992 ++    my_originator="$2"
 4.45993 ++    my_pic_p="${3-no}"
 4.45994 ++    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
 4.45995 ++    my_dlsyms=
 4.45996 ++
 4.45997 ++    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 4.45998 ++      if test -n "$NM" && test -n "$global_symbol_pipe"; then
 4.45999 ++	my_dlsyms="${my_outputname}S.c"
 4.46000 ++      else
 4.46001 ++	func_error "not configured to extract global symbols from dlpreopened files"
 4.46002 ++      fi
 4.46003 ++    fi
 4.46004 ++
 4.46005 ++    if test -n "$my_dlsyms"; then
 4.46006 ++      case $my_dlsyms in
 4.46007 ++      "") ;;
 4.46008 ++      *.c)
 4.46009 ++	# Discover the nlist of each of the dlfiles.
 4.46010 ++	nlist="$output_objdir/${my_outputname}.nm"
 4.46011 ++
 4.46012 ++	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
 4.46013 ++
 4.46014 ++	# Parse the name list into a source file.
 4.46015 ++	func_echo "creating $output_objdir/$my_dlsyms"
 4.46016 ++
 4.46017 ++	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
 4.46018 ++/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
 4.46019 ++/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
 4.46020 ++
 4.46021 ++#ifdef __cplusplus
 4.46022 ++extern \"C\" {
 4.46023 ++#endif
 4.46024 ++
 4.46025 ++/* External symbol declarations for the compiler. */\
 4.46026 ++"
 4.46027 ++
 4.46028 ++	if test "$dlself" = yes; then
 4.46029 ++	  func_echo "generating symbol list for \`$output'"
 4.46030 ++
 4.46031 ++	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
 4.46032 ++
 4.46033 ++	  # Add our own program objects to the symbol list.
 4.46034 ++	  progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 4.46035 ++	  for progfile in $progfiles; do
 4.46036 ++	    func_echo "extracting global C symbols from \`$progfile'"
 4.46037 ++	    $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
 4.46038 ++	  done
 4.46039 ++
 4.46040 ++	  if test -n "$exclude_expsyms"; then
 4.46041 ++	    $opt_dry_run || {
 4.46042 ++	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
 4.46043 ++	      eval '$MV "$nlist"T "$nlist"'
 4.46044 ++	    }
 4.46045 ++	  fi
 4.46046 ++
 4.46047 ++	  if test -n "$export_symbols_regex"; then
 4.46048 ++	    $opt_dry_run || {
 4.46049 ++	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
 4.46050 ++	      eval '$MV "$nlist"T "$nlist"'
 4.46051 ++	    }
 4.46052 ++	  fi
 4.46053 ++
 4.46054 ++	  # Prepare the list of exported symbols
 4.46055 ++	  if test -z "$export_symbols"; then
 4.46056 ++	    export_symbols="$output_objdir/$outputname.exp"
 4.46057 ++	    $opt_dry_run || {
 4.46058 ++	      $RM $export_symbols
 4.46059 ++	      eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
 4.46060 ++	      case $host in
 4.46061 ++	      *cygwin* | *mingw* )
 4.46062 ++                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
 4.46063 ++                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
 4.46064 ++	        ;;
 4.46065 ++	      esac
 4.46066 ++	    }
 4.46067 ++	  else
 4.46068 ++	    $opt_dry_run || {
 4.46069 ++	      eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
 4.46070 ++	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
 4.46071 ++	      eval '$MV "$nlist"T "$nlist"'
 4.46072 ++	      case $host in
 4.46073 ++	        *cygwin | *mingw* )
 4.46074 ++	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
 4.46075 ++	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
 4.46076 ++	          ;;
 4.46077 ++	      esac
 4.46078 ++	    }
 4.46079 ++	  fi
 4.46080 ++	fi
 4.46081 ++
 4.46082 ++	for dlprefile in $dlprefiles; do
 4.46083 ++	  func_echo "extracting global C symbols from \`$dlprefile'"
 4.46084 ++	  func_basename "$dlprefile"
 4.46085 ++	  name="$func_basename_result"
 4.46086 ++	  $opt_dry_run || {
 4.46087 ++	    eval '$ECHO ": $name " >> "$nlist"'
 4.46088 ++	    eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
 4.46089 ++	  }
 4.46090 ++	done
 4.46091 ++
 4.46092 ++	$opt_dry_run || {
 4.46093 ++	  # Make sure we have at least an empty file.
 4.46094 ++	  test -f "$nlist" || : > "$nlist"
 4.46095 ++
 4.46096 ++	  if test -n "$exclude_expsyms"; then
 4.46097 ++	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
 4.46098 ++	    $MV "$nlist"T "$nlist"
 4.46099 ++	  fi
 4.46100 ++
 4.46101 ++	  # Try sorting and uniquifying the output.
 4.46102 ++	  if $GREP -v "^: " < "$nlist" |
 4.46103 ++	      if sort -k 3 </dev/null >/dev/null 2>&1; then
 4.46104 ++		sort -k 3
 4.46105 ++	      else
 4.46106 ++		sort +2
 4.46107 ++	      fi |
 4.46108 ++	      uniq > "$nlist"S; then
 4.46109 ++	    :
 4.46110 ++	  else
 4.46111 ++	    $GREP -v "^: " < "$nlist" > "$nlist"S
 4.46112 ++	  fi
 4.46113 ++
 4.46114 ++	  if test -f "$nlist"S; then
 4.46115 ++	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
 4.46116 ++	  else
 4.46117 ++	    $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
 4.46118 ++	  fi
 4.46119 ++
 4.46120 ++	  $ECHO >> "$output_objdir/$my_dlsyms" "\
 4.46121 ++
 4.46122 ++/* The mapping between symbol names and symbols.  */
 4.46123 ++typedef struct {
 4.46124 ++  const char *name;
 4.46125 ++  void *address;
 4.46126 ++} lt_dlsymlist;
 4.46127 ++"
 4.46128 ++	  case $host in
 4.46129 ++	  *cygwin* | *mingw* )
 4.46130 ++	    $ECHO >> "$output_objdir/$my_dlsyms" "\
 4.46131 ++/* DATA imports from DLLs on WIN32 con't be const, because
 4.46132 ++   runtime relocations are performed -- see ld's documentation
 4.46133 ++   on pseudo-relocs.  */"
 4.46134 ++	    lt_dlsym_const= ;;
 4.46135 ++	  *osf5*)
 4.46136 ++	    echo >> "$output_objdir/$my_dlsyms" "\
 4.46137 ++/* This system does not cope well with relocations in const data */"
 4.46138 ++	    lt_dlsym_const= ;;
 4.46139 ++	  *)
 4.46140 ++	    lt_dlsym_const=const ;;
 4.46141 ++	  esac
 4.46142 ++
 4.46143 ++	  $ECHO >> "$output_objdir/$my_dlsyms" "\
 4.46144 ++extern $lt_dlsym_const lt_dlsymlist
 4.46145 ++lt_${my_prefix}_LTX_preloaded_symbols[];
 4.46146 ++$lt_dlsym_const lt_dlsymlist
 4.46147 ++lt_${my_prefix}_LTX_preloaded_symbols[] =
 4.46148 ++{\
 4.46149 ++  { \"$my_originator\", (void *) 0 },"
 4.46150 ++
 4.46151 ++	  eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
 4.46152 ++
 4.46153 ++	  $ECHO >> "$output_objdir/$my_dlsyms" "\
 4.46154 ++  {0, (void *) 0}
 4.46155 ++};
 4.46156 ++
 4.46157 ++/* This works around a problem in FreeBSD linker */
 4.46158 ++#ifdef FREEBSD_WORKAROUND
 4.46159 ++static const void *lt_preloaded_setup() {
 4.46160 ++  return lt_${my_prefix}_LTX_preloaded_symbols;
 4.46161 ++}
 4.46162 ++#endif
 4.46163 ++
 4.46164 ++#ifdef __cplusplus
 4.46165 ++}
 4.46166 ++#endif\
 4.46167 ++"
 4.46168 ++	} # !$opt_dry_run
 4.46169 ++
 4.46170 ++  	pic_flag_for_symtable=
 4.46171 ++	case "$compile_command " in
 4.46172 ++	*" -static "*) ;;
 4.46173 ++	*)
 4.46174 ++	  case $host in
 4.46175 ++	  # compiling the symbol table file with pic_flag works around
 4.46176 ++	  # a FreeBSD bug that causes programs to crash when -lm is
 4.46177 ++	  # linked before any other PIC object.  But we must not use
 4.46178 ++	  # pic_flag when linking with -static.  The problem exists in
 4.46179 ++	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
 4.46180 ++	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
 4.46181 ++	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
 4.46182 ++	  *-*-hpux*)
 4.46183 ++	    pic_flag_for_symtable=" $pic_flag"  ;;
 4.46184 ++	  *)
 4.46185 ++	    if test "X$my_pic_p" != Xno; then
 4.46186 ++	      pic_flag_for_symtable=" $pic_flag"
 4.46187 ++	    fi
 4.46188 ++	    ;;
 4.46189 ++	  esac
 4.46190 ++	  ;;
 4.46191 ++	esac
 4.46192 ++	symtab_cflags=
 4.46193 ++	for arg in $LTCFLAGS; do
 4.46194 ++	  case $arg in
 4.46195 ++	  -pie | -fpie | -fPIE) ;;
 4.46196 ++	  *) symtab_cflags="$symtab_cflags $arg" ;;
 4.46197 ++	  esac
 4.46198 ++	done
 4.46199 ++
 4.46200 ++	# Now compile the dynamic symbol file.
 4.46201 ++	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
 4.46202 ++
 4.46203 ++	# Clean up the generated files.
 4.46204 ++	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
 4.46205 ++
 4.46206 ++	# Transform the symbol file into the correct name.
 4.46207 ++	symfileobj="$output_objdir/${my_outputname}S.$objext"
 4.46208 ++	case $host in
 4.46209 ++	*cygwin* | *mingw* )
 4.46210 ++	  if test -f "$output_objdir/$my_outputname.def"; then
 4.46211 ++	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
 4.46212 ++	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
 4.46213 ++	  else
 4.46214 ++	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
 4.46215 ++	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
 4.46216 ++	  fi
 4.46217 ++	  ;;
 4.46218 ++	*)
 4.46219 ++	  compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
 4.46220 ++	  finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
 4.46221 ++	  ;;
 4.46222 ++	esac
 4.46223 ++	;;
 4.46224 ++      *)
 4.46225 ++	func_fatal_error "unknown suffix for \`$my_dlsyms'"
 4.46226 ++	;;
 4.46227 ++      esac
 4.46228 ++    else
 4.46229 ++      # We keep going just in case the user didn't refer to
 4.46230 ++      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
 4.46231 ++      # really was required.
 4.46232 ++
 4.46233 ++      # Nullify the symbol file.
 4.46234 ++      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
 4.46235 ++      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
 4.46236 ++    fi
 4.46237 ++}
 4.46238 ++
 4.46239 ++# func_extract_an_archive dir oldlib
 4.46240 ++func_extract_an_archive ()
 4.46241 ++{
 4.46242 ++    $opt_debug
 4.46243 ++    f_ex_an_ar_dir="$1"; shift
 4.46244 ++    f_ex_an_ar_oldlib="$1"
 4.46245 ++    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" 'exit $?'
 4.46246 ++    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
 4.46247 ++     :
 4.46248 ++    else
 4.46249 ++      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
 4.46250 ++    fi
 4.46251 ++}
 4.46252 ++
 4.46253 ++
 4.46254 ++# func_extract_archives gentop oldlib ...
 4.46255 ++func_extract_archives ()
 4.46256 ++{
 4.46257 ++    $opt_debug
 4.46258 ++    my_gentop="$1"; shift
 4.46259 ++    my_oldlibs=${1+"$@"}
 4.46260 ++    my_oldobjs=""
 4.46261 ++    my_xlib=""
 4.46262 ++    my_xabs=""
 4.46263 ++    my_xdir=""
 4.46264 ++
 4.46265 ++    for my_xlib in $my_oldlibs; do
 4.46266 ++      # Extract the objects.
 4.46267 ++      case $my_xlib in
 4.46268 ++	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
 4.46269 ++	*) my_xabs=`pwd`"/$my_xlib" ;;
 4.46270 ++      esac
 4.46271 ++      func_basename "$my_xlib"
 4.46272 ++      my_xlib="$func_basename_result"
 4.46273 ++      my_xlib_u=$my_xlib
 4.46274 ++      while :; do
 4.46275 ++        case " $extracted_archives " in
 4.46276 ++	*" $my_xlib_u "*)
 4.46277 ++	  extracted_serial=`expr $extracted_serial + 1`
 4.46278 ++	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
 4.46279 ++	*) break ;;
 4.46280 ++	esac
 4.46281 ++      done
 4.46282 ++      extracted_archives="$extracted_archives $my_xlib_u"
 4.46283 ++      my_xdir="$my_gentop/$my_xlib_u"
 4.46284 ++
 4.46285 ++      func_mkdir_p "$my_xdir"
 4.46286 ++
 4.46287 ++      case $host in
 4.46288 ++      *-darwin*)
 4.46289 ++	func_echo "Extracting $my_xabs"
 4.46290 ++	# Do not bother doing anything if just a dry run
 4.46291 ++	$opt_dry_run || {
 4.46292 ++	  darwin_orig_dir=`pwd`
 4.46293 ++	  cd $my_xdir || exit $?
 4.46294 ++	  darwin_archive=$my_xabs
 4.46295 ++	  darwin_curdir=`pwd`
 4.46296 ++	  darwin_base_archive=`basename $darwin_archive`
 4.46297 ++	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
 4.46298 ++	  if test -n "$darwin_arches"; then
 4.46299 ++	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
 4.46300 ++	    darwin_arch=
 4.46301 ++	    func_echo "$darwin_base_archive has multiple architectures $darwin_arches"
 4.46302 ++	    for darwin_arch in  $darwin_arches ; do
 4.46303 ++	      func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
 4.46304 ++	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
 4.46305 ++	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
 4.46306 ++	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
 4.46307 ++	      cd "$darwin_curdir"
 4.46308 ++	      $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
 4.46309 ++	    done # $darwin_arches
 4.46310 ++            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
 4.46311 ++	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
 4.46312 ++	    darwin_file=
 4.46313 ++	    darwin_files=
 4.46314 ++	    for darwin_file in $darwin_filelist; do
 4.46315 ++	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
 4.46316 ++	      lipo -create -output "$darwin_file" $darwin_files
 4.46317 ++	    done # $darwin_filelist
 4.46318 ++	    $RM -rf unfat-$$
 4.46319 ++	    cd "$darwin_orig_dir"
 4.46320 ++	  else
 4.46321 ++	    cd $darwin_orig_dir
 4.46322 ++	    func_extract_an_archive "$my_xdir" "$my_xabs"
 4.46323 ++	  fi # $darwin_arches
 4.46324 ++	} # !$opt_dry_run
 4.46325 ++	;;
 4.46326 ++      *)
 4.46327 ++        func_extract_an_archive "$my_xdir" "$my_xabs"
 4.46328 ++	;;
 4.46329 ++      esac
 4.46330 ++      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
 4.46331 ++    done
 4.46332 ++
 4.46333 ++    func_extract_archives_result="$my_oldobjs"
 4.46334 ++}
 4.46335 ++
 4.46336 ++
 4.46337 ++
 4.46338 ++# func_write_libtool_object output_name pic_name nonpic_name
 4.46339 ++# Create a libtool object file (analogous to a ".la" file),
 4.46340 ++# but don't create it if we're doing a dry run.
 4.46341 ++func_write_libtool_object ()
 4.46342 ++{
 4.46343 ++    write_libobj=${1}
 4.46344 ++    if test "$build_libtool_libs" = yes; then
 4.46345 ++      write_lobj=\'${2}\'
 4.46346 ++    else
 4.46347 ++      write_lobj=none
 4.46348 ++    fi
 4.46349 ++
 4.46350 ++    if test "$build_old_libs" = yes; then
 4.46351 ++      write_oldobj=\'${3}\'
 4.46352 ++    else
 4.46353 ++      write_oldobj=none
 4.46354 ++    fi
 4.46355 ++
 4.46356 ++    $opt_dry_run || {
 4.46357 ++      cat >${write_libobj}T <<EOF
 4.46358 ++# $write_libobj - a libtool object file
 4.46359 ++# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 4.46360 ++#
 4.46361 ++# Please DO NOT delete this file!
 4.46362 ++# It is necessary for linking the library.
 4.46363 ++
 4.46364 ++# Name of the PIC object.
 4.46365 ++pic_object=$write_lobj
 4.46366 ++
 4.46367 ++# Name of the non-PIC object
 4.46368 ++non_pic_object=$write_oldobj
 4.46369 ++
 4.46370 ++EOF
 4.46371 ++      mv -f "${write_libobj}T" "${write_libobj}"
 4.46372 ++    }
 4.46373 ++}
 4.46374 ++
 4.46375 ++# func_mode_compile arg...
 4.46376 ++func_mode_compile ()
 4.46377 ++{
 4.46378 ++    $opt_debug
 4.46379 ++    # Get the compilation command and the source file.
 4.46380 ++    base_compile=
 4.46381 ++    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
 4.46382 ++    suppress_opt=yes
 4.46383 ++    suppress_output=
 4.46384 ++    arg_mode=normal
 4.46385 ++    libobj=
 4.46386 ++    later=
 4.46387 ++    pie_flag=
 4.46388 ++
 4.46389 ++    for arg
 4.46390 ++    do
 4.46391 ++      case $arg_mode in
 4.46392 ++      arg  )
 4.46393 ++	# do not "continue".  Instead, add this to base_compile
 4.46394 ++	lastarg="$arg"
 4.46395 ++	arg_mode=normal
 4.46396 ++	;;
 4.46397 ++
 4.46398 ++      target )
 4.46399 ++	libobj="$arg"
 4.46400 ++	arg_mode=normal
 4.46401 ++	continue
 4.46402 ++	;;
 4.46403 ++
 4.46404 ++      normal )
 4.46405 ++	# Accept any command-line options.
 4.46406 ++	case $arg in
 4.46407 ++	-o)
 4.46408 ++	  test -n "$libobj" && \
 4.46409 ++	    func_fatal_error "you cannot specify \`-o' more than once"
 4.46410 ++	  arg_mode=target
 4.46411 ++	  continue
 4.46412 ++	  ;;
 4.46413 ++
 4.46414 ++	-pie | -fpie | -fPIE)
 4.46415 ++          pie_flag="$pie_flag $arg"
 4.46416 ++	  continue
 4.46417 ++	  ;;
 4.46418 ++
 4.46419 ++	-shared | -static | -prefer-pic | -prefer-non-pic)
 4.46420 ++	  later="$later $arg"
 4.46421 ++	  continue
 4.46422 ++	  ;;
 4.46423 ++
 4.46424 ++	-no-suppress)
 4.46425 ++	  suppress_opt=no
 4.46426 ++	  continue
 4.46427 ++	  ;;
 4.46428 ++
 4.46429 ++	-Xcompiler)
 4.46430 ++	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
 4.46431 ++	  continue      #  The current "srcfile" will either be retained or
 4.46432 ++	  ;;            #  replaced later.  I would guess that would be a bug.
 4.46433 ++
 4.46434 ++	-Wc,*)
 4.46435 ++	  func_stripname '-Wc,' '' "$arg"
 4.46436 ++	  args=$func_stripname_result
 4.46437 ++	  lastarg=
 4.46438 ++	  save_ifs="$IFS"; IFS=','
 4.46439 ++	  for arg in $args; do
 4.46440 ++	    IFS="$save_ifs"
 4.46441 ++	    func_quote_for_eval "$arg"
 4.46442 ++	    lastarg="$lastarg $func_quote_for_eval_result"
 4.46443 ++	  done
 4.46444 ++	  IFS="$save_ifs"
 4.46445 ++	  func_stripname ' ' '' "$lastarg"
 4.46446 ++	  lastarg=$func_stripname_result
 4.46447 ++
 4.46448 ++	  # Add the arguments to base_compile.
 4.46449 ++	  base_compile="$base_compile $lastarg"
 4.46450 ++	  continue
 4.46451 ++	  ;;
 4.46452 ++
 4.46453 ++	*)
 4.46454 ++	  # Accept the current argument as the source file.
 4.46455 ++	  # The previous "srcfile" becomes the current argument.
 4.46456 ++	  #
 4.46457 ++	  lastarg="$srcfile"
 4.46458 ++	  srcfile="$arg"
 4.46459 ++	  ;;
 4.46460 ++	esac  #  case $arg
 4.46461 ++	;;
 4.46462 ++      esac    #  case $arg_mode
 4.46463 ++
 4.46464 ++      # Aesthetically quote the previous argument.
 4.46465 ++      func_quote_for_eval "$lastarg"
 4.46466 ++      base_compile="$base_compile $func_quote_for_eval_result"
 4.46467 ++    done # for arg
 4.46468 ++
 4.46469 ++    case $arg_mode in
 4.46470 ++    arg)
 4.46471 ++      func_fatal_error "you must specify an argument for -Xcompile"
 4.46472 ++      ;;
 4.46473 ++    target)
 4.46474 ++      func_fatal_error "you must specify a target with \`-o'"
 4.46475 ++      ;;
 4.46476 ++    *)
 4.46477 ++      # Get the name of the library object.
 4.46478 ++      test -z "$libobj" && {
 4.46479 ++	func_basename "$srcfile"
 4.46480 ++	libobj="$func_basename_result"
 4.46481 ++      }
 4.46482 ++      ;;
 4.46483 ++    esac
 4.46484 ++
 4.46485 ++    # Recognize several different file suffixes.
 4.46486 ++    # If the user specifies -o file.o, it is replaced with file.lo
 4.46487 ++    xform='[cCFSifmso]'
 4.46488 ++    case $libobj in
 4.46489 ++    *.ada) xform=ada ;;
 4.46490 ++    *.adb) xform=adb ;;
 4.46491 ++    *.ads) xform=ads ;;
 4.46492 ++    *.asm) xform=asm ;;
 4.46493 ++    *.c++) xform=c++ ;;
 4.46494 ++    *.cc) xform=cc ;;
 4.46495 ++    *.ii) xform=ii ;;
 4.46496 ++    *.class) xform=class ;;
 4.46497 ++    *.cpp) xform=cpp ;;
 4.46498 ++    *.cxx) xform=cxx ;;
 4.46499 ++    *.[fF][09]?) xform='[fF][09].' ;;
 4.46500 ++    *.for) xform=for ;;
 4.46501 ++    *.java) xform=java ;;
 4.46502 ++    *.obj) xform=obj ;;
 4.46503 ++    esac
 4.46504 ++
 4.46505 ++    libobj=`$ECHO "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
 4.46506 ++
 4.46507 ++    case $libobj in
 4.46508 ++    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
 4.46509 ++    *)
 4.46510 ++      func_fatal_error "cannot determine name of library object from \`$libobj'"
 4.46511 ++      ;;
 4.46512 ++    esac
 4.46513 ++
 4.46514 ++    func_infer_tag $base_compile
 4.46515 ++
 4.46516 ++    for arg in $later; do
 4.46517 ++      case $arg in
 4.46518 ++      -shared)
 4.46519 ++	test "$build_libtool_libs" != yes && \
 4.46520 ++	  func_fatal_configuration "can not build a shared library"
 4.46521 ++	build_old_libs=no
 4.46522 ++	continue
 4.46523 ++	;;
 4.46524 ++
 4.46525 ++      -static)
 4.46526 ++	build_libtool_libs=no
 4.46527 ++	build_old_libs=yes
 4.46528 ++	continue
 4.46529 ++	;;
 4.46530 ++
 4.46531 ++      -prefer-pic)
 4.46532 ++	pic_mode=yes
 4.46533 ++	continue
 4.46534 ++	;;
 4.46535 ++
 4.46536 ++      -prefer-non-pic)
 4.46537 ++	pic_mode=no
 4.46538 ++	continue
 4.46539 ++	;;
 4.46540 ++      esac
 4.46541 ++    done
 4.46542 ++
 4.46543 ++    func_quote_for_eval "$libobj"
 4.46544 ++    test "X$libobj" != "X$func_quote_for_eval_result" \
 4.46545 ++      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
 4.46546 ++      && func_warning "libobj name \`$libobj' may not contain shell special characters."
 4.46547 ++    func_basename "$obj"
 4.46548 ++    objname="$func_basename_result"
 4.46549 ++    func_dirname "$obj" "/" ""
 4.46550 ++    xdir="$func_dirname_result"
 4.46551 ++    lobj=${xdir}$objdir/$objname
 4.46552 ++
 4.46553 ++    test -z "$base_compile" && \
 4.46554 ++      func_fatal_help "you must specify a compilation command"
 4.46555 ++
 4.46556 ++    # Delete any leftover library objects.
 4.46557 ++    if test "$build_old_libs" = yes; then
 4.46558 ++      removelist="$obj $lobj $libobj ${libobj}T"
 4.46559 ++    else
 4.46560 ++      removelist="$lobj $libobj ${libobj}T"
 4.46561 ++    fi
 4.46562 ++
 4.46563 ++    $opt_dry_run || $RM $removelist
 4.46564 ++    trap "$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE" 1 2 15
 4.46565 ++
 4.46566 ++    # On Cygwin there's no "real" PIC flag so we must build both object types
 4.46567 ++    case $host_os in
 4.46568 ++    cygwin* | mingw* | pw32* | os2*)
 4.46569 ++      pic_mode=default
 4.46570 ++      ;;
 4.46571 ++    esac
 4.46572 ++    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
 4.46573 ++      # non-PIC code in shared libraries is not supported
 4.46574 ++      pic_mode=default
 4.46575 ++    fi
 4.46576 ++
 4.46577 ++    # Calculate the filename of the output object if compiler does
 4.46578 ++    # not support -o with -c
 4.46579 ++    if test "$compiler_c_o" = no; then
 4.46580 ++      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
 4.46581 ++      lockfile="$output_obj.lock"
 4.46582 ++      removelist="$removelist $output_obj $lockfile"
 4.46583 ++      trap "$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE" 1 2 15
 4.46584 ++    else
 4.46585 ++      output_obj=
 4.46586 ++      need_locks=no
 4.46587 ++      lockfile=
 4.46588 ++    fi
 4.46589 ++
 4.46590 ++    # Lock this critical section if it is needed
 4.46591 ++    # We use this script file to make the link, it avoids creating a new file
 4.46592 ++    if test "$need_locks" = yes; then
 4.46593 ++      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
 4.46594 ++	func_echo "Waiting for $lockfile to be removed"
 4.46595 ++	sleep 2
 4.46596 ++      done
 4.46597 ++    elif test "$need_locks" = warn; then
 4.46598 ++      if test -f "$lockfile"; then
 4.46599 ++	$ECHO "\
 4.46600 ++*** ERROR, $lockfile exists and contains:
 4.46601 ++`cat $lockfile 2>/dev/null`
 4.46602 ++
 4.46603 ++This indicates that another process is trying to use the same
 4.46604 ++temporary object file, and libtool could not work around it because
 4.46605 ++your compiler does not support \`-c' and \`-o' together.  If you
 4.46606 ++repeat this compilation, it may succeed, by chance, but you had better
 4.46607 ++avoid parallel builds (make -j) in this platform, or get a better
 4.46608 ++compiler."
 4.46609 ++
 4.46610 ++	$opt_dry_run || $RM $removelist
 4.46611 ++	exit $EXIT_FAILURE
 4.46612 ++      fi
 4.46613 ++      $ECHO "$srcfile" > "$lockfile"
 4.46614 ++    fi
 4.46615 ++
 4.46616 ++    if test -n "$fix_srcfile_path"; then
 4.46617 ++      eval srcfile=\"$fix_srcfile_path\"
 4.46618 ++    fi
 4.46619 ++    func_quote_for_eval "$srcfile"
 4.46620 ++    qsrcfile=$func_quote_for_eval_result
 4.46621 ++
 4.46622 ++    $opt_dry_run || $RM "$libobj" "${libobj}T"
 4.46623 ++
 4.46624 ++    # Only build a PIC object if we are building libtool libraries.
 4.46625 ++    if test "$build_libtool_libs" = yes; then
 4.46626 ++      # Without this assignment, base_compile gets emptied.
 4.46627 ++      fbsd_hideous_sh_bug=$base_compile
 4.46628 ++
 4.46629 ++      if test "$pic_mode" != no; then
 4.46630 ++	command="$base_compile $qsrcfile $pic_flag"
 4.46631 ++      else
 4.46632 ++	# Don't build PIC code
 4.46633 ++	command="$base_compile $qsrcfile"
 4.46634 ++      fi
 4.46635 ++
 4.46636 ++      func_mkdir_p "$xdir$objdir"
 4.46637 ++
 4.46638 ++      if test -z "$output_obj"; then
 4.46639 ++	# Place PIC objects in $objdir
 4.46640 ++	command="$command -o $lobj"
 4.46641 ++      fi
 4.46642 ++
 4.46643 ++      $opt_dry_run || $RM "$lobj" "$output_obj"
 4.46644 ++
 4.46645 ++      func_show_eval "$command"	\
 4.46646 ++          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
 4.46647 ++
 4.46648 ++      if test "$need_locks" = warn &&
 4.46649 ++	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
 4.46650 ++	$ECHO "\
 4.46651 ++*** ERROR, $lockfile contains:
 4.46652 ++`cat $lockfile 2>/dev/null`
 4.46653 ++
 4.46654 ++but it should contain:
 4.46655 ++$srcfile
 4.46656 ++
 4.46657 ++This indicates that another process is trying to use the same
 4.46658 ++temporary object file, and libtool could not work around it because
 4.46659 ++your compiler does not support \`-c' and \`-o' together.  If you
 4.46660 ++repeat this compilation, it may succeed, by chance, but you had better
 4.46661 ++avoid parallel builds (make -j) in this platform, or get a better
 4.46662 ++compiler."
 4.46663 ++
 4.46664 ++	$opt_dry_run || $RM $removelist
 4.46665 ++	exit $EXIT_FAILURE
 4.46666 ++      fi
 4.46667 ++
 4.46668 ++      # Just move the object if needed, then go on to compile the next one
 4.46669 ++      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
 4.46670 ++	func_show_eval '$MV "$output_obj" "$lobj"' \
 4.46671 ++	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
 4.46672 ++      fi
 4.46673 ++
 4.46674 ++      # Allow error messages only from the first compilation.
 4.46675 ++      if test "$suppress_opt" = yes; then
 4.46676 ++	suppress_output=' >/dev/null 2>&1'
 4.46677 ++      fi
 4.46678 ++    fi
 4.46679 ++
 4.46680 ++    # Only build a position-dependent object if we build old libraries.
 4.46681 ++    if test "$build_old_libs" = yes; then
 4.46682 ++      if test "$pic_mode" != yes; then
 4.46683 ++	# Don't build PIC code
 4.46684 ++	command="$base_compile $qsrcfile$pie_flag"
 4.46685 ++      else
 4.46686 ++	command="$base_compile $qsrcfile $pic_flag"
 4.46687 ++      fi
 4.46688 ++      if test "$compiler_c_o" = yes; then
 4.46689 ++	command="$command -o $obj"
 4.46690 ++      fi
 4.46691 ++
 4.46692 ++      # Suppress compiler output if we already did a PIC compilation.
 4.46693 ++      command="$command$suppress_output"
 4.46694 ++      $opt_dry_run || $RM "$obj" "$output_obj"
 4.46695 ++      func_show_eval "$command" \
 4.46696 ++        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
 4.46697 ++
 4.46698 ++      if test "$need_locks" = warn &&
 4.46699 ++	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
 4.46700 ++	$ECHO "\
 4.46701 ++*** ERROR, $lockfile contains:
 4.46702 ++`cat $lockfile 2>/dev/null`
 4.46703 ++
 4.46704 ++but it should contain:
 4.46705 ++$srcfile
 4.46706 ++
 4.46707 ++This indicates that another process is trying to use the same
 4.46708 ++temporary object file, and libtool could not work around it because
 4.46709 ++your compiler does not support \`-c' and \`-o' together.  If you
 4.46710 ++repeat this compilation, it may succeed, by chance, but you had better
 4.46711 ++avoid parallel builds (make -j) in this platform, or get a better
 4.46712 ++compiler."
 4.46713 ++
 4.46714 ++	$opt_dry_run || $RM $removelist
 4.46715 ++	exit $EXIT_FAILURE
 4.46716 ++      fi
 4.46717 ++
 4.46718 ++      # Just move the object if needed
 4.46719 ++      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
 4.46720 ++	func_show_eval '$MV "$output_obj" "$obj"' \
 4.46721 ++	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
 4.46722 ++      fi
 4.46723 ++    fi
 4.46724 ++
 4.46725 ++    $opt_dry_run || {
 4.46726 ++      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
 4.46727 ++
 4.46728 ++      # Unlock the critical section if it was locked
 4.46729 ++      if test "$need_locks" != no; then
 4.46730 ++        $RM "$lockfile"
 4.46731 ++      fi
 4.46732 ++    }
 4.46733 ++
 4.46734 ++    exit $EXIT_SUCCESS
 4.46735 ++}
 4.46736 ++
 4.46737 ++test "$mode" = compile && func_mode_compile ${1+"$@"}
 4.46738 ++
 4.46739 ++
 4.46740 ++# func_mode_execute arg...
 4.46741 ++func_mode_execute ()
 4.46742 ++{
 4.46743 ++    $opt_debug
 4.46744 ++    # The first argument is the command name.
 4.46745 ++    cmd="$nonopt"
 4.46746 ++    test -z "$cmd" && \
 4.46747 ++      func_fatal_help "you must specify a COMMAND"
 4.46748 ++
 4.46749 ++    # Handle -dlopen flags immediately.
 4.46750 ++    for file in $execute_dlfiles; do
 4.46751 ++      test -f "$file" \
 4.46752 ++	|| func_fatal_help "\`$file' is not a file"
 4.46753 ++
 4.46754 ++      dir=
 4.46755 ++      case $file in
 4.46756 ++      *.la)
 4.46757 ++	# Check to see that this really is a libtool archive.
 4.46758 ++	func_lalib_unsafe_p "$file" \
 4.46759 ++	  || func_fatal_help "\`$lib' is not a valid libtool archive"
 4.46760 ++
 4.46761 ++	# Read the libtool library.
 4.46762 ++	dlname=
 4.46763 ++	library_names=
 4.46764 ++	func_source "$file"
 4.46765 ++
 4.46766 ++	# Skip this library if it cannot be dlopened.
 4.46767 ++	if test -z "$dlname"; then
 4.46768 ++	  # Warn if it was a shared library.
 4.46769 ++	  test -n "$library_names" && \
 4.46770 ++	    func_warning "\`$file' was not linked with \`-export-dynamic'"
 4.46771 ++	  continue
 4.46772 ++	fi
 4.46773 ++
 4.46774 ++	func_dirname "$file" "" "."
 4.46775 ++	dir="$func_dirname_result"
 4.46776 ++
 4.46777 ++	if test -f "$dir/$objdir/$dlname"; then
 4.46778 ++	  dir="$dir/$objdir"
 4.46779 ++	else
 4.46780 ++	  if test ! -f "$dir/$dlname"; then
 4.46781 ++	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
 4.46782 ++	  fi
 4.46783 ++	fi
 4.46784 ++	;;
 4.46785 ++
 4.46786 ++      *.lo)
 4.46787 ++	# Just add the directory containing the .lo file.
 4.46788 ++	func_dirname "$file" "" "."
 4.46789 ++	dir="$func_dirname_result"
 4.46790 ++	;;
 4.46791 ++
 4.46792 ++      *)
 4.46793 ++	func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
 4.46794 ++	continue
 4.46795 ++	;;
 4.46796 ++      esac
 4.46797 ++
 4.46798 ++      # Get the absolute pathname.
 4.46799 ++      absdir=`cd "$dir" && pwd`
 4.46800 ++      test -n "$absdir" && dir="$absdir"
 4.46801 ++
 4.46802 ++      # Now add the directory to shlibpath_var.
 4.46803 ++      if eval "test -z \"\$$shlibpath_var\""; then
 4.46804 ++	eval "$shlibpath_var=\"\$dir\""
 4.46805 ++      else
 4.46806 ++	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
 4.46807 ++      fi
 4.46808 ++    done
 4.46809 ++
 4.46810 ++    # This variable tells wrapper scripts just to set shlibpath_var
 4.46811 ++    # rather than running their programs.
 4.46812 ++    libtool_execute_magic="$magic"
 4.46813 ++
 4.46814 ++    # Check if any of the arguments is a wrapper script.
 4.46815 ++    args=
 4.46816 ++    for file
 4.46817 ++    do
 4.46818 ++      case $file in
 4.46819 ++      -*) ;;
 4.46820 ++      *)
 4.46821 ++	# Do a test to see if this is really a libtool program.
 4.46822 ++	if func_ltwrapper_p "$file"; then
 4.46823 ++	  func_source "$file"
 4.46824 ++
 4.46825 ++	  # Transform arg to wrapped name.
 4.46826 ++	  file="$progdir/$program"
 4.46827 ++	fi
 4.46828 ++	;;
 4.46829 ++      esac
 4.46830 ++      # Quote arguments (to preserve shell metacharacters).
 4.46831 ++      func_quote_for_eval "$file"
 4.46832 ++      args="$args $func_quote_for_eval_result"
 4.46833 ++    done
 4.46834 ++
 4.46835 ++    if test "X$opt_dry_run" = Xfalse; then
 4.46836 ++      if test -n "$shlibpath_var"; then
 4.46837 ++	# Export the shlibpath_var.
 4.46838 ++	eval "export $shlibpath_var"
 4.46839 ++      fi
 4.46840 ++
 4.46841 ++      # Restore saved environment variables
 4.46842 ++      for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
 4.46843 ++      do
 4.46844 ++	eval "if test \"\${save_$lt_var+set}\" = set; then
 4.46845 ++                $lt_var=\$save_$lt_var; export $lt_var
 4.46846 ++	      else
 4.46847 ++		$lt_unset $lt_var
 4.46848 ++	      fi"
 4.46849 ++      done
 4.46850 ++
 4.46851 ++      # Now prepare to actually exec the command.
 4.46852 ++      exec_cmd="\$cmd$args"
 4.46853 ++    else
 4.46854 ++      # Display what would be done.
 4.46855 ++      if test -n "$shlibpath_var"; then
 4.46856 ++	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
 4.46857 ++	$ECHO "export $shlibpath_var"
 4.46858 ++      fi
 4.46859 ++      $ECHO "$cmd$args"
 4.46860 ++      exit $EXIT_SUCCESS
 4.46861 ++    fi
 4.46862 ++}
 4.46863 ++
 4.46864 ++test "$mode" = execute && func_mode_execute ${1+"$@"}
 4.46865 ++
 4.46866 ++
 4.46867 ++# func_mode_finish arg...
 4.46868 ++func_mode_finish ()
 4.46869 ++{
 4.46870 ++    $opt_debug
 4.46871 ++    libdirs="$nonopt"
 4.46872 ++    admincmds=
 4.46873 ++
 4.46874 ++    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
 4.46875 ++      for dir
 4.46876 ++      do
 4.46877 ++	libdirs="$libdirs $dir"
 4.46878 ++      done
 4.46879 ++
 4.46880 ++      for libdir in $libdirs; do
 4.46881 ++	if test -n "$finish_cmds"; then
 4.46882 ++	  # Do each command in the finish commands.
 4.46883 ++	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
 4.46884 ++'"$cmd"'"'
 4.46885 ++	fi
 4.46886 ++	if test -n "$finish_eval"; then
 4.46887 ++	  # Do the single finish_eval.
 4.46888 ++	  eval cmds=\"$finish_eval\"
 4.46889 ++	  $opt_dry_run || eval "$cmds" || admincmds="$admincmds
 4.46890 ++       $cmds"
 4.46891 ++	fi
 4.46892 ++      done
 4.46893 ++    fi
 4.46894 ++
 4.46895 ++    # Exit here if they wanted silent mode.
 4.46896 ++    $opt_silent && exit $EXIT_SUCCESS
 4.46897 ++
 4.46898 ++    $ECHO "X----------------------------------------------------------------------" | $Xsed
 4.46899 ++    $ECHO "Libraries have been installed in:"
 4.46900 ++    for libdir in $libdirs; do
 4.46901 ++      $ECHO "   $libdir"
 4.46902 ++    done
 4.46903 ++    $ECHO
 4.46904 ++    $ECHO "If you ever happen to want to link against installed libraries"
 4.46905 ++    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
 4.46906 ++    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
 4.46907 ++    $ECHO "flag during linking and do at least one of the following:"
 4.46908 ++    if test -n "$shlibpath_var"; then
 4.46909 ++      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
 4.46910 ++      $ECHO "     during execution"
 4.46911 ++    fi
 4.46912 ++    if test -n "$runpath_var"; then
 4.46913 ++      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
 4.46914 ++      $ECHO "     during linking"
 4.46915 ++    fi
 4.46916 ++    if test -n "$hardcode_libdir_flag_spec"; then
 4.46917 ++      libdir=LIBDIR
 4.46918 ++      eval flag=\"$hardcode_libdir_flag_spec\"
 4.46919 ++
 4.46920 ++      $ECHO "   - use the \`$flag' linker flag"
 4.46921 ++    fi
 4.46922 ++    if test -n "$admincmds"; then
 4.46923 ++      $ECHO "   - have your system administrator run these commands:$admincmds"
 4.46924 ++    fi
 4.46925 ++    if test -f /etc/ld.so.conf; then
 4.46926 ++      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
 4.46927 ++    fi
 4.46928 ++    $ECHO
 4.46929 ++
 4.46930 ++    $ECHO "See any operating system documentation about shared libraries for"
 4.46931 ++    case $host in
 4.46932 ++      solaris2.[6789]|solaris2.1[0-9])
 4.46933 ++        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
 4.46934 ++	$ECHO "pages."
 4.46935 ++	;;
 4.46936 ++      *)
 4.46937 ++        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
 4.46938 ++        ;;
 4.46939 ++    esac
 4.46940 ++    $ECHO "X----------------------------------------------------------------------" | $Xsed
 4.46941 ++    exit $EXIT_SUCCESS
 4.46942 ++}
 4.46943 ++
 4.46944 ++test "$mode" = finish && func_mode_finish ${1+"$@"}
 4.46945 ++
 4.46946 ++
 4.46947 ++# func_mode_install arg...
 4.46948 ++func_mode_install ()
 4.46949 ++{
 4.46950 ++    $opt_debug
 4.46951 ++    # There may be an optional sh(1) argument at the beginning of
 4.46952 ++    # install_prog (especially on Windows NT).
 4.46953 ++    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
 4.46954 ++       # Allow the use of GNU shtool's install command.
 4.46955 ++       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
 4.46956 ++      # Aesthetically quote it.
 4.46957 ++      func_quote_for_eval "$nonopt"
 4.46958 ++      install_prog="$func_quote_for_eval_result "
 4.46959 ++      arg=$1
 4.46960 ++      shift
 4.46961 ++    else
 4.46962 ++      install_prog=
 4.46963 ++      arg=$nonopt
 4.46964 ++    fi
 4.46965 ++
 4.46966 ++    # The real first argument should be the name of the installation program.
 4.46967 ++    # Aesthetically quote it.
 4.46968 ++    func_quote_for_eval "$arg"
 4.46969 ++    install_prog="$install_prog$func_quote_for_eval_result"
 4.46970 ++
 4.46971 ++    # We need to accept at least all the BSD install flags.
 4.46972 ++    dest=
 4.46973 ++    files=
 4.46974 ++    opts=
 4.46975 ++    prev=
 4.46976 ++    install_type=
 4.46977 ++    isdir=no
 4.46978 ++    stripme=
 4.46979 ++    for arg
 4.46980 ++    do
 4.46981 ++      if test -n "$dest"; then
 4.46982 ++	files="$files $dest"
 4.46983 ++	dest=$arg
 4.46984 ++	continue
 4.46985 ++      fi
 4.46986 ++
 4.46987 ++      case $arg in
 4.46988 ++      -d) isdir=yes ;;
 4.46989 ++      -f)
 4.46990 ++      	case " $install_prog " in
 4.46991 ++	*[\\\ /]cp\ *) ;;
 4.46992 ++	*) prev=$arg ;;
 4.46993 ++	esac
 4.46994 ++	;;
 4.46995 ++      -g | -m | -o)
 4.46996 ++	prev=$arg
 4.46997 ++	;;
 4.46998 ++      -s)
 4.46999 ++	stripme=" -s"
 4.47000 ++	continue
 4.47001 ++	;;
 4.47002 ++      -*)
 4.47003 ++	;;
 4.47004 ++      *)
 4.47005 ++	# If the previous option needed an argument, then skip it.
 4.47006 ++	if test -n "$prev"; then
 4.47007 ++	  prev=
 4.47008 ++	else
 4.47009 ++	  dest=$arg
 4.47010 ++	  continue
 4.47011 ++	fi
 4.47012 ++	;;
 4.47013 ++      esac
 4.47014 ++
 4.47015 ++      # Aesthetically quote the argument.
 4.47016 ++      func_quote_for_eval "$arg"
 4.47017 ++      install_prog="$install_prog $func_quote_for_eval_result"
 4.47018 ++    done
 4.47019 ++
 4.47020 ++    test -z "$install_prog" && \
 4.47021 ++      func_fatal_help "you must specify an install program"
 4.47022 ++
 4.47023 ++    test -n "$prev" && \
 4.47024 ++      func_fatal_help "the \`$prev' option requires an argument"
 4.47025 ++
 4.47026 ++    if test -z "$files"; then
 4.47027 ++      if test -z "$dest"; then
 4.47028 ++	func_fatal_help "no file or destination specified"
 4.47029 ++      else
 4.47030 ++	func_fatal_help "you must specify a destination"
 4.47031 ++      fi
 4.47032 ++    fi
 4.47033 ++
 4.47034 ++    # Strip any trailing slash from the destination.
 4.47035 ++    func_stripname '' '/' "$dest"
 4.47036 ++    dest=$func_stripname_result
 4.47037 ++
 4.47038 ++    # Check to see that the destination is a directory.
 4.47039 ++    test -d "$dest" && isdir=yes
 4.47040 ++    if test "$isdir" = yes; then
 4.47041 ++      destdir="$dest"
 4.47042 ++      destname=
 4.47043 ++    else
 4.47044 ++      func_dirname "$dest" "" "."
 4.47045 ++      destdir="$func_dirname_result"
 4.47046 ++      func_basename "$dest"
 4.47047 ++      destname="$func_basename_result"
 4.47048 ++
 4.47049 ++      # Not a directory, so check to see that there is only one file specified.
 4.47050 ++      set dummy $files; shift
 4.47051 ++      test "$#" -gt 1 && \
 4.47052 ++	func_fatal_help "\`$dest' is not a directory"
 4.47053 ++    fi
 4.47054 ++    case $destdir in
 4.47055 ++    [\\/]* | [A-Za-z]:[\\/]*) ;;
 4.47056 ++    *)
 4.47057 ++      for file in $files; do
 4.47058 ++	case $file in
 4.47059 ++	*.lo) ;;
 4.47060 ++	*)
 4.47061 ++	  func_fatal_help "\`$destdir' must be an absolute directory name"
 4.47062 ++	  ;;
 4.47063 ++	esac
 4.47064 ++      done
 4.47065 ++      ;;
 4.47066 ++    esac
 4.47067 ++
 4.47068 ++    # This variable tells wrapper scripts just to set variables rather
 4.47069 ++    # than running their programs.
 4.47070 ++    libtool_install_magic="$magic"
 4.47071 ++
 4.47072 ++    staticlibs=
 4.47073 ++    future_libdirs=
 4.47074 ++    current_libdirs=
 4.47075 ++    for file in $files; do
 4.47076 ++
 4.47077 ++      # Do each installation.
 4.47078 ++      case $file in
 4.47079 ++      *.$libext)
 4.47080 ++	# Do the static libraries later.
 4.47081 ++	staticlibs="$staticlibs $file"
 4.47082 ++	;;
 4.47083 ++
 4.47084 ++      *.la)
 4.47085 ++	# Check to see that this really is a libtool archive.
 4.47086 ++	func_lalib_unsafe_p "$file" \
 4.47087 ++	  || func_fatal_help "\`$file' is not a valid libtool archive"
 4.47088 ++
 4.47089 ++	library_names=
 4.47090 ++	old_library=
 4.47091 ++	relink_command=
 4.47092 ++	func_source "$file"
 4.47093 ++
 4.47094 ++	# Add the libdir to current_libdirs if it is the destination.
 4.47095 ++	if test "X$destdir" = "X$libdir"; then
 4.47096 ++	  case "$current_libdirs " in
 4.47097 ++	  *" $libdir "*) ;;
 4.47098 ++	  *) current_libdirs="$current_libdirs $libdir" ;;
 4.47099 ++	  esac
 4.47100 ++	else
 4.47101 ++	  # Note the libdir as a future libdir.
 4.47102 ++	  case "$future_libdirs " in
 4.47103 ++	  *" $libdir "*) ;;
 4.47104 ++	  *) future_libdirs="$future_libdirs $libdir" ;;
 4.47105 ++	  esac
 4.47106 ++	fi
 4.47107 ++
 4.47108 ++	func_dirname "$file" "/" ""
 4.47109 ++	dir="$func_dirname_result"
 4.47110 ++	dir="$dir$objdir"
 4.47111 ++
 4.47112 ++	if test -n "$relink_command"; then
 4.47113 ++	  # Determine the prefix the user has applied to our future dir.
 4.47114 ++	  inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
 4.47115 ++
 4.47116 ++	  # Don't allow the user to place us outside of our expected
 4.47117 ++	  # location b/c this prevents finding dependent libraries that
 4.47118 ++	  # are installed to the same prefix.
 4.47119 ++	  # At present, this check doesn't affect windows .dll's that
 4.47120 ++	  # are installed into $libdir/../bin (currently, that works fine)
 4.47121 ++	  # but it's something to keep an eye on.
 4.47122 ++	  test "$inst_prefix_dir" = "$destdir" && \
 4.47123 ++	    func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
 4.47124 ++
 4.47125 ++	  if test -n "$inst_prefix_dir"; then
 4.47126 ++	    # Stick the inst_prefix_dir data into the link command.
 4.47127 ++	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
 4.47128 ++	  else
 4.47129 ++	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
 4.47130 ++	  fi
 4.47131 ++
 4.47132 ++	  func_warning "relinking \`$file'"
 4.47133 ++	  func_show_eval "$relink_command" \
 4.47134 ++	    'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
 4.47135 ++	fi
 4.47136 ++
 4.47137 ++	# See the names of the shared library.
 4.47138 ++	set dummy $library_names; shift
 4.47139 ++	if test -n "$1"; then
 4.47140 ++	  realname="$1"
 4.47141 ++	  shift
 4.47142 ++
 4.47143 ++	  srcname="$realname"
 4.47144 ++	  test -n "$relink_command" && srcname="$realname"T
 4.47145 ++
 4.47146 ++	  # Install the shared library and build the symlinks.
 4.47147 ++	  func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
 4.47148 ++	      'exit $?'
 4.47149 ++	  tstripme="$stripme"
 4.47150 ++	  case $host_os in
 4.47151 ++	  cygwin* | mingw* | pw32*)
 4.47152 ++	    case $realname in
 4.47153 ++	    *.dll.a)
 4.47154 ++	      tstripme=""
 4.47155 ++	      ;;
 4.47156 ++	    esac
 4.47157 ++	    ;;
 4.47158 ++	  esac
 4.47159 ++	  if test -n "$tstripme" && test -n "$striplib"; then
 4.47160 ++	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
 4.47161 ++	  fi
 4.47162 ++
 4.47163 ++	  if test "$#" -gt 0; then
 4.47164 ++	    # Delete the old symlinks, and create new ones.
 4.47165 ++	    # Try `ln -sf' first, because the `ln' binary might depend on
 4.47166 ++	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
 4.47167 ++	    # so we also need to try rm && ln -s.
 4.47168 ++	    for linkname
 4.47169 ++	    do
 4.47170 ++	      test "$linkname" != "$realname" \
 4.47171 ++		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
 4.47172 ++	    done
 4.47173 ++	  fi
 4.47174 ++
 4.47175 ++	  # Do each command in the postinstall commands.
 4.47176 ++	  lib="$destdir/$realname"
 4.47177 ++	  func_execute_cmds "$postinstall_cmds" 'exit $?'
 4.47178 ++	fi
 4.47179 ++
 4.47180 ++	# Install the pseudo-library for information purposes.
 4.47181 ++	func_basename "$file"
 4.47182 ++	name="$func_basename_result"
 4.47183 ++	instname="$dir/$name"i
 4.47184 ++	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
 4.47185 ++
 4.47186 ++	# Maybe install the static library, too.
 4.47187 ++	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
 4.47188 ++	;;
 4.47189 ++
 4.47190 ++      *.lo)
 4.47191 ++	# Install (i.e. copy) a libtool object.
 4.47192 ++
 4.47193 ++	# Figure out destination file name, if it wasn't already specified.
 4.47194 ++	if test -n "$destname"; then
 4.47195 ++	  destfile="$destdir/$destname"
 4.47196 ++	else
 4.47197 ++	  func_basename "$file"
 4.47198 ++	  destfile="$func_basename_result"
 4.47199 ++	  destfile="$destdir/$destfile"
 4.47200 ++	fi
 4.47201 ++
 4.47202 ++	# Deduce the name of the destination old-style object file.
 4.47203 ++	case $destfile in
 4.47204 ++	*.lo)
 4.47205 ++	  func_lo2o "$destfile"
 4.47206 ++	  staticdest=$func_lo2o_result
 4.47207 ++	  ;;
 4.47208 ++	*.$objext)
 4.47209 ++	  staticdest="$destfile"
 4.47210 ++	  destfile=
 4.47211 ++	  ;;
 4.47212 ++	*)
 4.47213 ++	  func_fatal_help "cannot copy a libtool object to \`$destfile'"
 4.47214 ++	  ;;
 4.47215 ++	esac
 4.47216 ++
 4.47217 ++	# Install the libtool object if requested.
 4.47218 ++	test -n "$destfile" && \
 4.47219 ++	  func_show_eval "$install_prog $file $destfile" 'exit $?'
 4.47220 ++
 4.47221 ++	# Install the old object if enabled.
 4.47222 ++	if test "$build_old_libs" = yes; then
 4.47223 ++	  # Deduce the name of the old-style object file.
 4.47224 ++	  func_lo2o "$file"
 4.47225 ++	  staticobj=$func_lo2o_result
 4.47226 ++	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
 4.47227 ++	fi
 4.47228 ++	exit $EXIT_SUCCESS
 4.47229 ++	;;
 4.47230 ++
 4.47231 ++      *)
 4.47232 ++	# Figure out destination file name, if it wasn't already specified.
 4.47233 ++	if test -n "$destname"; then
 4.47234 ++	  destfile="$destdir/$destname"
 4.47235 ++	else
 4.47236 ++	  func_basename "$file"
 4.47237 ++	  destfile="$func_basename_result"
 4.47238 ++	  destfile="$destdir/$destfile"
 4.47239 ++	fi
 4.47240 ++
 4.47241 ++	# If the file is missing, and there is a .exe on the end, strip it
 4.47242 ++	# because it is most likely a libtool script we actually want to
 4.47243 ++	# install
 4.47244 ++	stripped_ext=""
 4.47245 ++	case $file in
 4.47246 ++	  *.exe)
 4.47247 ++	    if test ! -f "$file"; then
 4.47248 ++	      func_stripname '' '.exe' "$file"
 4.47249 ++	      file=$func_stripname_result
 4.47250 ++	      stripped_ext=".exe"
 4.47251 ++	    fi
 4.47252 ++	    ;;
 4.47253 ++	esac
 4.47254 ++
 4.47255 ++	# Do a test to see if this is really a libtool program.
 4.47256 ++	case $host in
 4.47257 ++	*cygwin*|*mingw*)
 4.47258 ++	    func_stripname '' '.exe' "$file"
 4.47259 ++	    wrapper=$func_stripname_result
 4.47260 ++	    ;;
 4.47261 ++	*)
 4.47262 ++	    wrapper=$file
 4.47263 ++	    ;;
 4.47264 ++	esac
 4.47265 ++	if func_ltwrapper_p "$wrapper"; then
 4.47266 ++	  notinst_deplibs=
 4.47267 ++	  relink_command=
 4.47268 ++
 4.47269 ++	  func_source "$wrapper"
 4.47270 ++
 4.47271 ++	  # Check the variables that should have been set.
 4.47272 ++	  test -z "$generated_by_libtool_version" && \
 4.47273 ++	    func_fatal_error "invalid libtool wrapper script \`$wrapper'"
 4.47274 ++
 4.47275 ++	  finalize=yes
 4.47276 ++	  for lib in $notinst_deplibs; do
 4.47277 ++	    # Check to see that each library is installed.
 4.47278 ++	    libdir=
 4.47279 ++	    if test -f "$lib"; then
 4.47280 ++	      func_source "$lib"
 4.47281 ++	    fi
 4.47282 ++	    libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
 4.47283 ++	    if test -n "$libdir" && test ! -f "$libfile"; then
 4.47284 ++	      func_warning "\`$lib' has not been installed in \`$libdir'"
 4.47285 ++	      finalize=no
 4.47286 ++	    fi
 4.47287 ++	  done
 4.47288 ++
 4.47289 ++	  relink_command=
 4.47290 ++	  func_source "$wrapper"
 4.47291 ++
 4.47292 ++	  outputname=
 4.47293 ++	  if test "$fast_install" = no && test -n "$relink_command"; then
 4.47294 ++	    $opt_dry_run || {
 4.47295 ++	      if test "$finalize" = yes; then
 4.47296 ++	        tmpdir=`func_mktempdir`
 4.47297 ++		func_basename "$file$stripped_ext"
 4.47298 ++		file="$func_basename_result"
 4.47299 ++	        outputname="$tmpdir/$file"
 4.47300 ++	        # Replace the output file specification.
 4.47301 ++	        relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
 4.47302 ++
 4.47303 ++	        $opt_silent || {
 4.47304 ++	          func_quote_for_expand "$relink_command"
 4.47305 ++		  eval "func_echo $func_quote_for_expand_result"
 4.47306 ++	        }
 4.47307 ++	        if eval "$relink_command"; then :
 4.47308 ++	          else
 4.47309 ++		  func_error "error: relink \`$file' with the above command before installing it"
 4.47310 ++		  $opt_dry_run || ${RM}r "$tmpdir"
 4.47311 ++		  continue
 4.47312 ++	        fi
 4.47313 ++	        file="$outputname"
 4.47314 ++	      else
 4.47315 ++	        func_warning "cannot relink \`$file'"
 4.47316 ++	      fi
 4.47317 ++	    }
 4.47318 ++	  else
 4.47319 ++	    # Install the binary that we compiled earlier.
 4.47320 ++	    file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
 4.47321 ++	  fi
 4.47322 ++	fi
 4.47323 ++
 4.47324 ++	# remove .exe since cygwin /usr/bin/install will append another
 4.47325 ++	# one anyway
 4.47326 ++	case $install_prog,$host in
 4.47327 ++	*/usr/bin/install*,*cygwin*)
 4.47328 ++	  case $file:$destfile in
 4.47329 ++	  *.exe:*.exe)
 4.47330 ++	    # this is ok
 4.47331 ++	    ;;
 4.47332 ++	  *.exe:*)
 4.47333 ++	    destfile=$destfile.exe
 4.47334 ++	    ;;
 4.47335 ++	  *:*.exe)
 4.47336 ++	    func_stripname '' '.exe' "$destfile"
 4.47337 ++	    destfile=$func_stripname_result
 4.47338 ++	    ;;
 4.47339 ++	  esac
 4.47340 ++	  ;;
 4.47341 ++	esac
 4.47342 ++	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
 4.47343 ++	$opt_dry_run || if test -n "$outputname"; then
 4.47344 ++	  ${RM}r "$tmpdir"
 4.47345 ++	fi
 4.47346 ++	;;
 4.47347 ++      esac
 4.47348 ++    done
 4.47349 ++
 4.47350 ++    for file in $staticlibs; do
 4.47351 ++      func_basename "$file"
 4.47352 ++      name="$func_basename_result"
 4.47353 ++
 4.47354 ++      # Set up the ranlib parameters.
 4.47355 ++      oldlib="$destdir/$name"
 4.47356 ++
 4.47357 ++      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
 4.47358 ++
 4.47359 ++      if test -n "$stripme" && test -n "$old_striplib"; then
 4.47360 ++	func_show_eval "$old_striplib $oldlib" 'exit $?'
 4.47361 ++      fi
 4.47362 ++
 4.47363 ++      # Do each command in the postinstall commands.
 4.47364 ++      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
 4.47365 ++    done
 4.47366 ++
 4.47367 ++    test -n "$future_libdirs" && \
 4.47368 ++      func_warning "remember to run \`$progname --finish$future_libdirs'"
 4.47369 ++
 4.47370 ++    if test -n "$current_libdirs"; then
 4.47371 ++      # Maybe just do a dry run.
 4.47372 ++      $opt_dry_run && current_libdirs=" -n$current_libdirs"
 4.47373 ++      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
 4.47374 ++    else
 4.47375 ++      exit $EXIT_SUCCESS
 4.47376 ++    fi
 4.47377 ++}
 4.47378 ++
 4.47379 ++test "$mode" = install && func_mode_install ${1+"$@"}
 4.47380 ++
 4.47381 ++
 4.47382 ++# func_mode_link arg...
 4.47383 ++func_mode_link ()
 4.47384 ++{
 4.47385 ++    $opt_debug
 4.47386 ++    case $host in
 4.47387 ++    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
 4.47388 ++      # It is impossible to link a dll without this setting, and
 4.47389 ++      # we shouldn't force the makefile maintainer to figure out
 4.47390 ++      # which system we are compiling for in order to pass an extra
 4.47391 ++      # flag for every libtool invocation.
 4.47392 ++      # allow_undefined=no
 4.47393 ++
 4.47394 ++      # FIXME: Unfortunately, there are problems with the above when trying
 4.47395 ++      # to make a dll which has undefined symbols, in which case not
 4.47396 ++      # even a static library is built.  For now, we need to specify
 4.47397 ++      # -no-undefined on the libtool link line when we can be certain
 4.47398 ++      # that all symbols are satisfied, otherwise we get a static library.
 4.47399 ++      allow_undefined=yes
 4.47400 ++      ;;
 4.47401 ++    *)
 4.47402 ++      allow_undefined=yes
 4.47403 ++      ;;
 4.47404 ++    esac
 4.47405 ++    libtool_args=$nonopt
 4.47406 ++    base_compile="$nonopt $@"
 4.47407 ++    compile_command=$nonopt
 4.47408 ++    finalize_command=$nonopt
 4.47409 ++
 4.47410 ++    compile_rpath=
 4.47411 ++    finalize_rpath=
 4.47412 ++    compile_shlibpath=
 4.47413 ++    finalize_shlibpath=
 4.47414 ++    convenience=
 4.47415 ++    old_convenience=
 4.47416 ++    deplibs=
 4.47417 ++    old_deplibs=
 4.47418 ++    compiler_flags=
 4.47419 ++    linker_flags=
 4.47420 ++    dllsearchpath=
 4.47421 ++    lib_search_path=`pwd`
 4.47422 ++    inst_prefix_dir=
 4.47423 ++    new_inherited_linker_flags=
 4.47424 ++
 4.47425 ++    avoid_version=no
 4.47426 ++    dlfiles=
 4.47427 ++    dlprefiles=
 4.47428 ++    dlself=no
 4.47429 ++    export_dynamic=no
 4.47430 ++    export_symbols=
 4.47431 ++    export_symbols_regex=
 4.47432 ++    generated=
 4.47433 ++    libobjs=
 4.47434 ++    ltlibs=
 4.47435 ++    module=no
 4.47436 ++    no_install=no
 4.47437 ++    objs=
 4.47438 ++    non_pic_objects=
 4.47439 ++    precious_files_regex=
 4.47440 ++    prefer_static_libs=no
 4.47441 ++    preload=no
 4.47442 ++    prev=
 4.47443 ++    prevarg=
 4.47444 ++    release=
 4.47445 ++    rpath=
 4.47446 ++    xrpath=
 4.47447 ++    perm_rpath=
 4.47448 ++    temp_rpath=
 4.47449 ++    thread_safe=no
 4.47450 ++    vinfo=
 4.47451 ++    vinfo_number=no
 4.47452 ++    weak_libs=
 4.47453 ++    single_module="${wl}-single_module"
 4.47454 ++    func_infer_tag $base_compile
 4.47455 ++
 4.47456 ++    # We need to know -static, to get the right output filenames.
 4.47457 ++    for arg
 4.47458 ++    do
 4.47459 ++      case $arg in
 4.47460 ++      -shared)
 4.47461 ++	test "$build_libtool_libs" != yes && \
 4.47462 ++	  func_fatal_configuration "can not build a shared library"
 4.47463 ++	build_old_libs=no
 4.47464 ++	break
 4.47465 ++	;;
 4.47466 ++      -all-static | -static | -static-libtool-libs)
 4.47467 ++	case $arg in
 4.47468 ++	-all-static)
 4.47469 ++	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
 4.47470 ++	    func_warning "complete static linking is impossible in this configuration"
 4.47471 ++	  fi
 4.47472 ++	  if test -n "$link_static_flag"; then
 4.47473 ++	    dlopen_self=$dlopen_self_static
 4.47474 ++	    # See comment for -static flag below, for more details.
 4.47475 ++	    func_append compile_command " $link_static_flag"
 4.47476 ++	    func_append finalize_command " $link_static_flag"
 4.47477 ++	  fi
 4.47478 ++	  prefer_static_libs=yes
 4.47479 ++	  ;;
 4.47480 ++	-static)
 4.47481 ++	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
 4.47482 ++	    dlopen_self=$dlopen_self_static
 4.47483 ++	  fi
 4.47484 ++	  prefer_static_libs=built
 4.47485 ++	  ;;
 4.47486 ++	-static-libtool-libs)
 4.47487 ++	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
 4.47488 ++	    dlopen_self=$dlopen_self_static
 4.47489 ++	  fi
 4.47490 ++	  prefer_static_libs=yes
 4.47491 ++	  ;;
 4.47492 ++	esac
 4.47493 ++	build_libtool_libs=no
 4.47494 ++	build_old_libs=yes
 4.47495 ++	break
 4.47496 ++	;;
 4.47497 ++      esac
 4.47498 ++    done
 4.47499 ++
 4.47500 ++    # See if our shared archives depend on static archives.
 4.47501 ++    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
 4.47502 ++
 4.47503 ++    # Go through the arguments, transforming them on the way.
 4.47504 ++    while test "$#" -gt 0; do
 4.47505 ++      arg="$1"
 4.47506 ++      shift
 4.47507 ++      func_quote_for_eval "$arg"
 4.47508 ++      qarg=$func_quote_for_eval_unquoted_result
 4.47509 ++      func_append libtool_args " $func_quote_for_eval_result"
 4.47510 ++
 4.47511 ++      # If the previous option needs an argument, assign it.
 4.47512 ++      if test -n "$prev"; then
 4.47513 ++	case $prev in
 4.47514 ++	output)
 4.47515 ++	  func_append compile_command " @OUTPUT@"
 4.47516 ++	  func_append finalize_command " @OUTPUT@"
 4.47517 ++	  ;;
 4.47518 ++	esac
 4.47519 ++
 4.47520 ++	case $prev in
 4.47521 ++	dlfiles|dlprefiles)
 4.47522 ++	  if test "$preload" = no; then
 4.47523 ++	    # Add the symbol object into the linking commands.
 4.47524 ++	    func_append compile_command " @SYMFILE@"
 4.47525 ++	    func_append finalize_command " @SYMFILE@"
 4.47526 ++	    preload=yes
 4.47527 ++	  fi
 4.47528 ++	  case $arg in
 4.47529 ++	  *.la | *.lo) ;;  # We handle these cases below.
 4.47530 ++	  force)
 4.47531 ++	    if test "$dlself" = no; then
 4.47532 ++	      dlself=needless
 4.47533 ++	      export_dynamic=yes
 4.47534 ++	    fi
 4.47535 ++	    prev=
 4.47536 ++	    continue
 4.47537 ++	    ;;
 4.47538 ++	  self)
 4.47539 ++	    if test "$prev" = dlprefiles; then
 4.47540 ++	      dlself=yes
 4.47541 ++	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
 4.47542 ++	      dlself=yes
 4.47543 ++	    else
 4.47544 ++	      dlself=needless
 4.47545 ++	      export_dynamic=yes
 4.47546 ++	    fi
 4.47547 ++	    prev=
 4.47548 ++	    continue
 4.47549 ++	    ;;
 4.47550 ++	  *)
 4.47551 ++	    if test "$prev" = dlfiles; then
 4.47552 ++	      dlfiles="$dlfiles $arg"
 4.47553 ++	    else
 4.47554 ++	      dlprefiles="$dlprefiles $arg"
 4.47555 ++	    fi
 4.47556 ++	    prev=
 4.47557 ++	    continue
 4.47558 ++	    ;;
 4.47559 ++	  esac
 4.47560 ++	  ;;
 4.47561 ++	expsyms)
 4.47562 ++	  export_symbols="$arg"
 4.47563 ++	  test -f "$arg" \
 4.47564 ++	    || func_fatal_error "symbol file \`$arg' does not exist"
 4.47565 ++	  prev=
 4.47566 ++	  continue
 4.47567 ++	  ;;
 4.47568 ++	expsyms_regex)
 4.47569 ++	  export_symbols_regex="$arg"
 4.47570 ++	  prev=
 4.47571 ++	  continue
 4.47572 ++	  ;;
 4.47573 ++	framework)
 4.47574 ++	  case $host in
 4.47575 ++	    *-*-darwin*)
 4.47576 ++	      case "$deplibs " in
 4.47577 ++		*" $qarg.ltframework "*) ;;
 4.47578 ++		*) deplibs="$deplibs $qarg.ltframework" # this is fixed later
 4.47579 ++		   ;;
 4.47580 ++	      esac
 4.47581 ++	      ;;
 4.47582 ++   	  esac
 4.47583 ++	  prev=
 4.47584 ++	  continue
 4.47585 ++	  ;;
 4.47586 ++	inst_prefix)
 4.47587 ++	  inst_prefix_dir="$arg"
 4.47588 ++	  prev=
 4.47589 ++	  continue
 4.47590 ++	  ;;
 4.47591 ++	objectlist)
 4.47592 ++	  if test -f "$arg"; then
 4.47593 ++	    save_arg=$arg
 4.47594 ++	    moreargs=
 4.47595 ++	    for fil in `cat "$save_arg"`
 4.47596 ++	    do
 4.47597 ++#	      moreargs="$moreargs $fil"
 4.47598 ++	      arg=$fil
 4.47599 ++	      # A libtool-controlled object.
 4.47600 ++
 4.47601 ++	      # Check to see that this really is a libtool object.
 4.47602 ++	      if func_lalib_unsafe_p "$arg"; then
 4.47603 ++		pic_object=
 4.47604 ++		non_pic_object=
 4.47605 ++
 4.47606 ++		# Read the .lo file
 4.47607 ++		func_source "$arg"
 4.47608 ++
 4.47609 ++		if test -z "$pic_object" ||
 4.47610 ++		   test -z "$non_pic_object" ||
 4.47611 ++		   test "$pic_object" = none &&
 4.47612 ++		   test "$non_pic_object" = none; then
 4.47613 ++		  func_fatal_error "cannot find name of object for \`$arg'"
 4.47614 ++		fi
 4.47615 ++
 4.47616 ++		# Extract subdirectory from the argument.
 4.47617 ++		func_dirname "$arg" "/" ""
 4.47618 ++		xdir="$func_dirname_result"
 4.47619 ++
 4.47620 ++		if test "$pic_object" != none; then
 4.47621 ++		  # Prepend the subdirectory the object is found in.
 4.47622 ++		  pic_object="$xdir$pic_object"
 4.47623 ++
 4.47624 ++		  if test "$prev" = dlfiles; then
 4.47625 ++		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
 4.47626 ++		      dlfiles="$dlfiles $pic_object"
 4.47627 ++		      prev=
 4.47628 ++		      continue
 4.47629 ++		    else
 4.47630 ++		      # If libtool objects are unsupported, then we need to preload.
 4.47631 ++		      prev=dlprefiles
 4.47632 ++		    fi
 4.47633 ++		  fi
 4.47634 ++
 4.47635 ++		  # CHECK ME:  I think I busted this.  -Ossama
 4.47636 ++		  if test "$prev" = dlprefiles; then
 4.47637 ++		    # Preload the old-style object.
 4.47638 ++		    dlprefiles="$dlprefiles $pic_object"
 4.47639 ++		    prev=
 4.47640 ++		  fi
 4.47641 ++
 4.47642 ++		  # A PIC object.
 4.47643 ++		  func_append libobjs " $pic_object"
 4.47644 ++		  arg="$pic_object"
 4.47645 ++		fi
 4.47646 ++
 4.47647 ++		# Non-PIC object.
 4.47648 ++		if test "$non_pic_object" != none; then
 4.47649 ++		  # Prepend the subdirectory the object is found in.
 4.47650 ++		  non_pic_object="$xdir$non_pic_object"
 4.47651 ++
 4.47652 ++		  # A standard non-PIC object
 4.47653 ++		  func_append non_pic_objects " $non_pic_object"
 4.47654 ++		  if test -z "$pic_object" || test "$pic_object" = none ; then
 4.47655 ++		    arg="$non_pic_object"
 4.47656 ++		  fi
 4.47657 ++		else
 4.47658 ++		  # If the PIC object exists, use it instead.
 4.47659 ++		  # $xdir was prepended to $pic_object above.
 4.47660 ++		  non_pic_object="$pic_object"
 4.47661 ++		  func_append non_pic_objects " $non_pic_object"
 4.47662 ++		fi
 4.47663 ++	      else
 4.47664 ++		# Only an error if not doing a dry-run.
 4.47665 ++		if $opt_dry_run; then
 4.47666 ++		  # Extract subdirectory from the argument.
 4.47667 ++		  func_dirname "$arg" "/" ""
 4.47668 ++		  xdir="$func_dirname_result"
 4.47669 ++
 4.47670 ++		  func_lo2o "$arg"
 4.47671 ++		  pic_object=$xdir$objdir/$func_lo2o_result
 4.47672 ++		  non_pic_object=$xdir$func_lo2o_result
 4.47673 ++		  func_append libobjs " $pic_object"
 4.47674 ++		  func_append non_pic_objects " $non_pic_object"
 4.47675 ++	        else
 4.47676 ++		  func_fatal_error "\`$arg' is not a valid libtool object"
 4.47677 ++		fi
 4.47678 ++	      fi
 4.47679 ++	    done
 4.47680 ++	  else
 4.47681 ++	    func_fatal_error "link input file \`$arg' does not exist"
 4.47682 ++	  fi
 4.47683 ++	  arg=$save_arg
 4.47684 ++	  prev=
 4.47685 ++	  continue
 4.47686 ++	  ;;
 4.47687 ++	precious_regex)
 4.47688 ++	  precious_files_regex="$arg"
 4.47689 ++	  prev=
 4.47690 ++	  continue
 4.47691 ++	  ;;
 4.47692 ++	release)
 4.47693 ++	  release="-$arg"
 4.47694 ++	  prev=
 4.47695 ++	  continue
 4.47696 ++	  ;;
 4.47697 ++	rpath | xrpath)
 4.47698 ++	  # We need an absolute path.
 4.47699 ++	  case $arg in
 4.47700 ++	  [\\/]* | [A-Za-z]:[\\/]*) ;;
 4.47701 ++	  *)
 4.47702 ++	    func_fatal_error "only absolute run-paths are allowed"
 4.47703 ++	    ;;
 4.47704 ++	  esac
 4.47705 ++	  if test "$prev" = rpath; then
 4.47706 ++	    case "$rpath " in
 4.47707 ++	    *" $arg "*) ;;
 4.47708 ++	    *) rpath="$rpath $arg" ;;
 4.47709 ++	    esac
 4.47710 ++	  else
 4.47711 ++	    case "$xrpath " in
 4.47712 ++	    *" $arg "*) ;;
 4.47713 ++	    *) xrpath="$xrpath $arg" ;;
 4.47714 ++	    esac
 4.47715 ++	  fi
 4.47716 ++	  prev=
 4.47717 ++	  continue
 4.47718 ++	  ;;
 4.47719 ++	shrext)
 4.47720 ++  	  shrext_cmds="$arg"
 4.47721 ++	  prev=
 4.47722 ++	  continue
 4.47723 ++	  ;;
 4.47724 ++	weak)
 4.47725 ++	  weak_libs="$weak_libs $arg"
 4.47726 ++	  prev=
 4.47727 ++	  continue
 4.47728 ++	  ;;
 4.47729 ++	xcclinker)
 4.47730 ++	  linker_flags="$linker_flags $qarg"
 4.47731 ++	  compiler_flags="$compiler_flags $qarg"
 4.47732 ++	  prev=
 4.47733 ++	  func_append compile_command " $qarg"
 4.47734 ++	  func_append finalize_command " $qarg"
 4.47735 ++	  continue
 4.47736 ++	  ;;
 4.47737 ++	xcompiler)
 4.47738 ++	  compiler_flags="$compiler_flags $qarg"
 4.47739 ++	  prev=
 4.47740 ++	  func_append compile_command " $qarg"
 4.47741 ++	  func_append finalize_command " $qarg"
 4.47742 ++	  continue
 4.47743 ++	  ;;
 4.47744 ++	xlinker)
 4.47745 ++	  linker_flags="$linker_flags $qarg"
 4.47746 ++	  compiler_flags="$compiler_flags $wl$qarg"
 4.47747 ++	  prev=
 4.47748 ++	  func_append compile_command " $wl$qarg"
 4.47749 ++	  func_append finalize_command " $wl$qarg"
 4.47750 ++	  continue
 4.47751 ++	  ;;
 4.47752 ++	*)
 4.47753 ++	  eval "$prev=\"\$arg\""
 4.47754 ++	  prev=
 4.47755 ++	  continue
 4.47756 ++	  ;;
 4.47757 ++	esac
 4.47758 ++      fi # test -n "$prev"
 4.47759 ++
 4.47760 ++      prevarg="$arg"
 4.47761 ++
 4.47762 ++      case $arg in
 4.47763 ++      -all-static)
 4.47764 ++	# The effects of -all-static are defined in a previous loop.
 4.47765 ++	continue
 4.47766 ++	;;
 4.47767 ++
 4.47768 ++      -allow-undefined)
 4.47769 ++	# FIXME: remove this flag sometime in the future.
 4.47770 ++	func_fatal_error "\`-allow-undefined' must not be used because it is the default"
 4.47771 ++	;;
 4.47772 ++
 4.47773 ++      -avoid-version)
 4.47774 ++	avoid_version=yes
 4.47775 ++	continue
 4.47776 ++	;;
 4.47777 ++
 4.47778 ++      -dlopen)
 4.47779 ++	prev=dlfiles
 4.47780 ++	continue
 4.47781 ++	;;
 4.47782 ++
 4.47783 ++      -dlpreopen)
 4.47784 ++	prev=dlprefiles
 4.47785 ++	continue
 4.47786 ++	;;
 4.47787 ++
 4.47788 ++      -export-dynamic)
 4.47789 ++	export_dynamic=yes
 4.47790 ++	continue
 4.47791 ++	;;
 4.47792 ++
 4.47793 ++      -export-symbols | -export-symbols-regex)
 4.47794 ++	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
 4.47795 ++	  func_fatal_error "more than one -exported-symbols argument is not allowed"
 4.47796 ++	fi
 4.47797 ++	if test "X$arg" = "X-export-symbols"; then
 4.47798 ++	  prev=expsyms
 4.47799 ++	else
 4.47800 ++	  prev=expsyms_regex
 4.47801 ++	fi
 4.47802 ++	continue
 4.47803 ++	;;
 4.47804 ++
 4.47805 ++      -framework)
 4.47806 ++	prev=framework
 4.47807 ++	continue
 4.47808 ++	;;
 4.47809 ++
 4.47810 ++      -inst-prefix-dir)
 4.47811 ++	prev=inst_prefix
 4.47812 ++	continue
 4.47813 ++	;;
 4.47814 ++
 4.47815 ++      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
 4.47816 ++      # so, if we see these flags be careful not to treat them like -L
 4.47817 ++      -L[A-Z][A-Z]*:*)
 4.47818 ++	case $with_gcc/$host in
 4.47819 ++	no/*-*-irix* | /*-*-irix*)
 4.47820 ++	  func_append compile_command " $arg"
 4.47821 ++	  func_append finalize_command " $arg"
 4.47822 ++	  ;;
 4.47823 ++	esac
 4.47824 ++	continue
 4.47825 ++	;;
 4.47826 ++
 4.47827 ++      -L*)
 4.47828 ++	func_stripname '-L' '' "$arg"
 4.47829 ++	dir=$func_stripname_result
 4.47830 ++	# We need an absolute path.
 4.47831 ++	case $dir in
 4.47832 ++	[\\/]* | [A-Za-z]:[\\/]*) ;;
 4.47833 ++	*)
 4.47834 ++	  absdir=`cd "$dir" && pwd`
 4.47835 ++	  test -z "$absdir" && \
 4.47836 ++	    func_fatal_error "cannot determine absolute directory name of \`$dir'"
 4.47837 ++	  dir="$absdir"
 4.47838 ++	  ;;
 4.47839 ++	esac
 4.47840 ++	case "$deplibs " in
 4.47841 ++	*" -L$dir "*) ;;
 4.47842 ++	*)
 4.47843 ++	  deplibs="$deplibs -L$dir"
 4.47844 ++	  lib_search_path="$lib_search_path $dir"
 4.47845 ++	  ;;
 4.47846 ++	esac
 4.47847 ++	case $host in
 4.47848 ++	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
 4.47849 ++	  testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
 4.47850 ++	  case :$dllsearchpath: in
 4.47851 ++	  *":$dir:"*) ;;
 4.47852 ++	  *) dllsearchpath="$dllsearchpath:$dir";;
 4.47853 ++	  esac
 4.47854 ++	  case :$dllsearchpath: in
 4.47855 ++	  *":$testbindir:"*) ;;
 4.47856 ++	  *) dllsearchpath="$dllsearchpath:$testbindir";;
 4.47857 ++	  esac
 4.47858 ++	  ;;
 4.47859 ++	esac
 4.47860 ++	continue
 4.47861 ++	;;
 4.47862 ++
 4.47863 ++      -l*)
 4.47864 ++	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
 4.47865 ++	  case $host in
 4.47866 ++	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
 4.47867 ++	    # These systems don't actually have a C or math library (as such)
 4.47868 ++	    continue
 4.47869 ++	    ;;
 4.47870 ++	  *-*-os2*)
 4.47871 ++	    # These systems don't actually have a C library (as such)
 4.47872 ++	    test "X$arg" = "X-lc" && continue
 4.47873 ++	    ;;
 4.47874 ++	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 4.47875 ++	    # Do not include libc due to us having libc/libc_r.
 4.47876 ++	    test "X$arg" = "X-lc" && continue
 4.47877 ++	    ;;
 4.47878 ++	  *-*-rhapsody* | *-*-darwin1.[012])
 4.47879 ++	    # Rhapsody C and math libraries are in the System framework
 4.47880 ++	    deplibs="$deplibs System.ltframework"
 4.47881 ++	    continue
 4.47882 ++	    ;;
 4.47883 ++	  *-*-sco3.2v5* | *-*-sco5v6*)
 4.47884 ++	    # Causes problems with __ctype
 4.47885 ++	    test "X$arg" = "X-lc" && continue
 4.47886 ++	    ;;
 4.47887 ++	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
 4.47888 ++	    # Compiler inserts libc in the correct place for threads to work
 4.47889 ++	    test "X$arg" = "X-lc" && continue
 4.47890 ++	    ;;
 4.47891 ++	  esac
 4.47892 ++	elif test "X$arg" = "X-lc_r"; then
 4.47893 ++	 case $host in
 4.47894 ++	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 4.47895 ++	   # Do not include libc_r directly, use -pthread flag.
 4.47896 ++	   continue
 4.47897 ++	   ;;
 4.47898 ++	 esac
 4.47899 ++	fi
 4.47900 ++	deplibs="$deplibs $arg"
 4.47901 ++	continue
 4.47902 ++	;;
 4.47903 ++
 4.47904 ++      -module)
 4.47905 ++	module=yes
 4.47906 ++	continue
 4.47907 ++	;;
 4.47908 ++
 4.47909 ++      # Tru64 UNIX uses -model [arg] to determine the layout of C++
 4.47910 ++      # classes, name mangling, and exception handling.
 4.47911 ++      # Darwin uses the -arch flag to determine output architecture.
 4.47912 ++      -model|-arch|-isysroot)
 4.47913 ++	compiler_flags="$compiler_flags $arg"
 4.47914 ++	func_append compile_command " $arg"
 4.47915 ++	func_append finalize_command " $arg"
 4.47916 ++	prev=xcompiler
 4.47917 ++	continue
 4.47918 ++	;;
 4.47919 ++
 4.47920 ++      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
 4.47921 ++	compiler_flags="$compiler_flags $arg"
 4.47922 ++	func_append compile_command " $arg"
 4.47923 ++	func_append finalize_command " $arg"
 4.47924 ++	case "$new_inherited_linker_flags " in
 4.47925 ++	    *" $arg "*) ;;
 4.47926 ++	    * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
 4.47927 ++	esac
 4.47928 ++	continue
 4.47929 ++	;;
 4.47930 ++
 4.47931 ++      -multi_module)
 4.47932 ++	single_module="${wl}-multi_module"
 4.47933 ++	continue
 4.47934 ++	;;
 4.47935 ++
 4.47936 ++      -no-fast-install)
 4.47937 ++	fast_install=no
 4.47938 ++	continue
 4.47939 ++	;;
 4.47940 ++
 4.47941 ++      -no-install)
 4.47942 ++	case $host in
 4.47943 ++	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
 4.47944 ++	  # The PATH hackery in wrapper scripts is required on Windows
 4.47945 ++	  # in order for the loader to find any dlls it needs.
 4.47946 ++	  func_warning "\`-no-install' is ignored for $host"
 4.47947 ++	  func_warning "assuming \`-no-fast-install' instead"
 4.47948 ++	  fast_install=no
 4.47949 ++	  ;;
 4.47950 ++	*) no_install=yes ;;
 4.47951 ++	esac
 4.47952 ++	continue
 4.47953 ++	;;
 4.47954 ++
 4.47955 ++      -no-undefined)
 4.47956 ++	allow_undefined=no
 4.47957 ++	continue
 4.47958 ++	;;
 4.47959 ++
 4.47960 ++      -objectlist)
 4.47961 ++	prev=objectlist
 4.47962 ++	continue
 4.47963 ++	;;
 4.47964 ++
 4.47965 ++      -o) prev=output ;;
 4.47966 ++
 4.47967 ++      -precious-files-regex)
 4.47968 ++	prev=precious_regex
 4.47969 ++	continue
 4.47970 ++	;;
 4.47971 ++
 4.47972 ++      -release)
 4.47973 ++	prev=release
 4.47974 ++	continue
 4.47975 ++	;;
 4.47976 ++
 4.47977 ++      -rpath)
 4.47978 ++	prev=rpath
 4.47979 ++	continue
 4.47980 ++	;;
 4.47981 ++
 4.47982 ++      -R)
 4.47983 ++	prev=xrpath
 4.47984 ++	continue
 4.47985 ++	;;
 4.47986 ++
 4.47987 ++      -R*)
 4.47988 ++	func_stripname '-R' '' "$arg"
 4.47989 ++	dir=$func_stripname_result
 4.47990 ++	# We need an absolute path.
 4.47991 ++	case $dir in
 4.47992 ++	[\\/]* | [A-Za-z]:[\\/]*) ;;
 4.47993 ++	*)
 4.47994 ++	  func_fatal_error "only absolute run-paths are allowed"
 4.47995 ++	  ;;
 4.47996 ++	esac
 4.47997 ++	case "$xrpath " in
 4.47998 ++	*" $dir "*) ;;
 4.47999 ++	*) xrpath="$xrpath $dir" ;;
 4.48000 ++	esac
 4.48001 ++	continue
 4.48002 ++	;;
 4.48003 ++
 4.48004 ++      -shared)
 4.48005 ++	# The effects of -shared are defined in a previous loop.
 4.48006 ++	continue
 4.48007 ++	;;
 4.48008 ++
 4.48009 ++      -shrext)
 4.48010 ++	prev=shrext
 4.48011 ++	continue
 4.48012 ++	;;
 4.48013 ++
 4.48014 ++      -static | -static-libtool-libs)
 4.48015 ++	# The effects of -static are defined in a previous loop.
 4.48016 ++	# We used to do the same as -all-static on platforms that
 4.48017 ++	# didn't have a PIC flag, but the assumption that the effects
 4.48018 ++	# would be equivalent was wrong.  It would break on at least
 4.48019 ++	# Digital Unix and AIX.
 4.48020 ++	continue
 4.48021 ++	;;
 4.48022 ++
 4.48023 ++      -thread-safe)
 4.48024 ++	thread_safe=yes
 4.48025 ++	continue
 4.48026 ++	;;
 4.48027 ++
 4.48028 ++      -version-info)
 4.48029 ++	prev=vinfo
 4.48030 ++	continue
 4.48031 ++	;;
 4.48032 ++
 4.48033 ++      -version-number)
 4.48034 ++	prev=vinfo
 4.48035 ++	vinfo_number=yes
 4.48036 ++	continue
 4.48037 ++	;;
 4.48038 ++
 4.48039 ++      -weak)
 4.48040 ++        prev=weak
 4.48041 ++	continue
 4.48042 ++	;;
 4.48043 ++
 4.48044 ++      -Wc,*)
 4.48045 ++	func_stripname '-Wc,' '' "$arg"
 4.48046 ++	args=$func_stripname_result
 4.48047 ++	arg=
 4.48048 ++	save_ifs="$IFS"; IFS=','
 4.48049 ++	for flag in $args; do
 4.48050 ++	  IFS="$save_ifs"
 4.48051 ++          func_quote_for_eval "$flag"
 4.48052 ++	  arg="$arg $wl$func_quote_for_eval_result"
 4.48053 ++	  compiler_flags="$compiler_flags $func_quote_for_eval_result"
 4.48054 ++	done
 4.48055 ++	IFS="$save_ifs"
 4.48056 ++	func_stripname ' ' '' "$arg"
 4.48057 ++	arg=$func_stripname_result
 4.48058 ++	;;
 4.48059 ++
 4.48060 ++      -Wl,*)
 4.48061 ++	func_stripname '-Wl,' '' "$arg"
 4.48062 ++	args=$func_stripname_result
 4.48063 ++	arg=
 4.48064 ++	save_ifs="$IFS"; IFS=','
 4.48065 ++	for flag in $args; do
 4.48066 ++	  IFS="$save_ifs"
 4.48067 ++          func_quote_for_eval "$flag"
 4.48068 ++	  arg="$arg $wl$func_quote_for_eval_result"
 4.48069 ++	  compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
 4.48070 ++	  linker_flags="$linker_flags $func_quote_for_eval_result"
 4.48071 ++	done
 4.48072 ++	IFS="$save_ifs"
 4.48073 ++	func_stripname ' ' '' "$arg"
 4.48074 ++	arg=$func_stripname_result
 4.48075 ++	;;
 4.48076 ++
 4.48077 ++      -Xcompiler)
 4.48078 ++	prev=xcompiler
 4.48079 ++	continue
 4.48080 ++	;;
 4.48081 ++
 4.48082 ++      -Xlinker)
 4.48083 ++	prev=xlinker
 4.48084 ++	continue
 4.48085 ++	;;
 4.48086 ++
 4.48087 ++      -XCClinker)
 4.48088 ++	prev=xcclinker
 4.48089 ++	continue
 4.48090 ++	;;
 4.48091 ++
 4.48092 ++      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
 4.48093 ++      # -r[0-9][0-9]* specifies the processor on the SGI compiler
 4.48094 ++      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
 4.48095 ++      # +DA*, +DD* enable 64-bit mode on the HP compiler
 4.48096 ++      # -q* pass through compiler args for the IBM compiler
 4.48097 ++      # -m*, -t[45]*, -txscale* pass through architecture-specific
 4.48098 ++      # compiler args for GCC
 4.48099 ++      # -F/path gives path to uninstalled frameworks, gcc on darwin
 4.48100 ++      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
 4.48101 ++      # @file GCC response files
 4.48102 ++      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
 4.48103 ++      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
 4.48104 ++        func_quote_for_eval "$arg"
 4.48105 ++	arg="$func_quote_for_eval_result"
 4.48106 ++        func_append compile_command " $arg"
 4.48107 ++        func_append finalize_command " $arg"
 4.48108 ++        compiler_flags="$compiler_flags $arg"
 4.48109 ++        continue
 4.48110 ++        ;;
 4.48111 ++
 4.48112 ++      # Some other compiler flag.
 4.48113 ++      -* | +*)
 4.48114 ++        func_quote_for_eval "$arg"
 4.48115 ++	arg="$func_quote_for_eval_result"
 4.48116 ++	;;
 4.48117 ++
 4.48118 ++      *.$objext)
 4.48119 ++	# A standard object.
 4.48120 ++	objs="$objs $arg"
 4.48121 ++	;;
 4.48122 ++
 4.48123 ++      *.lo)
 4.48124 ++	# A libtool-controlled object.
 4.48125 ++
 4.48126 ++	# Check to see that this really is a libtool object.
 4.48127 ++	if func_lalib_unsafe_p "$arg"; then
 4.48128 ++	  pic_object=
 4.48129 ++	  non_pic_object=
 4.48130 ++
 4.48131 ++	  # Read the .lo file
 4.48132 ++	  func_source "$arg"
 4.48133 ++
 4.48134 ++	  if test -z "$pic_object" ||
 4.48135 ++	     test -z "$non_pic_object" ||
 4.48136 ++	     test "$pic_object" = none &&
 4.48137 ++	     test "$non_pic_object" = none; then
 4.48138 ++	    func_fatal_error "cannot find name of object for \`$arg'"
 4.48139 ++	  fi
 4.48140 ++
 4.48141 ++	  # Extract subdirectory from the argument.
 4.48142 ++	  func_dirname "$arg" "/" ""
 4.48143 ++	  xdir="$func_dirname_result"
 4.48144 ++
 4.48145 ++	  if test "$pic_object" != none; then
 4.48146 ++	    # Prepend the subdirectory the object is found in.
 4.48147 ++	    pic_object="$xdir$pic_object"
 4.48148 ++
 4.48149 ++	    if test "$prev" = dlfiles; then
 4.48150 ++	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
 4.48151 ++		dlfiles="$dlfiles $pic_object"
 4.48152 ++		prev=
 4.48153 ++		continue
 4.48154 ++	      else
 4.48155 ++		# If libtool objects are unsupported, then we need to preload.
 4.48156 ++		prev=dlprefiles
 4.48157 ++	      fi
 4.48158 ++	    fi
 4.48159 ++
 4.48160 ++	    # CHECK ME:  I think I busted this.  -Ossama
 4.48161 ++	    if test "$prev" = dlprefiles; then
 4.48162 ++	      # Preload the old-style object.
 4.48163 ++	      dlprefiles="$dlprefiles $pic_object"
 4.48164 ++	      prev=
 4.48165 ++	    fi
 4.48166 ++
 4.48167 ++	    # A PIC object.
 4.48168 ++	    func_append libobjs " $pic_object"
 4.48169 ++	    arg="$pic_object"
 4.48170 ++	  fi
 4.48171 ++
 4.48172 ++	  # Non-PIC object.
 4.48173 ++	  if test "$non_pic_object" != none; then
 4.48174 ++	    # Prepend the subdirectory the object is found in.
 4.48175 ++	    non_pic_object="$xdir$non_pic_object"
 4.48176 ++
 4.48177 ++	    # A standard non-PIC object
 4.48178 ++	    func_append non_pic_objects " $non_pic_object"
 4.48179 ++	    if test -z "$pic_object" || test "$pic_object" = none ; then
 4.48180 ++	      arg="$non_pic_object"
 4.48181 ++	    fi
 4.48182 ++	  else
 4.48183 ++	    # If the PIC object exists, use it instead.
 4.48184 ++	    # $xdir was prepended to $pic_object above.
 4.48185 ++	    non_pic_object="$pic_object"
 4.48186 ++	    func_append non_pic_objects " $non_pic_object"
 4.48187 ++	  fi
 4.48188 ++	else
 4.48189 ++	  # Only an error if not doing a dry-run.
 4.48190 ++	  if $opt_dry_run; then
 4.48191 ++	    # Extract subdirectory from the argument.
 4.48192 ++	    func_dirname "$arg" "/" ""
 4.48193 ++	    xdir="$func_dirname_result"
 4.48194 ++
 4.48195 ++	    func_lo2o "$arg"
 4.48196 ++	    pic_object=$xdir$objdir/$func_lo2o_result
 4.48197 ++	    non_pic_object=$xdir$func_lo2o_result
 4.48198 ++	    func_append libobjs " $pic_object"
 4.48199 ++	    func_append non_pic_objects " $non_pic_object"
 4.48200 ++	  else
 4.48201 ++	    func_fatal_error "\`$arg' is not a valid libtool object"
 4.48202 ++	  fi
 4.48203 ++	fi
 4.48204 ++	;;
 4.48205 ++
 4.48206 ++      *.$libext)
 4.48207 ++	# An archive.
 4.48208 ++	deplibs="$deplibs $arg"
 4.48209 ++	old_deplibs="$old_deplibs $arg"
 4.48210 ++	continue
 4.48211 ++	;;
 4.48212 ++
 4.48213 ++      *.la)
 4.48214 ++	# A libtool-controlled library.
 4.48215 ++
 4.48216 ++	if test "$prev" = dlfiles; then
 4.48217 ++	  # This library was specified with -dlopen.
 4.48218 ++	  dlfiles="$dlfiles $arg"
 4.48219 ++	  prev=
 4.48220 ++	elif test "$prev" = dlprefiles; then
 4.48221 ++	  # The library was specified with -dlpreopen.
 4.48222 ++	  dlprefiles="$dlprefiles $arg"
 4.48223 ++	  prev=
 4.48224 ++	else
 4.48225 ++	  deplibs="$deplibs $arg"
 4.48226 ++	fi
 4.48227 ++	continue
 4.48228 ++	;;
 4.48229 ++
 4.48230 ++      # Some other compiler argument.
 4.48231 ++      *)
 4.48232 ++	# Unknown arguments in both finalize_command and compile_command need
 4.48233 ++	# to be aesthetically quoted because they are evaled later.
 4.48234 ++	func_quote_for_eval "$arg"
 4.48235 ++	arg="$func_quote_for_eval_result"
 4.48236 ++	;;
 4.48237 ++      esac # arg
 4.48238 ++
 4.48239 ++      # Now actually substitute the argument into the commands.
 4.48240 ++      if test -n "$arg"; then
 4.48241 ++	func_append compile_command " $arg"
 4.48242 ++	func_append finalize_command " $arg"
 4.48243 ++      fi
 4.48244 ++    done # argument parsing loop
 4.48245 ++
 4.48246 ++    test -n "$prev" && \
 4.48247 ++      func_fatal_help "the \`$prevarg' option requires an argument"
 4.48248 ++
 4.48249 ++    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
 4.48250 ++      eval arg=\"$export_dynamic_flag_spec\"
 4.48251 ++      func_append compile_command " $arg"
 4.48252 ++      func_append finalize_command " $arg"
 4.48253 ++    fi
 4.48254 ++
 4.48255 ++    oldlibs=
 4.48256 ++    # calculate the name of the file, without its directory
 4.48257 ++    func_basename "$output"
 4.48258 ++    outputname="$func_basename_result"
 4.48259 ++    libobjs_save="$libobjs"
 4.48260 ++
 4.48261 ++    if test -n "$shlibpath_var"; then
 4.48262 ++      # get the directories listed in $shlibpath_var
 4.48263 ++      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
 4.48264 ++    else
 4.48265 ++      shlib_search_path=
 4.48266 ++    fi
 4.48267 ++    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
 4.48268 ++    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
 4.48269 ++
 4.48270 ++    func_dirname "$output" "/" ""
 4.48271 ++    output_objdir="$func_dirname_result$objdir"
 4.48272 ++    # Create the object directory.
 4.48273 ++    func_mkdir_p "$output_objdir"
 4.48274 ++
 4.48275 ++    # Determine the type of output
 4.48276 ++    case $output in
 4.48277 ++    "")
 4.48278 ++      func_fatal_help "you must specify an output file"
 4.48279 ++      ;;
 4.48280 ++    *.$libext) linkmode=oldlib ;;
 4.48281 ++    *.lo | *.$objext) linkmode=obj ;;
 4.48282 ++    *.la) linkmode=lib ;;
 4.48283 ++    *) linkmode=prog ;; # Anything else should be a program.
 4.48284 ++    esac
 4.48285 ++
 4.48286 ++    specialdeplibs=
 4.48287 ++
 4.48288 ++    libs=
 4.48289 ++    # Find all interdependent deplibs by searching for libraries
 4.48290 ++    # that are linked more than once (e.g. -la -lb -la)
 4.48291 ++    for deplib in $deplibs; do
 4.48292 ++      if $opt_duplicate_deps ; then
 4.48293 ++	case "$libs " in
 4.48294 ++	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 4.48295 ++	esac
 4.48296 ++      fi
 4.48297 ++      libs="$libs $deplib"
 4.48298 ++    done
 4.48299 ++
 4.48300 ++    if test "$linkmode" = lib; then
 4.48301 ++      libs="$predeps $libs $compiler_lib_search_path $postdeps"
 4.48302 ++
 4.48303 ++      # Compute libraries that are listed more than once in $predeps
 4.48304 ++      # $postdeps and mark them as special (i.e., whose duplicates are
 4.48305 ++      # not to be eliminated).
 4.48306 ++      pre_post_deps=
 4.48307 ++      if $opt_duplicate_compiler_generated_deps; then
 4.48308 ++	for pre_post_dep in $predeps $postdeps; do
 4.48309 ++	  case "$pre_post_deps " in
 4.48310 ++	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
 4.48311 ++	  esac
 4.48312 ++	  pre_post_deps="$pre_post_deps $pre_post_dep"
 4.48313 ++	done
 4.48314 ++      fi
 4.48315 ++      pre_post_deps=
 4.48316 ++    fi
 4.48317 ++
 4.48318 ++    deplibs=
 4.48319 ++    newdependency_libs=
 4.48320 ++    newlib_search_path=
 4.48321 ++    need_relink=no # whether we're linking any uninstalled libtool libraries
 4.48322 ++    notinst_deplibs= # not-installed libtool libraries
 4.48323 ++    notinst_path= # paths that contain not-installed libtool libraries
 4.48324 ++
 4.48325 ++    case $linkmode in
 4.48326 ++    lib)
 4.48327 ++	passes="conv dlpreopen link"
 4.48328 ++	for file in $dlfiles $dlprefiles; do
 4.48329 ++	  case $file in
 4.48330 ++	  *.la) ;;
 4.48331 ++	  *)
 4.48332 ++	    func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
 4.48333 ++	    ;;
 4.48334 ++	  esac
 4.48335 ++	done
 4.48336 ++	;;
 4.48337 ++    prog)
 4.48338 ++	compile_deplibs=
 4.48339 ++	finalize_deplibs=
 4.48340 ++	alldeplibs=no
 4.48341 ++	newdlfiles=
 4.48342 ++	newdlprefiles=
 4.48343 ++	passes="conv scan dlopen dlpreopen link"
 4.48344 ++	;;
 4.48345 ++    *)  passes="conv"
 4.48346 ++	;;
 4.48347 ++    esac
 4.48348 ++
 4.48349 ++    for pass in $passes; do
 4.48350 ++      # The preopen pass in lib mode reverses $deplibs; put it back here
 4.48351 ++      # so that -L comes before libs that need it for instance...
 4.48352 ++      if test "$linkmode,$pass" = "lib,link"; then
 4.48353 ++	## FIXME: Find the place where the list is rebuilt in the wrong
 4.48354 ++	##        order, and fix it there properly
 4.48355 ++        tmp_deplibs=
 4.48356 ++	for deplib in $deplibs; do
 4.48357 ++	  tmp_deplibs="$deplib $tmp_deplibs"
 4.48358 ++	done
 4.48359 ++	deplibs="$tmp_deplibs"
 4.48360 ++      fi
 4.48361 ++
 4.48362 ++      if test "$linkmode,$pass" = "lib,link" ||
 4.48363 ++	 test "$linkmode,$pass" = "prog,scan"; then
 4.48364 ++	libs="$deplibs"
 4.48365 ++	deplibs=
 4.48366 ++      fi
 4.48367 ++      if test "$linkmode" = prog; then
 4.48368 ++	case $pass in
 4.48369 ++	dlopen) libs="$dlfiles" ;;
 4.48370 ++	dlpreopen) libs="$dlprefiles" ;;
 4.48371 ++	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
 4.48372 ++	esac
 4.48373 ++      fi
 4.48374 ++      if test "$linkmode,$pass" = "lib,dlpreopen"; then
 4.48375 ++	# Collect and forward deplibs of preopened libtool libs
 4.48376 ++	for lib in $dlprefiles; do
 4.48377 ++	  # Ignore non-libtool-libs
 4.48378 ++	  dependency_libs=
 4.48379 ++	  case $lib in
 4.48380 ++	  *.la)	func_source "$lib" ;;
 4.48381 ++	  esac
 4.48382 ++
 4.48383 ++	  # Collect preopened libtool deplibs, except any this library
 4.48384 ++	  # has declared as weak libs
 4.48385 ++	  for deplib in $dependency_libs; do
 4.48386 ++            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
 4.48387 ++	    case " $weak_libs " in
 4.48388 ++	    *" $deplib_base "*) ;;
 4.48389 ++	    *) deplibs="$deplibs $deplib" ;;
 4.48390 ++	    esac
 4.48391 ++	  done
 4.48392 ++	done
 4.48393 ++	libs="$dlprefiles"
 4.48394 ++      fi
 4.48395 ++      if test "$pass" = dlopen; then
 4.48396 ++	# Collect dlpreopened libraries
 4.48397 ++	save_deplibs="$deplibs"
 4.48398 ++	deplibs=
 4.48399 ++      fi
 4.48400 ++
 4.48401 ++      for deplib in $libs; do
 4.48402 ++	lib=
 4.48403 ++	found=no
 4.48404 ++	case $deplib in
 4.48405 ++	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
 4.48406 ++	  if test "$linkmode,$pass" = "prog,link"; then
 4.48407 ++	    compile_deplibs="$deplib $compile_deplibs"
 4.48408 ++	    finalize_deplibs="$deplib $finalize_deplibs"
 4.48409 ++	  else
 4.48410 ++	    compiler_flags="$compiler_flags $deplib"
 4.48411 ++	    if test "$linkmode" = lib ; then
 4.48412 ++		case "$new_inherited_linker_flags " in
 4.48413 ++		    *" $deplib "*) ;;
 4.48414 ++		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
 4.48415 ++		esac
 4.48416 ++	    fi
 4.48417 ++	  fi
 4.48418 ++	  continue
 4.48419 ++	  ;;
 4.48420 ++	-l*)
 4.48421 ++	  if test "$linkmode" != lib && test "$linkmode" != prog; then
 4.48422 ++	    func_warning "\`-l' is ignored for archives/objects"
 4.48423 ++	    continue
 4.48424 ++	  fi
 4.48425 ++	  func_stripname '-l' '' "$deplib"
 4.48426 ++	  name=$func_stripname_result
 4.48427 ++	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
 4.48428 ++	    for search_ext in .la $std_shrext .so .a; do
 4.48429 ++	      # Search the libtool library
 4.48430 ++	      lib="$searchdir/lib${name}${search_ext}"
 4.48431 ++	      if test -f "$lib"; then
 4.48432 ++		if test "$search_ext" = ".la"; then
 4.48433 ++		  found=yes
 4.48434 ++		else
 4.48435 ++		  found=no
 4.48436 ++		fi
 4.48437 ++		break 2
 4.48438 ++	      fi
 4.48439 ++	    done
 4.48440 ++	  done
 4.48441 ++	  if test "$found" != yes; then
 4.48442 ++	    # deplib doesn't seem to be a libtool library
 4.48443 ++	    if test "$linkmode,$pass" = "prog,link"; then
 4.48444 ++	      compile_deplibs="$deplib $compile_deplibs"
 4.48445 ++	      finalize_deplibs="$deplib $finalize_deplibs"
 4.48446 ++	    else
 4.48447 ++	      deplibs="$deplib $deplibs"
 4.48448 ++	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
 4.48449 ++	    fi
 4.48450 ++	    continue
 4.48451 ++	  else # deplib is a libtool library
 4.48452 ++	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
 4.48453 ++	    # We need to do some special things here, and not later.
 4.48454 ++	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 4.48455 ++	      case " $predeps $postdeps " in
 4.48456 ++	      *" $deplib "*)
 4.48457 ++		if func_lalib_p "$lib"; then
 4.48458 ++		  library_names=
 4.48459 ++		  old_library=
 4.48460 ++		  func_source "$lib"
 4.48461 ++		  for l in $old_library $library_names; do
 4.48462 ++		    ll="$l"
 4.48463 ++		  done
 4.48464 ++		  if test "X$ll" = "X$old_library" ; then # only static version available
 4.48465 ++		    found=no
 4.48466 ++		    func_dirname "$lib" "" "."
 4.48467 ++		    ladir="$func_dirname_result"
 4.48468 ++		    lib=$ladir/$old_library
 4.48469 ++		    if test "$linkmode,$pass" = "prog,link"; then
 4.48470 ++		      compile_deplibs="$deplib $compile_deplibs"
 4.48471 ++		      finalize_deplibs="$deplib $finalize_deplibs"
 4.48472 ++		    else
 4.48473 ++		      deplibs="$deplib $deplibs"
 4.48474 ++		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
 4.48475 ++		    fi
 4.48476 ++		    continue
 4.48477 ++		  fi
 4.48478 ++		fi
 4.48479 ++		;;
 4.48480 ++	      *) ;;
 4.48481 ++	      esac
 4.48482 ++	    fi
 4.48483 ++	  fi
 4.48484 ++	  ;; # -l
 4.48485 ++	*.ltframework)
 4.48486 ++	  if test "$linkmode,$pass" = "prog,link"; then
 4.48487 ++	    compile_deplibs="$deplib $compile_deplibs"
 4.48488 ++	    finalize_deplibs="$deplib $finalize_deplibs"
 4.48489 ++	  else
 4.48490 ++	    deplibs="$deplib $deplibs"
 4.48491 ++	    if test "$linkmode" = lib ; then
 4.48492 ++		case "$new_inherited_linker_flags " in
 4.48493 ++		    *" $deplib "*) ;;
 4.48494 ++		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
 4.48495 ++		esac
 4.48496 ++	    fi
 4.48497 ++	  fi
 4.48498 ++	  continue
 4.48499 ++	  ;;
 4.48500 ++	-L*)
 4.48501 ++	  case $linkmode in
 4.48502 ++	  lib)
 4.48503 ++	    deplibs="$deplib $deplibs"
 4.48504 ++	    test "$pass" = conv && continue
 4.48505 ++	    newdependency_libs="$deplib $newdependency_libs"
 4.48506 ++	    func_stripname '-L' '' "$deplib"
 4.48507 ++	    newlib_search_path="$newlib_search_path $func_stripname_result"
 4.48508 ++	    ;;
 4.48509 ++	  prog)
 4.48510 ++	    if test "$pass" = conv; then
 4.48511 ++	      deplibs="$deplib $deplibs"
 4.48512 ++	      continue
 4.48513 ++	    fi
 4.48514 ++	    if test "$pass" = scan; then
 4.48515 ++	      deplibs="$deplib $deplibs"
 4.48516 ++	    else
 4.48517 ++	      compile_deplibs="$deplib $compile_deplibs"
 4.48518 ++	      finalize_deplibs="$deplib $finalize_deplibs"
 4.48519 ++	    fi
 4.48520 ++	    func_stripname '-L' '' "$deplib"
 4.48521 ++	    newlib_search_path="$newlib_search_path $func_stripname_result"
 4.48522 ++	    ;;
 4.48523 ++	  *)
 4.48524 ++	    func_warning "\`-L' is ignored for archives/objects"
 4.48525 ++	    ;;
 4.48526 ++	  esac # linkmode
 4.48527 ++	  continue
 4.48528 ++	  ;; # -L
 4.48529 ++	-R*)
 4.48530 ++	  if test "$pass" = link; then
 4.48531 ++	    func_stripname '-R' '' "$deplib"
 4.48532 ++	    dir=$func_stripname_result
 4.48533 ++	    # Make sure the xrpath contains only unique directories.
 4.48534 ++	    case "$xrpath " in
 4.48535 ++	    *" $dir "*) ;;
 4.48536 ++	    *) xrpath="$xrpath $dir" ;;
 4.48537 ++	    esac
 4.48538 ++	  fi
 4.48539 ++	  deplibs="$deplib $deplibs"
 4.48540 ++	  continue
 4.48541 ++	  ;;
 4.48542 ++	*.la) lib="$deplib" ;;
 4.48543 ++	*.$libext)
 4.48544 ++	  if test "$pass" = conv; then
 4.48545 ++	    deplibs="$deplib $deplibs"
 4.48546 ++	    continue
 4.48547 ++	  fi
 4.48548 ++	  case $linkmode in
 4.48549 ++	  lib)
 4.48550 ++	    # Linking convenience modules into shared libraries is allowed,
 4.48551 ++	    # but linking other static libraries is non-portable.
 4.48552 ++	    case " $dlpreconveniencelibs " in
 4.48553 ++	    *" $deplib "*) ;;
 4.48554 ++	    *)
 4.48555 ++	      valid_a_lib=no
 4.48556 ++	      case $deplibs_check_method in
 4.48557 ++		match_pattern*)
 4.48558 ++		  set dummy $deplibs_check_method; shift
 4.48559 ++		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
 4.48560 ++		  if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
 4.48561 ++		    | $EGREP "$match_pattern_regex" > /dev/null; then
 4.48562 ++		    valid_a_lib=yes
 4.48563 ++		  fi
 4.48564 ++		;;
 4.48565 ++		pass_all)
 4.48566 ++		  valid_a_lib=yes
 4.48567 ++		;;
 4.48568 ++	      esac
 4.48569 ++	      if test "$valid_a_lib" != yes; then
 4.48570 ++		$ECHO
 4.48571 ++		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
 4.48572 ++		$ECHO "*** I have the capability to make that library automatically link in when"
 4.48573 ++		$ECHO "*** you link to this library.  But I can only do this if you have a"
 4.48574 ++		$ECHO "*** shared version of the library, which you do not appear to have"
 4.48575 ++		$ECHO "*** because the file extensions .$libext of this argument makes me believe"
 4.48576 ++		$ECHO "*** that it is just a static archive that I should not use here."
 4.48577 ++	      else
 4.48578 ++		$ECHO
 4.48579 ++		$ECHO "*** Warning: Linking the shared library $output against the"
 4.48580 ++		$ECHO "*** static library $deplib is not portable!"
 4.48581 ++		deplibs="$deplib $deplibs"
 4.48582 ++	      fi
 4.48583 ++	      ;;
 4.48584 ++	    esac
 4.48585 ++	    continue
 4.48586 ++	    ;;
 4.48587 ++	  prog)
 4.48588 ++	    if test "$pass" != link; then
 4.48589 ++	      deplibs="$deplib $deplibs"
 4.48590 ++	    else
 4.48591 ++	      compile_deplibs="$deplib $compile_deplibs"
 4.48592 ++	      finalize_deplibs="$deplib $finalize_deplibs"
 4.48593 ++	    fi
 4.48594 ++	    continue
 4.48595 ++	    ;;
 4.48596 ++	  esac # linkmode
 4.48597 ++	  ;; # *.$libext
 4.48598 ++	*.lo | *.$objext)
 4.48599 ++	  if test "$pass" = conv; then
 4.48600 ++	    deplibs="$deplib $deplibs"
 4.48601 ++	  elif test "$linkmode" = prog; then
 4.48602 ++	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
 4.48603 ++	      # If there is no dlopen support or we're linking statically,
 4.48604 ++	      # we need to preload.
 4.48605 ++	      newdlprefiles="$newdlprefiles $deplib"
 4.48606 ++	      compile_deplibs="$deplib $compile_deplibs"
 4.48607 ++	      finalize_deplibs="$deplib $finalize_deplibs"
 4.48608 ++	    else
 4.48609 ++	      newdlfiles="$newdlfiles $deplib"
 4.48610 ++	    fi
 4.48611 ++	  fi
 4.48612 ++	  continue
 4.48613 ++	  ;;
 4.48614 ++	%DEPLIBS%)
 4.48615 ++	  alldeplibs=yes
 4.48616 ++	  continue
 4.48617 ++	  ;;
 4.48618 ++	esac # case $deplib
 4.48619 ++
 4.48620 ++	if test "$found" = yes || test -f "$lib"; then :
 4.48621 ++	else
 4.48622 ++	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
 4.48623 ++	fi
 4.48624 ++
 4.48625 ++	# Check to see that this really is a libtool archive.
 4.48626 ++	func_lalib_unsafe_p "$lib" \
 4.48627 ++	  || func_fatal_error "\`$lib' is not a valid libtool archive"
 4.48628 ++
 4.48629 ++	func_dirname "$lib" "" "."
 4.48630 ++	ladir="$func_dirname_result"
 4.48631 ++
 4.48632 ++	dlname=
 4.48633 ++	dlopen=
 4.48634 ++	dlpreopen=
 4.48635 ++	libdir=
 4.48636 ++	library_names=
 4.48637 ++	old_library=
 4.48638 ++	inherited_linker_flags=
 4.48639 ++	# If the library was installed with an old release of libtool,
 4.48640 ++	# it will not redefine variables installed, or shouldnotlink
 4.48641 ++	installed=yes
 4.48642 ++	shouldnotlink=no
 4.48643 ++	avoidtemprpath=
 4.48644 ++
 4.48645 ++
 4.48646 ++	# Read the .la file
 4.48647 ++	func_source "$lib"
 4.48648 ++
 4.48649 ++	# Convert "-framework foo" to "foo.ltframework"
 4.48650 ++	if test -n "$inherited_linker_flags"; then
 4.48651 ++	  tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
 4.48652 ++	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
 4.48653 ++	    case " $new_inherited_linker_flags " in
 4.48654 ++	      *" $tmp_inherited_linker_flag "*) ;;
 4.48655 ++	      *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
 4.48656 ++	    esac
 4.48657 ++	  done
 4.48658 ++	fi
 4.48659 ++	dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 4.48660 ++	if test "$linkmode,$pass" = "prog,link"; then
 4.48661 ++	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
 4.48662 ++	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
 4.48663 ++	else
 4.48664 ++	  compiler_flags="$compiler_flags $inherited_linker_flags"
 4.48665 ++	fi
 4.48666 ++	if test "$linkmode,$pass" = "lib,link" ||
 4.48667 ++	   test "$linkmode,$pass" = "prog,scan" ||
 4.48668 ++	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
 4.48669 ++	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
 4.48670 ++	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
 4.48671 ++	fi
 4.48672 ++
 4.48673 ++	if test "$pass" = conv; then
 4.48674 ++	  # Only check for convenience libraries
 4.48675 ++	  deplibs="$lib $deplibs"
 4.48676 ++	  if test -z "$libdir"; then
 4.48677 ++	    if test -z "$old_library"; then
 4.48678 ++	      func_fatal_error "cannot find name of link library for \`$lib'"
 4.48679 ++	    fi
 4.48680 ++	    # It is a libtool convenience library, so add in its objects.
 4.48681 ++	    convenience="$convenience $ladir/$objdir/$old_library"
 4.48682 ++	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
 4.48683 ++	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
 4.48684 ++	    func_fatal_error "\`$lib' is not a convenience library"
 4.48685 ++	  fi
 4.48686 ++	  tmp_libs=
 4.48687 ++	  for deplib in $dependency_libs; do
 4.48688 ++	    deplibs="$deplib $deplibs"
 4.48689 ++	    if $opt_duplicate_deps ; then
 4.48690 ++	      case "$tmp_libs " in
 4.48691 ++	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 4.48692 ++	      esac
 4.48693 ++	    fi
 4.48694 ++	    tmp_libs="$tmp_libs $deplib"
 4.48695 ++	  done
 4.48696 ++	  continue
 4.48697 ++	fi # $pass = conv
 4.48698 ++
 4.48699 ++
 4.48700 ++	# Get the name of the library we link against.
 4.48701 ++	linklib=
 4.48702 ++	for l in $old_library $library_names; do
 4.48703 ++	  linklib="$l"
 4.48704 ++	done
 4.48705 ++	if test -z "$linklib"; then
 4.48706 ++	  func_fatal_error "cannot find name of link library for \`$lib'"
 4.48707 ++	fi
 4.48708 ++
 4.48709 ++	# This library was specified with -dlopen.
 4.48710 ++	if test "$pass" = dlopen; then
 4.48711 ++	  if test -z "$libdir"; then
 4.48712 ++	    func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
 4.48713 ++	  fi
 4.48714 ++	  if test -z "$dlname" ||
 4.48715 ++	     test "$dlopen_support" != yes ||
 4.48716 ++	     test "$build_libtool_libs" = no; then
 4.48717 ++	    # If there is no dlname, no dlopen support or we're linking
 4.48718 ++	    # statically, we need to preload.  We also need to preload any
 4.48719 ++	    # dependent libraries so libltdl's deplib preloader doesn't
 4.48720 ++	    # bomb out in the load deplibs phase.
 4.48721 ++	    dlprefiles="$dlprefiles $lib $dependency_libs"
 4.48722 ++	  else
 4.48723 ++	    newdlfiles="$newdlfiles $lib"
 4.48724 ++	  fi
 4.48725 ++	  continue
 4.48726 ++	fi # $pass = dlopen
 4.48727 ++
 4.48728 ++	# We need an absolute path.
 4.48729 ++	case $ladir in
 4.48730 ++	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
 4.48731 ++	*)
 4.48732 ++	  abs_ladir=`cd "$ladir" && pwd`
 4.48733 ++	  if test -z "$abs_ladir"; then
 4.48734 ++	    func_warning "cannot determine absolute directory name of \`$ladir'"
 4.48735 ++	    func_warning "passing it literally to the linker, although it might fail"
 4.48736 ++	    abs_ladir="$ladir"
 4.48737 ++	  fi
 4.48738 ++	  ;;
 4.48739 ++	esac
 4.48740 ++	func_basename "$lib"
 4.48741 ++	laname="$func_basename_result"
 4.48742 ++
 4.48743 ++	# Find the relevant object directory and library name.
 4.48744 ++	if test "X$installed" = Xyes; then
 4.48745 ++	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
 4.48746 ++	    func_warning "library \`$lib' was moved."
 4.48747 ++	    dir="$ladir"
 4.48748 ++	    absdir="$abs_ladir"
 4.48749 ++	    libdir="$abs_ladir"
 4.48750 ++	  else
 4.48751 ++	    dir="$libdir"
 4.48752 ++	    absdir="$libdir"
 4.48753 ++	  fi
 4.48754 ++	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
 4.48755 ++	else
 4.48756 ++	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
 4.48757 ++	    dir="$ladir"
 4.48758 ++	    absdir="$abs_ladir"
 4.48759 ++	    # Remove this search path later
 4.48760 ++	    notinst_path="$notinst_path $abs_ladir"
 4.48761 ++	  else
 4.48762 ++	    dir="$ladir/$objdir"
 4.48763 ++	    absdir="$abs_ladir/$objdir"
 4.48764 ++	    # Remove this search path later
 4.48765 ++	    notinst_path="$notinst_path $abs_ladir"
 4.48766 ++	  fi
 4.48767 ++	fi # $installed = yes
 4.48768 ++	func_stripname 'lib' '.la' "$laname"
 4.48769 ++	name=$func_stripname_result
 4.48770 ++
 4.48771 ++	# This library was specified with -dlpreopen.
 4.48772 ++	if test "$pass" = dlpreopen; then
 4.48773 ++	  if test -z "$libdir" && test "$linkmode" = prog; then
 4.48774 ++	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
 4.48775 ++	  fi
 4.48776 ++	  # Prefer using a static library (so that no silly _DYNAMIC symbols
 4.48777 ++	  # are required to link).
 4.48778 ++	  if test -n "$old_library"; then
 4.48779 ++	    newdlprefiles="$newdlprefiles $dir/$old_library"
 4.48780 ++	    # Keep a list of preopened convenience libraries to check
 4.48781 ++	    # that they are being used correctly in the link pass.
 4.48782 ++	    test -z "$libdir" && \
 4.48783 ++		dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
 4.48784 ++	  # Otherwise, use the dlname, so that lt_dlopen finds it.
 4.48785 ++	  elif test -n "$dlname"; then
 4.48786 ++	    newdlprefiles="$newdlprefiles $dir/$dlname"
 4.48787 ++	  else
 4.48788 ++	    newdlprefiles="$newdlprefiles $dir/$linklib"
 4.48789 ++	  fi
 4.48790 ++	fi # $pass = dlpreopen
 4.48791 ++
 4.48792 ++	if test -z "$libdir"; then
 4.48793 ++	  # Link the convenience library
 4.48794 ++	  if test "$linkmode" = lib; then
 4.48795 ++	    deplibs="$dir/$old_library $deplibs"
 4.48796 ++	  elif test "$linkmode,$pass" = "prog,link"; then
 4.48797 ++	    compile_deplibs="$dir/$old_library $compile_deplibs"
 4.48798 ++	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
 4.48799 ++	  else
 4.48800 ++	    deplibs="$lib $deplibs" # used for prog,scan pass
 4.48801 ++	  fi
 4.48802 ++	  continue
 4.48803 ++	fi
 4.48804 ++
 4.48805 ++
 4.48806 ++	if test "$linkmode" = prog && test "$pass" != link; then
 4.48807 ++	  newlib_search_path="$newlib_search_path $ladir"
 4.48808 ++	  deplibs="$lib $deplibs"
 4.48809 ++
 4.48810 ++	  linkalldeplibs=no
 4.48811 ++	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
 4.48812 ++	     test "$build_libtool_libs" = no; then
 4.48813 ++	    linkalldeplibs=yes
 4.48814 ++	  fi
 4.48815 ++
 4.48816 ++	  tmp_libs=
 4.48817 ++	  for deplib in $dependency_libs; do
 4.48818 ++	    case $deplib in
 4.48819 ++	    -L*) func_stripname '-L' '' "$deplib"
 4.48820 ++	         newlib_search_path="$newlib_search_path $func_stripname_result"
 4.48821 ++		 ;;
 4.48822 ++	    esac
 4.48823 ++	    # Need to link against all dependency_libs?
 4.48824 ++	    if test "$linkalldeplibs" = yes; then
 4.48825 ++	      deplibs="$deplib $deplibs"
 4.48826 ++	    else
 4.48827 ++	      # Need to hardcode shared library paths
 4.48828 ++	      # or/and link against static libraries
 4.48829 ++	      newdependency_libs="$deplib $newdependency_libs"
 4.48830 ++	    fi
 4.48831 ++	    if $opt_duplicate_deps ; then
 4.48832 ++	      case "$tmp_libs " in
 4.48833 ++	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 4.48834 ++	      esac
 4.48835 ++	    fi
 4.48836 ++	    tmp_libs="$tmp_libs $deplib"
 4.48837 ++	  done # for deplib
 4.48838 ++	  continue
 4.48839 ++	fi # $linkmode = prog...
 4.48840 ++
 4.48841 ++	if test "$linkmode,$pass" = "prog,link"; then
 4.48842 ++	  if test -n "$library_names" &&
 4.48843 ++	     { { test "$prefer_static_libs" = no ||
 4.48844 ++	         test "$prefer_static_libs,$installed" = "built,yes"; } ||
 4.48845 ++	       test -z "$old_library"; }; then
 4.48846 ++	    # We need to hardcode the library path
 4.48847 ++	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
 4.48848 ++	      # Make sure the rpath contains only unique directories.
 4.48849 ++	      case "$temp_rpath:" in
 4.48850 ++	      *"$absdir:"*) ;;
 4.48851 ++	      *) temp_rpath="$temp_rpath$absdir:" ;;
 4.48852 ++	      esac
 4.48853 ++	    fi
 4.48854 ++
 4.48855 ++	    # Hardcode the library path.
 4.48856 ++	    # Skip directories that are in the system default run-time
 4.48857 ++	    # search path.
 4.48858 ++	    case " $sys_lib_dlsearch_path " in
 4.48859 ++	    *" $absdir "*) ;;
 4.48860 ++	    *)
 4.48861 ++	      case "$compile_rpath " in
 4.48862 ++	      *" $absdir "*) ;;
 4.48863 ++	      *) compile_rpath="$compile_rpath $absdir"
 4.48864 ++	      esac
 4.48865 ++	      ;;
 4.48866 ++	    esac
 4.48867 ++	    case " $sys_lib_dlsearch_path " in
 4.48868 ++	    *" $libdir "*) ;;
 4.48869 ++	    *)
 4.48870 ++	      case "$finalize_rpath " in
 4.48871 ++	      *" $libdir "*) ;;
 4.48872 ++	      *) finalize_rpath="$finalize_rpath $libdir"
 4.48873 ++	      esac
 4.48874 ++	      ;;
 4.48875 ++	    esac
 4.48876 ++	  fi # $linkmode,$pass = prog,link...
 4.48877 ++
 4.48878 ++	  if test "$alldeplibs" = yes &&
 4.48879 ++	     { test "$deplibs_check_method" = pass_all ||
 4.48880 ++	       { test "$build_libtool_libs" = yes &&
 4.48881 ++		 test -n "$library_names"; }; }; then
 4.48882 ++	    # We only need to search for static libraries
 4.48883 ++	    continue
 4.48884 ++	  fi
 4.48885 ++	fi
 4.48886 ++
 4.48887 ++	link_static=no # Whether the deplib will be linked statically
 4.48888 ++	use_static_libs=$prefer_static_libs
 4.48889 ++	if test "$use_static_libs" = built && test "$installed" = yes; then
 4.48890 ++	  use_static_libs=no
 4.48891 ++	fi
 4.48892 ++	if test -n "$library_names" &&
 4.48893 ++	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
 4.48894 ++	  case $host in
 4.48895 ++	  *cygwin* | *mingw*)
 4.48896 ++	      # No point in relinking DLLs because paths are not encoded
 4.48897 ++	      notinst_deplibs="$notinst_deplibs $lib"
 4.48898 ++	      need_relink=no
 4.48899 ++	    ;;
 4.48900 ++	  *)
 4.48901 ++	    if test "$installed" = no; then
 4.48902 ++	      notinst_deplibs="$notinst_deplibs $lib"
 4.48903 ++	      need_relink=yes
 4.48904 ++	    fi
 4.48905 ++	    ;;
 4.48906 ++	  esac
 4.48907 ++	  # This is a shared library
 4.48908 ++
 4.48909 ++	  # Warn about portability, can't link against -module's on some
 4.48910 ++	  # systems (darwin).  Don't bleat about dlopened modules though!
 4.48911 ++	  dlopenmodule=""
 4.48912 ++	  for dlpremoduletest in $dlprefiles; do
 4.48913 ++	    if test "X$dlpremoduletest" = "X$lib"; then
 4.48914 ++	      dlopenmodule="$dlpremoduletest"
 4.48915 ++	      break
 4.48916 ++	    fi
 4.48917 ++	  done
 4.48918 ++	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
 4.48919 ++	    $ECHO
 4.48920 ++	    if test "$linkmode" = prog; then
 4.48921 ++	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
 4.48922 ++	    else
 4.48923 ++	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
 4.48924 ++	    fi
 4.48925 ++	    $ECHO "*** $linklib is not portable!"
 4.48926 ++	  fi
 4.48927 ++	  if test "$linkmode" = lib &&
 4.48928 ++	     test "$hardcode_into_libs" = yes; then
 4.48929 ++	    # Hardcode the library path.
 4.48930 ++	    # Skip directories that are in the system default run-time
 4.48931 ++	    # search path.
 4.48932 ++	    case " $sys_lib_dlsearch_path " in
 4.48933 ++	    *" $absdir "*) ;;
 4.48934 ++	    *)
 4.48935 ++	      case "$compile_rpath " in
 4.48936 ++	      *" $absdir "*) ;;
 4.48937 ++	      *) compile_rpath="$compile_rpath $absdir"
 4.48938 ++	      esac
 4.48939 ++	      ;;
 4.48940 ++	    esac
 4.48941 ++	    case " $sys_lib_dlsearch_path " in
 4.48942 ++	    *" $libdir "*) ;;
 4.48943 ++	    *)
 4.48944 ++	      case "$finalize_rpath " in
 4.48945 ++	      *" $libdir "*) ;;
 4.48946 ++	      *) finalize_rpath="$finalize_rpath $libdir"
 4.48947 ++	      esac
 4.48948 ++	      ;;
 4.48949 ++	    esac
 4.48950 ++	  fi
 4.48951 ++
 4.48952 ++	  if test -n "$old_archive_from_expsyms_cmds"; then
 4.48953 ++	    # figure out the soname
 4.48954 ++	    set dummy $library_names
 4.48955 ++	    shift
 4.48956 ++	    realname="$1"
 4.48957 ++	    shift
 4.48958 ++	    libname=`eval "\\$ECHO \"$libname_spec\""`
 4.48959 ++	    # use dlname if we got it. it's perfectly good, no?
 4.48960 ++	    if test -n "$dlname"; then
 4.48961 ++	      soname="$dlname"
 4.48962 ++	    elif test -n "$soname_spec"; then
 4.48963 ++	      # bleh windows
 4.48964 ++	      case $host in
 4.48965 ++	      *cygwin* | mingw*)
 4.48966 ++		major=`expr $current - $age`
 4.48967 ++		versuffix="-$major"
 4.48968 ++		;;
 4.48969 ++	      esac
 4.48970 ++	      eval soname=\"$soname_spec\"
 4.48971 ++	    else
 4.48972 ++	      soname="$realname"
 4.48973 ++	    fi
 4.48974 ++
 4.48975 ++	    # Make a new name for the extract_expsyms_cmds to use
 4.48976 ++	    soroot="$soname"
 4.48977 ++	    func_basename "$soroot"
 4.48978 ++	    soname="$func_basename_result"
 4.48979 ++	    func_stripname 'lib' '.dll' "$soname"
 4.48980 ++	    newlib=libimp-$func_stripname_result.a
 4.48981 ++
 4.48982 ++	    # If the library has no export list, then create one now
 4.48983 ++	    if test -f "$output_objdir/$soname-def"; then :
 4.48984 ++	    else
 4.48985 ++	      func_echo "extracting exported symbol list from \`$soname'"
 4.48986 ++	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
 4.48987 ++	    fi
 4.48988 ++
 4.48989 ++	    # Create $newlib
 4.48990 ++	    if test -f "$output_objdir/$newlib"; then :; else
 4.48991 ++	      func_echo "generating import library for \`$soname'"
 4.48992 ++	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
 4.48993 ++	    fi
 4.48994 ++	    # make sure the library variables are pointing to the new library
 4.48995 ++	    dir=$output_objdir
 4.48996 ++	    linklib=$newlib
 4.48997 ++	  fi # test -n "$old_archive_from_expsyms_cmds"
 4.48998 ++
 4.48999 ++	  if test "$linkmode" = prog || test "$mode" != relink; then
 4.49000 ++	    add_shlibpath=
 4.49001 ++	    add_dir=
 4.49002 ++	    add=
 4.49003 ++	    lib_linked=yes
 4.49004 ++	    case $hardcode_action in
 4.49005 ++	    immediate | unsupported)
 4.49006 ++	      if test "$hardcode_direct" = no; then
 4.49007 ++		add="$dir/$linklib"
 4.49008 ++		case $host in
 4.49009 ++		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
 4.49010 ++		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
 4.49011 ++		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
 4.49012 ++		    *-*-unixware7*) add_dir="-L$dir" ;;
 4.49013 ++		  *-*-darwin* )
 4.49014 ++		    # if the lib is a (non-dlopened) module then we can not
 4.49015 ++		    # link against it, someone is ignoring the earlier warnings
 4.49016 ++		    if /usr/bin/file -L $add 2> /dev/null |
 4.49017 ++			 $GREP ": [^:]* bundle" >/dev/null ; then
 4.49018 ++		      if test "X$dlopenmodule" != "X$lib"; then
 4.49019 ++			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
 4.49020 ++			if test -z "$old_library" ; then
 4.49021 ++			  $ECHO
 4.49022 ++			  $ECHO "*** And there doesn't seem to be a static archive available"
 4.49023 ++			  $ECHO "*** The link will probably fail, sorry"
 4.49024 ++			else
 4.49025 ++			  add="$dir/$old_library"
 4.49026 ++			fi
 4.49027 ++		      elif test -n "$old_library"; then
 4.49028 ++			add="$dir/$old_library"
 4.49029 ++		      fi
 4.49030 ++		    fi
 4.49031 ++		esac
 4.49032 ++	      elif test "$hardcode_minus_L" = no; then
 4.49033 ++		case $host in
 4.49034 ++		*-*-sunos*) add_shlibpath="$dir" ;;
 4.49035 ++		esac
 4.49036 ++		add_dir="-L$dir"
 4.49037 ++		add="-l$name"
 4.49038 ++	      elif test "$hardcode_shlibpath_var" = no; then
 4.49039 ++		add_shlibpath="$dir"
 4.49040 ++		add="-l$name"
 4.49041 ++	      else
 4.49042 ++		lib_linked=no
 4.49043 ++	      fi
 4.49044 ++	      ;;
 4.49045 ++	    relink)
 4.49046 ++	      if test "$hardcode_direct" = yes &&
 4.49047 ++	         test "$hardcode_direct_absolute" = no; then
 4.49048 ++		add="$dir/$linklib"
 4.49049 ++	      elif test "$hardcode_minus_L" = yes; then
 4.49050 ++		add_dir="-L$dir"
 4.49051 ++		# Try looking first in the location we're being installed to.
 4.49052 ++		if test -n "$inst_prefix_dir"; then
 4.49053 ++		  case $libdir in
 4.49054 ++		    [\\/]*)
 4.49055 ++		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
 4.49056 ++		      ;;
 4.49057 ++		  esac
 4.49058 ++		fi
 4.49059 ++		add="-l$name"
 4.49060 ++	      elif test "$hardcode_shlibpath_var" = yes; then
 4.49061 ++		add_shlibpath="$dir"
 4.49062 ++		add="-l$name"
 4.49063 ++	      else
 4.49064 ++		lib_linked=no
 4.49065 ++	      fi
 4.49066 ++	      ;;
 4.49067 ++	    *) lib_linked=no ;;
 4.49068 ++	    esac
 4.49069 ++
 4.49070 ++	    if test "$lib_linked" != yes; then
 4.49071 ++	      func_fatal_configuration "unsupported hardcode properties"
 4.49072 ++	    fi
 4.49073 ++
 4.49074 ++	    if test -n "$add_shlibpath"; then
 4.49075 ++	      case :$compile_shlibpath: in
 4.49076 ++	      *":$add_shlibpath:"*) ;;
 4.49077 ++	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
 4.49078 ++	      esac
 4.49079 ++	    fi
 4.49080 ++	    if test "$linkmode" = prog; then
 4.49081 ++	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
 4.49082 ++	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
 4.49083 ++	    else
 4.49084 ++	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
 4.49085 ++	      test -n "$add" && deplibs="$add $deplibs"
 4.49086 ++	      if test "$hardcode_direct" != yes &&
 4.49087 ++		 test "$hardcode_minus_L" != yes &&
 4.49088 ++		 test "$hardcode_shlibpath_var" = yes; then
 4.49089 ++		case :$finalize_shlibpath: in
 4.49090 ++		*":$libdir:"*) ;;
 4.49091 ++		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
 4.49092 ++		esac
 4.49093 ++	      fi
 4.49094 ++	    fi
 4.49095 ++	  fi
 4.49096 ++
 4.49097 ++	  if test "$linkmode" = prog || test "$mode" = relink; then
 4.49098 ++	    add_shlibpath=
 4.49099 ++	    add_dir=
 4.49100 ++	    add=
 4.49101 ++	    # Finalize command for both is simple: just hardcode it.
 4.49102 ++	    if test "$hardcode_direct" = yes &&
 4.49103 ++	       test "$hardcode_direct_absolute" = no; then
 4.49104 ++	      add="$libdir/$linklib"
 4.49105 ++	    elif test "$hardcode_minus_L" = yes; then
 4.49106 ++	      add_dir="-L$libdir"
 4.49107 ++	      add="-l$name"
 4.49108 ++	    elif test "$hardcode_shlibpath_var" = yes; then
 4.49109 ++	      case :$finalize_shlibpath: in
 4.49110 ++	      *":$libdir:"*) ;;
 4.49111 ++	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
 4.49112 ++	      esac
 4.49113 ++	      add="-l$name"
 4.49114 ++	    elif test "$hardcode_automatic" = yes; then
 4.49115 ++	      if test -n "$inst_prefix_dir" &&
 4.49116 ++		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
 4.49117 ++		add="$inst_prefix_dir$libdir/$linklib"
 4.49118 ++	      else
 4.49119 ++		add="$libdir/$linklib"
 4.49120 ++	      fi
 4.49121 ++	    else
 4.49122 ++	      # We cannot seem to hardcode it, guess we'll fake it.
 4.49123 ++	      add_dir="-L$libdir"
 4.49124 ++	      # Try looking first in the location we're being installed to.
 4.49125 ++	      if test -n "$inst_prefix_dir"; then
 4.49126 ++		case $libdir in
 4.49127 ++		  [\\/]*)
 4.49128 ++		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
 4.49129 ++		    ;;
 4.49130 ++		esac
 4.49131 ++	      fi
 4.49132 ++	      add="-l$name"
 4.49133 ++	    fi
 4.49134 ++
 4.49135 ++	    if test "$linkmode" = prog; then
 4.49136 ++	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
 4.49137 ++	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
 4.49138 ++	    else
 4.49139 ++	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
 4.49140 ++	      test -n "$add" && deplibs="$add $deplibs"
 4.49141 ++	    fi
 4.49142 ++	  fi
 4.49143 ++	elif test "$linkmode" = prog; then
 4.49144 ++	  # Here we assume that one of hardcode_direct or hardcode_minus_L
 4.49145 ++	  # is not unsupported.  This is valid on all known static and
 4.49146 ++	  # shared platforms.
 4.49147 ++	  if test "$hardcode_direct" != unsupported; then
 4.49148 ++	    test -n "$old_library" && linklib="$old_library"
 4.49149 ++	    compile_deplibs="$dir/$linklib $compile_deplibs"
 4.49150 ++	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
 4.49151 ++	  else
 4.49152 ++	    compile_deplibs="-l$name -L$dir $compile_deplibs"
 4.49153 ++	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
 4.49154 ++	  fi
 4.49155 ++	elif test "$build_libtool_libs" = yes; then
 4.49156 ++	  # Not a shared library
 4.49157 ++	  if test "$deplibs_check_method" != pass_all; then
 4.49158 ++	    # We're trying link a shared library against a static one
 4.49159 ++	    # but the system doesn't support it.
 4.49160 ++
 4.49161 ++	    # Just print a warning and add the library to dependency_libs so
 4.49162 ++	    # that the program can be linked against the static library.
 4.49163 ++	    $ECHO
 4.49164 ++	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
 4.49165 ++	    $ECHO "*** I have the capability to make that library automatically link in when"
 4.49166 ++	    $ECHO "*** you link to this library.  But I can only do this if you have a"
 4.49167 ++	    $ECHO "*** shared version of the library, which you do not appear to have."
 4.49168 ++	    if test "$module" = yes; then
 4.49169 ++	      $ECHO "*** But as you try to build a module library, libtool will still create "
 4.49170 ++	      $ECHO "*** a static module, that should work as long as the dlopening application"
 4.49171 ++	      $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
 4.49172 ++	      if test -z "$global_symbol_pipe"; then
 4.49173 ++		$ECHO
 4.49174 ++		$ECHO "*** However, this would only work if libtool was able to extract symbol"
 4.49175 ++		$ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
 4.49176 ++		$ECHO "*** not find such a program.  So, this module is probably useless."
 4.49177 ++		$ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
 4.49178 ++	      fi
 4.49179 ++	      if test "$build_old_libs" = no; then
 4.49180 ++		build_libtool_libs=module
 4.49181 ++		build_old_libs=yes
 4.49182 ++	      else
 4.49183 ++		build_libtool_libs=no
 4.49184 ++	      fi
 4.49185 ++	    fi
 4.49186 ++	  else
 4.49187 ++	    deplibs="$dir/$old_library $deplibs"
 4.49188 ++	    link_static=yes
 4.49189 ++	  fi
 4.49190 ++	fi # link shared/static library?
 4.49191 ++
 4.49192 ++	if test "$linkmode" = lib; then
 4.49193 ++	  if test -n "$dependency_libs" &&
 4.49194 ++	     { test "$hardcode_into_libs" != yes ||
 4.49195 ++	       test "$build_old_libs" = yes ||
 4.49196 ++	       test "$link_static" = yes; }; then
 4.49197 ++	    # Extract -R from dependency_libs
 4.49198 ++	    temp_deplibs=
 4.49199 ++	    for libdir in $dependency_libs; do
 4.49200 ++	      case $libdir in
 4.49201 ++	      -R*) func_stripname '-R' '' "$libdir"
 4.49202 ++	           temp_xrpath=$func_stripname_result
 4.49203 ++		   case " $xrpath " in
 4.49204 ++		   *" $temp_xrpath "*) ;;
 4.49205 ++		   *) xrpath="$xrpath $temp_xrpath";;
 4.49206 ++		   esac;;
 4.49207 ++	      *) temp_deplibs="$temp_deplibs $libdir";;
 4.49208 ++	      esac
 4.49209 ++	    done
 4.49210 ++	    dependency_libs="$temp_deplibs"
 4.49211 ++	  fi
 4.49212 ++
 4.49213 ++	  newlib_search_path="$newlib_search_path $absdir"
 4.49214 ++	  # Link against this library
 4.49215 ++	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
 4.49216 ++	  # ... and its dependency_libs
 4.49217 ++	  tmp_libs=
 4.49218 ++	  for deplib in $dependency_libs; do
 4.49219 ++	    newdependency_libs="$deplib $newdependency_libs"
 4.49220 ++	    if $opt_duplicate_deps ; then
 4.49221 ++	      case "$tmp_libs " in
 4.49222 ++	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 4.49223 ++	      esac
 4.49224 ++	    fi
 4.49225 ++	    tmp_libs="$tmp_libs $deplib"
 4.49226 ++	  done
 4.49227 ++
 4.49228 ++	  if test "$link_all_deplibs" != no; then
 4.49229 ++	    # Add the search paths of all dependency libraries
 4.49230 ++	    for deplib in $dependency_libs; do
 4.49231 ++	      case $deplib in
 4.49232 ++	      -L*) path="$deplib" ;;
 4.49233 ++	      *.la)
 4.49234 ++	        func_dirname "$deplib" "" "."
 4.49235 ++		dir="$func_dirname_result"
 4.49236 ++		# We need an absolute path.
 4.49237 ++		case $dir in
 4.49238 ++		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
 4.49239 ++		*)
 4.49240 ++		  absdir=`cd "$dir" && pwd`
 4.49241 ++		  if test -z "$absdir"; then
 4.49242 ++		    func_warning "cannot determine absolute directory name of \`$dir'"
 4.49243 ++		    absdir="$dir"
 4.49244 ++		  fi
 4.49245 ++		  ;;
 4.49246 ++		esac
 4.49247 ++		if $GREP "^installed=no" $deplib > /dev/null; then
 4.49248 ++		case $host in
 4.49249 ++		*-*-darwin*)
 4.49250 ++		  depdepl=
 4.49251 ++		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
 4.49252 ++		  if test -n "$deplibrary_names" ; then
 4.49253 ++		    for tmp in $deplibrary_names ; do
 4.49254 ++		      depdepl=$tmp
 4.49255 ++		    done
 4.49256 ++		    if test -f "$absdir/$objdir/$depdepl" ; then
 4.49257 ++		      depdepl="$absdir/$objdir/$depdepl"
 4.49258 ++		      darwin_install_name=`otool -L $depdepl | $SED -n -e '3q;2,2p' | $SED -e 's/(.*//'`
 4.49259 ++		      darwin_install_name=`$ECHO $darwin_install_name`
 4.49260 ++                      if test -z "$darwin_install_name"; then
 4.49261 ++                          darwin_install_name=`otool64 -L $depdepl | $SED -n -e '3q;2,2p' | $SED -e 's/(.*//'`
 4.49262 ++                          darwin_install_name=`$ECHO $darwin_install_name`
 4.49263 ++                      fi
 4.49264 ++		      compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
 4.49265 ++		      linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
 4.49266 ++		      path=
 4.49267 ++		    fi
 4.49268 ++		  fi
 4.49269 ++		  ;;
 4.49270 ++		*)
 4.49271 ++		  path="-L$absdir/$objdir"
 4.49272 ++		  ;;
 4.49273 ++		esac
 4.49274 ++		else
 4.49275 ++		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
 4.49276 ++		  test -z "$libdir" && \
 4.49277 ++		    func_fatal_error "\`$deplib' is not a valid libtool archive"
 4.49278 ++		  test "$absdir" != "$libdir" && \
 4.49279 ++		    func_warning "\`$deplib' seems to be moved"
 4.49280 ++
 4.49281 ++		  path="-L$absdir"
 4.49282 ++		fi
 4.49283 ++		;;
 4.49284 ++	      esac
 4.49285 ++	      case " $deplibs " in
 4.49286 ++	      *" $path "*) ;;
 4.49287 ++	      *) deplibs="$path $deplibs" ;;
 4.49288 ++	      esac
 4.49289 ++	    done
 4.49290 ++	  fi # link_all_deplibs != no
 4.49291 ++	fi # linkmode = lib
 4.49292 ++      done # for deplib in $libs
 4.49293 ++      dependency_libs="$newdependency_libs"
 4.49294 ++      if test "$pass" = dlpreopen; then
 4.49295 ++	# Link the dlpreopened libraries before other libraries
 4.49296 ++	for deplib in $save_deplibs; do
 4.49297 ++	  deplibs="$deplib $deplibs"
 4.49298 ++	done
 4.49299 ++      fi
 4.49300 ++      if test "$pass" != dlopen; then
 4.49301 ++	if test "$pass" != conv; then
 4.49302 ++	  # Make sure lib_search_path contains only unique directories.
 4.49303 ++	  lib_search_path=
 4.49304 ++	  for dir in $newlib_search_path; do
 4.49305 ++	    case "$lib_search_path " in
 4.49306 ++	    *" $dir "*) ;;
 4.49307 ++	    *) lib_search_path="$lib_search_path $dir" ;;
 4.49308 ++	    esac
 4.49309 ++	  done
 4.49310 ++	  newlib_search_path=
 4.49311 ++	fi
 4.49312 ++
 4.49313 ++	if test "$linkmode,$pass" != "prog,link"; then
 4.49314 ++	  vars="deplibs"
 4.49315 ++	else
 4.49316 ++	  vars="compile_deplibs finalize_deplibs"
 4.49317 ++	fi
 4.49318 ++	for var in $vars dependency_libs; do
 4.49319 ++	  # Add libraries to $var in reverse order
 4.49320 ++	  eval tmp_libs=\"\$$var\"
 4.49321 ++	  new_libs=
 4.49322 ++	  for deplib in $tmp_libs; do
 4.49323 ++	    # FIXME: Pedantically, this is the right thing to do, so
 4.49324 ++	    #        that some nasty dependency loop isn't accidentally
 4.49325 ++	    #        broken:
 4.49326 ++	    #new_libs="$deplib $new_libs"
 4.49327 ++	    # Pragmatically, this seems to cause very few problems in
 4.49328 ++	    # practice:
 4.49329 ++	    case $deplib in
 4.49330 ++	    -L*) new_libs="$deplib $new_libs" ;;
 4.49331 ++	    -R*) ;;
 4.49332 ++	    *)
 4.49333 ++	      # And here is the reason: when a library appears more
 4.49334 ++	      # than once as an explicit dependence of a library, or
 4.49335 ++	      # is implicitly linked in more than once by the
 4.49336 ++	      # compiler, it is considered special, and multiple
 4.49337 ++	      # occurrences thereof are not removed.  Compare this
 4.49338 ++	      # with having the same library being listed as a
 4.49339 ++	      # dependency of multiple other libraries: in this case,
 4.49340 ++	      # we know (pedantically, we assume) the library does not
 4.49341 ++	      # need to be listed more than once, so we keep only the
 4.49342 ++	      # last copy.  This is not always right, but it is rare
 4.49343 ++	      # enough that we require users that really mean to play
 4.49344 ++	      # such unportable linking tricks to link the library
 4.49345 ++	      # using -Wl,-lname, so that libtool does not consider it
 4.49346 ++	      # for duplicate removal.
 4.49347 ++	      case " $specialdeplibs " in
 4.49348 ++	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
 4.49349 ++	      *)
 4.49350 ++		case " $new_libs " in
 4.49351 ++		*" $deplib "*) ;;
 4.49352 ++		*) new_libs="$deplib $new_libs" ;;
 4.49353 ++		esac
 4.49354 ++		;;
 4.49355 ++	      esac
 4.49356 ++	      ;;
 4.49357 ++	    esac
 4.49358 ++	  done
 4.49359 ++	  tmp_libs=
 4.49360 ++	  for deplib in $new_libs; do
 4.49361 ++	    case $deplib in
 4.49362 ++	    -L*)
 4.49363 ++	      case " $tmp_libs " in
 4.49364 ++	      *" $deplib "*) ;;
 4.49365 ++	      *) tmp_libs="$tmp_libs $deplib" ;;
 4.49366 ++	      esac
 4.49367 ++	      ;;
 4.49368 ++	    *) tmp_libs="$tmp_libs $deplib" ;;
 4.49369 ++	    esac
 4.49370 ++	  done
 4.49371 ++	  eval $var=\"$tmp_libs\"
 4.49372 ++	done # for var
 4.49373 ++      fi
 4.49374 ++      # Last step: remove runtime libs from dependency_libs
 4.49375 ++      # (they stay in deplibs)
 4.49376 ++      tmp_libs=
 4.49377 ++      for i in $dependency_libs ; do
 4.49378 ++	case " $predeps $postdeps $compiler_lib_search_path " in
 4.49379 ++	*" $i "*)
 4.49380 ++	  i=""
 4.49381 ++	  ;;
 4.49382 ++	esac
 4.49383 ++	if test -n "$i" ; then
 4.49384 ++	  tmp_libs="$tmp_libs $i"
 4.49385 ++	fi
 4.49386 ++      done
 4.49387 ++      dependency_libs=$tmp_libs
 4.49388 ++    done # for pass
 4.49389 ++    if test "$linkmode" = prog; then
 4.49390 ++      dlfiles="$newdlfiles"
 4.49391 ++    fi
 4.49392 ++    if test "$linkmode" = prog || test "$linkmode" = lib; then
 4.49393 ++      dlprefiles="$newdlprefiles"
 4.49394 ++    fi
 4.49395 ++
 4.49396 ++    case $linkmode in
 4.49397 ++    oldlib)
 4.49398 ++      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 4.49399 ++	func_warning "\`-dlopen' is ignored for archives"
 4.49400 ++      fi
 4.49401 ++
 4.49402 ++      test -n "$deplibs" && \
 4.49403 ++	func_warning "\`-l' and \`-L' are ignored for archives"
 4.49404 ++
 4.49405 ++
 4.49406 ++      test -n "$rpath" && \
 4.49407 ++	func_warning "\`-rpath' is ignored for archives"
 4.49408 ++
 4.49409 ++      test -n "$xrpath" && \
 4.49410 ++	func_warning "\`-R' is ignored for archives"
 4.49411 ++
 4.49412 ++      test -n "$vinfo" && \
 4.49413 ++	func_warning "\`-version-info/-version-number' is ignored for archives"
 4.49414 ++
 4.49415 ++      test -n "$release" && \
 4.49416 ++	func_warning "\`-release' is ignored for archives"
 4.49417 ++
 4.49418 ++      test -n "$export_symbols$export_symbols_regex" && \
 4.49419 ++	func_warning "\`-export-symbols' is ignored for archives"
 4.49420 ++
 4.49421 ++      # Now set the variables for building old libraries.
 4.49422 ++      build_libtool_libs=no
 4.49423 ++      oldlibs="$output"
 4.49424 ++      objs="$objs$old_deplibs"
 4.49425 ++      ;;
 4.49426 ++
 4.49427 ++    lib)
 4.49428 ++      # Make sure we only generate libraries of the form `libNAME.la'.
 4.49429 ++      case $outputname in
 4.49430 ++      lib*)
 4.49431 ++	func_stripname 'lib' '.la' "$outputname"
 4.49432 ++	name=$func_stripname_result
 4.49433 ++	eval shared_ext=\"$shrext_cmds\"
 4.49434 ++	eval libname=\"$libname_spec\"
 4.49435 ++	;;
 4.49436 ++      *)
 4.49437 ++	test "$module" = no && \
 4.49438 ++	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
 4.49439 ++
 4.49440 ++	if test "$need_lib_prefix" != no; then
 4.49441 ++	  # Add the "lib" prefix for modules if required
 4.49442 ++	  func_stripname '' '.la' "$outputname"
 4.49443 ++	  name=$func_stripname_result
 4.49444 ++	  eval shared_ext=\"$shrext_cmds\"
 4.49445 ++	  eval libname=\"$libname_spec\"
 4.49446 ++	else
 4.49447 ++	  func_stripname '' '.la' "$outputname"
 4.49448 ++	  libname=$func_stripname_result
 4.49449 ++	fi
 4.49450 ++	;;
 4.49451 ++      esac
 4.49452 ++
 4.49453 ++      if test -n "$objs"; then
 4.49454 ++	if test "$deplibs_check_method" != pass_all; then
 4.49455 ++	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
 4.49456 ++	else
 4.49457 ++	  $ECHO
 4.49458 ++	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
 4.49459 ++	  $ECHO "*** objects $objs is not portable!"
 4.49460 ++	  libobjs="$libobjs $objs"
 4.49461 ++	fi
 4.49462 ++      fi
 4.49463 ++
 4.49464 ++      test "$dlself" != no && \
 4.49465 ++	func_warning "\`-dlopen self' is ignored for libtool libraries"
 4.49466 ++
 4.49467 ++      set dummy $rpath
 4.49468 ++      shift
 4.49469 ++      test "$#" -gt 1 && \
 4.49470 ++	func_warning "ignoring multiple \`-rpath's for a libtool library"
 4.49471 ++
 4.49472 ++      install_libdir="$1"
 4.49473 ++
 4.49474 ++      oldlibs=
 4.49475 ++      if test -z "$rpath"; then
 4.49476 ++	if test "$build_libtool_libs" = yes; then
 4.49477 ++	  # Building a libtool convenience library.
 4.49478 ++	  # Some compilers have problems with a `.al' extension so
 4.49479 ++	  # convenience libraries should have the same extension an
 4.49480 ++	  # archive normally would.
 4.49481 ++	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
 4.49482 ++	  build_libtool_libs=convenience
 4.49483 ++	  build_old_libs=yes
 4.49484 ++	fi
 4.49485 ++
 4.49486 ++	test -n "$vinfo" && \
 4.49487 ++	  func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
 4.49488 ++
 4.49489 ++	test -n "$release" && \
 4.49490 ++	  func_warning "\`-release' is ignored for convenience libraries"
 4.49491 ++      else
 4.49492 ++
 4.49493 ++	# Parse the version information argument.
 4.49494 ++	save_ifs="$IFS"; IFS=':'
 4.49495 ++	set dummy $vinfo 0 0 0
 4.49496 ++	shift
 4.49497 ++	IFS="$save_ifs"
 4.49498 ++
 4.49499 ++	test -n "$7" && \
 4.49500 ++	  func_fatal_help "too many parameters to \`-version-info'"
 4.49501 ++
 4.49502 ++	# convert absolute version numbers to libtool ages
 4.49503 ++	# this retains compatibility with .la files and attempts
 4.49504 ++	# to make the code below a bit more comprehensible
 4.49505 ++
 4.49506 ++	case $vinfo_number in
 4.49507 ++	yes)
 4.49508 ++	  number_major="$1"
 4.49509 ++	  number_minor="$2"
 4.49510 ++	  number_revision="$3"
 4.49511 ++	  #
 4.49512 ++	  # There are really only two kinds -- those that
 4.49513 ++	  # use the current revision as the major version
 4.49514 ++	  # and those that subtract age and use age as
 4.49515 ++	  # a minor version.  But, then there is irix
 4.49516 ++	  # which has an extra 1 added just for fun
 4.49517 ++	  #
 4.49518 ++	  case $version_type in
 4.49519 ++	  darwin|linux|osf|windows|none)
 4.49520 ++	    current=`expr $number_major + $number_minor`
 4.49521 ++	    age="$number_minor"
 4.49522 ++	    revision="$number_revision"
 4.49523 ++	    ;;
 4.49524 ++	  freebsd-aout|freebsd-elf|sunos)
 4.49525 ++	    current="$number_major"
 4.49526 ++	    revision="$number_minor"
 4.49527 ++	    age="0"
 4.49528 ++	    ;;
 4.49529 ++	  irix|nonstopux)
 4.49530 ++	    current=`expr $number_major + $number_minor - 1`
 4.49531 ++	    age="$number_minor"
 4.49532 ++	    revision="$number_minor"
 4.49533 ++	    ;;
 4.49534 ++	  esac
 4.49535 ++	  ;;
 4.49536 ++	no)
 4.49537 ++	  current="$1"
 4.49538 ++	  revision="$2"
 4.49539 ++	  age="$3"
 4.49540 ++	  ;;
 4.49541 ++	esac
 4.49542 ++
 4.49543 ++	# Check that each of the things are valid numbers.
 4.49544 ++	case $current in
 4.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]) ;;
 4.49546 ++	*)
 4.49547 ++	  func_error "CURRENT \`$current' must be a nonnegative integer"
 4.49548 ++	  func_fatal_error "\`$vinfo' is not valid version information"
 4.49549 ++	  ;;
 4.49550 ++	esac
 4.49551 ++
 4.49552 ++	case $revision in
 4.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]) ;;
 4.49554 ++	*)
 4.49555 ++	  func_error "REVISION \`$revision' must be a nonnegative integer"
 4.49556 ++	  func_fatal_error "\`$vinfo' is not valid version information"
 4.49557 ++	  ;;
 4.49558 ++	esac
 4.49559 ++
 4.49560 ++	case $age in
 4.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]) ;;
 4.49562 ++	*)
 4.49563 ++	  func_error "AGE \`$age' must be a nonnegative integer"
 4.49564 ++	  func_fatal_error "\`$vinfo' is not valid version information"
 4.49565 ++	  ;;
 4.49566 ++	esac
 4.49567 ++
 4.49568 ++	if test "$age" -gt "$current"; then
 4.49569 ++	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
 4.49570 ++	  func_fatal_error "\`$vinfo' is not valid version information"
 4.49571 ++	fi
 4.49572 ++
 4.49573 ++	# Calculate the version variables.
 4.49574 ++	major=
 4.49575 ++	versuffix=
 4.49576 ++	verstring=
 4.49577 ++	case $version_type in
 4.49578 ++	none) ;;
 4.49579 ++
 4.49580 ++	darwin)
 4.49581 ++	  # Like Linux, but with the current version available in
 4.49582 ++	  # verstring for coding it into the library header
 4.49583 ++	  major=.`expr $current - $age`
 4.49584 ++	  versuffix="$major.$age.$revision"
 4.49585 ++	  # Darwin ld doesn't like 0 for these options...
 4.49586 ++	  minor_current=`expr $current + 1`
 4.49587 ++	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
 4.49588 ++	  ;;
 4.49589 ++
 4.49590 ++	freebsd-aout)
 4.49591 ++	  major=".$current"
 4.49592 ++	  versuffix=".$current.$revision";
 4.49593 ++	  ;;
 4.49594 ++
 4.49595 ++	freebsd-elf)
 4.49596 ++	  major=".$current"
 4.49597 ++	  versuffix=".$current"
 4.49598 ++	  ;;
 4.49599 ++
 4.49600 ++	irix | nonstopux)
 4.49601 ++	  major=`expr $current - $age + 1`
 4.49602 ++
 4.49603 ++	  case $version_type in
 4.49604 ++	    nonstopux) verstring_prefix=nonstopux ;;
 4.49605 ++	    *)         verstring_prefix=sgi ;;
 4.49606 ++	  esac
 4.49607 ++	  verstring="$verstring_prefix$major.$revision"
 4.49608 ++
 4.49609 ++	  # Add in all the interfaces that we are compatible with.
 4.49610 ++	  loop=$revision
 4.49611 ++	  while test "$loop" -ne 0; do
 4.49612 ++	    iface=`expr $revision - $loop`
 4.49613 ++	    loop=`expr $loop - 1`
 4.49614 ++	    verstring="$verstring_prefix$major.$iface:$verstring"
 4.49615 ++	  done
 4.49616 ++
 4.49617 ++	  # Before this point, $major must not contain `.'.
 4.49618 ++	  major=.$major
 4.49619 ++	  versuffix="$major.$revision"
 4.49620 ++	  ;;
 4.49621 ++
 4.49622 ++	linux)
 4.49623 ++	  major=.`expr $current - $age`
 4.49624 ++	  versuffix="$major.$age.$revision"
 4.49625 ++	  ;;
 4.49626 ++
 4.49627 ++	osf)
 4.49628 ++	  major=.`expr $current - $age`
 4.49629 ++	  versuffix=".$current.$age.$revision"
 4.49630 ++	  verstring="$current.$age.$revision"
 4.49631 ++
 4.49632 ++	  # Add in all the interfaces that we are compatible with.
 4.49633 ++	  loop=$age
 4.49634 ++	  while test "$loop" -ne 0; do
 4.49635 ++	    iface=`expr $current - $loop`
 4.49636 ++	    loop=`expr $loop - 1`
 4.49637 ++	    verstring="$verstring:${iface}.0"
 4.49638 ++	  done
 4.49639 ++
 4.49640 ++	  # Make executables depend on our current version.
 4.49641 ++	  verstring="$verstring:${current}.0"
 4.49642 ++	  ;;
 4.49643 ++
 4.49644 ++	qnx)
 4.49645 ++	  major=".$current"
 4.49646 ++	  versuffix=".$current"
 4.49647 ++	  ;;
 4.49648 ++
 4.49649 ++	sunos)
 4.49650 ++	  major=".$current"
 4.49651 ++	  versuffix=".$current.$revision"
 4.49652 ++	  ;;
 4.49653 ++
 4.49654 ++	windows)
 4.49655 ++	  # Use '-' rather than '.', since we only want one
 4.49656 ++	  # extension on DOS 8.3 filesystems.
 4.49657 ++	  major=`expr $current - $age`
 4.49658 ++	  versuffix="-$major"
 4.49659 ++	  ;;
 4.49660 ++
 4.49661 ++	*)
 4.49662 ++	  func_fatal_configuration "unknown library version type \`$version_type'"
 4.49663 ++	  ;;
 4.49664 ++	esac
 4.49665 ++
 4.49666 ++	# Clear the version info if we defaulted, and they specified a release.
 4.49667 ++	if test -z "$vinfo" && test -n "$release"; then
 4.49668 ++	  major=
 4.49669 ++	  case $version_type in
 4.49670 ++	  darwin)
 4.49671 ++	    # we can't check for "0.0" in archive_cmds due to quoting
 4.49672 ++	    # problems, so we reset it completely
 4.49673 ++	    verstring=
 4.49674 ++	    ;;
 4.49675 ++	  *)
 4.49676 ++	    verstring="0.0"
 4.49677 ++	    ;;
 4.49678 ++	  esac
 4.49679 ++	  if test "$need_version" = no; then
 4.49680 ++	    versuffix=
 4.49681 ++	  else
 4.49682 ++	    versuffix=".0.0"
 4.49683 ++	  fi
 4.49684 ++	fi
 4.49685 ++
 4.49686 ++	# Remove version info from name if versioning should be avoided
 4.49687 ++	if test "$avoid_version" = yes && test "$need_version" = no; then
 4.49688 ++	  major=
 4.49689 ++	  versuffix=
 4.49690 ++	  verstring=""
 4.49691 ++	fi
 4.49692 ++
 4.49693 ++	# Check to see if the archive will have undefined symbols.
 4.49694 ++	if test "$allow_undefined" = yes; then
 4.49695 ++	  if test "$allow_undefined_flag" = unsupported; then
 4.49696 ++	    func_warning "undefined symbols not allowed in $host shared libraries"
 4.49697 ++	    build_libtool_libs=no
 4.49698 ++	    build_old_libs=yes
 4.49699 ++	  fi
 4.49700 ++	else
 4.49701 ++	  # Don't allow undefined symbols.
 4.49702 ++	  allow_undefined_flag="$no_undefined_flag"
 4.49703 ++	fi
 4.49704 ++
 4.49705 ++      fi
 4.49706 ++
 4.49707 ++      func_generate_dlsyms "$libname" "$libname" "yes"
 4.49708 ++      libobjs="$libobjs $symfileobj"
 4.49709 ++      test "X$libobjs" = "X " && libobjs=
 4.49710 ++
 4.49711 ++      if test "$mode" != relink; then
 4.49712 ++	# Remove our outputs, but don't remove object files since they
 4.49713 ++	# may have been created when compiling PIC objects.
 4.49714 ++	removelist=
 4.49715 ++	tempremovelist=`$ECHO "$output_objdir/*"`
 4.49716 ++	for p in $tempremovelist; do
 4.49717 ++	  case $p in
 4.49718 ++	    *.$objext)
 4.49719 ++	       ;;
 4.49720 ++	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
 4.49721 ++	       if test "X$precious_files_regex" != "X"; then
 4.49722 ++		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
 4.49723 ++		 then
 4.49724 ++		   continue
 4.49725 ++		 fi
 4.49726 ++	       fi
 4.49727 ++	       removelist="$removelist $p"
 4.49728 ++	       ;;
 4.49729 ++	    *) ;;
 4.49730 ++	  esac
 4.49731 ++	done
 4.49732 ++	test -n "$removelist" && \
 4.49733 ++	  func_show_eval "${RM}r \$removelist"
 4.49734 ++      fi
 4.49735 ++
 4.49736 ++      # Now set the variables for building old libraries.
 4.49737 ++      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
 4.49738 ++	oldlibs="$oldlibs $output_objdir/$libname.$libext"
 4.49739 ++
 4.49740 ++	# Transform .lo files to .o files.
 4.49741 ++	oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
 4.49742 ++      fi
 4.49743 ++
 4.49744 ++      # Eliminate all temporary directories.
 4.49745 ++      #for path in $notinst_path; do
 4.49746 ++      #	lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
 4.49747 ++      #	deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
 4.49748 ++      #	dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
 4.49749 ++      #done
 4.49750 ++
 4.49751 ++      if test -n "$xrpath"; then
 4.49752 ++	# If the user specified any rpath flags, then add them.
 4.49753 ++	temp_xrpath=
 4.49754 ++	for libdir in $xrpath; do
 4.49755 ++	  temp_xrpath="$temp_xrpath -R$libdir"
 4.49756 ++	  case "$finalize_rpath " in
 4.49757 ++	  *" $libdir "*) ;;
 4.49758 ++	  *) finalize_rpath="$finalize_rpath $libdir" ;;
 4.49759 ++	  esac
 4.49760 ++	done
 4.49761 ++	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
 4.49762 ++	  dependency_libs="$temp_xrpath $dependency_libs"
 4.49763 ++	fi
 4.49764 ++      fi
 4.49765 ++
 4.49766 ++      # Make sure dlfiles contains only unique files that won't be dlpreopened
 4.49767 ++      old_dlfiles="$dlfiles"
 4.49768 ++      dlfiles=
 4.49769 ++      for lib in $old_dlfiles; do
 4.49770 ++	case " $dlprefiles $dlfiles " in
 4.49771 ++	*" $lib "*) ;;
 4.49772 ++	*) dlfiles="$dlfiles $lib" ;;
 4.49773 ++	esac
 4.49774 ++      done
 4.49775 ++
 4.49776 ++      # Make sure dlprefiles contains only unique files
 4.49777 ++      old_dlprefiles="$dlprefiles"
 4.49778 ++      dlprefiles=
 4.49779 ++      for lib in $old_dlprefiles; do
 4.49780 ++	case "$dlprefiles " in
 4.49781 ++	*" $lib "*) ;;
 4.49782 ++	*) dlprefiles="$dlprefiles $lib" ;;
 4.49783 ++	esac
 4.49784 ++      done
 4.49785 ++
 4.49786 ++      if test "$build_libtool_libs" = yes; then
 4.49787 ++	if test -n "$rpath"; then
 4.49788 ++	  case $host in
 4.49789 ++	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
 4.49790 ++	    # these systems don't actually have a c library (as such)!
 4.49791 ++	    ;;
 4.49792 ++	  *-*-rhapsody* | *-*-darwin1.[012])
 4.49793 ++	    # Rhapsody C library is in the System framework
 4.49794 ++	    deplibs="$deplibs System.ltframework"
 4.49795 ++	    ;;
 4.49796 ++	  *-*-netbsd*)
 4.49797 ++	    # Don't link with libc until the a.out ld.so is fixed.
 4.49798 ++	    ;;
 4.49799 ++	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 4.49800 ++	    # Do not include libc due to us having libc/libc_r.
 4.49801 ++	    ;;
 4.49802 ++	  *-*-sco3.2v5* | *-*-sco5v6*)
 4.49803 ++	    # Causes problems with __ctype
 4.49804 ++	    ;;
 4.49805 ++	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
 4.49806 ++	    # Compiler inserts libc in the correct place for threads to work
 4.49807 ++ 	    ;;
 4.49808 ++ 	  *)
 4.49809 ++	    # Add libc to deplibs on all other systems if necessary.
 4.49810 ++	    if test "$build_libtool_need_lc" = "yes"; then
 4.49811 ++	      deplibs="$deplibs -lc"
 4.49812 ++	    fi
 4.49813 ++	    ;;
 4.49814 ++	  esac
 4.49815 ++	fi
 4.49816 ++
 4.49817 ++	# Transform deplibs into only deplibs that can be linked in shared.
 4.49818 ++	name_save=$name
 4.49819 ++	libname_save=$libname
 4.49820 ++	release_save=$release
 4.49821 ++	versuffix_save=$versuffix
 4.49822 ++	major_save=$major
 4.49823 ++	# I'm not sure if I'm treating the release correctly.  I think
 4.49824 ++	# release should show up in the -l (ie -lgmp5) so we don't want to
 4.49825 ++	# add it in twice.  Is that correct?
 4.49826 ++	release=""
 4.49827 ++	versuffix=""
 4.49828 ++	major=""
 4.49829 ++	newdeplibs=
 4.49830 ++	droppeddeps=no
 4.49831 ++	case $deplibs_check_method in
 4.49832 ++	pass_all)
 4.49833 ++	  # Don't check for shared/static.  Everything works.
 4.49834 ++	  # This might be a little naive.  We might want to check
 4.49835 ++	  # whether the library exists or not.  But this is on
 4.49836 ++	  # osf3 & osf4 and I'm not really sure... Just
 4.49837 ++	  # implementing what was already the behavior.
 4.49838 ++	  newdeplibs=$deplibs
 4.49839 ++	  ;;
 4.49840 ++	test_compile)
 4.49841 ++	  # This code stresses the "libraries are programs" paradigm to its
 4.49842 ++	  # limits. Maybe even breaks it.  We compile a program, linking it
 4.49843 ++	  # against the deplibs as a proxy for the library.  Then we can check
 4.49844 ++	  # whether they linked in statically or dynamically with ldd.
 4.49845 ++	  $opt_dry_run || $RM conftest.c
 4.49846 ++	  cat > conftest.c <<EOF
 4.49847 ++	  int main() { return 0; }
 4.49848 ++EOF
 4.49849 ++	  $opt_dry_run || $RM conftest
 4.49850 ++	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
 4.49851 ++	    ldd_output=`ldd conftest`
 4.49852 ++	    for i in $deplibs; do
 4.49853 ++	      name=`expr $i : '-l\(.*\)'`
 4.49854 ++	      # If $name is empty we are operating on a -L argument.
 4.49855 ++	      if test "$name" != "" && test "$name" != "0"; then
 4.49856 ++		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 4.49857 ++		  case " $predeps $postdeps " in
 4.49858 ++		  *" $i "*)
 4.49859 ++		    newdeplibs="$newdeplibs $i"
 4.49860 ++		    i=""
 4.49861 ++		    ;;
 4.49862 ++		  esac
 4.49863 ++		fi
 4.49864 ++		if test -n "$i" ; then
 4.49865 ++		  libname=`eval "\\$ECHO \"$libname_spec\""`
 4.49866 ++		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
 4.49867 ++		  set dummy $deplib_matches; shift
 4.49868 ++		  deplib_match=$1
 4.49869 ++		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
 4.49870 ++		    newdeplibs="$newdeplibs $i"
 4.49871 ++		  else
 4.49872 ++		    droppeddeps=yes
 4.49873 ++		    $ECHO
 4.49874 ++		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
 4.49875 ++		    $ECHO "*** I have the capability to make that library automatically link in when"
 4.49876 ++		    $ECHO "*** you link to this library.  But I can only do this if you have a"
 4.49877 ++		    $ECHO "*** shared version of the library, which I believe you do not have"
 4.49878 ++		    $ECHO "*** because a test_compile did reveal that the linker did not use it for"
 4.49879 ++		    $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
 4.49880 ++		  fi
 4.49881 ++		fi
 4.49882 ++	      else
 4.49883 ++		newdeplibs="$newdeplibs $i"
 4.49884 ++	      fi
 4.49885 ++	    done
 4.49886 ++	  else
 4.49887 ++	    # Error occurred in the first compile.  Let's try to salvage
 4.49888 ++	    # the situation: Compile a separate program for each library.
 4.49889 ++	    for i in $deplibs; do
 4.49890 ++	      name=`expr $i : '-l\(.*\)'`
 4.49891 ++	      # If $name is empty we are operating on a -L argument.
 4.49892 ++	      if test "$name" != "" && test "$name" != "0"; then
 4.49893 ++		$opt_dry_run || $RM conftest
 4.49894 ++		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
 4.49895 ++		  ldd_output=`ldd conftest`
 4.49896 ++		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 4.49897 ++		    case " $predeps $postdeps " in
 4.49898 ++		    *" $i "*)
 4.49899 ++		      newdeplibs="$newdeplibs $i"
 4.49900 ++		      i=""
 4.49901 ++		      ;;
 4.49902 ++		    esac
 4.49903 ++		  fi
 4.49904 ++		  if test -n "$i" ; then
 4.49905 ++		    libname=`eval "\\$ECHO \"$libname_spec\""`
 4.49906 ++		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
 4.49907 ++		    set dummy $deplib_matches; shift
 4.49908 ++		    deplib_match=$1
 4.49909 ++		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
 4.49910 ++		      newdeplibs="$newdeplibs $i"
 4.49911 ++		    else
 4.49912 ++		      droppeddeps=yes
 4.49913 ++		      $ECHO
 4.49914 ++		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
 4.49915 ++		      $ECHO "*** I have the capability to make that library automatically link in when"
 4.49916 ++		      $ECHO "*** you link to this library.  But I can only do this if you have a"
 4.49917 ++		      $ECHO "*** shared version of the library, which you do not appear to have"
 4.49918 ++		      $ECHO "*** because a test_compile did reveal that the linker did not use this one"
 4.49919 ++		      $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
 4.49920 ++		    fi
 4.49921 ++		  fi
 4.49922 ++		else
 4.49923 ++		  droppeddeps=yes
 4.49924 ++		  $ECHO
 4.49925 ++		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
 4.49926 ++		  $ECHO "*** make it link in!  You will probably need to install it or some"
 4.49927 ++		  $ECHO "*** library that it depends on before this library will be fully"
 4.49928 ++		  $ECHO "*** functional.  Installing it before continuing would be even better."
 4.49929 ++		fi
 4.49930 ++	      else
 4.49931 ++		newdeplibs="$newdeplibs $i"
 4.49932 ++	      fi
 4.49933 ++	    done
 4.49934 ++	  fi
 4.49935 ++	  ;;
 4.49936 ++	file_magic*)
 4.49937 ++	  set dummy $deplibs_check_method; shift
 4.49938 ++	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
 4.49939 ++	  for a_deplib in $deplibs; do
 4.49940 ++	    name=`expr $a_deplib : '-l\(.*\)'`
 4.49941 ++	    # If $name is empty we are operating on a -L argument.
 4.49942 ++	    if test "$name" != "" && test  "$name" != "0"; then
 4.49943 ++	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 4.49944 ++		case " $predeps $postdeps " in
 4.49945 ++		*" $a_deplib "*)
 4.49946 ++		  newdeplibs="$newdeplibs $a_deplib"
 4.49947 ++		  a_deplib=""
 4.49948 ++		  ;;
 4.49949 ++		esac
 4.49950 ++	      fi
 4.49951 ++	      if test -n "$a_deplib" ; then
 4.49952 ++		libname=`eval "\\$ECHO \"$libname_spec\""`
 4.49953 ++		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
 4.49954 ++		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
 4.49955 ++		  for potent_lib in $potential_libs; do
 4.49956 ++		      # Follow soft links.
 4.49957 ++		      if ls -lLd "$potent_lib" 2>/dev/null |
 4.49958 ++			 $GREP " -> " >/dev/null; then
 4.49959 ++			continue
 4.49960 ++		      fi
 4.49961 ++		      # The statement above tries to avoid entering an
 4.49962 ++		      # endless loop below, in case of cyclic links.
 4.49963 ++		      # We might still enter an endless loop, since a link
 4.49964 ++		      # loop can be closed while we follow links,
 4.49965 ++		      # but so what?
 4.49966 ++		      potlib="$potent_lib"
 4.49967 ++		      while test -h "$potlib" 2>/dev/null; do
 4.49968 ++			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
 4.49969 ++			case $potliblink in
 4.49970 ++			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
 4.49971 ++			*) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
 4.49972 ++			esac
 4.49973 ++		      done
 4.49974 ++		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
 4.49975 ++			 $SED -e 10q |
 4.49976 ++			 $EGREP "$file_magic_regex" > /dev/null; then
 4.49977 ++			newdeplibs="$newdeplibs $a_deplib"
 4.49978 ++			a_deplib=""
 4.49979 ++			break 2
 4.49980 ++		      fi
 4.49981 ++		  done
 4.49982 ++		done
 4.49983 ++	      fi
 4.49984 ++	      if test -n "$a_deplib" ; then
 4.49985 ++		droppeddeps=yes
 4.49986 ++		$ECHO
 4.49987 ++		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
 4.49988 ++		$ECHO "*** I have the capability to make that library automatically link in when"
 4.49989 ++		$ECHO "*** you link to this library.  But I can only do this if you have a"
 4.49990 ++		$ECHO "*** shared version of the library, which you do not appear to have"
 4.49991 ++		$ECHO "*** because I did check the linker path looking for a file starting"
 4.49992 ++		if test -z "$potlib" ; then
 4.49993 ++		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
 4.49994 ++		else
 4.49995 ++		  $ECHO "*** with $libname and none of the candidates passed a file format test"
 4.49996 ++		  $ECHO "*** using a file magic. Last file checked: $potlib"
 4.49997 ++		fi
 4.49998 ++	      fi
 4.49999 ++	    else
 4.50000 ++	      # Add a -L argument.
 4.50001 ++	      newdeplibs="$newdeplibs $a_deplib"
 4.50002 ++	    fi
 4.50003 ++	  done # Gone through all deplibs.
 4.50004 ++	  ;;
 4.50005 ++	match_pattern*)
 4.50006 ++	  set dummy $deplibs_check_method; shift
 4.50007 ++	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
 4.50008 ++	  for a_deplib in $deplibs; do
 4.50009 ++	    name=`expr $a_deplib : '-l\(.*\)'`
 4.50010 ++	    # If $name is empty we are operating on a -L argument.
 4.50011 ++	    if test -n "$name" && test "$name" != "0"; then
 4.50012 ++	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 4.50013 ++		case " $predeps $postdeps " in
 4.50014 ++		*" $a_deplib "*)
 4.50015 ++		  newdeplibs="$newdeplibs $a_deplib"
 4.50016 ++		  a_deplib=""
 4.50017 ++		  ;;
 4.50018 ++		esac
 4.50019 ++	      fi
 4.50020 ++	      if test -n "$a_deplib" ; then
 4.50021 ++		libname=`eval "\\$ECHO \"$libname_spec\""`
 4.50022 ++		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
 4.50023 ++		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
 4.50024 ++		  for potent_lib in $potential_libs; do
 4.50025 ++		    potlib="$potent_lib" # see symlink-check above in file_magic test
 4.50026 ++		    if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
 4.50027 ++		       $EGREP "$match_pattern_regex" > /dev/null; then
 4.50028 ++		      newdeplibs="$newdeplibs $a_deplib"
 4.50029 ++		      a_deplib=""
 4.50030 ++		      break 2
 4.50031 ++		    fi
 4.50032 ++		  done
 4.50033 ++		done
 4.50034 ++	      fi
 4.50035 ++	      if test -n "$a_deplib" ; then
 4.50036 ++		droppeddeps=yes
 4.50037 ++		$ECHO
 4.50038 ++		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
 4.50039 ++		$ECHO "*** I have the capability to make that library automatically link in when"
 4.50040 ++		$ECHO "*** you link to this library.  But I can only do this if you have a"
 4.50041 ++		$ECHO "*** shared version of the library, which you do not appear to have"
 4.50042 ++		$ECHO "*** because I did check the linker path looking for a file starting"
 4.50043 ++		if test -z "$potlib" ; then
 4.50044 ++		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
 4.50045 ++		else
 4.50046 ++		  $ECHO "*** with $libname and none of the candidates passed a file format test"
 4.50047 ++		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
 4.50048 ++		fi
 4.50049 ++	      fi
 4.50050 ++	    else
 4.50051 ++	      # Add a -L argument.
 4.50052 ++	      newdeplibs="$newdeplibs $a_deplib"
 4.50053 ++	    fi
 4.50054 ++	  done # Gone through all deplibs.
 4.50055 ++	  ;;
 4.50056 ++	none | unknown | *)
 4.50057 ++	  newdeplibs=""
 4.50058 ++	  tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
 4.50059 ++	      -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
 4.50060 ++	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 4.50061 ++	    for i in $predeps $postdeps ; do
 4.50062 ++	      # can't use Xsed below, because $i might contain '/'
 4.50063 ++	      tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
 4.50064 ++	    done
 4.50065 ++	  fi
 4.50066 ++	  if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' |
 4.50067 ++	     $GREP . >/dev/null; then
 4.50068 ++	    $ECHO
 4.50069 ++	    if test "X$deplibs_check_method" = "Xnone"; then
 4.50070 ++	      $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
 4.50071 ++	    else
 4.50072 ++	      $ECHO "*** Warning: inter-library dependencies are not known to be supported."
 4.50073 ++	    fi
 4.50074 ++	    $ECHO "*** All declared inter-library dependencies are being dropped."
 4.50075 ++	    droppeddeps=yes
 4.50076 ++	  fi
 4.50077 ++	  ;;
 4.50078 ++	esac
 4.50079 ++	versuffix=$versuffix_save
 4.50080 ++	major=$major_save
 4.50081 ++	release=$release_save
 4.50082 ++	libname=$libname_save
 4.50083 ++	name=$name_save
 4.50084 ++
 4.50085 ++	case $host in
 4.50086 ++	*-*-rhapsody* | *-*-darwin1.[012])
 4.50087 ++	  # On Rhapsody replace the C library with the System framework
 4.50088 ++	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
 4.50089 ++	  ;;
 4.50090 ++	esac
 4.50091 ++
 4.50092 ++	if test "$droppeddeps" = yes; then
 4.50093 ++	  if test "$module" = yes; then
 4.50094 ++	    $ECHO
 4.50095 ++	    $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
 4.50096 ++	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
 4.50097 ++	    $ECHO "*** a static module, that should work as long as the dlopening"
 4.50098 ++	    $ECHO "*** application is linked with the -dlopen flag."
 4.50099 ++	    if test -z "$global_symbol_pipe"; then
 4.50100 ++	      $ECHO
 4.50101 ++	      $ECHO "*** However, this would only work if libtool was able to extract symbol"
 4.50102 ++	      $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
 4.50103 ++	      $ECHO "*** not find such a program.  So, this module is probably useless."
 4.50104 ++	      $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
 4.50105 ++	    fi
 4.50106 ++	    if test "$build_old_libs" = no; then
 4.50107 ++	      oldlibs="$output_objdir/$libname.$libext"
 4.50108 ++	      build_libtool_libs=module
 4.50109 ++	      build_old_libs=yes
 4.50110 ++	    else
 4.50111 ++	      build_libtool_libs=no
 4.50112 ++	    fi
 4.50113 ++	  else
 4.50114 ++	    $ECHO "*** The inter-library dependencies that have been dropped here will be"
 4.50115 ++	    $ECHO "*** automatically added whenever a program is linked with this library"
 4.50116 ++	    $ECHO "*** or is declared to -dlopen it."
 4.50117 ++
 4.50118 ++	    if test "$allow_undefined" = no; then
 4.50119 ++	      $ECHO
 4.50120 ++	      $ECHO "*** Since this library must not contain undefined symbols,"
 4.50121 ++	      $ECHO "*** because either the platform does not support them or"
 4.50122 ++	      $ECHO "*** it was explicitly requested with -no-undefined,"
 4.50123 ++	      $ECHO "*** libtool will only create a static version of it."
 4.50124 ++	      if test "$build_old_libs" = no; then
 4.50125 ++		oldlibs="$output_objdir/$libname.$libext"
 4.50126 ++		build_libtool_libs=module
 4.50127 ++		build_old_libs=yes
 4.50128 ++	      else
 4.50129 ++		build_libtool_libs=no
 4.50130 ++	      fi
 4.50131 ++	    fi
 4.50132 ++	  fi
 4.50133 ++	fi
 4.50134 ++	# Done checking deplibs!
 4.50135 ++	deplibs=$newdeplibs
 4.50136 ++      fi
 4.50137 ++      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
 4.50138 ++      case $host in
 4.50139 ++	*-*-darwin*)
 4.50140 ++	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 4.50141 ++	  new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 4.50142 ++	  deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 4.50143 ++	  ;;
 4.50144 ++      esac
 4.50145 ++
 4.50146 ++      # move library search paths that coincide with paths to not yet
 4.50147 ++      # installed libraries to the beginning of the library search list
 4.50148 ++      new_libs=
 4.50149 ++      for path in $notinst_path; do
 4.50150 ++	case " $new_libs " in
 4.50151 ++	*" -L$path/$objdir "*) ;;
 4.50152 ++	*)
 4.50153 ++	  case " $deplibs " in
 4.50154 ++	  *" -L$path/$objdir "*)
 4.50155 ++	    new_libs="$new_libs -L$path/$objdir" ;;
 4.50156 ++	  esac
 4.50157 ++	  ;;
 4.50158 ++	esac
 4.50159 ++      done
 4.50160 ++      for deplib in $deplibs; do
 4.50161 ++	case $deplib in
 4.50162 ++	-L*)
 4.50163 ++	  case " $new_libs " in
 4.50164 ++	  *" $deplib "*) ;;
 4.50165 ++	  *) new_libs="$new_libs $deplib" ;;
 4.50166 ++	  esac
 4.50167 ++	  ;;
 4.50168 ++	*) new_libs="$new_libs $deplib" ;;
 4.50169 ++	esac
 4.50170 ++      done
 4.50171 ++      deplibs="$new_libs"
 4.50172 ++
 4.50173 ++      # All the library-specific variables (install_libdir is set above).
 4.50174 ++      library_names=
 4.50175 ++      old_library=
 4.50176 ++      dlname=
 4.50177 ++
 4.50178 ++      # Test again, we may have decided not to build it any more
 4.50179 ++      if test "$build_libtool_libs" = yes; then
 4.50180 ++	if test "$hardcode_into_libs" = yes; then
 4.50181 ++	  # Hardcode the library paths
 4.50182 ++	  hardcode_libdirs=
 4.50183 ++	  dep_rpath=
 4.50184 ++	  rpath="$finalize_rpath"
 4.50185 ++	  test "$mode" != relink && rpath="$compile_rpath$rpath"
 4.50186 ++	  for libdir in $rpath; do
 4.50187 ++	    if test -n "$hardcode_libdir_flag_spec"; then
 4.50188 ++	      if test -n "$hardcode_libdir_separator"; then
 4.50189 ++		if test -z "$hardcode_libdirs"; then
 4.50190 ++		  hardcode_libdirs="$libdir"
 4.50191 ++		else
 4.50192 ++		  # Just accumulate the unique libdirs.
 4.50193 ++		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 4.50194 ++		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 4.50195 ++		    ;;
 4.50196 ++		  *)
 4.50197 ++		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 4.50198 ++		    ;;
 4.50199 ++		  esac
 4.50200 ++		fi
 4.50201 ++	      else
 4.50202 ++		eval flag=\"$hardcode_libdir_flag_spec\"
 4.50203 ++		dep_rpath="$dep_rpath $flag"
 4.50204 ++	      fi
 4.50205 ++	    elif test -n "$runpath_var"; then
 4.50206 ++	      case "$perm_rpath " in
 4.50207 ++	      *" $libdir "*) ;;
 4.50208 ++	      *) perm_rpath="$perm_rpath $libdir" ;;
 4.50209 ++	      esac
 4.50210 ++	    fi
 4.50211 ++	  done
 4.50212 ++	  # Substitute the hardcoded libdirs into the rpath.
 4.50213 ++	  if test -n "$hardcode_libdir_separator" &&
 4.50214 ++	     test -n "$hardcode_libdirs"; then
 4.50215 ++	    libdir="$hardcode_libdirs"
 4.50216 ++	    if test -n "$hardcode_libdir_flag_spec_ld"; then
 4.50217 ++	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
 4.50218 ++	    else
 4.50219 ++	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
 4.50220 ++	    fi
 4.50221 ++	  fi
 4.50222 ++	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
 4.50223 ++	    # We should set the runpath_var.
 4.50224 ++	    rpath=
 4.50225 ++	    for dir in $perm_rpath; do
 4.50226 ++	      rpath="$rpath$dir:"
 4.50227 ++	    done
 4.50228 ++	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
 4.50229 ++	  fi
 4.50230 ++	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
 4.50231 ++	fi
 4.50232 ++
 4.50233 ++	shlibpath="$finalize_shlibpath"
 4.50234 ++	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
 4.50235 ++	if test -n "$shlibpath"; then
 4.50236 ++	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
 4.50237 ++	fi
 4.50238 ++
 4.50239 ++	# Get the real and link names of the library.
 4.50240 ++	eval shared_ext=\"$shrext_cmds\"
 4.50241 ++	eval library_names=\"$library_names_spec\"
 4.50242 ++	set dummy $library_names
 4.50243 ++	shift
 4.50244 ++	realname="$1"
 4.50245 ++	shift
 4.50246 ++
 4.50247 ++	if test -n "$soname_spec"; then
 4.50248 ++	  eval soname=\"$soname_spec\"
 4.50249 ++	else
 4.50250 ++	  soname="$realname"
 4.50251 ++	fi
 4.50252 ++	if test -z "$dlname"; then
 4.50253 ++	  dlname=$soname
 4.50254 ++	fi
 4.50255 ++
 4.50256 ++	lib="$output_objdir/$realname"
 4.50257 ++	linknames=
 4.50258 ++	for link
 4.50259 ++	do
 4.50260 ++	  linknames="$linknames $link"
 4.50261 ++	done
 4.50262 ++
 4.50263 ++	# Use standard objects if they are pic
 4.50264 ++	test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 4.50265 ++	test "X$libobjs" = "X " && libobjs=
 4.50266 ++
 4.50267 ++	delfiles=
 4.50268 ++	if test -n "$export_symbols" && test -n "$include_expsyms"; then
 4.50269 ++	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
 4.50270 ++	  export_symbols="$output_objdir/$libname.uexp"
 4.50271 ++	  delfiles="$delfiles $export_symbols"
 4.50272 ++	fi
 4.50273 ++
 4.50274 ++	orig_export_symbols=
 4.50275 ++	case $host_os in
 4.50276 ++	cygwin* | mingw*)
 4.50277 ++	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
 4.50278 ++	    # exporting using user supplied symfile
 4.50279 ++	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
 4.50280 ++	      # and it's NOT already a .def file. Must figure out
 4.50281 ++	      # which of the given symbols are data symbols and tag
 4.50282 ++	      # them as such. So, trigger use of export_symbols_cmds.
 4.50283 ++	      # export_symbols gets reassigned inside the "prepare
 4.50284 ++	      # the list of exported symbols" if statement, so the
 4.50285 ++	      # include_expsyms logic still works.
 4.50286 ++	      orig_export_symbols="$export_symbols"
 4.50287 ++	      export_symbols=
 4.50288 ++	      always_export_symbols=yes
 4.50289 ++	    fi
 4.50290 ++	  fi
 4.50291 ++	  ;;
 4.50292 ++	esac
 4.50293 ++
 4.50294 ++	# Prepare the list of exported symbols
 4.50295 ++	if test -z "$export_symbols"; then
 4.50296 ++	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
 4.50297 ++	    func_echo "generating symbol list for \`$libname.la'"
 4.50298 ++	    export_symbols="$output_objdir/$libname.exp"
 4.50299 ++	    $opt_dry_run || $RM $export_symbols
 4.50300 ++	    cmds=$export_symbols_cmds
 4.50301 ++	    save_ifs="$IFS"; IFS='~'
 4.50302 ++	    for cmd in $cmds; do
 4.50303 ++	      IFS="$save_ifs"
 4.50304 ++	      eval cmd=\"$cmd\"
 4.50305 ++	      if len=`expr "X$cmd" : ".*"` &&
 4.50306 ++	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 4.50307 ++		func_show_eval "$cmd" 'exit $?'
 4.50308 ++		skipped_export=false
 4.50309 ++	      else
 4.50310 ++		# The command line is too long to execute in one step.
 4.50311 ++		func_echo "using reloadable object file for export list..."
 4.50312 ++		skipped_export=:
 4.50313 ++		# Break out early, otherwise skipped_export may be
 4.50314 ++		# set to false by a later but shorter cmd.
 4.50315 ++		break
 4.50316 ++	      fi
 4.50317 ++	    done
 4.50318 ++	    IFS="$save_ifs"
 4.50319 ++	    if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
 4.50320 ++	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
 4.50321 ++	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
 4.50322 ++	    fi
 4.50323 ++	  fi
 4.50324 ++	fi
 4.50325 ++
 4.50326 ++	if test -n "$export_symbols" && test -n "$include_expsyms"; then
 4.50327 ++	  tmp_export_symbols="$export_symbols"
 4.50328 ++	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
 4.50329 ++	  $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
 4.50330 ++	fi
 4.50331 ++
 4.50332 ++	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
 4.50333 ++	  # The given exports_symbols file has to be filtered, so filter it.
 4.50334 ++	  func_echo "filter symbol list for \`$libname.la' to tag DATA exports"
 4.50335 ++	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
 4.50336 ++	  # 's' commands which not all seds can handle. GNU sed should be fine
 4.50337 ++	  # though. Also, the filter scales superlinearly with the number of
 4.50338 ++	  # global variables. join(1) would be nice here, but unfortunately
 4.50339 ++	  # isn't a blessed tool.
 4.50340 ++	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
 4.50341 ++	  delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
 4.50342 ++	  export_symbols=$output_objdir/$libname.def
 4.50343 ++	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
 4.50344 ++	fi
 4.50345 ++
 4.50346 ++	tmp_deplibs=
 4.50347 ++	for test_deplib in $deplibs; do
 4.50348 ++	  case " $convenience " in
 4.50349 ++	  *" $test_deplib "*) ;;
 4.50350 ++	  *)
 4.50351 ++	    tmp_deplibs="$tmp_deplibs $test_deplib"
 4.50352 ++	    ;;
 4.50353 ++	  esac
 4.50354 ++	done
 4.50355 ++	deplibs="$tmp_deplibs"
 4.50356 ++
 4.50357 ++	if test -n "$convenience"; then
 4.50358 ++	  if test -n "$whole_archive_flag_spec" &&
 4.50359 ++	    test "$compiler_needs_object" = yes &&
 4.50360 ++	    test -z "$libobjs"; then
 4.50361 ++	    # extract the archives, so we have objects to list.
 4.50362 ++	    # TODO: could optimize this to just extract one archive.
 4.50363 ++	    whole_archive_flag_spec=
 4.50364 ++	  fi
 4.50365 ++	  if test -n "$whole_archive_flag_spec"; then
 4.50366 ++	    save_libobjs=$libobjs
 4.50367 ++	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
 4.50368 ++	    test "X$libobjs" = "X " && libobjs=
 4.50369 ++	  else
 4.50370 ++	    gentop="$output_objdir/${outputname}x"
 4.50371 ++	    generated="$generated $gentop"
 4.50372 ++
 4.50373 ++	    func_extract_archives $gentop $convenience
 4.50374 ++	    libobjs="$libobjs $func_extract_archives_result"
 4.50375 ++	    test "X$libobjs" = "X " && libobjs=
 4.50376 ++	  fi
 4.50377 ++	fi
 4.50378 ++
 4.50379 ++	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
 4.50380 ++	  eval flag=\"$thread_safe_flag_spec\"
 4.50381 ++	  linker_flags="$linker_flags $flag"
 4.50382 ++	fi
 4.50383 ++
 4.50384 ++	# Make a backup of the uninstalled library when relinking
 4.50385 ++	if test "$mode" = relink; then
 4.50386 ++	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
 4.50387 ++	fi
 4.50388 ++
 4.50389 ++	# Do each of the archive commands.
 4.50390 ++	if test "$module" = yes && test -n "$module_cmds" ; then
 4.50391 ++	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
 4.50392 ++	    eval test_cmds=\"$module_expsym_cmds\"
 4.50393 ++	    cmds=$module_expsym_cmds
 4.50394 ++	  else
 4.50395 ++	    eval test_cmds=\"$module_cmds\"
 4.50396 ++	    cmds=$module_cmds
 4.50397 ++	  fi
 4.50398 ++	else
 4.50399 ++	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
 4.50400 ++	    eval test_cmds=\"$archive_expsym_cmds\"
 4.50401 ++	    cmds=$archive_expsym_cmds
 4.50402 ++	  else
 4.50403 ++	    eval test_cmds=\"$archive_cmds\"
 4.50404 ++	    cmds=$archive_cmds
 4.50405 ++	  fi
 4.50406 ++	fi
 4.50407 ++
 4.50408 ++	if test "X$skipped_export" != "X:" &&
 4.50409 ++	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
 4.50410 ++	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 4.50411 ++	  :
 4.50412 ++	else
 4.50413 ++	  # The command line is too long to link in one step, link piecewise
 4.50414 ++	  # or, if using GNU ld and skipped_export is not :, use a linker
 4.50415 ++	  # script.
 4.50416 ++
 4.50417 ++	  # Save the value of $output and $libobjs because we want to
 4.50418 ++	  # use them later.  If we have whole_archive_flag_spec, we
 4.50419 ++	  # want to use save_libobjs as it was before
 4.50420 ++	  # whole_archive_flag_spec was expanded, because we can't
 4.50421 ++	  # assume the linker understands whole_archive_flag_spec.
 4.50422 ++	  # This may have to be revisited, in case too many
 4.50423 ++	  # convenience libraries get linked in and end up exceeding
 4.50424 ++	  # the spec.
 4.50425 ++	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
 4.50426 ++	    save_libobjs=$libobjs
 4.50427 ++	  fi
 4.50428 ++	  save_output=$output
 4.50429 ++	  output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
 4.50430 ++
 4.50431 ++	  # Clear the reloadable object creation command queue and
 4.50432 ++	  # initialize k to one.
 4.50433 ++	  test_cmds=
 4.50434 ++	  concat_cmds=
 4.50435 ++	  objlist=
 4.50436 ++	  last_robj=
 4.50437 ++	  k=1
 4.50438 ++
 4.50439 ++	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
 4.50440 ++	    output=${output_objdir}/${output_la}.lnkscript
 4.50441 ++	    func_echo "creating GNU ld script: $output"
 4.50442 ++	    $ECHO 'INPUT (' > $output
 4.50443 ++	    for obj in $save_libobjs
 4.50444 ++	    do
 4.50445 ++	      $ECHO "$obj" >> $output
 4.50446 ++	    done
 4.50447 ++	    $ECHO ')' >> $output
 4.50448 ++	    delfiles="$delfiles $output"
 4.50449 ++	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
 4.50450 ++	    output=${output_objdir}/${output_la}.lnk
 4.50451 ++	    func_echo "creating linker input file list: $output"
 4.50452 ++	    : > $output
 4.50453 ++	    set x $save_libobjs
 4.50454 ++	    shift
 4.50455 ++	    firstobj=
 4.50456 ++	    if test "$compiler_needs_object" = yes; then
 4.50457 ++	      firstobj="$1 "
 4.50458 ++	      shift
 4.50459 ++	    fi
 4.50460 ++	    for obj
 4.50461 ++	    do
 4.50462 ++	      $ECHO "$obj" >> $output
 4.50463 ++	    done
 4.50464 ++	    delfiles="$delfiles $output"
 4.50465 ++	    output=$firstobj\"$file_list_spec$output\"
 4.50466 ++	  else
 4.50467 ++	    if test -n "$save_libobjs"; then
 4.50468 ++	      func_echo "creating reloadable object files..."
 4.50469 ++	      output=$output_objdir/$output_la-${k}.$objext
 4.50470 ++	      # Loop over the list of objects to be linked.
 4.50471 ++	      for obj in $save_libobjs
 4.50472 ++	      do
 4.50473 ++		eval test_cmds=\"$reload_cmds $objlist $last_robj\"
 4.50474 ++		if test "X$objlist" = X ||
 4.50475 ++		   { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
 4.50476 ++		     test "$len" -le "$max_cmd_len"; }; then
 4.50477 ++		  objlist="$objlist $obj"
 4.50478 ++		else
 4.50479 ++		  # The command $test_cmds is almost too long, add a
 4.50480 ++		  # command to the queue.
 4.50481 ++		  if test "$k" -eq 1 ; then
 4.50482 ++		    # The first file doesn't have a previous command to add.
 4.50483 ++		    eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
 4.50484 ++		  else
 4.50485 ++		    # All subsequent reloadable object files will link in
 4.50486 ++		    # the last one created.
 4.50487 ++		    eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
 4.50488 ++		  fi
 4.50489 ++		  last_robj=$output_objdir/$output_la-${k}.$objext
 4.50490 ++		  k=`expr $k + 1`
 4.50491 ++		  output=$output_objdir/$output_la-${k}.$objext
 4.50492 ++		  objlist=$obj
 4.50493 ++		  len=1
 4.50494 ++		fi
 4.50495 ++	      done
 4.50496 ++	      # Handle the remaining objects by creating one last
 4.50497 ++	      # reloadable object file.  All subsequent reloadable object
 4.50498 ++	      # files will link in the last one created.
 4.50499 ++	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 4.50500 ++	      eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
 4.50501 ++
 4.50502 ++	      # Set up a command to remove the reloadable object files
 4.50503 ++	      # after they are used.
 4.50504 ++	      i=0
 4.50505 ++	      while test "$i" -lt "$k"
 4.50506 ++	      do
 4.50507 ++		i=`expr $i + 1`
 4.50508 ++		delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
 4.50509 ++	      done
 4.50510 ++	    else
 4.50511 ++	      output=
 4.50512 ++	    fi
 4.50513 ++
 4.50514 ++	    if ${skipped_export-false}; then
 4.50515 ++	      func_echo "generating symbol list for \`$libname.la'"
 4.50516 ++	      export_symbols="$output_objdir/$libname.exp"
 4.50517 ++	      $opt_dry_run || $RM $export_symbols
 4.50518 ++	      libobjs=$output
 4.50519 ++	      # Append the command to create the export file.
 4.50520 ++	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 4.50521 ++	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
 4.50522 ++	    fi
 4.50523 ++
 4.50524 ++	    test -n "$save_libobjs" &&
 4.50525 ++	      func_echo "creating a temporary reloadable object file: $output"
 4.50526 ++
 4.50527 ++	    # Loop through the commands generated above and execute them.
 4.50528 ++	    save_ifs="$IFS"; IFS='~'
 4.50529 ++	    for cmd in $concat_cmds; do
 4.50530 ++	      IFS="$save_ifs"
 4.50531 ++	      $opt_silent || {
 4.50532 ++		  func_quote_for_expand "$cmd"
 4.50533 ++		  eval "func_echo $func_quote_for_expand_result"
 4.50534 ++	      }
 4.50535 ++	      $opt_dry_run || eval "$cmd" || {
 4.50536 ++		lt_exit=$?
 4.50537 ++
 4.50538 ++		# Restore the uninstalled library and exit
 4.50539 ++		if test "$mode" = relink; then
 4.50540 ++		  ( cd "$output_objdir" && \
 4.50541 ++		    $RM "${realname}T" && \
 4.50542 ++		    $MV "${realname}U" "$realname" )
 4.50543 ++		fi
 4.50544 ++
 4.50545 ++		exit $lt_exit
 4.50546 ++	      }
 4.50547 ++	    done
 4.50548 ++	    IFS="$save_ifs"
 4.50549 ++
 4.50550 ++	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
 4.50551 ++	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
 4.50552 ++	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
 4.50553 ++	    fi
 4.50554 ++	  fi
 4.50555 ++
 4.50556 ++          if ${skipped_export-false}; then
 4.50557 ++	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
 4.50558 ++	      tmp_export_symbols="$export_symbols"
 4.50559 ++	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
 4.50560 ++	      $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
 4.50561 ++	    fi
 4.50562 ++
 4.50563 ++	    if test -n "$orig_export_symbols"; then
 4.50564 ++	      # The given exports_symbols file has to be filtered, so filter it.
 4.50565 ++	      func_echo "filter symbol list for \`$libname.la' to tag DATA exports"
 4.50566 ++	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
 4.50567 ++	      # 's' commands which not all seds can handle. GNU sed should be fine
 4.50568 ++	      # though. Also, the filter scales superlinearly with the number of
 4.50569 ++	      # global variables. join(1) would be nice here, but unfortunately
 4.50570 ++	      # isn't a blessed tool.
 4.50571 ++	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
 4.50572 ++	      delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
 4.50573 ++	      export_symbols=$output_objdir/$libname.def
 4.50574 ++	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
 4.50575 ++	    fi
 4.50576 ++	  fi
 4.50577 ++
 4.50578 ++	  libobjs=$output
 4.50579 ++	  # Restore the value of output.
 4.50580 ++	  output=$save_output
 4.50581 ++
 4.50582 ++	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
 4.50583 ++	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
 4.50584 ++	    test "X$libobjs" = "X " && libobjs=
 4.50585 ++	  fi
 4.50586 ++	  # Expand the library linking commands again to reset the
 4.50587 ++	  # value of $libobjs for piecewise linking.
 4.50588 ++
 4.50589 ++	  # Do each of the archive commands.
 4.50590 ++	  if test "$module" = yes && test -n "$module_cmds" ; then
 4.50591 ++	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
 4.50592 ++	      cmds=$module_expsym_cmds
 4.50593 ++	    else
 4.50594 ++	      cmds=$module_cmds
 4.50595 ++	    fi
 4.50596 ++	  else
 4.50597 ++	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
 4.50598 ++	      cmds=$archive_expsym_cmds
 4.50599 ++	    else
 4.50600 ++	      cmds=$archive_cmds
 4.50601 ++	    fi
 4.50602 ++	  fi
 4.50603 ++	fi
 4.50604 ++
 4.50605 ++	if test -n "$delfiles"; then
 4.50606 ++	  # Append the command to remove temporary files to $cmds.
 4.50607 ++	  eval cmds=\"\$cmds~\$RM $delfiles\"
 4.50608 ++	fi
 4.50609 ++
 4.50610 ++	# Add any objects from preloaded convenience libraries
 4.50611 ++	if test -n "$dlprefiles"; then
 4.50612 ++	  gentop="$output_objdir/${outputname}x"
 4.50613 ++	  generated="$generated $gentop"
 4.50614 ++
 4.50615 ++	  func_extract_archives $gentop $dlprefiles
 4.50616 ++	  libobjs="$libobjs $func_extract_archives_result"
 4.50617 ++	  test "X$libobjs" = "X " && libobjs=
 4.50618 ++	fi
 4.50619 ++
 4.50620 ++	save_ifs="$IFS"; IFS='~'
 4.50621 ++	for cmd in $cmds; do
 4.50622 ++	  IFS="$save_ifs"
 4.50623 ++	  eval cmd=\"$cmd\"
 4.50624 ++	  $opt_silent || {
 4.50625 ++	    func_quote_for_expand "$cmd"
 4.50626 ++	    eval "func_echo $func_quote_for_expand_result"
 4.50627 ++	  }
 4.50628 ++	  $opt_dry_run || eval "$cmd" || {
 4.50629 ++	    lt_exit=$?
 4.50630 ++
 4.50631 ++	    # Restore the uninstalled library and exit
 4.50632 ++	    if test "$mode" = relink; then
 4.50633 ++	      ( cd "$output_objdir" && \
 4.50634 ++	        $RM "${realname}T" && \
 4.50635 ++		$MV "${realname}U" "$realname" )
 4.50636 ++	    fi
 4.50637 ++
 4.50638 ++	    exit $lt_exit
 4.50639 ++	  }
 4.50640 ++	done
 4.50641 ++	IFS="$save_ifs"
 4.50642 ++
 4.50643 ++	# Restore the uninstalled library and exit
 4.50644 ++	if test "$mode" = relink; then
 4.50645 ++	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
 4.50646 ++
 4.50647 ++	  if test -n "$convenience"; then
 4.50648 ++	    if test -z "$whole_archive_flag_spec"; then
 4.50649 ++	      func_show_eval '${RM}r "$gentop"'
 4.50650 ++	    fi
 4.50651 ++	  fi
 4.50652 ++
 4.50653 ++	  exit $EXIT_SUCCESS
 4.50654 ++	fi
 4.50655 ++
 4.50656 ++	# Create links to the real library.
 4.50657 ++	for linkname in $linknames; do
 4.50658 ++	  if test "$realname" != "$linkname"; then
 4.50659 ++	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
 4.50660 ++	  fi
 4.50661 ++	done
 4.50662 ++
 4.50663 ++	# If -module or -export-dynamic was specified, set the dlname.
 4.50664 ++	if test "$module" = yes || test "$export_dynamic" = yes; then
 4.50665 ++	  # On all known operating systems, these are identical.
 4.50666 ++	  dlname="$soname"
 4.50667 ++	fi
 4.50668 ++      fi
 4.50669 ++      ;;
 4.50670 ++
 4.50671 ++    obj)
 4.50672 ++      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 4.50673 ++	func_warning "\`-dlopen' is ignored for objects"
 4.50674 ++      fi
 4.50675 ++
 4.50676 ++      test -n "$deplibs" && \
 4.50677 ++	func_warning "\`-l' and \`-L' are ignored for objects"
 4.50678 ++
 4.50679 ++      test -n "$rpath" && \
 4.50680 ++	func_warning "\`-rpath' is ignored for objects"
 4.50681 ++
 4.50682 ++      test -n "$xrpath" && \
 4.50683 ++	func_warning "\`-R' is ignored for objects"
 4.50684 ++
 4.50685 ++      test -n "$vinfo" && \
 4.50686 ++	func_warning "\`-version-info' is ignored for objects"
 4.50687 ++
 4.50688 ++      test -n "$release" && \
 4.50689 ++	func_warning "\`-release' is ignored for objects"
 4.50690 ++
 4.50691 ++      case $output in
 4.50692 ++      *.lo)
 4.50693 ++	test -n "$objs$old_deplibs" && \
 4.50694 ++	  func_fatal_error "cannot build library object \`$output' from non-libtool objects"
 4.50695 ++
 4.50696 ++	libobj=$output
 4.50697 ++	func_lo2o "$libobj"
 4.50698 ++	obj=$func_lo2o_result
 4.50699 ++	;;
 4.50700 ++      *)
 4.50701 ++	libobj=
 4.50702 ++	obj="$output"
 4.50703 ++	;;
 4.50704 ++      esac
 4.50705 ++
 4.50706 ++      # Delete the old objects.
 4.50707 ++      $opt_dry_run || $RM $obj $libobj
 4.50708 ++
 4.50709 ++      # Objects from convenience libraries.  This assumes
 4.50710 ++      # single-version convenience libraries.  Whenever we create
 4.50711 ++      # different ones for PIC/non-PIC, this we'll have to duplicate
 4.50712 ++      # the extraction.
 4.50713 ++      reload_conv_objs=
 4.50714 ++      gentop=
 4.50715 ++      # reload_cmds runs $LD directly, so let us get rid of
 4.50716 ++      # -Wl from whole_archive_flag_spec and hope we can get by with
 4.50717 ++      # turning comma into space..
 4.50718 ++      wl=
 4.50719 ++
 4.50720 ++      if test -n "$convenience"; then
 4.50721 ++	if test -n "$whole_archive_flag_spec"; then
 4.50722 ++	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
 4.50723 ++	  reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
 4.50724 ++	else
 4.50725 ++	  gentop="$output_objdir/${obj}x"
 4.50726 ++	  generated="$generated $gentop"
 4.50727 ++
 4.50728 ++	  func_extract_archives $gentop $convenience
 4.50729 ++	  reload_conv_objs="$reload_objs $func_extract_archives_result"
 4.50730 ++	fi
 4.50731 ++      fi
 4.50732 ++
 4.50733 ++      # Create the old-style object.
 4.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
 4.50735 ++
 4.50736 ++      output="$obj"
 4.50737 ++      func_execute_cmds "$reload_cmds" 'exit $?'
 4.50738 ++
 4.50739 ++      # Exit if we aren't doing a library object file.
 4.50740 ++      if test -z "$libobj"; then
 4.50741 ++	if test -n "$gentop"; then
 4.50742 ++	  func_show_eval '${RM}r "$gentop"'
 4.50743 ++	fi
 4.50744 ++
 4.50745 ++	exit $EXIT_SUCCESS
 4.50746 ++      fi
 4.50747 ++
 4.50748 ++      if test "$build_libtool_libs" != yes; then
 4.50749 ++	if test -n "$gentop"; then
 4.50750 ++	  func_show_eval '${RM}r "$gentop"'
 4.50751 ++	fi
 4.50752 ++
 4.50753 ++	# Create an invalid libtool object if no PIC, so that we don't
 4.50754 ++	# accidentally link it into a program.
 4.50755 ++	# $show "echo timestamp > $libobj"
 4.50756 ++	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
 4.50757 ++	exit $EXIT_SUCCESS
 4.50758 ++      fi
 4.50759 ++
 4.50760 ++      if test -n "$pic_flag" || test "$pic_mode" != default; then
 4.50761 ++	# Only do commands if we really have different PIC objects.
 4.50762 ++	reload_objs="$libobjs $reload_conv_objs"
 4.50763 ++	output="$libobj"
 4.50764 ++	func_execute_cmds "$reload_cmds" 'exit $?'
 4.50765 ++      fi
 4.50766 ++
 4.50767 ++      if test -n "$gentop"; then
 4.50768 ++	func_show_eval '${RM}r "$gentop"'
 4.50769 ++      fi
 4.50770 ++
 4.50771 ++      exit $EXIT_SUCCESS
 4.50772 ++      ;;
 4.50773 ++
 4.50774 ++    prog)
 4.50775 ++      case $host in
 4.50776 ++	*cygwin*) func_stripname '' '.exe' "$output"
 4.50777 ++	          output=$func_stripname_result.exe;;
 4.50778 ++      esac
 4.50779 ++      test -n "$vinfo" && \
 4.50780 ++	func_warning "\`-version-info' is ignored for programs"
 4.50781 ++
 4.50782 ++      test -n "$release" && \
 4.50783 ++	func_warning "\`-release' is ignored for programs"
 4.50784 ++
 4.50785 ++      test "$preload" = yes \
 4.50786 ++        && test "$dlopen_support" = unknown \
 4.50787 ++	&& test "$dlopen_self" = unknown \
 4.50788 ++	&& test "$dlopen_self_static" = unknown && \
 4.50789 ++	  func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
 4.50790 ++
 4.50791 ++      case $host in
 4.50792 ++      *-*-rhapsody* | *-*-darwin1.[012])
 4.50793 ++	# On Rhapsody replace the C library is the System framework
 4.50794 ++	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
 4.50795 ++	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
 4.50796 ++	;;
 4.50797 ++      esac
 4.50798 ++
 4.50799 ++      case $host in
 4.50800 ++      *-*-darwin*)
 4.50801 ++	# Don't allow lazy linking, it breaks C++ global constructors
 4.50802 ++	# But is supposedly fixed on 10.4 or later (yay!).
 4.50803 ++	if test "$tagname" = CXX ; then
 4.50804 ++	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
 4.50805 ++	    10.[0123])
 4.50806 ++	      compile_command="$compile_command ${wl}-bind_at_load"
 4.50807 ++	      finalize_command="$finalize_command ${wl}-bind_at_load"
 4.50808 ++	    ;;
 4.50809 ++	  esac
 4.50810 ++	fi
 4.50811 ++	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
 4.50812 ++	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 4.50813 ++	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 4.50814 ++	;;
 4.50815 ++      esac
 4.50816 ++
 4.50817 ++
 4.50818 ++      # move library search paths that coincide with paths to not yet
 4.50819 ++      # installed libraries to the beginning of the library search list
 4.50820 ++      new_libs=
 4.50821 ++      for path in $notinst_path; do
 4.50822 ++	case " $new_libs " in
 4.50823 ++	*" -L$path/$objdir "*) ;;
 4.50824 ++	*)
 4.50825 ++	  case " $compile_deplibs " in
 4.50826 ++	  *" -L$path/$objdir "*)
 4.50827 ++	    new_libs="$new_libs -L$path/$objdir" ;;
 4.50828 ++	  esac
 4.50829 ++	  ;;
 4.50830 ++	esac
 4.50831 ++      done
 4.50832 ++      for deplib in $compile_deplibs; do
 4.50833 ++	case $deplib in
 4.50834 ++	-L*)
 4.50835 ++	  case " $new_libs " in
 4.50836 ++	  *" $deplib "*) ;;
 4.50837 ++	  *) new_libs="$new_libs $deplib" ;;
 4.50838 ++	  esac
 4.50839 ++	  ;;
 4.50840 ++	*) new_libs="$new_libs $deplib" ;;
 4.50841 ++	esac
 4.50842 ++      done
 4.50843 ++      compile_deplibs="$new_libs"
 4.50844 ++
 4.50845 ++
 4.50846 ++      compile_command="$compile_command $compile_deplibs"
 4.50847 ++      finalize_command="$finalize_command $finalize_deplibs"
 4.50848 ++
 4.50849 ++      if test -n "$rpath$xrpath"; then
 4.50850 ++	# If the user specified any rpath flags, then add them.
 4.50851 ++	for libdir in $rpath $xrpath; do
 4.50852 ++	  # This is the magic to use -rpath.
 4.50853 ++	  case "$finalize_rpath " in
 4.50854 ++	  *" $libdir "*) ;;
 4.50855 ++	  *) finalize_rpath="$finalize_rpath $libdir" ;;
 4.50856 ++	  esac
 4.50857 ++	done
 4.50858 ++      fi
 4.50859 ++
 4.50860 ++      # Now hardcode the library paths
 4.50861 ++      rpath=
 4.50862 ++      hardcode_libdirs=
 4.50863 ++      for libdir in $compile_rpath $finalize_rpath; do
 4.50864 ++	if test -n "$hardcode_libdir_flag_spec"; then
 4.50865 ++	  if test -n "$hardcode_libdir_separator"; then
 4.50866 ++	    if test -z "$hardcode_libdirs"; then
 4.50867 ++	      hardcode_libdirs="$libdir"
 4.50868 ++	    else
 4.50869 ++	      # Just accumulate the unique libdirs.
 4.50870 ++	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 4.50871 ++	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 4.50872 ++		;;
 4.50873 ++	      *)
 4.50874 ++		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 4.50875 ++		;;
 4.50876 ++	      esac
 4.50877 ++	    fi
 4.50878 ++	  else
 4.50879 ++	    eval flag=\"$hardcode_libdir_flag_spec\"
 4.50880 ++	    rpath="$rpath $flag"
 4.50881 ++	  fi
 4.50882 ++	elif test -n "$runpath_var"; then
 4.50883 ++	  case "$perm_rpath " in
 4.50884 ++	  *" $libdir "*) ;;
 4.50885 ++	  *) perm_rpath="$perm_rpath $libdir" ;;
 4.50886 ++	  esac
 4.50887 ++	fi
 4.50888 ++	case $host in
 4.50889 ++	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
 4.50890 ++	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
 4.50891 ++	  case :$dllsearchpath: in
 4.50892 ++	  *":$libdir:"*) ;;
 4.50893 ++	  *) dllsearchpath="$dllsearchpath:$libdir";;
 4.50894 ++	  esac
 4.50895 ++	  case :$dllsearchpath: in
 4.50896 ++	  *":$testbindir:"*) ;;
 4.50897 ++	  *) dllsearchpath="$dllsearchpath:$testbindir";;
 4.50898 ++	  esac
 4.50899 ++	  ;;
 4.50900 ++	esac
 4.50901 ++      done
 4.50902 ++      # Substitute the hardcoded libdirs into the rpath.
 4.50903 ++      if test -n "$hardcode_libdir_separator" &&
 4.50904 ++	 test -n "$hardcode_libdirs"; then
 4.50905 ++	libdir="$hardcode_libdirs"
 4.50906 ++	eval rpath=\" $hardcode_libdir_flag_spec\"
 4.50907 ++      fi
 4.50908 ++      compile_rpath="$rpath"
 4.50909 ++
 4.50910 ++      rpath=
 4.50911 ++      hardcode_libdirs=
 4.50912 ++      for libdir in $finalize_rpath; do
 4.50913 ++	if test -n "$hardcode_libdir_flag_spec"; then
 4.50914 ++	  if test -n "$hardcode_libdir_separator"; then
 4.50915 ++	    if test -z "$hardcode_libdirs"; then
 4.50916 ++	      hardcode_libdirs="$libdir"
 4.50917 ++	    else
 4.50918 ++	      # Just accumulate the unique libdirs.
 4.50919 ++	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 4.50920 ++	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 4.50921 ++		;;
 4.50922 ++	      *)
 4.50923 ++		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 4.50924 ++		;;
 4.50925 ++	      esac
 4.50926 ++	    fi
 4.50927 ++	  else
 4.50928 ++	    eval flag=\"$hardcode_libdir_flag_spec\"
 4.50929 ++	    rpath="$rpath $flag"
 4.50930 ++	  fi
 4.50931 ++	elif test -n "$runpath_var"; then
 4.50932 ++	  case "$finalize_perm_rpath " in
 4.50933 ++	  *" $libdir "*) ;;
 4.50934 ++	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
 4.50935 ++	  esac
 4.50936 ++	fi
 4.50937 ++      done
 4.50938 ++      # Substitute the hardcoded libdirs into the rpath.
 4.50939 ++      if test -n "$hardcode_libdir_separator" &&
 4.50940 ++	 test -n "$hardcode_libdirs"; then
 4.50941 ++	libdir="$hardcode_libdirs"
 4.50942 ++	eval rpath=\" $hardcode_libdir_flag_spec\"
 4.50943 ++      fi
 4.50944 ++      finalize_rpath="$rpath"
 4.50945 ++
 4.50946 ++      if test -n "$libobjs" && test "$build_old_libs" = yes; then
 4.50947 ++	# Transform all the library objects into standard objects.
 4.50948 ++	compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 4.50949 ++	finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 4.50950 ++      fi
 4.50951 ++
 4.50952 ++      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
 4.50953 ++
 4.50954 ++      # template prelinking step
 4.50955 ++      if test -n "$prelink_cmds"; then
 4.50956 ++	func_execute_cmds "$prelink_cmds" 'exit $?'
 4.50957 ++      fi
 4.50958 ++
 4.50959 ++      wrappers_required=yes
 4.50960 ++      case $host in
 4.50961 ++      *cygwin* | *mingw* )
 4.50962 ++        if test "$build_libtool_libs" != yes; then
 4.50963 ++          wrappers_required=no
 4.50964 ++        fi
 4.50965 ++        ;;
 4.50966 ++      *)
 4.50967 ++        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
 4.50968 ++          wrappers_required=no
 4.50969 ++        fi
 4.50970 ++        ;;
 4.50971 ++      esac
 4.50972 ++      if test "$wrappers_required" = no; then
 4.50973 ++	# Replace the output file specification.
 4.50974 ++	compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
 4.50975 ++	link_command="$compile_command$compile_rpath"
 4.50976 ++
 4.50977 ++	# We have no uninstalled library dependencies, so finalize right now.
 4.50978 ++	exit_status=0
 4.50979 ++	func_show_eval "$link_command" 'exit_status=$?'
 4.50980 ++
 4.50981 ++	# Delete the generated files.
 4.50982 ++	if test -f "$output_objdir/${outputname}S.${objext}"; then
 4.50983 ++	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
 4.50984 ++	fi
 4.50985 ++
 4.50986 ++	exit $exit_status
 4.50987 ++      fi
 4.50988 ++
 4.50989 ++      if test -n "$compile_shlibpath$finalize_shlibpath"; then
 4.50990 ++	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
 4.50991 ++      fi
 4.50992 ++      if test -n "$finalize_shlibpath"; then
 4.50993 ++	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
 4.50994 ++      fi
 4.50995 ++
 4.50996 ++      compile_var=
 4.50997 ++      finalize_var=
 4.50998 ++      if test -n "$runpath_var"; then
 4.50999 ++	if test -n "$perm_rpath"; then
 4.51000 ++	  # We should set the runpath_var.
 4.51001 ++	  rpath=
 4.51002 ++	  for dir in $perm_rpath; do
 4.51003 ++	    rpath="$rpath$dir:"
 4.51004 ++	  done
 4.51005 ++	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
 4.51006 ++	fi
 4.51007 ++	if test -n "$finalize_perm_rpath"; then
 4.51008 ++	  # We should set the runpath_var.
 4.51009 ++	  rpath=
 4.51010 ++	  for dir in $finalize_perm_rpath; do
 4.51011 ++	    rpath="$rpath$dir:"
 4.51012 ++	  done
 4.51013 ++	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
 4.51014 ++	fi
 4.51015 ++      fi
 4.51016 ++
 4.51017 ++      if test "$no_install" = yes; then
 4.51018 ++	# We don't need to create a wrapper script.
 4.51019 ++	link_command="$compile_var$compile_command$compile_rpath"
 4.51020 ++	# Replace the output file specification.
 4.51021 ++	link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
 4.51022 ++	# Delete the old output file.
 4.51023 ++	$opt_dry_run || $RM $output
 4.51024 ++	# Link the executable and exit
 4.51025 ++	func_show_eval "$link_command" 'exit $?'
 4.51026 ++	exit $EXIT_SUCCESS
 4.51027 ++      fi
 4.51028 ++
 4.51029 ++      if test "$hardcode_action" = relink; then
 4.51030 ++	# Fast installation is not supported
 4.51031 ++	link_command="$compile_var$compile_command$compile_rpath"
 4.51032 ++	relink_command="$finalize_var$finalize_command$finalize_rpath"
 4.51033 ++
 4.51034 ++	func_warning "this platform does not like uninstalled shared libraries"
 4.51035 ++	func_warning "\`$output' will be relinked during installation"
 4.51036 ++      else
 4.51037 ++	if test "$fast_install" != no; then
 4.51038 ++	  link_command="$finalize_var$compile_command$finalize_rpath"
 4.51039 ++	  if test "$fast_install" = yes; then
 4.51040 ++	    relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
 4.51041 ++	  else
 4.51042 ++	    # fast_install is set to needless
 4.51043 ++	    relink_command=
 4.51044 ++	  fi
 4.51045 ++	else
 4.51046 ++	  link_command="$compile_var$compile_command$compile_rpath"
 4.51047 ++	  relink_command="$finalize_var$finalize_command$finalize_rpath"
 4.51048 ++	fi
 4.51049 ++      fi
 4.51050 ++
 4.51051 ++      # Replace the output file specification.
 4.51052 ++      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 4.51053 ++
 4.51054 ++      # Delete the old output files.
 4.51055 ++      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
 4.51056 ++
 4.51057 ++      func_show_eval "$link_command" 'exit $?'
 4.51058 ++
 4.51059 ++      # Now create the wrapper script.
 4.51060 ++      func_echo "creating $output"
 4.51061 ++
 4.51062 ++      # Quote the relink command for shipping.
 4.51063 ++      if test -n "$relink_command"; then
 4.51064 ++	# Preserve any variables that may affect compiler behavior
 4.51065 ++	for var in $variables_saved_for_relink; do
 4.51066 ++	  if eval test -z \"\${$var+set}\"; then
 4.51067 ++	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
 4.51068 ++	  elif eval var_value=\$$var; test -z "$var_value"; then
 4.51069 ++	    relink_command="$var=; export $var; $relink_command"
 4.51070 ++	  else
 4.51071 ++	    func_quote_for_eval "$var_value"
 4.51072 ++	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
 4.51073 ++	  fi
 4.51074 ++	done
 4.51075 ++	relink_command="(cd `pwd`; $relink_command)"
 4.51076 ++	relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
 4.51077 ++      fi
 4.51078 ++
 4.51079 ++      # Quote $ECHO for shipping.
 4.51080 ++      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
 4.51081 ++	case $progpath in
 4.51082 ++	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
 4.51083 ++	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
 4.51084 ++	esac
 4.51085 ++	qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
 4.51086 ++      else
 4.51087 ++	qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
 4.51088 ++      fi
 4.51089 ++
 4.51090 ++      # Only actually do things if not in dry run mode.
 4.51091 ++      $opt_dry_run || {
 4.51092 ++	# win32 will think the script is a binary if it has
 4.51093 ++	# a .exe suffix, so we strip it off here.
 4.51094 ++	case $output in
 4.51095 ++	  *.exe) func_stripname '' '.exe' "$output"
 4.51096 ++	         output=$func_stripname_result ;;
 4.51097 ++	esac
 4.51098 ++	# test for cygwin because mv fails w/o .exe extensions
 4.51099 ++	case $host in
 4.51100 ++	  *cygwin*)
 4.51101 ++	    exeext=.exe
 4.51102 ++	    func_stripname '' '.exe' "$outputname"
 4.51103 ++	    outputname=$func_stripname_result ;;
 4.51104 ++	  *) exeext= ;;
 4.51105 ++	esac
 4.51106 ++	case $host in
 4.51107 ++	  *cygwin* | *mingw* )
 4.51108 ++	    output_name=`basename $output`
 4.51109 ++	    output_path=`dirname $output`
 4.51110 ++	    cwrappersource="$output_path/$objdir/lt-$output_name.c"
 4.51111 ++	    cwrapper="$output_path/$output_name.exe"
 4.51112 ++	    $RM $cwrappersource $cwrapper
 4.51113 ++	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
 4.51114 ++
 4.51115 ++	    cat > $cwrappersource <<EOF
 4.51116 ++
 4.51117 ++/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
 4.51118 ++   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 4.51119 ++
 4.51120 ++   The $output program cannot be directly executed until all the libtool
 4.51121 ++   libraries that it depends on are installed.
 4.51122 ++
 4.51123 ++   This wrapper executable should never be moved out of the build directory.
 4.51124 ++   If it is, it will not operate correctly.
 4.51125 ++
 4.51126 ++   Currently, it simply execs the wrapper *script* "/bin/sh $output",
 4.51127 ++   but could eventually absorb all of the scripts functionality and
 4.51128 ++   exec $objdir/$outputname directly.
 4.51129 ++*/
 4.51130 ++EOF
 4.51131 ++	    cat >> $cwrappersource<<"EOF"
 4.51132 ++#include <stdio.h>
 4.51133 ++#include <stdlib.h>
 4.51134 ++#include <unistd.h>
 4.51135 ++#include <malloc.h>
 4.51136 ++#include <stdarg.h>
 4.51137 ++#include <assert.h>
 4.51138 ++#include <string.h>
 4.51139 ++#include <ctype.h>
 4.51140 ++#include <sys/stat.h>
 4.51141 ++
 4.51142 ++#if defined(PATH_MAX)
 4.51143 ++# define LT_PATHMAX PATH_MAX
 4.51144 ++#elif defined(MAXPATHLEN)
 4.51145 ++# define LT_PATHMAX MAXPATHLEN
 4.51146 ++#else
 4.51147 ++# define LT_PATHMAX 1024
 4.51148 ++#endif
 4.51149 ++
 4.51150 ++#ifndef DIR_SEPARATOR
 4.51151 ++# define DIR_SEPARATOR '/'
 4.51152 ++# define PATH_SEPARATOR ':'
 4.51153 ++#endif
 4.51154 ++
 4.51155 ++#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
 4.51156 ++  defined (__OS2__)
 4.51157 ++# define HAVE_DOS_BASED_FILE_SYSTEM
 4.51158 ++# ifndef DIR_SEPARATOR_2
 4.51159 ++#  define DIR_SEPARATOR_2 '\\'
 4.51160 ++# endif
 4.51161 ++# ifndef PATH_SEPARATOR_2
 4.51162 ++#  define PATH_SEPARATOR_2 ';'
 4.51163 ++# endif
 4.51164 ++#endif
 4.51165 ++
 4.51166 ++#ifndef DIR_SEPARATOR_2
 4.51167 ++# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
 4.51168 ++#else /* DIR_SEPARATOR_2 */
 4.51169 ++# define IS_DIR_SEPARATOR(ch) \
 4.51170 ++	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
 4.51171 ++#endif /* DIR_SEPARATOR_2 */
 4.51172 ++
 4.51173 ++#ifndef PATH_SEPARATOR_2
 4.51174 ++# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
 4.51175 ++#else /* PATH_SEPARATOR_2 */
 4.51176 ++# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
 4.51177 ++#endif /* PATH_SEPARATOR_2 */
 4.51178 ++
 4.51179 ++#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
 4.51180 ++#define XFREE(stale) do { \
 4.51181 ++  if (stale) { free ((void *) stale); stale = 0; } \
 4.51182 ++} while (0)
 4.51183 ++
 4.51184 ++/* -DDEBUG is fairly common in CFLAGS.  */
 4.51185 ++#undef DEBUG
 4.51186 ++#if defined DEBUGWRAPPER
 4.51187 ++# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
 4.51188 ++#else
 4.51189 ++# define DEBUG(format, ...)
 4.51190 ++#endif
 4.51191 ++
 4.51192 ++const char *program_name = NULL;
 4.51193 ++
 4.51194 ++void * xmalloc (size_t num);
 4.51195 ++char * xstrdup (const char *string);
 4.51196 ++const char * base_name (const char *name);
 4.51197 ++char * find_executable(const char *wrapper);
 4.51198 ++int    check_executable(const char *path);
 4.51199 ++char * strendzap(char *str, const char *pat);
 4.51200 ++void lt_fatal (const char *message, ...);
 4.51201 ++
 4.51202 ++int
 4.51203 ++main (int argc, char *argv[])
 4.51204 ++{
 4.51205 ++  char **newargz;
 4.51206 ++  int i;
 4.51207 ++
 4.51208 ++  program_name = (char *) xstrdup (base_name (argv[0]));
 4.51209 ++  DEBUG("(main) argv[0]      : %s\n",argv[0]);
 4.51210 ++  DEBUG("(main) program_name : %s\n",program_name);
 4.51211 ++  newargz = XMALLOC(char *, argc+2);
 4.51212 ++EOF
 4.51213 ++
 4.51214 ++	    cat >> $cwrappersource <<EOF
 4.51215 ++  newargz[0] = (char *) xstrdup("$SHELL");
 4.51216 ++EOF
 4.51217 ++
 4.51218 ++	    cat >> $cwrappersource <<"EOF"
 4.51219 ++  newargz[1] = find_executable(argv[0]);
 4.51220 ++  if (newargz[1] == NULL)
 4.51221 ++    lt_fatal("Couldn't find %s", argv[0]);
 4.51222 ++  DEBUG("(main) found exe at : %s\n",newargz[1]);
 4.51223 ++  /* we know the script has the same name, without the .exe */
 4.51224 ++  /* so make sure newargz[1] doesn't end in .exe */
 4.51225 ++  strendzap(newargz[1],".exe");
 4.51226 ++  for (i = 1; i < argc; i++)
 4.51227 ++    newargz[i+1] = xstrdup(argv[i]);
 4.51228 ++  newargz[argc+1] = NULL;
 4.51229 ++
 4.51230 ++  for (i=0; i<argc+1; i++)
 4.51231 ++  {
 4.51232 ++    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
 4.51233 ++    ;
 4.51234 ++  }
 4.51235 ++
 4.51236 ++EOF
 4.51237 ++
 4.51238 ++	    case $host_os in
 4.51239 ++	      mingw*)
 4.51240 ++		cat >> $cwrappersource <<EOF
 4.51241 ++  execv("$SHELL",(char const **)newargz);
 4.51242 ++EOF
 4.51243 ++	      ;;
 4.51244 ++	      *)
 4.51245 ++		cat >> $cwrappersource <<EOF
 4.51246 ++  execv("$SHELL",newargz);
 4.51247 ++EOF
 4.51248 ++	      ;;
 4.51249 ++	    esac
 4.51250 ++
 4.51251 ++	    cat >> $cwrappersource <<"EOF"
 4.51252 ++  return 127;
 4.51253 ++}
 4.51254 ++
 4.51255 ++void *
 4.51256 ++xmalloc (size_t num)
 4.51257 ++{
 4.51258 ++  void * p = (void *) malloc (num);
 4.51259 ++  if (!p)
 4.51260 ++    lt_fatal ("Memory exhausted");
 4.51261 ++
 4.51262 ++  return p;
 4.51263 ++}
 4.51264 ++
 4.51265 ++char *
 4.51266 ++xstrdup (const char *string)
 4.51267 ++{
 4.51268 ++  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
 4.51269 ++;
 4.51270 ++}
 4.51271 ++
 4.51272 ++const char *
 4.51273 ++base_name (const char *name)
 4.51274 ++{
 4.51275 ++  const char *base;
 4.51276 ++
 4.51277 ++#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 4.51278 ++  /* Skip over the disk name in MSDOS pathnames. */
 4.51279 ++  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
 4.51280 ++    name += 2;
 4.51281 ++#endif
 4.51282 ++
 4.51283 ++  for (base = name; *name; name++)
 4.51284 ++    if (IS_DIR_SEPARATOR (*name))
 4.51285 ++      base = name + 1;
 4.51286 ++  return base;
 4.51287 ++}
 4.51288 ++
 4.51289 ++int
 4.51290 ++check_executable(const char * path)
 4.51291 ++{
 4.51292 ++  struct stat st;
 4.51293 ++
 4.51294 ++  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
 4.51295 ++  if ((!path) || (!*path))
 4.51296 ++    return 0;
 4.51297 ++
 4.51298 ++  if ((stat (path, &st) >= 0) &&
 4.51299 ++      (
 4.51300 ++	/* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
 4.51301 ++#if defined (S_IXOTH)
 4.51302 ++       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
 4.51303 ++#endif
 4.51304 ++#if defined (S_IXGRP)
 4.51305 ++       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
 4.51306 ++#endif
 4.51307 ++       ((st.st_mode & S_IXUSR) == S_IXUSR))
 4.51308 ++      )
 4.51309 ++    return 1;
 4.51310 ++  else
 4.51311 ++    return 0;
 4.51312 ++}
 4.51313 ++
 4.51314 ++/* Searches for the full path of the wrapper.  Returns
 4.51315 ++   newly allocated full path name if found, NULL otherwise */
 4.51316 ++char *
 4.51317 ++find_executable (const char* wrapper)
 4.51318 ++{
 4.51319 ++  int has_slash = 0;
 4.51320 ++  const char* p;
 4.51321 ++  const char* p_next;
 4.51322 ++  /* static buffer for getcwd */
 4.51323 ++  char tmp[LT_PATHMAX + 1];
 4.51324 ++  int tmp_len;
 4.51325 ++  char* concat_name;
 4.51326 ++
 4.51327 ++  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
 4.51328 ++
 4.51329 ++  if ((wrapper == NULL) || (*wrapper == '\0'))
 4.51330 ++    return NULL;
 4.51331 ++
 4.51332 ++  /* Absolute path? */
 4.51333 ++#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 4.51334 ++  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
 4.51335 ++  {
 4.51336 ++    concat_name = xstrdup (wrapper);
 4.51337 ++    if (check_executable(concat_name))
 4.51338 ++      return concat_name;
 4.51339 ++    XFREE(concat_name);
 4.51340 ++  }
 4.51341 ++  else
 4.51342 ++  {
 4.51343 ++#endif
 4.51344 ++    if (IS_DIR_SEPARATOR (wrapper[0]))
 4.51345 ++    {
 4.51346 ++      concat_name = xstrdup (wrapper);
 4.51347 ++      if (check_executable(concat_name))
 4.51348 ++	return concat_name;
 4.51349 ++      XFREE(concat_name);
 4.51350 ++    }
 4.51351 ++#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 4.51352 ++  }
 4.51353 ++#endif
 4.51354 ++
 4.51355 ++  for (p = wrapper; *p; p++)
 4.51356 ++    if (*p == '/')
 4.51357 ++    {
 4.51358 ++      has_slash = 1;
 4.51359 ++      break;
 4.51360 ++    }
 4.51361 ++  if (!has_slash)
 4.51362 ++  {
 4.51363 ++    /* no slashes; search PATH */
 4.51364 ++    const char* path = getenv ("PATH");
 4.51365 ++    if (path != NULL)
 4.51366 ++    {
 4.51367 ++      for (p = path; *p; p = p_next)
 4.51368 ++      {
 4.51369 ++	const char* q;
 4.51370 ++	size_t p_len;
 4.51371 ++	for (q = p; *q; q++)
 4.51372 ++	  if (IS_PATH_SEPARATOR(*q))
 4.51373 ++	    break;
 4.51374 ++	p_len = q - p;
 4.51375 ++	p_next = (*q == '\0' ? q : q + 1);
 4.51376 ++	if (p_len == 0)
 4.51377 ++	{
 4.51378 ++	  /* empty path: current directory */
 4.51379 ++	  if (getcwd (tmp, LT_PATHMAX) == NULL)
 4.51380 ++	    lt_fatal ("getcwd failed");
 4.51381 ++	  tmp_len = strlen(tmp);
 4.51382 ++	  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
 4.51383 ++	  memcpy (concat_name, tmp, tmp_len);
 4.51384 ++	  concat_name[tmp_len] = '/';
 4.51385 ++	  strcpy (concat_name + tmp_len + 1, wrapper);
 4.51386 ++	}
 4.51387 ++	else
 4.51388 ++	{
 4.51389 ++	  concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
 4.51390 ++	  memcpy (concat_name, p, p_len);
 4.51391 ++	  concat_name[p_len] = '/';
 4.51392 ++	  strcpy (concat_name + p_len + 1, wrapper);
 4.51393 ++	}
 4.51394 ++	if (check_executable(concat_name))
 4.51395 ++	  return concat_name;
 4.51396 ++	XFREE(concat_name);
 4.51397 ++      }
 4.51398 ++    }
 4.51399 ++    /* not found in PATH; assume curdir */
 4.51400 ++  }
 4.51401 ++  /* Relative path | not found in path: prepend cwd */
 4.51402 ++  if (getcwd (tmp, LT_PATHMAX) == NULL)
 4.51403 ++    lt_fatal ("getcwd failed");
 4.51404 ++  tmp_len = strlen(tmp);
 4.51405 ++  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
 4.51406 ++  memcpy (concat_name, tmp, tmp_len);
 4.51407 ++  concat_name[tmp_len] = '/';
 4.51408 ++  strcpy (concat_name + tmp_len + 1, wrapper);
 4.51409 ++
 4.51410 ++  if (check_executable(concat_name))
 4.51411 ++    return concat_name;
 4.51412 ++  XFREE(concat_name);
 4.51413 ++  return NULL;
 4.51414 ++}
 4.51415 ++
 4.51416 ++char *
 4.51417 ++strendzap(char *str, const char *pat)
 4.51418 ++{
 4.51419 ++  size_t len, patlen;
 4.51420 ++
 4.51421 ++  assert(str != NULL);
 4.51422 ++  assert(pat != NULL);
 4.51423 ++
 4.51424 ++  len = strlen(str);
 4.51425 ++  patlen = strlen(pat);
 4.51426 ++
 4.51427 ++  if (patlen <= len)
 4.51428 ++  {
 4.51429 ++    str += len - patlen;
 4.51430 ++    if (strcmp(str, pat) == 0)
 4.51431 ++      *str = '\0';
 4.51432 ++  }
 4.51433 ++  return str;
 4.51434 ++}
 4.51435 ++
 4.51436 ++static void
 4.51437 ++lt_error_core (int exit_status, const char * mode,
 4.51438 ++	  const char * message, va_list ap)
 4.51439 ++{
 4.51440 ++  fprintf (stderr, "%s: %s: ", program_name, mode);
 4.51441 ++  vfprintf (stderr, message, ap);
 4.51442 ++  fprintf (stderr, ".\n");
 4.51443 ++
 4.51444 ++  if (exit_status >= 0)
 4.51445 ++    exit (exit_status);
 4.51446 ++}
 4.51447 ++
 4.51448 ++void
 4.51449 ++lt_fatal (const char *message, ...)
 4.51450 ++{
 4.51451 ++  va_list ap;
 4.51452 ++  va_start (ap, message);
 4.51453 ++  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
 4.51454 ++  va_end (ap);
 4.51455 ++}
 4.51456 ++EOF
 4.51457 ++	  # we should really use a build-platform specific compiler
 4.51458 ++	  # here, but OTOH, the wrappers (shell script and this C one)
 4.51459 ++	  # are only useful if you want to execute the "real" binary.
 4.51460 ++	  # Since the "real" binary is built for $host, then this
 4.51461 ++	  # wrapper might as well be built for $host, too.
 4.51462 ++	  $opt_dry_run || $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
 4.51463 ++	  ;;
 4.51464 ++	esac
 4.51465 ++	$RM $output
 4.51466 ++	trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
 4.51467 ++
 4.51468 ++	$ECHO > $output "\
 4.51469 ++#! $SHELL
 4.51470 ++
 4.51471 ++# $output - temporary wrapper script for $objdir/$outputname
 4.51472 ++# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 4.51473 ++#
 4.51474 ++# The $output program cannot be directly executed until all the libtool
 4.51475 ++# libraries that it depends on are installed.
 4.51476 ++#
 4.51477 ++# This wrapper script should never be moved out of the build directory.
 4.51478 ++# If it is, it will not operate correctly.
 4.51479 ++
 4.51480 ++# Sed substitution that helps us do robust quoting.  It backslashifies
 4.51481 ++# metacharacters that are still active within double-quoted strings.
 4.51482 ++Xsed='${SED} -e 1s/^X//'
 4.51483 ++sed_quote_subst='$sed_quote_subst'
 4.51484 ++
 4.51485 ++# Be Bourne compatible
 4.51486 ++if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
 4.51487 ++  emulate sh
 4.51488 ++  NULLCMD=:
 4.51489 ++  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
 4.51490 ++  # is contrary to our usage.  Disable this feature.
 4.51491 ++  alias -g '\${1+\"\$@\"}'='\"\$@\"'
 4.51492 ++  setopt NO_GLOB_SUBST
 4.51493 ++else
 4.51494 ++  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
 4.51495 ++fi
 4.51496 ++BIN_SH=xpg4; export BIN_SH # for Tru64
 4.51497 ++DUALCASE=1; export DUALCASE # for MKS sh
 4.51498 ++
 4.51499 ++# The HP-UX ksh and POSIX shell print the target directory to stdout
 4.51500 ++# if CDPATH is set.
 4.51501 ++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 4.51502 ++
 4.51503 ++relink_command=\"$relink_command\"
 4.51504 ++
 4.51505 ++# This environment variable determines our operation mode.
 4.51506 ++if test \"\$libtool_install_magic\" = \"$magic\"; then
 4.51507 ++  # install mode needs the following variables:
 4.51508 ++  generated_by_libtool_version='$macro_version'
 4.51509 ++  notinst_deplibs='$notinst_deplibs'
 4.51510 ++else
 4.51511 ++  # When we are sourced in execute mode, \$file and \$ECHO are already set.
 4.51512 ++  if test \"\$libtool_execute_magic\" != \"$magic\"; then
 4.51513 ++    ECHO=\"$qecho\"
 4.51514 ++    file=\"\$0\"
 4.51515 ++    # Make sure echo works.
 4.51516 ++    if test \"X\$1\" = X--no-reexec; then
 4.51517 ++      # Discard the --no-reexec flag, and continue.
 4.51518 ++      shift
 4.51519 ++    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
 4.51520 ++      # Yippee, \$ECHO works!
 4.51521 ++      :
 4.51522 ++    else
 4.51523 ++      # Restart under the correct shell, and then maybe \$ECHO will work.
 4.51524 ++      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
 4.51525 ++    fi
 4.51526 ++  fi\
 4.51527 ++"
 4.51528 ++	$ECHO >> $output "\
 4.51529 ++
 4.51530 ++  # Find the directory that this script lives in.
 4.51531 ++  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
 4.51532 ++  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
 4.51533 ++
 4.51534 ++  # Follow symbolic links until we get to the real thisdir.
 4.51535 ++  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
 4.51536 ++  while test -n \"\$file\"; do
 4.51537 ++    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
 4.51538 ++
 4.51539 ++    # If there was a directory component, then change thisdir.
 4.51540 ++    if test \"x\$destdir\" != \"x\$file\"; then
 4.51541 ++      case \"\$destdir\" in
 4.51542 ++      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
 4.51543 ++      *) thisdir=\"\$thisdir/\$destdir\" ;;
 4.51544 ++      esac
 4.51545 ++    fi
 4.51546 ++
 4.51547 ++    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
 4.51548 ++    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
 4.51549 ++  done
 4.51550 ++
 4.51551 ++  # Try to get the absolute directory name.
 4.51552 ++  absdir=\`cd \"\$thisdir\" && pwd\`
 4.51553 ++  test -n \"\$absdir\" && thisdir=\"\$absdir\"
 4.51554 ++"
 4.51555 ++
 4.51556 ++	if test "$fast_install" = yes; then
 4.51557 ++	  $ECHO >> $output "\
 4.51558 ++  program=lt-'$outputname'$exeext
 4.51559 ++  progdir=\"\$thisdir/$objdir\"
 4.51560 ++
 4.51561 ++  if test ! -f \"\$progdir/\$program\" ||
 4.51562 ++     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
 4.51563 ++       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
 4.51564 ++
 4.51565 ++    file=\"\$\$-\$program\"
 4.51566 ++
 4.51567 ++    if test ! -d \"\$progdir\"; then
 4.51568 ++      $MKDIR \"\$progdir\"
 4.51569 ++    else
 4.51570 ++      $RM \"\$progdir/\$file\"
 4.51571 ++    fi"
 4.51572 ++
 4.51573 ++	  $ECHO >> $output "\
 4.51574 ++
 4.51575 ++    # relink executable if necessary
 4.51576 ++    if test -n \"\$relink_command\"; then
 4.51577 ++      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
 4.51578 ++      else
 4.51579 ++	$ECHO \"\$relink_command_output\" >&2
 4.51580 ++	$RM \"\$progdir/\$file\"
 4.51581 ++	exit 1
 4.51582 ++      fi
 4.51583 ++    fi
 4.51584 ++
 4.51585 ++    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
 4.51586 ++    { $RM \"\$progdir/\$program\";
 4.51587 ++      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
 4.51588 ++    $RM \"\$progdir/\$file\"
 4.51589 ++  fi"
 4.51590 ++	else
 4.51591 ++	  $ECHO >> $output "\
 4.51592 ++  program='$outputname'
 4.51593 ++  progdir=\"\$thisdir/$objdir\"
 4.51594 ++"
 4.51595 ++	fi
 4.51596 ++
 4.51597 ++	$ECHO >> $output "\
 4.51598 ++
 4.51599 ++  if test -f \"\$progdir/\$program\"; then"
 4.51600 ++
 4.51601 ++	# Export our shlibpath_var if we have one.
 4.51602 ++	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
 4.51603 ++	  $ECHO >> $output "\
 4.51604 ++    # Add our own library path to $shlibpath_var
 4.51605 ++    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
 4.51606 ++
 4.51607 ++    # Some systems cannot cope with colon-terminated $shlibpath_var
 4.51608 ++    # The second colon is a workaround for a bug in BeOS R4 sed
 4.51609 ++    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
 4.51610 ++
 4.51611 ++    export $shlibpath_var
 4.51612 ++"
 4.51613 ++	fi
 4.51614 ++
 4.51615 ++	# fixup the dll searchpath if we need to.
 4.51616 ++	if test -n "$dllsearchpath"; then
 4.51617 ++	  $ECHO >> $output "\
 4.51618 ++    # Add the dll search path components to the executable PATH
 4.51619 ++    PATH=$dllsearchpath:\$PATH
 4.51620 ++"
 4.51621 ++	fi
 4.51622 ++
 4.51623 ++	$ECHO >> $output "\
 4.51624 ++    if test \"\$libtool_execute_magic\" != \"$magic\"; then
 4.51625 ++      # Run the actual program with our arguments.
 4.51626 ++"
 4.51627 ++	case $host in
 4.51628 ++	# Backslashes separate directories on plain windows
 4.51629 ++	*-*-mingw | *-*-os2*)
 4.51630 ++	  $ECHO >> $output "\
 4.51631 ++      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
 4.51632 ++"
 4.51633 ++	  ;;
 4.51634 ++
 4.51635 ++	*)
 4.51636 ++	  $ECHO >> $output "\
 4.51637 ++      exec \"\$progdir/\$program\" \${1+\"\$@\"}
 4.51638 ++"
 4.51639 ++	  ;;
 4.51640 ++	esac
 4.51641 ++	$ECHO >> $output "\
 4.51642 ++      \$ECHO \"\$0: cannot exec \$program \$*\"
 4.51643 ++      exit 1
 4.51644 ++    fi
 4.51645 ++  else
 4.51646 ++    # The program doesn't exist.
 4.51647 ++    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
 4.51648 ++    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
 4.51649 ++    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
 4.51650 ++    exit 1
 4.51651 ++  fi
 4.51652 ++fi\
 4.51653 ++"
 4.51654 ++	chmod +x $output
 4.51655 ++      }
 4.51656 ++      exit $EXIT_SUCCESS
 4.51657 ++      ;;
 4.51658 ++    esac
 4.51659 ++
 4.51660 ++    # See if we need to build an old-fashioned archive.
 4.51661 ++    for oldlib in $oldlibs; do
 4.51662 ++
 4.51663 ++      if test "$build_libtool_libs" = convenience; then
 4.51664 ++	oldobjs="$libobjs_save $symfileobj"
 4.51665 ++	addlibs="$convenience"
 4.51666 ++	build_libtool_libs=no
 4.51667 ++      else
 4.51668 ++	if test "$build_libtool_libs" = module; then
 4.51669 ++	  oldobjs="$libobjs_save"
 4.51670 ++	  build_libtool_libs=no
 4.51671 ++	else
 4.51672 ++	  oldobjs="$old_deplibs $non_pic_objects"
 4.51673 ++	  if test "$preload" = yes && test -f "$symfileobj"; then
 4.51674 ++	    oldobjs="$oldobjs $symfileobj"
 4.51675 ++	  fi
 4.51676 ++	fi
 4.51677 ++	addlibs="$old_convenience"
 4.51678 ++      fi
 4.51679 ++
 4.51680 ++      if test -n "$addlibs"; then
 4.51681 ++	gentop="$output_objdir/${outputname}x"
 4.51682 ++	generated="$generated $gentop"
 4.51683 ++
 4.51684 ++	func_extract_archives $gentop $addlibs
 4.51685 ++	oldobjs="$oldobjs $func_extract_archives_result"
 4.51686 ++      fi
 4.51687 ++
 4.51688 ++      # Do each command in the archive commands.
 4.51689 ++      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
 4.51690 ++	cmds=$old_archive_from_new_cmds
 4.51691 ++      else
 4.51692 ++
 4.51693 ++	# Add any objects from preloaded convenience libraries
 4.51694 ++	if test -n "$dlprefiles"; then
 4.51695 ++	  gentop="$output_objdir/${outputname}x"
 4.51696 ++	  generated="$generated $gentop"
 4.51697 ++
 4.51698 ++	  func_extract_archives $gentop $dlprefiles
 4.51699 ++	  oldobjs="$oldobjs $func_extract_archives_result"
 4.51700 ++	fi
 4.51701 ++
 4.51702 ++	# POSIX demands no paths to be encoded in archives.  We have
 4.51703 ++	# to avoid creating archives with duplicate basenames if we
 4.51704 ++	# might have to extract them afterwards, e.g., when creating a
 4.51705 ++	# static archive out of a convenience library, or when linking
 4.51706 ++	# the entirety of a libtool archive into another (currently
 4.51707 ++	# not supported by libtool).
 4.51708 ++	if (for obj in $oldobjs
 4.51709 ++	    do
 4.51710 ++	      func_basename "$obj"
 4.51711 ++	      $ECHO "$func_basename_result"
 4.51712 ++	    done | sort | sort -uc >/dev/null 2>&1); then
 4.51713 ++	  :
 4.51714 ++	else
 4.51715 ++	  $ECHO "copying selected object files to avoid basename conflicts..."
 4.51716 ++	  gentop="$output_objdir/${outputname}x"
 4.51717 ++	  generated="$generated $gentop"
 4.51718 ++	  func_mkdir_p "$gentop"
 4.51719 ++	  save_oldobjs=$oldobjs
 4.51720 ++	  oldobjs=
 4.51721 ++	  counter=1
 4.51722 ++	  for obj in $save_oldobjs
 4.51723 ++	  do
 4.51724 ++	    func_basename "$obj"
 4.51725 ++	    objbase="$func_basename_result"
 4.51726 ++	    case " $oldobjs " in
 4.51727 ++	    " ") oldobjs=$obj ;;
 4.51728 ++	    *[\ /]"$objbase "*)
 4.51729 ++	      while :; do
 4.51730 ++		# Make sure we don't pick an alternate name that also
 4.51731 ++		# overlaps.
 4.51732 ++		newobj=lt$counter-$objbase
 4.51733 ++		counter=`expr $counter + 1`
 4.51734 ++		case " $oldobjs " in
 4.51735 ++		*[\ /]"$newobj "*) ;;
 4.51736 ++		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
 4.51737 ++		esac
 4.51738 ++	      done
 4.51739 ++	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
 4.51740 ++	      oldobjs="$oldobjs $gentop/$newobj"
 4.51741 ++	      ;;
 4.51742 ++	    *) oldobjs="$oldobjs $obj" ;;
 4.51743 ++	    esac
 4.51744 ++	  done
 4.51745 ++	fi
 4.51746 ++	eval cmds=\"$old_archive_cmds\"
 4.51747 ++
 4.51748 ++	if len=`expr "X$cmds" : ".*" 2>/dev/null` &&
 4.51749 ++	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 4.51750 ++	  cmds=$old_archive_cmds
 4.51751 ++	else
 4.51752 ++	  # the command line is too long to link in one step, link in parts
 4.51753 ++	  func_echo "using piecewise archive linking..."
 4.51754 ++	  save_RANLIB=$RANLIB
 4.51755 ++	  RANLIB=:
 4.51756 ++	  objlist=
 4.51757 ++	  concat_cmds=
 4.51758 ++	  save_oldobjs=$oldobjs
 4.51759 ++	  # Is there a better way of finding the last object in the list?
 4.51760 ++	  for obj in $save_oldobjs
 4.51761 ++	  do
 4.51762 ++	    last_oldobj=$obj
 4.51763 ++	  done
 4.51764 ++	  for obj in $save_oldobjs
 4.51765 ++	  do
 4.51766 ++	    oldobjs="$objlist $obj"
 4.51767 ++	    objlist="$objlist $obj"
 4.51768 ++	    eval test_cmds=\"$old_archive_cmds\"
 4.51769 ++	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
 4.51770 ++	       test "$len" -le "$max_cmd_len"; then
 4.51771 ++	      :
 4.51772 ++	    else
 4.51773 ++	      # the above command should be used before it gets too long
 4.51774 ++	      oldobjs=$objlist
 4.51775 ++	      if test "$obj" = "$last_oldobj" ; then
 4.51776 ++		RANLIB=$save_RANLIB
 4.51777 ++	      fi
 4.51778 ++	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 4.51779 ++	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
 4.51780 ++	      objlist=
 4.51781 ++	    fi
 4.51782 ++	  done
 4.51783 ++	  RANLIB=$save_RANLIB
 4.51784 ++	  oldobjs=$objlist
 4.51785 ++	  if test "X$oldobjs" = "X" ; then
 4.51786 ++	    eval cmds=\"\$concat_cmds\"
 4.51787 ++	  else
 4.51788 ++	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
 4.51789 ++	  fi
 4.51790 ++	fi
 4.51791 ++      fi
 4.51792 ++      func_execute_cmds "$cmds" 'exit $?'
 4.51793 ++    done
 4.51794 ++
 4.51795 ++    test -n "$generated" && \
 4.51796 ++      func_show_eval "${RM}r$generated"
 4.51797 ++
 4.51798 ++    # Now create the libtool archive.
 4.51799 ++    case $output in
 4.51800 ++    *.la)
 4.51801 ++      old_library=
 4.51802 ++      test "$build_old_libs" = yes && old_library="$libname.$libext"
 4.51803 ++      func_echo "creating $output"
 4.51804 ++
 4.51805 ++      # Preserve any variables that may affect compiler behavior
 4.51806 ++      for var in $variables_saved_for_relink; do
 4.51807 ++	if eval test -z \"\${$var+set}\"; then
 4.51808 ++	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
 4.51809 ++	elif eval var_value=\$$var; test -z "$var_value"; then
 4.51810 ++	  relink_command="$var=; export $var; $relink_command"
 4.51811 ++	else
 4.51812 ++	  func_quote_for_eval "$var_value"
 4.51813 ++	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
 4.51814 ++	fi
 4.51815 ++      done
 4.51816 ++      # Quote the link command for shipping.
 4.51817 ++      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
 4.51818 ++      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
 4.51819 ++      if test "$hardcode_automatic" = yes ; then
 4.51820 ++	relink_command=
 4.51821 ++      fi
 4.51822 ++
 4.51823 ++      # Only create the output if not a dry run.
 4.51824 ++      $opt_dry_run || {
 4.51825 ++	for installed in no yes; do
 4.51826 ++	  if test "$installed" = yes; then
 4.51827 ++	    if test -z "$install_libdir"; then
 4.51828 ++	      break
 4.51829 ++	    fi
 4.51830 ++	    output="$output_objdir/$outputname"i
 4.51831 ++	    # Replace all uninstalled libtool libraries with the installed ones
 4.51832 ++	    newdependency_libs=
 4.51833 ++	    for deplib in $dependency_libs; do
 4.51834 ++	      case $deplib in
 4.51835 ++	      *.la)
 4.51836 ++		func_basename "$deplib"
 4.51837 ++		name="$func_basename_result"
 4.51838 ++		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
 4.51839 ++		test -z "$libdir" && \
 4.51840 ++		  func_fatal_error "\`$deplib' is not a valid libtool archive"
 4.51841 ++		newdependency_libs="$newdependency_libs $libdir/$name"
 4.51842 ++		;;
 4.51843 ++	      *) newdependency_libs="$newdependency_libs $deplib" ;;
 4.51844 ++	      esac
 4.51845 ++	    done
 4.51846 ++	    dependency_libs="$newdependency_libs"
 4.51847 ++	    newdlfiles=
 4.51848 ++
 4.51849 ++	    for lib in $dlfiles; do
 4.51850 ++	      case $lib in
 4.51851 ++	      *.la)
 4.51852 ++	        func_basename "$lib"
 4.51853 ++		name="$func_basename_result"
 4.51854 ++		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 4.51855 ++		test -z "$libdir" && \
 4.51856 ++		  func_fatal_error "\`$lib' is not a valid libtool archive"
 4.51857 ++		newdlfiles="$newdlfiles $libdir/$name"
 4.51858 ++		;;
 4.51859 ++	      *) newdlfiles="$newdlfiles $lib" ;;
 4.51860 ++	      esac
 4.51861 ++	    done
 4.51862 ++	    dlfiles="$newdlfiles"
 4.51863 ++	    newdlprefiles=
 4.51864 ++	    for lib in $dlprefiles; do
 4.51865 ++	      case $lib in
 4.51866 ++	      *.la)
 4.51867 ++		# Only pass preopened files to the pseudo-archive (for
 4.51868 ++		# eventual linking with the app. that links it) if we
 4.51869 ++		# didn't already link the preopened objects directly into
 4.51870 ++		# the library:
 4.51871 ++		func_basename "$lib"
 4.51872 ++		name="$func_basename_result"
 4.51873 ++		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 4.51874 ++		test -z "$libdir" && \
 4.51875 ++		  func_fatal_error "\`$lib' is not a valid libtool archive"
 4.51876 ++		newdlprefiles="$newdlprefiles $libdir/$name"
 4.51877 ++		;;
 4.51878 ++	      esac
 4.51879 ++	    done
 4.51880 ++	    dlprefiles="$newdlprefiles"
 4.51881 ++	  else
 4.51882 ++	    newdlfiles=
 4.51883 ++	    for lib in $dlfiles; do
 4.51884 ++	      case $lib in
 4.51885 ++		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
 4.51886 ++		*) abs=`pwd`"/$lib" ;;
 4.51887 ++	      esac
 4.51888 ++	      newdlfiles="$newdlfiles $abs"
 4.51889 ++	    done
 4.51890 ++	    dlfiles="$newdlfiles"
 4.51891 ++	    newdlprefiles=
 4.51892 ++	    for lib in $dlprefiles; do
 4.51893 ++	      case $lib in
 4.51894 ++		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
 4.51895 ++		*) abs=`pwd`"/$lib" ;;
 4.51896 ++	      esac
 4.51897 ++	      newdlprefiles="$newdlprefiles $abs"
 4.51898 ++	    done
 4.51899 ++	    dlprefiles="$newdlprefiles"
 4.51900 ++	  fi
 4.51901 ++	  $RM $output
 4.51902 ++	  # place dlname in correct position for cygwin
 4.51903 ++	  tdlname=$dlname
 4.51904 ++	  case $host,$output,$installed,$module,$dlname in
 4.51905 ++	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
 4.51906 ++	  esac
 4.51907 ++	  $ECHO > $output "\
 4.51908 ++# $outputname - a libtool library file
 4.51909 ++# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 4.51910 ++#
 4.51911 ++# Please DO NOT delete this file!
 4.51912 ++# It is necessary for linking the library.
 4.51913 ++
 4.51914 ++# The name that we can dlopen(3).
 4.51915 ++dlname='$tdlname'
 4.51916 ++
 4.51917 ++# Names of this library.
 4.51918 ++library_names='$library_names'
 4.51919 ++
 4.51920 ++# The name of the static archive.
 4.51921 ++old_library='$old_library'
 4.51922 ++
 4.51923 ++# Linker flags that can not go in dependency_libs.
 4.51924 ++inherited_linker_flags='$new_inherited_linker_flags'
 4.51925 ++
 4.51926 ++# Libraries that this one depends upon.
 4.51927 ++dependency_libs='$dependency_libs'
 4.51928 ++
 4.51929 ++# Names of additional weak libraries provided by this library
 4.51930 ++weak_library_names='$weak_libs'
 4.51931 ++
 4.51932 ++# Version information for $libname.
 4.51933 ++current=$current
 4.51934 ++age=$age
 4.51935 ++revision=$revision
 4.51936 ++
 4.51937 ++# Is this an already installed library?
 4.51938 ++installed=$installed
 4.51939 ++
 4.51940 ++# Should we warn about portability when linking against -modules?
 4.51941 ++shouldnotlink=$module
 4.51942 ++
 4.51943 ++# Files to dlopen/dlpreopen
 4.51944 ++dlopen='$dlfiles'
 4.51945 ++dlpreopen='$dlprefiles'
 4.51946 ++
 4.51947 ++# Directory that this library needs to be installed in:
 4.51948 ++libdir='$install_libdir'"
 4.51949 ++	  if test "$installed" = no && test "$need_relink" = yes; then
 4.51950 ++	    $ECHO >> $output "\
 4.51951 ++relink_command=\"$relink_command\""
 4.51952 ++	  fi
 4.51953 ++	done
 4.51954 ++      }
 4.51955 ++
 4.51956 ++      # Do a symbolic link so that the libtool archive can be found in
 4.51957 ++      # LD_LIBRARY_PATH before the program is installed.
 4.51958 ++      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
 4.51959 ++      ;;
 4.51960 ++    esac
 4.51961 ++    exit $EXIT_SUCCESS
 4.51962 ++}
 4.51963 ++
 4.51964 ++{ test "$mode" = link || test "$mode" = relink; } &&
 4.51965 ++    func_mode_link ${1+"$@"}
 4.51966 ++
 4.51967 ++
 4.51968 ++# func_mode_uninstall arg...
 4.51969 ++func_mode_uninstall ()
 4.51970 ++{
 4.51971 ++    $opt_debug
 4.51972 ++    RM="$nonopt"
 4.51973 ++    files=
 4.51974 ++    rmforce=
 4.51975 ++    exit_status=0
 4.51976 ++
 4.51977 ++    # This variable tells wrapper scripts just to set variables rather
 4.51978 ++    # than running their programs.
 4.51979 ++    libtool_install_magic="$magic"
 4.51980 ++
 4.51981 ++    for arg
 4.51982 ++    do
 4.51983 ++      case $arg in
 4.51984 ++      -f) RM="$RM $arg"; rmforce=yes ;;
 4.51985 ++      -*) RM="$RM $arg" ;;
 4.51986 ++      *) files="$files $arg" ;;
 4.51987 ++      esac
 4.51988 ++    done
 4.51989 ++
 4.51990 ++    test -z "$RM" && \
 4.51991 ++      func_fatal_help "you must specify an RM program"
 4.51992 ++
 4.51993 ++    rmdirs=
 4.51994 ++
 4.51995 ++    origobjdir="$objdir"
 4.51996 ++    for file in $files; do
 4.51997 ++      func_dirname "$file" "" "."
 4.51998 ++      dir="$func_dirname_result"
 4.51999 ++      if test "X$dir" = X.; then
 4.52000 ++	objdir="$origobjdir"
 4.52001 ++      else
 4.52002 ++	objdir="$dir/$origobjdir"
 4.52003 ++      fi
 4.52004 ++      func_basename "$file"
 4.52005 ++      name="$func_basename_result"
 4.52006 ++      test "$mode" = uninstall && objdir="$dir"
 4.52007 ++
 4.52008 ++      # Remember objdir for removal later, being careful to avoid duplicates
 4.52009 ++      if test "$mode" = clean; then
 4.52010 ++	case " $rmdirs " in
 4.52011 ++	  *" $objdir "*) ;;
 4.52012 ++	  *) rmdirs="$rmdirs $objdir" ;;
 4.52013 ++	esac
 4.52014 ++      fi
 4.52015 ++
 4.52016 ++      # Don't error if the file doesn't exist and rm -f was used.
 4.52017 ++      if { test -L "$file"; } >/dev/null 2>&1 ||
 4.52018 ++	 { test -h "$file"; } >/dev/null 2>&1 ||
 4.52019 ++	 test -f "$file"; then
 4.52020 ++	:
 4.52021 ++      elif test -d "$file"; then
 4.52022 ++	exit_status=1
 4.52023 ++	continue
 4.52024 ++      elif test "$rmforce" = yes; then
 4.52025 ++	continue
 4.52026 ++      fi
 4.52027 ++
 4.52028 ++      rmfiles="$file"
 4.52029 ++
 4.52030 ++      case $name in
 4.52031 ++      *.la)
 4.52032 ++	# Possibly a libtool archive, so verify it.
 4.52033 ++	if func_lalib_p "$file"; then
 4.52034 ++	  func_source $dir/$name
 4.52035 ++
 4.52036 ++	  # Delete the libtool libraries and symlinks.
 4.52037 ++	  for n in $library_names; do
 4.52038 ++	    rmfiles="$rmfiles $objdir/$n"
 4.52039 ++	  done
 4.52040 ++	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
 4.52041 ++
 4.52042 ++	  case "$mode" in
 4.52043 ++	  clean)
 4.52044 ++	    case "  $library_names " in
 4.52045 ++	    # "  " in the beginning catches empty $dlname
 4.52046 ++	    *" $dlname "*) ;;
 4.52047 ++	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
 4.52048 ++	    esac
 4.52049 ++	    test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
 4.52050 ++	    ;;
 4.52051 ++	  uninstall)
 4.52052 ++	    if test -n "$library_names"; then
 4.52053 ++	      # Do each command in the postuninstall commands.
 4.52054 ++	      func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
 4.52055 ++	    fi
 4.52056 ++
 4.52057 ++	    if test -n "$old_library"; then
 4.52058 ++	      # Do each command in the old_postuninstall commands.
 4.52059 ++	      func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
 4.52060 ++	    fi
 4.52061 ++	    # FIXME: should reinstall the best remaining shared library.
 4.52062 ++	    ;;
 4.52063 ++	  esac
 4.52064 ++	fi
 4.52065 ++	;;
 4.52066 ++
 4.52067 ++      *.lo)
 4.52068 ++	# Possibly a libtool object, so verify it.
 4.52069 ++	if func_lalib_p "$file"; then
 4.52070 ++
 4.52071 ++	  # Read the .lo file
 4.52072 ++	  func_source $dir/$name
 4.52073 ++
 4.52074 ++	  # Add PIC object to the list of files to remove.
 4.52075 ++	  if test -n "$pic_object" &&
 4.52076 ++	     test "$pic_object" != none; then
 4.52077 ++	    rmfiles="$rmfiles $dir/$pic_object"
 4.52078 ++	  fi
 4.52079 ++
 4.52080 ++	  # Add non-PIC object to the list of files to remove.
 4.52081 ++	  if test -n "$non_pic_object" &&
 4.52082 ++	     test "$non_pic_object" != none; then
 4.52083 ++	    rmfiles="$rmfiles $dir/$non_pic_object"
 4.52084 ++	  fi
 4.52085 ++	fi
 4.52086 ++	;;
 4.52087 ++
 4.52088 ++      *)
 4.52089 ++	if test "$mode" = clean ; then
 4.52090 ++	  noexename=$name
 4.52091 ++	  case $file in
 4.52092 ++	  *.exe)
 4.52093 ++	    func_stripname '' '.exe' "$file"
 4.52094 ++	    file=$func_stripname_result
 4.52095 ++	    func_stripname '' '.exe' "$name"
 4.52096 ++	    noexename=$func_stripname_result
 4.52097 ++	    # $file with .exe has already been added to rmfiles,
 4.52098 ++	    # add $file without .exe
 4.52099 ++	    rmfiles="$rmfiles $file"
 4.52100 ++	    ;;
 4.52101 ++	  esac
 4.52102 ++	  # Do a test to see if this is a libtool program.
 4.52103 ++	  if func_ltwrapper_p "$file"; then
 4.52104 ++	    relink_command=
 4.52105 ++	    func_source $dir/$noexename
 4.52106 ++
 4.52107 ++	    # note $name still contains .exe if it was in $file originally
 4.52108 ++	    # as does the version of $file that was added into $rmfiles
 4.52109 ++	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
 4.52110 ++	    if test "$fast_install" = yes && test -n "$relink_command"; then
 4.52111 ++	      rmfiles="$rmfiles $objdir/lt-$name"
 4.52112 ++	    fi
 4.52113 ++	    if test "X$noexename" != "X$name" ; then
 4.52114 ++	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
 4.52115 ++	    fi
 4.52116 ++	  fi
 4.52117 ++	fi
 4.52118 ++	;;
 4.52119 ++      esac
 4.52120 ++      func_show_eval "$RM $rmfiles" 'exit_status=1'
 4.52121 ++    done
 4.52122 ++    objdir="$origobjdir"
 4.52123 ++
 4.52124 ++    # Try to remove the ${objdir}s in the directories where we deleted files
 4.52125 ++    for dir in $rmdirs; do
 4.52126 ++      if test -d "$dir"; then
 4.52127 ++	func_show_eval "rmdir $dir >/dev/null 2>&1"
 4.52128 ++      fi
 4.52129 ++    done
 4.52130 ++
 4.52131 ++    exit $exit_status
 4.52132 ++}
 4.52133 ++
 4.52134 ++{ test "$mode" = uninstall || test "$mode" = clean; } &&
 4.52135 ++    func_mode_uninstall ${1+"$@"}
 4.52136 ++
 4.52137 ++test -z "$mode" && {
 4.52138 ++  help="$generic_help"
 4.52139 ++  func_fatal_help "you must specify a MODE"
 4.52140 ++}
 4.52141 ++
 4.52142 ++test -z "$exec_cmd" && \
 4.52143 ++  func_fatal_help "invalid operation mode \`$mode'"
 4.52144 ++
 4.52145 ++if test -n "$exec_cmd"; then
 4.52146 ++  eval exec "$exec_cmd"
 4.52147 ++  exit $EXIT_FAILURE
 4.52148 ++fi
 4.52149 ++
 4.52150 ++exit $exit_status
 4.52151 ++
 4.52152 ++
 4.52153 ++# The TAGs below are defined such that we never get into a situation
 4.52154 ++# in which we disable both kinds of libraries.  Given conflicting
 4.52155 ++# choices, we go for a static library, that is the most portable,
 4.52156 ++# since we can't tell whether shared libraries were disabled because
 4.52157 ++# the user asked for that or because the platform doesn't support
 4.52158 ++# them.  This is particularly important on AIX, because we don't
 4.52159 ++# support having both static and shared libraries enabled at the same
 4.52160 ++# time on that platform, so we default to a shared-only configuration.
 4.52161 ++# If a disable-shared tag is given, we'll fallback to a static-only
 4.52162 ++# configuration.  But we'll never go from static-only to shared-only.
 4.52163 ++
 4.52164 ++# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
 4.52165 ++build_libtool_libs=no
 4.52166 ++build_old_libs=yes
 4.52167 ++# ### END LIBTOOL TAG CONFIG: disable-shared
 4.52168 ++
 4.52169 ++# ### BEGIN LIBTOOL TAG CONFIG: disable-static
 4.52170 ++build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
 4.52171 ++# ### END LIBTOOL TAG CONFIG: disable-static
 4.52172 ++
 4.52173 ++# Local Variables:
 4.52174 ++# mode:shell-script
 4.52175 ++# sh-indentation:2
 4.52176 ++# End:
 4.52177 ++# vi:sw=2
 4.52178 +--- a/bfd/Makefile.in
 4.52179 ++++ b/bfd/Makefile.in
 4.52180 +@@ -312,6 +312,7 @@ ALL_MACHINES = \
 4.52181 + 	cpu-arc.lo \
 4.52182 + 	cpu-arm.lo \
 4.52183 + 	cpu-avr.lo \
 4.52184 ++	cpu-avr32.lo \
 4.52185 + 	cpu-bfin.lo \
 4.52186 + 	cpu-cr16.lo \
 4.52187 + 	cpu-cr16c.lo \
 4.52188 +@@ -493,6 +494,7 @@ BFD32_BACKENDS = \
 4.52189 + 	elf32-arc.lo \
 4.52190 + 	elf32-arm.lo \
 4.52191 + 	elf32-avr.lo \
 4.52192 ++	elf32-avr32.lo \
 4.52193 + 	elf32-bfin.lo \
 4.52194 + 	elf32-cr16.lo \
 4.52195 + 	elf32-cr16c.lo \
 4.52196 +@@ -1908,6 +1910,10 @@ elf32-cr16.lo: elf32-cr16.c $(INCDIR)/fi
 4.52197 +   $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \
 4.52198 +   $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
 4.52199 +   $(INCDIR)/elf/cr16.h $(INCDIR)/elf/reloc-macros.h elf32-target.h
 4.52200 ++elf32-avr32.lo: elf32-avr32.c $(INCDIR)/filenames.h elf-bfd.h \
 4.52201 ++  $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
 4.52202 ++  $(INCDIR)/bfdlink.h $(INCDIR)/elf/avr32.h $(INCDIR)/elf/reloc-macros.h \
 4.52203 ++  elf32-target.h
 4.52204 + elf32-cr16c.lo: elf32-cr16c.c $(INCDIR)/filenames.h \
 4.52205 +   $(INCDIR)/hashtab.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/cr16c.h \
 4.52206 +   $(INCDIR)/elf/reloc-macros.h elf-bfd.h $(INCDIR)/elf/common.h \
 4.52207 +--- /dev/null
 4.52208 ++++ b/bfd/po/Makefile.in
 4.52209 +@@ -0,0 +1,297 @@
 4.52210 ++# Makefile for program source directory in GNU NLS utilities package.
 4.52211 ++# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
 4.52212 ++# Copyright 2001, 2003, 2006 Free Software Foundation, Inc.
 4.52213 ++#
 4.52214 ++# This file may be copied and used freely without restrictions.  It can
 4.52215 ++# be used in projects which are not available under the GNU Public License
 4.52216 ++# but which still want to provide support for the GNU gettext functionality.
 4.52217 ++# Please note that the actual code is *not* freely available.
 4.52218 ++
 4.52219 ++PACKAGE = bfd
 4.52220 ++VERSION = 2.18.atmel.1.0.1.avr32linux.1
 4.52221 ++
 4.52222 ++SHELL = /bin/sh
 4.52223 ++
 4.52224 ++
 4.52225 ++srcdir = .
 4.52226 ++top_srcdir = ..
 4.52227 ++
 4.52228 ++top_builddir = ..
 4.52229 ++
 4.52230 ++prefix = /usr
 4.52231 ++exec_prefix = ${prefix}
 4.52232 ++datadir = $(prefix)/share
 4.52233 ++localedir = $(datadir)/locale
 4.52234 ++gnulocaledir = $(prefix)/share/locale
 4.52235 ++gettextsrcdir = $(prefix)/share/gettext/po
 4.52236 ++subdir = po
 4.52237 ++
 4.52238 ++DESTDIR =
 4.52239 ++
 4.52240 ++INSTALL = /usr/bin/install -c
 4.52241 ++INSTALL_DATA = ${INSTALL} -m 644
 4.52242 ++MKINSTALLDIRS = $(top_builddir)/./../mkinstalldirs
 4.52243 ++
 4.52244 ++CC = gcc
 4.52245 ++GENCAT = gencat
 4.52246 ++GMSGFMT = PATH=../src:$$PATH /usr/bin/msgfmt
 4.52247 ++MSGFMT = /usr/bin/msgfmt
 4.52248 ++XGETTEXT = PATH=../src:$$PATH /usr/bin/xgettext
 4.52249 ++MSGMERGE = PATH=../src:$$PATH msgmerge
 4.52250 ++
 4.52251 ++DEFS = -DHAVE_CONFIG_H
 4.52252 ++CFLAGS = -g -O2
 4.52253 ++CPPFLAGS = 
 4.52254 ++
 4.52255 ++INCLUDES = -I.. -I$(top_srcdir)/intl
 4.52256 ++
 4.52257 ++COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
 4.52258 ++
 4.52259 ++SOURCES = cat-id-tbl.c
 4.52260 ++POFILES = @POFILES@
 4.52261 ++GMOFILES = @GMOFILES@
 4.52262 ++DISTFILES = ChangeLog Makefile.in.in SRC-POTFILES.in BLD-POTFILES.in $(PACKAGE).pot \
 4.52263 ++stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
 4.52264 ++
 4.52265 ++# Note - the following line gets processed by bfd/configure and amended
 4.52266 ++# to contain the full list of source dir POTFILES.
 4.52267 ++SRC-POTFILES = \
 4.52268 ++
 4.52269 ++# Note - the following line gets processed by bfd/configure and amended
 4.52270 ++# to contain the full list of build dir POTFILES.
 4.52271 ++BLD-POTFILES = \
 4.52272 ++
 4.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
 4.52274 ++CATOBJEXT = .gmo
 4.52275 ++INSTOBJEXT = .mo
 4.52276 ++
 4.52277 ++.SUFFIXES:
 4.52278 ++.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
 4.52279 ++
 4.52280 ++.c.o:
 4.52281 ++	$(COMPILE) $<
 4.52282 ++
 4.52283 ++.po.pox:
 4.52284 ++	$(MAKE) $(PACKAGE).pot
 4.52285 ++	$(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
 4.52286 ++
 4.52287 ++.po.mo:
 4.52288 ++	$(MSGFMT) -o $@ $<
 4.52289 ++
 4.52290 ++.po.gmo:
 4.52291 ++	file=`echo $* | sed 's,.*/,,'`.gmo \
 4.52292 ++	  && rm -f $$file && $(GMSGFMT) -o $$file $<
 4.52293 ++
 4.52294 ++.po.cat:
 4.52295 ++	sed -f ../intl/po2msg.sed < $< > $*.msg \
 4.52296 ++	  && rm -f $@ && $(GENCAT) $@ $*.msg
 4.52297 ++
 4.52298 ++
 4.52299 ++all: all-yes
 4.52300 ++
 4.52301 ++all-yes: $(CATALOGS) # $(PACKAGE).pot
 4.52302 ++all-no:
 4.52303 ++
 4.52304 ++$(srcdir)/$(PACKAGE).pot: $(SRC-POTFILES) $(BLD-POTFILES)
 4.52305 ++	$(XGETTEXT) --default-domain=$(PACKAGE) \
 4.52306 ++	  --directory=$(top_srcdir) \
 4.52307 ++	  --add-comments --keyword=_ --keyword=N_ \
 4.52308 ++	  --msgid-bugs-address=bug-binutils@gnu.org \
 4.52309 ++	  --files-from=$(srcdir)/SRC-POTFILES.in 
 4.52310 ++	$(XGETTEXT) --default-domain=$(PACKAGE) \
 4.52311 ++	  --directory=.. \
 4.52312 ++	  --directory=. \
 4.52313 ++	  --add-comments --keyword=_ --keyword=N_ \
 4.52314 ++	  --join-existing \
 4.52315 ++	  --msgid-bugs-address=bug-binutils@gnu.org \
 4.52316 ++	  --files-from=$(srcdir)/BLD-POTFILES.in
 4.52317 ++	rm -f $(srcdir)/$(PACKAGE).pot
 4.52318 ++	mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot
 4.52319 ++
 4.52320 ++$(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
 4.52321 ++$(srcdir)/stamp-cat-id: $(PACKAGE).pot
 4.52322 ++	rm -f cat-id-tbl.tmp
 4.52323 ++	sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
 4.52324 ++		| sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
 4.52325 ++	if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \
 4.52326 ++	  rm cat-id-tbl.tmp; \
 4.52327 ++	else \
 4.52328 ++	  echo cat-id-tbl.c changed; \
 4.52329 ++	  rm -f $(srcdir)/cat-id-tbl.c; \
 4.52330 ++	  mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \
 4.52331 ++	fi
 4.52332 ++	cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
 4.52333 ++
 4.52334 ++
 4.52335 ++install: install-exec install-data
 4.52336 ++install-exec:
 4.52337 ++install-info:
 4.52338 ++install-html:
 4.52339 ++install-data: install-data-yes
 4.52340 ++install-data-no: all
 4.52341 ++install-data-yes: all
 4.52342 ++	if test -r $(MKINSTALLDIRS); then \
 4.52343 ++	  $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
 4.52344 ++	else \
 4.52345 ++	  $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
 4.52346 ++	fi
 4.52347 ++	@catalogs='$(CATALOGS)'; \
 4.52348 ++	for cat in $$catalogs; do \
 4.52349 ++	  cat=`basename $$cat`; \
 4.52350 ++	  case "$$cat" in \
 4.52351 ++	    *.gmo) destdir=$(gnulocaledir);; \
 4.52352 ++	    *)     destdir=$(localedir);; \
 4.52353 ++	  esac; \
 4.52354 ++	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
 4.52355 ++	  dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
 4.52356 ++	  if test -r $(MKINSTALLDIRS); then \
 4.52357 ++	    $(MKINSTALLDIRS) $$dir; \
 4.52358 ++	  else \
 4.52359 ++	    $(top_srcdir)/mkinstalldirs $$dir; \
 4.52360 ++	  fi; \
 4.52361 ++	  if test -r $$cat; then \
 4.52362 ++	    $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
 4.52363 ++	    echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
 4.52364 ++	  else \
 4.52365 ++	    $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
 4.52366 ++	    echo "installing $(srcdir)/$$cat as" \
 4.52367 ++		 "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
 4.52368 ++	  fi; \
 4.52369 ++	  if test -r $$cat.m; then \
 4.52370 ++	    $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
 4.52371 ++	    echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
 4.52372 ++	  else \
 4.52373 ++	    if test -r $(srcdir)/$$cat.m ; then \
 4.52374 ++	      $(INSTALL_DATA) $(srcdir)/$$cat.m \
 4.52375 ++		$$dir/$(PACKAGE)$(INSTOBJEXT).m; \
 4.52376 ++	      echo "installing $(srcdir)/$$cat as" \
 4.52377 ++		   "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
 4.52378 ++	    else \
 4.52379 ++	      true; \
 4.52380 ++	    fi; \
 4.52381 ++	  fi; \
 4.52382 ++	done
 4.52383 ++	if test "$(PACKAGE)" = "gettext"; then \
 4.52384 ++	  if test -r $(MKINSTALLDIRS); then \
 4.52385 ++	    $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
 4.52386 ++	  else \
 4.52387 ++	    $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
 4.52388 ++	  fi; \
 4.52389 ++	  $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
 4.52390 ++			  $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
 4.52391 ++	else \
 4.52392 ++	  : ; \
 4.52393 ++	fi
 4.52394 ++
 4.52395 ++# Define this as empty until I found a useful application.
 4.52396 ++installcheck:
 4.52397 ++
 4.52398 ++uninstall:
 4.52399 ++	catalogs='$(CATALOGS)'; \
 4.52400 ++	for cat in $$catalogs; do \
 4.52401 ++	  cat=`basename $$cat`; \
 4.52402 ++	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
 4.52403 ++	  rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
 4.52404 ++	  rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
 4.52405 ++	  rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
 4.52406 ++	  rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
 4.52407 ++	done
 4.52408 ++	rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in
 4.52409 ++
 4.52410 ++check: all
 4.52411 ++
 4.52412 ++cat-id-tbl.o: ../intl/libgettext.h
 4.52413 ++
 4.52414 ++html dvi pdf ps info tags TAGS ID:
 4.52415 ++
 4.52416 ++mostlyclean:
 4.52417 ++	rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp
 4.52418 ++	rm -fr *.o
 4.52419 ++
 4.52420 ++clean: mostlyclean
 4.52421 ++
 4.52422 ++distclean: clean
 4.52423 ++	rm -f Makefile Makefile.in *.mo *.msg *.cat *.cat.m
 4.52424 ++	rm -f SRC-POTFILES BLD-POTFILES 
 4.52425 ++
 4.52426 ++maintainer-clean: distclean
 4.52427 ++	@echo "This command is intended for maintainers to use;"
 4.52428 ++	@echo "it deletes files that may require special tools to rebuild."
 4.52429 ++	rm -f $(GMOFILES) SRC-POTFILES.in BLD-POTFILES.in
 4.52430 ++
 4.52431 ++distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
 4.52432 ++dist distdir: update-po $(DISTFILES)
 4.52433 ++	dists="$(DISTFILES)"; \
 4.52434 ++	for file in $$dists; do \
 4.52435 ++	  ln $(srcdir)/$$file $(distdir) 2> /dev/null \
 4.52436 ++	    || cp -p $(srcdir)/$$file $(distdir); \
 4.52437 ++	done
 4.52438 ++
 4.52439 ++update-po: Makefile
 4.52440 ++	$(MAKE) $(PACKAGE).pot
 4.52441 ++	PATH=`pwd`/../src:$$PATH; \
 4.52442 ++	cd $(srcdir); \
 4.52443 ++	catalogs='$(CATALOGS)'; \
 4.52444 ++	for cat in $$catalogs; do \
 4.52445 ++	  cat=`basename $$cat`; \
 4.52446 ++	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
 4.52447 ++	  mv $$lang.po $$lang.old.po; \
 4.52448 ++	  echo "$$lang:"; \
 4.52449 ++	  if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
 4.52450 ++	    rm -f $$lang.old.po; \
 4.52451 ++	  else \
 4.52452 ++	    echo "msgmerge for $$cat failed!"; \
 4.52453 ++	    rm -f $$lang.po; \
 4.52454 ++	    mv $$lang.old.po $$lang.po; \
 4.52455 ++	  fi; \
 4.52456 ++	done
 4.52457 ++
 4.52458 ++SRC-POTFILES: SRC-POTFILES.in
 4.52459 ++	( if test 'x$(srcdir)' != 'x.'; then \
 4.52460 ++	    posrcprefix='$(top_srcdir)/'; \
 4.52461 ++	  else \
 4.52462 ++	    posrcprefix="../"; \
 4.52463 ++	  fi; \
 4.52464 ++	  rm -f $@-t $@ \
 4.52465 ++	    && (sed -e '/^#/d' \
 4.52466 ++	            -e '/^[ 	]*$$/d' \
 4.52467 ++		    -e "s@.*@	$$posrcprefix& \\\\@" < $(srcdir)/$@.in \
 4.52468 ++		| sed -e '$$s/\\$$//') > $@-t \
 4.52469 ++	    && chmod a-w $@-t \
 4.52470 ++	    && mv $@-t $@ )
 4.52471 ++
 4.52472 ++BLD-POTFILES: BLD-POTFILES.in
 4.52473 ++	  ( rm -f $@-t $@ \
 4.52474 ++	    && (sed -e '/^#/d' \
 4.52475 ++	            -e '/^[ 	]*$$/d' \
 4.52476 ++		    -e "s@.*@	../& \\\\@" < $(srcdir)/$@.in \
 4.52477 ++		| sed -e '$$s/\\$$//') > $@-t \
 4.52478 ++	    && chmod a-w $@-t \
 4.52479 ++	    && mv $@-t $@ )
 4.52480 ++
 4.52481 ++SRC-POTFILES.in: # ../Makefile
 4.52482 ++	cd .. && $(MAKE) po/SRC-POTFILES.in
 4.52483 ++
 4.52484 ++BLD-POTFILES.in: # ../Makefile
 4.52485 ++	cd .. && $(MAKE) po/BLD-POTFILES.in
 4.52486 ++
 4.52487 ++# Note - The presence of SRC-POTFILES and BLD-POTFILES as dependencies
 4.52488 ++# here breaks the implementation of the 'distclean' rule for maintainers.
 4.52489 ++# This is because if 'make distclean' is run in the BFD directory, the
 4.52490 ++# Makefile there will be deleted before 'distclean' is made here, and so
 4.52491 ++# the dependency SRC-POTFILES -> SRC-POTFILES.in -> ../Makefile cannot
 4.52492 ++# be satisfied.
 4.52493 ++#
 4.52494 ++# The SRC-POTFILES and BLD-POTFILES dependencies cannot be removed,
 4.52495 ++# however since it is necessary that these files be built during
 4.52496 ++# *configure* time, so that configure can insert them into the
 4.52497 ++# po/Makefile that it is creating, so that the Makefile will have
 4.52498 ++# the correct dependencies.
 4.52499 ++Makefile: Make-in ../config.status SRC-POTFILES BLD-POTFILES
 4.52500 ++	cd .. \
 4.52501 ++	  && CONFIG_FILES=$(subdir)/Makefile.in:$(subdir)/Make-in \
 4.52502 ++	     CONFIG_HEADERS= $(SHELL) ./config.status
 4.52503 ++
 4.52504 ++# Tell versions [3.59,3.63) of GNU make not to export all variables.
 4.52505 ++# Otherwise a system limit (for SysV at least) may be exceeded.
 4.52506 ++.NOEXPORT:
 4.52507 +--- a/binutils/Makefile.in
 4.52508 ++++ b/binutils/Makefile.in
 4.52509 +@@ -1327,7 +1327,7 @@ readelf.o: readelf.c sysdep.h $(INCDIR)/
 4.52510 +   $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h bucomm.h dwarf.h \
 4.52511 +   $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
 4.52512 +   $(INCDIR)/elf/h8.h $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/alpha.h \
 4.52513 +-  $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h $(INCDIR)/elf/avr.h \
 4.52514 ++  $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h $(INCDIR)/elf/avr.h $(INCDIR)/elf/avr32.h\
 4.52515 +   $(INCDIR)/elf/bfin.h $(INCDIR)/elf/cris.h $(INCDIR)/elf/crx.h \
 4.52516 +   $(INCDIR)/elf/d10v.h $(INCDIR)/elf/d30v.h $(INCDIR)/elf/dlx.h \
 4.52517 +   $(INCDIR)/elf/fr30.h $(INCDIR)/elf/frv.h $(INCDIR)/elf/hppa.h \
 4.52518 +--- a/ld/Makefile.in
 4.52519 ++++ b/ld/Makefile.in
 4.52520 +@@ -384,7 +384,34 @@ ALL_EMULATIONS = \
 4.52521 + 	eavr3.o \
 4.52522 + 	eavr4.o \
 4.52523 + 	eavr5.o \
 4.52524 +-	eavr6.o \
 4.52525 ++    eavr6.o \
 4.52526 ++	eavr32elf_ap7000.o \
 4.52527 ++	eavr32elf_ap7001.o \
 4.52528 ++	eavr32elf_ap7002.o \
 4.52529 ++	eavr32elf_ap7200.o \
 4.52530 ++	eavr32elf_uc3a0128.o \
 4.52531 ++	eavr32elf_uc3a0256.o \
 4.52532 ++	eavr32elf_uc3a0512.o \
 4.52533 ++	eavr32elf_uc3a0512es.o \
 4.52534 ++	eavr32elf_uc3a1128.o \
 4.52535 ++	eavr32elf_uc3a1256.o \
 4.52536 ++	eavr32elf_uc3a1512es.o \
 4.52537 ++	eavr32elf_uc3a1512.o \
 4.52538 ++	eavr32elf_uc3a364.o \
 4.52539 ++	eavr32elf_uc3a364s.o \
 4.52540 ++	eavr32elf_uc3a3128.o \
 4.52541 ++	eavr32elf_uc3a3128s.o \
 4.52542 ++	eavr32elf_uc3a3256.o \
 4.52543 ++	eavr32elf_uc3a3256s.o \
 4.52544 ++	eavr32elf_uc3b064.o \
 4.52545 ++	eavr32elf_uc3b0128.o \
 4.52546 ++	eavr32elf_uc3b0256es.o \
 4.52547 ++	eavr32elf_uc3b0256.o \
 4.52548 ++	eavr32elf_uc3b164.o \
 4.52549 ++	eavr32elf_uc3b1128.o \
 4.52550 ++	eavr32elf_uc3b1256es.o \
 4.52551 ++	eavr32elf_uc3b1256.o \
 4.52552 ++	eavr32linux.o \
 4.52553 + 	ecoff_i860.o \
 4.52554 + 	ecoff_sparc.o \
 4.52555 + 	eelf32_spu.o \
 4.52556 +@@ -1448,6 +1475,114 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
 4.52557 +   $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
 4.52558 +   ${GEN_DEPENDS}
 4.52559 + 	${GENSCRIPTS} avr6 "$(tdir_avr2)"
 4.52560 ++eavr32elf_ap7000.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52561 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52562 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52563 ++	${GENSCRIPTS} avr32elf_ap7000 "$(tdir_avr32)" avr32elf
 4.52564 ++eavr32elf_ap7001.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52565 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52566 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52567 ++	${GENSCRIPTS} avr32elf_ap7001 "$(tdir_avr32)" avr32elf
 4.52568 ++eavr32elf_ap7002.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52569 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52570 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52571 ++	${GENSCRIPTS} avr32elf_ap7002 "$(tdir_avr32)" avr32elf
 4.52572 ++eavr32elf_ap7200.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52573 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52574 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52575 ++	${GENSCRIPTS} avr32elf_ap7200 "$(tdir_avr32)" avr32elf
 4.52576 ++eavr32elf_uc3a0128.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52577 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52578 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52579 ++	${GENSCRIPTS} avr32elf_uc3a0128 "$(tdir_avr32)" avr32elf
 4.52580 ++eavr32elf_uc3a0256.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52581 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52582 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52583 ++	${GENSCRIPTS} avr32elf_uc3a0256 "$(tdir_avr32)" avr32elf
 4.52584 ++eavr32elf_uc3a0512.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52585 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52586 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52587 ++	${GENSCRIPTS} avr32elf_uc3a0512 "$(tdir_avr32)" avr32elf
 4.52588 ++eavr32elf_uc3a0512es.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52589 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52590 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52591 ++	${GENSCRIPTS} avr32elf_uc3a0512es "$(tdir_avr32)" avr32elf
 4.52592 ++eavr32elf_uc3a1128.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52593 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52594 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52595 ++	${GENSCRIPTS} avr32elf_uc3a1128 "$(tdir_avr32)" avr32elf
 4.52596 ++eavr32elf_uc3a1256.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52597 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52598 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52599 ++	${GENSCRIPTS} avr32elf_uc3a1256 "$(tdir_avr32)" avr32elf
 4.52600 ++eavr32elf_uc3a1512.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52601 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52602 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52603 ++	${GENSCRIPTS} avr32elf_uc3a1512 "$(tdir_avr32)" avr32elf
 4.52604 ++eavr32elf_uc3a1512es.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52605 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52606 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52607 ++	${GENSCRIPTS} avr32elf_uc3a1512es "$(tdir_avr32)" avr32elf
 4.52608 ++eavr32elf_uc3a364.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52609 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52610 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52611 ++	${GENSCRIPTS} avr32elf_uc3a364 "$(tdir_avr32)" avr32elf
 4.52612 ++eavr32elf_uc3a364s.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52613 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52614 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52615 ++	${GENSCRIPTS} avr32elf_uc3a364s "$(tdir_avr32)" avr32elf
 4.52616 ++eavr32elf_uc3a3128.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52617 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52618 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52619 ++	${GENSCRIPTS} avr32elf_uc3a3128 "$(tdir_avr32)" avr32elf
 4.52620 ++eavr32elf_uc3a3128s.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52621 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52622 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52623 ++	${GENSCRIPTS} avr32elf_uc3a3128s "$(tdir_avr32)" avr32elf
 4.52624 ++eavr32elf_uc3a3256.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52625 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52626 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52627 ++	${GENSCRIPTS} avr32elf_uc3a3256 "$(tdir_avr32)" avr32elf
 4.52628 ++eavr32elf_uc3a3256s.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52629 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52630 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52631 ++	${GENSCRIPTS} avr32elf_uc3a3256s "$(tdir_avr32)" avr32elf
 4.52632 ++eavr32elf_uc3b064.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52633 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52634 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52635 ++	${GENSCRIPTS} avr32elf_uc3b064 "$(tdir_avr32)" avr32elf
 4.52636 ++eavr32elf_uc3b0128.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52637 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52638 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52639 ++	${GENSCRIPTS} avr32elf_uc3b0128 "$(tdir_avr32)" avr32elf
 4.52640 ++eavr32elf_uc3b0256.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52641 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52642 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52643 ++	${GENSCRIPTS} avr32elf_uc3b0256 "$(tdir_avr32)" avr32elf
 4.52644 ++eavr32elf_uc3b0256es.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52645 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52646 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52647 ++	${GENSCRIPTS} avr32elf_uc3b0256es "$(tdir_avr32)" avr32elf
 4.52648 ++eavr32elf_uc3b164.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52649 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52650 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52651 ++	${GENSCRIPTS} avr32elf_uc3b164 "$(tdir_avr32)" avr32elf
 4.52652 ++eavr32elf_uc3b1128.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52653 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52654 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52655 ++	${GENSCRIPTS} avr32elf_uc3b1128 "$(tdir_avr32)" avr32elf
 4.52656 ++eavr32elf_uc3b1256.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52657 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52658 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52659 ++	${GENSCRIPTS} avr32elf_uc3b1256 "$(tdir_avr32)" avr32elf
 4.52660 ++eavr32elf_uc3b1256es.c: $(srcdir)/emulparams/avr32elf.sh \
 4.52661 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52662 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 4.52663 ++	${GENSCRIPTS} avr32elf_uc3b1256es "$(tdir_avr32)" avr32elf
 4.52664 ++eavr32linux.c: $(srcdir)/emulparams/avr32linux.sh \
 4.52665 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 4.52666 ++  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 4.52667 ++	${GENSCRIPTS} avr32linux "$(tdir_avr32)"
 4.52668 + ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \
 4.52669 +   $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS}
 4.52670 + 	${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)"
 4.52671 +@@ -2679,7 +2814,9 @@ install-exec-local: ld-new$(EXEEXT)
 4.52672 + 	  || $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT); \
 4.52673 + 	fi
 4.52674 + 
 4.52675 +-install-data-local:
 4.52676 ++# We want install to imply install-info as per GNU standards, despite the
 4.52677 ++# cygnus option.
 4.52678 ++install-data-local: install-info
 4.52679 + 	$(mkinstalldirs) $(DESTDIR)$(scriptdir)/ldscripts
 4.52680 + 	for f in ldscripts/*; do \
 4.52681 + 	  $(INSTALL_DATA) $$f $(DESTDIR)$(scriptdir)/$$f ; \
 4.52682 +--- /dev/null
 4.52683 ++++ b/libiberty/required-list
 4.52684 +@@ -0,0 +1 @@
 4.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
 4.52686 +--- a/opcodes/configure
 4.52687 ++++ b/opcodes/configure
 4.52688 +@@ -11418,6 +11418,7 @@ if test x${all_targets} = xfalse ; then
 4.52689 + 	bfd_arc_arch)		ta="$ta arc-dis.lo arc-opc.lo arc-ext.lo" ;;
 4.52690 + 	bfd_arm_arch)		ta="$ta arm-dis.lo" ;;
 4.52691 + 	bfd_avr_arch)		ta="$ta avr-dis.lo" ;;
 4.52692 ++	bfd_avr32_arch)		ta="$ta avr32-asm.lo avr32-dis.lo avr32-opc.lo" ;;
 4.52693 + 	bfd_bfin_arch)		ta="$ta bfin-dis.lo" ;;
 4.52694 + 	bfd_cr16_arch)    	ta="$ta cr16-dis.lo cr16-opc.lo" ;;
 4.52695 + 	bfd_cris_arch)		ta="$ta cris-dis.lo cris-opc.lo cgen-bitset.lo" ;;
 4.52696 +@@ -11476,7 +11477,7 @@ if test x${all_targets} = xfalse ; then
 4.52697 + 				ta="$ta sh64-dis.lo sh64-opc.lo"
 4.52698 + 				archdefs="$archdefs -DINCLUDE_SHMEDIA"
 4.52699 + 				break;;
 4.52700 +-	    esac;
 4.52701 ++	    esac
 4.52702 + 	  done
 4.52703 + 				ta="$ta sh-dis.lo cgen-bitset.lo" ;;
 4.52704 + 	bfd_sparc_arch)		ta="$ta sparc-dis.lo sparc-opc.lo" ;;
 4.52705 +--- a/opcodes/Makefile.in
 4.52706 ++++ b/opcodes/Makefile.in
 4.52707 +@@ -257,6 +257,7 @@ LIBIBERTY = ../libiberty/libiberty.a
 4.52708 + # Header files.
 4.52709 + HFILES = \
 4.52710 + 	cgen-ops.h cgen-types.h \
 4.52711 ++	avr32-asm.h avr32-opc.h \
 4.52712 + 	fr30-desc.h fr30-opc.h \
 4.52713 + 	frv-desc.h frv-opc.h \
 4.52714 + 	h8500-opc.h \
 4.52715 +@@ -291,6 +292,9 @@ CFILES = \
 4.52716 + 	arc-ext.c \
 4.52717 + 	arm-dis.c \
 4.52718 + 	avr-dis.c \
 4.52719 ++	avr32-asm.c \
 4.52720 ++	avr32-dis.c \
 4.52721 ++	avr32-opc.c \
 4.52722 + 	bfin-dis.c \
 4.52723 + 	cgen-asm.c \
 4.52724 + 	cgen-bitset.c \
 4.52725 +@@ -445,6 +449,9 @@ ALL_MACHINES = \
 4.52726 + 	arc-ext.lo \
 4.52727 + 	arm-dis.lo \
 4.52728 + 	avr-dis.lo \
 4.52729 ++	avr32-asm.lo \
 4.52730 ++	avr32-dis.lo \
 4.52731 ++	avr32-opc.lo \
 4.52732 + 	bfin-dis.lo \
 4.52733 + 	cgen-asm.lo \
 4.52734 + 	cgen-bitset.lo \
 4.52735 +@@ -1225,6 +1232,15 @@ avr-dis.lo: avr-dis.c sysdep.h config.h 
 4.52736 +   $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
 4.52737 +   opintl.h $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h \
 4.52738 +   $(INCDIR)/opcode/avr.h
 4.52739 ++avr32-asm.lo: avr32-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \
 4.52740 ++  $(BFD_H) $(INCDIR)/symcat.h avr32-opc.h opintl.h \
 4.52741 ++  $(INCDIR)/xregex.h $(INCDIR)/xregex2.h \
 4.52742 ++  $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
 4.52743 ++avr32-dis.lo: avr32-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
 4.52744 ++  $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
 4.52745 ++  avr32-opc.h opintl.h
 4.52746 ++avr32-opc.lo: avr32-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \
 4.52747 ++  $(BFD_H) $(INCDIR)/symcat.h avr32-opc.h $(INCDIR)/libiberty.h
 4.52748 + bfin-dis.lo: bfin-dis.c $(INCDIR)/opcode/bfin.h $(INCDIR)/dis-asm.h \
 4.52749 +   $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h
 4.52750 + cgen-asm.lo: cgen-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/patches/gcc/4.2.2/300-avr32-atmel-v1.1.3.patch	Fri May 22 14:46:18 2009 +0000
     5.3 @@ -0,0 +1,22620 @@
     5.4 +--- a/configure.in
     5.5 ++++ b/configure.in
     5.6 +@@ -503,6 +503,9 @@ case "${target}" in
     5.7 +   arm-*-riscix*)
     5.8 +     noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
     5.9 +     ;;
    5.10 ++  avr32-*-*)
    5.11 ++    noconfigdirs="$noconfigdirs target-libiberty target-libmudflap target-libffi ${libgcj}"
    5.12 ++    ;;
    5.13 +   avr-*-*)
    5.14 +     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
    5.15 +     ;;
    5.16 +--- a/gcc/builtins.c
    5.17 ++++ b/gcc/builtins.c
    5.18 +@@ -9223,7 +9223,7 @@ validate_arglist (tree arglist, ...)
    5.19 + 
    5.20 +   do
    5.21 +     {
    5.22 +-      code = va_arg (ap, enum tree_code);
    5.23 ++      code = va_arg (ap, int);
    5.24 +       switch (code)
    5.25 + 	{
    5.26 + 	case 0:
    5.27 +--- a/gcc/calls.c
    5.28 ++++ b/gcc/calls.c
    5.29 +@@ -3447,7 +3447,7 @@ emit_library_call_value_1 (int retval, r
    5.30 +   for (; count < nargs; count++)
    5.31 +     {
    5.32 +       rtx val = va_arg (p, rtx);
    5.33 +-      enum machine_mode mode = va_arg (p, enum machine_mode);
    5.34 ++      enum machine_mode mode = va_arg (p, int);
    5.35 + 
    5.36 +       /* We cannot convert the arg value to the mode the library wants here;
    5.37 + 	 must do it earlier where we know the signedness of the arg.  */
    5.38 +--- a/gcc/c-incpath.c
    5.39 ++++ b/gcc/c-incpath.c
    5.40 +@@ -347,6 +347,18 @@ add_path (char *path, int chain, int cxx
    5.41 +   char* c;
    5.42 +   for (c = path; *c; c++)
    5.43 +     if (*c == '\\') *c = '/';
    5.44 ++  /* Remove unnecessary trailing slashes.  On some versions of MS
    5.45 ++     Windows, trailing  _forward_ slashes cause no problems for stat().
    5.46 ++     On newer versions, stat() does not recognise a directory that ends
    5.47 ++     in a '\\' or '/', unless it is a drive root dir, such as "c:/",
    5.48 ++     where it is obligatory.  */
    5.49 ++  int pathlen = strlen (path);
    5.50 ++  char* end = path + pathlen - 1;
    5.51 ++  /* Preserve the lead '/' or lead "c:/".  */
    5.52 ++  char* start = path + (pathlen > 2 && path[1] == ':' ? 3 : 1);
    5.53 ++
    5.54 ++  for (; end > start && IS_DIR_SEPARATOR (*end); end--)
    5.55 ++    *end = 0;
    5.56 + #endif
    5.57 + 
    5.58 +   p = XNEW (cpp_dir);
    5.59 +--- /dev/null
    5.60 ++++ b/gcc/config/avr32/avr32.c
    5.61 +@@ -0,0 +1,7915 @@
    5.62 ++/*
    5.63 ++   Target hooks and helper functions for AVR32.
    5.64 ++   Copyright 2003-2006 Atmel Corporation.
    5.65 ++
    5.66 ++   Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com>
    5.67 ++   Initial porting by Anders �dland.
    5.68 ++
    5.69 ++   This file is part of GCC.
    5.70 ++
    5.71 ++   This program is free software; you can redistribute it and/or modify
    5.72 ++   it under the terms of the GNU General Public License as published by
    5.73 ++   the Free Software Foundation; either version 2 of the License, or
    5.74 ++   (at your option) any later version.
    5.75 ++
    5.76 ++   This program is distributed in the hope that it will be useful,
    5.77 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
    5.78 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    5.79 ++   GNU General Public License for more details.
    5.80 ++
    5.81 ++   You should have received a copy of the GNU General Public License
    5.82 ++   along with this program; if not, write to the Free Software
    5.83 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
    5.84 ++
    5.85 ++#include "config.h"
    5.86 ++#include "system.h"
    5.87 ++#include "coretypes.h"
    5.88 ++#include "tm.h"
    5.89 ++#include "rtl.h"
    5.90 ++#include "tree.h"
    5.91 ++#include "obstack.h"
    5.92 ++#include "regs.h"
    5.93 ++#include "hard-reg-set.h"
    5.94 ++#include "real.h"
    5.95 ++#include "insn-config.h"
    5.96 ++#include "conditions.h"
    5.97 ++#include "output.h"
    5.98 ++#include "insn-attr.h"
    5.99 ++#include "flags.h"
   5.100 ++#include "reload.h"
   5.101 ++#include "function.h"
   5.102 ++#include "expr.h"
   5.103 ++#include "optabs.h"
   5.104 ++#include "toplev.h"
   5.105 ++#include "recog.h"
   5.106 ++#include "ggc.h"
   5.107 ++#include "except.h"
   5.108 ++#include "c-pragma.h"
   5.109 ++#include "integrate.h"
   5.110 ++#include "tm_p.h"
   5.111 ++#include "langhooks.h"
   5.112 ++
   5.113 ++#include "target.h"
   5.114 ++#include "target-def.h"
   5.115 ++
   5.116 ++#include <ctype.h>
   5.117 ++
   5.118 ++/* Forward definitions of types.  */
   5.119 ++typedef struct minipool_node Mnode;
   5.120 ++typedef struct minipool_fixup Mfix;
   5.121 ++
   5.122 ++/* Obstack for minipool constant handling.  */
   5.123 ++static struct obstack minipool_obstack;
   5.124 ++static char *minipool_startobj;
   5.125 ++static rtx minipool_vector_label;
   5.126 ++
   5.127 ++/* True if we are currently building a constant table.  */
   5.128 ++int making_const_table;
   5.129 ++
   5.130 ++/* Some forward function declarations */
   5.131 ++static unsigned long avr32_isr_value (tree);
   5.132 ++static unsigned long avr32_compute_func_type (void);
   5.133 ++static tree avr32_handle_isr_attribute (tree *, tree, tree, int, bool *);
   5.134 ++static tree avr32_handle_acall_attribute (tree *, tree, tree, int, bool *);
   5.135 ++static tree avr32_handle_fndecl_attribute (tree * node, tree name, tree args,
   5.136 ++					   int flags, bool * no_add_attrs);
   5.137 ++static void avr32_reorg (void);
   5.138 ++bool avr32_return_in_msb (tree type);
   5.139 ++bool avr32_vector_mode_supported (enum machine_mode mode);
   5.140 ++static void avr32_init_libfuncs (void);
   5.141 ++
   5.142 ++
   5.143 ++static void
   5.144 ++avr32_add_gc_roots (void)
   5.145 ++{
   5.146 ++  gcc_obstack_init (&minipool_obstack);
   5.147 ++  minipool_startobj = (char *) obstack_alloc (&minipool_obstack, 0);
   5.148 ++}
   5.149 ++
   5.150 ++
   5.151 ++/* List of all known AVR32 parts  */
   5.152 ++static const struct part_type_s avr32_part_types[] = {
   5.153 ++  /* name, part_type, architecture type, macro */
   5.154 ++  {"none", PART_TYPE_AVR32_NONE, ARCH_TYPE_AVR32_AP, "__AVR32__"},
   5.155 ++  {"ap7000", PART_TYPE_AVR32_AP7000, ARCH_TYPE_AVR32_AP, "__AVR32_AP7000__"},
   5.156 ++  {"ap7001", PART_TYPE_AVR32_AP7001, ARCH_TYPE_AVR32_AP, "__AVR32_AP7001__"},
   5.157 ++  {"ap7002", PART_TYPE_AVR32_AP7002, ARCH_TYPE_AVR32_AP, "__AVR32_AP7002__"},
   5.158 ++  {"ap7200", PART_TYPE_AVR32_AP7200, ARCH_TYPE_AVR32_AP, "__AVR32_AP7200__"},
   5.159 ++  {"uc3a0128", PART_TYPE_AVR32_UC3A0128, ARCH_TYPE_AVR32_UCR2,
   5.160 ++   "__AVR32_UC3A0128__"},
   5.161 ++  {"uc3a0256", PART_TYPE_AVR32_UC3A0256, ARCH_TYPE_AVR32_UCR2,
   5.162 ++   "__AVR32_UC3A0256__"},
   5.163 ++  {"uc3a0512", PART_TYPE_AVR32_UC3A0512, ARCH_TYPE_AVR32_UCR2,
   5.164 ++   "__AVR32_UC3A0512__"},
   5.165 ++  {"uc3a0512es", PART_TYPE_AVR32_UC3A0512ES, ARCH_TYPE_AVR32_UCR1,
   5.166 ++    "__AVR32_UC3A0512ES__"},
   5.167 ++  {"uc3a1128", PART_TYPE_AVR32_UC3A1128, ARCH_TYPE_AVR32_UCR2,
   5.168 ++   "__AVR32_UC3A1128__"},
   5.169 ++  {"uc3a1256", PART_TYPE_AVR32_UC3A1256, ARCH_TYPE_AVR32_UCR2,
   5.170 ++   "__AVR32_UC3A1256__"},
   5.171 ++  {"uc3a1512", PART_TYPE_AVR32_UC3A1512, ARCH_TYPE_AVR32_UCR2,
   5.172 ++   "__AVR32_UC3A1512__"},
   5.173 ++  {"uc3a1512es", PART_TYPE_AVR32_UC3A1512ES, ARCH_TYPE_AVR32_UCR1,
   5.174 ++   "__AVR32_UC3A1512ES__"},
   5.175 ++   {"uc3a3revd", PART_TYPE_AVR32_UC3A3REVD, ARCH_TYPE_AVR32_UCR2NOMUL,
   5.176 ++    "__AVR32_UC3A3256S__"},
   5.177 ++  {"uc3a364", PART_TYPE_AVR32_UC3A364, ARCH_TYPE_AVR32_UCR2,
   5.178 ++   "__AVR32_UC3A364__"},
   5.179 ++  {"uc3a364s", PART_TYPE_AVR32_UC3A364S, ARCH_TYPE_AVR32_UCR2,
   5.180 ++   "__AVR32_UC3A364S__"},
   5.181 ++  {"uc3a3128", PART_TYPE_AVR32_UC3A3128, ARCH_TYPE_AVR32_UCR2,
   5.182 ++   "__AVR32_UC3A3128__"},
   5.183 ++  {"uc3a3128s", PART_TYPE_AVR32_UC3A3128S, ARCH_TYPE_AVR32_UCR2,
   5.184 ++   "__AVR32_UC3A3128S__"},
   5.185 ++  {"uc3a3256", PART_TYPE_AVR32_UC3A3256, ARCH_TYPE_AVR32_UCR2,
   5.186 ++   "__AVR32_UC3A3256__"},
   5.187 ++  {"uc3a3256s", PART_TYPE_AVR32_UC3A3256S, ARCH_TYPE_AVR32_UCR2,
   5.188 ++   "__AVR32_UC3A3256S__"},
   5.189 ++  {"uc3b064", PART_TYPE_AVR32_UC3B064, ARCH_TYPE_AVR32_UCR1,
   5.190 ++   "__AVR32_UC3B064__"},
   5.191 ++  {"uc3b0128", PART_TYPE_AVR32_UC3B0128, ARCH_TYPE_AVR32_UCR1,
   5.192 ++   "__AVR32_UC3B0128__"},
   5.193 ++  {"uc3b0256", PART_TYPE_AVR32_UC3B0256, ARCH_TYPE_AVR32_UCR1,
   5.194 ++   "__AVR32_UC3B0256__"},
   5.195 ++  {"uc3b0256es", PART_TYPE_AVR32_UC3B0256ES, ARCH_TYPE_AVR32_UCR1,
   5.196 ++   "__AVR32_UC3B0256ES__"},
   5.197 ++  {"uc3b164", PART_TYPE_AVR32_UC3B164, ARCH_TYPE_AVR32_UCR1,
   5.198 ++   "__AVR32_UC3B164__"},
   5.199 ++  {"uc3b1128", PART_TYPE_AVR32_UC3B1128, ARCH_TYPE_AVR32_UCR1,
   5.200 ++   "__AVR32_UC3B1128__"},
   5.201 ++  {"uc3b1256", PART_TYPE_AVR32_UC3B1256, ARCH_TYPE_AVR32_UCR1,
   5.202 ++   "__AVR32_UC3B1256__"},
   5.203 ++  {"uc3b1256es", PART_TYPE_AVR32_UC3B1256ES, ARCH_TYPE_AVR32_UCR1,
   5.204 ++   "__AVR32_UC3B1256ES__"},
   5.205 ++  {NULL, 0, 0, NULL}
   5.206 ++};
   5.207 ++
   5.208 ++/* List of all known AVR32 architectures  */
   5.209 ++static const struct arch_type_s avr32_arch_types[] = {
   5.210 ++  /* name, architecture type, microarchitecture type, feature flags, macro */
   5.211 ++  {"ap", ARCH_TYPE_AVR32_AP, UARCH_TYPE_AVR32B,
   5.212 ++   (FLAG_AVR32_HAS_DSP
   5.213 ++    | FLAG_AVR32_HAS_SIMD
   5.214 ++    | FLAG_AVR32_HAS_UNALIGNED_WORD
   5.215 ++    | FLAG_AVR32_HAS_BRANCH_PRED | FLAG_AVR32_HAS_RETURN_STACK
   5.216 ++    | FLAG_AVR32_HAS_CACHES),
   5.217 ++   "__AVR32_AP__"},
   5.218 ++  {"ucr1", ARCH_TYPE_AVR32_UCR1, UARCH_TYPE_AVR32A,
   5.219 ++   (FLAG_AVR32_HAS_DSP | FLAG_AVR32_HAS_RMW),
   5.220 ++   "__AVR32_UC__=1"},
   5.221 ++  {"ucr2", ARCH_TYPE_AVR32_UCR2, UARCH_TYPE_AVR32A,
   5.222 ++   (FLAG_AVR32_HAS_DSP | FLAG_AVR32_HAS_RMW
   5.223 ++    | FLAG_AVR32_HAS_V2_INSNS),
   5.224 ++   "__AVR32_UC__=2"},
   5.225 ++  {"ucr2nomul", ARCH_TYPE_AVR32_UCR2NOMUL, UARCH_TYPE_AVR32A,
   5.226 ++   (FLAG_AVR32_HAS_DSP | FLAG_AVR32_HAS_RMW
   5.227 ++    | FLAG_AVR32_HAS_V2_INSNS | FLAG_AVR32_HAS_NO_MUL_INSNS),
   5.228 ++   "__AVR32_UC__=3"},
   5.229 ++  {NULL, 0, 0, 0, NULL}
   5.230 ++};
   5.231 ++
   5.232 ++/* Default arch name */
   5.233 ++const char *avr32_arch_name = "none";
   5.234 ++const char *avr32_part_name = "none";
   5.235 ++
   5.236 ++const struct part_type_s *avr32_part;
   5.237 ++const struct arch_type_s *avr32_arch;
   5.238 ++
   5.239 ++
   5.240 ++/* Set default target_flags. */
   5.241 ++#undef TARGET_DEFAULT_TARGET_FLAGS
   5.242 ++#define TARGET_DEFAULT_TARGET_FLAGS \
   5.243 ++  (MASK_HAS_ASM_ADDR_PSEUDOS | MASK_MD_REORG_OPTIMIZATION | MASK_COND_EXEC_BEFORE_RELOAD)
   5.244 ++
   5.245 ++void
   5.246 ++avr32_optimization_options (int level,
   5.247 ++                            int size){
   5.248 ++  if (AVR32_ALWAYS_PIC)
   5.249 ++    flag_pic = 1;
   5.250 ++
   5.251 ++  /* Enable section anchors if optimization is enabled. */
   5.252 ++  if (level > 0 || size)
   5.253 ++    flag_section_anchors = 1;
   5.254 ++}
   5.255 ++
   5.256 ++/* Override command line options */
   5.257 ++void
   5.258 ++avr32_override_options (void)
   5.259 ++{
   5.260 ++  const struct part_type_s *part;
   5.261 ++  const struct arch_type_s *arch;
   5.262 ++
   5.263 ++  /*Add backward compability*/
   5.264 ++  if (strcmp ("uc", avr32_arch_name)== 0)
   5.265 ++    {
   5.266 ++      fprintf (stderr, "Warning: Deprecated arch `%s' specified. "
   5.267 ++                       "Please use '-march=ucr1' instead. "
   5.268 ++                       "Converting to arch 'ucr1'\n",
   5.269 ++               avr32_arch_name);
   5.270 ++      avr32_arch_name="ucr1";
   5.271 ++    }
   5.272 ++
   5.273 ++  /* Check if arch type is set. */
   5.274 ++  for (arch = avr32_arch_types; arch->name; arch++)
   5.275 ++    {
   5.276 ++      if (strcmp (arch->name, avr32_arch_name) == 0)
   5.277 ++        break;
   5.278 ++    }
   5.279 ++  avr32_arch = arch;
   5.280 ++
   5.281 ++  if (!arch->name && strcmp("none", avr32_arch_name) != 0)
   5.282 ++    {
   5.283 ++      fprintf (stderr, "Unknown arch `%s' specified\n"
   5.284 ++                       "Known arch names:\n"
   5.285 ++                       "\tuc (deprecated)\n",
   5.286 ++               avr32_arch_name);
   5.287 ++      for (arch = avr32_arch_types; arch->name; arch++)
   5.288 ++        fprintf (stderr, "\t%s\n", arch->name);
   5.289 ++      avr32_arch = &avr32_arch_types[ARCH_TYPE_AVR32_AP];
   5.290 ++    }
   5.291 ++
   5.292 ++  /* Check if part type is set. */
   5.293 ++  for (part = avr32_part_types; part->name; part++)
   5.294 ++    if (strcmp (part->name, avr32_part_name) == 0)
   5.295 ++      break;
   5.296 ++
   5.297 ++  avr32_part = part;
   5.298 ++  if (!part->name)
   5.299 ++    {
   5.300 ++      fprintf (stderr, "Unknown part `%s' specified\nKnown part names:\n",
   5.301 ++               avr32_part_name);
   5.302 ++      for (part = avr32_part_types; part->name; part++)
   5.303 ++        {
   5.304 ++          if (strcmp("none", part->name) != 0)
   5.305 ++            fprintf (stderr, "\t%s\n", part->name);
   5.306 ++        }
   5.307 ++      /* Set default to NONE*/
   5.308 ++      avr32_part = &avr32_part_types[PART_TYPE_AVR32_NONE];
   5.309 ++    }
   5.310 ++
   5.311 ++  /* NB! option -march= overrides option -mpart
   5.312 ++   * if both are used at the same time */
   5.313 ++  if (!arch->name)
   5.314 ++    avr32_arch = &avr32_arch_types[avr32_part->arch_type];
   5.315 ++
   5.316 ++  /* If optimization level is two or greater, then align start of loops to a
   5.317 ++     word boundary since this will allow folding the first insn of the loop.
   5.318 ++     Do this only for targets supporting branch prediction. */
   5.319 ++  if (optimize >= 2 && TARGET_BRANCH_PRED)
   5.320 ++    align_loops = 2;
   5.321 ++
   5.322 ++
   5.323 ++  /* Enable fast-float library if unsafe math optimizations
   5.324 ++     are used. */
   5.325 ++  if (flag_unsafe_math_optimizations)
   5.326 ++    target_flags |= MASK_FAST_FLOAT;
   5.327 ++
   5.328 ++  /* Check if we should set avr32_imm_in_const_pool
   5.329 ++     based on if caches are present or not. */
   5.330 ++  if ( avr32_imm_in_const_pool == -1 )
   5.331 ++    {
   5.332 ++      if ( TARGET_CACHES )
   5.333 ++        avr32_imm_in_const_pool = 1;
   5.334 ++      else
   5.335 ++        avr32_imm_in_const_pool = 0;
   5.336 ++    }
   5.337 ++
   5.338 ++  if (TARGET_NO_PIC)
   5.339 ++    flag_pic = 0;
   5.340 ++
   5.341 ++  avr32_add_gc_roots ();
   5.342 ++}
   5.343 ++
   5.344 ++
   5.345 ++/*
   5.346 ++If defined, a function that outputs the assembler code for entry to a
   5.347 ++function.  The prologue is responsible for setting up the stack frame,
   5.348 ++initializing the frame pointer register, saving registers that must be
   5.349 ++saved, and allocating size additional bytes of storage for the
   5.350 ++local variables.  size is an integer.  file is a stdio
   5.351 ++stream to which the assembler code should be output.
   5.352 ++
   5.353 ++The label for the beginning of the function need not be output by this
   5.354 ++macro.  That has already been done when the macro is run.
   5.355 ++
   5.356 ++To determine which registers to save, the macro can refer to the array
   5.357 ++regs_ever_live: element r is nonzero if hard register
   5.358 ++r is used anywhere within the function.  This implies the function
   5.359 ++prologue should save register r, provided it is not one of the
   5.360 ++call-used registers.  (TARGET_ASM_FUNCTION_EPILOGUE must likewise use
   5.361 ++regs_ever_live.)
   5.362 ++
   5.363 ++On machines that have ``register windows'', the function entry code does
   5.364 ++not save on the stack the registers that are in the windows, even if
   5.365 ++they are supposed to be preserved by function calls; instead it takes
   5.366 ++appropriate steps to ``push'' the register stack, if any non-call-used
   5.367 ++registers are used in the function.
   5.368 ++
   5.369 ++On machines where functions may or may not have frame-pointers, the
   5.370 ++function entry code must vary accordingly; it must set up the frame
   5.371 ++pointer if one is wanted, and not otherwise.  To determine whether a
   5.372 ++frame pointer is in wanted, the macro can refer to the variable
   5.373 ++frame_pointer_needed.  The variable's value will be 1 at run
   5.374 ++time in a function that needs a frame pointer.  (see Elimination).
   5.375 ++
   5.376 ++The function entry code is responsible for allocating any stack space
   5.377 ++required for the function.  This stack space consists of the regions
   5.378 ++listed below.  In most cases, these regions are allocated in the
   5.379 ++order listed, with the last listed region closest to the top of the
   5.380 ++stack (the lowest address if STACK_GROWS_DOWNWARD is defined, and
   5.381 ++the highest address if it is not defined).  You can use a different order
   5.382 ++for a machine if doing so is more convenient or required for
   5.383 ++compatibility reasons.  Except in cases where required by standard
   5.384 ++or by a debugger, there is no reason why the stack layout used by GCC
   5.385 ++need agree with that used by other compilers for a machine.
   5.386 ++*/
   5.387 ++
   5.388 ++#undef TARGET_ASM_FUNCTION_PROLOGUE
   5.389 ++#define TARGET_ASM_FUNCTION_PROLOGUE avr32_target_asm_function_prologue
   5.390 ++
   5.391 ++
   5.392 ++#undef TARGET_DEFAULT_SHORT_ENUMS
   5.393 ++#define TARGET_DEFAULT_SHORT_ENUMS hook_bool_void_false
   5.394 ++
   5.395 ++#undef TARGET_PROMOTE_FUNCTION_ARGS
   5.396 ++#define TARGET_PROMOTE_FUNCTION_ARGS hook_bool_tree_true
   5.397 ++
   5.398 ++#undef TARGET_PROMOTE_FUNCTION_RETURN
   5.399 ++#define TARGET_PROMOTE_FUNCTION_RETURN hook_bool_tree_true
   5.400 ++
   5.401 ++#undef TARGET_PROMOTE_PROTOTYPES
   5.402 ++#define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true
   5.403 ++
   5.404 ++#undef TARGET_MUST_PASS_IN_STACK
   5.405 ++#define TARGET_MUST_PASS_IN_STACK avr32_must_pass_in_stack
   5.406 ++
   5.407 ++#undef TARGET_PASS_BY_REFERENCE
   5.408 ++#define TARGET_PASS_BY_REFERENCE avr32_pass_by_reference
   5.409 ++
   5.410 ++#undef TARGET_STRICT_ARGUMENT_NAMING
   5.411 ++#define TARGET_STRICT_ARGUMENT_NAMING avr32_strict_argument_naming
   5.412 ++
   5.413 ++#undef TARGET_VECTOR_MODE_SUPPORTED_P
   5.414 ++#define TARGET_VECTOR_MODE_SUPPORTED_P avr32_vector_mode_supported
   5.415 ++
   5.416 ++#undef TARGET_RETURN_IN_MEMORY
   5.417 ++#define TARGET_RETURN_IN_MEMORY avr32_return_in_memory
   5.418 ++
   5.419 ++#undef TARGET_RETURN_IN_MSB
   5.420 ++#define TARGET_RETURN_IN_MSB avr32_return_in_msb
   5.421 ++
   5.422 ++#undef TARGET_ENCODE_SECTION_INFO
   5.423 ++#define TARGET_ENCODE_SECTION_INFO avr32_encode_section_info
   5.424 ++
   5.425 ++#undef TARGET_ARG_PARTIAL_BYTES
   5.426 ++#define TARGET_ARG_PARTIAL_BYTES avr32_arg_partial_bytes
   5.427 ++
   5.428 ++#undef TARGET_STRIP_NAME_ENCODING
   5.429 ++#define TARGET_STRIP_NAME_ENCODING avr32_strip_name_encoding
   5.430 ++
   5.431 ++#define streq(string1, string2) (strcmp (string1, string2) == 0)
   5.432 ++
   5.433 ++#undef  TARGET_NARROW_VOLATILE_BITFIELD
   5.434 ++#define TARGET_NARROW_VOLATILE_BITFIELD hook_bool_void_false
   5.435 ++
   5.436 ++#undef  TARGET_ATTRIBUTE_TABLE
   5.437 ++#define TARGET_ATTRIBUTE_TABLE avr32_attribute_table
   5.438 ++
   5.439 ++#undef  TARGET_COMP_TYPE_ATTRIBUTES
   5.440 ++#define TARGET_COMP_TYPE_ATTRIBUTES avr32_comp_type_attributes
   5.441 ++
   5.442 ++
   5.443 ++#undef  TARGET_RTX_COSTS
   5.444 ++#define TARGET_RTX_COSTS avr32_rtx_costs
   5.445 ++
   5.446 ++#undef  TARGET_CANNOT_FORCE_CONST_MEM
   5.447 ++#define  TARGET_CANNOT_FORCE_CONST_MEM avr32_cannot_force_const_mem
   5.448 ++
   5.449 ++#undef  TARGET_ASM_INTEGER
   5.450 ++#define TARGET_ASM_INTEGER avr32_assemble_integer
   5.451 ++
   5.452 ++#undef  TARGET_FUNCTION_VALUE
   5.453 ++#define TARGET_FUNCTION_VALUE avr32_function_value
   5.454 ++
   5.455 ++#undef  TARGET_MIN_ANCHOR_OFFSET
   5.456 ++#define TARGET_MIN_ANCHOR_OFFSET (0)
   5.457 ++
   5.458 ++#undef  TARGET_MAX_ANCHOR_OFFSET
   5.459 ++#define TARGET_MAX_ANCHOR_OFFSET ((1 << 15) - 1)
   5.460 ++
   5.461 ++#undef TARGET_SECONDARY_RELOAD
   5.462 ++#define TARGET_SECONDARY_RELOAD avr32_secondary_reload
   5.463 ++
   5.464 ++enum reg_class
   5.465 ++avr32_secondary_reload (bool in_p, rtx x, enum reg_class class ATTRIBUTE_UNUSED,
   5.466 ++                        enum machine_mode mode, secondary_reload_info *sri)
   5.467 ++{
   5.468 ++
   5.469 ++  if ( avr32_rmw_memory_operand (x, mode) )
   5.470 ++    {
   5.471 ++      if (!in_p)
   5.472 ++        sri->icode = CODE_FOR_reload_out_rmw_memory_operand;
   5.473 ++      else
   5.474 ++        sri->icode = CODE_FOR_reload_in_rmw_memory_operand;
   5.475 ++    }
   5.476 ++  return NO_REGS;
   5.477 ++
   5.478 ++}
   5.479 ++
   5.480 ++/*
   5.481 ++ * Switches to the appropriate section for output of constant pool
   5.482 ++ * entry x in mode. You can assume that x is some kind of constant in
   5.483 ++ * RTL. The argument mode is redundant except in the case of a
   5.484 ++ * const_int rtx. Select the section by calling readonly_data_ section
   5.485 ++ * or one of the alternatives for other sections. align is the
   5.486 ++ * constant alignment in bits.
   5.487 ++ *
   5.488 ++ * The default version of this function takes care of putting symbolic
   5.489 ++ * constants in flag_ pic mode in data_section and everything else in
   5.490 ++ * readonly_data_section.
   5.491 ++ */
   5.492 ++//#undef TARGET_ASM_SELECT_RTX_SECTION
   5.493 ++//#define TARGET_ASM_SELECT_RTX_SECTION avr32_select_rtx_section
   5.494 ++
   5.495 ++
   5.496 ++/*
   5.497 ++ * If non-null, this hook performs a target-specific pass over the
   5.498 ++ * instruction stream. The compiler will run it at all optimization
   5.499 ++ * levels, just before the point at which it normally does
   5.500 ++ * delayed-branch scheduling.
   5.501 ++ *
   5.502 ++ * The exact purpose of the hook varies from target to target. Some
   5.503 ++ * use it to do transformations that are necessary for correctness,
   5.504 ++ * such as laying out in-function constant pools or avoiding hardware
   5.505 ++ * hazards. Others use it as an opportunity to do some
   5.506 ++ * machine-dependent optimizations.
   5.507 ++ *
   5.508 ++ * You need not implement the hook if it has nothing to do. The
   5.509 ++ * default definition is null.
   5.510 ++ */
   5.511 ++#undef TARGET_MACHINE_DEPENDENT_REORG
   5.512 ++#define TARGET_MACHINE_DEPENDENT_REORG avr32_reorg
   5.513 ++
   5.514 ++/* Target hook for assembling integer objects.
   5.515 ++   Need to handle integer vectors */
   5.516 ++static bool
   5.517 ++avr32_assemble_integer (rtx x, unsigned int size, int aligned_p)
   5.518 ++{
   5.519 ++  if (avr32_vector_mode_supported (GET_MODE (x)))
   5.520 ++    {
   5.521 ++      int i, units;
   5.522 ++
   5.523 ++      if (GET_CODE (x) != CONST_VECTOR)
   5.524 ++	abort ();
   5.525 ++
   5.526 ++      units = CONST_VECTOR_NUNITS (x);
   5.527 ++
   5.528 ++      switch (GET_MODE (x))
   5.529 ++	{
   5.530 ++	case V2HImode:
   5.531 ++	  size = 2;
   5.532 ++	  break;
   5.533 ++	case V4QImode:
   5.534 ++	  size = 1;
   5.535 ++	  break;
   5.536 ++	default:
   5.537 ++	  abort ();
   5.538 ++	}
   5.539 ++
   5.540 ++      for (i = 0; i < units; i++)
   5.541 ++	{
   5.542 ++	  rtx elt;
   5.543 ++
   5.544 ++	  elt = CONST_VECTOR_ELT (x, i);
   5.545 ++	  assemble_integer (elt, size, i == 0 ? 32 : size * BITS_PER_UNIT, 1);
   5.546 ++	}
   5.547 ++
   5.548 ++      return true;
   5.549 ++    }
   5.550 ++
   5.551 ++  return default_assemble_integer (x, size, aligned_p);
   5.552 ++}
   5.553 ++
   5.554 ++/*
   5.555 ++ * This target hook describes the relative costs of RTL expressions.
   5.556 ++ *
   5.557 ++ * The cost may depend on the precise form of the expression, which is
   5.558 ++ * available for examination in x, and the rtx code of the expression
   5.559 ++ * in which it is contained, found in outer_code. code is the
   5.560 ++ * expression code--redundant, since it can be obtained with GET_CODE
   5.561 ++ * (x).
   5.562 ++ *
   5.563 ++ * In implementing this hook, you can use the construct COSTS_N_INSNS
   5.564 ++ * (n) to specify a cost equal to n fast instructions.
   5.565 ++ *
   5.566 ++ * On entry to the hook, *total contains a default estimate for the
   5.567 ++ * cost of the expression. The hook should modify this value as
   5.568 ++ * necessary. Traditionally, the default costs are COSTS_N_INSNS (5)
   5.569 ++ * for multiplications, COSTS_N_INSNS (7) for division and modulus
   5.570 ++ * operations, and COSTS_N_INSNS (1) for all other operations.
   5.571 ++ *
   5.572 ++ * When optimizing for code size, i.e. when optimize_size is non-zero,
   5.573 ++ * this target hook should be used to estimate the relative size cost
   5.574 ++ * of an expression, again relative to COSTS_N_INSNS.
   5.575 ++ *
   5.576 ++ * The hook returns true when all subexpressions of x have been
   5.577 ++ * processed, and false when rtx_cost should recurse.
   5.578 ++ */
   5.579 ++
   5.580 ++/* Worker routine for avr32_rtx_costs.  */
   5.581 ++static inline int
   5.582 ++avr32_rtx_costs_1 (rtx x, enum rtx_code code ATTRIBUTE_UNUSED,
   5.583 ++		   enum rtx_code outer ATTRIBUTE_UNUSED)
   5.584 ++{
   5.585 ++  enum machine_mode mode = GET_MODE (x);
   5.586 ++
   5.587 ++  switch (GET_CODE (x))
   5.588 ++    {
   5.589 ++    case MEM:
   5.590 ++      /* Using pre decrement / post increment memory operations on the
   5.591 ++         avr32_uc architecture means that two writebacks must be performed
   5.592 ++         and hence two cycles are needed. */
   5.593 ++      if (!optimize_size
   5.594 ++	  && GET_MODE_SIZE (mode) <= 2 * UNITS_PER_WORD
   5.595 ++	  && TARGET_ARCH_UC
   5.596 ++	  && (GET_CODE (XEXP (x, 0)) == PRE_DEC
   5.597 ++	      || GET_CODE (XEXP (x, 0)) == POST_INC))
   5.598 ++	return COSTS_N_INSNS (5);
   5.599 ++
   5.600 ++      /* Memory costs quite a lot for the first word, but subsequent words
   5.601 ++         load at the equivalent of a single insn each.  */
   5.602 ++      if (GET_MODE_SIZE (mode) > UNITS_PER_WORD)
   5.603 ++	return COSTS_N_INSNS (3 + (GET_MODE_SIZE (mode) / UNITS_PER_WORD));
   5.604 ++
   5.605 ++      return COSTS_N_INSNS (4);
   5.606 ++    case SYMBOL_REF:
   5.607 ++    case CONST:
   5.608 ++      /* These are valid for the pseudo insns: lda.w and call which operates
   5.609 ++         on direct addresses. We assume that the cost of a lda.w is the same
   5.610 ++         as the cost of a ld.w insn. */
   5.611 ++      return (outer == SET) ? COSTS_N_INSNS (4) : COSTS_N_INSNS (1);
   5.612 ++    case DIV:
   5.613 ++    case MOD:
   5.614 ++    case UDIV:
   5.615 ++    case UMOD:
   5.616 ++      return optimize_size ? COSTS_N_INSNS (1) : COSTS_N_INSNS (16);
   5.617 ++
   5.618 ++    case ROTATE:
   5.619 ++    case ROTATERT:
   5.620 ++      if (mode == TImode)
   5.621 ++	return COSTS_N_INSNS (100);
   5.622 ++
   5.623 ++      if (mode == DImode)
   5.624 ++	return COSTS_N_INSNS (10);
   5.625 ++      return COSTS_N_INSNS (4);
   5.626 ++    case ASHIFT:
   5.627 ++    case LSHIFTRT:
   5.628 ++    case ASHIFTRT:
   5.629 ++    case NOT:
   5.630 ++      if (mode == TImode)
   5.631 ++	return COSTS_N_INSNS (10);
   5.632 ++
   5.633 ++      if (mode == DImode)
   5.634 ++	return COSTS_N_INSNS (4);
   5.635 ++      return COSTS_N_INSNS (1);
   5.636 ++    case PLUS:
   5.637 ++    case MINUS:
   5.638 ++    case NEG:
   5.639 ++    case COMPARE:
   5.640 ++    case ABS:
   5.641 ++      if (GET_MODE_CLASS (mode) == MODE_FLOAT)
   5.642 ++	return COSTS_N_INSNS (100);
   5.643 ++
   5.644 ++      if (mode == TImode)
   5.645 ++	return COSTS_N_INSNS (50);
   5.646 ++
   5.647 ++      if (mode == DImode)
   5.648 ++	return COSTS_N_INSNS (2);
   5.649 ++      return COSTS_N_INSNS (1);
   5.650 ++
   5.651 ++    case MULT:
   5.652 ++      {
   5.653 ++	if (GET_MODE_CLASS (mode) == MODE_FLOAT)
   5.654 ++	  return COSTS_N_INSNS (300);
   5.655 ++
   5.656 ++	if (mode == TImode)
   5.657 ++	  return COSTS_N_INSNS (16);
   5.658 ++
   5.659 ++	if (mode == DImode)
   5.660 ++	  return COSTS_N_INSNS (4);
   5.661 ++
   5.662 ++	if (mode == HImode)
   5.663 ++	  return COSTS_N_INSNS (2);
   5.664 ++
   5.665 ++	return COSTS_N_INSNS (3);
   5.666 ++      }
   5.667 ++    case IF_THEN_ELSE:
   5.668 ++      if (GET_CODE (XEXP (x, 1)) == PC || GET_CODE (XEXP (x, 2)) == PC)
   5.669 ++	return COSTS_N_INSNS (4);
   5.670 ++      return COSTS_N_INSNS (1);
   5.671 ++    case SIGN_EXTEND:
   5.672 ++    case ZERO_EXTEND:
   5.673 ++      /* Sign/Zero extensions of registers cost quite much since these
   5.674 ++         instrcutions only take one register operand which means that gcc
   5.675 ++         often must insert some move instrcutions */
   5.676 ++      if (mode == QImode || mode == HImode)
   5.677 ++	return (COSTS_N_INSNS (GET_CODE (XEXP (x, 0)) == MEM ? 0 : 1));
   5.678 ++      return COSTS_N_INSNS (4);
   5.679 ++    case UNSPEC:
   5.680 ++      /* divmod operations */
   5.681 ++      if (XINT (x, 1) == UNSPEC_UDIVMODSI4_INTERNAL
   5.682 ++	  || XINT (x, 1) == UNSPEC_DIVMODSI4_INTERNAL)
   5.683 ++	{
   5.684 ++	  return optimize_size ? COSTS_N_INSNS (1) : COSTS_N_INSNS (16);
   5.685 ++	}
   5.686 ++      /* Fallthrough */
   5.687 ++    default:
   5.688 ++      return COSTS_N_INSNS (1);
   5.689 ++    }
   5.690 ++}
   5.691 ++
   5.692 ++static bool
   5.693 ++avr32_rtx_costs (rtx x, int code, int outer_code, int *total)
   5.694 ++{
   5.695 ++  *total = avr32_rtx_costs_1 (x, code, outer_code);
   5.696 ++  return true;
   5.697 ++}
   5.698 ++
   5.699 ++
   5.700 ++bool
   5.701 ++avr32_cannot_force_const_mem (rtx x ATTRIBUTE_UNUSED)
   5.702 ++{
   5.703 ++  /* Do not want symbols in the constant pool when compiling pic or if using
   5.704 ++     address pseudo instructions. */
   5.705 ++  return ((flag_pic || TARGET_HAS_ASM_ADDR_PSEUDOS)
   5.706 ++	  && avr32_find_symbol (x) != NULL_RTX);
   5.707 ++}
   5.708 ++
   5.709 ++
   5.710 ++/* Table of machine attributes.  */
   5.711 ++const struct attribute_spec avr32_attribute_table[] = {
   5.712 ++  /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */
   5.713 ++  /* Interrupt Service Routines have special prologue and epilogue
   5.714 ++     requirements.  */
   5.715 ++  {"isr", 0, 1, false, false, false, avr32_handle_isr_attribute},
   5.716 ++  {"interrupt", 0, 1, false, false, false, avr32_handle_isr_attribute},
   5.717 ++  {"acall", 0, 1, false, true, true, avr32_handle_acall_attribute},
   5.718 ++  {"naked", 0, 0, true, false, false, avr32_handle_fndecl_attribute},
   5.719 ++  {"rmw_addressable", 0, 0, true, false, false, NULL},
   5.720 ++  {NULL, 0, 0, false, false, false, NULL}
   5.721 ++};
   5.722 ++
   5.723 ++
   5.724 ++typedef struct
   5.725 ++{
   5.726 ++  const char *const arg;
   5.727 ++  const unsigned long return_value;
   5.728 ++}
   5.729 ++isr_attribute_arg;
   5.730 ++
   5.731 ++static const isr_attribute_arg isr_attribute_args[] = {
   5.732 ++  {"FULL", AVR32_FT_ISR_FULL},
   5.733 ++  {"full", AVR32_FT_ISR_FULL},
   5.734 ++  {"HALF", AVR32_FT_ISR_HALF},
   5.735 ++  {"half", AVR32_FT_ISR_HALF},
   5.736 ++  {"NONE", AVR32_FT_ISR_NONE},
   5.737 ++  {"none", AVR32_FT_ISR_NONE},
   5.738 ++  {"UNDEF", AVR32_FT_ISR_NONE},
   5.739 ++  {"undef", AVR32_FT_ISR_NONE},
   5.740 ++  {"SWI", AVR32_FT_ISR_NONE},
   5.741 ++  {"swi", AVR32_FT_ISR_NONE},
   5.742 ++  {NULL, AVR32_FT_ISR_NONE}
   5.743 ++};
   5.744 ++
   5.745 ++/* Returns the (interrupt) function type of the current
   5.746 ++   function, or AVR32_FT_UNKNOWN if the type cannot be determined.  */
   5.747 ++
   5.748 ++static unsigned long
   5.749 ++avr32_isr_value (tree argument)
   5.750 ++{
   5.751 ++  const isr_attribute_arg *ptr;
   5.752 ++  const char *arg;
   5.753 ++
   5.754 ++  /* No argument - default to ISR_NONE.  */
   5.755 ++  if (argument == NULL_TREE)
   5.756 ++    return AVR32_FT_ISR_NONE;
   5.757 ++
   5.758 ++  /* Get the value of the argument.  */
   5.759 ++  if (TREE_VALUE (argument) == NULL_TREE
   5.760 ++      || TREE_CODE (TREE_VALUE (argument)) != STRING_CST)
   5.761 ++    return AVR32_FT_UNKNOWN;
   5.762 ++
   5.763 ++  arg = TREE_STRING_POINTER (TREE_VALUE (argument));
   5.764 ++
   5.765 ++  /* Check it against the list of known arguments.  */
   5.766 ++  for (ptr = isr_attribute_args; ptr->arg != NULL; ptr++)
   5.767 ++    if (streq (arg, ptr->arg))
   5.768 ++      return ptr->return_value;
   5.769 ++
   5.770 ++  /* An unrecognized interrupt type.  */
   5.771 ++  return AVR32_FT_UNKNOWN;
   5.772 ++}
   5.773 ++
   5.774 ++
   5.775 ++
   5.776 ++/*
   5.777 ++These hooks specify assembly directives for creating certain kinds
   5.778 ++of integer object.  The TARGET_ASM_BYTE_OP directive creates a
   5.779 ++byte-sized object, the TARGET_ASM_ALIGNED_HI_OP one creates an
   5.780 ++aligned two-byte object, and so on.  Any of the hooks may be
   5.781 ++NULL, indicating that no suitable directive is available.
   5.782 ++
   5.783 ++The compiler will print these strings at the start of a new line,
   5.784 ++followed immediately by the object's initial value.  In most cases,
   5.785 ++the string should contain a tab, a pseudo-op, and then another tab.
   5.786 ++*/
   5.787 ++#undef  TARGET_ASM_BYTE_OP
   5.788 ++#define TARGET_ASM_BYTE_OP "\t.byte\t"
   5.789 ++#undef  TARGET_ASM_ALIGNED_HI_OP
   5.790 ++#define TARGET_ASM_ALIGNED_HI_OP "\t.align 1\n\t.short\t"
   5.791 ++#undef  TARGET_ASM_ALIGNED_SI_OP
   5.792 ++#define TARGET_ASM_ALIGNED_SI_OP "\t.align 2\n\t.int\t"
   5.793 ++#undef  TARGET_ASM_ALIGNED_DI_OP
   5.794 ++#define TARGET_ASM_ALIGNED_DI_OP NULL
   5.795 ++#undef  TARGET_ASM_ALIGNED_TI_OP
   5.796 ++#define TARGET_ASM_ALIGNED_TI_OP NULL
   5.797 ++#undef  TARGET_ASM_UNALIGNED_HI_OP
   5.798 ++#define TARGET_ASM_UNALIGNED_HI_OP "\t.short\t"
   5.799 ++#undef  TARGET_ASM_UNALIGNED_SI_OP
   5.800 ++#define TARGET_ASM_UNALIGNED_SI_OP "\t.int\t"
   5.801 ++#undef  TARGET_ASM_UNALIGNED_DI_OP
   5.802 ++#define TARGET_ASM_UNALIGNED_DI_OP NULL
   5.803 ++#undef  TARGET_ASM_UNALIGNED_TI_OP
   5.804 ++#define TARGET_ASM_UNALIGNED_TI_OP NULL
   5.805 ++
   5.806 ++#undef TARGET_ASM_OUTPUT_MI_THUNK
   5.807 ++#define TARGET_ASM_OUTPUT_MI_THUNK avr32_output_mi_thunk
   5.808 ++
   5.809 ++#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
   5.810 ++#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_true
   5.811 ++
   5.812 ++static void
   5.813 ++avr32_output_mi_thunk (FILE * file,
   5.814 ++    tree thunk ATTRIBUTE_UNUSED,
   5.815 ++    HOST_WIDE_INT delta,
   5.816 ++    HOST_WIDE_INT vcall_offset, tree function)
   5.817 ++  {
   5.818 ++    int mi_delta = delta;
   5.819 ++    int this_regno =
   5.820 ++      (aggregate_value_p (TREE_TYPE (TREE_TYPE (function)), function) ?
   5.821 ++       INTERNAL_REGNUM (11) : INTERNAL_REGNUM (12));
   5.822 ++
   5.823 ++
   5.824 ++    if (!avr32_const_ok_for_constraint_p (mi_delta, 'I', "Is21")
   5.825 ++        || vcall_offset)
   5.826 ++      {
   5.827 ++        fputs ("\tpushm\tlr\n", file);
   5.828 ++      }
   5.829 ++
   5.830 ++
   5.831 ++    if (mi_delta != 0)
   5.832 ++      {
   5.833 ++        if (avr32_const_ok_for_constraint_p (mi_delta, 'I', "Is21"))
   5.834 ++          {
   5.835 ++            fprintf (file, "\tsub\t%s, %d\n", reg_names[this_regno], -mi_delta);
   5.836 ++          }
   5.837 ++        else
   5.838 ++          {
   5.839 ++            /* Immediate is larger than k21 we must make us a temp register by
   5.840 ++	     pushing a register to the stack. */
   5.841 ++            fprintf (file, "\tmov\tlr, lo(%d)\n", mi_delta);
   5.842 ++            fprintf (file, "\torh\tlr, hi(%d)\n", mi_delta);
   5.843 ++            fprintf (file, "\tadd\t%s, lr\n", reg_names[this_regno]);
   5.844 ++          }
   5.845 ++      }
   5.846 ++
   5.847 ++
   5.848 ++    if (vcall_offset != 0)
   5.849 ++      {
   5.850 ++        fprintf (file, "\tld.w\tlr, %s[0]\n", reg_names[this_regno]);
   5.851 ++        fprintf (file, "\tld.w\tlr, lr[%i]\n", (int) vcall_offset);
   5.852 ++        fprintf (file, "\tadd\t%s, lr\n", reg_names[this_regno]);
   5.853 ++      }
   5.854 ++
   5.855 ++
   5.856 ++    if (!avr32_const_ok_for_constraint_p (mi_delta, 'I', "Is21")
   5.857 ++        || vcall_offset)
   5.858 ++      {
   5.859 ++        fputs ("\tpopm\tlr\n", file);
   5.860 ++      }
   5.861 ++
   5.862 ++    /* Jump to the function. We assume that we can use an rjmp since the
   5.863 ++       function to jump to is local and probably not too far away from
   5.864 ++       the thunk. If this assumption proves to be wrong we could implement
   5.865 ++       this jump by calculating the offset between the jump source and destination
   5.866 ++       and put this in the constant pool and then perform an add to pc.
   5.867 ++       This would also be legitimate PIC code. But for now we hope that an rjmp
   5.868 ++       will be sufficient...
   5.869 ++    */
   5.870 ++    fputs ("\trjmp\t", file);
   5.871 ++    assemble_name (file, XSTR (XEXP (DECL_RTL (function), 0), 0));
   5.872 ++    fputc ('\n', file);
   5.873 ++  }
   5.874 ++
   5.875 ++
   5.876 ++/* Implements target hook vector_mode_supported.  */
   5.877 ++bool
   5.878 ++avr32_vector_mode_supported (enum machine_mode mode)
   5.879 ++{
   5.880 ++  if ((mode == V2HImode) || (mode == V4QImode))
   5.881 ++    return true;
   5.882 ++
   5.883 ++  return false;
   5.884 ++}
   5.885 ++
   5.886 ++
   5.887 ++#undef TARGET_INIT_LIBFUNCS
   5.888 ++#define TARGET_INIT_LIBFUNCS avr32_init_libfuncs
   5.889 ++
   5.890 ++#undef  TARGET_INIT_BUILTINS
   5.891 ++#define TARGET_INIT_BUILTINS avr32_init_builtins
   5.892 ++
   5.893 ++#undef  TARGET_EXPAND_BUILTIN
   5.894 ++#define TARGET_EXPAND_BUILTIN avr32_expand_builtin
   5.895 ++
   5.896 ++tree int_ftype_int, int_ftype_void, short_ftype_short, void_ftype_int_int,
   5.897 ++  void_ftype_ptr_int;
   5.898 ++tree void_ftype_int, void_ftype_void, int_ftype_ptr_int;
   5.899 ++tree short_ftype_short, int_ftype_int_short, int_ftype_short_short,
   5.900 ++  short_ftype_short_short;
   5.901 ++tree int_ftype_int_int, longlong_ftype_int_short, longlong_ftype_short_short;
   5.902 ++tree void_ftype_int_int_int_int_int, void_ftype_int_int_int;
   5.903 ++tree longlong_ftype_int_int, void_ftype_int_int_longlong;
   5.904 ++tree int_ftype_int_int_int, longlong_ftype_longlong_int_short;
   5.905 ++tree longlong_ftype_longlong_short_short, int_ftype_int_short_short;
   5.906 ++
   5.907 ++#define def_builtin(NAME, TYPE, CODE)					\
   5.908 ++  lang_hooks.builtin_function ((NAME), (TYPE), (CODE),			\
   5.909 ++		  	       BUILT_IN_MD, NULL, NULL_TREE)
   5.910 ++
   5.911 ++#define def_mbuiltin(MASK, NAME, TYPE, CODE)				\
   5.912 ++  do									\
   5.913 ++    {									\
   5.914 ++      if ((MASK))							\
   5.915 ++	lang_hooks.builtin_function ((NAME), (TYPE), (CODE),		\
   5.916 ++				     BUILT_IN_MD, NULL, NULL_TREE);	\
   5.917 ++    }									\
   5.918 ++  while (0)
   5.919 ++
   5.920 ++struct builtin_description
   5.921 ++{
   5.922 ++  const unsigned int mask;
   5.923 ++  const enum insn_code icode;
   5.924 ++  const char *const name;
   5.925 ++  const int code;
   5.926 ++  const enum rtx_code comparison;
   5.927 ++  const unsigned int flag;
   5.928 ++  const tree *ftype;
   5.929 ++};
   5.930 ++
   5.931 ++static const struct builtin_description bdesc_2arg[] = {
   5.932 ++#define DSP_BUILTIN(code, builtin, ftype) \
   5.933 ++  { 1, CODE_FOR_##code, "__builtin_" #code , \
   5.934 ++    AVR32_BUILTIN_##builtin, 0, 0, ftype }
   5.935 ++
   5.936 ++  DSP_BUILTIN (mulsathh_h, MULSATHH_H, &short_ftype_short_short),
   5.937 ++  DSP_BUILTIN (mulsathh_w, MULSATHH_W, &int_ftype_short_short),
   5.938 ++  DSP_BUILTIN (mulsatrndhh_h, MULSATRNDHH_H, &short_ftype_short_short),
   5.939 ++  DSP_BUILTIN (mulsatrndwh_w, MULSATRNDWH_W, &int_ftype_int_short),
   5.940 ++  DSP_BUILTIN (mulsatwh_w, MULSATWH_W, &int_ftype_int_short),
   5.941 ++  DSP_BUILTIN (satadd_h, SATADD_H, &short_ftype_short_short),
   5.942 ++  DSP_BUILTIN (satsub_h, SATSUB_H, &short_ftype_short_short),
   5.943 ++  DSP_BUILTIN (satadd_w, SATADD_W, &int_ftype_int_int),
   5.944 ++  DSP_BUILTIN (satsub_w, SATSUB_W, &int_ftype_int_int),
   5.945 ++  DSP_BUILTIN (mulwh_d, MULWH_D, &longlong_ftype_int_short),
   5.946 ++  DSP_BUILTIN (mulnwh_d, MULNWH_D, &longlong_ftype_int_short)
   5.947 ++};
   5.948 ++
   5.949 ++
   5.950 ++void
   5.951 ++avr32_init_builtins (void)
   5.952 ++{
   5.953 ++  unsigned int i;
   5.954 ++  const struct builtin_description *d;
   5.955 ++  tree endlink = void_list_node;
   5.956 ++  tree int_endlink = tree_cons (NULL_TREE, integer_type_node, endlink);
   5.957 ++  tree longlong_endlink =
   5.958 ++    tree_cons (NULL_TREE, long_long_integer_type_node, endlink);
   5.959 ++  tree short_endlink =
   5.960 ++    tree_cons (NULL_TREE, short_integer_type_node, endlink);
   5.961 ++  tree void_endlink = tree_cons (NULL_TREE, void_type_node, endlink);
   5.962 ++
   5.963 ++  /* int func (int) */
   5.964 ++  int_ftype_int = build_function_type (integer_type_node, int_endlink);
   5.965 ++
   5.966 ++  /* short func (short) */
   5.967 ++  short_ftype_short
   5.968 ++    = build_function_type (short_integer_type_node, short_endlink);
   5.969 ++
   5.970 ++  /* short func (short, short) */
   5.971 ++  short_ftype_short_short
   5.972 ++    = build_function_type (short_integer_type_node,
   5.973 ++			   tree_cons (NULL_TREE, short_integer_type_node,
   5.974 ++				      short_endlink));
   5.975 ++
   5.976 ++  /* long long func (long long, short, short) */
   5.977 ++  longlong_ftype_longlong_short_short
   5.978 ++    = build_function_type (long_long_integer_type_node,
   5.979 ++			   tree_cons (NULL_TREE, long_long_integer_type_node,
   5.980 ++				      tree_cons (NULL_TREE,
   5.981 ++						 short_integer_type_node,
   5.982 ++						 short_endlink)));
   5.983 ++
   5.984 ++  /* long long func (short, short) */
   5.985 ++  longlong_ftype_short_short
   5.986 ++    = build_function_type (long_long_integer_type_node,
   5.987 ++			   tree_cons (NULL_TREE, short_integer_type_node,
   5.988 ++				      short_endlink));
   5.989 ++
   5.990 ++  /* int func (int, int) */
   5.991 ++  int_ftype_int_int
   5.992 ++    = build_function_type (integer_type_node,
   5.993 ++			   tree_cons (NULL_TREE, integer_type_node,
   5.994 ++				      int_endlink));
   5.995 ++
   5.996 ++  /* long long func (int, int) */
   5.997 ++  longlong_ftype_int_int
   5.998 ++    = build_function_type (long_long_integer_type_node,
   5.999 ++			   tree_cons (NULL_TREE, integer_type_node,
  5.1000 ++				      int_endlink));
  5.1001 ++
  5.1002 ++  /* long long int func (long long, int, short) */
  5.1003 ++  longlong_ftype_longlong_int_short
  5.1004 ++    = build_function_type (long_long_integer_type_node,
  5.1005 ++			   tree_cons (NULL_TREE, long_long_integer_type_node,
  5.1006 ++				      tree_cons (NULL_TREE, integer_type_node,
  5.1007 ++						 short_endlink)));
  5.1008 ++
  5.1009 ++  /* long long int func (int, short) */
  5.1010 ++  longlong_ftype_int_short
  5.1011 ++    = build_function_type (long_long_integer_type_node,
  5.1012 ++			   tree_cons (NULL_TREE, integer_type_node,
  5.1013 ++				      short_endlink));
  5.1014 ++
  5.1015 ++  /* int func (int, short, short) */
  5.1016 ++  int_ftype_int_short_short
  5.1017 ++    = build_function_type (integer_type_node,
  5.1018 ++			   tree_cons (NULL_TREE, integer_type_node,
  5.1019 ++				      tree_cons (NULL_TREE,
  5.1020 ++						 short_integer_type_node,
  5.1021 ++						 short_endlink)));
  5.1022 ++
  5.1023 ++  /* int func (short, short) */
  5.1024 ++  int_ftype_short_short
  5.1025 ++    = build_function_type (integer_type_node,
  5.1026 ++			   tree_cons (NULL_TREE, short_integer_type_node,
  5.1027 ++				      short_endlink));
  5.1028 ++
  5.1029 ++  /* int func (int, short) */
  5.1030 ++  int_ftype_int_short
  5.1031 ++    = build_function_type (integer_type_node,
  5.1032 ++			   tree_cons (NULL_TREE, integer_type_node,
  5.1033 ++				      short_endlink));
  5.1034 ++
  5.1035 ++  /* void func (int, int) */
  5.1036 ++  void_ftype_int_int
  5.1037 ++    = build_function_type (void_type_node,
  5.1038 ++			   tree_cons (NULL_TREE, integer_type_node,
  5.1039 ++				      int_endlink));
  5.1040 ++
  5.1041 ++  /* void func (int, int, int) */
  5.1042 ++  void_ftype_int_int_int
  5.1043 ++    = build_function_type (void_type_node,
  5.1044 ++			   tree_cons (NULL_TREE, integer_type_node,
  5.1045 ++				      tree_cons (NULL_TREE, integer_type_node,
  5.1046 ++						 int_endlink)));
  5.1047 ++
  5.1048 ++  /* void func (int, int, long long) */
  5.1049 ++  void_ftype_int_int_longlong
  5.1050 ++    = build_function_type (void_type_node,
  5.1051 ++			   tree_cons (NULL_TREE, integer_type_node,
  5.1052 ++				      tree_cons (NULL_TREE, integer_type_node,
  5.1053 ++						 longlong_endlink)));
  5.1054 ++
  5.1055 ++  /* void func (int, int, int, int, int) */
  5.1056 ++  void_ftype_int_int_int_int_int
  5.1057 ++    = build_function_type (void_type_node,
  5.1058 ++			   tree_cons (NULL_TREE, integer_type_node,
  5.1059 ++				      tree_cons (NULL_TREE, integer_type_node,
  5.1060 ++						 tree_cons (NULL_TREE,
  5.1061 ++							    integer_type_node,
  5.1062 ++							    tree_cons
  5.1063 ++							    (NULL_TREE,
  5.1064 ++							     integer_type_node,
  5.1065 ++							     int_endlink)))));
  5.1066 ++
  5.1067 ++  /* void func (void *, int) */
  5.1068 ++  void_ftype_ptr_int
  5.1069 ++    = build_function_type (void_type_node,
  5.1070 ++			   tree_cons (NULL_TREE, ptr_type_node, int_endlink));
  5.1071 ++
  5.1072 ++  /* void func (int) */
  5.1073 ++  void_ftype_int = build_function_type (void_type_node, int_endlink);
  5.1074 ++
  5.1075 ++  /* void func (void) */
  5.1076 ++  void_ftype_void = build_function_type (void_type_node, void_endlink);
  5.1077 ++
  5.1078 ++  /* int func (void) */
  5.1079 ++  int_ftype_void = build_function_type (integer_type_node, void_endlink);
  5.1080 ++
  5.1081 ++  /* int func (void *, int) */
  5.1082 ++  int_ftype_ptr_int
  5.1083 ++    = build_function_type (integer_type_node,
  5.1084 ++			   tree_cons (NULL_TREE, ptr_type_node, int_endlink));
  5.1085 ++
  5.1086 ++  /* int func (int, int, int) */
  5.1087 ++  int_ftype_int_int_int
  5.1088 ++    = build_function_type (integer_type_node,
  5.1089 ++			   tree_cons (NULL_TREE, integer_type_node,
  5.1090 ++				      tree_cons (NULL_TREE, integer_type_node,
  5.1091 ++						 int_endlink)));
  5.1092 ++
  5.1093 ++  /* Initialize avr32 builtins.  */
  5.1094 ++  def_builtin ("__builtin_mfsr", int_ftype_int, AVR32_BUILTIN_MFSR);
  5.1095 ++  def_builtin ("__builtin_mtsr", void_ftype_int_int, AVR32_BUILTIN_MTSR);
  5.1096 ++  def_builtin ("__builtin_mfdr", int_ftype_int, AVR32_BUILTIN_MFDR);
  5.1097 ++  def_builtin ("__builtin_mtdr", void_ftype_int_int, AVR32_BUILTIN_MTDR);
  5.1098 ++  def_builtin ("__builtin_cache", void_ftype_ptr_int, AVR32_BUILTIN_CACHE);
  5.1099 ++  def_builtin ("__builtin_sync", void_ftype_int, AVR32_BUILTIN_SYNC);
  5.1100 ++  def_builtin ("__builtin_ssrf", void_ftype_int, AVR32_BUILTIN_SSRF);
  5.1101 ++  def_builtin ("__builtin_csrf", void_ftype_int, AVR32_BUILTIN_CSRF);
  5.1102 ++  def_builtin ("__builtin_tlbr", void_ftype_void, AVR32_BUILTIN_TLBR);
  5.1103 ++  def_builtin ("__builtin_tlbs", void_ftype_void, AVR32_BUILTIN_TLBS);
  5.1104 ++  def_builtin ("__builtin_tlbw", void_ftype_void, AVR32_BUILTIN_TLBW);
  5.1105 ++  def_builtin ("__builtin_breakpoint", void_ftype_void,
  5.1106 ++	       AVR32_BUILTIN_BREAKPOINT);
  5.1107 ++  def_builtin ("__builtin_xchg", int_ftype_ptr_int, AVR32_BUILTIN_XCHG);
  5.1108 ++  def_builtin ("__builtin_ldxi", int_ftype_ptr_int, AVR32_BUILTIN_LDXI);
  5.1109 ++  def_builtin ("__builtin_bswap_16", short_ftype_short,
  5.1110 ++	       AVR32_BUILTIN_BSWAP16);
  5.1111 ++  def_builtin ("__builtin_bswap_32", int_ftype_int, AVR32_BUILTIN_BSWAP32);
  5.1112 ++  def_builtin ("__builtin_cop", void_ftype_int_int_int_int_int,
  5.1113 ++	       AVR32_BUILTIN_COP);
  5.1114 ++  def_builtin ("__builtin_mvcr_w", int_ftype_int_int, AVR32_BUILTIN_MVCR_W);
  5.1115 ++  def_builtin ("__builtin_mvrc_w", void_ftype_int_int_int,
  5.1116 ++	       AVR32_BUILTIN_MVRC_W);
  5.1117 ++  def_builtin ("__builtin_mvcr_d", longlong_ftype_int_int,
  5.1118 ++	       AVR32_BUILTIN_MVCR_D);
  5.1119 ++  def_builtin ("__builtin_mvrc_d", void_ftype_int_int_longlong,
  5.1120 ++	       AVR32_BUILTIN_MVRC_D);
  5.1121 ++  def_builtin ("__builtin_sats", int_ftype_int_int_int, AVR32_BUILTIN_SATS);
  5.1122 ++  def_builtin ("__builtin_satu", int_ftype_int_int_int, AVR32_BUILTIN_SATU);
  5.1123 ++  def_builtin ("__builtin_satrnds", int_ftype_int_int_int,
  5.1124 ++	       AVR32_BUILTIN_SATRNDS);
  5.1125 ++  def_builtin ("__builtin_satrndu", int_ftype_int_int_int,
  5.1126 ++	       AVR32_BUILTIN_SATRNDU);
  5.1127 ++  def_builtin ("__builtin_musfr", void_ftype_int, AVR32_BUILTIN_MUSFR);
  5.1128 ++  def_builtin ("__builtin_mustr", int_ftype_void, AVR32_BUILTIN_MUSTR);
  5.1129 ++  def_builtin ("__builtin_macsathh_w", int_ftype_int_short_short,
  5.1130 ++	       AVR32_BUILTIN_MACSATHH_W);
  5.1131 ++  def_builtin ("__builtin_macwh_d", longlong_ftype_longlong_int_short,
  5.1132 ++	       AVR32_BUILTIN_MACWH_D);
  5.1133 ++  def_builtin ("__builtin_machh_d", longlong_ftype_longlong_short_short,
  5.1134 ++	       AVR32_BUILTIN_MACHH_D);
  5.1135 ++  def_builtin ("__builtin_mems", void_ftype_ptr_int, AVR32_BUILTIN_MEMS);
  5.1136 ++  def_builtin ("__builtin_memt", void_ftype_ptr_int, AVR32_BUILTIN_MEMT);
  5.1137 ++  def_builtin ("__builtin_memc", void_ftype_ptr_int, AVR32_BUILTIN_MEMC);
  5.1138 ++
  5.1139 ++  /* Add all builtins that are more or less simple operations on two
  5.1140 ++     operands.  */
  5.1141 ++  for (i = 0, d = bdesc_2arg; i < ARRAY_SIZE (bdesc_2arg); i++, d++)
  5.1142 ++    {
  5.1143 ++      /* Use one of the operands; the target can have a different mode for
  5.1144 ++         mask-generating compares.  */
  5.1145 ++
  5.1146 ++      if (d->name == 0)
  5.1147 ++	continue;
  5.1148 ++
  5.1149 ++      def_mbuiltin (d->mask, d->name, *(d->ftype), d->code);
  5.1150 ++    }
  5.1151 ++}
  5.1152 ++
  5.1153 ++
  5.1154 ++/* Subroutine of avr32_expand_builtin to take care of binop insns.  */
  5.1155 ++
  5.1156 ++static rtx
  5.1157 ++avr32_expand_binop_builtin (enum insn_code icode, tree arglist, rtx target)
  5.1158 ++{
  5.1159 ++  rtx pat;
  5.1160 ++  tree arg0 = TREE_VALUE (arglist);
  5.1161 ++  tree arg1 = TREE_VALUE (TREE_CHAIN (arglist));
  5.1162 ++  rtx op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
  5.1163 ++  rtx op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
  5.1164 ++  enum machine_mode tmode = insn_data[icode].operand[0].mode;
  5.1165 ++  enum machine_mode mode0 = insn_data[icode].operand[1].mode;
  5.1166 ++  enum machine_mode mode1 = insn_data[icode].operand[2].mode;
  5.1167 ++
  5.1168 ++  if (!target
  5.1169 ++      || GET_MODE (target) != tmode
  5.1170 ++      || !(*insn_data[icode].operand[0].predicate) (target, tmode))
  5.1171 ++    target = gen_reg_rtx (tmode);
  5.1172 ++
  5.1173 ++  /* In case the insn wants input operands in modes different from the
  5.1174 ++     result, abort.  */
  5.1175 ++  if (!(*insn_data[icode].operand[1].predicate) (op0, mode0))
  5.1176 ++    {
  5.1177 ++      /* If op0 is already a reg we must cast it to the correct mode. */
  5.1178 ++      if (REG_P (op0))
  5.1179 ++	op0 = convert_to_mode (mode0, op0, 1);
  5.1180 ++      else
  5.1181 ++	op0 = copy_to_mode_reg (mode0, op0);
  5.1182 ++    }
  5.1183 ++  if (!(*insn_data[icode].operand[2].predicate) (op1, mode1))
  5.1184 ++    {
  5.1185 ++      /* If op1 is already a reg we must cast it to the correct mode. */
  5.1186 ++      if (REG_P (op1))
  5.1187 ++	op1 = convert_to_mode (mode1, op1, 1);
  5.1188 ++      else
  5.1189 ++	op1 = copy_to_mode_reg (mode1, op1);
  5.1190 ++    }
  5.1191 ++  pat = GEN_FCN (icode) (target, op0, op1);
  5.1192 ++  if (!pat)
  5.1193 ++    return 0;
  5.1194 ++  emit_insn (pat);
  5.1195 ++  return target;
  5.1196 ++}
  5.1197 ++
  5.1198 ++/* Expand an expression EXP that calls a built-in function,
  5.1199 ++   with result going to TARGET if that's convenient
  5.1200 ++   (and in mode MODE if that's convenient).
  5.1201 ++   SUBTARGET may be used as the target for computing one of EXP's operands.
  5.1202 ++   IGNORE is nonzero if the value is to be ignored.  */
  5.1203 ++
  5.1204 ++rtx
  5.1205 ++avr32_expand_builtin (tree exp,
  5.1206 ++		      rtx target,
  5.1207 ++		      rtx subtarget ATTRIBUTE_UNUSED,
  5.1208 ++		      enum machine_mode mode ATTRIBUTE_UNUSED,
  5.1209 ++		      int ignore ATTRIBUTE_UNUSED)
  5.1210 ++{
  5.1211 ++  const struct builtin_description *d;
  5.1212 ++  unsigned int i;
  5.1213 ++  enum insn_code icode = 0;
  5.1214 ++  tree fndecl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0);
  5.1215 ++  tree arglist = TREE_OPERAND (exp, 1);
  5.1216 ++  tree arg0, arg1, arg2;
  5.1217 ++  rtx op0, op1, op2, pat;
  5.1218 ++  enum machine_mode tmode, mode0, mode1;
  5.1219 ++  enum machine_mode arg0_mode;
  5.1220 ++  int fcode = DECL_FUNCTION_CODE (fndecl);
  5.1221 ++
  5.1222 ++  switch (fcode)
  5.1223 ++    {
  5.1224 ++    default:
  5.1225 ++      break;
  5.1226 ++
  5.1227 ++    case AVR32_BUILTIN_SATS:
  5.1228 ++    case AVR32_BUILTIN_SATU:
  5.1229 ++    case AVR32_BUILTIN_SATRNDS:
  5.1230 ++    case AVR32_BUILTIN_SATRNDU:
  5.1231 ++      {
  5.1232 ++	const char *fname;
  5.1233 ++	switch (fcode)
  5.1234 ++	  {
  5.1235 ++	  default:
  5.1236 ++	  case AVR32_BUILTIN_SATS:
  5.1237 ++	    icode = CODE_FOR_sats;
  5.1238 ++	    fname = "sats";
  5.1239 ++	    break;
  5.1240 ++	  case AVR32_BUILTIN_SATU:
  5.1241 ++	    icode = CODE_FOR_satu;
  5.1242 ++	    fname = "satu";
  5.1243 ++	    break;
  5.1244 ++	  case AVR32_BUILTIN_SATRNDS:
  5.1245 ++	    icode = CODE_FOR_satrnds;
  5.1246 ++	    fname = "satrnds";
  5.1247 ++	    break;
  5.1248 ++	  case AVR32_BUILTIN_SATRNDU:
  5.1249 ++	    icode = CODE_FOR_satrndu;
  5.1250 ++	    fname = "satrndu";
  5.1251 ++	    break;
  5.1252 ++	  }
  5.1253 ++
  5.1254 ++	arg0 = TREE_VALUE (arglist);
  5.1255 ++	arg1 = TREE_VALUE (TREE_CHAIN (arglist));
  5.1256 ++	arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
  5.1257 ++	op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
  5.1258 ++	op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
  5.1259 ++	op2 = expand_expr (arg2, NULL_RTX, VOIDmode, 0);
  5.1260 ++
  5.1261 ++	tmode = insn_data[icode].operand[0].mode;
  5.1262 ++
  5.1263 ++
  5.1264 ++	if (target == 0
  5.1265 ++	    || GET_MODE (target) != tmode
  5.1266 ++	    || !(*insn_data[icode].operand[0].predicate) (target, tmode))
  5.1267 ++	  target = gen_reg_rtx (tmode);
  5.1268 ++
  5.1269 ++
  5.1270 ++	if (!(*insn_data[icode].operand[0].predicate) (op0, GET_MODE (op0)))
  5.1271 ++	  {
  5.1272 ++	    op0 = copy_to_mode_reg (insn_data[icode].operand[0].mode, op0);
  5.1273 ++	  }
  5.1274 ++
  5.1275 ++	if (!(*insn_data[icode].operand[1].predicate) (op1, SImode))
  5.1276 ++	  {
  5.1277 ++	    error ("Parameter 2 to __builtin_%s should be a constant number.",
  5.1278 ++		   fname);
  5.1279 ++	    return NULL_RTX;
  5.1280 ++	  }
  5.1281 ++
  5.1282 ++	if (!(*insn_data[icode].operand[1].predicate) (op2, SImode))
  5.1283 ++	  {
  5.1284 ++	    error ("Parameter 3 to __builtin_%s should be a constant number.",
  5.1285 ++		   fname);
  5.1286 ++	    return NULL_RTX;
  5.1287 ++	  }
  5.1288 ++
  5.1289 ++	emit_move_insn (target, op0);
  5.1290 ++	pat = GEN_FCN (icode) (target, op1, op2);
  5.1291 ++	if (!pat)
  5.1292 ++	  return 0;
  5.1293 ++	emit_insn (pat);
  5.1294 ++
  5.1295 ++	return target;
  5.1296 ++      }
  5.1297 ++    case AVR32_BUILTIN_MUSTR:
  5.1298 ++      icode = CODE_FOR_mustr;
  5.1299 ++      tmode = insn_data[icode].operand[0].mode;
  5.1300 ++
  5.1301 ++      if (target == 0
  5.1302 ++	  || GET_MODE (target) != tmode
  5.1303 ++	  || !(*insn_data[icode].operand[0].predicate) (target, tmode))
  5.1304 ++	target = gen_reg_rtx (tmode);
  5.1305 ++      pat = GEN_FCN (icode) (target);
  5.1306 ++      if (!pat)
  5.1307 ++	return 0;
  5.1308 ++      emit_insn (pat);
  5.1309 ++      return target;
  5.1310 ++
  5.1311 ++    case AVR32_BUILTIN_MFSR:
  5.1312 ++      icode = CODE_FOR_mfsr;
  5.1313 ++      arg0 = TREE_VALUE (arglist);
  5.1314 ++      op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
  5.1315 ++      tmode = insn_data[icode].operand[0].mode;
  5.1316 ++      mode0 = insn_data[icode].operand[1].mode;
  5.1317 ++
  5.1318 ++      if (!(*insn_data[icode].operand[1].predicate) (op0, mode0))
  5.1319 ++	{
  5.1320 ++	  error ("Parameter 1 to __builtin_mfsr must be a constant number");
  5.1321 ++	}
  5.1322 ++
  5.1323 ++      if (target == 0
  5.1324 ++	  || GET_MODE (target) != tmode
  5.1325 ++	  || !(*insn_data[icode].operand[0].predicate) (target, tmode))
  5.1326 ++	target = gen_reg_rtx (tmode);
  5.1327 ++      pat = GEN_FCN (icode) (target, op0);
  5.1328 ++      if (!pat)
  5.1329 ++	return 0;
  5.1330 ++      emit_insn (pat);
  5.1331 ++      return target;
  5.1332 ++    case AVR32_BUILTIN_MTSR:
  5.1333 ++      icode = CODE_FOR_mtsr;
  5.1334 ++      arg0 = TREE_VALUE (arglist);
  5.1335 ++      arg1 = TREE_VALUE (TREE_CHAIN (arglist));
  5.1336 ++      op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
  5.1337 ++      op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
  5.1338 ++      mode0 = insn_data[icode].operand[0].mode;
  5.1339 ++      mode1 = insn_data[icode].operand[1].mode;
  5.1340 ++
  5.1341 ++      if (!(*insn_data[icode].operand[0].predicate) (op0, mode0))
  5.1342 ++	{
  5.1343 ++	  error ("Parameter 1 to __builtin_mtsr must be a constant number");
  5.1344 ++	  return gen_reg_rtx (mode0);
  5.1345 ++	}
  5.1346 ++      if (!(*insn_data[icode].operand[1].predicate) (op1, mode1))
  5.1347 ++	op1 = copy_to_mode_reg (mode1, op1);
  5.1348 ++      pat = GEN_FCN (icode) (op0, op1);
  5.1349 ++      if (!pat)
  5.1350 ++	return 0;
  5.1351 ++      emit_insn (pat);
  5.1352 ++      return NULL_RTX;
  5.1353 ++    case AVR32_BUILTIN_MFDR:
  5.1354 ++      icode = CODE_FOR_mfdr;
  5.1355 ++      arg0 = TREE_VALUE (arglist);
  5.1356 ++      op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
  5.1357 ++      tmode = insn_data[icode].operand[0].mode;
  5.1358 ++      mode0 = insn_data[icode].operand[1].mode;
  5.1359 ++
  5.1360 ++      if (!(*insn_data[icode].operand[1].predicate) (op0, mode0))
  5.1361 ++	{
  5.1362 ++	  error ("Parameter 1 to __builtin_mfdr must be a constant number");
  5.1363 ++	}
  5.1364 ++
  5.1365 ++      if (target == 0
  5.1366 ++	  || GET_MODE (target) != tmode
  5.1367 ++	  || !(*insn_data[icode].operand[0].predicate) (target, tmode))
  5.1368 ++	target = gen_reg_rtx (tmode);
  5.1369 ++      pat = GEN_FCN (icode) (target, op0);
  5.1370 ++      if (!pat)
  5.1371 ++	return 0;
  5.1372 ++      emit_insn (pat);
  5.1373 ++      return target;
  5.1374 ++    case AVR32_BUILTIN_MTDR:
  5.1375 ++      icode = CODE_FOR_mtdr;
  5.1376 ++      arg0 = TREE_VALUE (arglist);
  5.1377 ++      arg1 = TREE_VALUE (TREE_CHAIN (arglist));
  5.1378 ++      op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
  5.1379 ++      op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
  5.1380 ++      mode0 = insn_data[icode].operand[0].mode;
  5.1381 ++      mode1 = insn_data[icode].operand[1].mode;
  5.1382 ++
  5.1383 ++      if (!(*insn_data[icode].operand[0].predicate) (op0, mode0))
  5.1384 ++	{
  5.1385 ++	  error ("Parameter 1 to __builtin_mtdr must be a constant number");
  5.1386 ++	  return gen_reg_rtx (mode0);
  5.1387 ++	}
  5.1388 ++      if (!(*insn_data[icode].operand[1].predicate) (op1, mode1))
  5.1389 ++	op1 = copy_to_mode_reg (mode1, op1);
  5.1390 ++      pat = GEN_FCN (icode) (op0, op1);
  5.1391 ++      if (!pat)
  5.1392 ++	return 0;
  5.1393 ++      emit_insn (pat);
  5.1394 ++      return NULL_RTX;
  5.1395 ++    case AVR32_BUILTIN_CACHE:
  5.1396 ++      icode = CODE_FOR_cache;
  5.1397 ++      arg0 = TREE_VALUE (arglist);
  5.1398 ++      arg1 = TREE_VALUE (TREE_CHAIN (arglist));
  5.1399 ++      op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
  5.1400 ++      op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
  5.1401 ++      mode0 = insn_data[icode].operand[0].mode;
  5.1402 ++      mode1 = insn_data[icode].operand[1].mode;
  5.1403 ++
  5.1404 ++      if (!(*insn_data[icode].operand[1].predicate) (op1, mode1))
  5.1405 ++	{
  5.1406 ++	  error ("Parameter 2 to __builtin_cache must be a constant number");
  5.1407 ++	  return gen_reg_rtx (mode1);
  5.1408 ++	}
  5.1409 ++
  5.1410 ++      if (!(*insn_data[icode].operand[0].predicate) (op0, mode0))
  5.1411 ++	op0 = copy_to_mode_reg (mode0, op0);
  5.1412 ++
  5.1413 ++      pat = GEN_FCN (icode) (op0, op1);
  5.1414 ++      if (!pat)
  5.1415 ++	return 0;
  5.1416 ++      emit_insn (pat);
  5.1417 ++      return NULL_RTX;
  5.1418 ++    case AVR32_BUILTIN_SYNC:
  5.1419 ++    case AVR32_BUILTIN_MUSFR:
  5.1420 ++    case AVR32_BUILTIN_SSRF:
  5.1421 ++    case AVR32_BUILTIN_CSRF:
  5.1422 ++      {
  5.1423 ++	const char *fname;
  5.1424 ++	switch (fcode)
  5.1425 ++	  {
  5.1426 ++	  default:
  5.1427 ++	  case AVR32_BUILTIN_SYNC:
  5.1428 ++	    icode = CODE_FOR_sync;
  5.1429 ++	    fname = "sync";
  5.1430 ++	    break;
  5.1431 ++	  case AVR32_BUILTIN_MUSFR:
  5.1432 ++	    icode = CODE_FOR_musfr;
  5.1433 ++	    fname = "musfr";
  5.1434 ++	    break;
  5.1435 ++	  case AVR32_BUILTIN_SSRF:
  5.1436 ++	    icode = CODE_FOR_ssrf;
  5.1437 ++	    fname = "ssrf";
  5.1438 ++	    break;
  5.1439 ++	  case AVR32_BUILTIN_CSRF:
  5.1440 ++	    icode = CODE_FOR_csrf;
  5.1441 ++	    fname = "csrf";
  5.1442 ++	    break;
  5.1443 ++	  }
  5.1444 ++
  5.1445 ++	arg0 = TREE_VALUE (arglist);
  5.1446 ++	op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
  5.1447 ++	mode0 = insn_data[icode].operand[0].mode;
  5.1448 ++
  5.1449 ++	if (!(*insn_data[icode].operand[0].predicate) (op0, mode0))
  5.1450 ++	  {
  5.1451 ++	    if (icode == CODE_FOR_musfr)
  5.1452 ++	      op0 = copy_to_mode_reg (mode0, op0);
  5.1453 ++	    else
  5.1454 ++	      {
  5.1455 ++		error ("Parameter to __builtin_%s is illegal.", fname);
  5.1456 ++		return gen_reg_rtx (mode0);
  5.1457 ++	      }
  5.1458 ++	  }
  5.1459 ++	pat = GEN_FCN (icode) (op0);
  5.1460 ++	if (!pat)
  5.1461 ++	  return 0;
  5.1462 ++	emit_insn (pat);
  5.1463 ++	return NULL_RTX;
  5.1464 ++      }
  5.1465 ++    case AVR32_BUILTIN_TLBR:
  5.1466 ++      icode = CODE_FOR_tlbr;
  5.1467 ++      pat = GEN_FCN (icode) (NULL_RTX);
  5.1468 ++      if (!pat)
  5.1469 ++	return 0;
  5.1470 ++      emit_insn (pat);
  5.1471 ++      return NULL_RTX;
  5.1472 ++    case AVR32_BUILTIN_TLBS:
  5.1473 ++      icode = CODE_FOR_tlbs;
  5.1474 ++      pat = GEN_FCN (icode) (NULL_RTX);
  5.1475 ++      if (!pat)
  5.1476 ++	return 0;
  5.1477 ++      emit_insn (pat);
  5.1478 ++      return NULL_RTX;
  5.1479 ++    case AVR32_BUILTIN_TLBW:
  5.1480 ++      icode = CODE_FOR_tlbw;
  5.1481 ++      pat = GEN_FCN (icode) (NULL_RTX);
  5.1482 ++      if (!pat)
  5.1483 ++	return 0;
  5.1484 ++      emit_insn (pat);
  5.1485 ++      return NULL_RTX;
  5.1486 ++    case AVR32_BUILTIN_BREAKPOINT:
  5.1487 ++      icode = CODE_FOR_breakpoint;
  5.1488 ++      pat = GEN_FCN (icode) (NULL_RTX);
  5.1489 ++      if (!pat)
  5.1490 ++	return 0;
  5.1491 ++      emit_insn (pat);
  5.1492 ++      return NULL_RTX;
  5.1493 ++    case AVR32_BUILTIN_XCHG:
  5.1494 ++      icode = CODE_FOR_sync_lock_test_and_setsi;
  5.1495 ++      arg0 = TREE_VALUE (arglist);
  5.1496 ++      arg1 = TREE_VALUE (TREE_CHAIN (arglist));
  5.1497 ++      op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
  5.1498 ++      op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
  5.1499 ++      tmode = insn_data[icode].operand[0].mode;
  5.1500 ++      mode0 = insn_data[icode].operand[1].mode;
  5.1501 ++      mode1 = insn_data[icode].operand[2].mode;
  5.1502 ++
  5.1503 ++      if (!(*insn_data[icode].operand[2].predicate) (op1, mode1))
  5.1504 ++	{
  5.1505 ++	  op1 = copy_to_mode_reg (mode1, op1);
  5.1506 ++	}
  5.1507 ++
  5.1508 ++      op0 = force_reg (GET_MODE (op0), op0);
  5.1509 ++      op0 = gen_rtx_MEM (GET_MODE (op0), op0);
  5.1510 ++      if (!(*insn_data[icode].operand[1].predicate) (op0, mode0))
  5.1511 ++	{
  5.1512 ++	  error
  5.1513 ++	    ("Parameter 1 to __builtin_xchg must be a pointer to an integer.");
  5.1514 ++	}
  5.1515 ++
  5.1516 ++      if (target == 0
  5.1517 ++	  || GET_MODE (target) != tmode
  5.1518 ++	  || !(*insn_data[icode].operand[0].predicate) (target, tmode))
  5.1519 ++	target = gen_reg_rtx (tmode);
  5.1520 ++      pat = GEN_FCN (icode) (target, op0, op1);
  5.1521 ++      if (!pat)
  5.1522 ++	return 0;
  5.1523 ++      emit_insn (pat);
  5.1524 ++      return target;
  5.1525 ++    case AVR32_BUILTIN_LDXI:
  5.1526 ++      icode = CODE_FOR_ldxi;
  5.1527 ++      arg0 = TREE_VALUE (arglist);
  5.1528 ++      arg1 = TREE_VALUE (TREE_CHAIN (arglist));
  5.1529 ++      arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
  5.1530 ++      op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
  5.1531 ++      op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
  5.1532 ++      op2 = expand_expr (arg2, NULL_RTX, VOIDmode, 0);
  5.1533 ++      tmode = insn_data[icode].operand[0].mode;
  5.1534 ++      mode0 = insn_data[icode].operand[1].mode;
  5.1535 ++      mode1 = insn_data[icode].operand[2].mode;
  5.1536 ++
  5.1537 ++      if (!(*insn_data[icode].operand[1].predicate) (op0, mode0))
  5.1538 ++	{
  5.1539 ++	  op0 = copy_to_mode_reg (mode0, op0);
  5.1540 ++	}
  5.1541 ++
  5.1542 ++      if (!(*insn_data[icode].operand[2].predicate) (op1, mode1))
  5.1543 ++	{
  5.1544 ++	  op1 = copy_to_mode_reg (mode1, op1);
  5.1545 ++	}
  5.1546 ++
  5.1547 ++      if (!(*insn_data[icode].operand[3].predicate) (op2, SImode))
  5.1548 ++	{
  5.1549 ++	  error
  5.1550 ++	    ("Parameter 3 to __builtin_ldxi must be a valid extract shift operand: (0|8|16|24)");
  5.1551 ++	  return gen_reg_rtx (mode0);
  5.1552 ++	}
  5.1553 ++
  5.1554 ++      if (target == 0
  5.1555 ++	  || GET_MODE (target) != tmode
  5.1556 ++	  || !(*insn_data[icode].operand[0].predicate) (target, tmode))
  5.1557 ++	target = gen_reg_rtx (tmode);
  5.1558 ++      pat = GEN_FCN (icode) (target, op0, op1, op2);
  5.1559 ++      if (!pat)
  5.1560 ++	return 0;
  5.1561 ++      emit_insn (pat);
  5.1562 ++      return target;
  5.1563 ++    case AVR32_BUILTIN_BSWAP16:
  5.1564 ++      {
  5.1565 ++	icode = CODE_FOR_bswap_16;
  5.1566 ++	arg0 = TREE_VALUE (arglist);
  5.1567 ++	arg0_mode = TYPE_MODE (TREE_TYPE (arg0));
  5.1568 ++	mode0 = insn_data[icode].operand[1].mode;
  5.1569 ++	if (arg0_mode != mode0)
  5.1570 ++	  arg0 = build1 (NOP_EXPR,
  5.1571 ++			 (*lang_hooks.types.type_for_mode) (mode0, 0), arg0);
  5.1572 ++
  5.1573 ++	op0 = expand_expr (arg0, NULL_RTX, HImode, 0);
  5.1574 ++	tmode = insn_data[icode].operand[0].mode;
  5.1575 ++
  5.1576 ++
  5.1577 ++	if (!(*insn_data[icode].operand[1].predicate) (op0, mode0))
  5.1578 ++	  {
  5.1579 ++            if ( CONST_INT_P (op0) )
  5.1580 ++              {
  5.1581 ++                HOST_WIDE_INT val = ( ((INTVAL (op0)&0x00ff) << 8) |
  5.1582 ++                                      ((INTVAL (op0)&0xff00) >> 8) );
  5.1583 ++                /* Sign extend 16-bit value to host wide int */
  5.1584 ++                val <<= (HOST_BITS_PER_WIDE_INT - 16);
  5.1585 ++                val >>= (HOST_BITS_PER_WIDE_INT - 16);
  5.1586 ++                op0 = GEN_INT(val);
  5.1587 ++                if (target == 0
  5.1588 ++                    || GET_MODE (target) != tmode
  5.1589 ++                    || !(*insn_data[icode].operand[0].predicate) (target, tmode))
  5.1590 ++                  target = gen_reg_rtx (tmode);
  5.1591 ++                emit_move_insn(target, op0);
  5.1592 ++                return target;
  5.1593 ++              }
  5.1594 ++            else
  5.1595 ++              op0 = copy_to_mode_reg (mode0, op0);
  5.1596 ++	  }
  5.1597 ++
  5.1598 ++	if (target == 0
  5.1599 ++	    || GET_MODE (target) != tmode
  5.1600 ++	    || !(*insn_data[icode].operand[0].predicate) (target, tmode))
  5.1601 ++	  {
  5.1602 ++	    target = gen_reg_rtx (tmode);
  5.1603 ++	  }
  5.1604 ++
  5.1605 ++
  5.1606 ++	pat = GEN_FCN (icode) (target, op0);
  5.1607 ++	if (!pat)
  5.1608 ++	  return 0;
  5.1609 ++	emit_insn (pat);
  5.1610 ++
  5.1611 ++	return target;
  5.1612 ++      }
  5.1613 ++    case AVR32_BUILTIN_BSWAP32:
  5.1614 ++      {
  5.1615 ++	icode = CODE_FOR_bswap_32;
  5.1616 ++	arg0 = TREE_VALUE (arglist);
  5.1617 ++	op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
  5.1618 ++	tmode = insn_data[icode].operand[0].mode;
  5.1619 ++	mode0 = insn_data[icode].operand[1].mode;
  5.1620 ++
  5.1621 ++	if (!(*insn_data[icode].operand[1].predicate) (op0, mode0))
  5.1622 ++	  {
  5.1623 ++            if ( CONST_INT_P (op0) )
  5.1624 ++              {
  5.1625 ++                HOST_WIDE_INT val = ( ((INTVAL (op0)&0x000000ff) << 24) |
  5.1626 ++                                      ((INTVAL (op0)&0x0000ff00) << 8) |
  5.1627 ++                                      ((INTVAL (op0)&0x00ff0000) >> 8) |
  5.1628 ++                                      ((INTVAL (op0)&0xff000000) >> 24) );
  5.1629 ++                /* Sign extend 32-bit value to host wide int */
  5.1630 ++                val <<= (HOST_BITS_PER_WIDE_INT - 32);
  5.1631 ++                val >>= (HOST_BITS_PER_WIDE_INT - 32);
  5.1632 ++                op0 = GEN_INT(val);
  5.1633 ++                if (target == 0
  5.1634 ++                    || GET_MODE (target) != tmode
  5.1635 ++                    || !(*insn_data[icode].operand[0].predicate) (target, tmode))
  5.1636 ++                  target = gen_reg_rtx (tmode);
  5.1637 ++                emit_move_insn(target, op0);
  5.1638 ++                return target;
  5.1639 ++              }
  5.1640 ++            else
  5.1641 ++              op0 = copy_to_mode_reg (mode0, op0);
  5.1642 ++	  }
  5.1643 ++
  5.1644 ++	if (target == 0
  5.1645 ++	    || GET_MODE (target) != tmode
  5.1646 ++	    || !(*insn_data[icode].operand[0].predicate) (target, tmode))
  5.1647 ++	  target = gen_reg_rtx (tmode);
  5.1648 ++
  5.1649 ++
  5.1650 ++	pat = GEN_FCN (icode) (target, op0);
  5.1651 ++	if (!pat)
  5.1652 ++	  return 0;
  5.1653 ++	emit_insn (pat);
  5.1654 ++
  5.1655 ++	return target;
  5.1656 ++      }
  5.1657 ++    case AVR32_BUILTIN_MVCR_W:
  5.1658 ++    case AVR32_BUILTIN_MVCR_D:
  5.1659 ++      {
  5.1660 ++	arg0 = TREE_VALUE (arglist);
  5.1661 ++	arg1 = TREE_VALUE (TREE_CHAIN (arglist));
  5.1662 ++	op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
  5.1663 ++	op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
  5.1664 ++
  5.1665 ++	if (fcode == AVR32_BUILTIN_MVCR_W)
  5.1666 ++	  icode = CODE_FOR_mvcrsi;
  5.1667 ++	else
  5.1668 ++	  icode = CODE_FOR_mvcrdi;
  5.1669 ++
  5.1670 ++	tmode = insn_data[icode].operand[0].mode;
  5.1671 ++
  5.1672 ++	if (target == 0
  5.1673 ++	    || GET_MODE (target) != tmode
  5.1674 ++	    || !(*insn_data[icode].operand[0].predicate) (target, tmode))
  5.1675 ++	  target = gen_reg_rtx (tmode);
  5.1676 ++
  5.1677 ++	if (!(*insn_data[icode].operand[1].predicate) (op0, SImode))
  5.1678 ++	  {
  5.1679 ++	    error
  5.1680 ++	      ("Parameter 1 to __builtin_cop is not a valid coprocessor number.");
  5.1681 ++	    error ("Number should be between 0 and 7.");
  5.1682 ++	    return NULL_RTX;
  5.1683 ++	  }
  5.1684 ++
  5.1685 ++	if (!(*insn_data[icode].operand[2].predicate) (op1, SImode))
  5.1686 ++	  {
  5.1687 ++	    error
  5.1688 ++	      ("Parameter 2 to __builtin_cop is not a valid coprocessor register number.");
  5.1689 ++	    error ("Number should be between 0 and 15.");
  5.1690 ++	    return NULL_RTX;
  5.1691 ++	  }
  5.1692 ++
  5.1693 ++	pat = GEN_FCN (icode) (target, op0, op1);
  5.1694 ++	if (!pat)
  5.1695 ++	  return 0;
  5.1696 ++	emit_insn (pat);
  5.1697 ++
  5.1698 ++	return target;
  5.1699 ++      }
  5.1700 ++    case AVR32_BUILTIN_MACSATHH_W:
  5.1701 ++    case AVR32_BUILTIN_MACWH_D:
  5.1702 ++    case AVR32_BUILTIN_MACHH_D:
  5.1703 ++      {
  5.1704 ++	arg0 = TREE_VALUE (arglist);
  5.1705 ++	arg1 = TREE_VALUE (TREE_CHAIN (arglist));
  5.1706 ++	arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
  5.1707 ++	op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
  5.1708 ++	op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
  5.1709 ++	op2 = expand_expr (arg2, NULL_RTX, VOIDmode, 0);
  5.1710 ++
  5.1711 ++	icode = ((fcode == AVR32_BUILTIN_MACSATHH_W) ? CODE_FOR_macsathh_w :
  5.1712 ++		 (fcode == AVR32_BUILTIN_MACWH_D) ? CODE_FOR_macwh_d :
  5.1713 ++		 CODE_FOR_machh_d);
  5.1714 ++
  5.1715 ++	tmode = insn_data[icode].operand[0].mode;
  5.1716 ++	mode0 = insn_data[icode].operand[1].mode;
  5.1717 ++	mode1 = insn_data[icode].operand[2].mode;
  5.1718 ++
  5.1719 ++
  5.1720 ++	if (!target
  5.1721 ++	    || GET_MODE (target) != tmode
  5.1722 ++	    || !(*insn_data[icode].operand[0].predicate) (target, tmode))
  5.1723 ++	  target = gen_reg_rtx (tmode);
  5.1724 ++
  5.1725 ++	if (!(*insn_data[icode].operand[0].predicate) (op0, tmode))
  5.1726 ++	  {
  5.1727 ++	    /* If op0 is already a reg we must cast it to the correct mode. */
  5.1728 ++	    if (REG_P (op0))
  5.1729 ++	      op0 = convert_to_mode (tmode, op0, 1);
  5.1730 ++	    else
  5.1731 ++	      op0 = copy_to_mode_reg (tmode, op0);
  5.1732 ++	  }
  5.1733 ++
  5.1734 ++	if (!(*insn_data[icode].operand[1].predicate) (op1, mode0))
  5.1735 ++	  {
  5.1736 ++	    /* If op1 is already a reg we must cast it to the correct mode. */
  5.1737 ++	    if (REG_P (op1))
  5.1738 ++	      op1 = convert_to_mode (mode0, op1, 1);
  5.1739 ++	    else
  5.1740 ++	      op1 = copy_to_mode_reg (mode0, op1);
  5.1741 ++	  }
  5.1742 ++
  5.1743 ++	if (!(*insn_data[icode].operand[2].predicate) (op2, mode1))
  5.1744 ++	  {
  5.1745 ++	    /* If op1 is already a reg we must cast it to the correct mode. */
  5.1746 ++	    if (REG_P (op2))
  5.1747 ++	      op2 = convert_to_mode (mode1, op2, 1);
  5.1748 ++	    else
  5.1749 ++	      op2 = copy_to_mode_reg (mode1, op2);
  5.1750 ++	  }
  5.1751 ++
  5.1752 ++	emit_move_insn (target, op0);
  5.1753 ++
  5.1754 ++	pat = GEN_FCN (icode) (target, op1, op2);
  5.1755 ++	if (!pat)
  5.1756 ++	  return 0;
  5.1757 ++	emit_insn (pat);
  5.1758 ++	return target;
  5.1759 ++      }
  5.1760 ++    case AVR32_BUILTIN_MVRC_W:
  5.1761 ++    case AVR32_BUILTIN_MVRC_D:
  5.1762 ++      {
  5.1763 ++	arg0 = TREE_VALUE (arglist);
  5.1764 ++	arg1 = TREE_VALUE (TREE_CHAIN (arglist));
  5.1765 ++	arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
  5.1766 ++	op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
  5.1767 ++	op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
  5.1768 ++	op2 = expand_expr (arg2, NULL_RTX, VOIDmode, 0);
  5.1769 ++
  5.1770 ++	if (fcode == AVR32_BUILTIN_MVRC_W)
  5.1771 ++	  icode = CODE_FOR_mvrcsi;
  5.1772 ++	else
  5.1773 ++	  icode = CODE_FOR_mvrcdi;
  5.1774 ++
  5.1775 ++	if (!(*insn_data[icode].operand[0].predicate) (op0, SImode))
  5.1776 ++	  {
  5.1777 ++	    error ("Parameter 1 is not a valid coprocessor number.");
  5.1778 ++	    error ("Number should be between 0 and 7.");
  5.1779 ++	    return NULL_RTX;
  5.1780 ++	  }
  5.1781 ++
  5.1782 ++	if (!(*insn_data[icode].operand[1].predicate) (op1, SImode))
  5.1783 ++	  {
  5.1784 ++	    error ("Parameter 2 is not a valid coprocessor register number.");
  5.1785 ++	    error ("Number should be between 0 and 15.");
  5.1786 ++	    return NULL_RTX;
  5.1787 ++	  }
  5.1788 ++
  5.1789 ++	if (GET_CODE (op2) == CONST_INT
  5.1790 ++	    || GET_CODE (op2) == CONST
  5.1791 ++	    || GET_CODE (op2) == SYMBOL_REF || GET_CODE (op2) == LABEL_REF)
  5.1792 ++	  {
  5.1793 ++	    op2 = force_const_mem (insn_data[icode].operand[2].mode, op2);
  5.1794 ++	  }
  5.1795 ++
  5.1796 ++	if (!(*insn_data[icode].operand[2].predicate) (op2, GET_MODE (op2)))
  5.1797 ++	  op2 = copy_to_mode_reg (insn_data[icode].operand[2].mode, op2);
  5.1798 ++
  5.1799 ++
  5.1800 ++	pat = GEN_FCN (icode) (op0, op1, op2);
  5.1801 ++	if (!pat)
  5.1802 ++	  return 0;
  5.1803 ++	emit_insn (pat);
  5.1804 ++
  5.1805 ++	return NULL_RTX;
  5.1806 ++      }
  5.1807 ++    case AVR32_BUILTIN_COP:
  5.1808 ++      {
  5.1809 ++	rtx op3, op4;
  5.1810 ++	tree arg3, arg4;
  5.1811 ++	icode = CODE_FOR_cop;
  5.1812 ++	arg0 = TREE_VALUE (arglist);
  5.1813 ++	arg1 = TREE_VALUE (TREE_CHAIN (arglist));
  5.1814 ++	arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
  5.1815 ++	arg3 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist))));
  5.1816 ++	arg4 =
  5.1817 ++	  TREE_VALUE (TREE_CHAIN
  5.1818 ++		      (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist)))));
  5.1819 ++	op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
  5.1820 ++	op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
  5.1821 ++	op2 = expand_expr (arg2, NULL_RTX, VOIDmode, 0);
  5.1822 ++	op3 = expand_expr (arg3, NULL_RTX, VOIDmode, 0);
  5.1823 ++	op4 = expand_expr (arg4, NULL_RTX, VOIDmode, 0);
  5.1824 ++
  5.1825 ++	if (!(*insn_data[icode].operand[0].predicate) (op0, SImode))
  5.1826 ++	  {
  5.1827 ++	    error
  5.1828 ++	      ("Parameter 1 to __builtin_cop is not a valid coprocessor number.");
  5.1829 ++	    error ("Number should be between 0 and 7.");
  5.1830 ++	    return NULL_RTX;
  5.1831 ++	  }
  5.1832 ++
  5.1833 ++	if (!(*insn_data[icode].operand[1].predicate) (op1, SImode))
  5.1834 ++	  {
  5.1835 ++	    error
  5.1836 ++	      ("Parameter 2 to __builtin_cop is not a valid coprocessor register number.");
  5.1837 ++	    error ("Number should be between 0 and 15.");
  5.1838 ++	    return NULL_RTX;
  5.1839 ++	  }
  5.1840 ++
  5.1841 ++	if (!(*insn_data[icode].operand[2].predicate) (op2, SImode))
  5.1842 ++	  {
  5.1843 ++	    error
  5.1844 ++	      ("Parameter 3 to __builtin_cop is not a valid coprocessor register number.");
  5.1845 ++	    error ("Number should be between 0 and 15.");
  5.1846 ++	    return NULL_RTX;
  5.1847 ++	  }
  5.1848 ++
  5.1849 ++	if (!(*insn_data[icode].operand[3].predicate) (op3, SImode))
  5.1850 ++	  {
  5.1851 ++	    error
  5.1852 ++	      ("Parameter 4 to __builtin_cop is not a valid coprocessor register number.");
  5.1853 ++	    error ("Number should be between 0 and 15.");
  5.1854 ++	    return NULL_RTX;
  5.1855 ++	  }
  5.1856 ++
  5.1857 ++	if (!(*insn_data[icode].operand[4].predicate) (op4, SImode))
  5.1858 ++	  {
  5.1859 ++	    error
  5.1860 ++	      ("Parameter 5 to __builtin_cop is not a valid coprocessor operation.");
  5.1861 ++	    error ("Number should be between 0 and 127.");
  5.1862 ++	    return NULL_RTX;
  5.1863 ++	  }
  5.1864 ++
  5.1865 ++	pat = GEN_FCN (icode) (op0, op1, op2, op3, op4);
  5.1866 ++	if (!pat)
  5.1867 ++	  return 0;
  5.1868 ++	emit_insn (pat);
  5.1869 ++
  5.1870 ++	return target;
  5.1871 ++      }
  5.1872 ++    case AVR32_BUILTIN_MEMS:
  5.1873 ++    case AVR32_BUILTIN_MEMC:
  5.1874 ++    case AVR32_BUILTIN_MEMT:
  5.1875 ++      {
  5.1876 ++        if (!TARGET_RMW)
  5.1877 ++          error ("Trying to use __builtin_mem(s/c/t) when target does not support RMW insns.");
  5.1878 ++
  5.1879 ++        switch (fcode) {
  5.1880 ++        case AVR32_BUILTIN_MEMS:
  5.1881 ++          icode = CODE_FOR_iorsi3;
  5.1882 ++          break;
  5.1883 ++        case AVR32_BUILTIN_MEMC:
  5.1884 ++          icode = CODE_FOR_andsi3;
  5.1885 ++          break;
  5.1886 ++        case AVR32_BUILTIN_MEMT:
  5.1887 ++          icode = CODE_FOR_xorsi3;
  5.1888 ++          break;
  5.1889 ++        }
  5.1890 ++
  5.1891 ++        arg0 = TREE_VALUE (arglist);
  5.1892 ++        arg1 = TREE_VALUE (TREE_CHAIN (arglist));
  5.1893 ++        op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
  5.1894 ++        if ( GET_CODE (op0) == SYMBOL_REF )
  5.1895 ++          // This symbol must be RMW addressable
  5.1896 ++          SYMBOL_REF_FLAGS (op0) |= (1 << SYMBOL_FLAG_RMW_ADDR_SHIFT);
  5.1897 ++        op0 = gen_rtx_MEM(SImode, op0);
  5.1898 ++        op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
  5.1899 ++        mode0 = insn_data[icode].operand[1].mode;
  5.1900 ++
  5.1901 ++
  5.1902 ++        if (!(*insn_data[icode].operand[1].predicate) (op0, mode0))
  5.1903 ++          {
  5.1904 ++            error ("Parameter 1 to __builtin_mem(s/c/t) must be a Ks15<<2 address or a rmw addressable symbol.");
  5.1905 ++          }
  5.1906 ++
  5.1907 ++        if ( !CONST_INT_P (op1)
  5.1908 ++             || INTVAL (op1) > 31
  5.1909 ++             || INTVAL (op1) < 0 )
  5.1910 ++          error ("Parameter 2 to __builtin_mem(s/c/t) must be a constant between 0 and 31.");
  5.1911 ++
  5.1912 ++        if ( fcode == AVR32_BUILTIN_MEMC )
  5.1913 ++          op1 = GEN_INT((~(1 << INTVAL(op1)))&0xffffffff);
  5.1914 ++        else
  5.1915 ++          op1 = GEN_INT((1 << INTVAL(op1))&0xffffffff);
  5.1916 ++        pat = GEN_FCN (icode) (op0, op0, op1);
  5.1917 ++        if (!pat)
  5.1918 ++          return 0;
  5.1919 ++        emit_insn (pat);
  5.1920 ++        return op0;
  5.1921 ++      }
  5.1922 ++
  5.1923 ++    }
  5.1924 ++
  5.1925 ++  for (i = 0, d = bdesc_2arg; i < ARRAY_SIZE (bdesc_2arg); i++, d++)
  5.1926 ++    if (d->code == fcode)
  5.1927 ++      return avr32_expand_binop_builtin (d->icode, arglist, target);
  5.1928 ++
  5.1929 ++
  5.1930 ++  /* @@@ Should really do something sensible here.  */
  5.1931 ++  return NULL_RTX;
  5.1932 ++}
  5.1933 ++
  5.1934 ++
  5.1935 ++/* Handle an "interrupt" or "isr" attribute;
  5.1936 ++   arguments as in struct attribute_spec.handler.  */
  5.1937 ++
  5.1938 ++static tree
  5.1939 ++avr32_handle_isr_attribute (tree * node, tree name, tree args,
  5.1940 ++			    int flags, bool * no_add_attrs)
  5.1941 ++{
  5.1942 ++  if (DECL_P (*node))
  5.1943 ++    {
  5.1944 ++      if (TREE_CODE (*node) != FUNCTION_DECL)
  5.1945 ++	{
  5.1946 ++	  warning (OPT_Wattributes,"`%s' attribute only applies to functions",
  5.1947 ++		   IDENTIFIER_POINTER (name));
  5.1948 ++	  *no_add_attrs = true;
  5.1949 ++	}
  5.1950 ++      /* FIXME: the argument if any is checked for type attributes; should it
  5.1951 ++         be checked for decl ones? */
  5.1952 ++    }
  5.1953 ++  else
  5.1954 ++    {
  5.1955 ++      if (TREE_CODE (*node) == FUNCTION_TYPE
  5.1956 ++	  || TREE_CODE (*node) == METHOD_TYPE)
  5.1957 ++	{
  5.1958 ++	  if (avr32_isr_value (args) == AVR32_FT_UNKNOWN)
  5.1959 ++	    {
  5.1960 ++	      warning (OPT_Wattributes,"`%s' attribute ignored", IDENTIFIER_POINTER (name));
  5.1961 ++	      *no_add_attrs = true;
  5.1962 ++	    }
  5.1963 ++	}
  5.1964 ++      else if (TREE_CODE (*node) == POINTER_TYPE
  5.1965 ++	       && (TREE_CODE (TREE_TYPE (*node)) == FUNCTION_TYPE
  5.1966 ++		   || TREE_CODE (TREE_TYPE (*node)) == METHOD_TYPE)
  5.1967 ++	       && avr32_isr_value (args) != AVR32_FT_UNKNOWN)
  5.1968 ++	{
  5.1969 ++	  *node = build_variant_type_copy (*node);
  5.1970 ++	  TREE_TYPE (*node) = build_type_attribute_variant
  5.1971 ++	    (TREE_TYPE (*node),
  5.1972 ++	     tree_cons (name, args, TYPE_ATTRIBUTES (TREE_TYPE (*node))));
  5.1973 ++	  *no_add_attrs = true;
  5.1974 ++	}
  5.1975 ++      else
  5.1976 ++	{
  5.1977 ++	  /* Possibly pass this attribute on from the type to a decl.  */
  5.1978 ++	  if (flags & ((int) ATTR_FLAG_DECL_NEXT
  5.1979 ++		       | (int) ATTR_FLAG_FUNCTION_NEXT
  5.1980 ++		       | (int) ATTR_FLAG_ARRAY_NEXT))
  5.1981 ++	    {
  5.1982 ++	      *no_add_attrs = true;
  5.1983 ++	      return tree_cons (name, args, NULL_TREE);
  5.1984 ++	    }
  5.1985 ++	  else
  5.1986 ++	    {
  5.1987 ++	      warning (OPT_Wattributes,"`%s' attribute ignored", IDENTIFIER_POINTER (name));
  5.1988 ++	    }
  5.1989 ++	}
  5.1990 ++    }
  5.1991 ++
  5.1992 ++  return NULL_TREE;
  5.1993 ++}
  5.1994 ++
  5.1995 ++/* Handle an attribute requiring a FUNCTION_DECL;
  5.1996 ++   arguments as in struct attribute_spec.handler.  */
  5.1997 ++static tree
  5.1998 ++avr32_handle_fndecl_attribute (tree * node, tree name,
  5.1999 ++			       tree args ATTRIBUTE_UNUSED,
  5.2000 ++			       int flags ATTRIBUTE_UNUSED,
  5.2001 ++			       bool * no_add_attrs)
  5.2002 ++{
  5.2003 ++  if (TREE_CODE (*node) != FUNCTION_DECL)
  5.2004 ++    {
  5.2005 ++      warning (OPT_Wattributes,"%qs attribute only applies to functions",
  5.2006 ++	       IDENTIFIER_POINTER (name));
  5.2007 ++      *no_add_attrs = true;
  5.2008 ++    }
  5.2009 ++
  5.2010 ++  return NULL_TREE;
  5.2011 ++}
  5.2012 ++
  5.2013 ++
  5.2014 ++/* Handle an acall attribute;
  5.2015 ++   arguments as in struct attribute_spec.handler.  */
  5.2016 ++
  5.2017 ++static tree
  5.2018 ++avr32_handle_acall_attribute (tree * node, tree name,
  5.2019 ++			      tree args ATTRIBUTE_UNUSED,
  5.2020 ++			      int flags ATTRIBUTE_UNUSED, bool * no_add_attrs)
  5.2021 ++{
  5.2022 ++  if (TREE_CODE (*node) == FUNCTION_TYPE || TREE_CODE (*node) == METHOD_TYPE)
  5.2023 ++    {
  5.2024 ++      warning (OPT_Wattributes,"`%s' attribute not yet supported...",
  5.2025 ++	       IDENTIFIER_POINTER (name));
  5.2026 ++      *no_add_attrs = true;
  5.2027 ++      return NULL_TREE;
  5.2028 ++    }
  5.2029 ++
  5.2030 ++  warning (OPT_Wattributes,"`%s' attribute only applies to functions",
  5.2031 ++	   IDENTIFIER_POINTER (name));
  5.2032 ++  *no_add_attrs = true;
  5.2033 ++  return NULL_TREE;
  5.2034 ++}
  5.2035 ++
  5.2036 ++
  5.2037 ++/* Return 0 if the attributes for two types are incompatible, 1 if they
  5.2038 ++   are compatible, and 2 if they are nearly compatible (which causes a
  5.2039 ++   warning to be generated).  */
  5.2040 ++
  5.2041 ++static int
  5.2042 ++avr32_comp_type_attributes (tree type1, tree type2)
  5.2043 ++{
  5.2044 ++  int acall1, acall2, isr1, isr2, naked1, naked2;
  5.2045 ++
  5.2046 ++  /* Check for mismatch of non-default calling convention.  */
  5.2047 ++  if (TREE_CODE (type1) != FUNCTION_TYPE)
  5.2048 ++    return 1;
  5.2049 ++
  5.2050 ++  /* Check for mismatched call attributes.  */
  5.2051 ++  acall1 = lookup_attribute ("acall", TYPE_ATTRIBUTES (type1)) != NULL;
  5.2052 ++  acall2 = lookup_attribute ("acall", TYPE_ATTRIBUTES (type2)) != NULL;
  5.2053 ++  naked1 = lookup_attribute ("naked", TYPE_ATTRIBUTES (type1)) != NULL;
  5.2054 ++  naked2 = lookup_attribute ("naked", TYPE_ATTRIBUTES (type2)) != NULL;
  5.2055 ++  isr1 = lookup_attribute ("isr", TYPE_ATTRIBUTES (type1)) != NULL;
  5.2056 ++  if (!isr1)
  5.2057 ++    isr1 = lookup_attribute ("interrupt", TYPE_ATTRIBUTES (type1)) != NULL;
  5.2058 ++
  5.2059 ++  isr2 = lookup_attribute ("isr", TYPE_ATTRIBUTES (type2)) != NULL;
  5.2060 ++  if (!isr2)
  5.2061 ++    isr2 = lookup_attribute ("interrupt", TYPE_ATTRIBUTES (type2)) != NULL;
  5.2062 ++
  5.2063 ++  if ((acall1 && isr2)
  5.2064 ++      || (acall2 && isr1) || (naked1 && isr2) || (naked2 && isr1))
  5.2065 ++    return 0;
  5.2066 ++
  5.2067 ++  return 1;
  5.2068 ++}
  5.2069 ++
  5.2070 ++
  5.2071 ++/* Computes the type of the current function.  */
  5.2072 ++
  5.2073 ++static unsigned long
  5.2074 ++avr32_compute_func_type (void)
  5.2075 ++{
  5.2076 ++  unsigned long type = AVR32_FT_UNKNOWN;
  5.2077 ++  tree a;
  5.2078 ++  tree attr;
  5.2079 ++
  5.2080 ++  if (TREE_CODE (current_function_decl) != FUNCTION_DECL)
  5.2081 ++    abort ();
  5.2082 ++
  5.2083 ++  /* Decide if the current function is volatile.  Such functions never
  5.2084 ++     return, and many memory cycles can be saved by not storing register
  5.2085 ++     values that will never be needed again.  This optimization was added to
  5.2086 ++     speed up context switching in a kernel application.  */
  5.2087 ++  if (optimize > 0
  5.2088 ++      && TREE_NOTHROW (current_function_decl)
  5.2089 ++      && TREE_THIS_VOLATILE (current_function_decl))
  5.2090 ++    type |= AVR32_FT_VOLATILE;
  5.2091 ++
  5.2092 ++  if (cfun->static_chain_decl != NULL)
  5.2093 ++    type |= AVR32_FT_NESTED;
  5.2094 ++
  5.2095 ++  attr = DECL_ATTRIBUTES (current_function_decl);
  5.2096 ++
  5.2097 ++  a = lookup_attribute ("isr", attr);
  5.2098 ++  if (a == NULL_TREE)
  5.2099 ++    a = lookup_attribute ("interrupt", attr);
  5.2100 ++
  5.2101 ++  if (a == NULL_TREE)
  5.2102 ++    type |= AVR32_FT_NORMAL;
  5.2103 ++  else
  5.2104 ++    type |= avr32_isr_value (TREE_VALUE (a));
  5.2105 ++
  5.2106 ++
  5.2107 ++  a = lookup_attribute ("acall", attr);
  5.2108 ++  if (a != NULL_TREE)
  5.2109 ++    type |= AVR32_FT_ACALL;
  5.2110 ++
  5.2111 ++  a = lookup_attribute ("naked", attr);
  5.2112 ++  if (a != NULL_TREE)
  5.2113 ++    type |= AVR32_FT_NAKED;
  5.2114 ++
  5.2115 ++  return type;
  5.2116 ++}
  5.2117 ++
  5.2118 ++/* Returns the type of the current function.  */
  5.2119 ++
  5.2120 ++static unsigned long
  5.2121 ++avr32_current_func_type (void)
  5.2122 ++{
  5.2123 ++  if (AVR32_FUNC_TYPE (cfun->machine->func_type) == AVR32_FT_UNKNOWN)
  5.2124 ++    cfun->machine->func_type = avr32_compute_func_type ();
  5.2125 ++
  5.2126 ++  return cfun->machine->func_type;
  5.2127 ++}
  5.2128 ++
  5.2129 ++/*
  5.2130 ++   This target hook should return true if we should not pass type solely
  5.2131 ++   in registers. The file expr.h defines a definition that is usually appropriate,
  5.2132 ++   refer to expr.h for additional documentation.
  5.2133 ++*/
  5.2134 ++bool
  5.2135 ++avr32_must_pass_in_stack (enum machine_mode mode ATTRIBUTE_UNUSED, tree type)
  5.2136 ++{
  5.2137 ++  if (type && AGGREGATE_TYPE_P (type)
  5.2138 ++      /* If the alignment is less than the size then pass in the struct on
  5.2139 ++         the stack. */
  5.2140 ++      && ((unsigned int) TYPE_ALIGN_UNIT (type) <
  5.2141 ++	  (unsigned int) int_size_in_bytes (type))
  5.2142 ++      /* If we support unaligned word accesses then structs of size 4 and 8
  5.2143 ++         can have any alignment and still be passed in registers. */
  5.2144 ++      && !(TARGET_UNALIGNED_WORD
  5.2145 ++	   && (int_size_in_bytes (type) == 4
  5.2146 ++	       || int_size_in_bytes (type) == 8))
  5.2147 ++      /* Double word structs need only a word alignment. */
  5.2148 ++      && !(int_size_in_bytes (type) == 8 && TYPE_ALIGN_UNIT (type) >= 4))
  5.2149 ++    return true;
  5.2150 ++
  5.2151 ++  if (type && AGGREGATE_TYPE_P (type)
  5.2152 ++      /* Structs of size 3,5,6,7 are always passed in registers. */
  5.2153 ++      && (int_size_in_bytes (type) == 3
  5.2154 ++	  || int_size_in_bytes (type) == 5
  5.2155 ++	  || int_size_in_bytes (type) == 6 || int_size_in_bytes (type) == 7))
  5.2156 ++    return true;
  5.2157 ++
  5.2158 ++
  5.2159 ++  return (type && TREE_ADDRESSABLE (type));
  5.2160 ++}
  5.2161 ++
  5.2162 ++
  5.2163 ++bool
  5.2164 ++avr32_strict_argument_naming (CUMULATIVE_ARGS * ca ATTRIBUTE_UNUSED)
  5.2165 ++{
  5.2166 ++  return true;
  5.2167 ++}
  5.2168 ++
  5.2169 ++/*
  5.2170 ++   This target hook should return true if an argument at the position indicated
  5.2171 ++   by cum should be passed by reference. This predicate is queried after target
  5.2172 ++   independent reasons for being passed by reference, such as TREE_ADDRESSABLE (type).
  5.2173 ++
  5.2174 ++   If the hook returns true, a copy of that argument is made in memory and a
  5.2175 ++   pointer to the argument is passed instead of the argument itself. The pointer
  5.2176 ++   is passed in whatever way is appropriate for passing a pointer to that type.
  5.2177 ++*/
  5.2178 ++bool
  5.2179 ++avr32_pass_by_reference (CUMULATIVE_ARGS * cum ATTRIBUTE_UNUSED,
  5.2180 ++			 enum machine_mode mode ATTRIBUTE_UNUSED,
  5.2181 ++			 tree type, bool named ATTRIBUTE_UNUSED)
  5.2182 ++{
  5.2183 ++  return (type && (TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST));
  5.2184 ++}
  5.2185 ++
  5.2186 ++static int
  5.2187 ++avr32_arg_partial_bytes (CUMULATIVE_ARGS * pcum ATTRIBUTE_UNUSED,
  5.2188 ++			 enum machine_mode mode ATTRIBUTE_UNUSED,
  5.2189 ++			 tree type ATTRIBUTE_UNUSED,
  5.2190 ++			 bool named ATTRIBUTE_UNUSED)
  5.2191 ++{
  5.2192 ++  return 0;
  5.2193 ++}
  5.2194 ++
  5.2195 ++
  5.2196 ++struct gcc_target targetm = TARGET_INITIALIZER;
  5.2197 ++
  5.2198 ++/*
  5.2199 ++  Table used to convert from register number in the assembler instructions and
  5.2200 ++  the register numbers used in gcc.
  5.2201 ++*/
  5.2202 ++const int avr32_function_arg_reglist[] = {
  5.2203 ++  INTERNAL_REGNUM (12),
  5.2204 ++  INTERNAL_REGNUM (11),
  5.2205 ++  INTERNAL_REGNUM (10),
  5.2206 ++  INTERNAL_REGNUM (9),
  5.2207 ++  INTERNAL_REGNUM (8)
  5.2208 ++};
  5.2209 ++
  5.2210 ++rtx avr32_compare_op0 = NULL_RTX;
  5.2211 ++rtx avr32_compare_op1 = NULL_RTX;
  5.2212 ++rtx avr32_compare_operator = NULL_RTX;
  5.2213 ++rtx avr32_acc_cache = NULL_RTX;
  5.2214 ++
  5.2215 ++/*
  5.2216 ++  Returns nonzero if it is allowed to store a value of mode mode in hard
  5.2217 ++  register number regno.
  5.2218 ++*/
  5.2219 ++int
  5.2220 ++avr32_hard_regno_mode_ok (int regnr, enum machine_mode mode)
  5.2221 ++{
  5.2222 ++  /* We allow only float modes in the fp-registers */
  5.2223 ++  if (regnr >= FIRST_FP_REGNUM
  5.2224 ++      && regnr <= LAST_FP_REGNUM && GET_MODE_CLASS (mode) != MODE_FLOAT)
  5.2225 ++    {
  5.2226 ++      return 0;
  5.2227 ++    }
  5.2228 ++
  5.2229 ++  switch (mode)
  5.2230 ++    {
  5.2231 ++    case DImode:		/* long long */
  5.2232 ++    case DFmode:		/* double */
  5.2233 ++    case SCmode:		/* __complex__ float */
  5.2234 ++    case CSImode:		/* __complex__ int */
  5.2235 ++      if (regnr < 4)
  5.2236 ++	{			/* long long int not supported in r12, sp, lr
  5.2237 ++				   or pc. */
  5.2238 ++	  return 0;
  5.2239 ++	}
  5.2240 ++      else
  5.2241 ++	{
  5.2242 ++	  if (regnr % 2)	/* long long int has to be refered in even
  5.2243 ++				   registers. */
  5.2244 ++	    return 0;
  5.2245 ++	  else
  5.2246 ++	    return 1;
  5.2247 ++	}
  5.2248 ++    case CDImode:		/* __complex__ long long */
  5.2249 ++    case DCmode:		/* __complex__ double */
  5.2250 ++    case TImode:		/* 16 bytes */
  5.2251 ++      if (regnr < 7)
  5.2252 ++	return 0;
  5.2253 ++      else if (regnr % 2)
  5.2254 ++	return 0;
  5.2255 ++      else
  5.2256 ++	return 1;
  5.2257 ++    default:
  5.2258 ++      return 1;
  5.2259 ++    }
  5.2260 ++}
  5.2261 ++
  5.2262 ++
  5.2263 ++int
  5.2264 ++avr32_rnd_operands (rtx add, rtx shift)
  5.2265 ++{
  5.2266 ++  if (GET_CODE (shift) == CONST_INT &&
  5.2267 ++      GET_CODE (add) == CONST_INT && INTVAL (shift) > 0)
  5.2268 ++    {
  5.2269 ++      if ((1 << (INTVAL (shift) - 1)) == INTVAL (add))
  5.2270 ++	return TRUE;
  5.2271 ++    }
  5.2272 ++
  5.2273 ++  return FALSE;
  5.2274 ++}
  5.2275 ++
  5.2276 ++
  5.2277 ++
  5.2278 ++int
  5.2279 ++avr32_const_ok_for_constraint_p (HOST_WIDE_INT value, char c, const char *str)
  5.2280 ++{
  5.2281 ++  switch (c)
  5.2282 ++    {
  5.2283 ++    case 'K':
  5.2284 ++    case 'I':
  5.2285 ++      {
  5.2286 ++	HOST_WIDE_INT min_value = 0, max_value = 0;
  5.2287 ++	char size_str[3];
  5.2288 ++	int const_size;
  5.2289 ++
  5.2290 ++	size_str[0] = str[2];
  5.2291 ++	size_str[1] = str[3];
  5.2292 ++	size_str[2] = '\0';
  5.2293 ++	const_size = atoi (size_str);
  5.2294 ++
  5.2295 ++	if (toupper (str[1]) == 'U')
  5.2296 ++	  {
  5.2297 ++	    min_value = 0;
  5.2298 ++	    max_value = (1 << const_size) - 1;
  5.2299 ++	  }
  5.2300 ++	else if (toupper (str[1]) == 'S')
  5.2301 ++	  {
  5.2302 ++	    min_value = -(1 << (const_size - 1));
  5.2303 ++	    max_value = (1 << (const_size - 1)) - 1;
  5.2304 ++	  }
  5.2305 ++
  5.2306 ++	if (c == 'I')
  5.2307 ++	  {
  5.2308 ++	    value = -value;
  5.2309 ++	  }
  5.2310 ++
  5.2311 ++	if (value >= min_value && value <= max_value)
  5.2312 ++	  {
  5.2313 ++	    return 1;
  5.2314 ++	  }
  5.2315 ++	break;
  5.2316 ++      }
  5.2317 ++    case 'M':
  5.2318 ++      return avr32_mask_upper_bits_operand (GEN_INT (value), VOIDmode);
  5.2319 ++    case 'J':
  5.2320 ++      return avr32_hi16_immediate_operand (GEN_INT (value), VOIDmode);
  5.2321 ++    case 'O':
  5.2322 ++      return one_bit_set_operand (GEN_INT (value), VOIDmode);
  5.2323 ++    case 'N':
  5.2324 ++      return one_bit_cleared_operand (GEN_INT (value), VOIDmode);
  5.2325 ++    case 'L':
  5.2326 ++      /* The lower 16-bits are set. */
  5.2327 ++      return ((value & 0xffff) == 0xffff) ;
  5.2328 ++    }
  5.2329 ++
  5.2330 ++  return 0;
  5.2331 ++}
  5.2332 ++
  5.2333 ++
  5.2334 ++/*Compute mask of which floating-point registers needs saving upon
  5.2335 ++  entry to this function*/
  5.2336 ++static unsigned long
  5.2337 ++avr32_compute_save_fp_reg_mask (void)
  5.2338 ++{
  5.2339 ++  unsigned long func_type = avr32_current_func_type ();
  5.2340 ++  unsigned int save_reg_mask = 0;
  5.2341 ++  unsigned int reg;
  5.2342 ++  unsigned int max_reg = 7;
  5.2343 ++  int save_all_call_used_regs = FALSE;
  5.2344 ++
  5.2345 ++  /* This only applies for hardware floating-point implementation. */
  5.2346 ++  if (!TARGET_HARD_FLOAT)
  5.2347 ++    return 0;
  5.2348 ++
  5.2349 ++  if (IS_INTERRUPT (func_type))
  5.2350 ++    {
  5.2351 ++
  5.2352 ++      /* Interrupt functions must not corrupt any registers, even call
  5.2353 ++         clobbered ones.  If this is a leaf function we can just examine the
  5.2354 ++         registers used by the RTL, but otherwise we have to assume that
  5.2355 ++         whatever function is called might clobber anything, and so we have
  5.2356 ++         to save all the call-clobbered registers as well.  */
  5.2357 ++      max_reg = 13;
  5.2358 ++      save_all_call_used_regs = !current_function_is_leaf;
  5.2359 ++    }
  5.2360 ++
  5.2361 ++  /* All used registers used must be saved */
  5.2362 ++  for (reg = 0; reg <= max_reg; reg++)
  5.2363 ++    if (regs_ever_live[INTERNAL_FP_REGNUM (reg)]
  5.2364 ++	|| (save_all_call_used_regs
  5.2365 ++	    && call_used_regs[INTERNAL_FP_REGNUM (reg)]))
  5.2366 ++      save_reg_mask |= (1 << reg);
  5.2367 ++
  5.2368 ++  return save_reg_mask;
  5.2369 ++}
  5.2370 ++
  5.2371 ++/*Compute mask of registers which needs saving upon function entry */
  5.2372 ++static unsigned long
  5.2373 ++avr32_compute_save_reg_mask (int push)
  5.2374 ++{
  5.2375 ++  unsigned long func_type;
  5.2376 ++  unsigned int save_reg_mask = 0;
  5.2377 ++  unsigned int reg;
  5.2378 ++
  5.2379 ++  func_type = avr32_current_func_type ();
  5.2380 ++
  5.2381 ++  if (IS_INTERRUPT (func_type))
  5.2382 ++    {
  5.2383 ++      unsigned int max_reg = 12;
  5.2384 ++
  5.2385 ++
  5.2386 ++      /* Get the banking scheme for the interrupt */
  5.2387 ++      switch (func_type)
  5.2388 ++	{
  5.2389 ++	case AVR32_FT_ISR_FULL:
  5.2390 ++	  max_reg = 0;
  5.2391 ++	  break;
  5.2392 ++	case AVR32_FT_ISR_HALF:
  5.2393 ++	  max_reg = 7;
  5.2394 ++	  break;
  5.2395 ++	case AVR32_FT_ISR_NONE:
  5.2396 ++	  max_reg = 12;
  5.2397 ++	  break;
  5.2398 ++	}
  5.2399 ++
  5.2400 ++      /* Interrupt functions must not corrupt any registers, even call
  5.2401 ++         clobbered ones.  If this is a leaf function we can just examine the
  5.2402 ++         registers used by the RTL, but otherwise we have to assume that
  5.2403 ++         whatever function is called might clobber anything, and so we have
  5.2404 ++         to save all the call-clobbered registers as well.  */
  5.2405 ++
  5.2406 ++      /* Need not push the registers r8-r12 for AVR32A architectures, as this
  5.2407 ++         is automatially done in hardware. We also do not have any shadow
  5.2408 ++         registers. */
  5.2409 ++      if (TARGET_UARCH_AVR32A)
  5.2410 ++	{
  5.2411 ++	  max_reg = 7;
  5.2412 ++	  func_type = AVR32_FT_ISR_NONE;
  5.2413 ++	}
  5.2414 ++
  5.2415 ++      /* All registers which are used and is not shadowed must be saved */
  5.2416 ++      for (reg = 0; reg <= max_reg; reg++)
  5.2417 ++	if (regs_ever_live[INTERNAL_REGNUM (reg)]
  5.2418 ++	    || (!current_function_is_leaf
  5.2419 ++		&& call_used_regs[INTERNAL_REGNUM (reg)]))
  5.2420 ++	  save_reg_mask |= (1 << reg);
  5.2421 ++
  5.2422 ++      /* Check LR */
  5.2423 ++      if ((regs_ever_live[LR_REGNUM]
  5.2424 ++	   || !current_function_is_leaf || frame_pointer_needed)
  5.2425 ++	  /* Only non-shadowed register models */
  5.2426 ++	  && (func_type == AVR32_FT_ISR_NONE))
  5.2427 ++	save_reg_mask |= (1 << ASM_REGNUM (LR_REGNUM));
  5.2428 ++
  5.2429 ++      /* Make sure that the GOT register is pushed. */
  5.2430 ++      if (max_reg >= ASM_REGNUM (PIC_OFFSET_TABLE_REGNUM)
  5.2431 ++	  && current_function_uses_pic_offset_table)
  5.2432 ++	save_reg_mask |= (1 << ASM_REGNUM (PIC_OFFSET_TABLE_REGNUM));
  5.2433 ++
  5.2434 ++    }
  5.2435 ++  else
  5.2436 ++    {
  5.2437 ++      int use_pushm = optimize_size;
  5.2438 ++
  5.2439 ++      /* In the normal case we only need to save those registers which are
  5.2440 ++         call saved and which are used by this function.  */
  5.2441 ++      for (reg = 0; reg <= 7; reg++)
  5.2442 ++	if (regs_ever_live[INTERNAL_REGNUM (reg)]
  5.2443 ++	    && !call_used_regs[INTERNAL_REGNUM (reg)])
  5.2444 ++	  save_reg_mask |= (1 << reg);
  5.2445 ++
  5.2446 ++      /* Make sure that the GOT register is pushed. */
  5.2447 ++      if (current_function_uses_pic_offset_table)
  5.2448 ++	save_reg_mask |= (1 << ASM_REGNUM (PIC_OFFSET_TABLE_REGNUM));
  5.2449 ++
  5.2450 ++
  5.2451 ++      /* If we optimize for size and do not have anonymous arguments: use
  5.2452 ++         popm/pushm always */
  5.2453 ++      if (use_pushm)
  5.2454 ++	{
  5.2455 ++	  if ((save_reg_mask & (1 << 0))
  5.2456 ++	      || (save_reg_mask & (1 << 1))
  5.2457 ++	      || (save_reg_mask & (1 << 2)) || (save_reg_mask & (1 << 3)))
  5.2458 ++	    save_reg_mask |= 0xf;
  5.2459 ++
  5.2460 ++	  if ((save_reg_mask & (1 << 4))
  5.2461 ++	      || (save_reg_mask & (1 << 5))
  5.2462 ++	      || (save_reg_mask & (1 << 6)) || (save_reg_mask & (1 << 7)))
  5.2463 ++	    save_reg_mask |= 0xf0;
  5.2464 ++
  5.2465 ++	  if ((save_reg_mask & (1 << 8)) || (save_reg_mask & (1 << 9)))
  5.2466 ++	    save_reg_mask |= 0x300;
  5.2467 ++	}
  5.2468 ++
  5.2469 ++
  5.2470 ++      /* Check LR */
  5.2471 ++      if ((regs_ever_live[LR_REGNUM]
  5.2472 ++	   || !current_function_is_leaf
  5.2473 ++	   || (optimize_size
  5.2474 ++	       && save_reg_mask
  5.2475 ++	       && !current_function_calls_eh_return) || frame_pointer_needed))
  5.2476 ++	{
  5.2477 ++	  if (push
  5.2478 ++	      /* Never pop LR into PC for functions which
  5.2479 ++	         calls __builtin_eh_return, since we need to
  5.2480 ++	         fix the SP after the restoring of the registers
  5.2481 ++	         and before returning. */
  5.2482 ++	      || current_function_calls_eh_return)
  5.2483 ++	    {
  5.2484 ++	      /* Push/Pop LR */
  5.2485 ++	      save_reg_mask |= (1 << ASM_REGNUM (LR_REGNUM));
  5.2486 ++	    }
  5.2487 ++	  else
  5.2488 ++	    {
  5.2489 ++	      /* Pop PC */
  5.2490 ++	      save_reg_mask |= (1 << ASM_REGNUM (PC_REGNUM));
  5.2491 ++	    }
  5.2492 ++	}
  5.2493 ++    }
  5.2494 ++
  5.2495 ++
  5.2496 ++  /* Save registers so the exception handler can modify them.  */
  5.2497 ++  if (current_function_calls_eh_return)
  5.2498 ++    {
  5.2499 ++      unsigned int i;
  5.2500 ++
  5.2501 ++      for (i = 0;; i++)
  5.2502 ++	{
  5.2503 ++	  reg = EH_RETURN_DATA_REGNO (i);
  5.2504 ++	  if (reg == INVALID_REGNUM)
  5.2505 ++	    break;
  5.2506 ++	  save_reg_mask |= 1 << ASM_REGNUM (reg);
  5.2507 ++	}
  5.2508 ++    }
  5.2509 ++
  5.2510 ++  return save_reg_mask;
  5.2511 ++}
  5.2512 ++
  5.2513 ++/*Compute total size in bytes of all saved registers  */
  5.2514 ++static int
  5.2515 ++avr32_get_reg_mask_size (int reg_mask)
  5.2516 ++{
  5.2517 ++  int reg, size;
  5.2518 ++  size = 0;
  5.2519 ++
  5.2520 ++  for (reg = 0; reg <= 15; reg++)
  5.2521 ++    if (reg_mask & (1 << reg))
  5.2522 ++      size += 4;
  5.2523 ++
  5.2524 ++  return size;
  5.2525 ++}
  5.2526 ++
  5.2527 ++/*Get a register from one of the registers which are saved onto the stack
  5.2528 ++  upon function entry */
  5.2529 ++
  5.2530 ++static int
  5.2531 ++avr32_get_saved_reg (int save_reg_mask)
  5.2532 ++{
  5.2533 ++  unsigned int reg;
  5.2534 ++
  5.2535 ++  /* Find the first register which is saved in the saved_reg_mask */
  5.2536 ++  for (reg = 0; reg <= 15; reg++)
  5.2537 ++    if (save_reg_mask & (1 << reg))
  5.2538 ++      return reg;
  5.2539 ++
  5.2540 ++  return -1;
  5.2541 ++}
  5.2542 ++
  5.2543 ++/* Return 1 if it is possible to return using a single instruction.  */
  5.2544 ++int
  5.2545 ++avr32_use_return_insn (int iscond)
  5.2546 ++{
  5.2547 ++  unsigned int func_type = avr32_current_func_type ();
  5.2548 ++  unsigned long saved_int_regs;
  5.2549 ++  unsigned long saved_fp_regs;
  5.2550 ++
  5.2551 ++  /* Never use a return instruction before reload has run.  */
  5.2552 ++  if (!reload_completed)
  5.2553 ++    return 0;
  5.2554 ++
  5.2555 ++  /* Must adjust the stack for vararg functions. */
  5.2556 ++  if (current_function_args_info.uses_anonymous_args)
  5.2557 ++    return 0;
  5.2558 ++
  5.2559 ++  /* If there a stack adjstment.  */
  5.2560 ++  if (get_frame_size ())
  5.2561 ++    return 0;
  5.2562 ++
  5.2563 ++  saved_int_regs = avr32_compute_save_reg_mask (TRUE);
  5.2564 ++  saved_fp_regs = avr32_compute_save_fp_reg_mask ();
  5.2565 ++
  5.2566 ++  /* Functions which have saved fp-regs on the stack can not be performed in
  5.2567 ++     one instruction */
  5.2568 ++  if (saved_fp_regs)
  5.2569 ++    return 0;
  5.2570 ++
  5.2571 ++  /* Conditional returns can not be performed in one instruction if we need
  5.2572 ++     to restore registers from the stack */
  5.2573 ++  if (iscond && saved_int_regs)
  5.2574 ++    return 0;
  5.2575 ++
  5.2576 ++  /* Conditional return can not be used for interrupt handlers. */
  5.2577 ++  if (iscond && IS_INTERRUPT (func_type))
  5.2578 ++    return 0;
  5.2579 ++
  5.2580 ++  /* For interrupt handlers which needs to pop registers */
  5.2581 ++  if (saved_int_regs && IS_INTERRUPT (func_type))
  5.2582 ++    return 0;
  5.2583 ++
  5.2584 ++
  5.2585 ++  /* If there are saved registers but the LR isn't saved, then we need two
  5.2586 ++     instructions for the return.  */
  5.2587 ++  if (saved_int_regs && !(saved_int_regs & (1 << ASM_REGNUM (LR_REGNUM))))
  5.2588 ++    return 0;
  5.2589 ++
  5.2590 ++
  5.2591 ++  return 1;
  5.2592 ++}
  5.2593 ++
  5.2594 ++
  5.2595 ++/*Generate some function prologue info in the assembly file*/
  5.2596 ++
  5.2597 ++void
  5.2598 ++avr32_target_asm_function_prologue (FILE * f, HOST_WIDE_INT frame_size)
  5.2599 ++{
  5.2600 ++  if (IS_NAKED (avr32_current_func_type ()))
  5.2601 ++    fprintf (f,
  5.2602 ++	     "\t# Function is naked: Prologue and epilogue provided by programmer\n");
  5.2603 ++
  5.2604 ++  if (IS_INTERRUPT (avr32_current_func_type ()))
  5.2605 ++    {
  5.2606 ++      switch (avr32_current_func_type ())
  5.2607 ++	{
  5.2608 ++	case AVR32_FT_ISR_FULL:
  5.2609 ++	  fprintf (f,
  5.2610 ++		   "\t# Interrupt Function: Fully shadowed register file\n");
  5.2611 ++	  break;
  5.2612 ++	case AVR32_FT_ISR_HALF:
  5.2613 ++	  fprintf (f,
  5.2614 ++		   "\t# Interrupt Function: Half shadowed register file\n");
  5.2615 ++	  break;
  5.2616 ++	default:
  5.2617 ++	case AVR32_FT_ISR_NONE:
  5.2618 ++	  fprintf (f, "\t# Interrupt Function: No shadowed register file\n");
  5.2619 ++	  break;
  5.2620 ++	}
  5.2621 ++    }
  5.2622 ++
  5.2623 ++
  5.2624 ++  fprintf (f, "\t# args = %i, frame = %li, pretend = %i\n",
  5.2625 ++	   current_function_args_size, frame_size,
  5.2626 ++	   current_function_pretend_args_size);
  5.2627 ++
  5.2628 ++  fprintf (f, "\t# frame_needed = %i, leaf_function = %i\n",
  5.2629 ++	   frame_pointer_needed, current_function_is_leaf);
  5.2630 ++
  5.2631 ++  fprintf (f, "\t# uses_anonymous_args = %i\n",
  5.2632 ++	   current_function_args_info.uses_anonymous_args);
  5.2633 ++  if (current_function_calls_eh_return)
  5.2634 ++    fprintf (f, "\t# Calls __builtin_eh_return.\n");
  5.2635 ++
  5.2636 ++}
  5.2637 ++
  5.2638 ++
  5.2639 ++/* Generate and emit an insn that we will recognize as a pushm or stm.
  5.2640 ++   Unfortunately, since this insn does not reflect very well the actual
  5.2641 ++   semantics of the operation, we need to annotate the insn for the benefit
  5.2642 ++   of DWARF2 frame unwind information.  */
  5.2643 ++
  5.2644 ++int avr32_convert_to_reglist16 (int reglist8_vect);
  5.2645 ++
  5.2646 ++static rtx
  5.2647 ++emit_multi_reg_push (int reglist, int usePUSHM)
  5.2648 ++{
  5.2649 ++  rtx insn;
  5.2650 ++  rtx dwarf;
  5.2651 ++  rtx tmp;
  5.2652 ++  rtx reg;
  5.2653 ++  int i;
  5.2654 ++  int nr_regs;
  5.2655 ++  int index = 0;
  5.2656 ++
  5.2657 ++  if (usePUSHM)
  5.2658 ++    {
  5.2659 ++      insn = emit_insn (gen_pushm (gen_rtx_CONST_INT (SImode, reglist)));
  5.2660 ++      reglist = avr32_convert_to_reglist16 (reglist);
  5.2661 ++    }
  5.2662 ++  else
  5.2663 ++    {
  5.2664 ++      insn = emit_insn (gen_stm (stack_pointer_rtx,
  5.2665 ++				 gen_rtx_CONST_INT (SImode, reglist),
  5.2666 ++				 gen_rtx_CONST_INT (SImode, 1)));
  5.2667 ++    }
  5.2668 ++
  5.2669 ++  nr_regs = avr32_get_reg_mask_size (reglist) / 4;
  5.2670 ++  dwarf = gen_rtx_SEQUENCE (VOIDmode, rtvec_alloc (nr_regs + 1));
  5.2671 ++
  5.2672 ++  for (i = 15; i >= 0; i--)
  5.2673 ++    {
  5.2674 ++      if (reglist & (1 << i))
  5.2675 ++	{
  5.2676 ++	  reg = gen_rtx_REG (SImode, INTERNAL_REGNUM (i));
  5.2677 ++	  tmp = gen_rtx_SET (VOIDmode,
  5.2678 ++			     gen_rtx_MEM (SImode,
  5.2679 ++					  plus_constant (stack_pointer_rtx,
  5.2680 ++							 4 * index)), reg);
  5.2681 ++	  RTX_FRAME_RELATED_P (tmp) = 1;
  5.2682 ++	  XVECEXP (dwarf, 0, 1 + index++) = tmp;
  5.2683 ++	}
  5.2684 ++    }
  5.2685 ++
  5.2686 ++  tmp = gen_rtx_SET (SImode,
  5.2687 ++		     stack_pointer_rtx,
  5.2688 ++		     gen_rtx_PLUS (SImode,
  5.2689 ++				   stack_pointer_rtx,
  5.2690 ++				   GEN_INT (-4 * nr_regs)));
  5.2691 ++  RTX_FRAME_RELATED_P (tmp) = 1;
  5.2692 ++  XVECEXP (dwarf, 0, 0) = tmp;
  5.2693 ++  REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR, dwarf,
  5.2694 ++					REG_NOTES (insn));
  5.2695 ++  return insn;
  5.2696 ++}
  5.2697 ++
  5.2698 ++
  5.2699 ++static rtx
  5.2700 ++emit_multi_fp_reg_push (int reglist)
  5.2701 ++{
  5.2702 ++  rtx insn;
  5.2703 ++  rtx dwarf;
  5.2704 ++  rtx tmp;
  5.2705 ++  rtx reg;
  5.2706 ++  int i;
  5.2707 ++  int nr_regs;
  5.2708 ++  int index = 0;
  5.2709 ++
  5.2710 ++  insn = emit_insn (gen_stm_fp (stack_pointer_rtx,
  5.2711 ++				gen_rtx_CONST_INT (SImode, reglist),
  5.2712 ++				gen_rtx_CONST_INT (SImode, 1)));
  5.2713 ++
  5.2714 ++  nr_regs = avr32_get_reg_mask_size (reglist) / 4;
  5.2715 ++  dwarf = gen_rtx_SEQUENCE (VOIDmode, rtvec_alloc (nr_regs + 1));
  5.2716 ++
  5.2717 ++  for (i = 15; i >= 0; i--)
  5.2718 ++    {
  5.2719 ++      if (reglist & (1 << i))
  5.2720 ++	{
  5.2721 ++	  reg = gen_rtx_REG (SImode, INTERNAL_FP_REGNUM (i));
  5.2722 ++	  tmp = gen_rtx_SET (VOIDmode,
  5.2723 ++			     gen_rtx_MEM (SImode,
  5.2724 ++					  plus_constant (stack_pointer_rtx,
  5.2725 ++							 4 * index)), reg);
  5.2726 ++	  RTX_FRAME_RELATED_P (tmp) = 1;
  5.2727 ++	  XVECEXP (dwarf, 0, 1 + index++) = tmp;
  5.2728 ++	}
  5.2729 ++    }
  5.2730 ++
  5.2731 ++  tmp = gen_rtx_SET (SImode,
  5.2732 ++		     stack_pointer_rtx,
  5.2733 ++		     gen_rtx_PLUS (SImode,
  5.2734 ++				   stack_pointer_rtx,
  5.2735 ++				   GEN_INT (-4 * nr_regs)));
  5.2736 ++  RTX_FRAME_RELATED_P (tmp) = 1;
  5.2737 ++  XVECEXP (dwarf, 0, 0) = tmp;
  5.2738 ++  REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR, dwarf,
  5.2739 ++					REG_NOTES (insn));
  5.2740 ++  return insn;
  5.2741 ++}
  5.2742 ++
  5.2743 ++rtx
  5.2744 ++avr32_gen_load_multiple (rtx * regs, int count, rtx from,
  5.2745 ++			 int write_back, int in_struct_p, int scalar_p)
  5.2746 ++{
  5.2747 ++
  5.2748 ++  rtx result;
  5.2749 ++  int i = 0, j;
  5.2750 ++
  5.2751 ++  result =
  5.2752 ++    gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (count + (write_back ? 1 : 0)));
  5.2753 ++
  5.2754 ++  if (write_back)
  5.2755 ++    {
  5.2756 ++      XVECEXP (result, 0, 0)
  5.2757 ++	= gen_rtx_SET (GET_MODE (from), from,
  5.2758 ++		       plus_constant (from, count * 4));
  5.2759 ++      i = 1;
  5.2760 ++      count++;
  5.2761 ++    }
  5.2762 ++
  5.2763 ++
  5.2764 ++  for (j = 0; i < count; i++, j++)
  5.2765 ++    {
  5.2766 ++      rtx unspec;
  5.2767 ++      rtx mem = gen_rtx_MEM (SImode, plus_constant (from, j * 4));
  5.2768 ++      MEM_IN_STRUCT_P (mem) = in_struct_p;
  5.2769 ++      MEM_SCALAR_P (mem) = scalar_p;
  5.2770 ++      unspec = gen_rtx_UNSPEC (VOIDmode, gen_rtvec (1, mem), UNSPEC_LDM);
  5.2771 ++      XVECEXP (result, 0, i) = gen_rtx_SET (VOIDmode, regs[j], unspec);
  5.2772 ++    }
  5.2773 ++
  5.2774 ++  return result;
  5.2775 ++}
  5.2776 ++
  5.2777 ++
  5.2778 ++rtx
  5.2779 ++avr32_gen_store_multiple (rtx * regs, int count, rtx to,
  5.2780 ++			  int in_struct_p, int scalar_p)
  5.2781 ++{
  5.2782 ++  rtx result;
  5.2783 ++  int i = 0, j;
  5.2784 ++
  5.2785 ++  result = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (count));
  5.2786 ++
  5.2787 ++  for (j = 0; i < count; i++, j++)
  5.2788 ++    {
  5.2789 ++      rtx mem = gen_rtx_MEM (SImode, plus_constant (to, j * 4));
  5.2790 ++      MEM_IN_STRUCT_P (mem) = in_struct_p;
  5.2791 ++      MEM_SCALAR_P (mem) = scalar_p;
  5.2792 ++      XVECEXP (result, 0, i)
  5.2793 ++	= gen_rtx_SET (VOIDmode, mem,
  5.2794 ++		       gen_rtx_UNSPEC (VOIDmode,
  5.2795 ++				       gen_rtvec (1, regs[j]),
  5.2796 ++				       UNSPEC_STORE_MULTIPLE));
  5.2797 ++    }
  5.2798 ++
  5.2799 ++  return result;
  5.2800 ++}
  5.2801 ++
  5.2802 ++
  5.2803 ++/* Move a block of memory if it is word aligned or we support unaligned
  5.2804 ++   word memory accesses. The size must be maximum 64 bytes. */
  5.2805 ++
  5.2806 ++int
  5.2807 ++avr32_gen_movmemsi (rtx * operands)
  5.2808 ++{
  5.2809 ++  HOST_WIDE_INT bytes_to_go;
  5.2810 ++  rtx src, dst;
  5.2811 ++  rtx st_src, st_dst;
  5.2812 ++  int src_offset = 0, dst_offset = 0;
  5.2813 ++  int block_size;
  5.2814 ++  int dst_in_struct_p, src_in_struct_p;
  5.2815 ++  int dst_scalar_p, src_scalar_p;
  5.2816 ++  int unaligned;
  5.2817 ++
  5.2818 ++  if (GET_CODE (operands[2]) != CONST_INT
  5.2819 ++      || GET_CODE (operands[3]) != CONST_INT
  5.2820 ++      || INTVAL (operands[2]) > 64
  5.2821 ++      || ((INTVAL (operands[3]) & 3) && !TARGET_UNALIGNED_WORD))
  5.2822 ++    return 0;
  5.2823 ++
  5.2824 ++  unaligned = (INTVAL (operands[3]) & 3) != 0;
  5.2825 ++
  5.2826 ++  block_size = 4;
  5.2827 ++
  5.2828 ++  st_dst = XEXP (operands[0], 0);
  5.2829 ++  st_src = XEXP (operands[1], 0);
  5.2830 ++
  5.2831 ++  dst_in_struct_p = MEM_IN_STRUCT_P (operands[0]);
  5.2832 ++  dst_scalar_p = MEM_SCALAR_P (operands[0]);
  5.2833 ++  src_in_struct_p = MEM_IN_STRUCT_P (operands[1]);
  5.2834 ++  src_scalar_p = MEM_SCALAR_P (operands[1]);
  5.2835 ++
  5.2836 ++  dst = copy_to_mode_reg (SImode, st_dst);
  5.2837 ++  src = copy_to_mode_reg (SImode, st_src);
  5.2838 ++
  5.2839 ++  bytes_to_go = INTVAL (operands[2]);
  5.2840 ++
  5.2841 ++  while (bytes_to_go)
  5.2842 ++    {
  5.2843 ++      enum machine_mode move_mode;
  5.2844 ++      /* (Seems to be a problem with reloads for the movti pattern so this is
  5.2845 ++         disabled until that problem is resolved)
  5.2846 ++         UPDATE: Problem seems to be solved now.... */
  5.2847 ++      if (bytes_to_go >= GET_MODE_SIZE (TImode) && !unaligned
  5.2848 ++	  /* Do not emit ldm/stm for UC3 as ld.d/st.d is more optimal. */
  5.2849 ++	  && !TARGET_ARCH_UC)
  5.2850 ++	move_mode = TImode;
  5.2851 ++      else if ((bytes_to_go >= GET_MODE_SIZE (DImode)) && !unaligned)
  5.2852 ++	move_mode = DImode;
  5.2853 ++      else if (bytes_to_go >= GET_MODE_SIZE (SImode))
  5.2854 ++	move_mode = SImode;
  5.2855 ++      else
  5.2856 ++	move_mode = QImode;
  5.2857 ++
  5.2858 ++      {
  5.2859 ++        rtx src_mem;
  5.2860 ++	rtx dst_mem = gen_rtx_MEM (move_mode,
  5.2861 ++				   gen_rtx_PLUS (SImode, dst,
  5.2862 ++						 GEN_INT (dst_offset)));
  5.2863 ++        dst_offset += GET_MODE_SIZE (move_mode);
  5.2864 ++        if ( 0 /* This causes an error in GCC. Think there is
  5.2865 ++                  something wrong in the gcse pass which causes REQ_EQUIV notes
  5.2866 ++                  to be wrong so disabling it for now. */
  5.2867 ++             && move_mode == TImode
  5.2868 ++             && INTVAL (operands[2]) > GET_MODE_SIZE (TImode) )
  5.2869 ++          {
  5.2870 ++            src_mem = gen_rtx_MEM (move_mode,
  5.2871 ++				   gen_rtx_POST_INC (SImode, src));
  5.2872 ++          }
  5.2873 ++        else
  5.2874 ++          {
  5.2875 ++            src_mem = gen_rtx_MEM (move_mode,
  5.2876 ++				   gen_rtx_PLUS (SImode, src,
  5.2877 ++						 GEN_INT (src_offset)));
  5.2878 ++            src_offset += GET_MODE_SIZE (move_mode);
  5.2879 ++          }
  5.2880 ++
  5.2881 ++	bytes_to_go -= GET_MODE_SIZE (move_mode);
  5.2882 ++
  5.2883 ++	MEM_IN_STRUCT_P (dst_mem) = dst_in_struct_p;
  5.2884 ++	MEM_SCALAR_P (dst_mem) = dst_scalar_p;
  5.2885 ++
  5.2886 ++	MEM_IN_STRUCT_P (src_mem) = src_in_struct_p;
  5.2887 ++	MEM_SCALAR_P (src_mem) = src_scalar_p;
  5.2888 ++	emit_move_insn (dst_mem, src_mem);
  5.2889 ++
  5.2890 ++      }
  5.2891 ++    }
  5.2892 ++
  5.2893 ++  return 1;
  5.2894 ++}
  5.2895 ++
  5.2896 ++
  5.2897 ++
  5.2898 ++/*Expand the prologue instruction*/
  5.2899 ++void
  5.2900 ++avr32_expand_prologue (void)
  5.2901 ++{
  5.2902 ++  rtx insn, dwarf;
  5.2903 ++  unsigned long saved_reg_mask, saved_fp_reg_mask;
  5.2904 ++  int reglist8 = 0;
  5.2905 ++
  5.2906 ++  /* Naked functions does not have a prologue */
  5.2907 ++  if (IS_NAKED (avr32_current_func_type ()))
  5.2908 ++    return;
  5.2909 ++
  5.2910 ++  saved_reg_mask = avr32_compute_save_reg_mask (TRUE);
  5.2911 ++
  5.2912 ++  if (saved_reg_mask)
  5.2913 ++    {
  5.2914 ++      /* Must push used registers */
  5.2915 ++
  5.2916 ++      /* Should we use POPM or LDM? */
  5.2917 ++      int usePUSHM = TRUE;
  5.2918 ++      reglist8 = 0;
  5.2919 ++      if (((saved_reg_mask & (1 << 0)) ||
  5.2920 ++	   (saved_reg_mask & (1 << 1)) ||
  5.2921 ++	   (saved_reg_mask & (1 << 2)) || (saved_reg_mask & (1 << 3))))
  5.2922 ++	{
  5.2923 ++	  /* One of R0-R3 should at least be pushed */
  5.2924 ++	  if (((saved_reg_mask & (1 << 0)) &&
  5.2925 ++	       (saved_reg_mask & (1 << 1)) &&
  5.2926 ++	       (saved_reg_mask & (1 << 2)) && (saved_reg_mask & (1 << 3))))
  5.2927 ++	    {
  5.2928 ++	      /* All should be pushed */
  5.2929 ++	      reglist8 |= 0x01;
  5.2930 ++	    }
  5.2931 ++	  else
  5.2932 ++	    {
  5.2933 ++	      usePUSHM = FALSE;
  5.2934 ++	    }
  5.2935 ++	}
  5.2936 ++
  5.2937 ++      if (((saved_reg_mask & (1 << 4)) ||
  5.2938 ++	   (saved_reg_mask & (1 << 5)) ||
  5.2939 ++	   (saved_reg_mask & (1 << 6)) || (saved_reg_mask & (1 << 7))))
  5.2940 ++	{
  5.2941 ++	  /* One of R4-R7 should at least be pushed */
  5.2942 ++	  if (((saved_reg_mask & (1 << 4)) &&
  5.2943 ++	       (saved_reg_mask & (1 << 5)) &&
  5.2944 ++	       (saved_reg_mask & (1 << 6)) && (saved_reg_mask & (1 << 7))))
  5.2945 ++	    {
  5.2946 ++	      if (usePUSHM)
  5.2947 ++		/* All should be pushed */
  5.2948 ++		reglist8 |= 0x02;
  5.2949 ++	    }
  5.2950 ++	  else
  5.2951 ++	    {
  5.2952 ++	      usePUSHM = FALSE;
  5.2953 ++	    }
  5.2954 ++	}
  5.2955 ++
  5.2956 ++      if (((saved_reg_mask & (1 << 8)) || (saved_reg_mask & (1 << 9))))
  5.2957 ++	{
  5.2958 ++	  /* One of R8-R9 should at least be pushed */
  5.2959 ++	  if (((saved_reg_mask & (1 << 8)) && (saved_reg_mask & (1 << 9))))
  5.2960 ++	    {
  5.2961 ++	      if (usePUSHM)
  5.2962 ++		/* All should be pushed */
  5.2963 ++		reglist8 |= 0x04;
  5.2964 ++	    }
  5.2965 ++	  else
  5.2966 ++	    {
  5.2967 ++	      usePUSHM = FALSE;
  5.2968 ++	    }
  5.2969 ++	}
  5.2970 ++
  5.2971 ++      if (saved_reg_mask & (1 << 10))
  5.2972 ++	reglist8 |= 0x08;
  5.2973 ++
  5.2974 ++      if (saved_reg_mask & (1 << 11))
  5.2975 ++	reglist8 |= 0x10;
  5.2976 ++
  5.2977 ++      if (saved_reg_mask & (1 << 12))
  5.2978 ++	reglist8 |= 0x20;
  5.2979 ++
  5.2980 ++      if (saved_reg_mask & (1 << ASM_REGNUM (LR_REGNUM)))
  5.2981 ++	{
  5.2982 ++	  /* Push LR */
  5.2983 ++	  reglist8 |= 0x40;
  5.2984 ++	}
  5.2985 ++
  5.2986 ++      if (usePUSHM)
  5.2987 ++	{
  5.2988 ++	  insn = emit_multi_reg_push (reglist8, TRUE);
  5.2989 ++	}
  5.2990 ++      else
  5.2991 ++	{
  5.2992 ++	  insn = emit_multi_reg_push (saved_reg_mask, FALSE);
  5.2993 ++	}
  5.2994 ++      RTX_FRAME_RELATED_P (insn) = 1;
  5.2995 ++
  5.2996 ++      /* Prevent this instruction from being scheduled after any other
  5.2997 ++         instructions.  */
  5.2998 ++      emit_insn (gen_blockage ());
  5.2999 ++    }
  5.3000 ++
  5.3001 ++  saved_fp_reg_mask = avr32_compute_save_fp_reg_mask ();
  5.3002 ++  if (saved_fp_reg_mask)
  5.3003 ++    {
  5.3004 ++      insn = emit_multi_fp_reg_push (saved_fp_reg_mask);
  5.3005 ++      RTX_FRAME_RELATED_P (insn) = 1;
  5.3006 ++
  5.3007 ++      /* Prevent this instruction from being scheduled after any other
  5.3008 ++         instructions.  */
  5.3009 ++      emit_insn (gen_blockage ());
  5.3010 ++    }
  5.3011 ++
  5.3012 ++  /* Set frame pointer */
  5.3013 ++  if (frame_pointer_needed)
  5.3014 ++    {
  5.3015 ++      insn = emit_move_insn (frame_pointer_rtx, stack_pointer_rtx);
  5.3016 ++      RTX_FRAME_RELATED_P (insn) = 1;
  5.3017 ++    }
  5.3018 ++
  5.3019 ++  if (get_frame_size () > 0)
  5.3020 ++    {
  5.3021 ++      if (avr32_const_ok_for_constraint_p (get_frame_size (), 'K', "Ks21"))
  5.3022 ++	{
  5.3023 ++	  insn = emit_insn (gen_rtx_SET (SImode,
  5.3024 ++					 stack_pointer_rtx,
  5.3025 ++					 gen_rtx_PLUS (SImode,
  5.3026 ++						       stack_pointer_rtx,
  5.3027 ++						       gen_rtx_CONST_INT
  5.3028 ++						       (SImode,
  5.3029 ++							-get_frame_size
  5.3030 ++							()))));
  5.3031 ++	  RTX_FRAME_RELATED_P (insn) = 1;
  5.3032 ++	}
  5.3033 ++      else
  5.3034 ++	{
  5.3035 ++	  /* Immediate is larger than k21 We must either check if we can use
  5.3036 ++	     one of the pushed reegisters as temporary storage or we must
  5.3037 ++	     make us a temp register by pushing a register to the stack. */
  5.3038 ++	  rtx temp_reg, const_pool_entry, insn;
  5.3039 ++	  if (saved_reg_mask)
  5.3040 ++	    {
  5.3041 ++	      temp_reg =
  5.3042 ++		gen_rtx_REG (SImode,
  5.3043 ++			     INTERNAL_REGNUM (avr32_get_saved_reg
  5.3044 ++					      (saved_reg_mask)));
  5.3045 ++	    }
  5.3046 ++	  else
  5.3047 ++	    {
  5.3048 ++	      temp_reg = gen_rtx_REG (SImode, INTERNAL_REGNUM (7));
  5.3049 ++	      emit_move_insn (gen_rtx_MEM
  5.3050 ++			      (SImode,
  5.3051 ++			       gen_rtx_PRE_DEC (SImode, stack_pointer_rtx)),
  5.3052 ++			      temp_reg);
  5.3053 ++	    }
  5.3054 ++
  5.3055 ++	  const_pool_entry =
  5.3056 ++	    force_const_mem (SImode,
  5.3057 ++			     gen_rtx_CONST_INT (SImode, get_frame_size ()));
  5.3058 ++	  emit_move_insn (temp_reg, const_pool_entry);
  5.3059 ++
  5.3060 ++	  insn = emit_insn (gen_rtx_SET (SImode,
  5.3061 ++					 stack_pointer_rtx,
  5.3062 ++					 gen_rtx_MINUS (SImode,
  5.3063 ++							stack_pointer_rtx,
  5.3064 ++							temp_reg)));
  5.3065 ++
  5.3066 ++	  dwarf = gen_rtx_SET (VOIDmode, stack_pointer_rtx,
  5.3067 ++			       gen_rtx_PLUS (SImode, stack_pointer_rtx,
  5.3068 ++					     GEN_INT (-get_frame_size ())));
  5.3069 ++	  REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR,
  5.3070 ++						dwarf, REG_NOTES (insn));
  5.3071 ++	  RTX_FRAME_RELATED_P (insn) = 1;
  5.3072 ++
  5.3073 ++	  if (!saved_reg_mask)
  5.3074 ++	    {
  5.3075 ++	      insn =
  5.3076 ++		emit_move_insn (temp_reg,
  5.3077 ++				gen_rtx_MEM (SImode,
  5.3078 ++					     gen_rtx_POST_INC (SImode,
  5.3079 ++							       gen_rtx_REG
  5.3080 ++							       (SImode,
  5.3081 ++								13))));
  5.3082 ++	    }
  5.3083 ++
  5.3084 ++	  /* Mark the temp register as dead */
  5.3085 ++	  REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_DEAD, temp_reg,
  5.3086 ++						REG_NOTES (insn));
  5.3087 ++
  5.3088 ++
  5.3089 ++	}
  5.3090 ++
  5.3091 ++      /* Prevent the the stack adjustment to be scheduled after any
  5.3092 ++         instructions using the frame pointer.  */
  5.3093 ++      emit_insn (gen_blockage ());
  5.3094 ++    }
  5.3095 ++
  5.3096 ++  /* Load GOT */
  5.3097 ++  if (flag_pic)
  5.3098 ++    {
  5.3099 ++      avr32_load_pic_register ();
  5.3100 ++
  5.3101 ++      /* gcc does not know that load or call instructions might use the pic
  5.3102 ++         register so it might schedule these instructions before the loading
  5.3103 ++         of the pic register. To avoid this emit a barrier for now. TODO!
  5.3104 ++         Find out a better way to let gcc know which instructions might use
  5.3105 ++         the pic register. */
  5.3106 ++      emit_insn (gen_blockage ());
  5.3107 ++    }
  5.3108 ++  return;
  5.3109 ++}
  5.3110 ++
  5.3111 ++void
  5.3112 ++avr32_set_return_address (rtx source, rtx scratch)
  5.3113 ++{
  5.3114 ++  rtx addr;
  5.3115 ++  unsigned long saved_regs;
  5.3116 ++
  5.3117 ++  saved_regs = avr32_compute_save_reg_mask (TRUE);
  5.3118 ++
  5.3119 ++  if (!(saved_regs & (1 << ASM_REGNUM (LR_REGNUM))))
  5.3120 ++    emit_move_insn (gen_rtx_REG (Pmode, LR_REGNUM), source);
  5.3121 ++  else
  5.3122 ++    {
  5.3123 ++      if (frame_pointer_needed)
  5.3124 ++	addr = gen_rtx_REG (Pmode, FRAME_POINTER_REGNUM);
  5.3125 ++      else
  5.3126 ++	if (avr32_const_ok_for_constraint_p (get_frame_size (), 'K', "Ks16"))
  5.3127 ++	{
  5.3128 ++	  addr = plus_constant (stack_pointer_rtx, get_frame_size ());
  5.3129 ++	}
  5.3130 ++      else
  5.3131 ++	{
  5.3132 ++	  emit_insn (gen_movsi (scratch, GEN_INT (get_frame_size ())));
  5.3133 ++	  addr = scratch;
  5.3134 ++	}
  5.3135 ++      emit_move_insn (gen_rtx_MEM (Pmode, addr), source);
  5.3136 ++    }
  5.3137 ++}
  5.3138 ++
  5.3139 ++
  5.3140 ++
  5.3141 ++/* Return the length of INSN.  LENGTH is the initial length computed by
  5.3142 ++   attributes in the machine-description file.  */
  5.3143 ++
  5.3144 ++int
  5.3145 ++avr32_adjust_insn_length (rtx insn ATTRIBUTE_UNUSED,
  5.3146 ++			  int length ATTRIBUTE_UNUSED)
  5.3147 ++{
  5.3148 ++  return length;
  5.3149 ++}
  5.3150 ++
  5.3151 ++void
  5.3152 ++avr32_output_return_instruction (int single_ret_inst ATTRIBUTE_UNUSED,
  5.3153 ++				 int iscond ATTRIBUTE_UNUSED,
  5.3154 ++				 rtx cond ATTRIBUTE_UNUSED, rtx r12_imm)
  5.3155 ++{
  5.3156 ++
  5.3157 ++  unsigned long saved_reg_mask, saved_fp_reg_mask;
  5.3158 ++  int insert_ret = TRUE;
  5.3159 ++  int reglist8 = 0;
  5.3160 ++  int stack_adjustment = get_frame_size ();
  5.3161 ++  unsigned int func_type = avr32_current_func_type ();
  5.3162 ++  FILE *f = asm_out_file;
  5.3163 ++
  5.3164 ++  /* Naked functions does not have an epilogue */
  5.3165 ++  if (IS_NAKED (func_type))
  5.3166 ++    return;
  5.3167 ++
  5.3168 ++  saved_fp_reg_mask = avr32_compute_save_fp_reg_mask ();
  5.3169 ++
  5.3170 ++  saved_reg_mask = avr32_compute_save_reg_mask (FALSE);
  5.3171 ++
  5.3172 ++  /* Reset frame pointer */
  5.3173 ++  if (stack_adjustment > 0)
  5.3174 ++    {
  5.3175 ++      if (avr32_const_ok_for_constraint_p (stack_adjustment, 'I', "Is21"))
  5.3176 ++	{
  5.3177 ++	  fprintf (f, "\tsub\tsp, %i # Reset Frame Pointer\n",
  5.3178 ++		   -stack_adjustment);
  5.3179 ++	}
  5.3180 ++      else
  5.3181 ++	{
  5.3182 ++	  /* TODO! Is it safe to use r8 as scratch?? */
  5.3183 ++	  fprintf (f, "\tmov\tr8, lo(%i) # Reset Frame Pointer\n",
  5.3184 ++		   -stack_adjustment);
  5.3185 ++	  fprintf (f, "\torh\tr8, hi(%i) # Reset Frame Pointer\n",
  5.3186 ++		   -stack_adjustment);
  5.3187 ++	  fprintf (f, "\tadd\tsp, r8  # Reset Frame Pointer\n");
  5.3188 ++	}
  5.3189 ++    }
  5.3190 ++
  5.3191 ++  if (saved_fp_reg_mask)
  5.3192 ++    {
  5.3193 ++      char reglist[64];		/* 64 bytes should be enough... */
  5.3194 ++      avr32_make_fp_reglist_w (saved_fp_reg_mask, (char *) reglist);
  5.3195 ++      fprintf (f, "\tldcm.w\tcp0, sp++, %s\n", reglist);
  5.3196 ++      if (saved_fp_reg_mask & ~0xff)
  5.3197 ++	{
  5.3198 ++	  saved_fp_reg_mask &= ~0xff;
  5.3199 ++	  avr32_make_fp_reglist_d (saved_fp_reg_mask, (char *) reglist);
  5.3200 ++	  fprintf (f, "\tldcm.d\tcp0, sp++, %s\n", reglist);
  5.3201 ++	}
  5.3202 ++    }
  5.3203 ++
  5.3204 ++  if (saved_reg_mask)
  5.3205 ++    {
  5.3206 ++      /* Must pop used registers */
  5.3207 ++
  5.3208 ++      /* Should we use POPM or LDM? */
  5.3209 ++      int usePOPM = TRUE;
  5.3210 ++      if (((saved_reg_mask & (1 << 0)) ||
  5.3211 ++	   (saved_reg_mask & (1 << 1)) ||
  5.3212 ++	   (saved_reg_mask & (1 << 2)) || (saved_reg_mask & (1 << 3))))
  5.3213 ++	{
  5.3214 ++	  /* One of R0-R3 should at least be popped */
  5.3215 ++	  if (((saved_reg_mask & (1 << 0)) &&
  5.3216 ++	       (saved_reg_mask & (1 << 1)) &&
  5.3217 ++	       (saved_reg_mask & (1 << 2)) && (saved_reg_mask & (1 << 3))))
  5.3218 ++	    {
  5.3219 ++	      /* All should be popped */
  5.3220 ++	      reglist8 |= 0x01;
  5.3221 ++	    }
  5.3222 ++	  else
  5.3223 ++	    {
  5.3224 ++	      usePOPM = FALSE;
  5.3225 ++	    }
  5.3226 ++	}
  5.3227 ++
  5.3228 ++      if (((saved_reg_mask & (1 << 4)) ||
  5.3229 ++	   (saved_reg_mask & (1 << 5)) ||
  5.3230 ++	   (saved_reg_mask & (1 << 6)) || (saved_reg_mask & (1 << 7))))
  5.3231 ++	{
  5.3232 ++	  /* One of R0-R3 should at least be popped */
  5.3233 ++	  if (((saved_reg_mask & (1 << 4)) &&
  5.3234 ++	       (saved_reg_mask & (1 << 5)) &&
  5.3235 ++	       (saved_reg_mask & (1 << 6)) && (saved_reg_mask & (1 << 7))))
  5.3236 ++	    {
  5.3237 ++	      if (usePOPM)
  5.3238 ++		/* All should be popped */
  5.3239 ++		reglist8 |= 0x02;
  5.3240 ++	    }
  5.3241 ++	  else
  5.3242 ++	    {
  5.3243 ++	      usePOPM = FALSE;
  5.3244 ++	    }
  5.3245 ++	}
  5.3246 ++
  5.3247 ++      if (((saved_reg_mask & (1 << 8)) || (saved_reg_mask & (1 << 9))))
  5.3248 ++	{
  5.3249 ++	  /* One of R8-R9 should at least be pushed */
  5.3250 ++	  if (((saved_reg_mask & (1 << 8)) && (saved_reg_mask & (1 << 9))))
  5.3251 ++	    {
  5.3252 ++	      if (usePOPM)
  5.3253 ++		/* All should be pushed */
  5.3254 ++		reglist8 |= 0x04;
  5.3255 ++	    }
  5.3256 ++	  else
  5.3257 ++	    {
  5.3258 ++	      usePOPM = FALSE;
  5.3259 ++	    }
  5.3260 ++	}
  5.3261 ++
  5.3262 ++      if (saved_reg_mask & (1 << 10))
  5.3263 ++	reglist8 |= 0x08;
  5.3264 ++
  5.3265 ++      if (saved_reg_mask & (1 << 11))
  5.3266 ++	reglist8 |= 0x10;
  5.3267 ++
  5.3268 ++      if (saved_reg_mask & (1 << 12))
  5.3269 ++	reglist8 |= 0x20;
  5.3270 ++
  5.3271 ++      if (saved_reg_mask & (1 << ASM_REGNUM (LR_REGNUM)))
  5.3272 ++	/* Pop LR */
  5.3273 ++	reglist8 |= 0x40;
  5.3274 ++
  5.3275 ++      if (saved_reg_mask & (1 << ASM_REGNUM (PC_REGNUM)))
  5.3276 ++	/* Pop LR into PC. */
  5.3277 ++	reglist8 |= 0x80;
  5.3278 ++
  5.3279 ++      if (usePOPM)
  5.3280 ++	{
  5.3281 ++	  char reglist[64];	/* 64 bytes should be enough... */
  5.3282 ++	  avr32_make_reglist8 (reglist8, (char *) reglist);
  5.3283 ++
  5.3284 ++	  if (reglist8 & 0x80)
  5.3285 ++	    /* This instruction is also a return */
  5.3286 ++	    insert_ret = FALSE;
  5.3287 ++
  5.3288 ++	  if (r12_imm && !insert_ret)
  5.3289 ++	    fprintf (f, "\tpopm\t%s, r12=%li\n", reglist, INTVAL (r12_imm));
  5.3290 ++	  else
  5.3291 ++	    fprintf (f, "\tpopm\t%s\n", reglist);
  5.3292 ++
  5.3293 ++	}
  5.3294 ++      else
  5.3295 ++	{
  5.3296 ++	  char reglist[64];	/* 64 bytes should be enough... */
  5.3297 ++	  avr32_make_reglist16 (saved_reg_mask, (char *) reglist);
  5.3298 ++	  if (saved_reg_mask & (1 << ASM_REGNUM (PC_REGNUM)))
  5.3299 ++	    /* This instruction is also a return */
  5.3300 ++	    insert_ret = FALSE;
  5.3301 ++
  5.3302 ++	  if (r12_imm && !insert_ret)
  5.3303 ++	    fprintf (f, "\tldm\tsp++, %s, r12=%li\n", reglist,
  5.3304 ++		     INTVAL (r12_imm));
  5.3305 ++	  else
  5.3306 ++	    fprintf (f, "\tldm\tsp++, %s\n", reglist);
  5.3307 ++
  5.3308 ++	}
  5.3309 ++
  5.3310 ++    }
  5.3311 ++
  5.3312 ++  /* Stack adjustment for exception handler.  */
  5.3313 ++  if (current_function_calls_eh_return)
  5.3314 ++    fprintf (f, "\tadd\tsp, r%d\n", ASM_REGNUM (EH_RETURN_STACKADJ_REGNO));
  5.3315 ++
  5.3316 ++
  5.3317 ++  if (IS_INTERRUPT (func_type))
  5.3318 ++    {
  5.3319 ++      fprintf (f, "\trete\n");
  5.3320 ++    }
  5.3321 ++  else if (insert_ret)
  5.3322 ++    {
  5.3323 ++      if (r12_imm)
  5.3324 ++	fprintf (f, "\tretal\t%li\n", INTVAL (r12_imm));
  5.3325 ++      else
  5.3326 ++	fprintf (f, "\tretal\tr12\n");
  5.3327 ++    }
  5.3328 ++}
  5.3329 ++
  5.3330 ++/* Function for converting a fp-register mask to a
  5.3331 ++   reglistCPD8 register list string. */
  5.3332 ++void
  5.3333 ++avr32_make_fp_reglist_d (int reglist_mask, char *reglist_string)
  5.3334 ++{
  5.3335 ++  int i;
  5.3336 ++
  5.3337 ++  /* Make sure reglist_string is empty */
  5.3338 ++  reglist_string[0] = '\0';
  5.3339 ++
  5.3340 ++  for (i = 0; i < NUM_FP_REGS; i += 2)
  5.3341 ++    {
  5.3342 ++      if (reglist_mask & (1 << i))
  5.3343 ++	{
  5.3344 ++	  strlen (reglist_string) ?
  5.3345 ++	    sprintf (reglist_string, "%s, %s-%s", reglist_string,
  5.3346 ++		     reg_names[INTERNAL_FP_REGNUM (i)],
  5.3347 ++		     reg_names[INTERNAL_FP_REGNUM (i + 1)]) :
  5.3348 ++	    sprintf (reglist_string, "%s-%s",
  5.3349 ++		     reg_names[INTERNAL_FP_REGNUM (i)],
  5.3350 ++		     reg_names[INTERNAL_FP_REGNUM (i + 1)]);
  5.3351 ++	}
  5.3352 ++    }
  5.3353 ++}
  5.3354 ++
  5.3355 ++/* Function for converting a fp-register mask to a
  5.3356 ++   reglistCP8 register list string. */
  5.3357 ++void
  5.3358 ++avr32_make_fp_reglist_w (int reglist_mask, char *reglist_string)
  5.3359 ++{
  5.3360 ++  int i;
  5.3361 ++
  5.3362 ++  /* Make sure reglist_string is empty */
  5.3363 ++  reglist_string[0] = '\0';
  5.3364 ++
  5.3365 ++  for (i = 0; i < NUM_FP_REGS; ++i)
  5.3366 ++    {
  5.3367 ++      if (reglist_mask & (1 << i))
  5.3368 ++	{
  5.3369 ++	  strlen (reglist_string) ?
  5.3370 ++	    sprintf (reglist_string, "%s, %s", reglist_string,
  5.3371 ++		     reg_names[INTERNAL_FP_REGNUM (i)]) :
  5.3372 ++	    sprintf (reglist_string, "%s", reg_names[INTERNAL_FP_REGNUM (i)]);
  5.3373 ++	}
  5.3374 ++    }
  5.3375 ++}
  5.3376 ++
  5.3377 ++void
  5.3378 ++avr32_make_reglist16 (int reglist16_vect, char *reglist16_string)
  5.3379 ++{
  5.3380 ++  int i;
  5.3381 ++
  5.3382 ++  /* Make sure reglist16_string is empty */
  5.3383 ++  reglist16_string[0] = '\0';
  5.3384 ++
  5.3385 ++  for (i = 0; i < 16; ++i)
  5.3386 ++    {
  5.3387 ++      if (reglist16_vect & (1 << i))
  5.3388 ++	{
  5.3389 ++	  strlen (reglist16_string) ?
  5.3390 ++	    sprintf (reglist16_string, "%s, %s", reglist16_string,
  5.3391 ++		     reg_names[INTERNAL_REGNUM (i)]) :
  5.3392 ++	    sprintf (reglist16_string, "%s", reg_names[INTERNAL_REGNUM (i)]);
  5.3393 ++	}
  5.3394 ++    }
  5.3395 ++}
  5.3396 ++
  5.3397 ++int
  5.3398 ++avr32_convert_to_reglist16 (int reglist8_vect)
  5.3399 ++{
  5.3400 ++  int reglist16_vect = 0;
  5.3401 ++  if (reglist8_vect & 0x1)
  5.3402 ++    reglist16_vect |= 0xF;
  5.3403 ++  if (reglist8_vect & 0x2)
  5.3404 ++    reglist16_vect |= 0xF0;
  5.3405 ++  if (reglist8_vect & 0x4)
  5.3406 ++    reglist16_vect |= 0x300;
  5.3407 ++  if (reglist8_vect & 0x8)
  5.3408 ++    reglist16_vect |= 0x400;
  5.3409 ++  if (reglist8_vect & 0x10)
  5.3410 ++    reglist16_vect |= 0x800;
  5.3411 ++  if (reglist8_vect & 0x20)
  5.3412 ++    reglist16_vect |= 0x1000;
  5.3413 ++  if (reglist8_vect & 0x40)
  5.3414 ++    reglist16_vect |= 0x4000;
  5.3415 ++  if (reglist8_vect & 0x80)
  5.3416 ++    reglist16_vect |= 0x8000;
  5.3417 ++
  5.3418 ++  return reglist16_vect;
  5.3419 ++}
  5.3420 ++
  5.3421 ++void
  5.3422 ++avr32_make_reglist8 (int reglist8_vect, char *reglist8_string)
  5.3423 ++{
  5.3424 ++  /* Make sure reglist8_string is empty */
  5.3425 ++  reglist8_string[0] = '\0';
  5.3426 ++
  5.3427 ++  if (reglist8_vect & 0x1)
  5.3428 ++    sprintf (reglist8_string, "r0-r3");
  5.3429 ++  if (reglist8_vect & 0x2)
  5.3430 ++    strlen (reglist8_string) ? sprintf (reglist8_string, "%s, r4-r7",
  5.3431 ++					reglist8_string) :
  5.3432 ++      sprintf (reglist8_string, "r4-r7");
  5.3433 ++  if (reglist8_vect & 0x4)
  5.3434 ++    strlen (reglist8_string) ? sprintf (reglist8_string, "%s, r8-r9",
  5.3435 ++					reglist8_string) :
  5.3436 ++      sprintf (reglist8_string, "r8-r9");
  5.3437 ++  if (reglist8_vect & 0x8)
  5.3438 ++    strlen (reglist8_string) ? sprintf (reglist8_string, "%s, r10",
  5.3439 ++					reglist8_string) :
  5.3440 ++      sprintf (reglist8_string, "r10");
  5.3441 ++  if (reglist8_vect & 0x10)
  5.3442 ++    strlen (reglist8_string) ? sprintf (reglist8_string, "%s, r11",
  5.3443 ++					reglist8_string) :
  5.3444 ++      sprintf (reglist8_string, "r11");
  5.3445 ++  if (reglist8_vect & 0x20)
  5.3446 ++    strlen (reglist8_string) ? sprintf (reglist8_string, "%s, r12",
  5.3447 ++					reglist8_string) :
  5.3448 ++      sprintf (reglist8_string, "r12");
  5.3449 ++  if (reglist8_vect & 0x40)
  5.3450 ++    strlen (reglist8_string) ? sprintf (reglist8_string, "%s, lr",
  5.3451 ++					reglist8_string) :
  5.3452 ++      sprintf (reglist8_string, "lr");
  5.3453 ++  if (reglist8_vect & 0x80)
  5.3454 ++    strlen (reglist8_string) ? sprintf (reglist8_string, "%s, pc",
  5.3455 ++					reglist8_string) :
  5.3456 ++      sprintf (reglist8_string, "pc");
  5.3457 ++}
  5.3458 ++
  5.3459 ++int
  5.3460 ++avr32_eh_return_data_regno (int n)
  5.3461 ++{
  5.3462 ++  if (n >= 0 && n <= 3)
  5.3463 ++    return 8 + n;
  5.3464 ++  else
  5.3465 ++    return INVALID_REGNUM;
  5.3466 ++}
  5.3467 ++
  5.3468 ++/* Compute the distance from register FROM to register TO.
  5.3469 ++   These can be the arg pointer, the frame pointer or
  5.3470 ++   the stack pointer.
  5.3471 ++   Typical stack layout looks like this:
  5.3472 ++
  5.3473 ++       old stack pointer -> |    |
  5.3474 ++			     ----
  5.3475 ++			    |    | \
  5.3476 ++			    |    |   saved arguments for
  5.3477 ++			    |    |   vararg functions
  5.3478 ++ arg_pointer	->	    |    | /
  5.3479 ++			      --
  5.3480 ++			    |    | \
  5.3481 ++			    |    |   call saved
  5.3482 ++			    |    |   registers
  5.3483 ++			    |    | /
  5.3484 ++  frame ptr	 ->	--
  5.3485 ++			    |    | \
  5.3486 ++			    |    |   local
  5.3487 ++			    |    |   variables
  5.3488 ++  stack ptr -->	     |    | /
  5.3489 ++			      --
  5.3490 ++			    |    | \
  5.3491 ++			    |    |   outgoing
  5.3492 ++			    |    |   arguments
  5.3493 ++			    |    | /
  5.3494 ++			      --
  5.3495 ++
  5.3496 ++  For a given funciton some or all of these stack compomnents
  5.3497 ++  may not be needed, giving rise to the possibility of
  5.3498 ++  eliminating some of the registers.
  5.3499 ++
  5.3500 ++  The values returned by this function must reflect the behaviour
  5.3501 ++  of avr32_expand_prologue() and avr32_compute_save_reg_mask().
  5.3502 ++
  5.3503 ++  The sign of the number returned reflects the direction of stack
  5.3504 ++  growth, so the values are positive for all eliminations except
  5.3505 ++  from the soft frame pointer to the hard frame pointer.  */
  5.3506 ++
  5.3507 ++
  5.3508 ++int
  5.3509 ++avr32_initial_elimination_offset (int from, int to)
  5.3510 ++{
  5.3511 ++  int i;
  5.3512 ++  int call_saved_regs = 0;
  5.3513 ++  unsigned long saved_reg_mask, saved_fp_reg_mask;
  5.3514 ++  unsigned int local_vars = get_frame_size ();
  5.3515 ++
  5.3516 ++  saved_reg_mask = avr32_compute_save_reg_mask (TRUE);
  5.3517 ++  saved_fp_reg_mask = avr32_compute_save_fp_reg_mask ();
  5.3518 ++
  5.3519 ++  for (i = 0; i < 16; ++i)
  5.3520 ++    {
  5.3521 ++      if (saved_reg_mask & (1 << i))
  5.3522 ++	call_saved_regs += 4;
  5.3523 ++    }
  5.3524 ++
  5.3525 ++  for (i = 0; i < NUM_FP_REGS; ++i)
  5.3526 ++    {
  5.3527 ++      if (saved_fp_reg_mask & (1 << i))
  5.3528 ++	call_saved_regs += 4;
  5.3529 ++    }
  5.3530 ++
  5.3531 ++  switch (from)
  5.3532 ++    {
  5.3533 ++    case ARG_POINTER_REGNUM:
  5.3534 ++      switch (to)
  5.3535 ++	{
  5.3536 ++	case STACK_POINTER_REGNUM:
  5.3537 ++	  return call_saved_regs + local_vars;
  5.3538 ++	case FRAME_POINTER_REGNUM:
  5.3539 ++	  return call_saved_regs;
  5.3540 ++	default:
  5.3541 ++	  abort ();
  5.3542 ++	}
  5.3543 ++    case FRAME_POINTER_REGNUM:
  5.3544 ++      switch (to)
  5.3545 ++	{
  5.3546 ++	case STACK_POINTER_REGNUM:
  5.3547 ++	  return local_vars;
  5.3548 ++	default:
  5.3549 ++	  abort ();
  5.3550 ++	}
  5.3551 ++    default:
  5.3552 ++      abort ();
  5.3553 ++    }
  5.3554 ++}
  5.3555 ++
  5.3556 ++
  5.3557 ++/*
  5.3558 ++  Returns a rtx used when passing the next argument to a function.
  5.3559 ++  avr32_init_cumulative_args() and avr32_function_arg_advance() sets witch
  5.3560 ++  register to use.
  5.3561 ++*/
  5.3562 ++rtx
  5.3563 ++avr32_function_arg (CUMULATIVE_ARGS * cum, enum machine_mode mode,
  5.3564 ++		    tree type, int named)
  5.3565 ++{
  5.3566 ++  int index = -1;
  5.3567 ++
  5.3568 ++  HOST_WIDE_INT arg_size, arg_rsize;
  5.3569 ++  if (type)
  5.3570 ++    {
  5.3571 ++      arg_size = int_size_in_bytes (type);
  5.3572 ++    }
  5.3573 ++  else
  5.3574 ++    {
  5.3575 ++      arg_size = GET_MODE_SIZE (mode);
  5.3576 ++    }
  5.3577 ++  arg_rsize = PUSH_ROUNDING (arg_size);
  5.3578 ++
  5.3579 ++  /*
  5.3580 ++     The last time this macro is called, it is called with mode == VOIDmode,
  5.3581 ++     and its result is passed to the call or call_value pattern as operands 2
  5.3582 ++     and 3 respectively. */
  5.3583 ++  if (mode == VOIDmode)
  5.3584 ++    {
  5.3585 ++      return gen_rtx_CONST_INT (SImode, 22);	/* ToDo: fixme. */
  5.3586 ++    }
  5.3587 ++
  5.3588 ++  if ((*targetm.calls.must_pass_in_stack) (mode, type) || !named)
  5.3589 ++    {
  5.3590 ++      return NULL_RTX;
  5.3591 ++    }
  5.3592 ++
  5.3593 ++  if (arg_rsize == 8)
  5.3594 ++    {
  5.3595 ++      /* use r11:r10 or r9:r8. */
  5.3596 ++      if (!(GET_USED_INDEX (cum, 1) || GET_USED_INDEX (cum, 2)))
  5.3597 ++	index = 1;
  5.3598 ++      else if (!(GET_USED_INDEX (cum, 3) || GET_USED_INDEX (cum, 4)))
  5.3599 ++	index = 3;
  5.3600 ++      else
  5.3601 ++	index = -1;
  5.3602 ++    }
  5.3603 ++  else if (arg_rsize == 4)
  5.3604 ++    {				/* Use first available register */
  5.3605 ++      index = 0;
  5.3606 ++      while (index <= LAST_CUM_REG_INDEX && GET_USED_INDEX (cum, index))
  5.3607 ++	index++;
  5.3608 ++      if (index > LAST_CUM_REG_INDEX)
  5.3609 ++	index = -1;
  5.3610 ++    }
  5.3611 ++
  5.3612 ++  SET_REG_INDEX (cum, index);
  5.3613 ++
  5.3614 ++  if (GET_REG_INDEX (cum) >= 0)
  5.3615 ++    return gen_rtx_REG (mode,
  5.3616 ++			avr32_function_arg_reglist[GET_REG_INDEX (cum)]);
  5.3617 ++
  5.3618 ++  return NULL_RTX;
  5.3619 ++}
  5.3620 ++
  5.3621 ++/*
  5.3622 ++  Set the register used for passing the first argument to a function.
  5.3623 ++*/
  5.3624 ++void
  5.3625 ++avr32_init_cumulative_args (CUMULATIVE_ARGS * cum, 
  5.3626 ++                            tree fntype ATTRIBUTE_UNUSED,
  5.3627 ++                            rtx libname ATTRIBUTE_UNUSED,
  5.3628 ++                            tree fndecl ATTRIBUTE_UNUSED)
  5.3629 ++  {
  5.3630 ++    /* Set all registers as unused. */
  5.3631 ++    SET_INDEXES_UNUSED (cum);
  5.3632 ++
  5.3633 ++    /* Reset uses_anonymous_args */
  5.3634 ++    cum->uses_anonymous_args = 0;
  5.3635 ++
  5.3636 ++    /* Reset size of stack pushed arguments */
  5.3637 ++    cum->stack_pushed_args_size = 0;
  5.3638 ++  }
  5.3639 ++
  5.3640 ++/*
  5.3641 ++  Set register used for passing the next argument to a function. Only the
  5.3642 ++  Scratch Registers are used.
  5.3643 ++
  5.3644 ++		number  name
  5.3645 ++		   15   r15  PC
  5.3646 ++		   14   r14  LR
  5.3647 ++		   13   r13 _SP_________
  5.3648 ++     FIRST_CUM_REG 12   r12 _||_
  5.3649 ++		   10   r11  ||
  5.3650 ++		   11   r10 _||_  Scratch Registers
  5.3651 ++		    8   r9   ||
  5.3652 ++  LAST_SCRATCH_REG  9   r8  _\/_________
  5.3653 ++		    6   r7   /\
  5.3654 ++		    7   r6   ||
  5.3655 ++		    4   r5   ||
  5.3656 ++		    5   r4   ||
  5.3657 ++		    2   r3   ||
  5.3658 ++		    3   r2   ||
  5.3659 ++		    0   r1   ||
  5.3660 ++		    1   r0  _||_________
  5.3661 ++
  5.3662 ++*/
  5.3663 ++void
  5.3664 ++avr32_function_arg_advance (CUMULATIVE_ARGS * cum, enum machine_mode mode,
  5.3665 ++			    tree type, int named ATTRIBUTE_UNUSED)
  5.3666 ++{
  5.3667 ++  HOST_WIDE_INT arg_size, arg_rsize;
  5.3668 ++
  5.3669 ++  if (type)
  5.3670 ++    {
  5.3671 ++      arg_size = int_size_in_bytes (type);
  5.3672 ++    }
  5.3673 ++  else
  5.3674 ++    {
  5.3675 ++      arg_size = GET_MODE_SIZE (mode);
  5.3676 ++    }
  5.3677 ++  arg_rsize = PUSH_ROUNDING (arg_size);
  5.3678 ++
  5.3679 ++  /* It the argument had to be passed in stack, no register is used. */
  5.3680 ++  if ((*targetm.calls.must_pass_in_stack) (mode, type))
  5.3681 ++    {
  5.3682 ++      cum->stack_pushed_args_size += PUSH_ROUNDING (int_size_in_bytes (type));
  5.3683 ++      return;
  5.3684 ++    }
  5.3685 ++
  5.3686 ++  /* Mark the used registers as "used". */
  5.3687 ++  if (GET_REG_INDEX (cum) >= 0)
  5.3688 ++    {
  5.3689 ++      SET_USED_INDEX (cum, GET_REG_INDEX (cum));
  5.3690 ++      if (arg_rsize == 8)
  5.3691 ++	{
  5.3692 ++	  SET_USED_INDEX (cum, (GET_REG_INDEX (cum) + 1));
  5.3693 ++	}
  5.3694 ++    }
  5.3695 ++  else
  5.3696 ++    {
  5.3697 ++      /* Had to use stack */
  5.3698 ++      cum->stack_pushed_args_size += arg_rsize;
  5.3699 ++    }
  5.3700 ++}
  5.3701 ++
  5.3702 ++/*
  5.3703 ++  Defines witch direction to go to find the next register to use if the
  5.3704 ++  argument is larger then one register or for arguments shorter than an
  5.3705 ++  int which is not promoted, such as the last part of structures with
  5.3706 ++  size not a multiple of 4. */
  5.3707 ++enum direction
  5.3708 ++avr32_function_arg_padding (enum machine_mode mode ATTRIBUTE_UNUSED,
  5.3709 ++			    tree type)
  5.3710 ++{
  5.3711 ++  /* Pad upward for all aggregates except byte and halfword sized aggregates
  5.3712 ++     which can be passed in registers. */
  5.3713 ++  if (type
  5.3714 ++      && AGGREGATE_TYPE_P (type)
  5.3715 ++      && (int_size_in_bytes (type) != 1)
  5.3716 ++      && !((int_size_in_bytes (type) == 2)
  5.3717 ++	   && TYPE_ALIGN_UNIT (type) >= 2)
  5.3718 ++      && (int_size_in_bytes (type) & 0x3))
  5.3719 ++    {
  5.3720 ++      return upward;
  5.3721 ++    }
  5.3722 ++
  5.3723 ++  return downward;
  5.3724 ++}
  5.3725 ++
  5.3726 ++/*
  5.3727 ++  Return a rtx used for the return value from a function call.
  5.3728 ++*/
  5.3729 ++rtx
  5.3730 ++avr32_function_value (tree type, tree func, bool outgoing ATTRIBUTE_UNUSED)
  5.3731 ++{
  5.3732 ++  if (avr32_return_in_memory (type, func))
  5.3733 ++    return NULL_RTX;
  5.3734 ++
  5.3735 ++  if (int_size_in_bytes (type) <= 4)
  5.3736 ++    if (avr32_return_in_msb (type))
  5.3737 ++      /* Aggregates of size less than a word which does align the data in the
  5.3738 ++         MSB must use SImode for r12. */
  5.3739 ++      return gen_rtx_REG (SImode, RET_REGISTER);
  5.3740 ++    else
  5.3741 ++      return gen_rtx_REG (TYPE_MODE (type), RET_REGISTER);
  5.3742 ++  else if (int_size_in_bytes (type) <= 8)
  5.3743 ++    return gen_rtx_REG (TYPE_MODE (type), INTERNAL_REGNUM (11));
  5.3744 ++
  5.3745 ++  return NULL_RTX;
  5.3746 ++}
  5.3747 ++
  5.3748 ++/*
  5.3749 ++  Return a rtx used for the return value from a library function call.
  5.3750 ++*/
  5.3751 ++rtx
  5.3752 ++avr32_libcall_value (enum machine_mode mode)
  5.3753 ++{
  5.3754 ++
  5.3755 ++  if (GET_MODE_SIZE (mode) <= 4)
  5.3756 ++    return gen_rtx_REG (mode, RET_REGISTER);
  5.3757 ++  else if (GET_MODE_SIZE (mode) <= 8)
  5.3758 ++    return gen_rtx_REG (mode, INTERNAL_REGNUM (11));
  5.3759 ++  else
  5.3760 ++    return NULL_RTX;
  5.3761 ++}
  5.3762 ++
  5.3763 ++/* Return TRUE if X references a SYMBOL_REF.  */
  5.3764 ++int
  5.3765 ++symbol_mentioned_p (rtx x)
  5.3766 ++{
  5.3767 ++  const char *fmt;
  5.3768 ++  int i;
  5.3769 ++
  5.3770 ++  if (GET_CODE (x) == SYMBOL_REF)
  5.3771 ++    return 1;
  5.3772 ++
  5.3773 ++  fmt = GET_RTX_FORMAT (GET_CODE (x));
  5.3774 ++
  5.3775 ++  for (i = GET_RTX_LENGTH (GET_CODE (x)) - 1; i >= 0; i--)
  5.3776 ++    {
  5.3777 ++      if (fmt[i] == 'E')
  5.3778 ++	{
  5.3779 ++	  int j;
  5.3780 ++
  5.3781 ++	  for (j = XVECLEN (x, i) - 1; j >= 0; j--)
  5.3782 ++	    if (symbol_mentioned_p (XVECEXP (x, i, j)))
  5.3783 ++	      return 1;
  5.3784 ++	}
  5.3785 ++      else if (fmt[i] == 'e' && symbol_mentioned_p (XEXP (x, i)))
  5.3786 ++	return 1;
  5.3787 ++    }
  5.3788 ++
  5.3789 ++  return 0;
  5.3790 ++}
  5.3791 ++
  5.3792 ++/* Return TRUE if X references a LABEL_REF.  */
  5.3793 ++int
  5.3794 ++label_mentioned_p (rtx x)
  5.3795 ++{
  5.3796 ++  const char *fmt;
  5.3797 ++  int i;
  5.3798 ++
  5.3799 ++  if (GET_CODE (x) == LABEL_REF)
  5.3800 ++    return 1;
  5.3801 ++
  5.3802 ++  fmt = GET_RTX_FORMAT (GET_CODE (x));
  5.3803 ++  for (i = GET_RTX_LENGTH (GET_CODE (x)) - 1; i >= 0; i--)
  5.3804 ++    {
  5.3805 ++      if (fmt[i] == 'E')
  5.3806 ++	{
  5.3807 ++	  int j;
  5.3808 ++
  5.3809 ++	  for (j = XVECLEN (x, i) - 1; j >= 0; j--)
  5.3810 ++	    if (label_mentioned_p (XVECEXP (x, i, j)))
  5.3811 ++	      return 1;
  5.3812 ++	}
  5.3813 ++      else if (fmt[i] == 'e' && label_mentioned_p (XEXP (x, i)))
  5.3814 ++	return 1;
  5.3815 ++    }
  5.3816 ++
  5.3817 ++  return 0;
  5.3818 ++}
  5.3819 ++
  5.3820 ++/* Return TRUE if X contains a MEM expression.  */
  5.3821 ++int
  5.3822 ++mem_mentioned_p (rtx x)
  5.3823 ++{
  5.3824 ++  const char *fmt;
  5.3825 ++  int i;
  5.3826 ++
  5.3827 ++  if (MEM_P (x))
  5.3828 ++    return 1;
  5.3829 ++
  5.3830 ++  fmt = GET_RTX_FORMAT (GET_CODE (x));
  5.3831 ++  for (i = GET_RTX_LENGTH (GET_CODE (x)) - 1; i >= 0; i--)
  5.3832 ++    {
  5.3833 ++      if (fmt[i] == 'E')
  5.3834 ++	{
  5.3835 ++	  int j;
  5.3836 ++
  5.3837 ++	  for (j = XVECLEN (x, i) - 1; j >= 0; j--)
  5.3838 ++	    if (mem_mentioned_p (XVECEXP (x, i, j)))
  5.3839 ++	      return 1;
  5.3840 ++	}
  5.3841 ++      else if (fmt[i] == 'e' && mem_mentioned_p (XEXP (x, i)))
  5.3842 ++	return 1;
  5.3843 ++    }
  5.3844 ++
  5.3845 ++  return 0;
  5.3846 ++}
  5.3847 ++
  5.3848 ++int
  5.3849 ++avr32_legitimate_pic_operand_p (rtx x)
  5.3850 ++{
  5.3851 ++
  5.3852 ++  /* We can't have const, this must be broken down to a symbol. */
  5.3853 ++  if (GET_CODE (x) == CONST)
  5.3854 ++    return FALSE;
  5.3855 ++
  5.3856 ++  /* Can't access symbols or labels via the constant pool either */
  5.3857 ++  if ((GET_CODE (x) == SYMBOL_REF
  5.3858 ++       && CONSTANT_POOL_ADDRESS_P (x)
  5.3859 ++       && (symbol_mentioned_p (get_pool_constant (x))
  5.3860 ++	   || label_mentioned_p (get_pool_constant (x)))))
  5.3861 ++    return FALSE;
  5.3862 ++
  5.3863 ++  return TRUE;
  5.3864 ++}
  5.3865 ++
  5.3866 ++
  5.3867 ++rtx
  5.3868 ++legitimize_pic_address (rtx orig, enum machine_mode mode ATTRIBUTE_UNUSED,
  5.3869 ++			rtx reg)
  5.3870 ++{
  5.3871 ++
  5.3872 ++  if (GET_CODE (orig) == SYMBOL_REF || GET_CODE (orig) == LABEL_REF)
  5.3873 ++    {
  5.3874 ++      int subregs = 0;
  5.3875 ++
  5.3876 ++      if (reg == 0)
  5.3877 ++	{
  5.3878 ++	  if (no_new_pseudos)
  5.3879 ++	    abort ();
  5.3880 ++	  else
  5.3881 ++	    reg = gen_reg_rtx (Pmode);
  5.3882 ++
  5.3883 ++	  subregs = 1;
  5.3884 ++	}
  5.3885 ++
  5.3886 ++      emit_move_insn (reg, orig);
  5.3887 ++
  5.3888 ++      /* Only set current function as using pic offset table if flag_pic is
  5.3889 ++         set. This is because this function is also used if
  5.3890 ++         TARGET_HAS_ASM_ADDR_PSEUDOS is set. */
  5.3891 ++      if (flag_pic)
  5.3892 ++	current_function_uses_pic_offset_table = 1;
  5.3893 ++
  5.3894 ++      /* Put a REG_EQUAL note on this insn, so that it can be optimized by
  5.3895 ++         loop.  */
  5.3896 ++      return reg;
  5.3897 ++    }
  5.3898 ++  else if (GET_CODE (orig) == CONST)
  5.3899 ++    {
  5.3900 ++      rtx base, offset;
  5.3901 ++
  5.3902 ++      if (flag_pic
  5.3903 ++	  && GET_CODE (XEXP (orig, 0)) == PLUS
  5.3904 ++	  && XEXP (XEXP (orig, 0), 0) == pic_offset_table_rtx)
  5.3905 ++	return orig;
  5.3906 ++
  5.3907 ++      if (reg == 0)
  5.3908 ++	{
  5.3909 ++	  if (no_new_pseudos)
  5.3910 ++	    abort ();
  5.3911 ++	  else
  5.3912 ++	    reg = gen_reg_rtx (Pmode);
  5.3913 ++	}
  5.3914 ++
  5.3915 ++      if (GET_CODE (XEXP (orig, 0)) == PLUS)
  5.3916 ++	{
  5.3917 ++	  base =
  5.3918 ++	    legitimize_pic_address (XEXP (XEXP (orig, 0), 0), Pmode, reg);
  5.3919 ++	  offset =
  5.3920 ++	    legitimize_pic_address (XEXP (XEXP (orig, 0), 1), Pmode,
  5.3921 ++				    base == reg ? 0 : reg);
  5.3922 ++	}
  5.3923 ++      else
  5.3924 ++	abort ();
  5.3925 ++
  5.3926 ++      if (GET_CODE (offset) == CONST_INT)
  5.3927 ++	{
  5.3928 ++	  /* The base register doesn't really matter, we only want to test
  5.3929 ++	     the index for the appropriate mode.  */
  5.3930 ++	  if (!avr32_const_ok_for_constraint_p (INTVAL (offset), 'I', "Is21"))
  5.3931 ++	    {
  5.3932 ++	      if (!no_new_pseudos)
  5.3933 ++		offset = force_reg (Pmode, offset);
  5.3934 ++	      else
  5.3935 ++		abort ();
  5.3936 ++	    }
  5.3937 ++
  5.3938 ++	  if (GET_CODE (offset) == CONST_INT)
  5.3939 ++	    return plus_constant (base, INTVAL (offset));
  5.3940 ++	}
  5.3941 ++
  5.3942 ++      return gen_rtx_PLUS (Pmode, base, offset);
  5.3943 ++    }
  5.3944 ++
  5.3945 ++  return orig;
  5.3946 ++}
  5.3947 ++
  5.3948 ++/* Generate code to load the PIC register.  */
  5.3949 ++void
  5.3950 ++avr32_load_pic_register (void)
  5.3951 ++{
  5.3952 ++  rtx l1, pic_tmp;
  5.3953 ++  rtx global_offset_table;
  5.3954 ++
  5.3955 ++  if ((current_function_uses_pic_offset_table == 0) || TARGET_NO_INIT_GOT)
  5.3956 ++    return;
  5.3957 ++
  5.3958 ++  if (!flag_pic)
  5.3959 ++    abort ();
  5.3960 ++
  5.3961 ++  l1 = gen_label_rtx ();
  5.3962 ++
  5.3963 ++  global_offset_table = gen_rtx_SYMBOL_REF (Pmode, "_GLOBAL_OFFSET_TABLE_");
  5.3964 ++  pic_tmp =
  5.3965 ++    gen_rtx_CONST (Pmode,
  5.3966 ++		   gen_rtx_MINUS (SImode, gen_rtx_LABEL_REF (Pmode, l1),
  5.3967 ++				  global_offset_table));
  5.3968 ++  emit_insn (gen_pic_load_addr
  5.3969 ++	     (pic_offset_table_rtx, force_const_mem (SImode, pic_tmp)));
  5.3970 ++  emit_insn (gen_pic_compute_got_from_pc (pic_offset_table_rtx, l1));
  5.3971 ++
  5.3972 ++  /* Need to emit this whether or not we obey regdecls, since setjmp/longjmp
  5.3973 ++     can cause life info to screw up.  */
  5.3974 ++  emit_insn (gen_rtx_USE (VOIDmode, pic_offset_table_rtx));
  5.3975 ++}
  5.3976 ++
  5.3977 ++
  5.3978 ++
  5.3979 ++/* This hook should return true if values of type type are returned at the most
  5.3980 ++   significant end of a register (in other words, if they are padded at the
  5.3981 ++   least significant end). You can assume that type is returned in a register;
  5.3982 ++   the caller is required to check this.  Note that the register provided by
  5.3983 ++   FUNCTION_VALUE must be able to hold the complete return value. For example,
  5.3984 ++   if a 1-, 2- or 3-byte structure is returned at the most significant end of a
  5.3985 ++   4-byte register, FUNCTION_VALUE should provide an SImode rtx. */
  5.3986 ++bool
  5.3987 ++avr32_return_in_msb (tree type ATTRIBUTE_UNUSED)
  5.3988 ++{
  5.3989 ++  /* if ( AGGREGATE_TYPE_P (type) ) if ((int_size_in_bytes(type) == 1) ||
  5.3990 ++     ((int_size_in_bytes(type) == 2) && TYPE_ALIGN_UNIT(type) >= 2)) return
  5.3991 ++     false; else return true; */
  5.3992 ++
  5.3993 ++  return false;
  5.3994 ++}
  5.3995 ++
  5.3996 ++
  5.3997 ++/*
  5.3998 ++  Returns one if a certain function value is going to be returned in memory
  5.3999 ++  and zero if it is going to be returned in a register.
  5.4000 ++
  5.4001 ++  BLKmode and all other modes that is larger than 64 bits are returned in
  5.4002 ++  memory.
  5.4003 ++*/
  5.4004 ++bool
  5.4005 ++avr32_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED)
  5.4006 ++{
  5.4007 ++  if (TYPE_MODE (type) == VOIDmode)
  5.4008 ++    return false;
  5.4009 ++
  5.4010 ++  if (int_size_in_bytes (type) > (2 * UNITS_PER_WORD)
  5.4011 ++      || int_size_in_bytes (type) == -1)
  5.4012 ++    {
  5.4013 ++      return true;
  5.4014 ++    }
  5.4015 ++
  5.4016 ++  /* If we have an aggregate then use the same mechanism as when checking if
  5.4017 ++     it should be passed on the stack. */
  5.4018 ++  if (type
  5.4019 ++      && AGGREGATE_TYPE_P (type)
  5.4020 ++      && (*targetm.calls.must_pass_in_stack) (TYPE_MODE (type), type))
  5.4021 ++    return true;
  5.4022 ++
  5.4023 ++  return false;
  5.4024 ++}
  5.4025 ++
  5.4026 ++
  5.4027 ++/* Output the constant part of the trampoline.
  5.4028 ++   lddpc    r0, pc[0x8:e] ; load static chain register
  5.4029 ++   lddpc    pc, pc[0x8:e] ; jump to subrutine
  5.4030 ++   .long    0		 ; Address to static chain,
  5.4031 ++			 ; filled in by avr32_initialize_trampoline()
  5.4032 ++   .long    0		 ; Address to subrutine,
  5.4033 ++			 ; filled in by avr32_initialize_trampoline()
  5.4034 ++*/
  5.4035 ++void
  5.4036 ++avr32_trampoline_template (FILE * file)
  5.4037 ++{
  5.4038 ++  fprintf (file, "\tlddpc    r0, pc[8]\n");
  5.4039 ++  fprintf (file, "\tlddpc    pc, pc[8]\n");
  5.4040 ++  /* make room for the address of the static chain. */
  5.4041 ++  fprintf (file, "\t.long\t0\n");
  5.4042 ++  /* make room for the address to the subrutine. */
  5.4043 ++  fprintf (file, "\t.long\t0\n");
  5.4044 ++}
  5.4045 ++
  5.4046 ++
  5.4047 ++/*
  5.4048 ++  Initialize the variable parts of a trampoline.
  5.4049 ++*/
  5.4050 ++void
  5.4051 ++avr32_initialize_trampoline (rtx addr, rtx fnaddr, rtx static_chain)
  5.4052 ++{
  5.4053 ++  /* Store the address to the static chain. */
  5.4054 ++  emit_move_insn (gen_rtx_MEM
  5.4055 ++		  (SImode, plus_constant (addr, TRAMPOLINE_SIZE - 4)),
  5.4056 ++		  static_chain);
  5.4057 ++
  5.4058 ++  /* Store the address to the function. */
  5.4059 ++  emit_move_insn (gen_rtx_MEM (SImode, plus_constant (addr, TRAMPOLINE_SIZE)),
  5.4060 ++		  fnaddr);
  5.4061 ++
  5.4062 ++  emit_insn (gen_cache (gen_rtx_REG (SImode, 13),
  5.4063 ++			gen_rtx_CONST_INT (SImode,
  5.4064 ++					   AVR32_CACHE_INVALIDATE_ICACHE)));
  5.4065 ++}
  5.4066 ++
  5.4067 ++/* Return nonzero if X is valid as an addressing register.  */
  5.4068 ++int
  5.4069 ++avr32_address_register_rtx_p (rtx x, int strict_p)
  5.4070 ++{
  5.4071 ++  int regno;
  5.4072 ++
  5.4073 ++  if (!register_operand(x, GET_MODE(x)))
  5.4074 ++    return 0;
  5.4075 ++
  5.4076 ++  /* If strict we require the register to be a hard register. */
  5.4077 ++  if (strict_p
  5.4078 ++      && !REG_P(x))
  5.4079 ++    return 0;
  5.4080 ++
  5.4081 ++  regno = REGNO (x);
  5.4082 ++
  5.4083 ++  if (strict_p)
  5.4084 ++    return REGNO_OK_FOR_BASE_P (regno);
  5.4085 ++
  5.4086 ++  return (regno <= LAST_REGNUM || regno >= FIRST_PSEUDO_REGISTER);
  5.4087 ++}
  5.4088 ++
  5.4089 ++/* Return nonzero if INDEX is valid for an address index operand.  */
  5.4090 ++int
  5.4091 ++avr32_legitimate_index_p (enum machine_mode mode, rtx index, int strict_p)
  5.4092 ++{
  5.4093 ++  enum rtx_code code = GET_CODE (index);
  5.4094 ++
  5.4095 ++  if (GET_MODE_SIZE (mode) > 8)
  5.4096 ++    return 0;
  5.4097 ++
  5.4098 ++  /* Standard coprocessor addressing modes.  */
  5.4099 ++  if (code == CONST_INT)
  5.4100 ++    {
  5.4101 ++      if (TARGET_HARD_FLOAT && GET_MODE_CLASS (mode) == MODE_FLOAT)
  5.4102 ++	/* Coprocessor mem insns has a smaller reach than ordinary mem insns */
  5.4103 ++	return CONST_OK_FOR_CONSTRAINT_P (INTVAL (index), 'K', "Ku14");
  5.4104 ++      else
  5.4105 ++	return CONST_OK_FOR_CONSTRAINT_P (INTVAL (index), 'K', "Ks16");
  5.4106 ++    }
  5.4107 ++
  5.4108 ++  if (avr32_address_register_rtx_p (index, strict_p))
  5.4109 ++    return 1;
  5.4110 ++
  5.4111 ++  if (code == MULT)
  5.4112 ++    {
  5.4113 ++      rtx xiop0 = XEXP (index, 0);
  5.4114 ++      rtx xiop1 = XEXP (index, 1);
  5.4115 ++      return ((avr32_address_register_rtx_p (xiop0, strict_p)
  5.4116 ++	       && power_of_two_operand (xiop1, SImode)
  5.4117 ++	       && (INTVAL (xiop1) <= 8))
  5.4118 ++	      || (avr32_address_register_rtx_p (xiop1, strict_p)
  5.4119 ++		  && power_of_two_operand (xiop0, SImode)
  5.4120 ++		  && (INTVAL (xiop0) <= 8)));
  5.4121 ++    }
  5.4122 ++  else if (code == ASHIFT)
  5.4123 ++    {
  5.4124 ++      rtx op = XEXP (index, 1);
  5.4125 ++
  5.4126 ++      return (avr32_address_register_rtx_p (XEXP (index, 0), strict_p)
  5.4127 ++	      && GET_CODE (op) == CONST_INT
  5.4128 ++	      && INTVAL (op) > 0 && INTVAL (op) <= 3);
  5.4129 ++    }
  5.4130 ++
  5.4131 ++  return 0;
  5.4132 ++}
  5.4133 ++
  5.4134 ++/*
  5.4135 ++  Used in the GO_IF_LEGITIMATE_ADDRESS macro. Returns a nonzero value if
  5.4136 ++  the RTX x is a legitimate memory address.
  5.4137 ++
  5.4138 ++  Returns NO_REGS if the address is not legatime, GENERAL_REGS or ALL_REGS
  5.4139 ++  if it is.
  5.4140 ++*/
  5.4141 ++
  5.4142 ++/* Forward declaration*/
  5.4143 ++int is_minipool_label (rtx label);
  5.4144 ++
  5.4145 ++int
  5.4146 ++avr32_legitimate_address (enum machine_mode mode, rtx x, int strict)
  5.4147 ++{
  5.4148 ++
  5.4149 ++  switch (GET_CODE (x))
  5.4150 ++    {
  5.4151 ++    case REG:
  5.4152 ++      return avr32_address_register_rtx_p (x, strict);
  5.4153 ++    case CONST_INT:
  5.4154 ++      return ((mode==SImode)
  5.4155 ++              && CONST_OK_FOR_CONSTRAINT_P(INTVAL(x), 'K', "Ks17"));
  5.4156 ++    case CONST:
  5.4157 ++      {
  5.4158 ++	rtx label = avr32_find_symbol (x);
  5.4159 ++	if (label
  5.4160 ++	    &&
  5.4161 ++	    ((CONSTANT_POOL_ADDRESS_P (label)
  5.4162 ++	      && !(flag_pic
  5.4163 ++		   && (symbol_mentioned_p (get_pool_constant (label))
  5.4164 ++		       || label_mentioned_p (get_pool_constant (label)))))
  5.4165 ++	     /* TODO! Can this ever happen??? */
  5.4166 ++	     || ((GET_CODE (label) == LABEL_REF)
  5.4167 ++		 && GET_CODE (XEXP (label, 0)) == CODE_LABEL
  5.4168 ++		 && is_minipool_label (XEXP (label, 0)))
  5.4169 ++             /*|| ((GET_CODE (label) == SYMBOL_REF)
  5.4170 ++                 && mode == SImode
  5.4171 ++                 && SYMBOL_REF_RMW_ADDR(label))*/))
  5.4172 ++	  {
  5.4173 ++	    return TRUE;
  5.4174 ++	  }
  5.4175 ++      }
  5.4176 ++      break;
  5.4177 ++    case LABEL_REF:
  5.4178 ++      if (GET_CODE (XEXP (x, 0)) == CODE_LABEL
  5.4179 ++	  && is_minipool_label (XEXP (x, 0)))
  5.4180 ++	{
  5.4181 ++	  return TRUE;
  5.4182 ++	}
  5.4183 ++      break;
  5.4184 ++    case SYMBOL_REF:
  5.4185 ++      {
  5.4186 ++	if (CONSTANT_POOL_ADDRESS_P (x)
  5.4187 ++	    && !(flag_pic
  5.4188 ++		 && (symbol_mentioned_p (get_pool_constant (x))
  5.4189 ++		     || label_mentioned_p (get_pool_constant (x)))))
  5.4190 ++	  return TRUE;
  5.4191 ++	else if (SYMBOL_REF_RCALL_FUNCTION_P (x)
  5.4192 ++                 || (mode == SImode
  5.4193 ++                     && SYMBOL_REF_RMW_ADDR (x)))
  5.4194 ++	  return TRUE;
  5.4195 ++	break;
  5.4196 ++      }
  5.4197 ++    case PRE_DEC:		/* (pre_dec (...)) */
  5.4198 ++    case POST_INC:		/* (post_inc (...)) */
  5.4199 ++      return avr32_address_register_rtx_p (XEXP (x, 0), strict);
  5.4200 ++    case PLUS:			/* (plus (...) (...)) */
  5.4201 ++      {
  5.4202 ++	rtx xop0 = XEXP (x, 0);
  5.4203 ++	rtx xop1 = XEXP (x, 1);
  5.4204 ++
  5.4205 ++	return ((avr32_address_register_rtx_p (xop0, strict)
  5.4206 ++		 && avr32_legitimate_index_p (mode, xop1, strict))
  5.4207 ++		|| (avr32_address_register_rtx_p (xop1, strict)
  5.4208 ++		    && avr32_legitimate_index_p (mode, xop0, strict)));
  5.4209 ++      }
  5.4210 ++    default:
  5.4211 ++      break;
  5.4212 ++    }
  5.4213 ++
  5.4214 ++  return FALSE;
  5.4215 ++}
  5.4216 ++
  5.4217 ++
  5.4218 ++int
  5.4219 ++avr32_const_ok_for_move (HOST_WIDE_INT c)
  5.4220 ++{
  5.4221 ++  if ( TARGET_V2_INSNS )
  5.4222 ++    return ( avr32_const_ok_for_constraint_p (c, 'K', "Ks21")
  5.4223 ++             /* movh instruction */
  5.4224 ++             || avr32_hi16_immediate_operand (GEN_INT(c), VOIDmode) );
  5.4225 ++  else
  5.4226 ++    return avr32_const_ok_for_constraint_p (c, 'K', "Ks21");
  5.4227 ++}
  5.4228 ++
  5.4229 ++int
  5.4230 ++avr32_const_double_immediate (rtx value)
  5.4231 ++{
  5.4232 ++  HOST_WIDE_INT hi, lo;
  5.4233 ++
  5.4234 ++  if (GET_CODE (value) != CONST_DOUBLE)
  5.4235 ++    return FALSE;
  5.4236 ++
  5.4237 ++  if (SCALAR_FLOAT_MODE_P (GET_MODE (value)))
  5.4238 ++    {
  5.4239 ++      HOST_WIDE_INT target_float[2];
  5.4240 ++      hi = lo = 0;
  5.4241 ++      real_to_target (target_float, CONST_DOUBLE_REAL_VALUE (value),
  5.4242 ++		      GET_MODE (value));
  5.4243 ++      lo = target_float[0];
  5.4244 ++      hi = target_float[1];
  5.4245 ++    }
  5.4246 ++  else
  5.4247 ++    {
  5.4248 ++      hi = CONST_DOUBLE_HIGH (value);
  5.4249 ++      lo = CONST_DOUBLE_LOW (value);
  5.4250 ++    }
  5.4251 ++
  5.4252 ++  if (avr32_const_ok_for_constraint_p (lo, 'K', "Ks21")
  5.4253 ++      && (GET_MODE (value) == SFmode
  5.4254 ++	  || avr32_const_ok_for_constraint_p (hi, 'K', "Ks21")))
  5.4255 ++    {
  5.4256 ++      return TRUE;
  5.4257 ++    }
  5.4258 ++
  5.4259 ++  return FALSE;
  5.4260 ++}
  5.4261 ++
  5.4262 ++
  5.4263 ++int
  5.4264 ++avr32_legitimate_constant_p (rtx x)
  5.4265 ++{
  5.4266 ++  switch (GET_CODE (x))
  5.4267 ++    {
  5.4268 ++    case CONST_INT:
  5.4269 ++      /* Check if we should put large immediate into constant pool
  5.4270 ++       or load them directly with mov/orh.*/
  5.4271 ++      if (!avr32_imm_in_const_pool)
  5.4272 ++	return 1;
  5.4273 ++
  5.4274 ++      return avr32_const_ok_for_move (INTVAL (x));
  5.4275 ++    case CONST_DOUBLE:
  5.4276 ++      /* Check if we should put large immediate into constant pool
  5.4277 ++         or load them directly with mov/orh.*/
  5.4278 ++      if (!avr32_imm_in_const_pool)
  5.4279 ++	return 1;
  5.4280 ++
  5.4281 ++      if (GET_MODE (x) == SFmode
  5.4282 ++	  || GET_MODE (x) == DFmode || GET_MODE (x) == DImode)
  5.4283 ++	return avr32_const_double_immediate (x);
  5.4284 ++      else
  5.4285 ++	return 0;
  5.4286 ++    case LABEL_REF:
  5.4287 ++    case SYMBOL_REF:
  5.4288 ++      return avr32_find_symbol (x) && (flag_pic || TARGET_HAS_ASM_ADDR_PSEUDOS);
  5.4289 ++    case CONST:
  5.4290 ++    case HIGH:
  5.4291 ++    case CONST_VECTOR:
  5.4292 ++      return 0;
  5.4293 ++    default:
  5.4294 ++      printf ("%s():\n", __FUNCTION__);
  5.4295 ++      debug_rtx (x);
  5.4296 ++      return 1;
  5.4297 ++    }
  5.4298 ++}
  5.4299 ++
  5.4300 ++
  5.4301 ++/* Strip any special encoding from labels */
  5.4302 ++const char *
  5.4303 ++avr32_strip_name_encoding (const char *name)
  5.4304 ++{
  5.4305 ++  const char *stripped = name;
  5.4306 ++
  5.4307 ++  while (1)
  5.4308 ++    {
  5.4309 ++      switch (stripped[0])
  5.4310 ++	{
  5.4311 ++	case '#':
  5.4312 ++	  stripped = strchr (name + 1, '#') + 1;
  5.4313 ++	  break;
  5.4314 ++	case '*':
  5.4315 ++	  stripped = &stripped[1];
  5.4316 ++	  break;
  5.4317 ++	default:
  5.4318 ++	  return stripped;
  5.4319 ++	}
  5.4320 ++    }
  5.4321 ++}
  5.4322 ++
  5.4323 ++
  5.4324 ++
  5.4325 ++/* Do anything needed before RTL is emitted for each function.  */
  5.4326 ++static struct machine_function *
  5.4327 ++avr32_init_machine_status (void)
  5.4328 ++{
  5.4329 ++  struct machine_function *machine;
  5.4330 ++  machine =
  5.4331 ++    (machine_function *) ggc_alloc_cleared (sizeof (machine_function));
  5.4332 ++
  5.4333 ++#if AVR32_FT_UNKNOWN != 0
  5.4334 ++  machine->func_type = AVR32_FT_UNKNOWN;
  5.4335 ++#endif
  5.4336 ++
  5.4337 ++  machine->minipool_label_head = 0;
  5.4338 ++  machine->minipool_label_tail = 0;
  5.4339 ++  machine->ifcvt_after_reload = 0;
  5.4340 ++  return machine;
  5.4341 ++}
  5.4342 ++
  5.4343 ++void
  5.4344 ++avr32_init_expanders (void)
  5.4345 ++{
  5.4346 ++  /* Arrange to initialize and mark the machine per-function status.  */
  5.4347 ++  init_machine_status = avr32_init_machine_status;
  5.4348 ++}
  5.4349 ++
  5.4350 ++
  5.4351 ++/* Return an RTX indicating where the return address to the
  5.4352 ++   calling function can be found.  */
  5.4353 ++
  5.4354 ++rtx
  5.4355 ++avr32_return_addr (int count, rtx frame ATTRIBUTE_UNUSED)
  5.4356 ++{
  5.4357 ++  if (count != 0)
  5.4358 ++    return NULL_RTX;
  5.4359 ++
  5.4360 ++  return get_hard_reg_initial_val (Pmode, LR_REGNUM);
  5.4361 ++}
  5.4362 ++
  5.4363 ++
  5.4364 ++void
  5.4365 ++avr32_encode_section_info (tree decl, rtx rtl, int first)
  5.4366 ++{
  5.4367 ++  default_encode_section_info(decl, rtl, first);
  5.4368 ++
  5.4369 ++  if ( TREE_CODE (decl) == VAR_DECL
  5.4370 ++       && (GET_CODE (XEXP (rtl, 0)) == SYMBOL_REF)
  5.4371 ++       && (lookup_attribute ("rmw_addressable", DECL_ATTRIBUTES (decl))
  5.4372 ++           || TARGET_RMW_ADDRESSABLE_DATA) ){
  5.4373 ++    if ( !TARGET_RMW || flag_pic )
  5.4374 ++      return;
  5.4375 ++    SYMBOL_REF_FLAGS (XEXP (rtl, 0)) |= (1 << SYMBOL_FLAG_RMW_ADDR_SHIFT);
  5.4376 ++  }
  5.4377 ++}
  5.4378 ++
  5.4379 ++void
  5.4380 ++avr32_asm_output_label (FILE * stream, const char *name)
  5.4381 ++{
  5.4382 ++  name = avr32_strip_name_encoding (name);
  5.4383 ++
  5.4384 ++  /* Print the label. */
  5.4385 ++  assemble_name (stream, name);
  5.4386 ++  fprintf (stream, ":\n");
  5.4387 ++}
  5.4388 ++
  5.4389 ++
  5.4390 ++
  5.4391 ++void
  5.4392 ++avr32_asm_weaken_label (FILE * stream, const char *name)
  5.4393 ++{
  5.4394 ++  fprintf (stream, "\t.weak ");
  5.4395 ++  assemble_name (stream, name);
  5.4396 ++  fprintf (stream, "\n");
  5.4397 ++}
  5.4398 ++
  5.4399 ++/*
  5.4400 ++  Checks if a labelref is equal to a reserved word in the assembler. If it is,
  5.4401 ++  insert a '_' before the label name.
  5.4402 ++*/
  5.4403 ++void
  5.4404 ++avr32_asm_output_labelref (FILE * stream, const char *name)
  5.4405 ++{
  5.4406 ++  int verbatim = FALSE;
  5.4407 ++  const char *stripped = name;
  5.4408 ++  int strip_finished = FALSE;
  5.4409 ++
  5.4410 ++  while (!strip_finished)
  5.4411 ++    {
  5.4412 ++      switch (stripped[0])
  5.4413 ++	{
  5.4414 ++	case '#':
  5.4415 ++	  stripped = strchr (name + 1, '#') + 1;
  5.4416 ++	  break;
  5.4417 ++	case '*':
  5.4418 ++	  stripped = &stripped[1];
  5.4419 ++	  verbatim = TRUE;
  5.4420 ++	  break;
  5.4421 ++	default:
  5.4422 ++	  strip_finished = TRUE;
  5.4423 ++	  break;
  5.4424 ++	}
  5.4425 ++    }
  5.4426 ++
  5.4427 ++  if (verbatim)
  5.4428 ++    fputs (stripped, stream);
  5.4429 ++  else
  5.4430 ++    asm_fprintf (stream, "%U%s", stripped);
  5.4431 ++}
  5.4432 ++
  5.4433 ++
  5.4434 ++
  5.4435 ++/*
  5.4436 ++   Check if the comparison in compare_exp is redundant
  5.4437 ++   for the condition given in next_cond given that the
  5.4438 ++   needed flags are already set by an earlier instruction.
  5.4439 ++   Uses cc_prev_status to check this.
  5.4440 ++
  5.4441 ++   Returns NULL_RTX if the compare is not redundant
  5.4442 ++   or the new condition to use in the conditional
  5.4443 ++   instruction if the compare is redundant.
  5.4444 ++*/
  5.4445 ++static rtx
  5.4446 ++is_compare_redundant (rtx compare_exp, rtx next_cond)
  5.4447 ++{
  5.4448 ++  int z_flag_valid = FALSE;
  5.4449 ++  int n_flag_valid = FALSE;
  5.4450 ++  rtx new_cond;
  5.4451 ++
  5.4452 ++  if (GET_CODE (compare_exp) != COMPARE
  5.4453 ++      && GET_CODE (compare_exp) != AND)
  5.4454 ++    return NULL_RTX;
  5.4455 ++
  5.4456 ++
  5.4457 ++  if (rtx_equal_p (cc_prev_status.mdep.value, compare_exp))
  5.4458 ++    {
  5.4459 ++      /* cc0 already contains the correct comparison -> delete cmp insn */
  5.4460 ++      return next_cond;
  5.4461 ++    }
  5.4462 ++
  5.4463 ++  if (GET_MODE (compare_exp) != SImode)
  5.4464 ++    return NULL_RTX;
  5.4465 ++
  5.4466 ++  switch (cc_prev_status.mdep.flags)
  5.4467 ++    {
  5.4468 ++    case CC_SET_VNCZ:
  5.4469 ++    case CC_SET_NCZ:
  5.4470 ++      n_flag_valid = TRUE;
  5.4471 ++    case CC_SET_CZ:
  5.4472 ++    case CC_SET_Z:
  5.4473 ++      z_flag_valid = TRUE;
  5.4474 ++    }
  5.4475 ++
  5.4476 ++  if (cc_prev_status.mdep.value
  5.4477 ++      && GET_CODE (compare_exp) == COMPARE
  5.4478 ++      && REG_P (XEXP (compare_exp, 0))
  5.4479 ++      && REGNO (XEXP (compare_exp, 0)) == REGNO (cc_prev_status.mdep.value)
  5.4480 ++      && GET_CODE (XEXP (compare_exp, 1)) == CONST_INT
  5.4481 ++      && next_cond != NULL_RTX)
  5.4482 ++    {
  5.4483 ++      if (INTVAL (XEXP (compare_exp, 1)) == 0
  5.4484 ++	  && z_flag_valid
  5.4485 ++	  && (GET_CODE (next_cond) == EQ || GET_CODE (next_cond) == NE))
  5.4486 ++	/* We can skip comparison Z flag is already reflecting ops[0] */
  5.4487 ++	return next_cond;
  5.4488 ++      else if (n_flag_valid
  5.4489 ++	       && ((INTVAL (XEXP (compare_exp, 1)) == 0
  5.4490 ++		    && (GET_CODE (next_cond) == GE
  5.4491 ++			|| GET_CODE (next_cond) == LT))
  5.4492 ++		   || (INTVAL (XEXP (compare_exp, 1)) == -1
  5.4493 ++		       && (GET_CODE (next_cond) == GT
  5.4494 ++			   || GET_CODE (next_cond) == LE))))
  5.4495 ++	{
  5.4496 ++	  /* We can skip comparison N flag is already reflecting ops[0],
  5.4497 ++	     which means that we can use the mi/pl conditions to check if
  5.4498 ++	     ops[0] is GE or LT 0. */
  5.4499 ++	  if ((GET_CODE (next_cond) == GE) || (GET_CODE (next_cond) == GT))
  5.4500 ++	    new_cond =
  5.4501 ++	      gen_rtx_UNSPEC (GET_MODE (next_cond), gen_rtvec (2, cc0_rtx, const0_rtx),
  5.4502 ++			      UNSPEC_COND_PL);
  5.4503 ++	  else
  5.4504 ++	    new_cond =
  5.4505 ++	      gen_rtx_UNSPEC (GET_MODE (next_cond), gen_rtvec (2, cc0_rtx, const0_rtx),
  5.4506 ++			      UNSPEC_COND_MI);
  5.4507 ++	  return new_cond;
  5.4508 ++	}
  5.4509 ++    }
  5.4510 ++  return NULL_RTX;
  5.4511 ++}
  5.4512 ++
  5.4513 ++/* Updates cc_status.  */
  5.4514 ++void
  5.4515 ++avr32_notice_update_cc (rtx exp, rtx insn)
  5.4516 ++{
  5.4517 ++  enum attr_cc attr_cc = get_attr_cc (insn);
  5.4518 ++  
  5.4519 ++  if ( attr_cc == CC_SET_Z_IF_NOT_V2 )
  5.4520 ++    if (TARGET_V2_INSNS)
  5.4521 ++      attr_cc = CC_NONE;
  5.4522 ++    else
  5.4523 ++      attr_cc = CC_SET_Z;
  5.4524 ++  
  5.4525 ++  switch (attr_cc)
  5.4526 ++    {
  5.4527 ++    case CC_CALL_SET:
  5.4528 ++      CC_STATUS_INIT;
  5.4529 ++      FPCC_STATUS_INIT;
  5.4530 ++      /* Check if the function call returns a value in r12 */
  5.4531 ++      if (REG_P (recog_data.operand[0])
  5.4532 ++	  && REGNO (recog_data.operand[0]) == RETVAL_REGNUM)
  5.4533 ++	{
  5.4534 ++	  cc_status.flags = 0;
  5.4535 ++	  cc_status.mdep.value =
  5.4536 ++	    gen_rtx_COMPARE (SImode, recog_data.operand[0], const0_rtx);
  5.4537 ++	  cc_status.mdep.flags = CC_SET_VNCZ;
  5.4538 ++          cc_status.mdep.cond_exec_cmp_clobbered = 0;
  5.4539 ++
  5.4540 ++	}
  5.4541 ++      break;
  5.4542 ++    case CC_COMPARE:
  5.4543 ++      {
  5.4544 ++        /* Check that compare will not be optimized away if so nothing should
  5.4545 ++           be done */
  5.4546 ++        rtx compare_exp = SET_SRC (exp);
  5.4547 ++        /* Check if we have a tst expression. If so convert it to a
  5.4548 ++           compare with 0. */
  5.4549 ++        if ( REG_P (SET_SRC (exp)) )
  5.4550 ++          compare_exp = gen_rtx_COMPARE (GET_MODE (SET_SRC (exp)),
  5.4551 ++                                         SET_SRC (exp),
  5.4552 ++                                         const0_rtx);
  5.4553 ++
  5.4554 ++        if (is_compare_redundant (compare_exp, get_next_insn_cond (insn)) ==
  5.4555 ++            NULL_RTX)
  5.4556 ++          {
  5.4557 ++
  5.4558 ++            /* Reset the nonstandard flag */
  5.4559 ++            CC_STATUS_INIT;
  5.4560 ++            cc_status.flags = 0;
  5.4561 ++            cc_status.mdep.value = compare_exp;
  5.4562 ++            cc_status.mdep.flags = CC_SET_VNCZ;
  5.4563 ++            cc_status.mdep.cond_exec_cmp_clobbered = 0;
  5.4564 ++         }
  5.4565 ++      }
  5.4566 ++      break;
  5.4567 ++    case CC_CMP_COND_INSN:
  5.4568 ++      {
  5.4569 ++	/* Conditional insn that emit the compare itself. */
  5.4570 ++        rtx cmp;
  5.4571 ++        rtx cmp_op0, cmp_op1;
  5.4572 ++        rtx cond;
  5.4573 ++        rtx dest;
  5.4574 ++        rtx next_insn = next_nonnote_insn (insn);
  5.4575 ++
  5.4576 ++        if ( GET_CODE (exp) == COND_EXEC )
  5.4577 ++          {
  5.4578 ++            cmp_op0 = XEXP (COND_EXEC_TEST (exp), 0);
  5.4579 ++            cmp_op1 = XEXP (COND_EXEC_TEST (exp), 1);
  5.4580 ++            cond = COND_EXEC_TEST (exp);
  5.4581 ++            dest = SET_DEST (COND_EXEC_CODE (exp));
  5.4582 ++          }
  5.4583 ++        else
  5.4584 ++          {
  5.4585 ++            /* If then else conditional. compare operands are in operands
  5.4586 ++               4 and 5. */
  5.4587 ++            cmp_op0 = recog_data.operand[4];
  5.4588 ++            cmp_op1 = recog_data.operand[5];
  5.4589 ++            cond = recog_data.operand[1];
  5.4590 ++            dest = SET_DEST (exp);
  5.4591 ++          }
  5.4592 ++
  5.4593 ++        if ( GET_CODE (cmp_op0) == AND )
  5.4594 ++          cmp = cmp_op0;
  5.4595 ++        else
  5.4596 ++          cmp = gen_rtx_COMPARE (GET_MODE (cmp_op0),
  5.4597 ++                                 cmp_op0,
  5.4598 ++                                 cmp_op1);
  5.4599 ++
  5.4600 ++        /* Check if the conditional insns updates a register present
  5.4601 ++           in the comparison, if so then we must reset the cc_status. */
  5.4602 ++        if (REG_P (dest)
  5.4603 ++            && (reg_mentioned_p (dest, cmp_op0)
  5.4604 ++                || reg_mentioned_p (dest, cmp_op1))
  5.4605 ++            && GET_CODE (exp) != COND_EXEC )
  5.4606 ++          {
  5.4607 ++            CC_STATUS_INIT;
  5.4608 ++          }
  5.4609 ++	else if (is_compare_redundant (cmp, cond) == NULL_RTX)
  5.4610 ++	  {
  5.4611 ++	    /* Reset the nonstandard flag */
  5.4612 ++	    CC_STATUS_INIT;
  5.4613 ++            if ( GET_CODE (cmp_op0) == AND )
  5.4614 ++              {
  5.4615 ++                cc_status.flags = CC_INVERTED;
  5.4616 ++                cc_status.mdep.flags = CC_SET_Z;
  5.4617 ++              }
  5.4618 ++            else
  5.4619 ++              {
  5.4620 ++                cc_status.flags = 0;
  5.4621 ++                cc_status.mdep.flags = CC_SET_VNCZ;
  5.4622 ++              }
  5.4623 ++	    cc_status.mdep.value = cmp;
  5.4624 ++            cc_status.mdep.cond_exec_cmp_clobbered = 0;
  5.4625 ++	  }
  5.4626 ++
  5.4627 ++
  5.4628 ++        /* Check if we have a COND_EXEC insn which updates one
  5.4629 ++           of the registers in the compare status. */
  5.4630 ++        if (REG_P (dest)
  5.4631 ++            && (reg_mentioned_p (dest, cmp_op0)
  5.4632 ++                || reg_mentioned_p (dest, cmp_op1))
  5.4633 ++            && GET_CODE (exp) == COND_EXEC )
  5.4634 ++          cc_status.mdep.cond_exec_cmp_clobbered = 1;
  5.4635 ++        
  5.4636 ++        if ( cc_status.mdep.cond_exec_cmp_clobbered 
  5.4637 ++             && GET_CODE (exp) == COND_EXEC
  5.4638 ++             && next_insn != NULL
  5.4639 ++             && INSN_P (next_insn)
  5.4640 ++             && !(GET_CODE (PATTERN (next_insn)) == COND_EXEC
  5.4641 ++                  && rtx_equal_p (XEXP (COND_EXEC_TEST (PATTERN (next_insn)), 0), cmp_op0)
  5.4642 ++                  && rtx_equal_p (XEXP (COND_EXEC_TEST (PATTERN (next_insn)), 1), cmp_op1)
  5.4643 ++                  && (GET_CODE (COND_EXEC_TEST (PATTERN (next_insn))) == GET_CODE (cond)
  5.4644 ++                      || GET_CODE (COND_EXEC_TEST (PATTERN (next_insn))) == reverse_condition (GET_CODE (cond)))) )
  5.4645 ++          {
  5.4646 ++            /* We have a sequence of conditional insns where the compare status has been clobbered
  5.4647 ++               since the compare no longer reflects the content of the values to compare. */
  5.4648 ++            CC_STATUS_INIT;
  5.4649 ++            cc_status.mdep.cond_exec_cmp_clobbered = 1;
  5.4650 ++          }
  5.4651 ++        
  5.4652 ++      }
  5.4653 ++      break;
  5.4654 ++    case CC_FPCOMPARE:
  5.4655 ++      /* Check that floating-point compare will not be optimized away if so
  5.4656 ++         nothing should be done */
  5.4657 ++      if (!rtx_equal_p (cc_prev_status.mdep.fpvalue, SET_SRC (exp)))
  5.4658 ++	{
  5.4659 ++	  /* cc0 already contains the correct comparison -> delete cmp insn */
  5.4660 ++	  /* Reset the nonstandard flag */
  5.4661 ++	  cc_status.mdep.fpvalue = SET_SRC (exp);
  5.4662 ++	  cc_status.mdep.fpflags = CC_SET_CZ;
  5.4663 ++	}
  5.4664 ++      break;
  5.4665 ++    case CC_FROM_FPCC:
  5.4666 ++      /* Flags are updated with flags from Floating-point coprocessor, set
  5.4667 ++         CC_NOT_SIGNED flag since the flags are set so that unsigned
  5.4668 ++         condidion codes can be used directly. */
  5.4669 ++      CC_STATUS_INIT;
  5.4670 ++      cc_status.flags = CC_NOT_SIGNED;
  5.4671 ++      cc_status.mdep.value = cc_status.mdep.fpvalue;
  5.4672 ++      cc_status.mdep.flags = cc_status.mdep.fpflags;
  5.4673 ++      break;
  5.4674 ++    case CC_BLD:
  5.4675 ++      /* Bit load is kind of like an inverted testsi, because the Z flag is
  5.4676 ++         inverted */
  5.4677 ++      CC_STATUS_INIT;
  5.4678 ++      cc_status.flags = CC_INVERTED;
  5.4679 ++      cc_status.mdep.value = SET_SRC (exp);
  5.4680 ++      cc_status.mdep.flags = CC_SET_Z;
  5.4681 ++      cc_status.mdep.cond_exec_cmp_clobbered = 0;
  5.4682 ++      break;
  5.4683 ++    case CC_NONE:
  5.4684 ++      /* Insn does not affect CC at all. Check if the instruction updates
  5.4685 ++         some of the register currently reflected in cc0 */
  5.4686 ++
  5.4687 ++      if ((GET_CODE (exp) == SET)
  5.4688 ++	  && (cc_status.value1 || cc_status.value2 || cc_status.mdep.value)
  5.4689 ++	  && (reg_mentioned_p (SET_DEST (exp), cc_status.value1)
  5.4690 ++	      || reg_mentioned_p (SET_DEST (exp), cc_status.value2)
  5.4691 ++	      || reg_mentioned_p (SET_DEST (exp), cc_status.mdep.value)))
  5.4692 ++	{
  5.4693 ++	  CC_STATUS_INIT;
  5.4694 ++	}
  5.4695 ++
  5.4696 ++      /* If this is a parallel we must step through each of the parallel
  5.4697 ++         expressions */
  5.4698 ++      if (GET_CODE (exp) == PARALLEL)
  5.4699 ++	{
  5.4700 ++	  int i;
  5.4701 ++	  for (i = 0; i < XVECLEN (exp, 0); ++i)
  5.4702 ++	    {
  5.4703 ++	      rtx vec_exp = XVECEXP (exp, 0, i);
  5.4704 ++	      if ((GET_CODE (vec_exp) == SET)
  5.4705 ++		  && (cc_status.value1 || cc_status.value2
  5.4706 ++		      || cc_status.mdep.value)
  5.4707 ++		  && (reg_mentioned_p (SET_DEST (vec_exp), cc_status.value1)
  5.4708 ++		      || reg_mentioned_p (SET_DEST (vec_exp),
  5.4709 ++					  cc_status.value2)
  5.4710 ++		      || reg_mentioned_p (SET_DEST (vec_exp),
  5.4711 ++					  cc_status.mdep.value)))
  5.4712 ++		{
  5.4713 ++		  CC_STATUS_INIT;
  5.4714 ++		}
  5.4715 ++	    }
  5.4716 ++	}
  5.4717 ++
  5.4718 ++      /* Check if we have memory opartions with post_inc or pre_dec on the
  5.4719 ++         register currently reflected in cc0 */
  5.4720 ++      if (GET_CODE (exp) == SET
  5.4721 ++	  && GET_CODE (SET_SRC (exp)) == MEM
  5.4722 ++	  && (GET_CODE (XEXP (SET_SRC (exp), 0)) == POST_INC
  5.4723 ++	      || GET_CODE (XEXP (SET_SRC (exp), 0)) == PRE_DEC)
  5.4724 ++	  &&
  5.4725 ++	  (reg_mentioned_p
  5.4726 ++	   (XEXP (XEXP (SET_SRC (exp), 0), 0), cc_status.value1)
  5.4727 ++	   || reg_mentioned_p (XEXP (XEXP (SET_SRC (exp), 0), 0),
  5.4728 ++			       cc_status.value2)
  5.4729 ++	   || reg_mentioned_p (XEXP (XEXP (SET_SRC (exp), 0), 0),
  5.4730 ++			       cc_status.mdep.value)))
  5.4731 ++	CC_STATUS_INIT;
  5.4732 ++
  5.4733 ++      if (GET_CODE (exp) == SET
  5.4734 ++	  && GET_CODE (SET_DEST (exp)) == MEM
  5.4735 ++	  && (GET_CODE (XEXP (SET_DEST (exp), 0)) == POST_INC
  5.4736 ++	      || GET_CODE (XEXP (SET_DEST (exp), 0)) == PRE_DEC)
  5.4737 ++	  &&
  5.4738 ++	  (reg_mentioned_p
  5.4739 ++	   (XEXP (XEXP (SET_DEST (exp), 0), 0), cc_status.value1)
  5.4740 ++	   || reg_mentioned_p (XEXP (XEXP (SET_DEST (exp), 0), 0),
  5.4741 ++			       cc_status.value2)
  5.4742 ++	   || reg_mentioned_p (XEXP (XEXP (SET_DEST (exp), 0), 0),
  5.4743 ++			       cc_status.mdep.value)))
  5.4744 ++	CC_STATUS_INIT;
  5.4745 ++      break;
  5.4746 ++
  5.4747 ++    case CC_SET_VNCZ:
  5.4748 ++      CC_STATUS_INIT;
  5.4749 ++      cc_status.mdep.value = recog_data.operand[0];
  5.4750 ++      cc_status.mdep.flags = CC_SET_VNCZ;
  5.4751 ++      cc_status.mdep.cond_exec_cmp_clobbered = 0;
  5.4752 ++      break;
  5.4753 ++
  5.4754 ++    case CC_SET_NCZ:
  5.4755 ++      CC_STATUS_INIT;
  5.4756 ++      cc_status.mdep.value = recog_data.operand[0];
  5.4757 ++      cc_status.mdep.flags = CC_SET_NCZ;
  5.4758 ++      cc_status.mdep.cond_exec_cmp_clobbered = 0;
  5.4759 ++      break;
  5.4760 ++
  5.4761 ++    case CC_SET_CZ:
  5.4762 ++      CC_STATUS_INIT;
  5.4763 ++      cc_status.mdep.value = recog_data.operand[0];
  5.4764 ++      cc_status.mdep.flags = CC_SET_CZ;
  5.4765 ++      cc_status.mdep.cond_exec_cmp_clobbered = 0;
  5.4766 ++      break;
  5.4767 ++
  5.4768 ++    case CC_SET_Z:
  5.4769 ++      CC_STATUS_INIT;
  5.4770 ++      cc_status.mdep.value = recog_data.operand[0];
  5.4771 ++      cc_status.mdep.flags = CC_SET_Z;
  5.4772 ++      cc_status.mdep.cond_exec_cmp_clobbered = 0;
  5.4773 ++      break;
  5.4774 ++
  5.4775 ++    case CC_CLOBBER:
  5.4776 ++      CC_STATUS_INIT;
  5.4777 ++      break;
  5.4778 ++
  5.4779 ++    default:
  5.4780 ++      CC_STATUS_INIT;
  5.4781 ++    }
  5.4782 ++}
  5.4783 ++
  5.4784 ++
  5.4785 ++/*
  5.4786 ++  Outputs to stdio stream stream the assembler syntax for an instruction
  5.4787 ++  operand x. x is an RTL expression.
  5.4788 ++*/
  5.4789 ++void
  5.4790 ++avr32_print_operand (FILE * stream, rtx x, int code)
  5.4791 ++{
  5.4792 ++  int error = 0;
  5.4793 ++
  5.4794 ++  if ( code == '?' )
  5.4795 ++    {
  5.4796 ++      /* Predicable instruction, print condition code */
  5.4797 ++
  5.4798 ++      /* If the insn should not be conditional then do nothing. */
  5.4799 ++      if ( current_insn_predicate == NULL_RTX )
  5.4800 ++        return;
  5.4801 ++
  5.4802 ++      /* Set x to the predicate to force printing
  5.4803 ++         the condition later on. */
  5.4804 ++      x = current_insn_predicate;
  5.4805 ++
  5.4806 ++      /* Reverse condition if useing bld insn. */
  5.4807 ++      if ( GET_CODE (XEXP(current_insn_predicate,0)) == AND )
  5.4808 ++        x = reversed_condition (current_insn_predicate);
  5.4809 ++    }
  5.4810 ++  else if ( code == '!' )
  5.4811 ++    {
  5.4812 ++      /* Output compare for conditional insn if needed. */
  5.4813 ++      rtx new_cond;
  5.4814 ++      gcc_assert ( current_insn_predicate != NULL_RTX );
  5.4815 ++      new_cond = avr32_output_cmp(current_insn_predicate,
  5.4816 ++                                  GET_MODE(XEXP(current_insn_predicate,0)),
  5.4817 ++                                  XEXP(current_insn_predicate,0),
  5.4818 ++                                  XEXP(current_insn_predicate,1));
  5.4819 ++
  5.4820 ++      /* Check if the new condition is a special avr32 condition
  5.4821 ++         specified using UNSPECs. If so we must handle it differently. */
  5.4822 ++      if ( GET_CODE (new_cond) == UNSPEC )
  5.4823 ++        {
  5.4824 ++          current_insn_predicate =
  5.4825 ++            gen_rtx_UNSPEC (CCmode,
  5.4826 ++                            gen_rtvec (2,
  5.4827 ++                                       XEXP(current_insn_predicate,0),
  5.4828 ++                                       XEXP(current_insn_predicate,1)),
  5.4829 ++                            XINT (new_cond, 1));
  5.4830 ++        }
  5.4831 ++      else
  5.4832 ++        {
  5.4833 ++          PUT_CODE(current_insn_predicate, GET_CODE(new_cond));
  5.4834 ++        }
  5.4835 ++      return;
  5.4836 ++    }
  5.4837 ++
  5.4838 ++  switch (GET_CODE (x))
  5.4839 ++    {
  5.4840 ++    case UNSPEC:
  5.4841 ++      switch (XINT (x, 1))
  5.4842 ++	{
  5.4843 ++	case UNSPEC_COND_PL:
  5.4844 ++	  if (code == 'i')
  5.4845 ++	    fputs ("mi", stream);
  5.4846 ++	  else
  5.4847 ++	    fputs ("pl", stream);
  5.4848 ++	  break;
  5.4849 ++	case UNSPEC_COND_MI:
  5.4850 ++	  if (code == 'i')
  5.4851 ++	    fputs ("pl", stream);
  5.4852 ++	  else
  5.4853 ++	    fputs ("mi", stream);
  5.4854 ++	  break;
  5.4855 ++	default:
  5.4856 ++	  error = 1;
  5.4857 ++	}
  5.4858 ++      break;
  5.4859 ++    case EQ:
  5.4860 ++      if (code == 'i')
  5.4861 ++	fputs ("ne", stream);
  5.4862 ++      else
  5.4863 ++	fputs ("eq", stream);
  5.4864 ++      break;
  5.4865 ++    case NE:
  5.4866 ++      if (code == 'i')
  5.4867 ++	fputs ("eq", stream);
  5.4868 ++      else
  5.4869 ++	fputs ("ne", stream);
  5.4870 ++      break;
  5.4871 ++    case GT:
  5.4872 ++      if (code == 'i')
  5.4873 ++	fputs ("le", stream);
  5.4874 ++      else
  5.4875 ++	fputs ("gt", stream);
  5.4876 ++      break;
  5.4877 ++    case GTU:
  5.4878 ++      if (code == 'i')
  5.4879 ++	fputs ("ls", stream);
  5.4880 ++      else
  5.4881 ++	fputs ("hi", stream);
  5.4882 ++      break;
  5.4883 ++    case LT:
  5.4884 ++      if (code == 'i')
  5.4885 ++	fputs ("ge", stream);
  5.4886 ++      else
  5.4887 ++	fputs ("lt", stream);
  5.4888 ++      break;
  5.4889 ++    case LTU:
  5.4890 ++      if (code == 'i')
  5.4891 ++	fputs ("hs", stream);
  5.4892 ++      else
  5.4893 ++	fputs ("lo", stream);
  5.4894 ++      break;
  5.4895 ++    case GE:
  5.4896 ++      if (code == 'i')
  5.4897 ++	fputs ("lt", stream);
  5.4898 ++      else
  5.4899 ++	fputs ("ge", stream);
  5.4900 ++      break;
  5.4901 ++    case GEU:
  5.4902 ++      if (code == 'i')
  5.4903 ++	fputs ("lo", stream);
  5.4904 ++      else
  5.4905 ++	fputs ("hs", stream);
  5.4906 ++      break;
  5.4907 ++    case LE:
  5.4908 ++      if (code == 'i')
  5.4909 ++	fputs ("gt", stream);
  5.4910 ++      else
  5.4911 ++	fputs ("le", stream);
  5.4912 ++      break;
  5.4913 ++    case LEU:
  5.4914 ++      if (code == 'i')
  5.4915 ++	fputs ("hi", stream);
  5.4916 ++      else
  5.4917 ++	fputs ("ls", stream);
  5.4918 ++      break;
  5.4919 ++    case CONST_INT:
  5.4920 ++      {
  5.4921 ++        HOST_WIDE_INT value = INTVAL (x);
  5.4922 ++
  5.4923 ++        switch (code)
  5.4924 ++          {
  5.4925 ++          case 'm':
  5.4926 ++            if ( HOST_BITS_PER_WIDE_INT > BITS_PER_WORD )
  5.4927 ++              {
  5.4928 ++                /* A const_int can be used to represent DImode constants. */
  5.4929 ++                value >>= BITS_PER_WORD;
  5.4930 ++              }
  5.4931 ++            /* We might get a const_int immediate for setting a DI register,
  5.4932 ++               we then must then return the correct sign extended DI. The most
  5.4933 ++               significant word is just a sign extension. */
  5.4934 ++            else if (value < 0)
  5.4935 ++              value = -1;
  5.4936 ++            else
  5.4937 ++              value = 0;
  5.4938 ++            break;
  5.4939 ++          case 'i':
  5.4940 ++            value++;
  5.4941 ++            break;
  5.4942 ++          case 'p':
  5.4943 ++            {
  5.4944 ++              /* Set to bit position of first bit set in immediate */
  5.4945 ++              int i, bitpos = 32;
  5.4946 ++              for (i = 0; i < 32; i++)
  5.4947 ++                if (value & (1 << i))
  5.4948 ++                  {
  5.4949 ++                    bitpos = i;
  5.4950 ++                    break;
  5.4951 ++                  }
  5.4952 ++              value = bitpos;
  5.4953 ++            }
  5.4954 ++            break;
  5.4955 ++          case 'z':
  5.4956 ++            {
  5.4957 ++              /* Set to bit position of first bit cleared in immediate */
  5.4958 ++              int i, bitpos = 32;
  5.4959 ++              for (i = 0; i < 32; i++)
  5.4960 ++                if (!(value & (1 << i)))
  5.4961 ++                  {
  5.4962 ++                    bitpos = i;
  5.4963 ++                    break;
  5.4964 ++                  }
  5.4965 ++              value = bitpos;
  5.4966 ++            }
  5.4967 ++            break;
  5.4968 ++          case 'r':
  5.4969 ++            {
  5.4970 ++              /* Reglist 8 */
  5.4971 ++              char op[50];
  5.4972 ++              op[0] = '\0';
  5.4973 ++
  5.4974 ++              if (value & 0x01)
  5.4975 ++                sprintf (op, "r0-r3");
  5.4976 ++              if (value & 0x02)
  5.4977 ++                strlen (op) ? sprintf (op, "%s, r4-r7", op) : sprintf (op,
  5.4978 ++                                                                       "r4-r7");
  5.4979 ++              if (value & 0x04)
  5.4980 ++                strlen (op) ? sprintf (op, "%s, r8-r9", op) : sprintf (op,
  5.4981 ++                                                                       "r8-r9");
  5.4982 ++              if (value & 0x08)
  5.4983 ++                strlen (op) ? sprintf (op, "%s, r10", op) : sprintf (op,
  5.4984 ++                                                                     "r10");
  5.4985 ++              if (value & 0x10)
  5.4986 ++                strlen (op) ? sprintf (op, "%s, r11", op) : sprintf (op,
  5.4987 ++                                                                     "r11");
  5.4988 ++              if (value & 0x20)
  5.4989 ++                strlen (op) ? sprintf (op, "%s, r12", op) : sprintf (op,
  5.4990 ++                                                                     "r12");
  5.4991 ++              if (value & 0x40)
  5.4992 ++                strlen (op) ? sprintf (op, "%s, lr", op) : sprintf (op, "lr");
  5.4993 ++              if (value & 0x80)
  5.4994 ++                strlen (op) ? sprintf (op, "%s, pc", op) : sprintf (op, "pc");
  5.4995 ++
  5.4996 ++              fputs (op, stream);
  5.4997 ++              return;
  5.4998 ++            }
  5.4999 ++          case 's':
  5.5000 ++            {
  5.5001 ++              /* Reglist 16 */
  5.5002 ++              char reglist16_string[100];
  5.5003 ++              int i;
  5.5004 ++              reglist16_string[0] = '\0';
  5.5005 ++
  5.5006 ++	      for (i = 0; i < 16; ++i)
  5.5007 ++		{
  5.5008 ++		  if (value & (1 << i))
  5.5009 ++		    {
  5.5010 ++		      strlen (reglist16_string) ? sprintf (reglist16_string,
  5.5011 ++							   "%s, %s",
  5.5012 ++							   reglist16_string,
  5.5013 ++							   reg_names
  5.5014 ++							   [INTERNAL_REGNUM
  5.5015 ++							    (i)]) :
  5.5016 ++			sprintf (reglist16_string, "%s",
  5.5017 ++				 reg_names[INTERNAL_REGNUM (i)]);
  5.5018 ++		    }
  5.5019 ++		}
  5.5020 ++	      fputs (reglist16_string, stream);
  5.5021 ++	      return;
  5.5022 ++	    }
  5.5023 ++	  case 'C':
  5.5024 ++	    {
  5.5025 ++	      /* RegListCP8 */
  5.5026 ++	      char reglist_string[100];
  5.5027 ++	      avr32_make_fp_reglist_w (value, (char *) reglist_string);
  5.5028 ++	      fputs (reglist_string, stream);
  5.5029 ++	      return;
  5.5030 ++	    }
  5.5031 ++	  case 'D':
  5.5032 ++	    {
  5.5033 ++	      /* RegListCPD8 */
  5.5034 ++	      char reglist_string[100];
  5.5035 ++	      avr32_make_fp_reglist_d (value, (char *) reglist_string);
  5.5036 ++	      fputs (reglist_string, stream);
  5.5037 ++	      return;
  5.5038 ++	    }
  5.5039 ++	  case 'h':
  5.5040 ++	    /* Print halfword part of word */
  5.5041 ++	    fputs (value ? "b" : "t", stream);
  5.5042 ++	    return;
  5.5043 ++	  }
  5.5044 ++
  5.5045 ++	/* Print Value */
  5.5046 ++	fprintf (stream, "%d", value);
  5.5047 ++	break;
  5.5048 ++      }
  5.5049 ++    case CONST_DOUBLE:
  5.5050 ++      {
  5.5051 ++	HOST_WIDE_INT hi, lo;
  5.5052 ++	if (SCALAR_FLOAT_MODE_P (GET_MODE (x)))
  5.5053 ++	  {
  5.5054 ++	    HOST_WIDE_INT target_float[2];
  5.5055 ++	    hi = lo = 0;
  5.5056 ++	    real_to_target (target_float, CONST_DOUBLE_REAL_VALUE (x),
  5.5057 ++			    GET_MODE (x));
  5.5058 ++	    /* For doubles the most significant part starts at index 0. */
  5.5059 ++	    if (GET_MODE_SIZE (GET_MODE (x)) > UNITS_PER_WORD)
  5.5060 ++	      {
  5.5061 ++		hi = target_float[0];
  5.5062 ++		lo = target_float[1];
  5.5063 ++	      }
  5.5064 ++	    else
  5.5065 ++	      {
  5.5066 ++		lo = target_float[0];
  5.5067 ++	      }
  5.5068 ++	  }
  5.5069 ++	else
  5.5070 ++	  {
  5.5071 ++	    hi = CONST_DOUBLE_HIGH (x);
  5.5072 ++	    lo = CONST_DOUBLE_LOW (x);
  5.5073 ++	  }
  5.5074 ++
  5.5075 ++	if (code == 'm')
  5.5076 ++	  fprintf (stream, "%ld", hi);
  5.5077 ++	else
  5.5078 ++	  fprintf (stream, "%ld", lo);
  5.5079 ++
  5.5080 ++	break;
  5.5081 ++      }
  5.5082 ++    case CONST:
  5.5083 ++      output_addr_const (stream, XEXP (XEXP (x, 0), 0));
  5.5084 ++      fprintf (stream, "+%ld", INTVAL (XEXP (XEXP (x, 0), 1)));
  5.5085 ++      break;
  5.5086 ++    case REG:
  5.5087 ++      /* Swap register name if the register is DImode or DFmode. */
  5.5088 ++      if (GET_MODE (x) == DImode || GET_MODE (x) == DFmode)
  5.5089 ++	{
  5.5090 ++	  /* Double register must have an even numbered address */
  5.5091 ++	  gcc_assert (!(REGNO (x) % 2));
  5.5092 ++	  if (code == 'm')
  5.5093 ++	    fputs (reg_names[true_regnum (x)], stream);
  5.5094 ++	  else
  5.5095 ++	    fputs (reg_names[true_regnum (x) + 1], stream);
  5.5096 ++	}
  5.5097 ++      else if (GET_MODE (x) == TImode)
  5.5098 ++	{
  5.5099 ++	  switch (code)
  5.5100 ++	    {
  5.5101 ++	    case 'T':
  5.5102 ++	      fputs (reg_names[true_regnum (x)], stream);
  5.5103 ++	      break;
  5.5104 ++	    case 'U':
  5.5105 ++	      fputs (reg_names[true_regnum (x) + 1], stream);
  5.5106 ++	      break;
  5.5107 ++	    case 'L':
  5.5108 ++	      fputs (reg_names[true_regnum (x) + 2], stream);
  5.5109 ++	      break;
  5.5110 ++	    case 'B':
  5.5111 ++	      fputs (reg_names[true_regnum (x) + 3], stream);
  5.5112 ++	      break;
  5.5113 ++	    default:
  5.5114 ++	      fprintf (stream, "%s, %s, %s, %s",
  5.5115 ++		       reg_names[true_regnum (x) + 3],
  5.5116 ++		       reg_names[true_regnum (x) + 2],
  5.5117 ++		       reg_names[true_regnum (x) + 1],
  5.5118 ++		       reg_names[true_regnum (x)]);
  5.5119 ++	      break;
  5.5120 ++	    }
  5.5121 ++	}
  5.5122 ++      else
  5.5123 ++	{
  5.5124 ++	  fputs (reg_names[true_regnum (x)], stream);
  5.5125 ++	}
  5.5126 ++      break;
  5.5127 ++    case CODE_LABEL:
  5.5128 ++    case LABEL_REF:
  5.5129 ++    case SYMBOL_REF:
  5.5130 ++      output_addr_const (stream, x);
  5.5131 ++      break;
  5.5132 ++    case MEM:
  5.5133 ++      switch (GET_CODE (XEXP (x, 0)))
  5.5134 ++	{
  5.5135 ++	case LABEL_REF:
  5.5136 ++	case SYMBOL_REF:
  5.5137 ++	  output_addr_const (stream, XEXP (x, 0));
  5.5138 ++	  break;
  5.5139 ++	case MEM:
  5.5140 ++	  switch (GET_CODE (XEXP (XEXP (x, 0), 0)))
  5.5141 ++	    {
  5.5142 ++	    case SYMBOL_REF:
  5.5143 ++	      output_addr_const (stream, XEXP (XEXP (x, 0), 0));
  5.5144 ++	      break;
  5.5145 ++	    default:
  5.5146 ++	      error = 1;
  5.5147 ++	      break;
  5.5148 ++	    }
  5.5149 ++	  break;
  5.5150 ++	case REG:
  5.5151 ++	  avr32_print_operand (stream, XEXP (x, 0), 0);
  5.5152 ++	  if (code != 'p')
  5.5153 ++	    fputs ("[0]", stream);
  5.5154 ++	  break;
  5.5155 ++	case PRE_DEC:
  5.5156 ++	  fputs ("--", stream);
  5.5157 ++	  avr32_print_operand (stream, XEXP (XEXP (x, 0), 0), 0);
  5.5158 ++	  break;
  5.5159 ++	case POST_INC:
  5.5160 ++	  avr32_print_operand (stream, XEXP (XEXP (x, 0), 0), 0);
  5.5161 ++	  fputs ("++", stream);
  5.5162 ++	  break;
  5.5163 ++	case PLUS:
  5.5164 ++	  {
  5.5165 ++	    rtx op0 = XEXP (XEXP (x, 0), 0);
  5.5166 ++	    rtx op1 = XEXP (XEXP (x, 0), 1);
  5.5167 ++	    rtx base = NULL_RTX, offset = NULL_RTX;
  5.5168 ++
  5.5169 ++	    if (avr32_address_register_rtx_p (op0, 1))
  5.5170 ++	      {
  5.5171 ++		base = op0;
  5.5172 ++		offset = op1;
  5.5173 ++	      }
  5.5174 ++	    else if (avr32_address_register_rtx_p (op1, 1))
  5.5175 ++	      {
  5.5176 ++		/* Operands are switched. */
  5.5177 ++		base = op1;
  5.5178 ++		offset = op0;
  5.5179 ++	      }
  5.5180 ++
  5.5181 ++	    gcc_assert (base && offset
  5.5182 ++			&& avr32_address_register_rtx_p (base, 1)
  5.5183 ++			&& avr32_legitimate_index_p (GET_MODE (x), offset,
  5.5184 ++						     1));
  5.5185 ++
  5.5186 ++	    avr32_print_operand (stream, base, 0);
  5.5187 ++	    fputs ("[", stream);
  5.5188 ++	    avr32_print_operand (stream, offset, 0);
  5.5189 ++	    fputs ("]", stream);
  5.5190 ++	    break;
  5.5191 ++	  }
  5.5192 ++	case CONST:
  5.5193 ++	  output_addr_const (stream, XEXP (XEXP (XEXP (x, 0), 0), 0));
  5.5194 ++	  fprintf (stream, " + %ld",
  5.5195 ++		   INTVAL (XEXP (XEXP (XEXP (x, 0), 0), 1)));
  5.5196 ++	  break;
  5.5197 ++        case CONST_INT:
  5.5198 ++	  avr32_print_operand (stream, XEXP (x, 0), 0);
  5.5199 ++          break;
  5.5200 ++	default:
  5.5201 ++	  error = 1;
  5.5202 ++	}
  5.5203 ++      break;
  5.5204 ++    case MULT:
  5.5205 ++      {
  5.5206 ++	int value = INTVAL (XEXP (x, 1));
  5.5207 ++
  5.5208 ++	/* Convert immediate in multiplication into a shift immediate */
  5.5209 ++	switch (value)
  5.5210 ++	  {
  5.5211 ++	  case 2:
  5.5212 ++	    value = 1;
  5.5213 ++	    break;
  5.5214 ++	  case 4:
  5.5215 ++	    value = 2;
  5.5216 ++	    break;
  5.5217 ++	  case 8:
  5.5218 ++	    value = 3;
  5.5219 ++	    break;
  5.5220 ++	  default:
  5.5221 ++	    value = 0;
  5.5222 ++	  }
  5.5223 ++	fprintf (stream, "%s << %i", reg_names[true_regnum (XEXP (x, 0))],
  5.5224 ++		 value);
  5.5225 ++	break;
  5.5226 ++      }
  5.5227 ++    case ASHIFT:
  5.5228 ++      if (GET_CODE (XEXP (x, 1)) == CONST_INT)
  5.5229 ++	fprintf (stream, "%s << %i", reg_names[true_regnum (XEXP (x, 0))],
  5.5230 ++		 (int) INTVAL (XEXP (x, 1)));
  5.5231 ++      else if (REG_P (XEXP (x, 1)))
  5.5232 ++	fprintf (stream, "%s << %s", reg_names[true_regnum (XEXP (x, 0))],
  5.5233 ++		 reg_names[true_regnum (XEXP (x, 1))]);
  5.5234 ++      else
  5.5235 ++	{
  5.5236 ++	  error = 1;
  5.5237 ++	}
  5.5238 ++      break;
  5.5239 ++    case LSHIFTRT:
  5.5240 ++      if (GET_CODE (XEXP (x, 1)) == CONST_INT)
  5.5241 ++	fprintf (stream, "%s >> %i", reg_names[true_regnum (XEXP (x, 0))],
  5.5242 ++		 (int) INTVAL (XEXP (x, 1)));
  5.5243 ++      else if (REG_P (XEXP (x, 1)))
  5.5244 ++	fprintf (stream, "%s >> %s", reg_names[true_regnum (XEXP (x, 0))],
  5.5245 ++		 reg_names[true_regnum (XEXP (x, 1))]);
  5.5246 ++      else
  5.5247 ++	{
  5.5248 ++	  error = 1;
  5.5249 ++	}
  5.5250 ++      fprintf (stream, ">>");
  5.5251 ++      break;
  5.5252 ++    case PARALLEL:
  5.5253 ++      {
  5.5254 ++	/* Load store multiple */
  5.5255 ++	int i;
  5.5256 ++	int count = XVECLEN (x, 0);
  5.5257 ++	int reglist16 = 0;
  5.5258 ++	char reglist16_string[100];
  5.5259 ++
  5.5260 ++	for (i = 0; i < count; ++i)
  5.5261 ++	  {
  5.5262 ++	    rtx vec_elm = XVECEXP (x, 0, i);
  5.5263 ++	    if (GET_MODE (vec_elm) != SET)
  5.5264 ++	      {
  5.5265 ++		debug_rtx (vec_elm);
  5.5266 ++		internal_error ("Unknown element in parallel expression!");
  5.5267 ++	      }
  5.5268 ++	    if (GET_MODE (XEXP (vec_elm, 0)) == REG)
  5.5269 ++	      {
  5.5270 ++		/* Load multiple */
  5.5271 ++		reglist16 |= 1 << ASM_REGNUM (REGNO (XEXP (vec_elm, 0)));
  5.5272 ++	      }
  5.5273 ++	    else
  5.5274 ++	      {
  5.5275 ++		/* Store multiple */
  5.5276 ++		reglist16 |= 1 << ASM_REGNUM (REGNO (XEXP (vec_elm, 1)));
  5.5277 ++	      }
  5.5278 ++	  }
  5.5279 ++
  5.5280 ++	avr32_make_reglist16 (reglist16, reglist16_string);
  5.5281 ++	fputs (reglist16_string, stream);
  5.5282 ++
  5.5283 ++	break;
  5.5284 ++      }
  5.5285 ++
  5.5286 ++    case PLUS:
  5.5287 ++      {
  5.5288 ++        rtx op0 = XEXP (x, 0);
  5.5289 ++        rtx op1 = XEXP (x, 1);
  5.5290 ++        rtx base = NULL_RTX, offset = NULL_RTX;
  5.5291 ++
  5.5292 ++        if (avr32_address_register_rtx_p (op0, 1))
  5.5293 ++          {
  5.5294 ++            base = op0;
  5.5295 ++            offset = op1;
  5.5296 ++          }
  5.5297 ++        else if (avr32_address_register_rtx_p (op1, 1))
  5.5298 ++          {
  5.5299 ++            /* Operands are switched. */
  5.5300 ++            base = op1;
  5.5301 ++            offset = op0;
  5.5302 ++          }
  5.5303 ++
  5.5304 ++        gcc_assert (base && offset
  5.5305 ++                    && avr32_address_register_rtx_p (base, 1)
  5.5306 ++                    && avr32_legitimate_index_p (GET_MODE (x), offset, 1));
  5.5307 ++
  5.5308 ++        avr32_print_operand (stream, base, 0);
  5.5309 ++        fputs ("[", stream);
  5.5310 ++        avr32_print_operand (stream, offset, 0);
  5.5311 ++        fputs ("]", stream);
  5.5312 ++        break;
  5.5313 ++      }
  5.5314 ++
  5.5315 ++    default:
  5.5316 ++      error = 1;
  5.5317 ++    }
  5.5318 ++
  5.5319 ++  if (error)
  5.5320 ++    {
  5.5321 ++      debug_rtx (x);
  5.5322 ++      internal_error ("Illegal expression for avr32_print_operand");
  5.5323 ++    }
  5.5324 ++}
  5.5325 ++
  5.5326 ++rtx
  5.5327 ++avr32_get_note_reg_equiv (rtx insn)
  5.5328 ++{
  5.5329 ++  rtx note;
  5.5330 ++
  5.5331 ++  note = find_reg_note (insn, REG_EQUIV, NULL_RTX);
  5.5332 ++
  5.5333 ++  if (note != NULL_RTX)
  5.5334 ++    return XEXP (note, 0);
  5.5335 ++  else
  5.5336 ++    return NULL_RTX;
  5.5337 ++}
  5.5338 ++
  5.5339 ++/*
  5.5340 ++  Outputs to stdio stream stream the assembler syntax for an instruction
  5.5341 ++  operand that is a memory reference whose address is x. x is an RTL
  5.5342 ++  expression.
  5.5343 ++
  5.5344 ++  ToDo: fixme.
  5.5345 ++*/
  5.5346 ++void
  5.5347 ++avr32_print_operand_address (FILE * stream, rtx x)
  5.5348 ++{
  5.5349 ++  fprintf (stream, "(%d) /* address */", REGNO (x));
  5.5350 ++}
  5.5351 ++
  5.5352 ++/* Return true if _GLOBAL_OFFSET_TABLE_ symbol is mentioned.  */
  5.5353 ++bool
  5.5354 ++avr32_got_mentioned_p (rtx addr)
  5.5355 ++{
  5.5356 ++  if (GET_CODE (addr) == MEM)
  5.5357 ++    addr = XEXP (addr, 0);
  5.5358 ++  while (GET_CODE (addr) == CONST)
  5.5359 ++    addr = XEXP (addr, 0);
  5.5360 ++  if (GET_CODE (addr) == SYMBOL_REF)
  5.5361 ++    {
  5.5362 ++      return streq (XSTR (addr, 0), "_GLOBAL_OFFSET_TABLE_");
  5.5363 ++    }
  5.5364 ++  if (GET_CODE (addr) == PLUS || GET_CODE (addr) == MINUS)
  5.5365 ++    {
  5.5366 ++      bool l1, l2;
  5.5367 ++
  5.5368 ++      l1 = avr32_got_mentioned_p (XEXP (addr, 0));
  5.5369 ++      l2 = avr32_got_mentioned_p (XEXP (addr, 1));
  5.5370 ++      return l1 || l2;
  5.5371 ++    }
  5.5372 ++  return false;
  5.5373 ++}
  5.5374 ++
  5.5375 ++
  5.5376 ++/* Find the symbol in an address expression.  */
  5.5377 ++
  5.5378 ++rtx
  5.5379 ++avr32_find_symbol (rtx addr)
  5.5380 ++{
  5.5381 ++  if (GET_CODE (addr) == MEM)
  5.5382 ++    addr = XEXP (addr, 0);
  5.5383 ++
  5.5384 ++  while (GET_CODE (addr) == CONST)
  5.5385 ++    addr = XEXP (addr, 0);
  5.5386 ++
  5.5387 ++  if (GET_CODE (addr) == SYMBOL_REF || GET_CODE (addr) == LABEL_REF)
  5.5388 ++    return addr;
  5.5389 ++  if (GET_CODE (addr) == PLUS)
  5.5390 ++    {
  5.5391 ++      rtx l1, l2;
  5.5392 ++
  5.5393 ++      l1 = avr32_find_symbol (XEXP (addr, 0));
  5.5394 ++      l2 = avr32_find_symbol (XEXP (addr, 1));
  5.5395 ++      if (l1 != NULL_RTX && l2 == NULL_RTX)
  5.5396 ++	return l1;
  5.5397 ++      else if (l1 == NULL_RTX && l2 != NULL_RTX)
  5.5398 ++	return l2;
  5.5399 ++    }
  5.5400 ++
  5.5401 ++  return NULL_RTX;
  5.5402 ++}
  5.5403 ++
  5.5404 ++
  5.5405 ++/* Routines for manipulation of the constant pool.  */
  5.5406 ++
  5.5407 ++/* AVR32 instructions cannot load a large constant directly into a
  5.5408 ++   register; they have to come from a pc relative load.  The constant
  5.5409 ++   must therefore be placed in the addressable range of the pc
  5.5410 ++   relative load.  Depending on the precise pc relative load
  5.5411 ++   instruction the range is somewhere between 256 bytes and 4k.  This
  5.5412 ++   means that we often have to dump a constant inside a function, and
  5.5413 ++   generate code to branch around it.
  5.5414 ++
  5.5415 ++   It is important to minimize this, since the branches will slow
  5.5416 ++   things down and make the code larger.
  5.5417 ++
  5.5418 ++   Normally we can hide the table after an existing unconditional
  5.5419 ++   branch so that there is no interruption of the flow, but in the
  5.5420 ++   worst case the code looks like this:
  5.5421 ++
  5.5422 ++	lddpc	rn, L1
  5.5423 ++	...
  5.5424 ++	rjmp	L2
  5.5425 ++	align
  5.5426 ++	L1:	.long value
  5.5427 ++	L2:
  5.5428 ++	...
  5.5429 ++
  5.5430 ++	lddpc	rn, L3
  5.5431 ++	...
  5.5432 ++	rjmp	L4
  5.5433 ++	align
  5.5434 ++	L3:	.long value
  5.5435 ++	L4:
  5.5436 ++	...
  5.5437 ++
  5.5438 ++   We fix this by performing a scan after scheduling, which notices
  5.5439 ++   which instructions need to have their operands fetched from the
  5.5440 ++   constant table and builds the table.
  5.5441 ++
  5.5442 ++   The algorithm starts by building a table of all the constants that
  5.5443 ++   need fixing up and all the natural barriers in the function (places
  5.5444 ++   where a constant table can be dropped without breaking the flow).
  5.5445 ++   For each fixup we note how far the pc-relative replacement will be
  5.5446 ++   able to reach and the offset of the instruction into the function.
  5.5447 ++
  5.5448 ++   Having built the table we then group the fixes together to form
  5.5449 ++   tables that are as large as possible (subject to addressing
  5.5450 ++   constraints) and emit each table of constants after the last
  5.5451 ++   barrier that is within range of all the instructions in the group.
  5.5452 ++   If a group does not contain a barrier, then we forcibly create one
  5.5453 ++   by inserting a jump instruction into the flow.  Once the table has
  5.5454 ++   been inserted, the insns are then modified to reference the
  5.5455 ++   relevant entry in the pool.
  5.5456 ++
  5.5457 ++   Possible enhancements to the algorithm (not implemented) are:
  5.5458 ++
  5.5459 ++   1) For some processors and object formats, there may be benefit in
  5.5460 ++   aligning the pools to the start of cache lines; this alignment
  5.5461 ++   would need to be taken into account when calculating addressability
  5.5462 ++   of a pool.  */
  5.5463 ++
  5.5464 ++/* These typedefs are located at the start of this file, so that
  5.5465 ++   they can be used in the prototypes there.  This comment is to
  5.5466 ++   remind readers of that fact so that the following structures
  5.5467 ++   can be understood more easily.
  5.5468 ++
  5.5469 ++     typedef struct minipool_node    Mnode;
  5.5470 ++     typedef struct minipool_fixup   Mfix;  */
  5.5471 ++
  5.5472 ++struct minipool_node
  5.5473 ++{
  5.5474 ++  /* Doubly linked chain of entries.  */
  5.5475 ++  Mnode *next;
  5.5476 ++  Mnode *prev;
  5.5477 ++  /* The maximum offset into the code that this entry can be placed.  While
  5.5478 ++     pushing fixes for forward references, all entries are sorted in order of
  5.5479 ++     increasing max_address.  */
  5.5480 ++  HOST_WIDE_INT max_address;
  5.5481 ++  /* Similarly for an entry inserted for a backwards ref.  */
  5.5482 ++  HOST_WIDE_INT min_address;
  5.5483 ++  /* The number of fixes referencing this entry.  This can become zero if we
  5.5484 ++     "unpush" an entry.  In this case we ignore the entry when we come to
  5.5485 ++     emit the code.  */
  5.5486 ++  int refcount;
  5.5487 ++  /* The offset from the start of the minipool.  */
  5.5488 ++  HOST_WIDE_INT offset;
  5.5489 ++  /* The value in table.  */
  5.5490 ++  rtx value;
  5.5491 ++  /* The mode of value.  */
  5.5492 ++  enum machine_mode mode;
  5.5493 ++  /* The size of the value.  */
  5.5494 ++  int fix_size;
  5.5495 ++};
  5.5496 ++
  5.5497 ++struct minipool_fixup
  5.5498 ++{
  5.5499 ++  Mfix *next;
  5.5500 ++  rtx insn;
  5.5501 ++  HOST_WIDE_INT address;
  5.5502 ++  rtx *loc;
  5.5503 ++  enum machine_mode mode;
  5.5504 ++  int fix_size;
  5.5505 ++  rtx value;
  5.5506 ++  Mnode *minipool;
  5.5507 ++  HOST_WIDE_INT forwards;
  5.5508 ++  HOST_WIDE_INT backwards;
  5.5509 ++};
  5.5510 ++
  5.5511 ++
  5.5512 ++/* Fixes less than a word need padding out to a word boundary.  */
  5.5513 ++#define MINIPOOL_FIX_SIZE(mode, value)                          \
  5.5514 ++  (IS_FORCE_MINIPOOL(value) ? 0 :                               \
  5.5515 ++   (GET_MODE_SIZE ((mode)) >= 4 ? GET_MODE_SIZE ((mode)) : 4))
  5.5516 ++
  5.5517 ++#define IS_FORCE_MINIPOOL(x)                    \
  5.5518 ++  (GET_CODE(x) == UNSPEC &&                     \
  5.5519 ++   XINT(x, 1) == UNSPEC_FORCE_MINIPOOL)
  5.5520 ++
  5.5521 ++static Mnode *minipool_vector_head;
  5.5522 ++static Mnode *minipool_vector_tail;
  5.5523 ++
  5.5524 ++/* The linked list of all minipool fixes required for this function.  */
  5.5525 ++Mfix *minipool_fix_head;
  5.5526 ++Mfix *minipool_fix_tail;
  5.5527 ++/* The fix entry for the current minipool, once it has been placed.  */
  5.5528 ++Mfix *minipool_barrier;
  5.5529 ++
  5.5530 ++/* Determines if INSN is the start of a jump table.  Returns the end
  5.5531 ++   of the TABLE or NULL_RTX.  */
  5.5532 ++static rtx
  5.5533 ++is_jump_table (rtx insn)
  5.5534 ++{
  5.5535 ++  rtx table;
  5.5536 ++
  5.5537 ++  if (GET_CODE (insn) == JUMP_INSN
  5.5538 ++      && JUMP_LABEL (insn) != NULL
  5.5539 ++      && ((table = next_real_insn (JUMP_LABEL (insn)))
  5.5540 ++	  == next_real_insn (insn))
  5.5541 ++      && table != NULL
  5.5542 ++      && GET_CODE (table) == JUMP_INSN
  5.5543 ++      && (GET_CODE (PATTERN (table)) == ADDR_VEC
  5.5544 ++	  || GET_CODE (PATTERN (table)) == ADDR_DIFF_VEC))
  5.5545 ++    return table;
  5.5546 ++
  5.5547 ++  return NULL_RTX;
  5.5548 ++}
  5.5549 ++
  5.5550 ++static HOST_WIDE_INT
  5.5551 ++get_jump_table_size (rtx insn)
  5.5552 ++{
  5.5553 ++  /* ADDR_VECs only take room if read-only data does into the text section.  */
  5.5554 ++  if (JUMP_TABLES_IN_TEXT_SECTION
  5.5555 ++#if !defined(READONLY_DATA_SECTION_ASM_OP)
  5.5556 ++      || 1
  5.5557 ++#endif
  5.5558 ++    )
  5.5559 ++    {
  5.5560 ++      rtx body = PATTERN (insn);
  5.5561 ++      int elt = GET_CODE (body) == ADDR_DIFF_VEC ? 1 : 0;
  5.5562 ++
  5.5563 ++      return GET_MODE_SIZE (GET_MODE (body)) * XVECLEN (body, elt);
  5.5564 ++    }
  5.5565 ++
  5.5566 ++  return 0;
  5.5567 ++}
  5.5568 ++
  5.5569 ++/* Move a minipool fix MP from its current location to before MAX_MP.
  5.5570 ++   If MAX_MP is NULL, then MP doesn't need moving, but the addressing
  5.5571 ++   constraints may need updating.  */
  5.5572 ++static Mnode *
  5.5573 ++move_minipool_fix_forward_ref (Mnode * mp, Mnode * max_mp,
  5.5574 ++			       HOST_WIDE_INT max_address)
  5.5575 ++{
  5.5576 ++  /* This should never be true and the code below assumes these are
  5.5577 ++     different.  */
  5.5578 ++  if (mp == max_mp)
  5.5579 ++    abort ();
  5.5580 ++
  5.5581 ++  if (max_mp == NULL)
  5.5582 ++    {
  5.5583 ++      if (max_address < mp->max_address)
  5.5584 ++	mp->max_address = max_address;
  5.5585 ++    }
  5.5586 ++  else
  5.5587 ++    {
  5.5588 ++      if (max_address > max_mp->max_address - mp->fix_size)
  5.5589 ++	mp->max_address = max_mp->max_address - mp->fix_size;
  5.5590 ++      else
  5.5591 ++	mp->max_address = max_address;
  5.5592 ++
  5.5593 ++      /* Unlink MP from its current position.  Since max_mp is non-null,
  5.5594 ++         mp->prev must be non-null.  */
  5.5595 ++      mp->prev->next = mp->next;
  5.5596 ++      if (mp->next != NULL)
  5.5597 ++	mp->next->prev = mp->prev;
  5.5598 ++      else
  5.5599 ++	minipool_vector_tail = mp->prev;
  5.5600 ++
  5.5601 ++      /* Re-insert it before MAX_MP.  */
  5.5602 ++      mp->next = max_mp;
  5.5603 ++      mp->prev = max_mp->prev;
  5.5604 ++      max_mp->prev = mp;
  5.5605 ++
  5.5606 ++      if (mp->prev != NULL)
  5.5607 ++	mp->prev->next = mp;
  5.5608 ++      else
  5.5609 ++	minipool_vector_head = mp;
  5.5610 ++    }
  5.5611 ++
  5.5612 ++  /* Save the new entry.  */
  5.5613 ++  max_mp = mp;
  5.5614 ++
  5.5615 ++  /* Scan over the preceding entries and adjust their addresses as required.
  5.5616 ++   */
  5.5617 ++  while (mp->prev != NULL
  5.5618 ++	 && mp->prev->max_address > mp->max_address - mp->prev->fix_size)
  5.5619 ++    {
  5.5620 ++      mp->prev->max_address = mp->max_address - mp->prev->fix_size;
  5.5621 ++      mp = mp->prev;
  5.5622 ++    }
  5.5623 ++
  5.5624 ++  return max_mp;
  5.5625 ++}
  5.5626 ++
  5.5627 ++/* Add a constant to the minipool for a forward reference.  Returns the
  5.5628 ++   node added or NULL if the constant will not fit in this pool.  */
  5.5629 ++static Mnode *
  5.5630 ++add_minipool_forward_ref (Mfix * fix)
  5.5631 ++{
  5.5632 ++  /* If set, max_mp is the first pool_entry that has a lower constraint than
  5.5633 ++     the one we are trying to add.  */
  5.5634 ++  Mnode *max_mp = NULL;
  5.5635 ++  HOST_WIDE_INT max_address = fix->address + fix->forwards;
  5.5636 ++  Mnode *mp;
  5.5637 ++
  5.5638 ++  /* If this fix's address is greater than the address of the first entry,
  5.5639 ++     then we can't put the fix in this pool.  We subtract the size of the
  5.5640 ++     current fix to ensure that if the table is fully packed we still have
  5.5641 ++     enough room to insert this value by suffling the other fixes forwards.  */
  5.5642 ++  if (minipool_vector_head &&
  5.5643 ++      fix->address >= minipool_vector_head->max_address - fix->fix_size)
  5.5644 ++    return NULL;
  5.5645 ++
  5.5646 ++  /* Scan the pool to see if a constant with the same value has already been
  5.5647 ++     added.  While we are doing this, also note the location where we must
  5.5648 ++     insert the constant if it doesn't already exist.  */
  5.5649 ++  for (mp = minipool_vector_head; mp != NULL; mp = mp->next)
  5.5650 ++    {
  5.5651 ++      if (GET_CODE (fix->value) == GET_CODE (mp->value)
  5.5652 ++	  && fix->mode == mp->mode
  5.5653 ++	  && (GET_CODE (fix->value) != CODE_LABEL
  5.5654 ++	      || (CODE_LABEL_NUMBER (fix->value)
  5.5655 ++		  == CODE_LABEL_NUMBER (mp->value)))
  5.5656 ++	  && rtx_equal_p (fix->value, mp->value))
  5.5657 ++	{
  5.5658 ++	  /* More than one fix references this entry.  */
  5.5659 ++	  mp->refcount++;
  5.5660 ++	  return move_minipool_fix_forward_ref (mp, max_mp, max_address);
  5.5661 ++	}
  5.5662 ++
  5.5663 ++      /* Note the insertion point if necessary.  */
  5.5664 ++      if (max_mp == NULL && mp->max_address > max_address)
  5.5665 ++	max_mp = mp;
  5.5666 ++
  5.5667 ++    }
  5.5668 ++
  5.5669 ++  /* The value is not currently in the minipool, so we need to create a new
  5.5670 ++     entry for it.  If MAX_MP is NULL, the entry will be put on the end of
  5.5671 ++     the list since the placement is less constrained than any existing
  5.5672 ++     entry.  Otherwise, we insert the new fix before MAX_MP and, if
  5.5673 ++     necessary, adjust the constraints on the other entries.  */
  5.5674 ++  mp = xmalloc (sizeof (*mp));
  5.5675 ++  mp->fix_size = fix->fix_size;
  5.5676 ++  mp->mode = fix->mode;
  5.5677 ++  mp->value = fix->value;
  5.5678 ++  mp->refcount = 1;
  5.5679 ++  /* Not yet required for a backwards ref.  */
  5.5680 ++  mp->min_address = -65536;
  5.5681 ++
  5.5682 ++  if (max_mp == NULL)
  5.5683 ++    {
  5.5684 ++      mp->max_address = max_address;
  5.5685 ++      mp->next = NULL;
  5.5686 ++      mp->prev = minipool_vector_tail;
  5.5687 ++
  5.5688 ++      if (mp->prev == NULL)
  5.5689 ++	{
  5.5690 ++	  minipool_vector_head = mp;
  5.5691 ++	  minipool_vector_label = gen_label_rtx ();
  5.5692 ++	}
  5.5693 ++      else
  5.5694 ++	mp->prev->next = mp;
  5.5695 ++
  5.5696 ++      minipool_vector_tail = mp;
  5.5697 ++    }
  5.5698 ++  else
  5.5699 ++    {
  5.5700 ++      if (max_address > max_mp->max_address - mp->fix_size)
  5.5701 ++	mp->max_address = max_mp->max_address - mp->fix_size;
  5.5702 ++      else
  5.5703 ++	mp->max_address = max_address;
  5.5704 ++
  5.5705 ++      mp->next = max_mp;
  5.5706 ++      mp->prev = max_mp->prev;
  5.5707 ++      max_mp->prev = mp;
  5.5708 ++      if (mp->prev != NULL)
  5.5709 ++	mp->prev->next = mp;
  5.5710 ++      else
  5.5711 ++	minipool_vector_head = mp;
  5.5712 ++    }
  5.5713 ++
  5.5714 ++  /* Save the new entry.  */
  5.5715 ++  max_mp = mp;
  5.5716 ++
  5.5717 ++  /* Scan over the preceding entries and adjust their addresses as required.
  5.5718 ++   */
  5.5719 ++  while (mp->prev != NULL
  5.5720 ++	 && mp->prev->max_address > mp->max_address - mp->prev->fix_size)
  5.5721 ++    {
  5.5722 ++      mp->prev->max_address = mp->max_address - mp->prev->fix_size;
  5.5723 ++      mp = mp->prev;
  5.5724 ++    }
  5.5725 ++
  5.5726 ++  return max_mp;
  5.5727 ++}
  5.5728 ++
  5.5729 ++static Mnode *
  5.5730 ++move_minipool_fix_backward_ref (Mnode * mp, Mnode * min_mp,
  5.5731 ++				HOST_WIDE_INT min_address)
  5.5732 ++{
  5.5733 ++  HOST_WIDE_INT offset;
  5.5734 ++
  5.5735 ++  /* This should never be true, and the code below assumes these are
  5.5736 ++     different.  */
  5.5737 ++  if (mp == min_mp)
  5.5738 ++    abort ();
  5.5739 ++
  5.5740 ++  if (min_mp == NULL)
  5.5741 ++    {
  5.5742 ++      if (min_address > mp->min_address)
  5.5743 ++	mp->min_address = min_address;
  5.5744 ++    }
  5.5745 ++  else
  5.5746 ++    {
  5.5747 ++      /* We will adjust this below if it is too loose.  */
  5.5748 ++      mp->min_address = min_address;
  5.5749 ++
  5.5750 ++      /* Unlink MP from its current position.  Since min_mp is non-null,
  5.5751 ++         mp->next must be non-null.  */
  5.5752 ++      mp->next->prev = mp->prev;
  5.5753 ++      if (mp->prev != NULL)
  5.5754 ++	mp->prev->next = mp->next;
  5.5755 ++      else
  5.5756 ++	minipool_vector_head = mp->next;
  5.5757 ++
  5.5758 ++      /* Reinsert it after MIN_MP.  */
  5.5759 ++      mp->prev = min_mp;
  5.5760 ++      mp->next = min_mp->next;
  5.5761 ++      min_mp->next = mp;
  5.5762 ++      if (mp->next != NULL)
  5.5763 ++	mp->next->prev = mp;
  5.5764 ++      else
  5.5765 ++	minipool_vector_tail = mp;
  5.5766 ++    }
  5.5767 ++
  5.5768 ++  min_mp = mp;
  5.5769 ++
  5.5770 ++  offset = 0;
  5.5771 ++  for (mp = minipool_vector_head; mp != NULL; mp = mp->next)
  5.5772 ++    {
  5.5773 ++      mp->offset = offset;
  5.5774 ++      if (mp->refcount > 0)
  5.5775 ++	offset += mp->fix_size;
  5.5776 ++
  5.5777 ++      if (mp->next && mp->next->min_address < mp->min_address + mp->fix_size)
  5.5778 ++	mp->next->min_address = mp->min_address + mp->fix_size;
  5.5779 ++    }
  5.5780 ++
  5.5781 ++  return min_mp;
  5.5782 ++}
  5.5783 ++
  5.5784 ++/* Add a constant to the minipool for a backward reference.  Returns the
  5.5785 ++   node added or NULL if the constant will not fit in this pool.
  5.5786 ++
  5.5787 ++   Note that the code for insertion for a backwards reference can be
  5.5788 ++   somewhat confusing because the calculated offsets for each fix do
  5.5789 ++   not take into account the size of the pool (which is still under
  5.5790 ++   construction.  */
  5.5791 ++static Mnode *
  5.5792 ++add_minipool_backward_ref (Mfix * fix)
  5.5793 ++{
  5.5794 ++  /* If set, min_mp is the last pool_entry that has a lower constraint than
  5.5795 ++     the one we are trying to add.  */
  5.5796 ++  Mnode *min_mp = NULL;
  5.5797 ++  /* This can be negative, since it is only a constraint.  */
  5.5798 ++  HOST_WIDE_INT min_address = fix->address - fix->backwards;
  5.5799 ++  Mnode *mp;
  5.5800 ++
  5.5801 ++  /* If we can't reach the current pool from this insn, or if we can't insert
  5.5802 ++     this entry at the end of the pool without pushing other fixes out of
  5.5803 ++     range, then we don't try.  This ensures that we can't fail later on.  */
  5.5804 ++  if (min_address >= minipool_barrier->address
  5.5805 ++      || (minipool_vector_tail->min_address + fix->fix_size
  5.5806 ++	  >= minipool_barrier->address))
  5.5807 ++    return NULL;
  5.5808 ++
  5.5809 ++  /* Scan the pool to see if a constant with the same value has already been
  5.5810 ++     added.  While we are doing this, also note the location where we must
  5.5811 ++     insert the constant if it doesn't already exist.  */
  5.5812 ++  for (mp = minipool_vector_tail; mp != NULL; mp = mp->prev)
  5.5813 ++    {
  5.5814 ++      if (GET_CODE (fix->value) == GET_CODE (mp->value)
  5.5815 ++	  && fix->mode == mp->mode
  5.5816 ++	  && (GET_CODE (fix->value) != CODE_LABEL
  5.5817 ++	      || (CODE_LABEL_NUMBER (fix->value)
  5.5818 ++		  == CODE_LABEL_NUMBER (mp->value)))
  5.5819 ++	  && rtx_equal_p (fix->value, mp->value)
  5.5820 ++	  /* Check that there is enough slack to move this entry to the end
  5.5821 ++	     of the table (this is conservative).  */
  5.5822 ++	  && (mp->max_address
  5.5823 ++	      > (minipool_barrier->address
  5.5824 ++		 + minipool_vector_tail->offset
  5.5825 ++		 + minipool_vector_tail->fix_size)))
  5.5826 ++	{
  5.5827 ++	  mp->refcount++;
  5.5828 ++	  return move_minipool_fix_backward_ref (mp, min_mp, min_address);
  5.5829 ++	}
  5.5830 ++
  5.5831 ++      if (min_mp != NULL)
  5.5832 ++	mp->min_address += fix->fix_size;
  5.5833 ++      else
  5.5834 ++	{
  5.5835 ++	  /* Note the insertion point if necessary.  */
  5.5836 ++	  if (mp->min_address < min_address)
  5.5837 ++	    {
  5.5838 ++	      min_mp = mp;
  5.5839 ++	    }
  5.5840 ++	  else if (mp->max_address
  5.5841 ++		   < minipool_barrier->address + mp->offset + fix->fix_size)
  5.5842 ++	    {
  5.5843 ++	      /* Inserting before this entry would push the fix beyond its
  5.5844 ++	         maximum address (which can happen if we have re-located a
  5.5845 ++	         forwards fix); force the new fix to come after it.  */
  5.5846 ++	      min_mp = mp;
  5.5847 ++	      min_address = mp->min_address + fix->fix_size;
  5.5848 ++	    }
  5.5849 ++	}
  5.5850 ++    }
  5.5851 ++
  5.5852 ++  /* We need to create a new entry.  */
  5.5853 ++  mp = xmalloc (sizeof (*mp));
  5.5854 ++  mp->fix_size = fix->fix_size;
  5.5855 ++  mp->mode = fix->mode;
  5.5856 ++  mp->value = fix->value;
  5.5857 ++  mp->refcount = 1;
  5.5858 ++  mp->max_address = minipool_barrier->address + 65536;
  5.5859 ++
  5.5860 ++  mp->min_address = min_address;
  5.5861 ++
  5.5862 ++  if (min_mp == NULL)
  5.5863 ++    {
  5.5864 ++      mp->prev = NULL;
  5.5865 ++      mp->next = minipool_vector_head;
  5.5866 ++
  5.5867 ++      if (mp->next == NULL)
  5.5868 ++	{
  5.5869 ++	  minipool_vector_tail = mp;
  5.5870 ++	  minipool_vector_label = gen_label_rtx ();
  5.5871 ++	}
  5.5872 ++      else
  5.5873 ++	mp->next->prev = mp;
  5.5874 ++
  5.5875 ++      minipool_vector_head = mp;
  5.5876 ++    }
  5.5877 ++  else
  5.5878 ++    {
  5.5879 ++      mp->next = min_mp->next;
  5.5880 ++      mp->prev = min_mp;
  5.5881 ++      min_mp->next = mp;
  5.5882 ++
  5.5883 ++      if (mp->next != NULL)
  5.5884 ++	mp->next->prev = mp;
  5.5885 ++      else
  5.5886 ++	minipool_vector_tail = mp;
  5.5887 ++    }
  5.5888 ++
  5.5889 ++  /* Save the new entry.  */
  5.5890 ++  min_mp = mp;
  5.5891 ++
  5.5892 ++  if (mp->prev)
  5.5893 ++    mp = mp->prev;
  5.5894 ++  else
  5.5895 ++    mp->offset = 0;
  5.5896 ++
  5.5897 ++  /* Scan over the following entries and adjust their offsets.  */
  5.5898 ++  while (mp->next != NULL)
  5.5899 ++    {
  5.5900 ++      if (mp->next->min_address < mp->min_address + mp->fix_size)
  5.5901 ++	mp->next->min_address = mp->min_address + mp->fix_size;
  5.5902 ++
  5.5903 ++      if (mp->refcount)
  5.5904 ++	mp->next->offset = mp->offset + mp->fix_size;
  5.5905 ++      else
  5.5906 ++	mp->next->offset = mp->offset;
  5.5907 ++
  5.5908 ++      mp = mp->next;
  5.5909 ++    }
  5.5910 ++
  5.5911 ++  return min_mp;
  5.5912 ++}
  5.5913 ++
  5.5914 ++static void
  5.5915 ++assign_minipool_offsets (Mfix * barrier)
  5.5916 ++{
  5.5917 ++  HOST_WIDE_INT offset = 0;
  5.5918 ++  Mnode *mp;
  5.5919 ++
  5.5920 ++  minipool_barrier = barrier;
  5.5921 ++
  5.5922 ++  for (mp = minipool_vector_head; mp != NULL; mp = mp->next)
  5.5923 ++    {
  5.5924 ++      mp->offset = offset;
  5.5925 ++
  5.5926 ++      if (mp->refcount > 0)
  5.5927 ++	offset += mp->fix_size;
  5.5928 ++    }
  5.5929 ++}
  5.5930 ++
  5.5931 ++/* Print a symbolic form of X to the debug file, F.  */
  5.5932 ++static void
  5.5933 ++avr32_print_value (FILE * f, rtx x)
  5.5934 ++{
  5.5935 ++  switch (GET_CODE (x))
  5.5936 ++    {
  5.5937 ++    case CONST_INT:
  5.5938 ++      fprintf (f, "0x%x", (int) INTVAL (x));
  5.5939 ++      return;
  5.5940 ++
  5.5941 ++    case CONST_DOUBLE:
  5.5942 ++      fprintf (f, "<0x%lx,0x%lx>", (long) XWINT (x, 2), (long) XWINT (x, 3));
  5.5943 ++      return;
  5.5944 ++
  5.5945 ++    case CONST_VECTOR:
  5.5946 ++      {
  5.5947 ++	int i;
  5.5948 ++
  5.5949 ++	fprintf (f, "<");
  5.5950 ++	for (i = 0; i < CONST_VECTOR_NUNITS (x); i++)
  5.5951 ++	  {
  5.5952 ++	    fprintf (f, "0x%x", (int) INTVAL (CONST_VECTOR_ELT (x, i)));
  5.5953 ++	    if (i < (CONST_VECTOR_NUNITS (x) - 1))
  5.5954 ++	      fputc (',', f);
  5.5955 ++	  }
  5.5956 ++	fprintf (f, ">");
  5.5957 ++      }
  5.5958 ++      return;
  5.5959 ++
  5.5960 ++    case CONST_STRING:
  5.5961 ++      fprintf (f, "\"%s\"", XSTR (x, 0));
  5.5962 ++      return;
  5.5963 ++
  5.5964 ++    case SYMBOL_REF:
  5.5965 ++      fprintf (f, "`%s'", XSTR (x, 0));
  5.5966 ++      return;
  5.5967 ++
  5.5968 ++    case LABEL_REF:
  5.5969 ++      fprintf (f, "L%d", INSN_UID (XEXP (x, 0)));
  5.5970 ++      return;
  5.5971 ++
  5.5972 ++    case CONST:
  5.5973 ++      avr32_print_value (f, XEXP (x, 0));
  5.5974 ++      return;
  5.5975 ++
  5.5976 ++    case PLUS:
  5.5977 ++      avr32_print_value (f, XEXP (x, 0));
  5.5978 ++      fprintf (f, "+");
  5.5979 ++      avr32_print_value (f, XEXP (x, 1));
  5.5980 ++      return;
  5.5981 ++
  5.5982 ++    case PC:
  5.5983 ++      fprintf (f, "pc");
  5.5984 ++      return;
  5.5985 ++
  5.5986 ++    default:
  5.5987 ++      fprintf (f, "????");
  5.5988 ++      return;
  5.5989 ++    }
  5.5990 ++}
  5.5991 ++
  5.5992 ++int
  5.5993 ++is_minipool_label (rtx label)
  5.5994 ++{
  5.5995 ++  minipool_labels *cur_mp_label = cfun->machine->minipool_label_head;
  5.5996 ++
  5.5997 ++  if (GET_CODE (label) != CODE_LABEL)
  5.5998 ++    return FALSE;
  5.5999 ++
  5.6000 ++  while (cur_mp_label)
  5.6001 ++    {
  5.6002 ++      if (CODE_LABEL_NUMBER (label)
  5.6003 ++	  == CODE_LABEL_NUMBER (cur_mp_label->label))
  5.6004 ++	return TRUE;
  5.6005 ++      cur_mp_label = cur_mp_label->next;
  5.6006 ++    }
  5.6007 ++  return FALSE;
  5.6008 ++}
  5.6009 ++
  5.6010 ++static void
  5.6011 ++new_minipool_label (rtx label)
  5.6012 ++{
  5.6013 ++  if (!cfun->machine->minipool_label_head)
  5.6014 ++    {
  5.6015 ++      cfun->machine->minipool_label_head =
  5.6016 ++	ggc_alloc (sizeof (minipool_labels));
  5.6017 ++      cfun->machine->minipool_label_tail = cfun->machine->minipool_label_head;
  5.6018 ++      cfun->machine->minipool_label_head->label = label;
  5.6019 ++      cfun->machine->minipool_label_head->next = 0;
  5.6020 ++      cfun->machine->minipool_label_head->prev = 0;
  5.6021 ++    }
  5.6022 ++  else
  5.6023 ++    {
  5.6024 ++      cfun->machine->minipool_label_tail->next =
  5.6025 ++	ggc_alloc (sizeof (minipool_labels));
  5.6026 ++      cfun->machine->minipool_label_tail->next->label = label;
  5.6027 ++      cfun->machine->minipool_label_tail->next->next = 0;
  5.6028 ++      cfun->machine->minipool_label_tail->next->prev =
  5.6029 ++	cfun->machine->minipool_label_tail;
  5.6030 ++      cfun->machine->minipool_label_tail =
  5.6031 ++	cfun->machine->minipool_label_tail->next;
  5.6032 ++    }
  5.6033 ++}
  5.6034 ++
  5.6035 ++/* Output the literal table */
  5.6036 ++static void
  5.6037 ++dump_minipool (rtx scan)
  5.6038 ++{
  5.6039 ++  Mnode *mp;
  5.6040 ++  Mnode *nmp;
  5.6041 ++
  5.6042 ++  if (dump_file)
  5.6043 ++    fprintf (dump_file,
  5.6044 ++	     ";; Emitting minipool after insn %u; address %ld; align %d (bytes)\n",
  5.6045 ++	     INSN_UID (scan), (unsigned long) minipool_barrier->address, 4);
  5.6046 ++
  5.6047 ++  scan = emit_insn_after (gen_consttable_start (), scan);
  5.6048 ++  scan = emit_insn_after (gen_align_4 (), scan);
  5.6049 ++  scan = emit_label_after (minipool_vector_label, scan);
  5.6050 ++  new_minipool_label (minipool_vector_label);
  5.6051 ++
  5.6052 ++  for (mp = minipool_vector_head; mp != NULL; mp = nmp)
  5.6053 ++    {
  5.6054 ++      if (mp->refcount > 0)
  5.6055 ++	{
  5.6056 ++	  if (dump_file)
  5.6057 ++	    {
  5.6058 ++	      fprintf (dump_file,
  5.6059 ++		       ";;  Offset %u, min %ld, max %ld ",
  5.6060 ++		       (unsigned) mp->offset, (unsigned long) mp->min_address,
  5.6061 ++		       (unsigned long) mp->max_address);
  5.6062 ++	      avr32_print_value (dump_file, mp->value);
  5.6063 ++	      fputc ('\n', dump_file);
  5.6064 ++	    }
  5.6065 ++
  5.6066 ++	  switch (mp->fix_size)
  5.6067 ++	    {
  5.6068 ++#ifdef HAVE_consttable_4
  5.6069 ++	    case 4:
  5.6070 ++	      scan = emit_insn_after (gen_consttable_4 (mp->value), scan);
  5.6071 ++	      break;
  5.6072 ++
  5.6073 ++#endif
  5.6074 ++#ifdef HAVE_consttable_8
  5.6075 ++	    case 8:
  5.6076 ++	      scan = emit_insn_after (gen_consttable_8 (mp->value), scan);
  5.6077 ++	      break;
  5.6078 ++
  5.6079 ++#endif
  5.6080 ++#ifdef HAVE_consttable_16
  5.6081 ++            case 16:
  5.6082 ++              scan = emit_insn_after (gen_consttable_16 (mp->value), scan);
  5.6083 ++              break;
  5.6084 ++
  5.6085 ++#endif
  5.6086 ++            case 0:
  5.6087 ++              /* This can happen for force-minipool entries which just are
  5.6088 ++	         there to force the minipool to be generate. */
  5.6089 ++	      break;
  5.6090 ++	    default:
  5.6091 ++	      abort ();
  5.6092 ++	      break;
  5.6093 ++	    }
  5.6094 ++	}
  5.6095 ++
  5.6096 ++      nmp = mp->next;
  5.6097 ++      free (mp);
  5.6098 ++    }
  5.6099 ++
  5.6100 ++  minipool_vector_head = minipool_vector_tail = NULL;
  5.6101 ++  scan = emit_insn_after (gen_consttable_end (), scan);
  5.6102 ++  scan = emit_barrier_after (scan);
  5.6103 ++}
  5.6104 ++
  5.6105 ++/* Return the cost of forcibly inserting a barrier after INSN.  */
  5.6106 ++static int
  5.6107 ++avr32_barrier_cost (rtx insn)
  5.6108 ++{
  5.6109 ++  /* Basing the location of the pool on the loop depth is preferable, but at
  5.6110 ++     the moment, the basic block information seems to be corrupt by this
  5.6111 ++     stage of the compilation.  */
  5.6112 ++  int base_cost = 50;
  5.6113 ++  rtx next = next_nonnote_insn (insn);
  5.6114 ++
  5.6115 ++  if (next != NULL && GET_CODE (next) == CODE_LABEL)
  5.6116 ++    base_cost -= 20;
  5.6117 ++
  5.6118 ++  switch (GET_CODE (insn))
  5.6119 ++    {
  5.6120 ++    case CODE_LABEL:
  5.6121 ++      /* It will always be better to place the table before the label, rather
  5.6122 ++         than after it.  */
  5.6123 ++      return 50;
  5.6124 ++
  5.6125 ++    case INSN:
  5.6126 ++    case CALL_INSN:
  5.6127 ++      return base_cost;
  5.6128 ++
  5.6129 ++    case JUMP_INSN:
  5.6130 ++      return base_cost - 10;
  5.6131 ++
  5.6132 ++    default:
  5.6133 ++      return base_cost + 10;
  5.6134 ++    }
  5.6135 ++}
  5.6136 ++
  5.6137 ++/* Find the best place in the insn stream in the range
  5.6138 ++   (FIX->address,MAX_ADDRESS) to forcibly insert a minipool barrier.
  5.6139 ++   Create the barrier by inserting a jump and add a new fix entry for
  5.6140 ++   it.  */
  5.6141 ++static Mfix *
  5.6142 ++create_fix_barrier (Mfix * fix, HOST_WIDE_INT max_address)
  5.6143 ++{
  5.6144 ++  HOST_WIDE_INT count = 0;
  5.6145 ++  rtx barrier;
  5.6146 ++  rtx from = fix->insn;
  5.6147 ++  rtx selected = from;
  5.6148 ++  int selected_cost;
  5.6149 ++  HOST_WIDE_INT selected_address;
  5.6150 ++  Mfix *new_fix;
  5.6151 ++  HOST_WIDE_INT max_count = max_address - fix->address;
  5.6152 ++  rtx label = gen_label_rtx ();
  5.6153 ++
  5.6154 ++  selected_cost = avr32_barrier_cost (from);
  5.6155 ++  selected_address = fix->address;
  5.6156 ++
  5.6157 ++  while (from && count < max_count)
  5.6158 ++    {
  5.6159 ++      rtx tmp;
  5.6160 ++      int new_cost;
  5.6161 ++
  5.6162 ++      /* This code shouldn't have been called if there was a natural barrier
  5.6163 ++         within range.  */
  5.6164 ++      if (GET_CODE (from) == BARRIER)
  5.6165 ++	abort ();
  5.6166 ++
  5.6167 ++      /* Count the length of this insn.  */
  5.6168 ++      count += get_attr_length (from);
  5.6169 ++
  5.6170 ++      /* If there is a jump table, add its length.  */
  5.6171 ++      tmp = is_jump_table (from);
  5.6172 ++      if (tmp != NULL)
  5.6173 ++	{
  5.6174 ++	  count += get_jump_table_size (tmp);
  5.6175 ++
  5.6176 ++	  /* Jump tables aren't in a basic block, so base the cost on the
  5.6177 ++	     dispatch insn.  If we select this location, we will still put
  5.6178 ++	     the pool after the table.  */
  5.6179 ++	  new_cost = avr32_barrier_cost (from);
  5.6180 ++
  5.6181 ++	  if (count < max_count && new_cost <= selected_cost)
  5.6182 ++	    {
  5.6183 ++	      selected = tmp;
  5.6184 ++	      selected_cost = new_cost;
  5.6185 ++	      selected_address = fix->address + count;
  5.6186 ++	    }
  5.6187 ++
  5.6188 ++	  /* Continue after the dispatch table.  */
  5.6189 ++	  from = NEXT_INSN (tmp);
  5.6190 ++	  continue;
  5.6191 ++	}
  5.6192 ++
  5.6193 ++      new_cost = avr32_barrier_cost (from);
  5.6194 ++
  5.6195 ++      if (count < max_count && new_cost <= selected_cost)
  5.6196 ++	{
  5.6197 ++	  selected = from;
  5.6198 ++	  selected_cost = new_cost;
  5.6199 ++	  selected_address = fix->address + count;
  5.6200 ++	}
  5.6201 ++
  5.6202 ++      from = NEXT_INSN (from);
  5.6203 ++    }
  5.6204 ++
  5.6205 ++  /* Create a new JUMP_INSN that branches around a barrier.  */
  5.6206 ++  from = emit_jump_insn_after (gen_jump (label), selected);
  5.6207 ++  JUMP_LABEL (from) = label;
  5.6208 ++  barrier = emit_barrier_after (from);
  5.6209 ++  emit_label_after (label, barrier);
  5.6210 ++
  5.6211 ++  /* Create a minipool barrier entry for the new barrier.  */
  5.6212 ++  new_fix = (Mfix *) obstack_alloc (&minipool_obstack, sizeof (*new_fix));
  5.6213 ++  new_fix->insn = barrier;
  5.6214 ++  new_fix->address = selected_address;
  5.6215 ++  new_fix->next = fix->next;
  5.6216 ++  fix->next = new_fix;
  5.6217 ++
  5.6218 ++  return new_fix;
  5.6219 ++}
  5.6220 ++
  5.6221 ++/* Record that there is a natural barrier in the insn stream at
  5.6222 ++   ADDRESS.  */
  5.6223 ++static void
  5.6224 ++push_minipool_barrier (rtx insn, HOST_WIDE_INT address)
  5.6225 ++{
  5.6226 ++  Mfix *fix = (Mfix *) obstack_alloc (&minipool_obstack, sizeof (*fix));
  5.6227 ++
  5.6228 ++  fix->insn = insn;
  5.6229 ++  fix->address = address;
  5.6230 ++
  5.6231 ++  fix->next = NULL;
  5.6232 ++  if (minipool_fix_head != NULL)
  5.6233 ++    minipool_fix_tail->next = fix;
  5.6234 ++  else
  5.6235 ++    minipool_fix_head = fix;
  5.6236 ++
  5.6237 ++  minipool_fix_tail = fix;
  5.6238 ++}
  5.6239 ++
  5.6240 ++/* Record INSN, which will need fixing up to load a value from the
  5.6241 ++   minipool.  ADDRESS is the offset of the insn since the start of the
  5.6242 ++   function; LOC is a pointer to the part of the insn which requires
  5.6243 ++   fixing; VALUE is the constant that must be loaded, which is of type
  5.6244 ++   MODE.  */
  5.6245 ++static void
  5.6246 ++push_minipool_fix (rtx insn, HOST_WIDE_INT address, rtx * loc,
  5.6247 ++		   enum machine_mode mode, rtx value)
  5.6248 ++{
  5.6249 ++  Mfix *fix = (Mfix *) obstack_alloc (&minipool_obstack, sizeof (*fix));
  5.6250 ++  rtx body = PATTERN (insn);
  5.6251 ++
  5.6252 ++  fix->insn = insn;
  5.6253 ++  fix->address = address;
  5.6254 ++  fix->loc = loc;
  5.6255 ++  fix->mode = mode;
  5.6256 ++  fix->fix_size = MINIPOOL_FIX_SIZE (mode, value);
  5.6257 ++  fix->value = value;
  5.6258 ++
  5.6259 ++  if (GET_CODE (body) == PARALLEL)
  5.6260 ++    {
  5.6261 ++      /* Mcall : Ks16 << 2 */
  5.6262 ++      fix->forwards = ((1 << 15) - 1) << 2;
  5.6263 ++      fix->backwards = (1 << 15) << 2;
  5.6264 ++    }
  5.6265 ++  else if (GET_CODE (body) == SET
  5.6266 ++           && GET_MODE_SIZE (GET_MODE (SET_DEST (body))) == 4)
  5.6267 ++    {
  5.6268 ++        /* Word Load */
  5.6269 ++      if (TARGET_HARD_FLOAT
  5.6270 ++          && GET_MODE_CLASS (GET_MODE (SET_DEST (body))) == MODE_FLOAT)
  5.6271 ++        {
  5.6272 ++          /* Ldc0.w : Ku12 << 2 */
  5.6273 ++          fix->forwards = ((1 << 12) - 1) << 2;
  5.6274 ++          fix->backwards = 0;
  5.6275 ++        }
  5.6276 ++      else
  5.6277 ++        {
  5.6278 ++          if (optimize_size)
  5.6279 ++            {
  5.6280 ++              /* Lddpc : Ku7 << 2 */
  5.6281 ++              fix->forwards = ((1 << 7) - 1) << 2;
  5.6282 ++              fix->backwards = 0;
  5.6283 ++            }
  5.6284 ++          else
  5.6285 ++            {
  5.6286 ++              /* Ld.w : Ks16 */
  5.6287 ++              fix->forwards = ((1 << 15) - 4);
  5.6288 ++              fix->backwards = (1 << 15);
  5.6289 ++            }
  5.6290 ++        }
  5.6291 ++    }
  5.6292 ++  else if (GET_CODE (body) == SET
  5.6293 ++           && GET_MODE_SIZE (GET_MODE (SET_DEST (body))) == 8)
  5.6294 ++    {
  5.6295 ++      /* Double word load */
  5.6296 ++      if (TARGET_HARD_FLOAT
  5.6297 ++          && GET_MODE_CLASS (GET_MODE (SET_DEST (body))) == MODE_FLOAT)
  5.6298 ++        {
  5.6299 ++          /* Ldc0.d : Ku12 << 2 */
  5.6300 ++          fix->forwards = ((1 << 12) - 1) << 2;
  5.6301 ++          fix->backwards = 0;
  5.6302 ++        }
  5.6303 ++      else
  5.6304 ++        {
  5.6305 ++          /* Ld.d : Ks16 */
  5.6306 ++          fix->forwards = ((1 << 15) - 4);
  5.6307 ++          fix->backwards = (1 << 15);
  5.6308 ++        }
  5.6309 ++    }
  5.6310 ++  else if (GET_CODE (body) == UNSPEC_VOLATILE
  5.6311 ++           && XINT (body, 1) == VUNSPEC_MVRC)
  5.6312 ++    {
  5.6313 ++      /* Coprocessor load */
  5.6314 ++      /* Ldc : Ku8 << 2 */
  5.6315 ++      fix->forwards = ((1 << 8) - 1) << 2;
  5.6316 ++      fix->backwards = 0;
  5.6317 ++    }
  5.6318 ++  else
  5.6319 ++    {
  5.6320 ++      /* Assume worst case which is lddpc insn. */
  5.6321 ++      fix->forwards = ((1 << 7) - 1) << 2;
  5.6322 ++      fix->backwards = 0;
  5.6323 ++    }
  5.6324 ++
  5.6325 ++  fix->minipool = NULL;
  5.6326 ++
  5.6327 ++  /* If an insn doesn't have a range defined for it, then it isn't expecting
  5.6328 ++     to be reworked by this code.  Better to abort now than to generate duff
  5.6329 ++     assembly code.  */
  5.6330 ++  if (fix->forwards == 0 && fix->backwards == 0)
  5.6331 ++    abort ();
  5.6332 ++
  5.6333 ++  if (dump_file)
  5.6334 ++    {
  5.6335 ++      fprintf (dump_file,
  5.6336 ++	       ";; %smode fixup for i%d; addr %lu, range (%ld,%ld): ",
  5.6337 ++	       GET_MODE_NAME (mode),
  5.6338 ++	       INSN_UID (insn), (unsigned long) address,
  5.6339 ++	       -1 * (long) fix->backwards, (long) fix->forwards);
  5.6340 ++      avr32_print_value (dump_file, fix->value);
  5.6341 ++      fprintf (dump_file, "\n");
  5.6342 ++    }
  5.6343 ++
  5.6344 ++  /* Add it to the chain of fixes.  */
  5.6345 ++  fix->next = NULL;
  5.6346 ++
  5.6347 ++  if (minipool_fix_head != NULL)
  5.6348 ++    minipool_fix_tail->next = fix;
  5.6349 ++  else
  5.6350 ++    minipool_fix_head = fix;
  5.6351 ++
  5.6352 ++  minipool_fix_tail = fix;
  5.6353 ++}
  5.6354 ++
  5.6355 ++/* Scan INSN and note any of its operands that need fixing.
  5.6356 ++   If DO_PUSHES is false we do not actually push any of the fixups
  5.6357 ++   needed.  The function returns TRUE is any fixups were needed/pushed.
  5.6358 ++   This is used by avr32_memory_load_p() which needs to know about loads
  5.6359 ++   of constants that will be converted into minipool loads.  */
  5.6360 ++static bool
  5.6361 ++note_invalid_constants (rtx insn, HOST_WIDE_INT address, int do_pushes)
  5.6362 ++{
  5.6363 ++  bool result = false;
  5.6364 ++  int opno;
  5.6365 ++
  5.6366 ++  extract_insn (insn);
  5.6367 ++
  5.6368 ++  if (!constrain_operands (1))
  5.6369 ++    fatal_insn_not_found (insn);
  5.6370 ++
  5.6371 ++  if (recog_data.n_alternatives == 0)
  5.6372 ++    return false;
  5.6373 ++
  5.6374 ++  /* Fill in recog_op_alt with information about the constraints of this
  5.6375 ++     insn.  */
  5.6376 ++  preprocess_constraints ();
  5.6377 ++
  5.6378 ++  for (opno = 0; opno < recog_data.n_operands; opno++)
  5.6379 ++    {
  5.6380 ++      rtx op;
  5.6381 ++
  5.6382 ++      /* Things we need to fix can only occur in inputs.  */
  5.6383 ++      if (recog_data.operand_type[opno] != OP_IN)
  5.6384 ++	continue;
  5.6385 ++
  5.6386 ++      op = recog_data.operand[opno];
  5.6387 ++
  5.6388 ++      if (avr32_const_pool_ref_operand (op, GET_MODE (op)))
  5.6389 ++	{
  5.6390 ++	  if (do_pushes)
  5.6391 ++	    {
  5.6392 ++	      rtx cop = avoid_constant_pool_reference (op);
  5.6393 ++
  5.6394 ++	      /* Casting the address of something to a mode narrower than a
  5.6395 ++	         word can cause avoid_constant_pool_reference() to return the
  5.6396 ++	         pool reference itself.  That's no good to us here.  Lets
  5.6397 ++	         just hope that we can use the constant pool value directly.
  5.6398 ++	       */
  5.6399 ++	      if (op == cop)
  5.6400 ++		cop = get_pool_constant (XEXP (op, 0));
  5.6401 ++
  5.6402 ++	      push_minipool_fix (insn, address,
  5.6403 ++				 recog_data.operand_loc[opno],
  5.6404 ++				 recog_data.operand_mode[opno], cop);
  5.6405 ++	    }
  5.6406 ++
  5.6407 ++	  result = true;
  5.6408 ++	}
  5.6409 ++      else if (TARGET_HAS_ASM_ADDR_PSEUDOS
  5.6410 ++	       && avr32_address_operand (op, GET_MODE (op)))
  5.6411 ++	{
  5.6412 ++	  /* Handle pseudo instructions using a direct address. These pseudo
  5.6413 ++	     instructions might need entries in the constant pool and we must
  5.6414 ++	     therefor create a constant pool for them, in case the
  5.6415 ++	     assembler/linker needs to insert entries. */
  5.6416 ++	  if (do_pushes)
  5.6417 ++	    {
  5.6418 ++	      /* Push a dummy constant pool entry so that the .cpool
  5.6419 ++	         directive should be inserted on the appropriate place in the
  5.6420 ++	         code even if there are no real constant pool entries. This
  5.6421 ++	         is used by the assembler and linker to know where to put
  5.6422 ++	         generated constant pool entries. */
  5.6423 ++	      push_minipool_fix (insn, address,
  5.6424 ++				 recog_data.operand_loc[opno],
  5.6425 ++				 recog_data.operand_mode[opno],
  5.6426 ++				 gen_rtx_UNSPEC (VOIDmode,
  5.6427 ++						 gen_rtvec (1, const0_rtx),
  5.6428 ++						 UNSPEC_FORCE_MINIPOOL));
  5.6429 ++	      result = true;
  5.6430 ++	    }
  5.6431 ++	}
  5.6432 ++    }
  5.6433 ++  return result;
  5.6434 ++}
  5.6435 ++
  5.6436 ++
  5.6437 ++static int
  5.6438 ++avr32_insn_is_cast (rtx insn)
  5.6439 ++{
  5.6440 ++
  5.6441 ++  if (NONJUMP_INSN_P (insn)
  5.6442 ++      && GET_CODE (PATTERN (insn)) == SET
  5.6443 ++      && (GET_CODE (SET_SRC (PATTERN (insn))) == ZERO_EXTEND
  5.6444 ++	  || GET_CODE (SET_SRC (PATTERN (insn))) == SIGN_EXTEND)
  5.6445 ++      && REG_P (XEXP (SET_SRC (PATTERN (insn)), 0))
  5.6446 ++      && REG_P (SET_DEST (PATTERN (insn))))
  5.6447 ++    return true;
  5.6448 ++  return false;
  5.6449 ++}
  5.6450 ++
  5.6451 ++/*
  5.6452 ++ Replace all occurances of reg FROM with reg TO in X */
  5.6453 ++
  5.6454 ++rtx
  5.6455 ++avr32_replace_reg (rtx x, rtx from, rtx to)
  5.6456 ++{
  5.6457 ++  int i, j;
  5.6458 ++  const char *fmt;
  5.6459 ++
  5.6460 ++  gcc_assert ( REG_P (from) && REG_P (to) );
  5.6461 ++
  5.6462 ++  /* Allow this function to make replacements in EXPR_LISTs.  */
  5.6463 ++  if (x == 0)
  5.6464 ++    return 0;
  5.6465 ++
  5.6466 ++  if (rtx_equal_p (x, from))
  5.6467 ++    return to;
  5.6468 ++
  5.6469 ++  if (GET_CODE (x) == SUBREG)
  5.6470 ++    {
  5.6471 ++      rtx new = avr32_replace_reg (SUBREG_REG (x), from, to);
  5.6472 ++
  5.6473 ++      if (GET_CODE (new) == CONST_INT)
  5.6474 ++	{
  5.6475 ++	  x = simplify_subreg (GET_MODE (x), new,
  5.6476 ++			       GET_MODE (SUBREG_REG (x)),
  5.6477 ++			       SUBREG_BYTE (x));
  5.6478 ++	  gcc_assert (x);
  5.6479 ++	}
  5.6480 ++      else
  5.6481 ++	SUBREG_REG (x) = new;
  5.6482 ++
  5.6483 ++      return x;
  5.6484 ++    }
  5.6485 ++  else if (GET_CODE (x) == ZERO_EXTEND)
  5.6486 ++    {
  5.6487 ++      rtx new = avr32_replace_reg (XEXP (x, 0), from, to);
  5.6488 ++
  5.6489 ++      if (GET_CODE (new) == CONST_INT)
  5.6490 ++	{
  5.6491 ++	  x = simplify_unary_operation (ZERO_EXTEND, GET_MODE (x),
  5.6492 ++					new, GET_MODE (XEXP (x, 0)));
  5.6493 ++	  gcc_assert (x);
  5.6494 ++	}
  5.6495 ++      else
  5.6496 ++	XEXP (x, 0) = new;
  5.6497 ++
  5.6498 ++      return x;
  5.6499 ++    }
  5.6500 ++
  5.6501 ++  fmt = GET_RTX_FORMAT (GET_CODE (x));
  5.6502 ++  for (i = GET_RTX_LENGTH (GET_CODE (x)) - 1; i >= 0; i--)
  5.6503 ++    {
  5.6504 ++      if (fmt[i] == 'e')
  5.6505 ++	XEXP (x, i) = avr32_replace_reg (XEXP (x, i), from, to);
  5.6506 ++      else if (fmt[i] == 'E')
  5.6507 ++	for (j = XVECLEN (x, i) - 1; j >= 0; j--)
  5.6508 ++	  XVECEXP (x, i, j) = avr32_replace_reg (XVECEXP (x, i, j), from, to);
  5.6509 ++    }
  5.6510 ++
  5.6511 ++  return x;
  5.6512 ++}
  5.6513 ++
  5.6514 ++
  5.6515 ++/* FIXME: The level of nesting in this function is way too deep. It needs to be
  5.6516 ++   torn apart.  */
  5.6517 ++static void
  5.6518 ++avr32_reorg_optimization (void)
  5.6519 ++{
  5.6520 ++  rtx first = get_first_nonnote_insn ();
  5.6521 ++  rtx insn;
  5.6522 ++
  5.6523 ++  if (TARGET_MD_REORG_OPTIMIZATION && (optimize_size || (optimize > 0)))
  5.6524 ++    {
  5.6525 ++
  5.6526 ++      /* Scan through all insns looking for cast operations. */
  5.6527 ++      if (dump_file)
  5.6528 ++	{
  5.6529 ++	  fprintf (dump_file, ";; Deleting redundant cast operations:\n");
  5.6530 ++	}
  5.6531 ++      for (insn = first; insn; insn = NEXT_INSN (insn))
  5.6532 ++	{
  5.6533 ++	  rtx reg, src_reg, scan;
  5.6534 ++	  enum machine_mode mode;
  5.6535 ++	  int unused_cast;
  5.6536 ++	  rtx label_ref;
  5.6537 ++
  5.6538 ++	  if (avr32_insn_is_cast (insn)
  5.6539 ++	      && (GET_MODE (XEXP (SET_SRC (PATTERN (insn)), 0)) == QImode
  5.6540 ++		  || GET_MODE (XEXP (SET_SRC (PATTERN (insn)), 0)) == HImode))
  5.6541 ++	    {
  5.6542 ++	      mode = GET_MODE (XEXP (SET_SRC (PATTERN (insn)), 0));
  5.6543 ++	      reg = SET_DEST (PATTERN (insn));
  5.6544 ++	      src_reg = XEXP (SET_SRC (PATTERN (insn)), 0);
  5.6545 ++	    }
  5.6546 ++	  else
  5.6547 ++	    {
  5.6548 ++	      continue;
  5.6549 ++	    }
  5.6550 ++
  5.6551 ++	  unused_cast = false;
  5.6552 ++	  label_ref = NULL_RTX;
  5.6553 ++	  for (scan = NEXT_INSN (insn); scan; scan = NEXT_INSN (scan))
  5.6554 ++	    {
  5.6555 ++	      /* Check if we have reached the destination of a simple
  5.6556 ++	         conditional jump which we have already scanned past. If so,
  5.6557 ++	         we can safely continue scanning. */
  5.6558 ++	      if (LABEL_P (scan) && label_ref != NULL_RTX)
  5.6559 ++		{
  5.6560 ++		  if (CODE_LABEL_NUMBER (scan) ==
  5.6561 ++		      CODE_LABEL_NUMBER (XEXP (label_ref, 0)))
  5.6562 ++		    label_ref = NULL_RTX;
  5.6563 ++		  else
  5.6564 ++		    break;
  5.6565 ++		}
  5.6566 ++
  5.6567 ++	      if (!INSN_P (scan))
  5.6568 ++		continue;
  5.6569 ++
  5.6570 ++	      /* For conditional jumps we can manage to keep on scanning if
  5.6571 ++	         we meet the destination label later on before any new jump
  5.6572 ++	         insns occure. */
  5.6573 ++	      if (GET_CODE (scan) == JUMP_INSN)
  5.6574 ++		{
  5.6575 ++		  if (any_condjump_p (scan) && label_ref == NULL_RTX)
  5.6576 ++		    label_ref = condjump_label (scan);
  5.6577 ++		  else
  5.6578 ++		    break;
  5.6579 ++		}
  5.6580 ++
  5.6581 ++              /* Check if we have a call and the register is used as an argument. */
  5.6582 ++              if (CALL_P (scan)
  5.6583 ++                  && find_reg_fusage (scan, USE, reg) )
  5.6584 ++                break;
  5.6585 ++
  5.6586 ++	      if (!reg_mentioned_p (reg, PATTERN (scan)))
  5.6587 ++		continue;
  5.6588 ++
  5.6589 ++	      /* Check if casted register is used in this insn */
  5.6590 ++	      if ((regno_use_in (REGNO (reg), PATTERN (scan)) != NULL_RTX)
  5.6591 ++		  && (GET_MODE (regno_use_in (REGNO (reg), PATTERN (scan))) ==
  5.6592 ++		      GET_MODE (reg)))
  5.6593 ++		{
  5.6594 ++		  /* If not used in the source to the set or in a memory
  5.6595 ++		     expression in the destiantion then the register is used
  5.6596 ++		     as a destination and is really dead. */
  5.6597 ++		  if (single_set (scan)
  5.6598 ++		      && GET_CODE (PATTERN (scan)) == SET
  5.6599 ++		      && REG_P (SET_DEST (PATTERN (scan)))
  5.6600 ++		      && !regno_use_in (REGNO (reg), SET_SRC (PATTERN (scan)))
  5.6601 ++		      && label_ref == NULL_RTX)
  5.6602 ++		    {
  5.6603 ++		      unused_cast = true;
  5.6604 ++		    }
  5.6605 ++		  break;
  5.6606 ++		}
  5.6607 ++
  5.6608 ++	      /* Check if register is dead or set in this insn */
  5.6609 ++	      if (dead_or_set_p (scan, reg))
  5.6610 ++		{
  5.6611 ++		  unused_cast = true;
  5.6612 ++		  break;
  5.6613 ++		}
  5.6614 ++	    }
  5.6615 ++
  5.6616 ++	  /* Check if we have unresolved conditional jumps */
  5.6617 ++	  if (label_ref != NULL_RTX)
  5.6618 ++	    continue;
  5.6619 ++
  5.6620 ++	  if (unused_cast)
  5.6621 ++	    {
  5.6622 ++	      if (REGNO (reg) == REGNO (XEXP (SET_SRC (PATTERN (insn)), 0)))
  5.6623 ++		{
  5.6624 ++		  /* One operand cast, safe to delete */
  5.6625 ++		  if (dump_file)
  5.6626 ++		    {
  5.6627 ++		      fprintf (dump_file,
  5.6628 ++			       ";;  INSN %i removed, casted register %i value not used.\n",
  5.6629 ++			       INSN_UID (insn), REGNO (reg));
  5.6630 ++		    }
  5.6631 ++		  SET_INSN_DELETED (insn);
  5.6632 ++		  /* Force the instruction to be recognized again */
  5.6633 ++		  INSN_CODE (insn) = -1;
  5.6634 ++		}
  5.6635 ++	      else
  5.6636 ++		{
  5.6637 ++		  /* Two operand cast, which really could be substituted with
  5.6638 ++		     a move, if the source register is dead after the cast
  5.6639 ++		     insn and then the insn which sets the source register
  5.6640 ++		     could instead directly set the destination register for
  5.6641 ++		     the cast. As long as there are no insns in between which
  5.6642 ++		     uses the register. */
  5.6643 ++		  rtx link = NULL_RTX;
  5.6644 ++		  rtx set;
  5.6645 ++		  rtx src_reg = XEXP (SET_SRC (PATTERN (insn)), 0);
  5.6646 ++		  unused_cast = false;
  5.6647 ++
  5.6648 ++		  if (!find_reg_note (insn, REG_DEAD, src_reg))
  5.6649 ++		    continue;
  5.6650 ++
  5.6651 ++		  /* Search for the insn which sets the source register */
  5.6652 ++		  for (link = LOG_LINKS (insn); link; link = XEXP (link, 1))
  5.6653 ++		    {
  5.6654 ++		      if (REG_NOTE_KIND (link) != 0)
  5.6655 ++			continue;
  5.6656 ++		      set = single_set (XEXP (link, 0));
  5.6657 ++		      if (set && rtx_equal_p (src_reg, SET_DEST (set)))
  5.6658 ++			{
  5.6659 ++			  link = XEXP (link, 0);
  5.6660 ++			  break;
  5.6661 ++			}
  5.6662 ++		    }
  5.6663 ++
  5.6664 ++		  /* Found no link or link is a call insn where we can not
  5.6665 ++		     change the destination register */
  5.6666 ++		  if (link == NULL_RTX || CALL_P (link))
  5.6667 ++		    continue;
  5.6668 ++
  5.6669 ++		  /* Scan through all insn between link and insn */
  5.6670 ++		  for (scan = NEXT_INSN (link); scan; scan = NEXT_INSN (scan))
  5.6671 ++		    {
  5.6672 ++		      /* Don't try to trace forward past a CODE_LABEL if we
  5.6673 ++		         haven't seen INSN yet.  Ordinarily, we will only
  5.6674 ++		         find the setting insn in LOG_LINKS if it is in the
  5.6675 ++		         same basic block.  However, cross-jumping can insert
  5.6676 ++		         code labels in between the load and the call, and
  5.6677 ++		         can result in situations where a single call insn
  5.6678 ++		         may have two targets depending on where we came
  5.6679 ++		         from.  */
  5.6680 ++
  5.6681 ++		      if (GET_CODE (scan) == CODE_LABEL)
  5.6682 ++			break;
  5.6683 ++
  5.6684 ++		      if (!INSN_P (scan))
  5.6685 ++			continue;
  5.6686 ++
  5.6687 ++		      /* Don't try to trace forward past a JUMP.  To optimize
  5.6688 ++		         safely, we would have to check that all the
  5.6689 ++		         instructions at the jump destination did not use REG.
  5.6690 ++		       */
  5.6691 ++
  5.6692 ++		      if (GET_CODE (scan) == JUMP_INSN)
  5.6693 ++			{
  5.6694 ++			  break;
  5.6695 ++			}
  5.6696 ++
  5.6697 ++		      if (!reg_mentioned_p (src_reg, PATTERN (scan)))
  5.6698 ++			continue;
  5.6699 ++
  5.6700 ++		      /* We have reached the cast insn */
  5.6701 ++		      if (scan == insn)
  5.6702 ++			{
  5.6703 ++			  /* We can remove cast and replace the destination
  5.6704 ++			     register of the link insn with the destination
  5.6705 ++			     of the cast */
  5.6706 ++			  if (dump_file)
  5.6707 ++			    {
  5.6708 ++			      fprintf (dump_file,
  5.6709 ++				       ";;  INSN %i removed, casted value unused. "
  5.6710 ++				       "Destination of removed cast operation: register %i,  folded into INSN %i.\n",
  5.6711 ++				       INSN_UID (insn), REGNO (reg),
  5.6712 ++				       INSN_UID (link));
  5.6713 ++			    }
  5.6714 ++			  /* Update link insn */
  5.6715 ++			  SET_DEST (PATTERN (link)) =
  5.6716 ++			    gen_rtx_REG (mode, REGNO (reg));
  5.6717 ++			  /* Force the instruction to be recognized again */
  5.6718 ++			  INSN_CODE (link) = -1;
  5.6719 ++
  5.6720 ++			  /* Delete insn */
  5.6721 ++			  SET_INSN_DELETED (insn);
  5.6722 ++			  /* Force the instruction to be recognized again */
  5.6723 ++			  INSN_CODE (insn) = -1;
  5.6724 ++			  break;
  5.6725 ++			}
  5.6726 ++		    }
  5.6727 ++		}
  5.6728 ++	    }
  5.6729 ++	}
  5.6730 ++    }
  5.6731 ++
  5.6732 ++  if (TARGET_MD_REORG_OPTIMIZATION && (optimize_size || (optimize > 0)))
  5.6733 ++    {
  5.6734 ++
  5.6735 ++      /* Scan through all insns looking for shifted add operations */
  5.6736 ++      if (dump_file)
  5.6737 ++	{
  5.6738 ++	  fprintf (dump_file,
  5.6739 ++		   ";; Deleting redundant shifted add operations:\n");
  5.6740 ++	}
  5.6741 ++      for (insn = first; insn; insn = NEXT_INSN (insn))
  5.6742 ++	{
  5.6743 ++	  rtx reg, mem_expr, scan, op0, op1;
  5.6744 ++	  int add_only_used_as_pointer;
  5.6745 ++
  5.6746 ++	  if (INSN_P (insn)
  5.6747 ++	      && GET_CODE (PATTERN (insn)) == SET
  5.6748 ++	      && GET_CODE (SET_SRC (PATTERN (insn))) == PLUS
  5.6749 ++	      && (GET_CODE (XEXP (SET_SRC (PATTERN (insn)), 0)) == MULT
  5.6750 ++		  || GET_CODE (XEXP (SET_SRC (PATTERN (insn)), 0)) == ASHIFT)
  5.6751 ++	      && GET_CODE (XEXP (XEXP (SET_SRC (PATTERN (insn)), 0), 1)) ==
  5.6752 ++	      CONST_INT && REG_P (SET_DEST (PATTERN (insn)))
  5.6753 ++	      && REG_P (XEXP (SET_SRC (PATTERN (insn)), 1))
  5.6754 ++	      && REG_P (XEXP (XEXP (SET_SRC (PATTERN (insn)), 0), 0)))
  5.6755 ++	    {
  5.6756 ++	      reg = SET_DEST (PATTERN (insn));
  5.6757 ++	      mem_expr = SET_SRC (PATTERN (insn));
  5.6758 ++	      op0 = XEXP (XEXP (mem_expr, 0), 0);
  5.6759 ++	      op1 = XEXP (mem_expr, 1);
  5.6760 ++	    }
  5.6761 ++	  else
  5.6762 ++	    {
  5.6763 ++	      continue;
  5.6764 ++	    }
  5.6765 ++
  5.6766 ++	  /* Scan forward the check if the result of the shifted add
  5.6767 ++	     operation is only used as an address in memory operations and
  5.6768 ++	     that the operands to the shifted add are not clobbered. */
  5.6769 ++	  add_only_used_as_pointer = false;
  5.6770 ++	  for (scan = NEXT_INSN (insn); scan; scan = NEXT_INSN (scan))
  5.6771 ++	    {
  5.6772 ++	      if (!INSN_P (scan))
  5.6773 ++		continue;
  5.6774 ++
  5.6775 ++	      /* Don't try to trace forward past a JUMP or CALL.  To optimize
  5.6776 ++	         safely, we would have to check that all the instructions at
  5.6777 ++	         the jump destination did not use REG.  */
  5.6778 ++
  5.6779 ++	      if (GET_CODE (scan) == JUMP_INSN)
  5.6780 ++		{
  5.6781 ++		  break;
  5.6782 ++		}
  5.6783 ++
  5.6784 ++	      /* If used in a call insn then we cannot optimize it away */
  5.6785 ++	      if (CALL_P (scan) && find_regno_fusage (scan, USE, REGNO (reg)))
  5.6786 ++		break;
  5.6787 ++
  5.6788 ++	      /* If any of the operands of the shifted add are clobbered we
  5.6789 ++	         cannot optimize the shifted adda away */
  5.6790 ++	      if ((reg_set_p (op0, scan) && (REGNO (op0) != REGNO (reg)))
  5.6791 ++		  || (reg_set_p (op1, scan) && (REGNO (op1) != REGNO (reg))))
  5.6792 ++		break;
  5.6793 ++
  5.6794 ++	      if (!reg_mentioned_p (reg, PATTERN (scan)))
  5.6795 ++		continue;
  5.6796 ++
  5.6797 ++	      /* If used any other place than as a pointer or as the
  5.6798 ++	         destination register we failed */
  5.6799 ++              if (!(single_set (scan)
  5.6800 ++                    && GET_CODE (PATTERN (scan)) == SET
  5.6801 ++                    && ((MEM_P (SET_DEST (PATTERN (scan)))
  5.6802 ++                         && REG_P (XEXP (SET_DEST (PATTERN (scan)), 0))
  5.6803 ++                         && REGNO (XEXP (SET_DEST (PATTERN (scan)), 0)) == REGNO (reg))
  5.6804 ++                        || (MEM_P (SET_SRC (PATTERN (scan)))
  5.6805 ++                            && REG_P (XEXP (SET_SRC (PATTERN (scan)), 0))
  5.6806 ++                            && REGNO (XEXP
  5.6807 ++                                      (SET_SRC (PATTERN (scan)), 0)) == REGNO (reg))))
  5.6808 ++                  && !(GET_CODE (PATTERN (scan)) == SET
  5.6809 ++                       && REG_P (SET_DEST (PATTERN (scan)))
  5.6810 ++                       && !regno_use_in (REGNO (reg),
  5.6811 ++                                         SET_SRC (PATTERN (scan)))))
  5.6812 ++                break;
  5.6813 ++
  5.6814 ++              /* We cannot replace the pointer in TImode insns
  5.6815 ++                 as these has a differene addressing mode than the other
  5.6816 ++                 memory insns. */
  5.6817 ++              if ( GET_MODE (SET_DEST (PATTERN (scan))) == TImode )
  5.6818 ++                break;
  5.6819 ++
  5.6820 ++	      /* Check if register is dead or set in this insn */
  5.6821 ++	      if (dead_or_set_p (scan, reg))
  5.6822 ++		{
  5.6823 ++		  add_only_used_as_pointer = true;
  5.6824 ++		  break;
  5.6825 ++		}
  5.6826 ++	    }
  5.6827 ++
  5.6828 ++	  if (add_only_used_as_pointer)
  5.6829 ++	    {
  5.6830 ++	      /* Lets delete the add insn and replace all memory references
  5.6831 ++	         which uses the pointer with the full expression. */
  5.6832 ++	      if (dump_file)
  5.6833 ++		{
  5.6834 ++		  fprintf (dump_file,
  5.6835 ++			   ";; Deleting INSN %i since address expression can be folded into all "
  5.6836 ++			   "memory references using this expression\n",
  5.6837 ++			   INSN_UID (insn));
  5.6838 ++		}
  5.6839 ++	      SET_INSN_DELETED (insn);
  5.6840 ++	      /* Force the instruction to be recognized again */
  5.6841 ++	      INSN_CODE (insn) = -1;
  5.6842 ++
  5.6843 ++	      for (scan = NEXT_INSN (insn); scan; scan = NEXT_INSN (scan))
  5.6844 ++		{
  5.6845 ++		  if (!INSN_P (scan))
  5.6846 ++		    continue;
  5.6847 ++
  5.6848 ++		  if (!reg_mentioned_p (reg, PATTERN (scan)))
  5.6849 ++		    continue;
  5.6850 ++
  5.6851 ++		  /* If used any other place than as a pointer or as the
  5.6852 ++		     destination register we failed */
  5.6853 ++		  if ((single_set (scan)
  5.6854 ++		       && GET_CODE (PATTERN (scan)) == SET
  5.6855 ++		       && ((MEM_P (SET_DEST (PATTERN (scan)))
  5.6856 ++			    && REG_P (XEXP (SET_DEST (PATTERN (scan)), 0))
  5.6857 ++			    && REGNO (XEXP (SET_DEST (PATTERN (scan)), 0)) ==
  5.6858 ++			    REGNO (reg)) || (MEM_P (SET_SRC (PATTERN (scan)))
  5.6859 ++					     &&
  5.6860 ++					     REG_P (XEXP
  5.6861 ++						    (SET_SRC (PATTERN (scan)),
  5.6862 ++						     0))
  5.6863 ++					     &&
  5.6864 ++					     REGNO (XEXP
  5.6865 ++						    (SET_SRC (PATTERN (scan)),
  5.6866 ++						     0)) == REGNO (reg)))))
  5.6867 ++		    {
  5.6868 ++		      if (dump_file)
  5.6869 ++			{
  5.6870 ++			  fprintf (dump_file,
  5.6871 ++				   ";; Register %i replaced by indexed address in INSN %i\n",
  5.6872 ++				   REGNO (reg), INSN_UID (scan));
  5.6873 ++			}
  5.6874 ++		      if (MEM_P (SET_DEST (PATTERN (scan))))
  5.6875 ++			XEXP (SET_DEST (PATTERN (scan)), 0) = mem_expr;
  5.6876 ++		      else
  5.6877 ++			XEXP (SET_SRC (PATTERN (scan)), 0) = mem_expr;
  5.6878 ++		    }
  5.6879 ++
  5.6880 ++		  /* Check if register is dead or set in this insn */
  5.6881 ++		  if (dead_or_set_p (scan, reg))
  5.6882 ++		    {
  5.6883 ++		      break;
  5.6884 ++		    }
  5.6885 ++
  5.6886 ++		}
  5.6887 ++	    }
  5.6888 ++	}
  5.6889 ++    }
  5.6890 ++
  5.6891 ++
  5.6892 ++  if (TARGET_MD_REORG_OPTIMIZATION && (optimize_size || (optimize > 0)))
  5.6893 ++    {
  5.6894 ++
  5.6895 ++      /* Scan through all insns looking for conditional register to
  5.6896 ++         register move operations */
  5.6897 ++      if (dump_file)
  5.6898 ++	{
  5.6899 ++	  fprintf (dump_file,
  5.6900 ++		   ";; Folding redundant conditional move operations:\n");
  5.6901 ++	}
  5.6902 ++      for (insn = first; insn; insn = next_nonnote_insn (insn))
  5.6903 ++	{
  5.6904 ++	  rtx src_reg, dst_reg, scan, test;
  5.6905 ++
  5.6906 ++	  if (INSN_P (insn)
  5.6907 ++              && GET_CODE (PATTERN (insn)) == COND_EXEC
  5.6908 ++	      && GET_CODE (COND_EXEC_CODE (PATTERN (insn))) == SET
  5.6909 ++	      && REG_P (SET_SRC (COND_EXEC_CODE (PATTERN (insn))))
  5.6910 ++	      && REG_P (SET_DEST (COND_EXEC_CODE (PATTERN (insn))))
  5.6911 ++              && find_reg_note (insn, REG_DEAD, SET_SRC (COND_EXEC_CODE (PATTERN (insn)))))
  5.6912 ++	    {
  5.6913 ++	      src_reg = SET_SRC (COND_EXEC_CODE (PATTERN (insn)));
  5.6914 ++	      dst_reg = SET_DEST (COND_EXEC_CODE (PATTERN (insn)));
  5.6915 ++              test = COND_EXEC_TEST (PATTERN (insn));
  5.6916 ++	    }
  5.6917 ++	  else
  5.6918 ++	    {
  5.6919 ++	      continue;
  5.6920 ++	    }
  5.6921 ++
  5.6922 ++          /* Scan backward through the rest of insns in this if-then or if-else
  5.6923 ++             block and check if we can fold the move into another of the conditional
  5.6924 ++             insns in the same block. */
  5.6925 ++          scan = prev_nonnote_insn (insn);
  5.6926 ++          while (INSN_P (scan)
  5.6927 ++                 && GET_CODE (PATTERN (scan)) == COND_EXEC
  5.6928 ++                 && rtx_equal_p (COND_EXEC_TEST (PATTERN (scan)), test))
  5.6929 ++            {
  5.6930 ++              rtx pattern = COND_EXEC_CODE (PATTERN (scan));
  5.6931 ++              if ( GET_CODE (pattern) == PARALLEL )
  5.6932 ++                pattern = XVECEXP (pattern, 0, 0);
  5.6933 ++
  5.6934 ++              if ( reg_set_p (src_reg, pattern) )
  5.6935 ++                {
  5.6936 ++                  /* Fold in the destination register for the cond. move
  5.6937 ++                     into this insn. */
  5.6938 ++                  SET_DEST (pattern) = dst_reg;
  5.6939 ++                  if (dump_file)
  5.6940 ++                    {
  5.6941 ++                      fprintf (dump_file,
  5.6942 ++                               ";; Deleting INSN %i since this operation can be folded into INSN %i\n",
  5.6943 ++                               INSN_UID (insn), INSN_UID (scan));
  5.6944 ++                    }
  5.6945 ++
  5.6946 ++                  /* Scan and check if any of the insns in between uses the src_reg. We
  5.6947 ++                     must then replace it with the dst_reg. */
  5.6948 ++                  while ( (scan = next_nonnote_insn (scan)) != insn ){
  5.6949 ++                    avr32_replace_reg (scan, src_reg, dst_reg);
  5.6950 ++                  }
  5.6951 ++                  /* Delete the insn. */
  5.6952 ++                  SET_INSN_DELETED (insn);
  5.6953 ++
  5.6954 ++                  /* Force the instruction to be recognized again */
  5.6955 ++                  INSN_CODE (insn) = -1;
  5.6956 ++                  break;
  5.6957 ++                }
  5.6958 ++
  5.6959 ++              /* If the destination register is used but not set in this insn
  5.6960 ++                 we cannot fold. */
  5.6961 ++              if ( reg_mentioned_p (dst_reg, pattern) )
  5.6962 ++                break;
  5.6963 ++
  5.6964 ++              scan = prev_nonnote_insn (scan);
  5.6965 ++            }
  5.6966 ++        }
  5.6967 ++    }
  5.6968 ++
  5.6969 ++}
  5.6970 ++
  5.6971 ++/* Exported to toplev.c.
  5.6972 ++
  5.6973 ++   Do a final pass over the function, just before delayed branch
  5.6974 ++   scheduling.  */
  5.6975 ++
  5.6976 ++static void
  5.6977 ++avr32_reorg (void)
  5.6978 ++{
  5.6979 ++  rtx insn;
  5.6980 ++  HOST_WIDE_INT address = 0;
  5.6981 ++  Mfix *fix;
  5.6982 ++
  5.6983 ++  minipool_fix_head = minipool_fix_tail = NULL;
  5.6984 ++
  5.6985 ++  /* The first insn must always be a note, or the code below won't scan it
  5.6986 ++     properly.  */
  5.6987 ++  insn = get_insns ();
  5.6988 ++  if (GET_CODE (insn) != NOTE)
  5.6989 ++    abort ();
  5.6990 ++
  5.6991 ++  /* Scan all the insns and record the operands that will need fixing.  */
  5.6992 ++  for (insn = next_nonnote_insn (insn); insn; insn = next_nonnote_insn (insn))
  5.6993 ++    {
  5.6994 ++      if (GET_CODE (insn) == BARRIER)
  5.6995 ++	push_minipool_barrier (insn, address);
  5.6996 ++      else if (INSN_P (insn))
  5.6997 ++	{
  5.6998 ++	  rtx table;
  5.6999 ++
  5.7000 ++	  note_invalid_constants (insn, address, true);
  5.7001 ++	  address += get_attr_length (insn);
  5.7002 ++
  5.7003 ++	  /* If the insn is a vector jump, add the size of the table and skip
  5.7004 ++	     the table.  */
  5.7005 ++	  if ((table = is_jump_table (insn)) != NULL)
  5.7006 ++	    {
  5.7007 ++	      address += get_jump_table_size (table);
  5.7008 ++	      insn = table;
  5.7009 ++	    }
  5.7010 ++	}
  5.7011 ++    }
  5.7012 ++
  5.7013 ++  fix = minipool_fix_head;
  5.7014 ++
  5.7015 ++  /* Now scan the fixups and perform the required changes.  */
  5.7016 ++  while (fix)
  5.7017 ++    {
  5.7018 ++      Mfix *ftmp;
  5.7019 ++      Mfix *fdel;
  5.7020 ++      Mfix *last_added_fix;
  5.7021 ++      Mfix *last_barrier = NULL;
  5.7022 ++      Mfix *this_fix;
  5.7023 ++
  5.7024 ++      /* Skip any further barriers before the next fix.  */
  5.7025 ++      while (fix && GET_CODE (fix->insn) == BARRIER)
  5.7026 ++	fix = fix->next;
  5.7027 ++
  5.7028 ++      /* No more fixes.  */
  5.7029 ++      if (fix == NULL)
  5.7030 ++	break;
  5.7031 ++
  5.7032 ++      last_added_fix = NULL;
  5.7033 ++
  5.7034 ++      for (ftmp = fix; ftmp; ftmp = ftmp->next)
  5.7035 ++	{
  5.7036 ++	  if (GET_CODE (ftmp->insn) == BARRIER)
  5.7037 ++	    {
  5.7038 ++	      if (ftmp->address >= minipool_vector_head->max_address)
  5.7039 ++		break;
  5.7040 ++
  5.7041 ++	      last_barrier = ftmp;
  5.7042 ++	    }
  5.7043 ++	  else if ((ftmp->minipool = add_minipool_forward_ref (ftmp)) == NULL)
  5.7044 ++	    break;
  5.7045 ++
  5.7046 ++	  last_added_fix = ftmp;	/* Keep track of the last fix added.
  5.7047 ++					 */
  5.7048 ++	}
  5.7049 ++
  5.7050 ++      /* If we found a barrier, drop back to that; any fixes that we could
  5.7051 ++         have reached but come after the barrier will now go in the next
  5.7052 ++         mini-pool.  */
  5.7053 ++      if (last_barrier != NULL)
  5.7054 ++	{
  5.7055 ++	  /* Reduce the refcount for those fixes that won't go into this pool
  5.7056 ++	     after all.  */
  5.7057 ++	  for (fdel = last_barrier->next;
  5.7058 ++	       fdel && fdel != ftmp; fdel = fdel->next)
  5.7059 ++	    {
  5.7060 ++	      fdel->minipool->refcount--;
  5.7061 ++	      fdel->minipool = NULL;
  5.7062 ++	    }
  5.7063 ++
  5.7064 ++	  ftmp = last_barrier;
  5.7065 ++	}
  5.7066 ++      else
  5.7067 ++	{
  5.7068 ++	  /* ftmp is first fix that we can't fit into this pool and there no
  5.7069 ++	     natural barriers that we could use.  Insert a new barrier in the
  5.7070 ++	     code somewhere between the previous fix and this one, and
  5.7071 ++	     arrange to jump around it.  */
  5.7072 ++	  HOST_WIDE_INT max_address;
  5.7073 ++
  5.7074 ++	  /* The last item on the list of fixes must be a barrier, so we can
  5.7075 ++	     never run off the end of the list of fixes without last_barrier
  5.7076 ++	     being set.  */
  5.7077 ++	  if (ftmp == NULL)
  5.7078 ++	    abort ();
  5.7079 ++
  5.7080 ++	  max_address = minipool_vector_head->max_address;
  5.7081 ++	  /* Check that there isn't another fix that is in range that we
  5.7082 ++	     couldn't fit into this pool because the pool was already too
  5.7083 ++	     large: we need to put the pool before such an instruction.  */
  5.7084 ++	  if (ftmp->address < max_address)
  5.7085 ++	    max_address = ftmp->address;
  5.7086 ++
  5.7087 ++	  last_barrier = create_fix_barrier (last_added_fix, max_address);
  5.7088 ++	}
  5.7089 ++
  5.7090 ++      assign_minipool_offsets (last_barrier);
  5.7091 ++
  5.7092 ++      while (ftmp)
  5.7093 ++	{
  5.7094 ++	  if (GET_CODE (ftmp->insn) != BARRIER
  5.7095 ++	      && ((ftmp->minipool = add_minipool_backward_ref (ftmp))
  5.7096 ++		  == NULL))
  5.7097 ++	    break;
  5.7098 ++
  5.7099 ++	  ftmp = ftmp->next;
  5.7100 ++	}
  5.7101 ++
  5.7102 ++      /* Scan over the fixes we have identified for this pool, fixing them up
  5.7103 ++         and adding the constants to the pool itself.  */
  5.7104 ++        for (this_fix = fix; this_fix && ftmp != this_fix;
  5.7105 ++             this_fix = this_fix->next)
  5.7106 ++          if (GET_CODE (this_fix->insn) != BARRIER
  5.7107 ++              /* Do nothing for entries present just to force the insertion of
  5.7108 ++	       a minipool. */
  5.7109 ++	    && !IS_FORCE_MINIPOOL (this_fix->value))
  5.7110 ++	  {
  5.7111 ++	    rtx addr = plus_constant (gen_rtx_LABEL_REF (VOIDmode,
  5.7112 ++							 minipool_vector_label),
  5.7113 ++				      this_fix->minipool->offset);
  5.7114 ++	    *this_fix->loc = gen_rtx_MEM (this_fix->mode, addr);
  5.7115 ++	  }
  5.7116 ++
  5.7117 ++      dump_minipool (last_barrier->insn);
  5.7118 ++      fix = ftmp;
  5.7119 ++    }
  5.7120 ++
  5.7121 ++  /* Free the minipool memory.  */
  5.7122 ++  obstack_free (&minipool_obstack, minipool_startobj);
  5.7123 ++
  5.7124 ++  avr32_reorg_optimization ();
  5.7125 ++}
  5.7126 ++
  5.7127 ++
  5.7128 ++/*
  5.7129 ++ Hook for doing some final scanning of instructions. Does nothing yet...*/
  5.7130 ++void
  5.7131 ++avr32_final_prescan_insn (rtx insn ATTRIBUTE_UNUSED,
  5.7132 ++			  rtx * opvec ATTRIBUTE_UNUSED,
  5.7133 ++			  int noperands ATTRIBUTE_UNUSED)
  5.7134 ++{
  5.7135 ++  return;
  5.7136 ++}
  5.7137 ++
  5.7138 ++
  5.7139 ++/* Function for changing the condition on the next instruction,
  5.7140 ++   should be used when emmiting compare instructions and
  5.7141 ++   the condition of the next instruction needs to change.
  5.7142 ++*/
  5.7143 ++int
  5.7144 ++set_next_insn_cond (rtx cur_insn, rtx new_cond)
  5.7145 ++{
  5.7146 ++  rtx next_insn = next_nonnote_insn (cur_insn);
  5.7147 ++   if ((next_insn != NULL_RTX)
  5.7148 ++       && (INSN_P (next_insn)))
  5.7149 ++     {
  5.7150 ++       if ((GET_CODE (PATTERN (next_insn)) == SET)
  5.7151 ++           && (GET_CODE (SET_SRC (PATTERN (next_insn))) == IF_THEN_ELSE))
  5.7152 ++         {
  5.7153 ++           /* Branch instructions */
  5.7154 ++           XEXP (SET_SRC (PATTERN (next_insn)), 0) = new_cond;
  5.7155 ++           /* Force the instruction to be recognized again */
  5.7156 ++           INSN_CODE (next_insn) = -1;
  5.7157 ++           return TRUE;
  5.7158 ++         }
  5.7159 ++       else if ((GET_CODE (PATTERN (next_insn)) == SET)
  5.7160 ++                && avr32_comparison_operator (SET_SRC (PATTERN (next_insn)),
  5.7161 ++                                              GET_MODE (SET_SRC (PATTERN (next_insn)))))
  5.7162 ++         {
  5.7163 ++           /* scc with no compare */
  5.7164 ++           SET_SRC (PATTERN (next_insn)) = new_cond;
  5.7165 ++           /* Force the instruction to be recognized again */
  5.7166 ++           INSN_CODE (next_insn) = -1;
  5.7167 ++           return TRUE;
  5.7168 ++         }
  5.7169 ++       else if (GET_CODE (PATTERN (next_insn)) == COND_EXEC)
  5.7170 ++         {
  5.7171 ++           if ( GET_CODE (new_cond) == UNSPEC )
  5.7172 ++             {
  5.7173 ++               COND_EXEC_TEST (PATTERN (next_insn)) =
  5.7174 ++                 gen_rtx_UNSPEC (CCmode,
  5.7175 ++                                 gen_rtvec (2,
  5.7176 ++                                            XEXP (COND_EXEC_TEST (PATTERN (next_insn)), 0),
  5.7177 ++                                            XEXP (COND_EXEC_TEST (PATTERN (next_insn)), 1)),
  5.7178 ++                                 XINT (new_cond, 1));
  5.7179 ++             }
  5.7180 ++           else
  5.7181 ++             {
  5.7182 ++               PUT_CODE(COND_EXEC_TEST (PATTERN (next_insn)), GET_CODE(new_cond));
  5.7183 ++             }
  5.7184 ++         }
  5.7185 ++     }
  5.7186 ++
  5.7187 ++  return FALSE;
  5.7188 ++}
  5.7189 ++
  5.7190 ++/* Function for obtaining the condition for the next instruction
  5.7191 ++   after cur_insn.
  5.7192 ++*/
  5.7193 ++rtx
  5.7194 ++get_next_insn_cond (rtx cur_insn)
  5.7195 ++{
  5.7196 ++  rtx next_insn = next_nonnote_insn (cur_insn);
  5.7197 ++  rtx cond = NULL_RTX;
  5.7198 ++  if (next_insn != NULL_RTX
  5.7199 ++      && INSN_P (next_insn))
  5.7200 ++    {
  5.7201 ++      if ((GET_CODE (PATTERN (next_insn)) == SET)
  5.7202 ++          && (GET_CODE (SET_SRC (PATTERN (next_insn))) == IF_THEN_ELSE))
  5.7203 ++        {
  5.7204 ++          /* Branch and cond if then else instructions */
  5.7205 ++          cond = XEXP (SET_SRC (PATTERN (next_insn)), 0);
  5.7206 ++        }
  5.7207 ++      else if ((GET_CODE (PATTERN (next_insn)) == SET)
  5.7208 ++               && avr32_comparison_operator (SET_SRC (PATTERN (next_insn)),
  5.7209 ++                                             GET_MODE (SET_SRC (PATTERN (next_insn)))))
  5.7210 ++        {
  5.7211 ++          /* scc with no compare */
  5.7212 ++          cond = SET_SRC (PATTERN (next_insn));
  5.7213 ++        }
  5.7214 ++      else if (GET_CODE (PATTERN (next_insn)) == COND_EXEC)
  5.7215 ++        {
  5.7216 ++          cond = COND_EXEC_TEST (PATTERN (next_insn));
  5.7217 ++        }
  5.7218 ++    }
  5.7219 ++  return cond;
  5.7220 ++}
  5.7221 ++
  5.7222 ++
  5.7223 ++rtx
  5.7224 ++avr32_output_cmp (rtx cond, enum machine_mode mode, rtx op0, rtx op1)
  5.7225 ++{
  5.7226 ++
  5.7227 ++  rtx new_cond = NULL_RTX;
  5.7228 ++  rtx ops[2];
  5.7229 ++  rtx compare_pattern;
  5.7230 ++  ops[0] = op0;
  5.7231 ++  ops[1] = op1;
  5.7232 ++
  5.7233 ++  if ( GET_CODE (op0) == AND )
  5.7234 ++    compare_pattern = op0;
  5.7235 ++  else
  5.7236 ++    compare_pattern = gen_rtx_COMPARE (mode, op0, op1);
  5.7237 ++
  5.7238 ++  new_cond = is_compare_redundant (compare_pattern, cond);
  5.7239 ++
  5.7240 ++  if (new_cond != NULL_RTX)
  5.7241 ++    return new_cond;
  5.7242 ++
  5.7243 ++  /* Check if we are inserting a bit-load instead of a compare. */
  5.7244 ++  if ( GET_CODE (op0) == AND )
  5.7245 ++    {
  5.7246 ++      ops[0] = XEXP (op0, 0);
  5.7247 ++      ops[1] = XEXP (op0, 1);
  5.7248 ++      output_asm_insn ("bld\t%0, %p1", ops);
  5.7249 ++      return cond;
  5.7250 ++    }
  5.7251 ++
  5.7252 ++  /* Insert compare */
  5.7253 ++  switch (mode)
  5.7254 ++    {
  5.7255 ++    case QImode:
  5.7256 ++      output_asm_insn ("cp.b\t%0, %1", ops);
  5.7257 ++      break;
  5.7258 ++    case HImode:
  5.7259 ++      output_asm_insn ("cp.h\t%0, %1", ops);
  5.7260 ++      break;
  5.7261 ++    case SImode:
  5.7262 ++      output_asm_insn ("cp.w\t%0, %1", ops);
  5.7263 ++      break;
  5.7264 ++    case DImode:
  5.7265 ++      if (GET_CODE (op1) != REG)
  5.7266 ++	output_asm_insn ("cp.w\t%0, %1\ncpc\t%m0", ops);
  5.7267 ++      else
  5.7268 ++	output_asm_insn ("cp.w\t%0, %1\ncpc\t%m0, %m1", ops);
  5.7269 ++      break;
  5.7270 ++    default:
  5.7271 ++      internal_error ("Unknown comparison mode");
  5.7272 ++      break;
  5.7273 ++    }
  5.7274 ++
  5.7275 ++  return cond;
  5.7276 ++}
  5.7277 ++
  5.7278 ++int
  5.7279 ++avr32_load_multiple_operation (rtx op,
  5.7280 ++			       enum machine_mode mode ATTRIBUTE_UNUSED)
  5.7281 ++{
  5.7282 ++  int count = XVECLEN (op, 0);
  5.7283 ++  unsigned int dest_regno;
  5.7284 ++  rtx src_addr;
  5.7285 ++  rtx elt;
  5.7286 ++  int i = 1, base = 0;
  5.7287 ++
  5.7288 ++  if (count <= 1 || GET_CODE (XVECEXP (op, 0, 0)) != SET)
  5.7289 ++    return 0;
  5.7290 ++
  5.7291 ++  /* Check to see if this might be a write-back.  */
  5.7292 ++  if (GET_CODE (SET_SRC (elt = XVECEXP (op, 0, 0))) == PLUS)
  5.7293 ++    {
  5.7294 ++      i++;
  5.7295 ++      base = 1;
  5.7296 ++
  5.7297 ++      /* Now check it more carefully.  */
  5.7298 ++      if (GET_CODE (SET_DEST (elt)) != REG
  5.7299 ++	  || GET_CODE (XEXP (SET_SRC (elt), 0)) != REG
  5.7300 ++	  || GET_CODE (XEXP (SET_SRC (elt), 1)) != CONST_INT
  5.7301 ++	  || INTVAL (XEXP (SET_SRC (elt), 1)) != (count - 1) * 4)
  5.7302 ++	return 0;
  5.7303 ++    }
  5.7304 ++
  5.7305 ++  /* Perform a quick check so we don't blow up below.  */
  5.7306 ++  if (count <= 1
  5.7307 ++      || GET_CODE (XVECEXP (op, 0, i - 1)) != SET
  5.7308 ++      || GET_CODE (SET_DEST (XVECEXP (op, 0, i - 1))) != REG
  5.7309 ++      || GET_CODE (SET_SRC (XVECEXP (op, 0, i - 1))) != UNSPEC)
  5.7310 ++    return 0;
  5.7311 ++
  5.7312 ++  dest_regno = REGNO (SET_DEST (XVECEXP (op, 0, i - 1)));
  5.7313 ++  src_addr = XEXP (SET_SRC (XVECEXP (op, 0, i - 1)), 0);
  5.7314 ++
  5.7315 ++  for (; i < count; i++)
  5.7316 ++    {
  5.7317 ++      elt = XVECEXP (op, 0, i);
  5.7318 ++
  5.7319 ++      if (GET_CODE (elt) != SET
  5.7320 ++	  || GET_CODE (SET_DEST (elt)) != REG
  5.7321 ++	  || GET_MODE (SET_DEST (elt)) != SImode
  5.7322 ++	  || GET_CODE (SET_SRC (elt)) != UNSPEC)
  5.7323 ++	return 0;
  5.7324 ++    }
  5.7325 ++
  5.7326 ++  return 1;
  5.7327 ++}
  5.7328 ++
  5.7329 ++int
  5.7330 ++avr32_store_multiple_operation (rtx op,
  5.7331 ++				enum machine_mode mode ATTRIBUTE_UNUSED)
  5.7332 ++{
  5.7333 ++  int count = XVECLEN (op, 0);
  5.7334 ++  int src_regno;
  5.7335 ++  rtx dest_addr;
  5.7336 ++  rtx elt;
  5.7337 ++  int i = 1;
  5.7338 ++
  5.7339 ++  if (count <= 1 || GET_CODE (XVECEXP (op, 0, 0)) != SET)
  5.7340 ++    return 0;
  5.7341 ++
  5.7342 ++  /* Perform a quick check so we don't blow up below.  */
  5.7343 ++  if (count <= i
  5.7344 ++      || GET_CODE (XVECEXP (op, 0, i - 1)) != SET
  5.7345 ++      || GET_CODE (SET_DEST (XVECEXP (op, 0, i - 1))) != MEM
  5.7346 ++      || GET_CODE (SET_SRC (XVECEXP (op, 0, i - 1))) != UNSPEC)
  5.7347 ++    return 0;
  5.7348 ++
  5.7349 ++  src_regno = REGNO (SET_SRC (XVECEXP (op, 0, i - 1)));
  5.7350 ++  dest_addr = XEXP (SET_DEST (XVECEXP (op, 0, i - 1)), 0);
  5.7351 ++
  5.7352 ++  for (; i < count; i++)
  5.7353 ++    {
  5.7354 ++      elt = XVECEXP (op, 0, i);
  5.7355 ++
  5.7356 ++      if (GET_CODE (elt) != SET
  5.7357 ++	  || GET_CODE (SET_DEST (elt)) != MEM
  5.7358 ++	  || GET_MODE (SET_DEST (elt)) != SImode
  5.7359 ++	  || GET_CODE (SET_SRC (elt)) != UNSPEC)
  5.7360 ++	return 0;
  5.7361 ++    }
  5.7362 ++
  5.7363 ++  return 1;
  5.7364 ++}
  5.7365 ++
  5.7366 ++int
  5.7367 ++avr32_valid_macmac_bypass (rtx insn_out, rtx insn_in)
  5.7368 ++{
  5.7369 ++  /* Check if they use the same accumulator */
  5.7370 ++  if (rtx_equal_p
  5.7371 ++      (SET_DEST (PATTERN (insn_out)), SET_DEST (PATTERN (insn_in))))
  5.7372 ++    {
  5.7373 ++      return TRUE;
  5.7374 ++    }
  5.7375 ++
  5.7376 ++  return FALSE;
  5.7377 ++}
  5.7378 ++
  5.7379 ++int
  5.7380 ++avr32_valid_mulmac_bypass (rtx insn_out, rtx insn_in)
  5.7381 ++{
  5.7382 ++  /*
  5.7383 ++     Check if the mul instruction produces the accumulator for the mac
  5.7384 ++     instruction. */
  5.7385 ++  if (rtx_equal_p
  5.7386 ++      (SET_DEST (PATTERN (insn_out)), SET_DEST (PATTERN (insn_in))))
  5.7387 ++    {
  5.7388 ++      return TRUE;
  5.7389 ++    }
  5.7390 ++  return FALSE;
  5.7391 ++}
  5.7392 ++
  5.7393 ++int
  5.7394 ++avr32_store_bypass (rtx insn_out, rtx insn_in)
  5.7395 ++{
  5.7396 ++  /* Only valid bypass if the output result is used as an src in the store
  5.7397 ++     instruction, NOT if used as a pointer or base. */
  5.7398 ++  if (rtx_equal_p
  5.7399 ++      (SET_DEST (PATTERN (insn_out)), SET_SRC (PATTERN (insn_in))))
  5.7400 ++    {
  5.7401 ++      return TRUE;
  5.7402 ++    }
  5.7403 ++
  5.7404 ++  return FALSE;
  5.7405 ++}
  5.7406 ++
  5.7407 ++int
  5.7408 ++avr32_mul_waw_bypass (rtx insn_out, rtx insn_in)
  5.7409 ++{
  5.7410 ++  /* Check if the register holding the result from the mul instruction is
  5.7411 ++     used as a result register in the input instruction. */
  5.7412 ++  if (rtx_equal_p
  5.7413 ++      (SET_DEST (PATTERN (insn_out)), SET_DEST (PATTERN (insn_in))))
  5.7414 ++    {
  5.7415 ++      return TRUE;
  5.7416 ++    }
  5.7417 ++
  5.7418 ++  return FALSE;
  5.7419 ++}
  5.7420 ++
  5.7421 ++int
  5.7422 ++avr32_valid_load_double_bypass (rtx insn_out, rtx insn_in)
  5.7423 ++{
  5.7424 ++  /* Check if the first loaded word in insn_out is used in insn_in. */
  5.7425 ++  rtx dst_reg;
  5.7426 ++  rtx second_loaded_reg;
  5.7427 ++
  5.7428 ++  /* If this is a double alu operation then the bypass is not valid */
  5.7429 ++  if ((get_attr_type (insn_in) == TYPE_ALU
  5.7430 ++       || get_attr_type (insn_in) == TYPE_ALU2)
  5.7431 ++      && (GET_MODE_SIZE (GET_MODE (SET_DEST (PATTERN (insn_out)))) > 4))
  5.7432 ++    return FALSE;
  5.7433 ++
  5.7434 ++  /* Get the destination register in the load */
  5.7435 ++  if (!REG_P (SET_DEST (PATTERN (insn_out))))
  5.7436 ++    return FALSE;
  5.7437 ++
  5.7438 ++  dst_reg = SET_DEST (PATTERN (insn_out));
  5.7439 ++  second_loaded_reg = gen_rtx_REG (SImode, REGNO (dst_reg) + 1);
  5.7440 ++
  5.7441 ++  if (!reg_mentioned_p (second_loaded_reg, PATTERN (insn_in)))
  5.7442 ++    return TRUE;
  5.7443 ++
  5.7444 ++  return FALSE;
  5.7445 ++}
  5.7446 ++
  5.7447 ++
  5.7448 ++int
  5.7449 ++avr32_valid_load_quad_bypass (rtx insn_out, rtx insn_in)
  5.7450 ++{
  5.7451 ++  /*
  5.7452 ++     Check if the two first loaded word in insn_out are used in insn_in. */
  5.7453 ++  rtx dst_reg;
  5.7454 ++  rtx third_loaded_reg, fourth_loaded_reg;
  5.7455 ++
  5.7456 ++  /* Get the destination register in the load */
  5.7457 ++  if (!REG_P (SET_DEST (PATTERN (insn_out))))
  5.7458 ++    return FALSE;
  5.7459 ++
  5.7460 ++  dst_reg = SET_DEST (PATTERN (insn_out));
  5.7461 ++  third_loaded_reg = gen_rtx_REG (SImode, REGNO (dst_reg) + 2);
  5.7462 ++  fourth_loaded_reg = gen_rtx_REG (SImode, REGNO (dst_reg) + 3);
  5.7463 ++
  5.7464 ++  if (!reg_mentioned_p (third_loaded_reg, PATTERN (insn_in))
  5.7465 ++      && !reg_mentioned_p (fourth_loaded_reg, PATTERN (insn_in)))
  5.7466 ++    {
  5.7467 ++      return TRUE;
  5.7468 ++    }
  5.7469 ++
  5.7470 ++  return FALSE;
  5.7471 ++}
  5.7472 ++
  5.7473 ++
  5.7474 ++
  5.7475 ++rtx
  5.7476 ++avr32_ifcvt_modify_test (ce_if_block_t *ce_info,
  5.7477 ++                         rtx test ){
  5.7478 ++  rtx branch_insn;
  5.7479 ++  rtx cmp_test;
  5.7480 ++  rtx compare_op0;
  5.7481 ++  rtx compare_op1;
  5.7482 ++
  5.7483 ++
  5.7484 ++  if ( !ce_info
  5.7485 ++       || test == NULL_RTX
  5.7486 ++       || !reg_mentioned_p (cc0_rtx, test))
  5.7487 ++    return test;
  5.7488 ++
  5.7489 ++  branch_insn = BB_END (ce_info->test_bb);
  5.7490 ++  cmp_test = PATTERN(prev_nonnote_insn (branch_insn));
  5.7491 ++
  5.7492 ++  if (GET_CODE(cmp_test) != SET
  5.7493 ++      || !CC0_P(XEXP(cmp_test, 0)) )
  5.7494 ++    return cmp_test;
  5.7495 ++
  5.7496 ++  if ( GET_CODE(SET_SRC(cmp_test)) == COMPARE ){
  5.7497 ++    compare_op0 = XEXP(SET_SRC(cmp_test), 0);
  5.7498 ++    compare_op1 = XEXP(SET_SRC(cmp_test), 1);
  5.7499 ++  } else {
  5.7500 ++    compare_op0 = SET_SRC(cmp_test);
  5.7501 ++    compare_op1 = const0_rtx;
  5.7502 ++  }
  5.7503 ++
  5.7504 ++  return gen_rtx_fmt_ee (GET_CODE(test), GET_MODE (compare_op0),
  5.7505 ++                         compare_op0, compare_op1);
  5.7506 ++}
  5.7507 ++
  5.7508 ++
  5.7509 ++
  5.7510 ++rtx
  5.7511 ++avr32_ifcvt_modify_insn (ce_if_block_t *ce_info,
  5.7512 ++                         rtx pattern,
  5.7513 ++                         rtx insn,
  5.7514 ++                         int *num_true_changes){
  5.7515 ++  rtx test = COND_EXEC_TEST(pattern);
  5.7516 ++  rtx op = COND_EXEC_CODE(pattern);
  5.7517 ++  rtx cmp_insn;
  5.7518 ++  rtx cond_exec_insn;
  5.7519 ++  int inputs_set_outside_ifblock = 1;
  5.7520 ++  basic_block current_bb = BLOCK_FOR_INSN (insn);
  5.7521 ++  rtx bb_insn ;
  5.7522 ++  enum machine_mode mode = GET_MODE (XEXP (op, 0));
  5.7523 ++
  5.7524 ++  if (CC0_P(XEXP(test, 0)))
  5.7525 ++    test = avr32_ifcvt_modify_test (ce_info,
  5.7526 ++                                    test );
  5.7527 ++
  5.7528 ++  pattern = gen_rtx_COND_EXEC (VOIDmode, test, op);
  5.7529 ++
  5.7530 ++  if ( !reload_completed )
  5.7531 ++    {
  5.7532 ++      rtx start;
  5.7533 ++      int num_insns;
  5.7534 ++      int max_insns = MAX_CONDITIONAL_EXECUTE;
  5.7535 ++
  5.7536 ++      if ( !ce_info )
  5.7537 ++        return op;
  5.7538 ++
  5.7539 ++      /* Check if the insn is not suitable for conditional
  5.7540 ++         execution. */
  5.7541 ++      start_sequence ();
  5.7542 ++      cond_exec_insn = emit_insn (pattern);
  5.7543 ++      if ( recog_memoized (cond_exec_insn) < 0
  5.7544 ++           && !no_new_pseudos )
  5.7545 ++        {
  5.7546 ++          /* Insn is not suitable for conditional execution, try
  5.7547 ++             to fix it up by using an extra scratch register or
  5.7548 ++             by pulling the operation outside the if-then-else
  5.7549 ++             and then emiting a conditional move inside the if-then-else. */
  5.7550 ++          end_sequence ();
  5.7551 ++          if ( GET_CODE (op) != SET
  5.7552 ++               || !REG_P (SET_DEST (op))
  5.7553 ++               || GET_CODE (SET_SRC (op)) == IF_THEN_ELSE
  5.7554 ++               || GET_MODE_SIZE (mode) > UNITS_PER_WORD )
  5.7555 ++            return NULL_RTX;
  5.7556 ++
  5.7557 ++          /* Check if any of the input operands to the insn is set inside the
  5.7558 ++             current block. */
  5.7559 ++          if ( current_bb->index == ce_info->then_bb->index )
  5.7560 ++            start = PREV_INSN (BB_HEAD (ce_info->then_bb));
  5.7561 ++          else
  5.7562 ++            start = PREV_INSN (BB_HEAD (ce_info->else_bb));
  5.7563 ++
  5.7564 ++
  5.7565 ++          for ( bb_insn = next_nonnote_insn (start); bb_insn != insn; bb_insn = next_nonnote_insn (bb_insn) )
  5.7566 ++            {
  5.7567 ++              rtx set = single_set (bb_insn);
  5.7568 ++
  5.7569 ++              if ( set && reg_mentioned_p (SET_DEST (set), SET_SRC (op)))
  5.7570 ++                {
  5.7571 ++                  inputs_set_outside_ifblock = 0;
  5.7572 ++                  break;
  5.7573 ++                }
  5.7574 ++            }
  5.7575 ++
  5.7576 ++          cmp_insn = prev_nonnote_insn (BB_END (ce_info->test_bb));
  5.7577 ++
  5.7578 ++
  5.7579 ++          /* Check if we can insert more insns. */
  5.7580 ++          num_insns = ( ce_info->num_then_insns +
  5.7581 ++                        ce_info->num_else_insns +
  5.7582 ++                        ce_info->num_cond_clobber_insns +
  5.7583 ++                        ce_info->num_extra_move_insns );
  5.7584 ++
  5.7585 ++          if ( ce_info->num_else_insns != 0 )
  5.7586 ++            max_insns *=2;
  5.7587 ++
  5.7588 ++          if ( num_insns >= max_insns )
  5.7589 ++            return NULL_RTX;
  5.7590 ++
  5.7591 ++          /* Check if we have an instruction which might be converted to
  5.7592 ++             conditional form if we give it a scratch register to clobber. */
  5.7593 ++          {
  5.7594 ++            rtx clobber_insn;
  5.7595 ++            rtx scratch_reg = gen_reg_rtx (mode);
  5.7596 ++            rtx new_pattern = copy_rtx (pattern);
  5.7597 ++            rtx set_src = SET_SRC (COND_EXEC_CODE (new_pattern));
  5.7598 ++
  5.7599 ++            rtx clobber = gen_rtx_CLOBBER (mode, scratch_reg);
  5.7600 ++            rtx vec[2] = { COND_EXEC_CODE (new_pattern), clobber };
  5.7601 ++            COND_EXEC_CODE (new_pattern) = gen_rtx_PARALLEL (mode, gen_rtvec_v (2, vec));
  5.7602 ++
  5.7603 ++            start_sequence ();
  5.7604 ++            clobber_insn = emit_insn (new_pattern);
  5.7605 ++
  5.7606 ++            if ( recog_memoized (clobber_insn) >= 0
  5.7607 ++                 && ( ( GET_RTX_LENGTH (GET_CODE (set_src)) == 2
  5.7608 ++                        && CONST_INT_P (XEXP (set_src, 1))
  5.7609 ++                        && avr32_const_ok_for_constraint_p (INTVAL (XEXP (set_src, 1)), 'K', "Ks08") )
  5.7610 ++                      || !ce_info->else_bb
  5.7611 ++                      || current_bb->index == ce_info->else_bb->index ))
  5.7612 ++              {
  5.7613 ++                end_sequence ();
  5.7614 ++                /* Force the insn to be recognized again. */
  5.7615 ++                INSN_CODE (insn) = -1;
  5.7616 ++
  5.7617 ++                /* If this is the first change in this IF-block then
  5.7618 ++                   signal that we have made a change. */
  5.7619 ++                if ( ce_info->num_cond_clobber_insns == 0
  5.7620 ++                     && ce_info->num_extra_move_insns == 0 )
  5.7621 ++                  *num_true_changes += 1;
  5.7622 ++
  5.7623 ++                ce_info->num_cond_clobber_insns++;
  5.7624 ++
  5.7625 ++                if (dump_file)
  5.7626 ++                  fprintf (dump_file,
  5.7627 ++                           "\nReplacing INSN %d with an insn using a scratch register for later ifcvt passes...\n",
  5.7628 ++                           INSN_UID (insn));
  5.7629 ++
  5.7630 ++                return COND_EXEC_CODE (new_pattern);
  5.7631 ++              }
  5.7632 ++            end_sequence ();
  5.7633 ++          }
  5.7634 ++
  5.7635 ++          if ( inputs_set_outside_ifblock )
  5.7636 ++            {
  5.7637 ++              /* Check if the insn before the cmp is an and which used
  5.7638 ++                 together with the cmp can be optimized into a bld. If
  5.7639 ++                 so then we should try to put the insn before the and
  5.7640 ++                 so that we can catch the bld peephole. */
  5.7641 ++              rtx set;
  5.7642 ++              rtx insn_before_cmp_insn = prev_nonnote_insn (cmp_insn);
  5.7643 ++              if (insn_before_cmp_insn
  5.7644 ++                  && (set = single_set (insn_before_cmp_insn))
  5.7645 ++                  && GET_CODE (SET_SRC (set)) == AND
  5.7646 ++                  && one_bit_set_operand (XEXP (SET_SRC (set), 1), SImode)
  5.7647 ++                  /* Also make sure that the insn does not set any
  5.7648 ++                     of the input operands to the insn we are pulling out. */
  5.7649 ++                  && !reg_mentioned_p (SET_DEST (set), SET_SRC (op)) )
  5.7650 ++                cmp_insn = prev_nonnote_insn (cmp_insn);
  5.7651 ++
  5.7652 ++              /* We can try to put the operation outside the if-then-else
  5.7653 ++                 blocks and insert a move. */
  5.7654 ++              if ( !insn_invalid_p (insn)
  5.7655 ++                   /* Do not allow conditional insns to be moved outside the
  5.7656 ++                      if-then-else. */
  5.7657 ++                   && !reg_mentioned_p (cc0_rtx, insn)
  5.7658 ++                   /* We cannot move memory loads outside of the if-then-else
  5.7659 ++                      since the memory access should not be perfomed if the
  5.7660 ++                      condition is not met. */
  5.7661 ++                   && !mem_mentioned_p (SET_SRC (op)) )
  5.7662 ++                {
  5.7663 ++                  rtx scratch_reg = gen_reg_rtx (mode);
  5.7664 ++                  rtx op_pattern = copy_rtx (op);
  5.7665 ++                  rtx new_insn, seq;
  5.7666 ++                  rtx link, prev_link;
  5.7667 ++                  op = copy_rtx (op);
  5.7668 ++                  /* Emit the operation to a temp reg before the compare,
  5.7669 ++                     and emit a move inside the if-then-else, hoping that the
  5.7670 ++                     whole if-then-else can be converted to conditional
  5.7671 ++                     execution. */
  5.7672 ++                  SET_DEST (op_pattern) = scratch_reg;
  5.7673 ++                  start_sequence ();
  5.7674 ++                  new_insn = emit_insn (op_pattern);
  5.7675 ++                  seq = get_insns();
  5.7676 ++                  end_sequence ();
  5.7677 ++
  5.7678 ++                  /* Check again that the insn is valid. For some insns the insn might
  5.7679 ++                     become invalid if the destination register is changed. Ie. for mulacc
  5.7680 ++                     operations. */
  5.7681 ++                  if ( insn_invalid_p (new_insn) )
  5.7682 ++                    return NULL_RTX;
  5.7683 ++
  5.7684 ++                  emit_insn_before_setloc (seq, cmp_insn, INSN_LOCATOR (insn));
  5.7685 ++
  5.7686 ++                  if (dump_file)
  5.7687 ++                    fprintf (dump_file,
  5.7688 ++                             "\nMoving INSN %d out of IF-block by adding INSN %d...\n",
  5.7689 ++                             INSN_UID (insn), INSN_UID (new_insn));
  5.7690 ++
  5.7691 ++                  ce_info->extra_move_insns[ce_info->num_extra_move_insns] = insn;
  5.7692 ++                  ce_info->moved_insns[ce_info->num_extra_move_insns] = new_insn;
  5.7693 ++                  XEXP (op, 1) = scratch_reg;
  5.7694 ++                  /* Force the insn to be recognized again. */
  5.7695 ++                  INSN_CODE (insn) = -1;
  5.7696 ++
  5.7697 ++                  /* Move REG_DEAD notes to the moved insn. */
  5.7698 ++                  prev_link = NULL_RTX;
  5.7699 ++                  for (link = REG_NOTES (insn); link; link = XEXP (link, 1))
  5.7700 ++                    {
  5.7701 ++                      if (REG_NOTE_KIND (link) == REG_DEAD)
  5.7702 ++                        {
  5.7703 ++                          /* Add the REG_DEAD note to the new insn. */
  5.7704 ++                          rtx dead_reg = XEXP (link, 0);
  5.7705 ++                          REG_NOTES (new_insn) = gen_rtx_EXPR_LIST (REG_DEAD, dead_reg, REG_NOTES (new_insn));
  5.7706 ++                          /* Remove the REG_DEAD note from the insn we convert to a move. */
  5.7707 ++                          if ( prev_link )
  5.7708 ++                            XEXP (prev_link, 1) = XEXP (link, 1);
  5.7709 ++                          else
  5.7710 ++                            REG_NOTES (insn) = XEXP (link, 1);
  5.7711 ++                        }
  5.7712 ++                      else
  5.7713 ++                        {
  5.7714 ++                          prev_link = link;
  5.7715 ++                        }
  5.7716 ++                    }
  5.7717 ++                  /* Add a REG_DEAD note to signal that the scratch register is dead. */
  5.7718 ++                  REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_DEAD, scratch_reg, REG_NOTES (insn));
  5.7719 ++
  5.7720 ++                  /* If this is the first change in this IF-block then
  5.7721 ++                     signal that we have made a change. */
  5.7722 ++                  if ( ce_info->num_cond_clobber_insns == 0
  5.7723 ++                       && ce_info->num_extra_move_insns == 0 )
  5.7724 ++                    *num_true_changes += 1;
  5.7725 ++
  5.7726 ++                  ce_info->num_extra_move_insns++;
  5.7727 ++                  return op;
  5.7728 ++                }
  5.7729 ++            }
  5.7730 ++
  5.7731 ++          /* We failed to fixup the insns, so this if-then-else can not be made
  5.7732 ++             conditional. Just return NULL_RTX so that the if-then-else conversion
  5.7733 ++             for this if-then-else will be cancelled. */
  5.7734 ++          return NULL_RTX;
  5.7735 ++        }
  5.7736 ++      end_sequence ();
  5.7737 ++      return op;
  5.7738 ++    }
  5.7739 ++
  5.7740 ++  /* Signal that we have started if conversion after reload, which means
  5.7741 ++     that it should be safe to split all the predicable clobber insns which
  5.7742 ++     did not become cond_exec back into a simpler form if possible. */
  5.7743 ++  cfun->machine->ifcvt_after_reload = 1;
  5.7744 ++
  5.7745 ++  return pattern;
  5.7746 ++}
  5.7747 ++
  5.7748 ++
  5.7749 ++void
  5.7750 ++avr32_ifcvt_modify_cancel ( ce_if_block_t *ce_info,
  5.7751 ++                            int *num_true_changes)
  5.7752 ++{
  5.7753 ++  int n;
  5.7754 ++
  5.7755 ++  if ( ce_info->num_extra_move_insns > 0
  5.7756 ++       && ce_info->num_cond_clobber_insns == 0)
  5.7757 ++    /* Signal that we did not do any changes after all. */
  5.7758 ++    *num_true_changes -= 1;
  5.7759 ++
  5.7760 ++  /* Remove any inserted move insns. */
  5.7761 ++  for ( n = 0; n < ce_info->num_extra_move_insns; n++ )
  5.7762 ++    {
  5.7763 ++      rtx link, prev_link;
  5.7764 ++
  5.7765 ++      /* Remove REG_DEAD note since we are not needing the scratch register anyway. */
  5.7766 ++      prev_link = NULL_RTX;
  5.7767 ++      for (link = REG_NOTES (ce_info->extra_move_insns[n]); link; link = XEXP (link, 1))
  5.7768 ++        {
  5.7769 ++          if (REG_NOTE_KIND (link) == REG_DEAD)
  5.7770 ++            {
  5.7771 ++              if ( prev_link )
  5.7772 ++                XEXP (prev_link, 1) = XEXP (link, 1);
  5.7773 ++              else
  5.7774 ++                REG_NOTES (ce_info->extra_move_insns[n]) = XEXP (link, 1);
  5.7775 ++            }
  5.7776 ++          else
  5.7777 ++            {
  5.7778 ++              prev_link = link;
  5.7779 ++            }
  5.7780 ++        }
  5.7781 ++
  5.7782 ++      /* Revert all reg_notes for the moved insn. */
  5.7783 ++      for (link = REG_NOTES (ce_info->moved_insns[n]); link; link = XEXP (link, 1))
  5.7784 ++        {
  5.7785 ++          REG_NOTES (ce_info->extra_move_insns[n]) = gen_rtx_EXPR_LIST (REG_NOTE_KIND (link),
  5.7786 ++                                                                        XEXP (link, 0),
  5.7787 ++                                                                        REG_NOTES (ce_info->extra_move_insns[n]));
  5.7788 ++        }
  5.7789 ++
  5.7790 ++      /* Remove the moved insn. */
  5.7791 ++      remove_insn ( ce_info->moved_insns[n] );
  5.7792 ++    }
  5.7793 ++}
  5.7794 ++
  5.7795 ++/* Function returning TRUE if INSN with OPERANDS is a splittable
  5.7796 ++   conditional immediate clobber insn. We assume that the insn is
  5.7797 ++   already a conditional immediate clobber insns and do not check
  5.7798 ++   for that. */
  5.7799 ++int
  5.7800 ++avr32_cond_imm_clobber_splittable (rtx insn,
  5.7801 ++                                   rtx operands[])
  5.7802 ++{
  5.7803 ++  if ( (REGNO (operands[0]) != REGNO (operands[1]))
  5.7804 ++       && (logical_binary_operator (SET_SRC (XVECEXP (PATTERN (insn),0,0)), VOIDmode)
  5.7805 ++           || (GET_CODE (SET_SRC (XVECEXP (PATTERN (insn),0,0))) == PLUS
  5.7806 ++               && !avr32_const_ok_for_constraint_p (INTVAL (operands[2]), 'I', "Is16"))
  5.7807 ++           || (GET_CODE (SET_SRC (XVECEXP (PATTERN (insn),0,0))) == MINUS
  5.7808 ++               && !avr32_const_ok_for_constraint_p (INTVAL (operands[2]), 'K', "Ks16"))) )
  5.7809 ++    return FALSE;
  5.7810 ++
  5.7811 ++  return TRUE;
  5.7812 ++}
  5.7813 ++
  5.7814 ++/* Function for getting an integer value from a const_int or const_double
  5.7815 ++   expression regardless of the HOST_WIDE_INT size. Each target cpu word
  5.7816 ++   will be put into the val array where the LSW will be stored at the lowest
  5.7817 ++   address and so forth. Assumes that const_expr is either a const_int or
  5.7818 ++   const_double. Only valid for modes which have sizes that are a multiple
  5.7819 ++   of the word size.
  5.7820 ++*/
  5.7821 ++void
  5.7822 ++avr32_get_intval (enum machine_mode mode,
  5.7823 ++                  rtx const_expr,
  5.7824 ++                  HOST_WIDE_INT *val)
  5.7825 ++{
  5.7826 ++  int words_in_mode = GET_MODE_SIZE (mode)/UNITS_PER_WORD;
  5.7827 ++  const int words_in_const_int = HOST_BITS_PER_WIDE_INT / BITS_PER_WORD;
  5.7828 ++
  5.7829 ++  if ( GET_CODE(const_expr) == CONST_DOUBLE ){
  5.7830 ++    HOST_WIDE_INT hi = CONST_DOUBLE_HIGH(const_expr);
  5.7831 ++    HOST_WIDE_INT lo = CONST_DOUBLE_LOW(const_expr);
  5.7832 ++    /* Evaluate hi and lo values of const_double. */
  5.7833 ++    avr32_get_intval (mode_for_size (HOST_BITS_PER_WIDE_INT, MODE_INT, 0),
  5.7834 ++                      GEN_INT (lo),
  5.7835 ++                      &val[0]);
  5.7836 ++    avr32_get_intval (mode_for_size (HOST_BITS_PER_WIDE_INT, MODE_INT, 0),
  5.7837 ++                      GEN_INT (hi),
  5.7838 ++                      &val[words_in_const_int]);
  5.7839 ++  } else if ( GET_CODE(const_expr) == CONST_INT ){
  5.7840 ++    HOST_WIDE_INT value = INTVAL(const_expr);
  5.7841 ++    int word;
  5.7842 ++    for ( word = 0; (word < words_in_mode) && (word < words_in_const_int); word++ ){
  5.7843 ++      /* Shift word up to the MSW and shift down again to extract the
  5.7844 ++         word and sign-extend. */
  5.7845 ++      int lshift = (words_in_const_int - word - 1) * BITS_PER_WORD;
  5.7846 ++      int rshift = (words_in_const_int-1) * BITS_PER_WORD;
  5.7847 ++      val[word] = (value << lshift) >> rshift;
  5.7848 ++    }
  5.7849 ++
  5.7850 ++    for ( ; word < words_in_mode; word++ ){
  5.7851 ++      /* Just put the sign bits in the remaining words. */
  5.7852 ++      val[word] = value < 0 ? -1 : 0;
  5.7853 ++    }
  5.7854 ++  }
  5.7855 ++}
  5.7856 ++
  5.7857 ++void
  5.7858 ++avr32_split_const_expr (enum machine_mode mode,
  5.7859 ++                        enum machine_mode new_mode,
  5.7860 ++                        rtx expr,
  5.7861 ++                        rtx *split_expr)
  5.7862 ++{
  5.7863 ++  int i, word;
  5.7864 ++  int words_in_intval = GET_MODE_SIZE (mode)/UNITS_PER_WORD;
  5.7865 ++  int words_in_split_values = GET_MODE_SIZE (new_mode)/UNITS_PER_WORD;
  5.7866 ++  const int words_in_const_int = HOST_BITS_PER_WIDE_INT / BITS_PER_WORD;
  5.7867 ++  HOST_WIDE_INT *val = alloca (words_in_intval * UNITS_PER_WORD);
  5.7868 ++
  5.7869 ++  avr32_get_intval (mode, expr, val);
  5.7870 ++
  5.7871 ++  for ( i=0; i < (words_in_intval/words_in_split_values); i++ )
  5.7872 ++    {
  5.7873 ++      HOST_WIDE_INT value_lo = 0, value_hi = 0;
  5.7874 ++      for ( word = 0; word < words_in_split_values; word++ )
  5.7875 ++        {
  5.7876 ++          if ( word >= words_in_const_int )
  5.7877 ++            value_hi |= ((val[i * words_in_split_values + word] &
  5.7878 ++                          (((HOST_WIDE_INT)1 << BITS_PER_WORD)-1))
  5.7879 ++                         << (BITS_PER_WORD * (word - words_in_const_int)));
  5.7880 ++          else
  5.7881 ++            value_lo |= ((val[i * words_in_split_values + word] &
  5.7882 ++                          (((HOST_WIDE_INT)1 << BITS_PER_WORD)-1))
  5.7883 ++                         << (BITS_PER_WORD * word));
  5.7884 ++        }
  5.7885 ++      split_expr[i] = immed_double_const(value_lo, value_hi, new_mode);
  5.7886 ++    }
  5.7887 ++}
  5.7888 ++
  5.7889 ++
  5.7890 ++/* Set up library functions to comply to AVR32 ABI  */
  5.7891 ++
  5.7892 ++static void
  5.7893 ++avr32_init_libfuncs (void)
  5.7894 ++{
  5.7895 ++  /* Convert gcc run-time function names to AVR32 ABI names */
  5.7896 ++
  5.7897 ++  /* Double-precision floating-point arithmetic. */
  5.7898 ++  set_optab_libfunc (neg_optab, DFmode, NULL);
  5.7899 ++
  5.7900 ++  /* Double-precision comparisons.  */
  5.7901 ++  set_optab_libfunc (eq_optab, DFmode, "__avr32_f64_cmp_eq");
  5.7902 ++  set_optab_libfunc (ne_optab, DFmode, NULL);
  5.7903 ++  set_optab_libfunc (lt_optab, DFmode, "__avr32_f64_cmp_lt");
  5.7904 ++  set_optab_libfunc (le_optab, DFmode, NULL);
  5.7905 ++  set_optab_libfunc (ge_optab, DFmode, "__avr32_f64_cmp_ge");
  5.7906 ++  set_optab_libfunc (gt_optab, DFmode, NULL);
  5.7907 ++
  5.7908 ++  /* Single-precision floating-point arithmetic. */
  5.7909 ++  set_optab_libfunc (smul_optab, SFmode, "__avr32_f32_mul");
  5.7910 ++  set_optab_libfunc (neg_optab, SFmode, NULL);
  5.7911 ++
  5.7912 ++  /* Single-precision comparisons.  */
  5.7913 ++  set_optab_libfunc (eq_optab, SFmode, "__avr32_f32_cmp_eq");
  5.7914 ++  set_optab_libfunc (ne_optab, SFmode, NULL);
  5.7915 ++  set_optab_libfunc (lt_optab, SFmode, "__avr32_f32_cmp_lt");
  5.7916 ++  set_optab_libfunc (le_optab, SFmode, NULL);
  5.7917 ++  set_optab_libfunc (ge_optab, SFmode, "__avr32_f32_cmp_ge");
  5.7918 ++  set_optab_libfunc (gt_optab, SFmode, NULL);
  5.7919 ++
  5.7920 ++  /* Floating-point to integer conversions. */
  5.7921 ++  set_conv_libfunc (sfix_optab, SImode, DFmode, "__avr32_f64_to_s32");
  5.7922 ++  set_conv_libfunc (ufix_optab, SImode, DFmode, "__avr32_f64_to_u32");
  5.7923 ++  set_conv_libfunc (sfix_optab, DImode, DFmode, "__avr32_f64_to_s64");
  5.7924 ++  set_conv_libfunc (ufix_optab, DImode, DFmode, "__avr32_f64_to_u64");
  5.7925 ++  set_conv_libfunc (sfix_optab, SImode, SFmode, "__avr32_f32_to_s32");
  5.7926 ++  set_conv_libfunc (ufix_optab, SImode, SFmode, "__avr32_f32_to_u32");
  5.7927 ++  set_conv_libfunc (sfix_optab, DImode, SFmode, "__avr32_f32_to_s64");
  5.7928 ++  set_conv_libfunc (ufix_optab, DImode, SFmode, "__avr32_f32_to_u64");
  5.7929 ++
  5.7930 ++  /* Conversions between floating types.  */
  5.7931 ++  set_conv_libfunc (trunc_optab, SFmode, DFmode, "__avr32_f64_to_f32");
  5.7932 ++  set_conv_libfunc (sext_optab, DFmode, SFmode, "__avr32_f32_to_f64");
  5.7933 ++
  5.7934 ++  /* Integer to floating-point conversions.  Table 8.  */
  5.7935 ++  set_conv_libfunc (sfloat_optab, DFmode, SImode, "__avr32_s32_to_f64");
  5.7936 ++  set_conv_libfunc (sfloat_optab, DFmode, DImode, "__avr32_s64_to_f64");
  5.7937 ++  set_conv_libfunc (sfloat_optab, SFmode, SImode, "__avr32_s32_to_f32");
  5.7938 ++  set_conv_libfunc (sfloat_optab, SFmode, DImode, "__avr32_s64_to_f32");
  5.7939 ++  set_conv_libfunc (ufloat_optab, DFmode, SImode, "__avr32_u32_to_f64");
  5.7940 ++  set_conv_libfunc (ufloat_optab, SFmode, SImode, "__avr32_u32_to_f32");
  5.7941 ++  /* TODO: Add these to gcc library functions */
  5.7942 ++  //set_conv_libfunc (ufloat_optab, DFmode, DImode, NULL);
  5.7943 ++  //set_conv_libfunc (ufloat_optab, SFmode, DImode, NULL);
  5.7944 ++
  5.7945 ++  /* Long long.  Table 9.  */
  5.7946 ++  set_optab_libfunc (smul_optab, DImode, "__avr32_mul64");
  5.7947 ++  set_optab_libfunc (sdiv_optab, DImode, "__avr32_sdiv64");
  5.7948 ++  set_optab_libfunc (udiv_optab, DImode, "__avr32_udiv64");
  5.7949 ++  set_optab_libfunc (smod_optab, DImode, "__avr32_smod64");
  5.7950 ++  set_optab_libfunc (umod_optab, DImode, "__avr32_umod64");
  5.7951 ++  set_optab_libfunc (ashl_optab, DImode, "__avr32_lsl64");
  5.7952 ++  set_optab_libfunc (lshr_optab, DImode, "__avr32_lsr64");
  5.7953 ++  set_optab_libfunc (ashr_optab, DImode, "__avr32_asr64");
  5.7954 ++
  5.7955 ++  /* Floating point library functions which have fast versions. */
  5.7956 ++  if ( TARGET_FAST_FLOAT )
  5.7957 ++    {
  5.7958 ++      set_optab_libfunc (sdiv_optab, DFmode, "__avr32_f64_div_fast");
  5.7959 ++      set_optab_libfunc (smul_optab, DFmode, "__avr32_f64_mul_fast");
  5.7960 ++      set_optab_libfunc (add_optab, DFmode, "__avr32_f64_add_fast");
  5.7961 ++      set_optab_libfunc (sub_optab, DFmode, "__avr32_f64_sub_fast");
  5.7962 ++      set_optab_libfunc (add_optab, SFmode, "__avr32_f32_add_fast");
  5.7963 ++      set_optab_libfunc (sub_optab, SFmode, "__avr32_f32_sub_fast");
  5.7964 ++      set_optab_libfunc (sdiv_optab, SFmode, "__avr32_f32_div_fast");
  5.7965 ++    }
  5.7966 ++  else
  5.7967 ++    {
  5.7968 ++      set_optab_libfunc (sdiv_optab, DFmode, "__avr32_f64_div");
  5.7969 ++      set_optab_libfunc (smul_optab, DFmode, "__avr32_f64_mul");
  5.7970 ++      set_optab_libfunc (add_optab, DFmode, "__avr32_f64_add");
  5.7971 ++      set_optab_libfunc (sub_optab, DFmode, "__avr32_f64_sub");
  5.7972 ++      set_optab_libfunc (add_optab, SFmode, "__avr32_f32_add");
  5.7973 ++      set_optab_libfunc (sub_optab, SFmode, "__avr32_f32_sub");
  5.7974 ++      set_optab_libfunc (sdiv_optab, SFmode, "__avr32_f32_div");
  5.7975 ++    }
  5.7976 ++}
  5.7977 +--- /dev/null
  5.7978 ++++ b/gcc/config/avr32/avr32-elf.h
  5.7979 +@@ -0,0 +1,84 @@
  5.7980 ++/*
  5.7981 ++   Elf specific definitions.
  5.7982 ++   Copyright 2003-2006 Atmel Corporation.
  5.7983 ++
  5.7984 ++   Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com>
  5.7985 ++
  5.7986 ++   This file is part of GCC.
  5.7987 ++
  5.7988 ++   This program is free software; you can redistribute it and/or modify
  5.7989 ++   it under the terms of the GNU General Public License as published by
  5.7990 ++   the Free Software Foundation; either version 2 of the License, or
  5.7991 ++   (at your option) any later version.
  5.7992 ++
  5.7993 ++   This program is distributed in the hope that it will be useful,
  5.7994 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
  5.7995 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  5.7996 ++   GNU General Public License for more details.
  5.7997 ++
  5.7998 ++   You should have received a copy of the GNU General Public License
  5.7999 ++   along with this program; if not, write to the Free Software
  5.8000 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  5.8001 ++
  5.8002 ++
  5.8003 ++/*****************************************************************************
  5.8004 ++ * Controlling the Compilator Driver, 'gcc'
  5.8005 ++ *****************************************************************************/
  5.8006 ++
  5.8007 ++/* Run-time Target Specification.  */
  5.8008 ++#undef  TARGET_VERSION
  5.8009 ++#define TARGET_VERSION  fputs (" (AVR32 GNU with ELF)", stderr);
  5.8010 ++
  5.8011 ++/*
  5.8012 ++Another C string constant used much like LINK_SPEC.  The
  5.8013 ++difference between the two is that STARTFILE_SPEC is used at
  5.8014 ++the very beginning of the command given to the linker.
  5.8015 ++
  5.8016 ++If this macro is not defined, a default is provided that loads the
  5.8017 ++standard C startup file from the usual place.  See gcc.c.
  5.8018 ++*/
  5.8019 ++#undef  STARTFILE_SPEC
  5.8020 ++#define STARTFILE_SPEC "crt0%O%s crti%O%s crtbegin%O%s"
  5.8021 ++
  5.8022 ++#undef LINK_SPEC
  5.8023 ++#define LINK_SPEC "%{muse-oscall:--defsym __do_not_use_oscall_coproc__=0} %{mrelax|O*:%{mno-relax|O0|O1: ;:--relax}} %{mpart=uc3a3revd:-mavr32elf_uc3a3256s;:%{mpart=*:-mavr32elf_%*}} %{mcpu=*:-mavr32elf_%*}"
  5.8024 ++
  5.8025 ++
  5.8026 ++/*
  5.8027 ++Another C string constant used much like LINK_SPEC.  The
  5.8028 ++difference between the two is that ENDFILE_SPEC is used at
  5.8029 ++the very end of the command given to the linker.
  5.8030 ++
  5.8031 ++Do not define this macro if it does not need to do anything.
  5.8032 ++*/
  5.8033 ++#undef  ENDFILE_SPEC
  5.8034 ++#define ENDFILE_SPEC "crtend%O%s crtn%O%s"
  5.8035 ++
  5.8036 ++
  5.8037 ++/* Target CPU builtins.  */
  5.8038 ++#define TARGET_CPU_CPP_BUILTINS()				\
  5.8039 ++  do								\
  5.8040 ++    {								\
  5.8041 ++      builtin_define ("__avr32__");				\
  5.8042 ++      builtin_define ("__AVR32__");				\
  5.8043 ++      builtin_define ("__AVR32_ELF__");	       	        	\
  5.8044 ++      builtin_define (avr32_part->macro);			\
  5.8045 ++      builtin_define (avr32_arch->macro);			\
  5.8046 ++      if (avr32_arch->uarch_type == UARCH_TYPE_AVR32A)		\
  5.8047 ++	builtin_define ("__AVR32_AVR32A__");			\
  5.8048 ++      else							\
  5.8049 ++	builtin_define ("__AVR32_AVR32B__");			\
  5.8050 ++      if (TARGET_UNALIGNED_WORD)				\
  5.8051 ++	builtin_define ("__AVR32_HAS_UNALIGNED_WORD__");	\
  5.8052 ++      if (TARGET_SIMD)						\
  5.8053 ++	builtin_define ("__AVR32_HAS_SIMD__");			\
  5.8054 ++      if (TARGET_DSP)						\
  5.8055 ++	builtin_define ("__AVR32_HAS_DSP__");			\
  5.8056 ++      if (TARGET_RMW)						\
  5.8057 ++	builtin_define ("__AVR32_HAS_RMW__");			\
  5.8058 ++      if (TARGET_BRANCH_PRED)					\
  5.8059 ++	builtin_define ("__AVR32_HAS_BRANCH_PRED__");		\
  5.8060 ++      if (TARGET_FAST_FLOAT)                                    \
  5.8061 ++        builtin_define ("__AVR32_FAST_FLOAT__");                \
  5.8062 ++    }								\
  5.8063 ++  while (0)
  5.8064 +--- /dev/null
  5.8065 ++++ b/gcc/config/avr32/avr32.h
  5.8066 +@@ -0,0 +1,3347 @@
  5.8067 ++/*
  5.8068 ++   Definitions of target machine for AVR32.
  5.8069 ++   Copyright 2003-2006 Atmel Corporation.
  5.8070 ++
  5.8071 ++   Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com>
  5.8072 ++   Initial porting by Anders �dland.
  5.8073 ++
  5.8074 ++   This file is part of GCC.
  5.8075 ++
  5.8076 ++   This program is free software; you can redistribute it and/or modify
  5.8077 ++   it under the terms of the GNU General Public License as published by
  5.8078 ++   the Free Software Foundation; either version 2 of the License, or
  5.8079 ++   (at your option) any later version.
  5.8080 ++
  5.8081 ++   This program is distributed in the hope that it will be useful,
  5.8082 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
  5.8083 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  5.8084 ++   GNU General Public License for more details.
  5.8085 ++
  5.8086 ++   You should have received a copy of the GNU General Public License
  5.8087 ++   along with this program; if not, write to the Free Software
  5.8088 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  5.8089 ++
  5.8090 ++#ifndef GCC_AVR32_H
  5.8091 ++#define GCC_AVR32_H
  5.8092 ++
  5.8093 ++
  5.8094 ++#ifndef OBJECT_FORMAT_ELF
  5.8095 ++#error avr32.h included before elfos.h
  5.8096 ++#endif
  5.8097 ++
  5.8098 ++#ifndef LOCAL_LABEL_PREFIX
  5.8099 ++#define LOCAL_LABEL_PREFIX "."
  5.8100 ++#endif
  5.8101 ++
  5.8102 ++#ifndef SUBTARGET_CPP_SPEC
  5.8103 ++#define SUBTARGET_CPP_SPEC  "-D__ELF__"
  5.8104 ++#endif
  5.8105 ++
  5.8106 ++
  5.8107 ++extern struct rtx_def *avr32_compare_op0;
  5.8108 ++extern struct rtx_def *avr32_compare_op1;
  5.8109 ++
  5.8110 ++
  5.8111 ++extern struct rtx_def *avr32_acc_cache;
  5.8112 ++
  5.8113 ++/* cache instruction op5 codes */
  5.8114 ++#define AVR32_CACHE_INVALIDATE_ICACHE 1
  5.8115 ++
  5.8116 ++/* These bits describe the different types of function supported
  5.8117 ++   by the AVR32 backend.  They are exclusive.  ie a function cannot be both a
  5.8118 ++   normal function and an interworked function, for example.  Knowing the
  5.8119 ++   type of a function is important for determining its prologue and
  5.8120 ++   epilogue sequences.
  5.8121 ++   Note value 7 is currently unassigned.  Also note that the interrupt
  5.8122 ++   function types all have bit 2 set, so that they can be tested for easily.
  5.8123 ++   Note that 0 is deliberately chosen for AVR32_FT_UNKNOWN so that when the
  5.8124 ++   machine_function structure is initialized (to zero) func_type will
  5.8125 ++   default to unknown.  This will force the first use of avr32_current_func_type
  5.8126 ++   to call avr32_compute_func_type.  */
  5.8127 ++#define AVR32_FT_UNKNOWN	 0	/* Type has not yet been determined.
  5.8128 ++					   */
  5.8129 ++#define AVR32_FT_NORMAL		 1	/* Your normal, straightforward
  5.8130 ++					   function.  */
  5.8131 ++#define AVR32_FT_ACALL	         2	/* An acall function.  */
  5.8132 ++#define AVR32_FT_EXCEPTION_HANDLER 3	/* A C++ exception handler.  */
  5.8133 ++#define AVR32_FT_ISR_FULL	 4	/* A fully shadowed interrupt mode.  */
  5.8134 ++#define AVR32_FT_ISR_HALF	 5	/* A half shadowed interrupt mode.  */
  5.8135 ++#define AVR32_FT_ISR_NONE	 6	/* No shadow registers.  */
  5.8136 ++
  5.8137 ++#define AVR32_FT_TYPE_MASK	((1 << 3) - 1)
  5.8138 ++
  5.8139 ++/* In addition functions can have several type modifiers,
  5.8140 ++   outlined by these bit masks:  */
  5.8141 ++#define AVR32_FT_INTERRUPT	(1 << 2)	/* Note overlap with FT_ISR
  5.8142 ++						   and above.  */
  5.8143 ++#define AVR32_FT_NAKED		(1 << 3)	/* No prologue or epilogue.  */
  5.8144 ++#define AVR32_FT_VOLATILE	(1 << 4)	/* Does not return.  */
  5.8145 ++#define AVR32_FT_NESTED		(1 << 5)	/* Embedded inside another
  5.8146 ++						   func. */
  5.8147 ++
  5.8148 ++/* Some macros to test these flags.  */
  5.8149 ++#define AVR32_FUNC_TYPE(t)	(t & AVR32_FT_TYPE_MASK)
  5.8150 ++#define IS_INTERRUPT(t)		(t & AVR32_FT_INTERRUPT)
  5.8151 ++#define IS_VOLATILE(t)     	(t & AVR32_FT_VOLATILE)
  5.8152 ++#define IS_NAKED(t)        	(t & AVR32_FT_NAKED)
  5.8153 ++#define IS_NESTED(t)       	(t & AVR32_FT_NESTED)
  5.8154 ++
  5.8155 ++#define SYMBOL_FLAG_RMW_ADDR_SHIFT    SYMBOL_FLAG_MACH_DEP_SHIFT
  5.8156 ++#define SYMBOL_REF_RMW_ADDR(RTX)                                        \
  5.8157 ++  ((SYMBOL_REF_FLAGS (RTX) & (1 << SYMBOL_FLAG_RMW_ADDR_SHIFT)) != 0)
  5.8158 ++
  5.8159 ++
  5.8160 ++typedef struct minipool_labels
  5.8161 ++GTY ((chain_next ("%h.next"), chain_prev ("%h.prev")))
  5.8162 ++{
  5.8163 ++  rtx label;
  5.8164 ++  struct minipool_labels *prev;
  5.8165 ++  struct minipool_labels *next;
  5.8166 ++} minipool_labels;
  5.8167 ++
  5.8168 ++/* A C structure for machine-specific, per-function data.
  5.8169 ++   This is added to the cfun structure.  */
  5.8170 ++
  5.8171 ++typedef struct machine_function
  5.8172 ++GTY (())
  5.8173 ++{
  5.8174 ++  /* Records the type of the current function.  */
  5.8175 ++  unsigned long func_type;
  5.8176 ++  /* List of minipool labels, use for checking if code label is valid in a
  5.8177 ++     memory expression */
  5.8178 ++  minipool_labels *minipool_label_head;
  5.8179 ++  minipool_labels *minipool_label_tail;
  5.8180 ++  int ifcvt_after_reload;
  5.8181 ++} machine_function;
  5.8182 ++
  5.8183 ++/* Initialize data used by insn expanders.  This is called from insn_emit,
  5.8184 ++   once for every function before code is generated.  */
  5.8185 ++#define INIT_EXPANDERS avr32_init_expanders ()
  5.8186 ++
  5.8187 ++/******************************************************************************
  5.8188 ++ * SPECS
  5.8189 ++ *****************************************************************************/
  5.8190 ++
  5.8191 ++#ifndef ASM_SPEC
  5.8192 ++#define ASM_SPEC "%{fpic:--pic} %{mrelax|O*:%{mno-relax|O0|O1: ;:--linkrelax}} %{march=ucr2nomul:-march=ucr2;:%{march=*:-march=%*}} %{mpart=uc3a3revd:-mpart=uc3a3256s;:%{mpart=*:-mpart=%*}}"
  5.8193 ++#endif
  5.8194 ++
  5.8195 ++#ifndef MULTILIB_DEFAULTS
  5.8196 ++#define MULTILIB_DEFAULTS { "march=ap", "" }
  5.8197 ++#endif
  5.8198 ++
  5.8199 ++/******************************************************************************
  5.8200 ++ * Run-time Target Specification
  5.8201 ++ *****************************************************************************/
  5.8202 ++#ifndef TARGET_VERSION
  5.8203 ++#define TARGET_VERSION fprintf(stderr, " (AVR32, GNU assembler syntax)");
  5.8204 ++#endif
  5.8205 ++
  5.8206 ++
  5.8207 ++/* Part types. Keep this in sync with the order of avr32_part_types in avr32.c*/
  5.8208 ++enum part_type
  5.8209 ++{
  5.8210 ++  PART_TYPE_AVR32_NONE,
  5.8211 ++  PART_TYPE_AVR32_AP7000,
  5.8212 ++  PART_TYPE_AVR32_AP7001,
  5.8213 ++  PART_TYPE_AVR32_AP7002,
  5.8214 ++  PART_TYPE_AVR32_AP7200,
  5.8215 ++  PART_TYPE_AVR32_UC3A0128,
  5.8216 ++  PART_TYPE_AVR32_UC3A0256,
  5.8217 ++  PART_TYPE_AVR32_UC3A0512,
  5.8218 ++  PART_TYPE_AVR32_UC3A0512ES,
  5.8219 ++  PART_TYPE_AVR32_UC3A1128,
  5.8220 ++  PART_TYPE_AVR32_UC3A1256,
  5.8221 ++  PART_TYPE_AVR32_UC3A1512,
  5.8222 ++  PART_TYPE_AVR32_UC3A1512ES,
  5.8223 ++  PART_TYPE_AVR32_UC3A3REVD,
  5.8224 ++  PART_TYPE_AVR32_UC3A364,
  5.8225 ++  PART_TYPE_AVR32_UC3A364S,
  5.8226 ++  PART_TYPE_AVR32_UC3A3128,
  5.8227 ++  PART_TYPE_AVR32_UC3A3128S,
  5.8228 ++  PART_TYPE_AVR32_UC3A3256,
  5.8229 ++  PART_TYPE_AVR32_UC3A3256S,
  5.8230 ++  PART_TYPE_AVR32_UC3B064,
  5.8231 ++  PART_TYPE_AVR32_UC3B0128,
  5.8232 ++  PART_TYPE_AVR32_UC3B0256,
  5.8233 ++  PART_TYPE_AVR32_UC3B0256ES,
  5.8234 ++  PART_TYPE_AVR32_UC3B164,
  5.8235 ++  PART_TYPE_AVR32_UC3B1128,
  5.8236 ++  PART_TYPE_AVR32_UC3B1256,
  5.8237 ++  PART_TYPE_AVR32_UC3B1256ES
  5.8238 ++};
  5.8239 ++
  5.8240 ++/* Microarchitectures. */
  5.8241 ++enum microarchitecture_type
  5.8242 ++{
  5.8243 ++  UARCH_TYPE_AVR32A,
  5.8244 ++  UARCH_TYPE_AVR32B,
  5.8245 ++  UARCH_TYPE_NONE
  5.8246 ++};
  5.8247 ++
  5.8248 ++/* Architectures types which specifies the pipeline.
  5.8249 ++ Keep this in sync with avr32_arch_types in avr32.c
  5.8250 ++ and the pipeline attribute in avr32.md */
  5.8251 ++enum architecture_type
  5.8252 ++{
  5.8253 ++  ARCH_TYPE_AVR32_AP,
  5.8254 ++  ARCH_TYPE_AVR32_UCR1,
  5.8255 ++  ARCH_TYPE_AVR32_UCR2,
  5.8256 ++  ARCH_TYPE_AVR32_UCR2NOMUL,
  5.8257 ++  ARCH_TYPE_AVR32_NONE
  5.8258 ++};
  5.8259 ++
  5.8260 ++/* Flag specifying if the cpu has support for DSP instructions.*/
  5.8261 ++#define FLAG_AVR32_HAS_DSP (1 << 0)
  5.8262 ++/* Flag specifying if the cpu has support for Read-Modify-Write
  5.8263 ++   instructions.*/
  5.8264 ++#define FLAG_AVR32_HAS_RMW (1 << 1)
  5.8265 ++/* Flag specifying if the cpu has support for SIMD instructions. */
  5.8266 ++#define FLAG_AVR32_HAS_SIMD (1 << 2)
  5.8267 ++/* Flag specifying if the cpu has support for unaligned memory word access. */
  5.8268 ++#define FLAG_AVR32_HAS_UNALIGNED_WORD (1 << 3)
  5.8269 ++/* Flag specifying if the cpu has support for branch prediction. */
  5.8270 ++#define FLAG_AVR32_HAS_BRANCH_PRED (1 << 4)
  5.8271 ++/* Flag specifying if the cpu has support for a return stack. */
  5.8272 ++#define FLAG_AVR32_HAS_RETURN_STACK (1 << 5)
  5.8273 ++/* Flag specifying if the cpu has caches. */
  5.8274 ++#define FLAG_AVR32_HAS_CACHES (1 << 6)
  5.8275 ++/* Flag specifying if the cpu has support for v2 insns. */
  5.8276 ++#define FLAG_AVR32_HAS_V2_INSNS (1 << 7)
  5.8277 ++/* Flag specifying that the cpu has buggy mul insns. */
  5.8278 ++#define FLAG_AVR32_HAS_NO_MUL_INSNS (1 << 8)
  5.8279 ++
  5.8280 ++/* Structure for holding information about different avr32 CPUs/parts */
  5.8281 ++struct part_type_s
  5.8282 ++{
  5.8283 ++  const char *const name;
  5.8284 ++  enum part_type part_type;
  5.8285 ++  enum architecture_type arch_type;
  5.8286 ++  /* Must lie outside user's namespace.  NULL == no macro.  */
  5.8287 ++  const char *const macro;
  5.8288 ++};
  5.8289 ++
  5.8290 ++/* Structure for holding information about different avr32 pipeline
  5.8291 ++ architectures. */
  5.8292 ++struct arch_type_s
  5.8293 ++{
  5.8294 ++  const char *const name;
  5.8295 ++  enum architecture_type arch_type;
  5.8296 ++  enum microarchitecture_type uarch_type;
  5.8297 ++  const unsigned long feature_flags;
  5.8298 ++  /* Must lie outside user's namespace.  NULL == no macro.  */
  5.8299 ++  const char *const macro;
  5.8300 ++};
  5.8301 ++
  5.8302 ++extern const struct part_type_s *avr32_part;
  5.8303 ++extern const struct arch_type_s *avr32_arch;
  5.8304 ++
  5.8305 ++#define TARGET_SIMD  (avr32_arch->feature_flags & FLAG_AVR32_HAS_SIMD)
  5.8306 ++#define TARGET_DSP  (avr32_arch->feature_flags & FLAG_AVR32_HAS_DSP)
  5.8307 ++#define TARGET_RMW  (avr32_arch->feature_flags & FLAG_AVR32_HAS_RMW)
  5.8308 ++#define TARGET_UNALIGNED_WORD  (avr32_arch->feature_flags & FLAG_AVR32_HAS_UNALIGNED_WORD)
  5.8309 ++#define TARGET_BRANCH_PRED  (avr32_arch->feature_flags & FLAG_AVR32_HAS_BRANCH_PRED)
  5.8310 ++#define TARGET_RETURN_STACK  (avr32_arch->feature_flags & FLAG_AVR32_HAS_RETURN_STACK)
  5.8311 ++#define TARGET_V2_INSNS  (avr32_arch->feature_flags & FLAG_AVR32_HAS_V2_INSNS)
  5.8312 ++#define TARGET_CACHES  (avr32_arch->feature_flags & FLAG_AVR32_HAS_CACHES)
  5.8313 ++#define TARGET_NO_MUL_INSNS  (avr32_arch->feature_flags & FLAG_AVR32_HAS_NO_MUL_INSNS)
  5.8314 ++#define TARGET_ARCH_AP (avr32_arch->arch_type == ARCH_TYPE_AVR32_AP)
  5.8315 ++#define TARGET_ARCH_UCR1 (avr32_arch->arch_type == ARCH_TYPE_AVR32_UCR1)
  5.8316 ++#define TARGET_ARCH_UCR2 (avr32_arch->arch_type == ARCH_TYPE_AVR32_UCR2)
  5.8317 ++#define TARGET_ARCH_UC (TARGET_ARCH_UCR1 || TARGET_ARCH_UCR2)
  5.8318 ++#define TARGET_UARCH_AVR32A (avr32_arch->uarch_type == UARCH_TYPE_AVR32A)
  5.8319 ++#define TARGET_UARCH_AVR32B (avr32_arch->uarch_type == UARCH_TYPE_AVR32B)
  5.8320 ++
  5.8321 ++#define CAN_DEBUG_WITHOUT_FP
  5.8322 ++
  5.8323 ++
  5.8324 ++
  5.8325 ++
  5.8326 ++/******************************************************************************
  5.8327 ++ * Storage Layout
  5.8328 ++ *****************************************************************************/
  5.8329 ++
  5.8330 ++/*
  5.8331 ++Define this macro to have the value 1 if the most significant bit in a
  5.8332 ++byte has the lowest number; otherwise define it to have the value zero.
  5.8333 ++This means that bit-field instructions count from the most significant
  5.8334 ++bit.  If the machine has no bit-field instructions, then this must still
  5.8335 ++be defined, but it doesn't matter which value it is defined to.  This
  5.8336 ++macro need not be a constant.
  5.8337 ++
  5.8338 ++This macro does not affect the way structure fields are packed into
  5.8339 ++bytes or words; that is controlled by BYTES_BIG_ENDIAN.
  5.8340 ++*/
  5.8341 ++#define BITS_BIG_ENDIAN 0
  5.8342 ++
  5.8343 ++/*
  5.8344 ++Define this macro to have the value 1 if the most significant byte in a
  5.8345 ++word has the lowest number. This macro need not be a constant.
  5.8346 ++*/
  5.8347 ++/*
  5.8348 ++  Data is stored in an big-endian way.
  5.8349 ++*/
  5.8350 ++#define BYTES_BIG_ENDIAN 1
  5.8351 ++
  5.8352 ++/*
  5.8353 ++Define this macro to have the value 1 if, in a multiword object, the
  5.8354 ++most significant word has the lowest number.  This applies to both
  5.8355 ++memory locations and registers; GCC fundamentally assumes that the
  5.8356 ++order of words in memory is the same as the order in registers.  This
  5.8357 ++macro need not be a constant.
  5.8358 ++*/
  5.8359 ++/*
  5.8360 ++  Data is stored in an bin-endian way.
  5.8361 ++*/
  5.8362 ++#define WORDS_BIG_ENDIAN 1
  5.8363 ++
  5.8364 ++/*
  5.8365 ++Define this macro if WORDS_BIG_ENDIAN is not constant.  This must be a
  5.8366 ++constant value with the same meaning as WORDS_BIG_ENDIAN, which will be
  5.8367 ++used only when compiling libgcc2.c.  Typically the value will be set
  5.8368 ++based on preprocessor defines.
  5.8369 ++*/
  5.8370 ++#define LIBGCC2_WORDS_BIG_ENDIAN WORDS_BIG_ENDIAN
  5.8371 ++
  5.8372 ++/*
  5.8373 ++Define this macro to have the value 1 if DFmode, XFmode or
  5.8374 ++TFmode floating point numbers are stored in memory with the word
  5.8375 ++containing the sign bit at the lowest address; otherwise define it to
  5.8376 ++have the value 0.  This macro need not be a constant.
  5.8377 ++
  5.8378 ++You need not define this macro if the ordering is the same as for
  5.8379 ++multi-word integers.
  5.8380 ++*/
  5.8381 ++/* #define FLOAT_WORDS_BIG_ENDIAN 1 */
  5.8382 ++
  5.8383 ++/*
  5.8384 ++Define this macro to be the number of bits in an addressable storage
  5.8385 ++unit (byte); normally 8.
  5.8386 ++*/
  5.8387 ++#define BITS_PER_UNIT 8
  5.8388 ++
  5.8389 ++/*
  5.8390 ++Number of bits in a word; normally 32.
  5.8391 ++*/
  5.8392 ++#define BITS_PER_WORD 32
  5.8393 ++
  5.8394 ++/*
  5.8395 ++Maximum number of bits in a word.  If this is undefined, the default is
  5.8396 ++BITS_PER_WORD.  Otherwise, it is the constant value that is the
  5.8397 ++largest value that BITS_PER_WORD can have at run-time.
  5.8398 ++*/
  5.8399 ++/* MAX_BITS_PER_WORD not defined*/
  5.8400 ++
  5.8401 ++/*
  5.8402 ++Number of storage units in a word; normally 4.
  5.8403 ++*/
  5.8404 ++#define UNITS_PER_WORD 4
  5.8405 ++
  5.8406 ++/*
  5.8407 ++Minimum number of units in a word.  If this is undefined, the default is
  5.8408 ++UNITS_PER_WORD.  Otherwise, it is the constant value that is the
  5.8409 ++smallest value that UNITS_PER_WORD can have at run-time.
  5.8410 ++*/
  5.8411 ++/* MIN_UNITS_PER_WORD not defined */
  5.8412 ++
  5.8413 ++/*
  5.8414 ++Width of a pointer, in bits.  You must specify a value no wider than the
  5.8415 ++width of Pmode.  If it is not equal to the width of Pmode,
  5.8416 ++you must define POINTERS_EXTEND_UNSIGNED.
  5.8417 ++*/
  5.8418 ++#define POINTER_SIZE 32
  5.8419 ++
  5.8420 ++/*
  5.8421 ++A C expression whose value is greater than zero if pointers that need to be
  5.8422 ++extended from being POINTER_SIZE bits wide to Pmode are to
  5.8423 ++be zero-extended and zero if they are to be sign-extended.  If the value
  5.8424 ++is less then zero then there must be an "ptr_extend" instruction that
  5.8425 ++extends a pointer from POINTER_SIZE to Pmode.
  5.8426 ++
  5.8427 ++You need not define this macro if the POINTER_SIZE is equal
  5.8428 ++to the width of Pmode.
  5.8429 ++*/
  5.8430 ++/* #define POINTERS_EXTEND_UNSIGNED */
  5.8431 ++
  5.8432 ++/*
  5.8433 ++A Macro to update M and UNSIGNEDP when an object whose type
  5.8434 ++is TYPE and which has the specified mode and signedness is to be
  5.8435 ++stored in a register.  This macro is only called when TYPE is a
  5.8436 ++scalar type.
  5.8437 ++
  5.8438 ++On most RISC machines, which only have operations that operate on a full
  5.8439 ++register, define this macro to set M to word_mode if
  5.8440 ++M is an integer mode narrower than BITS_PER_WORD.  In most
  5.8441 ++cases, only integer modes should be widened because wider-precision
  5.8442 ++floating-point operations are usually more expensive than their narrower
  5.8443 ++counterparts.
  5.8444 ++
  5.8445 ++For most machines, the macro definition does not change UNSIGNEDP.
  5.8446 ++However, some machines, have instructions that preferentially handle
  5.8447 ++either signed or unsigned quantities of certain modes.  For example, on
  5.8448 ++the DEC Alpha, 32-bit loads from memory and 32-bit add instructions
  5.8449 ++sign-extend the result to 64 bits.  On such machines, set
  5.8450 ++UNSIGNEDP according to which kind of extension is more efficient.
  5.8451 ++
  5.8452 ++Do not define this macro if it would never modify M.
  5.8453 ++*/
  5.8454 ++#define PROMOTE_MODE(M, UNSIGNEDP, TYPE)	\
  5.8455 ++    {						\
  5.8456 ++      if (GET_MODE_CLASS (M) == MODE_INT	\
  5.8457 ++	  && GET_MODE_SIZE (M) < 4)		\
  5.8458 ++	{					\
  5.8459 ++          if (M == QImode)                     \
  5.8460 ++            UNSIGNEDP = 1;                      \
  5.8461 ++          else if (M == SImode)                 \
  5.8462 ++            UNSIGNEDP = 0;                      \
  5.8463 ++	  (M) = SImode;				\
  5.8464 ++	}					\
  5.8465 ++    }
  5.8466 ++
  5.8467 ++#define PROMOTE_FUNCTION_MODE(M, UNSIGNEDP, TYPE)        \
  5.8468 ++  {                                                      \
  5.8469 ++    if (GET_MODE_CLASS (M) == MODE_INT                   \
  5.8470 ++        && GET_MODE_SIZE (M) < 4)                        \
  5.8471 ++      {                                                  \
  5.8472 ++        (M) = SImode;                                    \
  5.8473 ++      }                                                  \
  5.8474 ++  }
  5.8475 ++
  5.8476 ++/* Define if operations between registers always perform the operation
  5.8477 ++   on the full register even if a narrower mode is specified.  */
  5.8478 ++#define WORD_REGISTER_OPERATIONS
  5.8479 ++
  5.8480 ++/* Define if loading in MODE, an integral mode narrower than BITS_PER_WORD
  5.8481 ++   will either zero-extend or sign-extend.  The value of this macro should
  5.8482 ++   be the code that says which one of the two operations is implicitly
  5.8483 ++   done, UNKNOWN if not known.  */
  5.8484 ++#define LOAD_EXTEND_OP(MODE)				\
  5.8485 ++   (((MODE) == QImode) ? ZERO_EXTEND			\
  5.8486 ++   : ((MODE) == HImode) ? SIGN_EXTEND : UNKNOWN)
  5.8487 ++
  5.8488 ++
  5.8489 ++/*
  5.8490 ++Define this macro if the promotion described by PROMOTE_MODE
  5.8491 ++should only be performed for outgoing function arguments or
  5.8492 ++function return values, as specified by PROMOTE_FUNCTION_ARGS
  5.8493 ++and PROMOTE_FUNCTION_RETURN, respectively.
  5.8494 ++*/
  5.8495 ++/* #define PROMOTE_FOR_CALL_ONLY */
  5.8496 ++
  5.8497 ++/*
  5.8498 ++Normal alignment required for function parameters on the stack, in
  5.8499 ++bits.  All stack parameters receive at least this much alignment
  5.8500 ++regardless of data type.  On most machines, this is the same as the
  5.8501 ++size of an integer.
  5.8502 ++*/
  5.8503 ++#define PARM_BOUNDARY 32
  5.8504 ++
  5.8505 ++/*
  5.8506 ++Define this macro to the minimum alignment enforced by hardware for the
  5.8507 ++stack pointer on this machine.  The definition is a C expression for the
  5.8508 ++desired alignment (measured in bits).  This value is used as a default
  5.8509 ++if PREFERRED_STACK_BOUNDARY is not defined.  On most machines,
  5.8510 ++this should be the same as PARM_BOUNDARY.
  5.8511 ++*/
  5.8512 ++#define STACK_BOUNDARY 32
  5.8513 ++
  5.8514 ++/*
  5.8515 ++Define this macro if you wish to preserve a certain alignment for the
  5.8516 ++stack pointer, greater than what the hardware enforces.  The definition
  5.8517 ++is a C expression for the desired alignment (measured in bits).  This
  5.8518 ++macro must evaluate to a value equal to or larger than
  5.8519 ++STACK_BOUNDARY.
  5.8520 ++*/
  5.8521 ++#define PREFERRED_STACK_BOUNDARY (TARGET_FORCE_DOUBLE_ALIGN ? 64 : 32 )
  5.8522 ++
  5.8523 ++/*
  5.8524 ++Alignment required for a function entry point, in bits.
  5.8525 ++*/
  5.8526 ++#define FUNCTION_BOUNDARY 16
  5.8527 ++
  5.8528 ++/*
  5.8529 ++Biggest alignment that any data type can require on this machine, in bits.
  5.8530 ++*/
  5.8531 ++#define BIGGEST_ALIGNMENT  (TARGET_FORCE_DOUBLE_ALIGN ? 64 : 32 )
  5.8532 ++
  5.8533 ++/*
  5.8534 ++If defined, the smallest alignment, in bits, that can be given to an
  5.8535 ++object that can be referenced in one operation, without disturbing any
  5.8536 ++nearby object.  Normally, this is BITS_PER_UNIT, but may be larger
  5.8537 ++on machines that don't have byte or half-word store operations.
  5.8538 ++*/
  5.8539 ++#define MINIMUM_ATOMIC_ALIGNMENT BITS_PER_UNIT
  5.8540 ++
  5.8541 ++
  5.8542 ++/*
  5.8543 ++An integer expression for the size in bits of the largest integer machine mode that
  5.8544 ++should actually be used. All integer machine modes of this size or smaller can be
  5.8545 ++used for structures and unions with the appropriate sizes. If this macro is undefined,
  5.8546 ++GET_MODE_BITSIZE (DImode) is assumed.*/
  5.8547 ++#define MAX_FIXED_MODE_SIZE  GET_MODE_BITSIZE (DImode)
  5.8548 ++
  5.8549 ++
  5.8550 ++/*
  5.8551 ++If defined, a C expression to compute the alignment given to a constant
  5.8552 ++that is being placed in memory.  CONSTANT is the constant and
  5.8553 ++BASIC_ALIGN is the alignment that the object would ordinarily
  5.8554 ++have.  The value of this macro is used instead of that alignment to
  5.8555 ++align the object.
  5.8556 ++
  5.8557 ++If this macro is not defined, then BASIC_ALIGN is used.
  5.8558 ++
  5.8559 ++The typical use of this macro is to increase alignment for string
  5.8560 ++constants to be word aligned so that strcpy calls that copy
  5.8561 ++constants can be done inline.
  5.8562 ++*/
  5.8563 ++#define CONSTANT_ALIGNMENT(CONSTANT, BASIC_ALIGN) \
  5.8564 ++ ((TREE_CODE(CONSTANT) == STRING_CST) ? BITS_PER_WORD : BASIC_ALIGN)
  5.8565 ++
  5.8566 ++/* Try to align string to a word. */
  5.8567 ++#define DATA_ALIGNMENT(TYPE, ALIGN)                                     \
  5.8568 ++  ({(TREE_CODE (TYPE) == ARRAY_TYPE                                     \
  5.8569 ++     && TYPE_MODE (TREE_TYPE (TYPE)) == QImode                          \
  5.8570 ++     && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN));})
  5.8571 ++
  5.8572 ++/* Try to align local store strings to a word. */
  5.8573 ++#define LOCAL_ALIGNMENT(TYPE, ALIGN)                                    \
  5.8574 ++  ({(TREE_CODE (TYPE) == ARRAY_TYPE                                     \
  5.8575 ++     && TYPE_MODE (TREE_TYPE (TYPE)) == QImode                          \
  5.8576 ++     && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN));})
  5.8577 ++
  5.8578 ++/*
  5.8579 ++Define this macro to be the value 1 if instructions will fail to work
  5.8580 ++if given data not on the nominal alignment.  If instructions will merely
  5.8581 ++go slower in that case, define this macro as 0.
  5.8582 ++*/
  5.8583 ++#define STRICT_ALIGNMENT 1
  5.8584 ++
  5.8585 ++/*
  5.8586 ++Define this if you wish to imitate the way many other C compilers handle
  5.8587 ++alignment of bit-fields and the structures that contain them.
  5.8588 ++
  5.8589 ++The behavior is that the type written for a bit-field (int,
  5.8590 ++short, or other integer type) imposes an alignment for the
  5.8591 ++entire structure, as if the structure really did contain an ordinary
  5.8592 ++field of that type.  In addition, the bit-field is placed within the
  5.8593 ++structure so that it would fit within such a field, not crossing a
  5.8594 ++boundary for it.
  5.8595 ++
  5.8596 ++Thus, on most machines, a bit-field whose type is written as int
  5.8597 ++would not cross a four-byte boundary, and would force four-byte
  5.8598 ++alignment for the whole structure.  (The alignment used may not be four
  5.8599 ++bytes; it is controlled by the other alignment parameters.)
  5.8600 ++
  5.8601 ++If the macro is defined, its definition should be a C expression;
  5.8602 ++a nonzero value for the expression enables this behavior.
  5.8603 ++
  5.8604 ++Note that if this macro is not defined, or its value is zero, some
  5.8605 ++bit-fields may cross more than one alignment boundary.  The compiler can
  5.8606 ++support such references if there are insv, extv, and
  5.8607 ++extzv insns that can directly reference memory.
  5.8608 ++
  5.8609 ++The other known way of making bit-fields work is to define
  5.8610 ++STRUCTURE_SIZE_BOUNDARY as large as BIGGEST_ALIGNMENT.
  5.8611 ++Then every structure can be accessed with fullwords.
  5.8612 ++
  5.8613 ++Unless the machine has bit-field instructions or you define
  5.8614 ++STRUCTURE_SIZE_BOUNDARY that way, you must define
  5.8615 ++PCC_BITFIELD_TYPE_MATTERS to have a nonzero value.
  5.8616 ++
  5.8617 ++If your aim is to make GCC use the same conventions for laying out
  5.8618 ++bit-fields as are used by another compiler, here is how to investigate
  5.8619 ++what the other compiler does.  Compile and run this program:
  5.8620 ++
  5.8621 ++struct foo1
  5.8622 ++{
  5.8623 ++  char x;
  5.8624 ++  char :0;
  5.8625 ++  char y;
  5.8626 ++};
  5.8627 ++
  5.8628 ++struct foo2
  5.8629 ++{
  5.8630 ++  char x;
  5.8631 ++  int :0;
  5.8632 ++  char y;
  5.8633 ++};
  5.8634 ++
  5.8635 ++main ()
  5.8636 ++{
  5.8637 ++  printf ("Size of foo1 is %d\n",
  5.8638 ++          sizeof (struct foo1));
  5.8639 ++  printf ("Size of foo2 is %d\n",
  5.8640 ++          sizeof (struct foo2));
  5.8641 ++  exit (0);
  5.8642 ++}
  5.8643 ++
  5.8644 ++If this prints 2 and 5, then the compiler's behavior is what you would
  5.8645 ++get from PCC_BITFIELD_TYPE_MATTERS.
  5.8646 ++*/
  5.8647 ++#define PCC_BITFIELD_TYPE_MATTERS 1
  5.8648 ++
  5.8649 ++
  5.8650 ++/******************************************************************************
  5.8651 ++ * Layout of Source Language Data Types
  5.8652 ++ *****************************************************************************/
  5.8653 ++
  5.8654 ++/*
  5.8655 ++A C expression for the size in bits of the type int on the
  5.8656 ++target machine.  If you don't define this, the default is one word.
  5.8657 ++*/
  5.8658 ++#define INT_TYPE_SIZE 32
  5.8659 ++
  5.8660 ++/*
  5.8661 ++A C expression for the size in bits of the type short on the
  5.8662 ++target machine.  If you don't define this, the default is half a word. (If
  5.8663 ++this would be less than one storage unit, it is rounded up to one unit.)
  5.8664 ++*/
  5.8665 ++#define SHORT_TYPE_SIZE 16
  5.8666 ++
  5.8667 ++/*
  5.8668 ++A C expression for the size in bits of the type long on the
  5.8669 ++target machine.  If you don't define this, the default is one word.
  5.8670 ++*/
  5.8671 ++#define LONG_TYPE_SIZE 32
  5.8672 ++
  5.8673 ++
  5.8674 ++/*
  5.8675 ++A C expression for the size in bits of the type long long on the
  5.8676 ++target machine.  If you don't define this, the default is two
  5.8677 ++words.  If you want to support GNU Ada on your machine, the value of this
  5.8678 ++macro must be at least 64.
  5.8679 ++*/
  5.8680 ++#define LONG_LONG_TYPE_SIZE 64
  5.8681 ++
  5.8682 ++/*
  5.8683 ++A C expression for the size in bits of the type char on the
  5.8684 ++target machine.  If you don't define this, the default is
  5.8685 ++BITS_PER_UNIT.
  5.8686 ++*/
  5.8687 ++#define CHAR_TYPE_SIZE 8
  5.8688 ++
  5.8689 ++
  5.8690 ++/*
  5.8691 ++A C expression for the size in bits of the C++ type bool and
  5.8692 ++C99 type _Bool on the target machine.  If you don't define
  5.8693 ++this, and you probably shouldn't, the default is CHAR_TYPE_SIZE.
  5.8694 ++*/
  5.8695 ++#define BOOL_TYPE_SIZE 8
  5.8696 ++
  5.8697 ++
  5.8698 ++/*
  5.8699 ++An expression whose value is 1 or 0, according to whether the type
  5.8700 ++char should be signed or unsigned by default.  The user can
  5.8701 ++always override this default with the options -fsigned-char
  5.8702 ++and -funsigned-char.
  5.8703 ++*/
  5.8704 ++/* We are using unsigned char */
  5.8705 ++#define DEFAULT_SIGNED_CHAR 0
  5.8706 ++
  5.8707 ++
  5.8708 ++/*
  5.8709 ++A C expression for a string describing the name of the data type to use
  5.8710 ++for size values.  The typedef name size_t is defined using the
  5.8711 ++contents of the string.
  5.8712 ++
  5.8713 ++The string can contain more than one keyword.  If so, separate them with
  5.8714 ++spaces, and write first any length keyword, then unsigned if
  5.8715 ++appropriate, and finally int.  The string must exactly match one
  5.8716 ++of the data type names defined in the function
  5.8717 ++init_decl_processing in the file c-decl.c.  You may not
  5.8718 ++omit int or change the order - that would cause the compiler to
  5.8719 ++crash on startup.
  5.8720 ++
  5.8721 ++If you don't define this macro, the default is "long unsigned int".
  5.8722 ++*/
  5.8723 ++#define SIZE_TYPE "long unsigned int"
  5.8724 ++
  5.8725 ++/*
  5.8726 ++A C expression for a string describing the name of the data type to use
  5.8727 ++for the result of subtracting two pointers.  The typedef name
  5.8728 ++ptrdiff_t is defined using the contents of the string.  See
  5.8729 ++SIZE_TYPE above for more information.
  5.8730 ++
  5.8731 ++If you don't define this macro, the default is "long int".
  5.8732 ++*/
  5.8733 ++#define PTRDIFF_TYPE "long int"
  5.8734 ++
  5.8735 ++
  5.8736 ++/*
  5.8737 ++A C expression for the size in bits of the data type for wide
  5.8738 ++characters.  This is used in cpp, which cannot make use of
  5.8739 ++WCHAR_TYPE.
  5.8740 ++*/
  5.8741 ++#define WCHAR_TYPE_SIZE 32
  5.8742 ++
  5.8743 ++
  5.8744 ++/*
  5.8745 ++A C expression for a string describing the name of the data type to
  5.8746 ++use for wide characters passed to printf and returned from
  5.8747 ++getwc.  The typedef name wint_t is defined using the
  5.8748 ++contents of the string.  See SIZE_TYPE above for more
  5.8749 ++information.
  5.8750 ++
  5.8751 ++If you don't define this macro, the default is "unsigned int".
  5.8752 ++*/
  5.8753 ++#define WINT_TYPE "unsigned int"
  5.8754 ++
  5.8755 ++/*
  5.8756 ++A C expression for a string describing the name of the data type that
  5.8757 ++can represent any value of any standard or extended signed integer type.
  5.8758 ++The typedef name intmax_t is defined using the contents of the
  5.8759 ++string.  See SIZE_TYPE above for more information.
  5.8760 ++
  5.8761 ++If you don't define this macro, the default is the first of
  5.8762 ++"int", "long int", or "long long int" that has as
  5.8763 ++much precision as long long int.
  5.8764 ++*/
  5.8765 ++#define INTMAX_TYPE "long long int"
  5.8766 ++
  5.8767 ++/*
  5.8768 ++A C expression for a string describing the name of the data type that
  5.8769 ++can represent any value of any standard or extended unsigned integer
  5.8770 ++type.  The typedef name uintmax_t is defined using the contents
  5.8771 ++of the string.  See SIZE_TYPE above for more information.
  5.8772 ++
  5.8773 ++If you don't define this macro, the default is the first of
  5.8774 ++"unsigned int", "long unsigned int", or "long long unsigned int"
  5.8775 ++that has as much precision as long long unsigned int.
  5.8776 ++*/
  5.8777 ++#define UINTMAX_TYPE "long long unsigned int"
  5.8778 ++
  5.8779 ++
  5.8780 ++/******************************************************************************
  5.8781 ++ * Register Usage
  5.8782 ++ *****************************************************************************/
  5.8783 ++
  5.8784 ++/* Convert from gcc internal register number to register number
  5.8785 ++   used in assembly code */
  5.8786 ++#define ASM_REGNUM(reg) (LAST_REGNUM - (reg))
  5.8787 ++#define ASM_FP_REGNUM(reg) (LAST_FP_REGNUM - (reg))
  5.8788 ++
  5.8789 ++/* Convert between register number used in assembly to gcc
  5.8790 ++   internal register number  */
  5.8791 ++#define INTERNAL_REGNUM(reg) (LAST_REGNUM - (reg))
  5.8792 ++#define INTERNAL_FP_REGNUM(reg) (LAST_FP_REGNUM - (reg))
  5.8793 ++
  5.8794 ++/** Basic Characteristics of Registers **/
  5.8795 ++
  5.8796 ++/*
  5.8797 ++Number of hardware registers known to the compiler.  They receive
  5.8798 ++numbers 0 through FIRST_PSEUDO_REGISTER-1; thus, the first
  5.8799 ++pseudo register's number really is assigned the number
  5.8800 ++FIRST_PSEUDO_REGISTER.
  5.8801 ++*/
  5.8802 ++#define FIRST_PSEUDO_REGISTER (LAST_FP_REGNUM + 1)
  5.8803 ++
  5.8804 ++#define FIRST_REGNUM 0
  5.8805 ++#define LAST_REGNUM 15
  5.8806 ++#define NUM_FP_REGS 16
  5.8807 ++#define FIRST_FP_REGNUM 16
  5.8808 ++#define LAST_FP_REGNUM (16+NUM_FP_REGS-1)
  5.8809 ++
  5.8810 ++/*
  5.8811 ++An initializer that says which registers are used for fixed purposes
  5.8812 ++all throughout the compiled code and are therefore not available for
  5.8813 ++general allocation.  These would include the stack pointer, the frame
  5.8814 ++pointer (except on machines where that can be used as a general
  5.8815 ++register when no frame pointer is needed), the program counter on
  5.8816 ++machines where that is considered one of the addressable registers,
  5.8817 ++and any other numbered register with a standard use.
  5.8818 ++
  5.8819 ++This information is expressed as a sequence of numbers, separated by
  5.8820 ++commas and surrounded by braces.  The nth number is 1 if
  5.8821 ++register n is fixed, 0 otherwise.
  5.8822 ++
  5.8823 ++The table initialized from this macro, and the table initialized by
  5.8824 ++the following one, may be overridden at run time either automatically,
  5.8825 ++by the actions of the macro CONDITIONAL_REGISTER_USAGE, or by
  5.8826 ++the user with the command options -ffixed-[reg],
  5.8827 ++-fcall-used-[reg] and -fcall-saved-[reg].
  5.8828 ++*/
  5.8829 ++
  5.8830 ++/* The internal gcc register numbers are reversed
  5.8831 ++   compared to the real register numbers since
  5.8832 ++   gcc expects data types stored over multiple
  5.8833 ++   registers in the register file to be big endian
  5.8834 ++   if the memory layout is big endian. But this
  5.8835 ++   is not the case for avr32 so we fake a big
  5.8836 ++   endian register file. */
  5.8837 ++
  5.8838 ++#define FIXED_REGISTERS {	\
  5.8839 ++  1, /* Program Counter */	\
  5.8840 ++  0, /* Link Register */	\
  5.8841 ++  1, /* Stack Pointer */	\
  5.8842 ++  0, /* r12 */			\
  5.8843 ++  0, /* r11 */			\
  5.8844 ++  0, /* r10 */			\
  5.8845 ++  0, /* r9 */			\
  5.8846 ++  0, /* r8 */			\
  5.8847 ++  0, /* r7 */			\
  5.8848 ++  0, /* r6 */			\
  5.8849 ++  0, /* r5 */			\
  5.8850 ++  0, /* r4 */			\
  5.8851 ++  0, /* r3 */			\
  5.8852 ++  0, /* r2 */			\
  5.8853 ++  0, /* r1 */			\
  5.8854 ++  0, /* r0 */			\
  5.8855 ++  0, /* f15 */			\
  5.8856 ++  0, /* f14 */			\
  5.8857 ++  0, /* f13 */			\
  5.8858 ++  0, /* f12 */			\
  5.8859 ++  0, /* f11 */			\
  5.8860 ++  0, /* f10 */			\
  5.8861 ++  0, /* f9 */			\
  5.8862 ++  0, /* f8 */			\
  5.8863 ++  0, /* f7 */			\
  5.8864 ++  0, /* f6 */			\
  5.8865 ++  0, /* f5 */			\
  5.8866 ++  0, /* f4 */			\
  5.8867 ++  0, /* f3 */			\
  5.8868 ++  0, /* f2*/			\
  5.8869 ++  0, /* f1 */			\
  5.8870 ++  0  /* f0 */			\
  5.8871 ++}
  5.8872 ++
  5.8873 ++/*
  5.8874 ++Like FIXED_REGISTERS but has 1 for each register that is
  5.8875 ++clobbered (in general) by function calls as well as for fixed
  5.8876 ++registers.  This macro therefore identifies the registers that are not
  5.8877 ++available for general allocation of values that must live across
  5.8878 ++function calls.
  5.8879 ++
  5.8880 ++If a register has 0 in CALL_USED_REGISTERS, the compiler
  5.8881 ++automatically saves it on function entry and restores it on function
  5.8882 ++exit, if the register is used within the function.
  5.8883 ++*/
  5.8884 ++#define CALL_USED_REGISTERS {	\
  5.8885 ++  1, /* Program Counter */	\
  5.8886 ++  0, /* Link Register */	\
  5.8887 ++  1, /* Stack Pointer */	\
  5.8888 ++  1, /* r12 */			\
  5.8889 ++  1, /* r11 */			\
  5.8890 ++  1, /* r10 */			\
  5.8891 ++  1, /* r9 */			\
  5.8892 ++  1, /* r8 */			\
  5.8893 ++  0, /* r7 */			\
  5.8894 ++  0, /* r6 */			\
  5.8895 ++  0, /* r5 */			\
  5.8896 ++  0, /* r4 */			\
  5.8897 ++  0, /* r3 */			\
  5.8898 ++  0, /* r2 */			\
  5.8899 ++  0, /* r1 */			\
  5.8900 ++  0, /* r0 */			\
  5.8901 ++  1, /* f15 */			\
  5.8902 ++  1, /* f14 */			\
  5.8903 ++  1, /* f13 */			\
  5.8904 ++  1, /* f12 */			\
  5.8905 ++  1, /* f11 */			\
  5.8906 ++  1, /* f10 */			\
  5.8907 ++  1, /* f9 */			\
  5.8908 ++  1, /* f8 */			\
  5.8909 ++  0, /* f7 */			\
  5.8910 ++  0, /* f6 */			\
  5.8911 ++  0, /* f5 */			\
  5.8912 ++  0, /* f4 */			\
  5.8913 ++  0, /* f3 */			\
  5.8914 ++  0, /* f2*/			\
  5.8915 ++  0, /* f1*/			\
  5.8916 ++  0, /* f0 */			\
  5.8917 ++}
  5.8918 ++
  5.8919 ++/* Interrupt functions can only use registers that have already been
  5.8920 ++   saved by the prologue, even if they would normally be
  5.8921 ++   call-clobbered.  */
  5.8922 ++#define HARD_REGNO_RENAME_OK(SRC, DST)					\
  5.8923 ++	(! IS_INTERRUPT (cfun->machine->func_type) ||			\
  5.8924 ++		regs_ever_live[DST])
  5.8925 ++
  5.8926 ++
  5.8927 ++/*
  5.8928 ++Zero or more C statements that may conditionally modify five variables
  5.8929 ++fixed_regs, call_used_regs, global_regs,
  5.8930 ++reg_names, and reg_class_contents, to take into account
  5.8931 ++any dependence of these register sets on target flags.  The first three
  5.8932 ++of these are of type char [] (interpreted as Boolean vectors).
  5.8933 ++global_regs is a const char *[], and
  5.8934 ++reg_class_contents is a HARD_REG_SET.  Before the macro is
  5.8935 ++called, fixed_regs, call_used_regs,
  5.8936 ++reg_class_contents, and reg_names have been initialized
  5.8937 ++from FIXED_REGISTERS, CALL_USED_REGISTERS,
  5.8938 ++REG_CLASS_CONTENTS, and REGISTER_NAMES, respectively.
  5.8939 ++global_regs has been cleared, and any -ffixed-[reg],
  5.8940 ++-fcall-used-[reg] and -fcall-saved-[reg]
  5.8941 ++command options have been applied.
  5.8942 ++
  5.8943 ++You need not define this macro if it has no work to do.
  5.8944 ++
  5.8945 ++If the usage of an entire class of registers depends on the target
  5.8946 ++flags, you may indicate this to GCC by using this macro to modify
  5.8947 ++fixed_regs and call_used_regs to 1 for each of the
  5.8948 ++registers in the classes which should not be used by GCC.  Also define
  5.8949 ++the macro REG_CLASS_FROM_LETTER to return NO_REGS if it
  5.8950 ++is called with a letter for a class that shouldn't be used.
  5.8951 ++
  5.8952 ++ (However, if this class is not included in GENERAL_REGS and all
  5.8953 ++of the insn patterns whose constraints permit this class are
  5.8954 ++controlled by target switches, then GCC will automatically avoid using
  5.8955 ++these registers when the target switches are opposed to them.)
  5.8956 ++*/
  5.8957 ++#define CONDITIONAL_REGISTER_USAGE                              \
  5.8958 ++  do								\
  5.8959 ++    {								\
  5.8960 ++      int regno;						\
  5.8961 ++								\
  5.8962 ++      if (TARGET_SOFT_FLOAT)			                \
  5.8963 ++	{							\
  5.8964 ++	  for (regno = FIRST_FP_REGNUM;				\
  5.8965 ++	       regno <= LAST_FP_REGNUM; ++regno)	        \
  5.8966 ++	    fixed_regs[regno] = call_used_regs[regno] = 1;	\
  5.8967 ++	}							\
  5.8968 ++      if (flag_pic)						\
  5.8969 ++	{							\
  5.8970 ++	  fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1;		\
  5.8971 ++	  call_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1;		\
  5.8972 ++	}							\
  5.8973 ++    }								\
  5.8974 ++  while (0)
  5.8975 ++
  5.8976 ++
  5.8977 ++/*
  5.8978 ++If the program counter has a register number, define this as that
  5.8979 ++register number.  Otherwise, do not define it.
  5.8980 ++*/
  5.8981 ++
  5.8982 ++#define LAST_AVR32_REGNUM 16
  5.8983 ++
  5.8984 ++
  5.8985 ++/** Order of Allocation of Registers **/
  5.8986 ++
  5.8987 ++/*
  5.8988 ++If defined, an initializer for a vector of integers, containing the
  5.8989 ++numbers of hard registers in the order in which GCC should prefer
  5.8990 ++to use them (from most preferred to least).
  5.8991 ++
  5.8992 ++If this macro is not defined, registers are used lowest numbered first
  5.8993 ++(all else being equal).
  5.8994 ++
  5.8995 ++One use of this macro is on machines where the highest numbered
  5.8996 ++registers must always be saved and the save-multiple-registers
  5.8997 ++instruction supports only sequences of consecutive registers.  On such
  5.8998 ++machines, define REG_ALLOC_ORDER to be an initializer that lists
  5.8999 ++the highest numbered allocable register first.
  5.9000 ++*/
  5.9001 ++#define REG_ALLOC_ORDER 	\
  5.9002 ++{				\
  5.9003 ++  INTERNAL_REGNUM(8),		\
  5.9004 ++  INTERNAL_REGNUM(9),		\
  5.9005 ++  INTERNAL_REGNUM(10),		\
  5.9006 ++  INTERNAL_REGNUM(11),		\
  5.9007 ++  INTERNAL_REGNUM(12),		\
  5.9008 ++  LR_REGNUM,			\
  5.9009 ++  INTERNAL_REGNUM(7),		\
  5.9010 ++  INTERNAL_REGNUM(6),		\
  5.9011 ++  INTERNAL_REGNUM(5),		\
  5.9012 ++  INTERNAL_REGNUM(4),		\
  5.9013 ++  INTERNAL_REGNUM(3),		\
  5.9014 ++  INTERNAL_REGNUM(2),		\
  5.9015 ++  INTERNAL_REGNUM(1),		\
  5.9016 ++  INTERNAL_REGNUM(0),		\
  5.9017 ++  INTERNAL_FP_REGNUM(15),	\
  5.9018 ++  INTERNAL_FP_REGNUM(14),	\
  5.9019 ++  INTERNAL_FP_REGNUM(13),	\
  5.9020 ++  INTERNAL_FP_REGNUM(12),	\
  5.9021 ++  INTERNAL_FP_REGNUM(11),	\
  5.9022 ++  INTERNAL_FP_REGNUM(10),	\
  5.9023 ++  INTERNAL_FP_REGNUM(9),	\
  5.9024 ++  INTERNAL_FP_REGNUM(8),	\
  5.9025 ++  INTERNAL_FP_REGNUM(7),	\
  5.9026 ++  INTERNAL_FP_REGNUM(6),	\
  5.9027 ++  INTERNAL_FP_REGNUM(5),	\
  5.9028 ++  INTERNAL_FP_REGNUM(4),	\
  5.9029 ++  INTERNAL_FP_REGNUM(3),	\
  5.9030 ++  INTERNAL_FP_REGNUM(2),	\
  5.9031 ++  INTERNAL_FP_REGNUM(1),	\
  5.9032 ++  INTERNAL_FP_REGNUM(0),	\
  5.9033 ++  SP_REGNUM,           		\
  5.9034 ++  PC_REGNUM			\
  5.9035 ++}
  5.9036 ++
  5.9037 ++
  5.9038 ++/** How Values Fit in Registers **/
  5.9039 ++
  5.9040 ++/*
  5.9041 ++A C expression for the number of consecutive hard registers, starting
  5.9042 ++at register number REGNO, required to hold a value of mode
  5.9043 ++MODE.
  5.9044 ++
  5.9045 ++On a machine where all registers are exactly one word, a suitable
  5.9046 ++definition of this macro is
  5.9047 ++
  5.9048 ++#define HARD_REGNO_NREGS(REGNO, MODE)            \
  5.9049 ++   ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1)  \
  5.9050 ++    / UNITS_PER_WORD)
  5.9051 ++*/
  5.9052 ++#define HARD_REGNO_NREGS(REGNO, MODE) \
  5.9053 ++  ((unsigned int)((GET_MODE_SIZE(MODE) + UNITS_PER_WORD -1 ) / UNITS_PER_WORD))
  5.9054 ++
  5.9055 ++/*
  5.9056 ++A C expression that is nonzero if it is permissible to store a value
  5.9057 ++of mode MODE in hard register number REGNO (or in several
  5.9058 ++registers starting with that one).  For a machine where all registers
  5.9059 ++are equivalent, a suitable definition is
  5.9060 ++
  5.9061 ++  #define HARD_REGNO_MODE_OK(REGNO, MODE) 1
  5.9062 ++
  5.9063 ++You need not include code to check for the numbers of fixed registers,
  5.9064 ++because the allocation mechanism considers them to be always occupied.
  5.9065 ++
  5.9066 ++On some machines, double-precision values must be kept in even/odd
  5.9067 ++register pairs.  You can implement that by defining this macro to reject
  5.9068 ++odd register numbers for such modes.
  5.9069 ++
  5.9070 ++The minimum requirement for a mode to be OK in a register is that the
  5.9071 ++mov[mode] instruction pattern support moves between the
  5.9072 ++register and other hard register in the same class and that moving a
  5.9073 ++value into the register and back out not alter it.
  5.9074 ++
  5.9075 ++Since the same instruction used to move word_mode will work for
  5.9076 ++all narrower integer modes, it is not necessary on any machine for
  5.9077 ++HARD_REGNO_MODE_OK to distinguish between these modes, provided
  5.9078 ++you define patterns movhi, etc., to take advantage of this.  This
  5.9079 ++is useful because of the interaction between HARD_REGNO_MODE_OK
  5.9080 ++and MODES_TIEABLE_P; it is very desirable for all integer modes
  5.9081 ++to be tieable.
  5.9082 ++
  5.9083 ++Many machines have special registers for floating point arithmetic.
  5.9084 ++Often people assume that floating point machine modes are allowed only
  5.9085 ++in floating point registers.  This is not true.  Any registers that
  5.9086 ++can hold integers can safely hold a floating point machine
  5.9087 ++mode, whether or not floating arithmetic can be done on it in those
  5.9088 ++registers.  Integer move instructions can be used to move the values.
  5.9089 ++
  5.9090 ++On some machines, though, the converse is true: fixed-point machine
  5.9091 ++modes may not go in floating registers.  This is true if the floating
  5.9092 ++registers normalize any value stored in them, because storing a
  5.9093 ++non-floating value there would garble it.  In this case,
  5.9094 ++HARD_REGNO_MODE_OK should reject fixed-point machine modes in
  5.9095 ++floating registers.  But if the floating registers do not automatically
  5.9096 ++normalize, if you can store any bit pattern in one and retrieve it
  5.9097 ++unchanged without a trap, then any machine mode may go in a floating
  5.9098 ++register, so you can define this macro to say so.
  5.9099 ++
  5.9100 ++The primary significance of special floating registers is rather that
  5.9101 ++they are the registers acceptable in floating point arithmetic
  5.9102 ++instructions.  However, this is of no concern to
  5.9103 ++HARD_REGNO_MODE_OK.  You handle it by writing the proper
  5.9104 ++constraints for those instructions.
  5.9105 ++
  5.9106 ++On some machines, the floating registers are especially slow to access,
  5.9107 ++so that it is better to store a value in a stack frame than in such a
  5.9108 ++register if floating point arithmetic is not being done.  As long as the
  5.9109 ++floating registers are not in class GENERAL_REGS, they will not
  5.9110 ++be used unless some pattern's constraint asks for one.
  5.9111 ++*/
  5.9112 ++#define HARD_REGNO_MODE_OK(REGNO, MODE) avr32_hard_regno_mode_ok(REGNO, MODE)
  5.9113 ++
  5.9114 ++/*
  5.9115 ++A C expression that is nonzero if a value of mode
  5.9116 ++MODE1 is accessible in mode MODE2 without copying.
  5.9117 ++
  5.9118 ++If HARD_REGNO_MODE_OK(R, MODE1) and
  5.9119 ++HARD_REGNO_MODE_OK(R, MODE2) are always the same for
  5.9120 ++any R, then MODES_TIEABLE_P(MODE1, MODE2)
  5.9121 ++should be nonzero.  If they differ for any R, you should define
  5.9122 ++this macro to return zero unless some other mechanism ensures the
  5.9123 ++accessibility of the value in a narrower mode.
  5.9124 ++
  5.9125 ++You should define this macro to return nonzero in as many cases as
  5.9126 ++possible since doing so will allow GCC to perform better register
  5.9127 ++allocation.
  5.9128 ++*/
  5.9129 ++#define MODES_TIEABLE_P(MODE1, MODE2)  \
  5.9130 ++  (GET_MODE_CLASS (MODE1) == GET_MODE_CLASS (MODE2))
  5.9131 ++
  5.9132 ++
  5.9133 ++
  5.9134 ++/******************************************************************************
  5.9135 ++ * Register Classes
  5.9136 ++ *****************************************************************************/
  5.9137 ++
  5.9138 ++/*
  5.9139 ++An enumeral type that must be defined with all the register class names
  5.9140 ++as enumeral values.  NO_REGS must be first.  ALL_REGS
  5.9141 ++must be the last register class, followed by one more enumeral value,
  5.9142 ++LIM_REG_CLASSES, which is not a register class but rather
  5.9143 ++tells how many classes there are.
  5.9144 ++
  5.9145 ++Each register class has a number, which is the value of casting
  5.9146 ++the class name to type int.  The number serves as an index
  5.9147 ++in many of the tables described below.
  5.9148 ++*/
  5.9149 ++enum reg_class
  5.9150 ++{
  5.9151 ++  NO_REGS,
  5.9152 ++  GENERAL_REGS,
  5.9153 ++  FP_REGS,
  5.9154 ++  ALL_REGS,
  5.9155 ++  LIM_REG_CLASSES
  5.9156 ++};
  5.9157 ++
  5.9158 ++/*
  5.9159 ++The number of distinct register classes, defined as follows:
  5.9160 ++  #define N_REG_CLASSES (int) LIM_REG_CLASSES
  5.9161 ++*/
  5.9162 ++#define N_REG_CLASSES (int)LIM_REG_CLASSES
  5.9163 ++
  5.9164 ++/*
  5.9165 ++An initializer containing the names of the register classes as C string
  5.9166 ++constants.  These names are used in writing some of the debugging dumps.
  5.9167 ++*/
  5.9168 ++#define REG_CLASS_NAMES		\
  5.9169 ++{				\
  5.9170 ++  "NO_REGS",			\
  5.9171 ++  "GENERAL_REGS",		\
  5.9172 ++  "FLOATING_POINT_REGS",	\
  5.9173 ++  "ALL_REGS"			\
  5.9174 ++}
  5.9175 ++
  5.9176 ++/*
  5.9177 ++An initializer containing the contents of the register classes, as integers
  5.9178 ++which are bit masks.  The nth integer specifies the contents of class
  5.9179 ++n.  The way the integer mask is interpreted is that
  5.9180 ++register r is in the class if mask & (1 << r) is 1.
  5.9181 ++
  5.9182 ++When the machine has more than 32 registers, an integer does not suffice.
  5.9183 ++Then the integers are replaced by sub-initializers, braced groupings containing
  5.9184 ++several integers.  Each sub-initializer must be suitable as an initializer
  5.9185 ++for the type HARD_REG_SET which is defined in hard-reg-set.h.
  5.9186 ++In this situation, the first integer in each sub-initializer corresponds to
  5.9187 ++registers 0 through 31, the second integer to registers 32 through 63, and
  5.9188 ++so on.
  5.9189 ++*/
  5.9190 ++#define REG_CLASS_CONTENTS {		\
  5.9191 ++  {0x00000000}, /* NO_REGS */		\
  5.9192 ++  {0x0000FFFF}, /* GENERAL_REGS */	\
  5.9193 ++  {0xFFFF0000}, /* FP_REGS */		\
  5.9194 ++  {0x7FFFFFFF}, /* ALL_REGS */		\
  5.9195 ++}
  5.9196 ++
  5.9197 ++
  5.9198 ++/*
  5.9199 ++A C expression whose value is a register class containing hard register
  5.9200 ++REGNO.  In general there is more than one such class; choose a class
  5.9201 ++which is minimal, meaning that no smaller class also contains the
  5.9202 ++register.
  5.9203 ++*/
  5.9204 ++#define REGNO_REG_CLASS(REGNO) ((REGNO < 16) ? GENERAL_REGS : FP_REGS)
  5.9205 ++
  5.9206 ++/*
  5.9207 ++A macro whose definition is the name of the class to which a valid
  5.9208 ++base register must belong.  A base register is one used in an address
  5.9209 ++which is the register value plus a displacement.
  5.9210 ++*/
  5.9211 ++#define BASE_REG_CLASS GENERAL_REGS
  5.9212 ++
  5.9213 ++/*
  5.9214 ++This is a variation of the BASE_REG_CLASS macro which allows
  5.9215 ++the selection of a base register in a mode depenedent manner.  If
  5.9216 ++mode is VOIDmode then it should return the same value as
  5.9217 ++BASE_REG_CLASS.
  5.9218 ++*/
  5.9219 ++#define MODE_BASE_REG_CLASS(MODE) BASE_REG_CLASS
  5.9220 ++
  5.9221 ++/*
  5.9222 ++A macro whose definition is the name of the class to which a valid
  5.9223 ++index register must belong.  An index register is one used in an
  5.9224 ++address where its value is either multiplied by a scale factor or
  5.9225 ++added to another register (as well as added to a displacement).
  5.9226 ++*/
  5.9227 ++#define INDEX_REG_CLASS BASE_REG_CLASS
  5.9228 ++
  5.9229 ++/*
  5.9230 ++A C expression which defines the machine-dependent operand constraint
  5.9231 ++letters for register classes.  If CHAR is such a letter, the
  5.9232 ++value should be the register class corresponding to it.  Otherwise,
  5.9233 ++the value should be NO_REGS.  The register letter r,
  5.9234 ++corresponding to class GENERAL_REGS, will not be passed
  5.9235 ++to this macro; you do not need to handle it.
  5.9236 ++*/
  5.9237 ++#define REG_CLASS_FROM_LETTER(CHAR) ((CHAR) == 'f' ? FP_REGS : NO_REGS)
  5.9238 ++
  5.9239 ++
  5.9240 ++/* These assume that REGNO is a hard or pseudo reg number.
  5.9241 ++   They give nonzero only if REGNO is a hard reg of the suitable class
  5.9242 ++   or a pseudo reg currently allocated to a suitable hard reg.
  5.9243 ++   Since they use reg_renumber, they are safe only once reg_renumber
  5.9244 ++   has been allocated, which happens in local-alloc.c.  */
  5.9245 ++#define TEST_REGNO(R, TEST, VALUE) \
  5.9246 ++  ((R TEST VALUE) || ((unsigned) reg_renumber[R] TEST VALUE))
  5.9247 ++
  5.9248 ++/*
  5.9249 ++A C expression which is nonzero if register number num is suitable for use as a base
  5.9250 ++register in operand addresses. It may be either a suitable hard register or a pseudo
  5.9251 ++register that has been allocated such a hard register.
  5.9252 ++*/
  5.9253 ++#define REGNO_OK_FOR_BASE_P(NUM)  TEST_REGNO(NUM, <=, LAST_REGNUM)
  5.9254 ++
  5.9255 ++/*
  5.9256 ++A C expression which is nonzero if register number NUM is
  5.9257 ++suitable for use as an index register in operand addresses.  It may be
  5.9258 ++either a suitable hard register or a pseudo register that has been
  5.9259 ++allocated such a hard register.
  5.9260 ++
  5.9261 ++The difference between an index register and a base register is that
  5.9262 ++the index register may be scaled.  If an address involves the sum of
  5.9263 ++two registers, neither one of them scaled, then either one may be
  5.9264 ++labeled the ``base'' and the other the ``index''; but whichever
  5.9265 ++labeling is used must fit the machine's constraints of which registers
  5.9266 ++may serve in each capacity.  The compiler will try both labelings,
  5.9267 ++looking for one that is valid, and will reload one or both registers
  5.9268 ++only if neither labeling works.
  5.9269 ++*/
  5.9270 ++#define REGNO_OK_FOR_INDEX_P(NUM) TEST_REGNO(NUM, <=, LAST_REGNUM)
  5.9271 ++
  5.9272 ++/*
  5.9273 ++A C expression that places additional restrictions on the register class
  5.9274 ++to use when it is necessary to copy value X into a register in class
  5.9275 ++CLASS.  The value is a register class; perhaps CLASS, or perhaps
  5.9276 ++another, smaller class.  On many machines, the following definition is
  5.9277 ++safe: #define PREFERRED_RELOAD_CLASS(X,CLASS) CLASS
  5.9278 ++
  5.9279 ++Sometimes returning a more restrictive class makes better code.  For
  5.9280 ++example, on the 68000, when X is an integer constant that is in range
  5.9281 ++for a 'moveq' instruction, the value of this macro is always
  5.9282 ++DATA_REGS as long as CLASS includes the data registers.
  5.9283 ++Requiring a data register guarantees that a 'moveq' will be used.
  5.9284 ++
  5.9285 ++If X is a const_double, by returning NO_REGS
  5.9286 ++you can force X into a memory constant.  This is useful on
  5.9287 ++certain machines where immediate floating values cannot be loaded into
  5.9288 ++certain kinds of registers.
  5.9289 ++*/
  5.9290 ++#define PREFERRED_RELOAD_CLASS(X, CLASS)  CLASS
  5.9291 ++
  5.9292 ++
  5.9293 ++
  5.9294 ++/*
  5.9295 ++A C expression for the maximum number of consecutive registers
  5.9296 ++of class CLASS needed to hold a value of mode MODE.
  5.9297 ++
  5.9298 ++This is closely related to the macro HARD_REGNO_NREGS.  In fact,
  5.9299 ++the value of the macro CLASS_MAX_NREGS(CLASS, MODE)
  5.9300 ++should be the maximum value of HARD_REGNO_NREGS(REGNO, MODE)
  5.9301 ++for all REGNO values in the class CLASS.
  5.9302 ++
  5.9303 ++This macro helps control the handling of multiple-word values
  5.9304 ++in the reload pass.
  5.9305 ++*/
  5.9306 ++#define CLASS_MAX_NREGS(CLASS, MODE) /* ToDo:fixme */ \
  5.9307 ++  (unsigned int)((GET_MODE_SIZE(MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
  5.9308 ++
  5.9309 ++
  5.9310 ++/*
  5.9311 ++  Using CONST_OK_FOR_CONSTRAINT_P instead of CONS_OK_FOR_LETTER_P
  5.9312 ++  in order to support constraints with more than one letter.
  5.9313 ++  Only two letters are then used for constant constraints,
  5.9314 ++  the letter 'K' and the letter 'I'. The constraint starting with
  5.9315 ++  these letters must consist of four characters. The character following
  5.9316 ++  'K' or 'I' must be either 'u' (unsigned) or 's' (signed) to specify
  5.9317 ++  if the constant is zero or sign extended. The last two characters specify
  5.9318 ++  the length in bits of the constant. The base constraint letter 'I' means
  5.9319 ++  that this is an negated constant, meaning that actually -VAL should be
  5.9320 ++  checked to lie withing the valid range instead of VAL which is used when
  5.9321 ++  'K' is the base constraint letter.
  5.9322 ++
  5.9323 ++*/
  5.9324 ++
  5.9325 ++#define CONSTRAINT_LEN(C, STR)				\
  5.9326 ++  ( ((C) == 'K' || (C) == 'I') ?  4 :			\
  5.9327 ++    ((C) == 'R') ?  5 :					\
  5.9328 ++    ((C) == 'P') ? -1 :                                 \
  5.9329 ++    DEFAULT_CONSTRAINT_LEN((C), (STR)) )
  5.9330 ++
  5.9331 ++#define CONST_OK_FOR_CONSTRAINT_P(VALUE, C, STR)	\
  5.9332 ++  avr32_const_ok_for_constraint_p(VALUE, C, STR)
  5.9333 ++
  5.9334 ++/*
  5.9335 ++A C expression that defines the machine-dependent operand constraint
  5.9336 ++letters that specify particular ranges of const_double values ('G' or 'H').
  5.9337 ++
  5.9338 ++If C is one of those letters, the expression should check that
  5.9339 ++VALUE, an RTX of code const_double, is in the appropriate
  5.9340 ++range and return 1 if so, 0 otherwise.  If C is not one of those
  5.9341 ++letters, the value should be 0 regardless of VALUE.
  5.9342 ++
  5.9343 ++const_double is used for all floating-point constants and for
  5.9344 ++DImode fixed-point constants.  A given letter can accept either
  5.9345 ++or both kinds of values.  It can use GET_MODE to distinguish
  5.9346 ++between these kinds.
  5.9347 ++*/
  5.9348 ++#define CONST_DOUBLE_OK_FOR_LETTER_P(OP, C) \
  5.9349 ++  ((C) == 'G' ? avr32_const_double_immediate(OP) : 0)
  5.9350 ++
  5.9351 ++/*
  5.9352 ++A C expression that defines the optional machine-dependent constraint
  5.9353 ++letters that can be used to segregate specific types of operands, usually
  5.9354 ++memory references, for the target machine.  Any letter that is not
  5.9355 ++elsewhere defined and not matched by REG_CLASS_FROM_LETTER
  5.9356 ++may be used.  Normally this macro will not be defined.
  5.9357 ++
  5.9358 ++If it is required for a particular target machine, it should return 1
  5.9359 ++if VALUE corresponds to the operand type represented by the
  5.9360 ++constraint letter C.  If C is not defined as an extra
  5.9361 ++constraint, the value returned should be 0 regardless of VALUE.
  5.9362 ++
  5.9363 ++For example, on the ROMP, load instructions cannot have their output
  5.9364 ++in r0 if the memory reference contains a symbolic address.  Constraint
  5.9365 ++letter 'Q' is defined as representing a memory address that does
  5.9366 ++not contain a symbolic address.  An alternative is specified with
  5.9367 ++a 'Q' constraint on the input and 'r' on the output.  The next
  5.9368 ++alternative specifies 'm' on the input and a register class that
  5.9369 ++does not include r0 on the output.
  5.9370 ++*/
  5.9371 ++#define EXTRA_CONSTRAINT_STR(OP, C, STR)				\
  5.9372 ++  ((C) == 'W' ? avr32_address_operand(OP, GET_MODE(OP)) :		\
  5.9373 ++   (C) == 'R' ? (avr32_indirect_register_operand(OP, GET_MODE(OP)) ||	\
  5.9374 ++                 (avr32_imm_disp_memory_operand(OP, GET_MODE(OP))	\
  5.9375 ++                  && avr32_const_ok_for_constraint_p(			\
  5.9376 ++				INTVAL(XEXP(XEXP(OP, 0), 1)),		\
  5.9377 ++				(STR)[1], &(STR)[1]))) :		\
  5.9378 ++   (C) == 'S' ? avr32_indexed_memory_operand(OP, GET_MODE(OP)) :	\
  5.9379 ++   (C) == 'T' ? avr32_const_pool_ref_operand(OP, GET_MODE(OP)) :	\
  5.9380 ++   (C) == 'U' ? SYMBOL_REF_RCALL_FUNCTION_P(OP) :			\
  5.9381 ++   (C) == 'Z' ? avr32_cop_memory_operand(OP, GET_MODE(OP)) :		\
  5.9382 ++   (C) == 'Q' ? avr32_non_rmw_memory_operand(OP, GET_MODE(OP)) :		\
  5.9383 ++   (C) == 'Y' ? avr32_rmw_memory_operand(OP, GET_MODE(OP)) :            \
  5.9384 ++   0)
  5.9385 ++
  5.9386 ++
  5.9387 ++#define EXTRA_MEMORY_CONSTRAINT(C, STR) ( ((C) == 'R') ||               \
  5.9388 ++                                          ((C) == 'Q') ||               \
  5.9389 ++                                          ((C) == 'S') ||               \
  5.9390 ++                                          ((C) == 'Y') ||               \
  5.9391 ++                                          ((C) == 'Z') )
  5.9392 ++
  5.9393 ++
  5.9394 ++/* Returns nonzero if op is a function SYMBOL_REF which
  5.9395 ++   can be called using an rcall instruction */
  5.9396 ++#define SYMBOL_REF_RCALL_FUNCTION_P(op)  \
  5.9397 ++  ( GET_CODE(op) == SYMBOL_REF           \
  5.9398 ++    && SYMBOL_REF_FUNCTION_P(op)         \
  5.9399 ++    && SYMBOL_REF_LOCAL_P(op)            \
  5.9400 ++    && !SYMBOL_REF_EXTERNAL_P(op)        \
  5.9401 ++    && !TARGET_HAS_ASM_ADDR_PSEUDOS )
  5.9402 ++
  5.9403 ++/******************************************************************************
  5.9404 ++ * Stack Layout and Calling Conventions
  5.9405 ++ *****************************************************************************/
  5.9406 ++
  5.9407 ++/** Basic Stack Layout **/
  5.9408 ++
  5.9409 ++/*
  5.9410 ++Define this macro if pushing a word onto the stack moves the stack
  5.9411 ++pointer to a smaller address.
  5.9412 ++
  5.9413 ++When we say, ``define this macro if ...,'' it means that the
  5.9414 ++compiler checks this macro only with #ifdef so the precise
  5.9415 ++definition used does not matter.
  5.9416 ++*/
  5.9417 ++/* pushm decrece SP: *(--SP) <-- Rx */
  5.9418 ++#define STACK_GROWS_DOWNWARD
  5.9419 ++
  5.9420 ++/*
  5.9421 ++This macro defines the operation used when something is pushed
  5.9422 ++on the stack.  In RTL, a push operation will be
  5.9423 ++(set (mem (STACK_PUSH_CODE (reg sp))) ...)
  5.9424 ++
  5.9425 ++The choices are PRE_DEC, POST_DEC, PRE_INC,
  5.9426 ++and POST_INC.  Which of these is correct depends on
  5.9427 ++the stack direction and on whether the stack pointer points
  5.9428 ++to the last item on the stack or whether it points to the
  5.9429 ++space for the next item on the stack.
  5.9430 ++
  5.9431 ++The default is PRE_DEC when STACK_GROWS_DOWNWARD is
  5.9432 ++defined, which is almost always right, and PRE_INC otherwise,
  5.9433 ++which is often wrong.
  5.9434 ++*/
  5.9435 ++/* pushm: *(--SP) <-- Rx */
  5.9436 ++#define STACK_PUSH_CODE PRE_DEC
  5.9437 ++
  5.9438 ++/* Define this to nonzero if the nominal address of the stack frame
  5.9439 ++   is at the high-address end of the local variables;
  5.9440 ++   that is, each additional local variable allocated
  5.9441 ++   goes at a more negative offset in the frame.  */
  5.9442 ++#define FRAME_GROWS_DOWNWARD 1
  5.9443 ++
  5.9444 ++
  5.9445 ++/*
  5.9446 ++Offset from the frame pointer to the first local variable slot to be allocated.
  5.9447 ++
  5.9448 ++If FRAME_GROWS_DOWNWARD, find the next slot's offset by
  5.9449 ++subtracting the first slot's length from STARTING_FRAME_OFFSET.
  5.9450 ++Otherwise, it is found by adding the length of the first slot to the
  5.9451 ++value STARTING_FRAME_OFFSET.
  5.9452 ++  (i'm not sure if the above is still correct.. had to change it to get
  5.9453 ++   rid of an overfull.  --mew 2feb93 )
  5.9454 ++*/
  5.9455 ++#define STARTING_FRAME_OFFSET 0
  5.9456 ++
  5.9457 ++/*
  5.9458 ++Offset from the stack pointer register to the first location at which
  5.9459 ++outgoing arguments are placed.  If not specified, the default value of
  5.9460 ++zero is used.  This is the proper value for most machines.
  5.9461 ++
  5.9462 ++If ARGS_GROW_DOWNWARD, this is the offset to the location above
  5.9463 ++the first location at which outgoing arguments are placed.
  5.9464 ++*/
  5.9465 ++#define STACK_POINTER_OFFSET 0
  5.9466 ++
  5.9467 ++/*
  5.9468 ++Offset from the argument pointer register to the first argument's
  5.9469 ++address.  On some machines it may depend on the data type of the
  5.9470 ++function.
  5.9471 ++
  5.9472 ++If ARGS_GROW_DOWNWARD, this is the offset to the location above
  5.9473 ++the first argument's address.
  5.9474 ++*/
  5.9475 ++#define FIRST_PARM_OFFSET(FUNDECL) 0
  5.9476 ++
  5.9477 ++
  5.9478 ++/*
  5.9479 ++A C expression whose value is RTL representing the address in a stack
  5.9480 ++frame where the pointer to the caller's frame is stored.  Assume that
  5.9481 ++FRAMEADDR is an RTL expression for the address of the stack frame
  5.9482 ++itself.
  5.9483 ++
  5.9484 ++If you don't define this macro, the default is to return the value
  5.9485 ++of FRAMEADDR - that is, the stack frame address is also the
  5.9486 ++address of the stack word that points to the previous frame.
  5.9487 ++*/
  5.9488 ++#define DYNAMIC_CHAIN_ADDRESS(FRAMEADDR) plus_constant ((FRAMEADDR), 4)
  5.9489 ++
  5.9490 ++
  5.9491 ++/*
  5.9492 ++A C expression whose value is RTL representing the value of the return
  5.9493 ++address for the frame COUNT steps up from the current frame, after
  5.9494 ++the prologue.  FRAMEADDR is the frame pointer of the COUNT
  5.9495 ++frame, or the frame pointer of the COUNT - 1 frame if
  5.9496 ++RETURN_ADDR_IN_PREVIOUS_FRAME is defined.
  5.9497 ++
  5.9498 ++The value of the expression must always be the correct address when
  5.9499 ++COUNT is zero, but may be NULL_RTX if there is not way to
  5.9500 ++determine the return address of other frames.
  5.9501 ++*/
  5.9502 ++#define RETURN_ADDR_RTX(COUNT, FRAMEADDR) avr32_return_addr(COUNT, FRAMEADDR)
  5.9503 ++
  5.9504 ++
  5.9505 ++/*
  5.9506 ++A C expression whose value is RTL representing the location of the
  5.9507 ++incoming return address at the beginning of any function, before the
  5.9508 ++prologue.  This RTL is either a REG, indicating that the return
  5.9509 ++value is saved in 'REG', or a MEM representing a location in
  5.9510 ++the stack.
  5.9511 ++
  5.9512 ++You only need to define this macro if you want to support call frame
  5.9513 ++debugging information like that provided by DWARF 2.
  5.9514 ++
  5.9515 ++If this RTL is a REG, you should also define
  5.9516 ++DWARF_FRAME_RETURN_COLUMN to DWARF_FRAME_REGNUM (REGNO).
  5.9517 ++*/
  5.9518 ++#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, LR_REGNUM)
  5.9519 ++
  5.9520 ++
  5.9521 ++
  5.9522 ++/*
  5.9523 ++A C expression whose value is an integer giving the offset, in bytes,
  5.9524 ++from the value of the stack pointer register to the top of the stack
  5.9525 ++frame at the beginning of any function, before the prologue.  The top of
  5.9526 ++the frame is defined to be the value of the stack pointer in the
  5.9527 ++previous frame, just before the call instruction.
  5.9528 ++
  5.9529 ++You only need to define this macro if you want to support call frame
  5.9530 ++debugging information like that provided by DWARF 2.
  5.9531 ++*/
  5.9532 ++#define INCOMING_FRAME_SP_OFFSET 0
  5.9533 ++
  5.9534 ++
  5.9535 ++/** Exception Handling Support **/
  5.9536 ++
  5.9537 ++/* Use setjump/longjump for exception handling. */
  5.9538 ++#define DWARF2_UNWIND_INFO 0
  5.9539 ++#define MUST_USE_SJLJ_EXCEPTIONS 1
  5.9540 ++
  5.9541 ++/*
  5.9542 ++A C expression whose value is the Nth register number used for
  5.9543 ++data by exception handlers, or INVALID_REGNUM if fewer than
  5.9544 ++N registers are usable.
  5.9545 ++
  5.9546 ++The exception handling library routines communicate with the exception
  5.9547 ++handlers via a set of agreed upon registers.  Ideally these registers
  5.9548 ++should be call-clobbered; it is possible to use call-saved registers,
  5.9549 ++but may negatively impact code size.  The target must support at least
  5.9550 ++2 data registers, but should define 4 if there are enough free registers.
  5.9551 ++
  5.9552 ++You must define this macro if you want to support call frame exception
  5.9553 ++handling like that provided by DWARF 2.
  5.9554 ++*/
  5.9555 ++/*
  5.9556 ++  Use r9-r11
  5.9557 ++*/
  5.9558 ++#define EH_RETURN_DATA_REGNO(N)                                         \
  5.9559 ++  ((N<3) ? INTERNAL_REGNUM(N+9) : INVALID_REGNUM)
  5.9560 ++
  5.9561 ++/*
  5.9562 ++A C expression whose value is RTL representing a location in which
  5.9563 ++to store a stack adjustment to be applied before function return.
  5.9564 ++This is used to unwind the stack to an exception handler's call frame.
  5.9565 ++It will be assigned zero on code paths that return normally.
  5.9566 ++
  5.9567 ++Typically this is a call-clobbered hard register that is otherwise
  5.9568 ++untouched by the epilogue, but could also be a stack slot.
  5.9569 ++
  5.9570 ++You must define this macro if you want to support call frame exception
  5.9571 ++handling like that provided by DWARF 2.
  5.9572 ++*/
  5.9573 ++/*
  5.9574 ++  Use r8
  5.9575 ++*/
  5.9576 ++#define EH_RETURN_STACKADJ_REGNO INTERNAL_REGNUM(8)
  5.9577 ++#define EH_RETURN_STACKADJ_RTX gen_rtx_REG(SImode, EH_RETURN_STACKADJ_REGNO)
  5.9578 ++
  5.9579 ++/*
  5.9580 ++A C expression whose value is RTL representing a location in which
  5.9581 ++to store the address of an exception handler to which we should
  5.9582 ++return.  It will not be assigned on code paths that return normally.
  5.9583 ++
  5.9584 ++Typically this is the location in the call frame at which the normal
  5.9585 ++return address is stored.  For targets that return by popping an
  5.9586 ++address off the stack, this might be a memory address just below
  5.9587 ++the target call frame rather than inside the current call
  5.9588 ++frame.  EH_RETURN_STACKADJ_RTX will have already been assigned,
  5.9589 ++so it may be used to calculate the location of the target call frame.
  5.9590 ++
  5.9591 ++Some targets have more complex requirements than storing to an
  5.9592 ++address calculable during initial code generation.  In that case
  5.9593 ++the eh_return instruction pattern should be used instead.
  5.9594 ++
  5.9595 ++If you want to support call frame exception handling, you must
  5.9596 ++define either this macro or the eh_return instruction pattern.
  5.9597 ++*/
  5.9598 ++/*
  5.9599 ++  We define the eh_return instruction pattern, so this isn't needed.
  5.9600 ++*/
  5.9601 ++/* #define EH_RETURN_HANDLER_RTX gen_rtx_REG(Pmode, RET_REGISTER) */
  5.9602 ++
  5.9603 ++/*
  5.9604 ++  This macro chooses the encoding of pointers embedded in the
  5.9605 ++  exception handling sections. If at all possible, this should be
  5.9606 ++  defined such that the exception handling section will not require
  5.9607 ++  dynamic relocations, and so may be read-only.
  5.9608 ++
  5.9609 ++  code is 0 for data, 1 for code labels, 2 for function
  5.9610 ++  pointers. global is true if the symbol may be affected by dynamic
  5.9611 ++  relocations. The macro should return a combination of the DW_EH_PE_*
  5.9612 ++  defines as found in dwarf2.h.
  5.9613 ++
  5.9614 ++  If this macro is not defined, pointers will not be encoded but
  5.9615 ++  represented directly.
  5.9616 ++*/
  5.9617 ++#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL)	\
  5.9618 ++  ((flag_pic && (GLOBAL) ? DW_EH_PE_indirect : 0)	\
  5.9619 ++   | (flag_pic ? DW_EH_PE_pcrel : DW_EH_PE_absptr)	\
  5.9620 ++   | DW_EH_PE_sdata4)
  5.9621 ++
  5.9622 ++/* ToDo: The rest of this subsection */
  5.9623 ++
  5.9624 ++/** Specifying How Stack Checking is Done **/
  5.9625 ++/* ToDo: All in this subsection */
  5.9626 ++
  5.9627 ++/** Registers That Address the Stack Frame **/
  5.9628 ++
  5.9629 ++/*
  5.9630 ++The register number of the stack pointer register, which must also be a
  5.9631 ++fixed register according to FIXED_REGISTERS.  On most machines,
  5.9632 ++the hardware determines which register this is.
  5.9633 ++*/
  5.9634 ++/* Using r13 as stack pointer. */
  5.9635 ++#define STACK_POINTER_REGNUM INTERNAL_REGNUM(13)
  5.9636 ++
  5.9637 ++/*
  5.9638 ++The register number of the frame pointer register, which is used to
  5.9639 ++access automatic variables in the stack frame.  On some machines, the
  5.9640 ++hardware determines which register this is.  On other machines, you can
  5.9641 ++choose any register you wish for this purpose.
  5.9642 ++*/
  5.9643 ++/* Use r7 */
  5.9644 ++#define FRAME_POINTER_REGNUM INTERNAL_REGNUM(7)
  5.9645 ++
  5.9646 ++
  5.9647 ++
  5.9648 ++/*
  5.9649 ++The register number of the arg pointer register, which is used to access
  5.9650 ++the function's argument list.  On some machines, this is the same as the
  5.9651 ++frame pointer register.  On some machines, the hardware determines which
  5.9652 ++register this is.  On other machines, you can choose any register you
  5.9653 ++wish for this purpose.  If this is not the same register as the frame
  5.9654 ++pointer register, then you must mark it as a fixed register according to
  5.9655 ++FIXED_REGISTERS, or arrange to be able to eliminate it (see Section
  5.9656 ++10.10.5 [Elimination], page 224).
  5.9657 ++*/
  5.9658 ++/* Using r5 */
  5.9659 ++#define ARG_POINTER_REGNUM INTERNAL_REGNUM(4)
  5.9660 ++
  5.9661 ++
  5.9662 ++/*
  5.9663 ++Register numbers used for passing a function's static chain pointer.  If
  5.9664 ++register windows are used, the register number as seen by the called
  5.9665 ++function is STATIC_CHAIN_INCOMING_REGNUM, while the register
  5.9666 ++number as seen by the calling function is STATIC_CHAIN_REGNUM.  If
  5.9667 ++these registers are the same, STATIC_CHAIN_INCOMING_REGNUM need
  5.9668 ++not be defined.
  5.9669 ++
  5.9670 ++The static chain register need not be a fixed register.
  5.9671 ++
  5.9672 ++If the static chain is passed in memory, these macros should not be
  5.9673 ++defined; instead, the next two macros should be defined.
  5.9674 ++*/
  5.9675 ++/* Using r0 */
  5.9676 ++#define STATIC_CHAIN_REGNUM INTERNAL_REGNUM(0)
  5.9677 ++
  5.9678 ++
  5.9679 ++/** Eliminating Frame Pointer and Arg Pointer **/
  5.9680 ++
  5.9681 ++/*
  5.9682 ++A C expression which is nonzero if a function must have and use a frame
  5.9683 ++pointer.  This expression is evaluated  in the reload pass.  If its value is
  5.9684 ++nonzero the function will have a frame pointer.
  5.9685 ++
  5.9686 ++The expression can in principle examine the current function and decide
  5.9687 ++according to the facts, but on most machines the constant 0 or the
  5.9688 ++constant 1 suffices.  Use 0 when the machine allows code to be generated
  5.9689 ++with no frame pointer, and doing so saves some time or space.  Use 1
  5.9690 ++when there is no possible advantage to avoiding a frame pointer.
  5.9691 ++
  5.9692 ++In certain cases, the compiler does not know how to produce valid code
  5.9693 ++without a frame pointer.  The compiler recognizes those cases and
  5.9694 ++automatically gives the function a frame pointer regardless of what
  5.9695 ++FRAME_POINTER_REQUIRED says.  You don't need to worry about
  5.9696 ++them.
  5.9697 ++
  5.9698 ++In a function that does not require a frame pointer, the frame pointer
  5.9699 ++register can be allocated for ordinary usage, unless you mark it as a
  5.9700 ++fixed register.  See FIXED_REGISTERS for more information.
  5.9701 ++*/
  5.9702 ++/* We need the frame pointer when compiling for profiling */
  5.9703 ++#define FRAME_POINTER_REQUIRED (current_function_profile)
  5.9704 ++
  5.9705 ++/*
  5.9706 ++A C statement to store in the variable DEPTH_VAR the difference
  5.9707 ++between the frame pointer and the stack pointer values immediately after
  5.9708 ++the function prologue.  The value would be computed from information
  5.9709 ++such as the result of get_frame_size () and the tables of
  5.9710 ++registers regs_ever_live and call_used_regs.
  5.9711 ++
  5.9712 ++If ELIMINABLE_REGS is defined, this macro will be not be used and
  5.9713 ++need not be defined.  Otherwise, it must be defined even if
  5.9714 ++FRAME_POINTER_REQUIRED is defined to always be true; in that
  5.9715 ++case, you may set DEPTH_VAR to anything.
  5.9716 ++*/
  5.9717 ++#define INITIAL_FRAME_POINTER_OFFSET(DEPTH_VAR) ((DEPTH_VAR) = get_frame_size())
  5.9718 ++
  5.9719 ++/*
  5.9720 ++If defined, this macro specifies a table of register pairs used to
  5.9721 ++eliminate unneeded registers that point into the stack frame.  If it is not
  5.9722 ++defined, the only elimination attempted by the compiler is to replace
  5.9723 ++references to the frame pointer with references to the stack pointer.
  5.9724 ++
  5.9725 ++The definition of this macro is a list of structure initializations, each
  5.9726 ++of which specifies an original and replacement register.
  5.9727 ++
  5.9728 ++On some machines, the position of the argument pointer is not known until
  5.9729 ++the compilation is completed.  In such a case, a separate hard register
  5.9730 ++must be used for the argument pointer.  This register can be eliminated by
  5.9731 ++replacing it with either the frame pointer or the argument pointer,
  5.9732 ++depending on whether or not the frame pointer has been eliminated.
  5.9733 ++
  5.9734 ++In this case, you might specify:
  5.9735 ++  #define ELIMINABLE_REGS  \
  5.9736 ++  {{ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
  5.9737 ++   {ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM}, \
  5.9738 ++   {FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}}
  5.9739 ++
  5.9740 ++Note that the elimination of the argument pointer with the stack pointer is
  5.9741 ++specified first since that is the preferred elimination.
  5.9742 ++*/
  5.9743 ++#define ELIMINABLE_REGS					\
  5.9744 ++{							\
  5.9745 ++  { FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM },	\
  5.9746 ++  { ARG_POINTER_REGNUM, STACK_POINTER_REGNUM },		\
  5.9747 ++  { ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM }		\
  5.9748 ++}
  5.9749 ++
  5.9750 ++/*
  5.9751 ++A C expression that returns nonzero if the compiler is allowed to try
  5.9752 ++to replace register number FROM with register number
  5.9753 ++TO.  This macro need only be defined if ELIMINABLE_REGS
  5.9754 ++is defined, and will usually be the constant 1, since most of the cases
  5.9755 ++preventing register elimination are things that the compiler already
  5.9756 ++knows about.
  5.9757 ++*/
  5.9758 ++#define CAN_ELIMINATE(FROM, TO) 1
  5.9759 ++
  5.9760 ++/*
  5.9761 ++This macro is similar to INITIAL_FRAME_POINTER_OFFSET.  It
  5.9762 ++specifies the initial difference between the specified pair of
  5.9763 ++registers.  This macro must be defined if ELIMINABLE_REGS is
  5.9764 ++defined.
  5.9765 ++*/
  5.9766 ++#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET)		\
  5.9767 ++  ((OFFSET) = avr32_initial_elimination_offset(FROM, TO))
  5.9768 ++
  5.9769 ++/** Passing Function Arguments on the Stack **/
  5.9770 ++
  5.9771 ++
  5.9772 ++/*
  5.9773 ++A C expression.  If nonzero, push insns will be used to pass
  5.9774 ++outgoing arguments.
  5.9775 ++If the target machine does not have a push instruction, set it to zero.
  5.9776 ++That directs GCC to use an alternate strategy: to
  5.9777 ++allocate the entire argument block and then store the arguments into
  5.9778 ++it.  When PUSH_ARGS is nonzero, PUSH_ROUNDING must be defined too.
  5.9779 ++*/
  5.9780 ++#define PUSH_ARGS 1
  5.9781 ++
  5.9782 ++
  5.9783 ++/*
  5.9784 ++A C expression that is the number of bytes actually pushed onto the
  5.9785 ++stack when an instruction attempts to push NPUSHED bytes.
  5.9786 ++
  5.9787 ++On some machines, the definition
  5.9788 ++
  5.9789 ++  #define PUSH_ROUNDING(BYTES) (BYTES)
  5.9790 ++
  5.9791 ++will suffice.  But on other machines, instructions that appear
  5.9792 ++to push one byte actually push two bytes in an attempt to maintain
  5.9793 ++alignment.  Then the definition should be
  5.9794 ++
  5.9795 ++  #define PUSH_ROUNDING(BYTES) (((BYTES) + 1) & ~1)
  5.9796 ++*/
  5.9797 ++/* Push 4 bytes at the time. */
  5.9798 ++#define PUSH_ROUNDING(NPUSHED) (((NPUSHED) + 3) & ~3)
  5.9799 ++
  5.9800 ++/*
  5.9801 ++A C expression.  If nonzero, the maximum amount of space required for
  5.9802 ++outgoing arguments will be computed and placed into the variable
  5.9803 ++current_function_outgoing_args_size.  No space will be pushed
  5.9804 ++onto the stack for each call; instead, the function prologue should
  5.9805 ++increase the stack frame size by this amount.
  5.9806 ++
  5.9807 ++Setting both PUSH_ARGS and ACCUMULATE_OUTGOING_ARGS is not proper.
  5.9808 ++*/
  5.9809 ++#define ACCUMULATE_OUTGOING_ARGS 0
  5.9810 ++
  5.9811 ++
  5.9812 ++
  5.9813 ++
  5.9814 ++/*
  5.9815 ++A C expression that should indicate the number of bytes of its own
  5.9816 ++arguments that a function pops on returning, or 0 if the
  5.9817 ++function pops no arguments and the caller must therefore pop them all
  5.9818 ++after the function returns.
  5.9819 ++
  5.9820 ++FUNDECL is a C variable whose value is a tree node that describes
  5.9821 ++the function in question.  Normally it is a node of type
  5.9822 ++FUNCTION_DECL that describes the declaration of the function.
  5.9823 ++From this you can obtain the DECL_ATTRIBUTES of the function.
  5.9824 ++
  5.9825 ++FUNTYPE is a C variable whose value is a tree node that
  5.9826 ++describes the function in question.  Normally it is a node of type
  5.9827 ++FUNCTION_TYPE that describes the data type of the function.
  5.9828 ++From this it is possible to obtain the data types of the value and
  5.9829 ++arguments (if known).
  5.9830 ++
  5.9831 ++When a call to a library function is being considered, FUNDECL
  5.9832 ++will contain an identifier node for the library function.  Thus, if
  5.9833 ++you need to distinguish among various library functions, you can do so
  5.9834 ++by their names.  Note that ``library function'' in this context means
  5.9835 ++a function used to perform arithmetic, whose name is known specially
  5.9836 ++in the compiler and was not mentioned in the C code being compiled.
  5.9837 ++
  5.9838 ++STACK_SIZE is the number of bytes of arguments passed on the
  5.9839 ++stack.  If a variable number of bytes is passed, it is zero, and
  5.9840 ++argument popping will always be the responsibility of the calling function.
  5.9841 ++
  5.9842 ++On the VAX, all functions always pop their arguments, so the definition
  5.9843 ++of this macro is STACK_SIZE.  On the 68000, using the standard
  5.9844 ++calling convention, no functions pop their arguments, so the value of
  5.9845 ++the macro is always 0 in this case.  But an alternative calling
  5.9846 ++convention is available in which functions that take a fixed number of
  5.9847 ++arguments pop them but other functions (such as printf) pop
  5.9848 ++nothing (the caller pops all).  When this convention is in use,
  5.9849 ++FUNTYPE is examined to determine whether a function takes a fixed
  5.9850 ++number of arguments.
  5.9851 ++*/
  5.9852 ++#define RETURN_POPS_ARGS(FUNDECL, FUNTYPE, STACK_SIZE) 0
  5.9853 ++
  5.9854 ++
  5.9855 ++/*Return true if this function can we use a single return instruction*/
  5.9856 ++#define USE_RETURN_INSN(ISCOND) avr32_use_return_insn(ISCOND)
  5.9857 ++
  5.9858 ++/*
  5.9859 ++A C expression that should indicate the number of bytes a call sequence
  5.9860 ++pops off the stack.  It is added to the value of RETURN_POPS_ARGS
  5.9861 ++when compiling a function call.
  5.9862 ++
  5.9863 ++CUM is the variable in which all arguments to the called function
  5.9864 ++have been accumulated.
  5.9865 ++
  5.9866 ++On certain architectures, such as the SH5, a call trampoline is used
  5.9867 ++that pops certain registers off the stack, depending on the arguments
  5.9868 ++that have been passed to the function.  Since this is a property of the
  5.9869 ++call site, not of the called function, RETURN_POPS_ARGS is not
  5.9870 ++appropriate.
  5.9871 ++*/
  5.9872 ++#define CALL_POPS_ARGS(CUM) 0
  5.9873 ++
  5.9874 ++/* Passing Arguments in Registers */
  5.9875 ++
  5.9876 ++/*
  5.9877 ++A C expression that controls whether a function argument is passed
  5.9878 ++in a register, and which register.
  5.9879 ++
  5.9880 ++The arguments are CUM, which summarizes all the previous
  5.9881 ++arguments; MODE, the machine mode of the argument; TYPE,
  5.9882 ++the data type of the argument as a tree node or 0 if that is not known
  5.9883 ++(which happens for C support library functions); and NAMED,
  5.9884 ++which is 1 for an ordinary argument and 0 for nameless arguments that
  5.9885 ++correspond to '...' in the called function's prototype.
  5.9886 ++TYPE can be an incomplete type if a syntax error has previously
  5.9887 ++occurred.
  5.9888 ++
  5.9889 ++The value of the expression is usually either a reg RTX for the
  5.9890 ++hard register in which to pass the argument, or zero to pass the
  5.9891 ++argument on the stack.
  5.9892 ++
  5.9893 ++For machines like the VAX and 68000, where normally all arguments are
  5.9894 ++pushed, zero suffices as a definition.
  5.9895 ++
  5.9896 ++The value of the expression can also be a parallel RTX.  This is
  5.9897 ++used when an argument is passed in multiple locations.  The mode of the
  5.9898 ++of the parallel should be the mode of the entire argument.  The
  5.9899 ++parallel holds any number of expr_list pairs; each one
  5.9900 ++describes where part of the argument is passed.  In each
  5.9901 ++expr_list the first operand must be a reg RTX for the hard
  5.9902 ++register in which to pass this part of the argument, and the mode of the
  5.9903 ++register RTX indicates how large this part of the argument is.  The
  5.9904 ++second operand of the expr_list is a const_int which gives
  5.9905 ++the offset in bytes into the entire argument of where this part starts.
  5.9906 ++As a special exception the first expr_list in the parallel
  5.9907 ++RTX may have a first operand of zero.  This indicates that the entire
  5.9908 ++argument is also stored on the stack.
  5.9909 ++
  5.9910 ++The last time this macro is called, it is called with MODE == VOIDmode,
  5.9911 ++and its result is passed to the call or call_value
  5.9912 ++pattern as operands 2 and 3 respectively.
  5.9913 ++
  5.9914 ++The usual way to make the ISO library 'stdarg.h' work on a machine
  5.9915 ++where some arguments are usually passed in registers, is to cause
  5.9916 ++nameless arguments to be passed on the stack instead.  This is done
  5.9917 ++by making FUNCTION_ARG return 0 whenever NAMED is 0.
  5.9918 ++
  5.9919 ++You may use the macro MUST_PASS_IN_STACK (MODE, TYPE)
  5.9920 ++in the definition of this macro to determine if this argument is of a
  5.9921 ++type that must be passed in the stack.  If REG_PARM_STACK_SPACE
  5.9922 ++is not defined and FUNCTION_ARG returns nonzero for such an
  5.9923 ++argument, the compiler will abort.  If REG_PARM_STACK_SPACE is
  5.9924 ++defined, the argument will be computed in the stack and then loaded into
  5.9925 ++a register.  */
  5.9926 ++
  5.9927 ++#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \
  5.9928 ++  avr32_function_arg(&(CUM), MODE, TYPE, NAMED)
  5.9929 ++
  5.9930 ++
  5.9931 ++
  5.9932 ++
  5.9933 ++/*
  5.9934 ++A C type for declaring a variable that is used as the first argument of
  5.9935 ++FUNCTION_ARG and other related values.  For some target machines,
  5.9936 ++the type int suffices and can hold the number of bytes of
  5.9937 ++argument so far.
  5.9938 ++
  5.9939 ++There is no need to record in CUMULATIVE_ARGS anything about the
  5.9940 ++arguments that have been passed on the stack.  The compiler has other
  5.9941 ++variables to keep track of that.  For target machines on which all
  5.9942 ++arguments are passed on the stack, there is no need to store anything in
  5.9943 ++CUMULATIVE_ARGS; however, the data structure must exist and
  5.9944 ++should not be empty, so use int.
  5.9945 ++*/
  5.9946 ++typedef struct avr32_args
  5.9947 ++{
  5.9948 ++  /* Index representing the argument register the current function argument
  5.9949 ++     will occupy */
  5.9950 ++  int index;
  5.9951 ++  /* A mask with bits representing the argument registers: if a bit is set
  5.9952 ++     then this register is used for an arguemnt */
  5.9953 ++  int used_index;
  5.9954 ++  /* TRUE if this function has anonymous arguments */
  5.9955 ++  int uses_anonymous_args;
  5.9956 ++  /* The size in bytes of the named arguments pushed on the stack */
  5.9957 ++  int stack_pushed_args_size;
  5.9958 ++  /* Set to true if this function needs a Return Value Pointer */
  5.9959 ++  int use_rvp;
  5.9960 ++
  5.9961 ++} CUMULATIVE_ARGS;
  5.9962 ++
  5.9963 ++
  5.9964 ++#define FIRST_CUM_REG_INDEX 0
  5.9965 ++#define LAST_CUM_REG_INDEX 4
  5.9966 ++#define GET_REG_INDEX(CUM) ((CUM)->index)
  5.9967 ++#define SET_REG_INDEX(CUM, INDEX) ((CUM)->index = (INDEX));
  5.9968 ++#define GET_USED_INDEX(CUM, INDEX) ((CUM)->used_index & (1 << (INDEX)))
  5.9969 ++#define SET_USED_INDEX(CUM, INDEX)		\
  5.9970 ++  do						\
  5.9971 ++    {						\
  5.9972 ++      if (INDEX >= 0)				\
  5.9973 ++        (CUM)->used_index |= (1 << (INDEX));	\
  5.9974 ++    }						\
  5.9975 ++  while (0)
  5.9976 ++#define SET_INDEXES_UNUSED(CUM) ((CUM)->used_index = 0)
  5.9977 ++
  5.9978 ++
  5.9979 ++/*
  5.9980 ++   A C statement (sans semicolon) for initializing the variable cum for the
  5.9981 ++   state at the beginning of the argument list. The variable has type
  5.9982 ++   CUMULATIVE_ARGS. The value of FNTYPE is the tree node for the data type of
  5.9983 ++   the function which will receive the args, or 0 if the args are to a compiler
  5.9984 ++   support library function. For direct calls that are not libcalls, FNDECL
  5.9985 ++   contain the declaration node of the function. FNDECL is also set when
  5.9986 ++   INIT_CUMULATIVE_ARGS is used to find arguments for the function being
  5.9987 ++   compiled.  N_NAMED_ARGS is set to the number of named arguments, including a
  5.9988 ++   structure return address if it is passed as a parameter, when making a call.
  5.9989 ++   When processing incoming arguments, N_NAMED_ARGS is set to -1.
  5.9990 ++
  5.9991 ++   When processing a call to a compiler support library function, LIBNAME
  5.9992 ++   identifies which one.  It is a symbol_ref rtx which contains the name of the
  5.9993 ++   function, as a string. LIBNAME is 0 when an ordinary C function call is
  5.9994 ++   being processed. Thus, each time this macro is called, either LIBNAME or
  5.9995 ++   FNTYPE is nonzero, but never both of them at once.
  5.9996 ++*/
  5.9997 ++#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, FNDECL, N_NAMED_ARGS) \
  5.9998 ++  avr32_init_cumulative_args(&(CUM), FNTYPE, LIBNAME, FNDECL)
  5.9999 ++
 5.10000 ++
 5.10001 ++/*
 5.10002 ++A C statement (sans semicolon) to update the summarizer variable
 5.10003 ++CUM to advance past an argument in the argument list.  The
 5.10004 ++values MODE, TYPE and NAMED describe that argument.
 5.10005 ++Once this is done, the variable CUM is suitable for analyzing
 5.10006 ++the following argument with FUNCTION_ARG, etc.
 5.10007 ++
 5.10008 ++This macro need not do anything if the argument in question was passed
 5.10009 ++on the stack.  The compiler knows how to track the amount of stack space
 5.10010 ++used for arguments without any special help.
 5.10011 ++*/
 5.10012 ++#define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \
 5.10013 ++  avr32_function_arg_advance(&(CUM), MODE, TYPE, NAMED)
 5.10014 ++
 5.10015 ++/*
 5.10016 ++If defined, a C expression which determines whether, and in which direction,
 5.10017 ++to pad out an argument with extra space.  The value should be of type
 5.10018 ++enum direction: either 'upward' to pad above the argument,
 5.10019 ++'downward' to pad below, or 'none' to inhibit padding.
 5.10020 ++
 5.10021 ++The amount of padding is always just enough to reach the next
 5.10022 ++multiple of FUNCTION_ARG_BOUNDARY; this macro does not control
 5.10023 ++it.
 5.10024 ++
 5.10025 ++This macro has a default definition which is right for most systems.
 5.10026 ++For little-endian machines, the default is to pad upward.  For
 5.10027 ++big-endian machines, the default is to pad downward for an argument of
 5.10028 ++constant size shorter than an int, and upward otherwise.
 5.10029 ++*/
 5.10030 ++#define FUNCTION_ARG_PADDING(MODE, TYPE) \
 5.10031 ++  avr32_function_arg_padding(MODE, TYPE)
 5.10032 ++
 5.10033 ++/*
 5.10034 ++  Specify padding for the last element of a block move between registers
 5.10035 ++  and memory. First is nonzero if this is the only element. Defining
 5.10036 ++  this macro allows better control of register function parameters on
 5.10037 ++  big-endian machines, without using PARALLEL rtl. In particular,
 5.10038 ++  MUST_PASS_IN_STACK need not test padding and mode of types in registers,
 5.10039 ++  as there is no longer a "wrong" part of a register; For example, a three
 5.10040 ++  byte aggregate may be passed in the high part of a register if so required.
 5.10041 ++*/
 5.10042 ++#define BLOCK_REG_PADDING(MODE, TYPE, FIRST) \
 5.10043 ++  avr32_function_arg_padding(MODE, TYPE)
 5.10044 ++
 5.10045 ++/*
 5.10046 ++If defined, a C expression which determines whether the default
 5.10047 ++implementation of va_arg will attempt to pad down before reading the
 5.10048 ++next argument, if that argument is smaller than its aligned space as
 5.10049 ++controlled by PARM_BOUNDARY.  If this macro is not defined, all such
 5.10050 ++arguments are padded down if BYTES_BIG_ENDIAN is true.
 5.10051 ++*/
 5.10052 ++#define PAD_VARARGS_DOWN \
 5.10053 ++  (FUNCTION_ARG_PADDING (TYPE_MODE (type), type) == downward)
 5.10054 ++
 5.10055 ++
 5.10056 ++/*
 5.10057 ++A C expression that is nonzero if REGNO is the number of a hard
 5.10058 ++register in which function arguments are sometimes passed.  This does
 5.10059 ++not include implicit arguments such as the static chain and
 5.10060 ++the structure-value address.  On many machines, no registers can be
 5.10061 ++used for this purpose since all function arguments are pushed on the
 5.10062 ++stack.
 5.10063 ++*/
 5.10064 ++/*
 5.10065 ++  Use r8 - r12 for function arguments.
 5.10066 ++*/
 5.10067 ++#define FUNCTION_ARG_REGNO_P(REGNO) \
 5.10068 ++  (REGNO >= 3 && REGNO <= 7)
 5.10069 ++
 5.10070 ++/* Number of registers used for passing function arguments */
 5.10071 ++#define NUM_ARG_REGS 5
 5.10072 ++
 5.10073 ++/*
 5.10074 ++If defined, the order in which arguments are loaded into their
 5.10075 ++respective argument registers is reversed so that the last
 5.10076 ++argument is loaded first.  This macro only affects arguments
 5.10077 ++passed in registers.
 5.10078 ++*/
 5.10079 ++/* #define LOAD_ARGS_REVERSED */
 5.10080 ++
 5.10081 ++/** How Scalar Function Values Are Returned **/
 5.10082 ++
 5.10083 ++/* AVR32 is using r12 as return register. */
 5.10084 ++#define RET_REGISTER (15 - 12)
 5.10085 ++
 5.10086 ++
 5.10087 ++/*
 5.10088 ++A C expression to create an RTX representing the place where a library
 5.10089 ++function returns a value of mode MODE.  If the precise function
 5.10090 ++being called is known, FUNC is a tree node
 5.10091 ++(FUNCTION_DECL) for it; otherwise, func is a null
 5.10092 ++pointer.  This makes it possible to use a different value-returning
 5.10093 ++convention for specific functions when all their calls are
 5.10094 ++known.
 5.10095 ++
 5.10096 ++Note that "library function" in this context means a compiler
 5.10097 ++support routine, used to perform arithmetic, whose name is known
 5.10098 ++specially by the compiler and was not mentioned in the C code being
 5.10099 ++compiled.
 5.10100 ++
 5.10101 ++The definition of LIBRARY_VALUE need not be concerned aggregate
 5.10102 ++data types, because none of the library functions returns such types.
 5.10103 ++*/
 5.10104 ++#define LIBCALL_VALUE(MODE) avr32_libcall_value(MODE)
 5.10105 ++
 5.10106 ++/*
 5.10107 ++A C expression that is nonzero if REGNO is the number of a hard
 5.10108 ++register in which the values of called function may come back.
 5.10109 ++
 5.10110 ++A register whose use for returning values is limited to serving as the
 5.10111 ++second of a pair (for a value of type double, say) need not be
 5.10112 ++recognized by this macro.  So for most machines, this definition
 5.10113 ++suffices:
 5.10114 ++  #define FUNCTION_VALUE_REGNO_P(N) ((N) == 0)
 5.10115 ++
 5.10116 ++If the machine has register windows, so that the caller and the called
 5.10117 ++function use different registers for the return value, this macro
 5.10118 ++should recognize only the caller's register numbers.
 5.10119 ++*/
 5.10120 ++/*
 5.10121 ++  When returning a value of mode DImode, r11:r10 is used, else r12 is used.
 5.10122 ++*/
 5.10123 ++#define FUNCTION_VALUE_REGNO_P(REGNO) ((REGNO) == RET_REGISTER \
 5.10124 ++                                       || (REGNO) == INTERNAL_REGNUM(11))
 5.10125 ++
 5.10126 ++
 5.10127 ++/** How Large Values Are Returned **/
 5.10128 ++
 5.10129 ++
 5.10130 ++/*
 5.10131 ++Define this macro to be 1 if all structure and union return values must be
 5.10132 ++in memory.  Since this results in slower code, this should be defined
 5.10133 ++only if needed for compatibility with other compilers or with an ABI.
 5.10134 ++If you define this macro to be 0, then the conventions used for structure
 5.10135 ++and union return values are decided by the RETURN_IN_MEMORY macro.
 5.10136 ++
 5.10137 ++If not defined, this defaults to the value 1.
 5.10138 ++*/
 5.10139 ++#define DEFAULT_PCC_STRUCT_RETURN 0
 5.10140 ++
 5.10141 ++
 5.10142 ++
 5.10143 ++
 5.10144 ++/** Generating Code for Profiling **/
 5.10145 ++
 5.10146 ++/*
 5.10147 ++A C statement or compound statement to output to FILE some
 5.10148 ++assembler code to call the profiling subroutine mcount.
 5.10149 ++
 5.10150 ++The details of how mcount expects to be called are determined by
 5.10151 ++your operating system environment, not by GCC.  To figure them out,
 5.10152 ++compile a small program for profiling using the system's installed C
 5.10153 ++compiler and look at the assembler code that results.
 5.10154 ++
 5.10155 ++Older implementations of mcount expect the address of a counter
 5.10156 ++variable to be loaded into some register.  The name of this variable is
 5.10157 ++'LP' followed by the number LABELNO, so you would generate
 5.10158 ++the name using 'LP%d' in a fprintf.
 5.10159 ++*/
 5.10160 ++/* ToDo: fixme */
 5.10161 ++#ifndef FUNCTION_PROFILER
 5.10162 ++#define FUNCTION_PROFILER(FILE, LABELNO) \
 5.10163 ++  fprintf((FILE), "/* profiler %d */", (LABELNO))
 5.10164 ++#endif
 5.10165 ++
 5.10166 ++
 5.10167 ++/*****************************************************************************
 5.10168 ++ * Trampolines for Nested Functions                                          *
 5.10169 ++ *****************************************************************************/
 5.10170 ++
 5.10171 ++/*
 5.10172 ++A C statement to output, on the stream FILE, assembler code for a
 5.10173 ++block of data that contains the constant parts of a trampoline.  This
 5.10174 ++code should not include a label - the label is taken care of
 5.10175 ++automatically.
 5.10176 ++
 5.10177 ++If you do not define this macro, it means no template is needed
 5.10178 ++for the target.  Do not define this macro on systems where the block move
 5.10179 ++code to copy the trampoline into place would be larger than the code
 5.10180 ++to generate it on the spot.
 5.10181 ++*/
 5.10182 ++/* ToDo: correct? */
 5.10183 ++#define TRAMPOLINE_TEMPLATE(FILE) avr32_trampoline_template(FILE);
 5.10184 ++
 5.10185 ++
 5.10186 ++/*
 5.10187 ++A C expression for the size in bytes of the trampoline, as an integer.
 5.10188 ++*/
 5.10189 ++/* ToDo: fixme */
 5.10190 ++#define TRAMPOLINE_SIZE 0x0C
 5.10191 ++
 5.10192 ++/*
 5.10193 ++Alignment required for trampolines, in bits.
 5.10194 ++
 5.10195 ++If you don't define this macro, the value of BIGGEST_ALIGNMENT
 5.10196 ++is used for aligning trampolines.
 5.10197 ++*/
 5.10198 ++#define TRAMPOLINE_ALIGNMENT 16
 5.10199 ++
 5.10200 ++/*
 5.10201 ++A C statement to initialize the variable parts of a trampoline.
 5.10202 ++ADDR is an RTX for the address of the trampoline; FNADDR is
 5.10203 ++an RTX for the address of the nested function; STATIC_CHAIN is an
 5.10204 ++RTX for the static chain value that should be passed to the function
 5.10205 ++when it is called.
 5.10206 ++*/
 5.10207 ++#define INITIALIZE_TRAMPOLINE(ADDR, FNADDR, STATIC_CHAIN) \
 5.10208 ++  avr32_initialize_trampoline(ADDR, FNADDR, STATIC_CHAIN)
 5.10209 ++
 5.10210 ++
 5.10211 ++/******************************************************************************
 5.10212 ++ * Implicit Calls to Library Routines
 5.10213 ++ *****************************************************************************/
 5.10214 ++
 5.10215 ++/* Tail calling.  */
 5.10216 ++
 5.10217 ++/* A C expression that evaluates to true if it is ok to perform a sibling
 5.10218 ++   call to DECL.  */
 5.10219 ++#define FUNCTION_OK_FOR_SIBCALL(DECL) 0
 5.10220 ++
 5.10221 ++#define OVERRIDE_OPTIONS  avr32_override_options ()
 5.10222 ++
 5.10223 ++#define OPTIMIZATION_OPTIONS(LEVEL, SIZE) avr32_optimization_options (LEVEL, SIZE)
 5.10224 ++
 5.10225 ++/******************************************************************************
 5.10226 ++ * Addressing Modes
 5.10227 ++ *****************************************************************************/
 5.10228 ++
 5.10229 ++/*
 5.10230 ++A C expression that is nonzero if the machine supports pre-increment,
 5.10231 ++pre-decrement, post-increment, or post-decrement addressing respectively.
 5.10232 ++*/
 5.10233 ++/*
 5.10234 ++  AVR32 supports Rp++ and --Rp
 5.10235 ++*/
 5.10236 ++#define HAVE_PRE_INCREMENT 0
 5.10237 ++#define HAVE_PRE_DECREMENT 1
 5.10238 ++#define HAVE_POST_INCREMENT 1
 5.10239 ++#define HAVE_POST_DECREMENT 0
 5.10240 ++
 5.10241 ++/*
 5.10242 ++A C expression that is nonzero if the machine supports pre- or
 5.10243 ++post-address side-effect generation involving constants other than
 5.10244 ++the size of the memory operand.
 5.10245 ++*/
 5.10246 ++#define HAVE_PRE_MODIFY_DISP 0
 5.10247 ++#define HAVE_POST_MODIFY_DISP 0
 5.10248 ++
 5.10249 ++/*
 5.10250 ++A C expression that is nonzero if the machine supports pre- or
 5.10251 ++post-address side-effect generation involving a register displacement.
 5.10252 ++*/
 5.10253 ++#define HAVE_PRE_MODIFY_REG 0
 5.10254 ++#define HAVE_POST_MODIFY_REG 0
 5.10255 ++
 5.10256 ++/*
 5.10257 ++A C expression that is 1 if the RTX X is a constant which
 5.10258 ++is a valid address.  On most machines, this can be defined as
 5.10259 ++CONSTANT_P (X), but a few machines are more restrictive
 5.10260 ++in which constant addresses are supported.
 5.10261 ++
 5.10262 ++CONSTANT_P accepts integer-values expressions whose values are
 5.10263 ++not explicitly known, such as symbol_ref, label_ref, and
 5.10264 ++high expressions and const arithmetic expressions, in
 5.10265 ++addition to const_int and const_double expressions.
 5.10266 ++*/
 5.10267 ++#define CONSTANT_ADDRESS_P(X) CONSTANT_P(X)
 5.10268 ++
 5.10269 ++/*
 5.10270 ++A number, the maximum number of registers that can appear in a valid
 5.10271 ++memory address.  Note that it is up to you to specify a value equal to
 5.10272 ++the maximum number that GO_IF_LEGITIMATE_ADDRESS would ever
 5.10273 ++accept.
 5.10274 ++*/
 5.10275 ++#define MAX_REGS_PER_ADDRESS 2
 5.10276 ++
 5.10277 ++/*
 5.10278 ++A C compound statement with a conditional goto LABEL;
 5.10279 ++executed if X (an RTX) is a legitimate memory address on the
 5.10280 ++target machine for a memory operand of mode MODE.
 5.10281 ++
 5.10282 ++It usually pays to define several simpler macros to serve as
 5.10283 ++subroutines for this one.  Otherwise it may be too complicated to
 5.10284 ++understand.
 5.10285 ++
 5.10286 ++This macro must exist in two variants: a strict variant and a
 5.10287 ++non-strict one.  The strict variant is used in the reload pass.  It
 5.10288 ++must be defined so that any pseudo-register that has not been
 5.10289 ++allocated a hard register is considered a memory reference.  In
 5.10290 ++contexts where some kind of register is required, a pseudo-register
 5.10291 ++with no hard register must be rejected.
 5.10292 ++
 5.10293 ++The non-strict variant is used in other passes.  It must be defined to
 5.10294 ++accept all pseudo-registers in every context where some kind of
 5.10295 ++register is required.
 5.10296 ++
 5.10297 ++Compiler source files that want to use the strict variant of this
 5.10298 ++macro define the macro REG_OK_STRICT.  You should use an
 5.10299 ++#ifdef REG_OK_STRICT conditional to define the strict variant
 5.10300 ++in that case and the non-strict variant otherwise.
 5.10301 ++
 5.10302 ++Subroutines to check for acceptable registers for various purposes (one
 5.10303 ++for base registers, one for index registers, and so on) are typically
 5.10304 ++among the subroutines used to define GO_IF_LEGITIMATE_ADDRESS.
 5.10305 ++Then only these subroutine macros need have two variants; the higher
 5.10306 ++levels of macros may be the same whether strict or not.
 5.10307 ++
 5.10308 ++Normally, constant addresses which are the sum of a symbol_ref
 5.10309 ++and an integer are stored inside a const RTX to mark them as
 5.10310 ++constant.  Therefore, there is no need to recognize such sums
 5.10311 ++specifically as legitimate addresses.  Normally you would simply
 5.10312 ++recognize any const as legitimate.
 5.10313 ++
 5.10314 ++Usually PRINT_OPERAND_ADDRESS is not prepared to handle constant
 5.10315 ++sums that are not marked with  const.  It assumes that a naked
 5.10316 ++plus indicates indexing.  If so, then you must reject such
 5.10317 ++naked constant sums as illegitimate addresses, so that none of them will
 5.10318 ++be given to PRINT_OPERAND_ADDRESS.
 5.10319 ++
 5.10320 ++On some machines, whether a symbolic address is legitimate depends on
 5.10321 ++the section that the address refers to.  On these machines, define the
 5.10322 ++macro ENCODE_SECTION_INFO to store the information into the
 5.10323 ++symbol_ref, and then check for it here.  When you see a
 5.10324 ++const, you will have to look inside it to find the
 5.10325 ++symbol_ref in order to determine the section.
 5.10326 ++
 5.10327 ++The best way to modify the name string is by adding text to the
 5.10328 ++beginning, with suitable punctuation to prevent any ambiguity.  Allocate
 5.10329 ++the new name in saveable_obstack.  You will have to modify
 5.10330 ++ASM_OUTPUT_LABELREF to remove and decode the added text and
 5.10331 ++output the name accordingly, and define STRIP_NAME_ENCODING to
 5.10332 ++access the original name string.
 5.10333 ++
 5.10334 ++You can check the information stored here into the symbol_ref in
 5.10335 ++the definitions of the macros GO_IF_LEGITIMATE_ADDRESS and
 5.10336 ++PRINT_OPERAND_ADDRESS.
 5.10337 ++*/
 5.10338 ++#ifdef REG_OK_STRICT
 5.10339 ++#  define GO_IF_LEGITIMATE_ADDRESS(MODE, X, LABEL)	\
 5.10340 ++  do							\
 5.10341 ++    {							\
 5.10342 ++      if (avr32_legitimate_address(MODE, X, 1))		\
 5.10343 ++	goto LABEL;					\
 5.10344 ++    }							\
 5.10345 ++  while (0)
 5.10346 ++#else
 5.10347 ++#  define GO_IF_LEGITIMATE_ADDRESS(MODE, X, LABEL)	\
 5.10348 ++  do							\
 5.10349 ++    {							\
 5.10350 ++      if (avr32_legitimate_address(MODE, X, 0))		\
 5.10351 ++	goto LABEL;					\
 5.10352 ++    }							\
 5.10353 ++  while (0)
 5.10354 ++#endif
 5.10355 ++
 5.10356 ++
 5.10357 ++
 5.10358 ++/*
 5.10359 ++A C compound statement that attempts to replace X with a valid
 5.10360 ++memory address for an operand of mode MODE.  win will be a
 5.10361 ++C statement label elsewhere in the code; the macro definition may use
 5.10362 ++
 5.10363 ++  GO_IF_LEGITIMATE_ADDRESS (MODE, X, WIN);
 5.10364 ++
 5.10365 ++to avoid further processing if the address has become legitimate.
 5.10366 ++
 5.10367 ++X will always be the result of a call to break_out_memory_refs,
 5.10368 ++and OLDX will be the operand that was given to that function to produce
 5.10369 ++X.
 5.10370 ++
 5.10371 ++The code generated by this macro should not alter the substructure of
 5.10372 ++X.  If it transforms X into a more legitimate form, it
 5.10373 ++should assign X (which will always be a C variable) a new value.
 5.10374 ++
 5.10375 ++It is not necessary for this macro to come up with a legitimate
 5.10376 ++address.  The compiler has standard ways of doing so in all cases.  In
 5.10377 ++fact, it is safe for this macro to do nothing.  But often a
 5.10378 ++machine-dependent strategy can generate better code.
 5.10379 ++*/
 5.10380 ++#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN)			\
 5.10381 ++  do								\
 5.10382 ++    {								\
 5.10383 ++      if (GET_CODE(X) == PLUS					\
 5.10384 ++	  && GET_CODE(XEXP(X, 0)) == REG			\
 5.10385 ++	  && GET_CODE(XEXP(X, 1)) == CONST_INT			\
 5.10386 ++	  && !CONST_OK_FOR_CONSTRAINT_P(INTVAL(XEXP(X, 1)),	\
 5.10387 ++					'K', "Ks16"))		\
 5.10388 ++	{							\
 5.10389 ++	  rtx index = force_reg(SImode, XEXP(X, 1));		\
 5.10390 ++	  X = gen_rtx_PLUS( SImode, XEXP(X, 0), index);		\
 5.10391 ++	}							\
 5.10392 ++      GO_IF_LEGITIMATE_ADDRESS(MODE, X, WIN);			\
 5.10393 ++    }								\
 5.10394 ++  while(0)
 5.10395 ++
 5.10396 ++
 5.10397 ++/*
 5.10398 ++A C statement or compound statement with a conditional
 5.10399 ++goto LABEL; executed if memory address X (an RTX) can have
 5.10400 ++different meanings depending on the machine mode of the memory
 5.10401 ++reference it is used for or if the address is valid for some modes
 5.10402 ++but not others.
 5.10403 ++
 5.10404 ++Autoincrement and autodecrement addresses typically have mode-dependent
 5.10405 ++effects because the amount of the increment or decrement is the size
 5.10406 ++of the operand being addressed.  Some machines have other mode-dependent
 5.10407 ++addresses.  Many RISC machines have no mode-dependent addresses.
 5.10408 ++
 5.10409 ++You may assume that ADDR is a valid address for the machine.
 5.10410 ++*/
 5.10411 ++#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL)	\
 5.10412 ++  do							\
 5.10413 ++    {							\
 5.10414 ++      if (GET_CODE (ADDR) == POST_INC			\
 5.10415 ++	  || GET_CODE (ADDR) == PRE_DEC)		\
 5.10416 ++	goto LABEL;					\
 5.10417 ++    }							\
 5.10418 ++  while (0)
 5.10419 ++
 5.10420 ++/*
 5.10421 ++A C expression that is nonzero if X is a legitimate constant for
 5.10422 ++an immediate operand on the target machine.  You can assume that
 5.10423 ++X satisfies CONSTANT_P, so you need not check this.  In fact,
 5.10424 ++'1' is a suitable definition for this macro on machines where
 5.10425 ++anything CONSTANT_P is valid.
 5.10426 ++*/
 5.10427 ++#define LEGITIMATE_CONSTANT_P(X) avr32_legitimate_constant_p(X)
 5.10428 ++
 5.10429 ++
 5.10430 ++/******************************************************************************
 5.10431 ++ * Condition Code Status
 5.10432 ++ *****************************************************************************/
 5.10433 ++
 5.10434 ++/*
 5.10435 ++C code for a data type which is used for declaring the mdep
 5.10436 ++component of cc_status.  It defaults to int.
 5.10437 ++
 5.10438 ++This macro is not used on machines that do not use cc0.
 5.10439 ++*/
 5.10440 ++
 5.10441 ++typedef struct
 5.10442 ++{
 5.10443 ++  int flags;
 5.10444 ++  rtx value;
 5.10445 ++  int fpflags;
 5.10446 ++  rtx fpvalue;
 5.10447 ++  int cond_exec_cmp_clobbered;
 5.10448 ++} avr32_status_reg;
 5.10449 ++
 5.10450 ++
 5.10451 ++#define CC_STATUS_MDEP avr32_status_reg
 5.10452 ++
 5.10453 ++/*
 5.10454 ++A C expression to initialize the mdep field to "empty".
 5.10455 ++The default definition does nothing, since most machines don't use
 5.10456 ++the field anyway.  If you want to use the field, you should probably
 5.10457 ++define this macro to initialize it.
 5.10458 ++
 5.10459 ++This macro is not used on machines that do not use cc0.
 5.10460 ++*/
 5.10461 ++
 5.10462 ++#define CC_STATUS_MDEP_INIT  \
 5.10463 ++   (cc_status.mdep.flags = CC_NONE , cc_status.mdep.cond_exec_cmp_clobbered = 0, cc_status.mdep.value = 0)
 5.10464 ++
 5.10465 ++#define FPCC_STATUS_INIT \
 5.10466 ++   (cc_status.mdep.fpflags = CC_NONE , cc_status.mdep.fpvalue = 0)
 5.10467 ++
 5.10468 ++/*
 5.10469 ++A C compound statement to set the components of cc_status
 5.10470 ++appropriately for an insn INSN whose body is EXP.  It is
 5.10471 ++this macro's responsibility to recognize insns that set the condition
 5.10472 ++code as a byproduct of other activity as well as those that explicitly
 5.10473 ++set (cc0).
 5.10474 ++
 5.10475 ++This macro is not used on machines that do not use cc0.
 5.10476 ++
 5.10477 ++If there are insns that do not set the condition code but do alter
 5.10478 ++other machine registers, this macro must check to see whether they
 5.10479 ++invalidate the expressions that the condition code is recorded as
 5.10480 ++reflecting.  For example, on the 68000, insns that store in address
 5.10481 ++registers do not set the condition code, which means that usually
 5.10482 ++NOTICE_UPDATE_CC can leave cc_status unaltered for such
 5.10483 ++insns.  But suppose that the previous insn set the condition code
 5.10484 ++based on location 'a4@@(102)' and the current insn stores a new
 5.10485 ++value in 'a4'.  Although the condition code is not changed by
 5.10486 ++this, it will no longer be true that it reflects the contents of
 5.10487 ++'a4@@(102)'.  Therefore, NOTICE_UPDATE_CC must alter
 5.10488 ++cc_status in this case to say that nothing is known about the
 5.10489 ++condition code value.
 5.10490 ++
 5.10491 ++The definition of NOTICE_UPDATE_CC must be prepared to deal
 5.10492 ++with the results of peephole optimization: insns whose patterns are
 5.10493 ++parallel RTXs containing various reg, mem or
 5.10494 ++constants which are just the operands.  The RTL structure of these
 5.10495 ++insns is not sufficient to indicate what the insns actually do.  What
 5.10496 ++NOTICE_UPDATE_CC should do when it sees one is just to run
 5.10497 ++CC_STATUS_INIT.
 5.10498 ++
 5.10499 ++A possible definition of NOTICE_UPDATE_CC is to call a function
 5.10500 ++that looks at an attribute (see Insn Attributes) named, for example,
 5.10501 ++'cc'.  This avoids having detailed information about patterns in
 5.10502 ++two places, the 'md' file and in NOTICE_UPDATE_CC.
 5.10503 ++*/
 5.10504 ++
 5.10505 ++#define NOTICE_UPDATE_CC(EXP, INSN) avr32_notice_update_cc(EXP, INSN)
 5.10506 ++
 5.10507 ++
 5.10508 ++
 5.10509 ++
 5.10510 ++/******************************************************************************
 5.10511 ++ * Describing Relative Costs of Operations
 5.10512 ++ *****************************************************************************/
 5.10513 ++
 5.10514 ++
 5.10515 ++
 5.10516 ++/*
 5.10517 ++A C expression for the cost of moving data of mode MODE from a
 5.10518 ++register in class FROM to one in class TO.  The classes are
 5.10519 ++expressed using the enumeration values such as GENERAL_REGS.  A
 5.10520 ++value of 2 is the default; other values are interpreted relative to
 5.10521 ++that.
 5.10522 ++
 5.10523 ++It is not required that the cost always equal 2 when FROM is the
 5.10524 ++same as TO; on some machines it is expensive to move between
 5.10525 ++registers if they are not general registers.
 5.10526 ++
 5.10527 ++If reload sees an insn consisting of a single set between two
 5.10528 ++hard registers, and if REGISTER_MOVE_COST applied to their
 5.10529 ++classes returns a value of 2, reload does not check to ensure that the
 5.10530 ++constraints of the insn are met.  Setting a cost of other than 2 will
 5.10531 ++allow reload to verify that the constraints are met.  You should do this
 5.10532 ++if the movm pattern's constraints do not allow such copying.
 5.10533 ++*/
 5.10534 ++#define REGISTER_MOVE_COST(MODE, FROM, TO) \
 5.10535 ++  ((GET_MODE_SIZE(MODE) <= 4) ? 2:         \
 5.10536 ++   (GET_MODE_SIZE(MODE) <= 8) ? 3:         \
 5.10537 ++   4)
 5.10538 ++
 5.10539 ++/*
 5.10540 ++A C expression for the cost of moving data of mode MODE between a
 5.10541 ++register of class CLASS and memory; IN is zero if the value
 5.10542 ++is to be written to memory, nonzero if it is to be read in.  This cost
 5.10543 ++is relative to those in REGISTER_MOVE_COST.  If moving between
 5.10544 ++registers and memory is more expensive than between two registers, you
 5.10545 ++should define this macro to express the relative cost.
 5.10546 ++
 5.10547 ++If you do not define this macro, GCC uses a default cost of 4 plus
 5.10548 ++the cost of copying via a secondary reload register, if one is
 5.10549 ++needed.  If your machine requires a secondary reload register to copy
 5.10550 ++between memory and a register of CLASS but the reload mechanism is
 5.10551 ++more complex than copying via an intermediate, define this macro to
 5.10552 ++reflect the actual cost of the move.
 5.10553 ++
 5.10554 ++GCC defines the function memory_move_secondary_cost if
 5.10555 ++secondary reloads are needed.  It computes the costs due to copying via
 5.10556 ++a secondary register.  If your machine copies from memory using a
 5.10557 ++secondary register in the conventional way but the default base value of
 5.10558 ++4 is not correct for your machine, define this macro to add some other
 5.10559 ++value to the result of that function.  The arguments to that function
 5.10560 ++are the same as to this macro.
 5.10561 ++*/
 5.10562 ++/*
 5.10563 ++  Memory moves are costly
 5.10564 ++*/
 5.10565 ++#define MEMORY_MOVE_COST(MODE, CLASS, IN)            \
 5.10566 ++  (((IN) ? ((GET_MODE_SIZE(MODE) < 4) ? 4 :          \
 5.10567 ++            (GET_MODE_SIZE(MODE) > 8) ? 6 :          \
 5.10568 ++            3)                                       \
 5.10569 ++    : ((GET_MODE_SIZE(MODE) > 8) ? 6 : 3)))
 5.10570 ++
 5.10571 ++/*
 5.10572 ++A C expression for the cost of a branch instruction.  A value of 1 is
 5.10573 ++the default; other values are interpreted relative to that.
 5.10574 ++*/
 5.10575 ++  /* Try to use conditionals as much as possible */
 5.10576 ++#define BRANCH_COST (TARGET_BRANCH_PRED ? 3 : 4)
 5.10577 ++
 5.10578 ++/*A C expression for the maximum number of instructions to execute via conditional
 5.10579 ++  execution instructions instead of a branch. A value of BRANCH_COST+1 is the default
 5.10580 ++  if the machine does not use cc0, and 1 if it does use cc0.*/
 5.10581 ++#define MAX_CONDITIONAL_EXECUTE 4
 5.10582 ++
 5.10583 ++/*
 5.10584 ++Define this macro as a C expression which is nonzero if accessing less
 5.10585 ++than a word of memory (i.e.: a char or a short) is no
 5.10586 ++faster than accessing a word of memory, i.e., if such access
 5.10587 ++require more than one instruction or if there is no difference in cost
 5.10588 ++between byte and (aligned) word loads.
 5.10589 ++
 5.10590 ++When this macro is not defined, the compiler will access a field by
 5.10591 ++finding the smallest containing object; when it is defined, a fullword
 5.10592 ++load will be used if alignment permits.  Unless bytes accesses are
 5.10593 ++faster than word accesses, using word accesses is preferable since it
 5.10594 ++may eliminate subsequent memory access if subsequent accesses occur to
 5.10595 ++other fields in the same word of the structure, but to different bytes.
 5.10596 ++*/
 5.10597 ++#define SLOW_BYTE_ACCESS 1
 5.10598 ++
 5.10599 ++
 5.10600 ++/*
 5.10601 ++Define this macro if it is as good or better to call a constant
 5.10602 ++function address than to call an address kept in a register.
 5.10603 ++*/
 5.10604 ++#define NO_FUNCTION_CSE
 5.10605 ++
 5.10606 ++
 5.10607 ++/******************************************************************************
 5.10608 ++ * Adjusting the Instruction Scheduler
 5.10609 ++ *****************************************************************************/
 5.10610 ++
 5.10611 ++/*****************************************************************************
 5.10612 ++ * Dividing the Output into Sections (Texts, Data, ...)                      *
 5.10613 ++ *****************************************************************************/
 5.10614 ++
 5.10615 ++/*
 5.10616 ++A C expression whose value is a string, including spacing, containing the
 5.10617 ++assembler operation that should precede instructions and read-only data.
 5.10618 ++Normally "\t.text" is right.
 5.10619 ++*/
 5.10620 ++#define TEXT_SECTION_ASM_OP "\t.text"
 5.10621 ++/*
 5.10622 ++A C statement that switches to the default section containing instructions.
 5.10623 ++Normally this is not needed, as simply defining TEXT_SECTION_ASM_OP
 5.10624 ++is enough.  The MIPS port uses this to sort all functions after all data
 5.10625 ++declarations.
 5.10626 ++*/
 5.10627 ++/* #define TEXT_SECTION */
 5.10628 ++
 5.10629 ++/*
 5.10630 ++A C expression whose value is a string, including spacing, containing the
 5.10631 ++assembler operation to identify the following data as writable initialized
 5.10632 ++data.  Normally "\t.data" is right.
 5.10633 ++*/
 5.10634 ++#define DATA_SECTION_ASM_OP "\t.data"
 5.10635 ++
 5.10636 ++/*
 5.10637 ++If defined, a C expression whose value is a string, including spacing,
 5.10638 ++containing the assembler operation to identify the following data as
 5.10639 ++shared data.  If not defined, DATA_SECTION_ASM_OP will be used.
 5.10640 ++*/
 5.10641 ++
 5.10642 ++/*
 5.10643 ++A C expression whose value is a string, including spacing, containing
 5.10644 ++the assembler operation to identify the following data as read-only
 5.10645 ++initialized data.
 5.10646 ++*/
 5.10647 ++#undef READONLY_DATA_SECTION_ASM_OP
 5.10648 ++#define READONLY_DATA_SECTION_ASM_OP \
 5.10649 ++  ((TARGET_USE_RODATA_SECTION) ?  \
 5.10650 ++   "\t.section\t.rodata" :                \
 5.10651 ++   TEXT_SECTION_ASM_OP )
 5.10652 ++
 5.10653 ++
 5.10654 ++/*
 5.10655 ++If defined, a C expression whose value is a string, including spacing,
 5.10656 ++containing the assembler operation to identify the following data as
 5.10657 ++uninitialized global data.  If not defined, and neither
 5.10658 ++ASM_OUTPUT_BSS nor ASM_OUTPUT_ALIGNED_BSS are defined,
 5.10659 ++uninitialized global data will be output in the data section if
 5.10660 ++-fno-common is passed, otherwise ASM_OUTPUT_COMMON will be
 5.10661 ++used.
 5.10662 ++*/
 5.10663 ++#define BSS_SECTION_ASM_OP	"\t.section\t.bss"
 5.10664 ++
 5.10665 ++/*
 5.10666 ++If defined, a C expression whose value is a string, including spacing,
 5.10667 ++containing the assembler operation to identify the following data as
 5.10668 ++uninitialized global shared data.  If not defined, and
 5.10669 ++BSS_SECTION_ASM_OP is, the latter will be used.
 5.10670 ++*/
 5.10671 ++/*#define SHARED_BSS_SECTION_ASM_OP "\trseg\tshared_bbs_section:data:noroot(0)\n"*/
 5.10672 ++/*
 5.10673 ++If defined, a C expression whose value is a string, including spacing,
 5.10674 ++containing the assembler operation to identify the following data as
 5.10675 ++initialization code.  If not defined, GCC will assume such a section does
 5.10676 ++not exist.
 5.10677 ++*/
 5.10678 ++#undef  INIT_SECTION_ASM_OP
 5.10679 ++#define INIT_SECTION_ASM_OP "\t.section\t.init"
 5.10680 ++
 5.10681 ++/*
 5.10682 ++If defined, a C expression whose value is a string, including spacing,
 5.10683 ++containing the assembler operation to identify the following data as
 5.10684 ++finalization code.  If not defined, GCC will assume such a section does
 5.10685 ++not exist.
 5.10686 ++*/
 5.10687 ++#undef  FINI_SECTION_ASM_OP
 5.10688 ++#define FINI_SECTION_ASM_OP "\t.section\t.fini"
 5.10689 ++
 5.10690 ++/*
 5.10691 ++If defined, an ASM statement that switches to a different section
 5.10692 ++via SECTION_OP, calls FUNCTION, and switches back to
 5.10693 ++the text section.  This is used in crtstuff.c if
 5.10694 ++INIT_SECTION_ASM_OP or FINI_SECTION_ASM_OP to calls
 5.10695 ++to initialization and finalization functions from the init and fini
 5.10696 ++sections.  By default, this macro uses a simple function call.  Some
 5.10697 ++ports need hand-crafted assembly code to avoid dependencies on
 5.10698 ++registers initialized in the function prologue or to ensure that
 5.10699 ++constant pools don't end up too far way in the text section.
 5.10700 ++*/
 5.10701 ++#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC)      \
 5.10702 ++   asm ( SECTION_OP "\n" \
 5.10703 ++         "mcall   r6[" USER_LABEL_PREFIX #FUNC "@got]\n" \
 5.10704 ++         TEXT_SECTION_ASM_OP);
 5.10705 ++
 5.10706 ++
 5.10707 ++/*
 5.10708 ++Define this macro to be an expression with a nonzero value if jump
 5.10709 ++tables (for tablejump insns) should be output in the text
 5.10710 ++section, along with the assembler instructions.  Otherwise, the
 5.10711 ++readonly data section is used.
 5.10712 ++
 5.10713 ++This macro is irrelevant if there is no separate readonly data section.
 5.10714 ++*/
 5.10715 ++/* Put jump tables in text section if we have caches. Otherwise assume that
 5.10716 ++   loading data from code memory is slow. */
 5.10717 ++#define JUMP_TABLES_IN_TEXT_SECTION    \
 5.10718 ++    (TARGET_CACHES ? 1 : 0)
 5.10719 ++
 5.10720 ++
 5.10721 ++/******************************************************************************
 5.10722 ++ * Position Independent Code (PIC)
 5.10723 ++ *****************************************************************************/
 5.10724 ++
 5.10725 ++#ifndef AVR32_ALWAYS_PIC
 5.10726 ++#define AVR32_ALWAYS_PIC 0
 5.10727 ++#endif
 5.10728 ++
 5.10729 ++/* GOT is set to r6 */
 5.10730 ++#define PIC_OFFSET_TABLE_REGNUM INTERNAL_REGNUM(6)
 5.10731 ++
 5.10732 ++/*
 5.10733 ++A C expression that is nonzero if X is a legitimate immediate
 5.10734 ++operand on the target machine when generating position independent code.
 5.10735 ++You can assume that X satisfies CONSTANT_P, so you need not
 5.10736 ++check this.  You can also assume flag_pic is true, so you need not
 5.10737 ++check it either.  You need not define this macro if all constants
 5.10738 ++(including SYMBOL_REF) can be immediate operands when generating
 5.10739 ++position independent code.
 5.10740 ++*/
 5.10741 ++/* We can't directly access anything that contains a symbol,
 5.10742 ++   nor can we indirect via the constant pool.  */
 5.10743 ++#define LEGITIMATE_PIC_OPERAND_P(X) avr32_legitimate_pic_operand_p(X)
 5.10744 ++
 5.10745 ++
 5.10746 ++/* We need to know when we are making a constant pool; this determines
 5.10747 ++   whether data needs to be in the GOT or can be referenced via a GOT
 5.10748 ++   offset.  */
 5.10749 ++extern int making_const_table;
 5.10750 ++
 5.10751 ++/******************************************************************************
 5.10752 ++ * Defining the Output Assembler Language
 5.10753 ++ *****************************************************************************/
 5.10754 ++
 5.10755 ++
 5.10756 ++/*
 5.10757 ++A C string constant describing how to begin a comment in the target
 5.10758 ++assembler language.  The compiler assumes that the comment will end at
 5.10759 ++the end of the line.
 5.10760 ++*/
 5.10761 ++#define ASM_COMMENT_START "# "
 5.10762 ++
 5.10763 ++/*
 5.10764 ++A C string constant for text to be output before each asm
 5.10765 ++statement or group of consecutive ones.  Normally this is
 5.10766 ++"#APP", which is a comment that has no effect on most
 5.10767 ++assemblers but tells the GNU assembler that it must check the lines
 5.10768 ++that follow for all valid assembler constructs.
 5.10769 ++*/
 5.10770 ++#undef ASM_APP_ON
 5.10771 ++#define ASM_APP_ON "#APP\n"
 5.10772 ++
 5.10773 ++/*
 5.10774 ++A C string constant for text to be output after each asm
 5.10775 ++statement or group of consecutive ones.  Normally this is
 5.10776 ++"#NO_APP", which tells the GNU assembler to resume making the
 5.10777 ++time-saving assumptions that are valid for ordinary compiler output.
 5.10778 ++*/
 5.10779 ++#undef ASM_APP_OFF
 5.10780 ++#define ASM_APP_OFF "#NO_APP\n"
 5.10781 ++
 5.10782 ++
 5.10783 ++
 5.10784 ++#define FILE_ASM_OP 		"\t.file\n"
 5.10785 ++#define IDENT_ASM_OP 		"\t.ident\t"
 5.10786 ++#define SET_ASM_OP		"\t.set\t"
 5.10787 ++
 5.10788 ++
 5.10789 ++/*
 5.10790 ++ * Output assembly directives to switch to section name. The section
 5.10791 ++ * should have attributes as specified by flags, which is a bit mask
 5.10792 ++ * of the SECTION_* flags defined in 'output.h'. If align is nonzero,
 5.10793 ++ * it contains an alignment in bytes to be used for the section,
 5.10794 ++ * otherwise some target default should be used. Only targets that
 5.10795 ++ * must specify an alignment within the section directive need pay
 5.10796 ++ * attention to align -- we will still use ASM_OUTPUT_ALIGN.
 5.10797 ++ *
 5.10798 ++ * NOTE: This one must not be moved to avr32.c
 5.10799 ++ */
 5.10800 ++#undef TARGET_ASM_NAMED_SECTION
 5.10801 ++#define TARGET_ASM_NAMED_SECTION default_elf_asm_named_section
 5.10802 ++
 5.10803 ++
 5.10804 ++/*
 5.10805 ++You may define this macro as a C expression.  You should define the
 5.10806 ++expression to have a nonzero value if GCC should output the constant
 5.10807 ++pool for a function before the code for the function, or a zero value if
 5.10808 ++GCC should output the constant pool after the function.  If you do
 5.10809 ++not define this macro, the usual case, GCC will output the constant
 5.10810 ++pool before the function.
 5.10811 ++*/
 5.10812 ++#define CONSTANT_POOL_BEFORE_FUNCTION 0
 5.10813 ++
 5.10814 ++
 5.10815 ++/*
 5.10816 ++Define this macro as a C expression which is nonzero if the constant
 5.10817 ++EXP, of type tree, should be output after the code for a
 5.10818 ++function.  The compiler will normally output all constants before the
 5.10819 ++function; you need not define this macro if this is OK.
 5.10820 ++*/
 5.10821 ++#define CONSTANT_AFTER_FUNCTION_P(EXP) 1
 5.10822 ++
 5.10823 ++
 5.10824 ++/*
 5.10825 ++Define this macro as a C expression which is nonzero if C is
 5.10826 ++used as a logical line separator by the assembler.
 5.10827 ++
 5.10828 ++If you do not define this macro, the default is that only
 5.10829 ++the character ';' is treated as a logical line separator.
 5.10830 ++*/
 5.10831 ++#define IS_ASM_LOGICAL_LINE_SEPARATOR(C) ((C) == '\n')
 5.10832 ++
 5.10833 ++
 5.10834 ++/** Output of Uninitialized Variables **/
 5.10835 ++
 5.10836 ++/*
 5.10837 ++A C statement (sans semicolon) to output to the stdio stream
 5.10838 ++STREAM the assembler definition of a common-label named
 5.10839 ++NAME whose size is SIZE bytes.  The variable ROUNDED
 5.10840 ++is the size rounded up to whatever alignment the caller wants.
 5.10841 ++
 5.10842 ++Use the expression assemble_name(STREAM, NAME) to
 5.10843 ++output the name itself; before and after that, output the additional
 5.10844 ++assembler syntax for defining the name, and a newline.
 5.10845 ++
 5.10846 ++This macro controls how the assembler definitions of uninitialized
 5.10847 ++common global variables are output.
 5.10848 ++*/
 5.10849 ++/*
 5.10850 ++#define ASM_OUTPUT_COMMON(STREAM, NAME, SIZE, ROUNDED) \
 5.10851 ++  avr32_asm_output_common(STREAM, NAME, SIZE, ROUNDED)
 5.10852 ++*/
 5.10853 ++
 5.10854 ++#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED)	\
 5.10855 ++  do							\
 5.10856 ++    {							\
 5.10857 ++      fputs ("\t.comm ", (FILE));			\
 5.10858 ++      assemble_name ((FILE), (NAME));			\
 5.10859 ++      fprintf ((FILE), ",%d\n", (SIZE));		\
 5.10860 ++    }							\
 5.10861 ++  while (0)
 5.10862 ++
 5.10863 ++/*
 5.10864 ++ * Like ASM_OUTPUT_BSS except takes the required alignment as a
 5.10865 ++ * separate, explicit argument.  If you define this macro, it is used
 5.10866 ++ * in place of ASM_OUTPUT_BSS, and gives you more flexibility in
 5.10867 ++ * handling the required alignment of the variable.  The alignment is
 5.10868 ++ * specified as the number of bits.
 5.10869 ++ *
 5.10870 ++ * Try to use function asm_output_aligned_bss defined in file varasm.c
 5.10871 ++ * when defining this macro.
 5.10872 ++ */
 5.10873 ++#define ASM_OUTPUT_ALIGNED_BSS(STREAM, DECL, NAME, SIZE, ALIGNMENT) \
 5.10874 ++  asm_output_aligned_bss (STREAM, DECL, NAME, SIZE, ALIGNMENT)
 5.10875 ++
 5.10876 ++/*
 5.10877 ++A C statement (sans semicolon) to output to the stdio stream
 5.10878 ++STREAM the assembler definition of a local-common-label named
 5.10879 ++NAME whose size is SIZE bytes.  The variable ROUNDED
 5.10880 ++is the size rounded up to whatever alignment the caller wants.
 5.10881 ++
 5.10882 ++Use the expression assemble_name(STREAM, NAME) to
 5.10883 ++output the name itself; before and after that, output the additional
 5.10884 ++assembler syntax for defining the name, and a newline.
 5.10885 ++
 5.10886 ++This macro controls how the assembler definitions of uninitialized
 5.10887 ++static variables are output.
 5.10888 ++*/
 5.10889 ++#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED)	\
 5.10890 ++  do							\
 5.10891 ++    {							\
 5.10892 ++      fputs ("\t.lcomm ", (FILE));			\
 5.10893 ++      assemble_name ((FILE), (NAME));			\
 5.10894 ++      fprintf ((FILE), ",%d, %d\n", (SIZE), 2);		\
 5.10895 ++    }							\
 5.10896 ++  while (0)
 5.10897 ++
 5.10898 ++
 5.10899 ++/*
 5.10900 ++A C statement (sans semicolon) to output to the stdio stream
 5.10901 ++STREAM the assembler definition of a label named NAME.
 5.10902 ++Use the expression assemble_name(STREAM, NAME) to
 5.10903 ++output the name itself; before and after that, output the additional
 5.10904 ++assembler syntax for defining the name, and a newline.
 5.10905 ++*/
 5.10906 ++#define ASM_OUTPUT_LABEL(STREAM, NAME) avr32_asm_output_label(STREAM, NAME)
 5.10907 ++
 5.10908 ++/* A C string containing the appropriate assembler directive to
 5.10909 ++ * specify the size of a symbol, without any arguments. On systems
 5.10910 ++ * that use ELF, the default (in 'config/elfos.h') is '"\t.size\t"';
 5.10911 ++ * on other systems, the default is not to define this macro.
 5.10912 ++ *
 5.10913 ++ * Define this macro only if it is correct to use the default
 5.10914 ++ * definitions of ASM_ OUTPUT_SIZE_DIRECTIVE and
 5.10915 ++ * ASM_OUTPUT_MEASURED_SIZE for your system. If you need your own
 5.10916 ++ * custom definitions of those macros, or if you do not need explicit
 5.10917 ++ * symbol sizes at all, do not define this macro.
 5.10918 ++ */
 5.10919 ++#define SIZE_ASM_OP "\t.size\t"
 5.10920 ++
 5.10921 ++
 5.10922 ++/*
 5.10923 ++A C statement (sans semicolon) to output to the stdio stream
 5.10924 ++STREAM some commands that will make the label NAME global;
 5.10925 ++that is, available for reference from other files.  Use the expression
 5.10926 ++assemble_name(STREAM, NAME) to output the name
 5.10927 ++itself; before and after that, output the additional assembler syntax
 5.10928 ++for making that name global, and a newline.
 5.10929 ++*/
 5.10930 ++#define GLOBAL_ASM_OP "\t.globl\t"
 5.10931 ++
 5.10932 ++
 5.10933 ++
 5.10934 ++/*
 5.10935 ++A C expression which evaluates to true if the target supports weak symbols.
 5.10936 ++
 5.10937 ++If you don't define this macro, defaults.h provides a default
 5.10938 ++definition.  If either ASM_WEAKEN_LABEL or ASM_WEAKEN_DECL
 5.10939 ++is defined, the default definition is '1'; otherwise, it is
 5.10940 ++'0'.  Define this macro if you want to control weak symbol support
 5.10941 ++with a compiler flag such as -melf.
 5.10942 ++*/
 5.10943 ++#define SUPPORTS_WEAK 1
 5.10944 ++
 5.10945 ++/*
 5.10946 ++A C statement (sans semicolon) to output to the stdio stream
 5.10947 ++STREAM a reference in assembler syntax to a label named
 5.10948 ++NAME.  This should add '_' to the front of the name, if that
 5.10949 ++is customary on your operating system, as it is in most Berkeley Unix
 5.10950 ++systems.  This macro is used in assemble_name.
 5.10951 ++*/
 5.10952 ++#define ASM_OUTPUT_LABELREF(STREAM, NAME) \
 5.10953 ++  avr32_asm_output_labelref(STREAM, NAME)
 5.10954 ++
 5.10955 ++
 5.10956 ++
 5.10957 ++/*
 5.10958 ++A C expression to assign to OUTVAR (which is a variable of type
 5.10959 ++char *) a newly allocated string made from the string
 5.10960 ++NAME and the number NUMBER, with some suitable punctuation
 5.10961 ++added.  Use alloca to get space for the string.
 5.10962 ++
 5.10963 ++The string will be used as an argument to ASM_OUTPUT_LABELREF to
 5.10964 ++produce an assembler label for an internal static variable whose name is
 5.10965 ++NAME.  Therefore, the string must be such as to result in valid
 5.10966 ++assembler code.  The argument NUMBER is different each time this
 5.10967 ++macro is executed; it prevents conflicts between similarly-named
 5.10968 ++internal static variables in different scopes.
 5.10969 ++
 5.10970 ++Ideally this string should not be a valid C identifier, to prevent any
 5.10971 ++conflict with the user's own symbols.  Most assemblers allow periods
 5.10972 ++or percent signs in assembler symbols; putting at least one of these
 5.10973 ++between the name and the number will suffice.
 5.10974 ++*/
 5.10975 ++#define ASM_FORMAT_PRIVATE_NAME(OUTVAR, NAME, NUMBER)		\
 5.10976 ++  do								\
 5.10977 ++    {								\
 5.10978 ++      (OUTVAR) = (char *) alloca (strlen ((NAME)) + 10);	\
 5.10979 ++      sprintf ((OUTVAR), "%s.%d", (NAME), (NUMBER));		\
 5.10980 ++    }								\
 5.10981 ++  while (0)
 5.10982 ++
 5.10983 ++
 5.10984 ++/** Macros Controlling Initialization Routines **/
 5.10985 ++
 5.10986 ++
 5.10987 ++/*
 5.10988 ++If defined, main will not call __main as described above.
 5.10989 ++This macro should be defined for systems that control start-up code
 5.10990 ++on a symbol-by-symbol basis, such as OSF/1, and should not
 5.10991 ++be defined explicitly for systems that support INIT_SECTION_ASM_OP.
 5.10992 ++*/
 5.10993 ++/*
 5.10994 ++  __main is not defined when debugging.
 5.10995 ++*/
 5.10996 ++#define HAS_INIT_SECTION
 5.10997 ++
 5.10998 ++
 5.10999 ++/** Output of Assembler Instructions **/
 5.11000 ++
 5.11001 ++/*
 5.11002 ++A C initializer containing the assembler's names for the machine
 5.11003 ++registers, each one as a C string constant.  This is what translates
 5.11004 ++register numbers in the compiler into assembler language.
 5.11005 ++*/
 5.11006 ++
 5.11007 ++#define REGISTER_NAMES	\
 5.11008 ++{			\
 5.11009 ++  "pc",  "lr",		\
 5.11010 ++  "sp",  "r12",		\
 5.11011 ++  "r11", "r10",		\
 5.11012 ++  "r9",  "r8",		\
 5.11013 ++  "r7",  "r6",		\
 5.11014 ++  "r5",  "r4",		\
 5.11015 ++  "r3",  "r2",		\
 5.11016 ++  "r1",  "r0",		\
 5.11017 ++  "f15","f14",		\
 5.11018 ++  "f13","f12",		\
 5.11019 ++  "f11","f10",		\
 5.11020 ++  "f9", "f8",		\
 5.11021 ++  "f7", "f6",		\
 5.11022 ++  "f5", "f4",		\
 5.11023 ++  "f3", "f2",		\
 5.11024 ++  "f1", "f0"		\
 5.11025 ++}
 5.11026 ++
 5.11027 ++/*
 5.11028 ++A C compound statement to output to stdio stream STREAM the
 5.11029 ++assembler syntax for an instruction operand X.  X is an
 5.11030 ++RTL expression.
 5.11031 ++
 5.11032 ++CODE is a value that can be used to specify one of several ways
 5.11033 ++of printing the operand.  It is used when identical operands must be
 5.11034 ++printed differently depending on the context.  CODE comes from
 5.11035 ++the '%' specification that was used to request printing of the
 5.11036 ++operand.  If the specification was just '%digit' then
 5.11037 ++CODE is 0; if the specification was '%ltr digit'
 5.11038 ++then CODE is the ASCII code for ltr.
 5.11039 ++
 5.11040 ++If X is a register, this macro should print the register's name.
 5.11041 ++The names can be found in an array reg_names whose type is
 5.11042 ++char *[].  reg_names is initialized from REGISTER_NAMES.
 5.11043 ++
 5.11044 ++When the machine description has a specification '%punct'
 5.11045 ++(a '%' followed by a punctuation character), this macro is called
 5.11046 ++with a null pointer for X and the punctuation character for
 5.11047 ++CODE.
 5.11048 ++*/
 5.11049 ++#define PRINT_OPERAND(STREAM, X, CODE) avr32_print_operand(STREAM, X, CODE)
 5.11050 ++
 5.11051 ++/* A C statement to be executed just prior to the output of
 5.11052 ++   assembler code for INSN, to modify the extracted operands so
 5.11053 ++   they will be output differently.
 5.11054 ++
 5.11055 ++   Here the argument OPVEC is the vector containing the operands
 5.11056 ++   extracted from INSN, and NOPERANDS is the number of elements of
 5.11057 ++   the vector which contain meaningful data for this insn.
 5.11058 ++   The contents of this vector are what will be used to convert the insn
 5.11059 ++   template into assembler code, so you can change the assembler output
 5.11060 ++   by changing the contents of the vector.  */
 5.11061 ++#define FINAL_PRESCAN_INSN(INSN, OPVEC, NOPERANDS) \
 5.11062 ++  avr32_final_prescan_insn ((INSN), (OPVEC), (NOPERANDS))
 5.11063 ++
 5.11064 ++/*
 5.11065 ++A C expression which evaluates to true if CODE is a valid
 5.11066 ++punctuation character for use in the PRINT_OPERAND macro.  If
 5.11067 ++PRINT_OPERAND_PUNCT_VALID_P is not defined, it means that no
 5.11068 ++punctuation characters (except for the standard one, '%') are used
 5.11069 ++in this way.
 5.11070 ++*/
 5.11071 ++#define PRINT_OPERAND_PUNCT_VALID_P(CODE)                          \
 5.11072 ++  (((CODE) == '?')                                                 \
 5.11073 ++   || ((CODE) == '!'))
 5.11074 ++
 5.11075 ++/*
 5.11076 ++A C compound statement to output to stdio stream STREAM the
 5.11077 ++assembler syntax for an instruction operand that is a memory reference
 5.11078 ++whose address is X.  X is an RTL expression.
 5.11079 ++
 5.11080 ++On some machines, the syntax for a symbolic address depends on the
 5.11081 ++section that the address refers to.  On these machines, define the macro
 5.11082 ++ENCODE_SECTION_INFO to store the information into the
 5.11083 ++symbol_ref, and then check for it here.  (see Assembler Format.)
 5.11084 ++*/
 5.11085 ++#define PRINT_OPERAND_ADDRESS(STREAM, X) avr32_print_operand_address(STREAM, X)
 5.11086 ++
 5.11087 ++
 5.11088 ++/** Output of Dispatch Tables **/
 5.11089 ++
 5.11090 ++/*
 5.11091 ++ * A C statement to output to the stdio stream stream an assembler
 5.11092 ++ * pseudo-instruction to generate a difference between two
 5.11093 ++ * labels. value and rel are the numbers of two internal labels. The
 5.11094 ++ * definitions of these labels are output using
 5.11095 ++ * (*targetm.asm_out.internal_label), and they must be printed in the
 5.11096 ++ * same way here. For example,
 5.11097 ++ *
 5.11098 ++ *         fprintf (stream, "\t.word L%d-L%d\n",
 5.11099 ++ *                  value, rel)
 5.11100 ++ *
 5.11101 ++ * You must provide this macro on machines where the addresses in a
 5.11102 ++ * dispatch table are relative to the table's own address. If defined,
 5.11103 ++ * GCC will also use this macro on all machines when producing
 5.11104 ++ * PIC. body is the body of the ADDR_DIFF_VEC; it is provided so that
 5.11105 ++ * the mode and flags can be read.
 5.11106 ++ */
 5.11107 ++#define ASM_OUTPUT_ADDR_DIFF_ELT(STREAM, BODY, VALUE, REL)	    \
 5.11108 ++    fprintf(STREAM, "\tbral\t%sL%d\n", LOCAL_LABEL_PREFIX, VALUE)
 5.11109 ++
 5.11110 ++/*
 5.11111 ++This macro should be provided on machines where the addresses
 5.11112 ++in a dispatch table are absolute.
 5.11113 ++
 5.11114 ++The definition should be a C statement to output to the stdio stream
 5.11115 ++STREAM an assembler pseudo-instruction to generate a reference to
 5.11116 ++a label.  VALUE is the number of an internal label whose
 5.11117 ++definition is output using ASM_OUTPUT_INTERNAL_LABEL.
 5.11118 ++For example,
 5.11119 ++
 5.11120 ++fprintf(STREAM, "\t.word L%d\n", VALUE)
 5.11121 ++*/
 5.11122 ++
 5.11123 ++#define ASM_OUTPUT_ADDR_VEC_ELT(STREAM, VALUE)  \
 5.11124 ++  fprintf(STREAM, "\t.long %sL%d\n", LOCAL_LABEL_PREFIX, VALUE)
 5.11125 ++
 5.11126 ++/** Assembler Commands for Exception Regions */
 5.11127 ++
 5.11128 ++/* ToDo: All of this subsection */
 5.11129 ++
 5.11130 ++/** Assembler Commands for Alignment */
 5.11131 ++
 5.11132 ++
 5.11133 ++/*
 5.11134 ++A C statement to output to the stdio stream STREAM an assembler
 5.11135 ++command to advance the location counter to a multiple of 2 to the
 5.11136 ++POWER bytes.  POWER will be a C expression of type int.
 5.11137 ++*/
 5.11138 ++#define ASM_OUTPUT_ALIGN(STREAM, POWER)			\
 5.11139 ++  do							\
 5.11140 ++    {							\
 5.11141 ++      if ((POWER) != 0)					\
 5.11142 ++	fprintf(STREAM, "\t.align\t%d\n", POWER);	\
 5.11143 ++    }							\
 5.11144 ++  while (0)
 5.11145 ++
 5.11146 ++/*
 5.11147 ++Like ASM_OUTPUT_ALIGN, except that the \nop" instruction is used for padding, if
 5.11148 ++necessary.
 5.11149 ++*/
 5.11150 ++#define ASM_OUTPUT_ALIGN_WITH_NOP(STREAM, POWER) \
 5.11151 ++ fprintf(STREAM, "\t.balignw\t%d, 0xd703\n", (1 << POWER))
 5.11152 ++
 5.11153 ++
 5.11154 ++
 5.11155 ++/******************************************************************************
 5.11156 ++ * Controlling Debugging Information Format
 5.11157 ++ *****************************************************************************/
 5.11158 ++
 5.11159 ++/* How to renumber registers for dbx and gdb.  */
 5.11160 ++#define DBX_REGISTER_NUMBER(REGNO) ASM_REGNUM (REGNO)
 5.11161 ++
 5.11162 ++/* The DWARF 2 CFA column which tracks the return address.  */
 5.11163 ++#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM(LR_REGNUM)
 5.11164 ++
 5.11165 ++/*
 5.11166 ++Define this macro if GCC should produce dwarf version 2 format
 5.11167 ++debugging output in response to the -g option.
 5.11168 ++
 5.11169 ++To support optional call frame debugging information, you must also
 5.11170 ++define INCOMING_RETURN_ADDR_RTX and either set
 5.11171 ++RTX_FRAME_RELATED_P on the prologue insns if you use RTL for the
 5.11172 ++prologue, or call dwarf2out_def_cfa and dwarf2out_reg_save
 5.11173 ++as appropriate from TARGET_ASM_FUNCTION_PROLOGUE if you don't.
 5.11174 ++*/
 5.11175 ++#define DWARF2_DEBUGGING_INFO 1
 5.11176 ++
 5.11177 ++
 5.11178 ++#define DWARF2_ASM_LINE_DEBUG_INFO 1
 5.11179 ++#define DWARF2_FRAME_INFO 1
 5.11180 ++
 5.11181 ++
 5.11182 ++/******************************************************************************
 5.11183 ++ * Miscellaneous Parameters
 5.11184 ++ *****************************************************************************/
 5.11185 ++
 5.11186 ++/* ToDo: a lot */
 5.11187 ++
 5.11188 ++/*
 5.11189 ++An alias for a machine mode name.  This is the machine mode that
 5.11190 ++elements of a jump-table should have.
 5.11191 ++*/
 5.11192 ++#define CASE_VECTOR_MODE SImode
 5.11193 ++
 5.11194 ++/*
 5.11195 ++Define this macro to be a C expression to indicate when jump-tables
 5.11196 ++should contain relative addresses.  If jump-tables never contain
 5.11197 ++relative addresses, then you need not define this macro.
 5.11198 ++*/
 5.11199 ++#define CASE_VECTOR_PC_RELATIVE 0
 5.11200 ++
 5.11201 ++/* Increase the threshold for using table jumps on the UC arch. */
 5.11202 ++#define CASE_VALUES_THRESHOLD  (TARGET_BRANCH_PRED ? 4 : 7)
 5.11203 ++
 5.11204 ++/*
 5.11205 ++The maximum number of bytes that a single instruction can move quickly
 5.11206 ++between memory and registers or between two memory locations.
 5.11207 ++*/
 5.11208 ++#define MOVE_MAX (2*UNITS_PER_WORD)
 5.11209 ++
 5.11210 ++
 5.11211 ++/* A C expression that is nonzero if on this machine the number of bits actually used
 5.11212 ++   for the count of a shift operation is equal to the number of bits needed to represent
 5.11213 ++   the size of the object being shifted. When this macro is nonzero, the compiler will
 5.11214 ++   assume that it is safe to omit a sign-extend, zero-extend, and certain bitwise 'and'
 5.11215 ++   instructions that truncates the count of a shift operation. On machines that have
 5.11216 ++   instructions that act on bit-fields at variable positions, which may include 'bit test'
 5.11217 ++   378 GNU Compiler Collection (GCC) Internals
 5.11218 ++   instructions, a nonzero SHIFT_COUNT_TRUNCATED also enables deletion of truncations
 5.11219 ++   of the values that serve as arguments to bit-field instructions.
 5.11220 ++   If both types of instructions truncate the count (for shifts) and position (for bit-field
 5.11221 ++   operations), or if no variable-position bit-field instructions exist, you should define
 5.11222 ++   this macro.
 5.11223 ++   However, on some machines, such as the 80386 and the 680x0, truncation only applies
 5.11224 ++   to shift operations and not the (real or pretended) bit-field operations. Define SHIFT_
 5.11225 ++   COUNT_TRUNCATED to be zero on such machines. Instead, add patterns to the 'md' file
 5.11226 ++   that include the implied truncation of the shift instructions.
 5.11227 ++   You need not dene this macro if it would always have the value of zero. */
 5.11228 ++#define SHIFT_COUNT_TRUNCATED 1
 5.11229 ++
 5.11230 ++/*
 5.11231 ++A C expression which is nonzero if on this machine it is safe to
 5.11232 ++convert an integer of INPREC bits to one of OUTPREC
 5.11233 ++bits (where OUTPREC is smaller than INPREC) by merely
 5.11234 ++operating on it as if it had only OUTPREC bits.
 5.11235 ++
 5.11236 ++On many machines, this expression can be 1.
 5.11237 ++
 5.11238 ++When TRULY_NOOP_TRUNCATION returns 1 for a pair of sizes for
 5.11239 ++modes for which MODES_TIEABLE_P is 0, suboptimal code can result.
 5.11240 ++If this is the case, making TRULY_NOOP_TRUNCATION return 0 in
 5.11241 ++such cases may improve things.
 5.11242 ++*/
 5.11243 ++#define TRULY_NOOP_TRUNCATION(OUTPREC, INPREC) 1
 5.11244 ++
 5.11245 ++/*
 5.11246 ++An alias for the machine mode for pointers.  On most machines, define
 5.11247 ++this to be the integer mode corresponding to the width of a hardware
 5.11248 ++pointer; SImode on 32-bit machine or DImode on 64-bit machines.
 5.11249 ++On some machines you must define this to be one of the partial integer
 5.11250 ++modes, such as PSImode.
 5.11251 ++
 5.11252 ++The width of Pmode must be at least as large as the value of
 5.11253 ++POINTER_SIZE.  If it is not equal, you must define the macro
 5.11254 ++POINTERS_EXTEND_UNSIGNED to specify how pointers are extended
 5.11255 ++to Pmode.
 5.11256 ++*/
 5.11257 ++#define Pmode SImode
 5.11258 ++
 5.11259 ++/*
 5.11260 ++An alias for the machine mode used for memory references to functions
 5.11261 ++being called, in call RTL expressions.  On most machines this
 5.11262 ++should be QImode.
 5.11263 ++*/
 5.11264 ++#define FUNCTION_MODE SImode
 5.11265 ++
 5.11266 ++
 5.11267 ++#define REG_S_P(x) \
 5.11268 ++ (REG_P (x) || (GET_CODE (x) == SUBREG && REG_P (XEXP (x, 0))))
 5.11269 ++
 5.11270 ++
 5.11271 ++/* If defined, modifies the length assigned to instruction INSN as a
 5.11272 ++   function of the context in which it is used.  LENGTH is an lvalue
 5.11273 ++   that contains the initially computed length of the insn and should
 5.11274 ++   be updated with the correct length of the insn.  */
 5.11275 ++#define ADJUST_INSN_LENGTH(INSN, LENGTH) \
 5.11276 ++  ((LENGTH) = avr32_adjust_insn_length ((INSN), (LENGTH)))
 5.11277 ++
 5.11278 ++
 5.11279 ++#define CLZ_DEFINED_VALUE_AT_ZERO(mode, value) \
 5.11280 ++  (value = 32, (mode == SImode))
 5.11281 ++
 5.11282 ++#define CTZ_DEFINED_VALUE_AT_ZERO(mode, value) \
 5.11283 ++  (value = 32, (mode == SImode))
 5.11284 ++
 5.11285 ++#define UNITS_PER_SIMD_WORD UNITS_PER_WORD
 5.11286 ++
 5.11287 ++#define STORE_FLAG_VALUE 1
 5.11288 ++
 5.11289 ++
 5.11290 ++/* IF-conversion macros. */
 5.11291 ++#define IFCVT_MODIFY_INSN( CE_INFO, PATTERN, INSN )                     \
 5.11292 ++  {                                                                     \
 5.11293 ++    (PATTERN) = avr32_ifcvt_modify_insn (CE_INFO, PATTERN, INSN, &num_true_changes); \
 5.11294 ++  }
 5.11295 ++
 5.11296 ++#define IFCVT_EXTRA_FIELDS                              \
 5.11297 ++  int num_cond_clobber_insns;                           \
 5.11298 ++  int num_extra_move_insns;                             \
 5.11299 ++  rtx extra_move_insns[MAX_CONDITIONAL_EXECUTE];        \
 5.11300 ++  rtx moved_insns[MAX_CONDITIONAL_EXECUTE];
 5.11301 ++
 5.11302 ++#define IFCVT_INIT_EXTRA_FIELDS( CE_INFO )       \
 5.11303 ++  {                                              \
 5.11304 ++    (CE_INFO)->num_cond_clobber_insns = 0;       \
 5.11305 ++    (CE_INFO)->num_extra_move_insns = 0;         \
 5.11306 ++  }
 5.11307 ++
 5.11308 ++
 5.11309 ++#define IFCVT_MODIFY_CANCEL( CE_INFO )  avr32_ifcvt_modify_cancel (CE_INFO, &num_true_changes)
 5.11310 ++
 5.11311 ++#define IFCVT_ALLOW_MODIFY_TEST_IN_INSN 1
 5.11312 ++#define IFCVT_COND_EXEC_BEFORE_RELOAD (TARGET_COND_EXEC_BEFORE_RELOAD)
 5.11313 ++
 5.11314 ++enum avr32_builtins
 5.11315 ++{
 5.11316 ++  AVR32_BUILTIN_MTSR,
 5.11317 ++  AVR32_BUILTIN_MFSR,
 5.11318 ++  AVR32_BUILTIN_MTDR,
 5.11319 ++  AVR32_BUILTIN_MFDR,
 5.11320 ++  AVR32_BUILTIN_CACHE,
 5.11321 ++  AVR32_BUILTIN_SYNC,
 5.11322 ++  AVR32_BUILTIN_SSRF,
 5.11323 ++  AVR32_BUILTIN_CSRF,
 5.11324 ++  AVR32_BUILTIN_TLBR,
 5.11325 ++  AVR32_BUILTIN_TLBS,
 5.11326 ++  AVR32_BUILTIN_TLBW,
 5.11327 ++  AVR32_BUILTIN_BREAKPOINT,
 5.11328 ++  AVR32_BUILTIN_XCHG,
 5.11329 ++  AVR32_BUILTIN_LDXI,
 5.11330 ++  AVR32_BUILTIN_BSWAP16,
 5.11331 ++  AVR32_BUILTIN_BSWAP32,
 5.11332 ++  AVR32_BUILTIN_COP,
 5.11333 ++  AVR32_BUILTIN_MVCR_W,
 5.11334 ++  AVR32_BUILTIN_MVRC_W,
 5.11335 ++  AVR32_BUILTIN_MVCR_D,
 5.11336 ++  AVR32_BUILTIN_MVRC_D,
 5.11337 ++  AVR32_BUILTIN_MULSATHH_H,
 5.11338 ++  AVR32_BUILTIN_MULSATHH_W,
 5.11339 ++  AVR32_BUILTIN_MULSATRNDHH_H,
 5.11340 ++  AVR32_BUILTIN_MULSATRNDWH_W,
 5.11341 ++  AVR32_BUILTIN_MULSATWH_W,
 5.11342 ++  AVR32_BUILTIN_MACSATHH_W,
 5.11343 ++  AVR32_BUILTIN_SATADD_H,
 5.11344 ++  AVR32_BUILTIN_SATSUB_H,
 5.11345 ++  AVR32_BUILTIN_SATADD_W,
 5.11346 ++  AVR32_BUILTIN_SATSUB_W,
 5.11347 ++  AVR32_BUILTIN_MULWH_D,
 5.11348 ++  AVR32_BUILTIN_MULNWH_D,
 5.11349 ++  AVR32_BUILTIN_MACWH_D,
 5.11350 ++  AVR32_BUILTIN_MACHH_D,
 5.11351 ++  AVR32_BUILTIN_MUSFR,
 5.11352 ++  AVR32_BUILTIN_MUSTR,
 5.11353 ++  AVR32_BUILTIN_SATS,
 5.11354 ++  AVR32_BUILTIN_SATU,
 5.11355 ++  AVR32_BUILTIN_SATRNDS,
 5.11356 ++  AVR32_BUILTIN_SATRNDU,
 5.11357 ++  AVR32_BUILTIN_MEMS,
 5.11358 ++  AVR32_BUILTIN_MEMC,
 5.11359 ++  AVR32_BUILTIN_MEMT
 5.11360 ++};
 5.11361 ++
 5.11362 ++
 5.11363 ++#define FLOAT_LIB_COMPARE_RETURNS_BOOL(MODE, COMPARISON) \
 5.11364 ++  ((MODE == SFmode) || (MODE == DFmode))
 5.11365 ++
 5.11366 ++#define RENAME_LIBRARY_SET ".set"
 5.11367 ++
 5.11368 ++/* Make ABI_NAME an alias for __GCC_NAME.  */
 5.11369 ++#define RENAME_LIBRARY(GCC_NAME, ABI_NAME)		\
 5.11370 ++  __asm__ (".globl\t__avr32_" #ABI_NAME "\n"		\
 5.11371 ++	   ".set\t__avr32_" #ABI_NAME 	\
 5.11372 ++	     ", __" #GCC_NAME "\n");
 5.11373 ++
 5.11374 ++/* Give libgcc functions avr32 ABI name.  */
 5.11375 ++#ifdef L_muldi3
 5.11376 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (muldi3, mul64)
 5.11377 ++#endif
 5.11378 ++#ifdef L_divdi3
 5.11379 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (divdi3, sdiv64)
 5.11380 ++#endif
 5.11381 ++#ifdef L_udivdi3
 5.11382 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (udivdi3, udiv64)
 5.11383 ++#endif
 5.11384 ++#ifdef L_moddi3
 5.11385 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (moddi3, smod64)
 5.11386 ++#endif
 5.11387 ++#ifdef L_umoddi3
 5.11388 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (umoddi3, umod64)
 5.11389 ++#endif
 5.11390 ++#ifdef L_ashldi3
 5.11391 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (ashldi3, lsl64)
 5.11392 ++#endif
 5.11393 ++#ifdef L_lshrdi3
 5.11394 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (lshrdi3, lsr64)
 5.11395 ++#endif
 5.11396 ++#ifdef L_ashrdi3
 5.11397 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (ashrdi3, asr64)
 5.11398 ++#endif
 5.11399 ++
 5.11400 ++#ifdef L_fixsfdi
 5.11401 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixsfdi, f32_to_s64)
 5.11402 ++#endif
 5.11403 ++#ifdef L_fixunssfdi
 5.11404 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfdi, f32_to_u64)
 5.11405 ++#endif
 5.11406 ++#ifdef L_floatdidf
 5.11407 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdidf, s64_to_f64)
 5.11408 ++#endif
 5.11409 ++#ifdef L_floatdisf
 5.11410 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdisf, s64_to_f32)
 5.11411 ++#endif
 5.11412 ++
 5.11413 ++#endif
 5.11414 +--- /dev/null
 5.11415 ++++ b/gcc/config/avr32/avr32.md
 5.11416 +@@ -0,0 +1,4893 @@
 5.11417 ++;;   AVR32 machine description file.
 5.11418 ++;;   Copyright 2003-2006 Atmel Corporation.
 5.11419 ++;;
 5.11420 ++;;   Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com>
 5.11421 ++;;
 5.11422 ++;;   This file is part of GCC.
 5.11423 ++;;
 5.11424 ++;;   This program is free software; you can redistribute it and/or modify
 5.11425 ++;;   it under the terms of the GNU General Public License as published by
 5.11426 ++;;   the Free Software Foundation; either version 2 of the License, or
 5.11427 ++;;   (at your option) any later version.
 5.11428 ++;;
 5.11429 ++;;   This program is distributed in the hope that it will be useful,
 5.11430 ++;;   but WITHOUT ANY WARRANTY; without even the implied warranty of
 5.11431 ++;;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 5.11432 ++;;   GNU General Public License for more details.
 5.11433 ++;;
 5.11434 ++;;   You should have received a copy of the GNU General Public License
 5.11435 ++;;   along with this program; if not, write to the Free Software
 5.11436 ++;;   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 5.11437 ++
 5.11438 ++;; -*- Mode: Scheme -*-
 5.11439 ++
 5.11440 ++(define_attr "type" "alu,alu2,alu_sat,mulhh,mulwh,mulww_w,mulww_d,div,machh_w,macww_w,macww_d,branch,call,load,load_rm,store,load2,load4,store2,store4,fmul,fcmps,fcmpd,fcast,fmv,fmvcpu,fldd,fstd,flds,fsts,fstm"
 5.11441 ++  (const_string "alu"))
 5.11442 ++
 5.11443 ++
 5.11444 ++(define_attr "cc" "none,set_vncz,set_ncz,set_cz,set_z,set_z_if_not_v2,bld,compare,cmp_cond_insn,clobber,call_set,fpcompare,from_fpcc"
 5.11445 ++  (const_string "none"))
 5.11446 ++
 5.11447 ++
 5.11448 ++; NB! Keep this in sync with enum architecture_type in avr32.h
 5.11449 ++(define_attr "pipeline" "ap,ucr1,ucr2,ucr2nomul"
 5.11450 ++  (const (symbol_ref "avr32_arch->arch_type")))
 5.11451 ++
 5.11452 ++; Insn length in bytes
 5.11453 ++(define_attr "length" ""
 5.11454 ++  (const_int 4))
 5.11455 ++
 5.11456 ++; Signal if an insn is predicable and hence can be conditionally executed.
 5.11457 ++(define_attr "predicable" "no,yes" (const_string "no"))
 5.11458 ++
 5.11459 ++;; Uses of UNSPEC in this file:
 5.11460 ++(define_constants
 5.11461 ++  [(UNSPEC_PUSHM                0)
 5.11462 ++   (UNSPEC_POPM                 1)
 5.11463 ++   (UNSPEC_UDIVMODSI4_INTERNAL	2)
 5.11464 ++   (UNSPEC_DIVMODSI4_INTERNAL   3)
 5.11465 ++   (UNSPEC_STM                  4)
 5.11466 ++   (UNSPEC_LDM                  5)
 5.11467 ++   (UNSPEC_MOVSICC              6)
 5.11468 ++   (UNSPEC_ADDSICC              7)
 5.11469 ++   (UNSPEC_COND_MI              8)
 5.11470 ++   (UNSPEC_COND_PL              9)
 5.11471 ++   (UNSPEC_PIC_SYM              10)
 5.11472 ++   (UNSPEC_PIC_BASE             11)
 5.11473 ++   (UNSPEC_STORE_MULTIPLE       12)
 5.11474 ++   (UNSPEC_STMFP                13)
 5.11475 ++   (UNSPEC_FPCC_TO_REG          14)
 5.11476 ++   (UNSPEC_REG_TO_CC            15)
 5.11477 ++   (UNSPEC_FORCE_MINIPOOL       16)
 5.11478 ++   (UNSPEC_SATS                 17)
 5.11479 ++   (UNSPEC_SATU                 18)
 5.11480 ++   (UNSPEC_SATRNDS              19)
 5.11481 ++   (UNSPEC_SATRNDU              20)
 5.11482 ++  ])
 5.11483 ++
 5.11484 ++(define_constants
 5.11485 ++  [(VUNSPEC_EPILOGUE                  0)
 5.11486 ++   (VUNSPEC_CACHE                     1)
 5.11487 ++   (VUNSPEC_MTSR                      2)
 5.11488 ++   (VUNSPEC_MFSR                      3)
 5.11489 ++   (VUNSPEC_BLOCKAGE                  4)
 5.11490 ++   (VUNSPEC_SYNC                      5)
 5.11491 ++   (VUNSPEC_TLBR                      6)
 5.11492 ++   (VUNSPEC_TLBW                      7)
 5.11493 ++   (VUNSPEC_TLBS                      8)
 5.11494 ++   (VUNSPEC_BREAKPOINT                9)
 5.11495 ++   (VUNSPEC_MTDR                      10)
 5.11496 ++   (VUNSPEC_MFDR                      11)
 5.11497 ++   (VUNSPEC_MVCR                      12)
 5.11498 ++   (VUNSPEC_MVRC                      13)
 5.11499 ++   (VUNSPEC_COP                       14)
 5.11500 ++   (VUNSPEC_ALIGN                     15)
 5.11501 ++   (VUNSPEC_POOL_START                16)
 5.11502 ++   (VUNSPEC_POOL_END                  17)
 5.11503 ++   (VUNSPEC_POOL_4                    18)
 5.11504 ++   (VUNSPEC_POOL_8                    19)
 5.11505 ++   (VUNSPEC_POOL_16                   20)
 5.11506 ++   (VUNSPEC_MUSFR                     21)
 5.11507 ++   (VUNSPEC_MUSTR                     22)
 5.11508 ++   (VUNSPEC_SYNC_CMPXCHG              23)
 5.11509 ++   (VUNSPEC_SYNC_SET_LOCK_AND_LOAD    24)
 5.11510 ++   (VUNSPEC_SYNC_STORE_IF_LOCK        25)
 5.11511 ++   (VUNSPEC_EH_RETURN                 26)
 5.11512 ++   (VUNSPEC_FRS                       27)
 5.11513 ++   (VUNSPEC_CSRF                      28)
 5.11514 ++   (VUNSPEC_SSRF                      29)
 5.11515 ++   ])
 5.11516 ++
 5.11517 ++(define_constants
 5.11518 ++  [
 5.11519 ++   ;; R7 = 15-7 = 8
 5.11520 ++   (FP_REGNUM   8)
 5.11521 ++   ;; Return Register = R12 = 15 - 12 = 3
 5.11522 ++   (RETVAL_REGNUM   3)
 5.11523 ++   ;; SP = R13 = 15 - 13 = 2
 5.11524 ++   (SP_REGNUM   2)
 5.11525 ++   ;; LR = R14 = 15 - 14 = 1
 5.11526 ++   (LR_REGNUM   1)
 5.11527 ++   ;; PC = R15 = 15 - 15 = 0
 5.11528 ++   (PC_REGNUM   0)
 5.11529 ++   ;; FPSR = GENERAL_REGS + 1 = 17
 5.11530 ++   (FPCC_REGNUM 17)
 5.11531 ++   ])
 5.11532 ++
 5.11533 ++
 5.11534 ++
 5.11535 ++
 5.11536 ++;;******************************************************************************
 5.11537 ++;; Macros
 5.11538 ++;;******************************************************************************
 5.11539 ++
 5.11540 ++;; Integer Modes for basic alu insns
 5.11541 ++(define_mode_macro INTM [SI HI QI])
 5.11542 ++(define_mode_attr  alu_cc_attr [(SI "set_vncz") (HI "clobber") (QI "clobber")])
 5.11543 ++
 5.11544 ++;; Move word modes
 5.11545 ++(define_mode_macro MOVM [SI V2HI V4QI])
 5.11546 ++
 5.11547 ++;; For mov/addcc insns
 5.11548 ++(define_mode_macro ADDCC [SI HI QI])
 5.11549 ++(define_mode_macro MOVCC [SF SI HI QI])
 5.11550 ++(define_mode_macro CMP [DI SI HI QI])
 5.11551 ++(define_mode_attr  store_postfix [(SF ".w") (SI ".w") (HI ".h") (QI ".b")])
 5.11552 ++(define_mode_attr  load_postfix [(SF ".w") (SI ".w") (HI ".sh") (QI ".ub")])
 5.11553 ++(define_mode_attr  load_postfix_s [(SI ".w") (HI ".sh") (QI ".sb")])
 5.11554 ++(define_mode_attr  load_postfix_u [(SI ".w") (HI ".uh") (QI ".ub")])
 5.11555 ++(define_mode_attr  pred_mem_constraint [(SF "RKu11") (SI "RKu11") (HI "RKu10") (QI "RKu09")])
 5.11556 ++(define_mode_attr  cmp_constraint [(DI "rKu20") (SI "rKs21") (HI "r") (QI "r")])
 5.11557 ++(define_mode_attr  cmp_predicate [(DI "register_immediate_operand")
 5.11558 ++                                  (SI "register_const_int_operand")
 5.11559 ++                                  (HI "register_operand")
 5.11560 ++                                  (QI "register_operand")])
 5.11561 ++(define_mode_attr  cmp_length [(DI "6")
 5.11562 ++                               (SI "4")
 5.11563 ++                               (HI "4")
 5.11564 ++                               (QI "4")])
 5.11565 ++
 5.11566 ++;; For all conditional insns
 5.11567 ++(define_code_macro any_cond [eq ne gt ge lt le gtu geu ltu leu])
 5.11568 ++(define_code_attr cond [(eq "eq") (ne "ne") (gt "gt") (ge "ge") (lt "lt") (le "le")
 5.11569 ++                        (gtu "hi") (geu "hs") (ltu "lo") (leu "ls")])
 5.11570 ++(define_code_attr invcond [(eq "ne") (ne "eq") (gt "le") (ge "lt") (lt "ge") (le "gt")
 5.11571 ++                           (gtu "ls") (geu "lo") (ltu "hs") (leu "hi")])
 5.11572 ++
 5.11573 ++;; For logical operations
 5.11574 ++(define_code_macro logical [and ior xor])
 5.11575 ++(define_code_attr logical_insn [(and "and") (ior "or") (xor "eor")])
 5.11576 ++
 5.11577 ++;; Predicable operations with three register operands 
 5.11578 ++(define_code_macro predicable_op3 [and ior xor plus minus])
 5.11579 ++(define_code_attr predicable_insn3 [(and "and") (ior "or") (xor "eor") (plus "add") (minus "sub")])
 5.11580 ++(define_code_attr predicable_commutative3 [(and "%") (ior "%") (xor "%") (plus "%") (minus "")])
 5.11581 ++
 5.11582 ++;; Load the predicates
 5.11583 ++(include "predicates.md")
 5.11584 ++
 5.11585 ++
 5.11586 ++;;******************************************************************************
 5.11587 ++;; Automaton pipeline description for avr32
 5.11588 ++;;******************************************************************************
 5.11589 ++
 5.11590 ++(define_automaton "avr32_ap")
 5.11591 ++
 5.11592 ++
 5.11593 ++(define_cpu_unit "is" "avr32_ap")
 5.11594 ++(define_cpu_unit "a1,m1,da" "avr32_ap")
 5.11595 ++(define_cpu_unit "a2,m2,d" "avr32_ap")
 5.11596 ++
 5.11597 ++;;Alu instructions
 5.11598 ++(define_insn_reservation "alu_op" 1
 5.11599 ++  (and (eq_attr "pipeline" "ap")
 5.11600 ++       (eq_attr "type" "alu"))
 5.11601 ++  "is,a1,a2")
 5.11602 ++
 5.11603 ++(define_insn_reservation "alu2_op" 2
 5.11604 ++  (and (eq_attr "pipeline" "ap")
 5.11605 ++       (eq_attr "type" "alu2"))
 5.11606 ++  "is,is+a1,a1+a2,a2")
 5.11607 ++
 5.11608 ++(define_insn_reservation "alu_sat_op" 2
 5.11609 ++  (and (eq_attr "pipeline" "ap")
 5.11610 ++       (eq_attr "type" "alu_sat"))
 5.11611 ++  "is,a1,a2")
 5.11612 ++
 5.11613 ++
 5.11614 ++;;Mul instructions
 5.11615 ++(define_insn_reservation "mulhh_op" 2
 5.11616 ++  (and (eq_attr "pipeline" "ap")
 5.11617 ++       (eq_attr "type" "mulhh,mulwh"))
 5.11618 ++  "is,m1,m2")
 5.11619 ++
 5.11620 ++(define_insn_reservation "mulww_w_op" 3
 5.11621 ++  (and (eq_attr "pipeline" "ap")
 5.11622 ++       (eq_attr "type" "mulww_w"))
 5.11623 ++  "is,m1,m1+m2,m2")
 5.11624 ++
 5.11625 ++(define_insn_reservation "mulww_d_op" 5
 5.11626 ++  (and (eq_attr "pipeline" "ap")
 5.11627 ++       (eq_attr "type" "mulww_d"))
 5.11628 ++  "is,m1,m1+m2,m1+m2,m2,m2")
 5.11629 ++
 5.11630 ++(define_insn_reservation "div_op" 33
 5.11631 ++  (and (eq_attr "pipeline" "ap")
 5.11632 ++       (eq_attr "type" "div"))
 5.11633 ++  "is,m1,m1*31 + m2*31,m2")
 5.11634 ++
 5.11635 ++(define_insn_reservation "machh_w_op" 3
 5.11636 ++  (and (eq_attr "pipeline" "ap")
 5.11637 ++       (eq_attr "type" "machh_w"))
 5.11638 ++  "is*2,m1,m2")
 5.11639 ++
 5.11640 ++
 5.11641 ++(define_insn_reservation "macww_w_op" 4
 5.11642 ++  (and (eq_attr "pipeline" "ap")
 5.11643 ++       (eq_attr "type" "macww_w"))
 5.11644 ++  "is*2,m1,m1,m2")
 5.11645 ++
 5.11646 ++
 5.11647 ++(define_insn_reservation "macww_d_op" 6
 5.11648 ++  (and (eq_attr "pipeline" "ap")
 5.11649 ++       (eq_attr "type" "macww_d"))
 5.11650 ++  "is*2,m1,m1+m2,m1+m2,m2")
 5.11651 ++
 5.11652 ++;;Bypasses for Mac instructions, because of accumulator cache.
 5.11653 ++;;Set latency as low as possible in order to let the compiler let
 5.11654 ++;;mul -> mac and mac -> mac combinations which use the same
 5.11655 ++;;accumulator cache be placed close together to avoid any
 5.11656 ++;;instructions which can ruin the accumulator cache come inbetween.
 5.11657 ++(define_bypass 4 "machh_w_op" "alu_op,alu2_op,alu_sat_op,load_op" "avr32_mul_waw_bypass")
 5.11658 ++(define_bypass 5 "macww_w_op" "alu_op,alu2_op,alu_sat_op,load_op" "avr32_mul_waw_bypass")
 5.11659 ++(define_bypass 7 "macww_d_op" "alu_op,alu2_op,alu_sat_op,load_op" "avr32_mul_waw_bypass")
 5.11660 ++
 5.11661 ++(define_bypass 3 "mulhh_op" "alu_op,alu2_op,alu_sat_op,load_op" "avr32_mul_waw_bypass")
 5.11662 ++(define_bypass 4 "mulww_w_op" "alu_op,alu2_op,alu_sat_op,load_op" "avr32_mul_waw_bypass")
 5.11663 ++(define_bypass 6 "mulww_d_op" "alu_op,alu2_op,alu_sat_op,load_op" "avr32_mul_waw_bypass")
 5.11664 ++
 5.11665 ++
 5.11666 ++;;Bypasses for all mul/mac instructions followed by an instruction
 5.11667 ++;;which reads the output AND writes the result to the same register.
 5.11668 ++;;This will generate an Write After Write hazard which gives an
 5.11669 ++;;extra cycle before the result is ready.
 5.11670 ++(define_bypass 0 "machh_w_op" "machh_w_op" "avr32_valid_macmac_bypass")
 5.11671 ++(define_bypass 0 "macww_w_op" "macww_w_op" "avr32_valid_macmac_bypass")
 5.11672 ++(define_bypass 0 "macww_d_op" "macww_d_op" "avr32_valid_macmac_bypass")
 5.11673 ++
 5.11674 ++(define_bypass 0 "mulhh_op" "machh_w_op" "avr32_valid_mulmac_bypass")
 5.11675 ++(define_bypass 0 "mulww_w_op" "macww_w_op" "avr32_valid_mulmac_bypass")
 5.11676 ++(define_bypass 0 "mulww_d_op" "macww_d_op" "avr32_valid_mulmac_bypass")
 5.11677 ++
 5.11678 ++;;Branch and call instructions
 5.11679 ++;;We assume that all branches and rcalls are predicted correctly :-)
 5.11680 ++;;while calls use a lot of cycles.
 5.11681 ++(define_insn_reservation "branch_op" 0
 5.11682 ++  (and (eq_attr "pipeline" "ap")
 5.11683 ++       (eq_attr "type" "branch"))
 5.11684 ++  "nothing")
 5.11685 ++
 5.11686 ++(define_insn_reservation "call_op" 10
 5.11687 ++  (and (eq_attr "pipeline" "ap")
 5.11688 ++       (eq_attr "type" "call"))
 5.11689 ++  "nothing")
 5.11690 ++
 5.11691 ++
 5.11692 ++;;Load store instructions
 5.11693 ++(define_insn_reservation "load_op" 2
 5.11694 ++  (and (eq_attr "pipeline" "ap")
 5.11695 ++       (eq_attr "type" "load"))
 5.11696 ++  "is,da,d")
 5.11697 ++
 5.11698 ++(define_insn_reservation "load_rm_op" 3
 5.11699 ++  (and (eq_attr "pipeline" "ap")
 5.11700 ++       (eq_attr "type" "load_rm"))
 5.11701 ++  "is,da,d")
 5.11702 ++
 5.11703 ++
 5.11704 ++(define_insn_reservation "store_op" 0
 5.11705 ++  (and (eq_attr "pipeline" "ap")
 5.11706 ++       (eq_attr "type" "store"))
 5.11707 ++  "is,da,d")
 5.11708 ++
 5.11709 ++
 5.11710 ++(define_insn_reservation "load_double_op" 3
 5.11711 ++  (and (eq_attr "pipeline" "ap")
 5.11712 ++       (eq_attr "type" "load2"))
 5.11713 ++  "is,da,da+d,d")
 5.11714 ++
 5.11715 ++(define_insn_reservation "load_quad_op" 4
 5.11716 ++  (and (eq_attr "pipeline" "ap")
 5.11717 ++       (eq_attr "type" "load4"))
 5.11718 ++  "is,da,da+d,da+d,d")
 5.11719 ++
 5.11720 ++(define_insn_reservation "store_double_op" 0
 5.11721 ++  (and (eq_attr "pipeline" "ap")
 5.11722 ++       (eq_attr "type" "store2"))
 5.11723 ++  "is,da,da+d,d")
 5.11724 ++
 5.11725 ++
 5.11726 ++(define_insn_reservation "store_quad_op" 0
 5.11727 ++  (and (eq_attr "pipeline" "ap")
 5.11728 ++       (eq_attr "type" "store4"))
 5.11729 ++  "is,da,da+d,da+d,d")
 5.11730 ++
 5.11731 ++;;For store the operand to write to memory is read in d and
 5.11732 ++;;the real latency between any instruction and a store is therefore
 5.11733 ++;;one less than for the instructions which reads the operands in the first
 5.11734 ++;;excecution stage
 5.11735 ++(define_bypass 2 "load_double_op" "store_double_op" "avr32_store_bypass")
 5.11736 ++(define_bypass 3 "load_quad_op" "store_quad_op" "avr32_store_bypass")
 5.11737 ++(define_bypass 1 "load_op" "store_op" "avr32_store_bypass")
 5.11738 ++(define_bypass 2 "load_rm_op" "store_op" "avr32_store_bypass")
 5.11739 ++(define_bypass 1 "alu_sat_op" "store_op" "avr32_store_bypass")
 5.11740 ++(define_bypass 1 "alu2_op" "store_op" "avr32_store_bypass")
 5.11741 ++(define_bypass 1 "mulhh_op" "store_op" "avr32_store_bypass")
 5.11742 ++(define_bypass 2 "mulww_w_op" "store_op" "avr32_store_bypass")
 5.11743 ++(define_bypass 4 "mulww_d_op" "store_op" "avr32_store_bypass" )
 5.11744 ++(define_bypass 2 "machh_w_op" "store_op" "avr32_store_bypass")
 5.11745 ++(define_bypass 3 "macww_w_op" "store_op" "avr32_store_bypass")
 5.11746 ++(define_bypass 5 "macww_d_op" "store_op" "avr32_store_bypass")
 5.11747 ++
 5.11748 ++
 5.11749 ++; Bypass for load double operation. If only the first loaded word is needed
 5.11750 ++; then the latency is 2
 5.11751 ++(define_bypass 2 "load_double_op"
 5.11752 ++                 "load_op,load_rm_op,alu_sat_op, alu2_op, alu_op, mulhh_op, mulww_w_op,
 5.11753 ++                  mulww_d_op, machh_w_op, macww_w_op, macww_d_op"
 5.11754 ++                 "avr32_valid_load_double_bypass")
 5.11755 ++
 5.11756 ++; Bypass for load quad operation. If only the first or second loaded word is needed
 5.11757 ++; we set the latency to 2
 5.11758 ++(define_bypass 2 "load_quad_op"
 5.11759 ++                 "load_op,load_rm_op,alu_sat_op, alu2_op, alu_op, mulhh_op, mulww_w_op,
 5.11760 ++                  mulww_d_op, machh_w_op, macww_w_op, macww_d_op"
 5.11761 ++                 "avr32_valid_load_quad_bypass")
 5.11762 ++
 5.11763 ++
 5.11764 ++;;******************************************************************************
 5.11765 ++;; End of Automaton pipeline description for avr32
 5.11766 ++;;******************************************************************************
 5.11767 ++
 5.11768 ++(define_cond_exec
 5.11769 ++  [(match_operator 0 "avr32_comparison_operator"
 5.11770 ++    [(match_operand:CMP 1 "register_operand" "r")         
 5.11771 ++     (match_operand:CMP 2 "<CMP:cmp_predicate>" "<CMP:cmp_constraint>")])]
 5.11772 ++  "TARGET_V2_INSNS" 
 5.11773 ++  "%!"
 5.11774 ++)
 5.11775 ++
 5.11776 ++(define_cond_exec
 5.11777 ++  [(match_operator 0 "avr32_comparison_operator"
 5.11778 ++     [(and:SI (match_operand:SI 1 "register_operand" "r")         
 5.11779 ++              (match_operand:SI 2 "one_bit_set_operand" "i"))
 5.11780 ++      (const_int 0)])]
 5.11781 ++  "TARGET_V2_INSNS" 
 5.11782 ++  "%!"
 5.11783 ++  )
 5.11784 ++
 5.11785 ++;;=============================================================================
 5.11786 ++;; move
 5.11787 ++;;-----------------------------------------------------------------------------
 5.11788 ++
 5.11789 ++
 5.11790 ++;;== char - 8 bits ============================================================
 5.11791 ++(define_expand "movqi"
 5.11792 ++  [(set (match_operand:QI 0 "nonimmediate_operand" "")
 5.11793 ++	(match_operand:QI 1 "general_operand" ""))]
 5.11794 ++  ""
 5.11795 ++  {
 5.11796 ++   if ( !no_new_pseudos ){
 5.11797 ++     if (GET_CODE (operands[1]) == MEM && optimize){
 5.11798 ++         rtx reg = gen_reg_rtx (SImode);
 5.11799 ++
 5.11800 ++         emit_insn (gen_zero_extendqisi2 (reg, operands[1]));
 5.11801 ++         operands[1] = gen_lowpart (QImode, reg);
 5.11802 ++     }
 5.11803 ++
 5.11804 ++     /* One of the ops has to be in a register.  */
 5.11805 ++     if (GET_CODE (operands[0]) == MEM)
 5.11806 ++       operands[1] = force_reg (QImode, operands[1]);
 5.11807 ++   }
 5.11808 ++
 5.11809 ++  })
 5.11810 ++
 5.11811 ++(define_insn "*movqi_internal"
 5.11812 ++  [(set (match_operand:QI 0 "nonimmediate_operand" "=r,r,m,r")
 5.11813 ++	(match_operand:QI 1 "general_operand"  "rKs08,m,r,i"))]
 5.11814 ++  "register_operand (operands[0], QImode)
 5.11815 ++   || register_operand (operands[1], QImode)"
 5.11816 ++  "@
 5.11817 ++   mov\t%0, %1
 5.11818 ++   ld.ub\t%0, %1
 5.11819 ++   st.b\t%0, %1
 5.11820 ++   mov\t%0, %1"
 5.11821 ++  [(set_attr "length" "2,4,4,4")
 5.11822 ++   (set_attr "type" "alu,load_rm,store,alu")])
 5.11823 ++
 5.11824 ++
 5.11825 ++
 5.11826 ++;;== short - 16 bits ==========================================================
 5.11827 ++(define_expand "movhi"
 5.11828 ++  [(set (match_operand:HI 0 "nonimmediate_operand" "")
 5.11829 ++	(match_operand:HI 1 "general_operand" ""))]
 5.11830 ++  ""
 5.11831 ++  {
 5.11832 ++   if ( !no_new_pseudos ){
 5.11833 ++     if (GET_CODE (operands[1]) == MEM && optimize){
 5.11834 ++         rtx reg = gen_reg_rtx (SImode);
 5.11835 ++
 5.11836 ++         emit_insn (gen_extendhisi2 (reg, operands[1]));
 5.11837 ++         operands[1] = gen_lowpart (HImode, reg);
 5.11838 ++     }
 5.11839 ++
 5.11840 ++     /* One of the ops has to be in a register.  */
 5.11841 ++     if (GET_CODE (operands[0]) == MEM)
 5.11842 ++       operands[1] = force_reg (HImode, operands[1]);
 5.11843 ++   }
 5.11844 ++
 5.11845 ++  })
 5.11846 ++
 5.11847 ++
 5.11848 ++(define_insn "*movhi_internal"
 5.11849 ++  [(set (match_operand:HI 0 "nonimmediate_operand" "=r,r,m,r")
 5.11850 ++	(match_operand:HI 1 "general_operand"  "rKs08,m,r,i"))]
 5.11851 ++  "register_operand (operands[0], HImode)
 5.11852 ++   || register_operand (operands[1], HImode)"
 5.11853 ++  "@
 5.11854 ++   mov\t%0, %1
 5.11855 ++   ld.sh\t%0, %1
 5.11856 ++   st.h\t%0, %1
 5.11857 ++   mov\t%0, %1"
 5.11858 ++  [(set_attr "length" "2,4,4,4")
 5.11859 ++   (set_attr "type" "alu,load_rm,store,alu")])
 5.11860 ++
 5.11861 ++
 5.11862 ++;;== int - 32 bits ============================================================
 5.11863 ++
 5.11864 ++(define_expand "movmisalignsi"
 5.11865 ++  [(set (match_operand:SI 0 "nonimmediate_operand" "")
 5.11866 ++	(match_operand:SI 1 "nonimmediate_operand" ""))]
 5.11867 ++  "TARGET_UNALIGNED_WORD"
 5.11868 ++  {
 5.11869 ++  }
 5.11870 ++)
 5.11871 ++
 5.11872 ++
 5.11873 ++(define_expand "mov<mode>"
 5.11874 ++  [(set (match_operand:MOVM 0 "avr32_non_rmw_nonimmediate_operand" "")
 5.11875 ++	(match_operand:MOVM 1 "avr32_non_rmw_general_operand" ""))]
 5.11876 ++  ""
 5.11877 ++  {
 5.11878 ++
 5.11879 ++    /* One of the ops has to be in a register.  */
 5.11880 ++    if (GET_CODE (operands[0]) == MEM)
 5.11881 ++      operands[1] = force_reg (<MODE>mode, operands[1]);
 5.11882 ++
 5.11883 ++
 5.11884 ++    /* Check for out of range immediate constants as these may
 5.11885 ++       occur during reloading, since it seems like reload does
 5.11886 ++       not check if the immediate is legitimate. Don't know if
 5.11887 ++       this is a bug? */
 5.11888 ++    if ( reload_in_progress
 5.11889 ++         && avr32_imm_in_const_pool
 5.11890 ++         && GET_CODE(operands[1]) == CONST_INT
 5.11891 ++         && !avr32_const_ok_for_constraint_p(INTVAL(operands[1]), 'K', "Ks21") ){
 5.11892 ++        operands[1] = force_const_mem(SImode, operands[1]);
 5.11893 ++    }
 5.11894 ++
 5.11895 ++    /* Check for RMW memory operands. They are not allowed for mov operations
 5.11896 ++       only the atomic memc/s/t operations */
 5.11897 ++    if ( !reload_in_progress
 5.11898 ++         && avr32_rmw_memory_operand (operands[0], <MODE>mode) ){
 5.11899 ++       operands[0] = copy_rtx (operands[0]);                                                              
 5.11900 ++       XEXP(operands[0], 0) = force_reg (<MODE>mode, XEXP(operands[0], 0));
 5.11901 ++    }
 5.11902 ++
 5.11903 ++    if ( !reload_in_progress
 5.11904 ++         && avr32_rmw_memory_operand (operands[1], <MODE>mode) ){
 5.11905 ++       operands[1] = copy_rtx (operands[1]);                                                              
 5.11906 ++       XEXP(operands[1], 0) = force_reg (<MODE>mode, XEXP(operands[1], 0));
 5.11907 ++    }
 5.11908 ++
 5.11909 ++    if ( (flag_pic || TARGET_HAS_ASM_ADDR_PSEUDOS)
 5.11910 ++         && !avr32_legitimate_pic_operand_p(operands[1]) )
 5.11911 ++      operands[1] = legitimize_pic_address (operands[1], <MODE>mode,
 5.11912 ++                                            (no_new_pseudos ? operands[0] : 0));
 5.11913 ++    else if ( flag_pic && avr32_address_operand(operands[1], GET_MODE(operands[1])) )
 5.11914 ++      /* If we have an address operand then this function uses the pic register. */
 5.11915 ++      current_function_uses_pic_offset_table = 1;
 5.11916 ++  })
 5.11917 ++
 5.11918 ++
 5.11919 ++
 5.11920 ++(define_insn "mov<mode>_internal"
 5.11921 ++  [(set (match_operand:MOVM 0 "avr32_non_rmw_nonimmediate_operand" "=r,   r,   r,r,r,Q,r")
 5.11922 ++	(match_operand:MOVM 1 "avr32_non_rmw_general_operand"      "rKs08,Ks21,J,n,Q,r,W"))]
 5.11923 ++  "(register_operand (operands[0], <MODE>mode)
 5.11924 ++    || register_operand (operands[1], <MODE>mode))
 5.11925 ++   && !avr32_rmw_memory_operand (operands[0], <MODE>mode) 
 5.11926 ++   && !avr32_rmw_memory_operand (operands[1], <MODE>mode)"
 5.11927 ++  {
 5.11928 ++    switch (which_alternative) {
 5.11929 ++      case 0:
 5.11930 ++      case 1: return "mov\t%0, %1";
 5.11931 ++      case 2:
 5.11932 ++        if ( TARGET_V2_INSNS )
 5.11933 ++           return "movh\t%0, hi(%1)";
 5.11934 ++        /* Fallthrough */
 5.11935 ++      case 3: return "mov\t%0, lo(%1)\;orh\t%0,hi(%1)";
 5.11936 ++      case 4:
 5.11937 ++        if ( (REG_P(XEXP(operands[1], 0))
 5.11938 ++              && REGNO(XEXP(operands[1], 0)) == SP_REGNUM)
 5.11939 ++             || (GET_CODE(XEXP(operands[1], 0)) == PLUS
 5.11940 ++                 && REGNO(XEXP(XEXP(operands[1], 0), 0)) == SP_REGNUM
 5.11941 ++	         && GET_CODE(XEXP(XEXP(operands[1], 0), 1)) == CONST_INT
 5.11942 ++	         && INTVAL(XEXP(XEXP(operands[1], 0), 1)) % 4 == 0
 5.11943 ++	         && INTVAL(XEXP(XEXP(operands[1], 0), 1)) <= 0x1FC) )
 5.11944 ++          return "lddsp\t%0, %1";
 5.11945 ++	else if ( avr32_const_pool_ref_operand(operands[1], GET_MODE(operands[1])) )
 5.11946 ++          return "lddpc\t%0, %1";
 5.11947 ++        else
 5.11948 ++          return "ld.w\t%0, %1";
 5.11949 ++      case 5:
 5.11950 ++        if ( (REG_P(XEXP(operands[0], 0))
 5.11951 ++              && REGNO(XEXP(operands[0], 0)) == SP_REGNUM)
 5.11952 ++             || (GET_CODE(XEXP(operands[0], 0)) == PLUS
 5.11953 ++                 && REGNO(XEXP(XEXP(operands[0], 0), 0)) == SP_REGNUM
 5.11954 ++	         && GET_CODE(XEXP(XEXP(operands[0], 0), 1)) == CONST_INT
 5.11955 ++	         && INTVAL(XEXP(XEXP(operands[0], 0), 1)) % 4 == 0
 5.11956 ++	         && INTVAL(XEXP(XEXP(operands[0], 0), 1)) <= 0x1FC) )
 5.11957 ++          return "stdsp\t%0, %1";
 5.11958 ++	else
 5.11959 ++          return "st.w\t%0, %1";
 5.11960 ++      case 6:
 5.11961 ++        if ( TARGET_HAS_ASM_ADDR_PSEUDOS )
 5.11962 ++          return "lda.w\t%0, %1";
 5.11963 ++        else
 5.11964 ++          return "ld.w\t%0, r6[%1@got]";
 5.11965 ++      default:
 5.11966 ++	abort();
 5.11967 ++    }
 5.11968 ++  }
 5.11969 ++  
 5.11970 ++  [(set_attr "length" "2,4,4,8,4,4,8")
 5.11971 ++   (set_attr "type" "alu,alu,alu,alu2,load,store,load")
 5.11972 ++   (set_attr "cc" "none,none,set_z_if_not_v2,set_z,none,none,clobber")])
 5.11973 ++
 5.11974 ++
 5.11975 ++(define_expand "reload_out_rmw_memory_operand"
 5.11976 ++  [(set (match_operand:SI 2 "register_operand" "=r")
 5.11977 ++        (match_operand:SI 0 "address_operand" ""))
 5.11978 ++   (set (mem:SI (match_dup 2))
 5.11979 ++        (match_operand:SI 1 "register_operand" ""))]
 5.11980 ++  ""
 5.11981 ++  {
 5.11982 ++   operands[0] = XEXP(operands[0], 0);
 5.11983 ++  }
 5.11984 ++)
 5.11985 ++
 5.11986 ++(define_expand "reload_in_rmw_memory_operand"
 5.11987 ++  [(set (match_operand:SI 2 "register_operand" "=r")
 5.11988 ++        (match_operand:SI 1 "address_operand" ""))
 5.11989 ++   (set (match_operand:SI 0 "register_operand" "")
 5.11990 ++        (mem:SI (match_dup 2)))]
 5.11991 ++  ""
 5.11992 ++  {
 5.11993 ++   operands[1] = XEXP(operands[1], 0);
 5.11994 ++  }
 5.11995 ++)
 5.11996 ++
 5.11997 ++
 5.11998 ++;; These instructions are for loading constants which cannot be loaded
 5.11999 ++;; directly from the constant pool because the offset is too large
 5.12000 ++;; high and lo_sum are used even tough for our case it should be
 5.12001 ++;; low and high sum :-)
 5.12002 ++(define_insn "mov_symbol_lo"
 5.12003 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.12004 ++	(high:SI (match_operand:SI 1 "immediate_operand" "i" )))]
 5.12005 ++  ""
 5.12006 ++  "mov\t%0, lo(%1)"
 5.12007 ++  [(set_attr "type" "alu")
 5.12008 ++   (set_attr "length" "4")]
 5.12009 ++)
 5.12010 ++
 5.12011 ++(define_insn "add_symbol_hi"
 5.12012 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.12013 ++	(lo_sum:SI (match_dup 0)
 5.12014 ++                   (match_operand:SI 1 "immediate_operand" "i" )))]
 5.12015 ++  ""
 5.12016 ++  "orh\t%0, hi(%1)"
 5.12017 ++  [(set_attr "type" "alu")
 5.12018 ++   (set_attr "length" "4")]
 5.12019 ++)
 5.12020 ++
 5.12021 ++
 5.12022 ++
 5.12023 ++;; When generating pic, we need to load the symbol offset into a register.
 5.12024 ++;; So that the optimizer does not confuse this with a normal symbol load
 5.12025 ++;; we use an unspec.  The offset will be loaded from a constant pool entry,
 5.12026 ++;; since that is the only type of relocation we can use.
 5.12027 ++(define_insn "pic_load_addr"
 5.12028 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.12029 ++	(unspec:SI [(match_operand:SI 1 "" "")] UNSPEC_PIC_SYM))]
 5.12030 ++  "flag_pic && CONSTANT_POOL_ADDRESS_P(XEXP(operands[1], 0))"
 5.12031 ++  "lddpc\t%0, %1"
 5.12032 ++  [(set_attr "type" "load")
 5.12033 ++   (set_attr "length" "4")]
 5.12034 ++)
 5.12035 ++
 5.12036 ++(define_insn "pic_compute_got_from_pc"
 5.12037 ++  [(set (match_operand:SI 0 "register_operand" "+r")
 5.12038 ++	(unspec:SI [(minus:SI (pc)
 5.12039 ++                              (match_dup 0))] UNSPEC_PIC_BASE))
 5.12040 ++   (use (label_ref (match_operand 1 "" "")))]
 5.12041 ++  "flag_pic"
 5.12042 ++  {
 5.12043 ++   (*targetm.asm_out.internal_label) (asm_out_file, "L",
 5.12044 ++	 		     CODE_LABEL_NUMBER (operands[1]));
 5.12045 ++   return \"rsub\t%0, pc\";
 5.12046 ++  }
 5.12047 ++  [(set_attr "cc" "clobber")
 5.12048 ++   (set_attr "length" "2")]
 5.12049 ++)
 5.12050 ++
 5.12051 ++;;== long long int - 64 bits ==================================================
 5.12052 ++
 5.12053 ++(define_expand "movdi"
 5.12054 ++  [(set (match_operand:DI 0 "nonimmediate_operand" "")
 5.12055 ++	(match_operand:DI 1 "general_operand" ""))]
 5.12056 ++  ""
 5.12057 ++  {
 5.12058 ++
 5.12059 ++    /* One of the ops has to be in a register.  */
 5.12060 ++    if (GET_CODE (operands[0]) != REG)
 5.12061 ++      operands[1] = force_reg (DImode, operands[1]);
 5.12062 ++
 5.12063 ++  })
 5.12064 ++
 5.12065 ++
 5.12066 ++(define_insn_and_split "*movdi_internal"
 5.12067 ++  [(set (match_operand:DI 0 "nonimmediate_operand"     "=r,r,   r,   r,r,r,m")
 5.12068 ++	(match_operand:DI 1 "general_operand"          "r, Ks08,Ks21,G,n,m,r"))]
 5.12069 ++  "register_operand (operands[0], DImode)
 5.12070 ++   || register_operand (operands[1], DImode)"
 5.12071 ++  {
 5.12072 ++    switch (which_alternative ){
 5.12073 ++    case 0:
 5.12074 ++    case 1:
 5.12075 ++    case 2:
 5.12076 ++    case 3:
 5.12077 ++    case 4:
 5.12078 ++        return "#";
 5.12079 ++    case 5:
 5.12080 ++      if ( avr32_const_pool_ref_operand(operands[1], GET_MODE(operands[1])))
 5.12081 ++        return "ld.d\t%0, pc[%1 - .]";
 5.12082 ++      else
 5.12083 ++        return "ld.d\t%0, %1";
 5.12084 ++    case 6:
 5.12085 ++      return "st.d\t%0, %1";
 5.12086 ++    default:
 5.12087 ++      abort();
 5.12088 ++    }
 5.12089 ++  }
 5.12090 ++;; Lets split all reg->reg or imm->reg transfers into two SImode transfers 
 5.12091 ++  "reload_completed &&
 5.12092 ++   (REG_P (operands[0]) &&
 5.12093 ++   (REG_P (operands[1]) 
 5.12094 ++    || GET_CODE (operands[1]) == CONST_INT
 5.12095 ++    || GET_CODE (operands[1]) == CONST_DOUBLE))"
 5.12096 ++  [(set (match_dup 0) (match_dup 1))
 5.12097 ++   (set (match_dup 2) (match_dup 3))]
 5.12098 ++  {
 5.12099 ++    operands[2] = gen_highpart (SImode, operands[0]);
 5.12100 ++    operands[0] = gen_lowpart (SImode, operands[0]);
 5.12101 ++    if ( REG_P(operands[1]) ){
 5.12102 ++      operands[3] = gen_highpart(SImode, operands[1]);
 5.12103 ++      operands[1] = gen_lowpart(SImode, operands[1]);
 5.12104 ++    } else if ( GET_CODE(operands[1]) == CONST_DOUBLE 
 5.12105 ++                || GET_CODE(operands[1]) == CONST_INT ){
 5.12106 ++      rtx split_const[2];
 5.12107 ++      avr32_split_const_expr (DImode, SImode, operands[1], split_const);
 5.12108 ++      operands[3] = split_const[1];
 5.12109 ++      operands[1] = split_const[0];
 5.12110 ++    } else {
 5.12111 ++      internal_error("Illegal operand[1] for movdi split!");
 5.12112 ++    }
 5.12113 ++  }
 5.12114 ++
 5.12115 ++  [(set_attr "length" "*,*,*,*,*,4,4")
 5.12116 ++   (set_attr "type" "*,*,*,*,*,load2,store2")
 5.12117 ++   (set_attr "cc" "*,*,*,*,*,none,none")])
 5.12118 ++
 5.12119 ++
 5.12120 ++;;== 128 bits ==================================================
 5.12121 ++(define_expand "movti"
 5.12122 ++  [(set (match_operand:TI 0 "nonimmediate_operand" "")
 5.12123 ++	(match_operand:TI 1 "nonimmediate_operand" ""))]
 5.12124 ++  "TARGET_ARCH_AP"    
 5.12125 ++  {     
 5.12126 ++        
 5.12127 ++    /* One of the ops has to be in a register.  */
 5.12128 ++    if (GET_CODE (operands[0]) != REG)
 5.12129 ++      operands[1] = force_reg (TImode, operands[1]);
 5.12130 ++
 5.12131 ++    /* We must fix any pre_dec for loads and post_inc stores */
 5.12132 ++    if ( GET_CODE (operands[0]) == MEM
 5.12133 ++         && GET_CODE (XEXP(operands[0],0)) == POST_INC ){
 5.12134 ++       emit_move_insn(gen_rtx_MEM(TImode, XEXP(XEXP(operands[0],0),0)), operands[1]);
 5.12135 ++       emit_insn(gen_addsi3(XEXP(XEXP(operands[0],0),0), XEXP(XEXP(operands[0],0),0), GEN_INT(GET_MODE_SIZE(TImode))));
 5.12136 ++       DONE;
 5.12137 ++    }
 5.12138 ++
 5.12139 ++    if ( GET_CODE (operands[1]) == MEM
 5.12140 ++         && GET_CODE (XEXP(operands[1],0)) == PRE_DEC ){
 5.12141 ++       emit_insn(gen_addsi3(XEXP(XEXP(operands[1],0),0), XEXP(XEXP(operands[1],0),0), GEN_INT(-GET_MODE_SIZE(TImode))));
 5.12142 ++       emit_move_insn(operands[0], gen_rtx_MEM(TImode, XEXP(XEXP(operands[1],0),0)));
 5.12143 ++       DONE;
 5.12144 ++    }
 5.12145 ++  })
 5.12146 ++
 5.12147 ++
 5.12148 ++(define_insn_and_split "*movti_internal"
 5.12149 ++  [(set (match_operand:TI 0 "avr32_movti_dst_operand"  "=r,&r,    r,    <RKu00,r,r")
 5.12150 ++	(match_operand:TI 1 "avr32_movti_src_operand"  " r,RKu00>,RKu00,r,     n,T"))]
 5.12151 ++  "(register_operand (operands[0], TImode)
 5.12152 ++    || register_operand (operands[1], TImode))"
 5.12153 ++  {
 5.12154 ++    switch (which_alternative ){
 5.12155 ++    case 0:
 5.12156 ++    case 2:
 5.12157 ++    case 4:
 5.12158 ++        return "#";
 5.12159 ++    case 1:
 5.12160 ++        return "ldm\t%p1, %0";
 5.12161 ++    case 3:
 5.12162 ++        return "stm\t%p0, %1";
 5.12163 ++    case 5:
 5.12164 ++        return "ld.d\t%U0, pc[%1 - .]\;ld.d\t%B0, pc[%1 - . + 8]";
 5.12165 ++    }
 5.12166 ++  }
 5.12167 ++
 5.12168 ++  "reload_completed &&
 5.12169 ++   (REG_P (operands[0]) &&
 5.12170 ++   (REG_P (operands[1]) 
 5.12171 ++    /* If this is a load from the constant pool we split it into
 5.12172 ++       two double loads. */
 5.12173 ++    || (GET_CODE (operands[1]) == MEM
 5.12174 ++        && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF
 5.12175 ++        && CONSTANT_POOL_ADDRESS_P (XEXP (operands[1], 0)))               
 5.12176 ++    /* If this is a load where the pointer register is a part
 5.12177 ++       of the register list, we must split it into two double
 5.12178 ++       loads in order for it to be exception safe. */
 5.12179 ++    || (GET_CODE (operands[1]) == MEM
 5.12180 ++        && register_operand (XEXP (operands[1], 0), SImode)
 5.12181 ++        && reg_overlap_mentioned_p (operands[0], XEXP (operands[1], 0)))               
 5.12182 ++    || GET_CODE (operands[1]) == CONST_INT
 5.12183 ++    || GET_CODE (operands[1]) == CONST_DOUBLE))"
 5.12184 ++  [(set (match_dup 0) (match_dup 1))
 5.12185 ++   (set (match_dup 2) (match_dup 3))]
 5.12186 ++  {
 5.12187 ++    operands[2] = simplify_gen_subreg ( DImode, operands[0], 
 5.12188 ++                                        TImode, 0 );
 5.12189 ++    operands[0] = simplify_gen_subreg ( DImode, operands[0], 
 5.12190 ++                                        TImode, 8 );
 5.12191 ++    if ( REG_P(operands[1]) ){
 5.12192 ++      operands[3] = simplify_gen_subreg ( DImode, operands[1], 
 5.12193 ++                                          TImode, 0 );
 5.12194 ++      operands[1] = simplify_gen_subreg ( DImode, operands[1], 
 5.12195 ++                                          TImode, 8 );
 5.12196 ++    } else if ( GET_CODE(operands[1]) == CONST_DOUBLE 
 5.12197 ++                || GET_CODE(operands[1]) == CONST_INT ){
 5.12198 ++      rtx split_const[2];
 5.12199 ++      avr32_split_const_expr (TImode, DImode, operands[1], split_const);
 5.12200 ++      operands[3] = split_const[1];
 5.12201 ++      operands[1] = split_const[0];
 5.12202 ++    } else if (avr32_const_pool_ref_operand (operands[1], GET_MODE(operands[1]))){
 5.12203 ++      rtx split_const[2];
 5.12204 ++      rtx cop = avoid_constant_pool_reference (operands[1]);
 5.12205 ++      if (operands[1] == cop)
 5.12206 ++        cop = get_pool_constant (XEXP (operands[1], 0));
 5.12207 ++      avr32_split_const_expr (TImode, DImode, cop, split_const);
 5.12208 ++      operands[3] = force_const_mem (DImode, split_const[1]); 
 5.12209 ++      operands[1] = force_const_mem (DImode, split_const[0]); 
 5.12210 ++   } else {
 5.12211 ++      rtx ptr_reg = XEXP (operands[1], 0);
 5.12212 ++      operands[1] = gen_rtx_MEM (DImode, 
 5.12213 ++                                 gen_rtx_PLUS ( SImode,
 5.12214 ++                                                ptr_reg,
 5.12215 ++                                                GEN_INT (8) ));
 5.12216 ++      operands[3] = gen_rtx_MEM (DImode,
 5.12217 ++                                 ptr_reg);
 5.12218 ++              
 5.12219 ++      /* Check if the first load will clobber the pointer.
 5.12220 ++         If so, we must switch the order of the operations. */
 5.12221 ++      if ( reg_overlap_mentioned_p (operands[0], ptr_reg) )
 5.12222 ++        {
 5.12223 ++          /* We need to switch the order of the operations
 5.12224 ++             so that the pointer register does not get clobbered
 5.12225 ++             after the first double word load. */
 5.12226 ++          rtx tmp;
 5.12227 ++          tmp = operands[0];
 5.12228 ++          operands[0] = operands[2];
 5.12229 ++          operands[2] = tmp;
 5.12230 ++          tmp = operands[1];
 5.12231 ++          operands[1] = operands[3];
 5.12232 ++          operands[3] = tmp;
 5.12233 ++        }
 5.12234 ++
 5.12235 ++
 5.12236 ++   }
 5.12237 ++  }
 5.12238 ++  [(set_attr "length" "*,*,4,4,*,8")
 5.12239 ++   (set_attr "type" "*,*,load4,store4,*,load4")])
 5.12240 ++
 5.12241 ++
 5.12242 ++;;== float - 32 bits ==========================================================
 5.12243 ++(define_expand "movsf"
 5.12244 ++  [(set (match_operand:SF 0 "nonimmediate_operand" "")
 5.12245 ++	(match_operand:SF 1 "general_operand" ""))]
 5.12246 ++  ""
 5.12247 ++  {
 5.12248 ++
 5.12249 ++
 5.12250 ++    /* One of the ops has to be in a register.  */
 5.12251 ++    if (GET_CODE (operands[0]) != REG)
 5.12252 ++      operands[1] = force_reg (SFmode, operands[1]);
 5.12253 ++
 5.12254 ++  })
 5.12255 ++
 5.12256 ++(define_insn "*movsf_internal"
 5.12257 ++  [(set (match_operand:SF 0 "nonimmediate_operand"     "=r,r,r,r,m")
 5.12258 ++	(match_operand:SF 1 "general_operand"          "r, G,F,m,r"))]
 5.12259 ++  "(register_operand (operands[0], SFmode)
 5.12260 ++    || register_operand (operands[1], SFmode))"
 5.12261 ++  {
 5.12262 ++    switch (which_alternative) {
 5.12263 ++      case 0:
 5.12264 ++      case 1: return "mov\t%0, %1";
 5.12265 ++      case 2: 
 5.12266 ++       {
 5.12267 ++        HOST_WIDE_INT target_float[2];
 5.12268 ++        real_to_target (target_float, CONST_DOUBLE_REAL_VALUE (operands[1]), SFmode);
 5.12269 ++        if ( TARGET_V2_INSNS 
 5.12270 ++             && avr32_hi16_immediate_operand (GEN_INT (target_float[0]), VOIDmode) )
 5.12271 ++           return "movh\t%0, hi(%1)";
 5.12272 ++        else
 5.12273 ++           return "mov\t%0, lo(%1)\;orh\t%0, hi(%1)";
 5.12274 ++       }
 5.12275 ++      case 3:
 5.12276 ++        if ( (REG_P(XEXP(operands[1], 0))
 5.12277 ++              && REGNO(XEXP(operands[1], 0)) == SP_REGNUM)
 5.12278 ++             || (GET_CODE(XEXP(operands[1], 0)) == PLUS
 5.12279 ++                 && REGNO(XEXP(XEXP(operands[1], 0), 0)) == SP_REGNUM
 5.12280 ++	         && GET_CODE(XEXP(XEXP(operands[1], 0), 1)) == CONST_INT
 5.12281 ++	         && INTVAL(XEXP(XEXP(operands[1], 0), 1)) % 4 == 0
 5.12282 ++	         && INTVAL(XEXP(XEXP(operands[1], 0), 1)) <= 0x1FC) )
 5.12283 ++          return "lddsp\t%0, %1";
 5.12284 ++          else if ( avr32_const_pool_ref_operand(operands[1], GET_MODE(operands[1])) )
 5.12285 ++          return "lddpc\t%0, %1";
 5.12286 ++        else
 5.12287 ++          return "ld.w\t%0, %1";
 5.12288 ++      case 4:
 5.12289 ++        if ( (REG_P(XEXP(operands[0], 0))
 5.12290 ++              && REGNO(XEXP(operands[0], 0)) == SP_REGNUM)
 5.12291 ++             || (GET_CODE(XEXP(operands[0], 0)) == PLUS
 5.12292 ++                 && REGNO(XEXP(XEXP(operands[0], 0), 0)) == SP_REGNUM
 5.12293 ++	         && GET_CODE(XEXP(XEXP(operands[0], 0), 1)) == CONST_INT
 5.12294 ++	         && INTVAL(XEXP(XEXP(operands[0], 0), 1)) % 4 == 0
 5.12295 ++	         && INTVAL(XEXP(XEXP(operands[0], 0), 1)) <= 0x1FC) )
 5.12296 ++          return "stdsp\t%0, %1";
 5.12297 ++	else
 5.12298 ++          return "st.w\t%0, %1";
 5.12299 ++      default:
 5.12300 ++	abort();
 5.12301 ++    }
 5.12302 ++  }
 5.12303 ++
 5.12304 ++  [(set_attr "length" "2,4,8,4,4")
 5.12305 ++   (set_attr "type" "alu,alu,alu2,load,store")
 5.12306 ++   (set_attr "cc" "none,none,clobber,none,none")])
 5.12307 ++
 5.12308 ++
 5.12309 ++
 5.12310 ++;;== double - 64 bits =========================================================
 5.12311 ++(define_expand "movdf"
 5.12312 ++  [(set (match_operand:DF 0 "nonimmediate_operand" "")
 5.12313 ++	(match_operand:DF 1 "general_operand" ""))]
 5.12314 ++  ""
 5.12315 ++  {
 5.12316 ++    /* One of the ops has to be in a register.  */
 5.12317 ++    if (GET_CODE (operands[0]) != REG){
 5.12318 ++      operands[1] = force_reg (DFmode, operands[1]);
 5.12319 ++    }
 5.12320 ++  })
 5.12321 ++
 5.12322 ++
 5.12323 ++(define_insn_and_split "*movdf_internal"
 5.12324 ++  [(set (match_operand:DF 0 "nonimmediate_operand"     "=r,r,r,r,m")
 5.12325 ++	(match_operand:DF 1 "general_operand"          " r,G,F,m,r"))]
 5.12326 ++  "TARGET_SOFT_FLOAT
 5.12327 ++   && (register_operand (operands[0], DFmode)
 5.12328 ++       || register_operand (operands[1], DFmode))"
 5.12329 ++  {
 5.12330 ++    switch (which_alternative ){
 5.12331 ++    case 0:
 5.12332 ++    case 1:
 5.12333 ++    case 2: 
 5.12334 ++        return "#";
 5.12335 ++    case 3:
 5.12336 ++      if ( avr32_const_pool_ref_operand(operands[1], GET_MODE(operands[1])))
 5.12337 ++        return "ld.d\t%0, pc[%1 - .]";
 5.12338 ++      else
 5.12339 ++        return "ld.d\t%0, %1";
 5.12340 ++    case 4:
 5.12341 ++      return "st.d\t%0, %1";
 5.12342 ++    default:
 5.12343 ++      abort();
 5.12344 ++    }
 5.12345 ++  }
 5.12346 ++  "TARGET_SOFT_FLOAT
 5.12347 ++   && reload_completed
 5.12348 ++   && (REG_P (operands[0]) 
 5.12349 ++        && (REG_P (operands[1])
 5.12350 ++            || GET_CODE (operands[1]) == CONST_DOUBLE))"
 5.12351 ++  [(set (match_dup 0) (match_dup 1))
 5.12352 ++   (set (match_dup 2) (match_dup 3))]
 5.12353 ++  "
 5.12354 ++   {
 5.12355 ++    operands[2] = gen_highpart (SImode, operands[0]);
 5.12356 ++    operands[0] = gen_lowpart (SImode, operands[0]);
 5.12357 ++    operands[3] = gen_highpart(SImode, operands[1]);
 5.12358 ++    operands[1] = gen_lowpart(SImode, operands[1]);
 5.12359 ++   }
 5.12360 ++  "
 5.12361 ++
 5.12362 ++  [(set_attr "length" "*,*,*,4,4")
 5.12363 ++   (set_attr "type" "*,*,*,load2,store2")
 5.12364 ++   (set_attr "cc" "*,*,*,none,none")])
 5.12365 ++
 5.12366 ++
 5.12367 ++;;=============================================================================
 5.12368 ++;; Conditional Moves
 5.12369 ++;;=============================================================================
 5.12370 ++(define_insn "ld<mode>_predicable"
 5.12371 ++  [(set (match_operand:MOVCC 0 "register_operand" "=r")
 5.12372 ++	(match_operand:MOVCC 1 "avr32_non_rmw_memory_operand" "<MOVCC:pred_mem_constraint>"))]
 5.12373 ++  "TARGET_V2_INSNS"
 5.12374 ++  "ld<MOVCC:load_postfix>%?\t%0, %1"
 5.12375 ++  [(set_attr "length" "4")
 5.12376 ++   (set_attr "cc" "cmp_cond_insn")
 5.12377 ++   (set_attr "type" "load")
 5.12378 ++   (set_attr "predicable" "yes")]
 5.12379 ++)
 5.12380 ++
 5.12381 ++
 5.12382 ++(define_insn "st<mode>_predicable"
 5.12383 ++  [(set (match_operand:MOVCC 0 "avr32_non_rmw_memory_operand" "=<MOVCC:pred_mem_constraint>")
 5.12384 ++	(match_operand:MOVCC 1 "register_operand" "r"))]
 5.12385 ++  "TARGET_V2_INSNS"
 5.12386 ++  "st<MOVCC:store_postfix>%?\t%0, %1"
 5.12387 ++  [(set_attr "length" "4")
 5.12388 ++   (set_attr "cc" "cmp_cond_insn")
 5.12389 ++   (set_attr "type" "store")
 5.12390 ++   (set_attr "predicable" "yes")]
 5.12391 ++)
 5.12392 ++
 5.12393 ++(define_insn "mov<mode>_predicable"
 5.12394 ++  [(set (match_operand:MOVCC 0 "register_operand" "=r")
 5.12395 ++	(match_operand:MOVCC 1 "avr32_cond_register_immediate_operand" "rKs08"))]
 5.12396 ++  ""
 5.12397 ++  "mov%?\t%0, %1"
 5.12398 ++  [(set_attr "length" "4")
 5.12399 ++   (set_attr "cc" "cmp_cond_insn")
 5.12400 ++   (set_attr "type" "alu")
 5.12401 ++   (set_attr "predicable" "yes")]
 5.12402 ++)
 5.12403 ++
 5.12404 ++
 5.12405 ++;;=============================================================================
 5.12406 ++;; Move chunks of memory
 5.12407 ++;;=============================================================================
 5.12408 ++
 5.12409 ++(define_expand "movmemsi"
 5.12410 ++  [(match_operand:BLK 0 "general_operand" "")
 5.12411 ++   (match_operand:BLK 1 "general_operand" "")
 5.12412 ++   (match_operand:SI 2 "const_int_operand" "")
 5.12413 ++   (match_operand:SI 3 "const_int_operand" "")]
 5.12414 ++  ""
 5.12415 ++  "
 5.12416 ++   if (avr32_gen_movmemsi (operands))
 5.12417 ++     DONE;
 5.12418 ++   FAIL;
 5.12419 ++  "
 5.12420 ++  )
 5.12421 ++
 5.12422 ++
 5.12423 ++
 5.12424 ++
 5.12425 ++;;=============================================================================
 5.12426 ++;; Bit field instructions
 5.12427 ++;;-----------------------------------------------------------------------------
 5.12428 ++;; Instructions to insert or extract bit-fields
 5.12429 ++;;=============================================================================
 5.12430 ++
 5.12431 ++(define_insn "insv"
 5.12432 ++  [ (set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r")
 5.12433 ++                          (match_operand:SI 1 "immediate_operand" "Ku05")
 5.12434 ++                          (match_operand:SI 2 "immediate_operand" "Ku05"))
 5.12435 ++         (match_operand 3 "register_operand" "r"))]
 5.12436 ++  ""
 5.12437 ++  "bfins\t%0, %3, %2, %1"
 5.12438 ++  [(set_attr "type" "alu")
 5.12439 ++   (set_attr "length" "4")
 5.12440 ++   (set_attr "cc" "set_ncz")])
 5.12441 ++
 5.12442 ++
 5.12443 ++
 5.12444 ++(define_expand "extv"
 5.12445 ++  [ (set (match_operand:SI 0 "register_operand" "")
 5.12446 ++         (sign_extract:SI (match_operand:SI 1 "register_operand" "")
 5.12447 ++                          (match_operand:SI 2 "immediate_operand" "")
 5.12448 ++                          (match_operand:SI 3 "immediate_operand" "")))]
 5.12449 ++  ""
 5.12450 ++  {
 5.12451 ++   if ( INTVAL(operands[2]) >= 32 )
 5.12452 ++      FAIL;
 5.12453 ++  }
 5.12454 ++)
 5.12455 ++
 5.12456 ++(define_expand "extzv"
 5.12457 ++  [ (set (match_operand:SI 0 "register_operand" "")
 5.12458 ++         (zero_extract:SI (match_operand:SI 1 "register_operand" "")
 5.12459 ++                          (match_operand:SI 2 "immediate_operand" "")
 5.12460 ++                          (match_operand:SI 3 "immediate_operand" "")))]
 5.12461 ++  ""
 5.12462 ++  {
 5.12463 ++   if ( INTVAL(operands[2]) >= 32 )
 5.12464 ++      FAIL;
 5.12465 ++  }
 5.12466 ++)
 5.12467 ++
 5.12468 ++(define_insn "extv_internal"
 5.12469 ++  [ (set (match_operand:SI 0 "register_operand" "=r")
 5.12470 ++         (sign_extract:SI (match_operand:SI 1 "register_operand" "r")
 5.12471 ++                          (match_operand:SI 2 "immediate_operand" "Ku05")
 5.12472 ++                          (match_operand:SI 3 "immediate_operand" "Ku05")))]
 5.12473 ++  "INTVAL(operands[2]) < 32"
 5.12474 ++  "bfexts\t%0, %1, %3, %2"
 5.12475 ++  [(set_attr "type" "alu")
 5.12476 ++   (set_attr "length" "4")
 5.12477 ++   (set_attr "cc" "set_ncz")])
 5.12478 ++
 5.12479 ++
 5.12480 ++(define_insn "extzv_internal"
 5.12481 ++  [ (set (match_operand:SI 0 "register_operand" "=r")
 5.12482 ++         (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
 5.12483 ++                          (match_operand:SI 2 "immediate_operand" "Ku05")
 5.12484 ++                          (match_operand:SI 3 "immediate_operand" "Ku05")))]
 5.12485 ++  "INTVAL(operands[2]) < 32"
 5.12486 ++  "bfextu\t%0, %1, %3, %2"
 5.12487 ++  [(set_attr "type" "alu")
 5.12488 ++   (set_attr "length" "4")
 5.12489 ++   (set_attr "cc" "set_ncz")])
 5.12490 ++
 5.12491 ++
 5.12492 ++
 5.12493 ++;;=============================================================================
 5.12494 ++;; Some peepholes for avoiding unnecessary cast instructions
 5.12495 ++;; followed by bfins.
 5.12496 ++;;-----------------------------------------------------------------------------
 5.12497 ++
 5.12498 ++(define_peephole2
 5.12499 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.12500 ++        (zero_extend:SI (match_operand:QI 1 "register_operand" "")))
 5.12501 ++   (set (zero_extract:SI (match_operand 2 "register_operand" "")
 5.12502 ++                         (match_operand:SI 3 "immediate_operand" "")
 5.12503 ++                         (match_operand:SI 4 "immediate_operand" ""))
 5.12504 ++        (match_dup 0))]
 5.12505 ++  "((peep2_reg_dead_p(2, operands[0]) &&
 5.12506 ++    (INTVAL(operands[3]) <= 8)))"
 5.12507 ++  [(set (zero_extract:SI (match_dup 2)
 5.12508 ++                         (match_dup 3)
 5.12509 ++                         (match_dup 4))
 5.12510 ++        (match_dup 1))]
 5.12511 ++  )
 5.12512 ++
 5.12513 ++(define_peephole2
 5.12514 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.12515 ++        (zero_extend:SI (match_operand:HI 1 "register_operand" "")))
 5.12516 ++   (set (zero_extract:SI (match_operand 2 "register_operand" "")
 5.12517 ++                         (match_operand:SI 3 "immediate_operand" "")
 5.12518 ++                         (match_operand:SI 4 "immediate_operand" ""))
 5.12519 ++        (match_dup 0))]
 5.12520 ++  "((peep2_reg_dead_p(2, operands[0]) &&
 5.12521 ++    (INTVAL(operands[3]) <= 16)))"
 5.12522 ++  [(set (zero_extract:SI (match_dup 2)
 5.12523 ++                         (match_dup 3)
 5.12524 ++                         (match_dup 4))
 5.12525 ++        (match_dup 1))]
 5.12526 ++  )
 5.12527 ++
 5.12528 ++;;=============================================================================
 5.12529 ++;; push bytes
 5.12530 ++;;-----------------------------------------------------------------------------
 5.12531 ++;; Implements the push instruction
 5.12532 ++;;=============================================================================
 5.12533 ++(define_insn "pushm"
 5.12534 ++  [(set (mem:BLK (pre_dec:BLK (reg:SI SP_REGNUM)))
 5.12535 ++        (unspec:BLK [(match_operand 0 "const_int_operand" "")]
 5.12536 ++                    UNSPEC_PUSHM))]
 5.12537 ++  ""
 5.12538 ++  {
 5.12539 ++    if (INTVAL(operands[0])) {
 5.12540 ++      return "pushm\t%r0";
 5.12541 ++    } else {
 5.12542 ++      return "";
 5.12543 ++    }
 5.12544 ++  }
 5.12545 ++  [(set_attr "type" "store")
 5.12546 ++   (set_attr "length" "2")
 5.12547 ++   (set_attr "cc" "none")])
 5.12548 ++
 5.12549 ++(define_insn "stm"
 5.12550 ++  [(unspec [(match_operand 0 "register_operand" "r")
 5.12551 ++            (match_operand 1 "const_int_operand" "")
 5.12552 ++            (match_operand 2 "const_int_operand" "")]
 5.12553 ++	   UNSPEC_STM)]
 5.12554 ++  ""
 5.12555 ++  {
 5.12556 ++    if (INTVAL(operands[1])) {
 5.12557 ++      if (INTVAL(operands[2]) != 0)
 5.12558 ++         return "stm\t--%0, %s1";
 5.12559 ++      else
 5.12560 ++         return "stm\t%0, %s1";
 5.12561 ++    } else {
 5.12562 ++      return "";
 5.12563 ++    }
 5.12564 ++  }
 5.12565 ++  [(set_attr "type" "store")
 5.12566 ++   (set_attr "length" "4")
 5.12567 ++   (set_attr "cc" "none")])
 5.12568 ++
 5.12569 ++
 5.12570 ++
 5.12571 ++(define_insn "popm"
 5.12572 ++  [(unspec [(match_operand 0 "const_int_operand" "")]
 5.12573 ++	   UNSPEC_POPM)]
 5.12574 ++  ""
 5.12575 ++  {
 5.12576 ++    if (INTVAL(operands[0])) {
 5.12577 ++      return "popm   %r0";
 5.12578 ++    } else {
 5.12579 ++      return "";
 5.12580 ++    }
 5.12581 ++  }
 5.12582 ++  [(set_attr "type" "load")
 5.12583 ++   (set_attr "length" "2")])
 5.12584 ++
 5.12585 ++
 5.12586 ++
 5.12587 ++;;=============================================================================
 5.12588 ++;; add
 5.12589 ++;;-----------------------------------------------------------------------------
 5.12590 ++;; Adds reg1 with reg2 and puts the result in reg0.
 5.12591 ++;;=============================================================================
 5.12592 ++(define_insn "add<mode>3"
 5.12593 ++  [(set (match_operand:INTM 0 "register_operand" "=r,r,r,r,r")
 5.12594 ++	(plus:INTM (match_operand:INTM 1 "register_operand" "%0,r,0,r,0")
 5.12595 ++                   (match_operand:INTM 2 "avr32_add_operand" "r,r,Is08,Is16,Is21")))]
 5.12596 ++  ""
 5.12597 ++  "@
 5.12598 ++   add     %0, %2
 5.12599 ++   add     %0, %1, %2
 5.12600 ++   sub     %0, %n2
 5.12601 ++   sub     %0, %1, %n2
 5.12602 ++   sub     %0, %n2"
 5.12603 ++
 5.12604 ++  [(set_attr "length" "2,4,2,4,4")
 5.12605 ++   (set_attr "cc" "<INTM:alu_cc_attr>")])
 5.12606 ++
 5.12607 ++(define_insn "add<mode>3_lsl"
 5.12608 ++  [(set (match_operand:INTM 0 "register_operand" "=r")
 5.12609 ++	(plus:INTM (ashift:INTM (match_operand:INTM 1 "register_operand" "r")
 5.12610 ++                                (match_operand:INTM 3 "avr32_add_shift_immediate_operand" "Ku02"))
 5.12611 ++                   (match_operand:INTM 2 "register_operand" "r")))]
 5.12612 ++  ""
 5.12613 ++  "add     %0, %2, %1 << %3"
 5.12614 ++  [(set_attr "length" "4")
 5.12615 ++   (set_attr "cc" "<INTM:alu_cc_attr>")])
 5.12616 ++
 5.12617 ++(define_insn "add<mode>3_lsl2"
 5.12618 ++  [(set (match_operand:INTM 0 "register_operand" "=r")
 5.12619 ++	(plus:INTM (match_operand:INTM 1 "register_operand" "r")
 5.12620 ++                   (ashift:INTM (match_operand:INTM 2 "register_operand" "r")
 5.12621 ++                                (match_operand:INTM 3 "avr32_add_shift_immediate_operand" "Ku02"))))]
 5.12622 ++  ""
 5.12623 ++  "add     %0, %1, %2 << %3"
 5.12624 ++  [(set_attr "length" "4")
 5.12625 ++   (set_attr "cc" "<INTM:alu_cc_attr>")])
 5.12626 ++
 5.12627 ++
 5.12628 ++(define_insn "add<mode>3_mul"
 5.12629 ++  [(set (match_operand:INTM 0 "register_operand" "=r")
 5.12630 ++	(plus:INTM (mult:INTM (match_operand:INTM 1 "register_operand" "r")
 5.12631 ++                              (match_operand:INTM 3 "immediate_operand" "Ku04" ))
 5.12632 ++                   (match_operand:INTM 2 "register_operand" "r")))]
 5.12633 ++  "(INTVAL(operands[3]) == 0) || (INTVAL(operands[3]) == 2) ||
 5.12634 ++   (INTVAL(operands[3]) == 4) || (INTVAL(operands[3]) == 8)"
 5.12635 ++  "add     %0, %2, %1 << %p3"
 5.12636 ++  [(set_attr "length" "4")
 5.12637 ++   (set_attr "cc" "<INTM:alu_cc_attr>")])
 5.12638 ++
 5.12639 ++(define_insn "add<mode>3_mul2"
 5.12640 ++  [(set (match_operand:INTM 0 "register_operand" "=r")
 5.12641 ++	(plus:INTM (match_operand:INTM 1 "register_operand" "r")
 5.12642 ++                   (mult:INTM (match_operand:INTM 2 "register_operand" "r")
 5.12643 ++                              (match_operand:INTM 3 "immediate_operand" "Ku04" ))))]
 5.12644 ++  "(INTVAL(operands[3]) == 0) || (INTVAL(operands[3]) == 2) ||
 5.12645 ++   (INTVAL(operands[3]) == 4) || (INTVAL(operands[3]) == 8)"
 5.12646 ++  "add     %0, %1, %2 << %p3"
 5.12647 ++  [(set_attr "length" "4")
 5.12648 ++   (set_attr "cc" "<INTM:alu_cc_attr>")])
 5.12649 ++
 5.12650 ++
 5.12651 ++(define_peephole2
 5.12652 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.12653 ++        (ashift:SI (match_operand:SI 1 "register_operand" "")
 5.12654 ++                   (match_operand:SI 2 "immediate_operand" "")))
 5.12655 ++   (set (match_operand:SI 3 "register_operand" "")
 5.12656 ++	(plus:SI (match_dup 0)
 5.12657 ++                 (match_operand:SI 4 "register_operand" "")))]
 5.12658 ++  "(peep2_reg_dead_p(2, operands[0]) &&
 5.12659 ++    (INTVAL(operands[2]) < 4 && INTVAL(operands[2]) > 0))"
 5.12660 ++  [(set (match_dup 3)
 5.12661 ++	(plus:SI (ashift:SI (match_dup 1)
 5.12662 ++                            (match_dup 2))
 5.12663 ++                 (match_dup 4)))]
 5.12664 ++  )
 5.12665 ++
 5.12666 ++(define_peephole2
 5.12667 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.12668 ++        (ashift:SI (match_operand:SI 1 "register_operand" "")
 5.12669 ++                   (match_operand:SI 2 "immediate_operand" "")))
 5.12670 ++   (set (match_operand:SI 3 "register_operand" "")
 5.12671 ++	(plus:SI (match_operand:SI 4 "register_operand" "")
 5.12672 ++                 (match_dup 0)))]
 5.12673 ++  "(peep2_reg_dead_p(2, operands[0]) &&
 5.12674 ++    (INTVAL(operands[2]) < 4 && INTVAL(operands[2]) > 0))"
 5.12675 ++  [(set (match_dup 3)
 5.12676 ++	(plus:SI (ashift:SI (match_dup 1)
 5.12677 ++                            (match_dup 2))
 5.12678 ++                 (match_dup 4)))]
 5.12679 ++  )
 5.12680 ++
 5.12681 ++(define_insn "adddi3"
 5.12682 ++  [(set (match_operand:DI 0 "register_operand" "=r,r")
 5.12683 ++	(plus:DI (match_operand:DI 1 "register_operand" "%0,r")
 5.12684 ++		 (match_operand:DI 2 "register_operand" "r,r")))]
 5.12685 ++  ""
 5.12686 ++  "@
 5.12687 ++   add     %0, %2\;adc    %m0, %m0, %m2
 5.12688 ++   add     %0, %1, %2\;adc    %m0, %m1, %m2"
 5.12689 ++  [(set_attr "length" "6,8")
 5.12690 ++   (set_attr "type" "alu2")
 5.12691 ++   (set_attr "cc" "set_vncz")])
 5.12692 ++
 5.12693 ++
 5.12694 ++(define_insn "add<mode>_imm_predicable"
 5.12695 ++  [(set (match_operand:INTM 0 "register_operand" "+r")
 5.12696 ++	(plus:INTM (match_dup 0)
 5.12697 ++                   (match_operand:INTM 1 "avr32_cond_immediate_operand" "%Is08")))]
 5.12698 ++  ""
 5.12699 ++  "sub%?\t%0, -%1"
 5.12700 ++  [(set_attr "length" "4")
 5.12701 ++   (set_attr "cc" "cmp_cond_insn")
 5.12702 ++   (set_attr "predicable" "yes")]
 5.12703 ++)
 5.12704 ++
 5.12705 ++;;=============================================================================
 5.12706 ++;; subtract
 5.12707 ++;;-----------------------------------------------------------------------------
 5.12708 ++;; Subtract reg2 or immediate value from reg0 and puts the result in reg0.
 5.12709 ++;;=============================================================================
 5.12710 ++
 5.12711 ++(define_insn "sub<mode>3"
 5.12712 ++  [(set (match_operand:INTM 0 "general_operand" "=r,r,r,r,r,r,r")
 5.12713 ++	(minus:INTM (match_operand:INTM 1 "nonmemory_operand" "0,r,0,r,0,r,Ks08")
 5.12714 ++		  (match_operand:INTM 2 "nonmemory_operand" "r,r,Ks08,Ks16,Ks21,0,r")))]
 5.12715 ++  ""
 5.12716 ++  "@
 5.12717 ++   sub     %0, %2
 5.12718 ++   sub     %0, %1, %2
 5.12719 ++   sub     %0, %2
 5.12720 ++   sub     %0, %1, %2
 5.12721 ++   sub     %0, %2
 5.12722 ++   rsub    %0, %1
 5.12723 ++   rsub    %0, %2, %1"
 5.12724 ++  [(set_attr "length" "2,4,2,4,4,2,4")
 5.12725 ++   (set_attr "cc" "<INTM:alu_cc_attr>")])
 5.12726 ++
 5.12727 ++(define_insn "*sub<mode>3_mul"
 5.12728 ++  [(set (match_operand:INTM 0 "register_operand" "=r")
 5.12729 ++	(minus:INTM (match_operand:INTM 1 "register_operand" "r")
 5.12730 ++                    (mult:INTM (match_operand:INTM 2 "register_operand" "r")
 5.12731 ++                               (match_operand:SI 3 "immediate_operand" "Ku04" ))))]
 5.12732 ++  "(INTVAL(operands[3]) == 0) || (INTVAL(operands[3]) == 2) ||
 5.12733 ++   (INTVAL(operands[3]) == 4) || (INTVAL(operands[3]) == 8)"
 5.12734 ++  "sub     %0, %1, %2 << %p3"
 5.12735 ++  [(set_attr "length" "4")
 5.12736 ++   (set_attr "cc" "<INTM:alu_cc_attr>")])
 5.12737 ++
 5.12738 ++(define_insn "*sub<mode>3_lsl"
 5.12739 ++  [(set (match_operand:INTM 0 "register_operand" "=r")
 5.12740 ++	(minus:INTM  (match_operand:INTM 1 "register_operand" "r")
 5.12741 ++                     (ashift:INTM (match_operand:INTM 2 "register_operand" "r")
 5.12742 ++                                  (match_operand:SI 3 "avr32_add_shift_immediate_operand" "Ku02"))))]
 5.12743 ++  ""
 5.12744 ++  "sub     %0, %1, %2 << %3"
 5.12745 ++  [(set_attr "length" "4")
 5.12746 ++   (set_attr "cc" "<INTM:alu_cc_attr>")])
 5.12747 ++
 5.12748 ++
 5.12749 ++(define_insn "subdi3"
 5.12750 ++  [(set (match_operand:DI 0 "register_operand" "=r,r")
 5.12751 ++	(minus:DI (match_operand:DI 1 "register_operand" "%0,r")
 5.12752 ++		 (match_operand:DI 2 "register_operand" "r,r")))]
 5.12753 ++  ""
 5.12754 ++  "@
 5.12755 ++   sub     %0, %2\;sbc    %m0, %m0, %m2
 5.12756 ++   sub     %0, %1, %2\;sbc    %m0, %m1, %m2"
 5.12757 ++  [(set_attr "length" "6,8")
 5.12758 ++   (set_attr "type" "alu2")
 5.12759 ++   (set_attr "cc" "set_vncz")])
 5.12760 ++
 5.12761 ++
 5.12762 ++(define_insn "sub<mode>_imm_predicable"
 5.12763 ++  [(set (match_operand:INTM 0 "register_operand" "+r")
 5.12764 ++	(minus:INTM (match_dup 0)
 5.12765 ++                    (match_operand:INTM 1 "avr32_cond_immediate_operand" "Ks08")))]
 5.12766 ++  ""
 5.12767 ++  "sub%?\t%0, %1"
 5.12768 ++  [(set_attr "length" "4")
 5.12769 ++   (set_attr "cc" "cmp_cond_insn")
 5.12770 ++   (set_attr "predicable" "yes")])
 5.12771 ++
 5.12772 ++(define_insn "rsub<mode>_imm_predicable"
 5.12773 ++  [(set (match_operand:INTM 0 "register_operand" "+r")
 5.12774 ++	(minus:INTM (match_operand:INTM 1 "avr32_cond_immediate_operand"  "Ks08")
 5.12775 ++                    (match_dup 0)))]
 5.12776 ++  ""
 5.12777 ++  "rsub%?\t%0, %1"
 5.12778 ++  [(set_attr "length" "4")
 5.12779 ++   (set_attr "cc" "cmp_cond_insn")
 5.12780 ++   (set_attr "predicable" "yes")])
 5.12781 ++
 5.12782 ++;;=============================================================================
 5.12783 ++;; multiply
 5.12784 ++;;-----------------------------------------------------------------------------
 5.12785 ++;; Multiply op1 and op2 and put the value in op0.
 5.12786 ++;;=============================================================================
 5.12787 ++
 5.12788 ++
 5.12789 ++(define_insn "mulqi3"
 5.12790 ++  [(set (match_operand:QI 0 "register_operand"         "=r,r,r")
 5.12791 ++	(mult:QI (match_operand:QI 1 "register_operand" "%0,r,r")
 5.12792 ++		 (match_operand:QI 2 "avr32_mul_operand" "r,r,Ks08")))]
 5.12793 ++  "!TARGET_NO_MUL_INSNS"
 5.12794 ++  {
 5.12795 ++   switch (which_alternative){
 5.12796 ++    case 0:
 5.12797 ++      return "mul     %0, %2";
 5.12798 ++    case 1:
 5.12799 ++      return "mul     %0, %1, %2";
 5.12800 ++    case 2:
 5.12801 ++      return "mul     %0, %1, %2";
 5.12802 ++    default:
 5.12803 ++      gcc_unreachable();
 5.12804 ++   }
 5.12805 ++  }
 5.12806 ++  [(set_attr "type" "mulww_w,mulww_w,mulwh")
 5.12807 ++   (set_attr "length" "2,4,4")
 5.12808 ++   (set_attr "cc" "none")])
 5.12809 ++
 5.12810 ++(define_insn "mulsi3"
 5.12811 ++  [(set (match_operand:SI 0 "register_operand"         "=r,r,r")
 5.12812 ++	(mult:SI (match_operand:SI 1 "register_operand" "%0,r,r")
 5.12813 ++		 (match_operand:SI 2 "avr32_mul_operand" "r,r,Ks08")))]
 5.12814 ++  "!TARGET_NO_MUL_INSNS"
 5.12815 ++  {
 5.12816 ++   switch (which_alternative){
 5.12817 ++    case 0:
 5.12818 ++      return "mul     %0, %2";
 5.12819 ++    case 1:
 5.12820 ++      return "mul     %0, %1, %2";
 5.12821 ++    case 2:
 5.12822 ++      return "mul     %0, %1, %2";
 5.12823 ++    default:
 5.12824 ++      gcc_unreachable();
 5.12825 ++   }
 5.12826 ++  }
 5.12827 ++  [(set_attr "type" "mulww_w,mulww_w,mulwh")
 5.12828 ++   (set_attr "length" "2,4,4")
 5.12829 ++   (set_attr "cc" "none")])
 5.12830 ++
 5.12831 ++
 5.12832 ++(define_insn "mulhisi3"
 5.12833 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.12834 ++	(mult:SI
 5.12835 ++	 (sign_extend:SI (match_operand:HI 1 "register_operand" "%r"))
 5.12836 ++	 (sign_extend:SI (match_operand:HI 2 "register_operand" "r"))))]
 5.12837 ++  "!TARGET_NO_MUL_INSNS && TARGET_DSP"
 5.12838 ++  "mulhh.w %0, %1:b, %2:b"
 5.12839 ++  [(set_attr "type" "mulhh")
 5.12840 ++   (set_attr "length" "4")
 5.12841 ++   (set_attr "cc" "none")])
 5.12842 ++
 5.12843 ++(define_peephole2
 5.12844 ++  [(match_scratch:DI 6 "r")
 5.12845 ++   (set (match_operand:SI 0 "register_operand" "")
 5.12846 ++	(mult:SI
 5.12847 ++	 (sign_extend:SI (match_operand:HI 1 "register_operand" ""))
 5.12848 ++         (sign_extend:SI (match_operand:HI 2 "register_operand" ""))))
 5.12849 ++   (set (match_operand:SI 3 "register_operand" "")
 5.12850 ++        (ashiftrt:SI (match_dup 0)
 5.12851 ++                     (const_int 16)))]
 5.12852 ++  "!TARGET_NO_MUL_INSNS && TARGET_DSP
 5.12853 ++   && (peep2_reg_dead_p(1, operands[0]) || (REGNO(operands[0]) == REGNO(operands[3])))"
 5.12854 ++  [(set (match_dup 4) (sign_extend:SI (match_dup 1)))
 5.12855 ++   (set (match_dup 6)
 5.12856 ++        (ashift:DI (mult:DI (sign_extend:DI (match_dup 4))
 5.12857 ++                            (sign_extend:DI (match_dup 2)))
 5.12858 ++                   (const_int 16)))
 5.12859 ++   (set (match_dup 3) (match_dup 5))]
 5.12860 ++
 5.12861 ++  "{
 5.12862 ++     operands[4] = gen_rtx_REG(SImode, REGNO(operands[1]));
 5.12863 ++     operands[5] = gen_highpart (SImode, operands[4]);
 5.12864 ++   }"
 5.12865 ++  )
 5.12866 ++
 5.12867 ++(define_insn "mulnhisi3"
 5.12868 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.12869 ++        (mult:SI
 5.12870 ++         (sign_extend:SI (neg:HI (match_operand:HI 1 "register_operand" "r")))
 5.12871 ++         (sign_extend:SI (match_operand:HI 2 "register_operand" "r"))))]
 5.12872 ++  "!TARGET_NO_MUL_INSNS && TARGET_DSP"
 5.12873 ++  "mulnhh.w %0, %1:b, %2:b"
 5.12874 ++  [(set_attr "type" "mulhh")
 5.12875 ++   (set_attr "length" "4")
 5.12876 ++   (set_attr "cc" "none")])
 5.12877 ++
 5.12878 ++(define_insn "machisi3"
 5.12879 ++  [(set (match_operand:SI 0 "register_operand" "+r")
 5.12880 ++	(plus:SI (mult:SI
 5.12881 ++                  (sign_extend:SI (match_operand:HI 1 "register_operand" "%r"))
 5.12882 ++                  (sign_extend:SI (match_operand:HI 2 "register_operand" "r")))
 5.12883 ++                 (match_dup 0)))]
 5.12884 ++  "!TARGET_NO_MUL_INSNS && TARGET_DSP"
 5.12885 ++  "machh.w %0, %1:b, %2:b"
 5.12886 ++  [(set_attr "type" "machh_w")
 5.12887 ++   (set_attr "length" "4")
 5.12888 ++   (set_attr "cc" "none")])
 5.12889 ++
 5.12890 ++
 5.12891 ++
 5.12892 ++(define_insn "mulsidi3"
 5.12893 ++  [(set (match_operand:DI 0 "register_operand" "=r")
 5.12894 ++	(mult:DI
 5.12895 ++	 (sign_extend:DI (match_operand:SI 1 "register_operand" "%r"))
 5.12896 ++	 (sign_extend:DI (match_operand:SI 2 "register_operand" "r"))))]
 5.12897 ++  "!TARGET_NO_MUL_INSNS"
 5.12898 ++  "muls.d  %0, %1, %2"
 5.12899 ++  [(set_attr "type" "mulww_d")
 5.12900 ++   (set_attr "length" "4")
 5.12901 ++   (set_attr "cc" "none")])
 5.12902 ++
 5.12903 ++(define_insn "umulsidi3"
 5.12904 ++  [(set (match_operand:DI 0 "register_operand" "=r")
 5.12905 ++	(mult:DI
 5.12906 ++	 (zero_extend:DI (match_operand:SI 1 "register_operand" "%r"))
 5.12907 ++	 (zero_extend:DI (match_operand:SI 2 "register_operand" "r"))))]
 5.12908 ++  "!TARGET_NO_MUL_INSNS"
 5.12909 ++  "mulu.d  %0, %1, %2"
 5.12910 ++  [(set_attr "type" "mulww_d")
 5.12911 ++   (set_attr "length" "4")
 5.12912 ++   (set_attr "cc" "none")])
 5.12913 ++
 5.12914 ++(define_insn "*mulaccsi3"
 5.12915 ++  [(set (match_operand:SI 0 "register_operand" "+r")
 5.12916 ++	(plus:SI (mult:SI (match_operand:SI 1 "register_operand" "%r")
 5.12917 ++			  (match_operand:SI 2 "register_operand" "r"))
 5.12918 ++		 (match_dup 0)))]
 5.12919 ++  "!TARGET_NO_MUL_INSNS"
 5.12920 ++  "mac     %0, %1, %2"
 5.12921 ++  [(set_attr "type" "macww_w")
 5.12922 ++   (set_attr "length" "4")
 5.12923 ++   (set_attr "cc" "none")])
 5.12924 ++
 5.12925 ++(define_insn "*mulaccsidi3"
 5.12926 ++  [(set (match_operand:DI 0 "register_operand" "+r")
 5.12927 ++	(plus:DI (mult:DI
 5.12928 ++		  (sign_extend:DI (match_operand:SI 1 "register_operand" "%r"))
 5.12929 ++		  (sign_extend:DI (match_operand:SI 2 "register_operand" "r")))
 5.12930 ++		 (match_dup 0)))]
 5.12931 ++  "!TARGET_NO_MUL_INSNS"
 5.12932 ++  "macs.d  %0, %1, %2"
 5.12933 ++  [(set_attr "type" "macww_d")
 5.12934 ++   (set_attr "length" "4")
 5.12935 ++   (set_attr "cc" "none")])
 5.12936 ++
 5.12937 ++(define_insn "*umulaccsidi3"
 5.12938 ++  [(set (match_operand:DI 0 "register_operand" "+r")
 5.12939 ++	(plus:DI (mult:DI
 5.12940 ++		  (zero_extend:DI (match_operand:SI 1 "register_operand" "%r"))
 5.12941 ++		  (zero_extend:DI (match_operand:SI 2 "register_operand" "r")))
 5.12942 ++		 (match_dup 0)))]
 5.12943 ++  "!TARGET_NO_MUL_INSNS"
 5.12944 ++  "macu.d  %0, %1, %2"
 5.12945 ++  [(set_attr "type" "macww_d")
 5.12946 ++   (set_attr "length" "4")
 5.12947 ++   (set_attr "cc" "none")])
 5.12948 ++
 5.12949 ++
 5.12950 ++
 5.12951 ++;; Try to avoid Write-After-Write hazards for mul operations
 5.12952 ++;; if it can be done
 5.12953 ++(define_peephole2
 5.12954 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.12955 ++	(mult:SI
 5.12956 ++	 (sign_extend:SI (match_operand 1 "general_operand" ""))
 5.12957 ++         (sign_extend:SI (match_operand 2 "general_operand" ""))))
 5.12958 ++   (set (match_dup 0)
 5.12959 ++	(match_operator:SI 3 "alu_operator" [(match_dup 0)
 5.12960 ++                                             (match_operand 4 "general_operand" "")]))]
 5.12961 ++  "peep2_reg_dead_p(1, operands[2])"
 5.12962 ++  [(set (match_dup 5)
 5.12963 ++        (mult:SI
 5.12964 ++         (sign_extend:SI (match_dup 1))
 5.12965 ++         (sign_extend:SI (match_dup 2))))
 5.12966 ++   (set (match_dup 0)
 5.12967 ++	(match_op_dup 3 [(match_dup 5)
 5.12968 ++                         (match_dup 4)]))]
 5.12969 ++  "{operands[5] = gen_rtx_REG(SImode, REGNO(operands[2]));}"
 5.12970 ++  )
 5.12971 ++
 5.12972 ++
 5.12973 ++
 5.12974 ++;;=============================================================================
 5.12975 ++;; DSP instructions
 5.12976 ++;;=============================================================================
 5.12977 ++(define_insn "mulsathh_h"
 5.12978 ++  [(set (match_operand:HI 0 "register_operand" "=r")
 5.12979 ++        (ss_truncate:HI (ashiftrt:SI (mult:SI (sign_extend:SI (match_operand:HI 1 "register_operand" "%r"))
 5.12980 ++                                              (sign_extend:SI (match_operand:HI 2 "register_operand" "r")))
 5.12981 ++                                     (const_int 15))))]
 5.12982 ++  "!TARGET_NO_MUL_INSNS && TARGET_DSP"
 5.12983 ++  "mulsathh.h\t%0, %1:b, %2:b"
 5.12984 ++  [(set_attr "length" "4")
 5.12985 ++   (set_attr "cc" "none")
 5.12986 ++   (set_attr "type" "mulhh")])
 5.12987 ++
 5.12988 ++(define_insn "mulsatrndhh_h"
 5.12989 ++  [(set (match_operand:HI 0 "register_operand" "=r")
 5.12990 ++        (ss_truncate:HI (ashiftrt:SI
 5.12991 ++                         (plus:SI (mult:SI (sign_extend:SI (match_operand:HI 1 "register_operand" "%r"))
 5.12992 ++                                           (sign_extend:SI (match_operand:HI 2 "register_operand" "r")))
 5.12993 ++                                  (const_int 1073741824))
 5.12994 ++                         (const_int 15))))]
 5.12995 ++  "!TARGET_NO_MUL_INSNS && TARGET_DSP"
 5.12996 ++  "mulsatrndhh.h\t%0, %1:b, %2:b"
 5.12997 ++  [(set_attr "length" "4")
 5.12998 ++   (set_attr "cc" "none")
 5.12999 ++   (set_attr "type" "mulhh")])
 5.13000 ++
 5.13001 ++(define_insn "mulsathh_w"
 5.13002 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.13003 ++        (ss_truncate:SI (ashift:DI (mult:DI (sign_extend:DI (match_operand:HI 1 "register_operand" "%r"))
 5.13004 ++                                            (sign_extend:DI (match_operand:HI 2 "register_operand" "r")))
 5.13005 ++                                   (const_int 1))))]
 5.13006 ++  "!TARGET_NO_MUL_INSNS && TARGET_DSP"
 5.13007 ++  "mulsathh.w\t%0, %1:b, %2:b"
 5.13008 ++  [(set_attr "length" "4")
 5.13009 ++   (set_attr "cc" "none")
 5.13010 ++   (set_attr "type" "mulhh")])
 5.13011 ++
 5.13012 ++(define_insn "mulsatwh_w"
 5.13013 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.13014 ++        (ss_truncate:SI (ashiftrt:DI (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "r"))
 5.13015 ++                                              (sign_extend:DI (match_operand:HI 2 "register_operand" "r")))
 5.13016 ++                                     (const_int 15))))]
 5.13017 ++  "!TARGET_NO_MUL_INSNS && TARGET_DSP"
 5.13018 ++  "mulsatwh.w\t%0, %1, %2:b"
 5.13019 ++  [(set_attr "length" "4")
 5.13020 ++   (set_attr "cc" "none")
 5.13021 ++   (set_attr "type" "mulwh")])
 5.13022 ++
 5.13023 ++(define_insn "mulsatrndwh_w"
 5.13024 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.13025 ++        (ss_truncate:SI (ashiftrt:DI (plus:DI (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "r"))
 5.13026 ++                                                       (sign_extend:DI (match_operand:HI 2 "register_operand" "r")))
 5.13027 ++                                              (const_int 1073741824))
 5.13028 ++                                     (const_int 15))))]
 5.13029 ++  "!TARGET_NO_MUL_INSNS && TARGET_DSP"
 5.13030 ++  "mulsatrndwh.w\t%0, %1, %2:b"
 5.13031 ++  [(set_attr "length" "4")
 5.13032 ++   (set_attr "cc" "none")
 5.13033 ++   (set_attr "type" "mulwh")])
 5.13034 ++
 5.13035 ++(define_insn "macsathh_w"
 5.13036 ++  [(set (match_operand:SI 0 "register_operand" "+r")
 5.13037 ++        (plus:SI (match_dup 0)
 5.13038 ++                 (ss_truncate:SI (ashift:DI (mult:DI (sign_extend:DI (match_operand:HI 1 "register_operand" "%r"))
 5.13039 ++                                                     (sign_extend:DI (match_operand:HI 2 "register_operand" "r")))
 5.13040 ++                                            (const_int 1)))))]
 5.13041 ++  "!TARGET_NO_MUL_INSNS && TARGET_DSP"
 5.13042 ++  "macsathh.w\t%0, %1:b, %2:b"
 5.13043 ++  [(set_attr "length" "4")
 5.13044 ++   (set_attr "cc" "none")
 5.13045 ++   (set_attr "type" "mulhh")])
 5.13046 ++
 5.13047 ++
 5.13048 ++(define_insn "mulwh_d"
 5.13049 ++  [(set (match_operand:DI 0 "register_operand" "=r")
 5.13050 ++        (ashift:DI (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "r"))
 5.13051 ++                            (sign_extend:DI (match_operand:HI 2 "register_operand" "r")))
 5.13052 ++                   (const_int 16)))]
 5.13053 ++  "!TARGET_NO_MUL_INSNS && TARGET_DSP"
 5.13054 ++  "mulwh.d\t%0, %1, %2:b"
 5.13055 ++  [(set_attr "length" "4")
 5.13056 ++   (set_attr "cc" "none")
 5.13057 ++   (set_attr "type" "mulwh")])
 5.13058 ++
 5.13059 ++
 5.13060 ++(define_insn "mulnwh_d"
 5.13061 ++  [(set (match_operand:DI 0 "register_operand" "=r")
 5.13062 ++        (ashift:DI (mult:DI (not:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "r")))
 5.13063 ++                            (sign_extend:DI (match_operand:HI 2 "register_operand" "r")))
 5.13064 ++                   (const_int 16)))]
 5.13065 ++  "!TARGET_NO_MUL_INSNS && TARGET_DSP"
 5.13066 ++  "mulnwh.d\t%0, %1, %2:b"
 5.13067 ++  [(set_attr "length" "4")
 5.13068 ++   (set_attr "cc" "none")
 5.13069 ++   (set_attr "type" "mulwh")])
 5.13070 ++
 5.13071 ++(define_insn "macwh_d"
 5.13072 ++  [(set (match_operand:DI 0 "register_operand" "+r")
 5.13073 ++        (plus:DI (match_dup 0)
 5.13074 ++                 (ashift:DI (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "%r"))
 5.13075 ++                                     (sign_extend:DI (match_operand:HI 2 "register_operand" "r")))
 5.13076 ++                            (const_int 16))))]
 5.13077 ++  "!TARGET_NO_MUL_INSNS && TARGET_DSP"
 5.13078 ++  "macwh.d\t%0, %1, %2:b"
 5.13079 ++  [(set_attr "length" "4")
 5.13080 ++   (set_attr "cc" "none")
 5.13081 ++   (set_attr "type" "mulwh")])
 5.13082 ++
 5.13083 ++(define_insn "machh_d"
 5.13084 ++  [(set (match_operand:DI 0 "register_operand" "+r")
 5.13085 ++        (plus:DI (match_dup 0)
 5.13086 ++                 (mult:DI (sign_extend:DI (match_operand:HI 1 "register_operand" "%r"))
 5.13087 ++                          (sign_extend:DI (match_operand:HI 2 "register_operand" "r")))))]
 5.13088 ++  "!TARGET_NO_MUL_INSNS && TARGET_DSP"
 5.13089 ++  "machh.d\t%0, %1:b, %2:b"
 5.13090 ++  [(set_attr "length" "4")
 5.13091 ++   (set_attr "cc" "none")
 5.13092 ++   (set_attr "type" "mulwh")])
 5.13093 ++
 5.13094 ++(define_insn "satadd_w"
 5.13095 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.13096 ++        (ss_plus:SI (match_operand:SI 1 "register_operand" "r")
 5.13097 ++                    (match_operand:SI 2 "register_operand" "r")))]
 5.13098 ++  "TARGET_DSP"
 5.13099 ++  "satadd.w\t%0, %1, %2"
 5.13100 ++  [(set_attr "length" "4")
 5.13101 ++   (set_attr "cc" "none")
 5.13102 ++   (set_attr "type" "alu_sat")])
 5.13103 ++
 5.13104 ++(define_insn "satsub_w"
 5.13105 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.13106 ++        (ss_minus:SI (match_operand:SI 1 "register_operand" "r")
 5.13107 ++                     (match_operand:SI 2 "register_operand" "r")))]
 5.13108 ++  "TARGET_DSP"
 5.13109 ++  "satsub.w\t%0, %1, %2"
 5.13110 ++  [(set_attr "length" "4")
 5.13111 ++   (set_attr "cc" "none")
 5.13112 ++   (set_attr "type" "alu_sat")])
 5.13113 ++
 5.13114 ++(define_insn "satadd_h"
 5.13115 ++  [(set (match_operand:HI 0 "register_operand" "=r")
 5.13116 ++        (ss_plus:HI (match_operand:HI 1 "register_operand" "r")
 5.13117 ++                    (match_operand:HI 2 "register_operand" "r")))]
 5.13118 ++  "TARGET_DSP"
 5.13119 ++  "satadd.h\t%0, %1, %2"
 5.13120 ++  [(set_attr "length" "4")
 5.13121 ++   (set_attr "cc" "none")
 5.13122 ++   (set_attr "type" "alu_sat")])
 5.13123 ++
 5.13124 ++(define_insn "satsub_h"
 5.13125 ++  [(set (match_operand:HI 0 "register_operand" "=r")
 5.13126 ++        (ss_minus:HI (match_operand:HI 1 "register_operand" "r")
 5.13127 ++                     (match_operand:HI 2 "register_operand" "r")))]
 5.13128 ++  "TARGET_DSP"
 5.13129 ++  "satsub.h\t%0, %1, %2"
 5.13130 ++  [(set_attr "length" "4")
 5.13131 ++   (set_attr "cc" "none")
 5.13132 ++   (set_attr "type" "alu_sat")])
 5.13133 ++
 5.13134 ++
 5.13135 ++;;=============================================================================
 5.13136 ++;; smin
 5.13137 ++;;-----------------------------------------------------------------------------
 5.13138 ++;; Set reg0 to the smallest value of reg1 and reg2. It is used for signed
 5.13139 ++;; values in the registers.
 5.13140 ++;;=============================================================================
 5.13141 ++(define_insn "sminsi3"
 5.13142 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.13143 ++	(smin:SI (match_operand:SI 1 "register_operand" "r")
 5.13144 ++		 (match_operand:SI 2 "register_operand" "r")))]
 5.13145 ++  ""
 5.13146 ++  "min     %0, %1, %2"
 5.13147 ++  [(set_attr "length" "4")
 5.13148 ++   (set_attr "cc" "none")])
 5.13149 ++
 5.13150 ++;;=============================================================================
 5.13151 ++;; smax
 5.13152 ++;;-----------------------------------------------------------------------------
 5.13153 ++;; Set reg0 to the largest value of reg1 and reg2. It is used for signed
 5.13154 ++;; values in the registers.
 5.13155 ++;;=============================================================================
 5.13156 ++(define_insn "smaxsi3"
 5.13157 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.13158 ++	(smax:SI (match_operand:SI 1 "register_operand" "r")
 5.13159 ++		 (match_operand:SI 2 "register_operand" "r")))]
 5.13160 ++  ""
 5.13161 ++  "max     %0, %1, %2"
 5.13162 ++  [(set_attr "length" "4")
 5.13163 ++   (set_attr "cc" "none")])
 5.13164 ++
 5.13165 ++
 5.13166 ++
 5.13167 ++;;=============================================================================
 5.13168 ++;; Logical operations
 5.13169 ++;;-----------------------------------------------------------------------------
 5.13170 ++
 5.13171 ++
 5.13172 ++;; Split up simple DImode logical operations.  Simply perform the logical
 5.13173 ++;; operation on the upper and lower halves of the registers.
 5.13174 ++(define_split
 5.13175 ++  [(set (match_operand:DI 0 "register_operand" "")
 5.13176 ++	(match_operator:DI 6 "logical_binary_operator"
 5.13177 ++	  [(match_operand:DI 1 "register_operand" "")
 5.13178 ++	   (match_operand:DI 2 "register_operand" "")]))]
 5.13179 ++  "reload_completed"
 5.13180 ++  [(set (match_dup 0) (match_op_dup:SI 6 [(match_dup 1) (match_dup 2)]))
 5.13181 ++   (set (match_dup 3) (match_op_dup:SI 6 [(match_dup 4) (match_dup 5)]))]
 5.13182 ++  "
 5.13183 ++  {
 5.13184 ++    operands[3] = gen_highpart (SImode, operands[0]);
 5.13185 ++    operands[0] = gen_lowpart (SImode, operands[0]);
 5.13186 ++    operands[4] = gen_highpart (SImode, operands[1]);
 5.13187 ++    operands[1] = gen_lowpart (SImode, operands[1]);
 5.13188 ++    operands[5] = gen_highpart (SImode, operands[2]);
 5.13189 ++    operands[2] = gen_lowpart (SImode, operands[2]);
 5.13190 ++  }"
 5.13191 ++)
 5.13192 ++
 5.13193 ++;;=============================================================================
 5.13194 ++;; Logical operations with shifted operand
 5.13195 ++;;=============================================================================
 5.13196 ++(define_insn "<code>si_lshift"
 5.13197 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.13198 ++        (logical:SI (match_operator:SI 4 "logical_shift_operator"
 5.13199 ++                                       [(match_operand:SI 2 "register_operand" "r")
 5.13200 ++                                        (match_operand:SI 3 "immediate_operand" "Ku05")])
 5.13201 ++                    (match_operand:SI 1 "register_operand" "r")))]
 5.13202 ++  ""
 5.13203 ++  {
 5.13204 ++   if ( GET_CODE(operands[4]) == ASHIFT )
 5.13205 ++      return "<logical_insn>\t%0, %1, %2 << %3";
 5.13206 ++   else
 5.13207 ++      return "<logical_insn>\t%0, %1, %2 >> %3";
 5.13208 ++      }
 5.13209 ++
 5.13210 ++  [(set_attr "cc" "set_z")]
 5.13211 ++)
 5.13212 ++
 5.13213 ++
 5.13214 ++;;************************************************
 5.13215 ++;; Peepholes for detecting logical operantions
 5.13216 ++;; with shifted operands
 5.13217 ++;;************************************************
 5.13218 ++
 5.13219 ++(define_peephole
 5.13220 ++  [(set (match_operand:SI 3 "register_operand" "")
 5.13221 ++        (match_operator:SI 5 "logical_shift_operator"
 5.13222 ++                           [(match_operand:SI 1 "register_operand" "")
 5.13223 ++                            (match_operand:SI 2 "immediate_operand" "")]))
 5.13224 ++   (set (match_operand:SI 0 "register_operand" "")
 5.13225 ++        (logical:SI (match_operand:SI 4 "register_operand" "")
 5.13226 ++                    (match_dup 3)))]
 5.13227 ++  "(dead_or_set_p(insn, operands[3])) || (REGNO(operands[3]) == REGNO(operands[0]))"
 5.13228 ++  {
 5.13229 ++   if ( GET_CODE(operands[5]) == ASHIFT )
 5.13230 ++      return "<logical_insn>\t%0, %4, %1 << %2";
 5.13231 ++   else
 5.13232 ++      return "<logical_insn>\t%0, %4, %1 >> %2";
 5.13233 ++  }
 5.13234 ++  [(set_attr "cc" "set_z")]
 5.13235 ++  )
 5.13236 ++
 5.13237 ++(define_peephole
 5.13238 ++  [(set (match_operand:SI 3 "register_operand" "")
 5.13239 ++        (match_operator:SI 5 "logical_shift_operator"
 5.13240 ++                           [(match_operand:SI 1 "register_operand" "")
 5.13241 ++                            (match_operand:SI 2 "immediate_operand" "")]))
 5.13242 ++   (set (match_operand:SI 0 "register_operand" "")
 5.13243 ++        (logical:SI (match_dup 3)
 5.13244 ++                    (match_operand:SI 4 "register_operand" "")))]
 5.13245 ++  "(dead_or_set_p(insn, operands[3])) || (REGNO(operands[3]) == REGNO(operands[0]))"
 5.13246 ++  {
 5.13247 ++   if ( GET_CODE(operands[5]) == ASHIFT )
 5.13248 ++      return "<logical_insn>\t%0, %4, %1 << %2";
 5.13249 ++   else
 5.13250 ++      return "<logical_insn>\t%0, %4, %1 >> %2";
 5.13251 ++  }
 5.13252 ++  [(set_attr "cc" "set_z")]
 5.13253 ++  )
 5.13254 ++
 5.13255 ++
 5.13256 ++(define_peephole2
 5.13257 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.13258 ++        (match_operator:SI 5 "logical_shift_operator"
 5.13259 ++                           [(match_operand:SI 1 "register_operand" "")
 5.13260 ++                            (match_operand:SI 2 "immediate_operand" "")]))
 5.13261 ++   (set (match_operand:SI 3 "register_operand" "")
 5.13262 ++        (logical:SI (match_operand:SI 4 "register_operand" "")
 5.13263 ++                    (match_dup 0)))]
 5.13264 ++  "(peep2_reg_dead_p(2, operands[0])) || (REGNO(operands[3]) == REGNO(operands[0]))"
 5.13265 ++
 5.13266 ++  [(set (match_dup 3)
 5.13267 ++        (logical:SI  (match_op_dup:SI 5 [(match_dup 1) (match_dup 2)])
 5.13268 ++                     (match_dup 4)))]
 5.13269 ++
 5.13270 ++  ""
 5.13271 ++)
 5.13272 ++
 5.13273 ++(define_peephole2
 5.13274 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.13275 ++        (match_operator:SI 5 "logical_shift_operator"
 5.13276 ++                           [(match_operand:SI 1 "register_operand" "")
 5.13277 ++                            (match_operand:SI 2 "immediate_operand" "")]))
 5.13278 ++   (set (match_operand:SI 3 "register_operand" "")
 5.13279 ++        (logical:SI (match_dup 0)
 5.13280 ++                    (match_operand:SI 4 "register_operand" "")))]
 5.13281 ++  "(peep2_reg_dead_p(2, operands[0])) || (REGNO(operands[3]) == REGNO(operands[0]))"
 5.13282 ++
 5.13283 ++  [(set (match_dup 3)
 5.13284 ++        (logical:SI (match_op_dup:SI 5 [(match_dup 1) (match_dup 2)])
 5.13285 ++                    (match_dup 4)))]
 5.13286 ++
 5.13287 ++  ""
 5.13288 ++)
 5.13289 ++
 5.13290 ++
 5.13291 ++;;=============================================================================
 5.13292 ++;; and
 5.13293 ++;;-----------------------------------------------------------------------------
 5.13294 ++;; Store the result after a bitwise logical-and between reg0 and reg2 in reg0.
 5.13295 ++;;=============================================================================
 5.13296 ++
 5.13297 ++(define_insn "andnsi"
 5.13298 ++  [(set (match_operand:SI 0 "register_operand" "+r")
 5.13299 ++        (and:SI (match_dup 0)
 5.13300 ++                (not:SI (match_operand:SI 1 "register_operand" "r"))))]
 5.13301 ++  ""
 5.13302 ++  "andn    %0, %1"
 5.13303 ++  [(set_attr "cc" "set_z")
 5.13304 ++   (set_attr "length" "2")]
 5.13305 ++)
 5.13306 ++
 5.13307 ++
 5.13308 ++(define_insn "andsi3"
 5.13309 ++  [(set (match_operand:SI 0 "avr32_rmw_memory_or_register_operand"          "=Y,r,r,r,   r,   r,r,r,r,r")
 5.13310 ++	(and:SI (match_operand:SI 1 "avr32_rmw_memory_or_register_operand"  "%0,r,0,0,   0,   0,0,0,0,r" )
 5.13311 ++		(match_operand:SI 2 "nonmemory_operand"                     " N,M,N,Ku16,Ks17,J,L,r,i,r")))]
 5.13312 ++  ""
 5.13313 ++  "@
 5.13314 ++   memc\t%0, %z2
 5.13315 ++   bfextu\t%0, %1, 0, %z2
 5.13316 ++   cbr\t%0, %z2
 5.13317 ++   andl\t%0, %2, COH
 5.13318 ++   andl\t%0, lo(%2)
 5.13319 ++   andh\t%0, hi(%2), COH
 5.13320 ++   andh\t%0, hi(%2)
 5.13321 ++   and\t%0, %2
 5.13322 ++   andh\t%0, hi(%2)\;andl\t%0, lo(%2)
 5.13323 ++   and\t%0, %1, %2"
 5.13324 ++  
 5.13325 ++  [(set_attr "length" "4,4,2,4,4,4,4,2,8,4")
 5.13326 ++   (set_attr "cc" "none,set_z,set_z,set_z,set_z,set_z,set_z,set_z,set_z,set_z")])
 5.13327 ++
 5.13328 ++(define_insn "anddi3"
 5.13329 ++  [(set (match_operand:DI 0 "register_operand" "=&r,&r")
 5.13330 ++	(and:DI (match_operand:DI 1 "register_operand" "%0,r")
 5.13331 ++                (match_operand:DI 2 "register_operand" "r,r")))]
 5.13332 ++  ""
 5.13333 ++  "#"
 5.13334 ++  [(set_attr "length" "8")
 5.13335 ++   (set_attr "cc" "clobber")]
 5.13336 ++)
 5.13337 ++
 5.13338 ++;;=============================================================================
 5.13339 ++;; or
 5.13340 ++;;-----------------------------------------------------------------------------
 5.13341 ++;; Store the result after a bitwise inclusive-or between reg0 and reg2 in reg0.
 5.13342 ++;;=============================================================================
 5.13343 ++
 5.13344 ++(define_insn "iorsi3"
 5.13345 ++  [(set (match_operand:SI 0 "avr32_rmw_memory_or_register_operand"          "=Y,r,r,   r,r,r,r")
 5.13346 ++	(ior:SI (match_operand:SI 1 "avr32_rmw_memory_or_register_operand"  "%0,0,0,   0,0,0,r" )
 5.13347 ++		(match_operand:SI 2 "nonmemory_operand"                     " O,O,Ku16,J,r,i,r")))]
 5.13348 ++  ""
 5.13349 ++  "@
 5.13350 ++   mems\t%0, %p2
 5.13351 ++   sbr\t%0, %p2
 5.13352 ++   orl\t%0, %2
 5.13353 ++   orh\t%0, hi(%2)
 5.13354 ++   or\t%0, %2
 5.13355 ++   orh\t%0, hi(%2)\;orl\t%0, lo(%2)
 5.13356 ++   or\t%0, %1, %2"
 5.13357 ++
 5.13358 ++  [(set_attr "length" "4,2,4,4,2,8,4")
 5.13359 ++   (set_attr "cc" "none,set_z,set_z,set_z,set_z,set_z,set_z")])
 5.13360 ++
 5.13361 ++
 5.13362 ++(define_insn "iordi3"
 5.13363 ++  [(set (match_operand:DI 0 "register_operand" "=&r,&r")
 5.13364 ++	(ior:DI (match_operand:DI 1 "register_operand" "%0,r")
 5.13365 ++                (match_operand:DI 2 "register_operand" "r,r")))]
 5.13366 ++  ""
 5.13367 ++  "#"
 5.13368 ++  [(set_attr "length" "8")
 5.13369 ++   (set_attr "cc" "clobber")]
 5.13370 ++)
 5.13371 ++
 5.13372 ++;;=============================================================================
 5.13373 ++;; xor bytes
 5.13374 ++;;-----------------------------------------------------------------------------
 5.13375 ++;; Store the result after a bitwise exclusive-or between reg0 and reg2 in reg0.
 5.13376 ++;;=============================================================================
 5.13377 ++
 5.13378 ++(define_insn "xorsi3"
 5.13379 ++  [(set (match_operand:SI 0 "avr32_rmw_memory_or_register_operand"          "=Y,r,   r,r,r,r")
 5.13380 ++	(xor:SI (match_operand:SI 1 "avr32_rmw_memory_or_register_operand"  "%0,0,   0,0,0,r" )
 5.13381 ++		(match_operand:SI 2 "nonmemory_operand"                     " O,Ku16,J,r,i,r")))]
 5.13382 ++  ""
 5.13383 ++  "@
 5.13384 ++   memt\t%0, %p2
 5.13385 ++   eorl\t%0, %2
 5.13386 ++   eorh\t%0, hi(%2)
 5.13387 ++   eor\t%0, %2
 5.13388 ++   eorh\t%0, hi(%2)\;eorl\t%0, lo(%2)
 5.13389 ++   eor\t%0, %1, %2"
 5.13390 ++  
 5.13391 ++  [(set_attr "length" "4,4,4,2,8,4")
 5.13392 ++   (set_attr "cc" "none,set_z,set_z,set_z,set_z,set_z")])
 5.13393 ++
 5.13394 ++
 5.13395 ++(define_insn "xordi3"
 5.13396 ++  [(set (match_operand:DI 0 "register_operand" "=&r,&r")
 5.13397 ++	(xor:DI (match_operand:DI 1 "register_operand" "%0,r")
 5.13398 ++                (match_operand:DI 2 "register_operand" "r,r")))]
 5.13399 ++  ""
 5.13400 ++  "#"
 5.13401 ++  [(set_attr "length" "8")
 5.13402 ++   (set_attr "cc" "clobber")]
 5.13403 ++)
 5.13404 ++
 5.13405 ++;;=============================================================================
 5.13406 ++;; Three operand predicable insns
 5.13407 ++;;=============================================================================
 5.13408 ++
 5.13409 ++(define_insn "<predicable_insn3><mode>_predicable"
 5.13410 ++  [(set (match_operand:INTM 0 "register_operand" "=r")
 5.13411 ++	(predicable_op3:INTM (match_operand:INTM 1 "register_operand" "<predicable_commutative3>r")
 5.13412 ++                             (match_operand:INTM 2 "register_operand" "r")))]
 5.13413 ++  "TARGET_V2_INSNS"
 5.13414 ++  "<predicable_insn3>%?\t%0, %1, %2"
 5.13415 ++  [(set_attr "length" "4")
 5.13416 ++   (set_attr "cc" "cmp_cond_insn")
 5.13417 ++   (set_attr "predicable" "yes")]
 5.13418 ++)
 5.13419 ++
 5.13420 ++(define_insn_and_split "<predicable_insn3><mode>_imm_clobber_predicable"
 5.13421 ++  [(parallel 
 5.13422 ++    [(set (match_operand:INTM 0 "register_operand" "=r")
 5.13423 ++          (predicable_op3:INTM (match_operand:INTM 1 "register_operand" "<predicable_commutative3>r")
 5.13424 ++                               (match_operand:INTM 2 "avr32_mov_immediate_operand" "JKs21")))
 5.13425 ++     (clobber (match_operand:INTM 3 "register_operand" "=&r"))])]
 5.13426 ++  "TARGET_V2_INSNS"
 5.13427 ++  {
 5.13428 ++   if ( current_insn_predicate != NULL_RTX ) 
 5.13429 ++      {
 5.13430 ++       if ( avr32_const_ok_for_constraint_p (INTVAL (operands[2]), 'K', "Ks08") )
 5.13431 ++          return "%! mov%?\t%3, %2\;<predicable_insn3>%?\t%0, %1, %3";
 5.13432 ++       else if ( avr32_const_ok_for_constraint_p (INTVAL (operands[2]), 'K', "Ks21") )
 5.13433 ++          return "%! mov\t%3, %2\;<predicable_insn3>%?\t%0, %1, %3";
 5.13434 ++       else
 5.13435 ++          return "%! movh\t%3, hi(%2)\;<predicable_insn3>%?\t%0, %1, %3";
 5.13436 ++       }
 5.13437 ++   else
 5.13438 ++      {
 5.13439 ++       if ( !avr32_cond_imm_clobber_splittable (insn, operands) )
 5.13440 ++          {
 5.13441 ++                if ( avr32_const_ok_for_constraint_p (INTVAL (operands[2]), 'K', "Ks08") )
 5.13442 ++                   return "mov%?\t%3, %2\;<predicable_insn3>%?\t%0, %1, %3";
 5.13443 ++                else if ( avr32_const_ok_for_constraint_p (INTVAL (operands[2]), 'K', "Ks21") )
 5.13444 ++                   return "mov\t%3, %2\;<predicable_insn3>%?\t%0, %1, %3";
 5.13445 ++                else
 5.13446 ++                   return "movh\t%3, hi(%2)\;<predicable_insn3>%?\t%0, %1, %3";
 5.13447 ++          }
 5.13448 ++       return "#";
 5.13449 ++      }
 5.13450 ++      
 5.13451 ++  }
 5.13452 ++  ;; If we find out that we could not actually do if-conversion on the block
 5.13453 ++  ;; containing this insn we convert it back to normal immediate format
 5.13454 ++  ;; to avoid outputing a redundant move insn
 5.13455 ++  ;; Do not split until after we have checked if we can make the insn 
 5.13456 ++  ;; conditional.
 5.13457 ++  "(GET_CODE (PATTERN (insn)) != COND_EXEC
 5.13458 ++    && cfun->machine->ifcvt_after_reload
 5.13459 ++    && avr32_cond_imm_clobber_splittable (insn, operands))"
 5.13460 ++  [(set (match_dup 0)
 5.13461 ++        (predicable_op3:INTM (match_dup 1)
 5.13462 ++                             (match_dup 2)))]
 5.13463 ++  ""
 5.13464 ++  [(set_attr "length" "8")
 5.13465 ++   (set_attr "cc" "cmp_cond_insn")
 5.13466 ++   (set_attr "predicable" "yes")]
 5.13467 ++  )
 5.13468 ++
 5.13469 ++
 5.13470 ++;;=============================================================================
 5.13471 ++;; Zero extend predicable insns
 5.13472 ++;;=============================================================================
 5.13473 ++(define_insn_and_split "zero_extendhisi_clobber_predicable"
 5.13474 ++  [(parallel 
 5.13475 ++    [(set (match_operand:SI 0 "register_operand" "=r")
 5.13476 ++          (zero_extend:SI (match_operand:HI 1 "register_operand" "r")))
 5.13477 ++     (clobber (match_operand:SI 2 "register_operand" "=&r"))])]
 5.13478 ++  "TARGET_V2_INSNS"
 5.13479 ++  {
 5.13480 ++   if ( current_insn_predicate != NULL_RTX ) 
 5.13481 ++      {
 5.13482 ++         return "%! mov\t%2, 0xffff\;and%?\t%0, %1, %2";
 5.13483 ++       }
 5.13484 ++   else
 5.13485 ++      {
 5.13486 ++       return "#";
 5.13487 ++      }
 5.13488 ++      
 5.13489 ++  }
 5.13490 ++  ;; If we find out that we could not actually do if-conversion on the block
 5.13491 ++  ;; containing this insn we convert it back to normal immediate format
 5.13492 ++  ;; to avoid outputing a redundant move insn
 5.13493 ++  ;; Do not split until after we have checked if we can make the insn 
 5.13494 ++  ;; conditional.
 5.13495 ++  "(GET_CODE (PATTERN (insn)) != COND_EXEC
 5.13496 ++    && cfun->machine->ifcvt_after_reload)"
 5.13497 ++  [(set (match_dup 0)
 5.13498 ++        (zero_extend:SI (match_dup 1)))]
 5.13499 ++  ""
 5.13500 ++  [(set_attr "length" "8")
 5.13501 ++   (set_attr "cc" "cmp_cond_insn")
 5.13502 ++   (set_attr "predicable" "yes")]
 5.13503 ++  )
 5.13504 ++
 5.13505 ++(define_insn_and_split "zero_extendqisi_clobber_predicable"
 5.13506 ++  [(parallel 
 5.13507 ++    [(set (match_operand:SI 0 "register_operand" "=r")
 5.13508 ++          (zero_extend:SI (match_operand:QI 1 "register_operand" "r")))
 5.13509 ++     (clobber (match_operand:SI 2 "register_operand" "=&r"))])]
 5.13510 ++  "TARGET_V2_INSNS"
 5.13511 ++  {
 5.13512 ++   if ( current_insn_predicate != NULL_RTX ) 
 5.13513 ++      {
 5.13514 ++         return "%! mov\t%2, 0xff\;and%?\t%0, %1, %2";
 5.13515 ++       }
 5.13516 ++   else
 5.13517 ++      {
 5.13518 ++       return "#";
 5.13519 ++      }
 5.13520 ++      
 5.13521 ++  }
 5.13522 ++  ;; If we find out that we could not actually do if-conversion on the block
 5.13523 ++  ;; containing this insn we convert it back to normal immediate format
 5.13524 ++  ;; to avoid outputing a redundant move insn
 5.13525 ++  ;; Do not split until after we have checked if we can make the insn 
 5.13526 ++  ;; conditional.
 5.13527 ++  "(GET_CODE (PATTERN (insn)) != COND_EXEC
 5.13528 ++    && cfun->machine->ifcvt_after_reload)"
 5.13529 ++  [(set (match_dup 0)
 5.13530 ++        (zero_extend:SI (match_dup 1)))]
 5.13531 ++  ""
 5.13532 ++  [(set_attr "length" "8")
 5.13533 ++   (set_attr "cc" "cmp_cond_insn")
 5.13534 ++   (set_attr "predicable" "yes")]
 5.13535 ++  )
 5.13536 ++
 5.13537 ++(define_insn_and_split "zero_extendqihi_clobber_predicable"
 5.13538 ++  [(parallel 
 5.13539 ++    [(set (match_operand:HI 0 "register_operand" "=r")
 5.13540 ++          (zero_extend:HI (match_operand:QI 1 "register_operand" "r")))
 5.13541 ++     (clobber (match_operand:SI 2 "register_operand" "=&r"))])]
 5.13542 ++  "TARGET_V2_INSNS"
 5.13543 ++  {
 5.13544 ++   if ( current_insn_predicate != NULL_RTX ) 
 5.13545 ++      {
 5.13546 ++         return "%! mov\t%2, 0xff\;and%?\t%0, %1, %2";
 5.13547 ++       }
 5.13548 ++   else
 5.13549 ++      {
 5.13550 ++       return "#";
 5.13551 ++      }
 5.13552 ++      
 5.13553 ++  }
 5.13554 ++  ;; If we find out that we could not actually do if-conversion on the block
 5.13555 ++  ;; containing this insn we convert it back to normal immediate format
 5.13556 ++  ;; to avoid outputing a redundant move insn
 5.13557 ++  ;; Do not split until after we have checked if we can make the insn 
 5.13558 ++  ;; conditional.
 5.13559 ++  "(GET_CODE (PATTERN (insn)) != COND_EXEC
 5.13560 ++    && cfun->machine->ifcvt_after_reload)"
 5.13561 ++  [(set (match_dup 0)
 5.13562 ++        (zero_extend:HI (match_dup 1)))]
 5.13563 ++  ""
 5.13564 ++  [(set_attr "length" "8")
 5.13565 ++   (set_attr "cc" "cmp_cond_insn")
 5.13566 ++   (set_attr "predicable" "yes")]
 5.13567 ++  )
 5.13568 ++;;=============================================================================
 5.13569 ++;; divmod
 5.13570 ++;;-----------------------------------------------------------------------------
 5.13571 ++;; Signed division that produces both a quotient and a remainder.
 5.13572 ++;;=============================================================================
 5.13573 ++(define_expand "divmodsi4"
 5.13574 ++  [(parallel [
 5.13575 ++     (parallel [
 5.13576 ++       (set (match_operand:SI 0 "register_operand" "=r")
 5.13577 ++	    (div:SI (match_operand:SI 1 "register_operand" "r")
 5.13578 ++		    (match_operand:SI 2 "register_operand" "r")))
 5.13579 ++       (set (match_operand:SI 3 "register_operand" "=r")
 5.13580 ++	    (mod:SI (match_dup 1)
 5.13581 ++		    (match_dup 2)))])
 5.13582 ++     (use (match_dup 4))])]
 5.13583 ++  ""
 5.13584 ++  {
 5.13585 ++    if (! no_new_pseudos) {
 5.13586 ++      operands[4] = gen_reg_rtx (DImode);
 5.13587 ++
 5.13588 ++      emit_insn(gen_divmodsi4_internal(operands[4],operands[1],operands[2]));
 5.13589 ++      emit_move_insn(operands[0], gen_rtx_SUBREG( SImode, operands[4], 4));
 5.13590 ++      emit_move_insn(operands[3], gen_rtx_SUBREG( SImode, operands[4], 0));
 5.13591 ++
 5.13592 ++      DONE;
 5.13593 ++    } else {
 5.13594 ++      FAIL;
 5.13595 ++    }
 5.13596 ++
 5.13597 ++  })
 5.13598 ++
 5.13599 ++
 5.13600 ++(define_insn "divmodsi4_internal"
 5.13601 ++  [(set (match_operand:DI 0 "register_operand" "=r")
 5.13602 ++	(unspec:DI [(match_operand:SI 1 "register_operand" "r")
 5.13603 ++		    (match_operand:SI 2 "register_operand" "r")]
 5.13604 ++		   UNSPEC_DIVMODSI4_INTERNAL))]
 5.13605 ++  ""
 5.13606 ++  "divs    %0, %1, %2"
 5.13607 ++  [(set_attr "type" "div")
 5.13608 ++   (set_attr "cc" "none")])
 5.13609 ++
 5.13610 ++
 5.13611 ++;;=============================================================================
 5.13612 ++;; udivmod
 5.13613 ++;;-----------------------------------------------------------------------------
 5.13614 ++;; Unsigned division that produces both a quotient and a remainder.
 5.13615 ++;;=============================================================================
 5.13616 ++(define_expand "udivmodsi4"
 5.13617 ++ [(parallel [
 5.13618 ++    (parallel [
 5.13619 ++      (set (match_operand:SI 0 "register_operand" "=r")
 5.13620 ++	   (udiv:SI (match_operand:SI 1 "register_operand" "r")
 5.13621 ++		    (match_operand:SI 2 "register_operand" "r")))
 5.13622 ++      (set (match_operand:SI 3 "register_operand" "=r")
 5.13623 ++	   (umod:SI (match_dup 1)
 5.13624 ++		    (match_dup 2)))])
 5.13625 ++    (use (match_dup 4))])]
 5.13626 ++  ""
 5.13627 ++  {
 5.13628 ++    if (! no_new_pseudos) {
 5.13629 ++      operands[4] = gen_reg_rtx (DImode);
 5.13630 ++
 5.13631 ++      emit_insn(gen_udivmodsi4_internal(operands[4],operands[1],operands[2]));
 5.13632 ++      emit_move_insn(operands[0], gen_rtx_SUBREG( SImode, operands[4], 4));
 5.13633 ++      emit_move_insn(operands[3], gen_rtx_SUBREG( SImode, operands[4], 0));
 5.13634 ++
 5.13635 ++      DONE;
 5.13636 ++    } else {
 5.13637 ++      FAIL;
 5.13638 ++    }
 5.13639 ++  })
 5.13640 ++
 5.13641 ++(define_insn "udivmodsi4_internal"
 5.13642 ++  [(set (match_operand:DI 0 "register_operand" "=r")
 5.13643 ++	(unspec:DI [(match_operand:SI 1 "register_operand" "r")
 5.13644 ++		    (match_operand:SI 2 "register_operand" "r")]
 5.13645 ++		   UNSPEC_UDIVMODSI4_INTERNAL))]
 5.13646 ++  ""
 5.13647 ++  "divu    %0, %1, %2"
 5.13648 ++  [(set_attr "type" "div")
 5.13649 ++   (set_attr "cc" "none")])
 5.13650 ++
 5.13651 ++
 5.13652 ++;;=============================================================================
 5.13653 ++;; Arithmetic-shift left
 5.13654 ++;;-----------------------------------------------------------------------------
 5.13655 ++;; Arithmetic-shift reg0 left by reg2 or immediate value.
 5.13656 ++;;=============================================================================
 5.13657 ++
 5.13658 ++(define_insn "ashlsi3"
 5.13659 ++  [(set (match_operand:SI 0 "register_operand"           "=r,r,r")
 5.13660 ++	(ashift:SI (match_operand:SI 1 "register_operand" "r,0,r")
 5.13661 ++		   (match_operand:SI 2 "nonmemory_operand" "r,Ku05,Ku05")))]
 5.13662 ++  ""
 5.13663 ++  "@
 5.13664 ++   lsl     %0, %1, %2
 5.13665 ++   lsl     %0, %2
 5.13666 ++   lsl     %0, %1, %2"
 5.13667 ++  [(set_attr "length" "4,2,4")
 5.13668 ++   (set_attr "cc" "set_ncz")])
 5.13669 ++
 5.13670 ++;;=============================================================================
 5.13671 ++;; Arithmetic-shift right
 5.13672 ++;;-----------------------------------------------------------------------------
 5.13673 ++;; Arithmetic-shift reg0 right by an immediate value.
 5.13674 ++;;=============================================================================
 5.13675 ++
 5.13676 ++(define_insn "ashrsi3"
 5.13677 ++  [(set (match_operand:SI 0 "register_operand"             "=r,r,r")
 5.13678 ++	(ashiftrt:SI (match_operand:SI 1 "register_operand" "r,0,r")
 5.13679 ++		     (match_operand:SI 2 "nonmemory_operand" "r,Ku05,Ku05")))]
 5.13680 ++  ""
 5.13681 ++  "@
 5.13682 ++   asr     %0, %1, %2
 5.13683 ++   asr     %0, %2
 5.13684 ++   asr     %0, %1, %2"
 5.13685 ++  [(set_attr "length" "4,2,4")
 5.13686 ++   (set_attr "cc" "set_ncz")])
 5.13687 ++
 5.13688 ++;;=============================================================================
 5.13689 ++;; Logical shift right
 5.13690 ++;;-----------------------------------------------------------------------------
 5.13691 ++;; Logical shift reg0 right by an immediate value.
 5.13692 ++;;=============================================================================
 5.13693 ++
 5.13694 ++(define_insn "lshrsi3"
 5.13695 ++  [(set (match_operand:SI 0 "register_operand" "=r,r,r")
 5.13696 ++	(lshiftrt:SI (match_operand:SI 1 "register_operand" "r,0,r")
 5.13697 ++		     (match_operand:SI 2 "nonmemory_operand" "r,Ku05,Ku05")))]
 5.13698 ++  ""
 5.13699 ++  "@
 5.13700 ++   lsr     %0, %1, %2
 5.13701 ++   lsr     %0, %2
 5.13702 ++   lsr     %0, %1, %2"
 5.13703 ++  [(set_attr "length" "4,2,4")
 5.13704 ++   (set_attr "cc" "set_ncz")])
 5.13705 ++
 5.13706 ++
 5.13707 ++;;=============================================================================
 5.13708 ++;; neg
 5.13709 ++;;-----------------------------------------------------------------------------
 5.13710 ++;; Negate operand 1 and store the result in operand 0.
 5.13711 ++;;=============================================================================
 5.13712 ++(define_insn "negsi2"
 5.13713 ++  [(set (match_operand:SI 0 "register_operand" "=r,r")
 5.13714 ++	(neg:SI (match_operand:SI 1 "register_operand" "0,r")))]
 5.13715 ++  ""
 5.13716 ++  "@
 5.13717 ++   neg\t%0
 5.13718 ++   rsub\t%0, %1, 0"
 5.13719 ++  [(set_attr "length" "2,4")
 5.13720 ++   (set_attr "cc" "set_vncz")])
 5.13721 ++
 5.13722 ++(define_insn "negsi2_predicable"
 5.13723 ++  [(set (match_operand:SI 0 "register_operand" "+r")
 5.13724 ++	(neg:SI (match_dup 0)))]
 5.13725 ++  "TARGET_V2_INSNS"
 5.13726 ++  "rsub%?\t%0, 0"
 5.13727 ++  [(set_attr "length" "4")
 5.13728 ++   (set_attr "cc" "cmp_cond_insn")
 5.13729 ++   (set_attr "predicable" "yes")])
 5.13730 ++
 5.13731 ++;;=============================================================================
 5.13732 ++;; abs
 5.13733 ++;;-----------------------------------------------------------------------------
 5.13734 ++;; Store the absolute value of operand 1 into operand 0.
 5.13735 ++;;=============================================================================
 5.13736 ++(define_insn "abssi2"
 5.13737 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.13738 ++	(abs:SI (match_operand:SI 1 "register_operand" "0")))]
 5.13739 ++  ""
 5.13740 ++  "abs\t%0"
 5.13741 ++  [(set_attr "length" "2")
 5.13742 ++   (set_attr "cc" "set_z")])
 5.13743 ++
 5.13744 ++
 5.13745 ++;;=============================================================================
 5.13746 ++;; one_cmpl
 5.13747 ++;;-----------------------------------------------------------------------------
 5.13748 ++;; Store the bitwise-complement of operand 1 into operand 0.
 5.13749 ++;;=============================================================================
 5.13750 ++
 5.13751 ++(define_insn "one_cmplsi2"
 5.13752 ++  [(set (match_operand:SI 0 "register_operand" "=r,r")
 5.13753 ++	(not:SI (match_operand:SI 1 "register_operand" "0,r")))]
 5.13754 ++  ""
 5.13755 ++  "@
 5.13756 ++   com\t%0
 5.13757 ++   rsub\t%0, %1, -1"
 5.13758 ++  [(set_attr "length" "2,4")
 5.13759 ++   (set_attr "cc" "set_z")])
 5.13760 ++
 5.13761 ++
 5.13762 ++(define_insn "one_cmplsi2_predicable"
 5.13763 ++  [(set (match_operand:SI 0 "register_operand" "+r")
 5.13764 ++	(not:SI (match_dup 0)))]
 5.13765 ++  "TARGET_V2_INSNS"
 5.13766 ++  "rsub%?\t%0, -1"
 5.13767 ++  [(set_attr "length" "4")
 5.13768 ++   (set_attr "cc" "cmp_cond_insn")
 5.13769 ++   (set_attr "predicable" "yes")])
 5.13770 ++
 5.13771 ++
 5.13772 ++;;=============================================================================
 5.13773 ++;; Bit load
 5.13774 ++;;-----------------------------------------------------------------------------
 5.13775 ++;; Load a bit into Z and C flags
 5.13776 ++;;=============================================================================
 5.13777 ++(define_insn "bldsi"
 5.13778 ++  [(set (cc0)
 5.13779 ++        (and:SI (match_operand:SI 0 "register_operand" "r")
 5.13780 ++                (match_operand:SI 1 "one_bit_set_operand" "i")))]
 5.13781 ++  ""
 5.13782 ++  "bld\t%0, %p1"
 5.13783 ++  [(set_attr "length" "4")
 5.13784 ++   (set_attr "cc" "bld")]
 5.13785 ++  )
 5.13786 ++
 5.13787 ++
 5.13788 ++;;=============================================================================
 5.13789 ++;; Compare
 5.13790 ++;;-----------------------------------------------------------------------------
 5.13791 ++;; Compare reg0 with reg1 or an immediate value.
 5.13792 ++;;=============================================================================
 5.13793 ++
 5.13794 ++(define_expand "cmp<mode>"
 5.13795 ++  [(set (cc0)
 5.13796 ++	(compare:CMP
 5.13797 ++	 (match_operand:CMP 0 "register_operand" "")
 5.13798 ++	 (match_operand:CMP 1 "<CMP:cmp_predicate>"  "")))]
 5.13799 ++  ""
 5.13800 ++  "{
 5.13801 ++   avr32_compare_op0 = operands[0];
 5.13802 ++   avr32_compare_op1 = operands[1];
 5.13803 ++  }"
 5.13804 ++)
 5.13805 ++
 5.13806 ++(define_insn "cmp<mode>_internal"
 5.13807 ++  [(set (cc0)
 5.13808 ++        (compare:CMP
 5.13809 ++         (match_operand:CMP 0 "register_operand" "r")
 5.13810 ++         (match_operand:CMP 1 "<CMP:cmp_predicate>" "<CMP:cmp_constraint>")))]
 5.13811 ++  ""
 5.13812 ++  {
 5.13813 ++   set_next_insn_cond(insn,
 5.13814 ++                      avr32_output_cmp(get_next_insn_cond(insn), GET_MODE (operands[0]), operands[0], operands[1]));
 5.13815 ++   return "";
 5.13816 ++  }
 5.13817 ++  [(set_attr "length" "4")
 5.13818 ++   (set_attr "cc" "compare")])
 5.13819 ++
 5.13820 ++
 5.13821 ++;;;=============================================================================
 5.13822 ++;; Test if zero
 5.13823 ++;;-----------------------------------------------------------------------------
 5.13824 ++;; Compare reg against zero and set the condition codes.
 5.13825 ++;;=============================================================================
 5.13826 ++
 5.13827 ++
 5.13828 ++(define_expand "tstsi"
 5.13829 ++  [(set (cc0)
 5.13830 ++	(match_operand:SI 0 "register_operand" ""))]
 5.13831 ++  ""
 5.13832 ++  {
 5.13833 ++   avr32_compare_op0 = operands[0];
 5.13834 ++   avr32_compare_op1 = const0_rtx;
 5.13835 ++  }
 5.13836 ++)
 5.13837 ++
 5.13838 ++(define_insn "tstsi_internal"
 5.13839 ++  [(set (cc0)
 5.13840 ++	(match_operand:SI 0 "register_operand" "r"))]
 5.13841 ++  ""
 5.13842 ++  {
 5.13843 ++   set_next_insn_cond(insn,
 5.13844 ++     avr32_output_cmp(get_next_insn_cond(insn), SImode, operands[0], const0_rtx));
 5.13845 ++
 5.13846 ++   return "";
 5.13847 ++  }
 5.13848 ++  [(set_attr "length" "2")
 5.13849 ++   (set_attr "cc" "compare")])
 5.13850 ++
 5.13851 ++
 5.13852 ++(define_expand "tstdi"
 5.13853 ++  [(set (cc0)
 5.13854 ++	(match_operand:DI 0 "register_operand" ""))]
 5.13855 ++  ""
 5.13856 ++  {
 5.13857 ++   avr32_compare_op0 = operands[0];
 5.13858 ++   avr32_compare_op1 = const0_rtx;
 5.13859 ++  }
 5.13860 ++)
 5.13861 ++
 5.13862 ++(define_insn "tstdi_internal"
 5.13863 ++  [(set (cc0)
 5.13864 ++	(match_operand:DI 0 "register_operand" "r"))]
 5.13865 ++  ""
 5.13866 ++  {
 5.13867 ++   set_next_insn_cond(insn,
 5.13868 ++     avr32_output_cmp(get_next_insn_cond(insn), DImode, operands[0], const0_rtx));
 5.13869 ++   return "";
 5.13870 ++  }
 5.13871 ++  [(set_attr "length" "4")
 5.13872 ++   (set_attr "type" "alu2")
 5.13873 ++   (set_attr "cc" "compare")])
 5.13874 ++
 5.13875 ++
 5.13876 ++
 5.13877 ++;;=============================================================================
 5.13878 ++;; Convert operands
 5.13879 ++;;-----------------------------------------------------------------------------
 5.13880 ++;;
 5.13881 ++;;=============================================================================
 5.13882 ++(define_insn "truncdisi2"
 5.13883 ++  [(set (match_operand:SI 0 "general_operand" "")
 5.13884 ++	(truncate:SI (match_operand:DI 1 "general_operand" "")))]
 5.13885 ++  ""
 5.13886 ++  "truncdisi2")
 5.13887 ++
 5.13888 ++;;=============================================================================
 5.13889 ++;; Extend
 5.13890 ++;;-----------------------------------------------------------------------------
 5.13891 ++;;
 5.13892 ++;;=============================================================================
 5.13893 ++
 5.13894 ++
 5.13895 ++(define_insn "extendhisi2"
 5.13896 ++  [(set (match_operand:SI 0 "register_operand" "=r,r,r,r")
 5.13897 ++	(sign_extend:SI (match_operand:HI 1 "nonimmediate_operand" "0,r,<RKu00>,m")))]
 5.13898 ++  ""
 5.13899 ++  {
 5.13900 ++   switch ( which_alternative ){
 5.13901 ++     case 0:
 5.13902 ++       return    "casts.h\t%0";
 5.13903 ++     case 1:
 5.13904 ++       return    "bfexts\t%0, %1, 0, 16";
 5.13905 ++     case 2:
 5.13906 ++     case 3:
 5.13907 ++       return    "ld.sh\t%0, %1";
 5.13908 ++     default:
 5.13909 ++       abort();
 5.13910 ++   }
 5.13911 ++  }
 5.13912 ++  [(set_attr "length" "2,4,2,4")
 5.13913 ++   (set_attr "cc" "set_ncz,set_ncz,none,none")
 5.13914 ++   (set_attr "type" "alu,alu,load_rm,load_rm")])
 5.13915 ++
 5.13916 ++(define_insn "extendqisi2"
 5.13917 ++  [(set (match_operand:SI 0 "register_operand" "=r,r,r,r")
 5.13918 ++	(sign_extend:SI (match_operand:QI 1 "extendqi_operand" "0,r,RKu00,m")))]
 5.13919 ++  ""
 5.13920 ++  {
 5.13921 ++   switch ( which_alternative ){
 5.13922 ++     case 0:
 5.13923 ++       return    "casts.b\t%0";
 5.13924 ++     case 1:
 5.13925 ++       return    "bfexts\t%0, %1, 0, 8";
 5.13926 ++     case 2:
 5.13927 ++     case 3:
 5.13928 ++       return    "ld.sb\t%0, %1";
 5.13929 ++     default:
 5.13930 ++       abort();
 5.13931 ++   }
 5.13932 ++  }
 5.13933 ++  [(set_attr "length" "2,4,2,4")
 5.13934 ++   (set_attr "cc" "set_ncz,set_ncz,none,none")
 5.13935 ++   (set_attr "type" "alu,alu,load_rm,load_rm")])
 5.13936 ++
 5.13937 ++(define_insn "extendqihi2"
 5.13938 ++  [(set (match_operand:HI 0 "register_operand" "=r,r,r,r")
 5.13939 ++	(sign_extend:HI (match_operand:QI 1 "extendqi_operand" "0,r,RKu00,m")))]
 5.13940 ++  ""
 5.13941 ++  {
 5.13942 ++   switch ( which_alternative ){
 5.13943 ++     case 0:
 5.13944 ++       return    "casts.b\t%0";
 5.13945 ++     case 1:
 5.13946 ++       return    "bfexts\t%0, %1, 0, 8";
 5.13947 ++     case 2:
 5.13948 ++     case 3:
 5.13949 ++       return    "ld.sb\t%0, %1";
 5.13950 ++     default:
 5.13951 ++       abort();
 5.13952 ++   }
 5.13953 ++  }
 5.13954 ++  [(set_attr "length" "2,4,2,4")
 5.13955 ++   (set_attr "cc" "set_ncz,set_ncz,none,none")
 5.13956 ++   (set_attr "type" "alu,alu,load_rm,load_rm")])
 5.13957 ++
 5.13958 ++
 5.13959 ++;;=============================================================================
 5.13960 ++;; Zero-extend
 5.13961 ++;;-----------------------------------------------------------------------------
 5.13962 ++;;
 5.13963 ++;;=============================================================================
 5.13964 ++
 5.13965 ++(define_insn "zero_extendhisi2"
 5.13966 ++  [(set (match_operand:SI 0 "register_operand" "=r,r,r,r")
 5.13967 ++	(zero_extend:SI (match_operand:HI 1 "nonimmediate_operand" "0,r,<RKu00>,m")))]
 5.13968 ++  ""
 5.13969 ++  {
 5.13970 ++   switch ( which_alternative ){
 5.13971 ++     case 0:
 5.13972 ++       return    "castu.h\t%0";
 5.13973 ++     case 1:
 5.13974 ++       return    "bfextu\t%0, %1, 0, 16";
 5.13975 ++     case 2:
 5.13976 ++     case 3:
 5.13977 ++       return    "ld.uh\t%0, %1";
 5.13978 ++     default:
 5.13979 ++       abort();
 5.13980 ++   }
 5.13981 ++  }
 5.13982 ++
 5.13983 ++  [(set_attr "length" "2,4,2,4")
 5.13984 ++   (set_attr "cc" "set_ncz,set_ncz,none,none")
 5.13985 ++   (set_attr "type" "alu,alu,load_rm,load_rm")])
 5.13986 ++
 5.13987 ++(define_insn "zero_extendqisi2"
 5.13988 ++  [(set (match_operand:SI 0 "register_operand" "=r,r,r,r")
 5.13989 ++	(zero_extend:SI (match_operand:QI 1 "nonimmediate_operand" "0,r,<RKu00>,m")))]
 5.13990 ++  ""
 5.13991 ++  {
 5.13992 ++   switch ( which_alternative ){
 5.13993 ++     case 0:
 5.13994 ++       return    "castu.b\t%0";
 5.13995 ++     case 1:
 5.13996 ++       return    "bfextu\t%0, %1, 0, 8";
 5.13997 ++     case 2:
 5.13998 ++     case 3:
 5.13999 ++       return    "ld.ub\t%0, %1";
 5.14000 ++     default:
 5.14001 ++       abort();
 5.14002 ++   }
 5.14003 ++  }
 5.14004 ++  [(set_attr "length" "2,4,2,4")
 5.14005 ++   (set_attr "cc" "set_ncz, set_ncz, none, none")
 5.14006 ++   (set_attr "type" "alu, alu, load_rm, load_rm")])
 5.14007 ++
 5.14008 ++(define_insn "zero_extendqihi2"
 5.14009 ++  [(set (match_operand:HI 0 "register_operand" "=r,r,r,r")
 5.14010 ++	(zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "0,r,<RKu00>,m")))]
 5.14011 ++  ""
 5.14012 ++  {
 5.14013 ++   switch ( which_alternative ){
 5.14014 ++     case 0:
 5.14015 ++       return    "castu.b\t%0";
 5.14016 ++     case 1:
 5.14017 ++       return    "bfextu\t%0, %1, 0, 8";
 5.14018 ++     case 2:
 5.14019 ++     case 3:
 5.14020 ++       return    "ld.ub\t%0, %1";
 5.14021 ++     default:
 5.14022 ++       abort();
 5.14023 ++   }
 5.14024 ++  }
 5.14025 ++  [(set_attr "length" "2,4,2,4")
 5.14026 ++   (set_attr "cc" "set_ncz, set_ncz, none, none")
 5.14027 ++   (set_attr "type" "alu, alu, load_rm, load_rm")])
 5.14028 ++
 5.14029 ++
 5.14030 ++;;=============================================================================
 5.14031 ++;; Conditional load and extend insns
 5.14032 ++;;=============================================================================
 5.14033 ++(define_insn "ldsi<mode>_predicable_se"
 5.14034 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.14035 ++        (sign_extend:SI 
 5.14036 ++         (match_operand:INTM 1 "memory_operand" "<INTM:pred_mem_constraint>")))]
 5.14037 ++  "TARGET_V2_INSNS"
 5.14038 ++  "ld<INTM:load_postfix_s>%?\t%0, %1"
 5.14039 ++  [(set_attr "length" "4")
 5.14040 ++   (set_attr "cc" "cmp_cond_insn")
 5.14041 ++   (set_attr "type" "load")
 5.14042 ++   (set_attr "predicable" "yes")]
 5.14043 ++)
 5.14044 ++
 5.14045 ++(define_insn "ldsi<mode>_predicable_ze"
 5.14046 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.14047 ++        (zero_extend:SI 
 5.14048 ++         (match_operand:INTM 1 "memory_operand" "<INTM:pred_mem_constraint>")))]
 5.14049 ++  "TARGET_V2_INSNS"
 5.14050 ++  "ld<INTM:load_postfix_u>%?\t%0, %1"
 5.14051 ++  [(set_attr "length" "4")
 5.14052 ++   (set_attr "cc" "cmp_cond_insn")
 5.14053 ++   (set_attr "type" "load")
 5.14054 ++   (set_attr "predicable" "yes")]
 5.14055 ++)
 5.14056 ++
 5.14057 ++(define_insn "ldhi_predicable_ze"
 5.14058 ++  [(set (match_operand:HI 0 "register_operand" "=r")
 5.14059 ++        (zero_extend:HI 
 5.14060 ++         (match_operand:QI 1 "memory_operand" "RKs10")))]
 5.14061 ++  "TARGET_V2_INSNS"
 5.14062 ++  "ld.ub%?\t%0, %1"
 5.14063 ++  [(set_attr "length" "4")
 5.14064 ++   (set_attr "cc" "cmp_cond_insn")
 5.14065 ++   (set_attr "type" "load")
 5.14066 ++   (set_attr "predicable" "yes")]
 5.14067 ++)
 5.14068 ++
 5.14069 ++(define_insn "ldhi_predicable_se"
 5.14070 ++  [(set (match_operand:HI 0 "register_operand" "=r")
 5.14071 ++        (sign_extend:HI 
 5.14072 ++         (match_operand:QI 1 "memory_operand" "RKs10")))]
 5.14073 ++  "TARGET_V2_INSNS"
 5.14074 ++  "ld.sb%?\t%0, %1"
 5.14075 ++  [(set_attr "length" "4")
 5.14076 ++   (set_attr "cc" "cmp_cond_insn")
 5.14077 ++   (set_attr "type" "load")
 5.14078 ++   (set_attr "predicable" "yes")]
 5.14079 ++)
 5.14080 ++
 5.14081 ++;;=============================================================================
 5.14082 ++;; Conditional set register
 5.14083 ++;; sr{cond4}  rd
 5.14084 ++;;-----------------------------------------------------------------------------
 5.14085 ++
 5.14086 ++;;Because of the same issue as with conditional moves and adds we must
 5.14087 ++;;not separate the compare instrcution from the scc instruction as
 5.14088 ++;;they might be sheduled "badly".
 5.14089 ++
 5.14090 ++(define_insn "s<code>"
 5.14091 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.14092 ++	(any_cond:SI (cc0)
 5.14093 ++                     (const_int 0)))]
 5.14094 ++  ""
 5.14095 ++  "sr<cond>\t%0"
 5.14096 ++  [(set_attr "length" "2")
 5.14097 ++   (set_attr "cc" "none")])
 5.14098 ++
 5.14099 ++(define_insn "smi"
 5.14100 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.14101 ++	(unspec:SI [(cc0)
 5.14102 ++                    (const_int 0)] UNSPEC_COND_MI))]
 5.14103 ++  ""
 5.14104 ++  "srmi\t%0"
 5.14105 ++  [(set_attr "length" "2")
 5.14106 ++   (set_attr "cc" "none")])
 5.14107 ++
 5.14108 ++(define_insn "spl"
 5.14109 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.14110 ++	(unspec:SI [(cc0)
 5.14111 ++                    (const_int 0)] UNSPEC_COND_PL))]
 5.14112 ++  ""
 5.14113 ++  "srpl\t%0"
 5.14114 ++  [(set_attr "length" "2")
 5.14115 ++   (set_attr "cc" "none")])
 5.14116 ++
 5.14117 ++
 5.14118 ++;;=============================================================================
 5.14119 ++;; Conditional branch
 5.14120 ++;;-----------------------------------------------------------------------------
 5.14121 ++;; Branch to label if the specified condition codes are set.
 5.14122 ++;;=============================================================================
 5.14123 ++; branch if negative
 5.14124 ++(define_insn "bmi"
 5.14125 ++  [(set (pc)
 5.14126 ++	(if_then_else (unspec:CC [(cc0) (const_int 0)] UNSPEC_COND_MI)
 5.14127 ++		      (label_ref (match_operand 0 "" ""))
 5.14128 ++		      (pc)))]
 5.14129 ++  ""
 5.14130 ++  "brmi    %0"
 5.14131 ++  [(set_attr "type" "branch")
 5.14132 ++   (set (attr "length")
 5.14133 ++	(cond [(and (le (minus (match_dup 0) (pc)) (const_int 254))
 5.14134 ++		    (le (minus (pc) (match_dup 0)) (const_int 256)))
 5.14135 ++	       (const_int 2)] ; use compact branch
 5.14136 ++              (const_int 4))) ; use extended branch
 5.14137 ++   (set_attr "cc" "none")])
 5.14138 ++
 5.14139 ++(define_insn "*bmi-reverse"
 5.14140 ++  [(set (pc)
 5.14141 ++	(if_then_else (unspec:CC [(cc0) (const_int 0)] UNSPEC_COND_MI)
 5.14142 ++		      (pc)
 5.14143 ++		      (label_ref (match_operand 0 "" ""))))]
 5.14144 ++  ""
 5.14145 ++  "brpl    %0"
 5.14146 ++  [(set_attr "type" "branch")
 5.14147 ++   (set (attr "length")
 5.14148 ++	(cond [(and (le (minus (match_dup 0) (pc)) (const_int 254))
 5.14149 ++		    (le (minus (pc) (match_dup 0)) (const_int 256)))
 5.14150 ++	       (const_int 2)] ; use compact branch
 5.14151 ++              (const_int 4))) ; use extended branch
 5.14152 ++   (set_attr "cc" "none")])
 5.14153 ++
 5.14154 ++; branch if positive
 5.14155 ++(define_insn "bpl"
 5.14156 ++  [(set (pc)
 5.14157 ++	(if_then_else (unspec:CC [(cc0) (const_int 0)] UNSPEC_COND_PL)
 5.14158 ++		      (label_ref (match_operand 0 "" ""))
 5.14159 ++		      (pc)))]
 5.14160 ++  ""
 5.14161 ++  "brpl    %0"
 5.14162 ++  [(set_attr "type" "branch")
 5.14163 ++   (set (attr "length")
 5.14164 ++	(cond [(and (le (minus (match_dup 0) (pc)) (const_int 254))
 5.14165 ++		    (le (minus (pc) (match_dup 0)) (const_int 256)))
 5.14166 ++	       (const_int 2)] ; use compact branch
 5.14167 ++              (const_int 4))) ; use extended branch
 5.14168 ++   (set_attr "cc" "none")])
 5.14169 ++
 5.14170 ++(define_insn "*bpl-reverse"
 5.14171 ++  [(set (pc)
 5.14172 ++	(if_then_else (unspec:CC [(cc0) (const_int 0)] UNSPEC_COND_PL)
 5.14173 ++		      (pc)
 5.14174 ++		      (label_ref (match_operand 0 "" ""))))]
 5.14175 ++  ""
 5.14176 ++  "brmi    %0"
 5.14177 ++  [(set_attr "type" "branch")
 5.14178 ++   (set (attr "length")
 5.14179 ++	(cond [(and (le (minus (match_dup 0) (pc)) (const_int 254))
 5.14180 ++		    (le (minus (pc) (match_dup 0)) (const_int 256)))
 5.14181 ++	       (const_int 2)] ; use compact branch
 5.14182 ++              (const_int 4))) ; use extended branch
 5.14183 ++   (set_attr "cc" "none")])
 5.14184 ++
 5.14185 ++; branch if equal
 5.14186 ++(define_insn "b<code>"
 5.14187 ++  [(set (pc)
 5.14188 ++	(if_then_else (any_cond:CC (cc0)
 5.14189 ++			  (const_int 0))
 5.14190 ++		      (label_ref (match_operand 0 "" ""))
 5.14191 ++		      (pc)))]
 5.14192 ++  ""
 5.14193 ++  "br<cond>    %0 "
 5.14194 ++  [(set_attr "type" "branch")
 5.14195 ++   (set (attr "length")
 5.14196 ++	(cond [(and (le (minus (match_dup 0) (pc)) (const_int 254))
 5.14197 ++		    (le (minus (pc) (match_dup 0)) (const_int 256)))
 5.14198 ++	       (const_int 2)] ; use compact branch
 5.14199 ++              (const_int 4))) ; use extended branch
 5.14200 ++   (set_attr "cc" "none")])
 5.14201 ++
 5.14202 ++
 5.14203 ++(define_insn "*b<code>-reverse"
 5.14204 ++  [(set (pc)
 5.14205 ++	(if_then_else (any_cond:CC (cc0)
 5.14206 ++			  (const_int 0))
 5.14207 ++		      (pc)
 5.14208 ++		      (label_ref (match_operand 0 "" ""))))]
 5.14209 ++  ""
 5.14210 ++  "br<invcond>    %0 "
 5.14211 ++  [(set_attr "type" "branch")
 5.14212 ++   (set (attr "length")
 5.14213 ++	(cond [(and (le (minus (match_dup 0) (pc)) (const_int 254))
 5.14214 ++		    (le (minus (pc) (match_dup 0)) (const_int 256)))
 5.14215 ++	       (const_int 2)] ; use compact branch
 5.14216 ++              (const_int 4))) ; use extended branch
 5.14217 ++   (set_attr "cc" "none")])
 5.14218 ++
 5.14219 ++
 5.14220 ++
 5.14221 ++;=============================================================================
 5.14222 ++; Conditional Add/Subtract
 5.14223 ++;-----------------------------------------------------------------------------
 5.14224 ++; sub{cond4}  Rd, imm
 5.14225 ++;=============================================================================
 5.14226 ++
 5.14227 ++
 5.14228 ++(define_expand "add<mode>cc"
 5.14229 ++  [(set (match_operand:ADDCC 0 "register_operand" "")
 5.14230 ++        (if_then_else:ADDCC (match_operator 1 "avr32_comparison_operator" 
 5.14231 ++                                            [(match_dup 4)
 5.14232 ++                                             (match_dup 5)])
 5.14233 ++                            (match_operand:ADDCC 2 "register_operand" "")
 5.14234 ++                            (plus:ADDCC 
 5.14235 ++                             (match_dup 2)
 5.14236 ++                             (match_operand:ADDCC 3 "" ""))))]
 5.14237 ++  ""
 5.14238 ++  {
 5.14239 ++   if ( !(GET_CODE (operands[3]) == CONST_INT
 5.14240 ++          || (TARGET_V2_INSNS && REG_P(operands[3]))) ){
 5.14241 ++      FAIL;
 5.14242 ++   }
 5.14243 ++
 5.14244 ++   /* Delete compare instruction as it is merged into this instruction */
 5.14245 ++   remove_insn (get_last_insn_anywhere ());
 5.14246 ++
 5.14247 ++   operands[4] = avr32_compare_op0;
 5.14248 ++   operands[5] = avr32_compare_op1;
 5.14249 ++   
 5.14250 ++   if ( TARGET_V2_INSNS 
 5.14251 ++        && REG_P(operands[3]) 
 5.14252 ++        && REGNO(operands[0]) != REGNO(operands[2]) ){
 5.14253 ++       emit_move_insn (operands[0], operands[2]);
 5.14254 ++       operands[2] = operands[0];
 5.14255 ++   }
 5.14256 ++  }
 5.14257 ++  )
 5.14258 ++
 5.14259 ++(define_insn "add<ADDCC:mode>cc_cmp<CMP:mode>_reg"
 5.14260 ++  [(set (match_operand:ADDCC 0 "register_operand" "=r")
 5.14261 ++        (if_then_else:ADDCC (match_operator 1 "avr32_comparison_operator" 
 5.14262 ++                                            [(match_operand:CMP 4 "register_operand" "r")
 5.14263 ++                                             (match_operand:CMP 5 "<CMP:cmp_predicate>" "<CMP:cmp_constraint>")])
 5.14264 ++                            (match_dup 0)
 5.14265 ++                            (plus:ADDCC 
 5.14266 ++                             (match_operand:ADDCC 2 "register_operand" "r")
 5.14267 ++                             (match_operand:ADDCC 3 "register_operand" "r"))))]
 5.14268 ++  "TARGET_V2_INSNS"
 5.14269 ++  {
 5.14270 ++   operands[1] = avr32_output_cmp(operands[1], GET_MODE(operands[4]), operands[4], operands[5]);
 5.14271 ++   return "add%i1\t%0, %2, %3";
 5.14272 ++  }
 5.14273 ++  [(set_attr "length" "8")
 5.14274 ++   (set_attr "cc" "cmp_cond_insn")])
 5.14275 ++
 5.14276 ++(define_insn "add<ADDCC:mode>cc_cmp<CMP:mode>"
 5.14277 ++  [(set (match_operand:ADDCC 0 "register_operand" "=r")
 5.14278 ++        (if_then_else:ADDCC (match_operator 1 "avr32_comparison_operator" 
 5.14279 ++                                            [(match_operand:CMP 4 "register_operand" "r")
 5.14280 ++                                             (match_operand:CMP 5 "<CMP:cmp_predicate>" "<CMP:cmp_constraint>")])
 5.14281 ++                            (match_operand:ADDCC 2 "register_operand" "0")
 5.14282 ++                            (plus:ADDCC 
 5.14283 ++                             (match_dup 2)
 5.14284 ++                             (match_operand:ADDCC 3 "avr32_cond_immediate_operand" "Is08"))))]
 5.14285 ++  ""
 5.14286 ++  {
 5.14287 ++   operands[1] = avr32_output_cmp(operands[1], GET_MODE(operands[4]), operands[4], operands[5]);
 5.14288 ++   return "sub%i1\t%0, -%3";
 5.14289 ++  }
 5.14290 ++  [(set_attr "length" "8")
 5.14291 ++   (set_attr "cc" "cmp_cond_insn")])
 5.14292 ++
 5.14293 ++;=============================================================================
 5.14294 ++; Conditional Move
 5.14295 ++;-----------------------------------------------------------------------------
 5.14296 ++; mov{cond4}  Rd, (Rs/imm)
 5.14297 ++;=============================================================================
 5.14298 ++(define_expand "mov<mode>cc"
 5.14299 ++  [(set (match_operand:MOVCC 0 "register_operand" "")
 5.14300 ++        (if_then_else:MOVCC (match_operator 1 "avr32_comparison_operator" 
 5.14301 ++                                            [(match_dup 4)
 5.14302 ++                                             (match_dup 5)])
 5.14303 ++                            (match_operand:MOVCC 2 "avr32_cond_register_immediate_operand" "")
 5.14304 ++                            (match_operand:MOVCC 3 "avr32_cond_register_immediate_operand" "")))]
 5.14305 ++  ""
 5.14306 ++  {
 5.14307 ++   /* Delete compare instruction as it is merged into this instruction */
 5.14308 ++   remove_insn (get_last_insn_anywhere ());
 5.14309 ++
 5.14310 ++   operands[4] = avr32_compare_op0;
 5.14311 ++   operands[5] = avr32_compare_op1;
 5.14312 ++  }
 5.14313 ++  )
 5.14314 ++
 5.14315 ++
 5.14316 ++(define_insn "mov<MOVCC:mode>cc_cmp<CMP:mode>"
 5.14317 ++  [(set (match_operand:MOVCC 0 "register_operand" "=r,r,r")
 5.14318 ++        (if_then_else:MOVCC (match_operator 1 "avr32_comparison_operator" 
 5.14319 ++                                            [(match_operand:CMP 4 "register_operand" "r,r,r")
 5.14320 ++                                             (match_operand:CMP 5 "<CMP:cmp_predicate>" "<CMP:cmp_constraint>,<CMP:cmp_constraint>,<CMP:cmp_constraint>")])
 5.14321 ++                            (match_operand:MOVCC 2 "avr32_cond_register_immediate_operand" "0, rKs08,rKs08")
 5.14322 ++                            (match_operand:MOVCC 3 "avr32_cond_register_immediate_operand" "rKs08,0,rKs08")))]
 5.14323 ++  ""
 5.14324 ++  {
 5.14325 ++   operands[1] = avr32_output_cmp(operands[1], GET_MODE(operands[4]), operands[4], operands[5]);
 5.14326 ++           
 5.14327 ++   switch( which_alternative ){
 5.14328 ++    case 0:
 5.14329 ++      return "mov%i1    %0, %3";
 5.14330 ++    case 1:
 5.14331 ++      return "mov%1    %0, %2";
 5.14332 ++    case 2:
 5.14333 ++      return "mov%1    %0, %2\;mov%i1    %0, %3";
 5.14334 ++    default:
 5.14335 ++      abort();
 5.14336 ++    }
 5.14337 ++
 5.14338 ++  }
 5.14339 ++  [(set_attr "length" "8,8,12")
 5.14340 ++   (set_attr "cc" "cmp_cond_insn")])
 5.14341 ++
 5.14342 ++  
 5.14343 ++
 5.14344 ++
 5.14345 ++;;=============================================================================
 5.14346 ++;; jump
 5.14347 ++;;-----------------------------------------------------------------------------
 5.14348 ++;; Jump inside a function; an unconditional branch to a label.
 5.14349 ++;;=============================================================================
 5.14350 ++(define_insn "jump"
 5.14351 ++  [(set (pc)
 5.14352 ++	(label_ref (match_operand 0 "" "")))]
 5.14353 ++  ""
 5.14354 ++  {
 5.14355 ++    if (get_attr_length(insn) > 4)
 5.14356 ++      return "Can't jump this far";
 5.14357 ++    return (get_attr_length(insn) == 2 ?
 5.14358 ++	    "rjmp    %0" : "bral    %0");
 5.14359 ++  }
 5.14360 ++  [(set_attr "type" "branch")
 5.14361 ++   (set (attr "length")
 5.14362 ++	(cond [(and (le (minus (match_dup 0) (pc)) (const_int 1022))
 5.14363 ++		    (le (minus (pc) (match_dup 0)) (const_int 1024)))
 5.14364 ++	       (const_int 2) ; use rjmp
 5.14365 ++	       (le (match_dup 0) (const_int 1048575))
 5.14366 ++	       (const_int 4)] ; use bral
 5.14367 ++	      (const_int 8))) ; do something else
 5.14368 ++   (set_attr "cc" "none")])
 5.14369 ++
 5.14370 ++;;=============================================================================
 5.14371 ++;; call
 5.14372 ++;;-----------------------------------------------------------------------------
 5.14373 ++;; Subroutine call instruction returning no value.
 5.14374 ++;;=============================================================================
 5.14375 ++(define_insn "call_internal"
 5.14376 ++  [(parallel [(call (mem:SI (match_operand:SI 0 "avr32_call_operand" "r,U,T,W"))
 5.14377 ++                    (match_operand 1 "" ""))
 5.14378 ++              (clobber (reg:SI LR_REGNUM))])]
 5.14379 ++  ""
 5.14380 ++  {
 5.14381 ++   switch (which_alternative){
 5.14382 ++    case 0:
 5.14383 ++      return "icall\t%0";
 5.14384 ++    case 1:
 5.14385 ++      return "rcall\t%0";
 5.14386 ++    case 2:
 5.14387 ++      return "mcall\t%0";
 5.14388 ++    case 3:
 5.14389 ++      if ( TARGET_HAS_ASM_ADDR_PSEUDOS )
 5.14390 ++        return "call\t%0";
 5.14391 ++      else
 5.14392 ++        return "mcall\tr6[%0@got]";
 5.14393 ++    default:
 5.14394 ++      abort();
 5.14395 ++   }
 5.14396 ++  }
 5.14397 ++  [(set_attr "type" "call")
 5.14398 ++   (set_attr "length" "2,4,4,10")
 5.14399 ++   (set_attr "cc" "clobber")])
 5.14400 ++
 5.14401 ++
 5.14402 ++(define_expand "call"
 5.14403 ++  [(parallel [(call (match_operand:SI 0 "" "")
 5.14404 ++                    (match_operand 1 "" ""))
 5.14405 ++              (clobber (reg:SI LR_REGNUM))])]
 5.14406 ++  ""
 5.14407 ++  {
 5.14408 ++   rtx call_address;
 5.14409 ++   if ( GET_CODE(operands[0]) != MEM )
 5.14410 ++      FAIL;
 5.14411 ++
 5.14412 ++   call_address = XEXP(operands[0], 0);
 5.14413 ++
 5.14414 ++   /* If assembler supports call pseudo insn and the call
 5.14415 ++      address is a symbol then nothing special needs to be done. */
 5.14416 ++   if ( TARGET_HAS_ASM_ADDR_PSEUDOS
 5.14417 ++        && (GET_CODE(call_address) == SYMBOL_REF) ){
 5.14418 ++      /* We must however mark the function as using the GOT if
 5.14419 ++         flag_pic is set, since the call insn might turn into
 5.14420 ++         a mcall using the GOT ptr register. */
 5.14421 ++      if ( flag_pic ){
 5.14422 ++         current_function_uses_pic_offset_table = 1;
 5.14423 ++         emit_call_insn(gen_call_internal(call_address, operands[1]));
 5.14424 ++         DONE;
 5.14425 ++      }
 5.14426 ++   } else {
 5.14427 ++     if ( flag_pic &&
 5.14428 ++          GET_CODE(call_address) == SYMBOL_REF ){
 5.14429 ++       current_function_uses_pic_offset_table = 1;
 5.14430 ++       emit_call_insn(gen_call_internal(call_address, operands[1]));
 5.14431 ++       DONE;
 5.14432 ++     }
 5.14433 ++
 5.14434 ++     if ( !SYMBOL_REF_RCALL_FUNCTION_P(operands[0]) ){
 5.14435 ++       if ( optimize_size &&
 5.14436 ++             GET_CODE(call_address) == SYMBOL_REF ){
 5.14437 ++         call_address = force_const_mem(SImode, call_address);
 5.14438 ++       } else {
 5.14439 ++         call_address = force_reg(SImode, call_address);
 5.14440 ++       }
 5.14441 ++     }
 5.14442 ++   }
 5.14443 ++   emit_call_insn(gen_call_internal(call_address, operands[1]));
 5.14444 ++   DONE;
 5.14445 ++  }
 5.14446 ++)
 5.14447 ++
 5.14448 ++;;=============================================================================
 5.14449 ++;; call_value
 5.14450 ++;;-----------------------------------------------------------------------------
 5.14451 ++;; Subrutine call instruction returning a value.
 5.14452 ++;;=============================================================================
 5.14453 ++(define_expand "call_value"
 5.14454 ++   [(parallel [(set (match_operand:SI 0 "" "")
 5.14455 ++                    (call (match_operand:SI 1 "" "")
 5.14456 ++                          (match_operand 2 "" "")))
 5.14457 ++               (clobber (reg:SI LR_REGNUM))])]
 5.14458 ++   ""
 5.14459 ++   {
 5.14460 ++    rtx call_address;
 5.14461 ++    if ( GET_CODE(operands[1]) != MEM )
 5.14462 ++      FAIL;
 5.14463 ++
 5.14464 ++    call_address = XEXP(operands[1], 0);
 5.14465 ++
 5.14466 ++    /* If assembler supports call pseudo insn and the call
 5.14467 ++       address is a symbol then nothing special needs to be done. */
 5.14468 ++    if ( TARGET_HAS_ASM_ADDR_PSEUDOS
 5.14469 ++         && (GET_CODE(call_address) == SYMBOL_REF) ){
 5.14470 ++       /* We must however mark the function as using the GOT if
 5.14471 ++          flag_pic is set, since the call insn might turn into
 5.14472 ++          a mcall using the GOT ptr register. */
 5.14473 ++       if ( flag_pic ) {
 5.14474 ++          current_function_uses_pic_offset_table = 1;
 5.14475 ++          emit_call_insn(gen_call_value_internal(operands[0], call_address, operands[2]));
 5.14476 ++          DONE;
 5.14477 ++       }
 5.14478 ++    } else {
 5.14479 ++      if ( flag_pic &&
 5.14480 ++           GET_CODE(call_address) == SYMBOL_REF ){
 5.14481 ++        current_function_uses_pic_offset_table = 1;
 5.14482 ++        emit_call_insn(gen_call_value_internal(operands[0], call_address, operands[2]));
 5.14483 ++        DONE;
 5.14484 ++      }
 5.14485 ++
 5.14486 ++      if ( !SYMBOL_REF_RCALL_FUNCTION_P(operands[1]) ){
 5.14487 ++        if ( optimize_size &&
 5.14488 ++             GET_CODE(call_address) == SYMBOL_REF){
 5.14489 ++          call_address = force_const_mem(SImode, call_address);
 5.14490 ++        } else {
 5.14491 ++          call_address = force_reg(SImode, call_address);
 5.14492 ++        }
 5.14493 ++      }
 5.14494 ++    }
 5.14495 ++    emit_call_insn(gen_call_value_internal(operands[0], call_address,
 5.14496 ++                                           operands[2]));
 5.14497 ++    DONE;
 5.14498 ++
 5.14499 ++   })
 5.14500 ++
 5.14501 ++(define_insn "call_value_internal"
 5.14502 ++  [(parallel [(set (match_operand 0 "register_operand" "=r,r,r,r")
 5.14503 ++                   (call (mem:SI (match_operand:SI 1 "avr32_call_operand" "r,U,T,W"))
 5.14504 ++                         (match_operand 2 "" "")))
 5.14505 ++              (clobber (reg:SI LR_REGNUM))])]
 5.14506 ++  ;; Operand 2 not used on the AVR32.
 5.14507 ++  ""
 5.14508 ++  {
 5.14509 ++   switch (which_alternative){
 5.14510 ++    case 0:
 5.14511 ++      return "icall\t%1";
 5.14512 ++    case 1:
 5.14513 ++      return "rcall\t%1";
 5.14514 ++    case 2:
 5.14515 ++      return "mcall\t%1";
 5.14516 ++    case 3:
 5.14517 ++      if ( TARGET_HAS_ASM_ADDR_PSEUDOS )
 5.14518 ++        return "call\t%1";
 5.14519 ++      else
 5.14520 ++        return "mcall\tr6[%1@got]";
 5.14521 ++    default:
 5.14522 ++      abort();
 5.14523 ++   }
 5.14524 ++  }
 5.14525 ++  [(set_attr "type" "call")
 5.14526 ++   (set_attr "length" "2,4,4,10")
 5.14527 ++   (set_attr "cc" "call_set")])
 5.14528 ++
 5.14529 ++
 5.14530 ++;;=============================================================================
 5.14531 ++;; untyped_call
 5.14532 ++;;-----------------------------------------------------------------------------
 5.14533 ++;; Subrutine call instruction returning a value of any type.
 5.14534 ++;; The code is copied from m68k.md (except gen_blockage is removed)
 5.14535 ++;; Fixme!
 5.14536 ++;;=============================================================================
 5.14537 ++(define_expand "untyped_call"
 5.14538 ++  [(parallel [(call (match_operand 0 "avr32_call_operand" "")
 5.14539 ++		    (const_int 0))
 5.14540 ++	      (match_operand 1 "" "")
 5.14541 ++	      (match_operand 2 "" "")])]
 5.14542 ++  ""
 5.14543 ++  {
 5.14544 ++    int i;
 5.14545 ++
 5.14546 ++    emit_call_insn (GEN_CALL (operands[0], const0_rtx, NULL, const0_rtx));
 5.14547 ++
 5.14548 ++    for (i = 0; i < XVECLEN (operands[2], 0); i++) {
 5.14549 ++      rtx set = XVECEXP (operands[2], 0, i);
 5.14550 ++      emit_move_insn (SET_DEST (set), SET_SRC (set));
 5.14551 ++    }
 5.14552 ++
 5.14553 ++    /* The optimizer does not know that the call sets the function value
 5.14554 ++       registers we stored in the result block.  We avoid problems by
 5.14555 ++       claiming that all hard registers are used and clobbered at this
 5.14556 ++       point.  */
 5.14557 ++    emit_insn (gen_blockage ());
 5.14558 ++
 5.14559 ++    DONE;
 5.14560 ++  })
 5.14561 ++
 5.14562 ++
 5.14563 ++;;=============================================================================
 5.14564 ++;; return
 5.14565 ++;;=============================================================================
 5.14566 ++
 5.14567 ++(define_insn "return"
 5.14568 ++  [(return)]
 5.14569 ++  "USE_RETURN_INSN (FALSE)"
 5.14570 ++  {
 5.14571 ++   avr32_output_return_instruction(TRUE, FALSE, NULL, NULL);
 5.14572 ++   return "";
 5.14573 ++  }
 5.14574 ++  [(set_attr "length" "4")
 5.14575 ++   (set_attr "type" "call")]
 5.14576 ++  )
 5.14577 ++
 5.14578 ++
 5.14579 ++(define_insn "return_cond"
 5.14580 ++  [(set (pc) 
 5.14581 ++        (if_then_else (match_operand 0 "avr32_comparison_operand" "")
 5.14582 ++                      (return)
 5.14583 ++                      (pc)))]
 5.14584 ++  "USE_RETURN_INSN (TRUE)"
 5.14585 ++  "ret%0\tr12";
 5.14586 ++  [(set_attr "type" "call")])
 5.14587 ++  
 5.14588 ++(define_insn "return_cond_predicable"
 5.14589 ++  [(return)]
 5.14590 ++  "USE_RETURN_INSN (TRUE)"
 5.14591 ++  "ret%?\tr12";
 5.14592 ++  [(set_attr "type" "call")
 5.14593 ++   (set_attr "predicable" "yes")])
 5.14594 ++
 5.14595 ++
 5.14596 ++(define_insn "return_imm"
 5.14597 ++  [(parallel [(set (reg RETVAL_REGNUM) (match_operand 0 "immediate_operand" "i"))
 5.14598 ++              (use (reg RETVAL_REGNUM))
 5.14599 ++              (return)])]
 5.14600 ++  "USE_RETURN_INSN (FALSE) &&
 5.14601 ++   ((INTVAL(operands[0]) == -1) || (INTVAL(operands[0]) == 0) || (INTVAL(operands[0]) == 1))"
 5.14602 ++  {
 5.14603 ++   avr32_output_return_instruction(TRUE, FALSE, NULL, operands[0]);
 5.14604 ++   return "";
 5.14605 ++  }
 5.14606 ++  [(set_attr "length" "4")
 5.14607 ++   (set_attr "type" "call")]
 5.14608 ++  )
 5.14609 ++
 5.14610 ++(define_insn "return_imm_cond"
 5.14611 ++  [(parallel [(set (reg RETVAL_REGNUM) (match_operand 0 "immediate_operand" "i"))
 5.14612 ++              (use (reg RETVAL_REGNUM))
 5.14613 ++              (set (pc) 
 5.14614 ++                   (if_then_else (match_operand 1 "avr32_comparison_operand" "")
 5.14615 ++                                 (return)
 5.14616 ++                                 (pc)))])]
 5.14617 ++  "USE_RETURN_INSN (TRUE) &&
 5.14618 ++   ((INTVAL(operands[0]) == -1) || (INTVAL(operands[0]) == 0) || (INTVAL(operands[0]) == 1))"
 5.14619 ++  "ret%1\t%0";
 5.14620 ++  [(set_attr "type" "call")]
 5.14621 ++  )
 5.14622 ++
 5.14623 ++(define_insn "return_imm_predicable"
 5.14624 ++  [(parallel [(set (reg RETVAL_REGNUM) (match_operand 0 "immediate_operand" "i"))
 5.14625 ++              (use (reg RETVAL_REGNUM))
 5.14626 ++              (return)])]
 5.14627 ++  "USE_RETURN_INSN (TRUE) &&
 5.14628 ++   ((INTVAL(operands[0]) == -1) || (INTVAL(operands[0]) == 0) || (INTVAL(operands[0]) == 1))"
 5.14629 ++  "ret%?\t%0";
 5.14630 ++  [(set_attr "type" "call")
 5.14631 ++   (set_attr "predicable" "yes")])
 5.14632 ++
 5.14633 ++(define_insn "return_<mode>reg"
 5.14634 ++  [(set (reg RETVAL_REGNUM) (match_operand:MOVM 0 "register_operand" "r"))
 5.14635 ++   (use (reg RETVAL_REGNUM))
 5.14636 ++   (return)]
 5.14637 ++  "USE_RETURN_INSN (TRUE)"
 5.14638 ++  "ret%?\t%0";
 5.14639 ++  [(set_attr "type" "call")
 5.14640 ++   (set_attr "predicable" "yes")])
 5.14641 ++
 5.14642 ++(define_insn "return_<mode>reg_cond"
 5.14643 ++  [(set (reg RETVAL_REGNUM) (match_operand:MOVM 0 "register_operand" "r"))
 5.14644 ++   (use (reg RETVAL_REGNUM))
 5.14645 ++   (set (pc) 
 5.14646 ++        (if_then_else (match_operator 1 "avr32_comparison_operator"
 5.14647 ++                                      [(cc0) (const_int 0)])
 5.14648 ++                      (return)
 5.14649 ++                      (pc)))]
 5.14650 ++  "USE_RETURN_INSN (TRUE)"
 5.14651 ++  "ret%1\t%0";
 5.14652 ++  [(set_attr "type" "call")])
 5.14653 ++  
 5.14654 ++;;=============================================================================
 5.14655 ++;; nop
 5.14656 ++;;-----------------------------------------------------------------------------
 5.14657 ++;; No-op instruction.
 5.14658 ++;;=============================================================================
 5.14659 ++(define_insn "nop"
 5.14660 ++  [(const_int 0)]
 5.14661 ++  ""
 5.14662 ++  "nop"
 5.14663 ++  [(set_attr "length" "2")
 5.14664 ++   (set_attr "type" "alu")
 5.14665 ++   (set_attr "cc" "none")])
 5.14666 ++
 5.14667 ++;;=============================================================================
 5.14668 ++;; nonlocal_goto_receiver
 5.14669 ++;;-----------------------------------------------------------------------------
 5.14670 ++;; For targets with a return stack we must make sure to flush the return stack
 5.14671 ++;; since it will be corrupt after a nonlocal goto.
 5.14672 ++;;=============================================================================
 5.14673 ++(define_expand "nonlocal_goto_receiver"
 5.14674 ++  [(const_int 0)]
 5.14675 ++  "TARGET_RETURN_STACK"
 5.14676 ++  "
 5.14677 ++   {
 5.14678 ++    emit_insn ( gen_frs() );
 5.14679 ++    DONE;
 5.14680 ++   }
 5.14681 ++  "
 5.14682 ++  )
 5.14683 ++
 5.14684 ++
 5.14685 ++;;=============================================================================
 5.14686 ++;; builtin_setjmp_receiver
 5.14687 ++;;-----------------------------------------------------------------------------
 5.14688 ++;; For pic code we need to reload the pic register.
 5.14689 ++;; For targets with a return stack we must make sure to flush the return stack
 5.14690 ++;; since it will probably be corrupted.
 5.14691 ++;;=============================================================================
 5.14692 ++(define_expand "builtin_setjmp_receiver"
 5.14693 ++  [(label_ref (match_operand 0 "" ""))]
 5.14694 ++  "flag_pic"
 5.14695 ++  "
 5.14696 ++   {
 5.14697 ++    if ( TARGET_RETURN_STACK ) 
 5.14698 ++     emit_insn ( gen_frs() );
 5.14699 ++
 5.14700 ++    avr32_load_pic_register ();
 5.14701 ++    DONE;
 5.14702 ++   }
 5.14703 ++  "
 5.14704 ++)
 5.14705 ++
 5.14706 ++
 5.14707 ++;;=============================================================================
 5.14708 ++;; indirect_jump
 5.14709 ++;;-----------------------------------------------------------------------------
 5.14710 ++;; Jump to an address in reg or memory.
 5.14711 ++;;=============================================================================
 5.14712 ++(define_expand "indirect_jump"
 5.14713 ++  [(set (pc)
 5.14714 ++	(match_operand:SI 0 "general_operand" ""))]
 5.14715 ++  ""
 5.14716 ++  {
 5.14717 ++    /* One of the ops has to be in a register.  */
 5.14718 ++    if ( (flag_pic || TARGET_HAS_ASM_ADDR_PSEUDOS )
 5.14719 ++         && !avr32_legitimate_pic_operand_p(operands[0]) )
 5.14720 ++      operands[0] = legitimize_pic_address (operands[0], SImode, 0);
 5.14721 ++    else if ( flag_pic && avr32_address_operand(operands[0], GET_MODE(operands[0])) )
 5.14722 ++      /* If we have an address operand then this function uses the pic register. */
 5.14723 ++      current_function_uses_pic_offset_table = 1;
 5.14724 ++  })
 5.14725 ++
 5.14726 ++
 5.14727 ++(define_insn "indirect_jump_internal"
 5.14728 ++  [(set (pc)
 5.14729 ++	(match_operand:SI 0 "avr32_non_rmw_general_operand" "r,m,W"))]
 5.14730 ++  ""
 5.14731 ++  {
 5.14732 ++    switch( which_alternative ){
 5.14733 ++      case 0:
 5.14734 ++        return "mov\tpc, %0";
 5.14735 ++      case 1:
 5.14736 ++        if ( avr32_const_pool_ref_operand(operands[0], GET_MODE(operands[0])) )
 5.14737 ++          return "lddpc\tpc, %0";
 5.14738 ++        else
 5.14739 ++          return "ld.w\tpc, %0";
 5.14740 ++      case 2:
 5.14741 ++        if ( flag_pic )
 5.14742 ++          return "ld.w\tpc, r6[%0@got]";
 5.14743 ++        else
 5.14744 ++          return "lda.w\tpc, %0";
 5.14745 ++      default:
 5.14746 ++	abort();
 5.14747 ++    }
 5.14748 ++   }
 5.14749 ++  [(set_attr "length" "2,4,8")
 5.14750 ++   (set_attr "type" "call,call,call")
 5.14751 ++   (set_attr "cc" "none,none,clobber")])
 5.14752 ++
 5.14753 ++
 5.14754 ++
 5.14755 ++;;=============================================================================
 5.14756 ++;; casesi and tablejump
 5.14757 ++;;=============================================================================
 5.14758 ++(define_insn "tablejump_add"
 5.14759 ++  [(set (pc)
 5.14760 ++	(plus:SI (match_operand:SI 0 "register_operand" "r")
 5.14761 ++                 (mult:SI (match_operand:SI 1 "register_operand" "r")
 5.14762 ++                          (match_operand:SI 2 "immediate_operand" "Ku04" ))))
 5.14763 ++   (use (label_ref (match_operand 3 "" "")))]
 5.14764 ++  "flag_pic &&
 5.14765 ++   ((INTVAL(operands[2]) == 0) || (INTVAL(operands[2]) == 2) ||
 5.14766 ++    (INTVAL(operands[2]) == 4) || (INTVAL(operands[2]) == 8))"
 5.14767 ++  "add\tpc, %0, %1 << %p2"
 5.14768 ++  [(set_attr "length" "4")
 5.14769 ++   (set_attr "cc" "clobber")])
 5.14770 ++
 5.14771 ++(define_insn "tablejump_insn"
 5.14772 ++  [(set (pc) (match_operand:SI 0 "memory_operand" "m"))
 5.14773 ++   (use (label_ref (match_operand 1 "" "")))]
 5.14774 ++  "!flag_pic"
 5.14775 ++  "ld.w\tpc, %0"
 5.14776 ++  [(set_attr "length" "4")
 5.14777 ++   (set_attr "type" "call")
 5.14778 ++   (set_attr "cc" "none")])
 5.14779 ++
 5.14780 ++(define_expand "casesi"
 5.14781 ++  [(match_operand:SI 0 "register_operand" "")	; index to jump on
 5.14782 ++   (match_operand:SI 1 "const_int_operand" "")	; lower bound
 5.14783 ++   (match_operand:SI 2 "const_int_operand" "")	; total range
 5.14784 ++   (match_operand:SI 3 "" "")			; table label
 5.14785 ++   (match_operand:SI 4 "" "")]			; Out of range label
 5.14786 ++  ""
 5.14787 ++  "
 5.14788 ++  {
 5.14789 ++    rtx reg;
 5.14790 ++    rtx index = operands[0];
 5.14791 ++    rtx low_bound = operands[1];
 5.14792 ++    rtx range = operands[2];
 5.14793 ++    rtx table_label = operands[3];
 5.14794 ++    rtx oor_label = operands[4];
 5.14795 ++
 5.14796 ++    index = force_reg ( SImode, index );
 5.14797 ++    if (low_bound != const0_rtx)
 5.14798 ++      {
 5.14799 ++        if (!avr32_const_ok_for_constraint_p(INTVAL (low_bound), 'I', \"Is21\")){
 5.14800 ++          reg = force_reg(SImode, GEN_INT (INTVAL (low_bound)));
 5.14801 ++	  emit_insn (gen_subsi3 (reg, index,
 5.14802 ++			         reg));
 5.14803 ++        } else {
 5.14804 ++          reg = gen_reg_rtx (SImode);
 5.14805 ++          emit_insn (gen_addsi3 (reg, index,
 5.14806 ++		         	 GEN_INT (-INTVAL (low_bound))));
 5.14807 ++        }
 5.14808 ++	index = reg;
 5.14809 ++      }
 5.14810 ++
 5.14811 ++    if (!avr32_const_ok_for_constraint_p (INTVAL (range), 'K', \"Ks21\"))
 5.14812 ++      range = force_reg (SImode, range);
 5.14813 ++
 5.14814 ++    emit_cmp_and_jump_insns ( index, range, GTU, NULL_RTX, SImode, 1, oor_label );
 5.14815 ++    reg = gen_reg_rtx (SImode);
 5.14816 ++    emit_move_insn ( reg, gen_rtx_LABEL_REF (VOIDmode, table_label));
 5.14817 ++
 5.14818 ++    if ( flag_pic ) 
 5.14819 ++       emit_jump_insn ( gen_tablejump_add ( reg, index, GEN_INT(4), table_label));
 5.14820 ++    else
 5.14821 ++       emit_jump_insn ( 
 5.14822 ++           gen_tablejump_insn ( gen_rtx_MEM ( SImode, 
 5.14823 ++                                              gen_rtx_PLUS ( SImode, 
 5.14824 ++                                                             reg, 
 5.14825 ++                                                             gen_rtx_MULT ( SImode, 
 5.14826 ++                                                                            index, 
 5.14827 ++                                                                            GEN_INT(4)))),
 5.14828 ++                                table_label));
 5.14829 ++    DONE;
 5.14830 ++  }"
 5.14831 ++)
 5.14832 ++
 5.14833 ++
 5.14834 ++
 5.14835 ++(define_insn "prefetch"
 5.14836 ++  [(prefetch (match_operand:SI 0 "avr32_ks16_address_operand" "p")
 5.14837 ++	     (match_operand 1 "const_int_operand" "")
 5.14838 ++	     (match_operand 2 "const_int_operand" ""))]
 5.14839 ++  ""
 5.14840 ++  {
 5.14841 ++     return "pref\t%0";
 5.14842 ++  }
 5.14843 ++
 5.14844 ++  [(set_attr "length" "4")
 5.14845 ++   (set_attr "type" "load")
 5.14846 ++   (set_attr "cc" "none")])
 5.14847 ++
 5.14848 ++
 5.14849 ++
 5.14850 ++;;=============================================================================
 5.14851 ++;; prologue
 5.14852 ++;;-----------------------------------------------------------------------------
 5.14853 ++;; This pattern, if defined, emits RTL for entry to a function. The function
 5.14854 ++;; entry i responsible for setting up the stack frame, initializing the frame
 5.14855 ++;; pointer register, saving callee saved registers, etc.
 5.14856 ++;;=============================================================================
 5.14857 ++(define_expand "prologue"
 5.14858 ++  [(clobber (const_int 0))]
 5.14859 ++  ""
 5.14860 ++  "
 5.14861 ++  avr32_expand_prologue();
 5.14862 ++  DONE;
 5.14863 ++  "
 5.14864 ++  )
 5.14865 ++
 5.14866 ++;;=============================================================================
 5.14867 ++;; eh_return
 5.14868 ++;;-----------------------------------------------------------------------------
 5.14869 ++;; This pattern, if defined, affects the way __builtin_eh_return, and
 5.14870 ++;; thence the call frame exception handling library routines, are
 5.14871 ++;; built. It is intended to handle non-trivial actions needed along
 5.14872 ++;; the abnormal return path.
 5.14873 ++;;
 5.14874 ++;; The address of the exception handler to which the function should
 5.14875 ++;; return is passed as operand to this pattern. It will normally need
 5.14876 ++;; to copied by the pattern to some special register or memory
 5.14877 ++;; location. If the pattern needs to determine the location of the
 5.14878 ++;; target call frame in order to do so, it may use
 5.14879 ++;; EH_RETURN_STACKADJ_RTX, if defined; it will have already been
 5.14880 ++;; assigned.
 5.14881 ++;;
 5.14882 ++;; If this pattern is not defined, the default action will be to
 5.14883 ++;; simply copy the return address to EH_RETURN_HANDLER_RTX. Either
 5.14884 ++;; that macro or this pattern needs to be defined if call frame
 5.14885 ++;; exception handling is to be used.
 5.14886 ++
 5.14887 ++;; We can't expand this before we know where the link register is stored.
 5.14888 ++(define_insn_and_split "eh_return"
 5.14889 ++  [(unspec_volatile [(match_operand:SI 0 "register_operand" "r")]
 5.14890 ++		    VUNSPEC_EH_RETURN)
 5.14891 ++   (clobber (match_scratch:SI 1 "=&r"))]
 5.14892 ++  ""
 5.14893 ++  "#"
 5.14894 ++  "reload_completed"
 5.14895 ++  [(const_int 0)]
 5.14896 ++  "
 5.14897 ++  {
 5.14898 ++    avr32_set_return_address (operands[0], operands[1]);
 5.14899 ++    DONE;
 5.14900 ++  }"
 5.14901 ++  )
 5.14902 ++
 5.14903 ++
 5.14904 ++;;=============================================================================
 5.14905 ++;; ffssi2
 5.14906 ++;;-----------------------------------------------------------------------------
 5.14907 ++(define_insn "ffssi2"
 5.14908 ++  [ (set (match_operand:SI 0 "register_operand" "=r")
 5.14909 ++         (ffs:SI (match_operand:SI 1 "register_operand" "r"))) ]
 5.14910 ++  ""
 5.14911 ++  "mov    %0, %1
 5.14912 ++   brev   %0
 5.14913 ++   clz    %0, %0
 5.14914 ++   sub    %0, -1
 5.14915 ++   cp     %0, 33
 5.14916 ++   moveq  %0, 0"
 5.14917 ++  [(set_attr "length" "18")
 5.14918 ++   (set_attr "cc" "clobber")]
 5.14919 ++  )
 5.14920 ++
 5.14921 ++
 5.14922 ++
 5.14923 ++;;=============================================================================
 5.14924 ++;; swap_h
 5.14925 ++;;-----------------------------------------------------------------------------
 5.14926 ++(define_insn "*swap_h"
 5.14927 ++  [ (set (match_operand:SI 0 "register_operand" "=r")
 5.14928 ++         (ior:SI (ashift:SI (match_dup 0) (const_int 16))
 5.14929 ++                 (lshiftrt:SI (match_dup 0) (const_int 16))))]
 5.14930 ++  ""
 5.14931 ++  "swap.h    %0"
 5.14932 ++  [(set_attr "length" "2")]
 5.14933 ++  )
 5.14934 ++
 5.14935 ++(define_insn_and_split "bswap_16"
 5.14936 ++  [ (set (match_operand:HI 0 "avr32_bswap_operand" "=r,RKs13,r")
 5.14937 ++         (ior:HI (and:HI (lshiftrt:HI (match_operand:HI 1 "avr32_bswap_operand" "r,r,RKs13")
 5.14938 ++                                      (const_int 8))
 5.14939 ++                         (const_int 255))
 5.14940 ++                 (ashift:HI (and:HI (match_dup 1)
 5.14941 ++                                    (const_int 255))
 5.14942 ++                            (const_int 8))))]
 5.14943 ++  ""
 5.14944 ++  {
 5.14945 ++   switch ( which_alternative ){
 5.14946 ++     case 0:
 5.14947 ++       if ( REGNO(operands[0]) == REGNO(operands[1]))
 5.14948 ++         return "swap.bh\t%0";
 5.14949 ++       else
 5.14950 ++         return "mov\t%0, %1\;swap.bh\t%0";
 5.14951 ++     case 1:
 5.14952 ++       return "stswp.h\t%0, %1";
 5.14953 ++     case 2:
 5.14954 ++       return "ldswp.sh\t%0, %1";
 5.14955 ++     default:
 5.14956 ++       abort();
 5.14957 ++     }
 5.14958 ++  }
 5.14959 ++
 5.14960 ++  "(reload_completed &&
 5.14961 ++     REG_P(operands[0]) && REG_P(operands[1])
 5.14962 ++     && (REGNO(operands[0]) != REGNO(operands[1])))"
 5.14963 ++  [(set (match_dup 0) (match_dup 1))
 5.14964 ++   (set (match_dup 0)
 5.14965 ++        (ior:HI (and:HI (lshiftrt:HI (match_dup 0)
 5.14966 ++                                     (const_int 8))
 5.14967 ++                        (const_int 255))
 5.14968 ++                (ashift:HI (and:HI (match_dup 0)
 5.14969 ++                                   (const_int 255))
 5.14970 ++                           (const_int 8))))]
 5.14971 ++  ""
 5.14972 ++
 5.14973 ++  [(set_attr "length" "4,4,4")
 5.14974 ++   (set_attr "type" "alu,store,load_rm")]
 5.14975 ++  )
 5.14976 ++
 5.14977 ++(define_insn_and_split "bswap_32"
 5.14978 ++  [ (set (match_operand:SI 0 "avr32_bswap_operand" "=r,RKs14,r")
 5.14979 ++         (ior:SI (ior:SI (lshiftrt:SI (and:SI (match_operand:SI 1 "avr32_bswap_operand" "r,r,RKs14")
 5.14980 ++                                              (const_int -16777216))
 5.14981 ++                                      (const_int 24))
 5.14982 ++                         (lshiftrt:SI (and:SI (match_dup 1)
 5.14983 ++                                              (const_int 16711680))
 5.14984 ++                                      (const_int 8)))
 5.14985 ++                 (ior:SI (ashift:SI (and:SI (match_dup 1)
 5.14986 ++                                            (const_int 65280))
 5.14987 ++                                    (const_int 8))
 5.14988 ++                         (ashift:SI (and:SI (match_dup 1)
 5.14989 ++                                            (const_int 255))
 5.14990 ++                                    (const_int 24)))))]
 5.14991 ++  ""
 5.14992 ++  {
 5.14993 ++    switch ( which_alternative ){
 5.14994 ++     case 0:
 5.14995 ++       if ( REGNO(operands[0]) == REGNO(operands[1]))
 5.14996 ++         return "swap.b\t%0";
 5.14997 ++       else
 5.14998 ++         return "#";
 5.14999 ++     case 1:
 5.15000 ++       return "stswp.w\t%0, %1";
 5.15001 ++     case 2:
 5.15002 ++       return "ldswp.w\t%0, %1";
 5.15003 ++     default:
 5.15004 ++       abort();
 5.15005 ++    }
 5.15006 ++  }
 5.15007 ++  "(reload_completed &&
 5.15008 ++    REG_P(operands[0]) && REG_P(operands[1])
 5.15009 ++    && (REGNO(operands[0]) != REGNO(operands[1])))"
 5.15010 ++  [(set (match_dup 0) (match_dup 1))
 5.15011 ++   (set (match_dup 0)
 5.15012 ++        (ior:SI (ior:SI (lshiftrt:SI (and:SI (match_dup 0)
 5.15013 ++                                             (const_int -16777216))
 5.15014 ++                                     (const_int 24))
 5.15015 ++                        (lshiftrt:SI (and:SI (match_dup 0)
 5.15016 ++                                             (const_int 16711680))
 5.15017 ++                                     (const_int 8)))
 5.15018 ++                (ior:SI (ashift:SI (and:SI (match_dup 0)
 5.15019 ++                                           (const_int 65280))
 5.15020 ++                                   (const_int 8))
 5.15021 ++                        (ashift:SI (and:SI (match_dup 0)
 5.15022 ++                                           (const_int 255))
 5.15023 ++                                   (const_int 24)))))]
 5.15024 ++  ""
 5.15025 ++
 5.15026 ++  [(set_attr "length" "4,4,4")
 5.15027 ++   (set_attr "type" "alu,store,load_rm")]
 5.15028 ++  )
 5.15029 ++
 5.15030 ++
 5.15031 ++;;=============================================================================
 5.15032 ++;; blockage
 5.15033 ++;;-----------------------------------------------------------------------------
 5.15034 ++;; UNSPEC_VOLATILE is considered to use and clobber all hard registers and
 5.15035 ++;; all of memory.  This blocks insns from being moved across this point.
 5.15036 ++
 5.15037 ++(define_insn "blockage"
 5.15038 ++  [(unspec_volatile [(const_int 0)] VUNSPEC_BLOCKAGE)]
 5.15039 ++  ""
 5.15040 ++  ""
 5.15041 ++  [(set_attr "length" "0")]
 5.15042 ++)
 5.15043 ++
 5.15044 ++;;=============================================================================
 5.15045 ++;; clzsi2
 5.15046 ++;;-----------------------------------------------------------------------------
 5.15047 ++(define_insn "clzsi2"
 5.15048 ++  [ (set (match_operand:SI 0 "register_operand" "=r")
 5.15049 ++         (clz:SI (match_operand:SI 1 "register_operand" "r"))) ]
 5.15050 ++  ""
 5.15051 ++  "clz    %0, %1"
 5.15052 ++  [(set_attr "length" "4")
 5.15053 ++   (set_attr "cc" "set_z")]
 5.15054 ++  )
 5.15055 ++
 5.15056 ++;;=============================================================================
 5.15057 ++;; ctzsi2
 5.15058 ++;;-----------------------------------------------------------------------------
 5.15059 ++(define_insn "ctzsi2"
 5.15060 ++  [ (set (match_operand:SI 0 "register_operand" "=r,r")
 5.15061 ++         (ctz:SI (match_operand:SI 1 "register_operand" "0,r"))) ]
 5.15062 ++  ""
 5.15063 ++  "@
 5.15064 ++   brev\t%0\;clz\t%0, %0
 5.15065 ++   mov\t%0, %1\;brev\t%0\;clz\t%0, %0"
 5.15066 ++  [(set_attr "length" "8")
 5.15067 ++   (set_attr "cc" "set_z")]
 5.15068 ++  )
 5.15069 ++
 5.15070 ++;;=============================================================================
 5.15071 ++;; cache instructions
 5.15072 ++;;-----------------------------------------------------------------------------
 5.15073 ++(define_insn "cache"
 5.15074 ++  [ (unspec_volatile [(match_operand:SI 0 "avr32_ks11_address_operand" "p")
 5.15075 ++                      (match_operand:SI 1 "immediate_operand" "Ku05")] VUNSPEC_CACHE)]
 5.15076 ++  ""
 5.15077 ++  "cache    %0, %1"
 5.15078 ++  [(set_attr "length" "4")]
 5.15079 ++  )
 5.15080 ++
 5.15081 ++(define_insn "sync"
 5.15082 ++  [ (unspec_volatile [(match_operand:SI 0 "immediate_operand" "Ku08")] VUNSPEC_SYNC)]
 5.15083 ++  ""
 5.15084 ++  "sync    %0"
 5.15085 ++  [(set_attr "length" "4")]
 5.15086 ++  )
 5.15087 ++
 5.15088 ++;;=============================================================================
 5.15089 ++;; TLB instructions
 5.15090 ++;;-----------------------------------------------------------------------------
 5.15091 ++(define_insn "tlbr"
 5.15092 ++  [ (unspec_volatile [(const_int 0)] VUNSPEC_TLBR)]
 5.15093 ++  ""
 5.15094 ++  "tlbr"
 5.15095 ++  [(set_attr "length" "2")]
 5.15096 ++  )
 5.15097 ++
 5.15098 ++(define_insn "tlbw"
 5.15099 ++  [ (unspec_volatile [(const_int 0)] VUNSPEC_TLBW)]
 5.15100 ++  ""
 5.15101 ++  "tlbw"
 5.15102 ++  [(set_attr "length" "2")]
 5.15103 ++  )
 5.15104 ++
 5.15105 ++(define_insn "tlbs"
 5.15106 ++  [ (unspec_volatile [(const_int 0)] VUNSPEC_TLBS)]
 5.15107 ++  ""
 5.15108 ++  "tlbs"
 5.15109 ++  [(set_attr "length" "2")]
 5.15110 ++  )
 5.15111 ++
 5.15112 ++;;=============================================================================
 5.15113 ++;; Breakpoint instruction
 5.15114 ++;;-----------------------------------------------------------------------------
 5.15115 ++(define_insn "breakpoint"
 5.15116 ++  [ (unspec_volatile [(const_int 0)] VUNSPEC_BREAKPOINT)]
 5.15117 ++  ""
 5.15118 ++  "breakpoint"
 5.15119 ++  [(set_attr "length" "2")]
 5.15120 ++  )
 5.15121 ++
 5.15122 ++
 5.15123 ++;;=============================================================================
 5.15124 ++;; mtsr/mfsr instruction
 5.15125 ++;;-----------------------------------------------------------------------------
 5.15126 ++(define_insn "mtsr"
 5.15127 ++  [ (unspec_volatile [(match_operand 0 "immediate_operand" "i")
 5.15128 ++                      (match_operand:SI 1 "register_operand" "r")] VUNSPEC_MTSR)]
 5.15129 ++  ""
 5.15130 ++  "mtsr\t%0, %1"
 5.15131 ++  [(set_attr "length" "4")]
 5.15132 ++  )
 5.15133 ++
 5.15134 ++(define_insn "mfsr"
 5.15135 ++  [ (set (match_operand:SI 0 "register_operand" "=r")
 5.15136 ++         (unspec_volatile:SI [(match_operand 1 "immediate_operand" "i")] VUNSPEC_MFSR)) ]
 5.15137 ++  ""
 5.15138 ++  "mfsr\t%0, %1"
 5.15139 ++  [(set_attr "length" "4")]
 5.15140 ++  )
 5.15141 ++
 5.15142 ++;;=============================================================================
 5.15143 ++;; mtdr/mfdr instruction
 5.15144 ++;;-----------------------------------------------------------------------------
 5.15145 ++(define_insn "mtdr"
 5.15146 ++  [ (unspec_volatile [(match_operand 0 "immediate_operand" "i")
 5.15147 ++                      (match_operand:SI 1 "register_operand" "r")] VUNSPEC_MTDR)]
 5.15148 ++  ""
 5.15149 ++  "mtdr\t%0, %1"
 5.15150 ++  [(set_attr "length" "4")]
 5.15151 ++  )
 5.15152 ++
 5.15153 ++(define_insn "mfdr"
 5.15154 ++  [ (set (match_operand:SI 0 "register_operand" "=r")
 5.15155 ++         (unspec_volatile:SI [(match_operand 1 "immediate_operand" "i")] VUNSPEC_MFDR)) ]
 5.15156 ++  ""
 5.15157 ++  "mfdr\t%0, %1"
 5.15158 ++  [(set_attr "length" "4")]
 5.15159 ++  )
 5.15160 ++
 5.15161 ++;;=============================================================================
 5.15162 ++;; musfr
 5.15163 ++;;-----------------------------------------------------------------------------
 5.15164 ++(define_insn "musfr"
 5.15165 ++  [ (unspec_volatile [(match_operand:SI 0 "register_operand" "r")] VUNSPEC_MUSFR)]
 5.15166 ++  ""
 5.15167 ++  "musfr\t%0"
 5.15168 ++  [(set_attr "length" "2")
 5.15169 ++   (set_attr "cc" "clobber")]
 5.15170 ++  )
 5.15171 ++
 5.15172 ++(define_insn "mustr"
 5.15173 ++  [ (set (match_operand:SI 0 "register_operand" "=r")
 5.15174 ++         (unspec_volatile:SI [(const_int 0)] VUNSPEC_MUSTR)) ]
 5.15175 ++  ""
 5.15176 ++  "mustr\t%0"
 5.15177 ++  [(set_attr "length" "2")]
 5.15178 ++  )
 5.15179 ++
 5.15180 ++(define_insn "ssrf"
 5.15181 ++  [ (unspec_volatile [(match_operand:SI 0 "immediate_operand" "Ku05")] VUNSPEC_SSRF)]
 5.15182 ++  ""
 5.15183 ++  "ssrf    %0"
 5.15184 ++  [(set_attr "length" "2")
 5.15185 ++   (set_attr "cc" "clobber")]
 5.15186 ++  )
 5.15187 ++
 5.15188 ++(define_insn "csrf"
 5.15189 ++  [ (unspec_volatile [(match_operand:SI 0 "immediate_operand" "Ku05")] VUNSPEC_CSRF)]
 5.15190 ++  ""
 5.15191 ++  "csrf    %0"
 5.15192 ++  [(set_attr "length" "2")
 5.15193 ++   (set_attr "cc" "clobber")]
 5.15194 ++  )
 5.15195 ++
 5.15196 ++;;=============================================================================
 5.15197 ++;; Flush Return Stack instruction
 5.15198 ++;;-----------------------------------------------------------------------------
 5.15199 ++(define_insn "frs"
 5.15200 ++  [ (unspec_volatile [(const_int 0)] VUNSPEC_FRS)]
 5.15201 ++  ""
 5.15202 ++  "frs"
 5.15203 ++  [(set_attr "length" "2")
 5.15204 ++   (set_attr "cc" "none")]
 5.15205 ++  )
 5.15206 ++
 5.15207 ++
 5.15208 ++;;=============================================================================
 5.15209 ++;; Saturation Round Scale instruction
 5.15210 ++;;-----------------------------------------------------------------------------
 5.15211 ++(define_insn "sats"
 5.15212 ++  [ (set (match_operand:SI 0 "register_operand" "+r")
 5.15213 ++         (unspec:SI [(match_dup 0)
 5.15214 ++                     (match_operand 1 "immediate_operand" "Ku05")
 5.15215 ++                     (match_operand 2 "immediate_operand" "Ku05")]
 5.15216 ++                    UNSPEC_SATS)) ]
 5.15217 ++  "TARGET_DSP"
 5.15218 ++  "sats\t%0 >> %1, %2"
 5.15219 ++  [(set_attr "type" "alu_sat")
 5.15220 ++   (set_attr "length" "4")]
 5.15221 ++  )
 5.15222 ++
 5.15223 ++(define_insn "satu"
 5.15224 ++  [ (set (match_operand:SI 0 "register_operand" "+r")
 5.15225 ++         (unspec:SI [(match_dup 0)
 5.15226 ++                     (match_operand 1 "immediate_operand" "Ku05")
 5.15227 ++                     (match_operand 2 "immediate_operand" "Ku05")]
 5.15228 ++                    UNSPEC_SATU)) ]
 5.15229 ++  "TARGET_DSP"
 5.15230 ++  "satu\t%0 >> %1, %2"
 5.15231 ++  [(set_attr "type" "alu_sat")
 5.15232 ++   (set_attr "length" "4")]
 5.15233 ++  )
 5.15234 ++
 5.15235 ++(define_insn "satrnds"
 5.15236 ++  [ (set (match_operand:SI 0 "register_operand" "+r")
 5.15237 ++         (unspec:SI [(match_dup 0)
 5.15238 ++                     (match_operand 1 "immediate_operand" "Ku05")
 5.15239 ++                     (match_operand 2 "immediate_operand" "Ku05")]
 5.15240 ++                    UNSPEC_SATRNDS)) ]
 5.15241 ++  "TARGET_DSP"
 5.15242 ++  "satrnds\t%0 >> %1, %2"
 5.15243 ++  [(set_attr "type" "alu_sat")
 5.15244 ++   (set_attr "length" "4")]
 5.15245 ++  )
 5.15246 ++
 5.15247 ++(define_insn "satrndu"
 5.15248 ++  [ (set (match_operand:SI 0 "register_operand" "+r")
 5.15249 ++         (unspec:SI [(match_dup 0)
 5.15250 ++                     (match_operand 1 "immediate_operand" "Ku05")
 5.15251 ++                     (match_operand 2 "immediate_operand" "Ku05")]
 5.15252 ++                    UNSPEC_SATRNDU)) ]
 5.15253 ++  "TARGET_DSP"
 5.15254 ++  "sats\t%0 >> %1, %2"
 5.15255 ++  [(set_attr "type" "alu_sat")
 5.15256 ++   (set_attr "length" "4")]
 5.15257 ++  )
 5.15258 ++
 5.15259 ++;; Special patterns for dealing with the constant pool
 5.15260 ++
 5.15261 ++(define_insn "align_4"
 5.15262 ++  [(unspec_volatile [(const_int 0)] VUNSPEC_ALIGN)]
 5.15263 ++  ""
 5.15264 ++  {
 5.15265 ++   assemble_align (32);
 5.15266 ++   return "";
 5.15267 ++  }
 5.15268 ++  [(set_attr "length" "2")]
 5.15269 ++)
 5.15270 ++
 5.15271 ++(define_insn "consttable_start"
 5.15272 ++  [(unspec_volatile [(const_int 0)] VUNSPEC_POOL_START)]
 5.15273 ++  ""
 5.15274 ++  {
 5.15275 ++   return ".cpool";
 5.15276 ++  }
 5.15277 ++  [(set_attr "length" "0")]
 5.15278 ++  )
 5.15279 ++
 5.15280 ++(define_insn "consttable_end"
 5.15281 ++  [(unspec_volatile [(const_int 0)] VUNSPEC_POOL_END)]
 5.15282 ++  ""
 5.15283 ++  {
 5.15284 ++   making_const_table = FALSE;
 5.15285 ++   return "";
 5.15286 ++  }
 5.15287 ++  [(set_attr "length" "0")]
 5.15288 ++)
 5.15289 ++
 5.15290 ++
 5.15291 ++(define_insn "consttable_4"
 5.15292 ++  [(unspec_volatile [(match_operand 0 "" "")] VUNSPEC_POOL_4)]
 5.15293 ++  ""
 5.15294 ++  {
 5.15295 ++    making_const_table = TRUE;
 5.15296 ++    switch (GET_MODE_CLASS (GET_MODE (operands[0])))
 5.15297 ++      {
 5.15298 ++      case MODE_FLOAT:
 5.15299 ++      {
 5.15300 ++        REAL_VALUE_TYPE r;
 5.15301 ++        char real_string[1024];
 5.15302 ++        REAL_VALUE_FROM_CONST_DOUBLE (r, operands[0]);
 5.15303 ++        real_to_decimal(real_string, &r, 1024, 0, 1);
 5.15304 ++        asm_fprintf (asm_out_file, "\t.float\t%s\n", real_string);
 5.15305 ++        break;
 5.15306 ++      }
 5.15307 ++      default:
 5.15308 ++        assemble_integer (operands[0], 4, 0, 1);
 5.15309 ++        break;
 5.15310 ++      }
 5.15311 ++    return "";
 5.15312 ++  }
 5.15313 ++  [(set_attr "length" "4")]
 5.15314 ++)
 5.15315 ++
 5.15316 ++(define_insn "consttable_8"
 5.15317 ++  [(unspec_volatile [(match_operand 0 "" "")] VUNSPEC_POOL_8)]
 5.15318 ++  ""
 5.15319 ++  {
 5.15320 ++    making_const_table = TRUE;
 5.15321 ++    switch (GET_MODE_CLASS (GET_MODE (operands[0])))
 5.15322 ++      {
 5.15323 ++       case MODE_FLOAT:
 5.15324 ++        {
 5.15325 ++         REAL_VALUE_TYPE r; 
 5.15326 ++         char real_string[1024];
 5.15327 ++         REAL_VALUE_FROM_CONST_DOUBLE (r, operands[0]);
 5.15328 ++         real_to_decimal(real_string, &r, 1024, 0, 1);
 5.15329 ++         asm_fprintf (asm_out_file, "\t.double\t%s\n", real_string);
 5.15330 ++         break;
 5.15331 ++        }
 5.15332 ++       default:
 5.15333 ++         assemble_integer(operands[0], 8, 0, 1);
 5.15334 ++        break;
 5.15335 ++     }
 5.15336 ++    return "";
 5.15337 ++  }
 5.15338 ++  [(set_attr "length" "8")]
 5.15339 ++)
 5.15340 ++
 5.15341 ++(define_insn "consttable_16"
 5.15342 ++  [(unspec_volatile [(match_operand 0 "" "")] VUNSPEC_POOL_16)]
 5.15343 ++  ""
 5.15344 ++  {
 5.15345 ++    making_const_table = TRUE;
 5.15346 ++    assemble_integer(operands[0], 16, 0, 1);
 5.15347 ++    return "";
 5.15348 ++  }
 5.15349 ++  [(set_attr "length" "16")]
 5.15350 ++)
 5.15351 ++
 5.15352 ++;;=============================================================================
 5.15353 ++;; coprocessor instructions
 5.15354 ++;;-----------------------------------------------------------------------------
 5.15355 ++(define_insn "cop"
 5.15356 ++  [ (unspec_volatile [(match_operand 0 "immediate_operand" "Ku03")
 5.15357 ++                      (match_operand 1 "immediate_operand" "Ku04")
 5.15358 ++                      (match_operand 2 "immediate_operand" "Ku04")
 5.15359 ++                      (match_operand 3 "immediate_operand" "Ku04")
 5.15360 ++                      (match_operand 4 "immediate_operand" "Ku07")] VUNSPEC_COP)]
 5.15361 ++  ""
 5.15362 ++  "cop\tcp%0, cr%1, cr%2, cr%3, %4"
 5.15363 ++  [(set_attr "length" "4")]
 5.15364 ++  )
 5.15365 ++
 5.15366 ++(define_insn "mvcrsi"
 5.15367 ++  [ (set (match_operand:SI 0 "avr32_cop_move_operand" "=r,<,Z")
 5.15368 ++         (unspec_volatile:SI [(match_operand 1 "immediate_operand" "Ku03,Ku03,Ku03")
 5.15369 ++                              (match_operand 2 "immediate_operand" "Ku04,Ku04,Ku04")]
 5.15370 ++                             VUNSPEC_MVCR)) ]
 5.15371 ++  ""
 5.15372 ++  "@
 5.15373 ++   mvcr.w\tcp%1, %0, cr%2
 5.15374 ++   stcm.w\tcp%1, %0, cr%2
 5.15375 ++   stc.w\tcp%1, %0, cr%2"
 5.15376 ++  [(set_attr "length" "4")]
 5.15377 ++  )
 5.15378 ++
 5.15379 ++(define_insn "mvcrdi"
 5.15380 ++  [ (set (match_operand:DI 0 "avr32_cop_move_operand" "=r,<,Z")
 5.15381 ++         (unspec_volatile:DI [(match_operand 1 "immediate_operand" "Ku03,Ku03,Ku03")
 5.15382 ++                              (match_operand 2 "immediate_operand" "Ku04,Ku04,Ku04")]
 5.15383 ++                             VUNSPEC_MVCR)) ]
 5.15384 ++  ""
 5.15385 ++  "@
 5.15386 ++   mvcr.d\tcp%1, %0, cr%2
 5.15387 ++   stcm.d\tcp%1, %0, cr%2-cr%i2
 5.15388 ++   stc.d\tcp%1, %0, cr%2"
 5.15389 ++  [(set_attr "length" "4")]
 5.15390 ++  )
 5.15391 ++
 5.15392 ++(define_insn "mvrcsi"
 5.15393 ++  [ (unspec_volatile:SI [(match_operand 0 "immediate_operand" "Ku03,Ku03,Ku03")
 5.15394 ++                         (match_operand 1 "immediate_operand" "Ku04,Ku04,Ku04")
 5.15395 ++                         (match_operand:SI 2 "avr32_cop_move_operand" "r,>,Z")]
 5.15396 ++                        VUNSPEC_MVRC)]
 5.15397 ++  ""
 5.15398 ++  {
 5.15399 ++   switch (which_alternative){
 5.15400 ++    case 0:
 5.15401 ++      return "mvrc.w\tcp%0, cr%1, %2";
 5.15402 ++    case 1:
 5.15403 ++      return "ldcm.w\tcp%0, %2, cr%1";
 5.15404 ++    case 2:
 5.15405 ++      return "ldc.w\tcp%0, cr%1, %2";
 5.15406 ++    default:
 5.15407 ++      abort();
 5.15408 ++   }
 5.15409 ++  }
 5.15410 ++  [(set_attr "length" "4")]
 5.15411 ++  )
 5.15412 ++
 5.15413 ++(define_insn "mvrcdi"
 5.15414 ++  [ (unspec_volatile:DI [(match_operand 0 "immediate_operand" "Ku03,Ku03,Ku03")
 5.15415 ++                         (match_operand 1 "immediate_operand" "Ku04,Ku04,Ku04")
 5.15416 ++                         (match_operand:DI 2 "avr32_cop_move_operand" "r,>,Z")]
 5.15417 ++                        VUNSPEC_MVRC)]
 5.15418 ++  ""
 5.15419 ++  {
 5.15420 ++   switch (which_alternative){
 5.15421 ++    case 0:
 5.15422 ++      return "mvrc.d\tcp%0, cr%1, %2";
 5.15423 ++    case 1:
 5.15424 ++      return "ldcm.d\tcp%0, %2, cr%1-cr%i1";
 5.15425 ++    case 2:
 5.15426 ++      return "ldc.d\tcp%0, cr%1, %2";
 5.15427 ++    default:
 5.15428 ++      abort();
 5.15429 ++   }
 5.15430 ++  }
 5.15431 ++  [(set_attr "length" "4")]
 5.15432 ++  )
 5.15433 ++
 5.15434 ++;;=============================================================================
 5.15435 ++;; epilogue
 5.15436 ++;;-----------------------------------------------------------------------------
 5.15437 ++;; This pattern emits RTL for exit from a function. The function exit is
 5.15438 ++;; responsible for deallocating the stack frame, restoring callee saved
 5.15439 ++;; registers and emitting the return instruction.
 5.15440 ++;; ToDo: using TARGET_ASM_FUNCTION_PROLOGUE instead.
 5.15441 ++;;=============================================================================
 5.15442 ++(define_expand "epilogue"
 5.15443 ++  [(unspec_volatile [(return)] VUNSPEC_EPILOGUE)]
 5.15444 ++  ""
 5.15445 ++  "
 5.15446 ++  if (USE_RETURN_INSN (FALSE)){
 5.15447 ++      emit_jump_insn (gen_return ());
 5.15448 ++      DONE;
 5.15449 ++  }
 5.15450 ++  emit_jump_insn (gen_rtx_UNSPEC_VOLATILE (VOIDmode,
 5.15451 ++	gen_rtvec (1,
 5.15452 ++		gen_rtx_RETURN (VOIDmode)),
 5.15453 ++	VUNSPEC_EPILOGUE));
 5.15454 ++  DONE;
 5.15455 ++  "
 5.15456 ++  )
 5.15457 ++
 5.15458 ++(define_insn "*epilogue_insns"
 5.15459 ++  [(unspec_volatile [(return)] VUNSPEC_EPILOGUE)]
 5.15460 ++  ""
 5.15461 ++  {
 5.15462 ++    avr32_output_return_instruction (FALSE, FALSE, NULL, NULL);
 5.15463 ++    return "";
 5.15464 ++  }
 5.15465 ++  ; Length is absolute worst case
 5.15466 ++  [(set_attr "type" "branch")
 5.15467 ++   (set_attr "length" "12")]
 5.15468 ++  )
 5.15469 ++
 5.15470 ++(define_insn "*epilogue_insns_ret_imm"
 5.15471 ++  [(parallel [(set (reg RETVAL_REGNUM) (match_operand 0 "immediate_operand" "i"))
 5.15472 ++              (use (reg RETVAL_REGNUM))
 5.15473 ++              (unspec_volatile [(return)] VUNSPEC_EPILOGUE)])]
 5.15474 ++  "((INTVAL(operands[0]) == -1) || (INTVAL(operands[0]) == 0) || (INTVAL(operands[0]) == 1))"
 5.15475 ++  {
 5.15476 ++    avr32_output_return_instruction (FALSE, FALSE, NULL, operands[0]);
 5.15477 ++    return "";
 5.15478 ++  }
 5.15479 ++  ; Length is absolute worst case
 5.15480 ++  [(set_attr "type" "branch")
 5.15481 ++   (set_attr "length" "12")]
 5.15482 ++  )
 5.15483 ++
 5.15484 ++(define_insn "sibcall_epilogue"
 5.15485 ++  [(unspec_volatile [(const_int 0)] VUNSPEC_EPILOGUE)]
 5.15486 ++  ""
 5.15487 ++  {
 5.15488 ++   avr32_output_return_instruction (FALSE, FALSE,  NULL, NULL);
 5.15489 ++   return "";
 5.15490 ++  }
 5.15491 ++;; Length is absolute worst case
 5.15492 ++  [(set_attr "type" "branch")
 5.15493 ++   (set_attr "length" "12")]
 5.15494 ++  )
 5.15495 ++
 5.15496 ++(define_insn "*sibcall_epilogue_insns_ret_imm"
 5.15497 ++  [(parallel [(set (reg RETVAL_REGNUM) (match_operand 0 "immediate_operand" "i"))
 5.15498 ++              (use (reg RETVAL_REGNUM))
 5.15499 ++              (unspec_volatile [(const_int 0)] VUNSPEC_EPILOGUE)])]
 5.15500 ++  "((INTVAL(operands[0]) == -1) || (INTVAL(operands[0]) == 0) || (INTVAL(operands[0]) == 1))"
 5.15501 ++  {
 5.15502 ++    avr32_output_return_instruction (FALSE, FALSE, NULL, operands[0]);
 5.15503 ++    return "";
 5.15504 ++  }
 5.15505 ++  ; Length is absolute worst case
 5.15506 ++  [(set_attr "type" "branch")
 5.15507 ++   (set_attr "length" "12")]
 5.15508 ++  )
 5.15509 ++
 5.15510 ++(define_insn "ldxi"
 5.15511 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.15512 ++	(mem:SI (plus:SI
 5.15513 ++                 (match_operand:SI 1 "register_operand" "r")
 5.15514 ++                 (mult:SI (zero_extract:SI (match_operand:SI 2 "register_operand" "r")
 5.15515 ++                                           (const_int 8)
 5.15516 ++                                           (match_operand:SI 3 "immediate_operand" "Ku05"))
 5.15517 ++                          (const_int 4)))))]
 5.15518 ++  "(INTVAL(operands[3]) == 24 || INTVAL(operands[3]) == 16 || INTVAL(operands[3]) == 8
 5.15519 ++   || INTVAL(operands[3]) == 0)"
 5.15520 ++  {
 5.15521 ++   switch ( INTVAL(operands[3]) ){
 5.15522 ++    case 0:
 5.15523 ++         return "ld.w    %0, %1[%2:b << 2]";
 5.15524 ++    case 8:
 5.15525 ++         return "ld.w    %0, %1[%2:l << 2]";
 5.15526 ++    case 16:
 5.15527 ++         return "ld.w    %0, %1[%2:u << 2]";
 5.15528 ++    case 24:
 5.15529 ++         return "ld.w    %0, %1[%2:t << 2]";
 5.15530 ++    default:
 5.15531 ++         internal_error("illegal operand for ldxi");
 5.15532 ++   }
 5.15533 ++  }
 5.15534 ++  [(set_attr "type" "load")
 5.15535 ++   (set_attr "length" "4")
 5.15536 ++   (set_attr "cc" "none")])
 5.15537 ++
 5.15538 ++
 5.15539 ++
 5.15540 ++
 5.15541 ++
 5.15542 ++
 5.15543 ++;;=============================================================================
 5.15544 ++;; Peephole optimizing
 5.15545 ++;;-----------------------------------------------------------------------------
 5.15546 ++;; Changing
 5.15547 ++;;   sub     r8, r7, 8
 5.15548 ++;;   st.w    r8[0x0], r12
 5.15549 ++;; to
 5.15550 ++;;   sub     r8, r7, 8
 5.15551 ++;;   st.w    r7[-0x8], r12
 5.15552 ++;;=============================================================================
 5.15553 ++; (set (reg:SI 9 r8)
 5.15554 ++;      (plus:SI (reg/f:SI 6 r7)
 5.15555 ++;               (const_int ...)))
 5.15556 ++; (set (mem:SI (reg:SI 9 r8))
 5.15557 ++;      (reg:SI 12 r12))
 5.15558 ++(define_peephole2
 5.15559 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.15560 ++	(plus:SI (match_operand:SI 1 "register_operand" "")
 5.15561 ++		 (match_operand:SI 2 "immediate_operand" "")))
 5.15562 ++   (set (mem:SI (match_dup 0))
 5.15563 ++	(match_operand:SI 3 "register_operand" ""))]
 5.15564 ++  "REGNO(operands[0]) != REGNO(operands[1]) && avr32_const_ok_for_constraint_p(INTVAL(operands[2]), 'K', \"Ks16\")"
 5.15565 ++  [(set (match_dup 0)
 5.15566 ++	(plus:SI (match_dup 1)
 5.15567 ++		 (match_dup 2)))
 5.15568 ++   (set (mem:SI (plus:SI (match_dup 1)
 5.15569 ++			 (match_dup 2)))
 5.15570 ++	(match_dup 3))]
 5.15571 ++  "")
 5.15572 ++
 5.15573 ++;;=============================================================================
 5.15574 ++;; Peephole optimizing
 5.15575 ++;;-----------------------------------------------------------------------------
 5.15576 ++;; Changing
 5.15577 ++;;   sub     r6, r7, 4
 5.15578 ++;;   ld.w    r6, r6[0x0]
 5.15579 ++;; to
 5.15580 ++;;   sub     r6, r7, 4
 5.15581 ++;;   ld.w    r6, r7[-0x4]
 5.15582 ++;;=============================================================================
 5.15583 ++; (set (reg:SI 7 r6)
 5.15584 ++;      (plus:SI (reg/f:SI 6 r7)
 5.15585 ++;               (const_int -4 [0xfffffffc])))
 5.15586 ++; (set (reg:SI 7 r6)
 5.15587 ++;      (mem:SI (reg:SI 7 r6)))
 5.15588 ++(define_peephole2
 5.15589 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.15590 ++	(plus:SI (match_operand:SI 1 "register_operand" "")
 5.15591 ++		 (match_operand:SI 2 "immediate_operand" "")))
 5.15592 ++   (set (match_operand:SI 3 "register_operand" "")
 5.15593 ++	(mem:SI (match_dup 0)))]
 5.15594 ++  "REGNO(operands[0]) != REGNO(operands[1]) && avr32_const_ok_for_constraint_p(INTVAL(operands[2]), 'K', \"Ks16\")"
 5.15595 ++  [(set (match_dup 0)
 5.15596 ++	(plus:SI (match_dup 1)
 5.15597 ++		 (match_dup 2)))
 5.15598 ++   (set (match_dup 3)
 5.15599 ++	(mem:SI (plus:SI (match_dup 1)
 5.15600 ++			 (match_dup 2))))]
 5.15601 ++  "")
 5.15602 ++
 5.15603 ++;;=============================================================================
 5.15604 ++;; Peephole optimizing
 5.15605 ++;;-----------------------------------------------------------------------------
 5.15606 ++;; Changing
 5.15607 ++;;   ld.sb   r0, r7[-0x6]
 5.15608 ++;;   cashs.b r0
 5.15609 ++;; to
 5.15610 ++;;   ld.sb   r0, r7[-0x6]
 5.15611 ++;;=============================================================================
 5.15612 ++(define_peephole2
 5.15613 ++  [(set (match_operand:QI 0 "register_operand" "")
 5.15614 ++	(match_operand:QI 1 "load_sb_memory_operand" ""))
 5.15615 ++   (set (match_operand:SI 2 "register_operand" "")
 5.15616 ++	(sign_extend:SI (match_dup 0)))]
 5.15617 ++  "(REGNO(operands[0]) == REGNO(operands[2]) || peep2_reg_dead_p(2, operands[0]))"
 5.15618 ++  [(set (match_dup 2)
 5.15619 ++	(sign_extend:SI (match_dup 1)))]
 5.15620 ++  "")
 5.15621 ++
 5.15622 ++;;=============================================================================
 5.15623 ++;; Peephole optimizing
 5.15624 ++;;-----------------------------------------------------------------------------
 5.15625 ++;; Changing
 5.15626 ++;;   ld.ub   r0, r7[-0x6]
 5.15627 ++;;   cashu.b r0
 5.15628 ++;; to
 5.15629 ++;;   ld.ub   r0, r7[-0x6]
 5.15630 ++;;=============================================================================
 5.15631 ++(define_peephole2
 5.15632 ++  [(set (match_operand:QI 0 "register_operand" "")
 5.15633 ++	(match_operand:QI 1 "memory_operand" ""))
 5.15634 ++   (set (match_operand:SI 2 "register_operand" "")
 5.15635 ++	(zero_extend:SI (match_dup 0)))]
 5.15636 ++  "(REGNO(operands[0]) == REGNO(operands[2])) || peep2_reg_dead_p(2, operands[0])"
 5.15637 ++  [(set (match_dup 2)
 5.15638 ++	(zero_extend:SI (match_dup 1)))]
 5.15639 ++  "")
 5.15640 ++
 5.15641 ++;;=============================================================================
 5.15642 ++;; Peephole optimizing
 5.15643 ++;;-----------------------------------------------------------------------------
 5.15644 ++;; Changing
 5.15645 ++;;   ld.sh   r0, r7[-0x6]
 5.15646 ++;;   casts.h r0
 5.15647 ++;; to
 5.15648 ++;;   ld.sh   r0, r7[-0x6]
 5.15649 ++;;=============================================================================
 5.15650 ++(define_peephole2
 5.15651 ++  [(set (match_operand:HI 0 "register_operand" "")
 5.15652 ++	(match_operand:HI 1 "memory_operand" ""))
 5.15653 ++   (set (match_operand:SI 2 "register_operand" "")
 5.15654 ++	(sign_extend:SI (match_dup 0)))]
 5.15655 ++  "(REGNO(operands[0]) == REGNO(operands[2])) || peep2_reg_dead_p(2, operands[0])"
 5.15656 ++  [(set (match_dup 2)
 5.15657 ++	(sign_extend:SI (match_dup 1)))]
 5.15658 ++  "")
 5.15659 ++
 5.15660 ++;;=============================================================================
 5.15661 ++;; Peephole optimizing
 5.15662 ++;;-----------------------------------------------------------------------------
 5.15663 ++;; Changing
 5.15664 ++;;   ld.uh   r0, r7[-0x6]
 5.15665 ++;;   castu.h r0
 5.15666 ++;; to
 5.15667 ++;;   ld.uh   r0, r7[-0x6]
 5.15668 ++;;=============================================================================
 5.15669 ++(define_peephole2
 5.15670 ++  [(set (match_operand:HI 0 "register_operand" "")
 5.15671 ++	(match_operand:HI 1 "memory_operand" ""))
 5.15672 ++   (set (match_operand:SI 2 "register_operand" "")
 5.15673 ++	(zero_extend:SI (match_dup 0)))]
 5.15674 ++  "(REGNO(operands[0]) == REGNO(operands[2])) || peep2_reg_dead_p(2, operands[0])"
 5.15675 ++  [(set (match_dup 2)
 5.15676 ++	(zero_extend:SI (match_dup 1)))]
 5.15677 ++  "")
 5.15678 ++
 5.15679 ++;;=============================================================================
 5.15680 ++;; Peephole optimizing
 5.15681 ++;;-----------------------------------------------------------------------------
 5.15682 ++;; Changing
 5.15683 ++;;   mul     rd, rx, ry
 5.15684 ++;;   add     rd2, rd  
 5.15685 ++;; or
 5.15686 ++;;   add     rd2, rd, rd2  
 5.15687 ++;; to
 5.15688 ++;;   mac     rd2, rx, ry
 5.15689 ++;;=============================================================================
 5.15690 ++(define_peephole2
 5.15691 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.15692 ++        (mult:SI (match_operand:SI 1 "register_operand" "")
 5.15693 ++                (match_operand:SI 2 "register_operand" "")))
 5.15694 ++   (set (match_operand:SI 3 "register_operand" "")
 5.15695 ++        (plus:SI (match_dup 3)
 5.15696 ++                 (match_dup 0)))]
 5.15697 ++  "peep2_reg_dead_p(2, operands[0])"
 5.15698 ++  [(set (match_dup 3)
 5.15699 ++	(plus:SI (mult:SI (match_dup 1)
 5.15700 ++			  (match_dup 2))
 5.15701 ++		 (match_dup 3)))]
 5.15702 ++  "")
 5.15703 ++
 5.15704 ++(define_peephole2
 5.15705 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.15706 ++        (mult:SI (match_operand:SI 1 "register_operand" "")
 5.15707 ++                (match_operand:SI 2 "register_operand" "")))
 5.15708 ++   (set (match_operand:SI 3 "register_operand" "")
 5.15709 ++        (plus:SI (match_dup 0)
 5.15710 ++                 (match_dup 3)))]
 5.15711 ++  "peep2_reg_dead_p(2, operands[0])"
 5.15712 ++  [(set (match_dup 3)
 5.15713 ++	(plus:SI (mult:SI (match_dup 1)
 5.15714 ++			  (match_dup 2))
 5.15715 ++		 (match_dup 3)))]
 5.15716 ++  "")
 5.15717 ++
 5.15718 ++
 5.15719 ++;;=============================================================================
 5.15720 ++;; Peephole optimizing
 5.15721 ++;;-----------------------------------------------------------------------------
 5.15722 ++;; Changing
 5.15723 ++;;   bfextu  rd, rs, k5, 1 or and(h/l) rd, one_bit_set_mask
 5.15724 ++;; to
 5.15725 ++;;   bld     rs, k5
 5.15726 ++;;
 5.15727 ++;; If rd is dead after the operation.
 5.15728 ++;;=============================================================================
 5.15729 ++(define_peephole2
 5.15730 ++  [ (set (match_operand:SI 0 "register_operand" "")
 5.15731 ++         (zero_extract:SI (match_operand:SI 1 "register_operand" "")
 5.15732 ++                          (const_int 1)
 5.15733 ++                          (match_operand:SI 2 "immediate_operand" "")))
 5.15734 ++    (set (cc0)
 5.15735 ++         (match_dup 0))]
 5.15736 ++  "peep2_reg_dead_p(2, operands[0])"
 5.15737 ++  [(set (cc0)
 5.15738 ++        (and:SI (match_dup 1)
 5.15739 ++                (match_dup 2)))]
 5.15740 ++  "operands[2] = GEN_INT(1 << INTVAL(operands[2]));")
 5.15741 ++
 5.15742 ++(define_peephole2
 5.15743 ++  [ (set (match_operand:SI 0 "register_operand" "")
 5.15744 ++         (and:SI (match_operand:SI 1 "register_operand" "")
 5.15745 ++                 (match_operand:SI 2 "one_bit_set_operand" "")))
 5.15746 ++    (set (cc0)
 5.15747 ++         (match_dup 0))]
 5.15748 ++  "peep2_reg_dead_p(2, operands[0])"
 5.15749 ++  [(set (cc0)
 5.15750 ++        (and:SI (match_dup 1)
 5.15751 ++                (match_dup 2)))]
 5.15752 ++  "")
 5.15753 ++
 5.15754 ++;;=============================================================================
 5.15755 ++;; Peephole optimizing
 5.15756 ++;;-----------------------------------------------------------------------------
 5.15757 ++;; Load with extracted index: ld.w  Rd, Rb[Ri:{t/u/b/l} << 2]
 5.15758 ++;;
 5.15759 ++;;=============================================================================
 5.15760 ++
 5.15761 ++
 5.15762 ++(define_peephole
 5.15763 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.15764 ++        (zero_extract:SI (match_operand:SI 1 "register_operand" "")
 5.15765 ++                         (const_int 8)
 5.15766 ++                         (match_operand:SI 2 "avr32_extract_shift_operand" "")))
 5.15767 ++   (set (match_operand:SI 3 "register_operand" "")
 5.15768 ++        (mem:SI (plus:SI (mult:SI (match_dup 0) (const_int 4))
 5.15769 ++                         (match_operand:SI 4 "register_operand" ""))))]
 5.15770 ++
 5.15771 ++  "(dead_or_set_p(insn, operands[0]))"
 5.15772 ++  {
 5.15773 ++   switch ( INTVAL(operands[2]) ){
 5.15774 ++    case 0:
 5.15775 ++         return "ld.w    %3, %4[%1:b << 2]";
 5.15776 ++    case 8:
 5.15777 ++         return "ld.w    %3, %4[%1:l << 2]";
 5.15778 ++    case 16:
 5.15779 ++         return "ld.w    %3, %4[%1:u << 2]";
 5.15780 ++    case 24:
 5.15781 ++         return "ld.w    %3, %4[%1:t << 2]";
 5.15782 ++    default:
 5.15783 ++         internal_error("illegal operand for ldxi");
 5.15784 ++   }
 5.15785 ++  }
 5.15786 ++  [(set_attr "type" "load")
 5.15787 ++   (set_attr "length" "4")
 5.15788 ++   (set_attr "cc" "clobber")]
 5.15789 ++  )
 5.15790 ++
 5.15791 ++
 5.15792 ++
 5.15793 ++(define_peephole
 5.15794 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.15795 ++        (and:SI (match_operand:SI 1 "register_operand" "") (const_int 255)))
 5.15796 ++   (set (match_operand:SI 2 "register_operand" "")
 5.15797 ++        (mem:SI (plus:SI (mult:SI (match_dup 0) (const_int 4))
 5.15798 ++                         (match_operand:SI 3 "register_operand" ""))))]
 5.15799 ++
 5.15800 ++  "(dead_or_set_p(insn, operands[0]))"
 5.15801 ++
 5.15802 ++  "ld.w    %2, %3[%1:b << 2]"
 5.15803 ++  [(set_attr "type" "load")
 5.15804 ++   (set_attr "length" "4")
 5.15805 ++   (set_attr "cc" "clobber")]
 5.15806 ++  )
 5.15807 ++
 5.15808 ++
 5.15809 ++(define_peephole2
 5.15810 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.15811 ++        (zero_extract:SI (match_operand:SI 1 "register_operand" "")
 5.15812 ++                         (const_int 8)
 5.15813 ++                         (match_operand:SI 2 "avr32_extract_shift_operand" "")))
 5.15814 ++   (set (match_operand:SI 3 "register_operand" "")
 5.15815 ++        (mem:SI (plus:SI (mult:SI (match_dup 0) (const_int 4))
 5.15816 ++                         (match_operand:SI 4 "register_operand" ""))))]
 5.15817 ++
 5.15818 ++  "(peep2_reg_dead_p(2, operands[0]))
 5.15819 ++   || (REGNO(operands[0]) == REGNO(operands[3]))"
 5.15820 ++  [(set (match_dup 3)
 5.15821 ++	(mem:SI (plus:SI
 5.15822 ++                 (match_dup 4)
 5.15823 ++                 (mult:SI (zero_extract:SI (match_dup 1)
 5.15824 ++                                           (const_int 8)
 5.15825 ++                                           (match_dup 2))
 5.15826 ++                          (const_int 4)))))]
 5.15827 ++  )
 5.15828 ++
 5.15829 ++(define_peephole2
 5.15830 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.15831 ++        (zero_extend:SI (match_operand:QI 1 "register_operand" "")))
 5.15832 ++   (set (match_operand:SI 2 "register_operand" "")
 5.15833 ++        (mem:SI (plus:SI (mult:SI (match_dup 0) (const_int 4))
 5.15834 ++                         (match_operand:SI 3 "register_operand" ""))))]
 5.15835 ++
 5.15836 ++  "(peep2_reg_dead_p(2, operands[0]))
 5.15837 ++   || (REGNO(operands[0]) == REGNO(operands[2]))"
 5.15838 ++  [(set (match_dup 2)
 5.15839 ++	(mem:SI (plus:SI
 5.15840 ++                 (match_dup 3)
 5.15841 ++                 (mult:SI (zero_extract:SI (match_dup 1)
 5.15842 ++                                           (const_int 8)
 5.15843 ++                                           (const_int 0))
 5.15844 ++                          (const_int 4)))))]
 5.15845 ++  "operands[1] = gen_rtx_REG(SImode, REGNO(operands[1]));"
 5.15846 ++  )
 5.15847 ++
 5.15848 ++
 5.15849 ++(define_peephole2
 5.15850 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.15851 ++        (and:SI (match_operand:SI 1 "register_operand" "")
 5.15852 ++                (const_int 255)))
 5.15853 ++   (set (match_operand:SI 2 "register_operand" "")
 5.15854 ++        (mem:SI (plus:SI (mult:SI (match_dup 0) (const_int 4))
 5.15855 ++                         (match_operand:SI 3 "register_operand" ""))))]
 5.15856 ++
 5.15857 ++  "(peep2_reg_dead_p(2, operands[0]))
 5.15858 ++   || (REGNO(operands[0]) == REGNO(operands[2]))"
 5.15859 ++  [(set (match_dup 2)
 5.15860 ++	(mem:SI (plus:SI
 5.15861 ++                 (match_dup 3)
 5.15862 ++                 (mult:SI (zero_extract:SI (match_dup 1)
 5.15863 ++                                           (const_int 8)
 5.15864 ++                                           (const_int 0))
 5.15865 ++                          (const_int 4)))))]
 5.15866 ++  ""
 5.15867 ++  )
 5.15868 ++
 5.15869 ++
 5.15870 ++
 5.15871 ++(define_peephole2
 5.15872 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.15873 ++        (lshiftrt:SI (match_operand:SI 1 "register_operand" "")
 5.15874 ++                     (const_int 24)))
 5.15875 ++   (set (match_operand:SI 2 "register_operand" "")
 5.15876 ++        (mem:SI (plus:SI (mult:SI (match_dup 0) (const_int 4))
 5.15877 ++                         (match_operand:SI 3 "register_operand" ""))))]
 5.15878 ++
 5.15879 ++  "(peep2_reg_dead_p(2, operands[0]))
 5.15880 ++   || (REGNO(operands[0]) == REGNO(operands[2]))"
 5.15881 ++  [(set (match_dup 2)
 5.15882 ++	(mem:SI (plus:SI
 5.15883 ++                 (match_dup 3)
 5.15884 ++                 (mult:SI (zero_extract:SI (match_dup 1)
 5.15885 ++                                           (const_int 8)
 5.15886 ++                                           (const_int 24))
 5.15887 ++                          (const_int 4)))))]
 5.15888 ++  ""
 5.15889 ++  )
 5.15890 ++
 5.15891 ++
 5.15892 ++;;************************************************
 5.15893 ++;; ANDN
 5.15894 ++;;
 5.15895 ++;;************************************************
 5.15896 ++
 5.15897 ++
 5.15898 ++(define_peephole2
 5.15899 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.15900 ++        (not:SI (match_operand:SI 1 "register_operand" "")))
 5.15901 ++   (set (match_operand:SI 2 "register_operand" "")
 5.15902 ++        (and:SI (match_dup 2)
 5.15903 ++                (match_dup 0)))]
 5.15904 ++  "peep2_reg_dead_p(2, operands[0])"
 5.15905 ++
 5.15906 ++  [(set (match_dup 2)
 5.15907 ++        (and:SI  (match_dup 2)
 5.15908 ++                 (not:SI (match_dup 1))
 5.15909 ++                 ))]
 5.15910 ++  ""
 5.15911 ++)
 5.15912 ++
 5.15913 ++(define_peephole2
 5.15914 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.15915 ++        (not:SI (match_operand:SI 1 "register_operand" "")))
 5.15916 ++   (set (match_operand:SI 2 "register_operand" "")
 5.15917 ++        (and:SI (match_dup 0)
 5.15918 ++                (match_dup 2)
 5.15919 ++                ))]
 5.15920 ++  "peep2_reg_dead_p(2, operands[0])"
 5.15921 ++
 5.15922 ++  [(set (match_dup 2)
 5.15923 ++        (and:SI  (match_dup 2)
 5.15924 ++                 (not:SI (match_dup 1))
 5.15925 ++                 ))]
 5.15926 ++
 5.15927 ++  ""
 5.15928 ++)
 5.15929 ++
 5.15930 ++
 5.15931 ++;;=================================================================
 5.15932 ++;; Addabs peephole
 5.15933 ++;;=================================================================
 5.15934 ++
 5.15935 ++(define_peephole
 5.15936 ++  [(set (match_operand:SI 2 "register_operand" "=r")
 5.15937 ++ 	(abs:SI (match_operand:SI 1 "register_operand" "r")))
 5.15938 ++   (set (match_operand:SI 0 "register_operand" "=r")
 5.15939 ++ 	(plus:SI (match_operand:SI 3 "register_operand" "r")
 5.15940 ++ 		 (match_dup 2)))]
 5.15941 ++  "dead_or_set_p(insn, operands[2])"
 5.15942 ++  "addabs  %0, %3, %1"
 5.15943 ++  [(set_attr "length" "4")
 5.15944 ++   (set_attr "cc" "set_z")])
 5.15945 ++
 5.15946 ++(define_peephole
 5.15947 ++  [(set (match_operand:SI 2 "register_operand" "=r")
 5.15948 ++ 	(abs:SI (match_operand:SI 1 "register_operand" "r")))
 5.15949 ++   (set (match_operand:SI 0 "register_operand" "=r")
 5.15950 ++ 	(plus:SI (match_dup 2)
 5.15951 ++                 (match_operand:SI 3 "register_operand" "r")))]
 5.15952 ++  "dead_or_set_p(insn, operands[2])"
 5.15953 ++  "addabs  %0, %3, %1"
 5.15954 ++  [(set_attr "length" "4")
 5.15955 ++   (set_attr "cc" "set_z")])
 5.15956 ++
 5.15957 ++
 5.15958 ++;;=================================================================
 5.15959 ++;; Detect roundings
 5.15960 ++;;=================================================================
 5.15961 ++
 5.15962 ++(define_insn "*round"
 5.15963 ++  [(set (match_operand:SI 0 "register_operand" "+r")
 5.15964 ++        (ashiftrt:SI (plus:SI (match_dup 0)
 5.15965 ++                              (match_operand:SI 1 "immediate_operand" "i"))
 5.15966 ++                     (match_operand:SI 2 "immediate_operand" "i")))]
 5.15967 ++  "avr32_rnd_operands(operands[1], operands[2])"
 5.15968 ++
 5.15969 ++  "satrnds    %0 >> %2, 31"
 5.15970 ++
 5.15971 ++  [(set_attr "type" "alu_sat")
 5.15972 ++   (set_attr "length" "4")]
 5.15973 ++
 5.15974 ++  )
 5.15975 ++
 5.15976 ++
 5.15977 ++(define_peephole2
 5.15978 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.15979 ++	(plus:SI (match_dup 0)
 5.15980 ++                 (match_operand:SI 1 "immediate_operand" "")))
 5.15981 ++   (set (match_dup 0)
 5.15982 ++	(ashiftrt:SI (match_dup 0)
 5.15983 ++                     (match_operand:SI 2 "immediate_operand" "")))]
 5.15984 ++  "avr32_rnd_operands(operands[1], operands[2])"
 5.15985 ++
 5.15986 ++  [(set (match_dup 0)
 5.15987 ++        (ashiftrt:SI (plus:SI (match_dup 0)
 5.15988 ++                              (match_dup 1))
 5.15989 ++                     (match_dup 2)))]
 5.15990 ++  )
 5.15991 ++
 5.15992 ++(define_peephole
 5.15993 ++  [(set (match_operand:SI 0 "register_operand" "r")
 5.15994 ++	(plus:SI (match_dup 0)
 5.15995 ++                 (match_operand:SI 1 "immediate_operand" "i")))
 5.15996 ++   (set (match_dup 0)
 5.15997 ++	(ashiftrt:SI (match_dup 0)
 5.15998 ++                     (match_operand:SI 2 "immediate_operand" "i")))]
 5.15999 ++  "avr32_rnd_operands(operands[1], operands[2])"
 5.16000 ++
 5.16001 ++  "satrnds    %0 >> %2, 31"
 5.16002 ++
 5.16003 ++  [(set_attr "type" "alu_sat")
 5.16004 ++   (set_attr "length" "4")
 5.16005 ++   (set_attr "cc" "clobber")]
 5.16006 ++
 5.16007 ++  )
 5.16008 ++
 5.16009 ++
 5.16010 ++;;=================================================================
 5.16011 ++;; mcall
 5.16012 ++;;=================================================================
 5.16013 ++(define_peephole
 5.16014 ++  [(set (match_operand:SI 0 "register_operand"        "")
 5.16015 ++	(match_operand 1 "avr32_const_pool_ref_operand"  ""))
 5.16016 ++   (parallel [(call (mem:SI (match_dup 0))
 5.16017 ++                    (match_operand 2 "" ""))
 5.16018 ++              (clobber (reg:SI LR_REGNUM))])]
 5.16019 ++  "dead_or_set_p(insn, operands[0])"
 5.16020 ++  "mcall    %1"
 5.16021 ++  [(set_attr "type" "call")
 5.16022 ++   (set_attr "length" "4")
 5.16023 ++   (set_attr "cc" "clobber")]
 5.16024 ++)
 5.16025 ++
 5.16026 ++(define_peephole
 5.16027 ++  [(set (match_operand:SI 2 "register_operand"        "")
 5.16028 ++	(match_operand 1 "avr32_const_pool_ref_operand"  ""))
 5.16029 ++   (parallel [(set (match_operand 0 "register_operand" "")
 5.16030 ++                   (call (mem:SI (match_dup 2))
 5.16031 ++                         (match_operand 3 "" "")))
 5.16032 ++              (clobber (reg:SI LR_REGNUM))])]
 5.16033 ++  "dead_or_set_p(insn, operands[2])"
 5.16034 ++  "mcall    %1"
 5.16035 ++  [(set_attr "type" "call")
 5.16036 ++   (set_attr "length" "4")
 5.16037 ++   (set_attr "cc" "call_set")]
 5.16038 ++)
 5.16039 ++
 5.16040 ++
 5.16041 ++(define_peephole2
 5.16042 ++  [(set (match_operand:SI 0 "register_operand"    "")
 5.16043 ++	(match_operand 1 "avr32_const_pool_ref_operand"  ""))
 5.16044 ++   (parallel [(call (mem:SI (match_dup 0))
 5.16045 ++                    (match_operand 2 "" ""))
 5.16046 ++              (clobber (reg:SI LR_REGNUM))])]
 5.16047 ++  "peep2_reg_dead_p(2, operands[0])"
 5.16048 ++  [(parallel [(call (mem:SI (match_dup 1))
 5.16049 ++                    (match_dup 2))
 5.16050 ++              (clobber (reg:SI LR_REGNUM))])]
 5.16051 ++  ""
 5.16052 ++)
 5.16053 ++
 5.16054 ++(define_peephole2
 5.16055 ++  [(set (match_operand:SI 0 "register_operand"        "")
 5.16056 ++	(match_operand 1 "avr32_const_pool_ref_operand"  ""))
 5.16057 ++   (parallel [(set (match_operand 2 "register_operand" "")
 5.16058 ++                   (call (mem:SI (match_dup 0))
 5.16059 ++                         (match_operand 3 "" "")))
 5.16060 ++              (clobber (reg:SI LR_REGNUM))])]
 5.16061 ++  "(peep2_reg_dead_p(2, operands[0]) || (REGNO(operands[2]) == REGNO(operands[0])))"
 5.16062 ++  [(parallel [(set (match_dup 2)
 5.16063 ++                   (call (mem:SI (match_dup 1))
 5.16064 ++                         (match_dup 3)))
 5.16065 ++              (clobber (reg:SI LR_REGNUM))])]
 5.16066 ++  ""
 5.16067 ++)
 5.16068 ++
 5.16069 ++;;=================================================================
 5.16070 ++;; Returning a value
 5.16071 ++;;=================================================================
 5.16072 ++
 5.16073 ++
 5.16074 ++(define_peephole
 5.16075 ++  [(set (match_operand 0 "register_operand" "")
 5.16076 ++        (match_operand 1 "register_operand" ""))
 5.16077 ++   (return)]
 5.16078 ++  "USE_RETURN_INSN (TRUE) && (REGNO(operands[0]) == RETVAL_REGNUM)
 5.16079 ++   && (REGNO(operands[1]) != LR_REGNUM)
 5.16080 ++   && (REGNO_REG_CLASS(REGNO(operands[1])) == GENERAL_REGS)"
 5.16081 ++  "retal    %1"
 5.16082 ++  [(set_attr "type" "call")
 5.16083 ++   (set_attr "length" "2")]
 5.16084 ++  )
 5.16085 ++
 5.16086 ++
 5.16087 ++(define_peephole
 5.16088 ++  [(set (match_operand 0 "register_operand" "r")
 5.16089 ++        (match_operand 1 "immediate_operand" "i"))
 5.16090 ++   (return)]
 5.16091 ++  "(USE_RETURN_INSN (FALSE) && (REGNO(operands[0]) == RETVAL_REGNUM) &&
 5.16092 ++   ((INTVAL(operands[1]) == -1) || (INTVAL(operands[1]) == 0) || (INTVAL(operands[1]) == 1)))"
 5.16093 ++  {
 5.16094 ++    avr32_output_return_instruction (TRUE, FALSE, NULL, operands[1]);
 5.16095 ++    return "";
 5.16096 ++  }
 5.16097 ++  [(set_attr "type" "call")
 5.16098 ++   (set_attr "length" "4")]
 5.16099 ++  )
 5.16100 ++
 5.16101 ++(define_peephole
 5.16102 ++  [(set (match_operand 0 "register_operand" "r")
 5.16103 ++        (match_operand 1 "immediate_operand" "i"))
 5.16104 ++   (unspec_volatile [(return)] VUNSPEC_EPILOGUE)]
 5.16105 ++  "(REGNO(operands[0]) == RETVAL_REGNUM) &&
 5.16106 ++   ((INTVAL(operands[1]) == -1) || (INTVAL(operands[1]) == 0) || (INTVAL(operands[1]) == 1))"
 5.16107 ++  {
 5.16108 ++    avr32_output_return_instruction (FALSE, FALSE, NULL, operands[1]);
 5.16109 ++    return "";
 5.16110 ++  }
 5.16111 ++  ; Length is absolute worst case
 5.16112 ++  [(set_attr "type" "branch")
 5.16113 ++   (set_attr "length" "12")]
 5.16114 ++  )
 5.16115 ++
 5.16116 ++(define_peephole
 5.16117 ++  [(set (match_operand 0 "register_operand" "=r")
 5.16118 ++        (if_then_else (match_operator 1 "avr32_comparison_operator"
 5.16119 ++                                      [(match_operand 4 "register_operand" "r")
 5.16120 ++                                       (match_operand 5 "register_immediate_operand" "rKs21")])
 5.16121 ++                      (match_operand 2 "avr32_cond_register_immediate_operand" "rKs08")
 5.16122 ++                      (match_operand 3 "avr32_cond_register_immediate_operand" "rKs08")))
 5.16123 ++   (return)]
 5.16124 ++  "USE_RETURN_INSN (TRUE) && (REGNO(operands[0]) == RETVAL_REGNUM)"
 5.16125 ++  {
 5.16126 ++   operands[1] = avr32_output_cmp(operands[1], GET_MODE(operands[4]), operands[4], operands[5]);
 5.16127 ++
 5.16128 ++   if ( GET_CODE(operands[2]) == REG
 5.16129 ++        && GET_CODE(operands[3]) == REG
 5.16130 ++        && REGNO(operands[2]) != LR_REGNUM
 5.16131 ++        && REGNO(operands[3]) != LR_REGNUM ){
 5.16132 ++      return "ret%1    %2\;ret%i1    %3";
 5.16133 ++   } else if ( GET_CODE(operands[2]) == REG
 5.16134 ++               && GET_CODE(operands[3]) == CONST_INT ){
 5.16135 ++      if ( INTVAL(operands[3]) == -1
 5.16136 ++           || INTVAL(operands[3]) == 0
 5.16137 ++           || INTVAL(operands[3]) == 1 ){
 5.16138 ++        return "ret%1    %2\;ret%i1    %d3";
 5.16139 ++      } else {
 5.16140 ++        return "mov%1    r12, %2\;mov%i1    r12, %3\;retal    r12";
 5.16141 ++      }
 5.16142 ++   } else if ( GET_CODE(operands[2]) == CONST_INT
 5.16143 ++               && GET_CODE(operands[3]) == REG ){
 5.16144 ++      if ( INTVAL(operands[2]) == -1
 5.16145 ++           || INTVAL(operands[2]) == 0
 5.16146 ++           || INTVAL(operands[2]) == 1 ){
 5.16147 ++        return "ret%1    %d2\;ret%i1    %3";
 5.16148 ++      } else {
 5.16149 ++        return "mov%1    r12, %2\;mov%i1    r12, %3\;retal    r12";
 5.16150 ++      }
 5.16151 ++   } else {
 5.16152 ++      if ( (INTVAL(operands[2]) == -1
 5.16153 ++            || INTVAL(operands[2]) == 0
 5.16154 ++            || INTVAL(operands[2]) == 1 )
 5.16155 ++           && (INTVAL(operands[3]) == -1
 5.16156 ++               || INTVAL(operands[3]) == 0
 5.16157 ++               || INTVAL(operands[3]) == 1 )){
 5.16158 ++        return "ret%1    %d2\;ret%i1    %d3";
 5.16159 ++      } else {
 5.16160 ++        return "mov%1    r12, %2\;mov%i1    r12, %3\;retal    r12";
 5.16161 ++      }
 5.16162 ++   }
 5.16163 ++  }
 5.16164 ++
 5.16165 ++  [(set_attr "length" "10")
 5.16166 ++   (set_attr "cc" "none")
 5.16167 ++   (set_attr "type" "call")])
 5.16168 ++  
 5.16169 ++
 5.16170 ++
 5.16171 ++;;=================================================================
 5.16172 ++;; mulnhh.w
 5.16173 ++;;=================================================================
 5.16174 ++
 5.16175 ++(define_peephole2
 5.16176 ++  [(set (match_operand:HI 0 "register_operand" "")
 5.16177 ++        (neg:HI (match_operand:HI 1 "register_operand" "")))
 5.16178 ++   (set (match_operand:SI 2 "register_operand" "")
 5.16179 ++        (mult:SI
 5.16180 ++         (sign_extend:SI (match_dup 0))
 5.16181 ++         (sign_extend:SI (match_operand:HI 3 "register_operand" ""))))]
 5.16182 ++  "(peep2_reg_dead_p(2, operands[0])) || (REGNO(operands[2]) == REGNO(operands[0]))"
 5.16183 ++  [ (set (match_dup 2)
 5.16184 ++         (mult:SI
 5.16185 ++          (sign_extend:SI (neg:HI (match_dup 1)))
 5.16186 ++          (sign_extend:SI (match_dup 3))))]
 5.16187 ++  ""
 5.16188 ++  )
 5.16189 ++
 5.16190 ++(define_peephole2
 5.16191 ++  [(set (match_operand:HI 0 "register_operand" "")
 5.16192 ++        (neg:HI (match_operand:HI 1 "register_operand" "")))
 5.16193 ++   (set (match_operand:SI 2 "register_operand" "")
 5.16194 ++        (mult:SI
 5.16195 ++         (sign_extend:SI (match_operand:HI 3 "register_operand" ""))
 5.16196 ++         (sign_extend:SI (match_dup 0))))]
 5.16197 ++  "(peep2_reg_dead_p(2, operands[0])) || (REGNO(operands[2]) == REGNO(operands[0]))"
 5.16198 ++  [ (set (match_dup 2)
 5.16199 ++         (mult:SI
 5.16200 ++          (sign_extend:SI (neg:HI (match_dup 1)))
 5.16201 ++          (sign_extend:SI (match_dup 3))))]
 5.16202 ++  ""
 5.16203 ++  )
 5.16204 ++
 5.16205 ++
 5.16206 ++
 5.16207 ++;;=================================================================
 5.16208 ++;; Vector set and extract operations
 5.16209 ++;;=================================================================
 5.16210 ++(define_insn "vec_setv2hi_hi"
 5.16211 ++  [(set (match_operand:V2HI 0 "register_operand" "=r")
 5.16212 ++        (vec_merge:V2HI
 5.16213 ++         (match_dup 0)
 5.16214 ++         (vec_duplicate:V2HI
 5.16215 ++          (match_operand:HI 1 "register_operand" "r"))
 5.16216 ++         (const_int 1)))]
 5.16217 ++  ""
 5.16218 ++  "bfins\t%0, %1, 16, 16"
 5.16219 ++  [(set_attr "type" "alu")
 5.16220 ++   (set_attr "length" "4")
 5.16221 ++   (set_attr "cc" "clobber")])
 5.16222 ++
 5.16223 ++(define_insn "vec_setv2hi_lo"
 5.16224 ++  [(set (match_operand:V2HI 0 "register_operand" "+r")
 5.16225 ++        (vec_merge:V2HI
 5.16226 ++         (match_dup 0)
 5.16227 ++         (vec_duplicate:V2HI
 5.16228 ++          (match_operand:HI 1 "register_operand" "r"))
 5.16229 ++         (const_int 2)))]
 5.16230 ++  ""
 5.16231 ++  "bfins\t%0, %1, 0, 16"
 5.16232 ++  [(set_attr "type" "alu")
 5.16233 ++   (set_attr "length" "4")
 5.16234 ++   (set_attr "cc" "clobber")])
 5.16235 ++
 5.16236 ++(define_expand "vec_setv2hi"
 5.16237 ++  [(set (match_operand:V2HI 0 "register_operand" "")
 5.16238 ++        (vec_merge:V2HI
 5.16239 ++         (match_dup 0)
 5.16240 ++         (vec_duplicate:V2HI
 5.16241 ++          (match_operand:HI 1 "register_operand" ""))
 5.16242 ++         (match_operand 2 "immediate_operand" "")))]
 5.16243 ++  ""
 5.16244 ++  { operands[2] = GEN_INT(INTVAL(operands[2]) + 1); }
 5.16245 ++  )
 5.16246 ++
 5.16247 ++(define_insn "vec_extractv2hi"
 5.16248 ++  [(set (match_operand:HI 0 "register_operand" "=r")
 5.16249 ++        (vec_select:HI
 5.16250 ++         (match_operand:V2HI 1 "register_operand" "r")
 5.16251 ++         (parallel [(match_operand:SI 2 "immediate_operand" "i")])))]
 5.16252 ++  ""
 5.16253 ++  {
 5.16254 ++   if ( INTVAL(operands[2]) == 0 )
 5.16255 ++      return "bfextu\t%0, %1, 16, 16";
 5.16256 ++   else
 5.16257 ++      return "bfextu\t%0, %1, 0, 16";
 5.16258 ++  }
 5.16259 ++  [(set_attr "type" "alu")
 5.16260 ++   (set_attr "length" "4")
 5.16261 ++   (set_attr "cc" "clobber")])
 5.16262 ++
 5.16263 ++(define_insn "vec_extractv4qi"
 5.16264 ++  [(set (match_operand:QI 0 "register_operand" "=r")
 5.16265 ++        (vec_select:QI
 5.16266 ++         (match_operand:V4QI 1 "register_operand" "r")
 5.16267 ++         (parallel [(match_operand:SI 2 "immediate_operand" "i")])))]
 5.16268 ++  ""
 5.16269 ++  {
 5.16270 ++   switch ( INTVAL(operands[2]) ){
 5.16271 ++     case 0:
 5.16272 ++       return "bfextu\t%0, %1, 24, 8";
 5.16273 ++     case 1:
 5.16274 ++       return "bfextu\t%0, %1, 16, 8";
 5.16275 ++     case 2:
 5.16276 ++       return "bfextu\t%0, %1, 8, 8";
 5.16277 ++     case 3:
 5.16278 ++       return "bfextu\t%0, %1, 0, 8";
 5.16279 ++     default:
 5.16280 ++       abort();
 5.16281 ++   }
 5.16282 ++  }
 5.16283 ++  [(set_attr "type" "alu")
 5.16284 ++   (set_attr "length" "4")
 5.16285 ++   (set_attr "cc" "clobber")])
 5.16286 ++
 5.16287 ++
 5.16288 ++(define_insn "concatv2hi"
 5.16289 ++  [(set (match_operand:V2HI 0 "register_operand" "=r, r, r")
 5.16290 ++        (vec_concat:V2HI
 5.16291 ++         (match_operand:HI 1 "register_operand" "r, r, 0")
 5.16292 ++         (match_operand:HI 2 "register_operand" "r, 0, r")))]
 5.16293 ++  ""
 5.16294 ++  "@
 5.16295 ++   mov\t%0, %1\;bfins\t%0, %2, 0, 16
 5.16296 ++   bfins\t%0, %2, 0, 16
 5.16297 ++   bfins\t%0, %1, 16, 16"
 5.16298 ++  [(set_attr "length" "6, 4, 4")
 5.16299 ++   (set_attr "type" "alu")])
 5.16300 ++
 5.16301 ++
 5.16302 ++;; Load the atomic operation description
 5.16303 ++(include "sync.md")
 5.16304 ++
 5.16305 ++;; Load the SIMD description
 5.16306 ++(include "simd.md")
 5.16307 ++
 5.16308 ++;; Load the FP coprAocessor patterns
 5.16309 ++(include "fpcp.md")
 5.16310 +--- /dev/null
 5.16311 ++++ b/gcc/config/avr32/avr32-modes.def
 5.16312 +@@ -0,0 +1 @@
 5.16313 ++VECTOR_MODES (INT, 4);        /*            V4QI V2HI */
 5.16314 +--- /dev/null
 5.16315 ++++ b/gcc/config/avr32/avr32.opt
 5.16316 +@@ -0,0 +1,86 @@
 5.16317 ++; Options for the ATMEL AVR32 port of the compiler.
 5.16318 ++
 5.16319 ++; Copyright 2007 Atmel Corporation.
 5.16320 ++;
 5.16321 ++; This file is part of GCC.
 5.16322 ++;
 5.16323 ++; GCC is free software; you can redistribute it and/or modify it under
 5.16324 ++; the terms of the GNU General Public License as published by the Free
 5.16325 ++; Software Foundation; either version 2, or (at your option) any later
 5.16326 ++; version.
 5.16327 ++;
 5.16328 ++; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
 5.16329 ++; WARRANTY; without even the implied warranty of MERCHANTABILITY or
 5.16330 ++; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 5.16331 ++; for more details.
 5.16332 ++;
 5.16333 ++; You should have received a copy of the GNU General Public License
 5.16334 ++; along with GCC; see the file COPYING.  If not, write to the Free
 5.16335 ++; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 5.16336 ++; 02110-1301, USA.
 5.16337 ++
 5.16338 ++muse-rodata-section
 5.16339 ++Target Report Mask(USE_RODATA_SECTION)
 5.16340 ++Use section .rodata for read-only data instead of .text.
 5.16341 ++
 5.16342 ++mhard-float
 5.16343 ++Target Report Undocumented Mask(HARD_FLOAT)
 5.16344 ++Use floating point coprocessor instructions.
 5.16345 ++
 5.16346 ++msoft-float
 5.16347 ++Target Report Undocumented InverseMask(HARD_FLOAT, SOFT_FLOAT)
 5.16348 ++Use software floating-point library for floating-point operations.
 5.16349 ++
 5.16350 ++mforce-double-align
 5.16351 ++Target Report RejectNegative Mask(FORCE_DOUBLE_ALIGN)
 5.16352 ++Force double-word alignment for double-word memory accesses.
 5.16353 ++
 5.16354 ++mno-init-got
 5.16355 ++Target Report RejectNegative Mask(NO_INIT_GOT)
 5.16356 ++Do not initialize GOT register before using it when compiling PIC code.
 5.16357 ++
 5.16358 ++mrelax
 5.16359 ++Target Report Mask(RELAX)
 5.16360 ++Let invoked assembler and linker do relaxing (Enabled by default when optimization level is >1).
 5.16361 ++
 5.16362 ++mmd-reorg-opt
 5.16363 ++Target Report Undocumented Mask(MD_REORG_OPTIMIZATION)
 5.16364 ++Perform machine dependent optimizations in reorg stage.
 5.16365 ++
 5.16366 ++masm-addr-pseudos
 5.16367 ++Target Report Mask(HAS_ASM_ADDR_PSEUDOS) 
 5.16368 ++Use assembler pseudo-instructions lda.w and call for handling direct addresses. (Enabled by default)
 5.16369 ++
 5.16370 ++mpart=
 5.16371 ++Target Report RejectNegative Joined Var(avr32_part_name)
 5.16372 ++Specify the AVR32 part name
 5.16373 ++
 5.16374 ++mcpu=
 5.16375 ++Target Report RejectNegative Joined Undocumented Var(avr32_part_name)
 5.16376 ++Specify the AVR32 part name (deprecated)
 5.16377 ++
 5.16378 ++march=
 5.16379 ++Target Report RejectNegative Joined Var(avr32_arch_name)
 5.16380 ++Specify the AVR32 architecture name
 5.16381 ++
 5.16382 ++mfast-float
 5.16383 ++Target Report Mask(FAST_FLOAT)
 5.16384 ++Enable fast floating-point library. Enabled by default if the -funsafe-math-optimizations switch is specified.
 5.16385 ++
 5.16386 ++mimm-in-const-pool
 5.16387 ++Target Report Var(avr32_imm_in_const_pool) Init(-1)
 5.16388 ++Put large immediates in constant pool. This is enabled by default for archs with insn-cache.
 5.16389 ++
 5.16390 ++mno-pic
 5.16391 ++Target Report RejectNegative Mask(NO_PIC)
 5.16392 ++Do not generate position-independent code. (deprecated, use -fno-pic instead)
 5.16393 ++
 5.16394 ++mcond-exec-before-reload
 5.16395 ++Target Report Undocumented Mask(COND_EXEC_BEFORE_RELOAD) 
 5.16396 ++Enable experimental conditional execution preparation before the reload stage. 
 5.16397 ++
 5.16398 ++mrmw-addressable-data
 5.16399 ++Target Report Mask(RMW_ADDRESSABLE_DATA)
 5.16400 ++Signal that all data is in range for the Atomic Read-Modify-Write memory instructions, and that
 5.16401 ++gcc can safely generate these whenever possible. 
 5.16402 ++
 5.16403 +--- /dev/null
 5.16404 ++++ b/gcc/config/avr32/avr32-protos.h
 5.16405 +@@ -0,0 +1,196 @@
 5.16406 ++/*
 5.16407 ++   Prototypes for exported functions defined in avr32.c
 5.16408 ++   Copyright 2003-2006 Atmel Corporation.
 5.16409 ++
 5.16410 ++   Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com>
 5.16411 ++   Initial porting by Anders �dland.
 5.16412 ++
 5.16413 ++   This file is part of GCC.
 5.16414 ++
 5.16415 ++   This program is free software; you can redistribute it and/or modify
 5.16416 ++   it under the terms of the GNU General Public License as published by
 5.16417 ++   the Free Software Foundation; either version 2 of the License, or
 5.16418 ++   (at your option) any later version.
 5.16419 ++
 5.16420 ++   This program is distributed in the hope that it will be useful,
 5.16421 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
 5.16422 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 5.16423 ++   GNU General Public License for more details.
 5.16424 ++
 5.16425 ++   You should have received a copy of the GNU General Public License
 5.16426 ++   along with this program; if not, write to the Free Software
 5.16427 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
 5.16428 ++
 5.16429 ++
 5.16430 ++#ifndef AVR32_PROTOS_H
 5.16431 ++#define AVR32_PROTOS_H
 5.16432 ++
 5.16433 ++extern const int swap_reg[];
 5.16434 ++
 5.16435 ++extern int avr32_valid_macmac_bypass (rtx, rtx);
 5.16436 ++extern int avr32_valid_mulmac_bypass (rtx, rtx);
 5.16437 ++
 5.16438 ++extern int avr32_decode_lcomm_symbol_offset (rtx, int *);
 5.16439 ++extern void avr32_encode_lcomm_symbol_offset (tree, char *, int);
 5.16440 ++
 5.16441 ++extern const char *avr32_strip_name_encoding (const char *);
 5.16442 ++
 5.16443 ++extern rtx avr32_get_note_reg_equiv (rtx insn);
 5.16444 ++
 5.16445 ++extern int avr32_use_return_insn (int iscond);
 5.16446 ++
 5.16447 ++extern void avr32_make_reglist16 (int reglist16_vect, char *reglist16_string);
 5.16448 ++
 5.16449 ++extern void avr32_make_reglist8 (int reglist8_vect, char *reglist8_string);
 5.16450 ++extern void avr32_make_fp_reglist_w (int reglist_mask, char *reglist_string);
 5.16451 ++extern void avr32_make_fp_reglist_d (int reglist_mask, char *reglist_string);
 5.16452 ++
 5.16453 ++extern void avr32_output_return_instruction (int single_ret_inst,
 5.16454 ++					     int iscond, rtx cond,
 5.16455 ++					     rtx r12_imm);
 5.16456 ++extern void avr32_expand_prologue (void);
 5.16457 ++extern void avr32_set_return_address (rtx source, rtx scratch);
 5.16458 ++
 5.16459 ++extern int avr32_hard_regno_mode_ok (int regno, enum machine_mode mode);
 5.16460 ++extern int avr32_extra_constraint_s (rtx value, const int strict);
 5.16461 ++extern int avr32_eh_return_data_regno (const int n);
 5.16462 ++extern int avr32_initial_elimination_offset (const int from, const int to);
 5.16463 ++extern rtx avr32_function_arg (CUMULATIVE_ARGS * cum, enum machine_mode mode,
 5.16464 ++			       tree type, int named);
 5.16465 ++extern void avr32_init_cumulative_args (CUMULATIVE_ARGS * cum, tree fntype,
 5.16466 ++					rtx libname, tree fndecl);
 5.16467 ++extern void avr32_function_arg_advance (CUMULATIVE_ARGS * cum,
 5.16468 ++					enum machine_mode mode,
 5.16469 ++					tree type, int named);
 5.16470 ++#ifdef ARGS_SIZE_RTX
 5.16471 ++/* expr.h defines ARGS_SIZE_RTX and `enum direction'.  */
 5.16472 ++extern enum direction avr32_function_arg_padding (enum machine_mode mode,
 5.16473 ++						  tree type);
 5.16474 ++#endif /* ARGS_SIZE_RTX */
 5.16475 ++extern rtx avr32_function_value (tree valtype, tree func, bool outgoing);
 5.16476 ++extern rtx avr32_libcall_value (enum machine_mode mode);
 5.16477 ++extern int avr32_sched_use_dfa_pipeline_interface (void);
 5.16478 ++extern bool avr32_return_in_memory (tree type, tree fntype);
 5.16479 ++extern void avr32_regs_to_save (char *operand);
 5.16480 ++extern void avr32_target_asm_function_prologue (FILE * file,
 5.16481 ++						HOST_WIDE_INT size);
 5.16482 ++extern void avr32_target_asm_function_epilogue (FILE * file,
 5.16483 ++						HOST_WIDE_INT size);
 5.16484 ++extern void avr32_trampoline_template (FILE * file);
 5.16485 ++extern void avr32_initialize_trampoline (rtx addr, rtx fnaddr,
 5.16486 ++					 rtx static_chain);
 5.16487 ++extern int avr32_legitimate_address (enum machine_mode mode, rtx x,
 5.16488 ++				     int strict);
 5.16489 ++extern int avr32_legitimate_constant_p (rtx x);
 5.16490 ++
 5.16491 ++extern int avr32_legitimate_pic_operand_p (rtx x);
 5.16492 ++
 5.16493 ++extern rtx avr32_find_symbol (rtx x);
 5.16494 ++extern void avr32_select_section (rtx exp, int reloc, int align);
 5.16495 ++extern void avr32_encode_section_info (tree decl, rtx rtl, int first);
 5.16496 ++extern void avr32_asm_file_end (FILE * stream);
 5.16497 ++extern void avr32_asm_output_ascii (FILE * stream, char *ptr, int len);
 5.16498 ++extern void avr32_asm_output_common (FILE * stream, const char *name,
 5.16499 ++				     int size, int rounded);
 5.16500 ++extern void avr32_asm_output_label (FILE * stream, const char *name);
 5.16501 ++extern void avr32_asm_declare_object_name (FILE * stream, char *name,
 5.16502 ++					   tree decl);
 5.16503 ++extern void avr32_asm_globalize_label (FILE * stream, const char *name);
 5.16504 ++extern void avr32_asm_weaken_label (FILE * stream, const char *name);
 5.16505 ++extern void avr32_asm_output_external (FILE * stream, tree decl,
 5.16506 ++				       const char *name);
 5.16507 ++extern void avr32_asm_output_external_libcall (FILE * stream, rtx symref);
 5.16508 ++extern void avr32_asm_output_labelref (FILE * stream, const char *name);
 5.16509 ++extern void avr32_notice_update_cc (rtx exp, rtx insn);
 5.16510 ++extern void avr32_print_operand (FILE * stream, rtx x, int code);
 5.16511 ++extern void avr32_print_operand_address (FILE * stream, rtx x);
 5.16512 ++
 5.16513 ++extern int avr32_symbol (rtx x);
 5.16514 ++
 5.16515 ++extern void avr32_select_rtx_section (enum machine_mode mode, rtx x,
 5.16516 ++				      unsigned HOST_WIDE_INT align);
 5.16517 ++
 5.16518 ++extern int avr32_load_multiple_operation (rtx op, enum machine_mode mode);
 5.16519 ++extern int avr32_store_multiple_operation (rtx op, enum machine_mode mode);
 5.16520 ++
 5.16521 ++extern int avr32_const_ok_for_constraint_p (HOST_WIDE_INT value, char c,
 5.16522 ++					    const char *str);
 5.16523 ++
 5.16524 ++extern bool avr32_cannot_force_const_mem (rtx x);
 5.16525 ++
 5.16526 ++extern void avr32_init_builtins (void);
 5.16527 ++
 5.16528 ++extern rtx avr32_expand_builtin (tree exp, rtx target, rtx subtarget,
 5.16529 ++				 enum machine_mode mode, int ignore);
 5.16530 ++
 5.16531 ++extern bool avr32_must_pass_in_stack (enum machine_mode mode, tree type);
 5.16532 ++
 5.16533 ++extern bool avr32_strict_argument_naming (CUMULATIVE_ARGS * ca);
 5.16534 ++
 5.16535 ++extern bool avr32_pass_by_reference (CUMULATIVE_ARGS * cum,
 5.16536 ++				     enum machine_mode mode,
 5.16537 ++				     tree type, bool named);
 5.16538 ++
 5.16539 ++extern rtx avr32_gen_load_multiple (rtx * regs, int count, rtx from,
 5.16540 ++				    int write_back, int in_struct_p,
 5.16541 ++				    int scalar_p);
 5.16542 ++extern rtx avr32_gen_store_multiple (rtx * regs, int count, rtx to,
 5.16543 ++				     int in_struct_p, int scalar_p);
 5.16544 ++extern int avr32_gen_movmemsi (rtx * operands);
 5.16545 ++
 5.16546 ++extern int avr32_rnd_operands (rtx add, rtx shift);
 5.16547 ++extern int avr32_adjust_insn_length (rtx insn, int length);
 5.16548 ++
 5.16549 ++extern int symbol_mentioned_p (rtx x);
 5.16550 ++extern int label_mentioned_p (rtx x);
 5.16551 ++extern rtx legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg);
 5.16552 ++extern int avr32_address_register_rtx_p (rtx x, int strict_p);
 5.16553 ++extern int avr32_legitimate_index_p (enum machine_mode mode, rtx index,
 5.16554 ++				     int strict_p);
 5.16555 ++
 5.16556 ++extern int avr32_const_double_immediate (rtx value);
 5.16557 ++extern void avr32_init_expanders (void);
 5.16558 ++extern rtx avr32_return_addr (int count, rtx frame);
 5.16559 ++extern bool avr32_got_mentioned_p (rtx addr);
 5.16560 ++
 5.16561 ++extern void avr32_final_prescan_insn (rtx insn, rtx * opvec, int noperands);
 5.16562 ++
 5.16563 ++extern int avr32_expand_movcc (enum machine_mode mode, rtx operands[]);
 5.16564 ++extern int avr32_expand_addcc (enum machine_mode mode, rtx operands[]);
 5.16565 ++#ifdef RTX_CODE
 5.16566 ++extern int avr32_expand_scc (RTX_CODE cond, rtx * operands);
 5.16567 ++#endif
 5.16568 ++
 5.16569 ++extern int avr32_store_bypass (rtx insn_out, rtx insn_in);
 5.16570 ++extern int avr32_mul_waw_bypass (rtx insn_out, rtx insn_in);
 5.16571 ++extern int avr32_valid_load_double_bypass (rtx insn_out, rtx insn_in);
 5.16572 ++extern int avr32_valid_load_quad_bypass (rtx insn_out, rtx insn_in);
 5.16573 ++extern rtx avr32_output_cmp (rtx cond, enum machine_mode mode,
 5.16574 ++			     rtx op0, rtx op1);
 5.16575 ++
 5.16576 ++rtx get_next_insn_cond (rtx cur_insn);
 5.16577 ++int set_next_insn_cond (rtx cur_insn, rtx cond);
 5.16578 ++void avr32_override_options (void);
 5.16579 ++void avr32_load_pic_register (void);
 5.16580 ++#ifdef GCC_BASIC_BLOCK_H
 5.16581 ++rtx avr32_ifcvt_modify_insn (ce_if_block_t *ce_info, rtx pattern, rtx insn, 
 5.16582 ++                             int *num_true_changes);
 5.16583 ++rtx avr32_ifcvt_modify_test (ce_if_block_t *ce_info, rtx test );
 5.16584 ++void avr32_ifcvt_modify_cancel ( ce_if_block_t *ce_info, int *num_true_changes);
 5.16585 ++#endif
 5.16586 ++void avr32_optimization_options (int level, int size);
 5.16587 ++int avr32_const_ok_for_move (HOST_WIDE_INT c);
 5.16588 ++
 5.16589 ++void avr32_split_const_expr (enum machine_mode mode,
 5.16590 ++                             enum machine_mode new_mode,
 5.16591 ++                             rtx expr, 
 5.16592 ++                             rtx *split_expr);
 5.16593 ++void avr32_get_intval (enum machine_mode mode,
 5.16594 ++                       rtx const_expr, 
 5.16595 ++                       HOST_WIDE_INT *val);
 5.16596 ++
 5.16597 ++int avr32_cond_imm_clobber_splittable (rtx insn, 
 5.16598 ++                                       rtx operands[]);
 5.16599 ++
 5.16600 ++
 5.16601 ++#endif /* AVR32_PROTOS_H */
 5.16602 +--- /dev/null
 5.16603 ++++ b/gcc/config/avr32/crti.asm
 5.16604 +@@ -0,0 +1,64 @@
 5.16605 ++/*
 5.16606 ++   Init/fini stuff for AVR32.
 5.16607 ++   Copyright 2003-2006 Atmel Corporation.
 5.16608 ++
 5.16609 ++   Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com>
 5.16610 ++
 5.16611 ++   This file is part of GCC.
 5.16612 ++
 5.16613 ++   This program is free software; you can redistribute it and/or modify
 5.16614 ++   it under the terms of the GNU General Public License as published by
 5.16615 ++   the Free Software Foundation; either version 2 of the License, or
 5.16616 ++   (at your option) any later version.
 5.16617 ++
 5.16618 ++   This program is distributed in the hope that it will be useful,
 5.16619 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
 5.16620 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 5.16621 ++   GNU General Public License for more details.
 5.16622 ++
 5.16623 ++   You should have received a copy of the GNU General Public License
 5.16624 ++   along with this program; if not, write to the Free Software
 5.16625 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
 5.16626 ++
 5.16627 ++	
 5.16628 ++/* The code in sections .init and .fini is supposed to be a single
 5.16629 ++   regular function.  The function in .init is called directly from
 5.16630 ++   start in crt1.asm.  The function in .fini is atexit()ed in crt1.asm
 5.16631 ++   too.
 5.16632 ++
 5.16633 ++   crti.asm contributes the prologue of a function to these sections,
 5.16634 ++   and crtn.asm comes up the epilogue.  STARTFILE_SPEC should list
 5.16635 ++   crti.o before any other object files that might add code to .init
 5.16636 ++   or .fini sections, and ENDFILE_SPEC should list crtn.o after any
 5.16637 ++   such object files.  */
 5.16638 ++		
 5.16639 ++	.file		"crti.asm"
 5.16640 ++
 5.16641 ++	.section	".init"
 5.16642 ++/* Just load the GOT */
 5.16643 ++	.align 2
 5.16644 ++	.global	_init
 5.16645 ++_init:
 5.16646 ++	stm	--sp, r6, lr
 5.16647 ++	lddpc	r6, 1f		
 5.16648 ++0:	
 5.16649 ++	rsub	r6, pc
 5.16650 ++	rjmp	2f
 5.16651 ++	.align	2
 5.16652 ++1:	.long	0b - _GLOBAL_OFFSET_TABLE_		
 5.16653 ++2:	
 5.16654 ++				
 5.16655 ++	.section	".fini"
 5.16656 ++/* Just load the GOT */
 5.16657 ++	.align	2
 5.16658 ++	.global	_fini
 5.16659 ++_fini:
 5.16660 ++	stm	--sp, r6, lr
 5.16661 ++	lddpc	r6, 1f		
 5.16662 ++0:	
 5.16663 ++	rsub	r6, pc
 5.16664 ++	rjmp	2f
 5.16665 ++	.align	2
 5.16666 ++1:	.long	0b - _GLOBAL_OFFSET_TABLE_		
 5.16667 ++2:	
 5.16668 ++
 5.16669 +--- /dev/null
 5.16670 ++++ b/gcc/config/avr32/crtn.asm
 5.16671 +@@ -0,0 +1,44 @@
 5.16672 ++/*   Copyright (C) 2001 Free Software Foundation, Inc.
 5.16673 ++    Written By Nick Clifton
 5.16674 ++
 5.16675 ++  This file is free software; you can redistribute it and/or modify it
 5.16676 ++  under the terms of the GNU General Public License as published by the
 5.16677 ++  Free Software Foundation; either version 2, or (at your option) any
 5.16678 ++  later version.
 5.16679 ++
 5.16680 ++  In addition to the permissions in the GNU General Public License, the
 5.16681 ++  Free Software Foundation gives you unlimited permission to link the
 5.16682 ++  compiled version of this file with other programs, and to distribute
 5.16683 ++  those programs without any restriction coming from the use of this
 5.16684 ++  file.  (The General Public License restrictions do apply in other
 5.16685 ++  respects; for example, they cover modification of the file, and
 5.16686 ++  distribution when not linked into another program.)
 5.16687 ++
 5.16688 ++  This file is distributed in the hope that it will be useful, but
 5.16689 ++  WITHOUT ANY WARRANTY; without even the implied warranty of
 5.16690 ++  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 5.16691 ++  General Public License for more details.
 5.16692 ++
 5.16693 ++  You should have received a copy of the GNU General Public License
 5.16694 ++  along with this program; see the file COPYING.  If not, write to
 5.16695 ++  the Free Software Foundation, 59 Temple Place - Suite 330,
 5.16696 ++  Boston, MA 02111-1307, USA.
 5.16697 ++
 5.16698 ++     As a special exception, if you link this library with files
 5.16699 ++     compiled with GCC to produce an executable, this does not cause
 5.16700 ++     the resulting executable to be covered by the GNU General Public License.
 5.16701 ++     This exception does not however invalidate any other reasons why
 5.16702 ++     the executable file might be covered by the GNU General Public License.
 5.16703 ++*/
 5.16704 ++
 5.16705 ++
 5.16706 ++
 5.16707 ++	
 5.16708 ++	.file		"crtn.asm"
 5.16709 ++
 5.16710 ++	.section	".init"
 5.16711 ++	ldm	sp++, r6, pc
 5.16712 ++			
 5.16713 ++	.section	".fini"
 5.16714 ++	ldm	sp++, r6, pc
 5.16715 ++		
 5.16716 +--- /dev/null
 5.16717 ++++ b/gcc/config/avr32/fpcp.md
 5.16718 +@@ -0,0 +1,551 @@
 5.16719 ++;;   AVR32 machine description file for Floating-Point instructions.
 5.16720 ++;;   Copyright 2003-2006 Atmel Corporation.
 5.16721 ++;;
 5.16722 ++;;   Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com>
 5.16723 ++;;
 5.16724 ++;;   This file is part of GCC.
 5.16725 ++;;
 5.16726 ++;;   This program is free software; you can redistribute it and/or modify
 5.16727 ++;;   it under the terms of the GNU General Public License as published by
 5.16728 ++;;   the Free Software Foundation; either version 2 of the License, or
 5.16729 ++;;   (at your option) any later version.
 5.16730 ++;;
 5.16731 ++;;   This program is distributed in the hope that it will be useful,
 5.16732 ++;;   but WITHOUT ANY WARRANTY; without even the implied warranty of
 5.16733 ++;;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 5.16734 ++;;   GNU General Public License for more details.
 5.16735 ++;;
 5.16736 ++;;   You should have received a copy of the GNU General Public License
 5.16737 ++;;   along with this program; if not, write to the Free Software
 5.16738 ++;;   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 5.16739 ++
 5.16740 ++;; -*- Mode: Scheme -*-
 5.16741 ++
 5.16742 ++;;******************************************************************************
 5.16743 ++;; Automaton pipeline description for floating-point coprocessor insns
 5.16744 ++;;******************************************************************************
 5.16745 ++(define_cpu_unit "fid,fm1,fm2,fm3,fm4,fwb,fcmp,fcast" "avr32_ap")
 5.16746 ++
 5.16747 ++(define_insn_reservation "fmv_op" 1
 5.16748 ++  (and (eq_attr "pipeline" "ap")
 5.16749 ++       (eq_attr "type" "fmv"))
 5.16750 ++  "is,da,d,fid,fwb")
 5.16751 ++
 5.16752 ++(define_insn_reservation "fmul_op" 5
 5.16753 ++  (and (eq_attr "pipeline" "ap")
 5.16754 ++       (eq_attr "type" "fmul"))
 5.16755 ++  "is,da,d,fid,fm1,fm2,fm3,fm4,fwb")
 5.16756 ++
 5.16757 ++(define_insn_reservation "fcmps_op" 1
 5.16758 ++  (and (eq_attr "pipeline" "ap")
 5.16759 ++       (eq_attr "type" "fcmps"))
 5.16760 ++  "is,da,d,fid,fcmp")
 5.16761 ++
 5.16762 ++(define_insn_reservation "fcmpd_op" 2
 5.16763 ++  (and (eq_attr "pipeline" "ap")
 5.16764 ++       (eq_attr "type" "fcmpd"))
 5.16765 ++  "is,da,d,fid*2,fcmp")
 5.16766 ++
 5.16767 ++(define_insn_reservation "fcast_op" 3
 5.16768 ++  (and (eq_attr "pipeline" "ap")
 5.16769 ++       (eq_attr "type" "fcast"))
 5.16770 ++  "is,da,d,fid,fcmp,fcast,fwb")
 5.16771 ++
 5.16772 ++(define_insn_reservation "fmvcpu_op" 2
 5.16773 ++  (and (eq_attr "pipeline" "ap")
 5.16774 ++       (eq_attr "type" "fmvcpu"))
 5.16775 ++  "is,da,d")
 5.16776 ++
 5.16777 ++(define_insn_reservation "fldd_op" 1
 5.16778 ++  (and (eq_attr "pipeline" "ap")
 5.16779 ++       (eq_attr "type" "fldd"))
 5.16780 ++  "is,da,d,fwb")
 5.16781 ++
 5.16782 ++(define_insn_reservation "flds_op" 1
 5.16783 ++  (and (eq_attr "pipeline" "ap")
 5.16784 ++       (eq_attr "type" "flds"))
 5.16785 ++  "is,da,d,fwb")
 5.16786 ++
 5.16787 ++(define_insn_reservation "fsts_op" 0
 5.16788 ++  (and (eq_attr "pipeline" "ap")
 5.16789 ++       (eq_attr "type" "fsts"))
 5.16790 ++  "is,da*2,d")
 5.16791 ++
 5.16792 ++(define_insn_reservation "fstd_op" 0
 5.16793 ++  (and (eq_attr "pipeline" "ap")
 5.16794 ++       (eq_attr "type" "fstd"))
 5.16795 ++  "is,da*2,d")
 5.16796 ++
 5.16797 ++
 5.16798 ++(define_insn "*movsf_fpcp"
 5.16799 ++  [(set (match_operand:SF 0 "nonimmediate_operand"     "=f,f,r,f,m,r,r,r,m")
 5.16800 ++	(match_operand:SF 1 "general_operand"          " f,r,f,m,f,r,G,m,r"))]
 5.16801 ++  "TARGET_HARD_FLOAT"
 5.16802 ++  "@
 5.16803 ++   fmov.s\t%0, %1
 5.16804 ++   fmov.s\t%0, %1
 5.16805 ++   fmov.s\t%0, %1
 5.16806 ++   fld.s\t%0, %1
 5.16807 ++   fst.s\t%0, %1
 5.16808 ++   mov\t%0, %1
 5.16809 ++   mov\t%0, %1
 5.16810 ++   ld.w\t%0, %1
 5.16811 ++   st.w\t%0, %1"
 5.16812 ++  [(set_attr "length" "4,4,4,4,4,2,4,4,4")
 5.16813 ++   (set_attr "type" "fmv,flds,fmvcpu,flds,fsts,alu,alu,load,store")])
 5.16814 ++
 5.16815 ++(define_insn_and_split "*movdf_fpcp"
 5.16816 ++  [(set (match_operand:DF 0 "nonimmediate_operand"     "=f,f,r,f,m,r,r,m")
 5.16817 ++	(match_operand:DF 1 "general_operand"          " f,r,f,m,f,r,m,r"))]
 5.16818 ++  "TARGET_HARD_FLOAT"
 5.16819 ++  "@
 5.16820 ++   fmov.d\t%0, %1
 5.16821 ++   fmov.d\t%0, %1
 5.16822 ++   fmov.d\t%0, %1
 5.16823 ++   fld.d\t%0, %1
 5.16824 ++   fst.d\t%0, %1
 5.16825 ++   mov\t%0, %1\;mov\t%m0, %m1
 5.16826 ++   ld.d\t%0, %1
 5.16827 ++   st.d\t%0, %1"
 5.16828 ++
 5.16829 ++  "TARGET_HARD_FLOAT
 5.16830 ++   && reload_completed
 5.16831 ++   && (REG_P(operands[0]) &&  (REGNO_REG_CLASS(REGNO(operands[0])) == GENERAL_REGS))
 5.16832 ++   && (REG_P(operands[1]) &&  (REGNO_REG_CLASS(REGNO(operands[1])) == GENERAL_REGS))"
 5.16833 ++  [(set (match_dup 0) (match_dup 1))
 5.16834 ++   (set (match_dup 2) (match_dup 3))]
 5.16835 ++  "
 5.16836 ++   {
 5.16837 ++    operands[2] = gen_highpart (SImode, operands[0]);
 5.16838 ++    operands[0] = gen_lowpart (SImode, operands[0]);
 5.16839 ++    operands[3] = gen_highpart(SImode, operands[1]);
 5.16840 ++    operands[1] = gen_lowpart(SImode, operands[1]);
 5.16841 ++   }
 5.16842 ++  "
 5.16843 ++
 5.16844 ++  [(set_attr "length" "4,4,4,4,4,4,4,4")
 5.16845 ++   (set_attr "type" "fmv,fldd,fmvcpu,fldd,fstd,alu2,load2,store2")])
 5.16846 ++
 5.16847 ++
 5.16848 ++(define_insn "mulsf3"
 5.16849 ++  [(set (match_operand:SF          0 "avr32_fp_register_operand" "=f")
 5.16850 ++	(mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "f")
 5.16851 ++		 (match_operand:SF 2 "avr32_fp_register_operand" "f")))]
 5.16852 ++  "TARGET_HARD_FLOAT"
 5.16853 ++  "fmul.s\t%0, %1, %2"
 5.16854 ++  [(set_attr "length" "4")
 5.16855 ++   (set_attr "type" "fmul")])
 5.16856 ++
 5.16857 ++(define_insn "nmulsf3"
 5.16858 ++  [(set (match_operand:SF          0 "avr32_fp_register_operand" "=f")
 5.16859 ++	(neg:SF (mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "f")
 5.16860 ++                         (match_operand:SF 2 "avr32_fp_register_operand" "f"))))]
 5.16861 ++  "TARGET_HARD_FLOAT"
 5.16862 ++  "fnmul.s\t%0, %1, %2"
 5.16863 ++  [(set_attr "length" "4")
 5.16864 ++   (set_attr "type" "fmul")])
 5.16865 ++
 5.16866 ++(define_peephole2
 5.16867 ++  [(set (match_operand:SF          0 "avr32_fp_register_operand" "")
 5.16868 ++	(mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "")
 5.16869 ++		 (match_operand:SF 2 "avr32_fp_register_operand" "")))
 5.16870 ++   (set (match_operand:SF          3 "avr32_fp_register_operand" "")
 5.16871 ++	(neg:SF (match_dup 0)))]
 5.16872 ++  "TARGET_HARD_FLOAT &&
 5.16873 ++   (peep2_reg_dead_p(2, operands[0]) || (REGNO(operands[3]) == REGNO(operands[0])))"
 5.16874 ++  [(set (match_dup 3)
 5.16875 ++	(neg:SF (mult:SF (match_dup 1)
 5.16876 ++			 (match_dup 2))))]
 5.16877 ++)
 5.16878 ++
 5.16879 ++
 5.16880 ++(define_insn "macsf3"
 5.16881 ++  [(set (match_operand:SF          0 "avr32_fp_register_operand" "=f")
 5.16882 ++	(plus:SF (mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "f")
 5.16883 ++                          (match_operand:SF 2 "avr32_fp_register_operand" "f"))
 5.16884 ++                 (match_operand:SF 3 "avr32_fp_register_operand" "0")))]
 5.16885 ++  "TARGET_HARD_FLOAT"
 5.16886 ++  "fmac.s\t%0, %1, %2"
 5.16887 ++  [(set_attr "length" "4")
 5.16888 ++   (set_attr "type" "fmul")])
 5.16889 ++
 5.16890 ++(define_insn "nmacsf3"
 5.16891 ++  [(set (match_operand:SF          0 "avr32_fp_register_operand" "=f")
 5.16892 ++	(plus:SF  (neg:SF (mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "f")
 5.16893 ++                                   (match_operand:SF 2 "avr32_fp_register_operand" "f")))
 5.16894 ++                  (match_operand:SF 3 "avr32_fp_register_operand" "0")))]
 5.16895 ++  "TARGET_HARD_FLOAT"
 5.16896 ++  "fnmac.s\t%0, %1, %2"
 5.16897 ++  [(set_attr "length" "4")
 5.16898 ++   (set_attr "type" "fmul")])
 5.16899 ++
 5.16900 ++(define_peephole2
 5.16901 ++  [(set (match_operand:SF          0 "avr32_fp_register_operand" "")
 5.16902 ++	(mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "")
 5.16903 ++		 (match_operand:SF 2 "avr32_fp_register_operand" "")))
 5.16904 ++   (set (match_operand:SF          3 "avr32_fp_register_operand" "")
 5.16905 ++	(minus:SF
 5.16906 ++	 (match_dup 3)
 5.16907 ++	 (match_dup 0)))]
 5.16908 ++  "TARGET_HARD_FLOAT && peep2_reg_dead_p(2, operands[0])"
 5.16909 ++  [(set (match_dup 3)
 5.16910 ++	(plus:SF  (neg:SF (mult:SF (match_dup 1)
 5.16911 ++                                   (match_dup 2)))
 5.16912 ++                  (match_dup 3)))]
 5.16913 ++)
 5.16914 ++
 5.16915 ++
 5.16916 ++(define_insn "msubacsf3"
 5.16917 ++  [(set (match_operand:SF          0 "avr32_fp_register_operand" "=f")
 5.16918 ++	(minus:SF (mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "f")
 5.16919 ++                           (match_operand:SF 2 "avr32_fp_register_operand" "f"))
 5.16920 ++                  (match_operand:SF 3 "avr32_fp_register_operand" "0")))]
 5.16921 ++  "TARGET_HARD_FLOAT"
 5.16922 ++  "fmsc.s\t%0, %1, %2"
 5.16923 ++  [(set_attr "length" "4")
 5.16924 ++   (set_attr "type" "fmul")])
 5.16925 ++
 5.16926 ++(define_peephole2
 5.16927 ++  [(set (match_operand:SF          0 "avr32_fp_register_operand" "")
 5.16928 ++	(mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "")
 5.16929 ++		 (match_operand:SF 2 "avr32_fp_register_operand" "")))
 5.16930 ++   (set (match_operand:SF          3 "avr32_fp_register_operand" "")
 5.16931 ++	(minus:SF
 5.16932 ++	 (match_dup 0)
 5.16933 ++	 (match_dup 3)))]
 5.16934 ++  "TARGET_HARD_FLOAT && peep2_reg_dead_p(2, operands[0])"
 5.16935 ++  [(set (match_dup 3)
 5.16936 ++	(minus:SF  (mult:SF (match_dup 1)
 5.16937 ++			    (match_dup 2))
 5.16938 ++		   (match_dup 3)))]
 5.16939 ++)
 5.16940 ++
 5.16941 ++(define_insn "nmsubacsf3"
 5.16942 ++  [(set (match_operand:SF          0 "avr32_fp_register_operand" "=f")
 5.16943 ++	(minus:SF  (neg:SF (mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "f")
 5.16944 ++                                    (match_operand:SF 2 "avr32_fp_register_operand" "f")))
 5.16945 ++                   (match_operand:SF 3 "avr32_fp_register_operand" "0")))]
 5.16946 ++  "TARGET_HARD_FLOAT"
 5.16947 ++  "fnmsc.s\t%0, %1, %2"
 5.16948 ++  [(set_attr "length" "4")
 5.16949 ++   (set_attr "type" "fmul")])
 5.16950 ++
 5.16951 ++
 5.16952 ++
 5.16953 ++(define_insn "addsf3"
 5.16954 ++  [(set (match_operand:SF          0 "avr32_fp_register_operand" "=f")
 5.16955 ++	(plus:SF (match_operand:SF 1 "avr32_fp_register_operand" "f")
 5.16956 ++		 (match_operand:SF 2 "avr32_fp_register_operand" "f")))]
 5.16957 ++  "TARGET_HARD_FLOAT"
 5.16958 ++  "fadd.s\t%0, %1, %2"
 5.16959 ++  [(set_attr "length" "4")
 5.16960 ++   (set_attr "type" "fmul")])
 5.16961 ++
 5.16962 ++(define_insn "subsf3"
 5.16963 ++  [(set (match_operand:SF          0 "avr32_fp_register_operand" "=f")
 5.16964 ++	(minus:SF (match_operand:SF 1 "avr32_fp_register_operand" "f")
 5.16965 ++                  (match_operand:SF 2 "avr32_fp_register_operand" "f")))]
 5.16966 ++  "TARGET_HARD_FLOAT"
 5.16967 ++  "fsub.s\t%0, %1, %2"
 5.16968 ++  [(set_attr "length" "4")
 5.16969 ++   (set_attr "type" "fmul")])
 5.16970 ++
 5.16971 ++
 5.16972 ++(define_insn "negsf2"
 5.16973 ++  [(set (match_operand:SF          0 "avr32_fp_register_operand" "=f")
 5.16974 ++	(neg:SF (match_operand:SF 1 "avr32_fp_register_operand" "f")))]
 5.16975 ++  "TARGET_HARD_FLOAT"
 5.16976 ++  "fneg.s\t%0, %1"
 5.16977 ++  [(set_attr "length" "4")
 5.16978 ++   (set_attr "type" "fmv")])
 5.16979 ++
 5.16980 ++(define_insn "abssf2"
 5.16981 ++  [(set (match_operand:SF          0 "avr32_fp_register_operand" "=f")
 5.16982 ++	(abs:SF (match_operand:SF 1 "avr32_fp_register_operand" "f")))]
 5.16983 ++  "TARGET_HARD_FLOAT"
 5.16984 ++  "fabs.s\t%0, %1"
 5.16985 ++  [(set_attr "length" "4")
 5.16986 ++   (set_attr "type" "fmv")])
 5.16987 ++
 5.16988 ++(define_insn "truncdfsf2"
 5.16989 ++  [(set (match_operand:SF          0 "avr32_fp_register_operand" "=f")
 5.16990 ++	(float_truncate:SF
 5.16991 ++         (match_operand:DF 1 "avr32_fp_register_operand" "f")))]
 5.16992 ++  "TARGET_HARD_FLOAT"
 5.16993 ++  "fcastd.s\t%0, %1"
 5.16994 ++  [(set_attr "length" "4")
 5.16995 ++   (set_attr "type" "fcast")])
 5.16996 ++
 5.16997 ++(define_insn "extendsfdf2"
 5.16998 ++  [(set (match_operand:DF          0 "avr32_fp_register_operand" "=f")
 5.16999 ++	(float_extend:DF
 5.17000 ++         (match_operand:SF 1 "avr32_fp_register_operand" "f")))]
 5.17001 ++  "TARGET_HARD_FLOAT"
 5.17002 ++  "fcasts.d\t%0, %1"
 5.17003 ++  [(set_attr "length" "4")
 5.17004 ++   (set_attr "type" "fcast")])
 5.17005 ++
 5.17006 ++(define_insn "muldf3"
 5.17007 ++  [(set (match_operand:DF          0 "avr32_fp_register_operand" "=f")
 5.17008 ++	(mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "f")
 5.17009 ++		 (match_operand:DF 2 "avr32_fp_register_operand" "f")))]
 5.17010 ++  "TARGET_HARD_FLOAT"
 5.17011 ++  "fmul.d\t%0, %1, %2"
 5.17012 ++  [(set_attr "length" "4")
 5.17013 ++   (set_attr "type" "fmul")])
 5.17014 ++
 5.17015 ++(define_insn "nmuldf3"
 5.17016 ++  [(set (match_operand:DF          0 "avr32_fp_register_operand" "=f")
 5.17017 ++	(neg:DF (mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "f")
 5.17018 ++                         (match_operand:DF 2 "avr32_fp_register_operand" "f"))))]
 5.17019 ++  "TARGET_HARD_FLOAT"
 5.17020 ++  "fnmul.d\t%0, %1, %2"
 5.17021 ++  [(set_attr "length" "4")
 5.17022 ++   (set_attr "type" "fmul")])
 5.17023 ++
 5.17024 ++(define_peephole2
 5.17025 ++  [(set (match_operand:DF          0 "avr32_fp_register_operand" "")
 5.17026 ++	(mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "")
 5.17027 ++		 (match_operand:DF 2 "avr32_fp_register_operand" "")))
 5.17028 ++   (set (match_operand:DF          3 "avr32_fp_register_operand" "")
 5.17029 ++	(neg:DF (match_dup 0)))]
 5.17030 ++  "TARGET_HARD_FLOAT &&
 5.17031 ++   (peep2_reg_dead_p(2, operands[0]) || (REGNO(operands[3]) == REGNO(operands[0])))"
 5.17032 ++  [(set (match_dup 3)
 5.17033 ++	(neg:DF (mult:DF (match_dup 1)
 5.17034 ++			 (match_dup 2))))]
 5.17035 ++)
 5.17036 ++
 5.17037 ++(define_insn "macdf3"
 5.17038 ++  [(set (match_operand:DF          0 "avr32_fp_register_operand" "=f")
 5.17039 ++	(plus:DF (mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "f")
 5.17040 ++                          (match_operand:DF 2 "avr32_fp_register_operand" "f"))
 5.17041 ++                 (match_operand:DF 3 "avr32_fp_register_operand" "0")))]
 5.17042 ++  "TARGET_HARD_FLOAT"
 5.17043 ++  "fmac.d\t%0, %1, %2"
 5.17044 ++  [(set_attr "length" "4")
 5.17045 ++   (set_attr "type" "fmul")])
 5.17046 ++
 5.17047 ++(define_insn "msubacdf3"
 5.17048 ++  [(set (match_operand:DF          0 "avr32_fp_register_operand" "=f")
 5.17049 ++	(minus:DF (mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "f")
 5.17050 ++                           (match_operand:DF 2 "avr32_fp_register_operand" "f"))
 5.17051 ++                  (match_operand:DF 3 "avr32_fp_register_operand" "0")))]
 5.17052 ++  "TARGET_HARD_FLOAT"
 5.17053 ++  "fmsc.d\t%0, %1, %2"
 5.17054 ++  [(set_attr "length" "4")
 5.17055 ++   (set_attr "type" "fmul")])
 5.17056 ++
 5.17057 ++(define_peephole2
 5.17058 ++  [(set (match_operand:DF          0 "avr32_fp_register_operand" "")
 5.17059 ++	(mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "")
 5.17060 ++		 (match_operand:DF 2 "avr32_fp_register_operand" "")))
 5.17061 ++   (set (match_operand:DF          3 "avr32_fp_register_operand" "")
 5.17062 ++	(minus:DF
 5.17063 ++	 (match_dup 0)
 5.17064 ++	 (match_dup 3)))]
 5.17065 ++  "TARGET_HARD_FLOAT && peep2_reg_dead_p(2, operands[0])"
 5.17066 ++  [(set (match_dup 3)
 5.17067 ++	(minus:DF  (mult:DF (match_dup 1)
 5.17068 ++			    (match_dup 2))
 5.17069 ++		   (match_dup 3)))]
 5.17070 ++  )
 5.17071 ++
 5.17072 ++(define_insn "nmsubacdf3"
 5.17073 ++  [(set (match_operand:DF          0 "avr32_fp_register_operand" "=f")
 5.17074 ++	(minus:DF  (neg:DF (mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "f")
 5.17075 ++                                    (match_operand:DF 2 "avr32_fp_register_operand" "f")))
 5.17076 ++                   (match_operand:DF 3 "avr32_fp_register_operand" "0")))]
 5.17077 ++  "TARGET_HARD_FLOAT"
 5.17078 ++  "fnmsc.d\t%0, %1, %2"
 5.17079 ++  [(set_attr "length" "4")
 5.17080 ++   (set_attr "type" "fmul")])
 5.17081 ++
 5.17082 ++(define_insn "nmacdf3"
 5.17083 ++  [(set (match_operand:DF          0 "avr32_fp_register_operand" "=f")
 5.17084 ++	(plus:DF  (neg:DF (mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "f")
 5.17085 ++                                   (match_operand:DF 2 "avr32_fp_register_operand" "f")))
 5.17086 ++                  (match_operand:DF 3 "avr32_fp_register_operand" "0")))]
 5.17087 ++  "TARGET_HARD_FLOAT"
 5.17088 ++  "fnmac.d\t%0, %1, %2"
 5.17089 ++  [(set_attr "length" "4")
 5.17090 ++   (set_attr "type" "fmul")])
 5.17091 ++
 5.17092 ++(define_peephole2
 5.17093 ++  [(set (match_operand:DF          0 "avr32_fp_register_operand" "")
 5.17094 ++	(mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "")
 5.17095 ++		 (match_operand:DF 2 "avr32_fp_register_operand" "")))
 5.17096 ++   (set (match_operand:DF          3 "avr32_fp_register_operand" "")
 5.17097 ++	(minus:DF
 5.17098 ++	 (match_dup 3)
 5.17099 ++	 (match_dup 0)))]
 5.17100 ++  "TARGET_HARD_FLOAT && peep2_reg_dead_p(2, operands[0])"
 5.17101 ++  [(set (match_dup 3)
 5.17102 ++	(plus:DF  (neg:DF (mult:DF (match_dup 1)
 5.17103 ++                                   (match_dup 2)))
 5.17104 ++                  (match_dup 3)))]
 5.17105 ++)
 5.17106 ++
 5.17107 ++(define_insn "adddf3"
 5.17108 ++  [(set (match_operand:DF          0 "avr32_fp_register_operand" "=f")
 5.17109 ++	(plus:DF (match_operand:DF 1 "avr32_fp_register_operand" "f")
 5.17110 ++		 (match_operand:DF 2 "avr32_fp_register_operand" "f")))]
 5.17111 ++  "TARGET_HARD_FLOAT"
 5.17112 ++  "fadd.d\t%0, %1, %2"
 5.17113 ++  [(set_attr "length" "4")
 5.17114 ++   (set_attr "type" "fmul")])
 5.17115 ++
 5.17116 ++(define_insn "subdf3"
 5.17117 ++  [(set (match_operand:DF          0 "avr32_fp_register_operand" "=f")
 5.17118 ++	(minus:DF (match_operand:DF 1 "avr32_fp_register_operand" "f")
 5.17119 ++                  (match_operand:DF 2 "avr32_fp_register_operand" "f")))]
 5.17120 ++  "TARGET_HARD_FLOAT"
 5.17121 ++  "fsub.d\t%0, %1, %2"
 5.17122 ++  [(set_attr "length" "4")
 5.17123 ++   (set_attr "type" "fmul")])
 5.17124 ++
 5.17125 ++(define_insn "negdf2"
 5.17126 ++  [(set (match_operand:DF          0 "avr32_fp_register_operand" "=f")
 5.17127 ++	(neg:DF (match_operand:DF 1 "avr32_fp_register_operand" "f")))]
 5.17128 ++  "TARGET_HARD_FLOAT"
 5.17129 ++  "fneg.d\t%0, %1"
 5.17130 ++  [(set_attr "length" "4")
 5.17131 ++   (set_attr "type" "fmv")])
 5.17132 ++
 5.17133 ++(define_insn "absdf2"
 5.17134 ++  [(set (match_operand:DF          0 "avr32_fp_register_operand" "=f")
 5.17135 ++	(abs:DF (match_operand:DF 1 "avr32_fp_register_operand" "f")))]
 5.17136 ++  "TARGET_HARD_FLOAT"
 5.17137 ++  "fabs.d\t%0, %1"
 5.17138 ++  [(set_attr "length" "4")
 5.17139 ++   (set_attr "type" "fmv")])
 5.17140 ++
 5.17141 ++
 5.17142 ++(define_expand "cmpdf"
 5.17143 ++  [(set (cc0)
 5.17144 ++	(compare:DF
 5.17145 ++	 (match_operand:DF 0 "general_operand" "")
 5.17146 ++	 (match_operand:DF 1 "general_operand"  "")))]
 5.17147 ++  "TARGET_HARD_FLOAT"
 5.17148 ++  "{
 5.17149 ++   rtx tmpreg;
 5.17150 ++   if ( !REG_P(operands[0]) )
 5.17151 ++     operands[0] = force_reg(DFmode, operands[0]);
 5.17152 ++
 5.17153 ++   if ( !REG_P(operands[1]) )
 5.17154 ++     operands[1] = force_reg(DFmode, operands[1]);
 5.17155 ++
 5.17156 ++   avr32_compare_op0 = operands[0];
 5.17157 ++   avr32_compare_op1 = operands[1];
 5.17158 ++
 5.17159 ++   emit_insn(gen_cmpdf_internal(operands[0], operands[1]));
 5.17160 ++
 5.17161 ++   tmpreg = gen_reg_rtx(SImode);
 5.17162 ++   emit_insn(gen_fpcc_to_reg(tmpreg));
 5.17163 ++   emit_insn(gen_reg_to_cc(tmpreg));
 5.17164 ++
 5.17165 ++   DONE;
 5.17166 ++  }"
 5.17167 ++)
 5.17168 ++
 5.17169 ++(define_insn "cmpdf_internal"
 5.17170 ++  [(set (reg:CC FPCC_REGNUM)
 5.17171 ++	(compare:CC
 5.17172 ++	 (match_operand:DF 0 "avr32_fp_register_operand" "f")
 5.17173 ++	 (match_operand:DF 1 "avr32_fp_register_operand" "f")))]
 5.17174 ++  "TARGET_HARD_FLOAT"
 5.17175 ++  {
 5.17176 ++   if (!rtx_equal_p(cc_prev_status.mdep.fpvalue, SET_SRC(PATTERN (insn))) )
 5.17177 ++      return "fcmp.d\t%0, %1";
 5.17178 ++   return "";
 5.17179 ++  }
 5.17180 ++  [(set_attr "length" "4")
 5.17181 ++   (set_attr "type" "fcmpd")
 5.17182 ++   (set_attr "cc" "fpcompare")])
 5.17183 ++
 5.17184 ++(define_expand "cmpsf"
 5.17185 ++  [(set (cc0)
 5.17186 ++	(compare:SF
 5.17187 ++	 (match_operand:SF 0 "general_operand" "")
 5.17188 ++	 (match_operand:SF 1 "general_operand"  "")))]
 5.17189 ++  "TARGET_HARD_FLOAT"
 5.17190 ++  "{
 5.17191 ++   rtx tmpreg;
 5.17192 ++   if ( !REG_P(operands[0]) )
 5.17193 ++     operands[0] = force_reg(SFmode, operands[0]);
 5.17194 ++
 5.17195 ++   if ( !REG_P(operands[1]) )
 5.17196 ++     operands[1] = force_reg(SFmode, operands[1]);
 5.17197 ++
 5.17198 ++   avr32_compare_op0 = operands[0];
 5.17199 ++   avr32_compare_op1 = operands[1];
 5.17200 ++
 5.17201 ++   emit_insn(gen_cmpsf_internal(operands[0], operands[1]));
 5.17202 ++
 5.17203 ++   tmpreg = gen_reg_rtx(SImode);
 5.17204 ++   emit_insn(gen_fpcc_to_reg(tmpreg));
 5.17205 ++   emit_insn(gen_reg_to_cc(tmpreg));
 5.17206 ++
 5.17207 ++   DONE;
 5.17208 ++  }"
 5.17209 ++)
 5.17210 ++
 5.17211 ++(define_insn "cmpsf_internal"
 5.17212 ++  [(set (reg:CC FPCC_REGNUM)
 5.17213 ++	(compare:CC
 5.17214 ++	 (match_operand:SF 0 "avr32_fp_register_operand" "f")
 5.17215 ++	 (match_operand:SF 1 "avr32_fp_register_operand" "f")))]
 5.17216 ++  "TARGET_HARD_FLOAT"
 5.17217 ++  {
 5.17218 ++   if (!rtx_equal_p(cc_prev_status.mdep.fpvalue, SET_SRC(PATTERN (insn))) )
 5.17219 ++      return "fcmp.s\t%0, %1";
 5.17220 ++   return "";
 5.17221 ++  }
 5.17222 ++  [(set_attr "length" "4")
 5.17223 ++   (set_attr "type" "fcmps")
 5.17224 ++   (set_attr "cc" "fpcompare")])
 5.17225 ++
 5.17226 ++(define_insn "fpcc_to_reg"
 5.17227 ++  [(set (match_operand:SI 0 "register_operand" "=r")
 5.17228 ++	(unspec:SI [(reg:CC FPCC_REGNUM)]
 5.17229 ++		   UNSPEC_FPCC_TO_REG))]
 5.17230 ++  "TARGET_HARD_FLOAT"
 5.17231 ++  "fmov.s\t%0, fsr"
 5.17232 ++  [(set_attr "length" "4")
 5.17233 ++   (set_attr "type" "fmvcpu")])
 5.17234 ++
 5.17235 ++(define_insn "reg_to_cc"
 5.17236 ++  [(set (cc0)
 5.17237 ++	(unspec:SI [(match_operand:SI 0 "register_operand" "r")]
 5.17238 ++		   UNSPEC_REG_TO_CC))]
 5.17239 ++  "TARGET_HARD_FLOAT"
 5.17240 ++  "musfr\t%0"
 5.17241 ++  [(set_attr "length" "2")
 5.17242 ++   (set_attr "type" "alu")
 5.17243 ++   (set_attr "cc" "from_fpcc")])
 5.17244 ++
 5.17245 ++(define_insn "stm_fp"
 5.17246 ++  [(unspec [(match_operand 0 "register_operand" "r")
 5.17247 ++            (match_operand 1 "const_int_operand" "")
 5.17248 ++            (match_operand 2 "const_int_operand" "")]
 5.17249 ++	   UNSPEC_STMFP)]
 5.17250 ++  "TARGET_HARD_FLOAT"
 5.17251 ++  {
 5.17252 ++    int cop_reglist = INTVAL(operands[1]);
 5.17253 ++
 5.17254 ++    if (INTVAL(operands[2]) != 0)
 5.17255 ++      return "stcm.w\tcp0, --%0, %C1";
 5.17256 ++    else
 5.17257 ++      return "stcm.w\tcp0, %0, %C1";
 5.17258 ++
 5.17259 ++    if ( cop_reglist & ~0xff ){
 5.17260 ++      operands[1] = GEN_INT(cop_reglist & ~0xff);
 5.17261 ++      if (INTVAL(operands[2]) != 0)
 5.17262 ++         return "stcm.d\tcp0, --%0, %D1";
 5.17263 ++      else
 5.17264 ++         return "stcm.d\tcp0, %0, %D1";
 5.17265 ++    }
 5.17266 ++  }
 5.17267 ++  [(set_attr "type" "fstm")
 5.17268 ++   (set_attr "length" "4")
 5.17269 ++   (set_attr "cc" "none")])
 5.17270 +--- /dev/null
 5.17271 ++++ b/gcc/config/avr32/lib1funcs.S
 5.17272 +@@ -0,0 +1,2874 @@
 5.17273 ++/* Macro for moving immediate value to register. */	
 5.17274 ++.macro mov_imm	reg, imm
 5.17275 ++.if	(((\imm & 0xfffff) == \imm) || ((\imm | 0xfff00000) == \imm))
 5.17276 ++	mov	\reg, \imm
 5.17277 ++#if __AVR32_UC__ >= 2
 5.17278 ++.elseif	((\imm & 0xffff) == 0)
 5.17279 ++	movh	\reg, hi(\imm)
 5.17280 ++
 5.17281 ++#endif
 5.17282 ++.else
 5.17283 ++	mov	\reg, lo(\imm)
 5.17284 ++	orh	\reg, hi(\imm)
 5.17285 ++.endif
 5.17286 ++.endm
 5.17287 ++	
 5.17288 ++	
 5.17289 ++	 
 5.17290 ++/* Adjust the unpacked double number if it is a subnormal number.
 5.17291 ++   The exponent and mantissa pair are stored
 5.17292 ++   in [mant_hi,mant_lo] and [exp]. A register with the correct sign bit in
 5.17293 ++   the MSB is passed in [sign]. Needs two scratch
 5.17294 ++   registers [scratch1] and [scratch2]. An adjusted and packed double float
 5.17295 ++   is present in [mant_hi,mant_lo] after macro has executed */
 5.17296 ++.macro  adjust_subnormal_df     exp, mant_lo, mant_hi, sign, scratch1, scratch2 
 5.17297 ++        /* We have an exponent which is <=0 indicating a subnormal number
 5.17298 ++           As it should be stored as if the exponent was 1 (although the
 5.17299 ++           exponent field is all zeros to indicate a subnormal number)
 5.17300 ++           we have to shift down the mantissa to its correct position. */
 5.17301 ++        neg     \exp
 5.17302 ++        sub     \exp,-1                   /* amount to shift down */
 5.17303 ++        cp.w    \exp,54
 5.17304 ++        brlo    50f                     /* if more than 53 shift steps, the
 5.17305 ++                                           entire mantissa will disappear
 5.17306 ++                                           without any rounding to occur */
 5.17307 ++        mov     \mant_hi, 0
 5.17308 ++        mov     \mant_lo, 0
 5.17309 ++        rjmp    52f
 5.17310 ++50:     
 5.17311 ++        sub     \exp,-10                /* do the shift to position the
 5.17312 ++                                           mantissa at the same time
 5.17313 ++                                           note! this does not include the
 5.17314 ++                                           final 1 step shift to add the sign */
 5.17315 ++ 
 5.17316 ++        /* when shifting, save all shifted out bits in [scratch2]. we may need to
 5.17317 ++           look at them to make correct rounding. */
 5.17318 ++ 
 5.17319 ++        rsub    \scratch1,\exp,32       /* get inverted shift count */
 5.17320 ++        cp.w    \exp,32                 /* handle shifts >= 32 separately */
 5.17321 ++        brhs    51f
 5.17322 ++ 
 5.17323 ++        /* small (<32) shift amount, both words are part of the shift */
 5.17324 ++        lsl     \scratch2,\mant_lo,\scratch1               /* save bits to shift out from lsw*/
 5.17325 ++        lsl     \scratch1,\mant_hi,\scratch1               /* get bits from msw destined for lsw*/
 5.17326 ++        lsr     \mant_lo,\mant_lo,\exp                     /* shift down lsw */
 5.17327 ++        lsr     \mant_hi,\mant_hi,\exp                     /* shift down msw */
 5.17328 ++        or      \mant_hi,\scratch1                         /* add bits from msw with prepared lsw */
 5.17329 ++        rjmp    50f
 5.17330 ++ 
 5.17331 ++        /* large (>=32) shift amount, only lsw will have bits left after shift.
 5.17332 ++           note that shift operations will use ((shift count) mod 32) so
 5.17333 ++           we do not need to subtract 32 from shift count. */
 5.17334 ++51:
 5.17335 ++        lsl     \scratch2,\mant_hi,\scratch1               /* save bits to shift out from msw */
 5.17336 ++        or      \scratch2,\mant_lo                         /* also save all bits from lsw */
 5.17337 ++        mov     \mant_lo,\mant_hi                          /* msw -> lsw (i.e. "shift 32 first") */
 5.17338 ++        mov     \mant_hi,0                                 /* clear msw */
 5.17339 ++        lsr     \mant_lo,\mant_lo,\exp                     /* make rest of shift inside lsw */
 5.17340 ++ 
 5.17341 ++50:
 5.17342 ++        /* result is almost ready to return, except that least significant bit
 5.17343 ++           and the part we already shifted out may cause the result to be
 5.17344 ++           rounded */
 5.17345 ++        bld     \mant_lo,0                   /* get bit to be shifted out */
 5.17346 ++        brcc    51f                          /* if bit was 0, no rounding */
 5.17347 ++ 
 5.17348 ++        /* msb of part to remove is 1, so rounding depends on rest of bits */
 5.17349 ++        tst     \scratch2,\scratch2                   /* get shifted out tail */
 5.17350 ++        brne    50f     /* if rest > 0, do round */
 5.17351 ++        bld     \mant_lo,1                   /* we have to look at lsb in result */
 5.17352 ++        brcc    51f   /* if lsb is 0, don't round */
 5.17353 ++ 
 5.17354 ++50:
 5.17355 ++        /* subnormal result requires rounding
 5.17356 ++           rounding may cause subnormal to become smallest normal number
 5.17357 ++           luckily, smallest normal number has exactly the representation
 5.17358 ++           we got by rippling a one bit up from mantissa into exponent field. */
 5.17359 ++        sub     \mant_lo,-1
 5.17360 ++        subcc   \mant_hi,-1
 5.17361 ++ 
 5.17362 ++51:
 5.17363 ++        /* shift and return packed double with correct sign */
 5.17364 ++        rol     \sign
 5.17365 ++        ror     \mant_hi
 5.17366 ++        ror     \mant_lo        
 5.17367 ++52:     
 5.17368 ++.endm
 5.17369 ++ 
 5.17370 ++ 
 5.17371 ++/* Adjust subnormal single float number with exponent [exp]
 5.17372 ++   and mantissa [mant] and round.    */
 5.17373 ++.macro  adjust_subnormal_sf     sf, exp, mant, sign, scratch
 5.17374 ++        /* subnormal number */
 5.17375 ++        rsub    \exp,\exp, 1            /* shift amount */
 5.17376 ++        cp.w    \exp, 25
 5.17377 ++        movhs   \mant, 0                
 5.17378 ++        brhs    90f                     /* Return zero */
 5.17379 ++        rsub    \scratch, \exp, 32
 5.17380 ++        lsl     \scratch, \mant,\scratch/* Check if there are any bits set
 5.17381 ++                                           in the bits discarded in the mantissa */
 5.17382 ++        srne    \scratch                /* If so set the lsb of the shifted mantissa */ 
 5.17383 ++        lsr     \mant,\mant,\exp        /* Shift the mantissa */
 5.17384 ++        or      \mant, \scratch         /* Round lsb if any bits were shifted out  */
 5.17385 ++        /* Rounding :   For explaination, see round_sf. */
 5.17386 ++        mov     \scratch, 0x7f          /* Set rounding constant */
 5.17387 ++        bld     \mant, 8                
 5.17388 ++        subeq   \scratch, -1            /* For odd numbers use rounding constant 0x80 */
 5.17389 ++        add     \mant, \scratch         /* Add rounding constant to mantissa */
 5.17390 ++        /* We can't overflow because mantissa is at least shifted one position
 5.17391 ++           to the right so the implicit bit is zero. We can however get the implicit
 5.17392 ++           bit set after rounding which means that we have the lowest normal number
 5.17393 ++           but this is ok since this bit has the same position as the LSB of the
 5.17394 ++           exponent */
 5.17395 ++        lsr     \sf, \mant, 7
 5.17396 ++        /* Rotate in sign */
 5.17397 ++        lsl     \sign, 1
 5.17398 ++        ror     \sf
 5.17399 ++90:     
 5.17400 ++.endm
 5.17401 ++ 
 5.17402 ++ 
 5.17403 ++/* Round the unpacked df number with exponent [exp] and
 5.17404 ++   mantissa [mant_hi, mant_lo]. Uses scratch register
 5.17405 ++   [scratch] */
 5.17406 ++.macro  round_df        exp, mant_lo, mant_hi, scratch
 5.17407 ++        mov     \scratch, 0x3ff         /* Rounding constant */
 5.17408 ++        bld     \mant_lo,11             /* Check if lsb in the final result is  
 5.17409 ++                                           set */
 5.17410 ++        subeq   \scratch, -1            /* Adjust rounding constant to 0x400
 5.17411 ++                                           if rounding 0.5 upwards */   
 5.17412 ++        add     \mant_lo, \scratch      /* Round */
 5.17413 ++        acr     \mant_hi                /* If overflowing we know that
 5.17414 ++                                           we have all zeros in the bits not
 5.17415 ++                                           scaled out so we can leave them
 5.17416 ++                                           but we must increase the exponent with
 5.17417 ++                                           two since we had an implicit bit
 5.17418 ++                                           which is lost + the extra overflow bit */
 5.17419 ++        subcs   \exp, -2                /* Update exponent */
 5.17420 ++.endm           
 5.17421 ++ 
 5.17422 ++/* Round single float number stored in [mant] and [exp] */
 5.17423 ++.macro  round_sf        exp, mant, scratch
 5.17424 ++        /* Round:       
 5.17425 ++                For 0.5 we round to nearest even integer
 5.17426 ++                for all other cases we round to nearest integer.
 5.17427 ++                This means that if the digit left of the "point" (.)
 5.17428 ++                is 1 we can add 0x80 to the mantissa since the
 5.17429 ++                corner case 0x180 will round up to 0x200. If the
 5.17430 ++                digit left of the "point" is 0 we will have to
 5.17431 ++                add 0x7f since this will give 0xff and hence a
 5.17432 ++                truncation/rounding downwards for the corner
 5.17433 ++                case when the 9 lowest bits are 0x080 */
 5.17434 ++        mov     \scratch, 0x7f  /* Set rounding constant */
 5.17435 ++        /* Check if the mantissa is even or odd */
 5.17436 ++        bld     \mant, 8
 5.17437 ++        subeq   \scratch, -1    /* Rounding constant should be 0x80 */
 5.17438 ++        add     \mant, \scratch
 5.17439 ++        subcs   \exp, -2        /* Adjust exponent if we overflowed */          
 5.17440 ++.endm
 5.17441 ++ 
 5.17442 ++                 
 5.17443 ++ 
 5.17444 ++/* Pack a single float number stored in [mant] and [exp]
 5.17445 ++   into a single float number in [sf]  */
 5.17446 ++.macro  pack_sf sf, exp, mant
 5.17447 ++        bld     \mant,31                  /* implicit bit to z */
 5.17448 ++        subne   \exp,1                   /* if subnormal (implicit bit 0)
 5.17449 ++                                          adjust exponent to storage format */
 5.17450 ++        
 5.17451 ++        lsr     \sf, \mant, 7
 5.17452 ++        bfins   \sf, \exp, 24, 8
 5.17453 ++.endm   
 5.17454 ++ 
 5.17455 ++/* Pack exponent [exp] and mantissa [mant_hi, mant_lo]
 5.17456 ++   into [df_hi, df_lo].  [df_hi] is shifted
 5.17457 ++   one bit up so the sign bit can be shifted into it */
 5.17458 ++        
 5.17459 ++.macro  pack_df         exp, mant_lo, mant_hi, df_lo, df_hi
 5.17460 ++        bld     \mant_hi,31                  /* implicit bit to z */
 5.17461 ++        subne   \exp,1                   /* if subnormal (implicit bit 0)
 5.17462 ++                                          adjust exponent to storage format */
 5.17463 ++ 
 5.17464 ++        lsr     \mant_lo,11                  /* shift back lsw */
 5.17465 ++        or      \df_lo,\mant_lo,\mant_hi<<21          /* combine with low bits from msw */
 5.17466 ++        lsl     \mant_hi,1                   /* get rid of implicit bit */
 5.17467 ++        lsr     \mant_hi,11                  /* shift back msw except for one step*/
 5.17468 ++        or      \df_hi,\mant_hi,\exp<<21          /* combine msw with exponent */
 5.17469 ++.endm
 5.17470 ++ 
 5.17471 ++/* Normalize single float number stored in [mant] and [exp]
 5.17472 ++   using scratch register [scratch] */
 5.17473 ++.macro  normalize_sf    exp, mant, scratch
 5.17474 ++        /* Adjust exponent and mantissa */
 5.17475 ++        clz     \scratch, \mant
 5.17476 ++        sub     \exp, \scratch
 5.17477 ++        lsl     \mant, \mant, \scratch
 5.17478 ++.endm
 5.17479 ++ 
 5.17480 ++/* Normalize the exponent and mantissa pair stored
 5.17481 ++   in [mant_hi,mant_lo] and [exp]. Needs two scratch
 5.17482 ++   registers [scratch1] and [scratch2]. */
 5.17483 ++.macro  normalize_df            exp, mant_lo, mant_hi, scratch1, scratch2
 5.17484 ++        clz     \scratch1,\mant_hi     /* Check if we have zeros in high bits */
 5.17485 ++        breq    80f                     /* No need for scaling if no zeros in high bits */
 5.17486 ++        brcs    81f                     /* Check for all zeros */           
 5.17487 ++ 
 5.17488 ++        /* shift amount is smaller than 32, and involves both msw and lsw*/
 5.17489 ++        rsub    \scratch2,\scratch1,32  /* shift mantissa */
 5.17490 ++        lsl     \mant_hi,\mant_hi,\scratch1
 5.17491 ++        lsr     \scratch2,\mant_lo,\scratch2
 5.17492 ++        or      \mant_hi,\scratch2
 5.17493 ++        lsl     \mant_lo,\mant_lo,\scratch1
 5.17494 ++        sub     \exp,\scratch1          /* adjust exponent */
 5.17495 ++        rjmp    80f                     /* Finished */  
 5.17496 ++81:
 5.17497 ++        /* shift amount is greater than 32 */
 5.17498 ++        clz     \scratch1,\mant_lo      /* shift mantissa */
 5.17499 ++        movcs   \scratch1, 0
 5.17500 ++        subcc   \scratch1,-32
 5.17501 ++        lsl     \mant_hi,\mant_lo,\scratch1
 5.17502 ++        mov     \mant_lo,0
 5.17503 ++        sub     \exp,\scratch1          /* adjust exponent */
 5.17504 ++80:     
 5.17505 ++.endm
 5.17506 ++        
 5.17507 ++ 
 5.17508 ++/* Fast but approximate multiply of two 64-bit numbers to give a 64 bit result.
 5.17509 ++   The multiplication of [al]x[bl] is discarded.
 5.17510 ++   Operands in [ah], [al], [bh], [bl].
 5.17511 ++   Scratch registers in [sh], [sl].
 5.17512 ++   Returns results in registers [rh], [rl].*/
 5.17513 ++.macro  mul_approx_df   ah, al, bh, bl, rh, rl, sh, sl
 5.17514 ++        mulu.d  \sl, \ah, \bl
 5.17515 ++        macu.d  \sl, \al, \bh
 5.17516 ++        mulu.d  \rl, \ah, \bh
 5.17517 ++        add     \rl, \sh
 5.17518 ++        acr     \rh
 5.17519 ++.endm           
 5.17520 ++ 
 5.17521 ++ 
 5.17522 ++        
 5.17523 ++#if defined(L_avr32_f64_mul) || defined(L_avr32_f64_mul_fast)
 5.17524 ++        .align  2
 5.17525 ++#if defined(L_avr32_f64_mul)
 5.17526 ++        .global __avr32_f64_mul
 5.17527 ++        .type  __avr32_f64_mul,@function
 5.17528 ++__avr32_f64_mul:
 5.17529 ++#else 
 5.17530 ++        .global __avr32_f64_mul_fast
 5.17531 ++        .type  __avr32_f64_mul_fast,@function
 5.17532 ++__avr32_f64_mul_fast:
 5.17533 ++#endif                
 5.17534 ++        or      r12, r10, r11 << 1 
 5.17535 ++        breq   __avr32_f64_mul_op1_zero        
 5.17536 ++
 5.17537 ++#if defined(L_avr32_f64_mul)
 5.17538 ++	pushm	r4-r7, lr
 5.17539 ++#else
 5.17540 ++        stm     --sp, r5,r6,r7,lr       
 5.17541 ++#endif
 5.17542 ++
 5.17543 ++#define AVR32_F64_MUL_OP1_INT_BITS 1
 5.17544 ++#define AVR32_F64_MUL_OP2_INT_BITS 10
 5.17545 ++#define AVR32_F64_MUL_RES_INT_BITS 11
 5.17546 ++	
 5.17547 ++        /* op1 in {r11,r10}*/
 5.17548 ++        /* op2 in {r9,r8}*/
 5.17549 ++        eor     lr, r11, r9             /* MSB(lr) = Sign(op1) ^ Sign(op2) */
 5.17550 ++ 
 5.17551 ++        /* Unpack op1 to 1.63 format*/        
 5.17552 ++        /* exp: r7 */
 5.17553 ++        /* sf:  r11, r10 */
 5.17554 ++	bfextu	r7, r11, 20, 11 /* Extract exponent */
 5.17555 ++
 5.17556 ++	mov	r5, 1
 5.17557 ++
 5.17558 ++        /* Check if normalization is needed */
 5.17559 ++        breq    __avr32_f64_mul_op1_subnormal /*If number is subnormal, normalize it */ 
 5.17560 ++
 5.17561 ++        lsl     r11, (12-AVR32_F64_MUL_OP1_INT_BITS-1) /* Extract mantissa, leave room for implicit bit */ 
 5.17562 ++        or      r11, r11, r10>>(32-(12-AVR32_F64_MUL_OP1_INT_BITS-1))
 5.17563 ++        lsl     r10, (12-AVR32_F64_MUL_OP1_INT_BITS-1)
 5.17564 ++	bfins	r11, r5, 32 - (1 + AVR32_F64_MUL_OP1_INT_BITS), 1 + AVR32_F64_MUL_OP1_INT_BITS /* Insert implicit bit */
 5.17565 ++
 5.17566 ++
 5.17567 ++22:     
 5.17568 ++        /* Unpack op2 to 10.54 format */
 5.17569 ++        /* exp: r6 */
 5.17570 ++        /* sf:  r9, r8 */
 5.17571 ++	bfextu	r6, r9, 20, 11 /* Extract exponent */
 5.17572 ++
 5.17573 ++        /* Check if normalization is needed */
 5.17574 ++        breq    __avr32_f64_mul_op2_subnormal /*If number is subnormal, normalize it */ 
 5.17575 ++
 5.17576 ++	lsl	r8, 1 /* Extract mantissa, leave room for implicit bit */
 5.17577 ++	rol	r9	
 5.17578 ++	bfins	r9, r5, 32 - (1 + AVR32_F64_MUL_OP2_INT_BITS), 1 + AVR32_F64_MUL_OP2_INT_BITS /* Insert implicit bit */
 5.17579 ++
 5.17580 ++23:     
 5.17581 ++ 
 5.17582 ++        /* Check if any operands are NaN or INF */
 5.17583 ++        cp      r7, 0x7ff
 5.17584 ++        breq    __avr32_f64_mul_op_nan_or_inf /* Check op1 for NaN or Inf */
 5.17585 ++        cp      r6, 0x7ff
 5.17586 ++        breq    __avr32_f64_mul_op_nan_or_inf  /* Check op2 for NaN or Inf */
 5.17587 ++ 
 5.17588 ++ 
 5.17589 ++        /* Calculate new exponent in r12*/
 5.17590 ++        add     r12, r7, r6
 5.17591 ++        sub     r12, (1023-1)
 5.17592 ++ 
 5.17593 ++#if defined(L_avr32_f64_mul)
 5.17594 ++	/* Do the multiplication.
 5.17595 ++           Place result in [r11, r10, r7, r6]. The result is in 11.117 format.  */
 5.17596 ++        mulu.d  r4, r11, r8
 5.17597 ++        macu.d  r4, r10, r9
 5.17598 ++        mulu.d  r6, r10, r8
 5.17599 ++        mulu.d  r10, r11, r9
 5.17600 ++	add	r7, r4
 5.17601 ++	adc	r10, r10, r5	
 5.17602 ++	acr	r11
 5.17603 ++#else
 5.17604 ++	/* Do the multiplication using approximate calculation. discard the al x bl
 5.17605 ++	   calculation.
 5.17606 ++           Place result in [r11, r10, r7]. The result is in 11.85 format.  */
 5.17607 ++
 5.17608 ++        /* Do the multiplication using approximate calculation.
 5.17609 ++         Place result in r11, r10. Use r7, r6 as scratch registers */
 5.17610 ++        mulu.d  r6, r11, r8
 5.17611 ++        macu.d  r6, r10, r9
 5.17612 ++        mulu.d  r10, r11, r9
 5.17613 ++        add     r10, r7
 5.17614 ++        acr     r11
 5.17615 ++#endif 
 5.17616 ++        /* Adjust exponent and mantissa */
 5.17617 ++        /* [r12]:exp, [r11, r10]:mant [r7, r6]:sticky bits */
 5.17618 ++        /* Mantissa may be of the format 00000000000.0xxx or 00000000000.1xxx. */
 5.17619 ++        /* In the first case, shift one pos to left.*/
 5.17620 ++        bld     r11, 32-AVR32_F64_MUL_RES_INT_BITS-1
 5.17621 ++	breq	0f	
 5.17622 ++	lsl	r7, 1
 5.17623 ++	rol	r10
 5.17624 ++	rol	r11
 5.17625 ++	sub	r12, 1
 5.17626 ++0:	
 5.17627 ++        cp      r12, 0  
 5.17628 ++        brle    __avr32_f64_mul_res_subnormal /*Result was subnormal.*/
 5.17629 ++ 
 5.17630 ++        /* Check for Inf. */
 5.17631 ++        cp.w    r12, 0x7ff
 5.17632 ++        brge    __avr32_f64_mul_res_inf
 5.17633 ++
 5.17634 ++	/* Insert exponent. */
 5.17635 ++	bfins	r11, r12, 20, 11  
 5.17636 ++
 5.17637 ++        /* Result was not subnormal. Perform rounding. */
 5.17638 ++        /* For the fast version we discard the sticky bits and always round
 5.17639 ++	   the halfwaycase up. */
 5.17640 ++24:	
 5.17641 ++#if defined(L_avr32_f64_mul)
 5.17642 ++	or	r6, r6, r10 << 31 /* Or in parity bit into stickybits */
 5.17643 ++	or	r7, r7, r6 >> 1   /* Or together sticky and still make the msb 
 5.17644 ++				     of r7 represent the halfway bit. */
 5.17645 ++	eorh	r7, 0x8000	  /* Toggle halfway bit. */
 5.17646 ++	/* We should now round up by adding one for the following cases:
 5.17647 ++
 5.17648 ++		halfway   sticky|parity  round-up
 5.17649 ++		   0            x           no
 5.17650 ++		   1            0           no
 5.17651 ++	           1            1           yes
 5.17652 ++
 5.17653 ++	   Since we have inverted the halfway bit we can use the satu instruction
 5.17654 ++           by saturating to 1 bit to implement this. 
 5.17655 ++	*/ 
 5.17656 ++	satu	r7 >> 0, 1
 5.17657 ++#else
 5.17658 ++	lsr	r7, 31
 5.17659 ++#endif	
 5.17660 ++	add	r10, r7
 5.17661 ++	acr	r11	
 5.17662 ++        
 5.17663 ++        /* Insert sign bit*/
 5.17664 ++        bld     lr, 31
 5.17665 ++        bst     r11, 31
 5.17666 ++        
 5.17667 ++        /* Return result in [r11,r10] */
 5.17668 ++#if defined(L_avr32_f64_mul)
 5.17669 ++	popm	r4-r7, pc
 5.17670 ++#else
 5.17671 ++        ldm     sp++, r5, r6, r7,pc
 5.17672 ++#endif
 5.17673 ++ 
 5.17674 ++ 
 5.17675 ++__avr32_f64_mul_op1_subnormal:
 5.17676 ++	andh	r11, 0x000f /* Remove sign bit and exponent */
 5.17677 ++        clz     r12, r10    /* Count leading zeros in lsw */
 5.17678 ++        clz     r6, r11     /* Count leading zeros in msw */
 5.17679 ++        subcs	r12, -32 + AVR32_F64_MUL_OP1_INT_BITS 
 5.17680 ++	movcs	r6, r12
 5.17681 ++	subcc	r6, AVR32_F64_MUL_OP1_INT_BITS
 5.17682 ++	cp.w	r6, 32
 5.17683 ++	brge	0f
 5.17684 ++		
 5.17685 ++        /* shifting involves both msw and lsw*/
 5.17686 ++        rsub    r12, r6, 32  /* shift mantissa */
 5.17687 ++        lsl     r11, r11, r6
 5.17688 ++        lsr     r12, r10, r12
 5.17689 ++        or      r11, r12
 5.17690 ++        lsl     r10, r10, r6
 5.17691 ++	sub	r6, 12-AVR32_F64_MUL_OP1_INT_BITS
 5.17692 ++        sub     r7, r6          /* adjust exponent */
 5.17693 ++        rjmp    22b             /* Finished */  
 5.17694 ++0:
 5.17695 ++        /* msw is zero so only need to consider lsw */
 5.17696 ++        lsl     r11, r10, r6
 5.17697 ++	breq	__avr32_f64_mul_res_zero
 5.17698 ++        mov     r10, 0
 5.17699 ++	sub	r6, 12-AVR32_F64_MUL_OP1_INT_BITS
 5.17700 ++        sub     r7, r6            /* adjust exponent */
 5.17701 ++        rjmp    22b
 5.17702 ++
 5.17703 ++ 
 5.17704 ++__avr32_f64_mul_op2_subnormal:
 5.17705 ++	andh	r9, 0x000f  /* Remove sign bit and exponent */
 5.17706 ++        clz     r12, r8    /* Count leading zeros in lsw */
 5.17707 ++        clz     r5, r9     /* Count leading zeros in msw */
 5.17708 ++        subcs	r12, -32 + AVR32_F64_MUL_OP2_INT_BITS 
 5.17709 ++	movcs	r5, r12
 5.17710 ++	subcc	r5, AVR32_F64_MUL_OP2_INT_BITS
 5.17711 ++	cp.w	r5, 32
 5.17712 ++	brge	0f
 5.17713 ++		
 5.17714 ++        /* shifting involves both msw and lsw*/
 5.17715 ++        rsub    r12, r5, 32  /* shift mantissa */
 5.17716 ++        lsl     r9, r9, r5
 5.17717 ++        lsr     r12, r8, r12
 5.17718 ++        or      r9, r12
 5.17719 ++        lsl     r8, r8, r5
 5.17720 ++	sub	r5, 12 - AVR32_F64_MUL_OP2_INT_BITS
 5.17721 ++        sub     r6, r5          /* adjust exponent */
 5.17722 ++        rjmp    23b             /* Finished */  
 5.17723 ++0:
 5.17724 ++        /* msw is zero so only need to consider lsw */
 5.17725 ++        lsl     r9, r8, r5
 5.17726 ++	breq	__avr32_f64_mul_res_zero
 5.17727 ++        mov     r8, 0
 5.17728 ++	sub	r5, 12 - AVR32_F64_MUL_OP2_INT_BITS
 5.17729 ++        sub     r6, r5            /* adjust exponent */
 5.17730 ++        rjmp    23b
 5.17731 ++                
 5.17732 ++ 
 5.17733 ++__avr32_f64_mul_op_nan_or_inf:
 5.17734 ++        /* Same code for OP1 and OP2*/
 5.17735 ++        /* Since we are here, at least one of the OPs were NaN or INF*/
 5.17736 ++	andh	r9, 0x000f  /* Remove sign bit and exponent */
 5.17737 ++	andh	r11, 0x000f  /* Remove sign bit and exponent */
 5.17738 ++        /* Merge the regs in each operand to check for zero*/
 5.17739 ++        or      r11, r10 /* op1 */
 5.17740 ++        or      r9, r8 /* op2 */
 5.17741 ++        /* Check if op1 is NaN or INF */
 5.17742 ++        cp      r7, 0x7ff
 5.17743 ++        brne    __avr32_f64_mul_op1_not_naninf
 5.17744 ++        /* op1 was NaN or INF.*/
 5.17745 ++        cp      r11, 0
 5.17746 ++        brne    __avr32_f64_mul_res_nan /* op1 was NaN. Result will be NaN*/
 5.17747 ++        /*op1 was INF. check if op2 is NaN or INF*/
 5.17748 ++        cp      r6, 0x7ff
 5.17749 ++        brne    __avr32_f64_mul_res_inf /*op1 was INF, op2 was neither NaN nor INF*/
 5.17750 ++        /* op1 is INF, op2 is either NaN or INF*/
 5.17751 ++        cp      r9, 0
 5.17752 ++        breq    __avr32_f64_mul_res_inf /*op2 was also INF*/
 5.17753 ++        rjmp    __avr32_f64_mul_res_nan /*op2 was NaN*/
 5.17754 ++ 
 5.17755 ++__avr32_f64_mul_op1_not_naninf:
 5.17756 ++        /* op1 was not NaN nor INF. Then op2 must be NaN or INF*/
 5.17757 ++        cp      r9, 0
 5.17758 ++        breq    __avr32_f64_mul_res_inf /*op2 was INF, return INF*/
 5.17759 ++        rjmp   __avr32_f64_mul_res_nan /*else return NaN*/
 5.17760 ++        
 5.17761 ++__avr32_f64_mul_res_subnormal:/* Multiply result was subnormal. */
 5.17762 ++#if defined(L_avr32_f64_mul)
 5.17763 ++	/* Check how much we must scale down the mantissa. */
 5.17764 ++	neg	r12
 5.17765 ++	sub	r12, -1     /* We do no longer have an implicit bit. */
 5.17766 ++	satu	r12 >> 0, 6 /* Saturate shift amount to max 63. */
 5.17767 ++	cp.w	r12, 32
 5.17768 ++	brge	0f
 5.17769 ++	/* Shift amount <32 */
 5.17770 ++	rsub	r8, r12, 32
 5.17771 ++	or	r6, r7 
 5.17772 ++	lsr	r7, r7, r12
 5.17773 ++	lsl	r9, r10, r8
 5.17774 ++	or	r7, r9
 5.17775 ++	lsr	r10, r10, r12
 5.17776 ++	lsl	r9, r11, r8
 5.17777 ++	or	r10, r9
 5.17778 ++	lsr	r11, r11, r12
 5.17779 ++	rjmp	24b
 5.17780 ++0:
 5.17781 ++	/* Shift amount >=32 */
 5.17782 ++	rsub	r8, r12, 32
 5.17783 ++	moveq	r9, 0
 5.17784 ++	breq	0f
 5.17785 ++	lsl	r9, r11, r8
 5.17786 ++0:	
 5.17787 ++	or	r6, r7
 5.17788 ++	or	r6, r6, r10 << 1 
 5.17789 ++	lsr	r10, r10, r12
 5.17790 ++	or	r7, r9, r10
 5.17791 ++	lsr	r10, r11, r12
 5.17792 ++	mov	r11, 0	
 5.17793 ++	rjmp	24b				
 5.17794 ++#else
 5.17795 ++	/* Flush to zero for the fast version. */
 5.17796 ++        mov     r11, lr /*Get correct sign*/
 5.17797 ++        andh    r11, 0x8000, COH
 5.17798 ++        mov     r10, 0
 5.17799 ++        ldm     sp++, r5, r6, r7,pc
 5.17800 ++#endif
 5.17801 ++
 5.17802 ++__avr32_f64_mul_res_zero:/* Multiply result is zero. */
 5.17803 ++        mov     r11, lr /*Get correct sign*/
 5.17804 ++        andh    r11, 0x8000, COH
 5.17805 ++        mov     r10, 0
 5.17806 ++#if defined(L_avr32_f64_mul)
 5.17807 ++	popm	r4-r7, pc
 5.17808 ++#else
 5.17809 ++        ldm     sp++, r5, r6, r7,pc
 5.17810 ++#endif
 5.17811 ++ 
 5.17812 ++__avr32_f64_mul_res_nan:        /* Return NaN. */
 5.17813 ++        mov     r11, -1
 5.17814 ++        mov     r10, -1
 5.17815 ++#if defined(L_avr32_f64_mul)
 5.17816 ++	popm	r4-r7, pc
 5.17817 ++#else
 5.17818 ++        ldm     sp++, r5, r6, r7,pc
 5.17819 ++#endif
 5.17820 ++        
 5.17821 ++__avr32_f64_mul_res_inf:        /* Return INF. */
 5.17822 ++	mov	r11, 0xfff00000
 5.17823 ++        bld     lr, 31
 5.17824 ++        bst     r11, 31
 5.17825 ++        mov     r10, 0
 5.17826 ++#if defined(L_avr32_f64_mul)
 5.17827 ++	popm	r4-r7, pc
 5.17828 ++#else
 5.17829 ++        ldm     sp++, r5, r6, r7,pc
 5.17830 ++#endif
 5.17831 ++
 5.17832 ++__avr32_f64_mul_op1_zero:
 5.17833 ++        /* Get sign */
 5.17834 ++        eor     r11, r11, r9
 5.17835 ++        andh    r11, 0x8000, COH  
 5.17836 ++        /* Check if op2 is Inf or NaN. */
 5.17837 ++        bfextu  r12, r9, 20, 11
 5.17838 ++        cp.w    r12, 0x7ff
 5.17839 ++        retne   r12     /* Return 0.0 */
 5.17840 ++        /* Return NaN */
 5.17841 ++        mov     r10, -1
 5.17842 ++        mov     r11, -1
 5.17843 ++        ret     r12
 5.17844 ++         
 5.17845 ++
 5.17846 ++ 
 5.17847 ++#endif
 5.17848 ++                
 5.17849 ++ 
 5.17850 ++#if  defined(L_avr32_f64_addsub) || defined(L_avr32_f64_addsub_fast)
 5.17851 ++        .align  2
 5.17852 ++
 5.17853 ++__avr32_f64_sub_from_add:
 5.17854 ++        /* Switch sign on op2 */
 5.17855 ++        eorh    r9, 0x8000
 5.17856 ++
 5.17857 ++#if  defined(L_avr32_f64_addsub_fast)
 5.17858 ++        .global __avr32_f64_sub_fast
 5.17859 ++        .type  __avr32_f64_sub_fast,@function
 5.17860 ++__avr32_f64_sub_fast:
 5.17861 ++#else	
 5.17862 ++        .global __avr32_f64_sub
 5.17863 ++        .type  __avr32_f64_sub,@function
 5.17864 ++__avr32_f64_sub:
 5.17865 ++#endif
 5.17866 ++        
 5.17867 ++        /* op1 in {r11,r10}*/
 5.17868 ++        /* op2 in {r9,r8}*/
 5.17869 ++
 5.17870 ++#if  defined(L_avr32_f64_addsub_fast)
 5.17871 ++        /* If op2 is zero just return op1 */
 5.17872 ++        or      r12, r8, r9 << 1
 5.17873 ++        reteq   r12 
 5.17874 ++#endif
 5.17875 ++ 
 5.17876 ++        /* Check signs */
 5.17877 ++        eor     r12, r11, r9
 5.17878 ++        /* Different signs, use addition. */
 5.17879 ++        brmi    __avr32_f64_add_from_sub
 5.17880 ++ 
 5.17881 ++        stm     --sp, r5, r6, r7, lr
 5.17882 ++ 
 5.17883 ++        /* Get sign of op1 into r12 */
 5.17884 ++        mov     r12, r11
 5.17885 ++        andh    r12, 0x8000, COH                
 5.17886 ++ 
 5.17887 ++        /* Remove sign from operands */
 5.17888 ++        cbr     r11, 31
 5.17889 ++        cbr     r9, 31
 5.17890 ++ 
 5.17891 ++        /* Put the largest number in [r11, r10]
 5.17892 ++           and the smallest number in [r9, r8] */
 5.17893 ++        cp      r10, r8
 5.17894 ++        cpc     r11, r9
 5.17895 ++        brhs    1f /* Skip swap if operands already correctly ordered*/
 5.17896 ++        /* Operands were not correctly ordered, swap them*/
 5.17897 ++        mov     r7, r11
 5.17898 ++        mov     r11, r9
 5.17899 ++        mov     r9, r7
 5.17900 ++        mov     r7, r10
 5.17901 ++        mov     r10, r8
 5.17902 ++        mov     r8, r7
 5.17903 ++        eorh    r12, 0x8000 /* Invert sign in r12*/
 5.17904 ++1:      
 5.17905 ++        /* Unpack largest operand - opH */      
 5.17906 ++        /* exp: r7 */
 5.17907 ++        /* sf:  r11, r10 */
 5.17908 ++        lsr     r7, r11, 20 /* Extract exponent */
 5.17909 ++        lsl     r11, 11 /* Extract mantissa, leave room for implicit bit */ 
 5.17910 ++        or      r11, r11, r10>>21
 5.17911 ++        lsl     r10, 11
 5.17912 ++        sbr     r11, 31 /* Insert implicit bit */
 5.17913 ++ 
 5.17914 ++        
 5.17915 ++        /* Unpack smallest operand - opL */
 5.17916 ++        /* exp: r6 */
 5.17917 ++        /* sf:  r9, r8 */
 5.17918 ++        lsr     r6, r9, 20 /* Extract exponent */
 5.17919 ++        breq    __avr32_f64_sub_opL_subnormal /* If either zero or subnormal */
 5.17920 ++        lsl     r9, 11 /* Extract mantissa, leave room for implicit bit */ 
 5.17921 ++        or      r9, r9, r8>>21
 5.17922 ++        lsl     r8, 11
 5.17923 ++        sbr     r9, 31 /* Insert implicit bit */
 5.17924 ++ 
 5.17925 ++
 5.17926 ++__avr32_f64_sub_opL_subnormal_done:     
 5.17927 ++        /* opH is NaN or Inf. */
 5.17928 ++        cp.w    r7, 0x7ff
 5.17929 ++        breq    __avr32_f64_sub_opH_nan_or_inf
 5.17930 ++
 5.17931 ++        /* Get shift amount to scale mantissa of op2. */
 5.17932 ++        rsub    r6, r7
 5.17933 ++        breq    __avr32_f64_sub_shift_done /* No need to shift, exponents are equal*/
 5.17934 ++ 
 5.17935 ++        /* Scale mantissa [r9, r8] with amount [r6].
 5.17936 ++        Uses scratch registers [r5] and [lr].
 5.17937 ++        In IEEE mode:Must not forget the sticky bits we intend to shift out. */
 5.17938 ++ 
 5.17939 ++        rsub    r5,r6,32 /* get (32 - shift count)
 5.17940 ++                            (if shift count > 32 we get a
 5.17941 ++                            negative value, but that will
 5.17942 ++                            work as well in the code below.) */
 5.17943 ++ 
 5.17944 ++        cp.w    r6,32       /* handle shifts >= 32 separately */
 5.17945 ++        brhs    __avr32_f64_sub_longshift
 5.17946 ++ 
 5.17947 ++        /* small (<32) shift amount, both words are part of the shift
 5.17948 ++           first remember whether part that is lost contains any 1 bits ... */
 5.17949 ++        lsl     lr,r8,r5  /* shift away bits that are part of
 5.17950 ++                             final mantissa. only part that goes
 5.17951 ++                             to lr are bits that will be lost */
 5.17952 ++ 
 5.17953 ++        /* ... and now to the actual shift */
 5.17954 ++        lsl     r5,r9,r5  /* get bits from msw destined for lsw*/
 5.17955 ++        lsr     r8,r8,r6  /* shift down lsw of mantissa */
 5.17956 ++        lsr     r9,r9,r6  /* shift down msw of mantissa */
 5.17957 ++        or      r8,r5     /* combine these bits with prepared lsw*/
 5.17958 ++#if  defined(L_avr32_f64_addsub)
 5.17959 ++        cp.w    lr,0      /* if any '1' bit in part we lost ...*/
 5.17960 ++        srne    lr
 5.17961 ++        or      r8, lr     /* ... we need to set sticky bit*/
 5.17962 ++#endif
 5.17963 ++        
 5.17964 ++__avr32_f64_sub_shift_done:     
 5.17965 ++        /* Now subtract the mantissas. */
 5.17966 ++        sub     r10, r8
 5.17967 ++        sbc     r11, r11, r9
 5.17968 ++ 
 5.17969 ++        /* Normalize the exponent and mantissa pair stored in
 5.17970 ++        [r11,r10] and exponent in [r7]. Needs two scratch registers [r6] and [lr]. */
 5.17971 ++        clz     r6,r11     /* Check if we have zeros in high bits */
 5.17972 ++        breq    __avr32_f64_sub_longnormalize_done  /* No need for scaling if no zeros in high bits */
 5.17973 ++        brcs    __avr32_f64_sub_longnormalize
 5.17974 ++ 
 5.17975 ++	
 5.17976 ++        /* shift amount is smaller than 32, and involves both msw and lsw*/
 5.17977 ++        rsub    lr,r6,32  /* shift mantissa */
 5.17978 ++        lsl     r11,r11,r6
 5.17979 ++        lsr     lr,r10,lr
 5.17980 ++        or      r11,lr
 5.17981 ++        lsl     r10,r10,r6
 5.17982 ++ 
 5.17983 ++        sub     r7,r6    /* adjust exponent */
 5.17984 ++        brle    __avr32_f64_sub_subnormal_result
 5.17985 ++__avr32_f64_sub_longnormalize_done:     
 5.17986 ++        
 5.17987 ++#if defined(L_avr32_f64_addsub)
 5.17988 ++        /* Insert the bits we will remove from the mantissa r9[31:21] */
 5.17989 ++        lsl     r9, r10, (32 - 11)
 5.17990 ++#else
 5.17991 ++        /* Keep the last bit shifted out. */
 5.17992 ++        bfextu  r9, r10, 10, 1
 5.17993 ++#endif
 5.17994 ++ 
 5.17995 ++        /* Pack final result*/
 5.17996 ++        /* Input: [r7]:exp, [r11, r10]:mant, [r12]:sign in MSB */
 5.17997 ++        /* Result in [r11,r10] */
 5.17998 ++        /* Insert mantissa */
 5.17999 ++        lsr     r10, 11
 5.18000 ++        or      r10, r10, r11<<21
 5.18001 ++        lsr     r11, 11
 5.18002 ++        /* Insert exponent and sign bit*/
 5.18003 ++	bfins	r11, r7, 20, 11
 5.18004 ++        or      r11, r12
 5.18005 ++        
 5.18006 ++        /* Round */     
 5.18007 ++__avr32_f64_sub_round:
 5.18008 ++#if defined(L_avr32_f64_addsub)
 5.18009 ++	mov_imm	r7, 0x80000000
 5.18010 ++        bld     r10, 0
 5.18011 ++        subne   r7, -1  
 5.18012 ++ 
 5.18013 ++        cp.w    r9, r7
 5.18014 ++        srhs    r9
 5.18015 ++#endif
 5.18016 ++        add     r10, r9
 5.18017 ++        acr     r11
 5.18018 ++        
 5.18019 ++        /* Return result in [r11,r10] */
 5.18020 ++        ldm     sp++, r5, r6, r7,pc
 5.18021 ++ 
 5.18022 ++ 
 5.18023 ++ 
 5.18024 ++__avr32_f64_sub_opL_subnormal:
 5.18025 ++        /* Extract the of mantissa */
 5.18026 ++        lsl     r9, 11 /* Extract mantissa, leave room for implicit bit */ 
 5.18027 ++        or      r9, r9, r8>>21
 5.18028 ++        lsl     r8, 11
 5.18029 ++ 
 5.18030 ++        /* Set exponent to 1 if we do not have a zero. */
 5.18031 ++        or      lr, r9, r8
 5.18032 ++        movne   r6,1
 5.18033 ++	
 5.18034 ++        /* Check if opH is also subnormal. If so, clear implicit bit in r11*/
 5.18035 ++        rsub    lr, r7, 0
 5.18036 ++        moveq   r7,1
 5.18037 ++        bst     r11, 31
 5.18038 ++	
 5.18039 ++        /* Check if op1 is zero, if so set exponent to 0. */
 5.18040 ++        or      lr, r11, r10
 5.18041 ++        moveq   r7,0
 5.18042 ++	                 
 5.18043 ++        rjmp    __avr32_f64_sub_opL_subnormal_done
 5.18044 ++ 
 5.18045 ++__avr32_f64_sub_opH_nan_or_inf: 
 5.18046 ++        /* Check if opH is NaN, if so return NaN */
 5.18047 ++        cbr     r11, 31
 5.18048 ++        or      lr, r11, r10
 5.18049 ++        brne    __avr32_f64_sub_return_nan
 5.18050 ++ 
 5.18051 ++        /* opH is Inf. */
 5.18052 ++        /* Check if opL is Inf. or NaN */
 5.18053 ++        cp.w    r6, 0x7ff
 5.18054 ++        breq    __avr32_f64_sub_return_nan
 5.18055 ++	/* Return infinity with correct sign. */	
 5.18056 ++	or      r11, r12, r7 << 20
 5.18057 ++        ldm     sp++, r5, r6, r7, pc/* opL not Inf or NaN, return opH */
 5.18058 ++__avr32_f64_sub_return_nan:     
 5.18059 ++        mov     r10, -1 /* Generate NaN in r11, r10 */
 5.18060 ++        mov     r11, -1
 5.18061 ++        ldm     sp++, r5, r6, r7, pc/* opL Inf or NaN, return NaN */
 5.18062 ++ 
 5.18063 ++ 
 5.18064 ++__avr32_f64_sub_subnormal_result:
 5.18065 ++#if defined(L_avr32_f64_addsub)
 5.18066 ++	/* Check how much we must scale down the mantissa. */
 5.18067 ++	neg	r7
 5.18068 ++	sub	r7, -1     /* We do no longer have an implicit bit. */
 5.18069 ++	satu	r7 >> 0, 6 /* Saturate shift amount to max 63. */
 5.18070 ++	cp.w	r7, 32
 5.18071 ++	brge	0f
 5.18072 ++	/* Shift amount <32 */
 5.18073 ++	rsub	r8, r7, 32
 5.18074 ++	lsl	r9, r10, r8
 5.18075 ++	srne	r6
 5.18076 ++	lsr	r10, r10, r7
 5.18077 ++	or	r10, r6		/* Sticky bit from the
 5.18078 ++				   part that was shifted out. */
 5.18079 ++	lsl	r9, r11, r8
 5.18080 ++	or	r10, r10, r9
 5.18081 ++	lsr	r11, r10, r7
 5.18082 ++	/* Set exponent */
 5.18083 ++	mov	r7, 0
 5.18084 ++	rjmp	__avr32_f64_sub_longnormalize_done
 5.18085 ++0:
 5.18086 ++	/* Shift amount >=32 */
 5.18087 ++	rsub	r8, r7, 64
 5.18088 ++	lsl	r9, r11, r8
 5.18089 ++	or	r9, r10
 5.18090 ++	srne	r6
 5.18091 ++	lsr	r10, r11, r7
 5.18092 ++	or	r10, r6		/* Sticky bit from the
 5.18093 ++				   part that was shifted out. */
 5.18094 ++	mov	r11, 0
 5.18095 ++	/* Set exponent */
 5.18096 ++	mov	r7, 0
 5.18097 ++	rjmp	__avr32_f64_sub_longnormalize_done
 5.18098 ++#else
 5.18099 ++        /* Just flush subnormals to zero. */
 5.18100 ++        mov     r10, 0
 5.18101 ++        mov     r11, 0
 5.18102 ++#endif
 5.18103 ++        ldm     sp++, r5, r6, r7, pc
 5.18104 ++ 
 5.18105 ++__avr32_f64_sub_longshift:
 5.18106 ++        /* large (>=32) shift amount, only lsw will have bits left after shift.
 5.18107 ++           note that shift operations will use ((shift count=r6) mod 32) so
 5.18108 ++           we do not need to subtract 32 from shift count. */
 5.18109 ++        /* Saturate the shift amount to 63. If the amount
 5.18110 ++           is any larger op2 is insignificant. */
 5.18111 ++        satu    r6 >> 0, 6
 5.18112 ++	
 5.18113 ++#if defined(L_avr32_f64_addsub)
 5.18114 ++        /* first remember whether part that is lost contains any 1 bits ... */
 5.18115 ++	moveq	lr, r8	   /* If shift amount is 32, no bits from msw are lost. */
 5.18116 ++	breq	0f
 5.18117 ++        lsl     lr,r9,r5   /* save all lost bits from msw */
 5.18118 ++        or      lr,r8      /* also save lost bits (all) from lsw
 5.18119 ++                              now lr != 0 if we lose any bits */
 5.18120 ++#endif  
 5.18121 ++0:	
 5.18122 ++        /* ... and now to the actual shift */
 5.18123 ++        lsr     r8,r9,r6   /* Move msw to lsw and shift. */
 5.18124 ++        mov     r9,0       /* clear msw */
 5.18125 ++#if defined(L_avr32_f64_addsub)
 5.18126 ++        cp.w    lr,0       /* if any '1' bit in part we lost ...*/
 5.18127 ++        srne    lr
 5.18128 ++        or      r8, lr      /* ... we need to set sticky bit*/
 5.18129 ++#endif
 5.18130 ++        rjmp    __avr32_f64_sub_shift_done
 5.18131 ++ 
 5.18132 ++__avr32_f64_sub_longnormalize:
 5.18133 ++        /* shift amount is greater than 32 */
 5.18134 ++        clz     r6,r10      /* shift mantissa */
 5.18135 ++        /* If the resulting mantissa is zero the result is 
 5.18136 ++           zero so force exponent to zero. */
 5.18137 ++        movcs   r7, 0
 5.18138 ++        movcs   r6, 0
 5.18139 ++        movcs   r12, 0  /* Also clear sign bit. A zero result from subtraction
 5.18140 ++			   always is +0.0 */
 5.18141 ++        subcc   r6,-32
 5.18142 ++        lsl     r11,r10,r6
 5.18143 ++        mov     r10,0
 5.18144 ++        sub     r7,r6          /* adjust exponent */
 5.18145 ++        brle    __avr32_f64_sub_subnormal_result
 5.18146 ++        rjmp    __avr32_f64_sub_longnormalize_done
 5.18147 ++        
 5.18148 ++ 
 5.18149 ++        
 5.18150 ++	 .align  2
 5.18151 ++__avr32_f64_add_from_sub:
 5.18152 ++        /* Switch sign on op2 */
 5.18153 ++        eorh    r9, 0x8000
 5.18154 ++
 5.18155 ++#if defined(L_avr32_f64_addsub_fast)
 5.18156 ++        .global __avr32_f64_add_fast
 5.18157 ++        .type  __avr32_f64_add_fast,@function
 5.18158 ++__avr32_f64_add_fast:
 5.18159 ++#else	
 5.18160 ++        .global __avr32_f64_add
 5.18161 ++        .type  __avr32_f64_add,@function
 5.18162 ++__avr32_f64_add:
 5.18163 ++#endif
 5.18164 ++        
 5.18165 ++        /* op1 in {r11,r10}*/
 5.18166 ++        /* op2 in {r9,r8}*/
 5.18167 ++ 
 5.18168 ++#if defined(L_avr32_f64_addsub_fast)
 5.18169 ++        /* If op2 is zero just return op1 */
 5.18170 ++        or      r12, r8, r9 << 1
 5.18171 ++        reteq   r12 
 5.18172 ++#endif
 5.18173 ++
 5.18174 ++        /* Check signs */
 5.18175 ++        eor     r12, r11, r9
 5.18176 ++        /* Different signs, use subtraction. */
 5.18177 ++        brmi    __avr32_f64_sub_from_add
 5.18178 ++ 
 5.18179 ++        stm     --sp, r5, r6, r7, lr
 5.18180 ++ 
 5.18181 ++        /* Get sign of op1 into r12 */
 5.18182 ++        mov     r12, r11
 5.18183 ++        andh    r12, 0x8000, COH                
 5.18184 ++ 
 5.18185 ++        /* Remove sign from operands */
 5.18186 ++        cbr     r11, 31
 5.18187 ++        cbr     r9, 31
 5.18188 ++ 
 5.18189 ++        /* Put the number with the largest exponent in [r11, r10]
 5.18190 ++           and the number with the smallest exponent in [r9, r8] */
 5.18191 ++        cp      r11, r9
 5.18192 ++        brhs    1f /* Skip swap if operands already correctly ordered */
 5.18193 ++        /* Operands were not correctly ordered, swap them */
 5.18194 ++        mov     r7, r11
 5.18195 ++        mov     r11, r9
 5.18196 ++        mov     r9, r7
 5.18197 ++        mov     r7, r10
 5.18198 ++        mov     r10, r8
 5.18199 ++        mov     r8, r7
 5.18200 ++1:      
 5.18201 ++	mov	lr, 0 /* Set sticky bits to zero */
 5.18202 ++        /* Unpack largest operand - opH */      
 5.18203 ++        /* exp: r7 */
 5.18204 ++        /* sf:  r11, r10 */
 5.18205 ++	bfextu	R7, R11, 20, 11 /* Extract exponent */
 5.18206 ++	bfextu	r11, r11, 0, 20 /* Extract mantissa */
 5.18207 ++        sbr     r11, 20 /* Insert implicit bit */
 5.18208 ++ 
 5.18209 ++        /* Unpack smallest operand - opL */
 5.18210 ++        /* exp: r6 */
 5.18211 ++        /* sf:  r9, r8 */
 5.18212 ++	bfextu	R6, R9, 20, 11	/* Extract exponent */
 5.18213 ++	breq	__avr32_f64_add_op2_subnormal
 5.18214 ++	bfextu	r9, r9, 0, 20   /* Extract mantissa */
 5.18215 ++        sbr     r9, 20		/* Insert implicit bit */
 5.18216 ++
 5.18217 ++2:		 
 5.18218 ++        /* opH is NaN or Inf. */
 5.18219 ++        cp.w    r7, 0x7ff
 5.18220 ++        breq    __avr32_f64_add_opH_nan_or_inf
 5.18221 ++
 5.18222 ++        /* Get shift amount to scale mantissa of op2. */
 5.18223 ++        rsub    r6, r7
 5.18224 ++        breq    __avr32_f64_add_shift_done /* No need to shift, exponents are equal*/
 5.18225 ++ 
 5.18226 ++        /* Scale mantissa [r9, r8] with amount [r6].
 5.18227 ++        Uses scratch registers [r5] and [lr].
 5.18228 ++        In IEEE mode:Must not forget the sticky bits we intend to shift out. */
 5.18229 ++        rsub    r5,r6,32 /* get (32 - shift count)
 5.18230 ++                            (if shift count > 32 we get a
 5.18231 ++                            negative value, but that will
 5.18232 ++                            work as well in the code below.) */
 5.18233 ++ 
 5.18234 ++        cp.w    r6,32       /* handle shifts >= 32 separately */
 5.18235 ++        brhs    __avr32_f64_add_longshift
 5.18236 ++ 
 5.18237 ++        /* small (<32) shift amount, both words are part of the shift
 5.18238 ++           first remember whether part that is lost contains any 1 bits ... */
 5.18239 ++        lsl     lr,r8,r5  /* shift away bits that are part of
 5.18240 ++                             final mantissa. only part that goes
 5.18241 ++                             to lr are bits that will be lost */
 5.18242 ++ 
 5.18243 ++        /* ... and now to the actual shift */
 5.18244 ++        lsl     r5,r9,r5  /* get bits from msw destined for lsw*/
 5.18245 ++        lsr     r8,r8,r6  /* shift down lsw of mantissa */
 5.18246 ++        lsr     r9,r9,r6  /* shift down msw of mantissa */
 5.18247 ++        or      r8,r5     /* combine these bits with prepared lsw*/
 5.18248 ++        
 5.18249 ++__avr32_f64_add_shift_done:     
 5.18250 ++        /* Now add the mantissas. */
 5.18251 ++        add     r10, r8
 5.18252 ++        adc     r11, r11, r9
 5.18253 ++
 5.18254 ++        /* Check if we overflowed. */
 5.18255 ++	bld	r11, 21 
 5.18256 ++        breq	__avr32_f64_add_res_of:
 5.18257 ++
 5.18258 ++__avr32_f64_add_res_of_done:    
 5.18259 ++        
 5.18260 ++        /* Pack final result*/
 5.18261 ++        /* Input: [r7]:exp, [r11, r10]:mant, [r12]:sign in MSB */
 5.18262 ++        /* Result in [r11,r10] */
 5.18263 ++        /* Insert exponent and sign bit*/
 5.18264 ++	bfins	r11, r7, 20, 11
 5.18265 ++	or	r11, r12
 5.18266 ++        
 5.18267 ++        /* Round */     
 5.18268 ++__avr32_f64_add_round:
 5.18269 ++#if defined(L_avr32_f64_addsub)
 5.18270 ++	bfextu	r12, r10, 0, 1 /* Extract parity bit.*/
 5.18271 ++	or	lr, r12	       /* or it together with the sticky bits. */	
 5.18272 ++	eorh	lr, 0x8000     /* Toggle round bit. */	
 5.18273 ++	/* We should now round up by adding one for the following cases:
 5.18274 ++
 5.18275 ++		halfway   sticky|parity  round-up
 5.18276 ++		   0            x           no
 5.18277 ++		   1            0           no
 5.18278 ++	           1            1           yes
 5.18279 ++
 5.18280 ++	   Since we have inverted the halfway bit we can use the satu instruction
 5.18281 ++           by saturating to 1 bit to implement this. 
 5.18282 ++	*/ 
 5.18283 ++	satu	lr >> 0, 1
 5.18284 ++#else
 5.18285 ++	lsr	lr, 31
 5.18286 ++#endif
 5.18287 ++        add     r10, lr
 5.18288 ++        acr     r11
 5.18289 ++        
 5.18290 ++        /* Return result in [r11,r10] */
 5.18291 ++        ldm     sp++, r5, r6, r7,pc
 5.18292 ++ 
 5.18293 ++  
 5.18294 ++__avr32_f64_add_opH_nan_or_inf: 
 5.18295 ++        /* Check if opH is NaN, if so return NaN */
 5.18296 ++        cbr     r11, 20
 5.18297 ++        or      lr, r11, r10
 5.18298 ++        brne    __avr32_f64_add_return_nan
 5.18299 ++ 
 5.18300 ++        /* opH is Inf. */
 5.18301 ++        /* Check if opL is Inf. or NaN */
 5.18302 ++        cp.w    r6, 0x7ff
 5.18303 ++        breq    __avr32_f64_add_opL_nan_or_inf
 5.18304 ++        ldm     sp++, r5, r6, r7, pc/* opL not Inf or NaN, return opH */
 5.18305 ++__avr32_f64_add_opL_nan_or_inf:
 5.18306 ++        cbr     r9, 20
 5.18307 ++        or      lr, r9, r8
 5.18308 ++        brne    __avr32_f64_add_return_nan
 5.18309 ++        mov     r10, 0  /* Generate Inf in r11, r10 */
 5.18310 ++	mov_imm r11, 0x7ff00000
 5.18311 ++        ldm     sp++, r5, r6, r7, pc/* opL Inf, return Inf */
 5.18312 ++__avr32_f64_add_return_nan:     
 5.18313 ++        mov     r10, -1 /* Generate NaN in r11, r10 */
 5.18314 ++        mov     r11, -1
 5.18315 ++        ldm     sp++, r5, r6, r7, pc/* opL Inf or NaN, return NaN */
 5.18316 ++ 
 5.18317 ++ 
 5.18318 ++__avr32_f64_add_longshift:
 5.18319 ++        /* large (>=32) shift amount, only lsw will have bits left after shift.
 5.18320 ++           note that shift operations will use ((shift count=r6) mod 32) so
 5.18321 ++           we do not need to subtract 32 from shift count. */
 5.18322 ++        /* Saturate the shift amount to 63. If the amount
 5.18323 ++           is any larger op2 is insignificant. */
 5.18324 ++        satu    r6 >> 0, 6
 5.18325 ++	/* If shift amount is 32 there are no bits from the msw that are lost. */
 5.18326 ++	moveq	lr, r8
 5.18327 ++	breq	0f	
 5.18328 ++        /* first remember whether part that is lost contains any 1 bits ... */
 5.18329 ++        lsl     lr,r9,r5   /* save all lost bits from msw */
 5.18330 ++#if defined(L_avr32_f64_addsub)
 5.18331 ++	cp.w	r8, 0
 5.18332 ++	srne	r8	
 5.18333 ++        or      lr,r8      /* also save lost bits (all) from lsw
 5.18334 ++                              now lr != 0 if we lose any bits */
 5.18335 ++#endif  
 5.18336 ++0:	
 5.18337 ++        /* ... and now to the actual shift */
 5.18338 ++        lsr     r8,r9,r6   /* msw -> lsw and make rest of shift inside lsw*/
 5.18339 ++        mov     r9,0       /* clear msw */
 5.18340 ++        rjmp    __avr32_f64_add_shift_done
 5.18341 ++ 
 5.18342 ++__avr32_f64_add_res_of:
 5.18343 ++	/* We overflowed. Scale down mantissa by shifting right one position. */
 5.18344 ++	or	lr, lr, lr << 1 /* Remember stickybits*/
 5.18345 ++	lsr	r11, 1
 5.18346 ++	ror	r10
 5.18347 ++	ror	lr
 5.18348 ++	sub	r7, -1	/* Increment exponent */
 5.18349 ++ 
 5.18350 ++        /* Clear mantissa to set result to Inf if the exponent is 255. */
 5.18351 ++        cp.w    r7, 0x7ff
 5.18352 ++        moveq   r10, 0
 5.18353 ++        moveq   r11, 0
 5.18354 ++        moveq   lr, 0
 5.18355 ++        rjmp    __avr32_f64_add_res_of_done
 5.18356 ++        
 5.18357 ++__avr32_f64_add_op2_subnormal:	
 5.18358 ++	/* Set epxponent to 1 */
 5.18359 ++	mov	r6, 1
 5.18360 ++
 5.18361 ++	/* Check if op2 is also subnormal. */
 5.18362 ++	cp.w	r7, 0
 5.18363 ++	brne	2b
 5.18364 ++
 5.18365 ++	cbr	r11, 20
 5.18366 ++	/* Both operands are subnormal. Just addd the mantissas
 5.18367 ++	   and the exponent will automatically be set to 1 if
 5.18368 ++	   we overflow into a normal number. */
 5.18369 ++	add	r10, r8
 5.18370 ++	adc	r11, r11, r9
 5.18371 ++
 5.18372 ++	/* Add sign bit */
 5.18373 ++	or	r11, r12
 5.18374 ++	
 5.18375 ++        /* Return result in [r11,r10] */
 5.18376 ++        ldm     sp++, r5, r6, r7,pc
 5.18377 ++	
 5.18378 ++			
 5.18379 ++	 
 5.18380 ++#endif
 5.18381 ++ 
 5.18382 ++#ifdef L_avr32_f64_to_u32
 5.18383 ++        /* This goes into L_fixdfsi */
 5.18384 ++#endif
 5.18385 ++        
 5.18386 ++ 
 5.18387 ++#ifdef L_avr32_f64_to_s32
 5.18388 ++        .global __avr32_f64_to_u32
 5.18389 ++        .type  __avr32_f64_to_u32,@function
 5.18390 ++__avr32_f64_to_u32:
 5.18391 ++        cp.w    r11, 0
 5.18392 ++        retmi   0       /* Negative returns 0 */
 5.18393 ++ 
 5.18394 ++        /* Fallthrough to df to signed si conversion */ 
 5.18395 ++        .global __avr32_f64_to_s32
 5.18396 ++        .type  __avr32_f64_to_s32,@function
 5.18397 ++__avr32_f64_to_s32:
 5.18398 ++        lsl     r12,r11,1
 5.18399 ++        lsr     r12,21                  /* extract exponent*/
 5.18400 ++        sub     r12,1023                /* convert to unbiased exponent.*/
 5.18401 ++        retlo   0                       /* too small exponent implies zero. */
 5.18402 ++ 
 5.18403 ++1:      
 5.18404 ++        rsub    r12,r12,31              /* shift count = 31 - exponent */
 5.18405 ++        mov     r9,r11                  /* save sign for later...*/
 5.18406 ++        lsl     r11,11                  /* remove exponent and sign*/
 5.18407 ++        sbr     r11,31                  /* add implicit bit*/
 5.18408 ++        or      r11,r11,r10>>21         /* get rest of bits from lsw of double */
 5.18409 ++        lsr     r11,r11,r12             /* shift down mantissa to final place */
 5.18410 ++        lsl     r9,1                    /* sign -> carry */
 5.18411 ++        retcc   r11                     /* if positive, we are done */
 5.18412 ++        neg     r11                     /* if negative float, negate result */
 5.18413 ++        ret     r11
 5.18414 ++ 
 5.18415 ++#endif  /* L_fixdfsi*/
 5.18416 ++ 
 5.18417 ++#ifdef L_avr32_f64_to_u64
 5.18418 ++        /* Actual function is in L_fixdfdi */
 5.18419 ++#endif
 5.18420 ++        
 5.18421 ++#ifdef L_avr32_f64_to_s64
 5.18422 ++        .global __avr32_f64_to_u64
 5.18423 ++        .type  __avr32_f64_to_u64,@function
 5.18424 ++__avr32_f64_to_u64:
 5.18425 ++        cp.w    r11,0
 5.18426 ++        /* Negative numbers return zero */
 5.18427 ++        movmi   r10, 0
 5.18428 ++        movmi   r11, 0
 5.18429 ++        retmi   r11
 5.18430 ++ 
 5.18431 ++        
 5.18432 ++ 
 5.18433 ++        /* Fallthrough */
 5.18434 ++        .global __avr32_f64_to_s64
 5.18435 ++        .type  __avr32_f64_to_s64,@function
 5.18436 ++__avr32_f64_to_s64:
 5.18437 ++        lsl     r9,r11,1
 5.18438 ++        lsr     r9,21                   /* get exponent*/
 5.18439 ++        sub     r9,1023                 /* convert to correct range*/
 5.18440 ++        /* Return zero if exponent to small */
 5.18441 ++        movlo   r10, 0
 5.18442 ++        movlo   r11, 0
 5.18443 ++        retlo   r11
 5.18444 ++ 
 5.18445 ++        mov     r8,r11                  /* save sign for later...*/
 5.18446 ++1:      
 5.18447 ++        lsl     r11,11                  /* remove exponent */
 5.18448 ++        sbr     r11,31                  /* add implicit bit*/
 5.18449 ++        or      r11,r11,r10>>21         /* get rest of bits from lsw of double*/
 5.18450 ++        lsl     r10,11                  /* align lsw correctly as well */
 5.18451 ++        rsub    r9,r9,63                /* shift count = 63 - exponent */
 5.18452 ++        breq    1f
 5.18453 ++ 
 5.18454 ++        cp.w    r9,32                   /* is shift count more than one reg? */
 5.18455 ++        brhs    0f
 5.18456 ++ 
 5.18457 ++        mov     r12,r11                 /* save msw */
 5.18458 ++        lsr     r10,r10,r9              /* small shift count, shift down lsw */
 5.18459 ++        lsr     r11,r11,r9              /* small shift count, shift down msw */
 5.18460 ++        rsub    r9,r9,32                /* get 32-size of shifted out tail */
 5.18461 ++        lsl     r12,r12,r9              /* align part to move from msw to lsw */
 5.18462 ++        or      r10,r12                 /* combine to get new lsw */
 5.18463 ++        rjmp    1f
 5.18464 ++ 
 5.18465 ++0:
 5.18466 ++        lsr     r10,r11,r9              /* large shift count,only lsw get bits
 5.18467 ++                                           note that shift count is modulo 32*/
 5.18468 ++        mov     r11,0                   /* msw will be 0 */
 5.18469 ++ 
 5.18470 ++1:
 5.18471 ++        lsl     r8,1                    /* sign -> carry */
 5.18472 ++        retcc   r11                     /* if positive, we are done */
 5.18473 ++ 
 5.18474 ++        neg     r11                     /* if negative float, negate result */
 5.18475 ++        neg     r10
 5.18476 ++        scr     r11
 5.18477 ++        ret     r11 
 5.18478 ++ 
 5.18479 ++#endif
 5.18480 ++ 
 5.18481 ++#ifdef L_avr32_u32_to_f64
 5.18482 ++        /* Code located in L_floatsidf */
 5.18483 ++#endif
 5.18484 ++        
 5.18485 ++#ifdef L_avr32_s32_to_f64
 5.18486 ++        .global __avr32_u32_to_f64
 5.18487 ++        .type  __avr32_u32_to_f64,@function
 5.18488 ++__avr32_u32_to_f64:
 5.18489 ++        sub     r11, r12, 0 /* Move to r11 and force Z flag to be updated */
 5.18490 ++        mov     r12, 0      /* always positive */
 5.18491 ++        rjmp    0f          /* Jump to common code for floatsidf */
 5.18492 ++        
 5.18493 ++        .global __avr32_s32_to_f64
 5.18494 ++        .type  __avr32_s32_to_f64,@function
 5.18495 ++__avr32_s32_to_f64:
 5.18496 ++        mov     r11, r12        /* Keep original value in r12 for sign */
 5.18497 ++        abs     r11             /* Absolute value if r12 */
 5.18498 ++0:      
 5.18499 ++        mov     r10,0           /* let remaining bits be zero */
 5.18500 ++        reteq   r11             /* zero long will return zero float */
 5.18501 ++ 
 5.18502 ++        pushm   lr
 5.18503 ++        mov     r9,31+1023              /* set exponent */
 5.18504 ++                
 5.18505 ++        normalize_df    r9 /*exp*/, r10, r11 /* mantissa */, r8, lr /* scratch */
 5.18506 ++ 
 5.18507 ++        /* Check if a subnormal result was created */
 5.18508 ++        cp.w    r9, 0
 5.18509 ++        brgt    0f
 5.18510 ++        
 5.18511 ++        adjust_subnormal_df     r9 /* exp */, r10, r11 /* Mantissa */, r12 /*sign*/, r8, lr /* scratch */
 5.18512 ++        popm    pc
 5.18513 ++0:
 5.18514 ++        
 5.18515 ++        /* Round result */
 5.18516 ++        round_df        r9 /*exp*/, r10, r11 /* Mantissa */, r8 /*scratch*/
 5.18517 ++        cp.w    r9,0x7ff
 5.18518 ++        brlt    0f
 5.18519 ++        /*Return infinity */
 5.18520 ++        mov     r10, 0
 5.18521 ++	mov_imm	r11, 0xffe00000
 5.18522 ++        rjmp    __floatsidf_return_op1
 5.18523 ++        
 5.18524 ++0:
 5.18525 ++ 
 5.18526 ++        /* Pack */
 5.18527 ++        pack_df r9 /*exp*/, r10, r11 /* mantissa */, r10, r11 /* Output df number*/
 5.18528 ++__floatsidf_return_op1: 
 5.18529 ++        lsl     r12,1                  /* shift in sign bit */
 5.18530 ++        ror     r11
 5.18531 ++ 
 5.18532 ++        popm    pc
 5.18533 ++#endif
 5.18534 ++ 
 5.18535 ++ 
 5.18536 ++#ifdef L_avr32_f32_cmp_eq
 5.18537 ++        .global __avr32_f32_cmp_eq
 5.18538 ++        .type  __avr32_f32_cmp_eq,@function
 5.18539 ++__avr32_f32_cmp_eq:     
 5.18540 ++        cp.w    r12, r11
 5.18541 ++        breq    0f      
 5.18542 ++        /* If not equal check for +/-0 */
 5.18543 ++        /* Or together the two values and shift out the sign bit.
 5.18544 ++           If the result is zero, then the two values are both zero. */
 5.18545 ++        or      r12, r11
 5.18546 ++        lsl     r12, 1
 5.18547 ++        reteq   1
 5.18548 ++        ret     0
 5.18549 ++0:                      
 5.18550 ++        /* Numbers were equal. Check for NaN or Inf */
 5.18551 ++	mov_imm	r11, 0xff000000
 5.18552 ++        lsl     r12, 1
 5.18553 ++        cp.w    r12, r11
 5.18554 ++        retls   1     /* 0 if NaN, 1 otherwise */
 5.18555 ++        ret     0     
 5.18556 ++#endif
 5.18557 ++        
 5.18558 ++#if defined(L_avr32_f32_cmp_ge) || defined(L_avr32_f32_cmp_lt)
 5.18559 ++#ifdef L_avr32_f32_cmp_ge
 5.18560 ++        .global __avr32_f32_cmp_ge
 5.18561 ++        .type  __avr32_f32_cmp_ge,@function
 5.18562 ++__avr32_f32_cmp_ge:
 5.18563 ++#endif  
 5.18564 ++#ifdef L_avr32_f32_cmp_lt
 5.18565 ++        .global __avr32_f32_cmp_lt
 5.18566 ++        .type  __avr32_f32_cmp_lt,@function
 5.18567 ++__avr32_f32_cmp_lt:
 5.18568 ++#endif  
 5.18569 ++        lsl     r10, r12, 1     /* Remove sign bits */
 5.18570 ++        lsl     r9, r11, 1
 5.18571 ++	subfeq	r10, 0
 5.18572 ++#ifdef L_avr32_f32_cmp_ge
 5.18573 ++	reteq	1		/* Both number are zero. Return true. */
 5.18574 ++#endif	
 5.18575 ++#ifdef L_avr32_f32_cmp_lt
 5.18576 ++	reteq	0		/* Both number are zero. Return false. */
 5.18577 ++#endif	
 5.18578 ++	mov_imm	r8, 0xff000000
 5.18579 ++        cp.w    r10, r8
 5.18580 ++        rethi   0               /* Op0 is NaN */                
 5.18581 ++        cp.w    r9, r8
 5.18582 ++        rethi   0               /* Op1 is Nan */
 5.18583 ++ 
 5.18584 ++        eor     r8, r11, r12
 5.18585 ++        bld     r12, 31
 5.18586 ++#ifdef L_avr32_f32_cmp_ge
 5.18587 ++        srcc    r8      /* Set result to true if op0 is positive*/
 5.18588 ++#endif
 5.18589 ++#ifdef L_avr32_f32_cmp_lt
 5.18590 ++        srcs    r8      /* Set result to true if op0 is negative*/
 5.18591 ++#endif
 5.18592 ++        retmi   r8      /* Return if signs are different */
 5.18593 ++        brcs    0f      /* Both signs negative? */
 5.18594 ++ 
 5.18595 ++        /* Both signs positive */
 5.18596 ++        cp.w    r12, r11
 5.18597 ++#ifdef L_avr32_f32_cmp_ge
 5.18598 ++        reths    1
 5.18599 ++        retlo    0
 5.18600 ++#endif
 5.18601 ++#ifdef L_avr32_f32_cmp_lt
 5.18602 ++        reths    0
 5.18603 ++        retlo    1
 5.18604 ++#endif
 5.18605 ++0:
 5.18606 ++        /* Both signs negative */
 5.18607 ++        cp.w    r11, r12
 5.18608 ++#ifdef L_avr32_f32_cmp_ge
 5.18609 ++        reths    1
 5.18610 ++        retlo    0
 5.18611 ++#endif
 5.18612 ++#ifdef L_avr32_f32_cmp_lt
 5.18613 ++        reths    0
 5.18614 ++        retlo    1
 5.18615 ++#endif
 5.18616 ++#endif
 5.18617 ++        
 5.18618 ++ 
 5.18619 ++#ifdef L_avr32_f64_cmp_eq
 5.18620 ++        .global __avr32_f64_cmp_eq
 5.18621 ++        .type  __avr32_f64_cmp_eq,@function
 5.18622 ++__avr32_f64_cmp_eq:     
 5.18623 ++        cp.w    r10,r8
 5.18624 ++        cpc     r11,r9
 5.18625 ++        breq    0f
 5.18626 ++        
 5.18627 ++        /* Args were not equal*/
 5.18628 ++        /* Both args could be zero with different sign bits */
 5.18629 ++        lsl     r11,1                   /* get rid of sign bits */
 5.18630 ++        lsl     r9,1
 5.18631 ++        or      r11,r10                 /* Check if all bits are zero */
 5.18632 ++        or      r11,r9
 5.18633 ++        or      r11,r8
 5.18634 ++        reteq   1                       /* If all zeros the arguments are equal
 5.18635 ++                                           so return 1 else return 0 */
 5.18636 ++        ret     0
 5.18637 ++0:      
 5.18638 ++        /* check for NaN */
 5.18639 ++        lsl     r11,1
 5.18640 ++	mov_imm	r12, 0xffe00000
 5.18641 ++        cp.w    r10,0
 5.18642 ++        cpc     r11,r12                 /* check if nan or inf */
 5.18643 ++        retls   1                       /* If Arg is NaN return 0 else 1*/
 5.18644 ++        ret     0                       /* Return  */
 5.18645 ++ 
 5.18646 ++#endif
 5.18647 ++ 
 5.18648 ++ 
 5.18649 ++#if   defined(L_avr32_f64_cmp_ge) || defined(L_avr32_f64_cmp_lt)
 5.18650 ++ 
 5.18651 ++#ifdef L_avr32_f64_cmp_ge
 5.18652 ++        .global __avr32_f64_cmp_ge
 5.18653 ++        .type  __avr32_f64_cmp_ge,@function
 5.18654 ++__avr32_f64_cmp_ge:
 5.18655 ++#endif  
 5.18656 ++#ifdef L_avr32_f64_cmp_lt
 5.18657 ++        .global __avr32_f64_cmp_lt
 5.18658 ++        .type  __avr32_f64_cmp_lt,@function
 5.18659 ++__avr32_f64_cmp_lt:
 5.18660 ++#endif  
 5.18661 ++ 
 5.18662 ++        /* compare magnitude of op1 and op2 */
 5.18663 ++        lsl     r11,1                   /* Remove sign bit of op1 */
 5.18664 ++        srcs    r12                     /* Sign op1 to lsb of r12*/
 5.18665 ++	subfeq	r10, 0
 5.18666 ++	breq	3f			/* op1 zero */
 5.18667 ++        lsl     r9,1                    /* Remove sign bit of op2 */
 5.18668 ++        rol     r12                     /* Sign op2 to lsb of lr, sign bit op1 bit 1 of r12*/
 5.18669 ++	
 5.18670 ++ 
 5.18671 ++        /* Check for Nan */
 5.18672 ++	pushm	lr
 5.18673 ++	mov_imm	lr, 0xffe00000
 5.18674 ++        cp.w    r10,0
 5.18675 ++        cpc     r11,lr
 5.18676 ++        brhi    0f      /* We have NaN */
 5.18677 ++        cp.w    r8,0
 5.18678 ++        cpc     r9,lr
 5.18679 ++        brhi    0f      /* We have NaN */
 5.18680 ++	popm	lr
 5.18681 ++ 
 5.18682 ++        cp.w    r12,3                   /* both operands negative ?*/    
 5.18683 ++        breq    1f
 5.18684 ++ 
 5.18685 ++        cp.w    r12,1                   /* both operands positive? */
 5.18686 ++        brlo    2f
 5.18687 ++ 
 5.18688 ++        /* Different signs. If sign of op1 is negative the difference
 5.18689 ++           between op1 and op2 will always be negative, and if op1 is
 5.18690 ++           positive the difference will always be positive */           
 5.18691 ++#ifdef L_avr32_f64_cmp_ge
 5.18692 ++	reteq	1
 5.18693 ++	retne	0
 5.18694 ++#endif
 5.18695 ++#ifdef L_avr32_f64_cmp_lt
 5.18696 ++	reteq	0
 5.18697 ++	retne	1
 5.18698 ++#endif
 5.18699 ++  
 5.18700 ++2:
 5.18701 ++        /* Both operands positive. Just compute the difference */
 5.18702 ++        cp.w    r10,r8
 5.18703 ++        cpc     r11,r9
 5.18704 ++#ifdef L_avr32_f64_cmp_ge
 5.18705 ++	reths	1
 5.18706 ++	retlo	0
 5.18707 ++#endif
 5.18708 ++#ifdef L_avr32_f64_cmp_lt
 5.18709 ++	reths	0
 5.18710 ++	retlo	1
 5.18711 ++#endif
 5.18712 ++                
 5.18713 ++1:
 5.18714 ++        /* Both operands negative. Compute the difference with operands switched */
 5.18715 ++        cp     r8,r10
 5.18716 ++        cpc    r9,r11
 5.18717 ++#ifdef L_avr32_f64_cmp_ge
 5.18718 ++	reths	1
 5.18719 ++	retlo	0
 5.18720 ++#endif
 5.18721 ++#ifdef L_avr32_f64_cmp_lt
 5.18722 ++	reths	0
 5.18723 ++	retlo	1
 5.18724 ++#endif
 5.18725 ++
 5.18726 ++0:      
 5.18727 ++        popm    pc, r12=0
 5.18728 ++#endif
 5.18729 ++ 
 5.18730 ++3:
 5.18731 ++        lsl     r9,1                   /* Remove sign bit of op1 */
 5.18732 ++#ifdef L_avr32_f64_cmp_ge
 5.18733 ++        srcs    r12		       /* If op2 is negative then op1 >= op2. */	
 5.18734 ++#endif
 5.18735 ++#ifdef L_avr32_f64_cmp_lt
 5.18736 ++        srcc    r12		       /* If op2 is positve then op1 <= op2. */
 5.18737 ++#endif
 5.18738 ++	subfeq	r8, 0		       
 5.18739 ++#ifdef L_avr32_f64_cmp_ge
 5.18740 ++	reteq	1		       /* Both operands are zero. Return true. */
 5.18741 ++#endif
 5.18742 ++#ifdef L_avr32_f64_cmp_lt
 5.18743 ++	reteq	0		       /* Both operands are zero. Return false. */
 5.18744 ++#endif
 5.18745 ++	ret	r12
 5.18746 ++				        
 5.18747 ++ 
 5.18748 ++#if defined(L_avr32_f64_div) || defined(L_avr32_f64_div_fast)
 5.18749 ++        .align  2
 5.18750 ++
 5.18751 ++#if defined(L_avr32_f64_div_fast)
 5.18752 ++        .global __avr32_f64_div_fast
 5.18753 ++        .type  __avr32_f64_div_fast,@function
 5.18754 ++__avr32_f64_div_fast:
 5.18755 ++#else
 5.18756 ++        .global __avr32_f64_div
 5.18757 ++        .type  __avr32_f64_div,@function
 5.18758 ++__avr32_f64_div:
 5.18759 ++#endif
 5.18760 ++        stm     --sp, r0, r1, r2, r3, r4, r5, r6, r7,lr 
 5.18761 ++        /* op1 in {r11,r10}*/
 5.18762 ++        /* op2 in {r9,r8}*/
 5.18763 ++        eor     lr, r11, r9             /* MSB(lr) = Sign(op1) ^ Sign(op2) */
 5.18764 ++ 
 5.18765 ++        
 5.18766 ++        /* Unpack op1 to 2.62 format*/  
 5.18767 ++        /* exp: r7 */
 5.18768 ++        /* sf:  r11, r10 */
 5.18769 ++        lsr     r7, r11, 20 /* Extract exponent */
 5.18770 ++                
 5.18771 ++        lsl     r11, 9 /* Extract mantissa, leave room for implicit bit */ 
 5.18772 ++        or      r11, r11, r10>>23
 5.18773 ++        lsl     r10, 9
 5.18774 ++        sbr     r11, 29 /* Insert implicit bit */
 5.18775 ++        andh    r11, 0x3fff /*Mask last part of exponent since we use 2.62 format*/
 5.18776 ++ 
 5.18777 ++        cbr     r7, 11       /* Clear sign bit */
 5.18778 ++        /* Check if normalization is needed */
 5.18779 ++        breq    11f /*If number is subnormal, normalize it */
 5.18780 ++22:     
 5.18781 ++        cp      r7, 0x7ff
 5.18782 ++        brge    2f  /* Check op1 for NaN or Inf */
 5.18783 ++
 5.18784 ++        /* Unpack op2 to 2.62 format*/
 5.18785 ++        /* exp: r6 */
 5.18786 ++        /* sf:  r9, r8 */
 5.18787 ++        lsr     r6, r9, 20 /* Extract exponent */
 5.18788 ++                
 5.18789 ++        lsl     r9, 9 /* Extract mantissa, leave room for implicit bit */ 
 5.18790 ++        or      r9, r9, r8>>23
 5.18791 ++        lsl     r8, 9
 5.18792 ++        sbr     r9, 29 /* Insert implicit bit */
 5.18793 ++        andh    r9, 0x3fff /*Mask last part of exponent since we use 2.62 format*/
 5.18794 ++ 
 5.18795 ++        cbr     r6, 11       /* Clear sign bit */
 5.18796 ++        /* Check if normalization is needed */
 5.18797 ++        breq    13f /*If number is subnormal, normalize it */
 5.18798 ++23:             
 5.18799 ++        cp      r6, 0x7ff
 5.18800 ++        brge    3f  /* Check op2 for NaN or Inf */
 5.18801 ++
 5.18802 ++        /* Calculate new exponent */
 5.18803 ++        sub     r7, r6
 5.18804 ++        sub     r7,-1023
 5.18805 ++ 
 5.18806 ++        /* Divide */
 5.18807 ++        /* Approximating 1/d with the following recurrence: */
 5.18808 ++        /* R[j+1] = R[j]*(2-R[j]*d) */
 5.18809 ++        /* Using 2.62 format */
 5.18810 ++        /* TWO:  r12 */
 5.18811 ++        /* d = op2 = divisor (2.62 format): r9,r8 */
 5.18812 ++        /* Multiply result :     r5, r4 */
 5.18813 ++        /* Initial guess :       r3, r2 */
 5.18814 ++        /* New approximations :  r3, r2 */
 5.18815 ++        /* op1 = Dividend (2.62 format) : r11, r10 */
 5.18816 ++ 
 5.18817 ++	mov_imm	r12, 0x80000000
 5.18818 ++         
 5.18819 ++        /* Load initial guess, using look-up table */
 5.18820 ++        /* Initial guess is of format 01.XY, where XY is constructed as follows: */
 5.18821 ++        /* Let d be of following format: 00.1xy....., then XY=~xy */
 5.18822 ++        /* For d=00.100 = 0,5   -> initial guess=01.11 = 1,75 */
 5.18823 ++        /* For d=00.101 = 0,625 -> initial guess=01.11 = 1,5  */
 5.18824 ++        /* For d=00.110 = 0,75  -> initial guess=01.11 = 1,25 */
 5.18825 ++        /* For d=00.111 = 0,875 -> initial guess=01.11 = 1,0  */
 5.18826 ++        /* r2 is also part of the reg pair forming initial guess, but it*/
 5.18827 ++        /* is kept uninitialized to save one cycle since it has so low significance*/
 5.18828 ++ 
 5.18829 ++        lsr     r3, r12, 1
 5.18830 ++        bfextu  r4, r9, 27, 2
 5.18831 ++        com     r4
 5.18832 ++        bfins   r3, r4, 28, 2
 5.18833 ++ 
 5.18834 ++        /* First approximation */
 5.18835 ++        /* Approximating to 32 bits */
 5.18836 ++        /* r5 = R[j]*d */
 5.18837 ++        mulu.d  r4, r3, r9
 5.18838 ++        /* r5 = 2-R[j]*d */
 5.18839 ++        sub    r5, r12, r5<<2
 5.18840 ++        /* r3 = R[j]*(2-R[j]*d) */
 5.18841 ++        mulu.d  r4, r3, r5
 5.18842 ++        lsl     r3, r5, 2
 5.18843 ++         
 5.18844 ++        /* Second approximation */
 5.18845 ++        /* Approximating to 32 bits */
 5.18846 ++        /* r5 = R[j]*d */
 5.18847 ++        mulu.d  r4, r3, r9
 5.18848 ++        /* r5 = 2-R[j]*d */
 5.18849 ++        sub    r5, r12, r5<<2
 5.18850 ++        /* r3 = R[j]*(2-R[j]*d) */
 5.18851 ++        mulu.d  r4, r3, r5
 5.18852 ++        lsl     r3, r5, 2
 5.18853 ++         
 5.18854 ++        /* Third approximation */
 5.18855 ++        /* Approximating to 32 bits */
 5.18856 ++        /* r5 = R[j]*d */
 5.18857 ++        mulu.d  r4, r3, r9
 5.18858 ++        /* r5 = 2-R[j]*d */
 5.18859 ++        sub    r5, r12, r5<<2
 5.18860 ++        /* r3 = R[j]*(2-R[j]*d) */
 5.18861 ++        mulu.d  r4, r3, r5
 5.18862 ++        lsl     r3, r5, 2
 5.18863 ++ 
 5.18864 ++        /* Fourth approximation */
 5.18865 ++        /* Approximating to 64 bits */
 5.18866 ++        /* r5,r4 = R[j]*d */
 5.18867 ++        mul_approx_df        r3 /*ah*/, r2 /*al*/, r9 /*bh*/, r8 /*bl*/, r5 /*rh*/, r4 /*rl*/, r1 /*sh*/, r0 /*sl*/
 5.18868 ++        lsl    r5, 2
 5.18869 ++        or     r5, r5, r4>>30
 5.18870 ++        lsl    r4, 2
 5.18871 ++        /* r5,r4 = 2-R[j]*d */
 5.18872 ++        neg    r4
 5.18873 ++        sbc    r5, r12, r5
 5.18874 ++        /* r3,r2 = R[j]*(2-R[j]*d) */
 5.18875 ++        mul_approx_df        r3 /*ah*/, r2 /*al*/, r5 /*bh*/, r4 /*bl*/, r5 /*rh*/, r4 /*rl*/, r1 /*sh*/, r0 /*sl*/
 5.18876 ++        lsl    r3, r5, 2
 5.18877 ++        or     r3, r3, r4>>30
 5.18878 ++        lsl    r2, r4, 2
 5.18879 ++ 
 5.18880 ++ 
 5.18881 ++        /* Fifth approximation */
 5.18882 ++        /* Approximating to 64 bits */
 5.18883 ++        /* r5,r4 = R[j]*d */
 5.18884 ++        mul_approx_df        r3 /*ah*/, r2 /*al*/, r9 /*bh*/, r8 /*bl*/, r5 /*rh*/, r4 /*rl*/, r1 /*sh*/, r0 /*sl*/
 5.18885 ++        lsl    r5, 2
 5.18886 ++        or     r5, r5, r4>>30
 5.18887 ++        lsl    r4, 2
 5.18888 ++        /* r5,r4 = 2-R[j]*d */
 5.18889 ++        neg    r4
 5.18890 ++        sbc    r5, r12, r5
 5.18891 ++        /* r3,r2 = R[j]*(2-R[j]*d) */
 5.18892 ++        mul_approx_df        r3 /*ah*/, r2 /*al*/, r5 /*bh*/, r4 /*bl*/, r5 /*rh*/, r4 /*rl*/, r1 /*sh*/, r0 /*sl*/
 5.18893 ++        lsl    r3, r5, 2
 5.18894 ++        or     r3, r3, r4>>30
 5.18895 ++        lsl    r2, r4, 2
 5.18896 ++ 
 5.18897 ++ 
 5.18898 ++        /* Multiply with dividend to get quotient */
 5.18899 ++        mul_approx_df        r3 /*ah*/, r2 /*al*/, r11 /*bh*/, r10 /*bl*/, r3 /*rh*/, r2 /*rl*/, r1 /*sh*/, r0 /*sl*/
 5.18900 ++ 
 5.18901 ++ 
 5.18902 ++        /* To increase speed, this result is not corrected before final rounding.*/
 5.18903 ++        /* This may give a difference to IEEE compliant code of 1 ULP.*/
 5.18904 ++		
 5.18905 ++ 
 5.18906 ++        /* Adjust exponent and mantissa */
 5.18907 ++        /* r7:exp, [r3, r2]:mant, [r5, r4]:scratch*/
 5.18908 ++        /* Mantissa may be of the format 0.xxxx or 1.xxxx. */
 5.18909 ++        /* In the first case, shift one pos to left.*/
 5.18910 ++        bld     r3, 31-3
 5.18911 ++	breq	0f
 5.18912 ++	lsl	r2, 1
 5.18913 ++	rol	r3
 5.18914 ++	sub	r7, 1
 5.18915 ++#if defined(L_avr32_f64_div)
 5.18916 ++	/* We must scale down the dividend to 5.59 format. */
 5.18917 ++	lsr	r10, 3
 5.18918 ++	or	r10, r10, r11 << 29
 5.18919 ++	lsr	r11, 3
 5.18920 ++	rjmp    1f
 5.18921 ++#endif	
 5.18922 ++0:	
 5.18923 ++#if defined(L_avr32_f64_div)
 5.18924 ++	/* We must scale down the dividend to 6.58 format. */
 5.18925 ++	lsr	r10, 4
 5.18926 ++	or	r10, r10, r11 << 28
 5.18927 ++	lsr	r11, 4
 5.18928 ++1:	
 5.18929 ++#endif
 5.18930 ++        cp      r7, 0   
 5.18931 ++        brle    __avr32_f64_div_res_subnormal /* Result was subnormal. */
 5.18932 ++ 
 5.18933 ++ 
 5.18934 ++#if defined(L_avr32_f64_div)
 5.18935 ++	/* In order to round correctly we calculate the remainder:	
 5.18936 ++	   Remainder = dividend[11:r10] - divisor[r9:r8]*quotient[r3:r2] 
 5.18937 ++	   for the case when the quotient is halfway between the round-up
 5.18938 ++	   value and the round down value. If the remainder then is negative
 5.18939 ++	   it means that the quotient was to big and that it should not be
 5.18940 ++           rounded up, if the remainder is positive the quotient was to small
 5.18941 ++	   and we need to round up. If the remainder is zero it means that the
 5.18942 ++	   quotient is exact but since we need to remove the guard bit we should
 5.18943 ++	   round to even. */
 5.18944 ++
 5.18945 ++	/* Truncate and add guard bit. */
 5.18946 ++	andl	r2, 0xff00
 5.18947 ++	orl	r2, 0x0080	
 5.18948 ++	
 5.18949 ++
 5.18950 ++	/* Now do the multiplication. The quotient has the format 4.60
 5.18951 ++	   while the divisor has the format 2.62 which gives a result
 5.18952 ++	   of 6.58 */
 5.18953 ++        mulu.d  r0, r3, r8
 5.18954 ++        macu.d  r0, r2, r9
 5.18955 ++        mulu.d  r4, r2, r8
 5.18956 ++        mulu.d  r8, r3, r9
 5.18957 ++	add	r5, r0
 5.18958 ++	adc	r8, r8, r1	
 5.18959 ++	acr	r9
 5.18960 ++
 5.18961 ++
 5.18962 ++	/* Check if remainder is positive, negative or equal. */
 5.18963 ++	bfextu	r12, r2, 8, 1  /* Get parity bit into bit 0 of r0 */ 
 5.18964 ++	cp	r4, 0
 5.18965 ++	cpc	r5
 5.18966 ++__avr32_f64_div_round_subnormal:	
 5.18967 ++	cpc	r8, r10
 5.18968 ++	cpc	r9, r11
 5.18969 ++	srlo	r6	/* Remainder positive:	 we need to round up.*/
 5.18970 ++	moveq	r6, r12  /* Remainder zero:	 round up if mantissa odd. */
 5.18971 ++#else
 5.18972 ++	bfextu	r6, r2, 7, 1  /* Get guard bit */ 	
 5.18973 ++#endif
 5.18974 ++	/* Final packing, scale down mantissa. */
 5.18975 ++	lsr	r10, r2, 8
 5.18976 ++        or      r10, r10, r3<<24
 5.18977 ++        lsr     r11, r3, 8
 5.18978 ++	/* Insert exponent and sign bit*/
 5.18979 ++	bfins	r11, r7, 20, 11
 5.18980 ++        bld     lr, 31
 5.18981 ++        bst     r11, 31
 5.18982 ++
 5.18983 ++	/* Final rounding */
 5.18984 ++	add	r10, r6
 5.18985 ++	acr	r11		
 5.18986 ++	        
 5.18987 ++        /* Return result in [r11,r10] */
 5.18988 ++        ldm     sp++, r0, r1, r2, r3, r4, r5, r6, r7,pc
 5.18989 ++ 
 5.18990 ++                
 5.18991 ++2:
 5.18992 ++        /* Op1 is NaN or inf */
 5.18993 ++        andh    r11, 0x000f /* Extract mantissa */
 5.18994 ++        or      r11, r10
 5.18995 ++        brne    16f     /* Return NaN if op1 is NaN */
 5.18996 ++        /* Op1 is inf check op2 */
 5.18997 ++        lsr     r6, r9, 20 /* Extract exponent */
 5.18998 ++        cbr     r6, 8       /* Clear sign bit */
 5.18999 ++        cp      r6, 0x7ff
 5.19000 ++        brne    17f     /* Inf/number gives inf, return inf */
 5.19001 ++        rjmp    16f     /* The rest gives NaN*/
 5.19002 ++        
 5.19003 ++3:      
 5.19004 ++        /* Op1 is a valid number. Op 2 is NaN or inf */
 5.19005 ++        andh    r9, 0x000f /* Extract mantissa */
 5.19006 ++        or      r9, r8
 5.19007 ++        brne    16f     /* Return NaN if op2 is NaN */
 5.19008 ++        rjmp    15f     /* Op2 was inf, return zero*/
 5.19009 ++                
 5.19010 ++11:     /* Op1 was denormal. Fix it. */
 5.19011 ++        lsl     r11, 3
 5.19012 ++        or      r11, r11, r10 >> 29
 5.19013 ++        lsl     r10, 3
 5.19014 ++        /* Check if op1 is zero. */
 5.19015 ++        or      r4, r10, r11
 5.19016 ++        breq    __avr32_f64_div_op1_zero
 5.19017 ++        normalize_df    r7 /*exp*/, r10, r11 /*Mantissa*/, r4, r5 /*scratch*/
 5.19018 ++        lsr     r10, 2
 5.19019 ++        or      r10, r10, r11 << 30
 5.19020 ++        lsr     r11, 2
 5.19021 ++        rjmp    22b
 5.19022 ++ 
 5.19023 ++ 
 5.19024 ++13:     /* Op2 was denormal. Fix it */
 5.19025 ++        lsl     r9, 3
 5.19026 ++        or      r9, r9, r8 >> 29
 5.19027 ++        lsl     r8, 3
 5.19028 ++        /* Check if op2 is zero. */
 5.19029 ++        or      r4, r9, r8
 5.19030 ++        breq    17f     /* Divisor is zero -> return Inf */
 5.19031 ++        normalize_df    r6 /*exp*/, r8, r9 /*Mantissa*/, r4, r5 /*scratch*/     
 5.19032 ++        lsr     r8, 2
 5.19033 ++        or      r8, r8, r9 << 30
 5.19034 ++        lsr     r9, 2
 5.19035 ++        rjmp    23b
 5.19036 ++        
 5.19037 ++ 
 5.19038 ++__avr32_f64_div_res_subnormal:/* Divide result was subnormal. */
 5.19039 ++#if defined(L_avr32_f64_div)
 5.19040 ++	/* Check how much we must scale down the mantissa. */
 5.19041 ++	neg	r7
 5.19042 ++	sub	r7, -1     /* We do no longer have an implicit bit. */
 5.19043 ++	satu	r7 >> 0, 6 /* Saturate shift amount to max 63. */
 5.19044 ++	cp.w	r7, 32
 5.19045 ++	brge	0f
 5.19046 ++	/* Shift amount <32 */
 5.19047 ++	/* Scale down quotient */
 5.19048 ++	rsub	r6, r7, 32
 5.19049 ++	lsr	r2, r2, r7
 5.19050 ++	lsl	r12, r3, r6
 5.19051 ++	or	r2, r12
 5.19052 ++	lsr	r3, r3, r7
 5.19053 ++	/* Scale down the dividend to match the scaling of the quotient. */
 5.19054 ++	lsl	r1, r10, r6
 5.19055 ++	lsr	r10, r10, r7
 5.19056 ++	lsl	r12, r11, r6
 5.19057 ++	or	r10, r12
 5.19058 ++	lsr	r11, r11, r7
 5.19059 ++	mov	r0, 0
 5.19060 ++	rjmp	1f
 5.19061 ++0:
 5.19062 ++	/* Shift amount >=32 */
 5.19063 ++	rsub	r6, r7, 32
 5.19064 ++	moveq	r0, 0
 5.19065 ++	moveq	r12, 0
 5.19066 ++	breq	0f
 5.19067 ++	lsl	r0, r10, r6
 5.19068 ++	lsl	r12, r11, r6
 5.19069 ++0:	
 5.19070 ++	lsr	r2, r3, r7
 5.19071 ++	mov	r3, 0
 5.19072 ++	/* Scale down the dividend to match the scaling of the quotient. */
 5.19073 ++	lsr	r1, r10, r7
 5.19074 ++	or	r1, r12
 5.19075 ++	lsr	r10, r11, r7
 5.19076 ++	mov	r11, 0
 5.19077 ++1:	
 5.19078 ++	/* Start performing the same rounding as done for normal numbers
 5.19079 ++	   but this time we have scaled the quotient and dividend and hence
 5.19080 ++	   need a little different comparison. */
 5.19081 ++	/* Truncate and add guard bit. */
 5.19082 ++	andl	r2, 0xff00
 5.19083 ++	orl	r2, 0x0080	
 5.19084 ++	
 5.19085 ++	/* Now do the multiplication. */
 5.19086 ++        mulu.d  r6, r3, r8
 5.19087 ++        macu.d  r6, r2, r9
 5.19088 ++        mulu.d  r4, r2, r8
 5.19089 ++        mulu.d  r8, r3, r9
 5.19090 ++	add	r5, r6
 5.19091 ++	adc	r8, r8, r7	
 5.19092 ++	acr	r9
 5.19093 ++
 5.19094 ++	/* Set exponent to 0 */
 5.19095 ++	mov	r7, 0	
 5.19096 ++
 5.19097 ++	/* Check if remainder is positive, negative or equal. */
 5.19098 ++	bfextu	r12, r2, 8, 1  /* Get parity bit into bit 0 of r0 */ 
 5.19099 ++	cp	r4, r0
 5.19100 ++	cpc	r5, r1
 5.19101 ++	/* Now the rest of the rounding is the same as for normals. */
 5.19102 ++	rjmp	__avr32_f64_div_round_subnormal
 5.19103 ++	
 5.19104 ++#endif
 5.19105 ++15:	
 5.19106 ++	/* Flush to zero for the fast version. */
 5.19107 ++        mov     r11, lr /*Get correct sign*/
 5.19108 ++        andh    r11, 0x8000, COH
 5.19109 ++        mov     r10, 0
 5.19110 ++        ldm     sp++, r0, r1, r2, r3, r4, r5, r6, r7,pc
 5.19111 ++	 
 5.19112 ++16:     /* Return NaN. */
 5.19113 ++        mov     r11, -1
 5.19114 ++        mov     r10, -1
 5.19115 ++        ldm     sp++, r0, r1, r2, r3, r4, r5, r6, r7,pc
 5.19116 ++        
 5.19117 ++17:     /* Return INF. */
 5.19118 ++        mov     r11, lr /*Get correct sign*/
 5.19119 ++        andh    r11, 0x8000, COH
 5.19120 ++        orh     r11, 0x7ff0
 5.19121 ++        mov     r10, 0
 5.19122 ++        ldm     sp++, r0, r1, r2, r3, r4, r5, r6, r7,pc
 5.19123 ++
 5.19124 ++__avr32_f64_div_op1_zero:
 5.19125 ++        or      r5, r8, r9 << 1
 5.19126 ++        breq    16b             /* 0.0/0.0 -> NaN */
 5.19127 ++        bfextu  r4, r9, 20, 11
 5.19128 ++        cp      r4, 0x7ff
 5.19129 ++        brne    15b             /* Return zero */
 5.19130 ++        /* Check if divisor is Inf or NaN */
 5.19131 ++        or      r5, r8, r9 << 12
 5.19132 ++        breq    15b             /* Divisor is inf -> return zero */
 5.19133 ++        rjmp    16b             /* Return NaN */                
 5.19134 ++        
 5.19135 ++        
 5.19136 ++        
 5.19137 ++
 5.19138 ++#endif  
 5.19139 ++                
 5.19140 ++#if defined(L_avr32_f32_addsub) || defined(L_avr32_f32_addsub_fast)
 5.19141 ++
 5.19142 ++        .align  2
 5.19143 ++__avr32_f32_sub_from_add:
 5.19144 ++        /* Switch sign on op2 */
 5.19145 ++        eorh    r11, 0x8000
 5.19146 ++
 5.19147 ++#if defined(L_avr32_f32_addsub_fast)
 5.19148 ++        .global __avr32_f32_sub_fast
 5.19149 ++        .type  __avr32_f32_sub_fast,@function
 5.19150 ++__avr32_f32_sub_fast:
 5.19151 ++#else
 5.19152 ++        .global __avr32_f32_sub
 5.19153 ++        .type  __avr32_f32_sub,@function
 5.19154 ++__avr32_f32_sub:
 5.19155 ++#endif 
 5.19156 ++ 
 5.19157 ++        /* Check signs */
 5.19158 ++        eor     r8, r11, r12
 5.19159 ++        /* Different signs, use subtraction. */
 5.19160 ++        brmi    __avr32_f32_add_from_sub
 5.19161 ++ 
 5.19162 ++        /* Get sign of op1 */
 5.19163 ++        mov     r8, r12
 5.19164 ++        andh    r12, 0x8000, COH                
 5.19165 ++ 
 5.19166 ++        /* Remove sign from operands */
 5.19167 ++        cbr     r11, 31
 5.19168 ++#if defined(L_avr32_f32_addsub_fast)
 5.19169 ++        reteq   r8      /* If op2 is zero return op1 */
 5.19170 ++#endif
 5.19171 ++        cbr     r8, 31
 5.19172 ++ 
 5.19173 ++        /* Put the number with the largest exponent in r10
 5.19174 ++           and the number with the smallest exponent in r9 */
 5.19175 ++        max     r10, r8, r11
 5.19176 ++        min     r9, r8, r11
 5.19177 ++        cp      r10, r8 /*If largest operand (in R10) is not equal to op1*/
 5.19178 ++        subne   r12, 1 /* Subtract 1 from sign, which will invert MSB of r12*/
 5.19179 ++        andh    r12, 0x8000, COH /*Mask all but MSB*/
 5.19180 ++ 
 5.19181 ++        /* Unpack exponent and mantissa of op1 */
 5.19182 ++        lsl     r8, r10, 8
 5.19183 ++        sbr     r8, 31  /* Set implicit bit. */
 5.19184 ++        lsr     r10, 23 
 5.19185 ++                
 5.19186 ++        /* op1 is NaN or Inf. */
 5.19187 ++        cp.w    r10, 0xff
 5.19188 ++        breq    __avr32_f32_sub_op1_nan_or_inf
 5.19189 ++        
 5.19190 ++        /* Unpack exponent and mantissa of op2 */
 5.19191 ++        lsl     r11, r9, 8
 5.19192 ++        sbr     r11, 31  /* Set implicit bit. */
 5.19193 ++        lsr     r9, 23  
 5.19194 ++ 
 5.19195 ++#if defined(L_avr32_f32_addsub)
 5.19196 ++        /* Keep sticky bit for correct IEEE rounding */
 5.19197 ++        st.w    --sp, r12
 5.19198 ++ 
 5.19199 ++        /* op2 is either zero or subnormal. */
 5.19200 ++        breq    __avr32_f32_sub_op2_subnormal
 5.19201 ++0:      
 5.19202 ++        /* Get shift amount to scale mantissa of op2. */
 5.19203 ++        sub     r12, r10, r9                 
 5.19204 ++
 5.19205 ++	breq	__avr32_f32_sub_shift_done
 5.19206 ++ 
 5.19207 ++        /* Saturate the shift amount to 31. If the amount
 5.19208 ++           is any larger op2 is insignificant. */
 5.19209 ++        satu    r12 >> 0, 5      
 5.19210 ++
 5.19211 ++        /* Put the remaining bits into r9.*/
 5.19212 ++        rsub    r9, r12, 32
 5.19213 ++        lsl     r9, r11, r9
 5.19214 ++	
 5.19215 ++	/* If the remaining bits are non-zero then we must subtract one
 5.19216 ++	   more from opL.  */
 5.19217 ++	subne	r8, 1
 5.19218 ++	srne	r9	/* LSB of r9 represents sticky bits. */
 5.19219 ++
 5.19220 ++        /* Shift mantissa of op2 to same decimal point as the mantissa
 5.19221 ++           of op1. */
 5.19222 ++        lsr     r11, r11, r12
 5.19223 ++ 
 5.19224 ++
 5.19225 ++__avr32_f32_sub_shift_done:	
 5.19226 ++        /* Now subtract the mantissas. */
 5.19227 ++        sub     r8, r11
 5.19228 ++ 
 5.19229 ++        ld.w    r12, sp++
 5.19230 ++ 
 5.19231 ++        /* Normalize resulting mantissa. */
 5.19232 ++        clz     r11, r8
 5.19233 ++
 5.19234 ++	retcs	0
 5.19235 ++        lsl     r8, r8, r11
 5.19236 ++        sub     r10, r11
 5.19237 ++        brle    __avr32_f32_sub_subnormal_result
 5.19238 ++
 5.19239 ++        /* Insert the bits we will remove from the mantissa into r9[31:24] */
 5.19240 ++	or	r9, r9, r8 << 24
 5.19241 ++#else
 5.19242 ++        /* Ignore sticky bit to simplify and speed up rounding */
 5.19243 ++        /* op2 is either zero or subnormal. */
 5.19244 ++        breq    __avr32_f32_sub_op2_subnormal
 5.19245 ++0:      
 5.19246 ++        /* Get shift amount to scale mantissa of op2. */
 5.19247 ++        rsub    r9, r10                 
 5.19248 ++ 
 5.19249 ++        /* Saturate the shift amount to 31. If the amount
 5.19250 ++           is any larger op2 is insignificant. */
 5.19251 ++        satu    r9 >> 0, 5      
 5.19252 ++ 
 5.19253 ++        /* Shift mantissa of op2 to same decimal point as the mantissa
 5.19254 ++           of op1. */
 5.19255 ++        lsr     r11, r11, r9
 5.19256 ++ 
 5.19257 ++        /* Now subtract the mantissas. */
 5.19258 ++        sub     r8, r11
 5.19259 ++ 
 5.19260 ++        /* Normalize resulting mantissa. */
 5.19261 ++        clz     r9, r8
 5.19262 ++	retcs	0
 5.19263 ++        lsl     r8, r8, r9
 5.19264 ++        sub     r10, r9
 5.19265 ++        brle    __avr32_f32_sub_subnormal_result        
 5.19266 ++#endif
 5.19267 ++        
 5.19268 ++        /* Pack result. */
 5.19269 ++        or      r12, r12, r8 >> 8
 5.19270 ++        bfins   r12, r10, 23, 8         
 5.19271 ++ 
 5.19272 ++        /* Round */     
 5.19273 ++__avr32_f32_sub_round:
 5.19274 ++#if defined(L_avr32_f32_addsub)
 5.19275 ++	mov_imm	r10, 0x80000000
 5.19276 ++        bld     r12, 0
 5.19277 ++        subne   r10, -1 
 5.19278 ++        cp.w    r9, r10
 5.19279 ++        subhs   r12, -1
 5.19280 ++#else
 5.19281 ++        bld     r8, 7 
 5.19282 ++        acr     r12
 5.19283 ++#endif  
 5.19284 ++        
 5.19285 ++        ret     r12     
 5.19286 ++ 
 5.19287 ++ 
 5.19288 ++__avr32_f32_sub_op2_subnormal:
 5.19289 ++        /* Fix implicit bit and adjust exponent of subnormals. */
 5.19290 ++        cbr     r11, 31
 5.19291 ++        /* Set exponent to 1 if we do not have a zero. */
 5.19292 ++        movne   r9,1
 5.19293 ++ 
 5.19294 ++        /* Check if op1 is also subnormal. */
 5.19295 ++        cp.w    r10, 0
 5.19296 ++        brne    0b
 5.19297 ++ 
 5.19298 ++        cbr     r8, 31
 5.19299 ++         /* If op1 is not zero set exponent to 1. */
 5.19300 ++        movne   r10,1
 5.19301 ++                
 5.19302 ++        rjmp    0b
 5.19303 ++ 
 5.19304 ++__avr32_f32_sub_op1_nan_or_inf: 
 5.19305 ++        /* Check if op1 is NaN, if so return NaN */
 5.19306 ++        lsl     r11, r8, 1
 5.19307 ++        retne   -1
 5.19308 ++ 
 5.19309 ++        /* op1 is Inf. */
 5.19310 ++        bfins   r12, r10, 23, 8 /* Generate Inf in r12 */
 5.19311 ++ 
 5.19312 ++        /* Check if op2 is Inf. or NaN */
 5.19313 ++        lsr     r11, r9, 23
 5.19314 ++        cp.w    r11, 0xff
 5.19315 ++        retne   r12             /* op2 not Inf or NaN, return op1 */
 5.19316 ++ 
 5.19317 ++        ret     -1              /* op2 Inf or NaN, return NaN */
 5.19318 ++ 
 5.19319 ++__avr32_f32_sub_subnormal_result:
 5.19320 ++        /* Check if the number is so small that
 5.19321 ++           it will be represented with zero. */
 5.19322 ++        rsub    r10, r10, 9
 5.19323 ++        rsub    r11, r10, 32
 5.19324 ++        retcs   0
 5.19325 ++ 
 5.19326 ++        /* Shift the mantissa into the correct position.*/
 5.19327 ++        lsr     r10, r8, r10
 5.19328 ++        /* Add sign bit. */
 5.19329 ++        or      r12, r10
 5.19330 ++
 5.19331 ++        /* Put the shifted out bits in the most significant part
 5.19332 ++           of r8. */
 5.19333 ++        lsl     r8, r8, r11
 5.19334 ++ 
 5.19335 ++#if defined(L_avr32_f32_addsub)
 5.19336 ++        /* Add all the remainder bits used for rounding into r9 */
 5.19337 ++        or      r9, r8
 5.19338 ++#else
 5.19339 ++        lsr     r8, 24 
 5.19340 ++#endif
 5.19341 ++        rjmp    __avr32_f32_sub_round
 5.19342 ++ 
 5.19343 ++                                
 5.19344 ++        .align  2
 5.19345 ++
 5.19346 ++__avr32_f32_add_from_sub:
 5.19347 ++        /* Switch sign on op2 */
 5.19348 ++        eorh    r11, 0x8000
 5.19349 ++
 5.19350 ++#if defined(L_avr32_f32_addsub_fast)
 5.19351 ++        .global __avr32_f32_add_fast
 5.19352 ++        .type  __avr32_f32_add_fast,@function
 5.19353 ++__avr32_f32_add_fast:
 5.19354 ++#else
 5.19355 ++        .global __avr32_f32_add
 5.19356 ++        .type  __avr32_f32_add,@function
 5.19357 ++__avr32_f32_add:
 5.19358 ++#endif 
 5.19359 ++	
 5.19360 ++        /* Check signs */
 5.19361 ++        eor     r8, r11, r12
 5.19362 ++        /* Different signs, use subtraction. */
 5.19363 ++        brmi    __avr32_f32_sub_from_add
 5.19364 ++ 
 5.19365 ++        /* Get sign of op1 */
 5.19366 ++        mov     r8, r12
 5.19367 ++        andh    r12, 0x8000, COH                
 5.19368 ++ 
 5.19369 ++        /* Remove sign from operands */
 5.19370 ++        cbr     r11, 31
 5.19371 ++#if defined(L_avr32_f32_addsub_fast)
 5.19372 ++        reteq   r8      /* If op2 is zero return op1 */
 5.19373 ++#endif
 5.19374 ++        cbr     r8, 31
 5.19375 ++ 
 5.19376 ++        /* Put the number with the largest exponent in r10
 5.19377 ++           and the number with the smallest exponent in r9 */
 5.19378 ++        max     r10, r8, r11
 5.19379 ++        min     r9, r8, r11
 5.19380 ++ 
 5.19381 ++        /* Unpack exponent and mantissa of op1 */
 5.19382 ++        lsl     r8, r10, 8
 5.19383 ++        sbr     r8, 31  /* Set implicit bit. */
 5.19384 ++        lsr     r10, 23 
 5.19385 ++                
 5.19386 ++        /* op1 is NaN or Inf. */
 5.19387 ++        cp.w    r10, 0xff
 5.19388 ++        breq    __avr32_f32_add_op1_nan_or_inf
 5.19389 ++        
 5.19390 ++        /* Unpack exponent and mantissa of op2 */
 5.19391 ++        lsl     r11, r9, 8
 5.19392 ++        sbr     r11, 31  /* Set implicit bit. */
 5.19393 ++        lsr     r9, 23  
 5.19394 ++ 
 5.19395 ++#if defined(L_avr32_f32_addsub)
 5.19396 ++        /* op2 is either zero or subnormal. */
 5.19397 ++        breq    __avr32_f32_add_op2_subnormal
 5.19398 ++0:      
 5.19399 ++        /* Keep sticky bit for correct IEEE rounding */
 5.19400 ++        st.w    --sp, r12
 5.19401 ++ 
 5.19402 ++        /* Get shift amount to scale mantissa of op2. */
 5.19403 ++        rsub    r9, r10                 
 5.19404 ++ 
 5.19405 ++        /* Saturate the shift amount to 31. If the amount
 5.19406 ++           is any larger op2 is insignificant. */
 5.19407 ++        satu    r9 >> 0, 5      
 5.19408 ++ 
 5.19409 ++        /* Shift mantissa of op2 to same decimal point as the mantissa
 5.19410 ++           of op1. */
 5.19411 ++        lsr     r12, r11, r9
 5.19412 ++ 
 5.19413 ++        /* Put the remainding bits into r11[23:..].*/
 5.19414 ++        rsub    r9, r9, (32-8)
 5.19415 ++        lsl     r11, r11, r9
 5.19416 ++        /* Insert the bits we will remove from the mantissa into r11[31:24] */
 5.19417 ++        bfins   r11, r12, 24, 8
 5.19418 ++ 
 5.19419 ++        /* Now add the mantissas. */
 5.19420 ++        add     r8, r12
 5.19421 ++ 
 5.19422 ++        ld.w    r12, sp++
 5.19423 ++#else
 5.19424 ++        /* Ignore sticky bit to simplify and speed up rounding */
 5.19425 ++        /* op2 is either zero or subnormal. */
 5.19426 ++        breq    __avr32_f32_add_op2_subnormal
 5.19427 ++0:      
 5.19428 ++        /* Get shift amount to scale mantissa of op2. */
 5.19429 ++        rsub    r9, r10                 
 5.19430 ++ 
 5.19431 ++        /* Saturate the shift amount to 31. If the amount
 5.19432 ++           is any larger op2 is insignificant. */
 5.19433 ++        satu    r9 >> 0, 5      
 5.19434 ++ 
 5.19435 ++        /* Shift mantissa of op2 to same decimal point as the mantissa
 5.19436 ++           of op1. */
 5.19437 ++        lsr     r11, r11, r9
 5.19438 ++ 
 5.19439 ++        /* Now add the mantissas. */
 5.19440 ++        add     r8, r11
 5.19441 ++        
 5.19442 ++#endif
 5.19443 ++        /* Check if we overflowed. */
 5.19444 ++        brcs    __avr32_f32_add_res_of
 5.19445 ++1:      
 5.19446 ++        /* Pack result. */
 5.19447 ++        or      r12, r12, r8 >> 8
 5.19448 ++        bfins   r12, r10, 23, 8         
 5.19449 ++ 
 5.19450 ++        /* Round */     
 5.19451 ++#if defined(L_avr32_f32_addsub)
 5.19452 ++	mov_imm	r10, 0x80000000
 5.19453 ++        bld     r12, 0
 5.19454 ++        subne   r10, -1 
 5.19455 ++        cp.w    r11, r10
 5.19456 ++        subhs   r12, -1
 5.19457 ++#else
 5.19458 ++        bld     r8, 7 
 5.19459 ++        acr     r12
 5.19460 ++#endif  
 5.19461 ++
 5.19462 ++        ret     r12     
 5.19463 ++ 
 5.19464 ++__avr32_f32_add_op2_subnormal:
 5.19465 ++        /* Fix implicit bit and adjust exponent of subnormals. */
 5.19466 ++        cbr     r11, 31
 5.19467 ++        /* Set exponent to 1 if we do not have a zero. */
 5.19468 ++        movne   r9,1
 5.19469 ++ 
 5.19470 ++        /* Check if op1 is also subnormal. */
 5.19471 ++        cp.w    r10, 0
 5.19472 ++        brne    0b
 5.19473 ++	/* Both operands subnormal, just add the mantissas and 
 5.19474 ++	   pack. If the addition of the subnormal numbers results
 5.19475 ++	   in a normal number then the exponent will automatically
 5.19476 ++	   be set to 1 by the addition. */
 5.19477 ++        cbr     r8, 31
 5.19478 ++	add	r11, r8
 5.19479 ++	or	r12, r12, r11 >> 8
 5.19480 ++	ret	r12
 5.19481 ++ 
 5.19482 ++__avr32_f32_add_op1_nan_or_inf: 
 5.19483 ++        /* Check if op1 is NaN, if so return NaN */
 5.19484 ++        lsl     r11, r8, 1
 5.19485 ++        retne   -1
 5.19486 ++ 
 5.19487 ++        /* op1 is Inf. */
 5.19488 ++        bfins   r12, r10, 23, 8 /* Generate Inf in r12 */
 5.19489 ++ 
 5.19490 ++        /* Check if op2 is Inf. or NaN */
 5.19491 ++        lsr     r11, r9, 23
 5.19492 ++        cp.w    r11, 0xff
 5.19493 ++        retne   r12             /* op2 not Inf or NaN, return op1 */
 5.19494 ++ 
 5.19495 ++        lsl     r9, 9
 5.19496 ++        reteq   r12             /* op2 Inf return op1 */
 5.19497 ++        ret     -1              /* op2 is NaN, return NaN */ 
 5.19498 ++ 
 5.19499 ++__avr32_f32_add_res_of:
 5.19500 ++        /* We overflowed. Increase exponent and shift mantissa.*/
 5.19501 ++        lsr     r8, 1
 5.19502 ++        sub     r10, -1
 5.19503 ++ 
 5.19504 ++        /* Clear mantissa to set result to Inf if the exponent is 255. */
 5.19505 ++        cp.w    r10, 255
 5.19506 ++        moveq   r8, 0
 5.19507 ++        moveq   r11, 0
 5.19508 ++        rjmp    1b      
 5.19509 ++        
 5.19510 ++        
 5.19511 ++#endif
 5.19512 ++
 5.19513 ++	
 5.19514 ++#if defined(L_avr32_f32_div) || defined(L_avr32_f32_div_fast)
 5.19515 ++	.align	2
 5.19516 ++
 5.19517 ++#if defined(L_avr32_f32_div_fast)
 5.19518 ++        .global __avr32_f32_div_fast
 5.19519 ++        .type  __avr32_f32_div_fast,@function
 5.19520 ++__avr32_f32_div_fast:
 5.19521 ++#else
 5.19522 ++        .global __avr32_f32_div
 5.19523 ++        .type  __avr32_f32_div,@function
 5.19524 ++__avr32_f32_div:
 5.19525 ++#endif
 5.19526 ++	 
 5.19527 ++        eor     r8, r11, r12            /* MSB(r8) = Sign(op1) ^ Sign(op2) */
 5.19528 ++ 
 5.19529 ++        /* Unpack */
 5.19530 ++        lsl     r12,1
 5.19531 ++        reteq   0                       /* Return zero if op1 is zero */
 5.19532 ++        lsl     r11,1
 5.19533 ++        breq    4f                      /* Check op2 for zero */
 5.19534 ++        
 5.19535 ++        /* Unpack op1*/ 
 5.19536 ++        /* exp: r9 */
 5.19537 ++        /* sf:  r12 */
 5.19538 ++        lsr     r9, r12, 24
 5.19539 ++        breq    11f /*If number is subnormal*/
 5.19540 ++        cp      r9, 0xff
 5.19541 ++        brhs    2f  /* Check op1 for NaN or Inf */      
 5.19542 ++        lsl     r12, 7
 5.19543 ++        sbr     r12, 31 /*Implicit bit*/
 5.19544 ++12:                     
 5.19545 ++ 
 5.19546 ++        /* Unpack op2*/
 5.19547 ++        /* exp: r10 */
 5.19548 ++        /* sf:  r11 */
 5.19549 ++        lsr     r10, r11, 24
 5.19550 ++        breq    13f /*If number is subnormal*/
 5.19551 ++        cp      r10, 0xff
 5.19552 ++        brhs    3f  /* Check op2 for NaN or Inf */      
 5.19553 ++        
 5.19554 ++        lsl     r11,7
 5.19555 ++        sbr     r11, 31 /*Implicit bit*/
 5.19556 ++14:     
 5.19557 ++ 
 5.19558 ++        /* For UC3, store with predecrement is faster than stm */
 5.19559 ++        st.w    --sp, r5
 5.19560 ++        st.d    --sp, r6
 5.19561 ++ 
 5.19562 ++        /* Calculate new exponent */
 5.19563 ++        sub     r9, r10
 5.19564 ++        sub     r9,-127
 5.19565 ++ 
 5.19566 ++        /* Divide */
 5.19567 ++        /* Approximating 1/d with the following recurrence: */
 5.19568 ++        /* R[j+1] = R[j]*(2-R[j]*d) */
 5.19569 ++        /* Using 2.30 format */
 5.19570 ++        /* TWO:  r10 */
 5.19571 ++        /* d:    r5 */
 5.19572 ++        /* Multiply result :     r6, r7 */
 5.19573 ++        /* Initial guess :       r11 */
 5.19574 ++        /* New approximations :  r11 */
 5.19575 ++        /* Dividend :            r12 */
 5.19576 ++
 5.19577 ++	/* Load TWO */
 5.19578 ++	mov_imm	r10, 0x80000000 
 5.19579 ++         
 5.19580 ++        lsr     r12, 2     /* Get significand of Op1 in 2.30 format */
 5.19581 ++        lsr     r5, r11, 2 /* Get significand of Op2 (=d) in 2.30 format */
 5.19582 ++ 
 5.19583 ++        /* Load initial guess, using look-up table */
 5.19584 ++        /* Initial guess is of format 01.XY, where XY is constructed as follows: */
 5.19585 ++        /* Let d be of following format: 00.1xy....., then XY=~xy */
 5.19586 ++        /* For d=00.100 = 0,5   -> initial guess=01.11 = 1,75 */
 5.19587 ++        /* For d=00.101 = 0,625 -> initial guess=01.11 = 1,5  */
 5.19588 ++        /* For d=00.110 = 0,75  -> initial guess=01.11 = 1,25 */
 5.19589 ++        /* For d=00.111 = 0,875 -> initial guess=01.11 = 1,0  */
 5.19590 ++ 
 5.19591 ++        lsr     r11, r10, 1
 5.19592 ++        bfextu  r6, r5, 27, 2
 5.19593 ++        com     r6
 5.19594 ++        bfins   r11, r6, 28, 2
 5.19595 ++ 
 5.19596 ++        /* First approximation */
 5.19597 ++        /* r7 = R[j]*d */
 5.19598 ++        mulu.d  r6, r11, r5
 5.19599 ++        /* r7 = 2-R[j]*d */
 5.19600 ++        sub    r7, r10, r7<<2
 5.19601 ++        /* r11 = R[j]*(2-R[j]*d) */
 5.19602 ++        mulu.d  r6, r11, r7
 5.19603 ++        lsl     r11, r7, 2
 5.19604 ++         
 5.19605 ++        /* Second approximation */
 5.19606 ++        /* r7 = R[j]*d */
 5.19607 ++        mulu.d  r6, r11, r5
 5.19608 ++        /* r7 = 2-R[j]*d */
 5.19609 ++        sub    r7, r10, r7<<2
 5.19610 ++        /* r11 = R[j]*(2-R[j]*d) */
 5.19611 ++        mulu.d  r6, r11, r7
 5.19612 ++        lsl     r11, r7, 2
 5.19613 ++         
 5.19614 ++        /* Third approximation */
 5.19615 ++        /* r7 = R[j]*d */
 5.19616 ++        mulu.d  r6, r11, r5
 5.19617 ++        /* r7 = 2-R[j]*d */
 5.19618 ++        sub    r7, r10, r7<<2
 5.19619 ++        /* r11 = R[j]*(2-R[j]*d) */
 5.19620 ++        mulu.d  r6, r11, r7
 5.19621 ++        lsl     r11, r7, 2
 5.19622 ++ 
 5.19623 ++        /* Fourth approximation */
 5.19624 ++        /* r7 = R[j]*d */
 5.19625 ++        mulu.d  r6, r11, r5
 5.19626 ++        /* r7 = 2-R[j]*d */
 5.19627 ++        sub    r7, r10, r7<<2
 5.19628 ++        /* r11 = R[j]*(2-R[j]*d) */
 5.19629 ++        mulu.d  r6, r11, r7
 5.19630 ++        lsl     r11, r7, 2
 5.19631 ++ 
 5.19632 ++ 
 5.19633 ++        /* Multiply with dividend to get quotient, r7 = sf(op1)/sf(op2) */
 5.19634 ++        mulu.d  r6, r11, r12
 5.19635 ++ 
 5.19636 ++        /* Shift by 3 to get result in 1.31 format, as required by the exponent. */
 5.19637 ++        /* Note that 1.31 format is already used by the exponent in r9, since */
 5.19638 ++        /* a bias of 127 was added to the result exponent, even though the implicit */
 5.19639 ++        /* bit was inserted. This gives the exponent an additional bias of 1, which */
 5.19640 ++        /* supports 1.31 format. */
 5.19641 ++	//lsl     r10, r7, 3
 5.19642 ++
 5.19643 ++	/* Adjust exponent and mantissa in case the result is of format
 5.19644 ++	   0000.1xxx to 0001.xxx*/	
 5.19645 ++#if defined(L_avr32_f32_div)
 5.19646 ++	lsr	r12, 4	/* Scale dividend to 6.26 format to match the
 5.19647 ++			   result of the multiplication of the divisor and 
 5.19648 ++			   quotient to get the remainder. */
 5.19649 ++#endif
 5.19650 ++	bld	r7, 31-3
 5.19651 ++	breq	0f
 5.19652 ++	lsl	r7, 1	
 5.19653 ++	sub	r9, 1
 5.19654 ++#if defined(L_avr32_f32_div)
 5.19655 ++	lsl	r12, 1	/* Scale dividend to 5.27 format to match the
 5.19656 ++			   result of the multiplication of the divisor and 
 5.19657 ++			   quotient to get the remainder. */
 5.19658 ++#endif
 5.19659 ++0:		
 5.19660 ++        cp      r9, 0   
 5.19661 ++        brle    __avr32_f32_div_res_subnormal /* Result was subnormal. */
 5.19662 ++
 5.19663 ++		
 5.19664 ++#if defined(L_avr32_f32_div)
 5.19665 ++	/* In order to round correctly we calculate the remainder:	
 5.19666 ++	   Remainder = dividend[r12] - divisor[r5]*quotient[r7] 
 5.19667 ++	   for the case when the quotient is halfway between the round-up
 5.19668 ++	   value and the round down value. If the remainder then is negative
 5.19669 ++	   it means that the quotient was to big and that it should not be
 5.19670 ++           rounded up, if the remainder is positive the quotient was to small
 5.19671 ++	   and we need to round up. If the remainder is zero it means that the
 5.19672 ++	   quotient is exact but since we need to remove the guard bit we should
 5.19673 ++	   round to even. */
 5.19674 ++	andl	r7, 0xffe0
 5.19675 ++	orl	r7, 0x0010
 5.19676 ++
 5.19677 ++	/* Now do the multiplication. The quotient has the format 4.28
 5.19678 ++	   while the divisor has the format 2.30 which gives a result
 5.19679 ++	   of 6.26 */
 5.19680 ++	mulu.d	r10, r5, r7
 5.19681 ++
 5.19682 ++	/* Check if remainder is positive, negative or equal. */
 5.19683 ++	bfextu	r5, r7, 5, 1  /* Get parity bit into bit 0 of r5 */ 
 5.19684 ++	cp	r10, 0
 5.19685 ++__avr32_f32_div_round_subnormal:	
 5.19686 ++	cpc	r11, r12
 5.19687 ++	srlo	r11	/* Remainder positive:	 we need to round up.*/
 5.19688 ++	moveq	r11, r5  /* Remainder zero:	 round up if mantissa odd. */
 5.19689 ++#else
 5.19690 ++	bfextu	r11, r7, 4, 1  /* Get guard bit */ 	
 5.19691 ++#endif
 5.19692 ++                               
 5.19693 ++        /* Pack final result*/
 5.19694 ++        lsr     r12, r7, 5
 5.19695 ++        bfins   r12, r9, 23, 8
 5.19696 ++        /* For UC3, load with postincrement is faster than ldm */
 5.19697 ++        ld.d    r6, sp++
 5.19698 ++        ld.w    r5, sp++
 5.19699 ++        bld     r8, 31
 5.19700 ++        bst     r12, 31
 5.19701 ++	/* Rounding add. */
 5.19702 ++	add	r12, r11
 5.19703 ++        ret     r12
 5.19704 ++
 5.19705 ++__divsf_return_op1:     
 5.19706 ++        lsl     r8, 1
 5.19707 ++        ror     r12
 5.19708 ++        ret     r12
 5.19709 ++ 
 5.19710 ++ 
 5.19711 ++2:
 5.19712 ++        /* Op1 is NaN or inf */
 5.19713 ++        retne   -1      /* Return NaN if op1 is NaN */
 5.19714 ++        /* Op1 is inf check op2 */
 5.19715 ++	mov_imm	r9, 0xff000000
 5.19716 ++        cp      r11, r9
 5.19717 ++        brlo    __divsf_return_op1 /* inf/number gives inf */
 5.19718 ++        ret     -1      /* The rest gives NaN*/
 5.19719 ++3:      
 5.19720 ++        /* Op2 is NaN or inf */
 5.19721 ++        reteq   0       /* Return zero if number/inf*/
 5.19722 ++        ret     -1      /* Return NaN*/
 5.19723 ++4:
 5.19724 ++        /* Op2 is zero ? */
 5.19725 ++        tst     r12,r12
 5.19726 ++        reteq   -1      /* 0.0/0.0 is NaN */
 5.19727 ++        /* Nonzero/0.0 is Inf. Sign bit will be shifted in before returning*/
 5.19728 ++	mov_imm	r12, 0xff000000
 5.19729 ++        rjmp    __divsf_return_op1
 5.19730 ++                
 5.19731 ++11:     /* Op1 was denormal. Fix it. */
 5.19732 ++        lsl     r12,7
 5.19733 ++        clz     r9,r12
 5.19734 ++        lsl     r12,r12,r9
 5.19735 ++        rsub    r9,r9,1
 5.19736 ++        rjmp    12b
 5.19737 ++ 
 5.19738 ++13:     /* Op2 was denormal. Fix it. */ 
 5.19739 ++        lsl     r11,7
 5.19740 ++        clz     r10,r11
 5.19741 ++        lsl     r11,r11,r10
 5.19742 ++        rsub    r10,r10,1
 5.19743 ++        rjmp    14b
 5.19744 ++        
 5.19745 ++ 
 5.19746 ++__avr32_f32_div_res_subnormal:     /* Divide result was subnormal */
 5.19747 ++#if defined(L_avr32_f32_div)
 5.19748 ++	/* Check how much we must scale down the mantissa. */
 5.19749 ++	neg	r9
 5.19750 ++	sub	r9, -1     /* We do no longer have an implicit bit. */
 5.19751 ++	satu	r9 >> 0, 5 /* Saturate shift amount to max 32. */
 5.19752 ++	/* Scale down quotient */
 5.19753 ++	rsub	r10, r9, 32
 5.19754 ++	lsr	r7, r7, r9
 5.19755 ++	/* Scale down the dividend to match the scaling of the quotient. */
 5.19756 ++	lsl	r6, r12, r10	/* Make the divident 64-bit and put the lsw in r6 */
 5.19757 ++	lsr	r12, r12, r9
 5.19758 ++
 5.19759 ++	/* Start performing the same rounding as done for normal numbers
 5.19760 ++	   but this time we have scaled the quotient and dividend and hence
 5.19761 ++	   need a little different comparison. */
 5.19762 ++	andl	r7, 0xffe0
 5.19763 ++	orl	r7, 0x0010
 5.19764 ++
 5.19765 ++	/* Now do the multiplication. The quotient has the format 4.28
 5.19766 ++	   while the divisor has the format 2.30 which gives a result
 5.19767 ++	   of 6.26 */
 5.19768 ++	mulu.d	r10, r5, r7
 5.19769 ++
 5.19770 ++	/* Set exponent to 0 */
 5.19771 ++	mov	r9, 0	
 5.19772 ++
 5.19773 ++	/* Check if remainder is positive, negative or equal. */
 5.19774 ++	bfextu	r5, r7, 5, 1  /* Get parity bit into bit 0 of r5 */ 
 5.19775 ++	cp	r10, r6
 5.19776 ++	rjmp	__avr32_f32_div_round_subnormal
 5.19777 ++
 5.19778 ++#else
 5.19779 ++        ld.d    r6, sp++
 5.19780 ++        ld.w    r5, sp++
 5.19781 ++        /*Flush to zero*/
 5.19782 ++	ret	0
 5.19783 ++#endif
 5.19784 ++#endif
 5.19785 ++ 
 5.19786 ++#ifdef L_avr32_f32_mul
 5.19787 ++        .global __avr32_f32_mul
 5.19788 ++        .type  __avr32_f32_mul,@function
 5.19789 ++ 
 5.19790 ++                
 5.19791 ++__avr32_f32_mul:
 5.19792 ++        mov     r8, r12
 5.19793 ++        eor     r12, r11                /* MSB(r8) = Sign(op1) ^ Sign(op2) */
 5.19794 ++        andh    r12, 0x8000, COH
 5.19795 ++        
 5.19796 ++        /* arrange operands so that that op1 >= op2 */
 5.19797 ++        cbr     r8, 31
 5.19798 ++        breq    __avr32_f32_mul_op1_zero
 5.19799 ++        cbr     r11, 31
 5.19800 ++ 
 5.19801 ++        /* Put the number with the largest exponent in r10
 5.19802 ++           and the number with the smallest exponent in r9 */
 5.19803 ++        max     r10, r8, r11
 5.19804 ++        min     r9, r8, r11
 5.19805 ++ 
 5.19806 ++        /* Unpack exponent and mantissa of op1 */
 5.19807 ++        lsl     r8, r10, 8
 5.19808 ++        sbr     r8, 31  /* Set implicit bit. */
 5.19809 ++        lsr     r10, 23 
 5.19810 ++                
 5.19811 ++        /* op1 is NaN or Inf. */
 5.19812 ++        cp.w    r10, 0xff
 5.19813 ++        breq    __avr32_f32_mul_op1_nan_or_inf
 5.19814 ++        
 5.19815 ++        /* Unpack exponent and mantissa of op2 */
 5.19816 ++        lsl     r11, r9, 8
 5.19817 ++        sbr     r11, 31  /* Set implicit bit. */
 5.19818 ++        lsr     r9, 23  
 5.19819 ++ 
 5.19820 ++        /* op2 is either zero or subnormal. */
 5.19821 ++        breq    __avr32_f32_mul_op2_subnormal
 5.19822 ++0:      
 5.19823 ++        /* Calculate new exponent */
 5.19824 ++        add     r9,r10
 5.19825 ++ 
 5.19826 ++        /* Do the multiplication */
 5.19827 ++        mulu.d  r10,r8,r11
 5.19828 ++ 
 5.19829 ++        /* We might need to scale up by two if the MSB of the result is
 5.19830 ++           zero. */
 5.19831 ++        lsl     r8, r11, 1
 5.19832 ++        movcc   r11, r8
 5.19833 ++        subcc   r9, 1
 5.19834 ++ 
 5.19835 ++        /* Put the shifted out bits of the mantissa into r10 */
 5.19836 ++        lsr     r10, 8
 5.19837 ++        bfins   r10, r11, 24, 8
 5.19838 ++                
 5.19839 ++        sub     r9,(127-1)              /* remove extra exponent bias */
 5.19840 ++        brle    __avr32_f32_mul_res_subnormal
 5.19841 ++ 
 5.19842 ++        /* Check for Inf. */
 5.19843 ++        cp.w    r9, 0xff
 5.19844 ++        brge    1f
 5.19845 ++ 
 5.19846 ++        /* Pack result. */
 5.19847 ++        or      r12, r12, r11 >> 8
 5.19848 ++        bfins   r12, r9, 23, 8          
 5.19849 ++ 
 5.19850 ++        /* Round */     
 5.19851 ++__avr32_f32_mul_round:
 5.19852 ++	mov_imm	r8, 0x80000000
 5.19853 ++        bld     r12, 0
 5.19854 ++        subne   r8, -1  
 5.19855 ++ 
 5.19856 ++        cp.w    r10, r8
 5.19857 ++        subhs   r12, -1
 5.19858 ++        
 5.19859 ++        ret     r12     
 5.19860 ++ 
 5.19861 ++1:      
 5.19862 ++        /* Return Inf */        
 5.19863 ++        orh     r12, 0x7f80
 5.19864 ++        ret     r12
 5.19865 ++ 
 5.19866 ++__avr32_f32_mul_op2_subnormal:
 5.19867 ++        cbr     r11, 31
 5.19868 ++        clz     r9, r11
 5.19869 ++        retcs   0       /* op2 is zero. Return 0 */
 5.19870 ++        lsl     r11, r11, r9
 5.19871 ++        rsub    r9, r9, 1
 5.19872 ++                
 5.19873 ++        /* Check if op2 is subnormal. */
 5.19874 ++        tst     r10, r10
 5.19875 ++        brne    0b
 5.19876 ++ 
 5.19877 ++        /* op2 is subnormal */  
 5.19878 ++        cbr     r8, 31
 5.19879 ++        clz     r10, r11
 5.19880 ++        retcs   0       /* op1 is zero. Return 0 */
 5.19881 ++        lsl     r8, r8, r10
 5.19882 ++        rsub    r10, r10, 1
 5.19883 ++                        
 5.19884 ++        rjmp    0b
 5.19885 ++                
 5.19886 ++ 
 5.19887 ++__avr32_f32_mul_op1_nan_or_inf:
 5.19888 ++        /* Check if op1 is NaN, if so return NaN */
 5.19889 ++        lsl     r11, r8, 1
 5.19890 ++        retne   -1
 5.19891 ++ 
 5.19892 ++        /* op1 is Inf. */
 5.19893 ++        tst     r9, r9
 5.19894 ++        reteq   -1      /* Inf * 0 -> NaN */
 5.19895 ++ 
 5.19896 ++        bfins   r12, r10, 23, 8 /* Generate Inf in r12 */
 5.19897 ++ 
 5.19898 ++        /* Check if op2 is Inf. or NaN */
 5.19899 ++        lsr     r11, r9, 23
 5.19900 ++        cp.w    r11, 0xff
 5.19901 ++        retne   r12             /* op2 not Inf or NaN, return Info */
 5.19902 ++ 
 5.19903 ++        lsl     r9, 9
 5.19904 ++        reteq   r12             /* op2 Inf return Inf */
 5.19905 ++        ret     -1              /* op2 is NaN, return NaN */ 
 5.19906 ++        
 5.19907 ++__avr32_f32_mul_res_subnormal:
 5.19908 ++        /* Check if the number is so small that
 5.19909 ++           it will be represented with zero. */
 5.19910 ++        rsub    r9, r9, 9
 5.19911 ++        rsub    r8, r9, 32
 5.19912 ++        retcs   0
 5.19913 ++ 
 5.19914 ++        /* Shift the mantissa into the correct position.*/
 5.19915 ++        lsr     r9, r11, r9
 5.19916 ++        /* Add sign bit. */
 5.19917 ++        or      r12, r9
 5.19918 ++        /* Put the shifted out bits in the most significant part
 5.19919 ++           of r8. */
 5.19920 ++        lsl     r11, r11, r8
 5.19921 ++ 
 5.19922 ++        /* Add all the remainder bits used for rounding into r11 */
 5.19923 ++        andh    r10, 0x00FF     
 5.19924 ++        or      r10, r11
 5.19925 ++        rjmp    __avr32_f32_mul_round
 5.19926 ++
 5.19927 ++__avr32_f32_mul_op1_zero:
 5.19928 ++        bfextu  r10, r11, 23, 8
 5.19929 ++        cp.w    r10, 0xff
 5.19930 ++        retne   r12
 5.19931 ++        reteq   -1        
 5.19932 ++ 
 5.19933 ++#endif  
 5.19934 ++ 
 5.19935 ++        
 5.19936 ++#ifdef L_avr32_s32_to_f32
 5.19937 ++        .global __avr32_s32_to_f32
 5.19938 ++        .type  __avr32_s32_to_f32,@function
 5.19939 ++__avr32_s32_to_f32:
 5.19940 ++        cp      r12, 0
 5.19941 ++        reteq   r12     /* If zero then return zero float */
 5.19942 ++        mov     r11, r12 /* Keep the sign */
 5.19943 ++        abs     r12     /* Compute the absolute value */
 5.19944 ++        mov     r10, 31 + 127   /* Set the correct exponent */
 5.19945 ++        
 5.19946 ++        /* Normalize */
 5.19947 ++        normalize_sf    r10 /*exp*/, r12 /*mant*/, r9 /*scratch*/       
 5.19948 ++ 
 5.19949 ++        /* Check for subnormal result */
 5.19950 ++        cp.w    r10, 0
 5.19951 ++        brle    __avr32_s32_to_f32_subnormal
 5.19952 ++ 
 5.19953 ++        round_sf        r10 /*exp*/, r12 /*mant*/, r9 /*scratch*/       
 5.19954 ++        pack_sf         r12 /*sf*/, r10 /*exp*/, r12 /*mant*/
 5.19955 ++        lsl     r11, 1
 5.19956 ++        ror     r12
 5.19957 ++        ret     r12             
 5.19958 ++ 
 5.19959 ++__avr32_s32_to_f32_subnormal:
 5.19960 ++        /* Adjust a subnormal result */
 5.19961 ++        adjust_subnormal_sf     r12/*sf*/, r10 /*exp*/, r12 /*mant*/, r11/*sign*/, r9 /*scratch*/
 5.19962 ++        ret     r12
 5.19963 ++        
 5.19964 ++#endif
 5.19965 ++ 
 5.19966 ++#ifdef L_avr32_u32_to_f32
 5.19967 ++        .global __avr32_u32_to_f32
 5.19968 ++        .type  __avr32_u32_to_f32,@function
 5.19969 ++__avr32_u32_to_f32:
 5.19970 ++        cp      r12, 0
 5.19971 ++        reteq   r12     /* If zero then return zero float */
 5.19972 ++        mov     r10, 31 + 127   /* Set the correct exponent */
 5.19973 ++        
 5.19974 ++        /* Normalize */
 5.19975 ++        normalize_sf    r10 /*exp*/, r12 /*mant*/, r9 /*scratch*/       
 5.19976 ++ 
 5.19977 ++        /* Check for subnormal result */
 5.19978 ++        cp.w    r10, 0
 5.19979 ++        brle    __avr32_u32_to_f32_subnormal
 5.19980 ++ 
 5.19981 ++        round_sf        r10 /*exp*/, r12 /*mant*/, r9 /*scratch*/       
 5.19982 ++        pack_sf         r12 /*sf*/, r10 /*exp*/, r12 /*mant*/
 5.19983 ++        lsr     r12,1   /* Sign bit is 0 for unsigned int */
 5.19984 ++        ret     r12             
 5.19985 ++ 
 5.19986 ++__avr32_u32_to_f32_subnormal:
 5.19987 ++        /* Adjust a subnormal result */
 5.19988 ++        mov     r8, 0
 5.19989 ++        adjust_subnormal_sf     r12/*sf*/,r10 /*exp*/, r12 /*mant*/,r8/*sign*/, r9 /*scratch*/
 5.19990 ++        ret     r12
 5.19991 ++        
 5.19992 ++        
 5.19993 ++#endif
 5.19994 ++        
 5.19995 ++ 
 5.19996 ++#ifdef L_avr32_f32_to_s32
 5.19997 ++        .global __avr32_f32_to_s32
 5.19998 ++        .type  __avr32_f32_to_s32,@function
 5.19999 ++__avr32_f32_to_s32:
 5.20000 ++        bfextu  r11, r12, 23, 8
 5.20001 ++        sub     r11,127                 /* Fix bias */
 5.20002 ++        retlo   0                       /* Negative exponent yields zero integer */
 5.20003 ++ 
 5.20004 ++        /* Shift mantissa into correct position */
 5.20005 ++        rsub    r11,r11,31      /* Shift amount */
 5.20006 ++        lsl     r10,r12,8       /* Get mantissa */
 5.20007 ++        sbr     r10,31          /* Add implicit bit */
 5.20008 ++        lsr     r10,r10,r11     /* Perform shift */
 5.20009 ++        lsl     r12,1           /* Check sign */
 5.20010 ++        retcc   r10             /* if positive, we are done */
 5.20011 ++        neg     r10             /* if negative float, negate result */
 5.20012 ++        ret     r10
 5.20013 ++ 
 5.20014 ++#endif  
 5.20015 ++        
 5.20016 ++#ifdef L_avr32_f32_to_u32
 5.20017 ++        .global __avr32_f32_to_u32
 5.20018 ++        .type  __avr32_f32_to_u32,@function
 5.20019 ++__avr32_f32_to_u32:
 5.20020 ++        cp      r12,0
 5.20021 ++        retmi   0                       /* Negative numbers gives 0 */
 5.20022 ++        bfextu  r11, r12, 23, 8         /* Extract exponent */
 5.20023 ++        sub     r11,127                 /* Fix bias */
 5.20024 ++        retlo   0                       /* Negative exponent yields zero integer */
 5.20025 ++ 
 5.20026 ++        /* Shift mantissa into correct position */
 5.20027 ++        rsub    r11,r11,31      /* Shift amount */
 5.20028 ++        lsl     r12,8           /* Get mantissa */
 5.20029 ++        sbr     r12,31          /* Add implicit bit */
 5.20030 ++        lsr     r12,r12,r11     /* Perform shift */
 5.20031 ++        ret     r12
 5.20032 ++ 
 5.20033 ++#endif  
 5.20034 ++ 
 5.20035 ++#ifdef L_avr32_f32_to_f64
 5.20036 ++        .global __avr32_f32_to_f64
 5.20037 ++        .type  __avr32_f32_to_f64,@function
 5.20038 ++ 
 5.20039 ++__avr32_f32_to_f64:
 5.20040 ++        lsl     r11,r12,1               /* Remove sign bit, keep original value in r12*/
 5.20041 ++        moveq   r10, 0
 5.20042 ++        reteq   r11                     /* Return zero if input is zero */
 5.20043 ++ 
 5.20044 ++        bfextu  r9,r11,24,8              /* Get exponent */
 5.20045 ++        cp.w    r9,0xff                 /* check for NaN or inf */
 5.20046 ++        breq    0f
 5.20047 ++ 
 5.20048 ++        lsl     r11,7                   /* Convert sf mantissa to df format */
 5.20049 ++        mov     r10,0
 5.20050 ++ 
 5.20051 ++        /* Check if implicit bit should be set */
 5.20052 ++        cp.w    r9, 0
 5.20053 ++        subeq   r9,-1                    /* Adjust exponent if it was 0 */
 5.20054 ++        srne    r8
 5.20055 ++        or      r11, r11, r8 << 31      /* Set implicit bit if needed */
 5.20056 ++        sub     r9,(127-0x3ff)          /* Convert exponent to df format exponent */
 5.20057 ++ 
 5.20058 ++        /*We know that low register of mantissa is 0, and will be unaffected by normalization.*/
 5.20059 ++        /*We can therefore use the faster normalize_sf function instead of normalize_df.*/
 5.20060 ++        normalize_sf    r9 /*exp*/, r11 /*mantissa*/, r8 /*scratch*/
 5.20061 ++        pack_df         r9 /*exp*/, r10, r11 /*mantissa*/, r10, r11 /*df*/
 5.20062 ++ 
 5.20063 ++__extendsfdf_return_op1:        
 5.20064 ++        /* Rotate in sign bit */
 5.20065 ++        lsl     r12, 1
 5.20066 ++        ror     r11
 5.20067 ++        ret     r11
 5.20068 ++                        
 5.20069 ++0:
 5.20070 ++        /* Inf or NaN*/
 5.20071 ++	mov_imm	r10, 0xffe00000
 5.20072 ++        lsl     r11,8                   /* check mantissa */
 5.20073 ++        movne   r11, -1                 /* Return NaN */
 5.20074 ++        moveq   r11, r10                /* Return inf */
 5.20075 ++        rjmp    __extendsfdf_return_op1
 5.20076 ++#endif                  
 5.20077 ++ 
 5.20078 ++ 
 5.20079 ++#ifdef L_avr32_f64_to_f32
 5.20080 ++        .global __avr32_f64_to_f32
 5.20081 ++        .type  __avr32_f64_to_f32,@function
 5.20082 ++ 
 5.20083 ++__avr32_f64_to_f32:
 5.20084 ++        /* Unpack */
 5.20085 ++        lsl     r9,r11,1                /* Unpack exponent */
 5.20086 ++        lsr     r9,21
 5.20087 ++ 
 5.20088 ++        reteq   0                       /* If exponent is 0 the number is so small
 5.20089 ++                                           that the conversion to single float gives
 5.20090 ++                                           zero */
 5.20091 ++ 
 5.20092 ++        lsl     r8,r11,10                  /* Adjust mantissa */
 5.20093 ++        or      r12,r8,r10>>22
 5.20094 ++ 
 5.20095 ++        lsl     r10,10                  /* Check if there are any remaining bits
 5.20096 ++                                           in the low part of the mantissa.*/
 5.20097 ++        neg     r10
 5.20098 ++        rol     r12                     /* If there were remaining bits then set lsb
 5.20099 ++                                           of mantissa to 1 */
 5.20100 ++ 
 5.20101 ++        cp      r9,0x7ff
 5.20102 ++        breq    2f                      /* Check for NaN or inf */
 5.20103 ++ 
 5.20104 ++        sub     r9,(0x3ff-127)          /* Adjust bias of exponent */
 5.20105 ++        sbr     r12,31                  /* set the implicit bit.*/
 5.20106 ++ 
 5.20107 ++        cp.w    r9, 0                   /* Check for subnormal number */
 5.20108 ++        brle    3f
 5.20109 ++ 
 5.20110 ++        round_sf        r9 /*exp*/, r12 /*mant*/, r10 /*scratch*/       
 5.20111 ++        pack_sf         r12 /*sf*/, r9 /*exp*/, r12 /*mant*/
 5.20112 ++__truncdfsf_return_op1: 
 5.20113 ++        /* Rotate in sign bit */
 5.20114 ++        lsl     r11, 1
 5.20115 ++        ror     r12
 5.20116 ++        ret     r12             
 5.20117 ++        
 5.20118 ++2:
 5.20119 ++        /* NaN or inf */
 5.20120 ++        cbr     r12,31                  /* clear implicit bit */
 5.20121 ++        retne   -1                      /* Return NaN if mantissa not zero */
 5.20122 ++	mov_imm	r12, 0xff000000
 5.20123 ++        ret     r12                     /* Return inf */
 5.20124 ++ 
 5.20125 ++3:      /* Result is subnormal. Adjust it.*/
 5.20126 ++        adjust_subnormal_sf     r12/*sf*/,r9 /*exp*/, r12 /*mant*/, r11/*sign*/, r10 /*scratch*/
 5.20127 ++        ret     r12
 5.20128 ++        
 5.20129 ++                
 5.20130 ++#endif
 5.20131 ++ 
 5.20132 ++#if defined(L_mulsi3) && (__AVR32_UC__ == 3)
 5.20133 ++	.global __mulsi3
 5.20134 ++	.type __mulsi3,@function
 5.20135 ++
 5.20136 ++__mulsi3:
 5.20137 ++	mov r9, 0
 5.20138 ++0:
 5.20139 ++	lsr r11, 1
 5.20140 ++	addcs r9, r9, r12
 5.20141 ++	breq 1f
 5.20142 ++	lsl r12, 1
 5.20143 ++	rjmp 0b
 5.20144 ++1:
 5.20145 ++	ret r9
 5.20146 ++#endif
 5.20147 +--- /dev/null
 5.20148 ++++ b/gcc/config/avr32/lib2funcs.S
 5.20149 +@@ -0,0 +1,21 @@
 5.20150 ++	.align	4
 5.20151 ++	.global __nonlocal_goto
 5.20152 ++	.type  __nonlocal_goto,@function
 5.20153 ++
 5.20154 ++/* __nonlocal_goto:	This function handles nonlocal_goto's in gcc.
 5.20155 ++
 5.20156 ++	parameter 0 (r12) = New Frame Pointer
 5.20157 ++	parameter 1 (r11) = Address to goto
 5.20158 ++	parameter 2 (r10) = New Stack Pointer
 5.20159 ++
 5.20160 ++	This function invalidates the return stack, since it returns from a
 5.20161 ++	function without using a return instruction.
 5.20162 ++*/
 5.20163 ++__nonlocal_goto:
 5.20164 ++	mov	r7, r12
 5.20165 ++	mov	sp, r10
 5.20166 ++	frs			# Flush return stack
 5.20167 ++	mov	pc, r11
 5.20168 ++
 5.20169 ++
 5.20170 ++		
 5.20171 +--- /dev/null
 5.20172 ++++ b/gcc/config/avr32/linux-elf.h
 5.20173 +@@ -0,0 +1,151 @@
 5.20174 ++/*
 5.20175 ++   Linux/Elf specific definitions.
 5.20176 ++   Copyright 2003-2006 Atmel Corporation.
 5.20177 ++
 5.20178 ++   Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com>
 5.20179 ++   and H�vard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
 5.20180 ++
 5.20181 ++   This file is part of GCC.
 5.20182 ++
 5.20183 ++   This program is free software; you can redistribute it and/or modify
 5.20184 ++   it under the terms of the GNU General Public License as published by
 5.20185 ++   the Free Software Foundation; either version 2 of the License, or
 5.20186 ++   (at your option) any later version.
 5.20187 ++
 5.20188 ++   This program is distributed in the hope that it will be useful,
 5.20189 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
 5.20190 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 5.20191 ++   GNU General Public License for more details.
 5.20192 ++
 5.20193 ++   You should have received a copy of the GNU General Public License
 5.20194 ++   along with this program; if not, write to the Free Software
 5.20195 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
 5.20196 ++
 5.20197 ++
 5.20198 ++
 5.20199 ++/* elfos.h should have already been included.  Now just override
 5.20200 ++   any conflicting definitions and add any extras.  */
 5.20201 ++
 5.20202 ++/* Run-time Target Specification.  */
 5.20203 ++#undef  TARGET_VERSION
 5.20204 ++#define TARGET_VERSION  fputs (" (AVR32 GNU/Linux with ELF)", stderr);
 5.20205 ++
 5.20206 ++/* Do not assume anything about header files.  */
 5.20207 ++#define NO_IMPLICIT_EXTERN_C
 5.20208 ++
 5.20209 ++/* The GNU C++ standard library requires that these macros be defined.  */
 5.20210 ++#undef CPLUSPLUS_CPP_SPEC
 5.20211 ++#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
 5.20212 ++
 5.20213 ++/* Now we define the strings used to build the spec file.  */
 5.20214 ++#undef  LIB_SPEC
 5.20215 ++#define LIB_SPEC \
 5.20216 ++  "%{pthread:-lpthread} \
 5.20217 ++   %{shared:-lc} \
 5.20218 ++   %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
 5.20219 ++
 5.20220 ++/* Provide a STARTFILE_SPEC appropriate for GNU/Linux.  Here we add
 5.20221 ++   the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
 5.20222 ++   provides part of the support for getting C++ file-scope static
 5.20223 ++   object constructed before entering `main'.  */
 5.20224 ++
 5.20225 ++#undef  STARTFILE_SPEC
 5.20226 ++#define STARTFILE_SPEC \
 5.20227 ++  "%{!shared: \
 5.20228 ++     %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
 5.20229 ++		       %{!p:%{profile:gcrt1.o%s} \
 5.20230 ++			 %{!profile:crt1.o%s}}}} \
 5.20231 ++   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
 5.20232 ++
 5.20233 ++/* Provide a ENDFILE_SPEC appropriate for GNU/Linux.  Here we tack on
 5.20234 ++   the GNU/Linux magical crtend.o file (see crtstuff.c) which
 5.20235 ++   provides part of the support for getting C++ file-scope static
 5.20236 ++   object constructed before entering `main', followed by a normal
 5.20237 ++   GNU/Linux "finalizer" file, `crtn.o'.  */
 5.20238 ++
 5.20239 ++#undef  ENDFILE_SPEC
 5.20240 ++#define ENDFILE_SPEC \
 5.20241 ++  "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
 5.20242 ++
 5.20243 ++#undef ASM_SPEC
 5.20244 ++#define ASM_SPEC "%{!mno-pic:%{!fno-pic:--pic}} %{mrelax|O*:%{mno-relax|O0|O1: ;:--linkrelax}} %{mcpu=*:-mcpu=%*}"
 5.20245 ++ 
 5.20246 ++#undef  LINK_SPEC
 5.20247 ++#define LINK_SPEC "%{version:-v} \
 5.20248 ++   %{static:-Bstatic} \
 5.20249 ++   %{shared:-shared} \
 5.20250 ++   %{symbolic:-Bsymbolic} \
 5.20251 ++   %{rdynamic:-export-dynamic} \
 5.20252 ++   %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0} \
 5.20253 ++   %{mrelax|O*:%{mno-relax|O0|O1: ;:--relax}}"
 5.20254 ++
 5.20255 ++#define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
 5.20256 ++
 5.20257 ++/* This is how we tell the assembler that two symbols have the same value.  */
 5.20258 ++#define ASM_OUTPUT_DEF(FILE, NAME1, NAME2) \
 5.20259 ++  do					   \
 5.20260 ++    {					   \
 5.20261 ++      assemble_name (FILE, NAME1); 	   \
 5.20262 ++      fputs (" = ", FILE);		   \
 5.20263 ++      assemble_name (FILE, NAME2);	   \
 5.20264 ++      fputc ('\n', FILE);		   \
 5.20265 ++    }					   \
 5.20266 ++  while (0)
 5.20267 ++
 5.20268 ++
 5.20269 ++
 5.20270 ++#undef  CC1_SPEC
 5.20271 ++#define CC1_SPEC "%{profile:-p}"
 5.20272 ++
 5.20273 ++/* Target CPU builtins.  */
 5.20274 ++#define TARGET_CPU_CPP_BUILTINS()				\
 5.20275 ++  do								\
 5.20276 ++    {								\
 5.20277 ++      builtin_define ("__avr32__");				\
 5.20278 ++      builtin_define ("__AVR32__");				\
 5.20279 ++      builtin_define ("__AVR32_LINUX__");			\
 5.20280 ++      builtin_define (avr32_part->macro);			\
 5.20281 ++      builtin_define (avr32_arch->macro);			\
 5.20282 ++      if (avr32_arch->uarch_type == UARCH_TYPE_AVR32A)		\
 5.20283 ++	builtin_define ("__AVR32_AVR32A__");			\
 5.20284 ++      else							\
 5.20285 ++	builtin_define ("__AVR32_AVR32B__");			\
 5.20286 ++      if (TARGET_UNALIGNED_WORD)				\
 5.20287 ++	builtin_define ("__AVR32_HAS_UNALIGNED_WORD__");	\
 5.20288 ++      if (TARGET_SIMD)						\
 5.20289 ++	builtin_define ("__AVR32_HAS_SIMD__");			\
 5.20290 ++      if (TARGET_DSP)						\
 5.20291 ++	builtin_define ("__AVR32_HAS_DSP__");			\
 5.20292 ++      if (TARGET_RMW)						\
 5.20293 ++	builtin_define ("__AVR32_HAS_RMW__");			\
 5.20294 ++      if (TARGET_BRANCH_PRED)					\
 5.20295 ++	builtin_define ("__AVR32_HAS_BRANCH_PRED__");		\
 5.20296 ++      if (TARGET_FAST_FLOAT)                                    \
 5.20297 ++        builtin_define ("__AVR32_FAST_FLOAT__");                \
 5.20298 ++    }								\
 5.20299 ++  while (0)
 5.20300 ++
 5.20301 ++
 5.20302 ++
 5.20303 ++/* Call the function profiler with a given profile label.  */
 5.20304 ++#undef  FUNCTION_PROFILER
 5.20305 ++#define FUNCTION_PROFILER(STREAM, LABELNO)				\
 5.20306 ++  do									\
 5.20307 ++    {									\
 5.20308 ++      fprintf (STREAM, "\tmov\tlr, lo(mcount)\n\torh\tlr, hi(mcount)\n"); \
 5.20309 ++      fprintf (STREAM, "\ticall lr\n");					\
 5.20310 ++    }									\
 5.20311 ++  while (0)
 5.20312 ++
 5.20313 ++#define NO_PROFILE_COUNTERS 1
 5.20314 ++
 5.20315 ++/* For dynamic libraries to work */
 5.20316 ++/* #define PLT_REG_CALL_CLOBBERED 1 */
 5.20317 ++#define AVR32_ALWAYS_PIC 1
 5.20318 ++
 5.20319 ++/* uclibc does not implement sinf, cosf etc. */
 5.20320 ++#undef TARGET_C99_FUNCTIONS
 5.20321 ++#define TARGET_C99_FUNCTIONS 0
 5.20322 ++
 5.20323 ++#define LINK_GCC_C_SEQUENCE_SPEC \
 5.20324 ++  "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
 5.20325 +--- /dev/null
 5.20326 ++++ b/gcc/config/avr32/predicates.md
 5.20327 +@@ -0,0 +1,419 @@
 5.20328 ++;;   AVR32 predicates file.
 5.20329 ++;;   Copyright 2003-2006 Atmel Corporation.
 5.20330 ++;;
 5.20331 ++;;   Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com>
 5.20332 ++;;
 5.20333 ++;;   This file is part of GCC.
 5.20334 ++;;
 5.20335 ++;;   This program is free software; you can redistribute it and/or modify
 5.20336 ++;;   it under the terms of the GNU General Public License as published by
 5.20337 ++;;   the Free Software Foundation; either version 2 of the License, or
 5.20338 ++;;   (at your option) any later version.
 5.20339 ++;;
 5.20340 ++;;   This program is distributed in the hope that it will be useful,
 5.20341 ++;;   but WITHOUT ANY WARRANTY; without even the implied warranty of
 5.20342 ++;;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 5.20343 ++;;   GNU General Public License for more details.
 5.20344 ++;;
 5.20345 ++;;   You should have received a copy of the GNU General Public License
 5.20346 ++;;   along with this program; if not, write to the Free Software
 5.20347 ++;;   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 5.20348 ++
 5.20349 ++
 5.20350 ++;; True if the operand is a memory reference which contains an
 5.20351 ++;; Address consisting of a single pointer register
 5.20352 ++(define_predicate "avr32_indirect_register_operand"
 5.20353 ++  (and (match_code "mem")
 5.20354 ++       (match_test "register_operand(XEXP(op, 0), SImode)")))
 5.20355 ++
 5.20356 ++
 5.20357 ++
 5.20358 ++;; Address expression with a base pointer offset with
 5.20359 ++;; a register displacement
 5.20360 ++(define_predicate "avr32_indexed_memory_operand"
 5.20361 ++  (and (match_code "mem")
 5.20362 ++       (match_test "GET_CODE(XEXP(op, 0)) == PLUS"))
 5.20363 ++  {
 5.20364 ++
 5.20365 ++   rtx op0 = XEXP(XEXP(op, 0), 0);
 5.20366 ++   rtx op1 = XEXP(XEXP(op, 0), 1);
 5.20367 ++
 5.20368 ++   return ((avr32_address_register_rtx_p (op0, 0)
 5.20369 ++            && avr32_legitimate_index_p (GET_MODE(op), op1, 0))
 5.20370 ++	   || (avr32_address_register_rtx_p (op1, 0)
 5.20371 ++            && avr32_legitimate_index_p (GET_MODE(op), op0, 0)));
 5.20372 ++
 5.20373 ++ })
 5.20374 ++
 5.20375 ++;; Operand suitable for the ld.sb instruction
 5.20376 ++(define_predicate "load_sb_memory_operand"
 5.20377 ++  (ior (match_operand 0 "avr32_indirect_register_operand")
 5.20378 ++       (match_operand 0 "avr32_indexed_memory_operand")))
 5.20379 ++
 5.20380 ++
 5.20381 ++;; Operand suitable as operand to insns sign extending QI values
 5.20382 ++(define_predicate "extendqi_operand"
 5.20383 ++  (ior (match_operand 0 "load_sb_memory_operand")
 5.20384 ++       (match_operand 0 "register_operand")))
 5.20385 ++
 5.20386 ++(define_predicate "post_inc_memory_operand"
 5.20387 ++  (and (match_code "mem")
 5.20388 ++       (match_test "(GET_CODE(XEXP(op, 0)) == POST_INC)
 5.20389 ++                     && REG_P(XEXP(XEXP(op, 0), 0))")))
 5.20390 ++
 5.20391 ++(define_predicate "pre_dec_memory_operand"
 5.20392 ++  (and (match_code "mem")
 5.20393 ++       (match_test "(GET_CODE(XEXP(op, 0)) == PRE_DEC)
 5.20394 ++                     && REG_P(XEXP(XEXP(op, 0), 0))")))
 5.20395 ++
 5.20396 ++;; Operand suitable for add instructions
 5.20397 ++(define_predicate "avr32_add_operand"
 5.20398 ++  (ior (match_operand 0 "register_operand")
 5.20399 ++       (and (match_operand 0 "immediate_operand")
 5.20400 ++            (match_test "CONST_OK_FOR_CONSTRAINT_P(INTVAL(op), 'I', \"Is21\")"))))
 5.20401 ++
 5.20402 ++;; Operand is a power of two immediate
 5.20403 ++(define_predicate "power_of_two_operand"
 5.20404 ++  (match_code "const_int")
 5.20405 ++{
 5.20406 ++  HOST_WIDE_INT value = INTVAL (op);
 5.20407 ++
 5.20408 ++  return value != 0 && (value & (value - 1)) == 0;
 5.20409 ++})
 5.20410 ++
 5.20411 ++;; Operand is a multiple of 8 immediate
 5.20412 ++(define_predicate "multiple_of_8_operand"
 5.20413 ++  (match_code "const_int")
 5.20414 ++{
 5.20415 ++  HOST_WIDE_INT value = INTVAL (op);
 5.20416 ++
 5.20417 ++  return (value & 0x7) == 0 ;
 5.20418 ++})
 5.20419 ++
 5.20420 ++;; Operand is a multiple of 16 immediate
 5.20421 ++(define_predicate "multiple_of_16_operand"
 5.20422 ++  (match_code "const_int")
 5.20423 ++{
 5.20424 ++  HOST_WIDE_INT value = INTVAL (op);
 5.20425 ++
 5.20426 ++  return (value & 0xf) == 0 ;
 5.20427 ++})
 5.20428 ++
 5.20429 ++;; Operand is a mask used for masking away upper bits of a reg
 5.20430 ++(define_predicate "avr32_mask_upper_bits_operand"
 5.20431 ++  (match_code "const_int")
 5.20432 ++{
 5.20433 ++  HOST_WIDE_INT value = INTVAL (op) + 1;
 5.20434 ++
 5.20435 ++  return value != 1 && value != 0 && (value & (value - 1)) == 0;
 5.20436 ++})
 5.20437 ++
 5.20438 ++
 5.20439 ++;; Operand suitable for mul instructions
 5.20440 ++(define_predicate "avr32_mul_operand"
 5.20441 ++  (ior (match_operand 0 "register_operand")
 5.20442 ++       (and (match_operand 0 "immediate_operand")
 5.20443 ++            (match_test "CONST_OK_FOR_CONSTRAINT_P(INTVAL(op), 'K', \"Ks08\")"))))
 5.20444 ++
 5.20445 ++;; True for logical binary operators.
 5.20446 ++(define_predicate "logical_binary_operator"
 5.20447 ++  (match_code "ior,xor,and"))
 5.20448 ++
 5.20449 ++;; True for logical shift operators
 5.20450 ++(define_predicate "logical_shift_operator"
 5.20451 ++  (match_code "ashift,lshiftrt"))
 5.20452 ++
 5.20453 ++;; True for shift operand for logical and, or and eor insns
 5.20454 ++(define_predicate "avr32_logical_shift_operand"
 5.20455 ++  (and (match_code "ashift,lshiftrt")
 5.20456 ++       (ior (and (match_test "GET_CODE(XEXP(op, 1)) == CONST_INT")
 5.20457 ++                 (match_test "register_operand(XEXP(op, 0), GET_MODE(XEXP(op, 0)))"))
 5.20458 ++            (and (match_test "GET_CODE(XEXP(op, 0)) == CONST_INT")
 5.20459 ++                 (match_test "register_operand(XEXP(op, 1), GET_MODE(XEXP(op, 1)))"))))
 5.20460 ++  )
 5.20461 ++
 5.20462 ++
 5.20463 ++;; Predicate for second operand to and, ior and xor insn patterns
 5.20464 ++(define_predicate "avr32_logical_insn_operand"
 5.20465 ++  (ior (match_operand 0 "register_operand")
 5.20466 ++       (match_operand 0 "avr32_logical_shift_operand"))
 5.20467 ++)
 5.20468 ++
 5.20469 ++
 5.20470 ++;; True for avr32 comparison operators
 5.20471 ++(define_predicate "avr32_comparison_operator"
 5.20472 ++  (ior (match_code "eq, ne, gt, ge, lt, le, gtu, geu, ltu, leu")
 5.20473 ++       (and (match_code "unspec")
 5.20474 ++            (match_test "(XINT(op, 1) == UNSPEC_COND_MI)
 5.20475 ++                         || (XINT(op, 1) == UNSPEC_COND_PL)"))))
 5.20476 ++
 5.20477 ++(define_predicate "avr32_cond3_comparison_operator"
 5.20478 ++  (ior (match_code "eq, ne, ge, lt, geu, ltu")
 5.20479 ++       (and (match_code "unspec")
 5.20480 ++            (match_test "(XINT(op, 1) == UNSPEC_COND_MI)
 5.20481 ++                         || (XINT(op, 1) == UNSPEC_COND_PL)"))))
 5.20482 ++
 5.20483 ++;; True for avr32 comparison operand
 5.20484 ++(define_predicate "avr32_comparison_operand"
 5.20485 ++  (ior (and (match_code "eq, ne, gt, ge, lt, le, gtu, geu, ltu, leu")
 5.20486 ++            (match_test "(CC0_P (XEXP(op,0)) && rtx_equal_p (XEXP(op,1), const0_rtx))"))
 5.20487 ++       (and (match_code "unspec")
 5.20488 ++            (match_test "(XINT(op, 1) == UNSPEC_COND_MI)
 5.20489 ++                         || (XINT(op, 1) == UNSPEC_COND_PL)"))))
 5.20490 ++
 5.20491 ++;; True if this is a const_int with one bit set
 5.20492 ++(define_predicate "one_bit_set_operand"
 5.20493 ++  (match_code "const_int")
 5.20494 ++  {
 5.20495 ++   int i;
 5.20496 ++   int value;
 5.20497 ++   int ones = 0;
 5.20498 ++
 5.20499 ++   value = INTVAL(op);
 5.20500 ++   for ( i = 0 ; i < 32; i++ ){
 5.20501 ++     if ( value & ( 1 << i ) ){
 5.20502 ++        ones++;
 5.20503 ++      }
 5.20504 ++   }
 5.20505 ++
 5.20506 ++   return ( ones == 1 );
 5.20507 ++  })
 5.20508 ++
 5.20509 ++
 5.20510 ++;; True if this is a const_int with one bit cleared
 5.20511 ++(define_predicate "one_bit_cleared_operand"
 5.20512 ++  (match_code "const_int")
 5.20513 ++  {
 5.20514 ++   int i;
 5.20515 ++   int value;
 5.20516 ++   int zeroes = 0;
 5.20517 ++
 5.20518 ++   value = INTVAL(op);
 5.20519 ++   for ( i = 0 ; i < 32; i++ ){
 5.20520 ++     if ( !(value & ( 1 << i )) ){
 5.20521 ++        zeroes++;
 5.20522 ++      }
 5.20523 ++   }
 5.20524 ++
 5.20525 ++   return ( zeroes == 1 );
 5.20526 ++  })
 5.20527 ++
 5.20528 ++
 5.20529 ++;; Immediate all the low 16-bits cleared
 5.20530 ++(define_predicate "avr32_hi16_immediate_operand"
 5.20531 ++  (match_code "const_int")
 5.20532 ++  {
 5.20533 ++   /* If the low 16-bits are zero then this
 5.20534 ++      is a hi16 immediate. */
 5.20535 ++   return ((INTVAL(op) & 0xffff) == 0);
 5.20536 ++   }
 5.20537 ++)
 5.20538 ++
 5.20539 ++;; True if this is a register or immediate operand
 5.20540 ++(define_predicate "register_immediate_operand"
 5.20541 ++  (ior (match_operand 0 "register_operand")
 5.20542 ++       (match_operand 0 "immediate_operand")))
 5.20543 ++
 5.20544 ++;; True if this is a register or const_int operand
 5.20545 ++(define_predicate "register_const_int_operand"
 5.20546 ++  (ior (match_operand 0 "register_operand")
 5.20547 ++       (and (match_operand 0 "const_int_operand")
 5.20548 ++            (match_operand 0 "immediate_operand"))))
 5.20549 ++
 5.20550 ++;; True if this is a register or const_double operand
 5.20551 ++(define_predicate "register_const_double_operand"
 5.20552 ++  (ior (match_operand 0 "register_operand")
 5.20553 ++       (match_operand 0 "const_double_operand")))
 5.20554 ++
 5.20555 ++;; True is this is an operand containing a label_ref
 5.20556 ++(define_predicate "avr32_label_ref_operand"
 5.20557 ++  (and (match_code "mem")
 5.20558 ++       (match_test "avr32_find_symbol(op)
 5.20559 ++                    && (GET_CODE(avr32_find_symbol(op)) == LABEL_REF)")))
 5.20560 ++
 5.20561 ++;; True is this is a valid symbol pointing to the constant pool
 5.20562 ++(define_predicate "avr32_const_pool_operand"
 5.20563 ++  (and (match_code "symbol_ref")
 5.20564 ++       (match_test "CONSTANT_POOL_ADDRESS_P(op)"))
 5.20565 ++  {
 5.20566 ++        return (flag_pic ? (!(symbol_mentioned_p (get_pool_constant (op))
 5.20567 ++                        || label_mentioned_p (get_pool_constant (op)))
 5.20568 ++                       || avr32_got_mentioned_p(get_pool_constant (op)))
 5.20569 ++                    : true);
 5.20570 ++  }
 5.20571 ++)
 5.20572 ++
 5.20573 ++;; True is this is a memory reference to the constant or mini pool
 5.20574 ++(define_predicate "avr32_const_pool_ref_operand"
 5.20575 ++  (ior (match_operand 0 "avr32_label_ref_operand")
 5.20576 ++       (and (match_code "mem")
 5.20577 ++            (match_test "avr32_const_pool_operand(XEXP(op,0), GET_MODE(XEXP(op,0)))"))))
 5.20578 ++
 5.20579 ++
 5.20580 ++;; Legal source operand for movti insns
 5.20581 ++(define_predicate "avr32_movti_src_operand"
 5.20582 ++  (ior (match_operand 0 "avr32_const_pool_ref_operand")
 5.20583 ++       (ior (ior (match_operand 0 "register_immediate_operand")
 5.20584 ++                 (match_operand 0 "avr32_indirect_register_operand"))
 5.20585 ++            (match_operand 0 "post_inc_memory_operand"))))
 5.20586 ++  
 5.20587 ++;; Legal destination operand for movti insns
 5.20588 ++(define_predicate "avr32_movti_dst_operand"
 5.20589 ++  (ior (ior (match_operand 0 "register_operand")
 5.20590 ++            (match_operand 0 "avr32_indirect_register_operand"))
 5.20591 ++       (match_operand 0 "pre_dec_memory_operand")))
 5.20592 ++
 5.20593 ++
 5.20594 ++;; True is this is a k12 offseted memory operand
 5.20595 ++(define_predicate "avr32_k12_memory_operand"
 5.20596 ++  (and (match_code "mem")
 5.20597 ++       (ior (match_test "REG_P(XEXP(op, 0))")
 5.20598 ++            (match_test "GET_CODE(XEXP(op, 0)) == PLUS
 5.20599 ++                         && REG_P(XEXP(XEXP(op, 0), 0))
 5.20600 ++                         && (GET_CODE(XEXP(XEXP(op, 0), 1)) == CONST_INT)
 5.20601 ++                         && (CONST_OK_FOR_CONSTRAINT_P(INTVAL(XEXP(XEXP(op, 0), 0)),
 5.20602 ++                                'K', (mode == SImode) ? \"Ks14\" : ((mode == HImode) ? \"Ks13\" : \"Ks12\")))"))))
 5.20603 ++
 5.20604 ++;; True is this is a memory operand with an immediate displacement
 5.20605 ++(define_predicate "avr32_imm_disp_memory_operand"
 5.20606 ++  (and (match_code "mem")
 5.20607 ++       (match_test "GET_CODE(XEXP(op, 0)) == PLUS
 5.20608 ++                    && REG_P(XEXP(XEXP(op, 0), 0))
 5.20609 ++                    && (GET_CODE(XEXP(XEXP(op, 0), 1)) == CONST_INT)")))
 5.20610 ++
 5.20611 ++;; True is this is a bswap operand
 5.20612 ++(define_predicate "avr32_bswap_operand"
 5.20613 ++  (ior (match_operand 0 "avr32_k12_memory_operand")
 5.20614 ++       (match_operand 0 "register_operand")))
 5.20615 ++
 5.20616 ++;; True is this is a valid coprocessor insn memory operand
 5.20617 ++(define_predicate "avr32_cop_memory_operand"
 5.20618 ++  (and (match_operand 0 "memory_operand")
 5.20619 ++       (not (match_test "GET_CODE(XEXP(op, 0)) == PLUS
 5.20620 ++                         && REG_P(XEXP(XEXP(op, 0), 0))
 5.20621 ++                         && (GET_CODE(XEXP(XEXP(op, 0), 1)) == CONST_INT)
 5.20622 ++                         && !(CONST_OK_FOR_CONSTRAINT_P(INTVAL(XEXP(XEXP(op, 0), 0)), 'K', \"Ku10\"))"))))
 5.20623 ++
 5.20624 ++;; True is this is a valid source/destination operand
 5.20625 ++;; for moving values to/from a coprocessor
 5.20626 ++(define_predicate "avr32_cop_move_operand"
 5.20627 ++  (ior (match_operand 0 "register_operand")
 5.20628 ++       (match_operand 0 "avr32_cop_memory_operand")))
 5.20629 ++
 5.20630 ++
 5.20631 ++;; True is this is a valid extract byte offset for use in
 5.20632 ++;; load extracted index insns
 5.20633 ++(define_predicate "avr32_extract_shift_operand"
 5.20634 ++  (and (match_operand 0 "const_int_operand")
 5.20635 ++       (match_test "(INTVAL(op) == 0) || (INTVAL(op) == 8)
 5.20636 ++                    || (INTVAL(op) == 16) || (INTVAL(op) == 24)")))
 5.20637 ++
 5.20638 ++;; True is this is a floating-point register
 5.20639 ++(define_predicate "avr32_fp_register_operand"
 5.20640 ++  (and (match_operand 0 "register_operand")
 5.20641 ++       (match_test "REGNO_REG_CLASS(REGNO(op)) == FP_REGS")))
 5.20642 ++
 5.20643 ++;; True is this is valid avr32 symbol operand
 5.20644 ++(define_predicate "avr32_symbol_operand"
 5.20645 ++  (and (match_code "label_ref, symbol_ref, const")
 5.20646 ++       (match_test "avr32_find_symbol(op)")))
 5.20647 ++
 5.20648 ++;; True is this is valid operand for the lda.w and call pseudo insns
 5.20649 ++(define_predicate "avr32_address_operand"
 5.20650 ++  (and (and (match_code "label_ref, symbol_ref")
 5.20651 ++            (match_test "avr32_find_symbol(op)"))
 5.20652 ++       (ior (match_test "TARGET_HAS_ASM_ADDR_PSEUDOS")
 5.20653 ++            (match_test "flag_pic")) ))
 5.20654 ++
 5.20655 ++;; An immediate k16 address operand
 5.20656 ++(define_predicate "avr32_ks16_address_operand"
 5.20657 ++  (and (match_operand 0 "address_operand")
 5.20658 ++       (ior (match_test "REG_P(op)")
 5.20659 ++            (match_test "GET_CODE(op) == PLUS
 5.20660 ++                         && ((GET_CODE(XEXP(op,0)) == CONST_INT)
 5.20661 ++                             || (GET_CODE(XEXP(op,1)) == CONST_INT))")) ))
 5.20662 ++
 5.20663 ++;; An offset k16 memory operand
 5.20664 ++(define_predicate "avr32_ks16_memory_operand"
 5.20665 ++  (and (match_code "mem")
 5.20666 ++       (match_test "avr32_ks16_address_operand (XEXP (op, 0), GET_MODE (XEXP (op, 0)))")))
 5.20667 ++
 5.20668 ++;; An immediate k11 address operand
 5.20669 ++(define_predicate "avr32_ks11_address_operand"
 5.20670 ++  (and (match_operand 0 "address_operand")
 5.20671 ++       (ior (match_test "REG_P(op)")
 5.20672 ++            (match_test "GET_CODE(op) == PLUS
 5.20673 ++                         && (((GET_CODE(XEXP(op,0)) == CONST_INT)
 5.20674 ++                              && avr32_const_ok_for_constraint_p(INTVAL(XEXP(op,0)), 'K', \"Ks11\"))
 5.20675 ++                             || ((GET_CODE(XEXP(op,1)) == CONST_INT)
 5.20676 ++                                 && avr32_const_ok_for_constraint_p(INTVAL(XEXP(op,1)), 'K', \"Ks11\")))")) ))
 5.20677 ++
 5.20678 ++;; True if this is a avr32 call operand
 5.20679 ++(define_predicate "avr32_call_operand"
 5.20680 ++  (ior (ior (match_operand 0 "register_operand")
 5.20681 ++            (ior (match_operand 0 "avr32_const_pool_ref_operand")
 5.20682 ++                 (match_operand 0 "avr32_address_operand")))
 5.20683 ++       (match_test "SYMBOL_REF_RCALL_FUNCTION_P(op)")))
 5.20684 ++
 5.20685 ++;; Return true for operators performing ALU operations
 5.20686 ++
 5.20687 ++(define_predicate "alu_operator"
 5.20688 ++  (match_code "ior, xor, and, plus, minus, ashift, lshiftrt, ashiftrt"))
 5.20689 ++
 5.20690 ++(define_predicate "avr32_add_shift_immediate_operand"
 5.20691 ++  (and (match_operand 0 "immediate_operand")
 5.20692 ++       (match_test "CONST_OK_FOR_CONSTRAINT_P(INTVAL(op), 'K', \"Ku02\")")))
 5.20693 ++
 5.20694 ++(define_predicate "avr32_cond_register_immediate_operand"
 5.20695 ++  (ior (match_operand 0 "register_operand")
 5.20696 ++       (and (match_operand 0 "immediate_operand")
 5.20697 ++            (match_test "CONST_OK_FOR_CONSTRAINT_P(INTVAL(op), 'K', \"Ks08\")"))))
 5.20698 ++
 5.20699 ++(define_predicate "avr32_cond_immediate_operand"
 5.20700 ++  (and (match_operand 0 "immediate_operand")
 5.20701 ++       (match_test "CONST_OK_FOR_CONSTRAINT_P(INTVAL(op), 'I', \"Is08\")")))
 5.20702 ++
 5.20703 ++
 5.20704 ++(define_predicate "avr32_cond_move_operand"
 5.20705 ++  (ior (ior (match_operand 0 "register_operand")
 5.20706 ++            (and (match_operand 0 "immediate_operand")
 5.20707 ++                 (match_test "CONST_OK_FOR_CONSTRAINT_P(INTVAL(op), 'K', \"Ks08\")")))
 5.20708 ++       (and (match_test "TARGET_V2_INSNS")
 5.20709 ++            (match_operand 0 "memory_operand"))))
 5.20710 ++
 5.20711 ++(define_predicate "avr32_mov_immediate_operand"
 5.20712 ++  (and (match_operand 0 "immediate_operand")
 5.20713 ++       (match_test "avr32_const_ok_for_move(INTVAL(op))")))
 5.20714 ++
 5.20715 ++
 5.20716 ++(define_predicate "avr32_rmw_address_operand"
 5.20717 ++  (ior (and (match_code "symbol_ref") 
 5.20718 ++            (match_test "({rtx symbol = avr32_find_symbol(op); \
 5.20719 ++                                symbol && (GET_CODE (symbol) == SYMBOL_REF) && SYMBOL_REF_RMW_ADDR(symbol);})"))
 5.20720 ++       (and (match_operand 0 "immediate_operand")
 5.20721 ++            (match_test "CONST_OK_FOR_CONSTRAINT_P(INTVAL(op), 'K', \"Ks17\")")))
 5.20722 ++  {
 5.20723 ++   return TARGET_RMW && !flag_pic;
 5.20724 ++  }
 5.20725 ++)
 5.20726 ++ 
 5.20727 ++(define_predicate "avr32_rmw_memory_operand"
 5.20728 ++  (and (match_code "mem")
 5.20729 ++       (match_test "(GET_MODE(op) == SImode) && 
 5.20730 ++                    avr32_rmw_address_operand(XEXP(op, 0), GET_MODE(XEXP(op, 0)))")))
 5.20731 ++
 5.20732 ++(define_predicate "avr32_rmw_memory_or_register_operand"
 5.20733 ++  (ior (match_operand 0 "avr32_rmw_memory_operand")
 5.20734 ++       (match_operand 0 "register_operand")))
 5.20735 ++
 5.20736 ++(define_predicate "avr32_non_rmw_memory_operand"
 5.20737 ++  (and (not (match_operand 0 "avr32_rmw_memory_operand"))
 5.20738 ++       (match_operand 0 "memory_operand")))
 5.20739 ++
 5.20740 ++(define_predicate "avr32_non_rmw_general_operand"
 5.20741 ++  (and (not (match_operand 0 "avr32_rmw_memory_operand"))
 5.20742 ++       (match_operand 0 "general_operand")))
 5.20743 ++
 5.20744 ++(define_predicate "avr32_non_rmw_nonimmediate_operand"
 5.20745 ++  (and (not (match_operand 0 "avr32_rmw_memory_operand"))
 5.20746 ++       (match_operand 0 "nonimmediate_operand")))
 5.20747 +--- /dev/null
 5.20748 ++++ b/gcc/config/avr32/simd.md
 5.20749 +@@ -0,0 +1,145 @@
 5.20750 ++;;   AVR32 machine description file for SIMD instructions.
 5.20751 ++;;   Copyright 2003-2006 Atmel Corporation.
 5.20752 ++;;
 5.20753 ++;;   Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com>
 5.20754 ++;;
 5.20755 ++;;   This file is part of GCC.
 5.20756 ++;;
 5.20757 ++;;   This program is free software; you can redistribute it and/or modify
 5.20758 ++;;   it under the terms of the GNU General Public License as published by
 5.20759 ++;;   the Free Software Foundation; either version 2 of the License, or
 5.20760 ++;;   (at your option) any later version.
 5.20761 ++;;
 5.20762 ++;;   This program is distributed in the hope that it will be useful,
 5.20763 ++;;   but WITHOUT ANY WARRANTY; without even the implied warranty of
 5.20764 ++;;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 5.20765 ++;;   GNU General Public License for more details.
 5.20766 ++;;
 5.20767 ++;;   You should have received a copy of the GNU General Public License
 5.20768 ++;;   along with this program; if not, write to the Free Software
 5.20769 ++;;   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 5.20770 ++
 5.20771 ++;; -*- Mode: Scheme -*-
 5.20772 ++
 5.20773 ++
 5.20774 ++;; Vector modes
 5.20775 ++(define_mode_macro VECM [V2HI V4QI])
 5.20776 ++(define_mode_attr  size [(V2HI "h") (V4QI "b")])
 5.20777 ++
 5.20778 ++(define_insn "add<mode>3"
 5.20779 ++  [(set (match_operand:VECM 0 "register_operand" "=r")
 5.20780 ++	(plus:VECM (match_operand:VECM 1 "register_operand" "r")
 5.20781 ++                   (match_operand:VECM 2 "register_operand" "r")))]
 5.20782 ++  "TARGET_SIMD"
 5.20783 ++  "padd.<size>\t%0, %1, %2"
 5.20784 ++  [(set_attr "length" "4")
 5.20785 ++   (set_attr "type" "alu")])
 5.20786 ++
 5.20787 ++
 5.20788 ++(define_insn "sub<mode>3"
 5.20789 ++  [(set (match_operand:VECM 0 "register_operand" "=r")
 5.20790 ++	(minus:VECM (match_operand:VECM 1 "register_operand" "r")
 5.20791 ++                    (match_operand:VECM 2 "register_operand" "r")))]
 5.20792 ++  "TARGET_SIMD"
 5.20793 ++  "psub.<size>\t%0, %1, %2"
 5.20794 ++  [(set_attr "length" "4")
 5.20795 ++   (set_attr "type" "alu")])
 5.20796 ++
 5.20797 ++
 5.20798 ++(define_insn "abs<mode>2"
 5.20799 ++  [(set (match_operand:VECM 0 "register_operand" "=r")
 5.20800 ++	(abs:VECM (match_operand:VECM 1 "register_operand" "r")))]
 5.20801 ++  "TARGET_SIMD"
 5.20802 ++  "pabs.s<size>\t%0, %1"
 5.20803 ++  [(set_attr "length" "4")
 5.20804 ++   (set_attr "type" "alu")])
 5.20805 ++
 5.20806 ++(define_insn "ashl<mode>3"
 5.20807 ++  [(set (match_operand:VECM 0 "register_operand"           "=r")
 5.20808 ++	(ashift:VECM (match_operand:VECM 1 "register_operand" "r")
 5.20809 ++                     (match_operand:SI 2 "immediate_operand" "Ku04")))]
 5.20810 ++  "TARGET_SIMD"
 5.20811 ++  "plsl.<size>\t%0, %1, %2"
 5.20812 ++  [(set_attr "length" "4")
 5.20813 ++   (set_attr "type" "alu")])
 5.20814 ++
 5.20815 ++(define_insn "ashr<mode>3"
 5.20816 ++  [(set (match_operand:VECM 0 "register_operand"           "=r")
 5.20817 ++	(ashiftrt:VECM (match_operand:VECM 1 "register_operand" "r")
 5.20818 ++                       (match_operand:SI 2 "immediate_operand" "Ku04")))]
 5.20819 ++  "TARGET_SIMD"
 5.20820 ++  "pasr.<size>\t%0, %1, %2"
 5.20821 ++  [(set_attr "length" "4")
 5.20822 ++   (set_attr "type" "alu")])
 5.20823 ++
 5.20824 ++(define_insn "lshr<mode>3"
 5.20825 ++  [(set (match_operand:VECM 0 "register_operand"           "=r")
 5.20826 ++	(lshiftrt:VECM (match_operand:VECM 1 "register_operand" "r")
 5.20827 ++                       (match_operand:SI 2 "immediate_operand" "Ku04")))]
 5.20828 ++  "TARGET_SIMD"
 5.20829 ++  "plsr.<size>\t%0, %1, %2"
 5.20830 ++  [(set_attr "length" "4")
 5.20831 ++   (set_attr "type" "alu")])
 5.20832 ++
 5.20833 ++(define_insn "smaxv2hi3"
 5.20834 ++  [(set (match_operand:V2HI 0 "register_operand" "=r")
 5.20835 ++	(smax:V2HI (match_operand:V2HI 1 "register_operand" "r")
 5.20836 ++                        (match_operand:V2HI 2 "register_operand" "r")))]
 5.20837 ++
 5.20838 ++  "TARGET_SIMD"
 5.20839 ++  "pmax.sh\t%0, %1, %2"
 5.20840 ++  [(set_attr "length" "4")
 5.20841 ++   (set_attr "type" "alu")])
 5.20842 ++
 5.20843 ++(define_insn "sminv2hi3"
 5.20844 ++  [(set (match_operand:V2HI 0 "register_operand" "=r")
 5.20845 ++	(smin:V2HI (match_operand:V2HI 1 "register_operand" "r")
 5.20846 ++                        (match_operand:V2HI 2 "register_operand" "r")))]
 5.20847 ++
 5.20848 ++  "TARGET_SIMD"
 5.20849 ++  "pmin.sh\t%0, %1, %2"
 5.20850 ++  [(set_attr "length" "4")
 5.20851 ++   (set_attr "type" "alu")])
 5.20852 ++
 5.20853 ++(define_insn "umaxv4qi3"
 5.20854 ++  [(set (match_operand:V4QI 0 "register_operand" "=r")
 5.20855 ++	(umax:V4QI (match_operand:V4QI 1 "register_operand" "r")
 5.20856 ++                   (match_operand:V4QI 2 "register_operand" "r")))]
 5.20857 ++
 5.20858 ++  "TARGET_SIMD"
 5.20859 ++  "pmax.ub\t%0, %1, %2"
 5.20860 ++  [(set_attr "length" "4")
 5.20861 ++   (set_attr "type" "alu")])
 5.20862 ++
 5.20863 ++(define_insn "uminv4qi3"
 5.20864 ++  [(set (match_operand:V4QI 0 "register_operand" "=r")
 5.20865 ++	(umin:V4QI (match_operand:V4QI 1 "register_operand" "r")
 5.20866 ++                   (match_operand:V4QI 2 "register_operand" "r")))]
 5.20867 ++
 5.20868 ++  "TARGET_SIMD"
 5.20869 ++  "pmin.ub\t%0, %1, %2"
 5.20870 ++  [(set_attr "length" "4")
 5.20871 ++   (set_attr "type" "alu")])
 5.20872 ++
 5.20873 ++
 5.20874 ++(define_insn "addsubv2hi"
 5.20875 ++  [(set (match_operand:V2HI 0 "register_operand" "=r")
 5.20876 ++        (vec_concat:V2HI
 5.20877 ++         (plus:HI (match_operand:HI 1 "register_operand" "r")
 5.20878 ++                  (match_operand:HI 2 "register_operand" "r"))
 5.20879 ++         (minus:HI (match_dup 1) (match_dup 2))))]
 5.20880 ++  "TARGET_SIMD"
 5.20881 ++  "paddsub.h\t%0, %1:b, %2:b"
 5.20882 ++  [(set_attr "length" "4")
 5.20883 ++   (set_attr "type" "alu")])
 5.20884 ++
 5.20885 ++(define_insn "subaddv2hi"
 5.20886 ++  [(set (match_operand:V2HI 0 "register_operand" "=r")
 5.20887 ++        (vec_concat:V2HI
 5.20888 ++         (minus:HI (match_operand:HI 1 "register_operand" "r")
 5.20889 ++                  (match_operand:HI 2 "register_operand" "r"))
 5.20890 ++         (plus:HI (match_dup 1) (match_dup 2))))]
 5.20891 ++  "TARGET_SIMD"
 5.20892 ++  "psubadd.h\t%0, %1:b, %2:b"
 5.20893 ++  [(set_attr "length" "4")
 5.20894 ++   (set_attr "type" "alu")])
 5.20895 +--- /dev/null
 5.20896 ++++ b/gcc/config/avr32/sync.md
 5.20897 +@@ -0,0 +1,244 @@
 5.20898 ++;;=================================================================
 5.20899 ++;; Atomic operations
 5.20900 ++;;=================================================================
 5.20901 ++
 5.20902 ++
 5.20903 ++(define_insn "sync_compare_and_swapsi"
 5.20904 ++  [(set (match_operand:SI 0 "register_operand" "=&r,&r")
 5.20905 ++	(match_operand:SI 1 "memory_operand" "+RKs16,+RKs16"))
 5.20906 ++   (set (match_dup 1)
 5.20907 ++	(unspec_volatile:SI
 5.20908 ++	  [(match_dup 1)
 5.20909 ++	   (match_operand:SI 2 "register_immediate_operand" "r,Ks21")
 5.20910 ++	   (match_operand:SI 3 "register_operand" "r,r")]
 5.20911 ++	  VUNSPEC_SYNC_CMPXCHG))   ]
 5.20912 ++  ""
 5.20913 ++  "0:
 5.20914 ++   ssrf\t5
 5.20915 ++   ld.w\t%0,%1
 5.20916 ++   cp.w\t%0,%2
 5.20917 ++   brne\t0f
 5.20918 ++   stcond\t%1, %3
 5.20919 ++   brne\t0b
 5.20920 ++   0:
 5.20921 ++  "
 5.20922 ++  [(set_attr "length" "16,18")
 5.20923 ++   (set_attr "cc" "clobber")]
 5.20924 ++  )
 5.20925 ++ 
 5.20926 ++
 5.20927 ++(define_code_macro atomic_op [plus minus and ior xor])
 5.20928 ++(define_code_attr  atomic_asm_insn [(plus "add") (minus "sub") (and "and") (ior "or") (xor "eor")])
 5.20929 ++(define_code_attr  atomic_insn [(plus "add") (minus "sub") (and "and") (ior "ior") (xor "xor")])
 5.20930 ++
 5.20931 ++(define_insn "sync_loadsi"
 5.20932 ++  ; NB! Put an early clobber on the destination operand to 
 5.20933 ++  ; avoid gcc using the same register in the source and 
 5.20934 ++  ; destination. This is done in order to avoid gcc to 
 5.20935 ++  ; clobber the source operand since these instructions
 5.20936 ++  ; are actually inside a "loop".
 5.20937 ++  [(set (match_operand:SI 0 "register_operand" "=&r")
 5.20938 ++	(unspec_volatile:SI
 5.20939 ++         [(match_operand:SI 1 "avr32_ks16_memory_operand" "RKs16")
 5.20940 ++          (label_ref (match_operand 2 "" ""))]
 5.20941 ++         VUNSPEC_SYNC_SET_LOCK_AND_LOAD) )]
 5.20942 ++  ""
 5.20943 ++  "%2:
 5.20944 ++   ssrf\t5
 5.20945 ++   ld.w\t%0,%1"
 5.20946 ++  [(set_attr "length" "6")
 5.20947 ++   (set_attr "cc" "clobber")]
 5.20948 ++  )
 5.20949 ++  
 5.20950 ++(define_insn "sync_store_if_lock"
 5.20951 ++  [(set (match_operand:SI 0 "avr32_ks16_memory_operand" "=RKs16")
 5.20952 ++        (unspec_volatile:SI
 5.20953 ++         [(match_operand:SI 1 "register_operand" "r")
 5.20954 ++          (label_ref (match_operand 2 "" ""))]
 5.20955 ++         VUNSPEC_SYNC_STORE_IF_LOCK) )]
 5.20956 ++  ""
 5.20957 ++  "stcond\t%0, %1
 5.20958 ++   brne\t%2"
 5.20959 ++  [(set_attr "length" "6")
 5.20960 ++   (set_attr "cc" "clobber")]
 5.20961 ++  )
 5.20962 ++
 5.20963 ++
 5.20964 ++(define_expand "sync_<atomic_insn>si"
 5.20965 ++  [(set (match_dup 2)
 5.20966 ++	(unspec_volatile:SI
 5.20967 ++         [(match_operand:SI 0 "avr32_ks16_memory_operand" "")
 5.20968 ++          (match_dup 3)]
 5.20969 ++         VUNSPEC_SYNC_SET_LOCK_AND_LOAD))
 5.20970 ++   (set (match_dup 2) 
 5.20971 ++        (atomic_op:SI (match_dup 2)
 5.20972 ++                      (match_operand:SI 1 "register_immediate_operand" "")))
 5.20973 ++   (set (match_dup 0)
 5.20974 ++        (unspec_volatile:SI
 5.20975 ++         [(match_dup 2)
 5.20976 ++          (match_dup 3)]
 5.20977 ++         VUNSPEC_SYNC_STORE_IF_LOCK) )
 5.20978 ++   (use (match_dup 1))
 5.20979 ++   (use (match_dup 4))]
 5.20980 ++  ""
 5.20981 ++  {
 5.20982 ++   rtx *mem_expr = &operands[0];
 5.20983 ++   rtx ptr_reg;
 5.20984 ++   if ( !avr32_ks16_memory_operand (*mem_expr, GET_MODE (*mem_expr)) )
 5.20985 ++    {
 5.20986 ++      ptr_reg = force_reg (Pmode, XEXP (*mem_expr, 0));
 5.20987 ++      XEXP (*mem_expr, 0) = ptr_reg;
 5.20988 ++    } 
 5.20989 ++   else 
 5.20990 ++    {
 5.20991 ++      rtx address = XEXP (*mem_expr, 0);
 5.20992 ++      if ( REG_P (address) )
 5.20993 ++         ptr_reg = address;
 5.20994 ++      else if ( REG_P (XEXP (address, 0)) ) 
 5.20995 ++         ptr_reg = XEXP (address, 0);
 5.20996 ++      else 
 5.20997 ++         ptr_reg = XEXP (address, 1);
 5.20998 ++    }
 5.20999 ++
 5.21000 ++   operands[2] = gen_reg_rtx (SImode);
 5.21001 ++   operands[3] = gen_rtx_LABEL_REF(Pmode, gen_label_rtx ());
 5.21002 ++   operands[4] = ptr_reg;   
 5.21003 ++
 5.21004 ++  }
 5.21005 ++  )
 5.21006 ++
 5.21007 ++
 5.21008 ++
 5.21009 ++(define_expand "sync_old_<atomic_insn>si"
 5.21010 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.21011 ++	(unspec_volatile:SI
 5.21012 ++         [(match_operand:SI 1 "avr32_ks16_memory_operand" "")
 5.21013 ++          (match_dup 4)]
 5.21014 ++         VUNSPEC_SYNC_SET_LOCK_AND_LOAD))
 5.21015 ++   (set (match_dup 3) 
 5.21016 ++        (atomic_op:SI (match_dup 0)
 5.21017 ++                      (match_operand:SI 2 "register_immediate_operand" "")))
 5.21018 ++   (set (match_dup 1)
 5.21019 ++        (unspec_volatile:SI
 5.21020 ++         [(match_dup 3)
 5.21021 ++          (match_dup 4)]
 5.21022 ++         VUNSPEC_SYNC_STORE_IF_LOCK) )
 5.21023 ++   (use (match_dup 2))
 5.21024 ++   (use (match_dup 5))]
 5.21025 ++  ""
 5.21026 ++  {
 5.21027 ++   rtx *mem_expr = &operands[1];
 5.21028 ++   rtx ptr_reg;
 5.21029 ++   if ( !avr32_ks16_memory_operand (*mem_expr, GET_MODE (*mem_expr)) )
 5.21030 ++    {
 5.21031 ++      ptr_reg = force_reg (Pmode, XEXP (*mem_expr, 0));
 5.21032 ++      XEXP (*mem_expr, 0) = ptr_reg;
 5.21033 ++    } 
 5.21034 ++   else 
 5.21035 ++    {
 5.21036 ++      rtx address = XEXP (*mem_expr, 0);
 5.21037 ++      if ( REG_P (address) )
 5.21038 ++         ptr_reg = address;
 5.21039 ++      else if ( REG_P (XEXP (address, 0)) ) 
 5.21040 ++         ptr_reg = XEXP (address, 0);
 5.21041 ++      else 
 5.21042 ++         ptr_reg = XEXP (address, 1);
 5.21043 ++    }
 5.21044 ++
 5.21045 ++   operands[3] = gen_reg_rtx (SImode);
 5.21046 ++   operands[4] = gen_rtx_LABEL_REF(Pmode, gen_label_rtx ());
 5.21047 ++   operands[5] = ptr_reg;
 5.21048 ++  }
 5.21049 ++  )
 5.21050 ++
 5.21051 ++(define_expand "sync_new_<atomic_insn>si"
 5.21052 ++  [(set (match_operand:SI 0 "register_operand" "")
 5.21053 ++	(unspec_volatile:SI
 5.21054 ++         [(match_operand:SI 1 "avr32_ks16_memory_operand" "")
 5.21055 ++          (match_dup 3)]
 5.21056 ++         VUNSPEC_SYNC_SET_LOCK_AND_LOAD))
 5.21057 ++   (set (match_dup 0) 
 5.21058 ++        (atomic_op:SI (match_dup 0)
 5.21059 ++                      (match_operand:SI 2 "register_immediate_operand" "")))
 5.21060 ++   (set (match_dup 1)
 5.21061 ++        (unspec_volatile:SI
 5.21062 ++         [(match_dup 0)
 5.21063 ++          (match_dup 3)]
 5.21064 ++         VUNSPEC_SYNC_STORE_IF_LOCK) )
 5.21065 ++   (use (match_dup 2))
 5.21066 ++   (use (match_dup 4))]
 5.21067 ++  ""
 5.21068 ++  {
 5.21069 ++   rtx *mem_expr = &operands[1];
 5.21070 ++   rtx ptr_reg;
 5.21071 ++   if ( !avr32_ks16_memory_operand (*mem_expr, GET_MODE (*mem_expr)) )
 5.21072 ++    {
 5.21073 ++      ptr_reg = force_reg (Pmode, XEXP (*mem_expr, 0));
 5.21074 ++      XEXP (*mem_expr, 0) = ptr_reg;
 5.21075 ++    } 
 5.21076 ++   else 
 5.21077 ++    {
 5.21078 ++      rtx address = XEXP (*mem_expr, 0);
 5.21079 ++      if ( REG_P (address) )
 5.21080 ++         ptr_reg = address;
 5.21081 ++      else if ( REG_P (XEXP (address, 0)) ) 
 5.21082 ++         ptr_reg = XEXP (address, 0);
 5.21083 ++      else 
 5.21084 ++         ptr_reg = XEXP (address, 1);
 5.21085 ++    }
 5.21086 ++
 5.21087 ++   operands[3] = gen_rtx_LABEL_REF(Pmode, gen_label_rtx ());
 5.21088 ++   operands[4] = ptr_reg;
 5.21089 ++  }
 5.21090 ++  )
 5.21091 ++
 5.21092 ++
 5.21093 ++;(define_insn "sync_<atomic_insn>si"
 5.21094 ++;  [(set (match_operand:SI 0 "memory_operand" "+RKs16")
 5.21095 ++;	(unspec_volatile:SI
 5.21096 ++;         [(atomic_op:SI (match_dup 0)
 5.21097 ++;                        (match_operand:SI 1 "register_operand" "r"))]
 5.21098 ++;         VUNSPEC_SYNC_CMPXCHG))
 5.21099 ++;   (clobber (match_scratch:SI 2 "=&r"))]
 5.21100 ++;  ""
 5.21101 ++;  "0:
 5.21102 ++;   ssrf\t5
 5.21103 ++;   ld.w\t%2,%0
 5.21104 ++;   <atomic_asm_insn>\t%2,%1
 5.21105 ++;   stcond\t%0, %2
 5.21106 ++;   brne\t0b
 5.21107 ++;  "
 5.21108 ++;  [(set_attr "length" "14")
 5.21109 ++;   (set_attr "cc" "clobber")]
 5.21110 ++;  )
 5.21111 ++;
 5.21112 ++;(define_insn "sync_new_<atomic_insn>si"
 5.21113 ++;  [(set (match_operand:SI 1 "memory_operand" "+RKs16")
 5.21114 ++;	(unspec_volatile:SI
 5.21115 ++;         [(atomic_op:SI (match_dup 1)
 5.21116 ++;                        (match_operand:SI 2 "register_operand" "r"))]
 5.21117 ++;         VUNSPEC_SYNC_CMPXCHG))
 5.21118 ++;   (set (match_operand:SI 0 "register_operand" "=&r")
 5.21119 ++;	(atomic_op:SI (match_dup 1)
 5.21120 ++;                      (match_dup 2)))]
 5.21121 ++;  ""
 5.21122 ++;  "0:
 5.21123 ++;   ssrf\t5
 5.21124 ++;   ld.w\t%0,%1
 5.21125 ++;   <atomic_asm_insn>\t%0,%2
 5.21126 ++;   stcond\t%1, %0
 5.21127 ++;   brne\t0b
 5.21128 ++;  "
 5.21129 ++;  [(set_attr "length" "14")
 5.21130 ++;   (set_attr "cc" "clobber")]
 5.21131 ++;  )
 5.21132 ++
 5.21133 ++(define_insn "sync_lock_test_and_setsi"
 5.21134 ++  [ (set (match_operand:SI 0 "register_operand" "=&r")
 5.21135 ++         (match_operand:SI 1 "memory_operand" "+RKu00"))
 5.21136 ++    (set (match_dup 1)
 5.21137 ++         (match_operand:SI 2 "register_operand" "r")) ]
 5.21138 ++  ""
 5.21139 ++  "xchg\t%0, %p1, %2"
 5.21140 ++  [(set_attr "length" "4")]
 5.21141 ++  )
 5.21142 +--- /dev/null
 5.21143 ++++ b/gcc/config/avr32/t-avr32
 5.21144 +@@ -0,0 +1,77 @@
 5.21145 ++
 5.21146 ++MD_INCLUDES= 	$(srcdir)/config/avr32/avr32.md \
 5.21147 ++		$(srcdir)/config/avr32/sync.md \
 5.21148 ++		$(srcdir)/config/avr32/fpcp.md \
 5.21149 ++		$(srcdir)/config/avr32/simd.md \
 5.21150 ++        $(srcdir)/config/avr32/predicates.md
 5.21151 ++
 5.21152 ++s-config s-conditions s-flags s-codes s-constants s-emit s-recog s-preds \
 5.21153 ++	s-opinit s-extract s-peep s-attr s-attrtab s-output: $(MD_INCLUDES)
 5.21154 ++
 5.21155 ++# We want fine grained libraries, so use the new code
 5.21156 ++# to build the floating point emulation libraries.
 5.21157 ++FPBIT = fp-bit.c
 5.21158 ++DPBIT = dp-bit.c
 5.21159 ++
 5.21160 ++LIB1ASMSRC = avr32/lib1funcs.S
 5.21161 ++LIB1ASMFUNCS =  _avr32_f64_mul _avr32_f64_mul_fast _avr32_f64_addsub _avr32_f64_addsub_fast  _avr32_f64_to_u32 \
 5.21162 ++                _avr32_f64_to_s32 _avr32_f64_to_u64 _avr32_f64_to_s64 _avr32_u32_to_f64 \
 5.21163 ++                _avr32_s32_to_f64 _avr32_f64_cmp_eq _avr32_f64_cmp_ge _avr32_f64_cmp_lt \
 5.21164 ++                _avr32_f32_cmp_eq _avr32_f32_cmp_ge _avr32_f32_cmp_lt _avr32_f64_div _avr32_f64_div_fast \
 5.21165 ++                _avr32_f32_div _avr32_f32_div_fast _avr32_f32_addsub _avr32_f32_addsub_fast \
 5.21166 ++                _avr32_f32_mul _avr32_s32_to_f32 _avr32_u32_to_f32 _avr32_f32_to_s32 \
 5.21167 ++                _avr32_f32_to_u32 _avr32_f32_to_f64 _avr32_f64_to_f32 _mulsi3
 5.21168 ++
 5.21169 ++#LIB2FUNCS_EXTRA += $(srcdir)/config/avr32/lib2funcs.S
 5.21170 ++
 5.21171 ++MULTILIB_OPTIONS     = march=ap/march=ucr1/march=ucr2/march=ucr2nomul
 5.21172 ++MULTILIB_DIRNAMES    = ap ucr1 ucr2 ucr2nomul
 5.21173 ++MULTILIB_EXCEPTIONS  =
 5.21174 ++MULTILIB_MATCHES     += march?ap=mpart?ap7000
 5.21175 ++MULTILIB_MATCHES     += march?ap=mpart?ap7001
 5.21176 ++MULTILIB_MATCHES     += march?ap=mpart?ap7002
 5.21177 ++MULTILIB_MATCHES     += march?ap=mpart?ap7200
 5.21178 ++MULTILIB_MATCHES     += march?ucr1=march?uc
 5.21179 ++MULTILIB_MATCHES     += march?ucr1=mpart?uc3a0512es
 5.21180 ++MULTILIB_MATCHES     += march?ucr2=mpart?uc3a0128
 5.21181 ++MULTILIB_MATCHES     += march?ucr2=mpart?uc3a0256
 5.21182 ++MULTILIB_MATCHES     += march?ucr2=mpart?uc3a0512
 5.21183 ++MULTILIB_MATCHES     += march?ucr2=mpart?uc3a1128
 5.21184 ++MULTILIB_MATCHES     += march?ucr2=mpart?uc3a1256
 5.21185 ++MULTILIB_MATCHES     += march?ucr1=mpart?uc3a1512es
 5.21186 ++MULTILIB_MATCHES     += march?ucr2=mpart?uc3a1512
 5.21187 ++MULTILIB_MATCHES     += march?ucr2nomul=mpart?uc3a3revd
 5.21188 ++MULTILIB_MATCHES     += march?ucr2=mpart?uc3a364
 5.21189 ++MULTILIB_MATCHES     += march?ucr2=mpart?uc3a364s
 5.21190 ++MULTILIB_MATCHES     += march?ucr2=mpart?uc3a3128
 5.21191 ++MULTILIB_MATCHES     += march?ucr2=mpart?uc3a3128s
 5.21192 ++MULTILIB_MATCHES     += march?ucr2=mpart?uc3a3256
 5.21193 ++MULTILIB_MATCHES     += march?ucr2=mpart?uc3a3256s
 5.21194 ++MULTILIB_MATCHES     += march?ucr1=mpart?uc3b064
 5.21195 ++MULTILIB_MATCHES     += march?ucr1=mpart?uc3b0128
 5.21196 ++MULTILIB_MATCHES     += march?ucr1=mpart?uc3b0256es
 5.21197 ++MULTILIB_MATCHES     += march?ucr1=mpart?uc3b0256
 5.21198 ++MULTILIB_MATCHES     += march?ucr1=mpart?uc3b164
 5.21199 ++MULTILIB_MATCHES     += march?ucr1=mpart?uc3b1128
 5.21200 ++MULTILIB_MATCHES     += march?ucr1=mpart?uc3b1256es
 5.21201 ++MULTILIB_MATCHES     += march?ucr1=mpart?uc3b1256
 5.21202 ++
 5.21203 ++
 5.21204 ++EXTRA_MULTILIB_PARTS = crtbegin.o crtbeginS.o crtend.o crtendS.o crti.o crtn.o
 5.21205 ++
 5.21206 ++CRTSTUFF_T_CFLAGS = -mrelax
 5.21207 ++CRTSTUFF_T_CFLAGS_S = -mrelax -fPIC
 5.21208 ++TARGET_LIBGCC2_CFLAGS += -mrelax
 5.21209 ++
 5.21210 ++LIBGCC = stmp-multilib
 5.21211 ++INSTALL_LIBGCC = install-multilib
 5.21212 ++
 5.21213 ++fp-bit.c: $(srcdir)/config/fp-bit.c
 5.21214 ++	echo '#define FLOAT' > fp-bit.c
 5.21215 ++	cat $(srcdir)/config/fp-bit.c >> fp-bit.c
 5.21216 ++
 5.21217 ++dp-bit.c: $(srcdir)/config/fp-bit.c
 5.21218 ++	cat $(srcdir)/config/fp-bit.c > dp-bit.c
 5.21219 ++
 5.21220 ++
 5.21221 ++
 5.21222 +--- /dev/null
 5.21223 ++++ b/gcc/config/avr32/t-elf
 5.21224 +@@ -0,0 +1,16 @@
 5.21225 ++
 5.21226 ++# Assemble startup files.
 5.21227 ++$(T)crti.o: $(srcdir)/config/avr32/crti.asm $(GCC_PASSES)
 5.21228 ++	$(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) $(INCLUDES) \
 5.21229 ++	-c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/avr32/crti.asm
 5.21230 ++
 5.21231 ++$(T)crtn.o: $(srcdir)/config/avr32/crtn.asm $(GCC_PASSES)
 5.21232 ++	$(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) $(INCLUDES) \
 5.21233 ++	-c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/avr32/crtn.asm
 5.21234 ++
 5.21235 ++
 5.21236 ++# Build the libraries for both hard and soft floating point
 5.21237 ++EXTRA_MULTILIB_PARTS = crtbegin.o crtbeginS.o crtend.o crtendS.o crti.o crtn.o
 5.21238 ++
 5.21239 ++LIBGCC = stmp-multilib
 5.21240 ++INSTALL_LIBGCC = install-multilib
 5.21241 +--- /dev/null
 5.21242 ++++ b/gcc/config/avr32/uclinux-elf.h
 5.21243 +@@ -0,0 +1,20 @@
 5.21244 ++
 5.21245 ++/* Run-time Target Specification.  */
 5.21246 ++#undef  TARGET_VERSION
 5.21247 ++#define TARGET_VERSION  fputs (" (AVR32 uClinux with ELF)", stderr)
 5.21248 ++
 5.21249 ++/* We don't want a .jcr section on uClinux. As if this makes a difference... */
 5.21250 ++#define TARGET_USE_JCR_SECTION 0
 5.21251 ++
 5.21252 ++/* Here we go. Drop the crtbegin/crtend stuff completely. */
 5.21253 ++#undef STARTFILE_SPEC
 5.21254 ++#define STARTFILE_SPEC							\
 5.21255 ++  "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s}"			\
 5.21256 ++  " %{!p:%{profile:gcrt1.o%s}"						\
 5.21257 ++  " %{!profile:crt1.o%s}}}} crti.o%s"
 5.21258 ++
 5.21259 ++#undef ENDFILE_SPEC
 5.21260 ++#define ENDFILE_SPEC "crtn.o%s"
 5.21261 ++
 5.21262 ++#undef TARGET_DEFAULT
 5.21263 ++#define TARGET_DEFAULT (AVR32_FLAG_NO_INIT_GOT)
 5.21264 +--- a/gcc/config/host-linux.c
 5.21265 ++++ b/gcc/config/host-linux.c
 5.21266 +@@ -25,6 +25,9 @@
 5.21267 + #include "hosthooks.h"
 5.21268 + #include "hosthooks-def.h"
 5.21269 + 
 5.21270 ++#ifndef SSIZE_MAX
 5.21271 ++#define SSIZE_MAX LONG_MAX
 5.21272 ++#endif
 5.21273 + 
 5.21274 + /* Linux has a feature called exec-shield-randomize that perturbs the
 5.21275 +    address of non-fixed mapped segments by a (relatively) small amount.
 5.21276 +--- a/gcc/config.gcc
 5.21277 ++++ b/gcc/config.gcc
 5.21278 +@@ -781,6 +781,24 @@ avr-*-*)
 5.21279 + 	tm_file="avr/avr.h dbxelf.h"
 5.21280 + 	use_fixproto=yes
 5.21281 + 	;;
 5.21282 ++avr32*-*-linux*)
 5.21283 ++    tm_file="dbxelf.h elfos.h linux.h avr32/linux-elf.h avr32/avr32.h "
 5.21284 ++    tmake_file="t-linux avr32/t-avr32 avr32/t-elf"
 5.21285 ++	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
 5.21286 ++	extra_modes=avr32/avr32-modes.def
 5.21287 ++	gnu_ld=yes
 5.21288 ++	;;
 5.21289 ++avr32*-*-uclinux*)
 5.21290 ++	tm_file="dbxelf.h elfos.h linux.h avr32/linux-elf.h avr32/uclinux-elf.h avr32/avr32.h"
 5.21291 ++	tmake_file="t-linux avr32/t-avr32 avr32/t-elf"
 5.21292 ++	extra_modes=avr32/avr32-modes.def
 5.21293 ++	gnu_ld=yes
 5.21294 ++	;;
 5.21295 ++avr32-*-*)
 5.21296 ++    tm_file="dbxelf.h elfos.h avr32/avr32.h avr32/avr32-elf.h"
 5.21297 ++    tmake_file="avr32/t-avr32 avr32/t-elf"
 5.21298 ++	extra_modes=avr32/avr32-modes.def
 5.21299 ++	;;
 5.21300 + bfin*-elf*)
 5.21301 + 	tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h"
 5.21302 +         tmake_file=bfin/t-bfin-elf
 5.21303 +@@ -1681,6 +1699,9 @@ pdp11-*-bsd)
 5.21304 + pdp11-*-*)
 5.21305 + 	use_fixproto=yes
 5.21306 + 	;;
 5.21307 ++avr-*-*)
 5.21308 ++	use_fixproto=yes
 5.21309 ++	;;
 5.21310 + # port not yet contributed
 5.21311 + #powerpc-*-openbsd*)
 5.21312 + #	tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit "
 5.21313 +@@ -2717,6 +2738,32 @@ case "${target}" in
 5.21314 + 		fi
 5.21315 + 		;;
 5.21316 + 
 5.21317 ++	avr32*-*-*)
 5.21318 ++		supported_defaults="part arch"
 5.21319 ++
 5.21320 ++		case "$with_part" in
 5.21321 ++		"" \
 5.21322 ++		| "ap7000" | "ap7010" | "ap7020" | "uc3a0256" | "uc3a0512" | "uc3a1128" | "uc3a1256" | "uc3a1512" )
 5.21323 ++			# OK
 5.21324 ++			;;
 5.21325 ++		*)
 5.21326 ++			echo "Unknown part used in --with-part=$with_part" 1>&2
 5.21327 ++			exit 1
 5.21328 ++			;;
 5.21329 ++		esac
 5.21330 ++
 5.21331 ++		case "$with_arch" in
 5.21332 ++		"" \
 5.21333 ++		| "ap" | "uc")
 5.21334 ++			# OK
 5.21335 ++			;;
 5.21336 ++		*)
 5.21337 ++			echo "Unknown arch used in --with-arch=$with_arch" 1>&2
 5.21338 ++			exit 1
 5.21339 ++			;;
 5.21340 ++		esac
 5.21341 ++                ;;
 5.21342 ++
 5.21343 + 	fr*-*-*linux*)
 5.21344 + 		supported_defaults=cpu
 5.21345 + 		case "$with_cpu" in
 5.21346 +--- a/gcc/doc/extend.texi
 5.21347 ++++ b/gcc/doc/extend.texi
 5.21348 +@@ -1981,7 +1981,7 @@ this attribute to work correctly.
 5.21349 + 
 5.21350 + @item interrupt
 5.21351 + @cindex interrupt handler functions
 5.21352 +-Use this attribute on the ARM, AVR, C4x, CRX, M32C, M32R/D, MS1, and Xstormy16
 5.21353 ++Use this attribute on the ARM, AVR, AVR32, C4x, CRX, M32C, M32R/D, MS1, and Xstormy16
 5.21354 + ports to indicate that the specified function is an interrupt handler.
 5.21355 + The compiler will generate function entry and exit sequences suitable
 5.21356 + for use in an interrupt handler when this attribute is present.
 5.21357 +@@ -2000,6 +2000,15 @@ void f () __attribute__ ((interrupt ("IR
 5.21358 + 
 5.21359 + Permissible values for this parameter are: IRQ, FIQ, SWI, ABORT and UNDEF@.
 5.21360 + 
 5.21361 ++Note, for the AVR32, you can specify which banking scheme is used for
 5.21362 ++the interrupt mode this interrupt handler is used in like this:
 5.21363 ++
 5.21364 ++@smallexample
 5.21365 ++void f () __attribute__ ((interrupt ("FULL")));
 5.21366 ++@end smallexample
 5.21367 ++
 5.21368 ++Permissible values for this parameter are: FULL, HALF, NONE and UNDEF.
 5.21369 ++
 5.21370 + @item interrupt_handler
 5.21371 + @cindex interrupt handler functions on the Blackfin, m68k, H8/300 and SH processors
 5.21372 + Use this attribute on the Blackfin, m68k, H8/300, H8/300H, H8S, and SH to
 5.21373 +@@ -3460,6 +3469,23 @@ placed in either the @code{.bss_below100
 5.21374 + 
 5.21375 + @end table
 5.21376 + 
 5.21377 ++@subsection AVR32 Variable Attributes
 5.21378 ++
 5.21379 ++One attribute is currently defined for AVR32 configurations:
 5.21380 ++@code{rmw_addressable}
 5.21381 ++
 5.21382 ++@table @code
 5.21383 ++@item rmw_addressable
 5.21384 ++@cindex @code{rmw_addressable} attribute
 5.21385 ++
 5.21386 ++This attribute can be used to signal that a variable can be accessed 
 5.21387 ++with the addressing mode of the AVR32 Atomic Read-Modify-Write memory
 5.21388 ++instructions and hence make it possible for gcc to generate these 
 5.21389 ++instructions without using built-in functions or inline assembly statements. 
 5.21390 ++Variables used within the AVR32 Atomic Read-Modify-Write built-in
 5.21391 ++functions will automatically get the @code{rmw_addressable} attribute.
 5.21392 ++@end table
 5.21393 ++
 5.21394 + @node Type Attributes
 5.21395 + @section Specifying Attributes of Types
 5.21396 + @cindex attribute of types
 5.21397 +@@ -6167,6 +6193,7 @@ instructions, but allow the compiler to 
 5.21398 + @menu
 5.21399 + * Alpha Built-in Functions::
 5.21400 + * ARM Built-in Functions::
 5.21401 ++* AVR32 Built-in Functions::
 5.21402 + * Blackfin Built-in Functions::
 5.21403 + * FR-V Built-in Functions::
 5.21404 + * X86 Built-in Functions::
 5.21405 +@@ -6405,6 +6432,76 @@ long long __builtin_arm_wxor (long long,
 5.21406 + long long __builtin_arm_wzero ()
 5.21407 + @end smallexample
 5.21408 + 
 5.21409 ++@node AVR32 Built-in Functions
 5.21410 ++@subsection AVR32 Built-in Functions
 5.21411 ++
 5.21412 ++
 5.21413 ++
 5.21414 ++Built-in functions for atomic memory (RMW) instructions. Note that these
 5.21415 ++built-ins will fail for targets where the RMW instructions are not
 5.21416 ++implemented. Also note that these instructions only that a Ks15 << 2
 5.21417 ++memory address and will therefor not work with any runtime computed 
 5.21418 ++memory addresses. The user is responsible for making sure that any
 5.21419 ++pointers used within these functions points to a valid memory address.
 5.21420 ++ 
 5.21421 ++@smallexample
 5.21422 ++void __builtin_mems(int */*ptr*/, int /*bit*/)
 5.21423 ++void __builtin_memc(int */*ptr*/, int /*bit*/)
 5.21424 ++void __builtin_memt(int */*ptr*/, int /*bit*/)
 5.21425 ++@end smallexample
 5.21426 ++
 5.21427 ++Built-in functions for DSP instructions. Note that these built-ins will
 5.21428 ++fail for targets where the DSP instructions are not implemented.
 5.21429 ++
 5.21430 ++@smallexample
 5.21431 ++int __builtin_sats (int /*Rd*/,int /*sa*/, int /*bn*/)
 5.21432 ++int __builtin_satu (int /*Rd*/,int /*sa*/, int /*bn*/)
 5.21433 ++int __builtin_satrnds (int /*Rd*/,int /*sa*/, int /*bn*/)
 5.21434 ++int __builtin_satrndu (int /*Rd*/,int /*sa*/, int /*bn*/)
 5.21435 ++short __builtin_mulsathh_h (short, short)
 5.21436 ++int __builtin_mulsathh_w (short, short)
 5.21437 ++short __builtin_mulsatrndhh_h (short, short)
 5.21438 ++int __builtin_mulsatrndwh_w (int, short)
 5.21439 ++int __builtin_mulsatwh_w (int, short)
 5.21440 ++int __builtin_macsathh_w (int, short, short)
 5.21441 ++short __builtin_satadd_h (short, short)
 5.21442 ++short __builtin_satsub_h (short, short)
 5.21443 ++int __builtin_satadd_w (int, int)
 5.21444 ++int __builtin_satsub_w (int, int)
 5.21445 ++long long __builtin_mulwh_d(int, short)
 5.21446 ++long long __builtin_mulnwh_d(int, short)
 5.21447 ++long long __builtin_macwh_d(long long, int, short)
 5.21448 ++long long __builtin_machh_d(long long, short, short)
 5.21449 ++@end smallexample
 5.21450 ++
 5.21451 ++Other built-in functions for instructions that cannot easily be
 5.21452 ++generated by the compiler. 
 5.21453 ++
 5.21454 ++@smallexample
 5.21455 ++void __builtin_ssrf(int);
 5.21456 ++void __builtin_csrf(int);
 5.21457 ++void __builtin_musfr(int);
 5.21458 ++int __builtin_mustr(void);
 5.21459 ++int __builtin_mfsr(int /*Status Register Address*/)
 5.21460 ++void __builtin_mtsr(int /*Status Register Address*/, int /*Value*/)
 5.21461 ++int __builtin_mfdr(int /*Debug Register Address*/)
 5.21462 ++void __builtin_mtdr(int /*Debug Register Address*/, int /*Value*/)
 5.21463 ++void __builtin_cache(void * /*Address*/, int /*Cache Operation*/)
 5.21464 ++void __builtin_sync(int /*Sync Operation*/)
 5.21465 ++void __builtin_tlbr(void)
 5.21466 ++void __builtin_tlbs(void)
 5.21467 ++void __builtin_tlbw(void)
 5.21468 ++void __builtin_breakpoint(void)
 5.21469 ++int __builtin_xchg(void * /*Address*/, int /*Value*/ )
 5.21470 ++short __builtin_bswap_16(short)
 5.21471 ++int __builtin_bswap_32(int)
 5.21472 ++void __builtin_cop(int/*cpnr*/, int/*crd*/, int/*crx*/, int/*cry*/, int/*op*/)
 5.21473 ++int __builtin_mvcr_w(int/*cpnr*/, int/*crs*/)
 5.21474 ++void __builtin_mvrc_w(int/*cpnr*/, int/*crd*/, int/*value*/)
 5.21475 ++long long __builtin_mvcr_d(int/*cpnr*/, int/*crs*/)
 5.21476 ++void __builtin_mvrc_d(int/*cpnr*/, int/*crd*/, long long/*value*/)
 5.21477 ++@end smallexample
 5.21478 ++
 5.21479 + @node Blackfin Built-in Functions
 5.21480 + @subsection Blackfin Built-in Functions
 5.21481 + 
 5.21482 +--- a/gcc/doc/invoke.texi
 5.21483 ++++ b/gcc/doc/invoke.texi
 5.21484 +@@ -190,7 +190,7 @@ in the following sections.
 5.21485 + -fno-default-inline  -fvisibility-inlines-hidden @gol
 5.21486 + -Wabi  -Wctor-dtor-privacy @gol
 5.21487 + -Wnon-virtual-dtor  -Wreorder @gol
 5.21488 +--Weffc++  -Wno-deprecated  -Wstrict-null-sentinel @gol
 5.21489 ++-Weffc++  -Wno-deprecated @gol
 5.21490 + -Wno-non-template-friend  -Wold-style-cast @gol
 5.21491 + -Woverloaded-virtual  -Wno-pmf-conversions @gol
 5.21492 + -Wsign-promo}
 5.21493 +@@ -588,6 +588,12 @@ Objective-C and Objective-C++ Dialects}.
 5.21494 + -mauto-incdec  -minmax  -mlong-calls  -mshort @gol
 5.21495 + -msoft-reg-count=@var{count}}
 5.21496 + 
 5.21497 ++@emph{AVR32 Options}
 5.21498 ++@gccoptlist{-muse-rodata-section -mhard-float -msoft-float -mrelax @gol
 5.21499 ++-mforce-double-align -mno-init-got -mrelax -mmd-reorg-opt -masm-addr-pseudos @gol
 5.21500 ++-mpart=@var{part} -mcpu=@var{cpu} -march=@var{arch} @gol  
 5.21501 ++-mfast-float -mimm-in-const-pool}
 5.21502 ++
 5.21503 + @emph{MCore Options}
 5.21504 + @gccoptlist{-mhardlit  -mno-hardlit  -mdiv  -mno-div  -mrelax-immediates @gol
 5.21505 + -mno-relax-immediates  -mwide-bitfields  -mno-wide-bitfields @gol
 5.21506 +@@ -1868,14 +1874,6 @@ to filter out those warnings.
 5.21507 + @opindex Wno-deprecated
 5.21508 + Do not warn about usage of deprecated features.  @xref{Deprecated Features}.
 5.21509 + 
 5.21510 +-@item -Wstrict-null-sentinel @r{(C++ only)}
 5.21511 +-@opindex Wstrict-null-sentinel
 5.21512 +-Warn also about the use of an uncasted @code{NULL} as sentinel.  When
 5.21513 +-compiling only with GCC this is a valid sentinel, as @code{NULL} is defined
 5.21514 +-to @code{__null}.  Although it is a null pointer constant not a null pointer,
 5.21515 +-it is guaranteed to of the same size as a pointer.  But this use is
 5.21516 +-not portable across different compilers.
 5.21517 +-
 5.21518 + @item -Wno-non-template-friend @r{(C++ only)}
 5.21519 + @opindex Wno-non-template-friend
 5.21520 + Disable warnings when non-templatized friend functions are declared
 5.21521 +@@ -2732,13 +2730,11 @@ requiring @option{-O}.
 5.21522 + If you want to warn about code which uses the uninitialized value of the
 5.21523 + variable in its own initializer, use the @option{-Winit-self} option.
 5.21524 + 
 5.21525 +-These warnings occur for individual uninitialized or clobbered
 5.21526 +-elements of structure, union or array variables as well as for
 5.21527 +-variables which are uninitialized or clobbered as a whole.  They do
 5.21528 +-not occur for variables or elements declared @code{volatile}.  Because
 5.21529 +-these warnings depend on optimization, the exact variables or elements
 5.21530 +-for which there are warnings will depend on the precise optimization
 5.21531 +-options and version of GCC used.
 5.21532 ++These warnings occur only for variables that are candidates for
 5.21533 ++register allocation.  Therefore, they do not occur for a variable that
 5.21534 ++is declared @code{volatile}, or whose address is taken, or whose size
 5.21535 ++is other than 1, 2, 4 or 8 bytes.  Also, they do not occur for
 5.21536 ++structures, unions or arrays, even when they are in registers.
 5.21537 + 
 5.21538 + Note that there may be no warning about a variable that is used only
 5.21539 + to compute a value that itself is never used, because such
 5.21540 +@@ -6201,10 +6197,6 @@ If number of candidates in the set is sm
 5.21541 + we always try to remove unnecessary ivs from the set during its
 5.21542 + optimization when a new iv is added to the set.
 5.21543 + 
 5.21544 +-@item scev-max-expr-size
 5.21545 +-Bound on size of expressions used in the scalar evolutions analyzer.
 5.21546 +-Large expressions slow the analyzer.
 5.21547 +-
 5.21548 + @item vect-max-version-checks
 5.21549 + The maximum number of runtime checks that can be performed when doing
 5.21550 + loop versioning in the vectorizer.  See option ftree-vect-loop-version
 5.21551 +@@ -7402,7 +7394,7 @@ platform.
 5.21552 + * ARC Options::
 5.21553 + * ARM Options::
 5.21554 + * AVR Options::
 5.21555 +-* Blackfin Options::
 5.21556 ++* AVR32 Options::
 5.21557 + * CRIS Options::
 5.21558 + * CRX Options::
 5.21559 + * Darwin Options::
 5.21560 +@@ -7867,81 +7859,80 @@ comply to the C standards, but it will p
 5.21561 + size.
 5.21562 + @end table
 5.21563 + 
 5.21564 +-@node Blackfin Options
 5.21565 +-@subsection Blackfin Options
 5.21566 +-@cindex Blackfin Options
 5.21567 ++@node AVR32 Options
 5.21568 ++@subsection AVR32 Options
 5.21569 ++@cindex AVR32 Options
 5.21570 ++
 5.21571 ++These options are defined for AVR32 implementations:
 5.21572 + 
 5.21573 + @table @gcctabopt
 5.21574 +-@item -momit-leaf-frame-pointer
 5.21575 +-@opindex momit-leaf-frame-pointer
 5.21576 +-Don't keep the frame pointer in a register for leaf functions.  This
 5.21577 +-avoids the instructions to save, set up and restore frame pointers and
 5.21578 +-makes an extra register available in leaf functions.  The option
 5.21579 +-@option{-fomit-frame-pointer} removes the frame pointer for all functions
 5.21580 +-which might make debugging harder.
 5.21581 ++@item -muse-rodata-section
 5.21582 ++@opindex muse-rodata-section
 5.21583 ++Use section @samp{.rodata} for read-only data instead of @samp{.text}.
 5.21584 + 
 5.21585 +-@item -mspecld-anomaly
 5.21586 +-@opindex mspecld-anomaly
 5.21587 +-When enabled, the compiler will ensure that the generated code does not
 5.21588 +-contain speculative loads after jump instructions.  This option is enabled
 5.21589 +-by default.
 5.21590 +-
 5.21591 +-@item -mno-specld-anomaly
 5.21592 +-@opindex mno-specld-anomaly
 5.21593 +-Don't generate extra code to prevent speculative loads from occurring.
 5.21594 +-
 5.21595 +-@item -mcsync-anomaly
 5.21596 +-@opindex mcsync-anomaly
 5.21597 +-When enabled, the compiler will ensure that the generated code does not
 5.21598 +-contain CSYNC or SSYNC instructions too soon after conditional branches.
 5.21599 +-This option is enabled by default.
 5.21600 +-
 5.21601 +-@item -mno-csync-anomaly
 5.21602 +-@opindex mno-csync-anomaly
 5.21603 +-Don't generate extra code to prevent CSYNC or SSYNC instructions from
 5.21604 +-occurring too soon after a conditional branch.
 5.21605 +-
 5.21606 +-@item -mlow-64k
 5.21607 +-@opindex mlow-64k
 5.21608 +-When enabled, the compiler is free to take advantage of the knowledge that
 5.21609 +-the entire program fits into the low 64k of memory.
 5.21610 +-
 5.21611 +-@item -mno-low-64k
 5.21612 +-@opindex mno-low-64k
 5.21613 +-Assume that the program is arbitrarily large.  This is the default.
 5.21614 ++@item -mhard-float
 5.21615 ++@opindex mhard-float
 5.21616 ++Use floating point coprocessor instructions.
 5.21617 + 
 5.21618 +-@item -mid-shared-library
 5.21619 +-@opindex mid-shared-library
 5.21620 +-Generate code that supports shared libraries via the library ID method.
 5.21621 +-This allows for execute in place and shared libraries in an environment
 5.21622 +-without virtual memory management.  This option implies @option{-fPIC}.
 5.21623 ++@item -msoft-float
 5.21624 ++@opindex msoft-float
 5.21625 ++Use software floating-point library for floating-point operations.
 5.21626 + 
 5.21627 +-@item -mno-id-shared-library
 5.21628 +-@opindex mno-id-shared-library
 5.21629 +-Generate code that doesn't assume ID based shared libraries are being used.
 5.21630 +-This is the default.
 5.21631 ++@item -mforce-double-align
 5.21632 ++@opindex mforce-double-align
 5.21633 ++Force double-word alignment for double-word memory accesses.
 5.21634 ++
 5.21635 ++@item -mno-init-got
 5.21636 ++@opindex mno-init-got
 5.21637 ++Do not initialize the GOT register before using it when compiling PIC
 5.21638 ++code.
 5.21639 + 
 5.21640 +-@item -mshared-library-id=n
 5.21641 +-@opindex mshared-library-id
 5.21642 +-Specified the identification number of the ID based shared library being
 5.21643 +-compiled.  Specifying a value of 0 will generate more compact code, specifying
 5.21644 +-other values will force the allocation of that number to the current
 5.21645 +-library but is no more space or time efficient than omitting this option.
 5.21646 ++@item -mrelax
 5.21647 ++@opindex mrelax
 5.21648 ++Let invoked assembler and linker do relaxing 
 5.21649 ++(Enabled by default when optimization level is >1).
 5.21650 ++This means that when the address of symbols are known at link time,
 5.21651 ++the linker can optimize @samp{icall} and @samp{mcall}
 5.21652 ++instructions into a @samp{rcall} instruction if possible. 
 5.21653 ++Loading the address of a symbol can also be optimized.  
 5.21654 ++
 5.21655 ++@item -mmd-reorg-opt
 5.21656 ++@opindex mmd-reorg-opt
 5.21657 ++Perform machine dependent optimizations in reorg stage.
 5.21658 ++
 5.21659 ++@item -masm-addr-pseudos
 5.21660 ++@opindex masm-addr-pseudos
 5.21661 ++Use assembler pseudo-instructions lda.w and call for handling direct
 5.21662 ++addresses. (Enabled by default)
 5.21663 ++
 5.21664 ++@item -mpart=@var{part}
 5.21665 ++@opindex mpart
 5.21666 ++Generate code for the specified part. Permissible parts are: 
 5.21667 ++@samp{ap7000}, @samp{ap7010},@samp{ap7020},
 5.21668 ++@samp{uc3a0128}, @samp{uc3a0256}, @samp{uc3a0512},
 5.21669 ++@samp{uc3a1128}, @samp{uc3a1256}, @samp{uc3a1512},
 5.21670 ++@samp{uc3b064}, @samp{uc3b0128}, @samp{uc3b0256},
 5.21671 ++@samp{uc3b164}, @samp{uc3b1128}, @samp{uc3b1256}.
 5.21672 + 
 5.21673 +-@item -mlong-calls
 5.21674 +-@itemx -mno-long-calls
 5.21675 +-@opindex mlong-calls
 5.21676 +-@opindex mno-long-calls
 5.21677 +-Tells the compiler to perform function calls by first loading the
 5.21678 +-address of the function into a register and then performing a subroutine
 5.21679 +-call on this register.  This switch is needed if the target function
 5.21680 +-will lie outside of the 24 bit addressing range of the offset based
 5.21681 +-version of subroutine call instruction.
 5.21682 ++@item -mcpu=@var{cpu-type}
 5.21683 ++@opindex mcpu
 5.21684 ++Same as -mpart. Obsolete.
 5.21685 ++
 5.21686 ++@item -march=@var{arch}
 5.21687 ++@opindex march
 5.21688 ++Generate code for the specified architecture. Permissible architectures are:
 5.21689 ++@samp{ap} and @samp{uc}. 
 5.21690 ++
 5.21691 ++@item -mfast-float
 5.21692 ++@opindex mfast-float
 5.21693 ++Enable fast floating-point library that does not conform to ieee but is still good enough
 5.21694 ++for most applications. The fast floating-point library does not round to the nearest even
 5.21695 ++but away from zero. Enabled by default if the -funsafe-math-optimizations switch is specified. 
 5.21696 ++
 5.21697 ++@item -mimm-in-const-pool
 5.21698 ++@opindex mimm-in-const-pool
 5.21699 ++Put large immediates in constant pool. This is enabled by default for archs with insn-cache.
 5.21700 + 
 5.21701 +-This feature is not enabled by default.  Specifying
 5.21702 +-@option{-mno-long-calls} will restore the default behavior.  Note these
 5.21703 +-switches have no effect on how the compiler generates code to handle
 5.21704 +-function calls via function pointers.
 5.21705 + @end table
 5.21706 + 
 5.21707 + @node CRIS Options
 5.21708 +--- a/gcc/doc/md.texi
 5.21709 ++++ b/gcc/doc/md.texi
 5.21710 +@@ -1681,6 +1681,80 @@ A memory reference suitable for iWMMXt l
 5.21711 + A memory reference suitable for the ARMv4 ldrsb instruction.
 5.21712 + @end table
 5.21713 + 
 5.21714 ++@item AVR32 family---@file{avr32.h}
 5.21715 ++@table @code
 5.21716 ++@item f
 5.21717 ++Floating-point registers (f0 to f15) (Reserved for future use)
 5.21718 ++
 5.21719 ++@item Ku@var{bits}
 5.21720 ++Unsigned constant representable with @var{bits} number of bits (Must be
 5.21721 ++two digits). I.e: An unsigned 8-bit constant is written as @samp{Ku08}  
 5.21722 ++ 
 5.21723 ++@item Ks@var{bits}
 5.21724 ++Signed constant representable with @var{bits} number of bits (Must be
 5.21725 ++two digits). I.e: A signed 12-bit constant is written as @samp{Ks12}  
 5.21726 ++
 5.21727 ++@item Is@var{bits}
 5.21728 ++The negated range of a signed constant representable with  @var{bits} 
 5.21729 ++number of bits. The same as @samp{Ks@var{bits}} with a negated range. 
 5.21730 ++This means that the constant must be in the range @math{-2^{bits-1}-1} to @math{2^{bits-1}}
 5.21731 ++
 5.21732 ++@item G
 5.21733 ++A single/double precision floating-point immediate or 64-bit integer 
 5.21734 ++immediate where the least and most significant words both can be
 5.21735 ++loaded with a move instruction. That is the the integer form of the 
 5.21736 ++values in the least and most significant words both are in the range 
 5.21737 ++@math{-2^{20}} to @math{2^{20}-1}.
 5.21738 ++         
 5.21739 ++@item M
 5.21740 ++Any 32-bit immediate with the most significant bits set to zero and the
 5.21741 ++remaining least significant bits set to one. 
 5.21742 ++
 5.21743 ++@item J
 5.21744 ++A 32-bit immediate where all the lower 16-bits are zero. 
 5.21745 ++
 5.21746 ++@item O
 5.21747 ++A 32-bit immediate with one bit set and the rest of the bits cleared. 
 5.21748 ++
 5.21749 ++@item N
 5.21750 ++A 32-bit immediate with one bit cleared and the rest of the bits set. 
 5.21751 ++
 5.21752 ++@item L
 5.21753 ++A 32-bit immediate where all the lower 16-bits are set. 
 5.21754 ++
 5.21755 ++@item Q
 5.21756 ++Any AVR32 memory reference except for reference used for the atomic memory (RMW) instructions.
 5.21757 ++
 5.21758 ++@item RKs@var{bits}
 5.21759 ++A memory reference where the address consists of a base register
 5.21760 ++plus a signed immediate displacement with range given by @samp{Ks@var{bits}}
 5.21761 ++which has the same format as for the signed immediate integer constraint
 5.21762 ++given above.  
 5.21763 ++
 5.21764 ++@item RKu@var{bits}
 5.21765 ++A memory reference where the address consists of a base register
 5.21766 ++plus an unsigned immediate displacement with range given by @samp{Ku@var{bits}}
 5.21767 ++which has the same format as for the unsigned immediate integer constraint
 5.21768 ++given above.  
 5.21769 ++
 5.21770 ++@item S
 5.21771 ++A memory reference with an immediate or register offset
 5.21772 ++
 5.21773 ++@item T
 5.21774 ++A memory reference to a constant pool entry
 5.21775 ++
 5.21776 ++@item W
 5.21777 ++A valid operand for use in the @samp{lda.w} instruction macro when
 5.21778 ++relaxing is enabled
 5.21779 ++
 5.21780 ++@item Y
 5.21781 ++A memory reference suitable for the atomic memory (RMW) instructions.
 5.21782 ++
 5.21783 ++@item Z
 5.21784 ++A memory reference valid for coprocessor memory instructions
 5.21785 ++
 5.21786 ++@end table
 5.21787 ++
 5.21788 + @item AVR family---@file{config/avr/constraints.md}
 5.21789 + @table @code
 5.21790 + @item l
 5.21791 +--- a/gcc/expmed.c
 5.21792 ++++ b/gcc/expmed.c
 5.21793 +@@ -36,6 +36,7 @@ along with GCC; see the file COPYING3.  
 5.21794 + #include "real.h"
 5.21795 + #include "recog.h"
 5.21796 + #include "langhooks.h"
 5.21797 ++#include "target.h"
 5.21798 + 
 5.21799 + static void store_fixed_bit_field (rtx, unsigned HOST_WIDE_INT,
 5.21800 + 				   unsigned HOST_WIDE_INT,
 5.21801 +@@ -454,9 +455,19 @@ store_bit_field (rtx str_rtx, unsigned H
 5.21802 + 	  ? ((GET_MODE_SIZE (fieldmode) >= UNITS_PER_WORD
 5.21803 + 	     || GET_MODE_SIZE (GET_MODE (op0)) == GET_MODE_SIZE (fieldmode))
 5.21804 + 	     && byte_offset % GET_MODE_SIZE (fieldmode) == 0)
 5.21805 +-	  : (! SLOW_UNALIGNED_ACCESS (fieldmode, MEM_ALIGN (op0))
 5.21806 +-	     || (offset * BITS_PER_UNIT % bitsize == 0
 5.21807 +-		 && MEM_ALIGN (op0) % GET_MODE_BITSIZE (fieldmode) == 0))))
 5.21808 ++         : ( 
 5.21809 ++
 5.21810 ++             /* NB! Added for AVR32, and I think this should be true for
 5.21811 ++                all targets not using narrow volatile bitfields. If the
 5.21812 ++                bitfield is volatile then we need to perform an access
 5.21813 ++                consistent with the container type. */
 5.21814 ++             !(MEM_VOLATILE_P (op0) 
 5.21815 ++               && GET_MODE_BITSIZE (GET_MODE (op0)) != bitsize
 5.21816 ++               && bitsize < BITS_PER_WORD
 5.21817 ++               && !targetm.narrow_volatile_bitfield ())
 5.21818 ++             && (! SLOW_UNALIGNED_ACCESS (fieldmode, MEM_ALIGN (op0))
 5.21819 ++                 || (offset * BITS_PER_UNIT % bitsize == 0
 5.21820 ++                     && MEM_ALIGN (op0) % GET_MODE_BITSIZE (fieldmode) == 0)))))
 5.21821 +     {
 5.21822 +       if (MEM_P (op0))
 5.21823 + 	op0 = adjust_address (op0, fieldmode, offset);
 5.21824 +@@ -1256,6 +1267,13 @@ extract_bit_field (rtx str_rtx, unsigned
 5.21825 + 	   && GET_MODE_SIZE (mode1) != 0
 5.21826 + 	   && byte_offset % GET_MODE_SIZE (mode1) == 0)
 5.21827 + 	  || (MEM_P (op0)
 5.21828 ++             /* NB! Added for AVR32, and I think this should be true for
 5.21829 ++                all targets not using narrow volatile bitfields. If the
 5.21830 ++                bitfield is volatile then we need to perform an access
 5.21831 ++                consistent with the container type. */
 5.21832 ++              && !(MEM_VOLATILE_P (op0)
 5.21833 ++                   && GET_MODE_BITSIZE (GET_MODE (op0)) != bitsize
 5.21834 ++                   && !targetm.narrow_volatile_bitfield ())
 5.21835 + 	      && (! SLOW_UNALIGNED_ACCESS (mode, MEM_ALIGN (op0))
 5.21836 + 		  || (offset * BITS_PER_UNIT % bitsize == 0
 5.21837 + 		      && MEM_ALIGN (op0) % bitsize == 0)))))
 5.21838 +--- a/gcc/expr.c
 5.21839 ++++ b/gcc/expr.c
 5.21840 +@@ -3519,18 +3519,19 @@ emit_single_push_insn (enum machine_mode
 5.21841 +     }
 5.21842 +   else
 5.21843 +     {
 5.21844 ++      emit_move_insn (stack_pointer_rtx,
 5.21845 ++		      expand_binop (Pmode,
 5.21846 + #ifdef STACK_GROWS_DOWNWARD
 5.21847 +-      /* ??? This seems wrong if STACK_PUSH_CODE == POST_DEC.  */
 5.21848 +-      dest_addr = gen_rtx_PLUS (Pmode, stack_pointer_rtx,
 5.21849 +-				GEN_INT (-(HOST_WIDE_INT) rounded_size));
 5.21850 ++				    sub_optab,
 5.21851 + #else
 5.21852 +-      /* ??? This seems wrong if STACK_PUSH_CODE == POST_INC.  */
 5.21853 +-      dest_addr = gen_rtx_PLUS (Pmode, stack_pointer_rtx,
 5.21854 +-				GEN_INT (rounded_size));
 5.21855 ++				    add_optab,
 5.21856 + #endif
 5.21857 +-      dest_addr = gen_rtx_PRE_MODIFY (Pmode, stack_pointer_rtx, dest_addr);
 5.21858 ++				    stack_pointer_rtx,
 5.21859 ++				    GEN_INT (rounded_size),
 5.21860 ++				    NULL_RTX, 0, OPTAB_LIB_WIDEN));
 5.21861 ++      dest_addr = stack_pointer_rtx;
 5.21862 +     }
 5.21863 +-
 5.21864 ++  
 5.21865 +   dest = gen_rtx_MEM (mode, dest_addr);
 5.21866 + 
 5.21867 +   if (type != 0)
 5.21868 +@@ -5509,7 +5510,21 @@ store_field (rtx target, HOST_WIDE_INT b
 5.21869 +      is a bit field, we cannot use addressing to access it.
 5.21870 +      Use bit-field techniques or SUBREG to store in it.  */
 5.21871 + 
 5.21872 +-  if (mode == VOIDmode
 5.21873 ++  if (
 5.21874 ++      /* NB! Added for AVR32, and I think this should be true for
 5.21875 ++         all targets not using narrow volatile bitfields. If the
 5.21876 ++         bitfield is volatile then we need to perform an access
 5.21877 ++         consistent with the container type. */
 5.21878 ++      (MEM_P (target) 
 5.21879 ++       && MEM_VOLATILE_P (target) 
 5.21880 ++       && ((GET_MODE (target) != BLKmode
 5.21881 ++            && GET_MODE_BITSIZE (GET_MODE (target)) > bitsize )
 5.21882 ++           /* If BLKmode, check if this is a record. Do not know 
 5.21883 ++              if this is really necesarry though...*/
 5.21884 ++           || (GET_MODE (target) == BLKmode
 5.21885 ++               && TREE_CODE (type) == RECORD_TYPE))
 5.21886 ++       && !targetm.narrow_volatile_bitfield ())
 5.21887 ++      || mode == VOIDmode
 5.21888 +       || (mode != BLKmode && ! direct_store[(int) mode]
 5.21889 + 	  && GET_MODE_CLASS (mode) != MODE_COMPLEX_INT
 5.21890 + 	  && GET_MODE_CLASS (mode) != MODE_COMPLEX_FLOAT)
 5.21891 +@@ -7560,7 +7575,21 @@ expand_expr_real_1 (tree exp, rtx target
 5.21892 + 	   by doing the extract into an object as wide as the field
 5.21893 + 	   (which we know to be the width of a basic mode), then
 5.21894 + 	   storing into memory, and changing the mode to BLKmode.  */
 5.21895 +-	if (mode1 == VOIDmode
 5.21896 ++       if (      
 5.21897 ++            /* NB! Added for AVR32, and I think this should be true for
 5.21898 ++               all targets not using narrow volatile bitfields. If the
 5.21899 ++               bitfield is volatile then we need to perform an access
 5.21900 ++               consistent with the container type. */
 5.21901 ++            (MEM_P (op0) 
 5.21902 ++             && MEM_VOLATILE_P (op0) 
 5.21903 ++             && ((GET_MODE (op0) != BLKmode
 5.21904 ++                  && GET_MODE_BITSIZE (GET_MODE (op0)) > bitsize )
 5.21905 ++                 /* If BLKmode, check if this is a record. Do not know 
 5.21906 ++                    if this is really necesarry though...*/
 5.21907 ++                 || (GET_MODE (op0) == BLKmode
 5.21908 ++                     && TREE_CODE (type) == RECORD_TYPE))
 5.21909 ++             && !targetm.narrow_volatile_bitfield ())
 5.21910 ++            || mode1 == VOIDmode
 5.21911 + 	    || REG_P (op0) || GET_CODE (op0) == SUBREG
 5.21912 + 	    || (mode1 != BLKmode && ! direct_load[(int) mode1]
 5.21913 + 		&& GET_MODE_CLASS (mode) != MODE_COMPLEX_INT
 5.21914 +--- a/gcc/flow.c
 5.21915 ++++ b/gcc/flow.c
 5.21916 +@@ -3327,12 +3327,12 @@ not_reg_cond (rtx x)
 5.21917 +   if (GET_CODE (x) == NOT)
 5.21918 +     return XEXP (x, 0);
 5.21919 +   if (COMPARISON_P (x)
 5.21920 +-      && REG_P (XEXP (x, 0)))
 5.21921 ++      /* && REG_P (XEXP (x, 0))*/)
 5.21922 +     {
 5.21923 +-      gcc_assert (XEXP (x, 1) == const0_rtx);
 5.21924 ++      /*gcc_assert (XEXP (x, 1) == const0_rtx);*/
 5.21925 + 
 5.21926 +       return gen_rtx_fmt_ee (reversed_comparison_code (x, NULL),
 5.21927 +-			     VOIDmode, XEXP (x, 0), const0_rtx);
 5.21928 ++			     VOIDmode, XEXP (x, 0), XEXP (x, 0) /*const0_rtx*/);
 5.21929 +     }
 5.21930 +   return gen_rtx_NOT (0, x);
 5.21931 + }
 5.21932 +--- a/gcc/function.c
 5.21933 ++++ b/gcc/function.c
 5.21934 +@@ -2676,8 +2676,12 @@ assign_parm_setup_reg (struct assign_par
 5.21935 +     SET_DECL_RTL (parm, parmreg);
 5.21936 + 
 5.21937 +   /* Copy the value into the register.  */
 5.21938 +-  if (data->nominal_mode != data->passed_mode
 5.21939 +-      || promoted_nominal_mode != data->promoted_mode)
 5.21940 ++  if ( (data->nominal_mode != data->passed_mode
 5.21941 ++        /* Added for AVR32: If passed_mode is equal
 5.21942 ++           to promoted nominal mode why should be convert?
 5.21943 ++           The conversion should make no difference. */
 5.21944 ++        && data->passed_mode != promoted_nominal_mode)
 5.21945 ++       || promoted_nominal_mode != data->promoted_mode)
 5.21946 +     {
 5.21947 +       int save_tree_used;
 5.21948 + 
 5.21949 +--- a/gcc/genemit.c
 5.21950 ++++ b/gcc/genemit.c
 5.21951 +@@ -121,6 +121,24 @@ max_operand_vec (rtx insn, int arg)
 5.21952 + }
 5.21953 + 
 5.21954 + static void
 5.21955 ++gen_vararg_prologue(int operands)
 5.21956 ++{
 5.21957 ++  int i;
 5.21958 ++
 5.21959 ++  if (operands > 1)
 5.21960 ++    {
 5.21961 ++      for (i = 1; i < operands; i++)
 5.21962 ++	printf("  rtx operand%d ATTRIBUTE_UNUSED;\n", i);
 5.21963 ++
 5.21964 ++      printf("  va_list args;\n\n");
 5.21965 ++      printf("  va_start(args, operand0);\n");
 5.21966 ++      for (i = 1; i < operands; i++)
 5.21967 ++	printf("  operand%d = va_arg(args, rtx);\n", i);
 5.21968 ++      printf("  va_end(args);\n\n");
 5.21969 ++    }
 5.21970 ++}
 5.21971 ++
 5.21972 ++static void
 5.21973 + print_code (RTX_CODE code)
 5.21974 + {
 5.21975 +   const char *p1;
 5.21976 +@@ -405,18 +423,16 @@ gen_insn (rtx insn, int lineno)
 5.21977 +     fatal ("match_dup operand number has no match_operand");
 5.21978 + 
 5.21979 +   /* Output the function name and argument declarations.  */
 5.21980 +-  printf ("rtx\ngen_%s (", XSTR (insn, 0));
 5.21981 ++  printf ("rtx\ngen_%s ", XSTR (insn, 0));
 5.21982 ++
 5.21983 +   if (operands)
 5.21984 +-    for (i = 0; i < operands; i++)
 5.21985 +-      if (i)
 5.21986 +-	printf (",\n\trtx operand%d ATTRIBUTE_UNUSED", i);
 5.21987 +-      else
 5.21988 +-	printf ("rtx operand%d ATTRIBUTE_UNUSED", i);
 5.21989 ++    printf("(rtx operand0 ATTRIBUTE_UNUSED, ...)\n");
 5.21990 +   else
 5.21991 +-    printf ("void");
 5.21992 +-  printf (")\n");
 5.21993 ++    printf("(void)\n");
 5.21994 +   printf ("{\n");
 5.21995 + 
 5.21996 ++  gen_vararg_prologue(operands);
 5.21997 ++
 5.21998 +   /* Output code to construct and return the rtl for the instruction body.  */
 5.21999 + 
 5.22000 +   if (XVECLEN (insn, 1) == 1)
 5.22001 +@@ -456,16 +472,12 @@ gen_expand (rtx expand)
 5.22002 +   operands = max_operand_vec (expand, 1);
 5.22003 + 
 5.22004 +   /* Output the function name and argument declarations.  */
 5.22005 +-  printf ("rtx\ngen_%s (", XSTR (expand, 0));
 5.22006 ++  printf ("rtx\ngen_%s ", XSTR (expand, 0));
 5.22007 +   if (operands)
 5.22008 +-    for (i = 0; i < operands; i++)
 5.22009 +-      if (i)
 5.22010 +-	printf (",\n\trtx operand%d", i);
 5.22011 +-      else
 5.22012 +-	printf ("rtx operand%d", i);
 5.22013 ++    printf("(rtx operand0 ATTRIBUTE_UNUSED, ...)\n");
 5.22014 +   else
 5.22015 +-    printf ("void");
 5.22016 +-  printf (")\n");
 5.22017 ++    printf("(void)\n");
 5.22018 ++
 5.22019 +   printf ("{\n");
 5.22020 + 
 5.22021 +   /* If we don't have any C code to write, only one insn is being written,
 5.22022 +@@ -475,6 +487,8 @@ gen_expand (rtx expand)
 5.22023 +       && operands > max_dup_opno
 5.22024 +       && XVECLEN (expand, 1) == 1)
 5.22025 +     {
 5.22026 ++      gen_vararg_prologue(operands);
 5.22027 ++
 5.22028 +       printf ("  return ");
 5.22029 +       gen_exp (XVECEXP (expand, 1, 0), DEFINE_EXPAND, NULL);
 5.22030 +       printf (";\n}\n\n");
 5.22031 +@@ -488,6 +502,7 @@ gen_expand (rtx expand)
 5.22032 +   for (; i <= max_scratch_opno; i++)
 5.22033 +     printf ("  rtx operand%d ATTRIBUTE_UNUSED;\n", i);
 5.22034 +   printf ("  rtx _val = 0;\n");
 5.22035 ++  gen_vararg_prologue(operands);
 5.22036 +   printf ("  start_sequence ();\n");
 5.22037 + 
 5.22038 +   /* The fourth operand of DEFINE_EXPAND is some code to be executed
 5.22039 +--- a/gcc/genflags.c
 5.22040 ++++ b/gcc/genflags.c
 5.22041 +@@ -127,7 +127,6 @@ static void
 5.22042 + gen_proto (rtx insn)
 5.22043 + {
 5.22044 +   int num = num_operands (insn);
 5.22045 +-  int i;
 5.22046 +   const char *name = XSTR (insn, 0);
 5.22047 +   int truth = maybe_eval_c_test (XSTR (insn, 2));
 5.22048 + 
 5.22049 +@@ -158,12 +157,7 @@ gen_proto (rtx insn)
 5.22050 +   if (num == 0)
 5.22051 +     fputs ("void", stdout);
 5.22052 +   else
 5.22053 +-    {
 5.22054 +-      for (i = 1; i < num; i++)
 5.22055 +-	fputs ("rtx, ", stdout);
 5.22056 +-
 5.22057 +-      fputs ("rtx", stdout);
 5.22058 +-    }
 5.22059 ++    fputs("rtx, ...", stdout);
 5.22060 + 
 5.22061 +   puts (");");
 5.22062 + 
 5.22063 +@@ -173,12 +167,7 @@ gen_proto (rtx insn)
 5.22064 +     {
 5.22065 +       printf ("static inline rtx\ngen_%s", name);
 5.22066 +       if (num > 0)
 5.22067 +-	{
 5.22068 +-	  putchar ('(');
 5.22069 +-	  for (i = 0; i < num-1; i++)
 5.22070 +-	    printf ("rtx ARG_UNUSED (%c), ", 'a' + i);
 5.22071 +-	  printf ("rtx ARG_UNUSED (%c))\n", 'a' + i);
 5.22072 +-	}
 5.22073 ++	puts("(rtx ARG_UNUSED(a), ...)");
 5.22074 +       else
 5.22075 + 	puts ("(void)");
 5.22076 +       puts ("{\n  return 0;\n}");
 5.22077 +--- a/gcc/genoutput.c
 5.22078 ++++ b/gcc/genoutput.c
 5.22079 +@@ -386,7 +386,7 @@ output_insn_data (void)
 5.22080 + 	}
 5.22081 + 
 5.22082 +       if (d->name && d->name[0] != '*')
 5.22083 +-	printf ("    (insn_gen_fn) gen_%s,\n", d->name);
 5.22084 ++	printf ("    gen_%s,\n", d->name);
 5.22085 +       else
 5.22086 + 	printf ("    0,\n");
 5.22087 + 
 5.22088 +--- a/gcc/ifcvt.c
 5.22089 ++++ b/gcc/ifcvt.c
 5.22090 +@@ -77,7 +77,7 @@ static int num_possible_if_blocks;
 5.22091 + static int num_updated_if_blocks;
 5.22092 + 
 5.22093 + /* # of changes made which require life information to be updated.  */
 5.22094 +-static int num_true_changes;
 5.22095 ++int num_true_changes;
 5.22096 + 
 5.22097 + /* Whether conditional execution changes were made.  */
 5.22098 + static int cond_exec_changed_p;
 5.22099 +@@ -287,12 +287,15 @@ cond_exec_process_insns (ce_if_block_t *
 5.22100 +       if (must_be_last)
 5.22101 + 	return FALSE;
 5.22102 + 
 5.22103 +-      if (modified_in_p (test, insn))
 5.22104 +-	{
 5.22105 +-	  if (!mod_ok)
 5.22106 +-	    return FALSE;
 5.22107 +-	  must_be_last = TRUE;
 5.22108 +-	}
 5.22109 ++#ifdef IFCVT_ALLOW_MODIFY_TEST_IN_INSN       
 5.22110 ++      if ( !IFCVT_ALLOW_MODIFY_TEST_IN_INSN )
 5.22111 ++#endif
 5.22112 ++        if (modified_in_p (test, insn))
 5.22113 ++          {
 5.22114 ++            if (!mod_ok)
 5.22115 ++              return FALSE;
 5.22116 ++            must_be_last = TRUE;
 5.22117 ++          }
 5.22118 + 
 5.22119 +       /* Now build the conditional form of the instruction.  */
 5.22120 +       pattern = PATTERN (insn);
 5.22121 +@@ -566,16 +569,19 @@ cond_exec_process_if_block (ce_if_block_
 5.22122 +   /* Do any machine dependent final modifications.  */
 5.22123 +   IFCVT_MODIFY_FINAL (ce_info);
 5.22124 + #endif
 5.22125 +-
 5.22126 +-  /* Conversion succeeded.  */
 5.22127 +-  if (dump_file)
 5.22128 +-    fprintf (dump_file, "%d insn%s converted to conditional execution.\n",
 5.22129 +-	     n_insns, (n_insns == 1) ? " was" : "s were");
 5.22130 +-
 5.22131 ++  
 5.22132 +   /* Merge the blocks!  */
 5.22133 +-  merge_if_block (ce_info);
 5.22134 +-  cond_exec_changed_p = TRUE;
 5.22135 +-  return TRUE;
 5.22136 ++  if ( reload_completed ){
 5.22137 ++    /* Conversion succeeded.  */
 5.22138 ++    if (dump_file)
 5.22139 ++      fprintf (dump_file, "%d insn%s converted to conditional execution.\n",
 5.22140 ++               n_insns, (n_insns == 1) ? " was" : "s were");
 5.22141 ++    
 5.22142 ++    merge_if_block (ce_info);
 5.22143 ++    cond_exec_changed_p = TRUE;
 5.22144 ++    return TRUE;
 5.22145 ++  }
 5.22146 ++  return FALSE;
 5.22147 + 
 5.22148 +  fail:
 5.22149 + #ifdef IFCVT_MODIFY_CANCEL
 5.22150 +@@ -1050,7 +1056,11 @@ noce_try_addcc (struct noce_if_info *if_
 5.22151 + 	  != UNKNOWN))
 5.22152 +     {
 5.22153 +       rtx cond = if_info->cond;
 5.22154 +-      enum rtx_code code = reversed_comparison_code (cond, if_info->jump);
 5.22155 ++      /* This generates wrong code for AVR32. The cond code need not be reversed
 5.22156 ++         since the addmodecc patterns add if the condition is NOT met. */
 5.22157 ++      /*   enum rtx_code code = reversed_comparison_code (cond, if_info->jump);*/
 5.22158 ++      enum rtx_code code = GET_CODE(cond);
 5.22159 ++
 5.22160 + 
 5.22161 +       /* First try to use addcc pattern.  */
 5.22162 +       if (general_operand (XEXP (cond, 0), VOIDmode)
 5.22163 +@@ -2651,7 +2661,12 @@ process_if_block (struct ce_if_block * c
 5.22164 +       && cond_move_process_if_block (ce_info))
 5.22165 +     return TRUE;
 5.22166 + 
 5.22167 +-  if (HAVE_conditional_execution && reload_completed)
 5.22168 ++  if (HAVE_conditional_execution && 
 5.22169 ++#ifdef IFCVT_COND_EXEC_BEFORE_RELOAD
 5.22170 ++      (reload_completed || IFCVT_COND_EXEC_BEFORE_RELOAD))
 5.22171 ++#else
 5.22172 ++      reload_completed)
 5.22173 ++#endif
 5.22174 +     {
 5.22175 +       /* If we have && and || tests, try to first handle combining the && and
 5.22176 +          || tests into the conditional code, and if that fails, go back and
 5.22177 +@@ -4036,6 +4051,15 @@ rest_of_handle_if_after_reload (void)
 5.22178 +   cleanup_cfg (CLEANUP_EXPENSIVE
 5.22179 +                | CLEANUP_UPDATE_LIFE
 5.22180 +                | (flag_crossjumping ? CLEANUP_CROSSJUMP : 0));
 5.22181 ++  
 5.22182 ++  /* Hack for the AVR32 experimental ifcvt processing before reload.
 5.22183 ++     The AVR32 specific ifcvt code needs to know when ifcvt after reload 
 5.22184 ++     has begun. */
 5.22185 ++#ifdef IFCVT_COND_EXEC_BEFORE_RELOAD
 5.22186 ++  if ( IFCVT_COND_EXEC_BEFORE_RELOAD )
 5.22187 ++    cfun->machine->ifcvt_after_reload = 1;
 5.22188 ++#endif
 5.22189 ++  
 5.22190 +   if (flag_if_conversion2)
 5.22191 +     if_convert (1);
 5.22192 +   return 0;
 5.22193 +--- a/gcc/longlong.h
 5.22194 ++++ b/gcc/longlong.h
 5.22195 +@@ -226,6 +226,41 @@ UDItype __umulsidi3 (USItype, USItype);
 5.22196 + #define UDIV_TIME 100
 5.22197 + #endif /* __arm__ */
 5.22198 + 
 5.22199 ++#if defined (__avr32__) && W_TYPE_SIZE == 32
 5.22200 ++#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 5.22201 ++  __asm__ ("add\t%1, %4, %5\n\tadc\t%0, %2, %3"		\
 5.22202 ++	   : "=r" ((USItype) (sh)),					\
 5.22203 ++	     "=&r" ((USItype) (sl))					\
 5.22204 ++	   : "r" ((USItype) (ah)),					\
 5.22205 ++	     "r" ((USItype) (bh)),					\
 5.22206 ++	     "r" ((USItype) (al)),					\
 5.22207 ++	     "r" ((USItype) (bl)) __CLOBBER_CC)
 5.22208 ++#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 5.22209 ++  __asm__ ("sub\t%1, %4, %5\n\tsbc\t%0, %2, %3"		\
 5.22210 ++	   : "=r" ((USItype) (sh)),					\
 5.22211 ++	     "=&r" ((USItype) (sl))					\
 5.22212 ++	   : "r" ((USItype) (ah)),					\
 5.22213 ++	     "r" ((USItype) (bh)),					\
 5.22214 ++	     "r" ((USItype) (al)),					\
 5.22215 ++	     "r" ((USItype) (bl)) __CLOBBER_CC)
 5.22216 ++
 5.22217 ++#if !defined (__AVR32_UC__) || __AVR32_UC__ != 3
 5.22218 ++#define __umulsidi3(a,b) ((UDItype)(a) * (UDItype)(b))
 5.22219 ++
 5.22220 ++#define umul_ppmm(w1, w0, u, v) \
 5.22221 ++{									\
 5.22222 ++  DWunion __w;								\
 5.22223 ++  __w.ll = __umulsidi3 (u, v);						\
 5.22224 ++  w1 = __w.s.high;							\
 5.22225 ++  w0 = __w.s.low;							\
 5.22226 ++}
 5.22227 ++#endif
 5.22228 ++
 5.22229 ++#define count_leading_zeros(COUNT,X)	((COUNT) = __builtin_clz (X))
 5.22230 ++#define count_trailing_zeros(COUNT,X)	((COUNT) = __builtin_ctz (X))
 5.22231 ++#define COUNT_LEADING_ZEROS_0 32
 5.22232 ++#endif
 5.22233 ++
 5.22234 + #if defined (__hppa) && W_TYPE_SIZE == 32
 5.22235 + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 5.22236 +   __asm__ ("add %4,%5,%1\n\taddc %2,%3,%0"				\
 5.22237 +--- a/gcc/optabs.h
 5.22238 ++++ b/gcc/optabs.h
 5.22239 +@@ -431,7 +431,7 @@ extern enum insn_code reload_out_optab[N
 5.22240 + extern GTY(()) optab code_to_optab[NUM_RTX_CODE + 1];
 5.22241 + 
 5.22242 + 
 5.22243 +-typedef rtx (*rtxfun) (rtx);
 5.22244 ++typedef rtx (*rtxfun) (rtx, ...);
 5.22245 + 
 5.22246 + /* Indexed by the rtx-code for a conditional (e.g. EQ, LT,...)
 5.22247 +    gives the gen_function to make a branch to test that condition.  */
 5.22248 +--- a/gcc/regrename.c
 5.22249 ++++ b/gcc/regrename.c
 5.22250 +@@ -1592,6 +1592,9 @@ copyprop_hardreg_forward_1 (basic_block 
 5.22251 +   bool changed = false;
 5.22252 +   rtx insn;
 5.22253 + 
 5.22254 ++  rtx prev_pred_test;
 5.22255 ++  int prev_pred_insn_skipped = 0;
 5.22256 ++
 5.22257 +   for (insn = BB_HEAD (bb); ; insn = NEXT_INSN (insn))
 5.22258 +     {
 5.22259 +       int n_ops, i, alt, predicated;
 5.22260 +@@ -1630,7 +1633,60 @@ copyprop_hardreg_forward_1 (basic_block 
 5.22261 + 	      || (predicated && recog_data.operand_type[i] == OP_OUT))
 5.22262 + 	    recog_data.operand_type[i] = OP_INOUT;
 5.22263 + 	}
 5.22264 ++      
 5.22265 + 
 5.22266 ++      /* Added for targets (AVR32) which supports test operands to be modified
 5.22267 ++         in cond_exec instruction. For these targets we cannot make a change to
 5.22268 ++         the test operands if one of the test operands is an output operand This beacuse
 5.22269 ++         changing the test operands might cause the need for inserting a new test
 5.22270 ++         insns in the middle of a sequence of cond_exec insns and if the test operands
 5.22271 ++         are modified these tests will fail.
 5.22272 ++      */
 5.22273 ++      
 5.22274 ++      if ( IFCVT_ALLOW_MODIFY_TEST_IN_INSN
 5.22275 ++           && predicated )
 5.22276 ++        { 
 5.22277 ++          int insn_skipped = 0;
 5.22278 ++          rtx test = COND_EXEC_TEST (PATTERN (insn));
 5.22279 ++
 5.22280 ++          /* Check if the previous insn was a skipped predicated insn with the same
 5.22281 ++             test as this predicated insns. If so we cannot do any modification to
 5.22282 ++             this insn either since we cannot emit the test insn because the operands
 5.22283 ++             are clobbered. */
 5.22284 ++          if ( prev_pred_insn_skipped 
 5.22285 ++               && (rtx_equal_p (test, prev_pred_test) 
 5.22286 ++                   || rtx_equal_p (test, reversed_condition (prev_pred_test))) )
 5.22287 ++            { 
 5.22288 ++              insn_skipped = 1;
 5.22289 ++            }
 5.22290 ++          else
 5.22291 ++            {
 5.22292 ++              /* Check if the output operand is used in the test expression. */
 5.22293 ++              for (i = 0; i < n_ops; ++i)
 5.22294 ++                if ( recog_data.operand_type[i] == OP_INOUT 
 5.22295 ++                     && reg_mentioned_p (recog_data.operand[i], test) )
 5.22296 ++                  {
 5.22297 ++                    insn_skipped = 1;
 5.22298 ++                    break;
 5.22299 ++                  }
 5.22300 ++              
 5.22301 ++            }
 5.22302 ++          
 5.22303 ++          prev_pred_test = test;
 5.22304 ++          prev_pred_insn_skipped = insn_skipped;
 5.22305 ++          if ( insn_skipped )
 5.22306 ++            {
 5.22307 ++              if (insn == BB_END (bb))
 5.22308 ++                break;
 5.22309 ++              else
 5.22310 ++                continue;
 5.22311 ++            }
 5.22312 ++        } 
 5.22313 ++      else 
 5.22314 ++        {
 5.22315 ++          prev_pred_insn_skipped = 0;
 5.22316 ++        }
 5.22317 ++      
 5.22318 +       /* For each earlyclobber operand, zap the value data.  */
 5.22319 +       for (i = 0; i < n_ops; i++)
 5.22320 + 	if (recog_op_alt[i][alt].earlyclobber)
 5.22321 +--- a/gcc/reload.c
 5.22322 ++++ b/gcc/reload.c
 5.22323 +@@ -4574,7 +4574,7 @@ find_reloads_toplev (rtx x, int opnum, e
 5.22324 + 	      x = mem;
 5.22325 + 	      i = find_reloads_address (GET_MODE (x), &x, XEXP (x, 0), &XEXP (x, 0),
 5.22326 + 					opnum, type, ind_levels, insn);
 5.22327 +-	      if (x != mem)
 5.22328 ++         if (!rtx_equal_p (x, mem))
 5.22329 + 		push_reg_equiv_alt_mem (regno, x);
 5.22330 + 	      if (address_reloaded)
 5.22331 + 		*address_reloaded = i;
 5.22332 +--- a/gcc/sched-deps.c
 5.22333 ++++ b/gcc/sched-deps.c
 5.22334 +@@ -649,7 +649,14 @@ fixup_sched_groups (rtx insn)
 5.22335 + 
 5.22336 +   prev_nonnote = prev_nonnote_insn (insn);
 5.22337 +   if (BLOCK_FOR_INSN (insn) == BLOCK_FOR_INSN (prev_nonnote)
 5.22338 +-      && ! sched_insns_conditions_mutex_p (insn, prev_nonnote))
 5.22339 ++      /* Modification for AVR32 by RP: Why is this here, this will
 5.22340 ++         cause instruction to be without any dependencies which might
 5.22341 ++         cause it to be moved anywhere. For the AVR32 we try to keep
 5.22342 ++         a group of conditionals together even if they are mutual exclusive.
 5.22343 ++      */
 5.22344 ++      && (! sched_insns_conditions_mutex_p (insn, prev_nonnote)
 5.22345 ++          || GET_CODE (PATTERN (insn)) == COND_EXEC )
 5.22346 ++      )
 5.22347 +     add_dependence (insn, prev_nonnote, REG_DEP_ANTI);
 5.22348 + }
 5.22349 + 
 5.22350 +@@ -1123,8 +1130,29 @@ sched_analyze_insn (struct deps *deps, r
 5.22351 + 
 5.22352 +   if (code == COND_EXEC)
 5.22353 +     {
 5.22354 ++#ifdef IFCVT_ALLOW_MODIFY_TEST_IN_INSN
 5.22355 ++      if (IFCVT_ALLOW_MODIFY_TEST_IN_INSN)
 5.22356 ++        {
 5.22357 ++          /* Check if we have a group og conditional instructions with the same test. 
 5.22358 ++             If so we must make sure that they are not scheduled apart in order to
 5.22359 ++             avoid unnecesarry tests and if one of the registers in the test is modified
 5.22360 ++             in the instruction this is needed to ensure correct code. */
 5.22361 ++          if ( prev_nonnote_insn (insn)
 5.22362 ++               && INSN_P (prev_nonnote_insn (insn))
 5.22363 ++               && GET_CODE (PATTERN (prev_nonnote_insn (insn))) == COND_EXEC 
 5.22364 ++               && rtx_equal_p (XEXP(COND_EXEC_TEST (PATTERN (prev_nonnote_insn (insn))), 0), XEXP (COND_EXEC_TEST (x), 0))
 5.22365 ++               && rtx_equal_p (XEXP(COND_EXEC_TEST (PATTERN (prev_nonnote_insn (insn))), 1), XEXP (COND_EXEC_TEST (x), 1))
 5.22366 ++               && ( GET_CODE (COND_EXEC_TEST (PATTERN (prev_nonnote_insn (insn)))) == GET_CODE (COND_EXEC_TEST (x))
 5.22367 ++                    || GET_CODE (COND_EXEC_TEST (PATTERN (prev_nonnote_insn (insn)))) == reversed_comparison_code (COND_EXEC_TEST (x), insn)))
 5.22368 ++            {
 5.22369 ++              SCHED_GROUP_P (insn) = 1;
 5.22370 ++              //CANT_MOVE (prev_nonnote_insn (insn)) = 1;
 5.22371 ++            }
 5.22372 ++        }
 5.22373 ++#endif      
 5.22374 +       sched_analyze_2 (deps, COND_EXEC_TEST (x), insn);
 5.22375 + 
 5.22376 ++
 5.22377 +       /* ??? Should be recording conditions so we reduce the number of
 5.22378 + 	 false dependencies.  */
 5.22379 +       x = COND_EXEC_CODE (x);
 5.22380 +--- a/gcc/testsuite/gcc.dg/sibcall-3.c
 5.22381 ++++ b/gcc/testsuite/gcc.dg/sibcall-3.c
 5.22382 +@@ -5,7 +5,7 @@
 5.22383 +    Copyright (C) 2002 Free Software Foundation Inc.
 5.22384 +    Contributed by Hans-Peter Nilsson  <hp@bitrange.com>  */
 5.22385 + 
 5.22386 +-/* { dg-do run { xfail arc-*-* avr-*-* c4x-*-* cris-*-* h8300-*-* hppa*64*-*-* m32r-*-* m68hc1?-*-* m681?-*-* m680*-*-* m68k-*-* mcore-*-* mn10300-*-* xstormy16-*-* v850*-*-* vax-*-* xtensa-*-* } } */
 5.22387 ++/* { dg-do run { xfail arc-*-* avr-*-* avr32-*-* c4x-*-* cris-*-* h8300-*-* hppa*64*-*-* m32r-*-* m68hc1?-*-* m681?-*-* m680*-*-* m68k-*-* mcore-*-* mn10300-*-* xstormy16-*-* v850*-*-* vax-*-* xtensa-*-* } } */
 5.22388 + /* { dg-options "-O2 -foptimize-sibling-calls" } */
 5.22389 + 
 5.22390 + /* The option -foptimize-sibling-calls is the default, but serves as
 5.22391 +--- a/gcc/testsuite/gcc.dg/sibcall-4.c
 5.22392 ++++ b/gcc/testsuite/gcc.dg/sibcall-4.c
 5.22393 +@@ -5,7 +5,7 @@
 5.22394 +    Copyright (C) 2002 Free Software Foundation Inc.
 5.22395 +    Contributed by Hans-Peter Nilsson  <hp@bitrange.com>  */
 5.22396 + 
 5.22397 +-/* { dg-do run { xfail arc-*-* avr-*-* c4x-*-* cris-*-* h8300-*-* hppa*64*-*-* m32r-*-* m68hc1?-*-* m681?-*-* m680*-*-* m68k-*-* mcore-*-* mn10300-*-* xstormy16-*-* v850*-*-* vax-*-* xtensa-*-* } } */
 5.22398 ++/* { dg-do run { xfail arc-*-* avr-*-* avr32-*-* c4x-*-* cris-*-* h8300-*-* hppa*64*-*-* m32r-*-* m68hc1?-*-* m681?-*-* m680*-*-* m68k-*-* mcore-*-* mn10300-*-* xstormy16-*-* v850*-*-* vax-*-* xtensa-*-* } } */
 5.22399 + /* { dg-options "-O2 -foptimize-sibling-calls" } */
 5.22400 + 
 5.22401 + /* The option -foptimize-sibling-calls is the default, but serves as
 5.22402 +--- a/gcc/testsuite/gcc.dg/trampoline-1.c
 5.22403 ++++ b/gcc/testsuite/gcc.dg/trampoline-1.c
 5.22404 +@@ -46,6 +46,8 @@ void foo (void)
 5.22405 + 
 5.22406 + int main (void)
 5.22407 + {
 5.22408 ++#ifndef NO_TRAMPOLINES
 5.22409 +   foo ();
 5.22410 ++#endif
 5.22411 +   return 0;
 5.22412 + }
 5.22413 +--- a/gcc/testsuite/g++.old-deja/g++.pt/static11.C
 5.22414 ++++ b/gcc/testsuite/g++.old-deja/g++.pt/static11.C
 5.22415 +@@ -2,7 +2,7 @@
 5.22416 + // in their dejagnu baseboard description) require that the status is
 5.22417 + // final when exit is entered (or main returns), and not "overruled" by a
 5.22418 + // destructor calling _exit.  It's not really worth it to handle that.
 5.22419 +-// { dg-do run { xfail mmix-knuth-mmixware xtensa-*-elf* arm*-*-elf arm*-*-eabi m68k-*-elf } }
 5.22420 ++// { dg-do run { xfail mmix-knuth-mmixware xtensa-*-elf* avr32-*-elf arm*-*-elf arm*-*-eabi m68k-*-elf } }
 5.22421 + 
 5.22422 + // Bug: g++ was failing to destroy C<int>::a because it was using two
 5.22423 + // different sentry variables for construction and destruction.
 5.22424 +--- a/gcc/version.c
 5.22425 ++++ b/gcc/version.c
 5.22426 +@@ -8,7 +8,7 @@
 5.22427 +    in parentheses.  You may also wish to include a number indicating
 5.22428 +    the revision of your modified compiler.  */
 5.22429 + 
 5.22430 +-#define VERSUFFIX ""
 5.22431 ++#define VERSUFFIX "-atmel.1.1.3.avr32linux.1"
 5.22432 + 
 5.22433 + /* This is the location of the online document giving instructions for
 5.22434 +    reporting bugs.  If you distribute a modified version of GCC,
 5.22435 +@@ -17,9 +17,9 @@
 5.22436 +    forward us bugs reported to you, if you determine that they are
 5.22437 +    not bugs in your modifications.)  */
 5.22438 + 
 5.22439 +-const char bug_report_url[] = "<URL:http://gcc.gnu.org/bugs.html>";
 5.22440 ++const char bug_report_url[] = "<URL:http://www.atmel.com/avr32/>";
 5.22441 + 
 5.22442 + /* The complete version string, assembled from several pieces.
 5.22443 +    BASEVER, DATESTAMP, and DEVPHASE are defined by the Makefile.  */
 5.22444 + 
 5.22445 +-const char version_string[] = BASEVER DATESTAMP DEVPHASE VERSUFFIX;
 5.22446 ++const char version_string[] = BASEVER VERSUFFIX DATESTAMP DEVPHASE;
 5.22447 +--- a/libstdc++-v3/acinclude.m4
 5.22448 ++++ b/libstdc++-v3/acinclude.m4
 5.22449 +@@ -125,15 +125,6 @@ AC_DEFUN([GLIBCXX_CONFIGURE], [
 5.22450 +   ## other macros from doing the same.  This should be automated.)  -pme
 5.22451 +   need_libmath=no
 5.22452 + 
 5.22453 +-  # Check for uClibc since Linux platforms use different configuration
 5.22454 +-  # directories depending on the C library in use.
 5.22455 +-  AC_EGREP_CPP([_using_uclibc], [
 5.22456 +-  #include <stdio.h>
 5.22457 +-  #if __UCLIBC__
 5.22458 +-    _using_uclibc
 5.22459 +-  #endif
 5.22460 +-  ], uclibc=yes, uclibc=no)
 5.22461 +-
 5.22462 +   # Find platform-specific directories containing configuration info.
 5.22463 +   # Also possibly modify flags used elsewhere, as needed by the platform.
 5.22464 +   GLIBCXX_CHECK_HOST
 5.22465 +@@ -1389,8 +1380,8 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
 5.22466 +       #endif
 5.22467 +       int main()
 5.22468 +       {
 5.22469 +-	const char __one[] = "Äuglein Augmen";
 5.22470 +-        const char __two[] = "Äuglein";
 5.22471 ++	const char __one[] = "Äuglein Augmen";
 5.22472 ++        const char __two[] = "Äuglein";
 5.22473 +        	int i;
 5.22474 +         int j;
 5.22475 +         __locale_t        loc;
 5.22476 +--- a/libstdc++-v3/config/os/gnu-linux/ctype_base.h
 5.22477 ++++ b/libstdc++-v3/config/os/gnu-linux/ctype_base.h
 5.22478 +@@ -31,6 +31,8 @@
 5.22479 + //
 5.22480 + // ISO C++ 14882: 22.1  Locales
 5.22481 + //
 5.22482 ++#include <features.h>
 5.22483 ++#include <ctype.h>
 5.22484 +   
 5.22485 + /** @file ctype_base.h
 5.22486 +  *  This is an internal header file, included by other library headers.
 5.22487 +@@ -45,8 +47,12 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
 5.22488 +   struct ctype_base
 5.22489 +   {
 5.22490 +     // Non-standard typedefs.
 5.22491 +-    typedef const int* 		__to_type;
 5.22492 +-
 5.22493 ++#ifdef __UCLIBC__
 5.22494 ++    typedef const __ctype_touplow_t*   __to_type;
 5.22495 ++#else
 5.22496 ++    typedef const int*         __to_type;
 5.22497 ++#endif
 5.22498 ++ 
 5.22499 +     // NB: Offsets into ctype<char>::_M_table force a particular size
 5.22500 +     // on the mask type. Because of this, we don't use an enum.
 5.22501 +     typedef unsigned short 	mask;   
 5.22502 +--- a/libstdc++-v3/include/Makefile.in
 5.22503 ++++ b/libstdc++-v3/include/Makefile.in
 5.22504 +@@ -36,6 +36,7 @@ POST_UNINSTALL = :
 5.22505 + build_triplet = @build@
 5.22506 + host_triplet = @host@
 5.22507 + target_triplet = @target@
 5.22508 ++LIBOBJDIR =
 5.22509 + DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 5.22510 + 	$(top_srcdir)/fragment.am
 5.22511 + subdir = include
 5.22512 +--- a/libstdc++-v3/libmath/Makefile.in
 5.22513 ++++ b/libstdc++-v3/libmath/Makefile.in
 5.22514 +@@ -37,6 +37,7 @@ POST_UNINSTALL = :
 5.22515 + build_triplet = @build@
 5.22516 + host_triplet = @host@
 5.22517 + target_triplet = @target@
 5.22518 ++LIBOBJDIR =
 5.22519 + subdir = libmath
 5.22520 + DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 5.22521 + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 5.22522 +--- a/libstdc++-v3/libsupc++/Makefile.in
 5.22523 ++++ b/libstdc++-v3/libsupc++/Makefile.in
 5.22524 +@@ -38,6 +38,7 @@ POST_UNINSTALL = :
 5.22525 + build_triplet = @build@
 5.22526 + host_triplet = @host@
 5.22527 + target_triplet = @target@
 5.22528 ++LIBOBJDIR =
 5.22529 + DIST_COMMON = $(glibcxxinstall_HEADERS) $(srcdir)/Makefile.am \
 5.22530 + 	$(srcdir)/Makefile.in $(top_srcdir)/fragment.am
 5.22531 + subdir = libsupc++
 5.22532 +--- a/libstdc++-v3/Makefile.in
 5.22533 ++++ b/libstdc++-v3/Makefile.in
 5.22534 +@@ -36,6 +36,7 @@ POST_UNINSTALL = :
 5.22535 + build_triplet = @build@
 5.22536 + host_triplet = @host@
 5.22537 + target_triplet = @target@
 5.22538 ++LIBOBJDIR =
 5.22539 + DIST_COMMON = README $(am__configure_deps) $(srcdir)/../config.guess \
 5.22540 + 	$(srcdir)/../config.sub $(srcdir)/../install-sh \
 5.22541 + 	$(srcdir)/../ltmain.sh $(srcdir)/../missing \
 5.22542 +--- a/libstdc++-v3/po/Makefile.in
 5.22543 ++++ b/libstdc++-v3/po/Makefile.in
 5.22544 +@@ -36,6 +36,7 @@ POST_UNINSTALL = :
 5.22545 + build_triplet = @build@
 5.22546 + host_triplet = @host@
 5.22547 + target_triplet = @target@
 5.22548 ++LIBOBJDIR =
 5.22549 + DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 5.22550 + 	$(top_srcdir)/fragment.am
 5.22551 + subdir = po
 5.22552 +--- a/libstdc++-v3/src/Makefile.in
 5.22553 ++++ b/libstdc++-v3/src/Makefile.in
 5.22554 +@@ -36,6 +36,7 @@ POST_UNINSTALL = :
 5.22555 + build_triplet = @build@
 5.22556 + host_triplet = @host@
 5.22557 + target_triplet = @target@
 5.22558 ++LIBOBJDIR =
 5.22559 + DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 5.22560 + 	$(top_srcdir)/fragment.am
 5.22561 + subdir = src
 5.22562 +--- a/Makefile.def
 5.22563 ++++ b/Makefile.def
 5.22564 +@@ -481,7 +481,7 @@ lang_env_dependencies = { module=rda; };
 5.22565 + lang_env_dependencies = { module=winsup; };
 5.22566 + lang_env_dependencies = { module=qthreads; };
 5.22567 + 
 5.22568 +-dependencies = { module=all-target-libgloss; on=configure-target-newlib; };
 5.22569 ++dependencies = { module=all-target-libgloss; on=all-target-newlib; };
 5.22570 + dependencies = { module=all-target-winsup; on=all-target-libiberty; };
 5.22571 + dependencies = { module=all-target-winsup; on=all-target-libtermcap; };
 5.22572 + 
 5.22573 +--- a/Makefile.in
 5.22574 ++++ b/Makefile.in
 5.22575 +@@ -43791,7 +43791,7 @@ all-target-libobjc: maybe-all-target-boe
 5.22576 + all-target-libstdc++-v3: maybe-all-target-libiberty
 5.22577 + install-target-libssp: maybe-install-gcc
 5.22578 + install-target-libgomp: maybe-install-gcc
 5.22579 +-all-target-libgloss: maybe-configure-target-newlib
 5.22580 ++all-target-libgloss: maybe-all-target-newlib
 5.22581 + all-target-winsup: maybe-all-target-libiberty
 5.22582 + all-target-winsup: maybe-all-target-libtermcap
 5.22583 + 
 5.22584 +--- a/gcc/configure.ac
 5.22585 ++++ b/gcc/configure.ac
 5.22586 +@@ -2158,7 +2158,7 @@ L2:],
 5.22587 +   as_ver=`$gcc_cv_as --version 2>/dev/null | sed 1q`
 5.22588 +   if echo "$as_ver" | grep GNU > /dev/null; then
 5.22589 + changequote(,)dnl
 5.22590 +-    as_ver=`echo $as_ver | sed -e 's/GNU assembler \([0-9.][0-9.]*\).*/\1/'`
 5.22591 ++    as_ver=`echo $as_ver | sed -e 's/GNU assembler\( (GNU Binutils)\)\? \([0-9.][0-9.]*\).*/\2/'`
 5.22592 +     as_major=`echo $as_ver | sed 's/\..*//'`
 5.22593 +     as_minor=`echo $as_ver | sed 's/[^.]*\.\([0-9]*\).*/\1/'`
 5.22594 + changequote([,])dnl
 5.22595 +@@ -2971,7 +2971,7 @@ esac
 5.22596 + case "$target" in
 5.22597 +   i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \
 5.22598 +   | x86_64*-*-* | hppa*-*-* | arm*-*-* | strongarm*-*-* | xscale*-*-* \
 5.22599 +-  | xstormy16*-*-* | cris-*-* | xtensa-*-* | bfin-*-* | score*-*-*)
 5.22600 ++  | xstormy16*-*-* | cris-*-* | xtensa-*-* | bfin-*-* | score*-*-* | avr32-*-*)
 5.22601 +     insn="nop"
 5.22602 +     ;;
 5.22603 +   ia64*-*-* | s390*-*-*)
 5.22604 +--- a/gcc/configure
 5.22605 ++++ b/gcc/configure
 5.22606 +@@ -14023,7 +14023,7 @@ L2:' > conftest.s
 5.22607 +   # arbitrary sections are supported and try the test.
 5.22608 +   as_ver=`$gcc_cv_as --version 2>/dev/null | sed 1q`
 5.22609 +   if echo "$as_ver" | grep GNU > /dev/null; then
 5.22610 +-    as_ver=`echo $as_ver | sed -e 's/GNU assembler \([0-9.][0-9.]*\).*/\1/'`
 5.22611 ++    as_ver=`echo $as_ver | sed -e 's/GNU assembler\( (GNU Binutils)\)\? \([0-9.][0-9.]*\).*/\2/'`
 5.22612 +     as_major=`echo $as_ver | sed 's/\..*//'`
 5.22613 +     as_minor=`echo $as_ver | sed 's/[^.]*\.\([0-9]*\).*/\1/'`
 5.22614 +     if test $as_major -eq 2 && test $as_minor -lt 11
 5.22615 +@@ -15610,7 +15610,7 @@ esac
 5.22616 + case "$target" in
 5.22617 +   i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \
 5.22618 +   | x86_64*-*-* | hppa*-*-* | arm*-*-* | strongarm*-*-* | xscale*-*-* \
 5.22619 +-  | xstormy16*-*-* | cris-*-* | xtensa-*-* | bfin-*-* | score*-*-*)
 5.22620 ++  | xstormy16*-*-* | cris-*-* | xtensa-*-* | bfin-*-* | score*-*-* | avr32-*-*)
 5.22621 +     insn="nop"
 5.22622 +     ;;
 5.22623 +   ia64*-*-* | s390*-*-*)
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/patches/newlib/1.17.0/100-avr32.patch	Fri May 22 14:46:18 2009 +0000
     6.3 @@ -0,0 +1,32450 @@
     6.4 +diff -Naur newlib-1.17.0/COPYING.LIBGLOSS newlib-1.17.0-new/COPYING.LIBGLOSS
     6.5 +--- newlib-1.17.0/COPYING.LIBGLOSS	2008-12-18 00:16:07.000000000 +0100
     6.6 ++++ newlib-1.17.0-new/COPYING.LIBGLOSS	2009-05-22 09:57:49.000000000 +0200
     6.7 +@@ -228,3 +228,33 @@
     6.8 +  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     6.9 +  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    6.10 +  SUCH DAMAGE.
    6.11 ++
    6.12 ++(13) Atmel Corporation  (avr32 targets only)
    6.13 ++Copyright (c) 2006, Atmel Corporation All rights reserved.
    6.14 ++
    6.15 ++Redistribution and use in source and binary forms, with or without
    6.16 ++modification, are permitted provided that the following conditions are met:
    6.17 ++
    6.18 ++1. Redistributions of source code must retain the above copyright notice,
    6.19 ++this list of conditions and the following disclaimer.
    6.20 ++
    6.21 ++2. Redistributions in binary form must reproduce the above copyright notice,
    6.22 ++this list of conditions and the following disclaimer in the documentation
    6.23 ++and/or other materials provided with the distribution.
    6.24 ++
    6.25 ++3. The name of ATMEL may not be used to endorse or promote products
    6.26 ++derived from this software without specific prior written permission.
    6.27 ++
    6.28 ++THIS SOFTWARE IS PROVIDED BY ATMEL ``AS IS'' AND ANY EXPRESS
    6.29 ++OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    6.30 ++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
    6.31 ++PARTICULAR PURPOSE ARE EXPRESSLY AND SPECIFICALLY
    6.32 ++DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
    6.33 ++INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    6.34 ++DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    6.35 ++SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    6.36 ++OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    6.37 ++THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    6.38 ++OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
    6.39 ++WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    6.40 ++POSSIBILITY OF SUCH DAMAGE.
    6.41 +diff -Naur newlib-1.17.0/COPYING.NEWLIB newlib-1.17.0-new/COPYING.NEWLIB
    6.42 +--- newlib-1.17.0/COPYING.NEWLIB	2008-12-18 00:16:07.000000000 +0100
    6.43 ++++ newlib-1.17.0-new/COPYING.NEWLIB	2009-05-22 09:57:49.000000000 +0200
    6.44 +@@ -767,3 +767,33 @@
    6.45 +  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    6.46 +  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    6.47 +  SUCH DAMAGE.
    6.48 ++
    6.49 ++(35) Atmel Corporation  (avr32 targets only)
    6.50 ++Copyright (c) 2006, Atmel Corporation All rights reserved.
    6.51 ++
    6.52 ++Redistribution and use in source and binary forms, with or without
    6.53 ++modification, are permitted provided that the following conditions are met:
    6.54 ++
    6.55 ++1. Redistributions of source code must retain the above copyright notice,
    6.56 ++this list of conditions and the following disclaimer.
    6.57 ++
    6.58 ++2. Redistributions in binary form must reproduce the above copyright notice,
    6.59 ++this list of conditions and the following disclaimer in the documentation
    6.60 ++and/or other materials provided with the distribution.
    6.61 ++
    6.62 ++3. The name of ATMEL may not be used to endorse or promote products
    6.63 ++derived from this software without specific prior written permission.
    6.64 ++
    6.65 ++THIS SOFTWARE IS PROVIDED BY ATMEL ``AS IS'' AND ANY EXPRESS
    6.66 ++OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    6.67 ++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
    6.68 ++PARTICULAR PURPOSE ARE EXPRESSLY AND SPECIFICALLY
    6.69 ++DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
    6.70 ++INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    6.71 ++DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    6.72 ++SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    6.73 ++OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    6.74 ++THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    6.75 ++OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
    6.76 ++WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    6.77 ++POSSIBILITY OF SUCH DAMAGE.
    6.78 +diff -Naur newlib-1.17.0/newlib/configure.host newlib-1.17.0-new/newlib/configure.host
    6.79 +--- newlib-1.17.0/newlib/configure.host	2008-12-18 00:09:09.000000000 +0100
    6.80 ++++ newlib-1.17.0-new/newlib/configure.host	2009-05-22 09:57:49.000000000 +0200
    6.81 +@@ -99,6 +99,10 @@
    6.82 +   arm)
    6.83 + 	machine_dir=arm
    6.84 + 	;;
    6.85 ++  avr32*)
    6.86 ++	machine_dir=avr32
    6.87 ++	newlib_cflags="${newlib_cflags} -ffunction-sections"
    6.88 ++	;;
    6.89 +   avr*)
    6.90 + 	newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -mcall-prologues"
    6.91 + 	;;
    6.92 +@@ -365,6 +369,9 @@
    6.93 +   crx*)
    6.94 + 	sys_dir=
    6.95 + 	;;
    6.96 ++  avr32-*-*)
    6.97 ++	sys_dir=avr32 
    6.98 ++	;;
    6.99 +   d10v*)
   6.100 + 	sys_dir=d10v
   6.101 + 	;;
   6.102 +@@ -575,6 +582,10 @@
   6.103 +   arc*)
   6.104 + 	newlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED"
   6.105 + 	;;
   6.106 ++  avr32*)
   6.107 ++	syscall_dir=syscalls	
   6.108 ++	newlib_cflags="${newlib_cflags} -DHAVE_SYSTEM"
   6.109 ++	;;
   6.110 +   avr*)
   6.111 + 	newlib_cflags="${newlib_cflags} -DNO_EXEC -DSMALL_MEMORY -DMISSING_SYSCALL_NAMES"
   6.112 + 	;;
   6.113 +diff -Naur newlib-1.17.0/newlib/libc/include/machine/ieeefp.h newlib-1.17.0-new/newlib/libc/include/machine/ieeefp.h
   6.114 +--- newlib-1.17.0/newlib/libc/include/machine/ieeefp.h	2008-12-11 21:05:38.000000000 +0100
   6.115 ++++ newlib-1.17.0-new/newlib/libc/include/machine/ieeefp.h	2009-05-22 09:57:49.000000000 +0200
   6.116 +@@ -275,6 +275,10 @@
   6.117 + #define _DOUBLE_IS_32BITS
   6.118 + #endif
   6.119 + 
   6.120 ++#ifdef __AVR32__
   6.121 ++#define __IEEE_BIG_ENDIAN
   6.122 ++#endif
   6.123 ++
   6.124 + #if defined(__or32__) || defined(__or1k__) || defined(__or16__)
   6.125 + #define __IEEE_BIG_ENDIAN
   6.126 + #endif
   6.127 +diff -Naur newlib-1.17.0/newlib/libc/include/machine/setjmp.h newlib-1.17.0-new/newlib/libc/include/machine/setjmp.h
   6.128 +--- newlib-1.17.0/newlib/libc/include/machine/setjmp.h	2008-12-11 21:05:38.000000000 +0100
   6.129 ++++ newlib-1.17.0-new/newlib/libc/include/machine/setjmp.h	2009-05-22 09:57:49.000000000 +0200
   6.130 +@@ -13,6 +13,13 @@
   6.131 + #define _JBLEN 24
   6.132 + #endif
   6.133 + 
   6.134 ++#if defined(__AVR32__)
   6.135 ++/*
   6.136 ++  r0-r7, lr, sp
   6.137 ++ */
   6.138 ++#define _JBLEN 10
   6.139 ++#endif
   6.140 ++
   6.141 + #ifdef __sparc__
   6.142 + /*
   6.143 +  * onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext).
   6.144 +diff -Naur newlib-1.17.0/newlib/libc/include/machine/time.h newlib-1.17.0-new/newlib/libc/include/machine/time.h
   6.145 +--- newlib-1.17.0/newlib/libc/include/machine/time.h	2000-12-04 20:06:37.000000000 +0100
   6.146 ++++ newlib-1.17.0-new/newlib/libc/include/machine/time.h	2009-05-22 09:57:49.000000000 +0200
   6.147 +@@ -6,6 +6,10 @@
   6.148 + #else  /* !__rtems__ */
   6.149 + #if defined(__arm__) || defined(__thumb__)
   6.150 + #define _CLOCKS_PER_SEC_ 100
   6.151 ++#else
   6.152 ++#if defined(__AVR32__)
   6.153 ++#define _CLOCKS_PER_SEC_ 1000000
   6.154 ++#endif
   6.155 + #endif
   6.156 + #endif /* !__rtems__ */
   6.157 + 
   6.158 +diff -Naur newlib-1.17.0/newlib/libc/machine/avr32/aclocal.m4 newlib-1.17.0-new/newlib/libc/machine/avr32/aclocal.m4
   6.159 +--- newlib-1.17.0/newlib/libc/machine/avr32/aclocal.m4	1970-01-01 01:00:00.000000000 +0100
   6.160 ++++ newlib-1.17.0-new/newlib/libc/machine/avr32/aclocal.m4	2009-05-22 09:57:49.000000000 +0200
   6.161 +@@ -0,0 +1,382 @@
   6.162 ++dnl aclocal.m4 generated automatically by aclocal 1.4-p6
   6.163 ++
   6.164 ++dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
   6.165 ++dnl This file is free software; the Free Software Foundation
   6.166 ++dnl gives unlimited permission to copy and/or distribute it,
   6.167 ++dnl with or without modifications, as long as this notice is preserved.
   6.168 ++
   6.169 ++dnl This program is distributed in the hope that it will be useful,
   6.170 ++dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
   6.171 ++dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
   6.172 ++dnl PARTICULAR PURPOSE.
   6.173 ++
   6.174 ++dnl This provides configure definitions used by all the newlib
   6.175 ++dnl configure.in files.
   6.176 ++
   6.177 ++dnl Basic newlib configury.  This calls basic introductory stuff,
   6.178 ++dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST.  It also runs
   6.179 ++dnl configure.host.  The only argument is the relative path to the top
   6.180 ++dnl newlib directory.
   6.181 ++
   6.182 ++AC_DEFUN(NEWLIB_CONFIGURE,
   6.183 ++[
   6.184 ++dnl Default to --enable-multilib
   6.185 ++AC_ARG_ENABLE(multilib,
   6.186 ++[  --enable-multilib         build many library versions (default)],
   6.187 ++[case "${enableval}" in
   6.188 ++  yes) multilib=yes ;;
   6.189 ++  no)  multilib=no ;;
   6.190 ++  *)   AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
   6.191 ++ esac], [multilib=yes])dnl
   6.192 ++
   6.193 ++dnl Support --enable-target-optspace
   6.194 ++AC_ARG_ENABLE(target-optspace,
   6.195 ++[  --enable-target-optspace  optimize for space],
   6.196 ++[case "${enableval}" in
   6.197 ++  yes) target_optspace=yes ;;
   6.198 ++  no)  target_optspace=no ;;
   6.199 ++  *)   AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;;
   6.200 ++ esac], [target_optspace=])dnl
   6.201 ++
   6.202 ++dnl Support --enable-malloc-debugging - currently only supported for Cygwin
   6.203 ++AC_ARG_ENABLE(malloc-debugging,
   6.204 ++[  --enable-malloc-debugging indicate malloc debugging requested],
   6.205 ++[case "${enableval}" in
   6.206 ++  yes) malloc_debugging=yes ;;
   6.207 ++  no)  malloc_debugging=no ;;
   6.208 ++  *)   AC_MSG_ERROR(bad value ${enableval} for malloc-debugging option) ;;
   6.209 ++ esac], [malloc_debugging=])dnl
   6.210 ++
   6.211 ++dnl Support --enable-newlib-mb
   6.212 ++AC_ARG_ENABLE(newlib-mb,
   6.213 ++[  --enable-newlib-mb        enable multibyte support],
   6.214 ++[case "${enableval}" in
   6.215 ++  yes) newlib_mb=yes ;;
   6.216 ++  no)  newlib_mb=no ;;
   6.217 ++  *)   AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;;
   6.218 ++ esac], [newlib_mb=])dnl
   6.219 ++
   6.220 ++dnl Support --enable-newlib-iconv
   6.221 ++AC_ARG_ENABLE(newlib-iconv,
   6.222 ++[  --enable-newlib-iconv     enable iconv library support],
   6.223 ++[case "${enableval}" in
   6.224 ++  yes) newlib_iconv=yes ;;
   6.225 ++  no)  newlib_iconv=no ;;
   6.226 ++  *)   AC_MSG_ERROR(bad value ${enableval} for newlib-iconv option) ;;
   6.227 ++ esac], [newlib_iconv=])dnl
   6.228 ++
   6.229 ++dnl Support --enable-newlib-builtin-converters
   6.230 ++AC_ARG_ENABLE(newlib-builtin-converters,
   6.231 ++[  --enable-newlib-builtin-converters   enable specific comma-separated list of iconv converters to be built-in],
   6.232 ++[if test x${enableval} = x; then
   6.233 ++   AC_MSG_ERROR(bad value ${enableval} for newlib-builtin-converters option - use comma-separated list)
   6.234 ++ fi
   6.235 ++ builtin_converters=${enableval}
   6.236 ++ ], [builtin_converters=])dnl
   6.237 ++
   6.238 ++dnl Support --enable-newlib-multithread
   6.239 ++AC_ARG_ENABLE(newlib-multithread,
   6.240 ++[  --enable-newlib-multithread        enable support for multiple threads],
   6.241 ++[case "${enableval}" in
   6.242 ++  yes) newlib_multithread=yes ;;
   6.243 ++  no)  newlib_multithread=no ;;
   6.244 ++  *)   AC_MSG_ERROR(bad value ${enableval} for newlib-multithread option) ;;
   6.245 ++ esac], [newlib_multithread=yes])dnl
   6.246 ++
   6.247 ++dnl Support --enable-newlib-elix-level
   6.248 ++AC_ARG_ENABLE(newlib-elix-level,
   6.249 ++[  --enable-newlib-elix-level         supply desired elix library level (1-4)],
   6.250 ++[case "${enableval}" in
   6.251 ++  0)   newlib_elix_level=0 ;;
   6.252 ++  1)   newlib_elix_level=1 ;;
   6.253 ++  2)   newlib_elix_level=2 ;;
   6.254 ++  3)   newlib_elix_level=3 ;;
   6.255 ++  4)   newlib_elix_level=4 ;;
   6.256 ++  *)   AC_MSG_ERROR(bad value ${enableval} for newlib-elix-level option) ;;
   6.257 ++ esac], [newlib_elix_level=0])dnl
   6.258 ++
   6.259 ++dnl Support --disable-newlib-io-float
   6.260 ++AC_ARG_ENABLE(newlib-io-float,
   6.261 ++[  --disable-newlib-io-float disable printf/scanf family float support],
   6.262 ++[case "${enableval}" in
   6.263 ++  yes) newlib_io_float=yes ;;
   6.264 ++  no)  newlib_io_float=no ;;
   6.265 ++  *)   AC_MSG_ERROR(bad value ${enableval} for newlib-io-float option) ;;
   6.266 ++ esac], [newlib_io_float=yes])dnl
   6.267 ++
   6.268 ++dnl Support --disable-newlib-supplied-syscalls
   6.269 ++AC_ARG_ENABLE(newlib-supplied-syscalls,
   6.270 ++[  --disable-newlib-supplied-syscalls disable newlib from supplying syscalls],
   6.271 ++[case "${enableval}" in
   6.272 ++  yes) newlib_may_supply_syscalls=yes ;;
   6.273 ++  no)  newlib_may_supply_syscalls=no ;;
   6.274 ++  *)   AC_MSG_ERROR(bad value ${enableval} for newlib-supplied-syscalls option) ;;
   6.275 ++ esac], [newlib_may_supply_syscalls=yes])dnl
   6.276 ++
   6.277 ++AM_CONDITIONAL(MAY_SUPPLY_SYSCALLS, test x[$]{newlib_may_supply_syscalls} = xyes)
   6.278 ++
   6.279 ++dnl We may get other options which we don't document:
   6.280 ++dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
   6.281 ++
   6.282 ++test -z "[$]{with_target_subdir}" && with_target_subdir=.
   6.283 ++
   6.284 ++if test "[$]{srcdir}" = "."; then
   6.285 ++  if test "[$]{with_target_subdir}" != "."; then
   6.286 ++    newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1"
   6.287 ++  else
   6.288 ++    newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1"
   6.289 ++  fi
   6.290 ++else
   6.291 ++  newlib_basedir="[$]{srcdir}/$1"
   6.292 ++fi
   6.293 ++AC_SUBST(newlib_basedir)
   6.294 ++
   6.295 ++AC_CANONICAL_SYSTEM
   6.296 ++
   6.297 ++AM_INIT_AUTOMAKE(newlib, 1.12.0)
   6.298 ++
   6.299 ++# FIXME: We temporarily define our own version of AC_PROG_CC.  This is
   6.300 ++# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS.  We
   6.301 ++# are probably using a cross compiler, which will not be able to fully
   6.302 ++# link an executable.  This should really be fixed in autoconf
   6.303 ++# itself.
   6.304 ++
   6.305 ++AC_DEFUN(LIB_AC_PROG_CC,
   6.306 ++[AC_BEFORE([$0], [AC_PROG_CPP])dnl
   6.307 ++AC_CHECK_PROG(CC, gcc, gcc)
   6.308 ++if test -z "$CC"; then
   6.309 ++  AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
   6.310 ++  test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
   6.311 ++fi
   6.312 ++
   6.313 ++AC_PROG_CC_GNU
   6.314 ++
   6.315 ++if test $ac_cv_prog_gcc = yes; then
   6.316 ++  GCC=yes
   6.317 ++dnl Check whether -g works, even if CFLAGS is set, in case the package
   6.318 ++dnl plays around with CFLAGS (such as to build both debugging and
   6.319 ++dnl normal versions of a library), tasteless as that idea is.
   6.320 ++  ac_test_CFLAGS="${CFLAGS+set}"
   6.321 ++  ac_save_CFLAGS="$CFLAGS"
   6.322 ++  CFLAGS=
   6.323 ++  AC_PROG_CC_G
   6.324 ++  if test "$ac_test_CFLAGS" = set; then
   6.325 ++    CFLAGS="$ac_save_CFLAGS"
   6.326 ++  elif test $ac_cv_prog_cc_g = yes; then
   6.327 ++    CFLAGS="-g -O2"
   6.328 ++  else
   6.329 ++    CFLAGS="-O2"
   6.330 ++  fi
   6.331 ++else
   6.332 ++  GCC=
   6.333 ++  test "${CFLAGS+set}" = set || CFLAGS="-g"
   6.334 ++fi
   6.335 ++])
   6.336 ++
   6.337 ++LIB_AC_PROG_CC
   6.338 ++
   6.339 ++AC_CHECK_TOOL(AS, as)
   6.340 ++AC_CHECK_TOOL(AR, ar)
   6.341 ++AC_CHECK_TOOL(RANLIB, ranlib, :)
   6.342 ++
   6.343 ++AC_PROG_INSTALL
   6.344 ++
   6.345 ++AM_MAINTAINER_MODE
   6.346 ++
   6.347 ++# We need AC_EXEEXT to keep automake happy in cygnus mode.  However,
   6.348 ++# at least currently, we never actually build a program, so we never
   6.349 ++# need to use $(EXEEXT).  Moreover, the test for EXEEXT normally
   6.350 ++# fails, because we are probably configuring with a cross compiler
   6.351 ++# which can't create executables.  So we include AC_EXEEXT to keep
   6.352 ++# automake happy, but we don't execute it, since we don't care about
   6.353 ++# the result.
   6.354 ++if false; then
   6.355 ++  AC_EXEEXT
   6.356 ++fi
   6.357 ++
   6.358 ++. [$]{newlib_basedir}/configure.host
   6.359 ++
   6.360 ++newlib_cflags="[$]{newlib_cflags} -fno-builtin"
   6.361 ++
   6.362 ++NEWLIB_CFLAGS=${newlib_cflags}
   6.363 ++AC_SUBST(NEWLIB_CFLAGS)
   6.364 ++
   6.365 ++LDFLAGS=${ldflags}
   6.366 ++AC_SUBST(LDFLAGS)
   6.367 ++
   6.368 ++AM_CONDITIONAL(ELIX_LEVEL_0, test x[$]{newlib_elix_level} = x0)
   6.369 ++AM_CONDITIONAL(ELIX_LEVEL_1, test x[$]{newlib_elix_level} = x1)
   6.370 ++AM_CONDITIONAL(ELIX_LEVEL_2, test x[$]{newlib_elix_level} = x2)
   6.371 ++AM_CONDITIONAL(ELIX_LEVEL_3, test x[$]{newlib_elix_level} = x3)
   6.372 ++AM_CONDITIONAL(ELIX_LEVEL_4, test x[$]{newlib_elix_level} = x4)
   6.373 ++
   6.374 ++AM_CONDITIONAL(USE_LIBTOOL, test x[$]{use_libtool} = xyes)
   6.375 ++
   6.376 ++# Hard-code OBJEXT.  Normally it is set by AC_OBJEXT, but we
   6.377 ++# use oext, which is set in configure.host based on the target platform.
   6.378 ++OBJEXT=${oext}
   6.379 ++
   6.380 ++AC_SUBST(OBJEXT)
   6.381 ++AC_SUBST(oext)
   6.382 ++AC_SUBST(aext)
   6.383 ++
   6.384 ++AC_SUBST(libm_machine_dir)
   6.385 ++AC_SUBST(machine_dir)
   6.386 ++AC_SUBST(sys_dir)
   6.387 ++])
   6.388 ++
   6.389 ++# Do all the work for Automake.  This macro actually does too much --
   6.390 ++# some checks are only needed if your package does certain things.
   6.391 ++# But this isn't really a big deal.
   6.392 ++
   6.393 ++# serial 1
   6.394 ++
   6.395 ++dnl Usage:
   6.396 ++dnl AM_INIT_AUTOMAKE(package,version, [no-define])
   6.397 ++
   6.398 ++AC_DEFUN([AM_INIT_AUTOMAKE],
   6.399 ++[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
   6.400 ++AC_REQUIRE([AC_PROG_INSTALL])
   6.401 ++PACKAGE=[$1]
   6.402 ++AC_SUBST(PACKAGE)
   6.403 ++VERSION=[$2]
   6.404 ++AC_SUBST(VERSION)
   6.405 ++dnl test to see if srcdir already configured
   6.406 ++if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
   6.407 ++  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
   6.408 ++fi
   6.409 ++ifelse([$3],,
   6.410 ++AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
   6.411 ++AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
   6.412 ++AC_REQUIRE([AM_SANITY_CHECK])
   6.413 ++AC_REQUIRE([AC_ARG_PROGRAM])
   6.414 ++dnl FIXME This is truly gross.
   6.415 ++missing_dir=`cd $ac_aux_dir && pwd`
   6.416 ++AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir)
   6.417 ++AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
   6.418 ++AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir)
   6.419 ++AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
   6.420 ++AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
   6.421 ++AC_REQUIRE([AC_PROG_MAKE_SET])])
   6.422 ++
   6.423 ++# Copyright 2002  Free Software Foundation, Inc.
   6.424 ++
   6.425 ++# This program is free software; you can redistribute it and/or modify
   6.426 ++# it under the terms of the GNU General Public License as published by
   6.427 ++# the Free Software Foundation; either version 2, or (at your option)
   6.428 ++# any later version.
   6.429 ++
   6.430 ++# This program is distributed in the hope that it will be useful,
   6.431 ++# but WITHOUT ANY WARRANTY; without even the implied warranty of
   6.432 ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   6.433 ++# GNU General Public License for more details.
   6.434 ++
   6.435 ++# You should have received a copy of the GNU General Public License
   6.436 ++# along with this program; if not, write to the Free Software
   6.437 ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
   6.438 ++
   6.439 ++# AM_AUTOMAKE_VERSION(VERSION)
   6.440 ++# ----------------------------
   6.441 ++# Automake X.Y traces this macro to ensure aclocal.m4 has been
   6.442 ++# generated from the m4 files accompanying Automake X.Y.
   6.443 ++AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"])
   6.444 ++
   6.445 ++# AM_SET_CURRENT_AUTOMAKE_VERSION
   6.446 ++# -------------------------------
   6.447 ++# Call AM_AUTOMAKE_VERSION so it can be traced.
   6.448 ++# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
   6.449 ++AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
   6.450 ++	 [AM_AUTOMAKE_VERSION([1.4-p6])])
   6.451 ++
   6.452 ++#
   6.453 ++# Check to make sure that the build environment is sane.
   6.454 ++#
   6.455 ++
   6.456 ++AC_DEFUN([AM_SANITY_CHECK],
   6.457 ++[AC_MSG_CHECKING([whether build environment is sane])
   6.458 ++# Just in case
   6.459 ++sleep 1
   6.460 ++echo timestamp > conftestfile
   6.461 ++# Do `set' in a subshell so we don't clobber the current shell's
   6.462 ++# arguments.  Must try -L first in case configure is actually a
   6.463 ++# symlink; some systems play weird games with the mod time of symlinks
   6.464 ++# (eg FreeBSD returns the mod time of the symlink's containing
   6.465 ++# directory).
   6.466 ++if (
   6.467 ++   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
   6.468 ++   if test "[$]*" = "X"; then
   6.469 ++      # -L didn't work.
   6.470 ++      set X `ls -t $srcdir/configure conftestfile`
   6.471 ++   fi
   6.472 ++   if test "[$]*" != "X $srcdir/configure conftestfile" \
   6.473 ++      && test "[$]*" != "X conftestfile $srcdir/configure"; then
   6.474 ++
   6.475 ++      # If neither matched, then we have a broken ls.  This can happen
   6.476 ++      # if, for instance, CONFIG_SHELL is bash and it inherits a
   6.477 ++      # broken ls alias from the environment.  This has actually
   6.478 ++      # happened.  Such a system could not be considered "sane".
   6.479 ++      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
   6.480 ++alias in your environment])
   6.481 ++   fi
   6.482 ++
   6.483 ++   test "[$]2" = conftestfile
   6.484 ++   )
   6.485 ++then
   6.486 ++   # Ok.
   6.487 ++   :
   6.488 ++else
   6.489 ++   AC_MSG_ERROR([newly created file is older than distributed files!
   6.490 ++Check your system clock])
   6.491 ++fi
   6.492 ++rm -f conftest*
   6.493 ++AC_MSG_RESULT(yes)])
   6.494 ++
   6.495 ++dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
   6.496 ++dnl The program must properly implement --version.
   6.497 ++AC_DEFUN([AM_MISSING_PROG],
   6.498 ++[AC_MSG_CHECKING(for working $2)
   6.499 ++# Run test in a subshell; some versions of sh will print an error if
   6.500 ++# an executable is not found, even if stderr is redirected.
   6.501 ++# Redirect stdin to placate older versions of autoconf.  Sigh.
   6.502 ++if ($2 --version) < /dev/null > /dev/null 2>&1; then
   6.503 ++   $1=$2
   6.504 ++   AC_MSG_RESULT(found)
   6.505 ++else
   6.506 ++   $1="$3/missing $2"
   6.507 ++   AC_MSG_RESULT(missing)
   6.508 ++fi
   6.509 ++AC_SUBST($1)])
   6.510 ++
   6.511 ++# Define a conditional.
   6.512 ++
   6.513 ++AC_DEFUN([AM_CONDITIONAL],
   6.514 ++[AC_SUBST($1_TRUE)
   6.515 ++AC_SUBST($1_FALSE)
   6.516 ++if $2; then
   6.517 ++  $1_TRUE=
   6.518 ++  $1_FALSE='#'
   6.519 ++else
   6.520 ++  $1_TRUE='#'
   6.521 ++  $1_FALSE=
   6.522 ++fi])
   6.523 ++
   6.524 ++# Add --enable-maintainer-mode option to configure.
   6.525 ++# From Jim Meyering
   6.526 ++
   6.527 ++# serial 1
   6.528 ++
   6.529 ++AC_DEFUN([AM_MAINTAINER_MODE],
   6.530 ++[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
   6.531 ++  dnl maintainer-mode is disabled by default
   6.532 ++  AC_ARG_ENABLE(maintainer-mode,
   6.533 ++[  --enable-maintainer-mode enable make rules and dependencies not useful
   6.534 ++                          (and sometimes confusing) to the casual installer],
   6.535 ++      USE_MAINTAINER_MODE=$enableval,
   6.536 ++      USE_MAINTAINER_MODE=no)
   6.537 ++  AC_MSG_RESULT($USE_MAINTAINER_MODE)
   6.538 ++  AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
   6.539 ++  MAINT=$MAINTAINER_MODE_TRUE
   6.540 ++  AC_SUBST(MAINT)dnl
   6.541 ++]
   6.542 ++)
   6.543 ++
   6.544 +diff -Naur newlib-1.17.0/newlib/libc/machine/avr32/configure newlib-1.17.0-new/newlib/libc/machine/avr32/configure
   6.545 +--- newlib-1.17.0/newlib/libc/machine/avr32/configure	1970-01-01 01:00:00.000000000 +0100
   6.546 ++++ newlib-1.17.0-new/newlib/libc/machine/avr32/configure	2009-05-22 09:57:49.000000000 +0200
   6.547 +@@ -0,0 +1,3950 @@
   6.548 ++#! /bin/sh
   6.549 ++# Guess values for system-dependent variables and create Makefiles.
   6.550 ++# Generated by GNU Autoconf 2.61 for newlib NEWLIB_VERSION.
   6.551 ++#
   6.552 ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
   6.553 ++# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
   6.554 ++# This configure script is free software; the Free Software Foundation
   6.555 ++# gives unlimited permission to copy, distribute and modify it.
   6.556 ++## --------------------- ##
   6.557 ++## M4sh Initialization.  ##
   6.558 ++## --------------------- ##
   6.559 ++
   6.560 ++# Be more Bourne compatible
   6.561 ++DUALCASE=1; export DUALCASE # for MKS sh
   6.562 ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   6.563 ++  emulate sh
   6.564 ++  NULLCMD=:
   6.565 ++  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
   6.566 ++  # is contrary to our usage.  Disable this feature.
   6.567 ++  alias -g '${1+"$@"}'='"$@"'
   6.568 ++  setopt NO_GLOB_SUBST
   6.569 ++else
   6.570 ++  case `(set -o) 2>/dev/null` in
   6.571 ++  *posix*) set -o posix ;;
   6.572 ++esac
   6.573 ++
   6.574 ++fi
   6.575 ++
   6.576 ++
   6.577 ++
   6.578 ++
   6.579 ++# PATH needs CR
   6.580 ++# Avoid depending upon Character Ranges.
   6.581 ++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
   6.582 ++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
   6.583 ++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
   6.584 ++as_cr_digits='0123456789'
   6.585 ++as_cr_alnum=$as_cr_Letters$as_cr_digits
   6.586 ++
   6.587 ++# The user is always right.
   6.588 ++if test "${PATH_SEPARATOR+set}" != set; then
   6.589 ++  echo "#! /bin/sh" >conf$$.sh
   6.590 ++  echo  "exit 0"   >>conf$$.sh
   6.591 ++  chmod +x conf$$.sh
   6.592 ++  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
   6.593 ++    PATH_SEPARATOR=';'
   6.594 ++  else
   6.595 ++    PATH_SEPARATOR=:
   6.596 ++  fi
   6.597 ++  rm -f conf$$.sh
   6.598 ++fi
   6.599 ++
   6.600 ++# Support unset when possible.
   6.601 ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
   6.602 ++  as_unset=unset
   6.603 ++else
   6.604 ++  as_unset=false
   6.605 ++fi
   6.606 ++
   6.607 ++
   6.608 ++# IFS
   6.609 ++# We need space, tab and new line, in precisely that order.  Quoting is
   6.610 ++# there to prevent editors from complaining about space-tab.
   6.611 ++# (If _AS_PATH_WALK were called with IFS unset, it would disable word
   6.612 ++# splitting by setting IFS to empty value.)
   6.613 ++as_nl='
   6.614 ++'
   6.615 ++IFS=" ""	$as_nl"
   6.616 ++
   6.617 ++# Find who we are.  Look in the path if we contain no directory separator.
   6.618 ++case $0 in
   6.619 ++  *[\\/]* ) as_myself=$0 ;;
   6.620 ++  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
   6.621 ++for as_dir in $PATH
   6.622 ++do
   6.623 ++  IFS=$as_save_IFS
   6.624 ++  test -z "$as_dir" && as_dir=.
   6.625 ++  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
   6.626 ++done
   6.627 ++IFS=$as_save_IFS
   6.628 ++
   6.629 ++     ;;
   6.630 ++esac
   6.631 ++# We did not find ourselves, most probably we were run as `sh COMMAND'
   6.632 ++# in which case we are not to be found in the path.
   6.633 ++if test "x$as_myself" = x; then
   6.634 ++  as_myself=$0
   6.635 ++fi
   6.636 ++if test ! -f "$as_myself"; then
   6.637 ++  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   6.638 ++  { (exit 1); exit 1; }
   6.639 ++fi
   6.640 ++
   6.641 ++# Work around bugs in pre-3.0 UWIN ksh.
   6.642 ++for as_var in ENV MAIL MAILPATH
   6.643 ++do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
   6.644 ++done
   6.645 ++PS1='$ '
   6.646 ++PS2='> '
   6.647 ++PS4='+ '
   6.648 ++
   6.649 ++# NLS nuisances.
   6.650 ++for as_var in \
   6.651 ++  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
   6.652 ++  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
   6.653 ++  LC_TELEPHONE LC_TIME
   6.654 ++do
   6.655 ++  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
   6.656 ++    eval $as_var=C; export $as_var
   6.657 ++  else
   6.658 ++    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
   6.659 ++  fi
   6.660 ++done
   6.661 ++
   6.662 ++# Required to use basename.
   6.663 ++if expr a : '\(a\)' >/dev/null 2>&1 &&
   6.664 ++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
   6.665 ++  as_expr=expr
   6.666 ++else
   6.667 ++  as_expr=false
   6.668 ++fi
   6.669 ++
   6.670 ++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
   6.671 ++  as_basename=basename
   6.672 ++else
   6.673 ++  as_basename=false
   6.674 ++fi
   6.675 ++
   6.676 ++
   6.677 ++# Name of the executable.
   6.678 ++as_me=`$as_basename -- "$0" ||
   6.679 ++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
   6.680 ++	 X"$0" : 'X\(//\)$' \| \
   6.681 ++	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
   6.682 ++echo X/"$0" |
   6.683 ++    sed '/^.*\/\([^/][^/]*\)\/*$/{
   6.684 ++	    s//\1/
   6.685 ++	    q
   6.686 ++	  }
   6.687 ++	  /^X\/\(\/\/\)$/{
   6.688 ++	    s//\1/
   6.689 ++	    q
   6.690 ++	  }
   6.691 ++	  /^X\/\(\/\).*/{
   6.692 ++	    s//\1/
   6.693 ++	    q
   6.694 ++	  }
   6.695 ++	  s/.*/./; q'`
   6.696 ++
   6.697 ++# CDPATH.
   6.698 ++$as_unset CDPATH
   6.699 ++
   6.700 ++
   6.701 ++if test "x$CONFIG_SHELL" = x; then
   6.702 ++  if (eval ":") 2>/dev/null; then
   6.703 ++  as_have_required=yes
   6.704 ++else
   6.705 ++  as_have_required=no
   6.706 ++fi
   6.707 ++
   6.708 ++  if test $as_have_required = yes && 	 (eval ":
   6.709 ++(as_func_return () {
   6.710 ++  (exit \$1)
   6.711 ++}
   6.712 ++as_func_success () {
   6.713 ++  as_func_return 0
   6.714 ++}
   6.715 ++as_func_failure () {
   6.716 ++  as_func_return 1
   6.717 ++}
   6.718 ++as_func_ret_success () {
   6.719 ++  return 0
   6.720 ++}
   6.721 ++as_func_ret_failure () {
   6.722 ++  return 1
   6.723 ++}
   6.724 ++
   6.725 ++exitcode=0
   6.726 ++if as_func_success; then
   6.727 ++  :
   6.728 ++else
   6.729 ++  exitcode=1
   6.730 ++  echo as_func_success failed.
   6.731 ++fi
   6.732 ++
   6.733 ++if as_func_failure; then
   6.734 ++  exitcode=1
   6.735 ++  echo as_func_failure succeeded.
   6.736 ++fi
   6.737 ++
   6.738 ++if as_func_ret_success; then
   6.739 ++  :
   6.740 ++else
   6.741 ++  exitcode=1
   6.742 ++  echo as_func_ret_success failed.
   6.743 ++fi
   6.744 ++
   6.745 ++if as_func_ret_failure; then
   6.746 ++  exitcode=1
   6.747 ++  echo as_func_ret_failure succeeded.
   6.748 ++fi
   6.749 ++
   6.750 ++if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
   6.751 ++  :
   6.752 ++else
   6.753 ++  exitcode=1
   6.754 ++  echo positional parameters were not saved.
   6.755 ++fi
   6.756 ++
   6.757 ++test \$exitcode = 0) || { (exit 1); exit 1; }
   6.758 ++
   6.759 ++(
   6.760 ++  as_lineno_1=\$LINENO
   6.761 ++  as_lineno_2=\$LINENO
   6.762 ++  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
   6.763 ++  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
   6.764 ++") 2> /dev/null; then
   6.765 ++  :
   6.766 ++else
   6.767 ++  as_candidate_shells=
   6.768 ++    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
   6.769 ++for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
   6.770 ++do
   6.771 ++  IFS=$as_save_IFS
   6.772 ++  test -z "$as_dir" && as_dir=.
   6.773 ++  case $as_dir in
   6.774 ++	 /*)
   6.775 ++	   for as_base in sh bash ksh sh5; do
   6.776 ++	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
   6.777 ++	   done;;
   6.778 ++       esac
   6.779 ++done
   6.780 ++IFS=$as_save_IFS
   6.781 ++
   6.782 ++
   6.783 ++      for as_shell in $as_candidate_shells $SHELL; do
   6.784 ++	 # Try only shells that exist, to save several forks.
   6.785 ++	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
   6.786 ++		{ ("$as_shell") 2> /dev/null <<\_ASEOF
   6.787 ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   6.788 ++  emulate sh
   6.789 ++  NULLCMD=:
   6.790 ++  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
   6.791 ++  # is contrary to our usage.  Disable this feature.
   6.792 ++  alias -g '${1+"$@"}'='"$@"'
   6.793 ++  setopt NO_GLOB_SUBST
   6.794 ++else
   6.795 ++  case `(set -o) 2>/dev/null` in
   6.796 ++  *posix*) set -o posix ;;
   6.797 ++esac
   6.798 ++
   6.799 ++fi
   6.800 ++
   6.801 ++
   6.802 ++:
   6.803 ++_ASEOF
   6.804 ++}; then
   6.805 ++  CONFIG_SHELL=$as_shell
   6.806 ++	       as_have_required=yes
   6.807 ++	       if { "$as_shell" 2> /dev/null <<\_ASEOF
   6.808 ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   6.809 ++  emulate sh
   6.810 ++  NULLCMD=:
   6.811 ++  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
   6.812 ++  # is contrary to our usage.  Disable this feature.
   6.813 ++  alias -g '${1+"$@"}'='"$@"'
   6.814 ++  setopt NO_GLOB_SUBST
   6.815 ++else
   6.816 ++  case `(set -o) 2>/dev/null` in
   6.817 ++  *posix*) set -o posix ;;
   6.818 ++esac
   6.819 ++
   6.820 ++fi
   6.821 ++
   6.822 ++
   6.823 ++:
   6.824 ++(as_func_return () {
   6.825 ++  (exit $1)
   6.826 ++}
   6.827 ++as_func_success () {
   6.828 ++  as_func_return 0
   6.829 ++}
   6.830 ++as_func_failure () {
   6.831 ++  as_func_return 1
   6.832 ++}
   6.833 ++as_func_ret_success () {
   6.834 ++  return 0
   6.835 ++}
   6.836 ++as_func_ret_failure () {
   6.837 ++  return 1
   6.838 ++}
   6.839 ++
   6.840 ++exitcode=0
   6.841 ++if as_func_success; then
   6.842 ++  :
   6.843 ++else
   6.844 ++  exitcode=1
   6.845 ++  echo as_func_success failed.
   6.846 ++fi
   6.847 ++
   6.848 ++if as_func_failure; then
   6.849 ++  exitcode=1
   6.850 ++  echo as_func_failure succeeded.
   6.851 ++fi
   6.852 ++
   6.853 ++if as_func_ret_success; then
   6.854 ++  :
   6.855 ++else
   6.856 ++  exitcode=1
   6.857 ++  echo as_func_ret_success failed.
   6.858 ++fi
   6.859 ++
   6.860 ++if as_func_ret_failure; then
   6.861 ++  exitcode=1
   6.862 ++  echo as_func_ret_failure succeeded.
   6.863 ++fi
   6.864 ++
   6.865 ++if ( set x; as_func_ret_success y && test x = "$1" ); then
   6.866 ++  :
   6.867 ++else
   6.868 ++  exitcode=1
   6.869 ++  echo positional parameters were not saved.
   6.870 ++fi
   6.871 ++
   6.872 ++test $exitcode = 0) || { (exit 1); exit 1; }
   6.873 ++
   6.874 ++(
   6.875 ++  as_lineno_1=$LINENO
   6.876 ++  as_lineno_2=$LINENO
   6.877 ++  test "x$as_lineno_1" != "x$as_lineno_2" &&
   6.878 ++  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
   6.879 ++
   6.880 ++_ASEOF
   6.881 ++}; then
   6.882 ++  break
   6.883 ++fi
   6.884 ++
   6.885 ++fi
   6.886 ++
   6.887 ++      done
   6.888 ++
   6.889 ++      if test "x$CONFIG_SHELL" != x; then
   6.890 ++  for as_var in BASH_ENV ENV
   6.891 ++        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
   6.892 ++        done
   6.893 ++        export CONFIG_SHELL
   6.894 ++        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
   6.895 ++fi
   6.896 ++
   6.897 ++
   6.898 ++    if test $as_have_required = no; then
   6.899 ++  echo This script requires a shell more modern than all the
   6.900 ++      echo shells that I found on your system.  Please install a
   6.901 ++      echo modern shell, or manually run the script under such a
   6.902 ++      echo shell if you do have one.
   6.903 ++      { (exit 1); exit 1; }
   6.904 ++fi
   6.905 ++
   6.906 ++
   6.907 ++fi
   6.908 ++
   6.909 ++fi
   6.910 ++
   6.911 ++
   6.912 ++
   6.913 ++(eval "as_func_return () {
   6.914 ++  (exit \$1)
   6.915 ++}
   6.916 ++as_func_success () {
   6.917 ++  as_func_return 0
   6.918 ++}
   6.919 ++as_func_failure () {
   6.920 ++  as_func_return 1
   6.921 ++}
   6.922 ++as_func_ret_success () {
   6.923 ++  return 0
   6.924 ++}
   6.925 ++as_func_ret_failure () {
   6.926 ++  return 1
   6.927 ++}
   6.928 ++
   6.929 ++exitcode=0
   6.930 ++if as_func_success; then
   6.931 ++  :
   6.932 ++else
   6.933 ++  exitcode=1
   6.934 ++  echo as_func_success failed.
   6.935 ++fi
   6.936 ++
   6.937 ++if as_func_failure; then
   6.938 ++  exitcode=1
   6.939 ++  echo as_func_failure succeeded.
   6.940 ++fi
   6.941 ++
   6.942 ++if as_func_ret_success; then
   6.943 ++  :
   6.944 ++else
   6.945 ++  exitcode=1
   6.946 ++  echo as_func_ret_success failed.
   6.947 ++fi
   6.948 ++
   6.949 ++if as_func_ret_failure; then
   6.950 ++  exitcode=1
   6.951 ++  echo as_func_ret_failure succeeded.
   6.952 ++fi
   6.953 ++
   6.954 ++if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
   6.955 ++  :
   6.956 ++else
   6.957 ++  exitcode=1
   6.958 ++  echo positional parameters were not saved.
   6.959 ++fi
   6.960 ++
   6.961 ++test \$exitcode = 0") || {
   6.962 ++  echo No shell found that supports shell functions.
   6.963 ++  echo Please tell autoconf@gnu.org about your system,
   6.964 ++  echo including any error possibly output before this
   6.965 ++  echo message
   6.966 ++}
   6.967 ++
   6.968 ++
   6.969 ++
   6.970 ++  as_lineno_1=$LINENO
   6.971 ++  as_lineno_2=$LINENO
   6.972 ++  test "x$as_lineno_1" != "x$as_lineno_2" &&
   6.973 ++  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
   6.974 ++
   6.975 ++  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
   6.976 ++  # uniformly replaced by the line number.  The first 'sed' inserts a
   6.977 ++  # line-number line after each line using $LINENO; the second 'sed'
   6.978 ++  # does the real work.  The second script uses 'N' to pair each
   6.979 ++  # line-number line with the line containing $LINENO, and appends
   6.980 ++  # trailing '-' during substitution so that $LINENO is not a special
   6.981 ++  # case at line end.
   6.982 ++  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
   6.983 ++  # scripts with optimization help from Paolo Bonzini.  Blame Lee
   6.984 ++  # E. McMahon (1931-1989) for sed's syntax.  :-)
   6.985 ++  sed -n '
   6.986 ++    p
   6.987 ++    /[$]LINENO/=
   6.988 ++  ' <$as_myself |
   6.989 ++    sed '
   6.990 ++      s/[$]LINENO.*/&-/
   6.991 ++      t lineno
   6.992 ++      b
   6.993 ++      :lineno
   6.994 ++      N
   6.995 ++      :loop
   6.996 ++      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
   6.997 ++      t loop
   6.998 ++      s/-\n.*//
   6.999 ++    ' >$as_me.lineno &&
  6.1000 ++  chmod +x "$as_me.lineno" ||
  6.1001 ++    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
  6.1002 ++   { (exit 1); exit 1; }; }
  6.1003 ++
  6.1004 ++  # Don't try to exec as it changes $[0], causing all sort of problems
  6.1005 ++  # (the dirname of $[0] is not the place where we might find the
  6.1006 ++  # original and so on.  Autoconf is especially sensitive to this).
  6.1007 ++  . "./$as_me.lineno"
  6.1008 ++  # Exit status is that of the last command.
  6.1009 ++  exit
  6.1010 ++}
  6.1011 ++
  6.1012 ++
  6.1013 ++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
  6.1014 ++  as_dirname=dirname
  6.1015 ++else
  6.1016 ++  as_dirname=false
  6.1017 ++fi
  6.1018 ++
  6.1019 ++ECHO_C= ECHO_N= ECHO_T=
  6.1020 ++case `echo -n x` in
  6.1021 ++-n*)
  6.1022 ++  case `echo 'x\c'` in
  6.1023 ++  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
  6.1024 ++  *)   ECHO_C='\c';;
  6.1025 ++  esac;;
  6.1026 ++*)
  6.1027 ++  ECHO_N='-n';;
  6.1028 ++esac
  6.1029 ++
  6.1030 ++if expr a : '\(a\)' >/dev/null 2>&1 &&
  6.1031 ++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
  6.1032 ++  as_expr=expr
  6.1033 ++else
  6.1034 ++  as_expr=false
  6.1035 ++fi
  6.1036 ++
  6.1037 ++rm -f conf$$ conf$$.exe conf$$.file
  6.1038 ++if test -d conf$$.dir; then
  6.1039 ++  rm -f conf$$.dir/conf$$.file
  6.1040 ++else
  6.1041 ++  rm -f conf$$.dir
  6.1042 ++  mkdir conf$$.dir
  6.1043 ++fi
  6.1044 ++echo >conf$$.file
  6.1045 ++if ln -s conf$$.file conf$$ 2>/dev/null; then
  6.1046 ++  as_ln_s='ln -s'
  6.1047 ++  # ... but there are two gotchas:
  6.1048 ++  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
  6.1049 ++  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
  6.1050 ++  # In both cases, we have to default to `cp -p'.
  6.1051 ++  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
  6.1052 ++    as_ln_s='cp -p'
  6.1053 ++elif ln conf$$.file conf$$ 2>/dev/null; then
  6.1054 ++  as_ln_s=ln
  6.1055 ++else
  6.1056 ++  as_ln_s='cp -p'
  6.1057 ++fi
  6.1058 ++rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
  6.1059 ++rmdir conf$$.dir 2>/dev/null
  6.1060 ++
  6.1061 ++if mkdir -p . 2>/dev/null; then
  6.1062 ++  as_mkdir_p=:
  6.1063 ++else
  6.1064 ++  test -d ./-p && rmdir ./-p
  6.1065 ++  as_mkdir_p=false
  6.1066 ++fi
  6.1067 ++
  6.1068 ++if test -x / >/dev/null 2>&1; then
  6.1069 ++  as_test_x='test -x'
  6.1070 ++else
  6.1071 ++  if ls -dL / >/dev/null 2>&1; then
  6.1072 ++    as_ls_L_option=L
  6.1073 ++  else
  6.1074 ++    as_ls_L_option=
  6.1075 ++  fi
  6.1076 ++  as_test_x='
  6.1077 ++    eval sh -c '\''
  6.1078 ++      if test -d "$1"; then
  6.1079 ++        test -d "$1/.";
  6.1080 ++      else
  6.1081 ++	case $1 in
  6.1082 ++        -*)set "./$1";;
  6.1083 ++	esac;
  6.1084 ++	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
  6.1085 ++	???[sx]*):;;*)false;;esac;fi
  6.1086 ++    '\'' sh
  6.1087 ++  '
  6.1088 ++fi
  6.1089 ++as_executable_p=$as_test_x
  6.1090 ++
  6.1091 ++# Sed expression to map a string onto a valid CPP name.
  6.1092 ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
  6.1093 ++
  6.1094 ++# Sed expression to map a string onto a valid variable name.
  6.1095 ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
  6.1096 ++
  6.1097 ++
  6.1098 ++
  6.1099 ++exec 7<&0 </dev/null 6>&1
  6.1100 ++
  6.1101 ++# Name of the host.
  6.1102 ++# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
  6.1103 ++# so uname gets run too.
  6.1104 ++ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
  6.1105 ++
  6.1106 ++#
  6.1107 ++# Initializations.
  6.1108 ++#
  6.1109 ++ac_default_prefix=/usr/local
  6.1110 ++ac_clean_files=
  6.1111 ++ac_config_libobj_dir=.
  6.1112 ++LIBOBJS=
  6.1113 ++cross_compiling=no
  6.1114 ++subdirs=
  6.1115 ++MFLAGS=
  6.1116 ++MAKEFLAGS=
  6.1117 ++SHELL=${CONFIG_SHELL-/bin/sh}
  6.1118 ++
  6.1119 ++# Identity of this package.
  6.1120 ++PACKAGE_NAME='newlib'
  6.1121 ++PACKAGE_TARNAME='newlib'
  6.1122 ++PACKAGE_VERSION='NEWLIB_VERSION'
  6.1123 ++PACKAGE_STRING='newlib NEWLIB_VERSION'
  6.1124 ++PACKAGE_BUGREPORT=''
  6.1125 ++
  6.1126 ++ac_unique_file="Makefile.am"
  6.1127 ++ac_subst_vars='SHELL
  6.1128 ++PATH_SEPARATOR
  6.1129 ++PACKAGE_NAME
  6.1130 ++PACKAGE_TARNAME
  6.1131 ++PACKAGE_VERSION
  6.1132 ++PACKAGE_STRING
  6.1133 ++PACKAGE_BUGREPORT
  6.1134 ++exec_prefix
  6.1135 ++prefix
  6.1136 ++program_transform_name
  6.1137 ++bindir
  6.1138 ++sbindir
  6.1139 ++libexecdir
  6.1140 ++datarootdir
  6.1141 ++datadir
  6.1142 ++sysconfdir
  6.1143 ++sharedstatedir
  6.1144 ++localstatedir
  6.1145 ++includedir
  6.1146 ++oldincludedir
  6.1147 ++docdir
  6.1148 ++infodir
  6.1149 ++htmldir
  6.1150 ++dvidir
  6.1151 ++pdfdir
  6.1152 ++psdir
  6.1153 ++libdir
  6.1154 ++localedir
  6.1155 ++mandir
  6.1156 ++DEFS
  6.1157 ++ECHO_C
  6.1158 ++ECHO_N
  6.1159 ++ECHO_T
  6.1160 ++LIBS
  6.1161 ++build_alias
  6.1162 ++host_alias
  6.1163 ++target_alias
  6.1164 ++MAY_SUPPLY_SYSCALLS_TRUE
  6.1165 ++MAY_SUPPLY_SYSCALLS_FALSE
  6.1166 ++newlib_basedir
  6.1167 ++build
  6.1168 ++build_cpu
  6.1169 ++build_vendor
  6.1170 ++build_os
  6.1171 ++host
  6.1172 ++host_cpu
  6.1173 ++host_vendor
  6.1174 ++host_os
  6.1175 ++target
  6.1176 ++target_cpu
  6.1177 ++target_vendor
  6.1178 ++target_os
  6.1179 ++INSTALL_PROGRAM
  6.1180 ++INSTALL_SCRIPT
  6.1181 ++INSTALL_DATA
  6.1182 ++PACKAGE
  6.1183 ++VERSION
  6.1184 ++ACLOCAL
  6.1185 ++AUTOCONF
  6.1186 ++AUTOMAKE
  6.1187 ++AUTOHEADER
  6.1188 ++MAKEINFO
  6.1189 ++SET_MAKE
  6.1190 ++CC
  6.1191 ++AS
  6.1192 ++AR
  6.1193 ++RANLIB
  6.1194 ++MAINTAINER_MODE_TRUE
  6.1195 ++MAINTAINER_MODE_FALSE
  6.1196 ++MAINT
  6.1197 ++NEWLIB_CFLAGS
  6.1198 ++LDFLAGS
  6.1199 ++ELIX_LEVEL_0_TRUE
  6.1200 ++ELIX_LEVEL_0_FALSE
  6.1201 ++ELIX_LEVEL_1_TRUE
  6.1202 ++ELIX_LEVEL_1_FALSE
  6.1203 ++ELIX_LEVEL_2_TRUE
  6.1204 ++ELIX_LEVEL_2_FALSE
  6.1205 ++ELIX_LEVEL_3_TRUE
  6.1206 ++ELIX_LEVEL_3_FALSE
  6.1207 ++ELIX_LEVEL_4_TRUE
  6.1208 ++ELIX_LEVEL_4_FALSE
  6.1209 ++USE_LIBTOOL_TRUE
  6.1210 ++USE_LIBTOOL_FALSE
  6.1211 ++OBJEXT
  6.1212 ++oext
  6.1213 ++aext
  6.1214 ++libm_machine_dir
  6.1215 ++machine_dir
  6.1216 ++sys_dir
  6.1217 ++LIBOBJS
  6.1218 ++LTLIBOBJS'
  6.1219 ++ac_subst_files=''
  6.1220 ++      ac_precious_vars='build_alias
  6.1221 ++host_alias
  6.1222 ++target_alias'
  6.1223 ++
  6.1224 ++
  6.1225 ++# Initialize some variables set by options.
  6.1226 ++ac_init_help=
  6.1227 ++ac_init_version=false
  6.1228 ++# The variables have the same names as the options, with
  6.1229 ++# dashes changed to underlines.
  6.1230 ++cache_file=/dev/null
  6.1231 ++exec_prefix=NONE
  6.1232 ++no_create=
  6.1233 ++no_recursion=
  6.1234 ++prefix=NONE
  6.1235 ++program_prefix=NONE
  6.1236 ++program_suffix=NONE
  6.1237 ++program_transform_name=s,x,x,
  6.1238 ++silent=
  6.1239 ++site=
  6.1240 ++srcdir=
  6.1241 ++verbose=
  6.1242 ++x_includes=NONE
  6.1243 ++x_libraries=NONE
  6.1244 ++
  6.1245 ++# Installation directory options.
  6.1246 ++# These are left unexpanded so users can "make install exec_prefix=/foo"
  6.1247 ++# and all the variables that are supposed to be based on exec_prefix
  6.1248 ++# by default will actually change.
  6.1249 ++# Use braces instead of parens because sh, perl, etc. also accept them.
  6.1250 ++# (The list follows the same order as the GNU Coding Standards.)
  6.1251 ++bindir='${exec_prefix}/bin'
  6.1252 ++sbindir='${exec_prefix}/sbin'
  6.1253 ++libexecdir='${exec_prefix}/libexec'
  6.1254 ++datarootdir='${prefix}/share'
  6.1255 ++datadir='${datarootdir}'
  6.1256 ++sysconfdir='${prefix}/etc'
  6.1257 ++sharedstatedir='${prefix}/com'
  6.1258 ++localstatedir='${prefix}/var'
  6.1259 ++includedir='${prefix}/include'
  6.1260 ++oldincludedir='/usr/include'
  6.1261 ++docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
  6.1262 ++infodir='${datarootdir}/info'
  6.1263 ++htmldir='${docdir}'
  6.1264 ++dvidir='${docdir}'
  6.1265 ++pdfdir='${docdir}'
  6.1266 ++psdir='${docdir}'
  6.1267 ++libdir='${exec_prefix}/lib'
  6.1268 ++localedir='${datarootdir}/locale'
  6.1269 ++mandir='${datarootdir}/man'
  6.1270 ++
  6.1271 ++ac_prev=
  6.1272 ++ac_dashdash=
  6.1273 ++for ac_option
  6.1274 ++do
  6.1275 ++  # If the previous option needs an argument, assign it.
  6.1276 ++  if test -n "$ac_prev"; then
  6.1277 ++    eval $ac_prev=\$ac_option
  6.1278 ++    ac_prev=
  6.1279 ++    continue
  6.1280 ++  fi
  6.1281 ++
  6.1282 ++  case $ac_option in
  6.1283 ++  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
  6.1284 ++  *)	ac_optarg=yes ;;
  6.1285 ++  esac
  6.1286 ++
  6.1287 ++  # Accept the important Cygnus configure options, so we can diagnose typos.
  6.1288 ++
  6.1289 ++  case $ac_dashdash$ac_option in
  6.1290 ++  --)
  6.1291 ++    ac_dashdash=yes ;;
  6.1292 ++
  6.1293 ++  -bindir | --bindir | --bindi | --bind | --bin | --bi)
  6.1294 ++    ac_prev=bindir ;;
  6.1295 ++  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
  6.1296 ++    bindir=$ac_optarg ;;
  6.1297 ++
  6.1298 ++  -build | --build | --buil | --bui | --bu)
  6.1299 ++    ac_prev=build_alias ;;
  6.1300 ++  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
  6.1301 ++    build_alias=$ac_optarg ;;
  6.1302 ++
  6.1303 ++  -cache-file | --cache-file | --cache-fil | --cache-fi \
  6.1304 ++  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
  6.1305 ++    ac_prev=cache_file ;;
  6.1306 ++  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
  6.1307 ++  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
  6.1308 ++    cache_file=$ac_optarg ;;
  6.1309 ++
  6.1310 ++  --config-cache | -C)
  6.1311 ++    cache_file=config.cache ;;
  6.1312 ++
  6.1313 ++  -datadir | --datadir | --datadi | --datad)
  6.1314 ++    ac_prev=datadir ;;
  6.1315 ++  -datadir=* | --datadir=* | --datadi=* | --datad=*)
  6.1316 ++    datadir=$ac_optarg ;;
  6.1317 ++
  6.1318 ++  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
  6.1319 ++  | --dataroo | --dataro | --datar)
  6.1320 ++    ac_prev=datarootdir ;;
  6.1321 ++  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
  6.1322 ++  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
  6.1323 ++    datarootdir=$ac_optarg ;;
  6.1324 ++
  6.1325 ++  -disable-* | --disable-*)
  6.1326 ++    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
  6.1327 ++    # Reject names that are not valid shell variable names.
  6.1328 ++    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
  6.1329 ++      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
  6.1330 ++   { (exit 1); exit 1; }; }
  6.1331 ++    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
  6.1332 ++    eval enable_$ac_feature=no ;;
  6.1333 ++
  6.1334 ++  -docdir | --docdir | --docdi | --doc | --do)
  6.1335 ++    ac_prev=docdir ;;
  6.1336 ++  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
  6.1337 ++    docdir=$ac_optarg ;;
  6.1338 ++
  6.1339 ++  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
  6.1340 ++    ac_prev=dvidir ;;
  6.1341 ++  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
  6.1342 ++    dvidir=$ac_optarg ;;
  6.1343 ++
  6.1344 ++  -enable-* | --enable-*)
  6.1345 ++    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
  6.1346 ++    # Reject names that are not valid shell variable names.
  6.1347 ++    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
  6.1348 ++      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
  6.1349 ++   { (exit 1); exit 1; }; }
  6.1350 ++    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
  6.1351 ++    eval enable_$ac_feature=\$ac_optarg ;;
  6.1352 ++
  6.1353 ++  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
  6.1354 ++  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
  6.1355 ++  | --exec | --exe | --ex)
  6.1356 ++    ac_prev=exec_prefix ;;
  6.1357 ++  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
  6.1358 ++  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
  6.1359 ++  | --exec=* | --exe=* | --ex=*)
  6.1360 ++    exec_prefix=$ac_optarg ;;
  6.1361 ++
  6.1362 ++  -gas | --gas | --ga | --g)
  6.1363 ++    # Obsolete; use --with-gas.
  6.1364 ++    with_gas=yes ;;
  6.1365 ++
  6.1366 ++  -help | --help | --hel | --he | -h)
  6.1367 ++    ac_init_help=long ;;
  6.1368 ++  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
  6.1369 ++    ac_init_help=recursive ;;
  6.1370 ++  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
  6.1371 ++    ac_init_help=short ;;
  6.1372 ++
  6.1373 ++  -host | --host | --hos | --ho)
  6.1374 ++    ac_prev=host_alias ;;
  6.1375 ++  -host=* | --host=* | --hos=* | --ho=*)
  6.1376 ++    host_alias=$ac_optarg ;;
  6.1377 ++
  6.1378 ++  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
  6.1379 ++    ac_prev=htmldir ;;
  6.1380 ++  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
  6.1381 ++  | --ht=*)
  6.1382 ++    htmldir=$ac_optarg ;;
  6.1383 ++
  6.1384 ++  -includedir | --includedir | --includedi | --included | --include \
  6.1385 ++  | --includ | --inclu | --incl | --inc)
  6.1386 ++    ac_prev=includedir ;;
  6.1387 ++  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
  6.1388 ++  | --includ=* | --inclu=* | --incl=* | --inc=*)
  6.1389 ++    includedir=$ac_optarg ;;
  6.1390 ++
  6.1391 ++  -infodir | --infodir | --infodi | --infod | --info | --inf)
  6.1392 ++    ac_prev=infodir ;;
  6.1393 ++  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
  6.1394 ++    infodir=$ac_optarg ;;
  6.1395 ++
  6.1396 ++  -libdir | --libdir | --libdi | --libd)
  6.1397 ++    ac_prev=libdir ;;
  6.1398 ++  -libdir=* | --libdir=* | --libdi=* | --libd=*)
  6.1399 ++    libdir=$ac_optarg ;;
  6.1400 ++
  6.1401 ++  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
  6.1402 ++  | --libexe | --libex | --libe)
  6.1403 ++    ac_prev=libexecdir ;;
  6.1404 ++  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
  6.1405 ++  | --libexe=* | --libex=* | --libe=*)
  6.1406 ++    libexecdir=$ac_optarg ;;
  6.1407 ++
  6.1408 ++  -localedir | --localedir | --localedi | --localed | --locale)
  6.1409 ++    ac_prev=localedir ;;
  6.1410 ++  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
  6.1411 ++    localedir=$ac_optarg ;;
  6.1412 ++
  6.1413 ++  -localstatedir | --localstatedir | --localstatedi | --localstated \
  6.1414 ++  | --localstate | --localstat | --localsta | --localst | --locals)
  6.1415 ++    ac_prev=localstatedir ;;
  6.1416 ++  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
  6.1417 ++  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
  6.1418 ++    localstatedir=$ac_optarg ;;
  6.1419 ++
  6.1420 ++  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
  6.1421 ++    ac_prev=mandir ;;
  6.1422 ++  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
  6.1423 ++    mandir=$ac_optarg ;;
  6.1424 ++
  6.1425 ++  -nfp | --nfp | --nf)
  6.1426 ++    # Obsolete; use --without-fp.
  6.1427 ++    with_fp=no ;;
  6.1428 ++
  6.1429 ++  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
  6.1430 ++  | --no-cr | --no-c | -n)
  6.1431 ++    no_create=yes ;;
  6.1432 ++
  6.1433 ++  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
  6.1434 ++  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
  6.1435 ++    no_recursion=yes ;;
  6.1436 ++
  6.1437 ++  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
  6.1438 ++  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
  6.1439 ++  | --oldin | --oldi | --old | --ol | --o)
  6.1440 ++    ac_prev=oldincludedir ;;
  6.1441 ++  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
  6.1442 ++  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
  6.1443 ++  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
  6.1444 ++    oldincludedir=$ac_optarg ;;
  6.1445 ++
  6.1446 ++  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
  6.1447 ++    ac_prev=prefix ;;
  6.1448 ++  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
  6.1449 ++    prefix=$ac_optarg ;;
  6.1450 ++
  6.1451 ++  -program-prefix | --program-prefix | --program-prefi | --program-pref \
  6.1452 ++  | --program-pre | --program-pr | --program-p)
  6.1453 ++    ac_prev=program_prefix ;;
  6.1454 ++  -program-prefix=* | --program-prefix=* | --program-prefi=* \
  6.1455 ++  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
  6.1456 ++    program_prefix=$ac_optarg ;;
  6.1457 ++
  6.1458 ++  -program-suffix | --program-suffix | --program-suffi | --program-suff \
  6.1459 ++  | --program-suf | --program-su | --program-s)
  6.1460 ++    ac_prev=program_suffix ;;
  6.1461 ++  -program-suffix=* | --program-suffix=* | --program-suffi=* \
  6.1462 ++  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
  6.1463 ++    program_suffix=$ac_optarg ;;
  6.1464 ++
  6.1465 ++  -program-transform-name | --program-transform-name \
  6.1466 ++  | --program-transform-nam | --program-transform-na \
  6.1467 ++  | --program-transform-n | --program-transform- \
  6.1468 ++  | --program-transform | --program-transfor \
  6.1469 ++  | --program-transfo | --program-transf \
  6.1470 ++  | --program-trans | --program-tran \
  6.1471 ++  | --progr-tra | --program-tr | --program-t)
  6.1472 ++    ac_prev=program_transform_name ;;
  6.1473 ++  -program-transform-name=* | --program-transform-name=* \
  6.1474 ++  | --program-transform-nam=* | --program-transform-na=* \
  6.1475 ++  | --program-transform-n=* | --program-transform-=* \
  6.1476 ++  | --program-transform=* | --program-transfor=* \
  6.1477 ++  | --program-transfo=* | --program-transf=* \
  6.1478 ++  | --program-trans=* | --program-tran=* \
  6.1479 ++  | --progr-tra=* | --program-tr=* | --program-t=*)
  6.1480 ++    program_transform_name=$ac_optarg ;;
  6.1481 ++
  6.1482 ++  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
  6.1483 ++    ac_prev=pdfdir ;;
  6.1484 ++  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
  6.1485 ++    pdfdir=$ac_optarg ;;
  6.1486 ++
  6.1487 ++  -psdir | --psdir | --psdi | --psd | --ps)
  6.1488 ++    ac_prev=psdir ;;
  6.1489 ++  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
  6.1490 ++    psdir=$ac_optarg ;;
  6.1491 ++
  6.1492 ++  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
  6.1493 ++  | -silent | --silent | --silen | --sile | --sil)
  6.1494 ++    silent=yes ;;
  6.1495 ++
  6.1496 ++  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
  6.1497 ++    ac_prev=sbindir ;;
  6.1498 ++  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
  6.1499 ++  | --sbi=* | --sb=*)
  6.1500 ++    sbindir=$ac_optarg ;;
  6.1501 ++
  6.1502 ++  -sharedstatedir | --sharedstatedir | --sharedstatedi \
  6.1503 ++  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
  6.1504 ++  | --sharedst | --shareds | --shared | --share | --shar \
  6.1505 ++  | --sha | --sh)
  6.1506 ++    ac_prev=sharedstatedir ;;
  6.1507 ++  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
  6.1508 ++  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
  6.1509 ++  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
  6.1510 ++  | --sha=* | --sh=*)
  6.1511 ++    sharedstatedir=$ac_optarg ;;
  6.1512 ++
  6.1513 ++  -site | --site | --sit)
  6.1514 ++    ac_prev=site ;;
  6.1515 ++  -site=* | --site=* | --sit=*)
  6.1516 ++    site=$ac_optarg ;;
  6.1517 ++
  6.1518 ++  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
  6.1519 ++    ac_prev=srcdir ;;
  6.1520 ++  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
  6.1521 ++    srcdir=$ac_optarg ;;
  6.1522 ++
  6.1523 ++  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
  6.1524 ++  | --syscon | --sysco | --sysc | --sys | --sy)
  6.1525 ++    ac_prev=sysconfdir ;;
  6.1526 ++  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
  6.1527 ++  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
  6.1528 ++    sysconfdir=$ac_optarg ;;
  6.1529 ++
  6.1530 ++  -target | --target | --targe | --targ | --tar | --ta | --t)
  6.1531 ++    ac_prev=target_alias ;;
  6.1532 ++  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
  6.1533 ++    target_alias=$ac_optarg ;;
  6.1534 ++
  6.1535 ++  -v | -verbose | --verbose | --verbos | --verbo | --verb)
  6.1536 ++    verbose=yes ;;
  6.1537 ++
  6.1538 ++  -version | --version | --versio | --versi | --vers | -V)
  6.1539 ++    ac_init_version=: ;;
  6.1540 ++
  6.1541 ++  -with-* | --with-*)
  6.1542 ++    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
  6.1543 ++    # Reject names that are not valid shell variable names.
  6.1544 ++    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
  6.1545 ++      { echo "$as_me: error: invalid package name: $ac_package" >&2
  6.1546 ++   { (exit 1); exit 1; }; }
  6.1547 ++    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
  6.1548 ++    eval with_$ac_package=\$ac_optarg ;;
  6.1549 ++
  6.1550 ++  -without-* | --without-*)
  6.1551 ++    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
  6.1552 ++    # Reject names that are not valid shell variable names.
  6.1553 ++    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
  6.1554 ++      { echo "$as_me: error: invalid package name: $ac_package" >&2
  6.1555 ++   { (exit 1); exit 1; }; }
  6.1556 ++    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
  6.1557 ++    eval with_$ac_package=no ;;
  6.1558 ++
  6.1559 ++  --x)
  6.1560 ++    # Obsolete; use --with-x.
  6.1561 ++    with_x=yes ;;
  6.1562 ++
  6.1563 ++  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
  6.1564 ++  | --x-incl | --x-inc | --x-in | --x-i)
  6.1565 ++    ac_prev=x_includes ;;
  6.1566 ++  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
  6.1567 ++  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
  6.1568 ++    x_includes=$ac_optarg ;;
  6.1569 ++
  6.1570 ++  -x-libraries | --x-libraries | --x-librarie | --x-librari \
  6.1571 ++  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
  6.1572 ++    ac_prev=x_libraries ;;
  6.1573 ++  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
  6.1574 ++  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
  6.1575 ++    x_libraries=$ac_optarg ;;
  6.1576 ++
  6.1577 ++  -*) { echo "$as_me: error: unrecognized option: $ac_option
  6.1578 ++Try \`$0 --help' for more information." >&2
  6.1579 ++   { (exit 1); exit 1; }; }
  6.1580 ++    ;;
  6.1581 ++
  6.1582 ++  *=*)
  6.1583 ++    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
  6.1584 ++    # Reject names that are not valid shell variable names.
  6.1585 ++    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
  6.1586 ++      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
  6.1587 ++   { (exit 1); exit 1; }; }
  6.1588 ++    eval $ac_envvar=\$ac_optarg
  6.1589 ++    export $ac_envvar ;;
  6.1590 ++
  6.1591 ++  *)
  6.1592 ++    # FIXME: should be removed in autoconf 3.0.
  6.1593 ++    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
  6.1594 ++    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
  6.1595 ++      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
  6.1596 ++    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
  6.1597 ++    ;;
  6.1598 ++
  6.1599 ++  esac
  6.1600 ++done
  6.1601 ++
  6.1602 ++if test -n "$ac_prev"; then
  6.1603 ++  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
  6.1604 ++  { echo "$as_me: error: missing argument to $ac_option" >&2
  6.1605 ++   { (exit 1); exit 1; }; }
  6.1606 ++fi
  6.1607 ++
  6.1608 ++# Be sure to have absolute directory names.
  6.1609 ++for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
  6.1610 ++		datadir sysconfdir sharedstatedir localstatedir includedir \
  6.1611 ++		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
  6.1612 ++		libdir localedir mandir
  6.1613 ++do
  6.1614 ++  eval ac_val=\$$ac_var
  6.1615 ++  case $ac_val in
  6.1616 ++    [\\/$]* | ?:[\\/]* )  continue;;
  6.1617 ++    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
  6.1618 ++  esac
  6.1619 ++  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
  6.1620 ++   { (exit 1); exit 1; }; }
  6.1621 ++done
  6.1622 ++
  6.1623 ++# There might be people who depend on the old broken behavior: `$host'
  6.1624 ++# used to hold the argument of --host etc.
  6.1625 ++# FIXME: To remove some day.
  6.1626 ++build=$build_alias
  6.1627 ++host=$host_alias
  6.1628 ++target=$target_alias
  6.1629 ++
  6.1630 ++# FIXME: To remove some day.
  6.1631 ++if test "x$host_alias" != x; then
  6.1632 ++  if test "x$build_alias" = x; then
  6.1633 ++    cross_compiling=maybe
  6.1634 ++    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
  6.1635 ++    If a cross compiler is detected then cross compile mode will be used." >&2
  6.1636 ++  elif test "x$build_alias" != "x$host_alias"; then
  6.1637 ++    cross_compiling=yes
  6.1638 ++  fi
  6.1639 ++fi
  6.1640 ++
  6.1641 ++ac_tool_prefix=
  6.1642 ++test -n "$host_alias" && ac_tool_prefix=$host_alias-
  6.1643 ++
  6.1644 ++test "$silent" = yes && exec 6>/dev/null
  6.1645 ++
  6.1646 ++
  6.1647 ++ac_pwd=`pwd` && test -n "$ac_pwd" &&
  6.1648 ++ac_ls_di=`ls -di .` &&
  6.1649 ++ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
  6.1650 ++  { echo "$as_me: error: Working directory cannot be determined" >&2
  6.1651 ++   { (exit 1); exit 1; }; }
  6.1652 ++test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
  6.1653 ++  { echo "$as_me: error: pwd does not report name of working directory" >&2
  6.1654 ++   { (exit 1); exit 1; }; }
  6.1655 ++
  6.1656 ++
  6.1657 ++# Find the source files, if location was not specified.
  6.1658 ++if test -z "$srcdir"; then
  6.1659 ++  ac_srcdir_defaulted=yes
  6.1660 ++  # Try the directory containing this script, then the parent directory.
  6.1661 ++  ac_confdir=`$as_dirname -- "$0" ||
  6.1662 ++$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
  6.1663 ++	 X"$0" : 'X\(//\)[^/]' \| \
  6.1664 ++	 X"$0" : 'X\(//\)$' \| \
  6.1665 ++	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
  6.1666 ++echo X"$0" |
  6.1667 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
  6.1668 ++	    s//\1/
  6.1669 ++	    q
  6.1670 ++	  }
  6.1671 ++	  /^X\(\/\/\)[^/].*/{
  6.1672 ++	    s//\1/
  6.1673 ++	    q
  6.1674 ++	  }
  6.1675 ++	  /^X\(\/\/\)$/{
  6.1676 ++	    s//\1/
  6.1677 ++	    q
  6.1678 ++	  }
  6.1679 ++	  /^X\(\/\).*/{
  6.1680 ++	    s//\1/
  6.1681 ++	    q
  6.1682 ++	  }
  6.1683 ++	  s/.*/./; q'`
  6.1684 ++  srcdir=$ac_confdir
  6.1685 ++  if test ! -r "$srcdir/$ac_unique_file"; then
  6.1686 ++    srcdir=..
  6.1687 ++  fi
  6.1688 ++else
  6.1689 ++  ac_srcdir_defaulted=no
  6.1690 ++fi
  6.1691 ++if test ! -r "$srcdir/$ac_unique_file"; then
  6.1692 ++  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
  6.1693 ++  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
  6.1694 ++   { (exit 1); exit 1; }; }
  6.1695 ++fi
  6.1696 ++ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
  6.1697 ++ac_abs_confdir=`(
  6.1698 ++	cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
  6.1699 ++   { (exit 1); exit 1; }; }
  6.1700 ++	pwd)`
  6.1701 ++# When building in place, set srcdir=.
  6.1702 ++if test "$ac_abs_confdir" = "$ac_pwd"; then
  6.1703 ++  srcdir=.
  6.1704 ++fi
  6.1705 ++# Remove unnecessary trailing slashes from srcdir.
  6.1706 ++# Double slashes in file names in object file debugging info
  6.1707 ++# mess up M-x gdb in Emacs.
  6.1708 ++case $srcdir in
  6.1709 ++*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
  6.1710 ++esac
  6.1711 ++for ac_var in $ac_precious_vars; do
  6.1712 ++  eval ac_env_${ac_var}_set=\${${ac_var}+set}
  6.1713 ++  eval ac_env_${ac_var}_value=\$${ac_var}
  6.1714 ++  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
  6.1715 ++  eval ac_cv_env_${ac_var}_value=\$${ac_var}
  6.1716 ++done
  6.1717 ++
  6.1718 ++#
  6.1719 ++# Report the --help message.
  6.1720 ++#
  6.1721 ++if test "$ac_init_help" = "long"; then
  6.1722 ++  # Omit some internal or obsolete options to make the list less imposing.
  6.1723 ++  # This message is too long to be a string in the A/UX 3.1 sh.
  6.1724 ++  cat <<_ACEOF
  6.1725 ++\`configure' configures newlib NEWLIB_VERSION to adapt to many kinds of systems.
  6.1726 ++
  6.1727 ++Usage: $0 [OPTION]... [VAR=VALUE]...
  6.1728 ++
  6.1729 ++To assign environment variables (e.g., CC, CFLAGS...), specify them as
  6.1730 ++VAR=VALUE.  See below for descriptions of some of the useful variables.
  6.1731 ++
  6.1732 ++Defaults for the options are specified in brackets.
  6.1733 ++
  6.1734 ++Configuration:
  6.1735 ++  -h, --help              display this help and exit
  6.1736 ++      --help=short        display options specific to this package
  6.1737 ++      --help=recursive    display the short help of all the included packages
  6.1738 ++  -V, --version           display version information and exit
  6.1739 ++  -q, --quiet, --silent   do not print \`checking...' messages
  6.1740 ++      --cache-file=FILE   cache test results in FILE [disabled]
  6.1741 ++  -C, --config-cache      alias for \`--cache-file=config.cache'
  6.1742 ++  -n, --no-create         do not create output files
  6.1743 ++      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
  6.1744 ++
  6.1745 ++Installation directories:
  6.1746 ++  --prefix=PREFIX         install architecture-independent files in PREFIX
  6.1747 ++			  [$ac_default_prefix]
  6.1748 ++  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
  6.1749 ++			  [PREFIX]
  6.1750 ++
  6.1751 ++By default, \`make install' will install all the files in
  6.1752 ++\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
  6.1753 ++an installation prefix other than \`$ac_default_prefix' using \`--prefix',
  6.1754 ++for instance \`--prefix=\$HOME'.
  6.1755 ++
  6.1756 ++For better control, use the options below.
  6.1757 ++
  6.1758 ++Fine tuning of the installation directories:
  6.1759 ++  --bindir=DIR           user executables [EPREFIX/bin]
  6.1760 ++  --sbindir=DIR          system admin executables [EPREFIX/sbin]
  6.1761 ++  --libexecdir=DIR       program executables [EPREFIX/libexec]
  6.1762 ++  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
  6.1763 ++  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
  6.1764 ++  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
  6.1765 ++  --libdir=DIR           object code libraries [EPREFIX/lib]
  6.1766 ++  --includedir=DIR       C header files [PREFIX/include]
  6.1767 ++  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
  6.1768 ++  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]
  6.1769 ++  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]
  6.1770 ++  --infodir=DIR          info documentation [DATAROOTDIR/info]
  6.1771 ++  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]
  6.1772 ++  --mandir=DIR           man documentation [DATAROOTDIR/man]
  6.1773 ++  --docdir=DIR           documentation root [DATAROOTDIR/doc/newlib]
  6.1774 ++  --htmldir=DIR          html documentation [DOCDIR]
  6.1775 ++  --dvidir=DIR           dvi documentation [DOCDIR]
  6.1776 ++  --pdfdir=DIR           pdf documentation [DOCDIR]
  6.1777 ++  --psdir=DIR            ps documentation [DOCDIR]
  6.1778 ++_ACEOF
  6.1779 ++
  6.1780 ++  cat <<\_ACEOF
  6.1781 ++
  6.1782 ++Program names:
  6.1783 ++  --program-prefix=PREFIX            prepend PREFIX to installed program names
  6.1784 ++  --program-suffix=SUFFIX            append SUFFIX to installed program names
  6.1785 ++  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
  6.1786 ++
  6.1787 ++System types:
  6.1788 ++  --build=BUILD     configure for building on BUILD [guessed]
  6.1789 ++  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
  6.1790 ++  --target=TARGET   configure for building compilers for TARGET [HOST]
  6.1791 ++_ACEOF
  6.1792 ++fi
  6.1793 ++
  6.1794 ++if test -n "$ac_init_help"; then
  6.1795 ++  case $ac_init_help in
  6.1796 ++     short | recursive ) echo "Configuration of newlib NEWLIB_VERSION:";;
  6.1797 ++   esac
  6.1798 ++  cat <<\_ACEOF
  6.1799 ++
  6.1800 ++Optional Features:
  6.1801 ++  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  6.1802 ++  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  6.1803 ++  --enable-multilib         build many library versions (default)
  6.1804 ++  --enable-target-optspace  optimize for space
  6.1805 ++  --enable-malloc-debugging indicate malloc debugging requested
  6.1806 ++  --enable-newlib-mb        enable multibyte support
  6.1807 ++  --enable-newlib-iconv     enable iconv library support
  6.1808 ++  --enable-newlib-builtin-converters   enable specific comma-separated list of iconv converters to be built-in
  6.1809 ++  --enable-newlib-multithread        enable support for multiple threads
  6.1810 ++  --enable-newlib-elix-level         supply desired elix library level (1-4)
  6.1811 ++  --disable-newlib-io-float disable printf/scanf family float support
  6.1812 ++  --disable-newlib-supplied-syscalls disable newlib from supplying syscalls
  6.1813 ++  --enable-maintainer-mode enable make rules and dependencies not useful
  6.1814 ++                          (and sometimes confusing) to the casual installer
  6.1815 ++
  6.1816 ++_ACEOF
  6.1817 ++ac_status=$?
  6.1818 ++fi
  6.1819 ++
  6.1820 ++if test "$ac_init_help" = "recursive"; then
  6.1821 ++  # If there are subdirs, report their specific --help.
  6.1822 ++  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
  6.1823 ++    test -d "$ac_dir" || continue
  6.1824 ++    ac_builddir=.
  6.1825 ++
  6.1826 ++case "$ac_dir" in
  6.1827 ++.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
  6.1828 ++*)
  6.1829 ++  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
  6.1830 ++  # A ".." for each directory in $ac_dir_suffix.
  6.1831 ++  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
  6.1832 ++  case $ac_top_builddir_sub in
  6.1833 ++  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
  6.1834 ++  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
  6.1835 ++  esac ;;
  6.1836 ++esac
  6.1837 ++ac_abs_top_builddir=$ac_pwd
  6.1838 ++ac_abs_builddir=$ac_pwd$ac_dir_suffix
  6.1839 ++# for backward compatibility:
  6.1840 ++ac_top_builddir=$ac_top_build_prefix
  6.1841 ++
  6.1842 ++case $srcdir in
  6.1843 ++  .)  # We are building in place.
  6.1844 ++    ac_srcdir=.
  6.1845 ++    ac_top_srcdir=$ac_top_builddir_sub
  6.1846 ++    ac_abs_top_srcdir=$ac_pwd ;;
  6.1847 ++  [\\/]* | ?:[\\/]* )  # Absolute name.
  6.1848 ++    ac_srcdir=$srcdir$ac_dir_suffix;
  6.1849 ++    ac_top_srcdir=$srcdir
  6.1850 ++    ac_abs_top_srcdir=$srcdir ;;
  6.1851 ++  *) # Relative name.
  6.1852 ++    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
  6.1853 ++    ac_top_srcdir=$ac_top_build_prefix$srcdir
  6.1854 ++    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
  6.1855 ++esac
  6.1856 ++ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
  6.1857 ++
  6.1858 ++    cd "$ac_dir" || { ac_status=$?; continue; }
  6.1859 ++    # Check for guested configure.
  6.1860 ++    if test -f "$ac_srcdir/configure.gnu"; then
  6.1861 ++      echo &&
  6.1862 ++      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
  6.1863 ++    elif test -f "$ac_srcdir/configure"; then
  6.1864 ++      echo &&
  6.1865 ++      $SHELL "$ac_srcdir/configure" --help=recursive
  6.1866 ++    else
  6.1867 ++      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
  6.1868 ++    fi || ac_status=$?
  6.1869 ++    cd "$ac_pwd" || { ac_status=$?; break; }
  6.1870 ++  done
  6.1871 ++fi
  6.1872 ++
  6.1873 ++test -n "$ac_init_help" && exit $ac_status
  6.1874 ++if $ac_init_version; then
  6.1875 ++  cat <<\_ACEOF
  6.1876 ++newlib configure NEWLIB_VERSION
  6.1877 ++generated by GNU Autoconf 2.61
  6.1878 ++
  6.1879 ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
  6.1880 ++2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
  6.1881 ++This configure script is free software; the Free Software Foundation
  6.1882 ++gives unlimited permission to copy, distribute and modify it.
  6.1883 ++_ACEOF
  6.1884 ++  exit
  6.1885 ++fi
  6.1886 ++cat >config.log <<_ACEOF
  6.1887 ++This file contains any messages produced by compilers while
  6.1888 ++running configure, to aid debugging if configure makes a mistake.
  6.1889 ++
  6.1890 ++It was created by newlib $as_me NEWLIB_VERSION, which was
  6.1891 ++generated by GNU Autoconf 2.61.  Invocation command line was
  6.1892 ++
  6.1893 ++  $ $0 $@
  6.1894 ++
  6.1895 ++_ACEOF
  6.1896 ++exec 5>>config.log
  6.1897 ++{
  6.1898 ++cat <<_ASUNAME
  6.1899 ++## --------- ##
  6.1900 ++## Platform. ##
  6.1901 ++## --------- ##
  6.1902 ++
  6.1903 ++hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
  6.1904 ++uname -m = `(uname -m) 2>/dev/null || echo unknown`
  6.1905 ++uname -r = `(uname -r) 2>/dev/null || echo unknown`
  6.1906 ++uname -s = `(uname -s) 2>/dev/null || echo unknown`
  6.1907 ++uname -v = `(uname -v) 2>/dev/null || echo unknown`
  6.1908 ++
  6.1909 ++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
  6.1910 ++/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
  6.1911 ++
  6.1912 ++/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
  6.1913 ++/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
  6.1914 ++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
  6.1915 ++/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
  6.1916 ++/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
  6.1917 ++/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
  6.1918 ++/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
  6.1919 ++
  6.1920 ++_ASUNAME
  6.1921 ++
  6.1922 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.1923 ++for as_dir in $PATH
  6.1924 ++do
  6.1925 ++  IFS=$as_save_IFS
  6.1926 ++  test -z "$as_dir" && as_dir=.
  6.1927 ++  echo "PATH: $as_dir"
  6.1928 ++done
  6.1929 ++IFS=$as_save_IFS
  6.1930 ++
  6.1931 ++} >&5
  6.1932 ++
  6.1933 ++cat >&5 <<_ACEOF
  6.1934 ++
  6.1935 ++
  6.1936 ++## ----------- ##
  6.1937 ++## Core tests. ##
  6.1938 ++## ----------- ##
  6.1939 ++
  6.1940 ++_ACEOF
  6.1941 ++
  6.1942 ++
  6.1943 ++# Keep a trace of the command line.
  6.1944 ++# Strip out --no-create and --no-recursion so they do not pile up.
  6.1945 ++# Strip out --silent because we don't want to record it for future runs.
  6.1946 ++# Also quote any args containing shell meta-characters.
  6.1947 ++# Make two passes to allow for proper duplicate-argument suppression.
  6.1948 ++ac_configure_args=
  6.1949 ++ac_configure_args0=
  6.1950 ++ac_configure_args1=
  6.1951 ++ac_must_keep_next=false
  6.1952 ++for ac_pass in 1 2
  6.1953 ++do
  6.1954 ++  for ac_arg
  6.1955 ++  do
  6.1956 ++    case $ac_arg in
  6.1957 ++    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
  6.1958 ++    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
  6.1959 ++    | -silent | --silent | --silen | --sile | --sil)
  6.1960 ++      continue ;;
  6.1961 ++    *\'*)
  6.1962 ++      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
  6.1963 ++    esac
  6.1964 ++    case $ac_pass in
  6.1965 ++    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
  6.1966 ++    2)
  6.1967 ++      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
  6.1968 ++      if test $ac_must_keep_next = true; then
  6.1969 ++	ac_must_keep_next=false # Got value, back to normal.
  6.1970 ++      else
  6.1971 ++	case $ac_arg in
  6.1972 ++	  *=* | --config-cache | -C | -disable-* | --disable-* \
  6.1973 ++	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
  6.1974 ++	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
  6.1975 ++	  | -with-* | --with-* | -without-* | --without-* | --x)
  6.1976 ++	    case "$ac_configure_args0 " in
  6.1977 ++	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
  6.1978 ++	    esac
  6.1979 ++	    ;;
  6.1980 ++	  -* ) ac_must_keep_next=true ;;
  6.1981 ++	esac
  6.1982 ++      fi
  6.1983 ++      ac_configure_args="$ac_configure_args '$ac_arg'"
  6.1984 ++      ;;
  6.1985 ++    esac
  6.1986 ++  done
  6.1987 ++done
  6.1988 ++$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
  6.1989 ++$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
  6.1990 ++
  6.1991 ++# When interrupted or exit'd, cleanup temporary files, and complete
  6.1992 ++# config.log.  We remove comments because anyway the quotes in there
  6.1993 ++# would cause problems or look ugly.
  6.1994 ++# WARNING: Use '\'' to represent an apostrophe within the trap.
  6.1995 ++# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
  6.1996 ++trap 'exit_status=$?
  6.1997 ++  # Save into config.log some information that might help in debugging.
  6.1998 ++  {
  6.1999 ++    echo
  6.2000 ++
  6.2001 ++    cat <<\_ASBOX
  6.2002 ++## ---------------- ##
  6.2003 ++## Cache variables. ##
  6.2004 ++## ---------------- ##
  6.2005 ++_ASBOX
  6.2006 ++    echo
  6.2007 ++    # The following way of writing the cache mishandles newlines in values,
  6.2008 ++(
  6.2009 ++  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
  6.2010 ++    eval ac_val=\$$ac_var
  6.2011 ++    case $ac_val in #(
  6.2012 ++    *${as_nl}*)
  6.2013 ++      case $ac_var in #(
  6.2014 ++      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
  6.2015 ++echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
  6.2016 ++      esac
  6.2017 ++      case $ac_var in #(
  6.2018 ++      _ | IFS | as_nl) ;; #(
  6.2019 ++      *) $as_unset $ac_var ;;
  6.2020 ++      esac ;;
  6.2021 ++    esac
  6.2022 ++  done
  6.2023 ++  (set) 2>&1 |
  6.2024 ++    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
  6.2025 ++    *${as_nl}ac_space=\ *)
  6.2026 ++      sed -n \
  6.2027 ++	"s/'\''/'\''\\\\'\'''\''/g;
  6.2028 ++	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
  6.2029 ++      ;; #(
  6.2030 ++    *)
  6.2031 ++      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
  6.2032 ++      ;;
  6.2033 ++    esac |
  6.2034 ++    sort
  6.2035 ++)
  6.2036 ++    echo
  6.2037 ++
  6.2038 ++    cat <<\_ASBOX
  6.2039 ++## ----------------- ##
  6.2040 ++## Output variables. ##
  6.2041 ++## ----------------- ##
  6.2042 ++_ASBOX
  6.2043 ++    echo
  6.2044 ++    for ac_var in $ac_subst_vars
  6.2045 ++    do
  6.2046 ++      eval ac_val=\$$ac_var
  6.2047 ++      case $ac_val in
  6.2048 ++      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
  6.2049 ++      esac
  6.2050 ++      echo "$ac_var='\''$ac_val'\''"
  6.2051 ++    done | sort
  6.2052 ++    echo
  6.2053 ++
  6.2054 ++    if test -n "$ac_subst_files"; then
  6.2055 ++      cat <<\_ASBOX
  6.2056 ++## ------------------- ##
  6.2057 ++## File substitutions. ##
  6.2058 ++## ------------------- ##
  6.2059 ++_ASBOX
  6.2060 ++      echo
  6.2061 ++      for ac_var in $ac_subst_files
  6.2062 ++      do
  6.2063 ++	eval ac_val=\$$ac_var
  6.2064 ++	case $ac_val in
  6.2065 ++	*\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
  6.2066 ++	esac
  6.2067 ++	echo "$ac_var='\''$ac_val'\''"
  6.2068 ++      done | sort
  6.2069 ++      echo
  6.2070 ++    fi
  6.2071 ++
  6.2072 ++    if test -s confdefs.h; then
  6.2073 ++      cat <<\_ASBOX
  6.2074 ++## ----------- ##
  6.2075 ++## confdefs.h. ##
  6.2076 ++## ----------- ##
  6.2077 ++_ASBOX
  6.2078 ++      echo
  6.2079 ++      cat confdefs.h
  6.2080 ++      echo
  6.2081 ++    fi
  6.2082 ++    test "$ac_signal" != 0 &&
  6.2083 ++      echo "$as_me: caught signal $ac_signal"
  6.2084 ++    echo "$as_me: exit $exit_status"
  6.2085 ++  } >&5
  6.2086 ++  rm -f core *.core core.conftest.* &&
  6.2087 ++    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
  6.2088 ++    exit $exit_status
  6.2089 ++' 0
  6.2090 ++for ac_signal in 1 2 13 15; do
  6.2091 ++  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
  6.2092 ++done
  6.2093 ++ac_signal=0
  6.2094 ++
  6.2095 ++# confdefs.h avoids OS command line length limits that DEFS can exceed.
  6.2096 ++rm -f -r conftest* confdefs.h
  6.2097 ++
  6.2098 ++# Predefined preprocessor variables.
  6.2099 ++
  6.2100 ++cat >>confdefs.h <<_ACEOF
  6.2101 ++#define PACKAGE_NAME "$PACKAGE_NAME"
  6.2102 ++_ACEOF
  6.2103 ++
  6.2104 ++
  6.2105 ++cat >>confdefs.h <<_ACEOF
  6.2106 ++#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
  6.2107 ++_ACEOF
  6.2108 ++
  6.2109 ++
  6.2110 ++cat >>confdefs.h <<_ACEOF
  6.2111 ++#define PACKAGE_VERSION "$PACKAGE_VERSION"
  6.2112 ++_ACEOF
  6.2113 ++
  6.2114 ++
  6.2115 ++cat >>confdefs.h <<_ACEOF
  6.2116 ++#define PACKAGE_STRING "$PACKAGE_STRING"
  6.2117 ++_ACEOF
  6.2118 ++
  6.2119 ++
  6.2120 ++cat >>confdefs.h <<_ACEOF
  6.2121 ++#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
  6.2122 ++_ACEOF
  6.2123 ++
  6.2124 ++
  6.2125 ++# Let the site file select an alternate cache file if it wants to.
  6.2126 ++# Prefer explicitly selected file to automatically selected ones.
  6.2127 ++if test -n "$CONFIG_SITE"; then
  6.2128 ++  set x "$CONFIG_SITE"
  6.2129 ++elif test "x$prefix" != xNONE; then
  6.2130 ++  set x "$prefix/share/config.site" "$prefix/etc/config.site"
  6.2131 ++else
  6.2132 ++  set x "$ac_default_prefix/share/config.site" \
  6.2133 ++	"$ac_default_prefix/etc/config.site"
  6.2134 ++fi
  6.2135 ++shift
  6.2136 ++for ac_site_file
  6.2137 ++do
  6.2138 ++  if test -r "$ac_site_file"; then
  6.2139 ++    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
  6.2140 ++echo "$as_me: loading site script $ac_site_file" >&6;}
  6.2141 ++    sed 's/^/| /' "$ac_site_file" >&5
  6.2142 ++    . "$ac_site_file"
  6.2143 ++  fi
  6.2144 ++done
  6.2145 ++
  6.2146 ++if test -r "$cache_file"; then
  6.2147 ++  # Some versions of bash will fail to source /dev/null (special
  6.2148 ++  # files actually), so we avoid doing that.
  6.2149 ++  if test -f "$cache_file"; then
  6.2150 ++    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
  6.2151 ++echo "$as_me: loading cache $cache_file" >&6;}
  6.2152 ++    case $cache_file in
  6.2153 ++      [\\/]* | ?:[\\/]* ) . "$cache_file";;
  6.2154 ++      *)                      . "./$cache_file";;
  6.2155 ++    esac
  6.2156 ++  fi
  6.2157 ++else
  6.2158 ++  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
  6.2159 ++echo "$as_me: creating cache $cache_file" >&6;}
  6.2160 ++  >$cache_file
  6.2161 ++fi
  6.2162 ++
  6.2163 ++# Check that the precious variables saved in the cache have kept the same
  6.2164 ++# value.
  6.2165 ++ac_cache_corrupted=false
  6.2166 ++for ac_var in $ac_precious_vars; do
  6.2167 ++  eval ac_old_set=\$ac_cv_env_${ac_var}_set
  6.2168 ++  eval ac_new_set=\$ac_env_${ac_var}_set
  6.2169 ++  eval ac_old_val=\$ac_cv_env_${ac_var}_value
  6.2170 ++  eval ac_new_val=\$ac_env_${ac_var}_value
  6.2171 ++  case $ac_old_set,$ac_new_set in
  6.2172 ++    set,)
  6.2173 ++      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
  6.2174 ++echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
  6.2175 ++      ac_cache_corrupted=: ;;
  6.2176 ++    ,set)
  6.2177 ++      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
  6.2178 ++echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
  6.2179 ++      ac_cache_corrupted=: ;;
  6.2180 ++    ,);;
  6.2181 ++    *)
  6.2182 ++      if test "x$ac_old_val" != "x$ac_new_val"; then
  6.2183 ++	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
  6.2184 ++echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
  6.2185 ++	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
  6.2186 ++echo "$as_me:   former value:  $ac_old_val" >&2;}
  6.2187 ++	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
  6.2188 ++echo "$as_me:   current value: $ac_new_val" >&2;}
  6.2189 ++	ac_cache_corrupted=:
  6.2190 ++      fi;;
  6.2191 ++  esac
  6.2192 ++  # Pass precious variables to config.status.
  6.2193 ++  if test "$ac_new_set" = set; then
  6.2194 ++    case $ac_new_val in
  6.2195 ++    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
  6.2196 ++    *) ac_arg=$ac_var=$ac_new_val ;;
  6.2197 ++    esac
  6.2198 ++    case " $ac_configure_args " in
  6.2199 ++      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
  6.2200 ++      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
  6.2201 ++    esac
  6.2202 ++  fi
  6.2203 ++done
  6.2204 ++if $ac_cache_corrupted; then
  6.2205 ++  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
  6.2206 ++echo "$as_me: error: changes in the environment can compromise the build" >&2;}
  6.2207 ++  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
  6.2208 ++echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
  6.2209 ++   { (exit 1); exit 1; }; }
  6.2210 ++fi
  6.2211 ++
  6.2212 ++
  6.2213 ++
  6.2214 ++
  6.2215 ++
  6.2216 ++
  6.2217 ++
  6.2218 ++
  6.2219 ++
  6.2220 ++
  6.2221 ++
  6.2222 ++
  6.2223 ++
  6.2224 ++
  6.2225 ++
  6.2226 ++
  6.2227 ++
  6.2228 ++
  6.2229 ++
  6.2230 ++
  6.2231 ++
  6.2232 ++
  6.2233 ++
  6.2234 ++
  6.2235 ++
  6.2236 ++ac_ext=c
  6.2237 ++ac_cpp='$CPP $CPPFLAGS'
  6.2238 ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
  6.2239 ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
  6.2240 ++ac_compiler_gnu=$ac_cv_c_compiler_gnu
  6.2241 ++
  6.2242 ++
  6.2243 ++
  6.2244 ++
  6.2245 ++ac_aux_dir=
  6.2246 ++for ac_dir in ../../../.. "$srcdir"/../../../..; do
  6.2247 ++  if test -f "$ac_dir/install-sh"; then
  6.2248 ++    ac_aux_dir=$ac_dir
  6.2249 ++    ac_install_sh="$ac_aux_dir/install-sh -c"
  6.2250 ++    break
  6.2251 ++  elif test -f "$ac_dir/install.sh"; then
  6.2252 ++    ac_aux_dir=$ac_dir
  6.2253 ++    ac_install_sh="$ac_aux_dir/install.sh -c"
  6.2254 ++    break
  6.2255 ++  elif test -f "$ac_dir/shtool"; then
  6.2256 ++    ac_aux_dir=$ac_dir
  6.2257 ++    ac_install_sh="$ac_aux_dir/shtool install -c"
  6.2258 ++    break
  6.2259 ++  fi
  6.2260 ++done
  6.2261 ++if test -z "$ac_aux_dir"; then
  6.2262 ++  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../../../.. \"$srcdir\"/../../../.." >&5
  6.2263 ++echo "$as_me: error: cannot find install-sh or install.sh in ../../../.. \"$srcdir\"/../../../.." >&2;}
  6.2264 ++   { (exit 1); exit 1; }; }
  6.2265 ++fi
  6.2266 ++
  6.2267 ++# These three variables are undocumented and unsupported,
  6.2268 ++# and are intended to be withdrawn in a future Autoconf release.
  6.2269 ++# They can cause serious problems if a builder's source tree is in a directory
  6.2270 ++# whose full name contains unusual characters.
  6.2271 ++ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
  6.2272 ++ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
  6.2273 ++ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
  6.2274 ++
  6.2275 ++
  6.2276 ++
  6.2277 ++# Make sure we can run config.sub.
  6.2278 ++$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
  6.2279 ++  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
  6.2280 ++echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
  6.2281 ++   { (exit 1); exit 1; }; }
  6.2282 ++
  6.2283 ++{ echo "$as_me:$LINENO: checking build system type" >&5
  6.2284 ++echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
  6.2285 ++if test "${ac_cv_build+set}" = set; then
  6.2286 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
  6.2287 ++else
  6.2288 ++  ac_build_alias=$build_alias
  6.2289 ++test "x$ac_build_alias" = x &&
  6.2290 ++  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
  6.2291 ++test "x$ac_build_alias" = x &&
  6.2292 ++  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
  6.2293 ++echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
  6.2294 ++   { (exit 1); exit 1; }; }
  6.2295 ++ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
  6.2296 ++  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
  6.2297 ++echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
  6.2298 ++   { (exit 1); exit 1; }; }
  6.2299 ++
  6.2300 ++fi
  6.2301 ++{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
  6.2302 ++echo "${ECHO_T}$ac_cv_build" >&6; }
  6.2303 ++case $ac_cv_build in
  6.2304 ++*-*-*) ;;
  6.2305 ++*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
  6.2306 ++echo "$as_me: error: invalid value of canonical build" >&2;}
  6.2307 ++   { (exit 1); exit 1; }; };;
  6.2308 ++esac
  6.2309 ++build=$ac_cv_build
  6.2310 ++ac_save_IFS=$IFS; IFS='-'
  6.2311 ++set x $ac_cv_build
  6.2312 ++shift
  6.2313 ++build_cpu=$1
  6.2314 ++build_vendor=$2
  6.2315 ++shift; shift
  6.2316 ++# Remember, the first character of IFS is used to create $*,
  6.2317 ++# except with old shells:
  6.2318 ++build_os=$*
  6.2319 ++IFS=$ac_save_IFS
  6.2320 ++case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
  6.2321 ++
  6.2322 ++
  6.2323 ++{ echo "$as_me:$LINENO: checking host system type" >&5
  6.2324 ++echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
  6.2325 ++if test "${ac_cv_host+set}" = set; then
  6.2326 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
  6.2327 ++else
  6.2328 ++  if test "x$host_alias" = x; then
  6.2329 ++  ac_cv_host=$ac_cv_build
  6.2330 ++else
  6.2331 ++  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
  6.2332 ++    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
  6.2333 ++echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
  6.2334 ++   { (exit 1); exit 1; }; }
  6.2335 ++fi
  6.2336 ++
  6.2337 ++fi
  6.2338 ++{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
  6.2339 ++echo "${ECHO_T}$ac_cv_host" >&6; }
  6.2340 ++case $ac_cv_host in
  6.2341 ++*-*-*) ;;
  6.2342 ++*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
  6.2343 ++echo "$as_me: error: invalid value of canonical host" >&2;}
  6.2344 ++   { (exit 1); exit 1; }; };;
  6.2345 ++esac
  6.2346 ++host=$ac_cv_host
  6.2347 ++ac_save_IFS=$IFS; IFS='-'
  6.2348 ++set x $ac_cv_host
  6.2349 ++shift
  6.2350 ++host_cpu=$1
  6.2351 ++host_vendor=$2
  6.2352 ++shift; shift
  6.2353 ++# Remember, the first character of IFS is used to create $*,
  6.2354 ++# except with old shells:
  6.2355 ++host_os=$*
  6.2356 ++IFS=$ac_save_IFS
  6.2357 ++case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
  6.2358 ++
  6.2359 ++
  6.2360 ++am__api_version="1.4"
  6.2361 ++# Find a good install program.  We prefer a C program (faster),
  6.2362 ++# so one script is as good as another.  But avoid the broken or
  6.2363 ++# incompatible versions:
  6.2364 ++# SysV /etc/install, /usr/sbin/install
  6.2365 ++# SunOS /usr/etc/install
  6.2366 ++# IRIX /sbin/install
  6.2367 ++# AIX /bin/install
  6.2368 ++# AmigaOS /C/install, which installs bootblocks on floppy discs
  6.2369 ++# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
  6.2370 ++# AFS /usr/afsws/bin/install, which mishandles nonexistent args
  6.2371 ++# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
  6.2372 ++# OS/2's system install, which has a completely different semantic
  6.2373 ++# ./install, which can be erroneously created by make from ./install.sh.
  6.2374 ++{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
  6.2375 ++echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
  6.2376 ++if test -z "$INSTALL"; then
  6.2377 ++if test "${ac_cv_path_install+set}" = set; then
  6.2378 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
  6.2379 ++else
  6.2380 ++  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.2381 ++for as_dir in $PATH
  6.2382 ++do
  6.2383 ++  IFS=$as_save_IFS
  6.2384 ++  test -z "$as_dir" && as_dir=.
  6.2385 ++  # Account for people who put trailing slashes in PATH elements.
  6.2386 ++case $as_dir/ in
  6.2387 ++  ./ | .// | /cC/* | \
  6.2388 ++  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
  6.2389 ++  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
  6.2390 ++  /usr/ucb/* ) ;;
  6.2391 ++  *)
  6.2392 ++    # OSF1 and SCO ODT 3.0 have their own names for install.
  6.2393 ++    # Don't use installbsd from OSF since it installs stuff as root
  6.2394 ++    # by default.
  6.2395 ++    for ac_prog in ginstall scoinst install; do
  6.2396 ++      for ac_exec_ext in '' $ac_executable_extensions; do
  6.2397 ++	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
  6.2398 ++	  if test $ac_prog = install &&
  6.2399 ++	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
  6.2400 ++	    # AIX install.  It has an incompatible calling convention.
  6.2401 ++	    :
  6.2402 ++	  elif test $ac_prog = install &&
  6.2403 ++	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
  6.2404 ++	    # program-specific install script used by HP pwplus--don't use.
  6.2405 ++	    :
  6.2406 ++	  else
  6.2407 ++	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
  6.2408 ++	    break 3
  6.2409 ++	  fi
  6.2410 ++	fi
  6.2411 ++      done
  6.2412 ++    done
  6.2413 ++    ;;
  6.2414 ++esac
  6.2415 ++done
  6.2416 ++IFS=$as_save_IFS
  6.2417 ++
  6.2418 ++
  6.2419 ++fi
  6.2420 ++  if test "${ac_cv_path_install+set}" = set; then
  6.2421 ++    INSTALL=$ac_cv_path_install
  6.2422 ++  else
  6.2423 ++    # As a last resort, use the slow shell script.  Don't cache a
  6.2424 ++    # value for INSTALL within a source directory, because that will
  6.2425 ++    # break other packages using the cache if that directory is
  6.2426 ++    # removed, or if the value is a relative name.
  6.2427 ++    INSTALL=$ac_install_sh
  6.2428 ++  fi
  6.2429 ++fi
  6.2430 ++{ echo "$as_me:$LINENO: result: $INSTALL" >&5
  6.2431 ++echo "${ECHO_T}$INSTALL" >&6; }
  6.2432 ++
  6.2433 ++# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
  6.2434 ++# It thinks the first close brace ends the variable substitution.
  6.2435 ++test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
  6.2436 ++
  6.2437 ++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
  6.2438 ++
  6.2439 ++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
  6.2440 ++
  6.2441 ++{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5
  6.2442 ++echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; }
  6.2443 ++# Just in case
  6.2444 ++sleep 1
  6.2445 ++echo timestamp > conftestfile
  6.2446 ++# Do `set' in a subshell so we don't clobber the current shell's
  6.2447 ++# arguments.  Must try -L first in case configure is actually a
  6.2448 ++# symlink; some systems play weird games with the mod time of symlinks
  6.2449 ++# (eg FreeBSD returns the mod time of the symlink's containing
  6.2450 ++# directory).
  6.2451 ++if (
  6.2452 ++   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
  6.2453 ++   if test "$*" = "X"; then
  6.2454 ++      # -L didn't work.
  6.2455 ++      set X `ls -t $srcdir/configure conftestfile`
  6.2456 ++   fi
  6.2457 ++   if test "$*" != "X $srcdir/configure conftestfile" \
  6.2458 ++      && test "$*" != "X conftestfile $srcdir/configure"; then
  6.2459 ++
  6.2460 ++      # If neither matched, then we have a broken ls.  This can happen
  6.2461 ++      # if, for instance, CONFIG_SHELL is bash and it inherits a
  6.2462 ++      # broken ls alias from the environment.  This has actually
  6.2463 ++      # happened.  Such a system could not be considered "sane".
  6.2464 ++      { { echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
  6.2465 ++alias in your environment" >&5
  6.2466 ++echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
  6.2467 ++alias in your environment" >&2;}
  6.2468 ++   { (exit 1); exit 1; }; }
  6.2469 ++   fi
  6.2470 ++
  6.2471 ++   test "$2" = conftestfile
  6.2472 ++   )
  6.2473 ++then
  6.2474 ++   # Ok.
  6.2475 ++   :
  6.2476 ++else
  6.2477 ++   { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
  6.2478 ++Check your system clock" >&5
  6.2479 ++echo "$as_me: error: newly created file is older than distributed files!
  6.2480 ++Check your system clock" >&2;}
  6.2481 ++   { (exit 1); exit 1; }; }
  6.2482 ++fi
  6.2483 ++rm -f conftest*
  6.2484 ++{ echo "$as_me:$LINENO: result: yes" >&5
  6.2485 ++echo "${ECHO_T}yes" >&6; }
  6.2486 ++test "$program_prefix" != NONE &&
  6.2487 ++  program_transform_name="s&^&$program_prefix&;$program_transform_name"
  6.2488 ++# Use a double $ so make ignores it.
  6.2489 ++test "$program_suffix" != NONE &&
  6.2490 ++  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
  6.2491 ++# Double any \ or $.  echo might interpret backslashes.
  6.2492 ++# By default was `s,x,x', remove it if useless.
  6.2493 ++cat <<\_ACEOF >conftest.sed
  6.2494 ++s/[\\$]/&&/g;s/;s,x,x,$//
  6.2495 ++_ACEOF
  6.2496 ++program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
  6.2497 ++rm -f conftest.sed
  6.2498 ++
  6.2499 ++{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
  6.2500 ++echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
  6.2501 ++set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
  6.2502 ++if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
  6.2503 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
  6.2504 ++else
  6.2505 ++  cat >conftest.make <<\_ACEOF
  6.2506 ++SHELL = /bin/sh
  6.2507 ++all:
  6.2508 ++	@echo '@@@%%%=$(MAKE)=@@@%%%'
  6.2509 ++_ACEOF
  6.2510 ++# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
  6.2511 ++case `${MAKE-make} -f conftest.make 2>/dev/null` in
  6.2512 ++  *@@@%%%=?*=@@@%%%*)
  6.2513 ++    eval ac_cv_prog_make_${ac_make}_set=yes;;
  6.2514 ++  *)
  6.2515 ++    eval ac_cv_prog_make_${ac_make}_set=no;;
  6.2516 ++esac
  6.2517 ++rm -f conftest.make
  6.2518 ++fi
  6.2519 ++if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
  6.2520 ++  { echo "$as_me:$LINENO: result: yes" >&5
  6.2521 ++echo "${ECHO_T}yes" >&6; }
  6.2522 ++  SET_MAKE=
  6.2523 ++else
  6.2524 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.2525 ++echo "${ECHO_T}no" >&6; }
  6.2526 ++  SET_MAKE="MAKE=${MAKE-make}"
  6.2527 ++fi
  6.2528 ++
  6.2529 ++
  6.2530 ++# Check whether --enable-multilib was given.
  6.2531 ++if test "${enable_multilib+set}" = set; then
  6.2532 ++  enableval=$enable_multilib; case "${enableval}" in
  6.2533 ++  yes) multilib=yes ;;
  6.2534 ++  no)  multilib=no ;;
  6.2535 ++  *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for multilib option" >&5
  6.2536 ++echo "$as_me: error: bad value ${enableval} for multilib option" >&2;}
  6.2537 ++   { (exit 1); exit 1; }; } ;;
  6.2538 ++ esac
  6.2539 ++else
  6.2540 ++  multilib=yes
  6.2541 ++fi
  6.2542 ++
  6.2543 ++# Check whether --enable-target-optspace was given.
  6.2544 ++if test "${enable_target_optspace+set}" = set; then
  6.2545 ++  enableval=$enable_target_optspace; case "${enableval}" in
  6.2546 ++  yes) target_optspace=yes ;;
  6.2547 ++  no)  target_optspace=no ;;
  6.2548 ++  *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for target-optspace option" >&5
  6.2549 ++echo "$as_me: error: bad value ${enableval} for target-optspace option" >&2;}
  6.2550 ++   { (exit 1); exit 1; }; } ;;
  6.2551 ++ esac
  6.2552 ++else
  6.2553 ++  target_optspace=
  6.2554 ++fi
  6.2555 ++
  6.2556 ++# Check whether --enable-malloc-debugging was given.
  6.2557 ++if test "${enable_malloc_debugging+set}" = set; then
  6.2558 ++  enableval=$enable_malloc_debugging; case "${enableval}" in
  6.2559 ++  yes) malloc_debugging=yes ;;
  6.2560 ++  no)  malloc_debugging=no ;;
  6.2561 ++  *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for malloc-debugging option" >&5
  6.2562 ++echo "$as_me: error: bad value ${enableval} for malloc-debugging option" >&2;}
  6.2563 ++   { (exit 1); exit 1; }; } ;;
  6.2564 ++ esac
  6.2565 ++else
  6.2566 ++  malloc_debugging=
  6.2567 ++fi
  6.2568 ++
  6.2569 ++# Check whether --enable-newlib-mb was given.
  6.2570 ++if test "${enable_newlib_mb+set}" = set; then
  6.2571 ++  enableval=$enable_newlib_mb; case "${enableval}" in
  6.2572 ++  yes) newlib_mb=yes ;;
  6.2573 ++  no)  newlib_mb=no ;;
  6.2574 ++  *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-mb option" >&5
  6.2575 ++echo "$as_me: error: bad value ${enableval} for newlib-mb option" >&2;}
  6.2576 ++   { (exit 1); exit 1; }; } ;;
  6.2577 ++ esac
  6.2578 ++else
  6.2579 ++  newlib_mb=
  6.2580 ++fi
  6.2581 ++
  6.2582 ++# Check whether --enable-newlib-iconv was given.
  6.2583 ++if test "${enable_newlib_iconv+set}" = set; then
  6.2584 ++  enableval=$enable_newlib_iconv; case "${enableval}" in
  6.2585 ++  yes) newlib_iconv=yes ;;
  6.2586 ++  no)  newlib_iconv=no ;;
  6.2587 ++  *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-iconv option" >&5
  6.2588 ++echo "$as_me: error: bad value ${enableval} for newlib-iconv option" >&2;}
  6.2589 ++   { (exit 1); exit 1; }; } ;;
  6.2590 ++ esac
  6.2591 ++else
  6.2592 ++  newlib_iconv=
  6.2593 ++fi
  6.2594 ++
  6.2595 ++# Check whether --enable-newlib-builtin-converters was given.
  6.2596 ++if test "${enable_newlib_builtin_converters+set}" = set; then
  6.2597 ++  enableval=$enable_newlib_builtin_converters; if test x${enableval} = x; then
  6.2598 ++   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-builtin-converters option - use comma-separated list" >&5
  6.2599 ++echo "$as_me: error: bad value ${enableval} for newlib-builtin-converters option - use comma-separated list" >&2;}
  6.2600 ++   { (exit 1); exit 1; }; }
  6.2601 ++ fi
  6.2602 ++ builtin_converters=${enableval}
  6.2603 ++
  6.2604 ++else
  6.2605 ++  builtin_converters=
  6.2606 ++fi
  6.2607 ++
  6.2608 ++# Check whether --enable-newlib-multithread was given.
  6.2609 ++if test "${enable_newlib_multithread+set}" = set; then
  6.2610 ++  enableval=$enable_newlib_multithread; case "${enableval}" in
  6.2611 ++  yes) newlib_multithread=yes ;;
  6.2612 ++  no)  newlib_multithread=no ;;
  6.2613 ++  *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-multithread option" >&5
  6.2614 ++echo "$as_me: error: bad value ${enableval} for newlib-multithread option" >&2;}
  6.2615 ++   { (exit 1); exit 1; }; } ;;
  6.2616 ++ esac
  6.2617 ++else
  6.2618 ++  newlib_multithread=yes
  6.2619 ++fi
  6.2620 ++
  6.2621 ++# Check whether --enable-newlib-elix-level was given.
  6.2622 ++if test "${enable_newlib_elix_level+set}" = set; then
  6.2623 ++  enableval=$enable_newlib_elix_level; case "${enableval}" in
  6.2624 ++  0)   newlib_elix_level=0 ;;
  6.2625 ++  1)   newlib_elix_level=1 ;;
  6.2626 ++  2)   newlib_elix_level=2 ;;
  6.2627 ++  3)   newlib_elix_level=3 ;;
  6.2628 ++  4)   newlib_elix_level=4 ;;
  6.2629 ++  *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-elix-level option" >&5
  6.2630 ++echo "$as_me: error: bad value ${enableval} for newlib-elix-level option" >&2;}
  6.2631 ++   { (exit 1); exit 1; }; } ;;
  6.2632 ++ esac
  6.2633 ++else
  6.2634 ++  newlib_elix_level=0
  6.2635 ++fi
  6.2636 ++
  6.2637 ++# Check whether --enable-newlib-io-float was given.
  6.2638 ++if test "${enable_newlib_io_float+set}" = set; then
  6.2639 ++  enableval=$enable_newlib_io_float; case "${enableval}" in
  6.2640 ++  yes) newlib_io_float=yes ;;
  6.2641 ++  no)  newlib_io_float=no ;;
  6.2642 ++  *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-io-float option" >&5
  6.2643 ++echo "$as_me: error: bad value ${enableval} for newlib-io-float option" >&2;}
  6.2644 ++   { (exit 1); exit 1; }; } ;;
  6.2645 ++ esac
  6.2646 ++else
  6.2647 ++  newlib_io_float=yes
  6.2648 ++fi
  6.2649 ++
  6.2650 ++# Check whether --enable-newlib-supplied-syscalls was given.
  6.2651 ++if test "${enable_newlib_supplied_syscalls+set}" = set; then
  6.2652 ++  enableval=$enable_newlib_supplied_syscalls; case "${enableval}" in
  6.2653 ++  yes) newlib_may_supply_syscalls=yes ;;
  6.2654 ++  no)  newlib_may_supply_syscalls=no ;;
  6.2655 ++  *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-supplied-syscalls option" >&5
  6.2656 ++echo "$as_me: error: bad value ${enableval} for newlib-supplied-syscalls option" >&2;}
  6.2657 ++   { (exit 1); exit 1; }; } ;;
  6.2658 ++ esac
  6.2659 ++else
  6.2660 ++  newlib_may_supply_syscalls=yes
  6.2661 ++fi
  6.2662 ++
  6.2663 ++
  6.2664 ++
  6.2665 ++if test x${newlib_may_supply_syscalls} = xyes; then
  6.2666 ++  MAY_SUPPLY_SYSCALLS_TRUE=
  6.2667 ++  MAY_SUPPLY_SYSCALLS_FALSE='#'
  6.2668 ++else
  6.2669 ++  MAY_SUPPLY_SYSCALLS_TRUE='#'
  6.2670 ++  MAY_SUPPLY_SYSCALLS_FALSE=
  6.2671 ++fi
  6.2672 ++
  6.2673 ++
  6.2674 ++test -z "${with_target_subdir}" && with_target_subdir=.
  6.2675 ++
  6.2676 ++if test "${srcdir}" = "."; then
  6.2677 ++  if test "${with_target_subdir}" != "."; then
  6.2678 ++    newlib_basedir="${srcdir}/${with_multisrctop}../../../.."
  6.2679 ++  else
  6.2680 ++    newlib_basedir="${srcdir}/${with_multisrctop}../../.."
  6.2681 ++  fi
  6.2682 ++else
  6.2683 ++  newlib_basedir="${srcdir}/../../.."
  6.2684 ++fi
  6.2685 ++
  6.2686 ++
  6.2687 ++{ echo "$as_me:$LINENO: checking target system type" >&5
  6.2688 ++echo $ECHO_N "checking target system type... $ECHO_C" >&6; }
  6.2689 ++if test "${ac_cv_target+set}" = set; then
  6.2690 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
  6.2691 ++else
  6.2692 ++  if test "x$target_alias" = x; then
  6.2693 ++  ac_cv_target=$ac_cv_host
  6.2694 ++else
  6.2695 ++  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
  6.2696 ++    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5
  6.2697 ++echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;}
  6.2698 ++   { (exit 1); exit 1; }; }
  6.2699 ++fi
  6.2700 ++
  6.2701 ++fi
  6.2702 ++{ echo "$as_me:$LINENO: result: $ac_cv_target" >&5
  6.2703 ++echo "${ECHO_T}$ac_cv_target" >&6; }
  6.2704 ++case $ac_cv_target in
  6.2705 ++*-*-*) ;;
  6.2706 ++*) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5
  6.2707 ++echo "$as_me: error: invalid value of canonical target" >&2;}
  6.2708 ++   { (exit 1); exit 1; }; };;
  6.2709 ++esac
  6.2710 ++target=$ac_cv_target
  6.2711 ++ac_save_IFS=$IFS; IFS='-'
  6.2712 ++set x $ac_cv_target
  6.2713 ++shift
  6.2714 ++target_cpu=$1
  6.2715 ++target_vendor=$2
  6.2716 ++shift; shift
  6.2717 ++# Remember, the first character of IFS is used to create $*,
  6.2718 ++# except with old shells:
  6.2719 ++target_os=$*
  6.2720 ++IFS=$ac_save_IFS
  6.2721 ++case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
  6.2722 ++
  6.2723 ++
  6.2724 ++# The aliases save the names the user supplied, while $host etc.
  6.2725 ++# will get canonicalized.
  6.2726 ++test -n "$target_alias" &&
  6.2727 ++  test "$program_prefix$program_suffix$program_transform_name" = \
  6.2728 ++    NONENONEs,x,x, &&
  6.2729 ++  program_prefix=${target_alias}-
  6.2730 ++
  6.2731 ++
  6.2732 ++PACKAGE=newlib
  6.2733 ++
  6.2734 ++VERSION=1.12.0
  6.2735 ++
  6.2736 ++if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
  6.2737 ++  { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
  6.2738 ++echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
  6.2739 ++   { (exit 1); exit 1; }; }
  6.2740 ++fi
  6.2741 ++
  6.2742 ++cat >>confdefs.h <<_ACEOF
  6.2743 ++#define PACKAGE "$PACKAGE"
  6.2744 ++_ACEOF
  6.2745 ++
  6.2746 ++
  6.2747 ++cat >>confdefs.h <<_ACEOF
  6.2748 ++#define VERSION "$VERSION"
  6.2749 ++_ACEOF
  6.2750 ++
  6.2751 ++
  6.2752 ++
  6.2753 ++missing_dir=`cd $ac_aux_dir && pwd`
  6.2754 ++{ echo "$as_me:$LINENO: checking for working aclocal-${am__api_version}" >&5
  6.2755 ++echo $ECHO_N "checking for working aclocal-${am__api_version}... $ECHO_C" >&6; }
  6.2756 ++# Run test in a subshell; some versions of sh will print an error if
  6.2757 ++# an executable is not found, even if stderr is redirected.
  6.2758 ++# Redirect stdin to placate older versions of autoconf.  Sigh.
  6.2759 ++if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then
  6.2760 ++   ACLOCAL=aclocal-${am__api_version}
  6.2761 ++   { echo "$as_me:$LINENO: result: found" >&5
  6.2762 ++echo "${ECHO_T}found" >&6; }
  6.2763 ++else
  6.2764 ++   ACLOCAL="$missing_dir/missing aclocal-${am__api_version}"
  6.2765 ++   { echo "$as_me:$LINENO: result: missing" >&5
  6.2766 ++echo "${ECHO_T}missing" >&6; }
  6.2767 ++fi
  6.2768 ++
  6.2769 ++{ echo "$as_me:$LINENO: checking for working autoconf" >&5
  6.2770 ++echo $ECHO_N "checking for working autoconf... $ECHO_C" >&6; }
  6.2771 ++# Run test in a subshell; some versions of sh will print an error if
  6.2772 ++# an executable is not found, even if stderr is redirected.
  6.2773 ++# Redirect stdin to placate older versions of autoconf.  Sigh.
  6.2774 ++if (autoconf --version) < /dev/null > /dev/null 2>&1; then
  6.2775 ++   AUTOCONF=autoconf
  6.2776 ++   { echo "$as_me:$LINENO: result: found" >&5
  6.2777 ++echo "${ECHO_T}found" >&6; }
  6.2778 ++else
  6.2779 ++   AUTOCONF="$missing_dir/missing autoconf"
  6.2780 ++   { echo "$as_me:$LINENO: result: missing" >&5
  6.2781 ++echo "${ECHO_T}missing" >&6; }
  6.2782 ++fi
  6.2783 ++
  6.2784 ++{ echo "$as_me:$LINENO: checking for working automake-${am__api_version}" >&5
  6.2785 ++echo $ECHO_N "checking for working automake-${am__api_version}... $ECHO_C" >&6; }
  6.2786 ++# Run test in a subshell; some versions of sh will print an error if
  6.2787 ++# an executable is not found, even if stderr is redirected.
  6.2788 ++# Redirect stdin to placate older versions of autoconf.  Sigh.
  6.2789 ++if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then
  6.2790 ++   AUTOMAKE=automake-${am__api_version}
  6.2791 ++   { echo "$as_me:$LINENO: result: found" >&5
  6.2792 ++echo "${ECHO_T}found" >&6; }
  6.2793 ++else
  6.2794 ++   AUTOMAKE="$missing_dir/missing automake-${am__api_version}"
  6.2795 ++   { echo "$as_me:$LINENO: result: missing" >&5
  6.2796 ++echo "${ECHO_T}missing" >&6; }
  6.2797 ++fi
  6.2798 ++
  6.2799 ++{ echo "$as_me:$LINENO: checking for working autoheader" >&5
  6.2800 ++echo $ECHO_N "checking for working autoheader... $ECHO_C" >&6; }
  6.2801 ++# Run test in a subshell; some versions of sh will print an error if
  6.2802 ++# an executable is not found, even if stderr is redirected.
  6.2803 ++# Redirect stdin to placate older versions of autoconf.  Sigh.
  6.2804 ++if (autoheader --version) < /dev/null > /dev/null 2>&1; then
  6.2805 ++   AUTOHEADER=autoheader
  6.2806 ++   { echo "$as_me:$LINENO: result: found" >&5
  6.2807 ++echo "${ECHO_T}found" >&6; }
  6.2808 ++else
  6.2809 ++   AUTOHEADER="$missing_dir/missing autoheader"
  6.2810 ++   { echo "$as_me:$LINENO: result: missing" >&5
  6.2811 ++echo "${ECHO_T}missing" >&6; }
  6.2812 ++fi
  6.2813 ++
  6.2814 ++{ echo "$as_me:$LINENO: checking for working makeinfo" >&5
  6.2815 ++echo $ECHO_N "checking for working makeinfo... $ECHO_C" >&6; }
  6.2816 ++# Run test in a subshell; some versions of sh will print an error if
  6.2817 ++# an executable is not found, even if stderr is redirected.
  6.2818 ++# Redirect stdin to placate older versions of autoconf.  Sigh.
  6.2819 ++if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
  6.2820 ++   MAKEINFO=makeinfo
  6.2821 ++   { echo "$as_me:$LINENO: result: found" >&5
  6.2822 ++echo "${ECHO_T}found" >&6; }
  6.2823 ++else
  6.2824 ++   MAKEINFO="$missing_dir/missing makeinfo"
  6.2825 ++   { echo "$as_me:$LINENO: result: missing" >&5
  6.2826 ++echo "${ECHO_T}missing" >&6; }
  6.2827 ++fi
  6.2828 ++
  6.2829 ++
  6.2830 ++
  6.2831 ++# FIXME: We temporarily define our own version of AC_PROG_CC.  This is
  6.2832 ++# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS.  We
  6.2833 ++# are probably using a cross compiler, which will not be able to fully
  6.2834 ++# link an executable.  This should really be fixed in autoconf
  6.2835 ++# itself.
  6.2836 ++
  6.2837 ++
  6.2838 ++
  6.2839 ++# Extract the first word of "gcc", so it can be a program name with args.
  6.2840 ++set dummy gcc; ac_word=$2
  6.2841 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.2842 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.2843 ++if test "${ac_cv_prog_CC+set}" = set; then
  6.2844 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
  6.2845 ++else
  6.2846 ++  if test -n "$CC"; then
  6.2847 ++  ac_cv_prog_CC="$CC" # Let the user override the test.
  6.2848 ++else
  6.2849 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.2850 ++for as_dir in $PATH
  6.2851 ++do
  6.2852 ++  IFS=$as_save_IFS
  6.2853 ++  test -z "$as_dir" && as_dir=.
  6.2854 ++  for ac_exec_ext in '' $ac_executable_extensions; do
  6.2855 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.2856 ++    ac_cv_prog_CC="gcc"
  6.2857 ++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.2858 ++    break 2
  6.2859 ++  fi
  6.2860 ++done
  6.2861 ++done
  6.2862 ++IFS=$as_save_IFS
  6.2863 ++
  6.2864 ++fi
  6.2865 ++fi
  6.2866 ++CC=$ac_cv_prog_CC
  6.2867 ++if test -n "$CC"; then
  6.2868 ++  { echo "$as_me:$LINENO: result: $CC" >&5
  6.2869 ++echo "${ECHO_T}$CC" >&6; }
  6.2870 ++else
  6.2871 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.2872 ++echo "${ECHO_T}no" >&6; }
  6.2873 ++fi
  6.2874 ++
  6.2875 ++
  6.2876 ++if test -z "$CC"; then
  6.2877 ++  # Extract the first word of "cc", so it can be a program name with args.
  6.2878 ++set dummy cc; ac_word=$2
  6.2879 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.2880 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.2881 ++if test "${ac_cv_prog_CC+set}" = set; then
  6.2882 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
  6.2883 ++else
  6.2884 ++  if test -n "$CC"; then
  6.2885 ++  ac_cv_prog_CC="$CC" # Let the user override the test.
  6.2886 ++else
  6.2887 ++  ac_prog_rejected=no
  6.2888 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.2889 ++for as_dir in $PATH
  6.2890 ++do
  6.2891 ++  IFS=$as_save_IFS
  6.2892 ++  test -z "$as_dir" && as_dir=.
  6.2893 ++  for ac_exec_ext in '' $ac_executable_extensions; do
  6.2894 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.2895 ++    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
  6.2896 ++       ac_prog_rejected=yes
  6.2897 ++       continue
  6.2898 ++     fi
  6.2899 ++    ac_cv_prog_CC="cc"
  6.2900 ++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.2901 ++    break 2
  6.2902 ++  fi
  6.2903 ++done
  6.2904 ++done
  6.2905 ++IFS=$as_save_IFS
  6.2906 ++
  6.2907 ++if test $ac_prog_rejected = yes; then
  6.2908 ++  # We found a bogon in the path, so make sure we never use it.
  6.2909 ++  set dummy $ac_cv_prog_CC
  6.2910 ++  shift
  6.2911 ++  if test $# != 0; then
  6.2912 ++    # We chose a different compiler from the bogus one.
  6.2913 ++    # However, it has the same basename, so the bogon will be chosen
  6.2914 ++    # first if we set CC to just the basename; use the full file name.
  6.2915 ++    shift
  6.2916 ++    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
  6.2917 ++  fi
  6.2918 ++fi
  6.2919 ++fi
  6.2920 ++fi
  6.2921 ++CC=$ac_cv_prog_CC
  6.2922 ++if test -n "$CC"; then
  6.2923 ++  { echo "$as_me:$LINENO: result: $CC" >&5
  6.2924 ++echo "${ECHO_T}$CC" >&6; }
  6.2925 ++else
  6.2926 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.2927 ++echo "${ECHO_T}no" >&6; }
  6.2928 ++fi
  6.2929 ++
  6.2930 ++
  6.2931 ++  test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable cc found in \$PATH" >&5
  6.2932 ++echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
  6.2933 ++   { (exit 1); exit 1; }; }
  6.2934 ++fi
  6.2935 ++
  6.2936 ++#AC_PROG_CC_GNU
  6.2937 ++
  6.2938 ++if test $ac_cv_c_compiler_gnu = yes; then
  6.2939 ++  GCC=yes
  6.2940 ++  ac_test_CFLAGS="${CFLAGS+set}"
  6.2941 ++  ac_save_CFLAGS="$CFLAGS"
  6.2942 ++  CFLAGS=
  6.2943 ++#  AC_PROG_CC_G
  6.2944 ++  if test "$ac_test_CFLAGS" = set; then
  6.2945 ++    CFLAGS="$ac_save_CFLAGS"
  6.2946 ++  elif test $ac_cv_prog_cc_g = yes; then
  6.2947 ++    CFLAGS="-g -O2"
  6.2948 ++  else
  6.2949 ++    CFLAGS="-O2"
  6.2950 ++  fi
  6.2951 ++else
  6.2952 ++  GCC=
  6.2953 ++  test "${CFLAGS+set}" = set || CFLAGS="-g"
  6.2954 ++fi
  6.2955 ++
  6.2956 ++
  6.2957 ++if test -n "$ac_tool_prefix"; then
  6.2958 ++  # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
  6.2959 ++set dummy ${ac_tool_prefix}as; ac_word=$2
  6.2960 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.2961 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.2962 ++if test "${ac_cv_prog_AS+set}" = set; then
  6.2963 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
  6.2964 ++else
  6.2965 ++  if test -n "$AS"; then
  6.2966 ++  ac_cv_prog_AS="$AS" # Let the user override the test.
  6.2967 ++else
  6.2968 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.2969 ++for as_dir in $PATH
  6.2970 ++do
  6.2971 ++  IFS=$as_save_IFS
  6.2972 ++  test -z "$as_dir" && as_dir=.
  6.2973 ++  for ac_exec_ext in '' $ac_executable_extensions; do
  6.2974 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.2975 ++    ac_cv_prog_AS="${ac_tool_prefix}as"
  6.2976 ++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.2977 ++    break 2
  6.2978 ++  fi
  6.2979 ++done
  6.2980 ++done
  6.2981 ++IFS=$as_save_IFS
  6.2982 ++
  6.2983 ++fi
  6.2984 ++fi
  6.2985 ++AS=$ac_cv_prog_AS
  6.2986 ++if test -n "$AS"; then
  6.2987 ++  { echo "$as_me:$LINENO: result: $AS" >&5
  6.2988 ++echo "${ECHO_T}$AS" >&6; }
  6.2989 ++else
  6.2990 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.2991 ++echo "${ECHO_T}no" >&6; }
  6.2992 ++fi
  6.2993 ++
  6.2994 ++
  6.2995 ++fi
  6.2996 ++if test -z "$ac_cv_prog_AS"; then
  6.2997 ++  ac_ct_AS=$AS
  6.2998 ++  # Extract the first word of "as", so it can be a program name with args.
  6.2999 ++set dummy as; ac_word=$2
  6.3000 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.3001 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.3002 ++if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
  6.3003 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
  6.3004 ++else
  6.3005 ++  if test -n "$ac_ct_AS"; then
  6.3006 ++  ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
  6.3007 ++else
  6.3008 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.3009 ++for as_dir in $PATH
  6.3010 ++do
  6.3011 ++  IFS=$as_save_IFS
  6.3012 ++  test -z "$as_dir" && as_dir=.
  6.3013 ++  for ac_exec_ext in '' $ac_executable_extensions; do
  6.3014 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.3015 ++    ac_cv_prog_ac_ct_AS="as"
  6.3016 ++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.3017 ++    break 2
  6.3018 ++  fi
  6.3019 ++done
  6.3020 ++done
  6.3021 ++IFS=$as_save_IFS
  6.3022 ++
  6.3023 ++fi
  6.3024 ++fi
  6.3025 ++ac_ct_AS=$ac_cv_prog_ac_ct_AS
  6.3026 ++if test -n "$ac_ct_AS"; then
  6.3027 ++  { echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
  6.3028 ++echo "${ECHO_T}$ac_ct_AS" >&6; }
  6.3029 ++else
  6.3030 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.3031 ++echo "${ECHO_T}no" >&6; }
  6.3032 ++fi
  6.3033 ++
  6.3034 ++  if test "x$ac_ct_AS" = x; then
  6.3035 ++    AS=""
  6.3036 ++  else
  6.3037 ++    case $cross_compiling:$ac_tool_warned in
  6.3038 ++yes:)
  6.3039 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
  6.3040 ++whose name does not start with the host triplet.  If you think this
  6.3041 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
  6.3042 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
  6.3043 ++whose name does not start with the host triplet.  If you think this
  6.3044 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
  6.3045 ++ac_tool_warned=yes ;;
  6.3046 ++esac
  6.3047 ++    AS=$ac_ct_AS
  6.3048 ++  fi
  6.3049 ++else
  6.3050 ++  AS="$ac_cv_prog_AS"
  6.3051 ++fi
  6.3052 ++
  6.3053 ++if test -n "$ac_tool_prefix"; then
  6.3054 ++  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  6.3055 ++set dummy ${ac_tool_prefix}ar; ac_word=$2
  6.3056 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.3057 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.3058 ++if test "${ac_cv_prog_AR+set}" = set; then
  6.3059 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
  6.3060 ++else
  6.3061 ++  if test -n "$AR"; then
  6.3062 ++  ac_cv_prog_AR="$AR" # Let the user override the test.
  6.3063 ++else
  6.3064 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.3065 ++for as_dir in $PATH
  6.3066 ++do
  6.3067 ++  IFS=$as_save_IFS
  6.3068 ++  test -z "$as_dir" && as_dir=.
  6.3069 ++  for ac_exec_ext in '' $ac_executable_extensions; do
  6.3070 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.3071 ++    ac_cv_prog_AR="${ac_tool_prefix}ar"
  6.3072 ++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.3073 ++    break 2
  6.3074 ++  fi
  6.3075 ++done
  6.3076 ++done
  6.3077 ++IFS=$as_save_IFS
  6.3078 ++
  6.3079 ++fi
  6.3080 ++fi
  6.3081 ++AR=$ac_cv_prog_AR
  6.3082 ++if test -n "$AR"; then
  6.3083 ++  { echo "$as_me:$LINENO: result: $AR" >&5
  6.3084 ++echo "${ECHO_T}$AR" >&6; }
  6.3085 ++else
  6.3086 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.3087 ++echo "${ECHO_T}no" >&6; }
  6.3088 ++fi
  6.3089 ++
  6.3090 ++
  6.3091 ++fi
  6.3092 ++if test -z "$ac_cv_prog_AR"; then
  6.3093 ++  ac_ct_AR=$AR
  6.3094 ++  # Extract the first word of "ar", so it can be a program name with args.
  6.3095 ++set dummy ar; ac_word=$2
  6.3096 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.3097 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.3098 ++if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
  6.3099 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
  6.3100 ++else
  6.3101 ++  if test -n "$ac_ct_AR"; then
  6.3102 ++  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
  6.3103 ++else
  6.3104 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.3105 ++for as_dir in $PATH
  6.3106 ++do
  6.3107 ++  IFS=$as_save_IFS
  6.3108 ++  test -z "$as_dir" && as_dir=.
  6.3109 ++  for ac_exec_ext in '' $ac_executable_extensions; do
  6.3110 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.3111 ++    ac_cv_prog_ac_ct_AR="ar"
  6.3112 ++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.3113 ++    break 2
  6.3114 ++  fi
  6.3115 ++done
  6.3116 ++done
  6.3117 ++IFS=$as_save_IFS
  6.3118 ++
  6.3119 ++fi
  6.3120 ++fi
  6.3121 ++ac_ct_AR=$ac_cv_prog_ac_ct_AR
  6.3122 ++if test -n "$ac_ct_AR"; then
  6.3123 ++  { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
  6.3124 ++echo "${ECHO_T}$ac_ct_AR" >&6; }
  6.3125 ++else
  6.3126 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.3127 ++echo "${ECHO_T}no" >&6; }
  6.3128 ++fi
  6.3129 ++
  6.3130 ++  if test "x$ac_ct_AR" = x; then
  6.3131 ++    AR=""
  6.3132 ++  else
  6.3133 ++    case $cross_compiling:$ac_tool_warned in
  6.3134 ++yes:)
  6.3135 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
  6.3136 ++whose name does not start with the host triplet.  If you think this
  6.3137 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
  6.3138 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
  6.3139 ++whose name does not start with the host triplet.  If you think this
  6.3140 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
  6.3141 ++ac_tool_warned=yes ;;
  6.3142 ++esac
  6.3143 ++    AR=$ac_ct_AR
  6.3144 ++  fi
  6.3145 ++else
  6.3146 ++  AR="$ac_cv_prog_AR"
  6.3147 ++fi
  6.3148 ++
  6.3149 ++if test -n "$ac_tool_prefix"; then
  6.3150 ++  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
  6.3151 ++set dummy ${ac_tool_prefix}ranlib; ac_word=$2
  6.3152 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.3153 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.3154 ++if test "${ac_cv_prog_RANLIB+set}" = set; then
  6.3155 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
  6.3156 ++else
  6.3157 ++  if test -n "$RANLIB"; then
  6.3158 ++  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
  6.3159 ++else
  6.3160 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.3161 ++for as_dir in $PATH
  6.3162 ++do
  6.3163 ++  IFS=$as_save_IFS
  6.3164 ++  test -z "$as_dir" && as_dir=.
  6.3165 ++  for ac_exec_ext in '' $ac_executable_extensions; do
  6.3166 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.3167 ++    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
  6.3168 ++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.3169 ++    break 2
  6.3170 ++  fi
  6.3171 ++done
  6.3172 ++done
  6.3173 ++IFS=$as_save_IFS
  6.3174 ++
  6.3175 ++fi
  6.3176 ++fi
  6.3177 ++RANLIB=$ac_cv_prog_RANLIB
  6.3178 ++if test -n "$RANLIB"; then
  6.3179 ++  { echo "$as_me:$LINENO: result: $RANLIB" >&5
  6.3180 ++echo "${ECHO_T}$RANLIB" >&6; }
  6.3181 ++else
  6.3182 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.3183 ++echo "${ECHO_T}no" >&6; }
  6.3184 ++fi
  6.3185 ++
  6.3186 ++
  6.3187 ++fi
  6.3188 ++if test -z "$ac_cv_prog_RANLIB"; then
  6.3189 ++  ac_ct_RANLIB=$RANLIB
  6.3190 ++  # Extract the first word of "ranlib", so it can be a program name with args.
  6.3191 ++set dummy ranlib; ac_word=$2
  6.3192 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.3193 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.3194 ++if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
  6.3195 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
  6.3196 ++else
  6.3197 ++  if test -n "$ac_ct_RANLIB"; then
  6.3198 ++  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
  6.3199 ++else
  6.3200 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.3201 ++for as_dir in $PATH
  6.3202 ++do
  6.3203 ++  IFS=$as_save_IFS
  6.3204 ++  test -z "$as_dir" && as_dir=.
  6.3205 ++  for ac_exec_ext in '' $ac_executable_extensions; do
  6.3206 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.3207 ++    ac_cv_prog_ac_ct_RANLIB="ranlib"
  6.3208 ++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.3209 ++    break 2
  6.3210 ++  fi
  6.3211 ++done
  6.3212 ++done
  6.3213 ++IFS=$as_save_IFS
  6.3214 ++
  6.3215 ++fi
  6.3216 ++fi
  6.3217 ++ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
  6.3218 ++if test -n "$ac_ct_RANLIB"; then
  6.3219 ++  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
  6.3220 ++echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
  6.3221 ++else
  6.3222 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.3223 ++echo "${ECHO_T}no" >&6; }
  6.3224 ++fi
  6.3225 ++
  6.3226 ++  if test "x$ac_ct_RANLIB" = x; then
  6.3227 ++    RANLIB=":"
  6.3228 ++  else
  6.3229 ++    case $cross_compiling:$ac_tool_warned in
  6.3230 ++yes:)
  6.3231 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
  6.3232 ++whose name does not start with the host triplet.  If you think this
  6.3233 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
  6.3234 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
  6.3235 ++whose name does not start with the host triplet.  If you think this
  6.3236 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
  6.3237 ++ac_tool_warned=yes ;;
  6.3238 ++esac
  6.3239 ++    RANLIB=$ac_ct_RANLIB
  6.3240 ++  fi
  6.3241 ++else
  6.3242 ++  RANLIB="$ac_cv_prog_RANLIB"
  6.3243 ++fi
  6.3244 ++
  6.3245 ++
  6.3246 ++# Find a good install program.  We prefer a C program (faster),
  6.3247 ++# so one script is as good as another.  But avoid the broken or
  6.3248 ++# incompatible versions:
  6.3249 ++# SysV /etc/install, /usr/sbin/install
  6.3250 ++# SunOS /usr/etc/install
  6.3251 ++# IRIX /sbin/install
  6.3252 ++# AIX /bin/install
  6.3253 ++# AmigaOS /C/install, which installs bootblocks on floppy discs
  6.3254 ++# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
  6.3255 ++# AFS /usr/afsws/bin/install, which mishandles nonexistent args
  6.3256 ++# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
  6.3257 ++# OS/2's system install, which has a completely different semantic
  6.3258 ++# ./install, which can be erroneously created by make from ./install.sh.
  6.3259 ++{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
  6.3260 ++echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
  6.3261 ++if test -z "$INSTALL"; then
  6.3262 ++if test "${ac_cv_path_install+set}" = set; then
  6.3263 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
  6.3264 ++else
  6.3265 ++  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.3266 ++for as_dir in $PATH
  6.3267 ++do
  6.3268 ++  IFS=$as_save_IFS
  6.3269 ++  test -z "$as_dir" && as_dir=.
  6.3270 ++  # Account for people who put trailing slashes in PATH elements.
  6.3271 ++case $as_dir/ in
  6.3272 ++  ./ | .// | /cC/* | \
  6.3273 ++  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
  6.3274 ++  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
  6.3275 ++  /usr/ucb/* ) ;;
  6.3276 ++  *)
  6.3277 ++    # OSF1 and SCO ODT 3.0 have their own names for install.
  6.3278 ++    # Don't use installbsd from OSF since it installs stuff as root
  6.3279 ++    # by default.
  6.3280 ++    for ac_prog in ginstall scoinst install; do
  6.3281 ++      for ac_exec_ext in '' $ac_executable_extensions; do
  6.3282 ++	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
  6.3283 ++	  if test $ac_prog = install &&
  6.3284 ++	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
  6.3285 ++	    # AIX install.  It has an incompatible calling convention.
  6.3286 ++	    :
  6.3287 ++	  elif test $ac_prog = install &&
  6.3288 ++	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
  6.3289 ++	    # program-specific install script used by HP pwplus--don't use.
  6.3290 ++	    :
  6.3291 ++	  else
  6.3292 ++	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
  6.3293 ++	    break 3
  6.3294 ++	  fi
  6.3295 ++	fi
  6.3296 ++      done
  6.3297 ++    done
  6.3298 ++    ;;
  6.3299 ++esac
  6.3300 ++done
  6.3301 ++IFS=$as_save_IFS
  6.3302 ++
  6.3303 ++
  6.3304 ++fi
  6.3305 ++  if test "${ac_cv_path_install+set}" = set; then
  6.3306 ++    INSTALL=$ac_cv_path_install
  6.3307 ++  else
  6.3308 ++    # As a last resort, use the slow shell script.  Don't cache a
  6.3309 ++    # value for INSTALL within a source directory, because that will
  6.3310 ++    # break other packages using the cache if that directory is
  6.3311 ++    # removed, or if the value is a relative name.
  6.3312 ++    INSTALL=$ac_install_sh
  6.3313 ++  fi
  6.3314 ++fi
  6.3315 ++{ echo "$as_me:$LINENO: result: $INSTALL" >&5
  6.3316 ++echo "${ECHO_T}$INSTALL" >&6; }
  6.3317 ++
  6.3318 ++# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
  6.3319 ++# It thinks the first close brace ends the variable substitution.
  6.3320 ++test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
  6.3321 ++
  6.3322 ++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
  6.3323 ++
  6.3324 ++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
  6.3325 ++
  6.3326 ++
  6.3327 ++{ echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
  6.3328 ++echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; }
  6.3329 ++    # Check whether --enable-maintainer-mode was given.
  6.3330 ++if test "${enable_maintainer_mode+set}" = set; then
  6.3331 ++  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
  6.3332 ++else
  6.3333 ++  USE_MAINTAINER_MODE=no
  6.3334 ++fi
  6.3335 ++
  6.3336 ++  { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
  6.3337 ++echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; }
  6.3338 ++
  6.3339 ++
  6.3340 ++if test $USE_MAINTAINER_MODE = yes; then
  6.3341 ++  MAINTAINER_MODE_TRUE=
  6.3342 ++  MAINTAINER_MODE_FALSE='#'
  6.3343 ++else
  6.3344 ++  MAINTAINER_MODE_TRUE='#'
  6.3345 ++  MAINTAINER_MODE_FALSE=
  6.3346 ++fi
  6.3347 ++  MAINT=$MAINTAINER_MODE_TRUE
  6.3348 ++
  6.3349 ++
  6.3350 ++
  6.3351 ++# We need AC_EXEEXT to keep automake happy in cygnus mode.  However,
  6.3352 ++# at least currently, we never actually build a program, so we never
  6.3353 ++# need to use $(EXEEXT).  Moreover, the test for EXEEXT normally
  6.3354 ++# fails, because we are probably configuring with a cross compiler
  6.3355 ++# which can't create executables.  So we include AC_EXEEXT to keep
  6.3356 ++# automake happy, but we don't execute it, since we don't care about
  6.3357 ++# the result.
  6.3358 ++#if false; then
  6.3359 ++#
  6.3360 ++#fi
  6.3361 ++
  6.3362 ++. ${newlib_basedir}/configure.host
  6.3363 ++
  6.3364 ++newlib_cflags="${newlib_cflags} -fno-builtin"
  6.3365 ++
  6.3366 ++NEWLIB_CFLAGS=${newlib_cflags}
  6.3367 ++
  6.3368 ++
  6.3369 ++LDFLAGS=${ldflags}
  6.3370 ++
  6.3371 ++
  6.3372 ++
  6.3373 ++
  6.3374 ++if test x${newlib_elix_level} = x0; then
  6.3375 ++  ELIX_LEVEL_0_TRUE=
  6.3376 ++  ELIX_LEVEL_0_FALSE='#'
  6.3377 ++else
  6.3378 ++  ELIX_LEVEL_0_TRUE='#'
  6.3379 ++  ELIX_LEVEL_0_FALSE=
  6.3380 ++fi
  6.3381 ++
  6.3382 ++
  6.3383 ++if test x${newlib_elix_level} = x1; then
  6.3384 ++  ELIX_LEVEL_1_TRUE=
  6.3385 ++  ELIX_LEVEL_1_FALSE='#'
  6.3386 ++else
  6.3387 ++  ELIX_LEVEL_1_TRUE='#'
  6.3388 ++  ELIX_LEVEL_1_FALSE=
  6.3389 ++fi
  6.3390 ++
  6.3391 ++
  6.3392 ++if test x${newlib_elix_level} = x2; then
  6.3393 ++  ELIX_LEVEL_2_TRUE=
  6.3394 ++  ELIX_LEVEL_2_FALSE='#'
  6.3395 ++else
  6.3396 ++  ELIX_LEVEL_2_TRUE='#'
  6.3397 ++  ELIX_LEVEL_2_FALSE=
  6.3398 ++fi
  6.3399 ++
  6.3400 ++
  6.3401 ++if test x${newlib_elix_level} = x3; then
  6.3402 ++  ELIX_LEVEL_3_TRUE=
  6.3403 ++  ELIX_LEVEL_3_FALSE='#'
  6.3404 ++else
  6.3405 ++  ELIX_LEVEL_3_TRUE='#'
  6.3406 ++  ELIX_LEVEL_3_FALSE=
  6.3407 ++fi
  6.3408 ++
  6.3409 ++
  6.3410 ++if test x${newlib_elix_level} = x4; then
  6.3411 ++  ELIX_LEVEL_4_TRUE=
  6.3412 ++  ELIX_LEVEL_4_FALSE='#'
  6.3413 ++else
  6.3414 ++  ELIX_LEVEL_4_TRUE='#'
  6.3415 ++  ELIX_LEVEL_4_FALSE=
  6.3416 ++fi
  6.3417 ++
  6.3418 ++
  6.3419 ++
  6.3420 ++if test x${use_libtool} = xyes; then
  6.3421 ++  USE_LIBTOOL_TRUE=
  6.3422 ++  USE_LIBTOOL_FALSE='#'
  6.3423 ++else
  6.3424 ++  USE_LIBTOOL_TRUE='#'
  6.3425 ++  USE_LIBTOOL_FALSE=
  6.3426 ++fi
  6.3427 ++
  6.3428 ++# Hard-code OBJEXT.  Normally it is set by AC_OBJEXT, but we
  6.3429 ++# use oext, which is set in configure.host based on the target platform.
  6.3430 ++OBJEXT=${oext}
  6.3431 ++
  6.3432 ++
  6.3433 ++
  6.3434 ++
  6.3435 ++
  6.3436 ++
  6.3437 ++
  6.3438 ++
  6.3439 ++
  6.3440 ++
  6.3441 ++ac_config_files="$ac_config_files Makefile"
  6.3442 ++
  6.3443 ++cat >confcache <<\_ACEOF
  6.3444 ++# This file is a shell script that caches the results of configure
  6.3445 ++# tests run on this system so they can be shared between configure
  6.3446 ++# scripts and configure runs, see configure's option --config-cache.
  6.3447 ++# It is not useful on other systems.  If it contains results you don't
  6.3448 ++# want to keep, you may remove or edit it.
  6.3449 ++#
  6.3450 ++# config.status only pays attention to the cache file if you give it
  6.3451 ++# the --recheck option to rerun configure.
  6.3452 ++#
  6.3453 ++# `ac_cv_env_foo' variables (set or unset) will be overridden when
  6.3454 ++# loading this file, other *unset* `ac_cv_foo' will be assigned the
  6.3455 ++# following values.
  6.3456 ++
  6.3457 ++_ACEOF
  6.3458 ++
  6.3459 ++# The following way of writing the cache mishandles newlines in values,
  6.3460 ++# but we know of no workaround that is simple, portable, and efficient.
  6.3461 ++# So, we kill variables containing newlines.
  6.3462 ++# Ultrix sh set writes to stderr and can't be redirected directly,
  6.3463 ++# and sets the high bit in the cache file unless we assign to the vars.
  6.3464 ++(
  6.3465 ++  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
  6.3466 ++    eval ac_val=\$$ac_var
  6.3467 ++    case $ac_val in #(
  6.3468 ++    *${as_nl}*)
  6.3469 ++      case $ac_var in #(
  6.3470 ++      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
  6.3471 ++echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
  6.3472 ++      esac
  6.3473 ++      case $ac_var in #(
  6.3474 ++      _ | IFS | as_nl) ;; #(
  6.3475 ++      *) $as_unset $ac_var ;;
  6.3476 ++      esac ;;
  6.3477 ++    esac
  6.3478 ++  done
  6.3479 ++
  6.3480 ++  (set) 2>&1 |
  6.3481 ++    case $as_nl`(ac_space=' '; set) 2>&1` in #(
  6.3482 ++    *${as_nl}ac_space=\ *)
  6.3483 ++      # `set' does not quote correctly, so add quotes (double-quote
  6.3484 ++      # substitution turns \\\\ into \\, and sed turns \\ into \).
  6.3485 ++      sed -n \
  6.3486 ++	"s/'/'\\\\''/g;
  6.3487 ++	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
  6.3488 ++      ;; #(
  6.3489 ++    *)
  6.3490 ++      # `set' quotes correctly as required by POSIX, so do not add quotes.
  6.3491 ++      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
  6.3492 ++      ;;
  6.3493 ++    esac |
  6.3494 ++    sort
  6.3495 ++) |
  6.3496 ++  sed '
  6.3497 ++     /^ac_cv_env_/b end
  6.3498 ++     t clear
  6.3499 ++     :clear
  6.3500 ++     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
  6.3501 ++     t end
  6.3502 ++     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
  6.3503 ++     :end' >>confcache
  6.3504 ++if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
  6.3505 ++  if test -w "$cache_file"; then
  6.3506 ++    test "x$cache_file" != "x/dev/null" &&
  6.3507 ++      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
  6.3508 ++echo "$as_me: updating cache $cache_file" >&6;}
  6.3509 ++    cat confcache >$cache_file
  6.3510 ++  else
  6.3511 ++    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
  6.3512 ++echo "$as_me: not updating unwritable cache $cache_file" >&6;}
  6.3513 ++  fi
  6.3514 ++fi
  6.3515 ++rm -f confcache
  6.3516 ++
  6.3517 ++test "x$prefix" = xNONE && prefix=$ac_default_prefix
  6.3518 ++# Let make expand exec_prefix.
  6.3519 ++test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
  6.3520 ++
  6.3521 ++# Transform confdefs.h into DEFS.
  6.3522 ++# Protect against shell expansion while executing Makefile rules.
  6.3523 ++# Protect against Makefile macro expansion.
  6.3524 ++#
  6.3525 ++# If the first sed substitution is executed (which looks for macros that
  6.3526 ++# take arguments), then branch to the quote section.  Otherwise,
  6.3527 ++# look for a macro that doesn't take arguments.
  6.3528 ++ac_script='
  6.3529 ++t clear
  6.3530 ++:clear
  6.3531 ++s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\)/-D\1=\2/g
  6.3532 ++t quote
  6.3533 ++s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)/-D\1=\2/g
  6.3534 ++t quote
  6.3535 ++b any
  6.3536 ++:quote
  6.3537 ++s/[	 `~#$^&*(){}\\|;'\''"<>?]/\\&/g
  6.3538 ++s/\[/\\&/g
  6.3539 ++s/\]/\\&/g
  6.3540 ++s/\$/$$/g
  6.3541 ++H
  6.3542 ++:any
  6.3543 ++${
  6.3544 ++	g
  6.3545 ++	s/^\n//
  6.3546 ++	s/\n/ /g
  6.3547 ++	p
  6.3548 ++}
  6.3549 ++'
  6.3550 ++DEFS=`sed -n "$ac_script" confdefs.h`
  6.3551 ++
  6.3552 ++
  6.3553 ++ac_libobjs=
  6.3554 ++ac_ltlibobjs=
  6.3555 ++for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
  6.3556 ++  # 1. Remove the extension, and $U if already installed.
  6.3557 ++  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
  6.3558 ++  ac_i=`echo "$ac_i" | sed "$ac_script"`
  6.3559 ++  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
  6.3560 ++  #    will be set to the directory where LIBOBJS objects are built.
  6.3561 ++  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
  6.3562 ++  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
  6.3563 ++done
  6.3564 ++LIBOBJS=$ac_libobjs
  6.3565 ++
  6.3566 ++LTLIBOBJS=$ac_ltlibobjs
  6.3567 ++
  6.3568 ++
  6.3569 ++
  6.3570 ++: ${CONFIG_STATUS=./config.status}
  6.3571 ++ac_clean_files_save=$ac_clean_files
  6.3572 ++ac_clean_files="$ac_clean_files $CONFIG_STATUS"
  6.3573 ++{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
  6.3574 ++echo "$as_me: creating $CONFIG_STATUS" >&6;}
  6.3575 ++cat >$CONFIG_STATUS <<_ACEOF
  6.3576 ++#! $SHELL
  6.3577 ++# Generated by $as_me.
  6.3578 ++# Run this file to recreate the current configuration.
  6.3579 ++# Compiler output produced by configure, useful for debugging
  6.3580 ++# configure, is in config.log if it exists.
  6.3581 ++
  6.3582 ++debug=false
  6.3583 ++ac_cs_recheck=false
  6.3584 ++ac_cs_silent=false
  6.3585 ++SHELL=\${CONFIG_SHELL-$SHELL}
  6.3586 ++_ACEOF
  6.3587 ++
  6.3588 ++cat >>$CONFIG_STATUS <<\_ACEOF
  6.3589 ++## --------------------- ##
  6.3590 ++## M4sh Initialization.  ##
  6.3591 ++## --------------------- ##
  6.3592 ++
  6.3593 ++# Be more Bourne compatible
  6.3594 ++DUALCASE=1; export DUALCASE # for MKS sh
  6.3595 ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
  6.3596 ++  emulate sh
  6.3597 ++  NULLCMD=:
  6.3598 ++  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
  6.3599 ++  # is contrary to our usage.  Disable this feature.
  6.3600 ++  alias -g '${1+"$@"}'='"$@"'
  6.3601 ++  setopt NO_GLOB_SUBST
  6.3602 ++else
  6.3603 ++  case `(set -o) 2>/dev/null` in
  6.3604 ++  *posix*) set -o posix ;;
  6.3605 ++esac
  6.3606 ++
  6.3607 ++fi
  6.3608 ++
  6.3609 ++
  6.3610 ++
  6.3611 ++
  6.3612 ++# PATH needs CR
  6.3613 ++# Avoid depending upon Character Ranges.
  6.3614 ++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
  6.3615 ++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  6.3616 ++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
  6.3617 ++as_cr_digits='0123456789'
  6.3618 ++as_cr_alnum=$as_cr_Letters$as_cr_digits
  6.3619 ++
  6.3620 ++# The user is always right.
  6.3621 ++if test "${PATH_SEPARATOR+set}" != set; then
  6.3622 ++  echo "#! /bin/sh" >conf$$.sh
  6.3623 ++  echo  "exit 0"   >>conf$$.sh
  6.3624 ++  chmod +x conf$$.sh
  6.3625 ++  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
  6.3626 ++    PATH_SEPARATOR=';'
  6.3627 ++  else
  6.3628 ++    PATH_SEPARATOR=:
  6.3629 ++  fi
  6.3630 ++  rm -f conf$$.sh
  6.3631 ++fi
  6.3632 ++
  6.3633 ++# Support unset when possible.
  6.3634 ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
  6.3635 ++  as_unset=unset
  6.3636 ++else
  6.3637 ++  as_unset=false
  6.3638 ++fi
  6.3639 ++
  6.3640 ++
  6.3641 ++# IFS
  6.3642 ++# We need space, tab and new line, in precisely that order.  Quoting is
  6.3643 ++# there to prevent editors from complaining about space-tab.
  6.3644 ++# (If _AS_PATH_WALK were called with IFS unset, it would disable word
  6.3645 ++# splitting by setting IFS to empty value.)
  6.3646 ++as_nl='
  6.3647 ++'
  6.3648 ++IFS=" ""	$as_nl"
  6.3649 ++
  6.3650 ++# Find who we are.  Look in the path if we contain no directory separator.
  6.3651 ++case $0 in
  6.3652 ++  *[\\/]* ) as_myself=$0 ;;
  6.3653 ++  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.3654 ++for as_dir in $PATH
  6.3655 ++do
  6.3656 ++  IFS=$as_save_IFS
  6.3657 ++  test -z "$as_dir" && as_dir=.
  6.3658 ++  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
  6.3659 ++done
  6.3660 ++IFS=$as_save_IFS
  6.3661 ++
  6.3662 ++     ;;
  6.3663 ++esac
  6.3664 ++# We did not find ourselves, most probably we were run as `sh COMMAND'
  6.3665 ++# in which case we are not to be found in the path.
  6.3666 ++if test "x$as_myself" = x; then
  6.3667 ++  as_myself=$0
  6.3668 ++fi
  6.3669 ++if test ! -f "$as_myself"; then
  6.3670 ++  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
  6.3671 ++  { (exit 1); exit 1; }
  6.3672 ++fi
  6.3673 ++
  6.3674 ++# Work around bugs in pre-3.0 UWIN ksh.
  6.3675 ++for as_var in ENV MAIL MAILPATH
  6.3676 ++do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
  6.3677 ++done
  6.3678 ++PS1='$ '
  6.3679 ++PS2='> '
  6.3680 ++PS4='+ '
  6.3681 ++
  6.3682 ++# NLS nuisances.
  6.3683 ++for as_var in \
  6.3684 ++  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
  6.3685 ++  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
  6.3686 ++  LC_TELEPHONE LC_TIME
  6.3687 ++do
  6.3688 ++  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
  6.3689 ++    eval $as_var=C; export $as_var
  6.3690 ++  else
  6.3691 ++    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
  6.3692 ++  fi
  6.3693 ++done
  6.3694 ++
  6.3695 ++# Required to use basename.
  6.3696 ++if expr a : '\(a\)' >/dev/null 2>&1 &&
  6.3697 ++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
  6.3698 ++  as_expr=expr
  6.3699 ++else
  6.3700 ++  as_expr=false
  6.3701 ++fi
  6.3702 ++
  6.3703 ++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
  6.3704 ++  as_basename=basename
  6.3705 ++else
  6.3706 ++  as_basename=false
  6.3707 ++fi
  6.3708 ++
  6.3709 ++
  6.3710 ++# Name of the executable.
  6.3711 ++as_me=`$as_basename -- "$0" ||
  6.3712 ++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
  6.3713 ++	 X"$0" : 'X\(//\)$' \| \
  6.3714 ++	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
  6.3715 ++echo X/"$0" |
  6.3716 ++    sed '/^.*\/\([^/][^/]*\)\/*$/{
  6.3717 ++	    s//\1/
  6.3718 ++	    q
  6.3719 ++	  }
  6.3720 ++	  /^X\/\(\/\/\)$/{
  6.3721 ++	    s//\1/
  6.3722 ++	    q
  6.3723 ++	  }
  6.3724 ++	  /^X\/\(\/\).*/{
  6.3725 ++	    s//\1/
  6.3726 ++	    q
  6.3727 ++	  }
  6.3728 ++	  s/.*/./; q'`
  6.3729 ++
  6.3730 ++# CDPATH.
  6.3731 ++$as_unset CDPATH
  6.3732 ++
  6.3733 ++
  6.3734 ++
  6.3735 ++  as_lineno_1=$LINENO
  6.3736 ++  as_lineno_2=$LINENO
  6.3737 ++  test "x$as_lineno_1" != "x$as_lineno_2" &&
  6.3738 ++  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
  6.3739 ++
  6.3740 ++  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
  6.3741 ++  # uniformly replaced by the line number.  The first 'sed' inserts a
  6.3742 ++  # line-number line after each line using $LINENO; the second 'sed'
  6.3743 ++  # does the real work.  The second script uses 'N' to pair each
  6.3744 ++  # line-number line with the line containing $LINENO, and appends
  6.3745 ++  # trailing '-' during substitution so that $LINENO is not a special
  6.3746 ++  # case at line end.
  6.3747 ++  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
  6.3748 ++  # scripts with optimization help from Paolo Bonzini.  Blame Lee
  6.3749 ++  # E. McMahon (1931-1989) for sed's syntax.  :-)
  6.3750 ++  sed -n '
  6.3751 ++    p
  6.3752 ++    /[$]LINENO/=
  6.3753 ++  ' <$as_myself |
  6.3754 ++    sed '
  6.3755 ++      s/[$]LINENO.*/&-/
  6.3756 ++      t lineno
  6.3757 ++      b
  6.3758 ++      :lineno
  6.3759 ++      N
  6.3760 ++      :loop
  6.3761 ++      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
  6.3762 ++      t loop
  6.3763 ++      s/-\n.*//
  6.3764 ++    ' >$as_me.lineno &&
  6.3765 ++  chmod +x "$as_me.lineno" ||
  6.3766 ++    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
  6.3767 ++   { (exit 1); exit 1; }; }
  6.3768 ++
  6.3769 ++  # Don't try to exec as it changes $[0], causing all sort of problems
  6.3770 ++  # (the dirname of $[0] is not the place where we might find the
  6.3771 ++  # original and so on.  Autoconf is especially sensitive to this).
  6.3772 ++  . "./$as_me.lineno"
  6.3773 ++  # Exit status is that of the last command.
  6.3774 ++  exit
  6.3775 ++}
  6.3776 ++
  6.3777 ++
  6.3778 ++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
  6.3779 ++  as_dirname=dirname
  6.3780 ++else
  6.3781 ++  as_dirname=false
  6.3782 ++fi
  6.3783 ++
  6.3784 ++ECHO_C= ECHO_N= ECHO_T=
  6.3785 ++case `echo -n x` in
  6.3786 ++-n*)
  6.3787 ++  case `echo 'x\c'` in
  6.3788 ++  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
  6.3789 ++  *)   ECHO_C='\c';;
  6.3790 ++  esac;;
  6.3791 ++*)
  6.3792 ++  ECHO_N='-n';;
  6.3793 ++esac
  6.3794 ++
  6.3795 ++if expr a : '\(a\)' >/dev/null 2>&1 &&
  6.3796 ++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
  6.3797 ++  as_expr=expr
  6.3798 ++else
  6.3799 ++  as_expr=false
  6.3800 ++fi
  6.3801 ++
  6.3802 ++rm -f conf$$ conf$$.exe conf$$.file
  6.3803 ++if test -d conf$$.dir; then
  6.3804 ++  rm -f conf$$.dir/conf$$.file
  6.3805 ++else
  6.3806 ++  rm -f conf$$.dir
  6.3807 ++  mkdir conf$$.dir
  6.3808 ++fi
  6.3809 ++echo >conf$$.file
  6.3810 ++if ln -s conf$$.file conf$$ 2>/dev/null; then
  6.3811 ++  as_ln_s='ln -s'
  6.3812 ++  # ... but there are two gotchas:
  6.3813 ++  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
  6.3814 ++  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
  6.3815 ++  # In both cases, we have to default to `cp -p'.
  6.3816 ++  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
  6.3817 ++    as_ln_s='cp -p'
  6.3818 ++elif ln conf$$.file conf$$ 2>/dev/null; then
  6.3819 ++  as_ln_s=ln
  6.3820 ++else
  6.3821 ++  as_ln_s='cp -p'
  6.3822 ++fi
  6.3823 ++rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
  6.3824 ++rmdir conf$$.dir 2>/dev/null
  6.3825 ++
  6.3826 ++if mkdir -p . 2>/dev/null; then
  6.3827 ++  as_mkdir_p=:
  6.3828 ++else
  6.3829 ++  test -d ./-p && rmdir ./-p
  6.3830 ++  as_mkdir_p=false
  6.3831 ++fi
  6.3832 ++
  6.3833 ++if test -x / >/dev/null 2>&1; then
  6.3834 ++  as_test_x='test -x'
  6.3835 ++else
  6.3836 ++  if ls -dL / >/dev/null 2>&1; then
  6.3837 ++    as_ls_L_option=L
  6.3838 ++  else
  6.3839 ++    as_ls_L_option=
  6.3840 ++  fi
  6.3841 ++  as_test_x='
  6.3842 ++    eval sh -c '\''
  6.3843 ++      if test -d "$1"; then
  6.3844 ++        test -d "$1/.";
  6.3845 ++      else
  6.3846 ++	case $1 in
  6.3847 ++        -*)set "./$1";;
  6.3848 ++	esac;
  6.3849 ++	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
  6.3850 ++	???[sx]*):;;*)false;;esac;fi
  6.3851 ++    '\'' sh
  6.3852 ++  '
  6.3853 ++fi
  6.3854 ++as_executable_p=$as_test_x
  6.3855 ++
  6.3856 ++# Sed expression to map a string onto a valid CPP name.
  6.3857 ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
  6.3858 ++
  6.3859 ++# Sed expression to map a string onto a valid variable name.
  6.3860 ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
  6.3861 ++
  6.3862 ++
  6.3863 ++exec 6>&1
  6.3864 ++
  6.3865 ++# Save the log message, to keep $[0] and so on meaningful, and to
  6.3866 ++# report actual input values of CONFIG_FILES etc. instead of their
  6.3867 ++# values after options handling.
  6.3868 ++ac_log="
  6.3869 ++This file was extended by newlib $as_me NEWLIB_VERSION, which was
  6.3870 ++generated by GNU Autoconf 2.61.  Invocation command line was
  6.3871 ++
  6.3872 ++  CONFIG_FILES    = $CONFIG_FILES
  6.3873 ++  CONFIG_HEADERS  = $CONFIG_HEADERS
  6.3874 ++  CONFIG_LINKS    = $CONFIG_LINKS
  6.3875 ++  CONFIG_COMMANDS = $CONFIG_COMMANDS
  6.3876 ++  $ $0 $@
  6.3877 ++
  6.3878 ++on `(hostname || uname -n) 2>/dev/null | sed 1q`
  6.3879 ++"
  6.3880 ++
  6.3881 ++_ACEOF
  6.3882 ++
  6.3883 ++cat >>$CONFIG_STATUS <<_ACEOF
  6.3884 ++# Files that config.status was made for.
  6.3885 ++config_files="$ac_config_files"
  6.3886 ++
  6.3887 ++_ACEOF
  6.3888 ++
  6.3889 ++cat >>$CONFIG_STATUS <<\_ACEOF
  6.3890 ++ac_cs_usage="\
  6.3891 ++\`$as_me' instantiates files from templates according to the
  6.3892 ++current configuration.
  6.3893 ++
  6.3894 ++Usage: $0 [OPTIONS] [FILE]...
  6.3895 ++
  6.3896 ++  -h, --help       print this help, then exit
  6.3897 ++  -V, --version    print version number and configuration settings, then exit
  6.3898 ++  -q, --quiet      do not print progress messages
  6.3899 ++  -d, --debug      don't remove temporary files
  6.3900 ++      --recheck    update $as_me by reconfiguring in the same conditions
  6.3901 ++  --file=FILE[:TEMPLATE]
  6.3902 ++		   instantiate the configuration file FILE
  6.3903 ++
  6.3904 ++Configuration files:
  6.3905 ++$config_files
  6.3906 ++
  6.3907 ++Report bugs to <bug-autoconf@gnu.org>."
  6.3908 ++
  6.3909 ++_ACEOF
  6.3910 ++cat >>$CONFIG_STATUS <<_ACEOF
  6.3911 ++ac_cs_version="\\
  6.3912 ++newlib config.status NEWLIB_VERSION
  6.3913 ++configured by $0, generated by GNU Autoconf 2.61,
  6.3914 ++  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
  6.3915 ++
  6.3916 ++Copyright (C) 2006 Free Software Foundation, Inc.
  6.3917 ++This config.status script is free software; the Free Software Foundation
  6.3918 ++gives unlimited permission to copy, distribute and modify it."
  6.3919 ++
  6.3920 ++ac_pwd='$ac_pwd'
  6.3921 ++srcdir='$srcdir'
  6.3922 ++INSTALL='$INSTALL'
  6.3923 ++_ACEOF
  6.3924 ++
  6.3925 ++cat >>$CONFIG_STATUS <<\_ACEOF
  6.3926 ++# If no file are specified by the user, then we need to provide default
  6.3927 ++# value.  By we need to know if files were specified by the user.
  6.3928 ++ac_need_defaults=:
  6.3929 ++while test $# != 0
  6.3930 ++do
  6.3931 ++  case $1 in
  6.3932 ++  --*=*)
  6.3933 ++    ac_option=`expr "X$1" : 'X\([^=]*\)='`
  6.3934 ++    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
  6.3935 ++    ac_shift=:
  6.3936 ++    ;;
  6.3937 ++  *)
  6.3938 ++    ac_option=$1
  6.3939 ++    ac_optarg=$2
  6.3940 ++    ac_shift=shift
  6.3941 ++    ;;
  6.3942 ++  esac
  6.3943 ++
  6.3944 ++  case $ac_option in
  6.3945 ++  # Handling of the options.
  6.3946 ++  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
  6.3947 ++    ac_cs_recheck=: ;;
  6.3948 ++  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
  6.3949 ++    echo "$ac_cs_version"; exit ;;
  6.3950 ++  --debug | --debu | --deb | --de | --d | -d )
  6.3951 ++    debug=: ;;
  6.3952 ++  --file | --fil | --fi | --f )
  6.3953 ++    $ac_shift
  6.3954 ++    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
  6.3955 ++    ac_need_defaults=false;;
  6.3956 ++  --he | --h |  --help | --hel | -h )
  6.3957 ++    echo "$ac_cs_usage"; exit ;;
  6.3958 ++  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
  6.3959 ++  | -silent | --silent | --silen | --sile | --sil | --si | --s)
  6.3960 ++    ac_cs_silent=: ;;
  6.3961 ++
  6.3962 ++  # This is an error.
  6.3963 ++  -*) { echo "$as_me: error: unrecognized option: $1
  6.3964 ++Try \`$0 --help' for more information." >&2
  6.3965 ++   { (exit 1); exit 1; }; } ;;
  6.3966 ++
  6.3967 ++  *) ac_config_targets="$ac_config_targets $1"
  6.3968 ++     ac_need_defaults=false ;;
  6.3969 ++
  6.3970 ++  esac
  6.3971 ++  shift
  6.3972 ++done
  6.3973 ++
  6.3974 ++ac_configure_extra_args=
  6.3975 ++
  6.3976 ++if $ac_cs_silent; then
  6.3977 ++  exec 6>/dev/null
  6.3978 ++  ac_configure_extra_args="$ac_configure_extra_args --silent"
  6.3979 ++fi
  6.3980 ++
  6.3981 ++_ACEOF
  6.3982 ++cat >>$CONFIG_STATUS <<_ACEOF
  6.3983 ++if \$ac_cs_recheck; then
  6.3984 ++  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
  6.3985 ++  CONFIG_SHELL=$SHELL
  6.3986 ++  export CONFIG_SHELL
  6.3987 ++  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
  6.3988 ++fi
  6.3989 ++
  6.3990 ++_ACEOF
  6.3991 ++cat >>$CONFIG_STATUS <<\_ACEOF
  6.3992 ++exec 5>>config.log
  6.3993 ++{
  6.3994 ++  echo
  6.3995 ++  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
  6.3996 ++## Running $as_me. ##
  6.3997 ++_ASBOX
  6.3998 ++  echo "$ac_log"
  6.3999 ++} >&5
  6.4000 ++
  6.4001 ++_ACEOF
  6.4002 ++cat >>$CONFIG_STATUS <<_ACEOF
  6.4003 ++_ACEOF
  6.4004 ++
  6.4005 ++cat >>$CONFIG_STATUS <<\_ACEOF
  6.4006 ++
  6.4007 ++# Handling of arguments.
  6.4008 ++for ac_config_target in $ac_config_targets
  6.4009 ++do
  6.4010 ++  case $ac_config_target in
  6.4011 ++    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
  6.4012 ++
  6.4013 ++  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
  6.4014 ++echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
  6.4015 ++   { (exit 1); exit 1; }; };;
  6.4016 ++  esac
  6.4017 ++done
  6.4018 ++
  6.4019 ++
  6.4020 ++# If the user did not use the arguments to specify the items to instantiate,
  6.4021 ++# then the envvar interface is used.  Set only those that are not.
  6.4022 ++# We use the long form for the default assignment because of an extremely
  6.4023 ++# bizarre bug on SunOS 4.1.3.
  6.4024 ++if $ac_need_defaults; then
  6.4025 ++  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
  6.4026 ++fi
  6.4027 ++
  6.4028 ++# Have a temporary directory for convenience.  Make it in the build tree
  6.4029 ++# simply because there is no reason against having it here, and in addition,
  6.4030 ++# creating and moving files from /tmp can sometimes cause problems.
  6.4031 ++# Hook for its removal unless debugging.
  6.4032 ++# Note that there is a small window in which the directory will not be cleaned:
  6.4033 ++# after its creation but before its name has been assigned to `$tmp'.
  6.4034 ++$debug ||
  6.4035 ++{
  6.4036 ++  tmp=
  6.4037 ++  trap 'exit_status=$?
  6.4038 ++  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
  6.4039 ++' 0
  6.4040 ++  trap '{ (exit 1); exit 1; }' 1 2 13 15
  6.4041 ++}
  6.4042 ++# Create a (secure) tmp directory for tmp files.
  6.4043 ++
  6.4044 ++{
  6.4045 ++  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
  6.4046 ++  test -n "$tmp" && test -d "$tmp"
  6.4047 ++}  ||
  6.4048 ++{
  6.4049 ++  tmp=./conf$$-$RANDOM
  6.4050 ++  (umask 077 && mkdir "$tmp")
  6.4051 ++} ||
  6.4052 ++{
  6.4053 ++   echo "$me: cannot create a temporary directory in ." >&2
  6.4054 ++   { (exit 1); exit 1; }
  6.4055 ++}
  6.4056 ++
  6.4057 ++#
  6.4058 ++# Set up the sed scripts for CONFIG_FILES section.
  6.4059 ++#
  6.4060 ++
  6.4061 ++# No need to generate the scripts if there are no CONFIG_FILES.
  6.4062 ++# This happens for instance when ./config.status config.h
  6.4063 ++if test -n "$CONFIG_FILES"; then
  6.4064 ++
  6.4065 ++_ACEOF
  6.4066 ++
  6.4067 ++
  6.4068 ++
  6.4069 ++ac_delim='%!_!# '
  6.4070 ++for ac_last_try in false false false false false :; do
  6.4071 ++  cat >conf$$subs.sed <<_ACEOF
  6.4072 ++SHELL!$SHELL$ac_delim
  6.4073 ++PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
  6.4074 ++PACKAGE_NAME!$PACKAGE_NAME$ac_delim
  6.4075 ++PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
  6.4076 ++PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
  6.4077 ++PACKAGE_STRING!$PACKAGE_STRING$ac_delim
  6.4078 ++PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
  6.4079 ++exec_prefix!$exec_prefix$ac_delim
  6.4080 ++prefix!$prefix$ac_delim
  6.4081 ++program_transform_name!$program_transform_name$ac_delim
  6.4082 ++bindir!$bindir$ac_delim
  6.4083 ++sbindir!$sbindir$ac_delim
  6.4084 ++libexecdir!$libexecdir$ac_delim
  6.4085 ++datarootdir!$datarootdir$ac_delim
  6.4086 ++datadir!$datadir$ac_delim
  6.4087 ++sysconfdir!$sysconfdir$ac_delim
  6.4088 ++sharedstatedir!$sharedstatedir$ac_delim
  6.4089 ++localstatedir!$localstatedir$ac_delim
  6.4090 ++includedir!$includedir$ac_delim
  6.4091 ++oldincludedir!$oldincludedir$ac_delim
  6.4092 ++docdir!$docdir$ac_delim
  6.4093 ++infodir!$infodir$ac_delim
  6.4094 ++htmldir!$htmldir$ac_delim
  6.4095 ++dvidir!$dvidir$ac_delim
  6.4096 ++pdfdir!$pdfdir$ac_delim
  6.4097 ++psdir!$psdir$ac_delim
  6.4098 ++libdir!$libdir$ac_delim
  6.4099 ++localedir!$localedir$ac_delim
  6.4100 ++mandir!$mandir$ac_delim
  6.4101 ++DEFS!$DEFS$ac_delim
  6.4102 ++ECHO_C!$ECHO_C$ac_delim
  6.4103 ++ECHO_N!$ECHO_N$ac_delim
  6.4104 ++ECHO_T!$ECHO_T$ac_delim
  6.4105 ++LIBS!$LIBS$ac_delim
  6.4106 ++build_alias!$build_alias$ac_delim
  6.4107 ++host_alias!$host_alias$ac_delim
  6.4108 ++target_alias!$target_alias$ac_delim
  6.4109 ++MAY_SUPPLY_SYSCALLS_TRUE!$MAY_SUPPLY_SYSCALLS_TRUE$ac_delim
  6.4110 ++MAY_SUPPLY_SYSCALLS_FALSE!$MAY_SUPPLY_SYSCALLS_FALSE$ac_delim
  6.4111 ++newlib_basedir!$newlib_basedir$ac_delim
  6.4112 ++build!$build$ac_delim
  6.4113 ++build_cpu!$build_cpu$ac_delim
  6.4114 ++build_vendor!$build_vendor$ac_delim
  6.4115 ++build_os!$build_os$ac_delim
  6.4116 ++host!$host$ac_delim
  6.4117 ++host_cpu!$host_cpu$ac_delim
  6.4118 ++host_vendor!$host_vendor$ac_delim
  6.4119 ++host_os!$host_os$ac_delim
  6.4120 ++target!$target$ac_delim
  6.4121 ++target_cpu!$target_cpu$ac_delim
  6.4122 ++target_vendor!$target_vendor$ac_delim
  6.4123 ++target_os!$target_os$ac_delim
  6.4124 ++INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
  6.4125 ++INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
  6.4126 ++INSTALL_DATA!$INSTALL_DATA$ac_delim
  6.4127 ++PACKAGE!$PACKAGE$ac_delim
  6.4128 ++VERSION!$VERSION$ac_delim
  6.4129 ++ACLOCAL!$ACLOCAL$ac_delim
  6.4130 ++AUTOCONF!$AUTOCONF$ac_delim
  6.4131 ++AUTOMAKE!$AUTOMAKE$ac_delim
  6.4132 ++AUTOHEADER!$AUTOHEADER$ac_delim
  6.4133 ++MAKEINFO!$MAKEINFO$ac_delim
  6.4134 ++SET_MAKE!$SET_MAKE$ac_delim
  6.4135 ++CC!$CC$ac_delim
  6.4136 ++AS!$AS$ac_delim
  6.4137 ++AR!$AR$ac_delim
  6.4138 ++RANLIB!$RANLIB$ac_delim
  6.4139 ++MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim
  6.4140 ++MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim
  6.4141 ++MAINT!$MAINT$ac_delim
  6.4142 ++NEWLIB_CFLAGS!$NEWLIB_CFLAGS$ac_delim
  6.4143 ++LDFLAGS!$LDFLAGS$ac_delim
  6.4144 ++ELIX_LEVEL_0_TRUE!$ELIX_LEVEL_0_TRUE$ac_delim
  6.4145 ++ELIX_LEVEL_0_FALSE!$ELIX_LEVEL_0_FALSE$ac_delim
  6.4146 ++ELIX_LEVEL_1_TRUE!$ELIX_LEVEL_1_TRUE$ac_delim
  6.4147 ++ELIX_LEVEL_1_FALSE!$ELIX_LEVEL_1_FALSE$ac_delim
  6.4148 ++ELIX_LEVEL_2_TRUE!$ELIX_LEVEL_2_TRUE$ac_delim
  6.4149 ++ELIX_LEVEL_2_FALSE!$ELIX_LEVEL_2_FALSE$ac_delim
  6.4150 ++ELIX_LEVEL_3_TRUE!$ELIX_LEVEL_3_TRUE$ac_delim
  6.4151 ++ELIX_LEVEL_3_FALSE!$ELIX_LEVEL_3_FALSE$ac_delim
  6.4152 ++ELIX_LEVEL_4_TRUE!$ELIX_LEVEL_4_TRUE$ac_delim
  6.4153 ++ELIX_LEVEL_4_FALSE!$ELIX_LEVEL_4_FALSE$ac_delim
  6.4154 ++USE_LIBTOOL_TRUE!$USE_LIBTOOL_TRUE$ac_delim
  6.4155 ++USE_LIBTOOL_FALSE!$USE_LIBTOOL_FALSE$ac_delim
  6.4156 ++OBJEXT!$OBJEXT$ac_delim
  6.4157 ++oext!$oext$ac_delim
  6.4158 ++aext!$aext$ac_delim
  6.4159 ++libm_machine_dir!$libm_machine_dir$ac_delim
  6.4160 ++machine_dir!$machine_dir$ac_delim
  6.4161 ++sys_dir!$sys_dir$ac_delim
  6.4162 ++LIBOBJS!$LIBOBJS$ac_delim
  6.4163 ++LTLIBOBJS!$LTLIBOBJS$ac_delim
  6.4164 ++_ACEOF
  6.4165 ++
  6.4166 ++  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 92; then
  6.4167 ++    break
  6.4168 ++  elif $ac_last_try; then
  6.4169 ++    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
  6.4170 ++echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
  6.4171 ++   { (exit 1); exit 1; }; }
  6.4172 ++  else
  6.4173 ++    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
  6.4174 ++  fi
  6.4175 ++done
  6.4176 ++
  6.4177 ++ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
  6.4178 ++if test -n "$ac_eof"; then
  6.4179 ++  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
  6.4180 ++  ac_eof=`expr $ac_eof + 1`
  6.4181 ++fi
  6.4182 ++
  6.4183 ++cat >>$CONFIG_STATUS <<_ACEOF
  6.4184 ++cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
  6.4185 ++/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
  6.4186 ++_ACEOF
  6.4187 ++sed '
  6.4188 ++s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
  6.4189 ++s/^/s,@/; s/!/@,|#_!!_#|/
  6.4190 ++:n
  6.4191 ++t n
  6.4192 ++s/'"$ac_delim"'$/,g/; t
  6.4193 ++s/$/\\/; p
  6.4194 ++N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
  6.4195 ++' >>$CONFIG_STATUS <conf$$subs.sed
  6.4196 ++rm -f conf$$subs.sed
  6.4197 ++cat >>$CONFIG_STATUS <<_ACEOF
  6.4198 ++:end
  6.4199 ++s/|#_!!_#|//g
  6.4200 ++CEOF$ac_eof
  6.4201 ++_ACEOF
  6.4202 ++
  6.4203 ++
  6.4204 ++# VPATH may cause trouble with some makes, so we remove $(srcdir),
  6.4205 ++# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
  6.4206 ++# trailing colons and then remove the whole line if VPATH becomes empty
  6.4207 ++# (actually we leave an empty line to preserve line numbers).
  6.4208 ++if test "x$srcdir" = x.; then
  6.4209 ++  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
  6.4210 ++s/:*\$(srcdir):*/:/
  6.4211 ++s/:*\${srcdir}:*/:/
  6.4212 ++s/:*@srcdir@:*/:/
  6.4213 ++s/^\([^=]*=[	 ]*\):*/\1/
  6.4214 ++s/:*$//
  6.4215 ++s/^[^=]*=[	 ]*$//
  6.4216 ++}'
  6.4217 ++fi
  6.4218 ++
  6.4219 ++cat >>$CONFIG_STATUS <<\_ACEOF
  6.4220 ++fi # test -n "$CONFIG_FILES"
  6.4221 ++
  6.4222 ++
  6.4223 ++for ac_tag in  :F $CONFIG_FILES
  6.4224 ++do
  6.4225 ++  case $ac_tag in
  6.4226 ++  :[FHLC]) ac_mode=$ac_tag; continue;;
  6.4227 ++  esac
  6.4228 ++  case $ac_mode$ac_tag in
  6.4229 ++  :[FHL]*:*);;
  6.4230 ++  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
  6.4231 ++echo "$as_me: error: Invalid tag $ac_tag." >&2;}
  6.4232 ++   { (exit 1); exit 1; }; };;
  6.4233 ++  :[FH]-) ac_tag=-:-;;
  6.4234 ++  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
  6.4235 ++  esac
  6.4236 ++  ac_save_IFS=$IFS
  6.4237 ++  IFS=:
  6.4238 ++  set x $ac_tag
  6.4239 ++  IFS=$ac_save_IFS
  6.4240 ++  shift
  6.4241 ++  ac_file=$1
  6.4242 ++  shift
  6.4243 ++
  6.4244 ++  case $ac_mode in
  6.4245 ++  :L) ac_source=$1;;
  6.4246 ++  :[FH])
  6.4247 ++    ac_file_inputs=
  6.4248 ++    for ac_f
  6.4249 ++    do
  6.4250 ++      case $ac_f in
  6.4251 ++      -) ac_f="$tmp/stdin";;
  6.4252 ++      *) # Look for the file first in the build tree, then in the source tree
  6.4253 ++	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
  6.4254 ++	 # because $ac_f cannot contain `:'.
  6.4255 ++	 test -f "$ac_f" ||
  6.4256 ++	   case $ac_f in
  6.4257 ++	   [\\/$]*) false;;
  6.4258 ++	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
  6.4259 ++	   esac ||
  6.4260 ++	   { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
  6.4261 ++echo "$as_me: error: cannot find input file: $ac_f" >&2;}
  6.4262 ++   { (exit 1); exit 1; }; };;
  6.4263 ++      esac
  6.4264 ++      ac_file_inputs="$ac_file_inputs $ac_f"
  6.4265 ++    done
  6.4266 ++
  6.4267 ++    # Let's still pretend it is `configure' which instantiates (i.e., don't
  6.4268 ++    # use $as_me), people would be surprised to read:
  6.4269 ++    #    /* config.h.  Generated by config.status.  */
  6.4270 ++    configure_input="Generated from "`IFS=:
  6.4271 ++	  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
  6.4272 ++    if test x"$ac_file" != x-; then
  6.4273 ++      configure_input="$ac_file.  $configure_input"
  6.4274 ++      { echo "$as_me:$LINENO: creating $ac_file" >&5
  6.4275 ++echo "$as_me: creating $ac_file" >&6;}
  6.4276 ++    fi
  6.4277 ++
  6.4278 ++    case $ac_tag in
  6.4279 ++    *:-:* | *:-) cat >"$tmp/stdin";;
  6.4280 ++    esac
  6.4281 ++    ;;
  6.4282 ++  esac
  6.4283 ++
  6.4284 ++  ac_dir=`$as_dirname -- "$ac_file" ||
  6.4285 ++$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
  6.4286 ++	 X"$ac_file" : 'X\(//\)[^/]' \| \
  6.4287 ++	 X"$ac_file" : 'X\(//\)$' \| \
  6.4288 ++	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
  6.4289 ++echo X"$ac_file" |
  6.4290 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
  6.4291 ++	    s//\1/
  6.4292 ++	    q
  6.4293 ++	  }
  6.4294 ++	  /^X\(\/\/\)[^/].*/{
  6.4295 ++	    s//\1/
  6.4296 ++	    q
  6.4297 ++	  }
  6.4298 ++	  /^X\(\/\/\)$/{
  6.4299 ++	    s//\1/
  6.4300 ++	    q
  6.4301 ++	  }
  6.4302 ++	  /^X\(\/\).*/{
  6.4303 ++	    s//\1/
  6.4304 ++	    q
  6.4305 ++	  }
  6.4306 ++	  s/.*/./; q'`
  6.4307 ++  { as_dir="$ac_dir"
  6.4308 ++  case $as_dir in #(
  6.4309 ++  -*) as_dir=./$as_dir;;
  6.4310 ++  esac
  6.4311 ++  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
  6.4312 ++    as_dirs=
  6.4313 ++    while :; do
  6.4314 ++      case $as_dir in #(
  6.4315 ++      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
  6.4316 ++      *) as_qdir=$as_dir;;
  6.4317 ++      esac
  6.4318 ++      as_dirs="'$as_qdir' $as_dirs"
  6.4319 ++      as_dir=`$as_dirname -- "$as_dir" ||
  6.4320 ++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
  6.4321 ++	 X"$as_dir" : 'X\(//\)[^/]' \| \
  6.4322 ++	 X"$as_dir" : 'X\(//\)$' \| \
  6.4323 ++	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
  6.4324 ++echo X"$as_dir" |
  6.4325 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
  6.4326 ++	    s//\1/
  6.4327 ++	    q
  6.4328 ++	  }
  6.4329 ++	  /^X\(\/\/\)[^/].*/{
  6.4330 ++	    s//\1/
  6.4331 ++	    q
  6.4332 ++	  }
  6.4333 ++	  /^X\(\/\/\)$/{
  6.4334 ++	    s//\1/
  6.4335 ++	    q
  6.4336 ++	  }
  6.4337 ++	  /^X\(\/\).*/{
  6.4338 ++	    s//\1/
  6.4339 ++	    q
  6.4340 ++	  }
  6.4341 ++	  s/.*/./; q'`
  6.4342 ++      test -d "$as_dir" && break
  6.4343 ++    done
  6.4344 ++    test -z "$as_dirs" || eval "mkdir $as_dirs"
  6.4345 ++  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
  6.4346 ++echo "$as_me: error: cannot create directory $as_dir" >&2;}
  6.4347 ++   { (exit 1); exit 1; }; }; }
  6.4348 ++  ac_builddir=.
  6.4349 ++
  6.4350 ++case "$ac_dir" in
  6.4351 ++.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
  6.4352 ++*)
  6.4353 ++  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
  6.4354 ++  # A ".." for each directory in $ac_dir_suffix.
  6.4355 ++  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
  6.4356 ++  case $ac_top_builddir_sub in
  6.4357 ++  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
  6.4358 ++  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
  6.4359 ++  esac ;;
  6.4360 ++esac
  6.4361 ++ac_abs_top_builddir=$ac_pwd
  6.4362 ++ac_abs_builddir=$ac_pwd$ac_dir_suffix
  6.4363 ++# for backward compatibility:
  6.4364 ++ac_top_builddir=$ac_top_build_prefix
  6.4365 ++
  6.4366 ++case $srcdir in
  6.4367 ++  .)  # We are building in place.
  6.4368 ++    ac_srcdir=.
  6.4369 ++    ac_top_srcdir=$ac_top_builddir_sub
  6.4370 ++    ac_abs_top_srcdir=$ac_pwd ;;
  6.4371 ++  [\\/]* | ?:[\\/]* )  # Absolute name.
  6.4372 ++    ac_srcdir=$srcdir$ac_dir_suffix;
  6.4373 ++    ac_top_srcdir=$srcdir
  6.4374 ++    ac_abs_top_srcdir=$srcdir ;;
  6.4375 ++  *) # Relative name.
  6.4376 ++    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
  6.4377 ++    ac_top_srcdir=$ac_top_build_prefix$srcdir
  6.4378 ++    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
  6.4379 ++esac
  6.4380 ++ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
  6.4381 ++
  6.4382 ++
  6.4383 ++  case $ac_mode in
  6.4384 ++  :F)
  6.4385 ++  #
  6.4386 ++  # CONFIG_FILE
  6.4387 ++  #
  6.4388 ++
  6.4389 ++  case $INSTALL in
  6.4390 ++  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
  6.4391 ++  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
  6.4392 ++  esac
  6.4393 ++_ACEOF
  6.4394 ++
  6.4395 ++cat >>$CONFIG_STATUS <<\_ACEOF
  6.4396 ++# If the template does not know about datarootdir, expand it.
  6.4397 ++# FIXME: This hack should be removed a few years after 2.60.
  6.4398 ++ac_datarootdir_hack=; ac_datarootdir_seen=
  6.4399 ++
  6.4400 ++case `sed -n '/datarootdir/ {
  6.4401 ++  p
  6.4402 ++  q
  6.4403 ++}
  6.4404 ++/@datadir@/p
  6.4405 ++/@docdir@/p
  6.4406 ++/@infodir@/p
  6.4407 ++/@localedir@/p
  6.4408 ++/@mandir@/p
  6.4409 ++' $ac_file_inputs` in
  6.4410 ++*datarootdir*) ac_datarootdir_seen=yes;;
  6.4411 ++*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
  6.4412 ++  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
  6.4413 ++echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
  6.4414 ++_ACEOF
  6.4415 ++cat >>$CONFIG_STATUS <<_ACEOF
  6.4416 ++  ac_datarootdir_hack='
  6.4417 ++  s&@datadir@&$datadir&g
  6.4418 ++  s&@docdir@&$docdir&g
  6.4419 ++  s&@infodir@&$infodir&g
  6.4420 ++  s&@localedir@&$localedir&g
  6.4421 ++  s&@mandir@&$mandir&g
  6.4422 ++    s&\\\${datarootdir}&$datarootdir&g' ;;
  6.4423 ++esac
  6.4424 ++_ACEOF
  6.4425 ++
  6.4426 ++# Neutralize VPATH when `$srcdir' = `.'.
  6.4427 ++# Shell code in configure.ac might set extrasub.
  6.4428 ++# FIXME: do we really want to maintain this feature?
  6.4429 ++cat >>$CONFIG_STATUS <<_ACEOF
  6.4430 ++  sed "$ac_vpsub
  6.4431 ++$extrasub
  6.4432 ++_ACEOF
  6.4433 ++cat >>$CONFIG_STATUS <<\_ACEOF
  6.4434 ++:t
  6.4435 ++/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
  6.4436 ++s&@configure_input@&$configure_input&;t t
  6.4437 ++s&@top_builddir@&$ac_top_builddir_sub&;t t
  6.4438 ++s&@srcdir@&$ac_srcdir&;t t
  6.4439 ++s&@abs_srcdir@&$ac_abs_srcdir&;t t
  6.4440 ++s&@top_srcdir@&$ac_top_srcdir&;t t
  6.4441 ++s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
  6.4442 ++s&@builddir@&$ac_builddir&;t t
  6.4443 ++s&@abs_builddir@&$ac_abs_builddir&;t t
  6.4444 ++s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
  6.4445 ++s&@INSTALL@&$ac_INSTALL&;t t
  6.4446 ++$ac_datarootdir_hack
  6.4447 ++" $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out
  6.4448 ++
  6.4449 ++test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
  6.4450 ++  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
  6.4451 ++  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
  6.4452 ++  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
  6.4453 ++which seems to be undefined.  Please make sure it is defined." >&5
  6.4454 ++echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
  6.4455 ++which seems to be undefined.  Please make sure it is defined." >&2;}
  6.4456 ++
  6.4457 ++  rm -f "$tmp/stdin"
  6.4458 ++  case $ac_file in
  6.4459 ++  -) cat "$tmp/out"; rm -f "$tmp/out";;
  6.4460 ++  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
  6.4461 ++  esac
  6.4462 ++ ;;
  6.4463 ++
  6.4464 ++
  6.4465 ++
  6.4466 ++  esac
  6.4467 ++
  6.4468 ++done # for ac_tag
  6.4469 ++
  6.4470 ++
  6.4471 ++{ (exit 0); exit 0; }
  6.4472 ++_ACEOF
  6.4473 ++chmod +x $CONFIG_STATUS
  6.4474 ++ac_clean_files=$ac_clean_files_save
  6.4475 ++
  6.4476 ++
  6.4477 ++# configure is writing to config.log, and then calls config.status.
  6.4478 ++# config.status does its own redirection, appending to config.log.
  6.4479 ++# Unfortunately, on DOS this fails, as config.log is still kept open
  6.4480 ++# by configure, so config.status won't be able to write to it; its
  6.4481 ++# output is simply discarded.  So we exec the FD to /dev/null,
  6.4482 ++# effectively closing config.log, so it can be properly (re)opened and
  6.4483 ++# appended to by config.status.  When coming back to configure, we
  6.4484 ++# need to make the FD available again.
  6.4485 ++if test "$no_create" != yes; then
  6.4486 ++  ac_cs_success=:
  6.4487 ++  ac_config_status_args=
  6.4488 ++  test "$silent" = yes &&
  6.4489 ++    ac_config_status_args="$ac_config_status_args --quiet"
  6.4490 ++  exec 5>/dev/null
  6.4491 ++  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
  6.4492 ++  exec 5>>config.log
  6.4493 ++  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
  6.4494 ++  # would make configure fail if this is the last instruction.
  6.4495 ++  $ac_cs_success || { (exit 1); exit 1; }
  6.4496 ++fi
  6.4497 ++
  6.4498 +diff -Naur newlib-1.17.0/newlib/libc/machine/avr32/configure.in newlib-1.17.0-new/newlib/libc/machine/avr32/configure.in
  6.4499 +--- newlib-1.17.0/newlib/libc/machine/avr32/configure.in	1970-01-01 01:00:00.000000000 +0100
  6.4500 ++++ newlib-1.17.0-new/newlib/libc/machine/avr32/configure.in	2009-05-22 09:57:50.000000000 +0200
  6.4501 +@@ -0,0 +1,14 @@
  6.4502 ++dnl This is the newlib/libc/machine/arm configure.in file.
  6.4503 ++dnl Process this file with autoconf to produce a configure script.
  6.4504 ++
  6.4505 ++AC_PREREQ(2.59)
  6.4506 ++AC_INIT([newlib],[NEWLIB_VERSION])
  6.4507 ++AC_CONFIG_SRCDIR([Makefile.am])
  6.4508 ++
  6.4509 ++dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. 
  6.4510 ++AC_CONFIG_AUX_DIR(../../../..)
  6.4511 ++
  6.4512 ++NEWLIB_CONFIGURE(../../..)
  6.4513 ++
  6.4514 ++AC_CONFIG_FILES([Makefile])
  6.4515 ++AC_OUTPUT
  6.4516 +diff -Naur newlib-1.17.0/newlib/libc/machine/avr32/Makefile.am newlib-1.17.0-new/newlib/libc/machine/avr32/Makefile.am
  6.4517 +--- newlib-1.17.0/newlib/libc/machine/avr32/Makefile.am	1970-01-01 01:00:00.000000000 +0100
  6.4518 ++++ newlib-1.17.0-new/newlib/libc/machine/avr32/Makefile.am	2009-05-22 09:57:50.000000000 +0200
  6.4519 +@@ -0,0 +1,16 @@
  6.4520 ++## Process this file with automake to generate Makefile.in
  6.4521 ++
  6.4522 ++AUTOMAKE_OPTIONS = cygnus
  6.4523 ++
  6.4524 ++INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
  6.4525 ++
  6.4526 ++AM_CCASFLAGS = $(INCLUDES)
  6.4527 ++
  6.4528 ++noinst_LIBRARIES = lib.a
  6.4529 ++
  6.4530 ++lib_a_SOURCES = strcmp.S strncpy.S memcpy.S
  6.4531 ++lib_a_CCASFLAGS=$(AM_CCASFLAGS)
  6.4532 ++lib_a_CFLAGS = $(AM_CFLAGS)
  6.4533 ++
  6.4534 ++ACLOCAL_AMFLAGS = -I ../../..
  6.4535 ++CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
  6.4536 +diff -Naur newlib-1.17.0/newlib/libc/machine/avr32/Makefile.in newlib-1.17.0-new/newlib/libc/machine/avr32/Makefile.in
  6.4537 +--- newlib-1.17.0/newlib/libc/machine/avr32/Makefile.in	1970-01-01 01:00:00.000000000 +0100
  6.4538 ++++ newlib-1.17.0-new/newlib/libc/machine/avr32/Makefile.in	2009-05-22 09:57:50.000000000 +0200
  6.4539 +@@ -0,0 +1,327 @@
  6.4540 ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
  6.4541 ++
  6.4542 ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
  6.4543 ++# This Makefile.in is free software; the Free Software Foundation
  6.4544 ++# gives unlimited permission to copy and/or distribute it,
  6.4545 ++# with or without modifications, as long as this notice is preserved.
  6.4546 ++
  6.4547 ++# This program is distributed in the hope that it will be useful,
  6.4548 ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
  6.4549 ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  6.4550 ++# PARTICULAR PURPOSE.
  6.4551 ++
  6.4552 ++
  6.4553 ++SHELL = @SHELL@
  6.4554 ++
  6.4555 ++srcdir = @srcdir@
  6.4556 ++top_srcdir = @top_srcdir@
  6.4557 ++VPATH = @srcdir@
  6.4558 ++prefix = @prefix@
  6.4559 ++exec_prefix = @exec_prefix@
  6.4560 ++
  6.4561 ++bindir = @bindir@
  6.4562 ++sbindir = @sbindir@
  6.4563 ++libexecdir = @libexecdir@
  6.4564 ++datadir = @datadir@
  6.4565 ++sysconfdir = @sysconfdir@
  6.4566 ++sharedstatedir = @sharedstatedir@
  6.4567 ++localstatedir = @localstatedir@
  6.4568 ++libdir = @libdir@
  6.4569 ++infodir = @infodir@
  6.4570 ++mandir = @mandir@
  6.4571 ++includedir = @includedir@
  6.4572 ++oldincludedir = /usr/include
  6.4573 ++
  6.4574 ++DESTDIR =
  6.4575 ++
  6.4576 ++pkgdatadir = $(datadir)/@PACKAGE@
  6.4577 ++pkglibdir = $(libdir)/@PACKAGE@
  6.4578 ++pkgincludedir = $(includedir)/@PACKAGE@
  6.4579 ++
  6.4580 ++top_builddir = .
  6.4581 ++
  6.4582 ++ACLOCAL = @ACLOCAL@
  6.4583 ++AUTOCONF = @AUTOCONF@
  6.4584 ++AUTOMAKE = @AUTOMAKE@
  6.4585 ++AUTOHEADER = @AUTOHEADER@
  6.4586 ++
  6.4587 ++INSTALL = @INSTALL@
  6.4588 ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
  6.4589 ++INSTALL_DATA = @INSTALL_DATA@
  6.4590 ++INSTALL_SCRIPT = @INSTALL_SCRIPT@
  6.4591 ++transform = @program_transform_name@
  6.4592 ++
  6.4593 ++NORMAL_INSTALL = :
  6.4594 ++PRE_INSTALL = :
  6.4595 ++POST_INSTALL = :
  6.4596 ++NORMAL_UNINSTALL = :
  6.4597 ++PRE_UNINSTALL = :
  6.4598 ++POST_UNINSTALL = :
  6.4599 ++build_alias = @build_alias@
  6.4600 ++build_triplet = @build@
  6.4601 ++host_alias = @host_alias@
  6.4602 ++host_triplet = @host@
  6.4603 ++target_alias = @target_alias@
  6.4604 ++target_triplet = @target@
  6.4605 ++AR = @AR@
  6.4606 ++AS = @AS@
  6.4607 ++CC = @CC@
  6.4608 ++CPP = @CPP@
  6.4609 ++EXEEXT = @EXEEXT@
  6.4610 ++LDFLAGS = @LDFLAGS@
  6.4611 ++MAINT = @MAINT@
  6.4612 ++MAKEINFO = @MAKEINFO@
  6.4613 ++NEWLIB_CFLAGS = @NEWLIB_CFLAGS@
  6.4614 ++OBJEXT = @OBJEXT@
  6.4615 ++PACKAGE = @PACKAGE@
  6.4616 ++RANLIB = @RANLIB@
  6.4617 ++VERSION = @VERSION@
  6.4618 ++aext = @aext@
  6.4619 ++libm_machine_dir = @libm_machine_dir@
  6.4620 ++machine_dir = @machine_dir@
  6.4621 ++newlib_basedir = @newlib_basedir@
  6.4622 ++oext = @oext@
  6.4623 ++sys_dir = @sys_dir@
  6.4624 ++
  6.4625 ++AUTOMAKE_OPTIONS = cygnus
  6.4626 ++
  6.4627 ++INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
  6.4628 ++
  6.4629 ++noinst_LIBRARIES = lib.a
  6.4630 ++
  6.4631 ++lib_a_SOURCES = strcmp.S strncpy.S memcpy.S
  6.4632 ++
  6.4633 ++ACLOCAL_AMFLAGS = -I ../../..
  6.4634 ++CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
  6.4635 ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  6.4636 ++mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs
  6.4637 ++CONFIG_CLEAN_FILES = 
  6.4638 ++LIBRARIES =  $(noinst_LIBRARIES)
  6.4639 ++
  6.4640 ++
  6.4641 ++DEFS = @DEFS@ -I. -I$(srcdir) 
  6.4642 ++CPPFLAGS = 
  6.4643 ++LIBS = @LIBS@
  6.4644 ++lib_a_LIBADD = 
  6.4645 ++lib_a_OBJECTS =  strcmp.o strncpy.o memcpy.o
  6.4646 ++CFLAGS = @CFLAGS@
  6.4647 ++COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
  6.4648 ++CCLD = $(CC)
  6.4649 ++LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
  6.4650 ++DIST_COMMON =  Makefile.am Makefile.in aclocal.m4 configure configure.in
  6.4651 ++
  6.4652 ++
  6.4653 ++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
  6.4654 ++
  6.4655 ++TAR = gtar
  6.4656 ++GZIP_ENV = --best
  6.4657 ++SOURCES = $(lib_a_SOURCES)
  6.4658 ++OBJECTS = $(lib_a_OBJECTS)
  6.4659 ++
  6.4660 ++all: all-redirect
  6.4661 ++.SUFFIXES:
  6.4662 ++.SUFFIXES: .S .c .o .s
  6.4663 ++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
  6.4664 ++	cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile
  6.4665 ++
  6.4666 ++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
  6.4667 ++	cd $(top_builddir) \
  6.4668 ++	  && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
  6.4669 ++
  6.4670 ++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in  \
  6.4671 ++		../../../acinclude.m4 ../../../aclocal.m4 \
  6.4672 ++		../../../libtool.m4
  6.4673 ++	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
  6.4674 ++
  6.4675 ++config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
  6.4676 ++	$(SHELL) ./config.status --recheck
  6.4677 ++$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
  6.4678 ++	cd $(srcdir) && $(AUTOCONF)
  6.4679 ++
  6.4680 ++mostlyclean-noinstLIBRARIES:
  6.4681 ++
  6.4682 ++clean-noinstLIBRARIES:
  6.4683 ++	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
  6.4684 ++
  6.4685 ++distclean-noinstLIBRARIES:
  6.4686 ++
  6.4687 ++maintainer-clean-noinstLIBRARIES:
  6.4688 ++
  6.4689 ++.c.o:
  6.4690 ++	$(COMPILE) -c $<
  6.4691 ++
  6.4692 ++.s.o:
  6.4693 ++	$(COMPILE) -c $<
  6.4694 ++
  6.4695 ++.S.o:
  6.4696 ++	$(COMPILE) -c $<
  6.4697 ++
  6.4698 ++mostlyclean-compile:
  6.4699 ++	-rm -f *.o core *.core
  6.4700 ++
  6.4701 ++clean-compile:
  6.4702 ++
  6.4703 ++distclean-compile:
  6.4704 ++	-rm -f *.tab.c
  6.4705 ++
  6.4706 ++maintainer-clean-compile:
  6.4707 ++
  6.4708 ++lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)
  6.4709 ++	-rm -f lib.a
  6.4710 ++	$(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)
  6.4711 ++	$(RANLIB) lib.a
  6.4712 ++
  6.4713 ++tags: TAGS
  6.4714 ++
  6.4715 ++ID: $(HEADERS) $(SOURCES) $(LISP)
  6.4716 ++	list='$(SOURCES) $(HEADERS)'; \
  6.4717 ++	unique=`for i in $$list; do echo $$i; done | \
  6.4718 ++	  awk '    { files[$$0] = 1; } \
  6.4719 ++	       END { for (i in files) print i; }'`; \
  6.4720 ++	here=`pwd` && cd $(srcdir) \
  6.4721 ++	  && mkid -f$$here/ID $$unique $(LISP)
  6.4722 ++
  6.4723 ++TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
  6.4724 ++	tags=; \
  6.4725 ++	here=`pwd`; \
  6.4726 ++	list='$(SOURCES) $(HEADERS)'; \
  6.4727 ++	unique=`for i in $$list; do echo $$i; done | \
  6.4728 ++	  awk '    { files[$$0] = 1; } \
  6.4729 ++	       END { for (i in files) print i; }'`; \
  6.4730 ++	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
  6.4731 ++	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
  6.4732 ++
  6.4733 ++mostlyclean-tags:
  6.4734 ++
  6.4735 ++clean-tags:
  6.4736 ++
  6.4737 ++distclean-tags:
  6.4738 ++	-rm -f TAGS ID
  6.4739 ++
  6.4740 ++maintainer-clean-tags:
  6.4741 ++
  6.4742 ++distdir = $(PACKAGE)-$(VERSION)
  6.4743 ++top_distdir = $(distdir)
  6.4744 ++
  6.4745 ++# This target untars the dist file and tries a VPATH configuration.  Then
  6.4746 ++# it guarantees that the distribution is self-contained by making another
  6.4747 ++# tarfile.
  6.4748 ++distcheck: dist
  6.4749 ++	-rm -rf $(distdir)
  6.4750 ++	GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
  6.4751 ++	mkdir $(distdir)/=build
  6.4752 ++	mkdir $(distdir)/=inst
  6.4753 ++	dc_install_base=`cd $(distdir)/=inst && pwd`; \
  6.4754 ++	cd $(distdir)/=build \
  6.4755 ++	  && ../configure --srcdir=.. --prefix=$$dc_install_base \
  6.4756 ++	  && $(MAKE) $(AM_MAKEFLAGS) \
  6.4757 ++	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
  6.4758 ++	  && $(MAKE) $(AM_MAKEFLAGS) check \
  6.4759 ++	  && $(MAKE) $(AM_MAKEFLAGS) install \
  6.4760 ++	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
  6.4761 ++	  && $(MAKE) $(AM_MAKEFLAGS) dist
  6.4762 ++	-rm -rf $(distdir)
  6.4763 ++	@banner="$(distdir).tar.gz is ready for distribution"; \
  6.4764 ++	dashes=`echo "$$banner" | sed s/./=/g`; \
  6.4765 ++	echo "$$dashes"; \
  6.4766 ++	echo "$$banner"; \
  6.4767 ++	echo "$$dashes"
  6.4768 ++dist: distdir
  6.4769 ++	-chmod -R a+r $(distdir)
  6.4770 ++	GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
  6.4771 ++	-rm -rf $(distdir)
  6.4772 ++dist-all: distdir
  6.4773 ++	-chmod -R a+r $(distdir)
  6.4774 ++	GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
  6.4775 ++	-rm -rf $(distdir)
  6.4776 ++distdir: $(DISTFILES)
  6.4777 ++	-rm -rf $(distdir)
  6.4778 ++	mkdir $(distdir)
  6.4779 ++	-chmod 777 $(distdir)
  6.4780 ++	@for file in $(DISTFILES); do \
  6.4781 ++	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
  6.4782 ++	  if test -d $$d/$$file; then \
  6.4783 ++	    cp -pr $$d/$$file $(distdir)/$$file; \
  6.4784 ++	  else \
  6.4785 ++	    test -f $(distdir)/$$file \
  6.4786 ++	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
  6.4787 ++	    || cp -p $$d/$$file $(distdir)/$$file || :; \
  6.4788 ++	  fi; \
  6.4789 ++	done
  6.4790 ++info-am:
  6.4791 ++info: info-am
  6.4792 ++dvi-am:
  6.4793 ++dvi: dvi-am
  6.4794 ++check-am:
  6.4795 ++check: check-am
  6.4796 ++installcheck-am:
  6.4797 ++installcheck: installcheck-am
  6.4798 ++install-info-am: 
  6.4799 ++install-info: install-info-am
  6.4800 ++install-exec-am:
  6.4801 ++install-exec: install-exec-am
  6.4802 ++
  6.4803 ++install-data-am:
  6.4804 ++install-data: install-data-am
  6.4805 ++
  6.4806 ++install-am: all-am
  6.4807 ++	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
  6.4808 ++install: install-am
  6.4809 ++uninstall-am:
  6.4810 ++uninstall: uninstall-am
  6.4811 ++all-am: Makefile $(LIBRARIES)
  6.4812 ++all-redirect: all-am
  6.4813 ++install-strip:
  6.4814 ++	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
  6.4815 ++installdirs:
  6.4816 ++
  6.4817 ++
  6.4818 ++mostlyclean-generic:
  6.4819 ++
  6.4820 ++clean-generic:
  6.4821 ++
  6.4822 ++distclean-generic:
  6.4823 ++	-rm -f Makefile $(CONFIG_CLEAN_FILES)
  6.4824 ++	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
  6.4825 ++
  6.4826 ++maintainer-clean-generic:
  6.4827 ++mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
  6.4828 ++		mostlyclean-tags mostlyclean-generic
  6.4829 ++
  6.4830 ++mostlyclean: mostlyclean-am
  6.4831 ++
  6.4832 ++clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
  6.4833 ++		mostlyclean-am
  6.4834 ++
  6.4835 ++clean: clean-am
  6.4836 ++
  6.4837 ++distclean-am:  distclean-noinstLIBRARIES distclean-compile \
  6.4838 ++		distclean-tags distclean-generic clean-am
  6.4839 ++
  6.4840 ++distclean: distclean-am
  6.4841 ++	-rm -f config.status
  6.4842 ++
  6.4843 ++maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
  6.4844 ++		maintainer-clean-compile maintainer-clean-tags \
  6.4845 ++		maintainer-clean-generic distclean-am
  6.4846 ++	@echo "This command is intended for maintainers to use;"
  6.4847 ++	@echo "it deletes files that may require special tools to rebuild."
  6.4848 ++
  6.4849 ++maintainer-clean: maintainer-clean-am
  6.4850 ++	-rm -f config.status
  6.4851 ++
  6.4852 ++.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
  6.4853 ++clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
  6.4854 ++mostlyclean-compile distclean-compile clean-compile \
  6.4855 ++maintainer-clean-compile tags mostlyclean-tags distclean-tags \
  6.4856 ++clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
  6.4857 ++check-am installcheck-am installcheck install-info-am install-info \
  6.4858 ++install-exec-am install-exec install-data-am install-data install-am \
  6.4859 ++install uninstall-am uninstall all-redirect all-am all installdirs \
  6.4860 ++mostlyclean-generic distclean-generic clean-generic \
  6.4861 ++maintainer-clean-generic clean mostlyclean distclean maintainer-clean
  6.4862 ++
  6.4863 ++
  6.4864 ++# Tell versions [3.59,3.63) of GNU make to not export all variables.
  6.4865 ++# Otherwise a system limit (for SysV at least) may be exceeded.
  6.4866 ++.NOEXPORT:
  6.4867 +diff -Naur newlib-1.17.0/newlib/libc/machine/avr32/memcpy.S newlib-1.17.0-new/newlib/libc/machine/avr32/memcpy.S
  6.4868 +--- newlib-1.17.0/newlib/libc/machine/avr32/memcpy.S	1970-01-01 01:00:00.000000000 +0100
  6.4869 ++++ newlib-1.17.0-new/newlib/libc/machine/avr32/memcpy.S	2009-05-22 09:57:50.000000000 +0200
  6.4870 +@@ -0,0 +1,269 @@
  6.4871 ++/*
  6.4872 ++ * Copyright (C) 2004 Atmel Norway
  6.4873 ++ */
  6.4874 ++
  6.4875 ++/* Don't use r12 as dst since we must return it unmodified */
  6.4876 ++
  6.4877 ++	.text
  6.4878 ++	.global	memcpy
  6.4879 ++	.type	memcpy, @function
  6.4880 ++#if  defined(__AVR32_HAS_UNALIGNED_WORD__)
  6.4881 ++memcpy:	
  6.4882 ++	/* Check if src and dst are aligned
  6.4883 ++	   if not do a word based copying. */
  6.4884 ++	or	r9, r12, r11
  6.4885 ++	andl	r9, 3, COH
  6.4886 ++	brne	.Lunaligned_copy	
  6.4887 ++
  6.4888 ++	pushm	r12, lr
  6.4889 ++	sub	r10, 8
  6.4890 ++	brmi	.Lword_copy
  6.4891 ++
  6.4892 ++0:	
  6.4893 ++	ld.d	r8, r11++
  6.4894 ++	sub	r10, 8	
  6.4895 ++	st.d	r12++, r8
  6.4896 ++	brpl	0b
  6.4897 ++	
  6.4898 ++.Lword_copy:	
  6.4899 ++	sub	r10, -4
  6.4900 ++	brmi	.Lbyte_copy
  6.4901 ++
  6.4902 ++0:	
  6.4903 ++	ld.w	r8, r11++
  6.4904 ++	sub	r10, 4	
  6.4905 ++	st.w	r12++, r8
  6.4906 ++	brpl	0b
  6.4907 ++
  6.4908 ++.Lbyte_copy:
  6.4909 ++	sub	r10, -4	
  6.4910 ++	breq	2f
  6.4911 ++1:	
  6.4912 ++	ld.ub	r8, r11++
  6.4913 ++	sub	r10, 1
  6.4914 ++	st.b	r12++, r8
  6.4915 ++	brne	1b
  6.4916 ++2:	
  6.4917 ++	popm	r12, pc
  6.4918 ++
  6.4919 ++.Lunaligned_copy:
  6.4920 ++	mov	r9, r12
  6.4921 ++	sub	r10, 4	
  6.4922 ++
  6.4923 ++	brmi	.Lbyte_copy2
  6.4924 ++
  6.4925 ++0:	
  6.4926 ++	ld.w	r8, r11++
  6.4927 ++	sub	r10, 4	
  6.4928 ++	st.w	r12++, r8
  6.4929 ++	brpl	0b
  6.4930 ++
  6.4931 ++.Lbyte_copy2:
  6.4932 ++	sub	r10, -4	
  6.4933 ++	reteq	r9
  6.4934 ++1:	
  6.4935 ++	ld.ub	r8, r11++
  6.4936 ++	sub	r10, 1
  6.4937 ++	st.b	r12++, r8
  6.4938 ++	brne	1b
  6.4939 ++
  6.4940 ++	ret	r9
  6.4941 ++
  6.4942 ++					
  6.4943 ++#else	
  6.4944 ++	
  6.4945 ++#define dst r9
  6.4946 ++#define src r11
  6.4947 ++#define len r10
  6.4948 ++	
  6.4949 ++#if  defined(__AVR32_UC__)	
  6.4950 ++memcpy:
  6.4951 ++	/* If we have less than 8 bytes, don't do anything fancy 
  6.4952 ++	   just an unrolled byte copy */
  6.4953 ++	cp.w	r10, 8
  6.4954 ++	brlt	.Lless_than_8
  6.4955 ++	/* Check if src and dst are aligned. */
  6.4956 ++	or	r9, r12, r11
  6.4957 ++	andl	r9, 3, COH
  6.4958 ++	brne	.Lunaligned_copy	
  6.4959 ++
  6.4960 ++	/* Check if larger than 31 */
  6.4961 ++	cp.w	r10, 32
  6.4962 ++	brge	.Lmore_than_31:
  6.4963 ++
  6.4964 ++	/* Less than 32. */
  6.4965 ++	asr	r8, r10, 2
  6.4966 ++	rsub	r9, r8, 8
  6.4967 ++	add	pc, pc, r9 << 2
  6.4968 ++	.irp	offset,0,1,2,3,4,5,6
  6.4969 ++	ld.w	r9, r11[(6-\offset)*4]
  6.4970 ++	st.w	r12[(6-\offset)*4], r9
  6.4971 ++	.endr
  6.4972 ++	
  6.4973 ++	add	r11, r11, r8 << 2 
  6.4974 ++	add	r8, r12, r8 << 2 
  6.4975 ++	andl	r10, 0x3 
  6.4976 ++	rsub	r10, r10, 4
  6.4977 ++	add	pc, pc, r10 << 2
  6.4978 ++	.irp	offset,0,1,2
  6.4979 ++	ld.ub	r9, r11[2-\offset]
  6.4980 ++	st.b	r8[2-\offset], r9
  6.4981 ++	.endr
  6.4982 ++	
  6.4983 ++	retal	r12
  6.4984 ++
  6.4985 ++.Lless_than_8:	
  6.4986 ++	rsub	r10, r10, 9
  6.4987 ++	add	pc, pc, r10 << 2
  6.4988 ++	.irp	offset,0,1,2,3,4,5,6,7
  6.4989 ++	ld.ub	r9, r11[7-\offset]
  6.4990 ++	st.b	r12[7-\offset], r9
  6.4991 ++	.endr
  6.4992 ++	
  6.4993 ++	retal	r12
  6.4994 ++
  6.4995 ++.Lmore_than_31:
  6.4996 ++	stm	--sp, r6-r7, lr
  6.4997 ++	mov	r9, r12
  6.4998 ++
  6.4999 ++.Laligned_copy:
  6.5000 ++	sub	r10, 32
  6.5001 ++
  6.5002 ++1:	/* Copy 32 bytes at a time */
  6.5003 ++	ld.d	r6, r11++
  6.5004 ++	st.d	r9++, r6
  6.5005 ++	ld.d	r6, r11++
  6.5006 ++	st.d	r9++, r6
  6.5007 ++	ld.d	r6, r11++
  6.5008 ++	st.d	r9++, r6
  6.5009 ++	ld.d	r6, r11++
  6.5010 ++	st.d	r9++, r6
  6.5011 ++	sub	r10, 32
  6.5012 ++	brge	1b
  6.5013 ++	
  6.5014 ++.Lless_than_32:
  6.5015 ++	/* Copy 16 more bytes if possible */
  6.5016 ++	sub	r10, -16
  6.5017 ++	brlt	.Lless_than_16
  6.5018 ++	ld.d	r6, r11++
  6.5019 ++	st.d	r9++, r6
  6.5020 ++	ld.d	r6, r11++
  6.5021 ++	st.d	r9++, r6
  6.5022 ++	sub	r10, 16
  6.5023 ++
  6.5024 ++.Lless_than_16:
  6.5025 ++
  6.5026 ++	/* Do the remaining as byte copies */
  6.5027 ++	neg	r10
  6.5028 ++	add	pc, pc, r10 << 3
  6.5029 ++	nop
  6.5030 ++	nop
  6.5031 ++	.irp	offset,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
  6.5032 ++	ld.ub	r6, r11[14-\offset],e
  6.5033 ++	st.b	r9[14-\offset], r6,e
  6.5034 ++	.endr
  6.5035 ++	
  6.5036 ++	ldm	sp++, r6-r7, pc
  6.5037 ++
  6.5038 ++.Lunaligned_copy:	
  6.5039 ++	/* src and dst are unaligned. */
  6.5040 ++0:	
  6.5041 ++	sub	r10, 1
  6.5042 ++	ld.ub	r9, r11[r10]
  6.5043 ++	st.b	r12[r10], r9
  6.5044 ++	brne	0b
  6.5045 ++	
  6.5046 ++	retal	r12	
  6.5047 ++	.size	memcpy, . - memcpy
  6.5048 ++
  6.5049 ++#else
  6.5050 ++memcpy:
  6.5051 ++	pref	src[0]
  6.5052 ++	mov	dst, r12
  6.5053 ++
  6.5054 ++	/* If we have less than 32 bytes, don't do anything fancy */
  6.5055 ++	cp.w	len, 32
  6.5056 ++	brge	.Lmore_than_31
  6.5057 ++
  6.5058 ++	sub	len, 1
  6.5059 ++	retlt	r12
  6.5060 ++1:	ld.ub	r8, src++
  6.5061 ++	st.b	r12, r8
  6.5062 ++	sub	len, 1
  6.5063 ++	brge	1b
  6.5064 ++	retal	r12
  6.5065 ++
  6.5066 ++.Lmore_than_31:
  6.5067 ++	pushm	r0-r7, lr
  6.5068 ++
  6.5069 ++	/* Check alignment */
  6.5070 ++	mov	r8, src
  6.5071 ++	andl	r8, 31, COH
  6.5072 ++	brne	.Lunaligned_src
  6.5073 ++	mov	r8, dst
  6.5074 ++	andl	r8, 3, COH
  6.5075 ++	brne	.Lunaligned_dst
  6.5076 ++
  6.5077 ++.Laligned_copy:
  6.5078 ++	sub	len, 32
  6.5079 ++	brlt	.Lless_than_32
  6.5080 ++
  6.5081 ++1:	/* Copy 32 bytes at a time */
  6.5082 ++	pref	src[32]
  6.5083 ++	ldm	src, r0-r7
  6.5084 ++	sub	src, -32
  6.5085 ++	stm	dst, r0-r7
  6.5086 ++	sub	dst, -32
  6.5087 ++	sub	len, 32
  6.5088 ++	brge	1b
  6.5089 ++	
  6.5090 ++.Lless_than_32:
  6.5091 ++	/* Copy 16 more bytes if possible */
  6.5092 ++	sub	len, -16
  6.5093 ++	brlt	.Lless_than_16
  6.5094 ++	ldm	src, r0-r3
  6.5095 ++	sub	src, -16
  6.5096 ++	sub	len, 16
  6.5097 ++	stm	dst, r0-r3
  6.5098 ++	sub	dst, -16
  6.5099 ++
  6.5100 ++.Lless_than_16:
  6.5101 ++	/* Do the remaining as byte copies */
  6.5102 ++	neg	len
  6.5103 ++	add	pc, pc, len << 2
  6.5104 ++	.rept	15
  6.5105 ++	ld.ub	r0, src++
  6.5106 ++	st.b	dst++, r0
  6.5107 ++	.endr
  6.5108 ++
  6.5109 ++	popm	r0-r7, pc
  6.5110 ++
  6.5111 ++.Lunaligned_src:
  6.5112 ++	/* Make src cacheline-aligned. r8 = (src & 31) */
  6.5113 ++	rsub	r8, r8, 32
  6.5114 ++	sub	len, r8
  6.5115 ++1:	ld.ub	r0, src++
  6.5116 ++	st.b	dst++, r0
  6.5117 ++	sub	r8, 1
  6.5118 ++	brne	1b
  6.5119 ++
  6.5120 ++	/* If dst is word-aligned, we're ready to go */
  6.5121 ++	pref	src[0]
  6.5122 ++	mov	r8, 3
  6.5123 ++	tst	dst, r8
  6.5124 ++	breq	.Laligned_copy
  6.5125 ++
  6.5126 ++.Lunaligned_dst:
  6.5127 ++	/* src is aligned, but dst is not. Expect bad performance */
  6.5128 ++0:	
  6.5129 ++	ld.ub	r0, src++
  6.5130 ++	st.b	dst++, r0
  6.5131 ++	sub	len, 1
  6.5132 ++	brne	0b
  6.5133 ++	
  6.5134 ++	popm	r0-r7, pc
  6.5135 ++	.size	memcpy, . - memcpy
  6.5136 ++
  6.5137 ++
  6.5138 ++#endif
  6.5139 ++#endif
  6.5140 +diff -Naur newlib-1.17.0/newlib/libc/machine/avr32/strcmp.S newlib-1.17.0-new/newlib/libc/machine/avr32/strcmp.S
  6.5141 +--- newlib-1.17.0/newlib/libc/machine/avr32/strcmp.S	1970-01-01 01:00:00.000000000 +0100
  6.5142 ++++ newlib-1.17.0-new/newlib/libc/machine/avr32/strcmp.S	2009-05-22 09:57:50.000000000 +0200
  6.5143 +@@ -0,0 +1,133 @@
  6.5144 ++	.align	2
  6.5145 ++	.global strcmp
  6.5146 ++
  6.5147 ++strcmp:	
  6.5148 ++#if !defined(__AVR32_HAS_UNALIGNED_WORD__)
  6.5149 ++#ifdef __AVR32_UC__
  6.5150 ++	/* Check if both strings are aligned. */
  6.5151 ++	or	r10, r12, r11
  6.5152 ++	andl	r10, 3, COH
  6.5153 ++	brne	.Lbyte_strcmp	
  6.5154 ++0:		
  6.5155 ++	ld.w	r10, r12[0]
  6.5156 ++	ld.w	r9, r11[0]
  6.5157 ++	tnbz	r10
  6.5158 ++	breq	1f
  6.5159 ++	cp.w	r10, r9
  6.5160 ++	brne	1f
  6.5161 ++	ld.w	r10, r12[4]
  6.5162 ++	ld.w	r9, r11[4]
  6.5163 ++	tnbz	r10
  6.5164 ++	breq	1f
  6.5165 ++	cp.w	r10, r9
  6.5166 ++	brne	1f
  6.5167 ++	ld.w	r10, r12[8]
  6.5168 ++	ld.w	r9, r11[8]
  6.5169 ++	tnbz	r10
  6.5170 ++	breq	1f
  6.5171 ++	cp.w	r10, r9
  6.5172 ++	brne	1f
  6.5173 ++	ld.w	r10, r12[12]
  6.5174 ++	ld.w	r9, r11[12]
  6.5175 ++	tnbz	r10
  6.5176 ++	breq	1f
  6.5177 ++	sub	r12, -16
  6.5178 ++	sub	r11, -16
  6.5179 ++	cp.w	r10, r9
  6.5180 ++	breq	0b
  6.5181 ++1:
  6.5182 ++	bfextu	r12, r10, 24, 8
  6.5183 ++	bfextu	r11, r9, 24, 8
  6.5184 ++	reteq	r12
  6.5185 ++	sub	r12, r11
  6.5186 ++	retne	r12
  6.5187 ++		
  6.5188 ++	bfextu	r12, r10, 16, 8
  6.5189 ++	bfextu	r11, r9, 16, 8
  6.5190 ++	reteq	r12
  6.5191 ++	sub	r12, r11
  6.5192 ++	retne	r12
  6.5193 ++
  6.5194 ++	bfextu	r12, r10, 8, 8
  6.5195 ++	bfextu	r11, r9, 8, 8
  6.5196 ++	reteq	r12
  6.5197 ++	sub	r12, r11
  6.5198 ++	retne	r12
  6.5199 ++
  6.5200 ++	castu.b	r10
  6.5201 ++	castu.b	r9
  6.5202 ++	sub	r10, r9
  6.5203 ++	ret	r10	
  6.5204 ++
  6.5205 ++.Lbyte_strcmp:	
  6.5206 ++0:	
  6.5207 ++	ld.ub	r10, r11[0]
  6.5208 ++	ld.ub	r9, r12[0]
  6.5209 ++	cp.w	r10, 0
  6.5210 ++	reteq	r9
  6.5211 ++	sub	r9, r10
  6.5212 ++	retne	r9
  6.5213 ++	ld.ub	r10, r11[1]
  6.5214 ++	ld.ub	r9, r12[1]
  6.5215 ++	cp.w	r10, 0
  6.5216 ++	reteq	r9
  6.5217 ++	sub	r9, r10
  6.5218 ++	retne	r9
  6.5219 ++	ld.ub	r10, r11[2]
  6.5220 ++	ld.ub	r9, r12[2]
  6.5221 ++	cp.w	r10, 0
  6.5222 ++	reteq	r9
  6.5223 ++	sub	r9, r10
  6.5224 ++	retne	r9
  6.5225 ++	ld.ub	r10, r11[3]
  6.5226 ++	ld.ub	r9, r12[3]
  6.5227 ++	cp.w	r10, 0
  6.5228 ++	reteq	r9
  6.5229 ++	sub	r9, r10
  6.5230 ++	retne	r9
  6.5231 ++	sub	r11, -4
  6.5232 ++	sub	r12, -4
  6.5233 ++	rjmp	0b
  6.5234 ++#else
  6.5235 ++0:	
  6.5236 ++	ld.ub	r10, r11++
  6.5237 ++	ld.ub	r9, r12++
  6.5238 ++	cp.w	r10, 0
  6.5239 ++	reteq	r9
  6.5240 ++	sub	r9, r10
  6.5241 ++	breq	0b
  6.5242 ++	ret	r9
  6.5243 ++#endif
  6.5244 ++#else
  6.5245 ++0:	
  6.5246 ++	ld.w	r10, r12++
  6.5247 ++	ld.w	r9, r11++
  6.5248 ++	tnbz	r10
  6.5249 ++	breq	1f
  6.5250 ++	cp.w	r10, r9
  6.5251 ++	breq	0b
  6.5252 ++	
  6.5253 ++1:
  6.5254 ++	bfextu	r12, r10, 24, 8
  6.5255 ++	bfextu	r11, r9, 24, 8
  6.5256 ++	reteq	r12
  6.5257 ++	sub	r12, r11
  6.5258 ++	retne	r12
  6.5259 ++		
  6.5260 ++	bfextu	r12, r10, 16, 8
  6.5261 ++	bfextu	r11, r9, 16, 8
  6.5262 ++	reteq	r12
  6.5263 ++	sub	r12, r11
  6.5264 ++	retne	r12
  6.5265 ++
  6.5266 ++	bfextu	r12, r10, 8, 8
  6.5267 ++	bfextu	r11, r9, 8, 8
  6.5268 ++	reteq	r12
  6.5269 ++	sub	r12, r11
  6.5270 ++	retne	r12
  6.5271 ++
  6.5272 ++	castu.b	r10
  6.5273 ++	castu.b	r9
  6.5274 ++	sub	r10, r9
  6.5275 ++	ret	r10	
  6.5276 ++#endif	
  6.5277 +diff -Naur newlib-1.17.0/newlib/libc/machine/avr32/strncpy.S newlib-1.17.0-new/newlib/libc/machine/avr32/strncpy.S
  6.5278 +--- newlib-1.17.0/newlib/libc/machine/avr32/strncpy.S	1970-01-01 01:00:00.000000000 +0100
  6.5279 ++++ newlib-1.17.0-new/newlib/libc/machine/avr32/strncpy.S	2009-05-22 09:57:50.000000000 +0200
  6.5280 +@@ -0,0 +1,39 @@
  6.5281 ++	.align	2
  6.5282 ++	.global strncpy
  6.5283 ++
  6.5284 ++strncpy :	
  6.5285 ++#ifdef __AVR32_UC__	
  6.5286 ++	mov	r8, 0
  6.5287 ++0:	
  6.5288 ++	cp.w	r10, r8
  6.5289 ++	reteq	r12
  6.5290 ++	ld.ub	r9, r11[r8]
  6.5291 ++	st.b	r12[r8], r9
  6.5292 ++	sub	r8, -1
  6.5293 ++	cp.w	r9, 0
  6.5294 ++	brne	0b
  6.5295 ++
  6.5296 ++1:	
  6.5297 ++	cp.w	r10, r8
  6.5298 ++	reteq	r12
  6.5299 ++	st.b	r12[r8], r9
  6.5300 ++	sub	r8, -1
  6.5301 ++	rjmp	1b
  6.5302 ++#else
  6.5303 ++	mov	r8, r12
  6.5304 ++0:	
  6.5305 ++	sub	r10, 1
  6.5306 ++	ld.ub	r9, r11++
  6.5307 ++	retmi	r12
  6.5308 ++	st.b	r8++, r9
  6.5309 ++	cp.w	r9, 0
  6.5310 ++	brne	0b
  6.5311 ++
  6.5312 ++1:	
  6.5313 ++	sub	r10, 1
  6.5314 ++	retmi	r12
  6.5315 ++	st.b	r8++, r9
  6.5316 ++	rjmp	1b
  6.5317 ++	
  6.5318 ++	
  6.5319 ++#endif	
  6.5320 +diff -Naur newlib-1.17.0/newlib/libc/machine/configure newlib-1.17.0-new/newlib/libc/machine/configure
  6.5321 +--- newlib-1.17.0/newlib/libc/machine/configure	2008-12-22 20:45:41.000000000 +0100
  6.5322 ++++ newlib-1.17.0-new/newlib/libc/machine/configure	2009-05-22 09:57:50.000000000 +0200
  6.5323 +@@ -1,25 +1,54 @@
  6.5324 + #! /bin/sh
  6.5325 + # Guess values for system-dependent variables and create Makefiles.
  6.5326 +-# Generated by GNU Autoconf 2.59 for newlib 1.17.0.
  6.5327 ++# Generated by GNU Autoconf 2.61 for newlib 1.17.0.
  6.5328 + #
  6.5329 +-# Copyright (C) 2003 Free Software Foundation, Inc.
  6.5330 ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
  6.5331 ++# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
  6.5332 + # This configure script is free software; the Free Software Foundation
  6.5333 + # gives unlimited permission to copy, distribute and modify it.
  6.5334 + ## --------------------- ##
  6.5335 + ## M4sh Initialization.  ##
  6.5336 + ## --------------------- ##
  6.5337 + 
  6.5338 +-# Be Bourne compatible
  6.5339 ++# Be more Bourne compatible
  6.5340 ++DUALCASE=1; export DUALCASE # for MKS sh
  6.5341 + if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
  6.5342 +   emulate sh
  6.5343 +   NULLCMD=:
  6.5344 +   # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
  6.5345 +   # is contrary to our usage.  Disable this feature.
  6.5346 +   alias -g '${1+"$@"}'='"$@"'
  6.5347 +-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
  6.5348 +-  set -o posix
  6.5349 ++  setopt NO_GLOB_SUBST
  6.5350 ++else
  6.5351 ++  case `(set -o) 2>/dev/null` in
  6.5352 ++  *posix*) set -o posix ;;
  6.5353 ++esac
  6.5354 ++
  6.5355 ++fi
  6.5356 ++
  6.5357 ++
  6.5358 ++
  6.5359 ++
  6.5360 ++# PATH needs CR
  6.5361 ++# Avoid depending upon Character Ranges.
  6.5362 ++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
  6.5363 ++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  6.5364 ++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
  6.5365 ++as_cr_digits='0123456789'
  6.5366 ++as_cr_alnum=$as_cr_Letters$as_cr_digits
  6.5367 ++
  6.5368 ++# The user is always right.
  6.5369 ++if test "${PATH_SEPARATOR+set}" != set; then
  6.5370 ++  echo "#! /bin/sh" >conf$$.sh
  6.5371 ++  echo  "exit 0"   >>conf$$.sh
  6.5372 ++  chmod +x conf$$.sh
  6.5373 ++  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
  6.5374 ++    PATH_SEPARATOR=';'
  6.5375 ++  else
  6.5376 ++    PATH_SEPARATOR=:
  6.5377 ++  fi
  6.5378 ++  rm -f conf$$.sh
  6.5379 + fi
  6.5380 +-DUALCASE=1; export DUALCASE # for MKS sh
  6.5381 + 
  6.5382 + # Support unset when possible.
  6.5383 + if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
  6.5384 +@@ -29,8 +58,43 @@
  6.5385 + fi
  6.5386 + 
  6.5387 + 
  6.5388 ++# IFS
  6.5389 ++# We need space, tab and new line, in precisely that order.  Quoting is
  6.5390 ++# there to prevent editors from complaining about space-tab.
  6.5391 ++# (If _AS_PATH_WALK were called with IFS unset, it would disable word
  6.5392 ++# splitting by setting IFS to empty value.)
  6.5393 ++as_nl='
  6.5394 ++'
  6.5395 ++IFS=" ""	$as_nl"
  6.5396 ++
  6.5397 ++# Find who we are.  Look in the path if we contain no directory separator.
  6.5398 ++case $0 in
  6.5399 ++  *[\\/]* ) as_myself=$0 ;;
  6.5400 ++  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.5401 ++for as_dir in $PATH
  6.5402 ++do
  6.5403 ++  IFS=$as_save_IFS
  6.5404 ++  test -z "$as_dir" && as_dir=.
  6.5405 ++  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
  6.5406 ++done
  6.5407 ++IFS=$as_save_IFS
  6.5408 ++
  6.5409 ++     ;;
  6.5410 ++esac
  6.5411 ++# We did not find ourselves, most probably we were run as `sh COMMAND'
  6.5412 ++# in which case we are not to be found in the path.
  6.5413 ++if test "x$as_myself" = x; then
  6.5414 ++  as_myself=$0
  6.5415 ++fi
  6.5416 ++if test ! -f "$as_myself"; then
  6.5417 ++  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
  6.5418 ++  { (exit 1); exit 1; }
  6.5419 ++fi
  6.5420 ++
  6.5421 + # Work around bugs in pre-3.0 UWIN ksh.
  6.5422 +-$as_unset ENV MAIL MAILPATH
  6.5423 ++for as_var in ENV MAIL MAILPATH
  6.5424 ++do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
  6.5425 ++done
  6.5426 + PS1='$ '
  6.5427 + PS2='> '
  6.5428 + PS4='+ '
  6.5429 +@@ -44,18 +108,19 @@
  6.5430 +   if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
  6.5431 +     eval $as_var=C; export $as_var
  6.5432 +   else
  6.5433 +-    $as_unset $as_var
  6.5434 ++    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
  6.5435 +   fi
  6.5436 + done
  6.5437 + 
  6.5438 + # Required to use basename.
  6.5439 +-if expr a : '\(a\)' >/dev/null 2>&1; then
  6.5440 ++if expr a : '\(a\)' >/dev/null 2>&1 &&
  6.5441 ++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
  6.5442 +   as_expr=expr
  6.5443 + else
  6.5444 +   as_expr=false
  6.5445 + fi
  6.5446 + 
  6.5447 +-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
  6.5448 ++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
  6.5449 +   as_basename=basename
  6.5450 + else
  6.5451 +   as_basename=false
  6.5452 +@@ -63,157 +128,388 @@
  6.5453 + 
  6.5454 + 
  6.5455 + # Name of the executable.
  6.5456 +-as_me=`$as_basename "$0" ||
  6.5457 ++as_me=`$as_basename -- "$0" ||
  6.5458 + $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
  6.5459 + 	 X"$0" : 'X\(//\)$' \| \
  6.5460 +-	 X"$0" : 'X\(/\)$' \| \
  6.5461 +-	 .     : '\(.\)' 2>/dev/null ||
  6.5462 ++	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
  6.5463 + echo X/"$0" |
  6.5464 +-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
  6.5465 +-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
  6.5466 +-  	  /^X\/\(\/\).*/{ s//\1/; q; }
  6.5467 +-  	  s/.*/./; q'`
  6.5468 ++    sed '/^.*\/\([^/][^/]*\)\/*$/{
  6.5469 ++	    s//\1/
  6.5470 ++	    q
  6.5471 ++	  }
  6.5472 ++	  /^X\/\(\/\/\)$/{
  6.5473 ++	    s//\1/
  6.5474 ++	    q
  6.5475 ++	  }
  6.5476 ++	  /^X\/\(\/\).*/{
  6.5477 ++	    s//\1/
  6.5478 ++	    q
  6.5479 ++	  }
  6.5480 ++	  s/.*/./; q'`
  6.5481 + 
  6.5482 ++# CDPATH.
  6.5483 ++$as_unset CDPATH
  6.5484 + 
  6.5485 +-# PATH needs CR, and LINENO needs CR and PATH.
  6.5486 +-# Avoid depending upon Character Ranges.
  6.5487 +-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
  6.5488 +-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  6.5489 +-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
  6.5490 +-as_cr_digits='0123456789'
  6.5491 +-as_cr_alnum=$as_cr_Letters$as_cr_digits
  6.5492 + 
  6.5493 +-# The user is always right.
  6.5494 +-if test "${PATH_SEPARATOR+set}" != set; then
  6.5495 +-  echo "#! /bin/sh" >conf$$.sh
  6.5496 +-  echo  "exit 0"   >>conf$$.sh
  6.5497 +-  chmod +x conf$$.sh
  6.5498 +-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
  6.5499 +-    PATH_SEPARATOR=';'
  6.5500 +-  else
  6.5501 +-    PATH_SEPARATOR=:
  6.5502 +-  fi
  6.5503 +-  rm -f conf$$.sh
  6.5504 ++if test "x$CONFIG_SHELL" = x; then
  6.5505 ++  if (eval ":") 2>/dev/null; then
  6.5506 ++  as_have_required=yes
  6.5507 ++else
  6.5508 ++  as_have_required=no
  6.5509 + fi
  6.5510 + 
  6.5511 ++  if test $as_have_required = yes && 	 (eval ":
  6.5512 ++(as_func_return () {
  6.5513 ++  (exit \$1)
  6.5514 ++}
  6.5515 ++as_func_success () {
  6.5516 ++  as_func_return 0
  6.5517 ++}
  6.5518 ++as_func_failure () {
  6.5519 ++  as_func_return 1
  6.5520 ++}
  6.5521 ++as_func_ret_success () {
  6.5522 ++  return 0
  6.5523 ++}
  6.5524 ++as_func_ret_failure () {
  6.5525 ++  return 1
  6.5526 ++}
  6.5527 + 
  6.5528 +-  as_lineno_1=$LINENO
  6.5529 +-  as_lineno_2=$LINENO
  6.5530 +-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
  6.5531 +-  test "x$as_lineno_1" != "x$as_lineno_2" &&
  6.5532 +-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
  6.5533 +-  # Find who we are.  Look in the path if we contain no path at all
  6.5534 +-  # relative or not.
  6.5535 +-  case $0 in
  6.5536 +-    *[\\/]* ) as_myself=$0 ;;
  6.5537 +-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.5538 +-for as_dir in $PATH
  6.5539 +-do
  6.5540 +-  IFS=$as_save_IFS
  6.5541 +-  test -z "$as_dir" && as_dir=.
  6.5542 +-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
  6.5543 +-done
  6.5544 ++exitcode=0
  6.5545 ++if as_func_success; then
  6.5546 ++  :
  6.5547 ++else
  6.5548 ++  exitcode=1
  6.5549 ++  echo as_func_success failed.
  6.5550 ++fi
  6.5551 + 
  6.5552 +-       ;;
  6.5553 +-  esac
  6.5554 +-  # We did not find ourselves, most probably we were run as `sh COMMAND'
  6.5555 +-  # in which case we are not to be found in the path.
  6.5556 +-  if test "x$as_myself" = x; then
  6.5557 +-    as_myself=$0
  6.5558 +-  fi
  6.5559 +-  if test ! -f "$as_myself"; then
  6.5560 +-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
  6.5561 +-   { (exit 1); exit 1; }; }
  6.5562 +-  fi
  6.5563 +-  case $CONFIG_SHELL in
  6.5564 +-  '')
  6.5565 ++if as_func_failure; then
  6.5566 ++  exitcode=1
  6.5567 ++  echo as_func_failure succeeded.
  6.5568 ++fi
  6.5569 ++
  6.5570 ++if as_func_ret_success; then
  6.5571 ++  :
  6.5572 ++else
  6.5573 ++  exitcode=1
  6.5574 ++  echo as_func_ret_success failed.
  6.5575 ++fi
  6.5576 ++
  6.5577 ++if as_func_ret_failure; then
  6.5578 ++  exitcode=1
  6.5579 ++  echo as_func_ret_failure succeeded.
  6.5580 ++fi
  6.5581 ++
  6.5582 ++if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
  6.5583 ++  :
  6.5584 ++else
  6.5585 ++  exitcode=1
  6.5586 ++  echo positional parameters were not saved.
  6.5587 ++fi
  6.5588 ++
  6.5589 ++test \$exitcode = 0) || { (exit 1); exit 1; }
  6.5590 ++
  6.5591 ++(
  6.5592 ++  as_lineno_1=\$LINENO
  6.5593 ++  as_lineno_2=\$LINENO
  6.5594 ++  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
  6.5595 ++  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
  6.5596 ++") 2> /dev/null; then
  6.5597 ++  :
  6.5598 ++else
  6.5599 ++  as_candidate_shells=
  6.5600 +     as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.5601 + for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
  6.5602 + do
  6.5603 +   IFS=$as_save_IFS
  6.5604 +   test -z "$as_dir" && as_dir=.
  6.5605 +-  for as_base in sh bash ksh sh5; do
  6.5606 +-	 case $as_dir in
  6.5607 ++  case $as_dir in
  6.5608 + 	 /*)
  6.5609 +-	   if ("$as_dir/$as_base" -c '
  6.5610 ++	   for as_base in sh bash ksh sh5; do
  6.5611 ++	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
  6.5612 ++	   done;;
  6.5613 ++       esac
  6.5614 ++done
  6.5615 ++IFS=$as_save_IFS
  6.5616 ++
  6.5617 ++
  6.5618 ++      for as_shell in $as_candidate_shells $SHELL; do
  6.5619 ++	 # Try only shells that exist, to save several forks.
  6.5620 ++	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
  6.5621 ++		{ ("$as_shell") 2> /dev/null <<\_ASEOF
  6.5622 ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
  6.5623 ++  emulate sh
  6.5624 ++  NULLCMD=:
  6.5625 ++  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
  6.5626 ++  # is contrary to our usage.  Disable this feature.
  6.5627 ++  alias -g '${1+"$@"}'='"$@"'
  6.5628 ++  setopt NO_GLOB_SUBST
  6.5629 ++else
  6.5630 ++  case `(set -o) 2>/dev/null` in
  6.5631 ++  *posix*) set -o posix ;;
  6.5632 ++esac
  6.5633 ++
  6.5634 ++fi
  6.5635 ++
  6.5636 ++
  6.5637 ++:
  6.5638 ++_ASEOF
  6.5639 ++}; then
  6.5640 ++  CONFIG_SHELL=$as_shell
  6.5641 ++	       as_have_required=yes
  6.5642 ++	       if { "$as_shell" 2> /dev/null <<\_ASEOF
  6.5643 ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
  6.5644 ++  emulate sh
  6.5645 ++  NULLCMD=:
  6.5646 ++  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
  6.5647 ++  # is contrary to our usage.  Disable this feature.
  6.5648 ++  alias -g '${1+"$@"}'='"$@"'
  6.5649 ++  setopt NO_GLOB_SUBST
  6.5650 ++else
  6.5651 ++  case `(set -o) 2>/dev/null` in
  6.5652 ++  *posix*) set -o posix ;;
  6.5653 ++esac
  6.5654 ++
  6.5655 ++fi
  6.5656 ++
  6.5657 ++
  6.5658 ++:
  6.5659 ++(as_func_return () {
  6.5660 ++  (exit $1)
  6.5661 ++}
  6.5662 ++as_func_success () {
  6.5663 ++  as_func_return 0
  6.5664 ++}
  6.5665 ++as_func_failure () {
  6.5666 ++  as_func_return 1
  6.5667 ++}
  6.5668 ++as_func_ret_success () {
  6.5669 ++  return 0
  6.5670 ++}
  6.5671 ++as_func_ret_failure () {
  6.5672 ++  return 1
  6.5673 ++}
  6.5674 ++
  6.5675 ++exitcode=0
  6.5676 ++if as_func_success; then
  6.5677 ++  :
  6.5678 ++else
  6.5679 ++  exitcode=1
  6.5680 ++  echo as_func_success failed.
  6.5681 ++fi
  6.5682 ++
  6.5683 ++if as_func_failure; then
  6.5684 ++  exitcode=1
  6.5685 ++  echo as_func_failure succeeded.
  6.5686 ++fi
  6.5687 ++
  6.5688 ++if as_func_ret_success; then
  6.5689 ++  :
  6.5690 ++else
  6.5691 ++  exitcode=1
  6.5692 ++  echo as_func_ret_success failed.
  6.5693 ++fi
  6.5694 ++
  6.5695 ++if as_func_ret_failure; then
  6.5696 ++  exitcode=1
  6.5697 ++  echo as_func_ret_failure succeeded.
  6.5698 ++fi
  6.5699 ++
  6.5700 ++if ( set x; as_func_ret_success y && test x = "$1" ); then
  6.5701 ++  :
  6.5702 ++else
  6.5703 ++  exitcode=1
  6.5704 ++  echo positional parameters were not saved.
  6.5705 ++fi
  6.5706 ++
  6.5707 ++test $exitcode = 0) || { (exit 1); exit 1; }
  6.5708 ++
  6.5709 ++(
  6.5710 +   as_lineno_1=$LINENO
  6.5711 +   as_lineno_2=$LINENO
  6.5712 +-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
  6.5713 +   test "x$as_lineno_1" != "x$as_lineno_2" &&
  6.5714 +-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
  6.5715 +-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
  6.5716 +-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
  6.5717 +-	     CONFIG_SHELL=$as_dir/$as_base
  6.5718 +-	     export CONFIG_SHELL
  6.5719 +-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
  6.5720 +-	   fi;;
  6.5721 +-	 esac
  6.5722 +-       done
  6.5723 +-done
  6.5724 +-;;
  6.5725 +-  esac
  6.5726 ++  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
  6.5727 ++
  6.5728 ++_ASEOF
  6.5729 ++}; then
  6.5730 ++  break
  6.5731 ++fi
  6.5732 ++
  6.5733 ++fi
  6.5734 ++
  6.5735 ++      done
  6.5736 ++
  6.5737 ++      if test "x$CONFIG_SHELL" != x; then
  6.5738 ++  for as_var in BASH_ENV ENV
  6.5739 ++        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
  6.5740 ++        done
  6.5741 ++        export CONFIG_SHELL
  6.5742 ++        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
  6.5743 ++fi
  6.5744 ++
  6.5745 ++
  6.5746 ++    if test $as_have_required = no; then
  6.5747 ++  echo This script requires a shell more modern than all the
  6.5748 ++      echo shells that I found on your system.  Please install a
  6.5749 ++      echo modern shell, or manually run the script under such a
  6.5750 ++      echo shell if you do have one.
  6.5751 ++      { (exit 1); exit 1; }
  6.5752 ++fi
  6.5753 ++
  6.5754 ++
  6.5755 ++fi
  6.5756 ++
  6.5757 ++fi
  6.5758 ++
  6.5759 ++
  6.5760 ++
  6.5761 ++(eval "as_func_return () {
  6.5762 ++  (exit \$1)
  6.5763 ++}
  6.5764 ++as_func_success () {
  6.5765 ++  as_func_return 0
  6.5766 ++}
  6.5767 ++as_func_failure () {
  6.5768 ++  as_func_return 1
  6.5769 ++}
  6.5770 ++as_func_ret_success () {
  6.5771 ++  return 0
  6.5772 ++}
  6.5773 ++as_func_ret_failure () {
  6.5774 ++  return 1
  6.5775 ++}
  6.5776 ++
  6.5777 ++exitcode=0
  6.5778 ++if as_func_success; then
  6.5779 ++  :
  6.5780 ++else
  6.5781 ++  exitcode=1
  6.5782 ++  echo as_func_success failed.
  6.5783 ++fi
  6.5784 ++
  6.5785 ++if as_func_failure; then
  6.5786 ++  exitcode=1
  6.5787 ++  echo as_func_failure succeeded.
  6.5788 ++fi
  6.5789 ++
  6.5790 ++if as_func_ret_success; then
  6.5791 ++  :
  6.5792 ++else
  6.5793 ++  exitcode=1
  6.5794 ++  echo as_func_ret_success failed.
  6.5795 ++fi
  6.5796 ++
  6.5797 ++if as_func_ret_failure; then
  6.5798 ++  exitcode=1
  6.5799 ++  echo as_func_ret_failure succeeded.
  6.5800 ++fi
  6.5801 ++
  6.5802 ++if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
  6.5803 ++  :
  6.5804 ++else
  6.5805 ++  exitcode=1
  6.5806 ++  echo positional parameters were not saved.
  6.5807 ++fi
  6.5808 ++
  6.5809 ++test \$exitcode = 0") || {
  6.5810 ++  echo No shell found that supports shell functions.
  6.5811 ++  echo Please tell autoconf@gnu.org about your system,
  6.5812 ++  echo including any error possibly output before this
  6.5813 ++  echo message
  6.5814 ++}
  6.5815 ++
  6.5816 ++
  6.5817 ++
  6.5818 ++  as_lineno_1=$LINENO
  6.5819 ++  as_lineno_2=$LINENO
  6.5820 ++  test "x$as_lineno_1" != "x$as_lineno_2" &&
  6.5821 ++  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
  6.5822 + 
  6.5823 +   # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
  6.5824 +   # uniformly replaced by the line number.  The first 'sed' inserts a
  6.5825 +-  # line-number line before each line; the second 'sed' does the real
  6.5826 +-  # work.  The second script uses 'N' to pair each line-number line
  6.5827 +-  # with the numbered line, and appends trailing '-' during
  6.5828 +-  # substitution so that $LINENO is not a special case at line end.
  6.5829 ++  # line-number line after each line using $LINENO; the second 'sed'
  6.5830 ++  # does the real work.  The second script uses 'N' to pair each
  6.5831 ++  # line-number line with the line containing $LINENO, and appends
  6.5832 ++  # trailing '-' during substitution so that $LINENO is not a special
  6.5833 ++  # case at line end.
  6.5834 +   # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
  6.5835 +-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
  6.5836 +-  sed '=' <$as_myself |
  6.5837 ++  # scripts with optimization help from Paolo Bonzini.  Blame Lee
  6.5838 ++  # E. McMahon (1931-1989) for sed's syntax.  :-)
  6.5839 ++  sed -n '
  6.5840 ++    p
  6.5841 ++    /[$]LINENO/=
  6.5842 ++  ' <$as_myself |
  6.5843 +     sed '
  6.5844 ++      s/[$]LINENO.*/&-/
  6.5845 ++      t lineno
  6.5846 ++      b
  6.5847 ++      :lineno
  6.5848 +       N
  6.5849 +-      s,$,-,
  6.5850 +-      : loop
  6.5851 +-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
  6.5852 ++      :loop
  6.5853 ++      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
  6.5854 +       t loop
  6.5855 +-      s,-$,,
  6.5856 +-      s,^['$as_cr_digits']*\n,,
  6.5857 ++      s/-\n.*//
  6.5858 +     ' >$as_me.lineno &&
  6.5859 +-  chmod +x $as_me.lineno ||
  6.5860 ++  chmod +x "$as_me.lineno" ||
  6.5861 +     { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
  6.5862 +    { (exit 1); exit 1; }; }
  6.5863 + 
  6.5864 +   # Don't try to exec as it changes $[0], causing all sort of problems
  6.5865 +   # (the dirname of $[0] is not the place where we might find the
  6.5866 +-  # original and so on.  Autoconf is especially sensible to this).
  6.5867 +-  . ./$as_me.lineno
  6.5868 ++  # original and so on.  Autoconf is especially sensitive to this).
  6.5869 ++  . "./$as_me.lineno"
  6.5870 +   # Exit status is that of the last command.
  6.5871 +   exit
  6.5872 + }
  6.5873 + 
  6.5874 + 
  6.5875 +-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
  6.5876 +-  *c*,-n*) ECHO_N= ECHO_C='
  6.5877 +-' ECHO_T='	' ;;
  6.5878 +-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
  6.5879 +-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
  6.5880 ++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
  6.5881 ++  as_dirname=dirname
  6.5882 ++else
  6.5883 ++  as_dirname=false
  6.5884 ++fi
  6.5885 ++
  6.5886 ++ECHO_C= ECHO_N= ECHO_T=
  6.5887 ++case `echo -n x` in
  6.5888 ++-n*)
  6.5889 ++  case `echo 'x\c'` in
  6.5890 ++  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
  6.5891 ++  *)   ECHO_C='\c';;
  6.5892 ++  esac;;
  6.5893 ++*)
  6.5894 ++  ECHO_N='-n';;
  6.5895 + esac
  6.5896 + 
  6.5897 +-if expr a : '\(a\)' >/dev/null 2>&1; then
  6.5898 ++if expr a : '\(a\)' >/dev/null 2>&1 &&
  6.5899 ++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
  6.5900 +   as_expr=expr
  6.5901 + else
  6.5902 +   as_expr=false
  6.5903 + fi
  6.5904 + 
  6.5905 + rm -f conf$$ conf$$.exe conf$$.file
  6.5906 ++if test -d conf$$.dir; then
  6.5907 ++  rm -f conf$$.dir/conf$$.file
  6.5908 ++else
  6.5909 ++  rm -f conf$$.dir
  6.5910 ++  mkdir conf$$.dir
  6.5911 ++fi
  6.5912 + echo >conf$$.file
  6.5913 + if ln -s conf$$.file conf$$ 2>/dev/null; then
  6.5914 +-  # We could just check for DJGPP; but this test a) works b) is more generic
  6.5915 +-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
  6.5916 +-  if test -f conf$$.exe; then
  6.5917 +-    # Don't use ln at all; we don't have any links
  6.5918 ++  as_ln_s='ln -s'
  6.5919 ++  # ... but there are two gotchas:
  6.5920 ++  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
  6.5921 ++  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
  6.5922 ++  # In both cases, we have to default to `cp -p'.
  6.5923 ++  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
  6.5924 +     as_ln_s='cp -p'
  6.5925 +-  else
  6.5926 +-    as_ln_s='ln -s'
  6.5927 +-  fi
  6.5928 + elif ln conf$$.file conf$$ 2>/dev/null; then
  6.5929 +   as_ln_s=ln
  6.5930 + else
  6.5931 +   as_ln_s='cp -p'
  6.5932 + fi
  6.5933 +-rm -f conf$$ conf$$.exe conf$$.file
  6.5934 ++rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
  6.5935 ++rmdir conf$$.dir 2>/dev/null
  6.5936 + 
  6.5937 + if mkdir -p . 2>/dev/null; then
  6.5938 +   as_mkdir_p=:
  6.5939 +@@ -222,7 +518,28 @@
  6.5940 +   as_mkdir_p=false
  6.5941 + fi
  6.5942 + 
  6.5943 +-as_executable_p="test -f"
  6.5944 ++if test -x / >/dev/null 2>&1; then
  6.5945 ++  as_test_x='test -x'
  6.5946 ++else
  6.5947 ++  if ls -dL / >/dev/null 2>&1; then
  6.5948 ++    as_ls_L_option=L
  6.5949 ++  else
  6.5950 ++    as_ls_L_option=
  6.5951 ++  fi
  6.5952 ++  as_test_x='
  6.5953 ++    eval sh -c '\''
  6.5954 ++      if test -d "$1"; then
  6.5955 ++        test -d "$1/.";
  6.5956 ++      else
  6.5957 ++	case $1 in
  6.5958 ++        -*)set "./$1";;
  6.5959 ++	esac;
  6.5960 ++	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
  6.5961 ++	???[sx]*):;;*)false;;esac;fi
  6.5962 ++    '\'' sh
  6.5963 ++  '
  6.5964 ++fi
  6.5965 ++as_executable_p=$as_test_x
  6.5966 + 
  6.5967 + # Sed expression to map a string onto a valid CPP name.
  6.5968 + as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
  6.5969 +@@ -231,15 +548,6 @@
  6.5970 + as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
  6.5971 + 
  6.5972 + 
  6.5973 +-# IFS
  6.5974 +-# We need space, tab and new line, in precisely that order.
  6.5975 +-as_nl='
  6.5976 +-'
  6.5977 +-IFS=" 	$as_nl"
  6.5978 +-
  6.5979 +-# CDPATH.
  6.5980 +-$as_unset CDPATH
  6.5981 +-
  6.5982 + 
  6.5983 + 
  6.5984 + # Check that we are running under the correct shell.
  6.5985 +@@ -390,29 +698,26 @@
  6.5986 + 
  6.5987 + 
  6.5988 + 
  6.5989 ++exec 7<&0 </dev/null 6>&1
  6.5990 ++
  6.5991 + # Name of the host.
  6.5992 + # hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
  6.5993 + # so uname gets run too.
  6.5994 + ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
  6.5995 + 
  6.5996 +-exec 6>&1
  6.5997 +-
  6.5998 + #
  6.5999 + # Initializations.
  6.6000 + #
  6.6001 + ac_default_prefix=/usr/local
  6.6002 ++ac_clean_files=
  6.6003 + ac_config_libobj_dir=.
  6.6004 ++LIBOBJS=
  6.6005 + cross_compiling=no
  6.6006 + subdirs=
  6.6007 + MFLAGS=
  6.6008 + MAKEFLAGS=
  6.6009 + SHELL=${CONFIG_SHELL-/bin/sh}
  6.6010 + 
  6.6011 +-# Maximum number of lines to put in a shell here document.
  6.6012 +-# This variable seems obsolete.  It should probably be removed, and
  6.6013 +-# only ac_max_sed_lines should be used.
  6.6014 +-: ${ac_max_here_lines=38}
  6.6015 +-
  6.6016 + # Identity of this package.
  6.6017 + PACKAGE_NAME='newlib'
  6.6018 + PACKAGE_TARNAME='newlib'
  6.6019 +@@ -424,81 +729,228 @@
  6.6020 + # Factoring default headers for most tests.
  6.6021 + ac_includes_default="\
  6.6022 + #include <stdio.h>
  6.6023 +-#if HAVE_SYS_TYPES_H
  6.6024 ++#ifdef HAVE_SYS_TYPES_H
  6.6025 + # include <sys/types.h>
  6.6026 + #endif
  6.6027 +-#if HAVE_SYS_STAT_H
  6.6028 ++#ifdef HAVE_SYS_STAT_H
  6.6029 + # include <sys/stat.h>
  6.6030 + #endif
  6.6031 +-#if STDC_HEADERS
  6.6032 ++#ifdef STDC_HEADERS
  6.6033 + # include <stdlib.h>
  6.6034 + # include <stddef.h>
  6.6035 + #else
  6.6036 +-# if HAVE_STDLIB_H
  6.6037 ++# ifdef HAVE_STDLIB_H
  6.6038 + #  include <stdlib.h>
  6.6039 + # endif
  6.6040 + #endif
  6.6041 +-#if HAVE_STRING_H
  6.6042 +-# if !STDC_HEADERS && HAVE_MEMORY_H
  6.6043 ++#ifdef HAVE_STRING_H
  6.6044 ++# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
  6.6045 + #  include <memory.h>
  6.6046 + # endif
  6.6047 + # include <string.h>
  6.6048 + #endif
  6.6049 +-#if HAVE_STRINGS_H
  6.6050 ++#ifdef HAVE_STRINGS_H
  6.6051 + # include <strings.h>
  6.6052 + #endif
  6.6053 +-#if HAVE_INTTYPES_H
  6.6054 ++#ifdef HAVE_INTTYPES_H
  6.6055 + # include <inttypes.h>
  6.6056 +-#else
  6.6057 +-# if HAVE_STDINT_H
  6.6058 +-#  include <stdint.h>
  6.6059 +-# endif
  6.6060 + #endif
  6.6061 +-#if HAVE_UNISTD_H
  6.6062 ++#ifdef HAVE_STDINT_H
  6.6063 ++# include <stdint.h>
  6.6064 ++#endif
  6.6065 ++#ifdef HAVE_UNISTD_H
  6.6066 + # include <unistd.h>
  6.6067 + #endif"
  6.6068 + 
  6.6069 +-ac_subdirs_all="$ac_subdirs_all a29k"
  6.6070 +-ac_subdirs_all="$ac_subdirs_all arm"
  6.6071 +-ac_subdirs_all="$ac_subdirs_all bfin"
  6.6072 +-ac_subdirs_all="$ac_subdirs_all cris"
  6.6073 +-ac_subdirs_all="$ac_subdirs_all crx"
  6.6074 +-ac_subdirs_all="$ac_subdirs_all d10v"
  6.6075 +-ac_subdirs_all="$ac_subdirs_all d30v"
  6.6076 +-ac_subdirs_all="$ac_subdirs_all fr30"
  6.6077 +-ac_subdirs_all="$ac_subdirs_all frv"
  6.6078 +-ac_subdirs_all="$ac_subdirs_all h8300"
  6.6079 +-ac_subdirs_all="$ac_subdirs_all h8500"
  6.6080 +-ac_subdirs_all="$ac_subdirs_all hppa"
  6.6081 +-ac_subdirs_all="$ac_subdirs_all i386"
  6.6082 +-ac_subdirs_all="$ac_subdirs_all i960"
  6.6083 +-ac_subdirs_all="$ac_subdirs_all iq2000"
  6.6084 +-ac_subdirs_all="$ac_subdirs_all lm32"
  6.6085 +-ac_subdirs_all="$ac_subdirs_all m32c"
  6.6086 +-ac_subdirs_all="$ac_subdirs_all m32r"
  6.6087 +-ac_subdirs_all="$ac_subdirs_all m68hc11"
  6.6088 +-ac_subdirs_all="$ac_subdirs_all m68k"
  6.6089 +-ac_subdirs_all="$ac_subdirs_all m88k"
  6.6090 +-ac_subdirs_all="$ac_subdirs_all mep"
  6.6091 +-ac_subdirs_all="$ac_subdirs_all mips"
  6.6092 +-ac_subdirs_all="$ac_subdirs_all mn10200"
  6.6093 +-ac_subdirs_all="$ac_subdirs_all mn10300"
  6.6094 +-ac_subdirs_all="$ac_subdirs_all mt"
  6.6095 +-ac_subdirs_all="$ac_subdirs_all necv70"
  6.6096 +-ac_subdirs_all="$ac_subdirs_all powerpc"
  6.6097 +-ac_subdirs_all="$ac_subdirs_all sh"
  6.6098 +-ac_subdirs_all="$ac_subdirs_all sparc"
  6.6099 +-ac_subdirs_all="$ac_subdirs_all spu"
  6.6100 +-ac_subdirs_all="$ac_subdirs_all tic4x"
  6.6101 +-ac_subdirs_all="$ac_subdirs_all tic80"
  6.6102 +-ac_subdirs_all="$ac_subdirs_all v850"
  6.6103 +-ac_subdirs_all="$ac_subdirs_all w65"
  6.6104 +-ac_subdirs_all="$ac_subdirs_all x86_64"
  6.6105 +-ac_subdirs_all="$ac_subdirs_all xscale"
  6.6106 +-ac_subdirs_all="$ac_subdirs_all xstormy16"
  6.6107 +-ac_subdirs_all="$ac_subdirs_all z8k"
  6.6108 +-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAY_SUPPLY_SYSCALLS_TRUE MAY_SUPPLY_SYSCALLS_FALSE newlib_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB READELF ac_ct_READELF MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CCAS CCASFLAGS NEWLIB_CFLAGS LDFLAGS ELIX_LEVEL_0_TRUE ELIX_LEVEL_0_FALSE ELIX_LEVEL_1_TRUE ELIX_LEVEL_1_FALSE ELIX_LEVEL_2_TRUE ELIX_LEVEL_2_FALSE ELIX_LEVEL_3_TRUE ELIX_LEVEL_3_FALSE ELIX_LEVEL_4_TRUE ELIX_LEVEL_4_FALSE USE_LIBTOOL_TRUE USE_LIBTOOL_FALSE OBJEXT oext aext lpfx libm_machine_dir machine_dir sys_dir SED DLLTOOL ac_ct_DLLTOOL OBJDUMP ac_ct_OBJDUMP LIBTOOL CFLAGS CPPFLAGS ac_ct_CC EXEEXT EGREP FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM LN_S lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CPP subdirs HAVE_MACHINE_DIR_TRUE HAVE_MACHINE_DIR_FALSE LIBOBJS LTLIBOBJS'
  6.6109 ++ac_subst_vars='SHELL
  6.6110 ++PATH_SEPARATOR
  6.6111 ++PACKAGE_NAME
  6.6112 ++PACKAGE_TARNAME
  6.6113 ++PACKAGE_VERSION
  6.6114 ++PACKAGE_STRING
  6.6115 ++PACKAGE_BUGREPORT
  6.6116 ++exec_prefix
  6.6117 ++prefix
  6.6118 ++program_transform_name
  6.6119 ++bindir
  6.6120 ++sbindir
  6.6121 ++libexecdir
  6.6122 ++datarootdir
  6.6123 ++datadir
  6.6124 ++sysconfdir
  6.6125 ++sharedstatedir
  6.6126 ++localstatedir
  6.6127 ++includedir
  6.6128 ++oldincludedir
  6.6129 ++docdir
  6.6130 ++infodir
  6.6131 ++htmldir
  6.6132 ++dvidir
  6.6133 ++pdfdir
  6.6134 ++psdir
  6.6135 ++libdir
  6.6136 ++localedir
  6.6137 ++mandir
  6.6138 ++DEFS
  6.6139 ++ECHO_C
  6.6140 ++ECHO_N
  6.6141 ++ECHO_T
  6.6142 ++LIBS
  6.6143 ++build_alias
  6.6144 ++host_alias
  6.6145 ++target_alias
  6.6146 ++MAY_SUPPLY_SYSCALLS_TRUE
  6.6147 ++MAY_SUPPLY_SYSCALLS_FALSE
  6.6148 ++newlib_basedir
  6.6149 ++build
  6.6150 ++build_cpu
  6.6151 ++build_vendor
  6.6152 ++build_os
  6.6153 ++host
  6.6154 ++host_cpu
  6.6155 ++host_vendor
  6.6156 ++host_os
  6.6157 ++INSTALL_PROGRAM
  6.6158 ++INSTALL_SCRIPT
  6.6159 ++INSTALL_DATA
  6.6160 ++CYGPATH_W
  6.6161 ++PACKAGE
  6.6162 ++VERSION
  6.6163 ++ACLOCAL
  6.6164 ++AUTOCONF
  6.6165 ++AUTOMAKE
  6.6166 ++AUTOHEADER
  6.6167 ++MAKEINFO
  6.6168 ++install_sh
  6.6169 ++STRIP
  6.6170 ++INSTALL_STRIP_PROGRAM
  6.6171 ++mkdir_p
  6.6172 ++AWK
  6.6173 ++SET_MAKE
  6.6174 ++am__leading_dot
  6.6175 ++AMTAR
  6.6176 ++am__tar
  6.6177 ++am__untar
  6.6178 ++CC
  6.6179 ++DEPDIR
  6.6180 ++am__include
  6.6181 ++am__quote
  6.6182 ++AMDEP_TRUE
  6.6183 ++AMDEP_FALSE
  6.6184 ++AMDEPBACKSLASH
  6.6185 ++CCDEPMODE
  6.6186 ++am__fastdepCC_TRUE
  6.6187 ++am__fastdepCC_FALSE
  6.6188 ++AS
  6.6189 ++AR
  6.6190 ++RANLIB
  6.6191 ++READELF
  6.6192 ++MAINTAINER_MODE_TRUE
  6.6193 ++MAINTAINER_MODE_FALSE
  6.6194 ++MAINT
  6.6195 ++CCAS
  6.6196 ++CCASFLAGS
  6.6197 ++NEWLIB_CFLAGS
  6.6198 ++LDFLAGS
  6.6199 ++ELIX_LEVEL_0_TRUE
  6.6200 ++ELIX_LEVEL_0_FALSE
  6.6201 ++ELIX_LEVEL_1_TRUE
  6.6202 ++ELIX_LEVEL_1_FALSE
  6.6203 ++ELIX_LEVEL_2_TRUE
  6.6204 ++ELIX_LEVEL_2_FALSE
  6.6205 ++ELIX_LEVEL_3_TRUE
  6.6206 ++ELIX_LEVEL_3_FALSE
  6.6207 ++ELIX_LEVEL_4_TRUE
  6.6208 ++ELIX_LEVEL_4_FALSE
  6.6209 ++USE_LIBTOOL_TRUE
  6.6210 ++USE_LIBTOOL_FALSE
  6.6211 ++OBJEXT
  6.6212 ++oext
  6.6213 ++aext
  6.6214 ++lpfx
  6.6215 ++libm_machine_dir
  6.6216 ++machine_dir
  6.6217 ++sys_dir
  6.6218 ++SED
  6.6219 ++DLLTOOL
  6.6220 ++OBJDUMP
  6.6221 ++LIBTOOL
  6.6222 ++CFLAGS
  6.6223 ++CPPFLAGS
  6.6224 ++ac_ct_CC
  6.6225 ++EXEEXT
  6.6226 ++GREP
  6.6227 ++EGREP
  6.6228 ++FGREP
  6.6229 ++LD
  6.6230 ++DUMPBIN
  6.6231 ++ac_ct_DUMPBIN
  6.6232 ++NM
  6.6233 ++LN_S
  6.6234 ++lt_ECHO
  6.6235 ++DSYMUTIL
  6.6236 ++NMEDIT
  6.6237 ++LIPO
  6.6238 ++OTOOL
  6.6239 ++OTOOL64
  6.6240 ++CPP
  6.6241 ++subdirs
  6.6242 ++HAVE_MACHINE_DIR_TRUE
  6.6243 ++HAVE_MACHINE_DIR_FALSE
  6.6244 ++LIBOBJS
  6.6245 ++LTLIBOBJS'
  6.6246 + ac_subst_files=''
  6.6247 ++      ac_precious_vars='build_alias
  6.6248 ++host_alias
  6.6249 ++target_alias
  6.6250 ++CCAS
  6.6251 ++CCASFLAGS
  6.6252 ++CC
  6.6253 ++CFLAGS
  6.6254 ++LDFLAGS
  6.6255 ++LIBS
  6.6256 ++CPPFLAGS
  6.6257 ++CPP'
  6.6258 ++ac_subdirs_all='a29k
  6.6259 ++arm
  6.6260 ++avr32
  6.6261 ++bfin
  6.6262 ++cris
  6.6263 ++crx
  6.6264 ++d10v
  6.6265 ++d30v
  6.6266 ++fr30
  6.6267 ++frv
  6.6268 ++h8300
  6.6269 ++h8500
  6.6270 ++hppa
  6.6271 ++i386
  6.6272 ++i960
  6.6273 ++iq2000
  6.6274 ++lm32
  6.6275 ++m32c
  6.6276 ++m32r
  6.6277 ++m68hc11
  6.6278 ++m68k
  6.6279 ++m88k
  6.6280 ++mep
  6.6281 ++mips
  6.6282 ++mn10200
  6.6283 ++mn10300
  6.6284 ++mt
  6.6285 ++necv70
  6.6286 ++powerpc
  6.6287 ++sh
  6.6288 ++sparc
  6.6289 ++spu
  6.6290 ++tic4x
  6.6291 ++tic80
  6.6292 ++v850
  6.6293 ++w65
  6.6294 ++x86_64
  6.6295 ++xscale
  6.6296 ++xstormy16
  6.6297 ++z8k'
  6.6298 + 
  6.6299 + # Initialize some variables set by options.
  6.6300 + ac_init_help=
  6.6301 +@@ -525,34 +977,48 @@
  6.6302 + # and all the variables that are supposed to be based on exec_prefix
  6.6303 + # by default will actually change.
  6.6304 + # Use braces instead of parens because sh, perl, etc. also accept them.
  6.6305 ++# (The list follows the same order as the GNU Coding Standards.)
  6.6306 + bindir='${exec_prefix}/bin'
  6.6307 + sbindir='${exec_prefix}/sbin'
  6.6308 + libexecdir='${exec_prefix}/libexec'
  6.6309 +-datadir='${prefix}/share'
  6.6310 ++datarootdir='${prefix}/share'
  6.6311 ++datadir='${datarootdir}'
  6.6312 + sysconfdir='${prefix}/etc'
  6.6313 + sharedstatedir='${prefix}/com'
  6.6314 + localstatedir='${prefix}/var'
  6.6315 +-libdir='${exec_prefix}/lib'
  6.6316 + includedir='${prefix}/include'
  6.6317 + oldincludedir='/usr/include'
  6.6318 +-infodir='${prefix}/info'
  6.6319 +-mandir='${prefix}/man'
  6.6320 ++docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
  6.6321 ++infodir='${datarootdir}/info'
  6.6322 ++htmldir='${docdir}'
  6.6323 ++dvidir='${docdir}'
  6.6324 ++pdfdir='${docdir}'
  6.6325 ++psdir='${docdir}'
  6.6326 ++libdir='${exec_prefix}/lib'
  6.6327 ++localedir='${datarootdir}/locale'
  6.6328 ++mandir='${datarootdir}/man'
  6.6329 + 
  6.6330 + ac_prev=
  6.6331 ++ac_dashdash=
  6.6332 + for ac_option
  6.6333 + do
  6.6334 +   # If the previous option needs an argument, assign it.
  6.6335 +   if test -n "$ac_prev"; then
  6.6336 +-    eval "$ac_prev=\$ac_option"
  6.6337 ++    eval $ac_prev=\$ac_option
  6.6338 +     ac_prev=
  6.6339 +     continue
  6.6340 +   fi
  6.6341 + 
  6.6342 +-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
  6.6343 ++  case $ac_option in
  6.6344 ++  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
  6.6345 ++  *)	ac_optarg=yes ;;
  6.6346 ++  esac
  6.6347 + 
  6.6348 +   # Accept the important Cygnus configure options, so we can diagnose typos.
  6.6349 + 
  6.6350 +-  case $ac_option in
  6.6351 ++  case $ac_dashdash$ac_option in
  6.6352 ++  --)
  6.6353 ++    ac_dashdash=yes ;;
  6.6354 + 
  6.6355 +   -bindir | --bindir | --bindi | --bind | --bin | --bi)
  6.6356 +     ac_prev=bindir ;;
  6.6357 +@@ -574,33 +1040,45 @@
  6.6358 +   --config-cache | -C)
  6.6359 +     cache_file=config.cache ;;
  6.6360 + 
  6.6361 +-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
  6.6362 ++  -datadir | --datadir | --datadi | --datad)
  6.6363 +     ac_prev=datadir ;;
  6.6364 +-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
  6.6365 +-  | --da=*)
  6.6366 ++  -datadir=* | --datadir=* | --datadi=* | --datad=*)
  6.6367 +     datadir=$ac_optarg ;;
  6.6368 + 
  6.6369 ++  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
  6.6370 ++  | --dataroo | --dataro | --datar)
  6.6371 ++    ac_prev=datarootdir ;;
  6.6372 ++  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
  6.6373 ++  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
  6.6374 ++    datarootdir=$ac_optarg ;;
  6.6375 ++
  6.6376 +   -disable-* | --disable-*)
  6.6377 +     ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
  6.6378 +     # Reject names that are not valid shell variable names.
  6.6379 +-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
  6.6380 ++    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
  6.6381 +       { echo "$as_me: error: invalid feature name: $ac_feature" >&2
  6.6382 +    { (exit 1); exit 1; }; }
  6.6383 +-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
  6.6384 +-    eval "enable_$ac_feature=no" ;;
  6.6385 ++    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
  6.6386 ++    eval enable_$ac_feature=no ;;
  6.6387 ++
  6.6388 ++  -docdir | --docdir | --docdi | --doc | --do)
  6.6389 ++    ac_prev=docdir ;;
  6.6390 ++  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
  6.6391 ++    docdir=$ac_optarg ;;
  6.6392 ++
  6.6393 ++  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
  6.6394 ++    ac_prev=dvidir ;;
  6.6395 ++  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
  6.6396 ++    dvidir=$ac_optarg ;;
  6.6397 + 
  6.6398 +   -enable-* | --enable-*)
  6.6399 +     ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
  6.6400 +     # Reject names that are not valid shell variable names.
  6.6401 +-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
  6.6402 ++    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
  6.6403 +       { echo "$as_me: error: invalid feature name: $ac_feature" >&2
  6.6404 +    { (exit 1); exit 1; }; }
  6.6405 +-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
  6.6406 +-    case $ac_option in
  6.6407 +-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
  6.6408 +-      *) ac_optarg=yes ;;
  6.6409 +-    esac
  6.6410 +-    eval "enable_$ac_feature='$ac_optarg'" ;;
  6.6411 ++    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
  6.6412 ++    eval enable_$ac_feature=\$ac_optarg ;;
  6.6413 + 
  6.6414 +   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
  6.6415 +   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
  6.6416 +@@ -627,6 +1105,12 @@
  6.6417 +   -host=* | --host=* | --hos=* | --ho=*)
  6.6418 +     host_alias=$ac_optarg ;;
  6.6419 + 
  6.6420 ++  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
  6.6421 ++    ac_prev=htmldir ;;
  6.6422 ++  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
  6.6423 ++  | --ht=*)
  6.6424 ++    htmldir=$ac_optarg ;;
  6.6425 ++
  6.6426 +   -includedir | --includedir | --includedi | --included | --include \
  6.6427 +   | --includ | --inclu | --incl | --inc)
  6.6428 +     ac_prev=includedir ;;
  6.6429 +@@ -651,13 +1135,16 @@
  6.6430 +   | --libexe=* | --libex=* | --libe=*)
  6.6431 +     libexecdir=$ac_optarg ;;
  6.6432 + 
  6.6433 ++  -localedir | --localedir | --localedi | --localed | --locale)
  6.6434 ++    ac_prev=localedir ;;
  6.6435 ++  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
  6.6436 ++    localedir=$ac_optarg ;;
  6.6437 ++
  6.6438 +   -localstatedir | --localstatedir | --localstatedi | --localstated \
  6.6439 +-  | --localstate | --localstat | --localsta | --localst \
  6.6440 +-  | --locals | --local | --loca | --loc | --lo)
  6.6441 ++  | --localstate | --localstat | --localsta | --localst | --locals)
  6.6442 +     ac_prev=localstatedir ;;
  6.6443 +   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
  6.6444 +-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
  6.6445 +-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
  6.6446 ++  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
  6.6447 +     localstatedir=$ac_optarg ;;
  6.6448 + 
  6.6449 +   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
  6.6450 +@@ -722,6 +1209,16 @@
  6.6451 +   | --progr-tra=* | --program-tr=* | --program-t=*)
  6.6452 +     program_transform_name=$ac_optarg ;;
  6.6453 + 
  6.6454 ++  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
  6.6455 ++    ac_prev=pdfdir ;;
  6.6456 ++  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
  6.6457 ++    pdfdir=$ac_optarg ;;
  6.6458 ++
  6.6459 ++  -psdir | --psdir | --psdi | --psd | --ps)
  6.6460 ++    ac_prev=psdir ;;
  6.6461 ++  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
  6.6462 ++    psdir=$ac_optarg ;;
  6.6463 ++
  6.6464 +   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
  6.6465 +   | -silent | --silent | --silen | --sile | --sil)
  6.6466 +     silent=yes ;;
  6.6467 +@@ -774,24 +1271,20 @@
  6.6468 +   -with-* | --with-*)
  6.6469 +     ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
  6.6470 +     # Reject names that are not valid shell variable names.
  6.6471 +-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
  6.6472 ++    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
  6.6473 +       { echo "$as_me: error: invalid package name: $ac_package" >&2
  6.6474 +    { (exit 1); exit 1; }; }
  6.6475 +-    ac_package=`echo $ac_package| sed 's/-/_/g'`
  6.6476 +-    case $ac_option in
  6.6477 +-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
  6.6478 +-      *) ac_optarg=yes ;;
  6.6479 +-    esac
  6.6480 +-    eval "with_$ac_package='$ac_optarg'" ;;
  6.6481 ++    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
  6.6482 ++    eval with_$ac_package=\$ac_optarg ;;
  6.6483 + 
  6.6484 +   -without-* | --without-*)
  6.6485 +     ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
  6.6486 +     # Reject names that are not valid shell variable names.
  6.6487 +-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
  6.6488 ++    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
  6.6489 +       { echo "$as_me: error: invalid package name: $ac_package" >&2
  6.6490 +    { (exit 1); exit 1; }; }
  6.6491 +-    ac_package=`echo $ac_package | sed 's/-/_/g'`
  6.6492 +-    eval "with_$ac_package=no" ;;
  6.6493 ++    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
  6.6494 ++    eval with_$ac_package=no ;;
  6.6495 + 
  6.6496 +   --x)
  6.6497 +     # Obsolete; use --with-x.
  6.6498 +@@ -822,8 +1315,7 @@
  6.6499 +     expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
  6.6500 +       { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
  6.6501 +    { (exit 1); exit 1; }; }
  6.6502 +-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
  6.6503 +-    eval "$ac_envvar='$ac_optarg'"
  6.6504 ++    eval $ac_envvar=\$ac_optarg
  6.6505 +     export $ac_envvar ;;
  6.6506 + 
  6.6507 +   *)
  6.6508 +@@ -843,27 +1335,19 @@
  6.6509 +    { (exit 1); exit 1; }; }
  6.6510 + fi
  6.6511 + 
  6.6512 +-# Be sure to have absolute paths.
  6.6513 +-for ac_var in exec_prefix prefix
  6.6514 +-do
  6.6515 +-  eval ac_val=$`echo $ac_var`
  6.6516 +-  case $ac_val in
  6.6517 +-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
  6.6518 +-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
  6.6519 +-   { (exit 1); exit 1; }; };;
  6.6520 +-  esac
  6.6521 +-done
  6.6522 +-
  6.6523 +-# Be sure to have absolute paths.
  6.6524 +-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
  6.6525 +-	      localstatedir libdir includedir oldincludedir infodir mandir
  6.6526 ++# Be sure to have absolute directory names.
  6.6527 ++for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
  6.6528 ++		datadir sysconfdir sharedstatedir localstatedir includedir \
  6.6529 ++		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
  6.6530 ++		libdir localedir mandir
  6.6531 + do
  6.6532 +-  eval ac_val=$`echo $ac_var`
  6.6533 ++  eval ac_val=\$$ac_var
  6.6534 +   case $ac_val in
  6.6535 +-    [\\/$]* | ?:[\\/]* ) ;;
  6.6536 +-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
  6.6537 +-   { (exit 1); exit 1; }; };;
  6.6538 ++    [\\/$]* | ?:[\\/]* )  continue;;
  6.6539 ++    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
  6.6540 +   esac
  6.6541 ++  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
  6.6542 ++   { (exit 1); exit 1; }; }
  6.6543 + done
  6.6544 + 
  6.6545 + # There might be people who depend on the old broken behavior: `$host'
  6.6546 +@@ -890,82 +1374,76 @@
  6.6547 + test "$silent" = yes && exec 6>/dev/null
  6.6548 + 
  6.6549 + 
  6.6550 ++ac_pwd=`pwd` && test -n "$ac_pwd" &&
  6.6551 ++ac_ls_di=`ls -di .` &&
  6.6552 ++ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
  6.6553 ++  { echo "$as_me: error: Working directory cannot be determined" >&2
  6.6554 ++   { (exit 1); exit 1; }; }
  6.6555 ++test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
  6.6556 ++  { echo "$as_me: error: pwd does not report name of working directory" >&2
  6.6557 ++   { (exit 1); exit 1; }; }
  6.6558 ++
  6.6559 ++
  6.6560 + # Find the source files, if location was not specified.
  6.6561 + if test -z "$srcdir"; then
  6.6562 +   ac_srcdir_defaulted=yes
  6.6563 +-  # Try the directory containing this script, then its parent.
  6.6564 +-  ac_confdir=`(dirname "$0") 2>/dev/null ||
  6.6565 ++  # Try the directory containing this script, then the parent directory.
  6.6566 ++  ac_confdir=`$as_dirname -- "$0" ||
  6.6567 + $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
  6.6568 + 	 X"$0" : 'X\(//\)[^/]' \| \
  6.6569 + 	 X"$0" : 'X\(//\)$' \| \
  6.6570 +-	 X"$0" : 'X\(/\)' \| \
  6.6571 +-	 .     : '\(.\)' 2>/dev/null ||
  6.6572 ++	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
  6.6573 + echo X"$0" |
  6.6574 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
  6.6575 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
  6.6576 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
  6.6577 +-  	  /^X\(\/\).*/{ s//\1/; q; }
  6.6578 +-  	  s/.*/./; q'`
  6.6579 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
  6.6580 ++	    s//\1/
  6.6581 ++	    q
  6.6582 ++	  }
  6.6583 ++	  /^X\(\/\/\)[^/].*/{
  6.6584 ++	    s//\1/
  6.6585 ++	    q
  6.6586 ++	  }
  6.6587 ++	  /^X\(\/\/\)$/{
  6.6588 ++	    s//\1/
  6.6589 ++	    q
  6.6590 ++	  }
  6.6591 ++	  /^X\(\/\).*/{
  6.6592 ++	    s//\1/
  6.6593 ++	    q
  6.6594 ++	  }
  6.6595 ++	  s/.*/./; q'`
  6.6596 +   srcdir=$ac_confdir
  6.6597 +-  if test ! -r $srcdir/$ac_unique_file; then
  6.6598 ++  if test ! -r "$srcdir/$ac_unique_file"; then
  6.6599 +     srcdir=..
  6.6600 +   fi
  6.6601 + else
  6.6602 +   ac_srcdir_defaulted=no
  6.6603 + fi
  6.6604 +-if test ! -r $srcdir/$ac_unique_file; then
  6.6605 +-  if test "$ac_srcdir_defaulted" = yes; then
  6.6606 +-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
  6.6607 +-   { (exit 1); exit 1; }; }
  6.6608 +-  else
  6.6609 +-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
  6.6610 +-   { (exit 1); exit 1; }; }
  6.6611 +-  fi
  6.6612 +-fi
  6.6613 +-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
  6.6614 +-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
  6.6615 +-   { (exit 1); exit 1; }; }
  6.6616 +-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
  6.6617 +-ac_env_build_alias_set=${build_alias+set}
  6.6618 +-ac_env_build_alias_value=$build_alias
  6.6619 +-ac_cv_env_build_alias_set=${build_alias+set}
  6.6620 +-ac_cv_env_build_alias_value=$build_alias
  6.6621 +-ac_env_host_alias_set=${host_alias+set}
  6.6622 +-ac_env_host_alias_value=$host_alias
  6.6623 +-ac_cv_env_host_alias_set=${host_alias+set}
  6.6624 +-ac_cv_env_host_alias_value=$host_alias
  6.6625 +-ac_env_target_alias_set=${target_alias+set}
  6.6626 +-ac_env_target_alias_value=$target_alias
  6.6627 +-ac_cv_env_target_alias_set=${target_alias+set}
  6.6628 +-ac_cv_env_target_alias_value=$target_alias
  6.6629 +-ac_env_CCAS_set=${CCAS+set}
  6.6630 +-ac_env_CCAS_value=$CCAS
  6.6631 +-ac_cv_env_CCAS_set=${CCAS+set}
  6.6632 +-ac_cv_env_CCAS_value=$CCAS
  6.6633 +-ac_env_CCASFLAGS_set=${CCASFLAGS+set}
  6.6634 +-ac_env_CCASFLAGS_value=$CCASFLAGS
  6.6635 +-ac_cv_env_CCASFLAGS_set=${CCASFLAGS+set}
  6.6636 +-ac_cv_env_CCASFLAGS_value=$CCASFLAGS
  6.6637 +-ac_env_CC_set=${CC+set}
  6.6638 +-ac_env_CC_value=$CC
  6.6639 +-ac_cv_env_CC_set=${CC+set}
  6.6640 +-ac_cv_env_CC_value=$CC
  6.6641 +-ac_env_CFLAGS_set=${CFLAGS+set}
  6.6642 +-ac_env_CFLAGS_value=$CFLAGS
  6.6643 +-ac_cv_env_CFLAGS_set=${CFLAGS+set}
  6.6644 +-ac_cv_env_CFLAGS_value=$CFLAGS
  6.6645 +-ac_env_LDFLAGS_set=${LDFLAGS+set}
  6.6646 +-ac_env_LDFLAGS_value=$LDFLAGS
  6.6647 +-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
  6.6648 +-ac_cv_env_LDFLAGS_value=$LDFLAGS
  6.6649 +-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
  6.6650 +-ac_env_CPPFLAGS_value=$CPPFLAGS
  6.6651 +-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
  6.6652 +-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
  6.6653 +-ac_env_CPP_set=${CPP+set}
  6.6654 +-ac_env_CPP_value=$CPP
  6.6655 +-ac_cv_env_CPP_set=${CPP+set}
  6.6656 +-ac_cv_env_CPP_value=$CPP
  6.6657 ++if test ! -r "$srcdir/$ac_unique_file"; then
  6.6658 ++  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
  6.6659 ++  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
  6.6660 ++   { (exit 1); exit 1; }; }
  6.6661 ++fi
  6.6662 ++ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
  6.6663 ++ac_abs_confdir=`(
  6.6664 ++	cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
  6.6665 ++   { (exit 1); exit 1; }; }
  6.6666 ++	pwd)`
  6.6667 ++# When building in place, set srcdir=.
  6.6668 ++if test "$ac_abs_confdir" = "$ac_pwd"; then
  6.6669 ++  srcdir=.
  6.6670 ++fi
  6.6671 ++# Remove unnecessary trailing slashes from srcdir.
  6.6672 ++# Double slashes in file names in object file debugging info
  6.6673 ++# mess up M-x gdb in Emacs.
  6.6674 ++case $srcdir in
  6.6675 ++*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
  6.6676 ++esac
  6.6677 ++for ac_var in $ac_precious_vars; do
  6.6678 ++  eval ac_env_${ac_var}_set=\${${ac_var}+set}
  6.6679 ++  eval ac_env_${ac_var}_value=\$${ac_var}
  6.6680 ++  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
  6.6681 ++  eval ac_cv_env_${ac_var}_value=\$${ac_var}
  6.6682 ++done
  6.6683 + 
  6.6684 + #
  6.6685 + # Report the --help message.
  6.6686 +@@ -994,9 +1472,6 @@
  6.6687 +   -n, --no-create         do not create output files
  6.6688 +       --srcdir=DIR        find the sources in DIR [configure dir or \`..']
  6.6689 + 
  6.6690 +-_ACEOF
  6.6691 +-
  6.6692 +-  cat <<_ACEOF
  6.6693 + Installation directories:
  6.6694 +   --prefix=PREFIX         install architecture-independent files in PREFIX
  6.6695 + 			  [$ac_default_prefix]
  6.6696 +@@ -1014,15 +1489,22 @@
  6.6697 +   --bindir=DIR           user executables [EPREFIX/bin]
  6.6698 +   --sbindir=DIR          system admin executables [EPREFIX/sbin]
  6.6699 +   --libexecdir=DIR       program executables [EPREFIX/libexec]
  6.6700 +-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
  6.6701 +   --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
  6.6702 +   --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
  6.6703 +   --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
  6.6704 +   --libdir=DIR           object code libraries [EPREFIX/lib]
  6.6705 +   --includedir=DIR       C header files [PREFIX/include]
  6.6706 +   --oldincludedir=DIR    C header files for non-gcc [/usr/include]
  6.6707 +-  --infodir=DIR          info documentation [PREFIX/info]
  6.6708 +-  --mandir=DIR           man documentation [PREFIX/man]
  6.6709 ++  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]
  6.6710 ++  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]
  6.6711 ++  --infodir=DIR          info documentation [DATAROOTDIR/info]
  6.6712 ++  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]
  6.6713 ++  --mandir=DIR           man documentation [DATAROOTDIR/man]
  6.6714 ++  --docdir=DIR           documentation root [DATAROOTDIR/doc/newlib]
  6.6715 ++  --htmldir=DIR          html documentation [DOCDIR]
  6.6716 ++  --dvidir=DIR           dvi documentation [DOCDIR]
  6.6717 ++  --pdfdir=DIR           pdf documentation [DOCDIR]
  6.6718 ++  --psdir=DIR            ps documentation [DOCDIR]
  6.6719 + _ACEOF
  6.6720 + 
  6.6721 +   cat <<\_ACEOF
  6.6722 +@@ -1059,10 +1541,8 @@
  6.6723 +   --enable-dependency-tracking   do not reject slow dependency extractors
  6.6724 +   --enable-maintainer-mode  enable make rules and dependencies not useful
  6.6725 + 			  (and sometimes confusing) to the casual installer
  6.6726 +-  --enable-shared[=PKGS]
  6.6727 +-                          build shared libraries [default=yes]
  6.6728 +-  --enable-static[=PKGS]
  6.6729 +-                          build static libraries [default=yes]
  6.6730 ++  --enable-shared[=PKGS]  build shared libraries [default=yes]
  6.6731 ++  --enable-static[=PKGS]  build static libraries [default=yes]
  6.6732 +   --enable-fast-install[=PKGS]
  6.6733 +                           optimize for fast installation [default=yes]
  6.6734 +   --disable-libtool-lock  avoid locking (might break parallel builds)
  6.6735 +@@ -1081,128 +1561,95 @@
  6.6736 +   CFLAGS      C compiler flags
  6.6737 +   LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
  6.6738 +               nonstandard directory <lib dir>
  6.6739 +-  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
  6.6740 +-              headers in a nonstandard directory <include dir>
  6.6741 ++  LIBS        libraries to pass to the linker, e.g. -l<library>
  6.6742 ++  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
  6.6743 ++              you have headers in a nonstandard directory <include dir>
  6.6744 +   CPP         C preprocessor
  6.6745 + 
  6.6746 + Use these variables to override the choices made by `configure' or to help
  6.6747 + it to find libraries and programs with nonstandard names/locations.
  6.6748 + 
  6.6749 + _ACEOF
  6.6750 ++ac_status=$?
  6.6751 + fi
  6.6752 + 
  6.6753 + if test "$ac_init_help" = "recursive"; then
  6.6754 +   # If there are subdirs, report their specific --help.
  6.6755 +-  ac_popdir=`pwd`
  6.6756 +   for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
  6.6757 +-    test -d $ac_dir || continue
  6.6758 ++    test -d "$ac_dir" || continue
  6.6759 +     ac_builddir=.
  6.6760 + 
  6.6761 +-if test "$ac_dir" != .; then
  6.6762 ++case "$ac_dir" in
  6.6763 ++.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
  6.6764 ++*)
  6.6765 +   ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
  6.6766 +-  # A "../" for each directory in $ac_dir_suffix.
  6.6767 +-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
  6.6768 +-else
  6.6769 +-  ac_dir_suffix= ac_top_builddir=
  6.6770 +-fi
  6.6771 ++  # A ".." for each directory in $ac_dir_suffix.
  6.6772 ++  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
  6.6773 ++  case $ac_top_builddir_sub in
  6.6774 ++  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
  6.6775 ++  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
  6.6776 ++  esac ;;
  6.6777 ++esac
  6.6778 ++ac_abs_top_builddir=$ac_pwd
  6.6779 ++ac_abs_builddir=$ac_pwd$ac_dir_suffix
  6.6780 ++# for backward compatibility:
  6.6781 ++ac_top_builddir=$ac_top_build_prefix
  6.6782 + 
  6.6783 + case $srcdir in
  6.6784 +-  .)  # No --srcdir option.  We are building in place.
  6.6785 ++  .)  # We are building in place.
  6.6786 +     ac_srcdir=.
  6.6787 +-    if test -z "$ac_top_builddir"; then
  6.6788 +-       ac_top_srcdir=.
  6.6789 +-    else
  6.6790 +-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
  6.6791 +-    fi ;;
  6.6792 +-  [\\/]* | ?:[\\/]* )  # Absolute path.
  6.6793 ++    ac_top_srcdir=$ac_top_builddir_sub
  6.6794 ++    ac_abs_top_srcdir=$ac_pwd ;;
  6.6795 ++  [\\/]* | ?:[\\/]* )  # Absolute name.
  6.6796 +     ac_srcdir=$srcdir$ac_dir_suffix;
  6.6797 +-    ac_top_srcdir=$srcdir ;;
  6.6798 +-  *) # Relative path.
  6.6799 +-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
  6.6800 +-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
  6.6801 +-esac
  6.6802 +-
  6.6803 +-# Do not use `cd foo && pwd` to compute absolute paths, because
  6.6804 +-# the directories may not exist.
  6.6805 +-case `pwd` in
  6.6806 +-.) ac_abs_builddir="$ac_dir";;
  6.6807 +-*)
  6.6808 +-  case "$ac_dir" in
  6.6809 +-  .) ac_abs_builddir=`pwd`;;
  6.6810 +-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
  6.6811 +-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
  6.6812 +-  esac;;
  6.6813 +-esac
  6.6814 +-case $ac_abs_builddir in
  6.6815 +-.) ac_abs_top_builddir=${ac_top_builddir}.;;
  6.6816 +-*)
  6.6817 +-  case ${ac_top_builddir}. in
  6.6818 +-  .) ac_abs_top_builddir=$ac_abs_builddir;;
  6.6819 +-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
  6.6820 +-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
  6.6821 +-  esac;;
  6.6822 +-esac
  6.6823 +-case $ac_abs_builddir in
  6.6824 +-.) ac_abs_srcdir=$ac_srcdir;;
  6.6825 +-*)
  6.6826 +-  case $ac_srcdir in
  6.6827 +-  .) ac_abs_srcdir=$ac_abs_builddir;;
  6.6828 +-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
  6.6829 +-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
  6.6830 +-  esac;;
  6.6831 +-esac
  6.6832 +-case $ac_abs_builddir in
  6.6833 +-.) ac_abs_top_srcdir=$ac_top_srcdir;;
  6.6834 +-*)
  6.6835 +-  case $ac_top_srcdir in
  6.6836 +-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
  6.6837 +-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
  6.6838 +-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
  6.6839 +-  esac;;
  6.6840 ++    ac_top_srcdir=$srcdir
  6.6841 ++    ac_abs_top_srcdir=$srcdir ;;
  6.6842 ++  *) # Relative name.
  6.6843 ++    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
  6.6844 ++    ac_top_srcdir=$ac_top_build_prefix$srcdir
  6.6845 ++    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
  6.6846 + esac
  6.6847 ++ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
  6.6848 + 
  6.6849 +-    cd $ac_dir
  6.6850 +-    # Check for guested configure; otherwise get Cygnus style configure.
  6.6851 +-    if test -f $ac_srcdir/configure.gnu; then
  6.6852 +-      echo
  6.6853 +-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
  6.6854 +-    elif test -f $ac_srcdir/configure; then
  6.6855 +-      echo
  6.6856 +-      $SHELL $ac_srcdir/configure  --help=recursive
  6.6857 +-    elif test -f $ac_srcdir/configure.ac ||
  6.6858 +-	   test -f $ac_srcdir/configure.in; then
  6.6859 +-      echo
  6.6860 +-      $ac_configure --help
  6.6861 ++    cd "$ac_dir" || { ac_status=$?; continue; }
  6.6862 ++    # Check for guested configure.
  6.6863 ++    if test -f "$ac_srcdir/configure.gnu"; then
  6.6864 ++      echo &&
  6.6865 ++      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
  6.6866 ++    elif test -f "$ac_srcdir/configure"; then
  6.6867 ++      echo &&
  6.6868 ++      $SHELL "$ac_srcdir/configure" --help=recursive
  6.6869 +     else
  6.6870 +       echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
  6.6871 +-    fi
  6.6872 +-    cd $ac_popdir
  6.6873 ++    fi || ac_status=$?
  6.6874 ++    cd "$ac_pwd" || { ac_status=$?; break; }
  6.6875 +   done
  6.6876 + fi
  6.6877 + 
  6.6878 +-test -n "$ac_init_help" && exit 0
  6.6879 ++test -n "$ac_init_help" && exit $ac_status
  6.6880 + if $ac_init_version; then
  6.6881 +   cat <<\_ACEOF
  6.6882 + newlib configure 1.17.0
  6.6883 +-generated by GNU Autoconf 2.59
  6.6884 ++generated by GNU Autoconf 2.61
  6.6885 + 
  6.6886 +-Copyright (C) 2003 Free Software Foundation, Inc.
  6.6887 ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
  6.6888 ++2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
  6.6889 + This configure script is free software; the Free Software Foundation
  6.6890 + gives unlimited permission to copy, distribute and modify it.
  6.6891 + _ACEOF
  6.6892 +-  exit 0
  6.6893 ++  exit
  6.6894 + fi
  6.6895 +-exec 5>config.log
  6.6896 +-cat >&5 <<_ACEOF
  6.6897 ++cat >config.log <<_ACEOF
  6.6898 + This file contains any messages produced by compilers while
  6.6899 + running configure, to aid debugging if configure makes a mistake.
  6.6900 + 
  6.6901 + It was created by newlib $as_me 1.17.0, which was
  6.6902 +-generated by GNU Autoconf 2.59.  Invocation command line was
  6.6903 ++generated by GNU Autoconf 2.61.  Invocation command line was
  6.6904 + 
  6.6905 +   $ $0 $@
  6.6906 + 
  6.6907 + _ACEOF
  6.6908 ++exec 5>>config.log
  6.6909 + {
  6.6910 + cat <<_ASUNAME
  6.6911 + ## --------- ##
  6.6912 +@@ -1221,7 +1668,7 @@
  6.6913 + /bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
  6.6914 + /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
  6.6915 + /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
  6.6916 +-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
  6.6917 ++/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
  6.6918 + /bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
  6.6919 + /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
  6.6920 + /bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
  6.6921 +@@ -1235,6 +1682,7 @@
  6.6922 +   test -z "$as_dir" && as_dir=.
  6.6923 +   echo "PATH: $as_dir"
  6.6924 + done
  6.6925 ++IFS=$as_save_IFS
  6.6926 + 
  6.6927 + } >&5
  6.6928 + 
  6.6929 +@@ -1256,7 +1704,6 @@
  6.6930 + ac_configure_args=
  6.6931 + ac_configure_args0=
  6.6932 + ac_configure_args1=
  6.6933 +-ac_sep=
  6.6934 + ac_must_keep_next=false
  6.6935 + for ac_pass in 1 2
  6.6936 + do
  6.6937 +@@ -1267,7 +1714,7 @@
  6.6938 +     -q | -quiet | --quiet | --quie | --qui | --qu | --q \
  6.6939 +     | -silent | --silent | --silen | --sile | --sil)
  6.6940 +       continue ;;
  6.6941 +-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
  6.6942 ++    *\'*)
  6.6943 +       ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
  6.6944 +     esac
  6.6945 +     case $ac_pass in
  6.6946 +@@ -1289,9 +1736,7 @@
  6.6947 + 	  -* ) ac_must_keep_next=true ;;
  6.6948 + 	esac
  6.6949 +       fi
  6.6950 +-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
  6.6951 +-      # Get rid of the leading space.
  6.6952 +-      ac_sep=" "
  6.6953 ++      ac_configure_args="$ac_configure_args '$ac_arg'"
  6.6954 +       ;;
  6.6955 +     esac
  6.6956 +   done
  6.6957 +@@ -1302,8 +1747,8 @@
  6.6958 + # When interrupted or exit'd, cleanup temporary files, and complete
  6.6959 + # config.log.  We remove comments because anyway the quotes in there
  6.6960 + # would cause problems or look ugly.
  6.6961 +-# WARNING: Be sure not to use single quotes in there, as some shells,
  6.6962 +-# such as our DU 5.0 friend, will then `close' the trap.
  6.6963 ++# WARNING: Use '\'' to represent an apostrophe within the trap.
  6.6964 ++# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
  6.6965 + trap 'exit_status=$?
  6.6966 +   # Save into config.log some information that might help in debugging.
  6.6967 +   {
  6.6968 +@@ -1316,20 +1761,34 @@
  6.6969 + _ASBOX
  6.6970 +     echo
  6.6971 +     # The following way of writing the cache mishandles newlines in values,
  6.6972 +-{
  6.6973 ++(
  6.6974 ++  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
  6.6975 ++    eval ac_val=\$$ac_var
  6.6976 ++    case $ac_val in #(
  6.6977 ++    *${as_nl}*)
  6.6978 ++      case $ac_var in #(
  6.6979 ++      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
  6.6980 ++echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
  6.6981 ++      esac
  6.6982 ++      case $ac_var in #(
  6.6983 ++      _ | IFS | as_nl) ;; #(
  6.6984 ++      *) $as_unset $ac_var ;;
  6.6985 ++      esac ;;
  6.6986 ++    esac
  6.6987 ++  done
  6.6988 +   (set) 2>&1 |
  6.6989 +-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
  6.6990 +-    *ac_space=\ *)
  6.6991 ++    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
  6.6992 ++    *${as_nl}ac_space=\ *)
  6.6993 +       sed -n \
  6.6994 +-	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
  6.6995 +-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
  6.6996 +-      ;;
  6.6997 ++	"s/'\''/'\''\\\\'\'''\''/g;
  6.6998 ++	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
  6.6999 ++      ;; #(
  6.7000 +     *)
  6.7001 +-      sed -n \
  6.7002 +-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
  6.7003 ++      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
  6.7004 +       ;;
  6.7005 +-    esac;
  6.7006 +-}
  6.7007 ++    esac |
  6.7008 ++    sort
  6.7009 ++)
  6.7010 +     echo
  6.7011 + 
  6.7012 +     cat <<\_ASBOX
  6.7013 +@@ -1340,22 +1799,28 @@
  6.7014 +     echo
  6.7015 +     for ac_var in $ac_subst_vars
  6.7016 +     do
  6.7017 +-      eval ac_val=$`echo $ac_var`
  6.7018 +-      echo "$ac_var='"'"'$ac_val'"'"'"
  6.7019 ++      eval ac_val=\$$ac_var
  6.7020 ++      case $ac_val in
  6.7021 ++      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
  6.7022 ++      esac
  6.7023 ++      echo "$ac_var='\''$ac_val'\''"
  6.7024 +     done | sort
  6.7025 +     echo
  6.7026 + 
  6.7027 +     if test -n "$ac_subst_files"; then
  6.7028 +       cat <<\_ASBOX
  6.7029 +-## ------------- ##
  6.7030 +-## Output files. ##
  6.7031 +-## ------------- ##
  6.7032 ++## ------------------- ##
  6.7033 ++## File substitutions. ##
  6.7034 ++## ------------------- ##
  6.7035 + _ASBOX
  6.7036 +       echo
  6.7037 +       for ac_var in $ac_subst_files
  6.7038 +       do
  6.7039 +-	eval ac_val=$`echo $ac_var`
  6.7040 +-	echo "$ac_var='"'"'$ac_val'"'"'"
  6.7041 ++	eval ac_val=\$$ac_var
  6.7042 ++	case $ac_val in
  6.7043 ++	*\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
  6.7044 ++	esac
  6.7045 ++	echo "$ac_var='\''$ac_val'\''"
  6.7046 +       done | sort
  6.7047 +       echo
  6.7048 +     fi
  6.7049 +@@ -1367,26 +1832,24 @@
  6.7050 + ## ----------- ##
  6.7051 + _ASBOX
  6.7052 +       echo
  6.7053 +-      sed "/^$/d" confdefs.h | sort
  6.7054 ++      cat confdefs.h
  6.7055 +       echo
  6.7056 +     fi
  6.7057 +     test "$ac_signal" != 0 &&
  6.7058 +       echo "$as_me: caught signal $ac_signal"
  6.7059 +     echo "$as_me: exit $exit_status"
  6.7060 +   } >&5
  6.7061 +-  rm -f core *.core &&
  6.7062 +-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
  6.7063 ++  rm -f core *.core core.conftest.* &&
  6.7064 ++    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
  6.7065 +     exit $exit_status
  6.7066 +-     ' 0
  6.7067 ++' 0
  6.7068 + for ac_signal in 1 2 13 15; do
  6.7069 +   trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
  6.7070 + done
  6.7071 + ac_signal=0
  6.7072 + 
  6.7073 + # confdefs.h avoids OS command line length limits that DEFS can exceed.
  6.7074 +-rm -rf conftest* confdefs.h
  6.7075 +-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
  6.7076 +-echo >confdefs.h
  6.7077 ++rm -f -r conftest* confdefs.h
  6.7078 + 
  6.7079 + # Predefined preprocessor variables.
  6.7080 + 
  6.7081 +@@ -1417,14 +1880,17 @@
  6.7082 + 
  6.7083 + # Let the site file select an alternate cache file if it wants to.
  6.7084 + # Prefer explicitly selected file to automatically selected ones.
  6.7085 +-if test -z "$CONFIG_SITE"; then
  6.7086 +-  if test "x$prefix" != xNONE; then
  6.7087 +-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
  6.7088 +-  else
  6.7089 +-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
  6.7090 +-  fi
  6.7091 ++if test -n "$CONFIG_SITE"; then
  6.7092 ++  set x "$CONFIG_SITE"
  6.7093 ++elif test "x$prefix" != xNONE; then
  6.7094 ++  set x "$prefix/share/config.site" "$prefix/etc/config.site"
  6.7095 ++else
  6.7096 ++  set x "$ac_default_prefix/share/config.site" \
  6.7097 ++	"$ac_default_prefix/etc/config.site"
  6.7098 + fi
  6.7099 +-for ac_site_file in $CONFIG_SITE; do
  6.7100 ++shift
  6.7101 ++for ac_site_file
  6.7102 ++do
  6.7103 +   if test -r "$ac_site_file"; then
  6.7104 +     { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
  6.7105 + echo "$as_me: loading site script $ac_site_file" >&6;}
  6.7106 +@@ -1440,8 +1906,8 @@
  6.7107 +     { echo "$as_me:$LINENO: loading cache $cache_file" >&5
  6.7108 + echo "$as_me: loading cache $cache_file" >&6;}
  6.7109 +     case $cache_file in
  6.7110 +-      [\\/]* | ?:[\\/]* ) . $cache_file;;
  6.7111 +-      *)                      . ./$cache_file;;
  6.7112 ++      [\\/]* | ?:[\\/]* ) . "$cache_file";;
  6.7113 ++      *)                      . "./$cache_file";;
  6.7114 +     esac
  6.7115 +   fi
  6.7116 + else
  6.7117 +@@ -1453,12 +1919,11 @@
  6.7118 + # Check that the precious variables saved in the cache have kept the same
  6.7119 + # value.
  6.7120 + ac_cache_corrupted=false
  6.7121 +-for ac_var in `(set) 2>&1 |
  6.7122 +-	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
  6.7123 ++for ac_var in $ac_precious_vars; do
  6.7124 +   eval ac_old_set=\$ac_cv_env_${ac_var}_set
  6.7125 +   eval ac_new_set=\$ac_env_${ac_var}_set
  6.7126 +-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
  6.7127 +-  eval ac_new_val="\$ac_env_${ac_var}_value"
  6.7128 ++  eval ac_old_val=\$ac_cv_env_${ac_var}_value
  6.7129 ++  eval ac_new_val=\$ac_env_${ac_var}_value
  6.7130 +   case $ac_old_set,$ac_new_set in
  6.7131 +     set,)
  6.7132 +       { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
  6.7133 +@@ -1483,8 +1948,7 @@
  6.7134 +   # Pass precious variables to config.status.
  6.7135 +   if test "$ac_new_set" = set; then
  6.7136 +     case $ac_new_val in
  6.7137 +-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
  6.7138 +-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
  6.7139 ++    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
  6.7140 +     *) ac_arg=$ac_var=$ac_new_val ;;
  6.7141 +     esac
  6.7142 +     case " $ac_configure_args " in
  6.7143 +@@ -1501,12 +1965,6 @@
  6.7144 +    { (exit 1); exit 1; }; }
  6.7145 + fi
  6.7146 + 
  6.7147 +-ac_ext=c
  6.7148 +-ac_cpp='$CPP $CPPFLAGS'
  6.7149 +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
  6.7150 +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
  6.7151 +-ac_compiler_gnu=$ac_cv_c_compiler_gnu
  6.7152 +-
  6.7153 + 
  6.7154 + 
  6.7155 + 
  6.7156 +@@ -1531,67 +1989,92 @@
  6.7157 + 
  6.7158 + 
  6.7159 + 
  6.7160 ++ac_ext=c
  6.7161 ++ac_cpp='$CPP $CPPFLAGS'
  6.7162 ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
  6.7163 ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
  6.7164 ++ac_compiler_gnu=$ac_cv_c_compiler_gnu
  6.7165 + 
  6.7166 + 
  6.7167 + 
  6.7168 + 
  6.7169 + ac_aux_dir=
  6.7170 +-for ac_dir in ../../.. $srcdir/../../..; do
  6.7171 +-  if test -f $ac_dir/install-sh; then
  6.7172 ++for ac_dir in ../../.. "$srcdir"/../../..; do
  6.7173 ++  if test -f "$ac_dir/install-sh"; then
  6.7174 +     ac_aux_dir=$ac_dir
  6.7175 +     ac_install_sh="$ac_aux_dir/install-sh -c"
  6.7176 +     break
  6.7177 +-  elif test -f $ac_dir/install.sh; then
  6.7178 ++  elif test -f "$ac_dir/install.sh"; then
  6.7179 +     ac_aux_dir=$ac_dir
  6.7180 +     ac_install_sh="$ac_aux_dir/install.sh -c"
  6.7181 +     break
  6.7182 +-  elif test -f $ac_dir/shtool; then
  6.7183 ++  elif test -f "$ac_dir/shtool"; then
  6.7184 +     ac_aux_dir=$ac_dir
  6.7185 +     ac_install_sh="$ac_aux_dir/shtool install -c"
  6.7186 +     break
  6.7187 +   fi
  6.7188 + done
  6.7189 + if test -z "$ac_aux_dir"; then
  6.7190 +-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../../.. $srcdir/../../.." >&5
  6.7191 +-echo "$as_me: error: cannot find install-sh or install.sh in ../../.. $srcdir/../../.." >&2;}
  6.7192 ++  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../../.. \"$srcdir\"/../../.." >&5
  6.7193 ++echo "$as_me: error: cannot find install-sh or install.sh in ../../.. \"$srcdir\"/../../.." >&2;}
  6.7194 +    { (exit 1); exit 1; }; }
  6.7195 + fi
  6.7196 +-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
  6.7197 +-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
  6.7198 +-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
  6.7199 ++
  6.7200 ++# These three variables are undocumented and unsupported,
  6.7201 ++# and are intended to be withdrawn in a future Autoconf release.
  6.7202 ++# They can cause serious problems if a builder's source tree is in a directory
  6.7203 ++# whose full name contains unusual characters.
  6.7204 ++ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
  6.7205 ++ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
  6.7206 ++ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
  6.7207 ++
  6.7208 + 
  6.7209 + 
  6.7210 + 
  6.7211 + # Make sure we can run config.sub.
  6.7212 +-$ac_config_sub sun4 >/dev/null 2>&1 ||
  6.7213 +-  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
  6.7214 +-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
  6.7215 ++$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
  6.7216 ++  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
  6.7217 ++echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
  6.7218 +    { (exit 1); exit 1; }; }
  6.7219 + 
  6.7220 +-echo "$as_me:$LINENO: checking build system type" >&5
  6.7221 +-echo $ECHO_N "checking build system type... $ECHO_C" >&6
  6.7222 ++{ echo "$as_me:$LINENO: checking build system type" >&5
  6.7223 ++echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
  6.7224 + if test "${ac_cv_build+set}" = set; then
  6.7225 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.7226 + else
  6.7227 +-  ac_cv_build_alias=$build_alias
  6.7228 +-test -z "$ac_cv_build_alias" &&
  6.7229 +-  ac_cv_build_alias=`$ac_config_guess`
  6.7230 +-test -z "$ac_cv_build_alias" &&
  6.7231 ++  ac_build_alias=$build_alias
  6.7232 ++test "x$ac_build_alias" = x &&
  6.7233 ++  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
  6.7234 ++test "x$ac_build_alias" = x &&
  6.7235 +   { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
  6.7236 + echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
  6.7237 +    { (exit 1); exit 1; }; }
  6.7238 +-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
  6.7239 +-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
  6.7240 +-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
  6.7241 ++ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
  6.7242 ++  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
  6.7243 ++echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
  6.7244 +    { (exit 1); exit 1; }; }
  6.7245 + 
  6.7246 + fi
  6.7247 +-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
  6.7248 +-echo "${ECHO_T}$ac_cv_build" >&6
  6.7249 ++{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
  6.7250 ++echo "${ECHO_T}$ac_cv_build" >&6; }
  6.7251 ++case $ac_cv_build in
  6.7252 ++*-*-*) ;;
  6.7253 ++*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
  6.7254 ++echo "$as_me: error: invalid value of canonical build" >&2;}
  6.7255 ++   { (exit 1); exit 1; }; };;
  6.7256 ++esac
  6.7257 + build=$ac_cv_build
  6.7258 +-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
  6.7259 +-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
  6.7260 +-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
  6.7261 ++ac_save_IFS=$IFS; IFS='-'
  6.7262 ++set x $ac_cv_build
  6.7263 ++shift
  6.7264 ++build_cpu=$1
  6.7265 ++build_vendor=$2
  6.7266 ++shift; shift
  6.7267 ++# Remember, the first character of IFS is used to create $*,
  6.7268 ++# except with old shells:
  6.7269 ++build_os=$*
  6.7270 ++IFS=$ac_save_IFS
  6.7271 ++case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
  6.7272 + 
  6.7273 + 
  6.7274 + am__api_version="1.9"
  6.7275 +@@ -1608,8 +2091,8 @@
  6.7276 + # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
  6.7277 + # OS/2's system install, which has a completely different semantic
  6.7278 + # ./install, which can be erroneously created by make from ./install.sh.
  6.7279 +-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
  6.7280 +-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
  6.7281 ++{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
  6.7282 ++echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
  6.7283 + if test -z "$INSTALL"; then
  6.7284 + if test "${ac_cv_path_install+set}" = set; then
  6.7285 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.7286 +@@ -1631,7 +2114,7 @@
  6.7287 +     # by default.
  6.7288 +     for ac_prog in ginstall scoinst install; do
  6.7289 +       for ac_exec_ext in '' $ac_executable_extensions; do
  6.7290 +-	if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
  6.7291 ++	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
  6.7292 + 	  if test $ac_prog = install &&
  6.7293 + 	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
  6.7294 + 	    # AIX install.  It has an incompatible calling convention.
  6.7295 +@@ -1650,21 +2133,22 @@
  6.7296 +     ;;
  6.7297 + esac
  6.7298 + done
  6.7299 ++IFS=$as_save_IFS
  6.7300 + 
  6.7301 + 
  6.7302 + fi
  6.7303 +   if test "${ac_cv_path_install+set}" = set; then
  6.7304 +     INSTALL=$ac_cv_path_install
  6.7305 +   else
  6.7306 +-    # As a last resort, use the slow shell script.  We don't cache a
  6.7307 +-    # path for INSTALL within a source directory, because that will
  6.7308 ++    # As a last resort, use the slow shell script.  Don't cache a
  6.7309 ++    # value for INSTALL within a source directory, because that will
  6.7310 +     # break other packages using the cache if that directory is
  6.7311 +-    # removed, or if the path is relative.
  6.7312 ++    # removed, or if the value is a relative name.
  6.7313 +     INSTALL=$ac_install_sh
  6.7314 +   fi
  6.7315 + fi
  6.7316 +-echo "$as_me:$LINENO: result: $INSTALL" >&5
  6.7317 +-echo "${ECHO_T}$INSTALL" >&6
  6.7318 ++{ echo "$as_me:$LINENO: result: $INSTALL" >&5
  6.7319 ++echo "${ECHO_T}$INSTALL" >&6; }
  6.7320 + 
  6.7321 + # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
  6.7322 + # It thinks the first close brace ends the variable substitution.
  6.7323 +@@ -1674,8 +2158,8 @@
  6.7324 + 
  6.7325 + test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
  6.7326 + 
  6.7327 +-echo "$as_me:$LINENO: checking whether build environment is sane" >&5
  6.7328 +-echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
  6.7329 ++{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5
  6.7330 ++echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; }
  6.7331 + # Just in case
  6.7332 + sleep 1
  6.7333 + echo timestamp > conftest.file
  6.7334 +@@ -1717,20 +2201,20 @@
  6.7335 + Check your system clock" >&2;}
  6.7336 +    { (exit 1); exit 1; }; }
  6.7337 + fi
  6.7338 +-echo "$as_me:$LINENO: result: yes" >&5
  6.7339 +-echo "${ECHO_T}yes" >&6
  6.7340 ++{ echo "$as_me:$LINENO: result: yes" >&5
  6.7341 ++echo "${ECHO_T}yes" >&6; }
  6.7342 + test "$program_prefix" != NONE &&
  6.7343 +-  program_transform_name="s,^,$program_prefix,;$program_transform_name"
  6.7344 ++  program_transform_name="s&^&$program_prefix&;$program_transform_name"
  6.7345 + # Use a double $ so make ignores it.
  6.7346 + test "$program_suffix" != NONE &&
  6.7347 +-  program_transform_name="s,\$,$program_suffix,;$program_transform_name"
  6.7348 ++  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
  6.7349 + # Double any \ or $.  echo might interpret backslashes.
  6.7350 + # By default was `s,x,x', remove it if useless.
  6.7351 + cat <<\_ACEOF >conftest.sed
  6.7352 + s/[\\$]/&&/g;s/;s,x,x,$//
  6.7353 + _ACEOF
  6.7354 + program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
  6.7355 +-rm conftest.sed
  6.7356 ++rm -f conftest.sed
  6.7357 + 
  6.7358 + # expand $ac_aux_dir to an absolute path
  6.7359 + am_aux_dir=`cd $ac_aux_dir && pwd`
  6.7360 +@@ -1782,8 +2266,8 @@
  6.7361 + do
  6.7362 +   # Extract the first word of "$ac_prog", so it can be a program name with args.
  6.7363 + set dummy $ac_prog; ac_word=$2
  6.7364 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.7365 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.7366 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.7367 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.7368 + if test "${ac_cv_prog_AWK+set}" = set; then
  6.7369 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.7370 + else
  6.7371 +@@ -1796,54 +2280,57 @@
  6.7372 +   IFS=$as_save_IFS
  6.7373 +   test -z "$as_dir" && as_dir=.
  6.7374 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.7375 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.7376 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.7377 +     ac_cv_prog_AWK="$ac_prog"
  6.7378 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.7379 +     break 2
  6.7380 +   fi
  6.7381 + done
  6.7382 + done
  6.7383 ++IFS=$as_save_IFS
  6.7384 + 
  6.7385 + fi
  6.7386 + fi
  6.7387 + AWK=$ac_cv_prog_AWK
  6.7388 + if test -n "$AWK"; then
  6.7389 +-  echo "$as_me:$LINENO: result: $AWK" >&5
  6.7390 +-echo "${ECHO_T}$AWK" >&6
  6.7391 ++  { echo "$as_me:$LINENO: result: $AWK" >&5
  6.7392 ++echo "${ECHO_T}$AWK" >&6; }
  6.7393 + else
  6.7394 +-  echo "$as_me:$LINENO: result: no" >&5
  6.7395 +-echo "${ECHO_T}no" >&6
  6.7396 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.7397 ++echo "${ECHO_T}no" >&6; }
  6.7398 + fi
  6.7399 + 
  6.7400 ++
  6.7401 +   test -n "$AWK" && break
  6.7402 + done
  6.7403 + 
  6.7404 +-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
  6.7405 +-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
  6.7406 +-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
  6.7407 +-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
  6.7408 ++{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
  6.7409 ++echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
  6.7410 ++set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
  6.7411 ++if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
  6.7412 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.7413 + else
  6.7414 +   cat >conftest.make <<\_ACEOF
  6.7415 ++SHELL = /bin/sh
  6.7416 + all:
  6.7417 +-	@echo 'ac_maketemp="$(MAKE)"'
  6.7418 ++	@echo '@@@%%%=$(MAKE)=@@@%%%'
  6.7419 + _ACEOF
  6.7420 + # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
  6.7421 +-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
  6.7422 +-if test -n "$ac_maketemp"; then
  6.7423 +-  eval ac_cv_prog_make_${ac_make}_set=yes
  6.7424 +-else
  6.7425 +-  eval ac_cv_prog_make_${ac_make}_set=no
  6.7426 +-fi
  6.7427 ++case `${MAKE-make} -f conftest.make 2>/dev/null` in
  6.7428 ++  *@@@%%%=?*=@@@%%%*)
  6.7429 ++    eval ac_cv_prog_make_${ac_make}_set=yes;;
  6.7430 ++  *)
  6.7431 ++    eval ac_cv_prog_make_${ac_make}_set=no;;
  6.7432 ++esac
  6.7433 + rm -f conftest.make
  6.7434 + fi
  6.7435 +-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
  6.7436 +-  echo "$as_me:$LINENO: result: yes" >&5
  6.7437 +-echo "${ECHO_T}yes" >&6
  6.7438 ++if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
  6.7439 ++  { echo "$as_me:$LINENO: result: yes" >&5
  6.7440 ++echo "${ECHO_T}yes" >&6; }
  6.7441 +   SET_MAKE=
  6.7442 + else
  6.7443 +-  echo "$as_me:$LINENO: result: no" >&5
  6.7444 +-echo "${ECHO_T}no" >&6
  6.7445 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.7446 ++echo "${ECHO_T}no" >&6; }
  6.7447 +   SET_MAKE="MAKE=${MAKE-make}"
  6.7448 + fi
  6.7449 + 
  6.7450 +@@ -1858,7 +2345,7 @@
  6.7451 + 
  6.7452 + DEPDIR="${am__leading_dot}deps"
  6.7453 + 
  6.7454 +-          ac_config_commands="$ac_config_commands depfiles"
  6.7455 ++ac_config_commands="$ac_config_commands depfiles"
  6.7456 + 
  6.7457 + 
  6.7458 + am_make=${MAKE-make}
  6.7459 +@@ -1868,8 +2355,8 @@
  6.7460 + .PHONY: am__doit
  6.7461 + END
  6.7462 + # If we don't find an include directive, just comment out the code.
  6.7463 +-echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
  6.7464 +-echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
  6.7465 ++{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
  6.7466 ++echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; }
  6.7467 + am__include="#"
  6.7468 + am__quote=
  6.7469 + _am_result=none
  6.7470 +@@ -1896,15 +2383,15 @@
  6.7471 + fi
  6.7472 + 
  6.7473 + 
  6.7474 +-echo "$as_me:$LINENO: result: $_am_result" >&5
  6.7475 +-echo "${ECHO_T}$_am_result" >&6
  6.7476 ++{ echo "$as_me:$LINENO: result: $_am_result" >&5
  6.7477 ++echo "${ECHO_T}$_am_result" >&6; }
  6.7478 + rm -f confinc confmf
  6.7479 + 
  6.7480 +-# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
  6.7481 ++# Check whether --enable-dependency-tracking was given.
  6.7482 + if test "${enable_dependency_tracking+set}" = set; then
  6.7483 +-  enableval="$enable_dependency_tracking"
  6.7484 ++  enableval=$enable_dependency_tracking;
  6.7485 ++fi
  6.7486 + 
  6.7487 +-fi;
  6.7488 + if test "x$enable_dependency_tracking" != xno; then
  6.7489 +   am_depcomp="$ac_aux_dir/depcomp"
  6.7490 +   AMDEPBACKSLASH='\'
  6.7491 +@@ -1922,10 +2409,9 @@
  6.7492 + 
  6.7493 + 
  6.7494 + 
  6.7495 +-# Check whether --enable-multilib or --disable-multilib was given.
  6.7496 ++# Check whether --enable-multilib was given.
  6.7497 + if test "${enable_multilib+set}" = set; then
  6.7498 +-  enableval="$enable_multilib"
  6.7499 +-  case "${enableval}" in
  6.7500 ++  enableval=$enable_multilib; case "${enableval}" in
  6.7501 +   yes) multilib=yes ;;
  6.7502 +   no)  multilib=no ;;
  6.7503 +   *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for multilib option" >&5
  6.7504 +@@ -1934,11 +2420,11 @@
  6.7505 +  esac
  6.7506 + else
  6.7507 +   multilib=yes
  6.7508 +-fi;
  6.7509 +-# Check whether --enable-target-optspace or --disable-target-optspace was given.
  6.7510 ++fi
  6.7511 ++
  6.7512 ++# Check whether --enable-target-optspace was given.
  6.7513 + if test "${enable_target_optspace+set}" = set; then
  6.7514 +-  enableval="$enable_target_optspace"
  6.7515 +-  case "${enableval}" in
  6.7516 ++  enableval=$enable_target_optspace; case "${enableval}" in
  6.7517 +   yes) target_optspace=yes ;;
  6.7518 +   no)  target_optspace=no ;;
  6.7519 +   *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for target-optspace option" >&5
  6.7520 +@@ -1947,11 +2433,11 @@
  6.7521 +  esac
  6.7522 + else
  6.7523 +   target_optspace=
  6.7524 +-fi;
  6.7525 +-# Check whether --enable-malloc-debugging or --disable-malloc-debugging was given.
  6.7526 ++fi
  6.7527 ++
  6.7528 ++# Check whether --enable-malloc-debugging was given.
  6.7529 + if test "${enable_malloc_debugging+set}" = set; then
  6.7530 +-  enableval="$enable_malloc_debugging"
  6.7531 +-  case "${enableval}" in
  6.7532 ++  enableval=$enable_malloc_debugging; case "${enableval}" in
  6.7533 +   yes) malloc_debugging=yes ;;
  6.7534 +   no)  malloc_debugging=no ;;
  6.7535 +   *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for malloc-debugging option" >&5
  6.7536 +@@ -1960,11 +2446,11 @@
  6.7537 +  esac
  6.7538 + else
  6.7539 +   malloc_debugging=
  6.7540 +-fi;
  6.7541 +-# Check whether --enable-newlib-multithread or --disable-newlib-multithread was given.
  6.7542 ++fi
  6.7543 ++
  6.7544 ++# Check whether --enable-newlib-multithread was given.
  6.7545 + if test "${enable_newlib_multithread+set}" = set; then
  6.7546 +-  enableval="$enable_newlib_multithread"
  6.7547 +-  case "${enableval}" in
  6.7548 ++  enableval=$enable_newlib_multithread; case "${enableval}" in
  6.7549 +   yes) newlib_multithread=yes ;;
  6.7550 +   no)  newlib_multithread=no ;;
  6.7551 +   *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-multithread option" >&5
  6.7552 +@@ -1973,11 +2459,11 @@
  6.7553 +  esac
  6.7554 + else
  6.7555 +   newlib_multithread=yes
  6.7556 +-fi;
  6.7557 +-# Check whether --enable-newlib-iconv or --disable-newlib-iconv was given.
  6.7558 ++fi
  6.7559 ++
  6.7560 ++# Check whether --enable-newlib-iconv was given.
  6.7561 + if test "${enable_newlib_iconv+set}" = set; then
  6.7562 +-  enableval="$enable_newlib_iconv"
  6.7563 +-  if test "${newlib_iconv+set}" != set; then
  6.7564 ++  enableval=$enable_newlib_iconv; if test "${newlib_iconv+set}" != set; then
  6.7565 +    case "${enableval}" in
  6.7566 +      yes) newlib_iconv=yes ;;
  6.7567 +      no)  newlib_iconv=no ;;
  6.7568 +@@ -1988,11 +2474,11 @@
  6.7569 +  fi
  6.7570 + else
  6.7571 +   newlib_iconv=${newlib_iconv}
  6.7572 +-fi;
  6.7573 +-# Check whether --enable-newlib-elix-level or --disable-newlib-elix-level was given.
  6.7574 ++fi
  6.7575 ++
  6.7576 ++# Check whether --enable-newlib-elix-level was given.
  6.7577 + if test "${enable_newlib_elix_level+set}" = set; then
  6.7578 +-  enableval="$enable_newlib_elix_level"
  6.7579 +-  case "${enableval}" in
  6.7580 ++  enableval=$enable_newlib_elix_level; case "${enableval}" in
  6.7581 +   0)   newlib_elix_level=0 ;;
  6.7582 +   1)   newlib_elix_level=1 ;;
  6.7583 +   2)   newlib_elix_level=2 ;;
  6.7584 +@@ -2004,11 +2490,11 @@
  6.7585 +  esac
  6.7586 + else
  6.7587 +   newlib_elix_level=0
  6.7588 +-fi;
  6.7589 +-# Check whether --enable-newlib-io-float or --disable-newlib-io-float was given.
  6.7590 ++fi
  6.7591 ++
  6.7592 ++# Check whether --enable-newlib-io-float was given.
  6.7593 + if test "${enable_newlib_io_float+set}" = set; then
  6.7594 +-  enableval="$enable_newlib_io_float"
  6.7595 +-  case "${enableval}" in
  6.7596 ++  enableval=$enable_newlib_io_float; case "${enableval}" in
  6.7597 +   yes) newlib_io_float=yes ;;
  6.7598 +   no)  newlib_io_float=no ;;
  6.7599 +   *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-io-float option" >&5
  6.7600 +@@ -2017,11 +2503,11 @@
  6.7601 +  esac
  6.7602 + else
  6.7603 +   newlib_io_float=yes
  6.7604 +-fi;
  6.7605 +-# Check whether --enable-newlib-supplied-syscalls or --disable-newlib-supplied-syscalls was given.
  6.7606 ++fi
  6.7607 ++
  6.7608 ++# Check whether --enable-newlib-supplied-syscalls was given.
  6.7609 + if test "${enable_newlib_supplied_syscalls+set}" = set; then
  6.7610 +-  enableval="$enable_newlib_supplied_syscalls"
  6.7611 +-  case "${enableval}" in
  6.7612 ++  enableval=$enable_newlib_supplied_syscalls; case "${enableval}" in
  6.7613 +   yes) newlib_may_supply_syscalls=yes ;;
  6.7614 +   no)  newlib_may_supply_syscalls=no ;;
  6.7615 +   *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-supplied-syscalls option" >&5
  6.7616 +@@ -2030,7 +2516,8 @@
  6.7617 +  esac
  6.7618 + else
  6.7619 +   newlib_may_supply_syscalls=yes
  6.7620 +-fi;
  6.7621 ++fi
  6.7622 ++
  6.7623 + 
  6.7624 + 
  6.7625 + if test x${newlib_may_supply_syscalls} = xyes; then
  6.7626 +@@ -2056,26 +2543,41 @@
  6.7627 + fi
  6.7628 + 
  6.7629 + 
  6.7630 +-echo "$as_me:$LINENO: checking host system type" >&5
  6.7631 +-echo $ECHO_N "checking host system type... $ECHO_C" >&6
  6.7632 ++{ echo "$as_me:$LINENO: checking host system type" >&5
  6.7633 ++echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
  6.7634 + if test "${ac_cv_host+set}" = set; then
  6.7635 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.7636 + else
  6.7637 +-  ac_cv_host_alias=$host_alias
  6.7638 +-test -z "$ac_cv_host_alias" &&
  6.7639 +-  ac_cv_host_alias=$ac_cv_build_alias
  6.7640 +-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
  6.7641 +-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
  6.7642 +-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
  6.7643 ++  if test "x$host_alias" = x; then
  6.7644 ++  ac_cv_host=$ac_cv_build
  6.7645 ++else
  6.7646 ++  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
  6.7647 ++    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
  6.7648 ++echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
  6.7649 +    { (exit 1); exit 1; }; }
  6.7650 ++fi
  6.7651 + 
  6.7652 + fi
  6.7653 +-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
  6.7654 +-echo "${ECHO_T}$ac_cv_host" >&6
  6.7655 ++{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
  6.7656 ++echo "${ECHO_T}$ac_cv_host" >&6; }
  6.7657 ++case $ac_cv_host in
  6.7658 ++*-*-*) ;;
  6.7659 ++*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
  6.7660 ++echo "$as_me: error: invalid value of canonical host" >&2;}
  6.7661 ++   { (exit 1); exit 1; }; };;
  6.7662 ++esac
  6.7663 + host=$ac_cv_host
  6.7664 +-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
  6.7665 +-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
  6.7666 +-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
  6.7667 ++ac_save_IFS=$IFS; IFS='-'
  6.7668 ++set x $ac_cv_host
  6.7669 ++shift
  6.7670 ++host_cpu=$1
  6.7671 ++host_vendor=$2
  6.7672 ++shift; shift
  6.7673 ++# Remember, the first character of IFS is used to create $*,
  6.7674 ++# except with old shells:
  6.7675 ++host_os=$*
  6.7676 ++IFS=$ac_save_IFS
  6.7677 ++case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
  6.7678 + 
  6.7679 + 
  6.7680 + 
  6.7681 +@@ -2128,8 +2630,8 @@
  6.7682 +   if test -n "$ac_tool_prefix"; then
  6.7683 +   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
  6.7684 + set dummy ${ac_tool_prefix}strip; ac_word=$2
  6.7685 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.7686 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.7687 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.7688 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.7689 + if test "${ac_cv_prog_STRIP+set}" = set; then
  6.7690 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.7691 + else
  6.7692 +@@ -2142,32 +2644,34 @@
  6.7693 +   IFS=$as_save_IFS
  6.7694 +   test -z "$as_dir" && as_dir=.
  6.7695 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.7696 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.7697 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.7698 +     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
  6.7699 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.7700 +     break 2
  6.7701 +   fi
  6.7702 + done
  6.7703 + done
  6.7704 ++IFS=$as_save_IFS
  6.7705 + 
  6.7706 + fi
  6.7707 + fi
  6.7708 + STRIP=$ac_cv_prog_STRIP
  6.7709 + if test -n "$STRIP"; then
  6.7710 +-  echo "$as_me:$LINENO: result: $STRIP" >&5
  6.7711 +-echo "${ECHO_T}$STRIP" >&6
  6.7712 ++  { echo "$as_me:$LINENO: result: $STRIP" >&5
  6.7713 ++echo "${ECHO_T}$STRIP" >&6; }
  6.7714 + else
  6.7715 +-  echo "$as_me:$LINENO: result: no" >&5
  6.7716 +-echo "${ECHO_T}no" >&6
  6.7717 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.7718 ++echo "${ECHO_T}no" >&6; }
  6.7719 + fi
  6.7720 + 
  6.7721 ++
  6.7722 + fi
  6.7723 + if test -z "$ac_cv_prog_STRIP"; then
  6.7724 +   ac_ct_STRIP=$STRIP
  6.7725 +   # Extract the first word of "strip", so it can be a program name with args.
  6.7726 + set dummy strip; ac_word=$2
  6.7727 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.7728 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.7729 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.7730 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.7731 + if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
  6.7732 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.7733 + else
  6.7734 +@@ -2180,27 +2684,41 @@
  6.7735 +   IFS=$as_save_IFS
  6.7736 +   test -z "$as_dir" && as_dir=.
  6.7737 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.7738 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.7739 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.7740 +     ac_cv_prog_ac_ct_STRIP="strip"
  6.7741 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.7742 +     break 2
  6.7743 +   fi
  6.7744 + done
  6.7745 + done
  6.7746 ++IFS=$as_save_IFS
  6.7747 + 
  6.7748 +-  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
  6.7749 + fi
  6.7750 + fi
  6.7751 + ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
  6.7752 + if test -n "$ac_ct_STRIP"; then
  6.7753 +-  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
  6.7754 +-echo "${ECHO_T}$ac_ct_STRIP" >&6
  6.7755 ++  { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
  6.7756 ++echo "${ECHO_T}$ac_ct_STRIP" >&6; }
  6.7757 + else
  6.7758 +-  echo "$as_me:$LINENO: result: no" >&5
  6.7759 +-echo "${ECHO_T}no" >&6
  6.7760 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.7761 ++echo "${ECHO_T}no" >&6; }
  6.7762 + fi
  6.7763 + 
  6.7764 +-  STRIP=$ac_ct_STRIP
  6.7765 ++  if test "x$ac_ct_STRIP" = x; then
  6.7766 ++    STRIP=":"
  6.7767 ++  else
  6.7768 ++    case $cross_compiling:$ac_tool_warned in
  6.7769 ++yes:)
  6.7770 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
  6.7771 ++whose name does not start with the host triplet.  If you think this
  6.7772 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
  6.7773 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
  6.7774 ++whose name does not start with the host triplet.  If you think this
  6.7775 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
  6.7776 ++ac_tool_warned=yes ;;
  6.7777 ++esac
  6.7778 ++    STRIP=$ac_ct_STRIP
  6.7779 ++  fi
  6.7780 + else
  6.7781 +   STRIP="$ac_cv_prog_STRIP"
  6.7782 + fi
  6.7783 +@@ -2235,8 +2753,8 @@
  6.7784 + 
  6.7785 + # Extract the first word of "gcc", so it can be a program name with args.
  6.7786 + set dummy gcc; ac_word=$2
  6.7787 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.7788 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.7789 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.7790 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.7791 + if test "${ac_cv_prog_CC+set}" = set; then
  6.7792 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.7793 + else
  6.7794 +@@ -2249,30 +2767,32 @@
  6.7795 +   IFS=$as_save_IFS
  6.7796 +   test -z "$as_dir" && as_dir=.
  6.7797 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.7798 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.7799 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.7800 +     ac_cv_prog_CC="gcc"
  6.7801 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.7802 +     break 2
  6.7803 +   fi
  6.7804 + done
  6.7805 + done
  6.7806 ++IFS=$as_save_IFS
  6.7807 + 
  6.7808 + fi
  6.7809 + fi
  6.7810 + CC=$ac_cv_prog_CC
  6.7811 + if test -n "$CC"; then
  6.7812 +-  echo "$as_me:$LINENO: result: $CC" >&5
  6.7813 +-echo "${ECHO_T}$CC" >&6
  6.7814 ++  { echo "$as_me:$LINENO: result: $CC" >&5
  6.7815 ++echo "${ECHO_T}$CC" >&6; }
  6.7816 + else
  6.7817 +-  echo "$as_me:$LINENO: result: no" >&5
  6.7818 +-echo "${ECHO_T}no" >&6
  6.7819 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.7820 ++echo "${ECHO_T}no" >&6; }
  6.7821 + fi
  6.7822 + 
  6.7823 + 
  6.7824 ++
  6.7825 + depcc="$CC"   am_compiler_list=
  6.7826 + 
  6.7827 +-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
  6.7828 +-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
  6.7829 ++{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
  6.7830 ++echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
  6.7831 + if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
  6.7832 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.7833 + else
  6.7834 +@@ -2361,8 +2881,8 @@
  6.7835 + fi
  6.7836 + 
  6.7837 + fi
  6.7838 +-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
  6.7839 +-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
  6.7840 ++{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
  6.7841 ++echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
  6.7842 + CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
  6.7843 + 
  6.7844 + 
  6.7845 +@@ -2381,8 +2901,8 @@
  6.7846 + if test -z "$CC"; then
  6.7847 +   # Extract the first word of "cc", so it can be a program name with args.
  6.7848 + set dummy cc; ac_word=$2
  6.7849 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.7850 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.7851 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.7852 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.7853 + if test "${ac_cv_prog_CC+set}" = set; then
  6.7854 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.7855 + else
  6.7856 +@@ -2396,7 +2916,7 @@
  6.7857 +   IFS=$as_save_IFS
  6.7858 +   test -z "$as_dir" && as_dir=.
  6.7859 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.7860 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.7861 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.7862 +     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
  6.7863 +        ac_prog_rejected=yes
  6.7864 +        continue
  6.7865 +@@ -2407,6 +2927,7 @@
  6.7866 +   fi
  6.7867 + done
  6.7868 + done
  6.7869 ++IFS=$as_save_IFS
  6.7870 + 
  6.7871 + if test $ac_prog_rejected = yes; then
  6.7872 +   # We found a bogon in the path, so make sure we never use it.
  6.7873 +@@ -2424,20 +2945,21 @@
  6.7874 + fi
  6.7875 + CC=$ac_cv_prog_CC
  6.7876 + if test -n "$CC"; then
  6.7877 +-  echo "$as_me:$LINENO: result: $CC" >&5
  6.7878 +-echo "${ECHO_T}$CC" >&6
  6.7879 ++  { echo "$as_me:$LINENO: result: $CC" >&5
  6.7880 ++echo "${ECHO_T}$CC" >&6; }
  6.7881 + else
  6.7882 +-  echo "$as_me:$LINENO: result: no" >&5
  6.7883 +-echo "${ECHO_T}no" >&6
  6.7884 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.7885 ++echo "${ECHO_T}no" >&6; }
  6.7886 + fi
  6.7887 + 
  6.7888 ++
  6.7889 +   test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable cc found in \$PATH" >&5
  6.7890 + echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
  6.7891 +    { (exit 1); exit 1; }; }
  6.7892 + fi
  6.7893 + 
  6.7894 +-echo "$as_me:$LINENO: checking whether we are using GNU C" >&5
  6.7895 +-echo $ECHO_N "checking whether we are using GNU C... $ECHO_C" >&6
  6.7896 ++{ echo "$as_me:$LINENO: checking whether we are using GNU C" >&5
  6.7897 ++echo $ECHO_N "checking whether we are using GNU C... $ECHO_C" >&6; }
  6.7898 + if test "${ac_cv_c_compiler_gnu+set}" = set; then
  6.7899 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.7900 + else
  6.7901 +@@ -2457,8 +2979,8 @@
  6.7902 +   ac_cv_c_compiler_gnu=no
  6.7903 + fi
  6.7904 + fi
  6.7905 +-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
  6.7906 +-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
  6.7907 ++{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
  6.7908 ++echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
  6.7909 + 
  6.7910 + if test $ac_cv_c_compiler_gnu = yes; then
  6.7911 +   GCC=yes
  6.7912 +@@ -2467,13 +2989,16 @@
  6.7913 +   CFLAGS=
  6.7914 +   ac_test_CFLAGS=${CFLAGS+set}
  6.7915 + ac_save_CFLAGS=$CFLAGS
  6.7916 +-CFLAGS="-g"
  6.7917 +-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
  6.7918 +-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
  6.7919 ++{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
  6.7920 ++echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
  6.7921 + if test "${ac_cv_prog_cc_g+set}" = set; then
  6.7922 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.7923 + else
  6.7924 +-  cat >conftest.$ac_ext <<_ACEOF
  6.7925 ++  ac_save_c_werror_flag=$ac_c_werror_flag
  6.7926 ++   ac_c_werror_flag=yes
  6.7927 ++   ac_cv_prog_cc_g=no
  6.7928 ++   CFLAGS="-g"
  6.7929 ++   cat >conftest.$ac_ext <<_ACEOF
  6.7930 + /* confdefs.h.  */
  6.7931 + _ACEOF
  6.7932 + cat confdefs.h >>conftest.$ac_ext
  6.7933 +@@ -2489,38 +3014,118 @@
  6.7934 + }
  6.7935 + _ACEOF
  6.7936 + rm -f conftest.$ac_objext
  6.7937 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
  6.7938 +-  (eval $ac_compile) 2>conftest.er1
  6.7939 ++if { (ac_try="$ac_compile"
  6.7940 ++case "(($ac_try" in
  6.7941 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  6.7942 ++  *) ac_try_echo=$ac_try;;
  6.7943 ++esac
  6.7944 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
  6.7945 ++  (eval "$ac_compile") 2>conftest.er1
  6.7946 +   ac_status=$?
  6.7947 +   grep -v '^ *+' conftest.er1 >conftest.err
  6.7948 +   rm -f conftest.er1
  6.7949 +   cat conftest.err >&5
  6.7950 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.7951 +-  (exit $ac_status); } &&
  6.7952 +-	 { ac_try='test -z "$ac_c_werror_flag"
  6.7953 +-			 || test ! -s conftest.err'
  6.7954 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
  6.7955 +-  (eval $ac_try) 2>&5
  6.7956 ++  (exit $ac_status); } && {
  6.7957 ++	 test -z "$ac_c_werror_flag" ||
  6.7958 ++	 test ! -s conftest.err
  6.7959 ++       } && test -s conftest.$ac_objext; then
  6.7960 ++  ac_cv_prog_cc_g=yes
  6.7961 ++else
  6.7962 ++  echo "$as_me: failed program was:" >&5
  6.7963 ++sed 's/^/| /' conftest.$ac_ext >&5
  6.7964 ++
  6.7965 ++	CFLAGS=""
  6.7966 ++      cat >conftest.$ac_ext <<_ACEOF
  6.7967 ++/* confdefs.h.  */
  6.7968 ++_ACEOF
  6.7969 ++cat confdefs.h >>conftest.$ac_ext
  6.7970 ++cat >>conftest.$ac_ext <<_ACEOF
  6.7971 ++/* end confdefs.h.  */
  6.7972 ++
  6.7973 ++int
  6.7974 ++main ()
  6.7975 ++{
  6.7976 ++
  6.7977 ++  ;
  6.7978 ++  return 0;
  6.7979 ++}
  6.7980 ++_ACEOF
  6.7981 ++rm -f conftest.$ac_objext
  6.7982 ++if { (ac_try="$ac_compile"
  6.7983 ++case "(($ac_try" in
  6.7984 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  6.7985 ++  *) ac_try_echo=$ac_try;;
  6.7986 ++esac
  6.7987 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
  6.7988 ++  (eval "$ac_compile") 2>conftest.er1
  6.7989 +   ac_status=$?
  6.7990 ++  grep -v '^ *+' conftest.er1 >conftest.err
  6.7991 ++  rm -f conftest.er1
  6.7992 ++  cat conftest.err >&5
  6.7993 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.7994 +-  (exit $ac_status); }; } &&
  6.7995 +-	 { ac_try='test -s conftest.$ac_objext'
  6.7996 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
  6.7997 +-  (eval $ac_try) 2>&5
  6.7998 ++  (exit $ac_status); } && {
  6.7999 ++	 test -z "$ac_c_werror_flag" ||
  6.8000 ++	 test ! -s conftest.err
  6.8001 ++       } && test -s conftest.$ac_objext; then
  6.8002 ++  :
  6.8003 ++else
  6.8004 ++  echo "$as_me: failed program was:" >&5
  6.8005 ++sed 's/^/| /' conftest.$ac_ext >&5
  6.8006 ++
  6.8007 ++	ac_c_werror_flag=$ac_save_c_werror_flag
  6.8008 ++	 CFLAGS="-g"
  6.8009 ++	 cat >conftest.$ac_ext <<_ACEOF
  6.8010 ++/* confdefs.h.  */
  6.8011 ++_ACEOF
  6.8012 ++cat confdefs.h >>conftest.$ac_ext
  6.8013 ++cat >>conftest.$ac_ext <<_ACEOF
  6.8014 ++/* end confdefs.h.  */
  6.8015 ++
  6.8016 ++int
  6.8017 ++main ()
  6.8018 ++{
  6.8019 ++
  6.8020 ++  ;
  6.8021 ++  return 0;
  6.8022 ++}
  6.8023 ++_ACEOF
  6.8024 ++rm -f conftest.$ac_objext
  6.8025 ++if { (ac_try="$ac_compile"
  6.8026 ++case "(($ac_try" in
  6.8027 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  6.8028 ++  *) ac_try_echo=$ac_try;;
  6.8029 ++esac
  6.8030 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
  6.8031 ++  (eval "$ac_compile") 2>conftest.er1
  6.8032 +   ac_status=$?
  6.8033 ++  grep -v '^ *+' conftest.er1 >conftest.err
  6.8034 ++  rm -f conftest.er1
  6.8035 ++  cat conftest.err >&5
  6.8036 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.8037 +-  (exit $ac_status); }; }; then
  6.8038 ++  (exit $ac_status); } && {
  6.8039 ++	 test -z "$ac_c_werror_flag" ||
  6.8040 ++	 test ! -s conftest.err
  6.8041 ++       } && test -s conftest.$ac_objext; then
  6.8042 +   ac_cv_prog_cc_g=yes
  6.8043 + else
  6.8044 +   echo "$as_me: failed program was:" >&5
  6.8045 + sed 's/^/| /' conftest.$ac_ext >&5
  6.8046 + 
  6.8047 +-ac_cv_prog_cc_g=no
  6.8048 ++
  6.8049 ++fi
  6.8050 ++
  6.8051 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  6.8052 ++fi
  6.8053 ++
  6.8054 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  6.8055 + fi
  6.8056 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
  6.8057 ++
  6.8058 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  6.8059 ++   ac_c_werror_flag=$ac_save_c_werror_flag
  6.8060 + fi
  6.8061 +-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
  6.8062 +-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
  6.8063 ++{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
  6.8064 ++echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
  6.8065 + if test "$ac_test_CFLAGS" = set; then
  6.8066 +   CFLAGS=$ac_save_CFLAGS
  6.8067 + elif test $ac_cv_prog_cc_g = yes; then
  6.8068 +@@ -2552,8 +3157,8 @@
  6.8069 + if test -n "$ac_tool_prefix"; then
  6.8070 +   # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
  6.8071 + set dummy ${ac_tool_prefix}as; ac_word=$2
  6.8072 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8073 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.8074 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8075 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.8076 + if test "${ac_cv_prog_AS+set}" = set; then
  6.8077 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8078 + else
  6.8079 +@@ -2566,32 +3171,34 @@
  6.8080 +   IFS=$as_save_IFS
  6.8081 +   test -z "$as_dir" && as_dir=.
  6.8082 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.8083 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.8084 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.8085 +     ac_cv_prog_AS="${ac_tool_prefix}as"
  6.8086 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.8087 +     break 2
  6.8088 +   fi
  6.8089 + done
  6.8090 + done
  6.8091 ++IFS=$as_save_IFS
  6.8092 + 
  6.8093 + fi
  6.8094 + fi
  6.8095 + AS=$ac_cv_prog_AS
  6.8096 + if test -n "$AS"; then
  6.8097 +-  echo "$as_me:$LINENO: result: $AS" >&5
  6.8098 +-echo "${ECHO_T}$AS" >&6
  6.8099 ++  { echo "$as_me:$LINENO: result: $AS" >&5
  6.8100 ++echo "${ECHO_T}$AS" >&6; }
  6.8101 + else
  6.8102 +-  echo "$as_me:$LINENO: result: no" >&5
  6.8103 +-echo "${ECHO_T}no" >&6
  6.8104 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.8105 ++echo "${ECHO_T}no" >&6; }
  6.8106 + fi
  6.8107 + 
  6.8108 ++
  6.8109 + fi
  6.8110 + if test -z "$ac_cv_prog_AS"; then
  6.8111 +   ac_ct_AS=$AS
  6.8112 +   # Extract the first word of "as", so it can be a program name with args.
  6.8113 + set dummy as; ac_word=$2
  6.8114 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8115 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.8116 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8117 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.8118 + if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
  6.8119 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8120 + else
  6.8121 +@@ -2604,26 +3211,41 @@
  6.8122 +   IFS=$as_save_IFS
  6.8123 +   test -z "$as_dir" && as_dir=.
  6.8124 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.8125 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.8126 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.8127 +     ac_cv_prog_ac_ct_AS="as"
  6.8128 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.8129 +     break 2
  6.8130 +   fi
  6.8131 + done
  6.8132 + done
  6.8133 ++IFS=$as_save_IFS
  6.8134 + 
  6.8135 + fi
  6.8136 + fi
  6.8137 + ac_ct_AS=$ac_cv_prog_ac_ct_AS
  6.8138 + if test -n "$ac_ct_AS"; then
  6.8139 +-  echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
  6.8140 +-echo "${ECHO_T}$ac_ct_AS" >&6
  6.8141 ++  { echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
  6.8142 ++echo "${ECHO_T}$ac_ct_AS" >&6; }
  6.8143 + else
  6.8144 +-  echo "$as_me:$LINENO: result: no" >&5
  6.8145 +-echo "${ECHO_T}no" >&6
  6.8146 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.8147 ++echo "${ECHO_T}no" >&6; }
  6.8148 + fi
  6.8149 + 
  6.8150 +-  AS=$ac_ct_AS
  6.8151 ++  if test "x$ac_ct_AS" = x; then
  6.8152 ++    AS=""
  6.8153 ++  else
  6.8154 ++    case $cross_compiling:$ac_tool_warned in
  6.8155 ++yes:)
  6.8156 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
  6.8157 ++whose name does not start with the host triplet.  If you think this
  6.8158 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
  6.8159 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
  6.8160 ++whose name does not start with the host triplet.  If you think this
  6.8161 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
  6.8162 ++ac_tool_warned=yes ;;
  6.8163 ++esac
  6.8164 ++    AS=$ac_ct_AS
  6.8165 ++  fi
  6.8166 + else
  6.8167 +   AS="$ac_cv_prog_AS"
  6.8168 + fi
  6.8169 +@@ -2631,8 +3253,8 @@
  6.8170 + if test -n "$ac_tool_prefix"; then
  6.8171 +   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  6.8172 + set dummy ${ac_tool_prefix}ar; ac_word=$2
  6.8173 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8174 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.8175 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8176 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.8177 + if test "${ac_cv_prog_AR+set}" = set; then
  6.8178 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8179 + else
  6.8180 +@@ -2645,32 +3267,34 @@
  6.8181 +   IFS=$as_save_IFS
  6.8182 +   test -z "$as_dir" && as_dir=.
  6.8183 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.8184 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.8185 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.8186 +     ac_cv_prog_AR="${ac_tool_prefix}ar"
  6.8187 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.8188 +     break 2
  6.8189 +   fi
  6.8190 + done
  6.8191 + done
  6.8192 ++IFS=$as_save_IFS
  6.8193 + 
  6.8194 + fi
  6.8195 + fi
  6.8196 + AR=$ac_cv_prog_AR
  6.8197 + if test -n "$AR"; then
  6.8198 +-  echo "$as_me:$LINENO: result: $AR" >&5
  6.8199 +-echo "${ECHO_T}$AR" >&6
  6.8200 ++  { echo "$as_me:$LINENO: result: $AR" >&5
  6.8201 ++echo "${ECHO_T}$AR" >&6; }
  6.8202 + else
  6.8203 +-  echo "$as_me:$LINENO: result: no" >&5
  6.8204 +-echo "${ECHO_T}no" >&6
  6.8205 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.8206 ++echo "${ECHO_T}no" >&6; }
  6.8207 + fi
  6.8208 + 
  6.8209 ++
  6.8210 + fi
  6.8211 + if test -z "$ac_cv_prog_AR"; then
  6.8212 +   ac_ct_AR=$AR
  6.8213 +   # Extract the first word of "ar", so it can be a program name with args.
  6.8214 + set dummy ar; ac_word=$2
  6.8215 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8216 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.8217 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8218 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.8219 + if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
  6.8220 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8221 + else
  6.8222 +@@ -2683,26 +3307,41 @@
  6.8223 +   IFS=$as_save_IFS
  6.8224 +   test -z "$as_dir" && as_dir=.
  6.8225 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.8226 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.8227 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.8228 +     ac_cv_prog_ac_ct_AR="ar"
  6.8229 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.8230 +     break 2
  6.8231 +   fi
  6.8232 + done
  6.8233 + done
  6.8234 ++IFS=$as_save_IFS
  6.8235 + 
  6.8236 + fi
  6.8237 + fi
  6.8238 + ac_ct_AR=$ac_cv_prog_ac_ct_AR
  6.8239 + if test -n "$ac_ct_AR"; then
  6.8240 +-  echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
  6.8241 +-echo "${ECHO_T}$ac_ct_AR" >&6
  6.8242 ++  { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
  6.8243 ++echo "${ECHO_T}$ac_ct_AR" >&6; }
  6.8244 + else
  6.8245 +-  echo "$as_me:$LINENO: result: no" >&5
  6.8246 +-echo "${ECHO_T}no" >&6
  6.8247 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.8248 ++echo "${ECHO_T}no" >&6; }
  6.8249 + fi
  6.8250 + 
  6.8251 +-  AR=$ac_ct_AR
  6.8252 ++  if test "x$ac_ct_AR" = x; then
  6.8253 ++    AR=""
  6.8254 ++  else
  6.8255 ++    case $cross_compiling:$ac_tool_warned in
  6.8256 ++yes:)
  6.8257 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
  6.8258 ++whose name does not start with the host triplet.  If you think this
  6.8259 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
  6.8260 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
  6.8261 ++whose name does not start with the host triplet.  If you think this
  6.8262 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
  6.8263 ++ac_tool_warned=yes ;;
  6.8264 ++esac
  6.8265 ++    AR=$ac_ct_AR
  6.8266 ++  fi
  6.8267 + else
  6.8268 +   AR="$ac_cv_prog_AR"
  6.8269 + fi
  6.8270 +@@ -2710,8 +3349,8 @@
  6.8271 + if test -n "$ac_tool_prefix"; then
  6.8272 +   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
  6.8273 + set dummy ${ac_tool_prefix}ranlib; ac_word=$2
  6.8274 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8275 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.8276 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8277 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.8278 + if test "${ac_cv_prog_RANLIB+set}" = set; then
  6.8279 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8280 + else
  6.8281 +@@ -2724,32 +3363,34 @@
  6.8282 +   IFS=$as_save_IFS
  6.8283 +   test -z "$as_dir" && as_dir=.
  6.8284 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.8285 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.8286 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.8287 +     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
  6.8288 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.8289 +     break 2
  6.8290 +   fi
  6.8291 + done
  6.8292 + done
  6.8293 ++IFS=$as_save_IFS
  6.8294 + 
  6.8295 + fi
  6.8296 + fi
  6.8297 + RANLIB=$ac_cv_prog_RANLIB
  6.8298 + if test -n "$RANLIB"; then
  6.8299 +-  echo "$as_me:$LINENO: result: $RANLIB" >&5
  6.8300 +-echo "${ECHO_T}$RANLIB" >&6
  6.8301 ++  { echo "$as_me:$LINENO: result: $RANLIB" >&5
  6.8302 ++echo "${ECHO_T}$RANLIB" >&6; }
  6.8303 + else
  6.8304 +-  echo "$as_me:$LINENO: result: no" >&5
  6.8305 +-echo "${ECHO_T}no" >&6
  6.8306 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.8307 ++echo "${ECHO_T}no" >&6; }
  6.8308 + fi
  6.8309 + 
  6.8310 ++
  6.8311 + fi
  6.8312 + if test -z "$ac_cv_prog_RANLIB"; then
  6.8313 +   ac_ct_RANLIB=$RANLIB
  6.8314 +   # Extract the first word of "ranlib", so it can be a program name with args.
  6.8315 + set dummy ranlib; ac_word=$2
  6.8316 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8317 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.8318 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8319 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.8320 + if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
  6.8321 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8322 + else
  6.8323 +@@ -2762,27 +3403,41 @@
  6.8324 +   IFS=$as_save_IFS
  6.8325 +   test -z "$as_dir" && as_dir=.
  6.8326 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.8327 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.8328 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.8329 +     ac_cv_prog_ac_ct_RANLIB="ranlib"
  6.8330 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.8331 +     break 2
  6.8332 +   fi
  6.8333 + done
  6.8334 + done
  6.8335 ++IFS=$as_save_IFS
  6.8336 + 
  6.8337 +-  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
  6.8338 + fi
  6.8339 + fi
  6.8340 + ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
  6.8341 + if test -n "$ac_ct_RANLIB"; then
  6.8342 +-  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
  6.8343 +-echo "${ECHO_T}$ac_ct_RANLIB" >&6
  6.8344 ++  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
  6.8345 ++echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
  6.8346 + else
  6.8347 +-  echo "$as_me:$LINENO: result: no" >&5
  6.8348 +-echo "${ECHO_T}no" >&6
  6.8349 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.8350 ++echo "${ECHO_T}no" >&6; }
  6.8351 + fi
  6.8352 + 
  6.8353 +-  RANLIB=$ac_ct_RANLIB
  6.8354 ++  if test "x$ac_ct_RANLIB" = x; then
  6.8355 ++    RANLIB=":"
  6.8356 ++  else
  6.8357 ++    case $cross_compiling:$ac_tool_warned in
  6.8358 ++yes:)
  6.8359 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
  6.8360 ++whose name does not start with the host triplet.  If you think this
  6.8361 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
  6.8362 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
  6.8363 ++whose name does not start with the host triplet.  If you think this
  6.8364 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
  6.8365 ++ac_tool_warned=yes ;;
  6.8366 ++esac
  6.8367 ++    RANLIB=$ac_ct_RANLIB
  6.8368 ++  fi
  6.8369 + else
  6.8370 +   RANLIB="$ac_cv_prog_RANLIB"
  6.8371 + fi
  6.8372 +@@ -2790,8 +3445,8 @@
  6.8373 + if test -n "$ac_tool_prefix"; then
  6.8374 +   # Extract the first word of "${ac_tool_prefix}readelf", so it can be a program name with args.
  6.8375 + set dummy ${ac_tool_prefix}readelf; ac_word=$2
  6.8376 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8377 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.8378 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8379 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.8380 + if test "${ac_cv_prog_READELF+set}" = set; then
  6.8381 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8382 + else
  6.8383 +@@ -2804,32 +3459,34 @@
  6.8384 +   IFS=$as_save_IFS
  6.8385 +   test -z "$as_dir" && as_dir=.
  6.8386 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.8387 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.8388 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.8389 +     ac_cv_prog_READELF="${ac_tool_prefix}readelf"
  6.8390 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.8391 +     break 2
  6.8392 +   fi
  6.8393 + done
  6.8394 + done
  6.8395 ++IFS=$as_save_IFS
  6.8396 + 
  6.8397 + fi
  6.8398 + fi
  6.8399 + READELF=$ac_cv_prog_READELF
  6.8400 + if test -n "$READELF"; then
  6.8401 +-  echo "$as_me:$LINENO: result: $READELF" >&5
  6.8402 +-echo "${ECHO_T}$READELF" >&6
  6.8403 ++  { echo "$as_me:$LINENO: result: $READELF" >&5
  6.8404 ++echo "${ECHO_T}$READELF" >&6; }
  6.8405 + else
  6.8406 +-  echo "$as_me:$LINENO: result: no" >&5
  6.8407 +-echo "${ECHO_T}no" >&6
  6.8408 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.8409 ++echo "${ECHO_T}no" >&6; }
  6.8410 + fi
  6.8411 + 
  6.8412 ++
  6.8413 + fi
  6.8414 + if test -z "$ac_cv_prog_READELF"; then
  6.8415 +   ac_ct_READELF=$READELF
  6.8416 +   # Extract the first word of "readelf", so it can be a program name with args.
  6.8417 + set dummy readelf; ac_word=$2
  6.8418 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8419 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.8420 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8421 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.8422 + if test "${ac_cv_prog_ac_ct_READELF+set}" = set; then
  6.8423 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8424 + else
  6.8425 +@@ -2842,27 +3499,41 @@
  6.8426 +   IFS=$as_save_IFS
  6.8427 +   test -z "$as_dir" && as_dir=.
  6.8428 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.8429 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.8430 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.8431 +     ac_cv_prog_ac_ct_READELF="readelf"
  6.8432 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.8433 +     break 2
  6.8434 +   fi
  6.8435 + done
  6.8436 + done
  6.8437 ++IFS=$as_save_IFS
  6.8438 + 
  6.8439 +-  test -z "$ac_cv_prog_ac_ct_READELF" && ac_cv_prog_ac_ct_READELF=":"
  6.8440 + fi
  6.8441 + fi
  6.8442 + ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
  6.8443 + if test -n "$ac_ct_READELF"; then
  6.8444 +-  echo "$as_me:$LINENO: result: $ac_ct_READELF" >&5
  6.8445 +-echo "${ECHO_T}$ac_ct_READELF" >&6
  6.8446 ++  { echo "$as_me:$LINENO: result: $ac_ct_READELF" >&5
  6.8447 ++echo "${ECHO_T}$ac_ct_READELF" >&6; }
  6.8448 + else
  6.8449 +-  echo "$as_me:$LINENO: result: no" >&5
  6.8450 +-echo "${ECHO_T}no" >&6
  6.8451 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.8452 ++echo "${ECHO_T}no" >&6; }
  6.8453 + fi
  6.8454 + 
  6.8455 +-  READELF=$ac_ct_READELF
  6.8456 ++  if test "x$ac_ct_READELF" = x; then
  6.8457 ++    READELF=":"
  6.8458 ++  else
  6.8459 ++    case $cross_compiling:$ac_tool_warned in
  6.8460 ++yes:)
  6.8461 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
  6.8462 ++whose name does not start with the host triplet.  If you think this
  6.8463 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
  6.8464 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
  6.8465 ++whose name does not start with the host triplet.  If you think this
  6.8466 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
  6.8467 ++ac_tool_warned=yes ;;
  6.8468 ++esac
  6.8469 ++    READELF=$ac_ct_READELF
  6.8470 ++  fi
  6.8471 + else
  6.8472 +   READELF="$ac_cv_prog_READELF"
  6.8473 + fi
  6.8474 +@@ -2881,8 +3552,8 @@
  6.8475 + # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
  6.8476 + # OS/2's system install, which has a completely different semantic
  6.8477 + # ./install, which can be erroneously created by make from ./install.sh.
  6.8478 +-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
  6.8479 +-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
  6.8480 ++{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
  6.8481 ++echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
  6.8482 + if test -z "$INSTALL"; then
  6.8483 + if test "${ac_cv_path_install+set}" = set; then
  6.8484 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8485 +@@ -2904,7 +3575,7 @@
  6.8486 +     # by default.
  6.8487 +     for ac_prog in ginstall scoinst install; do
  6.8488 +       for ac_exec_ext in '' $ac_executable_extensions; do
  6.8489 +-	if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
  6.8490 ++	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
  6.8491 + 	  if test $ac_prog = install &&
  6.8492 + 	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
  6.8493 + 	    # AIX install.  It has an incompatible calling convention.
  6.8494 +@@ -2923,21 +3594,22 @@
  6.8495 +     ;;
  6.8496 + esac
  6.8497 + done
  6.8498 ++IFS=$as_save_IFS
  6.8499 + 
  6.8500 + 
  6.8501 + fi
  6.8502 +   if test "${ac_cv_path_install+set}" = set; then
  6.8503 +     INSTALL=$ac_cv_path_install
  6.8504 +   else
  6.8505 +-    # As a last resort, use the slow shell script.  We don't cache a
  6.8506 +-    # path for INSTALL within a source directory, because that will
  6.8507 ++    # As a last resort, use the slow shell script.  Don't cache a
  6.8508 ++    # value for INSTALL within a source directory, because that will
  6.8509 +     # break other packages using the cache if that directory is
  6.8510 +-    # removed, or if the path is relative.
  6.8511 ++    # removed, or if the value is a relative name.
  6.8512 +     INSTALL=$ac_install_sh
  6.8513 +   fi
  6.8514 + fi
  6.8515 +-echo "$as_me:$LINENO: result: $INSTALL" >&5
  6.8516 +-echo "${ECHO_T}$INSTALL" >&6
  6.8517 ++{ echo "$as_me:$LINENO: result: $INSTALL" >&5
  6.8518 ++echo "${ECHO_T}$INSTALL" >&6; }
  6.8519 + 
  6.8520 + # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
  6.8521 + # It thinks the first close brace ends the variable substitution.
  6.8522 +@@ -2951,17 +3623,17 @@
  6.8523 + # Hack to ensure that INSTALL won't be set to "../" with autoconf 2.13.  */
  6.8524 + ac_given_INSTALL=$INSTALL
  6.8525 + 
  6.8526 +-echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
  6.8527 +-echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
  6.8528 +-    # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
  6.8529 ++{ echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
  6.8530 ++echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; }
  6.8531 ++    # Check whether --enable-maintainer-mode was given.
  6.8532 + if test "${enable_maintainer_mode+set}" = set; then
  6.8533 +-  enableval="$enable_maintainer_mode"
  6.8534 +-  USE_MAINTAINER_MODE=$enableval
  6.8535 ++  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
  6.8536 + else
  6.8537 +   USE_MAINTAINER_MODE=no
  6.8538 +-fi;
  6.8539 +-  echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
  6.8540 +-echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
  6.8541 ++fi
  6.8542 ++
  6.8543 ++  { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
  6.8544 ++echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; }
  6.8545 + 
  6.8546 + 
  6.8547 + if test $USE_MAINTAINER_MODE = yes; then
  6.8548 +@@ -3081,64 +3753,89 @@
  6.8549 + 
  6.8550 + 
  6.8551 + 
  6.8552 +-echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
  6.8553 +-echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6
  6.8554 +-if test "${lt_cv_path_SED+set}" = set; then
  6.8555 ++{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
  6.8556 ++echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; }
  6.8557 ++if test "${ac_cv_path_SED+set}" = set; then
  6.8558 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8559 ++else
  6.8560 ++            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
  6.8561 ++     for ac_i in 1 2 3 4 5 6 7; do
  6.8562 ++       ac_script="$ac_script$as_nl$ac_script"
  6.8563 ++     done
  6.8564 ++     echo "$ac_script" | sed 99q >conftest.sed
  6.8565 ++     $as_unset ac_script || ac_script=
  6.8566 ++     # Extract the first word of "sed gsed" to use in msg output
  6.8567 ++if test -z "$SED"; then
  6.8568 ++set dummy sed gsed; ac_prog_name=$2
  6.8569 ++if test "${ac_cv_path_SED+set}" = set; then
  6.8570 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8571 + else
  6.8572 +-  # Loop through the user's path and test for sed and gsed.
  6.8573 +-# Then use that list of sed's as ones to test for truncation.
  6.8574 ++  ac_path_SED_found=false
  6.8575 ++# Loop through the user's path and test for each of PROGNAME-LIST
  6.8576 + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.8577 + for as_dir in $PATH
  6.8578 + do
  6.8579 +   IFS=$as_save_IFS
  6.8580 +   test -z "$as_dir" && as_dir=.
  6.8581 +-  for lt_ac_prog in sed gsed; do
  6.8582 +-    for ac_exec_ext in '' $ac_executable_extensions; do
  6.8583 +-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
  6.8584 +-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
  6.8585 +-      fi
  6.8586 +-    done
  6.8587 +-  done
  6.8588 +-done
  6.8589 +-IFS=$as_save_IFS
  6.8590 +-lt_ac_max=0
  6.8591 +-lt_ac_count=0
  6.8592 +-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
  6.8593 +-# along with /bin/sed that truncates output.
  6.8594 +-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
  6.8595 +-  test ! -f $lt_ac_sed && continue
  6.8596 +-  cat /dev/null > conftest.in
  6.8597 +-  lt_ac_count=0
  6.8598 +-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
  6.8599 +-  # Check for GNU sed and select it if it is found.
  6.8600 +-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
  6.8601 +-    lt_cv_path_SED=$lt_ac_sed
  6.8602 +-    break
  6.8603 +-  fi
  6.8604 +-  while true; do
  6.8605 +-    cat conftest.in conftest.in >conftest.tmp
  6.8606 +-    mv conftest.tmp conftest.in
  6.8607 +-    cp conftest.in conftest.nl
  6.8608 +-    echo >>conftest.nl
  6.8609 +-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
  6.8610 +-    cmp -s conftest.out conftest.nl || break
  6.8611 +-    # 10000 chars as input seems more than enough
  6.8612 +-    test $lt_ac_count -gt 10 && break
  6.8613 +-    lt_ac_count=`expr $lt_ac_count + 1`
  6.8614 +-    if test $lt_ac_count -gt $lt_ac_max; then
  6.8615 +-      lt_ac_max=$lt_ac_count
  6.8616 +-      lt_cv_path_SED=$lt_ac_sed
  6.8617 ++  for ac_prog in sed gsed; do
  6.8618 ++  for ac_exec_ext in '' $ac_executable_extensions; do
  6.8619 ++    ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
  6.8620 ++    { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
  6.8621 ++    # Check for GNU ac_path_SED and select it if it is found.
  6.8622 ++  # Check for GNU $ac_path_SED
  6.8623 ++case `"$ac_path_SED" --version 2>&1` in
  6.8624 ++*GNU*)
  6.8625 ++  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
  6.8626 ++*)
  6.8627 ++  ac_count=0
  6.8628 ++  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
  6.8629 ++  while :
  6.8630 ++  do
  6.8631 ++    cat "conftest.in" "conftest.in" >"conftest.tmp"
  6.8632 ++    mv "conftest.tmp" "conftest.in"
  6.8633 ++    cp "conftest.in" "conftest.nl"
  6.8634 ++    echo '' >> "conftest.nl"
  6.8635 ++    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
  6.8636 ++    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
  6.8637 ++    ac_count=`expr $ac_count + 1`
  6.8638 ++    if test $ac_count -gt ${ac_path_SED_max-0}; then
  6.8639 ++      # Best one so far, save it but keep looking for a better one
  6.8640 ++      ac_cv_path_SED="$ac_path_SED"
  6.8641 ++      ac_path_SED_max=$ac_count
  6.8642 +     fi
  6.8643 ++    # 10*(2^10) chars as input seems more than enough
  6.8644 ++    test $ac_count -gt 10 && break
  6.8645 ++  done
  6.8646 ++  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
  6.8647 ++esac
  6.8648 ++
  6.8649 ++
  6.8650 ++    $ac_path_SED_found && break 3
  6.8651 +   done
  6.8652 + done
  6.8653 + 
  6.8654 ++done
  6.8655 ++IFS=$as_save_IFS
  6.8656 ++
  6.8657 ++
  6.8658 ++fi
  6.8659 ++
  6.8660 ++SED="$ac_cv_path_SED"
  6.8661 ++if test -z "$SED"; then
  6.8662 ++  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in \$PATH" >&5
  6.8663 ++echo "$as_me: error: no acceptable $ac_prog_name could be found in \$PATH" >&2;}
  6.8664 ++   { (exit 1); exit 1; }; }
  6.8665 + fi
  6.8666 + 
  6.8667 +-SED=$lt_cv_path_SED
  6.8668 ++else
  6.8669 ++  ac_cv_path_SED=$SED
  6.8670 ++fi
  6.8671 + 
  6.8672 +-echo "$as_me:$LINENO: result: $SED" >&5
  6.8673 +-echo "${ECHO_T}$SED" >&6
  6.8674 ++fi
  6.8675 ++{ echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5
  6.8676 ++echo "${ECHO_T}$ac_cv_path_SED" >&6; }
  6.8677 ++ SED="$ac_cv_path_SED"
  6.8678 ++  rm -f conftest.sed
  6.8679 + 
  6.8680 + test -z "$SED" && SED=sed
  6.8681 + Xsed="$SED -e 1s/^X//"
  6.8682 +@@ -3161,8 +3858,8 @@
  6.8683 +   if test -n "$ac_tool_prefix"; then
  6.8684 +   # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
  6.8685 + set dummy ${ac_tool_prefix}as; ac_word=$2
  6.8686 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8687 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.8688 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8689 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.8690 + if test "${ac_cv_prog_AS+set}" = set; then
  6.8691 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8692 + else
  6.8693 +@@ -3175,32 +3872,34 @@
  6.8694 +   IFS=$as_save_IFS
  6.8695 +   test -z "$as_dir" && as_dir=.
  6.8696 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.8697 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.8698 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.8699 +     ac_cv_prog_AS="${ac_tool_prefix}as"
  6.8700 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.8701 +     break 2
  6.8702 +   fi
  6.8703 + done
  6.8704 + done
  6.8705 ++IFS=$as_save_IFS
  6.8706 + 
  6.8707 + fi
  6.8708 + fi
  6.8709 + AS=$ac_cv_prog_AS
  6.8710 + if test -n "$AS"; then
  6.8711 +-  echo "$as_me:$LINENO: result: $AS" >&5
  6.8712 +-echo "${ECHO_T}$AS" >&6
  6.8713 ++  { echo "$as_me:$LINENO: result: $AS" >&5
  6.8714 ++echo "${ECHO_T}$AS" >&6; }
  6.8715 + else
  6.8716 +-  echo "$as_me:$LINENO: result: no" >&5
  6.8717 +-echo "${ECHO_T}no" >&6
  6.8718 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.8719 ++echo "${ECHO_T}no" >&6; }
  6.8720 + fi
  6.8721 + 
  6.8722 ++
  6.8723 + fi
  6.8724 + if test -z "$ac_cv_prog_AS"; then
  6.8725 +   ac_ct_AS=$AS
  6.8726 +   # Extract the first word of "as", so it can be a program name with args.
  6.8727 + set dummy as; ac_word=$2
  6.8728 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8729 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.8730 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8731 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.8732 + if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
  6.8733 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8734 + else
  6.8735 +@@ -3213,27 +3912,41 @@
  6.8736 +   IFS=$as_save_IFS
  6.8737 +   test -z "$as_dir" && as_dir=.
  6.8738 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.8739 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.8740 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.8741 +     ac_cv_prog_ac_ct_AS="as"
  6.8742 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.8743 +     break 2
  6.8744 +   fi
  6.8745 + done
  6.8746 + done
  6.8747 ++IFS=$as_save_IFS
  6.8748 + 
  6.8749 +-  test -z "$ac_cv_prog_ac_ct_AS" && ac_cv_prog_ac_ct_AS="false"
  6.8750 + fi
  6.8751 + fi
  6.8752 + ac_ct_AS=$ac_cv_prog_ac_ct_AS
  6.8753 + if test -n "$ac_ct_AS"; then
  6.8754 +-  echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
  6.8755 +-echo "${ECHO_T}$ac_ct_AS" >&6
  6.8756 ++  { echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
  6.8757 ++echo "${ECHO_T}$ac_ct_AS" >&6; }
  6.8758 + else
  6.8759 +-  echo "$as_me:$LINENO: result: no" >&5
  6.8760 +-echo "${ECHO_T}no" >&6
  6.8761 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.8762 ++echo "${ECHO_T}no" >&6; }
  6.8763 + fi
  6.8764 + 
  6.8765 +-  AS=$ac_ct_AS
  6.8766 ++  if test "x$ac_ct_AS" = x; then
  6.8767 ++    AS="false"
  6.8768 ++  else
  6.8769 ++    case $cross_compiling:$ac_tool_warned in
  6.8770 ++yes:)
  6.8771 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
  6.8772 ++whose name does not start with the host triplet.  If you think this
  6.8773 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
  6.8774 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
  6.8775 ++whose name does not start with the host triplet.  If you think this
  6.8776 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
  6.8777 ++ac_tool_warned=yes ;;
  6.8778 ++esac
  6.8779 ++    AS=$ac_ct_AS
  6.8780 ++  fi
  6.8781 + else
  6.8782 +   AS="$ac_cv_prog_AS"
  6.8783 + fi
  6.8784 +@@ -3241,8 +3954,8 @@
  6.8785 +   if test -n "$ac_tool_prefix"; then
  6.8786 +   # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
  6.8787 + set dummy ${ac_tool_prefix}dlltool; ac_word=$2
  6.8788 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8789 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.8790 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8791 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.8792 + if test "${ac_cv_prog_DLLTOOL+set}" = set; then
  6.8793 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8794 + else
  6.8795 +@@ -3255,32 +3968,34 @@
  6.8796 +   IFS=$as_save_IFS
  6.8797 +   test -z "$as_dir" && as_dir=.
  6.8798 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.8799 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.8800 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.8801 +     ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
  6.8802 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.8803 +     break 2
  6.8804 +   fi
  6.8805 + done
  6.8806 + done
  6.8807 ++IFS=$as_save_IFS
  6.8808 + 
  6.8809 + fi
  6.8810 + fi
  6.8811 + DLLTOOL=$ac_cv_prog_DLLTOOL
  6.8812 + if test -n "$DLLTOOL"; then
  6.8813 +-  echo "$as_me:$LINENO: result: $DLLTOOL" >&5
  6.8814 +-echo "${ECHO_T}$DLLTOOL" >&6
  6.8815 ++  { echo "$as_me:$LINENO: result: $DLLTOOL" >&5
  6.8816 ++echo "${ECHO_T}$DLLTOOL" >&6; }
  6.8817 + else
  6.8818 +-  echo "$as_me:$LINENO: result: no" >&5
  6.8819 +-echo "${ECHO_T}no" >&6
  6.8820 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.8821 ++echo "${ECHO_T}no" >&6; }
  6.8822 + fi
  6.8823 + 
  6.8824 ++
  6.8825 + fi
  6.8826 + if test -z "$ac_cv_prog_DLLTOOL"; then
  6.8827 +   ac_ct_DLLTOOL=$DLLTOOL
  6.8828 +   # Extract the first word of "dlltool", so it can be a program name with args.
  6.8829 + set dummy dlltool; ac_word=$2
  6.8830 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8831 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.8832 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8833 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.8834 + if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then
  6.8835 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8836 + else
  6.8837 +@@ -3293,27 +4008,41 @@
  6.8838 +   IFS=$as_save_IFS
  6.8839 +   test -z "$as_dir" && as_dir=.
  6.8840 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.8841 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.8842 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.8843 +     ac_cv_prog_ac_ct_DLLTOOL="dlltool"
  6.8844 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.8845 +     break 2
  6.8846 +   fi
  6.8847 + done
  6.8848 + done
  6.8849 ++IFS=$as_save_IFS
  6.8850 + 
  6.8851 +-  test -z "$ac_cv_prog_ac_ct_DLLTOOL" && ac_cv_prog_ac_ct_DLLTOOL="false"
  6.8852 + fi
  6.8853 + fi
  6.8854 + ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
  6.8855 + if test -n "$ac_ct_DLLTOOL"; then
  6.8856 +-  echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5
  6.8857 +-echo "${ECHO_T}$ac_ct_DLLTOOL" >&6
  6.8858 ++  { echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5
  6.8859 ++echo "${ECHO_T}$ac_ct_DLLTOOL" >&6; }
  6.8860 + else
  6.8861 +-  echo "$as_me:$LINENO: result: no" >&5
  6.8862 +-echo "${ECHO_T}no" >&6
  6.8863 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.8864 ++echo "${ECHO_T}no" >&6; }
  6.8865 + fi
  6.8866 + 
  6.8867 +-  DLLTOOL=$ac_ct_DLLTOOL
  6.8868 ++  if test "x$ac_ct_DLLTOOL" = x; then
  6.8869 ++    DLLTOOL="false"
  6.8870 ++  else
  6.8871 ++    case $cross_compiling:$ac_tool_warned in
  6.8872 ++yes:)
  6.8873 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
  6.8874 ++whose name does not start with the host triplet.  If you think this
  6.8875 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
  6.8876 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
  6.8877 ++whose name does not start with the host triplet.  If you think this
  6.8878 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
  6.8879 ++ac_tool_warned=yes ;;
  6.8880 ++esac
  6.8881 ++    DLLTOOL=$ac_ct_DLLTOOL
  6.8882 ++  fi
  6.8883 + else
  6.8884 +   DLLTOOL="$ac_cv_prog_DLLTOOL"
  6.8885 + fi
  6.8886 +@@ -3321,8 +4050,8 @@
  6.8887 +   if test -n "$ac_tool_prefix"; then
  6.8888 +   # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
  6.8889 + set dummy ${ac_tool_prefix}objdump; ac_word=$2
  6.8890 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8891 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.8892 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8893 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.8894 + if test "${ac_cv_prog_OBJDUMP+set}" = set; then
  6.8895 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8896 + else
  6.8897 +@@ -3335,32 +4064,34 @@
  6.8898 +   IFS=$as_save_IFS
  6.8899 +   test -z "$as_dir" && as_dir=.
  6.8900 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.8901 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.8902 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.8903 +     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
  6.8904 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.8905 +     break 2
  6.8906 +   fi
  6.8907 + done
  6.8908 + done
  6.8909 ++IFS=$as_save_IFS
  6.8910 + 
  6.8911 + fi
  6.8912 + fi
  6.8913 + OBJDUMP=$ac_cv_prog_OBJDUMP
  6.8914 + if test -n "$OBJDUMP"; then
  6.8915 +-  echo "$as_me:$LINENO: result: $OBJDUMP" >&5
  6.8916 +-echo "${ECHO_T}$OBJDUMP" >&6
  6.8917 ++  { echo "$as_me:$LINENO: result: $OBJDUMP" >&5
  6.8918 ++echo "${ECHO_T}$OBJDUMP" >&6; }
  6.8919 + else
  6.8920 +-  echo "$as_me:$LINENO: result: no" >&5
  6.8921 +-echo "${ECHO_T}no" >&6
  6.8922 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.8923 ++echo "${ECHO_T}no" >&6; }
  6.8924 + fi
  6.8925 + 
  6.8926 ++
  6.8927 + fi
  6.8928 + if test -z "$ac_cv_prog_OBJDUMP"; then
  6.8929 +   ac_ct_OBJDUMP=$OBJDUMP
  6.8930 +   # Extract the first word of "objdump", so it can be a program name with args.
  6.8931 + set dummy objdump; ac_word=$2
  6.8932 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8933 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.8934 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8935 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.8936 + if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then
  6.8937 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8938 + else
  6.8939 +@@ -3373,27 +4104,41 @@
  6.8940 +   IFS=$as_save_IFS
  6.8941 +   test -z "$as_dir" && as_dir=.
  6.8942 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.8943 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.8944 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.8945 +     ac_cv_prog_ac_ct_OBJDUMP="objdump"
  6.8946 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.8947 +     break 2
  6.8948 +   fi
  6.8949 + done
  6.8950 + done
  6.8951 ++IFS=$as_save_IFS
  6.8952 + 
  6.8953 +-  test -z "$ac_cv_prog_ac_ct_OBJDUMP" && ac_cv_prog_ac_ct_OBJDUMP="false"
  6.8954 + fi
  6.8955 + fi
  6.8956 + ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
  6.8957 + if test -n "$ac_ct_OBJDUMP"; then
  6.8958 +-  echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
  6.8959 +-echo "${ECHO_T}$ac_ct_OBJDUMP" >&6
  6.8960 ++  { echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
  6.8961 ++echo "${ECHO_T}$ac_ct_OBJDUMP" >&6; }
  6.8962 + else
  6.8963 +-  echo "$as_me:$LINENO: result: no" >&5
  6.8964 +-echo "${ECHO_T}no" >&6
  6.8965 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.8966 ++echo "${ECHO_T}no" >&6; }
  6.8967 + fi
  6.8968 + 
  6.8969 +-  OBJDUMP=$ac_ct_OBJDUMP
  6.8970 ++  if test "x$ac_ct_OBJDUMP" = x; then
  6.8971 ++    OBJDUMP="false"
  6.8972 ++  else
  6.8973 ++    case $cross_compiling:$ac_tool_warned in
  6.8974 ++yes:)
  6.8975 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
  6.8976 ++whose name does not start with the host triplet.  If you think this
  6.8977 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
  6.8978 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
  6.8979 ++whose name does not start with the host triplet.  If you think this
  6.8980 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
  6.8981 ++ac_tool_warned=yes ;;
  6.8982 ++esac
  6.8983 ++    OBJDUMP=$ac_ct_OBJDUMP
  6.8984 ++  fi
  6.8985 + else
  6.8986 +   OBJDUMP="$ac_cv_prog_OBJDUMP"
  6.8987 + fi
  6.8988 +@@ -3454,8 +4199,8 @@
  6.8989 + if test -n "$ac_tool_prefix"; then
  6.8990 +   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
  6.8991 + set dummy ${ac_tool_prefix}gcc; ac_word=$2
  6.8992 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8993 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.8994 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.8995 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.8996 + if test "${ac_cv_prog_CC+set}" = set; then
  6.8997 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.8998 + else
  6.8999 +@@ -3468,32 +4213,34 @@
  6.9000 +   IFS=$as_save_IFS
  6.9001 +   test -z "$as_dir" && as_dir=.
  6.9002 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.9003 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.9004 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.9005 +     ac_cv_prog_CC="${ac_tool_prefix}gcc"
  6.9006 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.9007 +     break 2
  6.9008 +   fi
  6.9009 + done
  6.9010 + done
  6.9011 ++IFS=$as_save_IFS
  6.9012 + 
  6.9013 + fi
  6.9014 + fi
  6.9015 + CC=$ac_cv_prog_CC
  6.9016 + if test -n "$CC"; then
  6.9017 +-  echo "$as_me:$LINENO: result: $CC" >&5
  6.9018 +-echo "${ECHO_T}$CC" >&6
  6.9019 ++  { echo "$as_me:$LINENO: result: $CC" >&5
  6.9020 ++echo "${ECHO_T}$CC" >&6; }
  6.9021 + else
  6.9022 +-  echo "$as_me:$LINENO: result: no" >&5
  6.9023 +-echo "${ECHO_T}no" >&6
  6.9024 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.9025 ++echo "${ECHO_T}no" >&6; }
  6.9026 + fi
  6.9027 + 
  6.9028 ++
  6.9029 + fi
  6.9030 + if test -z "$ac_cv_prog_CC"; then
  6.9031 +   ac_ct_CC=$CC
  6.9032 +   # Extract the first word of "gcc", so it can be a program name with args.
  6.9033 + set dummy gcc; ac_word=$2
  6.9034 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.9035 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.9036 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.9037 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.9038 + if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
  6.9039 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.9040 + else
  6.9041 +@@ -3506,36 +4253,51 @@
  6.9042 +   IFS=$as_save_IFS
  6.9043 +   test -z "$as_dir" && as_dir=.
  6.9044 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.9045 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.9046 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.9047 +     ac_cv_prog_ac_ct_CC="gcc"
  6.9048 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.9049 +     break 2
  6.9050 +   fi
  6.9051 + done
  6.9052 + done
  6.9053 ++IFS=$as_save_IFS
  6.9054 + 
  6.9055 + fi
  6.9056 + fi
  6.9057 + ac_ct_CC=$ac_cv_prog_ac_ct_CC
  6.9058 + if test -n "$ac_ct_CC"; then
  6.9059 +-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
  6.9060 +-echo "${ECHO_T}$ac_ct_CC" >&6
  6.9061 ++  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
  6.9062 ++echo "${ECHO_T}$ac_ct_CC" >&6; }
  6.9063 + else
  6.9064 +-  echo "$as_me:$LINENO: result: no" >&5
  6.9065 +-echo "${ECHO_T}no" >&6
  6.9066 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.9067 ++echo "${ECHO_T}no" >&6; }
  6.9068 + fi
  6.9069 + 
  6.9070 +-  CC=$ac_ct_CC
  6.9071 ++  if test "x$ac_ct_CC" = x; then
  6.9072 ++    CC=""
  6.9073 ++  else
  6.9074 ++    case $cross_compiling:$ac_tool_warned in
  6.9075 ++yes:)
  6.9076 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
  6.9077 ++whose name does not start with the host triplet.  If you think this
  6.9078 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
  6.9079 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
  6.9080 ++whose name does not start with the host triplet.  If you think this
  6.9081 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
  6.9082 ++ac_tool_warned=yes ;;
  6.9083 ++esac
  6.9084 ++    CC=$ac_ct_CC
  6.9085 ++  fi
  6.9086 + else
  6.9087 +   CC="$ac_cv_prog_CC"
  6.9088 + fi
  6.9089 + 
  6.9090 + if test -z "$CC"; then
  6.9091 +-  if test -n "$ac_tool_prefix"; then
  6.9092 +-  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
  6.9093 ++          if test -n "$ac_tool_prefix"; then
  6.9094 ++    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
  6.9095 + set dummy ${ac_tool_prefix}cc; ac_word=$2
  6.9096 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.9097 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.9098 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.9099 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.9100 + if test "${ac_cv_prog_CC+set}" = set; then
  6.9101 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.9102 + else
  6.9103 +@@ -3548,98 +4310,59 @@
  6.9104 +   IFS=$as_save_IFS
  6.9105 +   test -z "$as_dir" && as_dir=.
  6.9106 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.9107 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.9108 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.9109 +     ac_cv_prog_CC="${ac_tool_prefix}cc"
  6.9110 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.9111 +     break 2
  6.9112 +   fi
  6.9113 + done
  6.9114 + done
  6.9115 ++IFS=$as_save_IFS
  6.9116 + 
  6.9117 + fi
  6.9118 + fi
  6.9119 + CC=$ac_cv_prog_CC
  6.9120 + if test -n "$CC"; then
  6.9121 +-  echo "$as_me:$LINENO: result: $CC" >&5
  6.9122 +-echo "${ECHO_T}$CC" >&6
  6.9123 ++  { echo "$as_me:$LINENO: result: $CC" >&5
  6.9124 ++echo "${ECHO_T}$CC" >&6; }
  6.9125 + else
  6.9126 +-  echo "$as_me:$LINENO: result: no" >&5
  6.9127 +-echo "${ECHO_T}no" >&6
  6.9128 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.9129 ++echo "${ECHO_T}no" >&6; }
  6.9130 + fi
  6.9131 + 
  6.9132 ++
  6.9133 ++  fi
  6.9134 + fi
  6.9135 +-if test -z "$ac_cv_prog_CC"; then
  6.9136 +-  ac_ct_CC=$CC
  6.9137 ++if test -z "$CC"; then
  6.9138 +   # Extract the first word of "cc", so it can be a program name with args.
  6.9139 + set dummy cc; ac_word=$2
  6.9140 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.9141 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.9142 +-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
  6.9143 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.9144 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.9145 ++if test "${ac_cv_prog_CC+set}" = set; then
  6.9146 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.9147 + else
  6.9148 +-  if test -n "$ac_ct_CC"; then
  6.9149 +-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
  6.9150 ++  if test -n "$CC"; then
  6.9151 ++  ac_cv_prog_CC="$CC" # Let the user override the test.
  6.9152 + else
  6.9153 ++  ac_prog_rejected=no
  6.9154 + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.9155 + for as_dir in $PATH
  6.9156 + do
  6.9157 +   IFS=$as_save_IFS
  6.9158 +   test -z "$as_dir" && as_dir=.
  6.9159 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.9160 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.9161 +-    ac_cv_prog_ac_ct_CC="cc"
  6.9162 +-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.9163 +-    break 2
  6.9164 +-  fi
  6.9165 +-done
  6.9166 +-done
  6.9167 +-
  6.9168 +-fi
  6.9169 +-fi
  6.9170 +-ac_ct_CC=$ac_cv_prog_ac_ct_CC
  6.9171 +-if test -n "$ac_ct_CC"; then
  6.9172 +-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
  6.9173 +-echo "${ECHO_T}$ac_ct_CC" >&6
  6.9174 +-else
  6.9175 +-  echo "$as_me:$LINENO: result: no" >&5
  6.9176 +-echo "${ECHO_T}no" >&6
  6.9177 +-fi
  6.9178 +-
  6.9179 +-  CC=$ac_ct_CC
  6.9180 +-else
  6.9181 +-  CC="$ac_cv_prog_CC"
  6.9182 +-fi
  6.9183 +-
  6.9184 +-fi
  6.9185 +-if test -z "$CC"; then
  6.9186 +-  # Extract the first word of "cc", so it can be a program name with args.
  6.9187 +-set dummy cc; ac_word=$2
  6.9188 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.9189 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.9190 +-if test "${ac_cv_prog_CC+set}" = set; then
  6.9191 +-  echo $ECHO_N "(cached) $ECHO_C" >&6
  6.9192 +-else
  6.9193 +-  if test -n "$CC"; then
  6.9194 +-  ac_cv_prog_CC="$CC" # Let the user override the test.
  6.9195 +-else
  6.9196 +-  ac_prog_rejected=no
  6.9197 +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  6.9198 +-for as_dir in $PATH
  6.9199 +-do
  6.9200 +-  IFS=$as_save_IFS
  6.9201 +-  test -z "$as_dir" && as_dir=.
  6.9202 +-  for ac_exec_ext in '' $ac_executable_extensions; do
  6.9203 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.9204 +-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
  6.9205 +-       ac_prog_rejected=yes
  6.9206 +-       continue
  6.9207 +-     fi
  6.9208 +-    ac_cv_prog_CC="cc"
  6.9209 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.9210 ++    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
  6.9211 ++       ac_prog_rejected=yes
  6.9212 ++       continue
  6.9213 ++     fi
  6.9214 ++    ac_cv_prog_CC="cc"
  6.9215 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.9216 +     break 2
  6.9217 +   fi
  6.9218 + done
  6.9219 + done
  6.9220 ++IFS=$as_save_IFS
  6.9221 + 
  6.9222 + if test $ac_prog_rejected = yes; then
  6.9223 +   # We found a bogon in the path, so make sure we never use it.
  6.9224 +@@ -3657,22 +4380,23 @@
  6.9225 + fi
  6.9226 + CC=$ac_cv_prog_CC
  6.9227 + if test -n "$CC"; then
  6.9228 +-  echo "$as_me:$LINENO: result: $CC" >&5
  6.9229 +-echo "${ECHO_T}$CC" >&6
  6.9230 ++  { echo "$as_me:$LINENO: result: $CC" >&5
  6.9231 ++echo "${ECHO_T}$CC" >&6; }
  6.9232 + else
  6.9233 +-  echo "$as_me:$LINENO: result: no" >&5
  6.9234 +-echo "${ECHO_T}no" >&6
  6.9235 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.9236 ++echo "${ECHO_T}no" >&6; }
  6.9237 + fi
  6.9238 + 
  6.9239 ++
  6.9240 + fi
  6.9241 + if test -z "$CC"; then
  6.9242 +   if test -n "$ac_tool_prefix"; then
  6.9243 +-  for ac_prog in cl
  6.9244 ++  for ac_prog in cl.exe
  6.9245 +   do
  6.9246 +     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
  6.9247 + set dummy $ac_tool_prefix$ac_prog; ac_word=$2
  6.9248 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.9249 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.9250 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.9251 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.9252 + if test "${ac_cv_prog_CC+set}" = set; then
  6.9253 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.9254 + else
  6.9255 +@@ -3685,36 +4409,38 @@
  6.9256 +   IFS=$as_save_IFS
  6.9257 +   test -z "$as_dir" && as_dir=.
  6.9258 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.9259 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.9260 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.9261 +     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
  6.9262 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.9263 +     break 2
  6.9264 +   fi
  6.9265 + done
  6.9266 + done
  6.9267 ++IFS=$as_save_IFS
  6.9268 + 
  6.9269 + fi
  6.9270 + fi
  6.9271 + CC=$ac_cv_prog_CC
  6.9272 + if test -n "$CC"; then
  6.9273 +-  echo "$as_me:$LINENO: result: $CC" >&5
  6.9274 +-echo "${ECHO_T}$CC" >&6
  6.9275 ++  { echo "$as_me:$LINENO: result: $CC" >&5
  6.9276 ++echo "${ECHO_T}$CC" >&6; }
  6.9277 + else
  6.9278 +-  echo "$as_me:$LINENO: result: no" >&5
  6.9279 +-echo "${ECHO_T}no" >&6
  6.9280 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.9281 ++echo "${ECHO_T}no" >&6; }
  6.9282 + fi
  6.9283 + 
  6.9284 ++
  6.9285 +     test -n "$CC" && break
  6.9286 +   done
  6.9287 + fi
  6.9288 + if test -z "$CC"; then
  6.9289 +   ac_ct_CC=$CC
  6.9290 +-  for ac_prog in cl
  6.9291 ++  for ac_prog in cl.exe
  6.9292 + do
  6.9293 +   # Extract the first word of "$ac_prog", so it can be a program name with args.
  6.9294 + set dummy $ac_prog; ac_word=$2
  6.9295 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.9296 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
  6.9297 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
  6.9298 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
  6.9299 + if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
  6.9300 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.9301 + else
  6.9302 +@@ -3727,29 +4453,45 @@
  6.9303 +   IFS=$as_save_IFS
  6.9304 +   test -z "$as_dir" && as_dir=.
  6.9305 +   for ac_exec_ext in '' $ac_executable_extensions; do
  6.9306 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
  6.9307 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
  6.9308 +     ac_cv_prog_ac_ct_CC="$ac_prog"
  6.9309 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
  6.9310 +     break 2
  6.9311 +   fi
  6.9312 + done
  6.9313 + done
  6.9314 ++IFS=$as_save_IFS
  6.9315 + 
  6.9316 + fi
  6.9317 + fi
  6.9318 + ac_ct_CC=$ac_cv_prog_ac_ct_CC
  6.9319 + if test -n "$ac_ct_CC"; then
  6.9320 +-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
  6.9321 +-echo "${ECHO_T}$ac_ct_CC" >&6
  6.9322 ++  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
  6.9323 ++echo "${ECHO_T}$ac_ct_CC" >&6; }
  6.9324 + else
  6.9325 +-  echo "$as_me:$LINENO: result: no" >&5
  6.9326 +-echo "${ECHO_T}no" >&6
  6.9327 ++  { echo "$as_me:$LINENO: result: no" >&5
  6.9328 ++echo "${ECHO_T}no" >&6; }
  6.9329 + fi
  6.9330 + 
  6.9331 ++
  6.9332 +   test -n "$ac_ct_CC" && break
  6.9333 + done
  6.9334 + 
  6.9335 +-  CC=$ac_ct_CC
  6.9336 ++  if test "x$ac_ct_CC" = x; then
  6.9337 ++    CC=""
  6.9338 ++  else
  6.9339 ++    case $cross_compiling:$ac_tool_warned in
  6.9340 ++yes:)
  6.9341 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
  6.9342 ++whose name does not start with the host triplet.  If you think this
  6.9343 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
  6.9344 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
  6.9345 ++whose name does not start with the host triplet.  If you think this
  6.9346 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
  6.9347 ++ac_tool_warned=yes ;;
  6.9348 ++esac
  6.9349 ++    CC=$ac_ct_CC
  6.9350 ++  fi
  6.9351 + fi
  6.9352 + 
  6.9353 + fi
  6.9354 +@@ -3762,21 +4504,35 @@
  6.9355 +    { (exit 1); exit 1; }; }
  6.9356 + 
  6.9357 + # Provide some information about the compiler.
  6.9358 +-echo "$as_me:$LINENO:" \
  6.9359 +-     "checking for C compiler version" >&5
  6.9360 ++echo "$as_me:$LINENO: checking for C compiler version" >&5
  6.9361 + ac_compiler=`set X $ac_compile; echo $2`
  6.9362 +-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
  6.9363 +-  (eval $ac_compiler --version </dev/null >&5) 2>&5
  6.9364 ++{ (ac_try="$ac_compiler --version >&5"
  6.9365 ++case "(($ac_try" in
  6.9366 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  6.9367 ++  *) ac_try_echo=$ac_try;;
  6.9368 ++esac
  6.9369 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
  6.9370 ++  (eval "$ac_compiler --version >&5") 2>&5
  6.9371 +   ac_status=$?
  6.9372 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9373 +   (exit $ac_status); }
  6.9374 +-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
  6.9375 +-  (eval $ac_compiler -v </dev/null >&5) 2>&5
  6.9376 ++{ (ac_try="$ac_compiler -v >&5"
  6.9377 ++case "(($ac_try" in
  6.9378 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  6.9379 ++  *) ac_try_echo=$ac_try;;
  6.9380 ++esac
  6.9381 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
  6.9382 ++  (eval "$ac_compiler -v >&5") 2>&5
  6.9383 +   ac_status=$?
  6.9384 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9385 +   (exit $ac_status); }
  6.9386 +-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
  6.9387 +-  (eval $ac_compiler -V </dev/null >&5) 2>&5
  6.9388 ++{ (ac_try="$ac_compiler -V >&5"
  6.9389 ++case "(($ac_try" in
  6.9390 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  6.9391 ++  *) ac_try_echo=$ac_try;;
  6.9392 ++esac
  6.9393 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
  6.9394 ++  (eval "$ac_compiler -V >&5") 2>&5
  6.9395 +   ac_status=$?
  6.9396 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9397 +   (exit $ac_status); }
  6.9398 +@@ -3801,47 +4557,77 @@
  6.9399 + # Try to create an executable without -o first, disregard a.out.
  6.9400 + # It will help us diagnose broken compilers, and finding out an intuition
  6.9401 + # of exeext.
  6.9402 +-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
  6.9403 +-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
  6.9404 ++{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
  6.9405 ++echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }
  6.9406 + ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
  6.9407 +-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
  6.9408 +-  (eval $ac_link_default) 2>&5
  6.9409 ++#
  6.9410 ++# List of possible output files, starting from the most likely.
  6.9411 ++# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
  6.9412 ++# only as a last resort.  b.out is created by i960 compilers.
  6.9413 ++ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
  6.9414 ++#
  6.9415 ++# The IRIX 6 linker writes into existing files which may not be
  6.9416 ++# executable, retaining their permissions.  Remove them first so a
  6.9417 ++# subsequent execution test works.
  6.9418 ++ac_rmfiles=
  6.9419 ++for ac_file in $ac_files
  6.9420 ++do
  6.9421 ++  case $ac_file in
  6.9422 ++    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
  6.9423 ++    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
  6.9424 ++  esac
  6.9425 ++done
  6.9426 ++rm -f $ac_rmfiles
  6.9427 ++
  6.9428 ++if { (ac_try="$ac_link_default"
  6.9429 ++case "(($ac_try" in
  6.9430 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  6.9431 ++  *) ac_try_echo=$ac_try;;
  6.9432 ++esac
  6.9433 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
  6.9434 ++  (eval "$ac_link_default") 2>&5
  6.9435 +   ac_status=$?
  6.9436 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9437 +   (exit $ac_status); }; then
  6.9438 +-  # Find the output, starting from the most likely.  This scheme is
  6.9439 +-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
  6.9440 +-# resort.
  6.9441 +-
  6.9442 +-# Be careful to initialize this variable, since it used to be cached.
  6.9443 +-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
  6.9444 +-ac_cv_exeext=
  6.9445 +-# b.out is created by i960 compilers.
  6.9446 +-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
  6.9447 ++  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
  6.9448 ++# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
  6.9449 ++# in a Makefile.  We should not override ac_cv_exeext if it was cached,
  6.9450 ++# so that the user can short-circuit this test for compilers unknown to
  6.9451 ++# Autoconf.
  6.9452 ++for ac_file in $ac_files ''
  6.9453 + do
  6.9454 +   test -f "$ac_file" || continue
  6.9455 +   case $ac_file in
  6.9456 +-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
  6.9457 +-	;;
  6.9458 +-    conftest.$ac_ext )
  6.9459 +-	# This is the source file.
  6.9460 ++    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
  6.9461 + 	;;
  6.9462 +     [ab].out )
  6.9463 + 	# We found the default executable, but exeext='' is most
  6.9464 + 	# certainly right.
  6.9465 + 	break;;
  6.9466 +     *.* )
  6.9467 +-	ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
  6.9468 +-	# FIXME: I believe we export ac_cv_exeext for Libtool,
  6.9469 +-	# but it would be cool to find out if it's true.  Does anybody
  6.9470 +-	# maintain Libtool? --akim.
  6.9471 +-	export ac_cv_exeext
  6.9472 ++        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
  6.9473 ++	then :; else
  6.9474 ++	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
  6.9475 ++	fi
  6.9476 ++	# We set ac_cv_exeext here because the later test for it is not
  6.9477 ++	# safe: cross compilers may not add the suffix if given an `-o'
  6.9478 ++	# argument, so we may need to know it at that point already.
  6.9479 ++	# Even if this section looks crufty: it has the advantage of
  6.9480 ++	# actually working.
  6.9481 + 	break;;
  6.9482 +     * )
  6.9483 + 	break;;
  6.9484 +   esac
  6.9485 + done
  6.9486 ++test "$ac_cv_exeext" = no && ac_cv_exeext=
  6.9487 ++
  6.9488 + else
  6.9489 ++  ac_file=''
  6.9490 ++fi
  6.9491 ++
  6.9492 ++{ echo "$as_me:$LINENO: result: $ac_file" >&5
  6.9493 ++echo "${ECHO_T}$ac_file" >&6; }
  6.9494 ++if test -z "$ac_file"; then
  6.9495 +   echo "$as_me: failed program was:" >&5
  6.9496 + sed 's/^/| /' conftest.$ac_ext >&5
  6.9497 + 
  6.9498 +@@ -3853,19 +4639,21 @@
  6.9499 + fi
  6.9500 + 
  6.9501 + ac_exeext=$ac_cv_exeext
  6.9502 +-echo "$as_me:$LINENO: result: $ac_file" >&5
  6.9503 +-echo "${ECHO_T}$ac_file" >&6
  6.9504 + 
  6.9505 +-# Check the compiler produces executables we can run.  If not, either
  6.9506 ++# Check that the compiler produces executables we can run.  If not, either
  6.9507 + # the compiler is broken, or we cross compile.
  6.9508 +-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
  6.9509 +-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
  6.9510 ++{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5
  6.9511 ++echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }
  6.9512 + # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
  6.9513 + # If not cross compiling, check that we can run a simple program.
  6.9514 + if test "$cross_compiling" != yes; then
  6.9515 +   if { ac_try='./$ac_file'
  6.9516 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
  6.9517 +-  (eval $ac_try) 2>&5
  6.9518 ++  { (case "(($ac_try" in
  6.9519 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  6.9520 ++  *) ac_try_echo=$ac_try;;
  6.9521 ++esac
  6.9522 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
  6.9523 ++  (eval "$ac_try") 2>&5
  6.9524 +   ac_status=$?
  6.9525 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9526 +   (exit $ac_status); }; }; then
  6.9527 +@@ -3884,22 +4672,27 @@
  6.9528 +     fi
  6.9529 +   fi
  6.9530 + fi
  6.9531 +-echo "$as_me:$LINENO: result: yes" >&5
  6.9532 +-echo "${ECHO_T}yes" >&6
  6.9533 ++{ echo "$as_me:$LINENO: result: yes" >&5
  6.9534 ++echo "${ECHO_T}yes" >&6; }
  6.9535 + 
  6.9536 + rm -f a.out a.exe conftest$ac_cv_exeext b.out
  6.9537 + ac_clean_files=$ac_clean_files_save
  6.9538 +-# Check the compiler produces executables we can run.  If not, either
  6.9539 ++# Check that the compiler produces executables we can run.  If not, either
  6.9540 + # the compiler is broken, or we cross compile.
  6.9541 +-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
  6.9542 +-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
  6.9543 +-echo "$as_me:$LINENO: result: $cross_compiling" >&5
  6.9544 +-echo "${ECHO_T}$cross_compiling" >&6
  6.9545 +-
  6.9546 +-echo "$as_me:$LINENO: checking for suffix of executables" >&5
  6.9547 +-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
  6.9548 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
  6.9549 +-  (eval $ac_link) 2>&5
  6.9550 ++{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
  6.9551 ++echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
  6.9552 ++{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
  6.9553 ++echo "${ECHO_T}$cross_compiling" >&6; }
  6.9554 ++
  6.9555 ++{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
  6.9556 ++echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
  6.9557 ++if { (ac_try="$ac_link"
  6.9558 ++case "(($ac_try" in
  6.9559 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  6.9560 ++  *) ac_try_echo=$ac_try;;
  6.9561 ++esac
  6.9562 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
  6.9563 ++  (eval "$ac_link") 2>&5
  6.9564 +   ac_status=$?
  6.9565 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9566 +   (exit $ac_status); }; then
  6.9567 +@@ -3910,9 +4703,8 @@
  6.9568 + for ac_file in conftest.exe conftest conftest.*; do
  6.9569 +   test -f "$ac_file" || continue
  6.9570 +   case $ac_file in
  6.9571 +-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
  6.9572 ++    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
  6.9573 +     *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
  6.9574 +-	  export ac_cv_exeext
  6.9575 + 	  break;;
  6.9576 +     * ) break;;
  6.9577 +   esac
  6.9578 +@@ -3926,14 +4718,14 @@
  6.9579 + fi
  6.9580 + 
  6.9581 + rm -f conftest$ac_cv_exeext
  6.9582 +-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
  6.9583 +-echo "${ECHO_T}$ac_cv_exeext" >&6
  6.9584 ++{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
  6.9585 ++echo "${ECHO_T}$ac_cv_exeext" >&6; }
  6.9586 + 
  6.9587 + rm -f conftest.$ac_ext
  6.9588 + EXEEXT=$ac_cv_exeext
  6.9589 + ac_exeext=$EXEEXT
  6.9590 +-echo "$as_me:$LINENO: checking for suffix of object files" >&5
  6.9591 +-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
  6.9592 ++{ echo "$as_me:$LINENO: checking for suffix of object files" >&5
  6.9593 ++echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
  6.9594 + if test "${ac_cv_objext+set}" = set; then
  6.9595 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.9596 + else
  6.9597 +@@ -3953,14 +4745,20 @@
  6.9598 + }
  6.9599 + _ACEOF
  6.9600 + rm -f conftest.o conftest.obj
  6.9601 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
  6.9602 +-  (eval $ac_compile) 2>&5
  6.9603 ++if { (ac_try="$ac_compile"
  6.9604 ++case "(($ac_try" in
  6.9605 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  6.9606 ++  *) ac_try_echo=$ac_try;;
  6.9607 ++esac
  6.9608 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
  6.9609 ++  (eval "$ac_compile") 2>&5
  6.9610 +   ac_status=$?
  6.9611 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9612 +   (exit $ac_status); }; then
  6.9613 +-  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
  6.9614 ++  for ac_file in conftest.o conftest.obj conftest.*; do
  6.9615 ++  test -f "$ac_file" || continue;
  6.9616 +   case $ac_file in
  6.9617 +-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
  6.9618 ++    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
  6.9619 +     *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
  6.9620 +        break;;
  6.9621 +   esac
  6.9622 +@@ -3978,12 +4776,12 @@
  6.9623 + 
  6.9624 + rm -f conftest.$ac_cv_objext conftest.$ac_ext
  6.9625 + fi
  6.9626 +-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
  6.9627 +-echo "${ECHO_T}$ac_cv_objext" >&6
  6.9628 ++{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
  6.9629 ++echo "${ECHO_T}$ac_cv_objext" >&6; }
  6.9630 + OBJEXT=$ac_cv_objext
  6.9631 + ac_objext=$OBJEXT
  6.9632 +-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
  6.9633 +-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
  6.9634 ++{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
  6.9635 ++echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
  6.9636 + if test "${ac_cv_c_compiler_gnu+set}" = set; then
  6.9637 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.9638 + else
  6.9639 +@@ -4006,50 +4804,49 @@
  6.9640 + }
  6.9641 + _ACEOF
  6.9642 + rm -f conftest.$ac_objext
  6.9643 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
  6.9644 +-  (eval $ac_compile) 2>conftest.er1
  6.9645 ++if { (ac_try="$ac_compile"
  6.9646 ++case "(($ac_try" in
  6.9647 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  6.9648 ++  *) ac_try_echo=$ac_try;;
  6.9649 ++esac
  6.9650 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
  6.9651 ++  (eval "$ac_compile") 2>conftest.er1
  6.9652 +   ac_status=$?
  6.9653 +   grep -v '^ *+' conftest.er1 >conftest.err
  6.9654 +   rm -f conftest.er1
  6.9655 +   cat conftest.err >&5
  6.9656 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9657 +-  (exit $ac_status); } &&
  6.9658 +-	 { ac_try='test -z "$ac_c_werror_flag"
  6.9659 +-			 || test ! -s conftest.err'
  6.9660 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
  6.9661 +-  (eval $ac_try) 2>&5
  6.9662 +-  ac_status=$?
  6.9663 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9664 +-  (exit $ac_status); }; } &&
  6.9665 +-	 { ac_try='test -s conftest.$ac_objext'
  6.9666 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
  6.9667 +-  (eval $ac_try) 2>&5
  6.9668 +-  ac_status=$?
  6.9669 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9670 +-  (exit $ac_status); }; }; then
  6.9671 ++  (exit $ac_status); } && {
  6.9672 ++	 test -z "$ac_c_werror_flag" ||
  6.9673 ++	 test ! -s conftest.err
  6.9674 ++       } && test -s conftest.$ac_objext; then
  6.9675 +   ac_compiler_gnu=yes
  6.9676 + else
  6.9677 +   echo "$as_me: failed program was:" >&5
  6.9678 + sed 's/^/| /' conftest.$ac_ext >&5
  6.9679 + 
  6.9680 +-ac_compiler_gnu=no
  6.9681 ++	ac_compiler_gnu=no
  6.9682 + fi
  6.9683 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
  6.9684 ++
  6.9685 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  6.9686 + ac_cv_c_compiler_gnu=$ac_compiler_gnu
  6.9687 + 
  6.9688 + fi
  6.9689 +-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
  6.9690 +-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
  6.9691 ++{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
  6.9692 ++echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
  6.9693 + GCC=`test $ac_compiler_gnu = yes && echo yes`
  6.9694 + ac_test_CFLAGS=${CFLAGS+set}
  6.9695 + ac_save_CFLAGS=$CFLAGS
  6.9696 +-CFLAGS="-g"
  6.9697 +-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
  6.9698 +-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
  6.9699 ++{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
  6.9700 ++echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
  6.9701 + if test "${ac_cv_prog_cc_g+set}" = set; then
  6.9702 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.9703 + else
  6.9704 +-  cat >conftest.$ac_ext <<_ACEOF
  6.9705 ++  ac_save_c_werror_flag=$ac_c_werror_flag
  6.9706 ++   ac_c_werror_flag=yes
  6.9707 ++   ac_cv_prog_cc_g=no
  6.9708 ++   CFLAGS="-g"
  6.9709 ++   cat >conftest.$ac_ext <<_ACEOF
  6.9710 + /* confdefs.h.  */
  6.9711 + _ACEOF
  6.9712 + cat confdefs.h >>conftest.$ac_ext
  6.9713 +@@ -4065,38 +4862,118 @@
  6.9714 + }
  6.9715 + _ACEOF
  6.9716 + rm -f conftest.$ac_objext
  6.9717 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
  6.9718 +-  (eval $ac_compile) 2>conftest.er1
  6.9719 ++if { (ac_try="$ac_compile"
  6.9720 ++case "(($ac_try" in
  6.9721 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  6.9722 ++  *) ac_try_echo=$ac_try;;
  6.9723 ++esac
  6.9724 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
  6.9725 ++  (eval "$ac_compile") 2>conftest.er1
  6.9726 +   ac_status=$?
  6.9727 +   grep -v '^ *+' conftest.er1 >conftest.err
  6.9728 +   rm -f conftest.er1
  6.9729 +   cat conftest.err >&5
  6.9730 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9731 +-  (exit $ac_status); } &&
  6.9732 +-	 { ac_try='test -z "$ac_c_werror_flag"
  6.9733 +-			 || test ! -s conftest.err'
  6.9734 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
  6.9735 +-  (eval $ac_try) 2>&5
  6.9736 ++  (exit $ac_status); } && {
  6.9737 ++	 test -z "$ac_c_werror_flag" ||
  6.9738 ++	 test ! -s conftest.err
  6.9739 ++       } && test -s conftest.$ac_objext; then
  6.9740 ++  ac_cv_prog_cc_g=yes
  6.9741 ++else
  6.9742 ++  echo "$as_me: failed program was:" >&5
  6.9743 ++sed 's/^/| /' conftest.$ac_ext >&5
  6.9744 ++
  6.9745 ++	CFLAGS=""
  6.9746 ++      cat >conftest.$ac_ext <<_ACEOF
  6.9747 ++/* confdefs.h.  */
  6.9748 ++_ACEOF
  6.9749 ++cat confdefs.h >>conftest.$ac_ext
  6.9750 ++cat >>conftest.$ac_ext <<_ACEOF
  6.9751 ++/* end confdefs.h.  */
  6.9752 ++
  6.9753 ++int
  6.9754 ++main ()
  6.9755 ++{
  6.9756 ++
  6.9757 ++  ;
  6.9758 ++  return 0;
  6.9759 ++}
  6.9760 ++_ACEOF
  6.9761 ++rm -f conftest.$ac_objext
  6.9762 ++if { (ac_try="$ac_compile"
  6.9763 ++case "(($ac_try" in
  6.9764 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  6.9765 ++  *) ac_try_echo=$ac_try;;
  6.9766 ++esac
  6.9767 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
  6.9768 ++  (eval "$ac_compile") 2>conftest.er1
  6.9769 +   ac_status=$?
  6.9770 ++  grep -v '^ *+' conftest.er1 >conftest.err
  6.9771 ++  rm -f conftest.er1
  6.9772 ++  cat conftest.err >&5
  6.9773 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9774 +-  (exit $ac_status); }; } &&
  6.9775 +-	 { ac_try='test -s conftest.$ac_objext'
  6.9776 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
  6.9777 +-  (eval $ac_try) 2>&5
  6.9778 ++  (exit $ac_status); } && {
  6.9779 ++	 test -z "$ac_c_werror_flag" ||
  6.9780 ++	 test ! -s conftest.err
  6.9781 ++       } && test -s conftest.$ac_objext; then
  6.9782 ++  :
  6.9783 ++else
  6.9784 ++  echo "$as_me: failed program was:" >&5
  6.9785 ++sed 's/^/| /' conftest.$ac_ext >&5
  6.9786 ++
  6.9787 ++	ac_c_werror_flag=$ac_save_c_werror_flag
  6.9788 ++	 CFLAGS="-g"
  6.9789 ++	 cat >conftest.$ac_ext <<_ACEOF
  6.9790 ++/* confdefs.h.  */
  6.9791 ++_ACEOF
  6.9792 ++cat confdefs.h >>conftest.$ac_ext
  6.9793 ++cat >>conftest.$ac_ext <<_ACEOF
  6.9794 ++/* end confdefs.h.  */
  6.9795 ++
  6.9796 ++int
  6.9797 ++main ()
  6.9798 ++{
  6.9799 ++
  6.9800 ++  ;
  6.9801 ++  return 0;
  6.9802 ++}
  6.9803 ++_ACEOF
  6.9804 ++rm -f conftest.$ac_objext
  6.9805 ++if { (ac_try="$ac_compile"
  6.9806 ++case "(($ac_try" in
  6.9807 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  6.9808 ++  *) ac_try_echo=$ac_try;;
  6.9809 ++esac
  6.9810 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
  6.9811 ++  (eval "$ac_compile") 2>conftest.er1
  6.9812 +   ac_status=$?
  6.9813 ++  grep -v '^ *+' conftest.er1 >conftest.err
  6.9814 ++  rm -f conftest.er1
  6.9815 ++  cat conftest.err >&5
  6.9816 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9817 +-  (exit $ac_status); }; }; then
  6.9818 ++  (exit $ac_status); } && {
  6.9819 ++	 test -z "$ac_c_werror_flag" ||
  6.9820 ++	 test ! -s conftest.err
  6.9821 ++       } && test -s conftest.$ac_objext; then
  6.9822 +   ac_cv_prog_cc_g=yes
  6.9823 + else
  6.9824 +   echo "$as_me: failed program was:" >&5
  6.9825 + sed 's/^/| /' conftest.$ac_ext >&5
  6.9826 + 
  6.9827 +-ac_cv_prog_cc_g=no
  6.9828 ++
  6.9829 + fi
  6.9830 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
  6.9831 ++
  6.9832 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  6.9833 ++fi
  6.9834 ++
  6.9835 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  6.9836 ++fi
  6.9837 ++
  6.9838 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  6.9839 ++   ac_c_werror_flag=$ac_save_c_werror_flag
  6.9840 + fi
  6.9841 +-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
  6.9842 +-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
  6.9843 ++{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
  6.9844 ++echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
  6.9845 + if test "$ac_test_CFLAGS" = set; then
  6.9846 +   CFLAGS=$ac_save_CFLAGS
  6.9847 + elif test $ac_cv_prog_cc_g = yes; then
  6.9848 +@@ -4112,12 +4989,12 @@
  6.9849 +     CFLAGS=
  6.9850 +   fi
  6.9851 + fi
  6.9852 +-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
  6.9853 +-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
  6.9854 +-if test "${ac_cv_prog_cc_stdc+set}" = set; then
  6.9855 ++{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
  6.9856 ++echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
  6.9857 ++if test "${ac_cv_prog_cc_c89+set}" = set; then
  6.9858 +   echo $ECHO_N "(cached) $ECHO_C" >&6
  6.9859 + else
  6.9860 +-  ac_cv_prog_cc_stdc=no
  6.9861 ++  ac_cv_prog_cc_c89=no
  6.9862 + ac_save_CC=$CC
  6.9863 + cat >conftest.$ac_ext <<_ACEOF
  6.9864 + /* confdefs.h.  */
  6.9865 +@@ -4151,12 +5028,17 @@
  6.9866 + /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
  6.9867 +    function prototypes and stuff, but not '\xHH' hex character constants.
  6.9868 +    These don't provoke an error unfortunately, instead are silently treated
  6.9869 +-   as 'x'.  The following induces an error, until -std1 is added to get
  6.9870 ++   as 'x'.  The following induces an error, until -std is added to get
  6.9871 +    proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
  6.9872 +    array size at least.  It's necessary to write '\x00'==0 to get something
  6.9873 +-   that's true only with -std1.  */
  6.9874 ++   that's true only with -std.  */
  6.9875 + int osf4_cc_array ['\x00' == 0 ? 1 : -1];
  6.9876 + 
  6.9877 ++/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
  6.9878 ++   inside strings and character constants.  */
  6.9879 ++#define FOO(x) 'x'
  6.9880 ++int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
  6.9881 ++
  6.9882 + int test (int i, double x);
  6.9883 + struct s1 {int (*f) (int a);};
  6.9884 + struct s2 {int (*f) (double a);};
  6.9885 +@@ -4171,205 +5053,57 @@
  6.9886 +   return 0;
  6.9887 + }
  6.9888 + _ACEOF
  6.9889 +-# Don't try gcc -ansi; that turns off useful extensions and
  6.9890 +-# breaks some systems' header files.
  6.9891 +-# AIX			-qlanglvl=ansi
  6.9892 +-# Ultrix and OSF/1	-std1
  6.9893 +-# HP-UX 10.20 and later	-Ae
  6.9894 +-# HP-UX older versions	-Aa -D_HPUX_SOURCE
  6.9895 +-# SVR4			-Xc -D__EXTENSIONS__
  6.9896 +-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
  6.9897 ++for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
  6.9898 ++	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
  6.9899 + do
  6.9900 +   CC="$ac_save_CC $ac_arg"
  6.9901 +   rm -f conftest.$ac_objext
  6.9902 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
  6.9903 +-  (eval $ac_compile) 2>conftest.er1
  6.9904 ++if { (ac_try="$ac_compile"
  6.9905 ++case "(($ac_try" in
  6.9906 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  6.9907 ++  *) ac_try_echo=$ac_try;;
  6.9908 ++esac
  6.9909 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
  6.9910 ++  (eval "$ac_compile") 2>conftest.er1
  6.9911 +   ac_status=$?
  6.9912 +   grep -v '^ *+' conftest.er1 >conftest.err
  6.9913 +   rm -f conftest.er1
  6.9914 +   cat conftest.err >&5
  6.9915 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9916 +-  (exit $ac_status); } &&
  6.9917 +-	 { ac_try='test -z "$ac_c_werror_flag"
  6.9918 +-			 || test ! -s conftest.err'
  6.9919 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
  6.9920 +-  (eval $ac_try) 2>&5
  6.9921 +-  ac_status=$?
  6.9922 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9923 +-  (exit $ac_status); }; } &&
  6.9924 +-	 { ac_try='test -s conftest.$ac_objext'
  6.9925 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
  6.9926 +-  (eval $ac_try) 2>&5
  6.9927 +-  ac_status=$?
  6.9928 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9929 +-  (exit $ac_status); }; }; then
  6.9930 +-  ac_cv_prog_cc_stdc=$ac_arg
  6.9931 +-break
  6.9932 ++  (exit $ac_status); } && {
  6.9933 ++	 test -z "$ac_c_werror_flag" ||
  6.9934 ++	 test ! -s conftest.err
  6.9935 ++       } && test -s conftest.$ac_objext; then
  6.9936 ++  ac_cv_prog_cc_c89=$ac_arg
  6.9937 + else
  6.9938 +   echo "$as_me: failed program was:" >&5
  6.9939 + sed 's/^/| /' conftest.$ac_ext >&5
  6.9940 + 
  6.9941 ++
  6.9942 + fi
  6.9943 +-rm -f conftest.err conftest.$ac_objext
  6.9944 ++
  6.9945 ++rm -f core conftest.err conftest.$ac_objext
  6.9946 ++  test "x$ac_cv_prog_cc_c89" != "xno" && break
  6.9947 + done
  6.9948 +-rm -f conftest.$ac_ext conftest.$ac_objext
  6.9949 ++rm -f conftest.$ac_ext
  6.9950 + CC=$ac_save_CC
  6.9951 + 
  6.9952 + fi
  6.9953 +-
  6.9954 +-case "x$ac_cv_prog_cc_stdc" in
  6.9955 +-  x|xno)
  6.9956 +-    echo "$as_me:$LINENO: result: none needed" >&5
  6.9957 +-echo "${ECHO_T}none needed" >&6 ;;
  6.9958 ++# AC_CACHE_VAL
  6.9959 ++case "x$ac_cv_prog_cc_c89" in
  6.9960 ++  x)
  6.9961 ++    { echo "$as_me:$LINENO: result: none needed" >&5
  6.9962 ++echo "${ECHO_T}none needed" >&6; } ;;
  6.9963 ++  xno)
  6.9964 ++    { echo "$as_me:$LINENO: result: unsupported" >&5
  6.9965 ++echo "${ECHO_T}unsupported" >&6; } ;;
  6.9966 +   *)
  6.9967 +-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
  6.9968 +-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
  6.9969 +-    CC="$CC $ac_cv_prog_cc_stdc" ;;
  6.9970 ++    CC="$CC $ac_cv_prog_cc_c89"
  6.9971 ++    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
  6.9972 ++echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
  6.9973 + esac
  6.9974 + 
  6.9975 +-# Some people use a C++ compiler to compile C.  Since we use `exit',
  6.9976 +-# in C++ we need to declare it.  In case someone uses the same compiler
  6.9977 +-# for both compiling C and C++ we need to have the C++ compiler decide
  6.9978 +-# the declaration of exit, since it's the most demanding environment.
  6.9979 +-cat >conftest.$ac_ext <<_ACEOF
  6.9980 +-#ifndef __cplusplus
  6.9981 +-  choke me
  6.9982 +-#endif
  6.9983 +-_ACEOF
  6.9984 +-rm -f conftest.$ac_objext
  6.9985 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
  6.9986 +-  (eval $ac_compile) 2>conftest.er1
  6.9987 +-  ac_status=$?
  6.9988 +-  grep -v '^ *+' conftest.er1 >conftest.err
  6.9989 +-  rm -f conftest.er1
  6.9990 +-  cat conftest.err >&5
  6.9991 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9992 +-  (exit $ac_status); } &&
  6.9993 +-	 { ac_try='test -z "$ac_c_werror_flag"
  6.9994 +-			 || test ! -s conftest.err'
  6.9995 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
  6.9996 +-  (eval $ac_try) 2>&5
  6.9997 +-  ac_status=$?
  6.9998 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
  6.9999 +-  (exit $ac_status); }; } &&
 6.10000 +-	 { ac_try='test -s conftest.$ac_objext'
 6.10001 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.10002 +-  (eval $ac_try) 2>&5
 6.10003 +-  ac_status=$?
 6.10004 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.10005 +-  (exit $ac_status); }; }; then
 6.10006 +-  for ac_declaration in \
 6.10007 +-   '' \
 6.10008 +-   'extern "C" void std::exit (int) throw (); using std::exit;' \
 6.10009 +-   'extern "C" void std::exit (int); using std::exit;' \
 6.10010 +-   'extern "C" void exit (int) throw ();' \
 6.10011 +-   'extern "C" void exit (int);' \
 6.10012 +-   'void exit (int);'
 6.10013 +-do
 6.10014 +-  cat >conftest.$ac_ext <<_ACEOF
 6.10015 +-/* confdefs.h.  */
 6.10016 +-_ACEOF
 6.10017 +-cat confdefs.h >>conftest.$ac_ext
 6.10018 +-cat >>conftest.$ac_ext <<_ACEOF
 6.10019 +-/* end confdefs.h.  */
 6.10020 +-$ac_declaration
 6.10021 +-#include <stdlib.h>
 6.10022 +-int
 6.10023 +-main ()
 6.10024 +-{
 6.10025 +-exit (42);
 6.10026 +-  ;
 6.10027 +-  return 0;
 6.10028 +-}
 6.10029 +-_ACEOF
 6.10030 +-rm -f conftest.$ac_objext
 6.10031 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.10032 +-  (eval $ac_compile) 2>conftest.er1
 6.10033 +-  ac_status=$?
 6.10034 +-  grep -v '^ *+' conftest.er1 >conftest.err
 6.10035 +-  rm -f conftest.er1
 6.10036 +-  cat conftest.err >&5
 6.10037 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.10038 +-  (exit $ac_status); } &&
 6.10039 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.10040 +-			 || test ! -s conftest.err'
 6.10041 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.10042 +-  (eval $ac_try) 2>&5
 6.10043 +-  ac_status=$?
 6.10044 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.10045 +-  (exit $ac_status); }; } &&
 6.10046 +-	 { ac_try='test -s conftest.$ac_objext'
 6.10047 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.10048 +-  (eval $ac_try) 2>&5
 6.10049 +-  ac_status=$?
 6.10050 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.10051 +-  (exit $ac_status); }; }; then
 6.10052 +-  :
 6.10053 +-else
 6.10054 +-  echo "$as_me: failed program was:" >&5
 6.10055 +-sed 's/^/| /' conftest.$ac_ext >&5
 6.10056 + 
 6.10057 +-continue
 6.10058 +-fi
 6.10059 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 6.10060 +-  cat >conftest.$ac_ext <<_ACEOF
 6.10061 +-/* confdefs.h.  */
 6.10062 +-_ACEOF
 6.10063 +-cat confdefs.h >>conftest.$ac_ext
 6.10064 +-cat >>conftest.$ac_ext <<_ACEOF
 6.10065 +-/* end confdefs.h.  */
 6.10066 +-$ac_declaration
 6.10067 +-int
 6.10068 +-main ()
 6.10069 +-{
 6.10070 +-exit (42);
 6.10071 +-  ;
 6.10072 +-  return 0;
 6.10073 +-}
 6.10074 +-_ACEOF
 6.10075 +-rm -f conftest.$ac_objext
 6.10076 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.10077 +-  (eval $ac_compile) 2>conftest.er1
 6.10078 +-  ac_status=$?
 6.10079 +-  grep -v '^ *+' conftest.er1 >conftest.err
 6.10080 +-  rm -f conftest.er1
 6.10081 +-  cat conftest.err >&5
 6.10082 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.10083 +-  (exit $ac_status); } &&
 6.10084 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.10085 +-			 || test ! -s conftest.err'
 6.10086 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.10087 +-  (eval $ac_try) 2>&5
 6.10088 +-  ac_status=$?
 6.10089 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.10090 +-  (exit $ac_status); }; } &&
 6.10091 +-	 { ac_try='test -s conftest.$ac_objext'
 6.10092 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.10093 +-  (eval $ac_try) 2>&5
 6.10094 +-  ac_status=$?
 6.10095 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.10096 +-  (exit $ac_status); }; }; then
 6.10097 +-  break
 6.10098 +-else
 6.10099 +-  echo "$as_me: failed program was:" >&5
 6.10100 +-sed 's/^/| /' conftest.$ac_ext >&5
 6.10101 +-
 6.10102 +-fi
 6.10103 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 6.10104 +-done
 6.10105 +-rm -f conftest*
 6.10106 +-if test -n "$ac_declaration"; then
 6.10107 +-  echo '#ifdef __cplusplus' >>confdefs.h
 6.10108 +-  echo $ac_declaration      >>confdefs.h
 6.10109 +-  echo '#endif'             >>confdefs.h
 6.10110 +-fi
 6.10111 +-
 6.10112 +-else
 6.10113 +-  echo "$as_me: failed program was:" >&5
 6.10114 +-sed 's/^/| /' conftest.$ac_ext >&5
 6.10115 +-
 6.10116 +-fi
 6.10117 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 6.10118 + ac_ext=c
 6.10119 + ac_cpp='$CPP $CPPFLAGS'
 6.10120 + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 6.10121 +@@ -4378,8 +5112,8 @@
 6.10122 + 
 6.10123 + depcc="$CC"   am_compiler_list=
 6.10124 + 
 6.10125 +-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
 6.10126 +-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
 6.10127 ++{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
 6.10128 ++echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
 6.10129 + if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
 6.10130 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10131 + else
 6.10132 +@@ -4461,58 +5195,273 @@
 6.10133 +     fi
 6.10134 +   done
 6.10135 + 
 6.10136 +-  cd ..
 6.10137 +-  rm -rf conftest.dir
 6.10138 +-else
 6.10139 +-  am_cv_CC_dependencies_compiler_type=none
 6.10140 +-fi
 6.10141 ++  cd ..
 6.10142 ++  rm -rf conftest.dir
 6.10143 ++else
 6.10144 ++  am_cv_CC_dependencies_compiler_type=none
 6.10145 ++fi
 6.10146 ++
 6.10147 ++fi
 6.10148 ++{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
 6.10149 ++echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
 6.10150 ++CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 6.10151 ++
 6.10152 ++
 6.10153 ++
 6.10154 ++if
 6.10155 ++  test "x$enable_dependency_tracking" != xno \
 6.10156 ++  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
 6.10157 ++  am__fastdepCC_TRUE=
 6.10158 ++  am__fastdepCC_FALSE='#'
 6.10159 ++else
 6.10160 ++  am__fastdepCC_TRUE='#'
 6.10161 ++  am__fastdepCC_FALSE=
 6.10162 ++fi
 6.10163 ++
 6.10164 ++
 6.10165 ++{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
 6.10166 ++echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
 6.10167 ++if test "${ac_cv_path_GREP+set}" = set; then
 6.10168 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10169 ++else
 6.10170 ++  # Extract the first word of "grep ggrep" to use in msg output
 6.10171 ++if test -z "$GREP"; then
 6.10172 ++set dummy grep ggrep; ac_prog_name=$2
 6.10173 ++if test "${ac_cv_path_GREP+set}" = set; then
 6.10174 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10175 ++else
 6.10176 ++  ac_path_GREP_found=false
 6.10177 ++# Loop through the user's path and test for each of PROGNAME-LIST
 6.10178 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.10179 ++for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 6.10180 ++do
 6.10181 ++  IFS=$as_save_IFS
 6.10182 ++  test -z "$as_dir" && as_dir=.
 6.10183 ++  for ac_prog in grep ggrep; do
 6.10184 ++  for ac_exec_ext in '' $ac_executable_extensions; do
 6.10185 ++    ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
 6.10186 ++    { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
 6.10187 ++    # Check for GNU ac_path_GREP and select it if it is found.
 6.10188 ++  # Check for GNU $ac_path_GREP
 6.10189 ++case `"$ac_path_GREP" --version 2>&1` in
 6.10190 ++*GNU*)
 6.10191 ++  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
 6.10192 ++*)
 6.10193 ++  ac_count=0
 6.10194 ++  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
 6.10195 ++  while :
 6.10196 ++  do
 6.10197 ++    cat "conftest.in" "conftest.in" >"conftest.tmp"
 6.10198 ++    mv "conftest.tmp" "conftest.in"
 6.10199 ++    cp "conftest.in" "conftest.nl"
 6.10200 ++    echo 'GREP' >> "conftest.nl"
 6.10201 ++    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
 6.10202 ++    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
 6.10203 ++    ac_count=`expr $ac_count + 1`
 6.10204 ++    if test $ac_count -gt ${ac_path_GREP_max-0}; then
 6.10205 ++      # Best one so far, save it but keep looking for a better one
 6.10206 ++      ac_cv_path_GREP="$ac_path_GREP"
 6.10207 ++      ac_path_GREP_max=$ac_count
 6.10208 ++    fi
 6.10209 ++    # 10*(2^10) chars as input seems more than enough
 6.10210 ++    test $ac_count -gt 10 && break
 6.10211 ++  done
 6.10212 ++  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 6.10213 ++esac
 6.10214 ++
 6.10215 ++
 6.10216 ++    $ac_path_GREP_found && break 3
 6.10217 ++  done
 6.10218 ++done
 6.10219 ++
 6.10220 ++done
 6.10221 ++IFS=$as_save_IFS
 6.10222 ++
 6.10223 ++
 6.10224 ++fi
 6.10225 ++
 6.10226 ++GREP="$ac_cv_path_GREP"
 6.10227 ++if test -z "$GREP"; then
 6.10228 ++  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
 6.10229 ++echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
 6.10230 ++   { (exit 1); exit 1; }; }
 6.10231 ++fi
 6.10232 ++
 6.10233 ++else
 6.10234 ++  ac_cv_path_GREP=$GREP
 6.10235 ++fi
 6.10236 ++
 6.10237 ++
 6.10238 ++fi
 6.10239 ++{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
 6.10240 ++echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
 6.10241 ++ GREP="$ac_cv_path_GREP"
 6.10242 ++
 6.10243 ++
 6.10244 ++{ echo "$as_me:$LINENO: checking for egrep" >&5
 6.10245 ++echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
 6.10246 ++if test "${ac_cv_path_EGREP+set}" = set; then
 6.10247 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10248 ++else
 6.10249 ++  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
 6.10250 ++   then ac_cv_path_EGREP="$GREP -E"
 6.10251 ++   else
 6.10252 ++     # Extract the first word of "egrep" to use in msg output
 6.10253 ++if test -z "$EGREP"; then
 6.10254 ++set dummy egrep; ac_prog_name=$2
 6.10255 ++if test "${ac_cv_path_EGREP+set}" = set; then
 6.10256 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10257 ++else
 6.10258 ++  ac_path_EGREP_found=false
 6.10259 ++# Loop through the user's path and test for each of PROGNAME-LIST
 6.10260 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.10261 ++for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 6.10262 ++do
 6.10263 ++  IFS=$as_save_IFS
 6.10264 ++  test -z "$as_dir" && as_dir=.
 6.10265 ++  for ac_prog in egrep; do
 6.10266 ++  for ac_exec_ext in '' $ac_executable_extensions; do
 6.10267 ++    ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
 6.10268 ++    { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
 6.10269 ++    # Check for GNU ac_path_EGREP and select it if it is found.
 6.10270 ++  # Check for GNU $ac_path_EGREP
 6.10271 ++case `"$ac_path_EGREP" --version 2>&1` in
 6.10272 ++*GNU*)
 6.10273 ++  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
 6.10274 ++*)
 6.10275 ++  ac_count=0
 6.10276 ++  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
 6.10277 ++  while :
 6.10278 ++  do
 6.10279 ++    cat "conftest.in" "conftest.in" >"conftest.tmp"
 6.10280 ++    mv "conftest.tmp" "conftest.in"
 6.10281 ++    cp "conftest.in" "conftest.nl"
 6.10282 ++    echo 'EGREP' >> "conftest.nl"
 6.10283 ++    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
 6.10284 ++    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
 6.10285 ++    ac_count=`expr $ac_count + 1`
 6.10286 ++    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
 6.10287 ++      # Best one so far, save it but keep looking for a better one
 6.10288 ++      ac_cv_path_EGREP="$ac_path_EGREP"
 6.10289 ++      ac_path_EGREP_max=$ac_count
 6.10290 ++    fi
 6.10291 ++    # 10*(2^10) chars as input seems more than enough
 6.10292 ++    test $ac_count -gt 10 && break
 6.10293 ++  done
 6.10294 ++  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 6.10295 ++esac
 6.10296 ++
 6.10297 ++
 6.10298 ++    $ac_path_EGREP_found && break 3
 6.10299 ++  done
 6.10300 ++done
 6.10301 ++
 6.10302 ++done
 6.10303 ++IFS=$as_save_IFS
 6.10304 ++
 6.10305 ++
 6.10306 ++fi
 6.10307 ++
 6.10308 ++EGREP="$ac_cv_path_EGREP"
 6.10309 ++if test -z "$EGREP"; then
 6.10310 ++  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
 6.10311 ++echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
 6.10312 ++   { (exit 1); exit 1; }; }
 6.10313 ++fi
 6.10314 ++
 6.10315 ++else
 6.10316 ++  ac_cv_path_EGREP=$EGREP
 6.10317 ++fi
 6.10318 ++
 6.10319 ++
 6.10320 ++   fi
 6.10321 ++fi
 6.10322 ++{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
 6.10323 ++echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
 6.10324 ++ EGREP="$ac_cv_path_EGREP"
 6.10325 ++
 6.10326 ++
 6.10327 ++{ echo "$as_me:$LINENO: checking for fgrep" >&5
 6.10328 ++echo $ECHO_N "checking for fgrep... $ECHO_C" >&6; }
 6.10329 ++if test "${ac_cv_path_FGREP+set}" = set; then
 6.10330 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10331 ++else
 6.10332 ++  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
 6.10333 ++   then ac_cv_path_FGREP="$GREP -F"
 6.10334 ++   else
 6.10335 ++     # Extract the first word of "fgrep" to use in msg output
 6.10336 ++if test -z "$FGREP"; then
 6.10337 ++set dummy fgrep; ac_prog_name=$2
 6.10338 ++if test "${ac_cv_path_FGREP+set}" = set; then
 6.10339 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10340 ++else
 6.10341 ++  ac_path_FGREP_found=false
 6.10342 ++# Loop through the user's path and test for each of PROGNAME-LIST
 6.10343 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.10344 ++for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 6.10345 ++do
 6.10346 ++  IFS=$as_save_IFS
 6.10347 ++  test -z "$as_dir" && as_dir=.
 6.10348 ++  for ac_prog in fgrep; do
 6.10349 ++  for ac_exec_ext in '' $ac_executable_extensions; do
 6.10350 ++    ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
 6.10351 ++    { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
 6.10352 ++    # Check for GNU ac_path_FGREP and select it if it is found.
 6.10353 ++  # Check for GNU $ac_path_FGREP
 6.10354 ++case `"$ac_path_FGREP" --version 2>&1` in
 6.10355 ++*GNU*)
 6.10356 ++  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
 6.10357 ++*)
 6.10358 ++  ac_count=0
 6.10359 ++  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
 6.10360 ++  while :
 6.10361 ++  do
 6.10362 ++    cat "conftest.in" "conftest.in" >"conftest.tmp"
 6.10363 ++    mv "conftest.tmp" "conftest.in"
 6.10364 ++    cp "conftest.in" "conftest.nl"
 6.10365 ++    echo 'FGREP' >> "conftest.nl"
 6.10366 ++    "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
 6.10367 ++    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
 6.10368 ++    ac_count=`expr $ac_count + 1`
 6.10369 ++    if test $ac_count -gt ${ac_path_FGREP_max-0}; then
 6.10370 ++      # Best one so far, save it but keep looking for a better one
 6.10371 ++      ac_cv_path_FGREP="$ac_path_FGREP"
 6.10372 ++      ac_path_FGREP_max=$ac_count
 6.10373 ++    fi
 6.10374 ++    # 10*(2^10) chars as input seems more than enough
 6.10375 ++    test $ac_count -gt 10 && break
 6.10376 ++  done
 6.10377 ++  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 6.10378 ++esac
 6.10379 ++
 6.10380 + 
 6.10381 +-fi
 6.10382 +-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
 6.10383 +-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
 6.10384 +-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 6.10385 ++    $ac_path_FGREP_found && break 3
 6.10386 ++  done
 6.10387 ++done
 6.10388 + 
 6.10389 ++done
 6.10390 ++IFS=$as_save_IFS
 6.10391 + 
 6.10392 + 
 6.10393 +-if
 6.10394 +-  test "x$enable_dependency_tracking" != xno \
 6.10395 +-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
 6.10396 +-  am__fastdepCC_TRUE=
 6.10397 +-  am__fastdepCC_FALSE='#'
 6.10398 +-else
 6.10399 +-  am__fastdepCC_TRUE='#'
 6.10400 +-  am__fastdepCC_FALSE=
 6.10401 + fi
 6.10402 + 
 6.10403 ++FGREP="$ac_cv_path_FGREP"
 6.10404 ++if test -z "$FGREP"; then
 6.10405 ++  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
 6.10406 ++echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
 6.10407 ++   { (exit 1); exit 1; }; }
 6.10408 ++fi
 6.10409 + 
 6.10410 +-echo "$as_me:$LINENO: checking for egrep" >&5
 6.10411 +-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
 6.10412 +-if test "${ac_cv_prog_egrep+set}" = set; then
 6.10413 +-  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10414 + else
 6.10415 +-  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
 6.10416 +-    then ac_cv_prog_egrep='grep -E'
 6.10417 +-    else ac_cv_prog_egrep='egrep'
 6.10418 +-    fi
 6.10419 ++  ac_cv_path_FGREP=$FGREP
 6.10420 + fi
 6.10421 +-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
 6.10422 +-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
 6.10423 +- EGREP=$ac_cv_prog_egrep
 6.10424 + 
 6.10425 + 
 6.10426 +-echo "$as_me:$LINENO: checking for fgrep" >&5
 6.10427 +-echo $ECHO_N "checking for fgrep... $ECHO_C" >&6
 6.10428 +-if test "${ac_cv_prog_fgrep+set}" = set; then
 6.10429 +-  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10430 +-else
 6.10431 +-  if echo 'ab*c' | (grep -F 'ab*c') >/dev/null 2>&1
 6.10432 +-    then ac_cv_prog_fgrep='grep -F'
 6.10433 +-    else ac_cv_prog_fgrep='fgrep'
 6.10434 +-    fi
 6.10435 ++   fi
 6.10436 + fi
 6.10437 +-echo "$as_me:$LINENO: result: $ac_cv_prog_fgrep" >&5
 6.10438 +-echo "${ECHO_T}$ac_cv_prog_fgrep" >&6
 6.10439 +- FGREP=$ac_cv_prog_fgrep
 6.10440 ++{ echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5
 6.10441 ++echo "${ECHO_T}$ac_cv_path_FGREP" >&6; }
 6.10442 ++ FGREP="$ac_cv_path_FGREP"
 6.10443 + 
 6.10444 + 
 6.10445 + test -z "$GREP" && GREP=grep
 6.10446 +@@ -4535,18 +5484,18 @@
 6.10447 + 
 6.10448 + 
 6.10449 + 
 6.10450 +-# Check whether --with-gnu-ld or --without-gnu-ld was given.
 6.10451 ++# Check whether --with-gnu-ld was given.
 6.10452 + if test "${with_gnu_ld+set}" = set; then
 6.10453 +-  withval="$with_gnu_ld"
 6.10454 +-  test "$withval" = no || with_gnu_ld=yes
 6.10455 ++  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
 6.10456 + else
 6.10457 +   with_gnu_ld=no
 6.10458 +-fi;
 6.10459 ++fi
 6.10460 ++
 6.10461 + ac_prog=ld
 6.10462 + if test "$GCC" = yes; then
 6.10463 +   # Check if gcc -print-prog-name=ld gives a path.
 6.10464 +-  echo "$as_me:$LINENO: checking for ld used by $CC" >&5
 6.10465 +-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
 6.10466 ++  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
 6.10467 ++echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
 6.10468 +   case $host in
 6.10469 +   *-*-mingw*)
 6.10470 +     # gcc leaves a trailing carriage return which upsets mingw
 6.10471 +@@ -4575,11 +5524,11 @@
 6.10472 +     ;;
 6.10473 +   esac
 6.10474 + elif test "$with_gnu_ld" = yes; then
 6.10475 +-  echo "$as_me:$LINENO: checking for GNU ld" >&5
 6.10476 +-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
 6.10477 ++  { echo "$as_me:$LINENO: checking for GNU ld" >&5
 6.10478 ++echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
 6.10479 + else
 6.10480 +-  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
 6.10481 +-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
 6.10482 ++  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
 6.10483 ++echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
 6.10484 + fi
 6.10485 + if test "${lt_cv_path_LD+set}" = set; then
 6.10486 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10487 +@@ -4612,17 +5561,17 @@
 6.10488 + 
 6.10489 + LD="$lt_cv_path_LD"
 6.10490 + if test -n "$LD"; then
 6.10491 +-  echo "$as_me:$LINENO: result: $LD" >&5
 6.10492 +-echo "${ECHO_T}$LD" >&6
 6.10493 ++  { echo "$as_me:$LINENO: result: $LD" >&5
 6.10494 ++echo "${ECHO_T}$LD" >&6; }
 6.10495 + else
 6.10496 +-  echo "$as_me:$LINENO: result: no" >&5
 6.10497 +-echo "${ECHO_T}no" >&6
 6.10498 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.10499 ++echo "${ECHO_T}no" >&6; }
 6.10500 + fi
 6.10501 + test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
 6.10502 + echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
 6.10503 +    { (exit 1); exit 1; }; }
 6.10504 +-echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
 6.10505 +-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
 6.10506 ++{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
 6.10507 ++echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
 6.10508 + if test "${lt_cv_prog_gnu_ld+set}" = set; then
 6.10509 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10510 + else
 6.10511 +@@ -4636,8 +5585,8 @@
 6.10512 +   ;;
 6.10513 + esac
 6.10514 + fi
 6.10515 +-echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
 6.10516 +-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
 6.10517 ++{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
 6.10518 ++echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
 6.10519 + with_gnu_ld=$lt_cv_prog_gnu_ld
 6.10520 + 
 6.10521 + 
 6.10522 +@@ -4648,8 +5597,8 @@
 6.10523 + 
 6.10524 + 
 6.10525 + 
 6.10526 +-echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5
 6.10527 +-echo $ECHO_N "checking for BSD- or MS-compatible name lister (nm)... $ECHO_C" >&6
 6.10528 ++{ echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5
 6.10529 ++echo $ECHO_N "checking for BSD- or MS-compatible name lister (nm)... $ECHO_C" >&6; }
 6.10530 + if test "${lt_cv_path_NM+set}" = set; then
 6.10531 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10532 + else
 6.10533 +@@ -4697,8 +5646,8 @@
 6.10534 +   : ${lt_cv_path_NM=no}
 6.10535 + fi
 6.10536 + fi
 6.10537 +-echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
 6.10538 +-echo "${ECHO_T}$lt_cv_path_NM" >&6
 6.10539 ++{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
 6.10540 ++echo "${ECHO_T}$lt_cv_path_NM" >&6; }
 6.10541 + if test "$lt_cv_path_NM" != "no"; then
 6.10542 +   NM="$lt_cv_path_NM"
 6.10543 + else
 6.10544 +@@ -4708,8 +5657,8 @@
 6.10545 +   do
 6.10546 +     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 6.10547 + set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 6.10548 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.10549 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.10550 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.10551 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.10552 + if test "${ac_cv_prog_DUMPBIN+set}" = set; then
 6.10553 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10554 + else
 6.10555 +@@ -4722,25 +5671,27 @@
 6.10556 +   IFS=$as_save_IFS
 6.10557 +   test -z "$as_dir" && as_dir=.
 6.10558 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.10559 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.10560 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.10561 +     ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
 6.10562 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.10563 +     break 2
 6.10564 +   fi
 6.10565 + done
 6.10566 + done
 6.10567 ++IFS=$as_save_IFS
 6.10568 + 
 6.10569 + fi
 6.10570 + fi
 6.10571 + DUMPBIN=$ac_cv_prog_DUMPBIN
 6.10572 + if test -n "$DUMPBIN"; then
 6.10573 +-  echo "$as_me:$LINENO: result: $DUMPBIN" >&5
 6.10574 +-echo "${ECHO_T}$DUMPBIN" >&6
 6.10575 ++  { echo "$as_me:$LINENO: result: $DUMPBIN" >&5
 6.10576 ++echo "${ECHO_T}$DUMPBIN" >&6; }
 6.10577 + else
 6.10578 +-  echo "$as_me:$LINENO: result: no" >&5
 6.10579 +-echo "${ECHO_T}no" >&6
 6.10580 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.10581 ++echo "${ECHO_T}no" >&6; }
 6.10582 + fi
 6.10583 + 
 6.10584 ++
 6.10585 +     test -n "$DUMPBIN" && break
 6.10586 +   done
 6.10587 + fi
 6.10588 +@@ -4750,8 +5701,8 @@
 6.10589 + do
 6.10590 +   # Extract the first word of "$ac_prog", so it can be a program name with args.
 6.10591 + set dummy $ac_prog; ac_word=$2
 6.10592 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.10593 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.10594 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.10595 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.10596 + if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then
 6.10597 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10598 + else
 6.10599 +@@ -4764,30 +5715,45 @@
 6.10600 +   IFS=$as_save_IFS
 6.10601 +   test -z "$as_dir" && as_dir=.
 6.10602 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.10603 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.10604 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.10605 +     ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
 6.10606 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.10607 +     break 2
 6.10608 +   fi
 6.10609 + done
 6.10610 + done
 6.10611 ++IFS=$as_save_IFS
 6.10612 + 
 6.10613 + fi
 6.10614 + fi
 6.10615 + ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
 6.10616 + if test -n "$ac_ct_DUMPBIN"; then
 6.10617 +-  echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5
 6.10618 +-echo "${ECHO_T}$ac_ct_DUMPBIN" >&6
 6.10619 ++  { echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5
 6.10620 ++echo "${ECHO_T}$ac_ct_DUMPBIN" >&6; }
 6.10621 + else
 6.10622 +-  echo "$as_me:$LINENO: result: no" >&5
 6.10623 +-echo "${ECHO_T}no" >&6
 6.10624 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.10625 ++echo "${ECHO_T}no" >&6; }
 6.10626 + fi
 6.10627 + 
 6.10628 ++
 6.10629 +   test -n "$ac_ct_DUMPBIN" && break
 6.10630 + done
 6.10631 +-test -n "$ac_ct_DUMPBIN" || ac_ct_DUMPBIN=":"
 6.10632 + 
 6.10633 +-  DUMPBIN=$ac_ct_DUMPBIN
 6.10634 ++  if test "x$ac_ct_DUMPBIN" = x; then
 6.10635 ++    DUMPBIN=":"
 6.10636 ++  else
 6.10637 ++    case $cross_compiling:$ac_tool_warned in
 6.10638 ++yes:)
 6.10639 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.10640 ++whose name does not start with the host triplet.  If you think this
 6.10641 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.10642 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.10643 ++whose name does not start with the host triplet.  If you think this
 6.10644 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.10645 ++ac_tool_warned=yes ;;
 6.10646 ++esac
 6.10647 ++    DUMPBIN=$ac_ct_DUMPBIN
 6.10648 ++  fi
 6.10649 + fi
 6.10650 + 
 6.10651 + 
 6.10652 +@@ -4802,43 +5768,43 @@
 6.10653 + 
 6.10654 + 
 6.10655 + 
 6.10656 +-echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5
 6.10657 +-echo $ECHO_N "checking the name lister ($NM) interface... $ECHO_C" >&6
 6.10658 ++{ echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5
 6.10659 ++echo $ECHO_N "checking the name lister ($NM) interface... $ECHO_C" >&6; }
 6.10660 + if test "${lt_cv_nm_interface+set}" = set; then
 6.10661 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10662 + else
 6.10663 +   lt_cv_nm_interface="BSD nm"
 6.10664 +   echo "int some_variable = 0;" > conftest.$ac_ext
 6.10665 +-  (eval echo "\"\$as_me:4812: $ac_compile\"" >&5)
 6.10666 ++  (eval echo "\"\$as_me:5778: $ac_compile\"" >&5)
 6.10667 +   (eval "$ac_compile" 2>conftest.err)
 6.10668 +   cat conftest.err >&5
 6.10669 +-  (eval echo "\"\$as_me:4815: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
 6.10670 ++  (eval echo "\"\$as_me:5781: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
 6.10671 +   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
 6.10672 +   cat conftest.err >&5
 6.10673 +-  (eval echo "\"\$as_me:4818: output\"" >&5)
 6.10674 ++  (eval echo "\"\$as_me:5784: output\"" >&5)
 6.10675 +   cat conftest.out >&5
 6.10676 +   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
 6.10677 +     lt_cv_nm_interface="MS dumpbin"
 6.10678 +   fi
 6.10679 +   rm -f conftest*
 6.10680 + fi
 6.10681 +-echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5
 6.10682 +-echo "${ECHO_T}$lt_cv_nm_interface" >&6
 6.10683 ++{ echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5
 6.10684 ++echo "${ECHO_T}$lt_cv_nm_interface" >&6; }
 6.10685 + 
 6.10686 +-echo "$as_me:$LINENO: checking whether ln -s works" >&5
 6.10687 +-echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
 6.10688 ++{ echo "$as_me:$LINENO: checking whether ln -s works" >&5
 6.10689 ++echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; }
 6.10690 + LN_S=$as_ln_s
 6.10691 + if test "$LN_S" = "ln -s"; then
 6.10692 +-  echo "$as_me:$LINENO: result: yes" >&5
 6.10693 +-echo "${ECHO_T}yes" >&6
 6.10694 ++  { echo "$as_me:$LINENO: result: yes" >&5
 6.10695 ++echo "${ECHO_T}yes" >&6; }
 6.10696 + else
 6.10697 +-  echo "$as_me:$LINENO: result: no, using $LN_S" >&5
 6.10698 +-echo "${ECHO_T}no, using $LN_S" >&6
 6.10699 ++  { echo "$as_me:$LINENO: result: no, using $LN_S" >&5
 6.10700 ++echo "${ECHO_T}no, using $LN_S" >&6; }
 6.10701 + fi
 6.10702 + 
 6.10703 + # find the maximum length of command line arguments
 6.10704 +-echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
 6.10705 +-echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6
 6.10706 ++{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
 6.10707 ++echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; }
 6.10708 + if test "${lt_cv_sys_max_cmd_len+set}" = set; then
 6.10709 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10710 + else
 6.10711 +@@ -4957,11 +5923,11 @@
 6.10712 + fi
 6.10713 + 
 6.10714 + if test -n $lt_cv_sys_max_cmd_len ; then
 6.10715 +-  echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
 6.10716 +-echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6
 6.10717 ++  { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
 6.10718 ++echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; }
 6.10719 + else
 6.10720 +-  echo "$as_me:$LINENO: result: none" >&5
 6.10721 +-echo "${ECHO_T}none" >&6
 6.10722 ++  { echo "$as_me:$LINENO: result: none" >&5
 6.10723 ++echo "${ECHO_T}none" >&6; }
 6.10724 + fi
 6.10725 + max_cmd_len=$lt_cv_sys_max_cmd_len
 6.10726 + 
 6.10727 +@@ -4974,8 +5940,8 @@
 6.10728 + : ${MV="mv -f"}
 6.10729 + : ${RM="rm -f"}
 6.10730 + 
 6.10731 +-echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5
 6.10732 +-echo $ECHO_N "checking whether the shell understands some XSI constructs... $ECHO_C" >&6
 6.10733 ++{ echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5
 6.10734 ++echo $ECHO_N "checking whether the shell understands some XSI constructs... $ECHO_C" >&6; }
 6.10735 + # Try some XSI features
 6.10736 + xsi_shell=no
 6.10737 + ( _lt_dummy="a/b/c"
 6.10738 +@@ -4984,18 +5950,18 @@
 6.10739 +     && eval 'test $(( 1 + 1 )) -eq 2 \
 6.10740 +     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
 6.10741 +   && xsi_shell=yes
 6.10742 +-echo "$as_me:$LINENO: result: $xsi_shell" >&5
 6.10743 +-echo "${ECHO_T}$xsi_shell" >&6
 6.10744 ++{ echo "$as_me:$LINENO: result: $xsi_shell" >&5
 6.10745 ++echo "${ECHO_T}$xsi_shell" >&6; }
 6.10746 + 
 6.10747 + 
 6.10748 +-echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5
 6.10749 +-echo $ECHO_N "checking whether the shell understands \"+=\"... $ECHO_C" >&6
 6.10750 ++{ echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5
 6.10751 ++echo $ECHO_N "checking whether the shell understands \"+=\"... $ECHO_C" >&6; }
 6.10752 + lt_shell_append=no
 6.10753 + ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
 6.10754 +     >/dev/null 2>&1 \
 6.10755 +   && lt_shell_append=yes
 6.10756 +-echo "$as_me:$LINENO: result: $lt_shell_append" >&5
 6.10757 +-echo "${ECHO_T}$lt_shell_append" >&6
 6.10758 ++{ echo "$as_me:$LINENO: result: $lt_shell_append" >&5
 6.10759 ++echo "${ECHO_T}$lt_shell_append" >&6; }
 6.10760 + 
 6.10761 + 
 6.10762 + if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
 6.10763 +@@ -5029,15 +5995,15 @@
 6.10764 + 
 6.10765 + 
 6.10766 + 
 6.10767 +-echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
 6.10768 +-echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
 6.10769 ++{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
 6.10770 ++echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; }
 6.10771 + if test "${lt_cv_ld_reload_flag+set}" = set; then
 6.10772 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10773 + else
 6.10774 +   lt_cv_ld_reload_flag='-r'
 6.10775 + fi
 6.10776 +-echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
 6.10777 +-echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
 6.10778 ++{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
 6.10779 ++echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; }
 6.10780 + reload_flag=$lt_cv_ld_reload_flag
 6.10781 + case $reload_flag in
 6.10782 + "" | " "*) ;;
 6.10783 +@@ -5065,8 +6031,8 @@
 6.10784 + if test -n "$ac_tool_prefix"; then
 6.10785 +   # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
 6.10786 + set dummy ${ac_tool_prefix}objdump; ac_word=$2
 6.10787 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.10788 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.10789 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.10790 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.10791 + if test "${ac_cv_prog_OBJDUMP+set}" = set; then
 6.10792 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10793 + else
 6.10794 +@@ -5079,32 +6045,34 @@
 6.10795 +   IFS=$as_save_IFS
 6.10796 +   test -z "$as_dir" && as_dir=.
 6.10797 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.10798 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.10799 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.10800 +     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
 6.10801 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.10802 +     break 2
 6.10803 +   fi
 6.10804 + done
 6.10805 + done
 6.10806 ++IFS=$as_save_IFS
 6.10807 + 
 6.10808 + fi
 6.10809 + fi
 6.10810 + OBJDUMP=$ac_cv_prog_OBJDUMP
 6.10811 + if test -n "$OBJDUMP"; then
 6.10812 +-  echo "$as_me:$LINENO: result: $OBJDUMP" >&5
 6.10813 +-echo "${ECHO_T}$OBJDUMP" >&6
 6.10814 ++  { echo "$as_me:$LINENO: result: $OBJDUMP" >&5
 6.10815 ++echo "${ECHO_T}$OBJDUMP" >&6; }
 6.10816 + else
 6.10817 +-  echo "$as_me:$LINENO: result: no" >&5
 6.10818 +-echo "${ECHO_T}no" >&6
 6.10819 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.10820 ++echo "${ECHO_T}no" >&6; }
 6.10821 + fi
 6.10822 + 
 6.10823 ++
 6.10824 + fi
 6.10825 + if test -z "$ac_cv_prog_OBJDUMP"; then
 6.10826 +   ac_ct_OBJDUMP=$OBJDUMP
 6.10827 +   # Extract the first word of "objdump", so it can be a program name with args.
 6.10828 + set dummy objdump; ac_word=$2
 6.10829 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.10830 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.10831 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.10832 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.10833 + if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then
 6.10834 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10835 + else
 6.10836 +@@ -5117,27 +6085,41 @@
 6.10837 +   IFS=$as_save_IFS
 6.10838 +   test -z "$as_dir" && as_dir=.
 6.10839 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.10840 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.10841 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.10842 +     ac_cv_prog_ac_ct_OBJDUMP="objdump"
 6.10843 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.10844 +     break 2
 6.10845 +   fi
 6.10846 + done
 6.10847 + done
 6.10848 ++IFS=$as_save_IFS
 6.10849 + 
 6.10850 +-  test -z "$ac_cv_prog_ac_ct_OBJDUMP" && ac_cv_prog_ac_ct_OBJDUMP="false"
 6.10851 + fi
 6.10852 + fi
 6.10853 + ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
 6.10854 + if test -n "$ac_ct_OBJDUMP"; then
 6.10855 +-  echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
 6.10856 +-echo "${ECHO_T}$ac_ct_OBJDUMP" >&6
 6.10857 ++  { echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
 6.10858 ++echo "${ECHO_T}$ac_ct_OBJDUMP" >&6; }
 6.10859 + else
 6.10860 +-  echo "$as_me:$LINENO: result: no" >&5
 6.10861 +-echo "${ECHO_T}no" >&6
 6.10862 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.10863 ++echo "${ECHO_T}no" >&6; }
 6.10864 + fi
 6.10865 + 
 6.10866 +-  OBJDUMP=$ac_ct_OBJDUMP
 6.10867 ++  if test "x$ac_ct_OBJDUMP" = x; then
 6.10868 ++    OBJDUMP="false"
 6.10869 ++  else
 6.10870 ++    case $cross_compiling:$ac_tool_warned in
 6.10871 ++yes:)
 6.10872 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.10873 ++whose name does not start with the host triplet.  If you think this
 6.10874 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.10875 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.10876 ++whose name does not start with the host triplet.  If you think this
 6.10877 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.10878 ++ac_tool_warned=yes ;;
 6.10879 ++esac
 6.10880 ++    OBJDUMP=$ac_ct_OBJDUMP
 6.10881 ++  fi
 6.10882 + else
 6.10883 +   OBJDUMP="$ac_cv_prog_OBJDUMP"
 6.10884 + fi
 6.10885 +@@ -5149,8 +6131,8 @@
 6.10886 + 
 6.10887 + 
 6.10888 + 
 6.10889 +-echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
 6.10890 +-echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6
 6.10891 ++{ echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
 6.10892 ++echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; }
 6.10893 + if test "${lt_cv_deplibs_check_method+set}" = set; then
 6.10894 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10895 + else
 6.10896 +@@ -5345,8 +6327,8 @@
 6.10897 + esac
 6.10898 + 
 6.10899 + fi
 6.10900 +-echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
 6.10901 +-echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
 6.10902 ++{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
 6.10903 ++echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; }
 6.10904 + file_magic_cmd=$lt_cv_file_magic_cmd
 6.10905 + deplibs_check_method=$lt_cv_deplibs_check_method
 6.10906 + test -z "$deplibs_check_method" && deplibs_check_method=unknown
 6.10907 +@@ -5365,8 +6347,8 @@
 6.10908 + if test -n "$ac_tool_prefix"; then
 6.10909 +   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 6.10910 + set dummy ${ac_tool_prefix}ar; ac_word=$2
 6.10911 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.10912 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.10913 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.10914 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.10915 + if test "${ac_cv_prog_AR+set}" = set; then
 6.10916 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10917 + else
 6.10918 +@@ -5379,32 +6361,34 @@
 6.10919 +   IFS=$as_save_IFS
 6.10920 +   test -z "$as_dir" && as_dir=.
 6.10921 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.10922 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.10923 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.10924 +     ac_cv_prog_AR="${ac_tool_prefix}ar"
 6.10925 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.10926 +     break 2
 6.10927 +   fi
 6.10928 + done
 6.10929 + done
 6.10930 ++IFS=$as_save_IFS
 6.10931 + 
 6.10932 + fi
 6.10933 + fi
 6.10934 + AR=$ac_cv_prog_AR
 6.10935 + if test -n "$AR"; then
 6.10936 +-  echo "$as_me:$LINENO: result: $AR" >&5
 6.10937 +-echo "${ECHO_T}$AR" >&6
 6.10938 ++  { echo "$as_me:$LINENO: result: $AR" >&5
 6.10939 ++echo "${ECHO_T}$AR" >&6; }
 6.10940 + else
 6.10941 +-  echo "$as_me:$LINENO: result: no" >&5
 6.10942 +-echo "${ECHO_T}no" >&6
 6.10943 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.10944 ++echo "${ECHO_T}no" >&6; }
 6.10945 + fi
 6.10946 + 
 6.10947 ++
 6.10948 + fi
 6.10949 + if test -z "$ac_cv_prog_AR"; then
 6.10950 +   ac_ct_AR=$AR
 6.10951 +   # Extract the first word of "ar", so it can be a program name with args.
 6.10952 + set dummy ar; ac_word=$2
 6.10953 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.10954 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.10955 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.10956 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.10957 + if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
 6.10958 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.10959 + else
 6.10960 +@@ -5417,27 +6401,41 @@
 6.10961 +   IFS=$as_save_IFS
 6.10962 +   test -z "$as_dir" && as_dir=.
 6.10963 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.10964 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.10965 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.10966 +     ac_cv_prog_ac_ct_AR="ar"
 6.10967 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.10968 +     break 2
 6.10969 +   fi
 6.10970 + done
 6.10971 + done
 6.10972 ++IFS=$as_save_IFS
 6.10973 + 
 6.10974 +-  test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false"
 6.10975 + fi
 6.10976 + fi
 6.10977 + ac_ct_AR=$ac_cv_prog_ac_ct_AR
 6.10978 + if test -n "$ac_ct_AR"; then
 6.10979 +-  echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
 6.10980 +-echo "${ECHO_T}$ac_ct_AR" >&6
 6.10981 ++  { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
 6.10982 ++echo "${ECHO_T}$ac_ct_AR" >&6; }
 6.10983 + else
 6.10984 +-  echo "$as_me:$LINENO: result: no" >&5
 6.10985 +-echo "${ECHO_T}no" >&6
 6.10986 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.10987 ++echo "${ECHO_T}no" >&6; }
 6.10988 + fi
 6.10989 + 
 6.10990 +-  AR=$ac_ct_AR
 6.10991 ++  if test "x$ac_ct_AR" = x; then
 6.10992 ++    AR="false"
 6.10993 ++  else
 6.10994 ++    case $cross_compiling:$ac_tool_warned in
 6.10995 ++yes:)
 6.10996 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.10997 ++whose name does not start with the host triplet.  If you think this
 6.10998 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.10999 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.11000 ++whose name does not start with the host triplet.  If you think this
 6.11001 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.11002 ++ac_tool_warned=yes ;;
 6.11003 ++esac
 6.11004 ++    AR=$ac_ct_AR
 6.11005 ++  fi
 6.11006 + else
 6.11007 +   AR="$ac_cv_prog_AR"
 6.11008 + fi
 6.11009 +@@ -5458,8 +6456,8 @@
 6.11010 + if test -n "$ac_tool_prefix"; then
 6.11011 +   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 6.11012 + set dummy ${ac_tool_prefix}strip; ac_word=$2
 6.11013 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11014 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.11015 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11016 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.11017 + if test "${ac_cv_prog_STRIP+set}" = set; then
 6.11018 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11019 + else
 6.11020 +@@ -5472,32 +6470,34 @@
 6.11021 +   IFS=$as_save_IFS
 6.11022 +   test -z "$as_dir" && as_dir=.
 6.11023 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.11024 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.11025 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.11026 +     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
 6.11027 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.11028 +     break 2
 6.11029 +   fi
 6.11030 + done
 6.11031 + done
 6.11032 ++IFS=$as_save_IFS
 6.11033 + 
 6.11034 + fi
 6.11035 + fi
 6.11036 + STRIP=$ac_cv_prog_STRIP
 6.11037 + if test -n "$STRIP"; then
 6.11038 +-  echo "$as_me:$LINENO: result: $STRIP" >&5
 6.11039 +-echo "${ECHO_T}$STRIP" >&6
 6.11040 ++  { echo "$as_me:$LINENO: result: $STRIP" >&5
 6.11041 ++echo "${ECHO_T}$STRIP" >&6; }
 6.11042 + else
 6.11043 +-  echo "$as_me:$LINENO: result: no" >&5
 6.11044 +-echo "${ECHO_T}no" >&6
 6.11045 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.11046 ++echo "${ECHO_T}no" >&6; }
 6.11047 + fi
 6.11048 + 
 6.11049 ++
 6.11050 + fi
 6.11051 + if test -z "$ac_cv_prog_STRIP"; then
 6.11052 +   ac_ct_STRIP=$STRIP
 6.11053 +   # Extract the first word of "strip", so it can be a program name with args.
 6.11054 + set dummy strip; ac_word=$2
 6.11055 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11056 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.11057 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11058 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.11059 + if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
 6.11060 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11061 + else
 6.11062 +@@ -5510,27 +6510,41 @@
 6.11063 +   IFS=$as_save_IFS
 6.11064 +   test -z "$as_dir" && as_dir=.
 6.11065 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.11066 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.11067 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.11068 +     ac_cv_prog_ac_ct_STRIP="strip"
 6.11069 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.11070 +     break 2
 6.11071 +   fi
 6.11072 + done
 6.11073 + done
 6.11074 ++IFS=$as_save_IFS
 6.11075 + 
 6.11076 +-  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
 6.11077 + fi
 6.11078 + fi
 6.11079 + ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 6.11080 + if test -n "$ac_ct_STRIP"; then
 6.11081 +-  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
 6.11082 +-echo "${ECHO_T}$ac_ct_STRIP" >&6
 6.11083 ++  { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
 6.11084 ++echo "${ECHO_T}$ac_ct_STRIP" >&6; }
 6.11085 + else
 6.11086 +-  echo "$as_me:$LINENO: result: no" >&5
 6.11087 +-echo "${ECHO_T}no" >&6
 6.11088 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.11089 ++echo "${ECHO_T}no" >&6; }
 6.11090 + fi
 6.11091 + 
 6.11092 +-  STRIP=$ac_ct_STRIP
 6.11093 ++  if test "x$ac_ct_STRIP" = x; then
 6.11094 ++    STRIP=":"
 6.11095 ++  else
 6.11096 ++    case $cross_compiling:$ac_tool_warned in
 6.11097 ++yes:)
 6.11098 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.11099 ++whose name does not start with the host triplet.  If you think this
 6.11100 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.11101 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.11102 ++whose name does not start with the host triplet.  If you think this
 6.11103 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.11104 ++ac_tool_warned=yes ;;
 6.11105 ++esac
 6.11106 ++    STRIP=$ac_ct_STRIP
 6.11107 ++  fi
 6.11108 + else
 6.11109 +   STRIP="$ac_cv_prog_STRIP"
 6.11110 + fi
 6.11111 +@@ -5545,8 +6559,8 @@
 6.11112 + if test -n "$ac_tool_prefix"; then
 6.11113 +   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 6.11114 + set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 6.11115 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11116 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.11117 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11118 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.11119 + if test "${ac_cv_prog_RANLIB+set}" = set; then
 6.11120 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11121 + else
 6.11122 +@@ -5559,32 +6573,34 @@
 6.11123 +   IFS=$as_save_IFS
 6.11124 +   test -z "$as_dir" && as_dir=.
 6.11125 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.11126 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.11127 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.11128 +     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
 6.11129 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.11130 +     break 2
 6.11131 +   fi
 6.11132 + done
 6.11133 + done
 6.11134 ++IFS=$as_save_IFS
 6.11135 + 
 6.11136 + fi
 6.11137 + fi
 6.11138 + RANLIB=$ac_cv_prog_RANLIB
 6.11139 + if test -n "$RANLIB"; then
 6.11140 +-  echo "$as_me:$LINENO: result: $RANLIB" >&5
 6.11141 +-echo "${ECHO_T}$RANLIB" >&6
 6.11142 ++  { echo "$as_me:$LINENO: result: $RANLIB" >&5
 6.11143 ++echo "${ECHO_T}$RANLIB" >&6; }
 6.11144 + else
 6.11145 +-  echo "$as_me:$LINENO: result: no" >&5
 6.11146 +-echo "${ECHO_T}no" >&6
 6.11147 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.11148 ++echo "${ECHO_T}no" >&6; }
 6.11149 + fi
 6.11150 + 
 6.11151 ++
 6.11152 + fi
 6.11153 + if test -z "$ac_cv_prog_RANLIB"; then
 6.11154 +   ac_ct_RANLIB=$RANLIB
 6.11155 +   # Extract the first word of "ranlib", so it can be a program name with args.
 6.11156 + set dummy ranlib; ac_word=$2
 6.11157 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11158 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.11159 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11160 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.11161 + if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
 6.11162 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11163 + else
 6.11164 +@@ -5597,27 +6613,41 @@
 6.11165 +   IFS=$as_save_IFS
 6.11166 +   test -z "$as_dir" && as_dir=.
 6.11167 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.11168 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.11169 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.11170 +     ac_cv_prog_ac_ct_RANLIB="ranlib"
 6.11171 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.11172 +     break 2
 6.11173 +   fi
 6.11174 + done
 6.11175 + done
 6.11176 ++IFS=$as_save_IFS
 6.11177 + 
 6.11178 +-  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
 6.11179 + fi
 6.11180 + fi
 6.11181 + ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 6.11182 + if test -n "$ac_ct_RANLIB"; then
 6.11183 +-  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
 6.11184 +-echo "${ECHO_T}$ac_ct_RANLIB" >&6
 6.11185 ++  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
 6.11186 ++echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
 6.11187 + else
 6.11188 +-  echo "$as_me:$LINENO: result: no" >&5
 6.11189 +-echo "${ECHO_T}no" >&6
 6.11190 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.11191 ++echo "${ECHO_T}no" >&6; }
 6.11192 + fi
 6.11193 + 
 6.11194 +-  RANLIB=$ac_ct_RANLIB
 6.11195 ++  if test "x$ac_ct_RANLIB" = x; then
 6.11196 ++    RANLIB=":"
 6.11197 ++  else
 6.11198 ++    case $cross_compiling:$ac_tool_warned in
 6.11199 ++yes:)
 6.11200 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.11201 ++whose name does not start with the host triplet.  If you think this
 6.11202 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.11203 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.11204 ++whose name does not start with the host triplet.  If you think this
 6.11205 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.11206 ++ac_tool_warned=yes ;;
 6.11207 ++esac
 6.11208 ++    RANLIB=$ac_ct_RANLIB
 6.11209 ++  fi
 6.11210 + else
 6.11211 +   RANLIB="$ac_cv_prog_RANLIB"
 6.11212 + fi
 6.11213 +@@ -5690,8 +6720,8 @@
 6.11214 + 
 6.11215 + 
 6.11216 + # Check for command to grab the raw symbol name followed by C symbol from nm.
 6.11217 +-echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
 6.11218 +-echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6
 6.11219 ++{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
 6.11220 ++echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; }
 6.11221 + if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
 6.11222 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11223 + else
 6.11224 +@@ -5910,11 +6940,11 @@
 6.11225 +   lt_cv_sys_global_symbol_to_cdecl=
 6.11226 + fi
 6.11227 + if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
 6.11228 +-  echo "$as_me:$LINENO: result: failed" >&5
 6.11229 +-echo "${ECHO_T}failed" >&6
 6.11230 ++  { echo "$as_me:$LINENO: result: failed" >&5
 6.11231 ++echo "${ECHO_T}failed" >&6; }
 6.11232 + else
 6.11233 +-  echo "$as_me:$LINENO: result: ok" >&5
 6.11234 +-echo "${ECHO_T}ok" >&6
 6.11235 ++  { echo "$as_me:$LINENO: result: ok" >&5
 6.11236 ++echo "${ECHO_T}ok" >&6; }
 6.11237 + fi
 6.11238 + 
 6.11239 + 
 6.11240 +@@ -5939,11 +6969,11 @@
 6.11241 + 
 6.11242 + 
 6.11243 + 
 6.11244 +-# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
 6.11245 ++# Check whether --enable-libtool-lock was given.
 6.11246 + if test "${enable_libtool_lock+set}" = set; then
 6.11247 +-  enableval="$enable_libtool_lock"
 6.11248 ++  enableval=$enable_libtool_lock;
 6.11249 ++fi
 6.11250 + 
 6.11251 +-fi;
 6.11252 + test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
 6.11253 + 
 6.11254 + # Some flags need to be propagated to the compiler or linker for good
 6.11255 +@@ -5970,7 +7000,7 @@
 6.11256 +   ;;
 6.11257 + *-*-irix6*)
 6.11258 +   # Find out which ABI we are using.
 6.11259 +-  echo '#line 5973 "configure"' > conftest.$ac_ext
 6.11260 ++  echo '#line 7003 "configure"' > conftest.$ac_ext
 6.11261 +   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.11262 +   (eval $ac_compile) 2>&5
 6.11263 +   ac_status=$?
 6.11264 +@@ -6062,8 +7092,8 @@
 6.11265 +   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
 6.11266 +   SAVE_CFLAGS="$CFLAGS"
 6.11267 +   CFLAGS="$CFLAGS -belf"
 6.11268 +-  echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
 6.11269 +-echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
 6.11270 ++  { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
 6.11271 ++echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; }
 6.11272 + if test "${lt_cv_cc_needs_belf+set}" = set; then
 6.11273 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11274 + else
 6.11275 +@@ -6089,35 +7119,32 @@
 6.11276 + }
 6.11277 + _ACEOF
 6.11278 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.11279 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.11280 +-  (eval $ac_link) 2>conftest.er1
 6.11281 ++if { (ac_try="$ac_link"
 6.11282 ++case "(($ac_try" in
 6.11283 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.11284 ++  *) ac_try_echo=$ac_try;;
 6.11285 ++esac
 6.11286 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.11287 ++  (eval "$ac_link") 2>conftest.er1
 6.11288 +   ac_status=$?
 6.11289 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.11290 +   rm -f conftest.er1
 6.11291 +   cat conftest.err >&5
 6.11292 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.11293 +-  (exit $ac_status); } &&
 6.11294 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.11295 +-			 || test ! -s conftest.err'
 6.11296 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.11297 +-  (eval $ac_try) 2>&5
 6.11298 +-  ac_status=$?
 6.11299 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.11300 +-  (exit $ac_status); }; } &&
 6.11301 +-	 { ac_try='test -s conftest$ac_exeext'
 6.11302 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.11303 +-  (eval $ac_try) 2>&5
 6.11304 +-  ac_status=$?
 6.11305 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.11306 +-  (exit $ac_status); }; }; then
 6.11307 ++  (exit $ac_status); } && {
 6.11308 ++	 test -z "$ac_c_werror_flag" ||
 6.11309 ++	 test ! -s conftest.err
 6.11310 ++       } && test -s conftest$ac_exeext &&
 6.11311 ++       $as_test_x conftest$ac_exeext; then
 6.11312 +   lt_cv_cc_needs_belf=yes
 6.11313 + else
 6.11314 +   echo "$as_me: failed program was:" >&5
 6.11315 + sed 's/^/| /' conftest.$ac_ext >&5
 6.11316 + 
 6.11317 +-lt_cv_cc_needs_belf=no
 6.11318 ++	lt_cv_cc_needs_belf=no
 6.11319 + fi
 6.11320 +-rm -f conftest.err conftest.$ac_objext \
 6.11321 ++
 6.11322 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.11323 +       conftest$ac_exeext conftest.$ac_ext
 6.11324 +      ac_ext=c
 6.11325 + ac_cpp='$CPP $CPPFLAGS'
 6.11326 +@@ -6126,8 +7153,8 @@
 6.11327 + ac_compiler_gnu=$ac_cv_c_compiler_gnu
 6.11328 + 
 6.11329 + fi
 6.11330 +-echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
 6.11331 +-echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
 6.11332 ++{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
 6.11333 ++echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; }
 6.11334 +   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
 6.11335 +     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
 6.11336 +     CFLAGS="$SAVE_CFLAGS"
 6.11337 +@@ -6166,8 +7193,8 @@
 6.11338 +     if test -n "$ac_tool_prefix"; then
 6.11339 +   # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
 6.11340 + set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
 6.11341 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11342 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.11343 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11344 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.11345 + if test "${ac_cv_prog_DSYMUTIL+set}" = set; then
 6.11346 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11347 + else
 6.11348 +@@ -6180,32 +7207,34 @@
 6.11349 +   IFS=$as_save_IFS
 6.11350 +   test -z "$as_dir" && as_dir=.
 6.11351 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.11352 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.11353 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.11354 +     ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
 6.11355 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.11356 +     break 2
 6.11357 +   fi
 6.11358 + done
 6.11359 + done
 6.11360 ++IFS=$as_save_IFS
 6.11361 + 
 6.11362 + fi
 6.11363 + fi
 6.11364 + DSYMUTIL=$ac_cv_prog_DSYMUTIL
 6.11365 + if test -n "$DSYMUTIL"; then
 6.11366 +-  echo "$as_me:$LINENO: result: $DSYMUTIL" >&5
 6.11367 +-echo "${ECHO_T}$DSYMUTIL" >&6
 6.11368 ++  { echo "$as_me:$LINENO: result: $DSYMUTIL" >&5
 6.11369 ++echo "${ECHO_T}$DSYMUTIL" >&6; }
 6.11370 + else
 6.11371 +-  echo "$as_me:$LINENO: result: no" >&5
 6.11372 +-echo "${ECHO_T}no" >&6
 6.11373 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.11374 ++echo "${ECHO_T}no" >&6; }
 6.11375 + fi
 6.11376 + 
 6.11377 ++
 6.11378 + fi
 6.11379 + if test -z "$ac_cv_prog_DSYMUTIL"; then
 6.11380 +   ac_ct_DSYMUTIL=$DSYMUTIL
 6.11381 +   # Extract the first word of "dsymutil", so it can be a program name with args.
 6.11382 + set dummy dsymutil; ac_word=$2
 6.11383 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11384 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.11385 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11386 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.11387 + if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then
 6.11388 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11389 + else
 6.11390 +@@ -6218,27 +7247,41 @@
 6.11391 +   IFS=$as_save_IFS
 6.11392 +   test -z "$as_dir" && as_dir=.
 6.11393 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.11394 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.11395 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.11396 +     ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
 6.11397 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.11398 +     break 2
 6.11399 +   fi
 6.11400 + done
 6.11401 + done
 6.11402 ++IFS=$as_save_IFS
 6.11403 + 
 6.11404 +-  test -z "$ac_cv_prog_ac_ct_DSYMUTIL" && ac_cv_prog_ac_ct_DSYMUTIL=":"
 6.11405 + fi
 6.11406 + fi
 6.11407 + ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
 6.11408 + if test -n "$ac_ct_DSYMUTIL"; then
 6.11409 +-  echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5
 6.11410 +-echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6
 6.11411 ++  { echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5
 6.11412 ++echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6; }
 6.11413 + else
 6.11414 +-  echo "$as_me:$LINENO: result: no" >&5
 6.11415 +-echo "${ECHO_T}no" >&6
 6.11416 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.11417 ++echo "${ECHO_T}no" >&6; }
 6.11418 + fi
 6.11419 + 
 6.11420 +-  DSYMUTIL=$ac_ct_DSYMUTIL
 6.11421 ++  if test "x$ac_ct_DSYMUTIL" = x; then
 6.11422 ++    DSYMUTIL=":"
 6.11423 ++  else
 6.11424 ++    case $cross_compiling:$ac_tool_warned in
 6.11425 ++yes:)
 6.11426 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.11427 ++whose name does not start with the host triplet.  If you think this
 6.11428 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.11429 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.11430 ++whose name does not start with the host triplet.  If you think this
 6.11431 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.11432 ++ac_tool_warned=yes ;;
 6.11433 ++esac
 6.11434 ++    DSYMUTIL=$ac_ct_DSYMUTIL
 6.11435 ++  fi
 6.11436 + else
 6.11437 +   DSYMUTIL="$ac_cv_prog_DSYMUTIL"
 6.11438 + fi
 6.11439 +@@ -6246,8 +7289,8 @@
 6.11440 +     if test -n "$ac_tool_prefix"; then
 6.11441 +   # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
 6.11442 + set dummy ${ac_tool_prefix}nmedit; ac_word=$2
 6.11443 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11444 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.11445 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11446 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.11447 + if test "${ac_cv_prog_NMEDIT+set}" = set; then
 6.11448 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11449 + else
 6.11450 +@@ -6260,32 +7303,34 @@
 6.11451 +   IFS=$as_save_IFS
 6.11452 +   test -z "$as_dir" && as_dir=.
 6.11453 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.11454 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.11455 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.11456 +     ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
 6.11457 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.11458 +     break 2
 6.11459 +   fi
 6.11460 + done
 6.11461 + done
 6.11462 ++IFS=$as_save_IFS
 6.11463 + 
 6.11464 + fi
 6.11465 + fi
 6.11466 + NMEDIT=$ac_cv_prog_NMEDIT
 6.11467 + if test -n "$NMEDIT"; then
 6.11468 +-  echo "$as_me:$LINENO: result: $NMEDIT" >&5
 6.11469 +-echo "${ECHO_T}$NMEDIT" >&6
 6.11470 ++  { echo "$as_me:$LINENO: result: $NMEDIT" >&5
 6.11471 ++echo "${ECHO_T}$NMEDIT" >&6; }
 6.11472 + else
 6.11473 +-  echo "$as_me:$LINENO: result: no" >&5
 6.11474 +-echo "${ECHO_T}no" >&6
 6.11475 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.11476 ++echo "${ECHO_T}no" >&6; }
 6.11477 + fi
 6.11478 + 
 6.11479 ++
 6.11480 + fi
 6.11481 + if test -z "$ac_cv_prog_NMEDIT"; then
 6.11482 +   ac_ct_NMEDIT=$NMEDIT
 6.11483 +   # Extract the first word of "nmedit", so it can be a program name with args.
 6.11484 + set dummy nmedit; ac_word=$2
 6.11485 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11486 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.11487 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11488 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.11489 + if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then
 6.11490 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11491 + else
 6.11492 +@@ -6298,27 +7343,41 @@
 6.11493 +   IFS=$as_save_IFS
 6.11494 +   test -z "$as_dir" && as_dir=.
 6.11495 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.11496 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.11497 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.11498 +     ac_cv_prog_ac_ct_NMEDIT="nmedit"
 6.11499 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.11500 +     break 2
 6.11501 +   fi
 6.11502 + done
 6.11503 + done
 6.11504 ++IFS=$as_save_IFS
 6.11505 + 
 6.11506 +-  test -z "$ac_cv_prog_ac_ct_NMEDIT" && ac_cv_prog_ac_ct_NMEDIT=":"
 6.11507 + fi
 6.11508 + fi
 6.11509 + ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
 6.11510 + if test -n "$ac_ct_NMEDIT"; then
 6.11511 +-  echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5
 6.11512 +-echo "${ECHO_T}$ac_ct_NMEDIT" >&6
 6.11513 ++  { echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5
 6.11514 ++echo "${ECHO_T}$ac_ct_NMEDIT" >&6; }
 6.11515 + else
 6.11516 +-  echo "$as_me:$LINENO: result: no" >&5
 6.11517 +-echo "${ECHO_T}no" >&6
 6.11518 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.11519 ++echo "${ECHO_T}no" >&6; }
 6.11520 + fi
 6.11521 + 
 6.11522 +-  NMEDIT=$ac_ct_NMEDIT
 6.11523 ++  if test "x$ac_ct_NMEDIT" = x; then
 6.11524 ++    NMEDIT=":"
 6.11525 ++  else
 6.11526 ++    case $cross_compiling:$ac_tool_warned in
 6.11527 ++yes:)
 6.11528 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.11529 ++whose name does not start with the host triplet.  If you think this
 6.11530 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.11531 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.11532 ++whose name does not start with the host triplet.  If you think this
 6.11533 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.11534 ++ac_tool_warned=yes ;;
 6.11535 ++esac
 6.11536 ++    NMEDIT=$ac_ct_NMEDIT
 6.11537 ++  fi
 6.11538 + else
 6.11539 +   NMEDIT="$ac_cv_prog_NMEDIT"
 6.11540 + fi
 6.11541 +@@ -6326,8 +7385,8 @@
 6.11542 +     if test -n "$ac_tool_prefix"; then
 6.11543 +   # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
 6.11544 + set dummy ${ac_tool_prefix}lipo; ac_word=$2
 6.11545 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11546 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.11547 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11548 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.11549 + if test "${ac_cv_prog_LIPO+set}" = set; then
 6.11550 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11551 + else
 6.11552 +@@ -6340,32 +7399,34 @@
 6.11553 +   IFS=$as_save_IFS
 6.11554 +   test -z "$as_dir" && as_dir=.
 6.11555 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.11556 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.11557 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.11558 +     ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
 6.11559 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.11560 +     break 2
 6.11561 +   fi
 6.11562 + done
 6.11563 + done
 6.11564 ++IFS=$as_save_IFS
 6.11565 + 
 6.11566 + fi
 6.11567 + fi
 6.11568 + LIPO=$ac_cv_prog_LIPO
 6.11569 + if test -n "$LIPO"; then
 6.11570 +-  echo "$as_me:$LINENO: result: $LIPO" >&5
 6.11571 +-echo "${ECHO_T}$LIPO" >&6
 6.11572 ++  { echo "$as_me:$LINENO: result: $LIPO" >&5
 6.11573 ++echo "${ECHO_T}$LIPO" >&6; }
 6.11574 + else
 6.11575 +-  echo "$as_me:$LINENO: result: no" >&5
 6.11576 +-echo "${ECHO_T}no" >&6
 6.11577 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.11578 ++echo "${ECHO_T}no" >&6; }
 6.11579 + fi
 6.11580 + 
 6.11581 ++
 6.11582 + fi
 6.11583 + if test -z "$ac_cv_prog_LIPO"; then
 6.11584 +   ac_ct_LIPO=$LIPO
 6.11585 +   # Extract the first word of "lipo", so it can be a program name with args.
 6.11586 + set dummy lipo; ac_word=$2
 6.11587 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11588 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.11589 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11590 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.11591 + if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then
 6.11592 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11593 + else
 6.11594 +@@ -6378,27 +7439,41 @@
 6.11595 +   IFS=$as_save_IFS
 6.11596 +   test -z "$as_dir" && as_dir=.
 6.11597 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.11598 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.11599 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.11600 +     ac_cv_prog_ac_ct_LIPO="lipo"
 6.11601 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.11602 +     break 2
 6.11603 +   fi
 6.11604 + done
 6.11605 + done
 6.11606 ++IFS=$as_save_IFS
 6.11607 + 
 6.11608 +-  test -z "$ac_cv_prog_ac_ct_LIPO" && ac_cv_prog_ac_ct_LIPO=":"
 6.11609 + fi
 6.11610 + fi
 6.11611 + ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
 6.11612 + if test -n "$ac_ct_LIPO"; then
 6.11613 +-  echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5
 6.11614 +-echo "${ECHO_T}$ac_ct_LIPO" >&6
 6.11615 ++  { echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5
 6.11616 ++echo "${ECHO_T}$ac_ct_LIPO" >&6; }
 6.11617 + else
 6.11618 +-  echo "$as_me:$LINENO: result: no" >&5
 6.11619 +-echo "${ECHO_T}no" >&6
 6.11620 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.11621 ++echo "${ECHO_T}no" >&6; }
 6.11622 + fi
 6.11623 + 
 6.11624 +-  LIPO=$ac_ct_LIPO
 6.11625 ++  if test "x$ac_ct_LIPO" = x; then
 6.11626 ++    LIPO=":"
 6.11627 ++  else
 6.11628 ++    case $cross_compiling:$ac_tool_warned in
 6.11629 ++yes:)
 6.11630 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.11631 ++whose name does not start with the host triplet.  If you think this
 6.11632 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.11633 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.11634 ++whose name does not start with the host triplet.  If you think this
 6.11635 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.11636 ++ac_tool_warned=yes ;;
 6.11637 ++esac
 6.11638 ++    LIPO=$ac_ct_LIPO
 6.11639 ++  fi
 6.11640 + else
 6.11641 +   LIPO="$ac_cv_prog_LIPO"
 6.11642 + fi
 6.11643 +@@ -6406,8 +7481,8 @@
 6.11644 +     if test -n "$ac_tool_prefix"; then
 6.11645 +   # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
 6.11646 + set dummy ${ac_tool_prefix}otool; ac_word=$2
 6.11647 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11648 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.11649 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11650 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.11651 + if test "${ac_cv_prog_OTOOL+set}" = set; then
 6.11652 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11653 + else
 6.11654 +@@ -6420,32 +7495,34 @@
 6.11655 +   IFS=$as_save_IFS
 6.11656 +   test -z "$as_dir" && as_dir=.
 6.11657 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.11658 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.11659 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.11660 +     ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
 6.11661 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.11662 +     break 2
 6.11663 +   fi
 6.11664 + done
 6.11665 + done
 6.11666 ++IFS=$as_save_IFS
 6.11667 + 
 6.11668 + fi
 6.11669 + fi
 6.11670 + OTOOL=$ac_cv_prog_OTOOL
 6.11671 + if test -n "$OTOOL"; then
 6.11672 +-  echo "$as_me:$LINENO: result: $OTOOL" >&5
 6.11673 +-echo "${ECHO_T}$OTOOL" >&6
 6.11674 ++  { echo "$as_me:$LINENO: result: $OTOOL" >&5
 6.11675 ++echo "${ECHO_T}$OTOOL" >&6; }
 6.11676 + else
 6.11677 +-  echo "$as_me:$LINENO: result: no" >&5
 6.11678 +-echo "${ECHO_T}no" >&6
 6.11679 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.11680 ++echo "${ECHO_T}no" >&6; }
 6.11681 + fi
 6.11682 + 
 6.11683 ++
 6.11684 + fi
 6.11685 + if test -z "$ac_cv_prog_OTOOL"; then
 6.11686 +   ac_ct_OTOOL=$OTOOL
 6.11687 +   # Extract the first word of "otool", so it can be a program name with args.
 6.11688 + set dummy otool; ac_word=$2
 6.11689 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11690 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.11691 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11692 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.11693 + if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then
 6.11694 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11695 + else
 6.11696 +@@ -6458,27 +7535,41 @@
 6.11697 +   IFS=$as_save_IFS
 6.11698 +   test -z "$as_dir" && as_dir=.
 6.11699 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.11700 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.11701 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.11702 +     ac_cv_prog_ac_ct_OTOOL="otool"
 6.11703 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.11704 +     break 2
 6.11705 +   fi
 6.11706 + done
 6.11707 + done
 6.11708 ++IFS=$as_save_IFS
 6.11709 + 
 6.11710 +-  test -z "$ac_cv_prog_ac_ct_OTOOL" && ac_cv_prog_ac_ct_OTOOL=":"
 6.11711 + fi
 6.11712 + fi
 6.11713 + ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
 6.11714 + if test -n "$ac_ct_OTOOL"; then
 6.11715 +-  echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5
 6.11716 +-echo "${ECHO_T}$ac_ct_OTOOL" >&6
 6.11717 ++  { echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5
 6.11718 ++echo "${ECHO_T}$ac_ct_OTOOL" >&6; }
 6.11719 + else
 6.11720 +-  echo "$as_me:$LINENO: result: no" >&5
 6.11721 +-echo "${ECHO_T}no" >&6
 6.11722 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.11723 ++echo "${ECHO_T}no" >&6; }
 6.11724 + fi
 6.11725 + 
 6.11726 +-  OTOOL=$ac_ct_OTOOL
 6.11727 ++  if test "x$ac_ct_OTOOL" = x; then
 6.11728 ++    OTOOL=":"
 6.11729 ++  else
 6.11730 ++    case $cross_compiling:$ac_tool_warned in
 6.11731 ++yes:)
 6.11732 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.11733 ++whose name does not start with the host triplet.  If you think this
 6.11734 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.11735 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.11736 ++whose name does not start with the host triplet.  If you think this
 6.11737 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.11738 ++ac_tool_warned=yes ;;
 6.11739 ++esac
 6.11740 ++    OTOOL=$ac_ct_OTOOL
 6.11741 ++  fi
 6.11742 + else
 6.11743 +   OTOOL="$ac_cv_prog_OTOOL"
 6.11744 + fi
 6.11745 +@@ -6486,8 +7577,8 @@
 6.11746 +     if test -n "$ac_tool_prefix"; then
 6.11747 +   # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
 6.11748 + set dummy ${ac_tool_prefix}otool64; ac_word=$2
 6.11749 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11750 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.11751 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11752 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.11753 + if test "${ac_cv_prog_OTOOL64+set}" = set; then
 6.11754 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11755 + else
 6.11756 +@@ -6500,32 +7591,34 @@
 6.11757 +   IFS=$as_save_IFS
 6.11758 +   test -z "$as_dir" && as_dir=.
 6.11759 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.11760 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.11761 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.11762 +     ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
 6.11763 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.11764 +     break 2
 6.11765 +   fi
 6.11766 + done
 6.11767 + done
 6.11768 ++IFS=$as_save_IFS
 6.11769 + 
 6.11770 + fi
 6.11771 + fi
 6.11772 + OTOOL64=$ac_cv_prog_OTOOL64
 6.11773 + if test -n "$OTOOL64"; then
 6.11774 +-  echo "$as_me:$LINENO: result: $OTOOL64" >&5
 6.11775 +-echo "${ECHO_T}$OTOOL64" >&6
 6.11776 ++  { echo "$as_me:$LINENO: result: $OTOOL64" >&5
 6.11777 ++echo "${ECHO_T}$OTOOL64" >&6; }
 6.11778 + else
 6.11779 +-  echo "$as_me:$LINENO: result: no" >&5
 6.11780 +-echo "${ECHO_T}no" >&6
 6.11781 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.11782 ++echo "${ECHO_T}no" >&6; }
 6.11783 + fi
 6.11784 + 
 6.11785 ++
 6.11786 + fi
 6.11787 + if test -z "$ac_cv_prog_OTOOL64"; then
 6.11788 +   ac_ct_OTOOL64=$OTOOL64
 6.11789 +   # Extract the first word of "otool64", so it can be a program name with args.
 6.11790 + set dummy otool64; ac_word=$2
 6.11791 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11792 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.11793 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.11794 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.11795 + if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then
 6.11796 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11797 + else
 6.11798 +@@ -6538,27 +7631,41 @@
 6.11799 +   IFS=$as_save_IFS
 6.11800 +   test -z "$as_dir" && as_dir=.
 6.11801 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.11802 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.11803 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.11804 +     ac_cv_prog_ac_ct_OTOOL64="otool64"
 6.11805 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.11806 +     break 2
 6.11807 +   fi
 6.11808 + done
 6.11809 + done
 6.11810 ++IFS=$as_save_IFS
 6.11811 + 
 6.11812 +-  test -z "$ac_cv_prog_ac_ct_OTOOL64" && ac_cv_prog_ac_ct_OTOOL64=":"
 6.11813 + fi
 6.11814 + fi
 6.11815 + ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
 6.11816 + if test -n "$ac_ct_OTOOL64"; then
 6.11817 +-  echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5
 6.11818 +-echo "${ECHO_T}$ac_ct_OTOOL64" >&6
 6.11819 ++  { echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5
 6.11820 ++echo "${ECHO_T}$ac_ct_OTOOL64" >&6; }
 6.11821 + else
 6.11822 +-  echo "$as_me:$LINENO: result: no" >&5
 6.11823 +-echo "${ECHO_T}no" >&6
 6.11824 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.11825 ++echo "${ECHO_T}no" >&6; }
 6.11826 + fi
 6.11827 + 
 6.11828 +-  OTOOL64=$ac_ct_OTOOL64
 6.11829 ++  if test "x$ac_ct_OTOOL64" = x; then
 6.11830 ++    OTOOL64=":"
 6.11831 ++  else
 6.11832 ++    case $cross_compiling:$ac_tool_warned in
 6.11833 ++yes:)
 6.11834 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.11835 ++whose name does not start with the host triplet.  If you think this
 6.11836 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.11837 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.11838 ++whose name does not start with the host triplet.  If you think this
 6.11839 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.11840 ++ac_tool_warned=yes ;;
 6.11841 ++esac
 6.11842 ++    OTOOL64=$ac_ct_OTOOL64
 6.11843 ++  fi
 6.11844 + else
 6.11845 +   OTOOL64="$ac_cv_prog_OTOOL64"
 6.11846 + fi
 6.11847 +@@ -6589,8 +7696,8 @@
 6.11848 + 
 6.11849 + 
 6.11850 + 
 6.11851 +-    echo "$as_me:$LINENO: checking for -single_module linker flag" >&5
 6.11852 +-echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6
 6.11853 ++    { echo "$as_me:$LINENO: checking for -single_module linker flag" >&5
 6.11854 ++echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6; }
 6.11855 + if test "${lt_cv_apple_cc_single_mod+set}" = set; then
 6.11856 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11857 + else
 6.11858 +@@ -6616,10 +7723,10 @@
 6.11859 + 	rm -f conftest.*
 6.11860 +       fi
 6.11861 + fi
 6.11862 +-echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5
 6.11863 +-echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6
 6.11864 +-    echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5
 6.11865 +-echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6
 6.11866 ++{ echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5
 6.11867 ++echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6; }
 6.11868 ++    { echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5
 6.11869 ++echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6; }
 6.11870 + if test "${lt_cv_ld_exported_symbols_list+set}" = set; then
 6.11871 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.11872 + else
 6.11873 +@@ -6643,41 +7750,38 @@
 6.11874 + }
 6.11875 + _ACEOF
 6.11876 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.11877 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.11878 +-  (eval $ac_link) 2>conftest.er1
 6.11879 ++if { (ac_try="$ac_link"
 6.11880 ++case "(($ac_try" in
 6.11881 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.11882 ++  *) ac_try_echo=$ac_try;;
 6.11883 ++esac
 6.11884 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.11885 ++  (eval "$ac_link") 2>conftest.er1
 6.11886 +   ac_status=$?
 6.11887 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.11888 +   rm -f conftest.er1
 6.11889 +   cat conftest.err >&5
 6.11890 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.11891 +-  (exit $ac_status); } &&
 6.11892 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.11893 +-			 || test ! -s conftest.err'
 6.11894 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.11895 +-  (eval $ac_try) 2>&5
 6.11896 +-  ac_status=$?
 6.11897 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.11898 +-  (exit $ac_status); }; } &&
 6.11899 +-	 { ac_try='test -s conftest$ac_exeext'
 6.11900 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.11901 +-  (eval $ac_try) 2>&5
 6.11902 +-  ac_status=$?
 6.11903 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.11904 +-  (exit $ac_status); }; }; then
 6.11905 ++  (exit $ac_status); } && {
 6.11906 ++	 test -z "$ac_c_werror_flag" ||
 6.11907 ++	 test ! -s conftest.err
 6.11908 ++       } && test -s conftest$ac_exeext &&
 6.11909 ++       $as_test_x conftest$ac_exeext; then
 6.11910 +   lt_cv_ld_exported_symbols_list=yes
 6.11911 + else
 6.11912 +   echo "$as_me: failed program was:" >&5
 6.11913 + sed 's/^/| /' conftest.$ac_ext >&5
 6.11914 + 
 6.11915 +-lt_cv_ld_exported_symbols_list=no
 6.11916 ++	lt_cv_ld_exported_symbols_list=no
 6.11917 + fi
 6.11918 +-rm -f conftest.err conftest.$ac_objext \
 6.11919 ++
 6.11920 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.11921 +       conftest$ac_exeext conftest.$ac_ext
 6.11922 + 	LDFLAGS="$save_LDFLAGS"
 6.11923 + 
 6.11924 + fi
 6.11925 +-echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5
 6.11926 +-echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6
 6.11927 ++{ echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5
 6.11928 ++echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6; }
 6.11929 +     case $host_os in
 6.11930 +     rhapsody* | darwin1.[012])
 6.11931 +       _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
 6.11932 +@@ -6718,8 +7822,8 @@
 6.11933 + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 6.11934 + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 6.11935 + ac_compiler_gnu=$ac_cv_c_compiler_gnu
 6.11936 +-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
 6.11937 +-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
 6.11938 ++{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
 6.11939 ++echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
 6.11940 + # On Suns, sometimes $CPP names a directory.
 6.11941 + if test -n "$CPP" && test -d "$CPP"; then
 6.11942 +   CPP=
 6.11943 +@@ -6753,24 +7857,22 @@
 6.11944 + #endif
 6.11945 + 		     Syntax error
 6.11946 + _ACEOF
 6.11947 +-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
 6.11948 +-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
 6.11949 ++if { (ac_try="$ac_cpp conftest.$ac_ext"
 6.11950 ++case "(($ac_try" in
 6.11951 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.11952 ++  *) ac_try_echo=$ac_try;;
 6.11953 ++esac
 6.11954 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.11955 ++  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
 6.11956 +   ac_status=$?
 6.11957 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.11958 +   rm -f conftest.er1
 6.11959 +   cat conftest.err >&5
 6.11960 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.11961 +-  (exit $ac_status); } >/dev/null; then
 6.11962 +-  if test -s conftest.err; then
 6.11963 +-    ac_cpp_err=$ac_c_preproc_warn_flag
 6.11964 +-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
 6.11965 +-  else
 6.11966 +-    ac_cpp_err=
 6.11967 +-  fi
 6.11968 +-else
 6.11969 +-  ac_cpp_err=yes
 6.11970 +-fi
 6.11971 +-if test -z "$ac_cpp_err"; then
 6.11972 ++  (exit $ac_status); } >/dev/null && {
 6.11973 ++	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 6.11974 ++	 test ! -s conftest.err
 6.11975 ++       }; then
 6.11976 +   :
 6.11977 + else
 6.11978 +   echo "$as_me: failed program was:" >&5
 6.11979 +@@ -6779,9 +7881,10 @@
 6.11980 +   # Broken: fails on valid input.
 6.11981 + continue
 6.11982 + fi
 6.11983 ++
 6.11984 + rm -f conftest.err conftest.$ac_ext
 6.11985 + 
 6.11986 +-  # OK, works on sane cases.  Now check whether non-existent headers
 6.11987 ++  # OK, works on sane cases.  Now check whether nonexistent headers
 6.11988 +   # can be detected and how.
 6.11989 +   cat >conftest.$ac_ext <<_ACEOF
 6.11990 + /* confdefs.h.  */
 6.11991 +@@ -6791,24 +7894,22 @@
 6.11992 + /* end confdefs.h.  */
 6.11993 + #include <ac_nonexistent.h>
 6.11994 + _ACEOF
 6.11995 +-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
 6.11996 +-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
 6.11997 ++if { (ac_try="$ac_cpp conftest.$ac_ext"
 6.11998 ++case "(($ac_try" in
 6.11999 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.12000 ++  *) ac_try_echo=$ac_try;;
 6.12001 ++esac
 6.12002 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.12003 ++  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
 6.12004 +   ac_status=$?
 6.12005 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.12006 +   rm -f conftest.er1
 6.12007 +   cat conftest.err >&5
 6.12008 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12009 +-  (exit $ac_status); } >/dev/null; then
 6.12010 +-  if test -s conftest.err; then
 6.12011 +-    ac_cpp_err=$ac_c_preproc_warn_flag
 6.12012 +-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
 6.12013 +-  else
 6.12014 +-    ac_cpp_err=
 6.12015 +-  fi
 6.12016 +-else
 6.12017 +-  ac_cpp_err=yes
 6.12018 +-fi
 6.12019 +-if test -z "$ac_cpp_err"; then
 6.12020 ++  (exit $ac_status); } >/dev/null && {
 6.12021 ++	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 6.12022 ++	 test ! -s conftest.err
 6.12023 ++       }; then
 6.12024 +   # Broken: success on invalid input.
 6.12025 + continue
 6.12026 + else
 6.12027 +@@ -6819,6 +7920,7 @@
 6.12028 + ac_preproc_ok=:
 6.12029 + break
 6.12030 + fi
 6.12031 ++
 6.12032 + rm -f conftest.err conftest.$ac_ext
 6.12033 + 
 6.12034 + done
 6.12035 +@@ -6836,8 +7938,8 @@
 6.12036 + else
 6.12037 +   ac_cv_prog_CPP=$CPP
 6.12038 + fi
 6.12039 +-echo "$as_me:$LINENO: result: $CPP" >&5
 6.12040 +-echo "${ECHO_T}$CPP" >&6
 6.12041 ++{ echo "$as_me:$LINENO: result: $CPP" >&5
 6.12042 ++echo "${ECHO_T}$CPP" >&6; }
 6.12043 + ac_preproc_ok=false
 6.12044 + for ac_c_preproc_warn_flag in '' yes
 6.12045 + do
 6.12046 +@@ -6860,24 +7962,22 @@
 6.12047 + #endif
 6.12048 + 		     Syntax error
 6.12049 + _ACEOF
 6.12050 +-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
 6.12051 +-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
 6.12052 ++if { (ac_try="$ac_cpp conftest.$ac_ext"
 6.12053 ++case "(($ac_try" in
 6.12054 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.12055 ++  *) ac_try_echo=$ac_try;;
 6.12056 ++esac
 6.12057 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.12058 ++  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
 6.12059 +   ac_status=$?
 6.12060 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.12061 +   rm -f conftest.er1
 6.12062 +   cat conftest.err >&5
 6.12063 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12064 +-  (exit $ac_status); } >/dev/null; then
 6.12065 +-  if test -s conftest.err; then
 6.12066 +-    ac_cpp_err=$ac_c_preproc_warn_flag
 6.12067 +-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
 6.12068 +-  else
 6.12069 +-    ac_cpp_err=
 6.12070 +-  fi
 6.12071 +-else
 6.12072 +-  ac_cpp_err=yes
 6.12073 +-fi
 6.12074 +-if test -z "$ac_cpp_err"; then
 6.12075 ++  (exit $ac_status); } >/dev/null && {
 6.12076 ++	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 6.12077 ++	 test ! -s conftest.err
 6.12078 ++       }; then
 6.12079 +   :
 6.12080 + else
 6.12081 +   echo "$as_me: failed program was:" >&5
 6.12082 +@@ -6886,9 +7986,10 @@
 6.12083 +   # Broken: fails on valid input.
 6.12084 + continue
 6.12085 + fi
 6.12086 ++
 6.12087 + rm -f conftest.err conftest.$ac_ext
 6.12088 + 
 6.12089 +-  # OK, works on sane cases.  Now check whether non-existent headers
 6.12090 ++  # OK, works on sane cases.  Now check whether nonexistent headers
 6.12091 +   # can be detected and how.
 6.12092 +   cat >conftest.$ac_ext <<_ACEOF
 6.12093 + /* confdefs.h.  */
 6.12094 +@@ -6898,24 +7999,22 @@
 6.12095 + /* end confdefs.h.  */
 6.12096 + #include <ac_nonexistent.h>
 6.12097 + _ACEOF
 6.12098 +-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
 6.12099 +-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
 6.12100 ++if { (ac_try="$ac_cpp conftest.$ac_ext"
 6.12101 ++case "(($ac_try" in
 6.12102 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.12103 ++  *) ac_try_echo=$ac_try;;
 6.12104 ++esac
 6.12105 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.12106 ++  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
 6.12107 +   ac_status=$?
 6.12108 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.12109 +   rm -f conftest.er1
 6.12110 +   cat conftest.err >&5
 6.12111 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12112 +-  (exit $ac_status); } >/dev/null; then
 6.12113 +-  if test -s conftest.err; then
 6.12114 +-    ac_cpp_err=$ac_c_preproc_warn_flag
 6.12115 +-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
 6.12116 +-  else
 6.12117 +-    ac_cpp_err=
 6.12118 +-  fi
 6.12119 +-else
 6.12120 +-  ac_cpp_err=yes
 6.12121 +-fi
 6.12122 +-if test -z "$ac_cpp_err"; then
 6.12123 ++  (exit $ac_status); } >/dev/null && {
 6.12124 ++	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 6.12125 ++	 test ! -s conftest.err
 6.12126 ++       }; then
 6.12127 +   # Broken: success on invalid input.
 6.12128 + continue
 6.12129 + else
 6.12130 +@@ -6926,6 +8025,7 @@
 6.12131 + ac_preproc_ok=:
 6.12132 + break
 6.12133 + fi
 6.12134 ++
 6.12135 + rm -f conftest.err conftest.$ac_ext
 6.12136 + 
 6.12137 + done
 6.12138 +@@ -6948,8 +8048,8 @@
 6.12139 + ac_compiler_gnu=$ac_cv_c_compiler_gnu
 6.12140 + 
 6.12141 + 
 6.12142 +-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
 6.12143 +-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
 6.12144 ++{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
 6.12145 ++echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
 6.12146 + if test "${ac_cv_header_stdc+set}" = set; then
 6.12147 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.12148 + else
 6.12149 +@@ -6973,35 +8073,31 @@
 6.12150 + }
 6.12151 + _ACEOF
 6.12152 + rm -f conftest.$ac_objext
 6.12153 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.12154 +-  (eval $ac_compile) 2>conftest.er1
 6.12155 ++if { (ac_try="$ac_compile"
 6.12156 ++case "(($ac_try" in
 6.12157 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.12158 ++  *) ac_try_echo=$ac_try;;
 6.12159 ++esac
 6.12160 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.12161 ++  (eval "$ac_compile") 2>conftest.er1
 6.12162 +   ac_status=$?
 6.12163 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.12164 +   rm -f conftest.er1
 6.12165 +   cat conftest.err >&5
 6.12166 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12167 +-  (exit $ac_status); } &&
 6.12168 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.12169 +-			 || test ! -s conftest.err'
 6.12170 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.12171 +-  (eval $ac_try) 2>&5
 6.12172 +-  ac_status=$?
 6.12173 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12174 +-  (exit $ac_status); }; } &&
 6.12175 +-	 { ac_try='test -s conftest.$ac_objext'
 6.12176 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.12177 +-  (eval $ac_try) 2>&5
 6.12178 +-  ac_status=$?
 6.12179 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12180 +-  (exit $ac_status); }; }; then
 6.12181 ++  (exit $ac_status); } && {
 6.12182 ++	 test -z "$ac_c_werror_flag" ||
 6.12183 ++	 test ! -s conftest.err
 6.12184 ++       } && test -s conftest.$ac_objext; then
 6.12185 +   ac_cv_header_stdc=yes
 6.12186 + else
 6.12187 +   echo "$as_me: failed program was:" >&5
 6.12188 + sed 's/^/| /' conftest.$ac_ext >&5
 6.12189 + 
 6.12190 +-ac_cv_header_stdc=no
 6.12191 ++	ac_cv_header_stdc=no
 6.12192 + fi
 6.12193 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 6.12194 ++
 6.12195 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 6.12196 + 
 6.12197 + if test $ac_cv_header_stdc = yes; then
 6.12198 +   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 6.12199 +@@ -7057,6 +8153,7 @@
 6.12200 + cat >>conftest.$ac_ext <<_ACEOF
 6.12201 + /* end confdefs.h.  */
 6.12202 + #include <ctype.h>
 6.12203 ++#include <stdlib.h>
 6.12204 + #if ((' ' & 0x0FF) == 0x020)
 6.12205 + # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
 6.12206 + # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
 6.12207 +@@ -7076,18 +8173,27 @@
 6.12208 +   for (i = 0; i < 256; i++)
 6.12209 +     if (XOR (islower (i), ISLOWER (i))
 6.12210 + 	|| toupper (i) != TOUPPER (i))
 6.12211 +-      exit(2);
 6.12212 +-  exit (0);
 6.12213 ++      return 2;
 6.12214 ++  return 0;
 6.12215 + }
 6.12216 + _ACEOF
 6.12217 + rm -f conftest$ac_exeext
 6.12218 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.12219 +-  (eval $ac_link) 2>&5
 6.12220 ++if { (ac_try="$ac_link"
 6.12221 ++case "(($ac_try" in
 6.12222 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.12223 ++  *) ac_try_echo=$ac_try;;
 6.12224 ++esac
 6.12225 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.12226 ++  (eval "$ac_link") 2>&5
 6.12227 +   ac_status=$?
 6.12228 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12229 +   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
 6.12230 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.12231 +-  (eval $ac_try) 2>&5
 6.12232 ++  { (case "(($ac_try" in
 6.12233 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.12234 ++  *) ac_try_echo=$ac_try;;
 6.12235 ++esac
 6.12236 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.12237 ++  (eval "$ac_try") 2>&5
 6.12238 +   ac_status=$?
 6.12239 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12240 +   (exit $ac_status); }; }; then
 6.12241 +@@ -7100,12 +8206,14 @@
 6.12242 + ( exit $ac_status )
 6.12243 + ac_cv_header_stdc=no
 6.12244 + fi
 6.12245 +-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 6.12246 ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 6.12247 + fi
 6.12248 ++
 6.12249 ++
 6.12250 + fi
 6.12251 + fi
 6.12252 +-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
 6.12253 +-echo "${ECHO_T}$ac_cv_header_stdc" >&6
 6.12254 ++{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
 6.12255 ++echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
 6.12256 + if test $ac_cv_header_stdc = yes; then
 6.12257 + 
 6.12258 + cat >>confdefs.h <<\_ACEOF
 6.12259 +@@ -7128,9 +8236,9 @@
 6.12260 + 		  inttypes.h stdint.h unistd.h
 6.12261 + do
 6.12262 + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
 6.12263 +-echo "$as_me:$LINENO: checking for $ac_header" >&5
 6.12264 +-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
 6.12265 +-if eval "test \"\${$as_ac_Header+set}\" = set"; then
 6.12266 ++{ echo "$as_me:$LINENO: checking for $ac_header" >&5
 6.12267 ++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
 6.12268 ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
 6.12269 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.12270 + else
 6.12271 +   cat >conftest.$ac_ext <<_ACEOF
 6.12272 +@@ -7144,38 +8252,35 @@
 6.12273 + #include <$ac_header>
 6.12274 + _ACEOF
 6.12275 + rm -f conftest.$ac_objext
 6.12276 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.12277 +-  (eval $ac_compile) 2>conftest.er1
 6.12278 ++if { (ac_try="$ac_compile"
 6.12279 ++case "(($ac_try" in
 6.12280 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.12281 ++  *) ac_try_echo=$ac_try;;
 6.12282 ++esac
 6.12283 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.12284 ++  (eval "$ac_compile") 2>conftest.er1
 6.12285 +   ac_status=$?
 6.12286 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.12287 +   rm -f conftest.er1
 6.12288 +   cat conftest.err >&5
 6.12289 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12290 +-  (exit $ac_status); } &&
 6.12291 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.12292 +-			 || test ! -s conftest.err'
 6.12293 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.12294 +-  (eval $ac_try) 2>&5
 6.12295 +-  ac_status=$?
 6.12296 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12297 +-  (exit $ac_status); }; } &&
 6.12298 +-	 { ac_try='test -s conftest.$ac_objext'
 6.12299 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.12300 +-  (eval $ac_try) 2>&5
 6.12301 +-  ac_status=$?
 6.12302 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12303 +-  (exit $ac_status); }; }; then
 6.12304 ++  (exit $ac_status); } && {
 6.12305 ++	 test -z "$ac_c_werror_flag" ||
 6.12306 ++	 test ! -s conftest.err
 6.12307 ++       } && test -s conftest.$ac_objext; then
 6.12308 +   eval "$as_ac_Header=yes"
 6.12309 + else
 6.12310 +   echo "$as_me: failed program was:" >&5
 6.12311 + sed 's/^/| /' conftest.$ac_ext >&5
 6.12312 + 
 6.12313 +-eval "$as_ac_Header=no"
 6.12314 ++	eval "$as_ac_Header=no"
 6.12315 + fi
 6.12316 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 6.12317 ++
 6.12318 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 6.12319 + fi
 6.12320 +-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
 6.12321 +-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 6.12322 ++ac_res=`eval echo '${'$as_ac_Header'}'`
 6.12323 ++	       { echo "$as_me:$LINENO: result: $ac_res" >&5
 6.12324 ++echo "${ECHO_T}$ac_res" >&6; }
 6.12325 + if test `eval echo '${'$as_ac_Header'}'` = yes; then
 6.12326 +   cat >>confdefs.h <<_ACEOF
 6.12327 + #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 6.12328 +@@ -7190,9 +8295,9 @@
 6.12329 + for ac_header in dlfcn.h
 6.12330 + do
 6.12331 + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
 6.12332 +-echo "$as_me:$LINENO: checking for $ac_header" >&5
 6.12333 +-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
 6.12334 +-if eval "test \"\${$as_ac_Header+set}\" = set"; then
 6.12335 ++{ echo "$as_me:$LINENO: checking for $ac_header" >&5
 6.12336 ++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
 6.12337 ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
 6.12338 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.12339 + else
 6.12340 +   cat >conftest.$ac_ext <<_ACEOF
 6.12341 +@@ -7206,38 +8311,35 @@
 6.12342 + #include <$ac_header>
 6.12343 + _ACEOF
 6.12344 + rm -f conftest.$ac_objext
 6.12345 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.12346 +-  (eval $ac_compile) 2>conftest.er1
 6.12347 ++if { (ac_try="$ac_compile"
 6.12348 ++case "(($ac_try" in
 6.12349 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.12350 ++  *) ac_try_echo=$ac_try;;
 6.12351 ++esac
 6.12352 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.12353 ++  (eval "$ac_compile") 2>conftest.er1
 6.12354 +   ac_status=$?
 6.12355 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.12356 +   rm -f conftest.er1
 6.12357 +   cat conftest.err >&5
 6.12358 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12359 +-  (exit $ac_status); } &&
 6.12360 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.12361 +-			 || test ! -s conftest.err'
 6.12362 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.12363 +-  (eval $ac_try) 2>&5
 6.12364 +-  ac_status=$?
 6.12365 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12366 +-  (exit $ac_status); }; } &&
 6.12367 +-	 { ac_try='test -s conftest.$ac_objext'
 6.12368 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.12369 +-  (eval $ac_try) 2>&5
 6.12370 +-  ac_status=$?
 6.12371 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12372 +-  (exit $ac_status); }; }; then
 6.12373 ++  (exit $ac_status); } && {
 6.12374 ++	 test -z "$ac_c_werror_flag" ||
 6.12375 ++	 test ! -s conftest.err
 6.12376 ++       } && test -s conftest.$ac_objext; then
 6.12377 +   eval "$as_ac_Header=yes"
 6.12378 + else
 6.12379 +   echo "$as_me: failed program was:" >&5
 6.12380 + sed 's/^/| /' conftest.$ac_ext >&5
 6.12381 + 
 6.12382 +-eval "$as_ac_Header=no"
 6.12383 ++	eval "$as_ac_Header=no"
 6.12384 + fi
 6.12385 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 6.12386 ++
 6.12387 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 6.12388 + fi
 6.12389 +-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
 6.12390 +-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 6.12391 ++ac_res=`eval echo '${'$as_ac_Header'}'`
 6.12392 ++	       { echo "$as_me:$LINENO: result: $ac_res" >&5
 6.12393 ++echo "${ECHO_T}$ac_res" >&6; }
 6.12394 + if test `eval echo '${'$as_ac_Header'}'` = yes; then
 6.12395 +   cat >>confdefs.h <<_ACEOF
 6.12396 + #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 6.12397 +@@ -7257,10 +8359,9 @@
 6.12398 + 
 6.12399 + 
 6.12400 + 
 6.12401 +-            # Check whether --enable-shared or --disable-shared was given.
 6.12402 ++            # Check whether --enable-shared was given.
 6.12403 + if test "${enable_shared+set}" = set; then
 6.12404 +-  enableval="$enable_shared"
 6.12405 +-  p=${PACKAGE-default}
 6.12406 ++  enableval=$enable_shared; p=${PACKAGE-default}
 6.12407 +     case $enableval in
 6.12408 +     yes) enable_shared=yes ;;
 6.12409 +     no) enable_shared=no ;;
 6.12410 +@@ -7279,7 +8380,8 @@
 6.12411 +     esac
 6.12412 + else
 6.12413 +   enable_shared=yes
 6.12414 +-fi;
 6.12415 ++fi
 6.12416 ++
 6.12417 + 
 6.12418 + 
 6.12419 + 
 6.12420 +@@ -7288,10 +8390,9 @@
 6.12421 + 
 6.12422 + 
 6.12423 + 
 6.12424 +-  # Check whether --enable-static or --disable-static was given.
 6.12425 ++  # Check whether --enable-static was given.
 6.12426 + if test "${enable_static+set}" = set; then
 6.12427 +-  enableval="$enable_static"
 6.12428 +-  p=${PACKAGE-default}
 6.12429 ++  enableval=$enable_static; p=${PACKAGE-default}
 6.12430 +     case $enableval in
 6.12431 +     yes) enable_static=yes ;;
 6.12432 +     no) enable_static=no ;;
 6.12433 +@@ -7310,7 +8411,8 @@
 6.12434 +     esac
 6.12435 + else
 6.12436 +   enable_static=yes
 6.12437 +-fi;
 6.12438 ++fi
 6.12439 ++
 6.12440 + 
 6.12441 + 
 6.12442 + 
 6.12443 +@@ -7320,13 +8422,13 @@
 6.12444 + 
 6.12445 + 
 6.12446 + 
 6.12447 +-# Check whether --with-pic or --without-pic was given.
 6.12448 ++# Check whether --with-pic was given.
 6.12449 + if test "${with_pic+set}" = set; then
 6.12450 +-  withval="$with_pic"
 6.12451 +-  pic_mode="$withval"
 6.12452 ++  withval=$with_pic; pic_mode="$withval"
 6.12453 + else
 6.12454 +   pic_mode=default
 6.12455 +-fi;
 6.12456 ++fi
 6.12457 ++
 6.12458 + 
 6.12459 + test -z "$pic_mode" && pic_mode=default
 6.12460 + 
 6.12461 +@@ -7336,10 +8438,9 @@
 6.12462 + 
 6.12463 + 
 6.12464 + 
 6.12465 +-  # Check whether --enable-fast-install or --disable-fast-install was given.
 6.12466 ++  # Check whether --enable-fast-install was given.
 6.12467 + if test "${enable_fast_install+set}" = set; then
 6.12468 +-  enableval="$enable_fast_install"
 6.12469 +-  p=${PACKAGE-default}
 6.12470 ++  enableval=$enable_fast_install; p=${PACKAGE-default}
 6.12471 +     case $enableval in
 6.12472 +     yes) enable_fast_install=yes ;;
 6.12473 +     no) enable_fast_install=no ;;
 6.12474 +@@ -7358,7 +8459,8 @@
 6.12475 +     esac
 6.12476 + else
 6.12477 +   enable_fast_install=yes
 6.12478 +-fi;
 6.12479 ++fi
 6.12480 ++
 6.12481 + 
 6.12482 + 
 6.12483 + 
 6.12484 +@@ -7418,8 +8520,8 @@
 6.12485 +    setopt NO_GLOB_SUBST
 6.12486 + fi
 6.12487 + 
 6.12488 +-echo "$as_me:$LINENO: checking for objdir" >&5
 6.12489 +-echo $ECHO_N "checking for objdir... $ECHO_C" >&6
 6.12490 ++{ echo "$as_me:$LINENO: checking for objdir" >&5
 6.12491 ++echo $ECHO_N "checking for objdir... $ECHO_C" >&6; }
 6.12492 + if test "${lt_cv_objdir+set}" = set; then
 6.12493 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.12494 + else
 6.12495 +@@ -7433,8 +8535,8 @@
 6.12496 + fi
 6.12497 + rmdir .libs 2>/dev/null
 6.12498 + fi
 6.12499 +-echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
 6.12500 +-echo "${ECHO_T}$lt_cv_objdir" >&6
 6.12501 ++{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
 6.12502 ++echo "${ECHO_T}$lt_cv_objdir" >&6; }
 6.12503 + objdir=$lt_cv_objdir
 6.12504 + 
 6.12505 + 
 6.12506 +@@ -7526,8 +8628,8 @@
 6.12507 + case $deplibs_check_method in
 6.12508 + file_magic*)
 6.12509 +   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
 6.12510 +-    echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
 6.12511 +-echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
 6.12512 ++    { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
 6.12513 ++echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; }
 6.12514 + if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
 6.12515 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.12516 + else
 6.12517 +@@ -7579,11 +8681,11 @@
 6.12518 + 
 6.12519 + MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 6.12520 + if test -n "$MAGIC_CMD"; then
 6.12521 +-  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
 6.12522 +-echo "${ECHO_T}$MAGIC_CMD" >&6
 6.12523 ++  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
 6.12524 ++echo "${ECHO_T}$MAGIC_CMD" >&6; }
 6.12525 + else
 6.12526 +-  echo "$as_me:$LINENO: result: no" >&5
 6.12527 +-echo "${ECHO_T}no" >&6
 6.12528 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.12529 ++echo "${ECHO_T}no" >&6; }
 6.12530 + fi
 6.12531 + 
 6.12532 + 
 6.12533 +@@ -7592,8 +8694,8 @@
 6.12534 + 
 6.12535 + if test -z "$lt_cv_path_MAGIC_CMD"; then
 6.12536 +   if test -n "$ac_tool_prefix"; then
 6.12537 +-    echo "$as_me:$LINENO: checking for file" >&5
 6.12538 +-echo $ECHO_N "checking for file... $ECHO_C" >&6
 6.12539 ++    { echo "$as_me:$LINENO: checking for file" >&5
 6.12540 ++echo $ECHO_N "checking for file... $ECHO_C" >&6; }
 6.12541 + if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
 6.12542 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.12543 + else
 6.12544 +@@ -7645,11 +8747,11 @@
 6.12545 + 
 6.12546 + MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 6.12547 + if test -n "$MAGIC_CMD"; then
 6.12548 +-  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
 6.12549 +-echo "${ECHO_T}$MAGIC_CMD" >&6
 6.12550 ++  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
 6.12551 ++echo "${ECHO_T}$MAGIC_CMD" >&6; }
 6.12552 + else
 6.12553 +-  echo "$as_me:$LINENO: result: no" >&5
 6.12554 +-echo "${ECHO_T}no" >&6
 6.12555 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.12556 ++echo "${ECHO_T}no" >&6; }
 6.12557 + fi
 6.12558 + 
 6.12559 + 
 6.12560 +@@ -7729,8 +8831,8 @@
 6.12561 + if test "$GCC" = yes; then
 6.12562 +   lt_prog_compiler_no_builtin_flag=' -fno-builtin'
 6.12563 + 
 6.12564 +-  echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
 6.12565 +-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
 6.12566 ++  { echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
 6.12567 ++echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
 6.12568 + if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
 6.12569 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.12570 + else
 6.12571 +@@ -7747,11 +8849,11 @@
 6.12572 +    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
 6.12573 +    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
 6.12574 +    -e 's:$: $lt_compiler_flag:'`
 6.12575 +-   (eval echo "\"\$as_me:7750: $lt_compile\"" >&5)
 6.12576 ++   (eval echo "\"\$as_me:8852: $lt_compile\"" >&5)
 6.12577 +    (eval "$lt_compile" 2>conftest.err)
 6.12578 +    ac_status=$?
 6.12579 +    cat conftest.err >&5
 6.12580 +-   echo "$as_me:7754: \$? = $ac_status" >&5
 6.12581 ++   echo "$as_me:8856: \$? = $ac_status" >&5
 6.12582 +    if (exit $ac_status) && test -s "$ac_outfile"; then
 6.12583 +      # The compiler can only warn and ignore the option if not recognized
 6.12584 +      # So say no if there are warnings other than the usual output.
 6.12585 +@@ -7764,8 +8866,8 @@
 6.12586 +    $RM conftest*
 6.12587 + 
 6.12588 + fi
 6.12589 +-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
 6.12590 +-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
 6.12591 ++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
 6.12592 ++echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 6.12593 + 
 6.12594 + if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
 6.12595 +     lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
 6.12596 +@@ -7784,8 +8886,8 @@
 6.12597 + lt_prog_compiler_pic=
 6.12598 + lt_prog_compiler_static=
 6.12599 + 
 6.12600 +-echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
 6.12601 +-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
 6.12602 ++{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
 6.12603 ++echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
 6.12604 + 
 6.12605 +   if test "$GCC" = yes; then
 6.12606 +     lt_prog_compiler_wl='-Wl,'
 6.12607 +@@ -8056,8 +9158,8 @@
 6.12608 +     lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
 6.12609 +     ;;
 6.12610 + esac
 6.12611 +-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
 6.12612 +-echo "${ECHO_T}$lt_prog_compiler_pic" >&6
 6.12613 ++{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
 6.12614 ++echo "${ECHO_T}$lt_prog_compiler_pic" >&6; }
 6.12615 + 
 6.12616 + 
 6.12617 + 
 6.12618 +@@ -8068,8 +9170,8 @@
 6.12619 + # Check to make sure the PIC flag actually works.
 6.12620 + #
 6.12621 + if test -n "$lt_prog_compiler_pic"; then
 6.12622 +-  echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
 6.12623 +-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6
 6.12624 ++  { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
 6.12625 ++echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; }
 6.12626 + if test "${lt_cv_prog_compiler_pic_works+set}" = set; then
 6.12627 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.12628 + else
 6.12629 +@@ -8086,11 +9188,11 @@
 6.12630 +    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
 6.12631 +    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
 6.12632 +    -e 's:$: $lt_compiler_flag:'`
 6.12633 +-   (eval echo "\"\$as_me:8089: $lt_compile\"" >&5)
 6.12634 ++   (eval echo "\"\$as_me:9191: $lt_compile\"" >&5)
 6.12635 +    (eval "$lt_compile" 2>conftest.err)
 6.12636 +    ac_status=$?
 6.12637 +    cat conftest.err >&5
 6.12638 +-   echo "$as_me:8093: \$? = $ac_status" >&5
 6.12639 ++   echo "$as_me:9195: \$? = $ac_status" >&5
 6.12640 +    if (exit $ac_status) && test -s "$ac_outfile"; then
 6.12641 +      # The compiler can only warn and ignore the option if not recognized
 6.12642 +      # So say no if there are warnings other than the usual output.
 6.12643 +@@ -8103,8 +9205,8 @@
 6.12644 +    $RM conftest*
 6.12645 + 
 6.12646 + fi
 6.12647 +-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5
 6.12648 +-echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6
 6.12649 ++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5
 6.12650 ++echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6; }
 6.12651 + 
 6.12652 + if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
 6.12653 +     case $lt_prog_compiler_pic in
 6.12654 +@@ -8127,8 +9229,8 @@
 6.12655 + # Check to make sure the static flag actually works.
 6.12656 + #
 6.12657 + wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
 6.12658 +-echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 6.12659 +-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6
 6.12660 ++{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 6.12661 ++echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
 6.12662 + if test "${lt_cv_prog_compiler_static_works+set}" = set; then
 6.12663 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.12664 + else
 6.12665 +@@ -8155,8 +9257,8 @@
 6.12666 +    LDFLAGS="$save_LDFLAGS"
 6.12667 + 
 6.12668 + fi
 6.12669 +-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5
 6.12670 +-echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6
 6.12671 ++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5
 6.12672 ++echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6; }
 6.12673 + 
 6.12674 + if test x"$lt_cv_prog_compiler_static_works" = xyes; then
 6.12675 +     :
 6.12676 +@@ -8170,8 +9272,8 @@
 6.12677 + 
 6.12678 + 
 6.12679 + 
 6.12680 +-  echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
 6.12681 +-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
 6.12682 ++  { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
 6.12683 ++echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
 6.12684 + if test "${lt_cv_prog_compiler_c_o+set}" = set; then
 6.12685 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.12686 + else
 6.12687 +@@ -8191,11 +9293,11 @@
 6.12688 +    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
 6.12689 +    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
 6.12690 +    -e 's:$: $lt_compiler_flag:'`
 6.12691 +-   (eval echo "\"\$as_me:8194: $lt_compile\"" >&5)
 6.12692 ++   (eval echo "\"\$as_me:9296: $lt_compile\"" >&5)
 6.12693 +    (eval "$lt_compile" 2>out/conftest.err)
 6.12694 +    ac_status=$?
 6.12695 +    cat out/conftest.err >&5
 6.12696 +-   echo "$as_me:8198: \$? = $ac_status" >&5
 6.12697 ++   echo "$as_me:9300: \$? = $ac_status" >&5
 6.12698 +    if (exit $ac_status) && test -s out/conftest2.$ac_objext
 6.12699 +    then
 6.12700 +      # The compiler can only warn and ignore the option if not recognized
 6.12701 +@@ -8217,16 +9319,16 @@
 6.12702 +    $RM conftest*
 6.12703 + 
 6.12704 + fi
 6.12705 +-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
 6.12706 +-echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6
 6.12707 ++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
 6.12708 ++echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; }
 6.12709 + 
 6.12710 + 
 6.12711 + 
 6.12712 + 
 6.12713 + 
 6.12714 + 
 6.12715 +-  echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
 6.12716 +-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
 6.12717 ++  { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
 6.12718 ++echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
 6.12719 + if test "${lt_cv_prog_compiler_c_o+set}" = set; then
 6.12720 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.12721 + else
 6.12722 +@@ -8246,11 +9348,11 @@
 6.12723 +    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
 6.12724 +    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
 6.12725 +    -e 's:$: $lt_compiler_flag:'`
 6.12726 +-   (eval echo "\"\$as_me:8249: $lt_compile\"" >&5)
 6.12727 ++   (eval echo "\"\$as_me:9351: $lt_compile\"" >&5)
 6.12728 +    (eval "$lt_compile" 2>out/conftest.err)
 6.12729 +    ac_status=$?
 6.12730 +    cat out/conftest.err >&5
 6.12731 +-   echo "$as_me:8253: \$? = $ac_status" >&5
 6.12732 ++   echo "$as_me:9355: \$? = $ac_status" >&5
 6.12733 +    if (exit $ac_status) && test -s out/conftest2.$ac_objext
 6.12734 +    then
 6.12735 +      # The compiler can only warn and ignore the option if not recognized
 6.12736 +@@ -8272,8 +9374,8 @@
 6.12737 +    $RM conftest*
 6.12738 + 
 6.12739 + fi
 6.12740 +-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
 6.12741 +-echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6
 6.12742 ++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
 6.12743 ++echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; }
 6.12744 + 
 6.12745 + 
 6.12746 + 
 6.12747 +@@ -8281,16 +9383,16 @@
 6.12748 + hard_links="nottested"
 6.12749 + if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
 6.12750 +   # do not overwrite the value of need_locks provided by the user
 6.12751 +-  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
 6.12752 +-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
 6.12753 ++  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
 6.12754 ++echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
 6.12755 +   hard_links=yes
 6.12756 +   $RM conftest*
 6.12757 +   ln conftest.a conftest.b 2>/dev/null && hard_links=no
 6.12758 +   touch conftest.a
 6.12759 +   ln conftest.a conftest.b 2>&5 || hard_links=no
 6.12760 +   ln conftest.a conftest.b 2>/dev/null && hard_links=no
 6.12761 +-  echo "$as_me:$LINENO: result: $hard_links" >&5
 6.12762 +-echo "${ECHO_T}$hard_links" >&6
 6.12763 ++  { echo "$as_me:$LINENO: result: $hard_links" >&5
 6.12764 ++echo "${ECHO_T}$hard_links" >&6; }
 6.12765 +   if test "$hard_links" = no; then
 6.12766 +     { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
 6.12767 + echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
 6.12768 +@@ -8305,8 +9407,8 @@
 6.12769 + 
 6.12770 + 
 6.12771 + 
 6.12772 +-  echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
 6.12773 +-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
 6.12774 ++  { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
 6.12775 ++echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
 6.12776 + 
 6.12777 +   runpath_var=
 6.12778 +   allow_undefined_flag=
 6.12779 +@@ -8763,27 +9865,23 @@
 6.12780 + }
 6.12781 + _ACEOF
 6.12782 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.12783 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.12784 +-  (eval $ac_link) 2>conftest.er1
 6.12785 ++if { (ac_try="$ac_link"
 6.12786 ++case "(($ac_try" in
 6.12787 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.12788 ++  *) ac_try_echo=$ac_try;;
 6.12789 ++esac
 6.12790 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.12791 ++  (eval "$ac_link") 2>conftest.er1
 6.12792 +   ac_status=$?
 6.12793 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.12794 +   rm -f conftest.er1
 6.12795 +   cat conftest.err >&5
 6.12796 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12797 +-  (exit $ac_status); } &&
 6.12798 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.12799 +-			 || test ! -s conftest.err'
 6.12800 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.12801 +-  (eval $ac_try) 2>&5
 6.12802 +-  ac_status=$?
 6.12803 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12804 +-  (exit $ac_status); }; } &&
 6.12805 +-	 { ac_try='test -s conftest$ac_exeext'
 6.12806 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.12807 +-  (eval $ac_try) 2>&5
 6.12808 +-  ac_status=$?
 6.12809 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12810 +-  (exit $ac_status); }; }; then
 6.12811 ++  (exit $ac_status); } && {
 6.12812 ++	 test -z "$ac_c_werror_flag" ||
 6.12813 ++	 test ! -s conftest.err
 6.12814 ++       } && test -s conftest$ac_exeext &&
 6.12815 ++       $as_test_x conftest$ac_exeext; then
 6.12816 + 
 6.12817 + lt_aix_libpath_sed='
 6.12818 +     /Import File Strings/,/^$/ {
 6.12819 +@@ -8801,8 +9899,10 @@
 6.12820 +   echo "$as_me: failed program was:" >&5
 6.12821 + sed 's/^/| /' conftest.$ac_ext >&5
 6.12822 + 
 6.12823 ++
 6.12824 + fi
 6.12825 +-rm -f conftest.err conftest.$ac_objext \
 6.12826 ++
 6.12827 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.12828 +       conftest$ac_exeext conftest.$ac_ext
 6.12829 + if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 6.12830 + 
 6.12831 +@@ -8832,27 +9932,23 @@
 6.12832 + }
 6.12833 + _ACEOF
 6.12834 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.12835 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.12836 +-  (eval $ac_link) 2>conftest.er1
 6.12837 ++if { (ac_try="$ac_link"
 6.12838 ++case "(($ac_try" in
 6.12839 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.12840 ++  *) ac_try_echo=$ac_try;;
 6.12841 ++esac
 6.12842 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.12843 ++  (eval "$ac_link") 2>conftest.er1
 6.12844 +   ac_status=$?
 6.12845 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.12846 +   rm -f conftest.er1
 6.12847 +   cat conftest.err >&5
 6.12848 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12849 +-  (exit $ac_status); } &&
 6.12850 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.12851 +-			 || test ! -s conftest.err'
 6.12852 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.12853 +-  (eval $ac_try) 2>&5
 6.12854 +-  ac_status=$?
 6.12855 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12856 +-  (exit $ac_status); }; } &&
 6.12857 +-	 { ac_try='test -s conftest$ac_exeext'
 6.12858 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.12859 +-  (eval $ac_try) 2>&5
 6.12860 +-  ac_status=$?
 6.12861 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12862 +-  (exit $ac_status); }; }; then
 6.12863 ++  (exit $ac_status); } && {
 6.12864 ++	 test -z "$ac_c_werror_flag" ||
 6.12865 ++	 test ! -s conftest.err
 6.12866 ++       } && test -s conftest$ac_exeext &&
 6.12867 ++       $as_test_x conftest$ac_exeext; then
 6.12868 + 
 6.12869 + lt_aix_libpath_sed='
 6.12870 +     /Import File Strings/,/^$/ {
 6.12871 +@@ -8870,8 +9966,10 @@
 6.12872 +   echo "$as_me: failed program was:" >&5
 6.12873 + sed 's/^/| /' conftest.$ac_ext >&5
 6.12874 + 
 6.12875 ++
 6.12876 + fi
 6.12877 +-rm -f conftest.err conftest.$ac_objext \
 6.12878 ++
 6.12879 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.12880 +       conftest$ac_exeext conftest.$ac_ext
 6.12881 + if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 6.12882 + 
 6.12883 +@@ -9088,35 +10186,33 @@
 6.12884 + int foo(void) {}
 6.12885 + _ACEOF
 6.12886 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.12887 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.12888 +-  (eval $ac_link) 2>conftest.er1
 6.12889 ++if { (ac_try="$ac_link"
 6.12890 ++case "(($ac_try" in
 6.12891 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.12892 ++  *) ac_try_echo=$ac_try;;
 6.12893 ++esac
 6.12894 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.12895 ++  (eval "$ac_link") 2>conftest.er1
 6.12896 +   ac_status=$?
 6.12897 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.12898 +   rm -f conftest.er1
 6.12899 +   cat conftest.err >&5
 6.12900 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12901 +-  (exit $ac_status); } &&
 6.12902 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.12903 +-			 || test ! -s conftest.err'
 6.12904 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.12905 +-  (eval $ac_try) 2>&5
 6.12906 +-  ac_status=$?
 6.12907 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12908 +-  (exit $ac_status); }; } &&
 6.12909 +-	 { ac_try='test -s conftest$ac_exeext'
 6.12910 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.12911 +-  (eval $ac_try) 2>&5
 6.12912 +-  ac_status=$?
 6.12913 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12914 +-  (exit $ac_status); }; }; then
 6.12915 ++  (exit $ac_status); } && {
 6.12916 ++	 test -z "$ac_c_werror_flag" ||
 6.12917 ++	 test ! -s conftest.err
 6.12918 ++       } && test -s conftest$ac_exeext &&
 6.12919 ++       $as_test_x conftest$ac_exeext; then
 6.12920 +   archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
 6.12921 + 
 6.12922 + else
 6.12923 +   echo "$as_me: failed program was:" >&5
 6.12924 + sed 's/^/| /' conftest.$ac_ext >&5
 6.12925 + 
 6.12926 ++
 6.12927 + fi
 6.12928 +-rm -f conftest.err conftest.$ac_objext \
 6.12929 ++
 6.12930 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.12931 +       conftest$ac_exeext conftest.$ac_ext
 6.12932 +         LDFLAGS="$save_LDFLAGS"
 6.12933 +       else
 6.12934 +@@ -9373,8 +10469,8 @@
 6.12935 +     fi
 6.12936 +   fi
 6.12937 + 
 6.12938 +-echo "$as_me:$LINENO: result: $ld_shlibs" >&5
 6.12939 +-echo "${ECHO_T}$ld_shlibs" >&6
 6.12940 ++{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5
 6.12941 ++echo "${ECHO_T}$ld_shlibs" >&6; }
 6.12942 + test "$ld_shlibs" = no && can_build_shared=no
 6.12943 + 
 6.12944 + with_gnu_ld=$with_gnu_ld
 6.12945 +@@ -9410,46 +10506,52 @@
 6.12946 +       # Test whether the compiler implicitly links with -lc since on some
 6.12947 +       # systems, -lgcc has to come before -lc. If gcc already passes -lc
 6.12948 +       # to ld, don't add -lc before -lgcc.
 6.12949 +-      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
 6.12950 +-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
 6.12951 +-      $RM conftest*
 6.12952 +-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 6.12953 ++      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
 6.12954 ++echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
 6.12955 ++if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
 6.12956 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.12957 ++else
 6.12958 ++  $RM conftest*
 6.12959 ++	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 6.12960 + 
 6.12961 +-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.12962 ++	if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.12963 +   (eval $ac_compile) 2>&5
 6.12964 +   ac_status=$?
 6.12965 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12966 +   (exit $ac_status); } 2>conftest.err; then
 6.12967 +-        soname=conftest
 6.12968 +-        lib=conftest
 6.12969 +-        libobjs=conftest.$ac_objext
 6.12970 +-        deplibs=
 6.12971 +-        wl=$lt_prog_compiler_wl
 6.12972 +-	pic_flag=$lt_prog_compiler_pic
 6.12973 +-        compiler_flags=-v
 6.12974 +-        linker_flags=-v
 6.12975 +-        verstring=
 6.12976 +-        output_objdir=.
 6.12977 +-        libname=conftest
 6.12978 +-        lt_save_allow_undefined_flag=$allow_undefined_flag
 6.12979 +-        allow_undefined_flag=
 6.12980 +-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
 6.12981 ++	  soname=conftest
 6.12982 ++	  lib=conftest
 6.12983 ++	  libobjs=conftest.$ac_objext
 6.12984 ++	  deplibs=
 6.12985 ++	  wl=$lt_prog_compiler_wl
 6.12986 ++	  pic_flag=$lt_prog_compiler_pic
 6.12987 ++	  compiler_flags=-v
 6.12988 ++	  linker_flags=-v
 6.12989 ++	  verstring=
 6.12990 ++	  output_objdir=.
 6.12991 ++	  libname=conftest
 6.12992 ++	  lt_save_allow_undefined_flag=$allow_undefined_flag
 6.12993 ++	  allow_undefined_flag=
 6.12994 ++	  if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
 6.12995 +   (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
 6.12996 +   ac_status=$?
 6.12997 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.12998 +   (exit $ac_status); }
 6.12999 +-        then
 6.13000 +-	  archive_cmds_need_lc=no
 6.13001 +-        else
 6.13002 +-	  archive_cmds_need_lc=yes
 6.13003 +-        fi
 6.13004 +-        allow_undefined_flag=$lt_save_allow_undefined_flag
 6.13005 +-      else
 6.13006 +-        cat conftest.err 1>&5
 6.13007 +-      fi
 6.13008 +-      $RM conftest*
 6.13009 +-      echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
 6.13010 +-echo "${ECHO_T}$archive_cmds_need_lc" >&6
 6.13011 ++	  then
 6.13012 ++	    lt_cv_archive_cmds_need_lc=no
 6.13013 ++	  else
 6.13014 ++	    lt_cv_archive_cmds_need_lc=yes
 6.13015 ++	  fi
 6.13016 ++	  allow_undefined_flag=$lt_save_allow_undefined_flag
 6.13017 ++	else
 6.13018 ++	  cat conftest.err 1>&5
 6.13019 ++	fi
 6.13020 ++	$RM conftest*
 6.13021 ++
 6.13022 ++fi
 6.13023 ++{ echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
 6.13024 ++echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6; }
 6.13025 ++      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
 6.13026 +       ;;
 6.13027 +     esac
 6.13028 +   fi
 6.13029 +@@ -9612,8 +10714,8 @@
 6.13030 + 
 6.13031 + 
 6.13032 + 
 6.13033 +-  echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
 6.13034 +-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
 6.13035 ++  { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
 6.13036 ++echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
 6.13037 + 
 6.13038 + if test "$GCC" = yes; then
 6.13039 +   case $host_os in
 6.13040 +@@ -10029,12 +11131,17 @@
 6.13041 +   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
 6.13042 +   shlibpath_var=LD_LIBRARY_PATH
 6.13043 +   shlibpath_overrides_runpath=no
 6.13044 ++
 6.13045 +   # Some binutils ld are patched to set DT_RUNPATH
 6.13046 +-  save_LDFLAGS=$LDFLAGS
 6.13047 +-  save_libdir=$libdir
 6.13048 +-  eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
 6.13049 +-       LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
 6.13050 +-  cat >conftest.$ac_ext <<_ACEOF
 6.13051 ++  if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
 6.13052 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.13053 ++else
 6.13054 ++  lt_cv_shlibpath_overrides_runpath=no
 6.13055 ++    save_LDFLAGS=$LDFLAGS
 6.13056 ++    save_libdir=$libdir
 6.13057 ++    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
 6.13058 ++	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
 6.13059 ++    cat >conftest.$ac_ext <<_ACEOF
 6.13060 + /* confdefs.h.  */
 6.13061 + _ACEOF
 6.13062 + cat confdefs.h >>conftest.$ac_ext
 6.13063 +@@ -10050,40 +11157,42 @@
 6.13064 + }
 6.13065 + _ACEOF
 6.13066 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.13067 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.13068 +-  (eval $ac_link) 2>conftest.er1
 6.13069 +-  ac_status=$?
 6.13070 +-  grep -v '^ *+' conftest.er1 >conftest.err
 6.13071 +-  rm -f conftest.er1
 6.13072 +-  cat conftest.err >&5
 6.13073 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13074 +-  (exit $ac_status); } &&
 6.13075 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.13076 +-			 || test ! -s conftest.err'
 6.13077 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.13078 +-  (eval $ac_try) 2>&5
 6.13079 +-  ac_status=$?
 6.13080 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13081 +-  (exit $ac_status); }; } &&
 6.13082 +-	 { ac_try='test -s conftest$ac_exeext'
 6.13083 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.13084 +-  (eval $ac_try) 2>&5
 6.13085 ++if { (ac_try="$ac_link"
 6.13086 ++case "(($ac_try" in
 6.13087 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.13088 ++  *) ac_try_echo=$ac_try;;
 6.13089 ++esac
 6.13090 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.13091 ++  (eval "$ac_link") 2>conftest.er1
 6.13092 +   ac_status=$?
 6.13093 ++  grep -v '^ *+' conftest.er1 >conftest.err
 6.13094 ++  rm -f conftest.er1
 6.13095 ++  cat conftest.err >&5
 6.13096 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13097 +-  (exit $ac_status); }; }; then
 6.13098 ++  (exit $ac_status); } && {
 6.13099 ++	 test -z "$ac_c_werror_flag" ||
 6.13100 ++	 test ! -s conftest.err
 6.13101 ++       } && test -s conftest$ac_exeext &&
 6.13102 ++       $as_test_x conftest$ac_exeext; then
 6.13103 +   if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
 6.13104 +-  shlibpath_overrides_runpath=yes
 6.13105 ++  lt_cv_shlibpath_overrides_runpath=yes
 6.13106 + fi
 6.13107 + 
 6.13108 + else
 6.13109 +   echo "$as_me: failed program was:" >&5
 6.13110 + sed 's/^/| /' conftest.$ac_ext >&5
 6.13111 + 
 6.13112 ++
 6.13113 + fi
 6.13114 +-rm -f conftest.err conftest.$ac_objext \
 6.13115 ++
 6.13116 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.13117 +       conftest$ac_exeext conftest.$ac_ext
 6.13118 +-  LDFLAGS=$save_LDFLAGS
 6.13119 +-  libdir=$save_libdir
 6.13120 ++    LDFLAGS=$save_LDFLAGS
 6.13121 ++    libdir=$save_libdir
 6.13122 ++
 6.13123 ++fi
 6.13124 ++
 6.13125 ++  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
 6.13126 + 
 6.13127 +   # This implies no fast_install, which is unacceptable.
 6.13128 +   # Some rework will be needed to allow for fast_install
 6.13129 +@@ -10293,8 +11402,8 @@
 6.13130 +   dynamic_linker=no
 6.13131 +   ;;
 6.13132 + esac
 6.13133 +-echo "$as_me:$LINENO: result: $dynamic_linker" >&5
 6.13134 +-echo "${ECHO_T}$dynamic_linker" >&6
 6.13135 ++{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
 6.13136 ++echo "${ECHO_T}$dynamic_linker" >&6; }
 6.13137 + test "$dynamic_linker" = no && can_build_shared=no
 6.13138 + 
 6.13139 + variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
 6.13140 +@@ -10395,8 +11504,8 @@
 6.13141 + 
 6.13142 + 
 6.13143 + 
 6.13144 +-  echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
 6.13145 +-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
 6.13146 ++  { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
 6.13147 ++echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
 6.13148 + hardcode_action=
 6.13149 + if test -n "$hardcode_libdir_flag_spec" ||
 6.13150 +    test -n "$runpath_var" ||
 6.13151 +@@ -10420,8 +11529,8 @@
 6.13152 +   # directories.
 6.13153 +   hardcode_action=unsupported
 6.13154 + fi
 6.13155 +-echo "$as_me:$LINENO: result: $hardcode_action" >&5
 6.13156 +-echo "${ECHO_T}$hardcode_action" >&6
 6.13157 ++{ echo "$as_me:$LINENO: result: $hardcode_action" >&5
 6.13158 ++echo "${ECHO_T}$hardcode_action" >&6; }
 6.13159 + 
 6.13160 + if test "$hardcode_action" = relink ||
 6.13161 +    test "$inherit_rpath" = yes; then
 6.13162 +@@ -10465,8 +11574,8 @@
 6.13163 + 
 6.13164 +   darwin*)
 6.13165 +   # if libdl is installed we need to link against it
 6.13166 +-    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
 6.13167 +-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
 6.13168 ++    { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
 6.13169 ++echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
 6.13170 + if test "${ac_cv_lib_dl_dlopen+set}" = set; then
 6.13171 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.13172 + else
 6.13173 +@@ -10479,56 +11588,53 @@
 6.13174 + cat >>conftest.$ac_ext <<_ACEOF
 6.13175 + /* end confdefs.h.  */
 6.13176 + 
 6.13177 +-/* Override any gcc2 internal prototype to avoid an error.  */
 6.13178 ++/* Override any GCC internal prototype to avoid an error.
 6.13179 ++   Use char because int might match the return type of a GCC
 6.13180 ++   builtin and then its argument prototype would still apply.  */
 6.13181 + #ifdef __cplusplus
 6.13182 + extern "C"
 6.13183 + #endif
 6.13184 +-/* We use char because int might match the return type of a gcc2
 6.13185 +-   builtin and then its argument prototype would still apply.  */
 6.13186 + char dlopen ();
 6.13187 + int
 6.13188 + main ()
 6.13189 + {
 6.13190 +-dlopen ();
 6.13191 ++return dlopen ();
 6.13192 +   ;
 6.13193 +   return 0;
 6.13194 + }
 6.13195 + _ACEOF
 6.13196 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.13197 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.13198 +-  (eval $ac_link) 2>conftest.er1
 6.13199 ++if { (ac_try="$ac_link"
 6.13200 ++case "(($ac_try" in
 6.13201 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.13202 ++  *) ac_try_echo=$ac_try;;
 6.13203 ++esac
 6.13204 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.13205 ++  (eval "$ac_link") 2>conftest.er1
 6.13206 +   ac_status=$?
 6.13207 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.13208 +   rm -f conftest.er1
 6.13209 +   cat conftest.err >&5
 6.13210 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13211 +-  (exit $ac_status); } &&
 6.13212 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.13213 +-			 || test ! -s conftest.err'
 6.13214 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.13215 +-  (eval $ac_try) 2>&5
 6.13216 +-  ac_status=$?
 6.13217 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13218 +-  (exit $ac_status); }; } &&
 6.13219 +-	 { ac_try='test -s conftest$ac_exeext'
 6.13220 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.13221 +-  (eval $ac_try) 2>&5
 6.13222 +-  ac_status=$?
 6.13223 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13224 +-  (exit $ac_status); }; }; then
 6.13225 ++  (exit $ac_status); } && {
 6.13226 ++	 test -z "$ac_c_werror_flag" ||
 6.13227 ++	 test ! -s conftest.err
 6.13228 ++       } && test -s conftest$ac_exeext &&
 6.13229 ++       $as_test_x conftest$ac_exeext; then
 6.13230 +   ac_cv_lib_dl_dlopen=yes
 6.13231 + else
 6.13232 +   echo "$as_me: failed program was:" >&5
 6.13233 + sed 's/^/| /' conftest.$ac_ext >&5
 6.13234 + 
 6.13235 +-ac_cv_lib_dl_dlopen=no
 6.13236 ++	ac_cv_lib_dl_dlopen=no
 6.13237 + fi
 6.13238 +-rm -f conftest.err conftest.$ac_objext \
 6.13239 ++
 6.13240 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.13241 +       conftest$ac_exeext conftest.$ac_ext
 6.13242 + LIBS=$ac_check_lib_save_LIBS
 6.13243 + fi
 6.13244 +-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
 6.13245 +-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
 6.13246 ++{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
 6.13247 ++echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
 6.13248 + if test $ac_cv_lib_dl_dlopen = yes; then
 6.13249 +   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 6.13250 + else
 6.13251 +@@ -10542,8 +11648,8 @@
 6.13252 +     ;;
 6.13253 + 
 6.13254 +   *)
 6.13255 +-    echo "$as_me:$LINENO: checking for shl_load" >&5
 6.13256 +-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
 6.13257 ++    { echo "$as_me:$LINENO: checking for shl_load" >&5
 6.13258 ++echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
 6.13259 + if test "${ac_cv_func_shl_load+set}" = set; then
 6.13260 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.13261 + else
 6.13262 +@@ -10570,73 +11676,64 @@
 6.13263 + 
 6.13264 + #undef shl_load
 6.13265 + 
 6.13266 +-/* Override any gcc2 internal prototype to avoid an error.  */
 6.13267 ++/* Override any GCC internal prototype to avoid an error.
 6.13268 ++   Use char because int might match the return type of a GCC
 6.13269 ++   builtin and then its argument prototype would still apply.  */
 6.13270 + #ifdef __cplusplus
 6.13271 + extern "C"
 6.13272 +-{
 6.13273 + #endif
 6.13274 +-/* We use char because int might match the return type of a gcc2
 6.13275 +-   builtin and then its argument prototype would still apply.  */
 6.13276 + char shl_load ();
 6.13277 + /* The GNU C library defines this for functions which it implements
 6.13278 +     to always fail with ENOSYS.  Some functions are actually named
 6.13279 +     something starting with __ and the normal name is an alias.  */
 6.13280 +-#if defined (__stub_shl_load) || defined (__stub___shl_load)
 6.13281 ++#if defined __stub_shl_load || defined __stub___shl_load
 6.13282 + choke me
 6.13283 +-#else
 6.13284 +-char (*f) () = shl_load;
 6.13285 +-#endif
 6.13286 +-#ifdef __cplusplus
 6.13287 +-}
 6.13288 + #endif
 6.13289 + 
 6.13290 + int
 6.13291 + main ()
 6.13292 + {
 6.13293 +-return f != shl_load;
 6.13294 ++return shl_load ();
 6.13295 +   ;
 6.13296 +   return 0;
 6.13297 + }
 6.13298 + _ACEOF
 6.13299 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.13300 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.13301 +-  (eval $ac_link) 2>conftest.er1
 6.13302 ++if { (ac_try="$ac_link"
 6.13303 ++case "(($ac_try" in
 6.13304 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.13305 ++  *) ac_try_echo=$ac_try;;
 6.13306 ++esac
 6.13307 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.13308 ++  (eval "$ac_link") 2>conftest.er1
 6.13309 +   ac_status=$?
 6.13310 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.13311 +   rm -f conftest.er1
 6.13312 +   cat conftest.err >&5
 6.13313 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13314 +-  (exit $ac_status); } &&
 6.13315 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.13316 +-			 || test ! -s conftest.err'
 6.13317 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.13318 +-  (eval $ac_try) 2>&5
 6.13319 +-  ac_status=$?
 6.13320 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13321 +-  (exit $ac_status); }; } &&
 6.13322 +-	 { ac_try='test -s conftest$ac_exeext'
 6.13323 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.13324 +-  (eval $ac_try) 2>&5
 6.13325 +-  ac_status=$?
 6.13326 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13327 +-  (exit $ac_status); }; }; then
 6.13328 ++  (exit $ac_status); } && {
 6.13329 ++	 test -z "$ac_c_werror_flag" ||
 6.13330 ++	 test ! -s conftest.err
 6.13331 ++       } && test -s conftest$ac_exeext &&
 6.13332 ++       $as_test_x conftest$ac_exeext; then
 6.13333 +   ac_cv_func_shl_load=yes
 6.13334 + else
 6.13335 +   echo "$as_me: failed program was:" >&5
 6.13336 + sed 's/^/| /' conftest.$ac_ext >&5
 6.13337 + 
 6.13338 +-ac_cv_func_shl_load=no
 6.13339 ++	ac_cv_func_shl_load=no
 6.13340 + fi
 6.13341 +-rm -f conftest.err conftest.$ac_objext \
 6.13342 ++
 6.13343 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.13344 +       conftest$ac_exeext conftest.$ac_ext
 6.13345 + fi
 6.13346 +-echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
 6.13347 +-echo "${ECHO_T}$ac_cv_func_shl_load" >&6
 6.13348 ++{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
 6.13349 ++echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
 6.13350 + if test $ac_cv_func_shl_load = yes; then
 6.13351 +   lt_cv_dlopen="shl_load"
 6.13352 + else
 6.13353 +-  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
 6.13354 +-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
 6.13355 ++  { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
 6.13356 ++echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
 6.13357 + if test "${ac_cv_lib_dld_shl_load+set}" = set; then
 6.13358 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.13359 + else
 6.13360 +@@ -10649,61 +11746,58 @@
 6.13361 + cat >>conftest.$ac_ext <<_ACEOF
 6.13362 + /* end confdefs.h.  */
 6.13363 + 
 6.13364 +-/* Override any gcc2 internal prototype to avoid an error.  */
 6.13365 ++/* Override any GCC internal prototype to avoid an error.
 6.13366 ++   Use char because int might match the return type of a GCC
 6.13367 ++   builtin and then its argument prototype would still apply.  */
 6.13368 + #ifdef __cplusplus
 6.13369 + extern "C"
 6.13370 + #endif
 6.13371 +-/* We use char because int might match the return type of a gcc2
 6.13372 +-   builtin and then its argument prototype would still apply.  */
 6.13373 + char shl_load ();
 6.13374 + int
 6.13375 + main ()
 6.13376 + {
 6.13377 +-shl_load ();
 6.13378 ++return shl_load ();
 6.13379 +   ;
 6.13380 +   return 0;
 6.13381 + }
 6.13382 + _ACEOF
 6.13383 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.13384 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.13385 +-  (eval $ac_link) 2>conftest.er1
 6.13386 ++if { (ac_try="$ac_link"
 6.13387 ++case "(($ac_try" in
 6.13388 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.13389 ++  *) ac_try_echo=$ac_try;;
 6.13390 ++esac
 6.13391 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.13392 ++  (eval "$ac_link") 2>conftest.er1
 6.13393 +   ac_status=$?
 6.13394 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.13395 +   rm -f conftest.er1
 6.13396 +   cat conftest.err >&5
 6.13397 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13398 +-  (exit $ac_status); } &&
 6.13399 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.13400 +-			 || test ! -s conftest.err'
 6.13401 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.13402 +-  (eval $ac_try) 2>&5
 6.13403 +-  ac_status=$?
 6.13404 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13405 +-  (exit $ac_status); }; } &&
 6.13406 +-	 { ac_try='test -s conftest$ac_exeext'
 6.13407 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.13408 +-  (eval $ac_try) 2>&5
 6.13409 +-  ac_status=$?
 6.13410 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13411 +-  (exit $ac_status); }; }; then
 6.13412 ++  (exit $ac_status); } && {
 6.13413 ++	 test -z "$ac_c_werror_flag" ||
 6.13414 ++	 test ! -s conftest.err
 6.13415 ++       } && test -s conftest$ac_exeext &&
 6.13416 ++       $as_test_x conftest$ac_exeext; then
 6.13417 +   ac_cv_lib_dld_shl_load=yes
 6.13418 + else
 6.13419 +   echo "$as_me: failed program was:" >&5
 6.13420 + sed 's/^/| /' conftest.$ac_ext >&5
 6.13421 + 
 6.13422 +-ac_cv_lib_dld_shl_load=no
 6.13423 ++	ac_cv_lib_dld_shl_load=no
 6.13424 + fi
 6.13425 +-rm -f conftest.err conftest.$ac_objext \
 6.13426 ++
 6.13427 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.13428 +       conftest$ac_exeext conftest.$ac_ext
 6.13429 + LIBS=$ac_check_lib_save_LIBS
 6.13430 + fi
 6.13431 +-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
 6.13432 +-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
 6.13433 ++{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
 6.13434 ++echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
 6.13435 + if test $ac_cv_lib_dld_shl_load = yes; then
 6.13436 +   lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
 6.13437 + else
 6.13438 +-  echo "$as_me:$LINENO: checking for dlopen" >&5
 6.13439 +-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
 6.13440 ++  { echo "$as_me:$LINENO: checking for dlopen" >&5
 6.13441 ++echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
 6.13442 + if test "${ac_cv_func_dlopen+set}" = set; then
 6.13443 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.13444 + else
 6.13445 +@@ -10730,73 +11824,64 @@
 6.13446 + 
 6.13447 + #undef dlopen
 6.13448 + 
 6.13449 +-/* Override any gcc2 internal prototype to avoid an error.  */
 6.13450 ++/* Override any GCC internal prototype to avoid an error.
 6.13451 ++   Use char because int might match the return type of a GCC
 6.13452 ++   builtin and then its argument prototype would still apply.  */
 6.13453 + #ifdef __cplusplus
 6.13454 + extern "C"
 6.13455 +-{
 6.13456 + #endif
 6.13457 +-/* We use char because int might match the return type of a gcc2
 6.13458 +-   builtin and then its argument prototype would still apply.  */
 6.13459 + char dlopen ();
 6.13460 + /* The GNU C library defines this for functions which it implements
 6.13461 +     to always fail with ENOSYS.  Some functions are actually named
 6.13462 +     something starting with __ and the normal name is an alias.  */
 6.13463 +-#if defined (__stub_dlopen) || defined (__stub___dlopen)
 6.13464 ++#if defined __stub_dlopen || defined __stub___dlopen
 6.13465 + choke me
 6.13466 +-#else
 6.13467 +-char (*f) () = dlopen;
 6.13468 +-#endif
 6.13469 +-#ifdef __cplusplus
 6.13470 +-}
 6.13471 + #endif
 6.13472 + 
 6.13473 + int
 6.13474 + main ()
 6.13475 + {
 6.13476 +-return f != dlopen;
 6.13477 ++return dlopen ();
 6.13478 +   ;
 6.13479 +   return 0;
 6.13480 + }
 6.13481 + _ACEOF
 6.13482 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.13483 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.13484 +-  (eval $ac_link) 2>conftest.er1
 6.13485 ++if { (ac_try="$ac_link"
 6.13486 ++case "(($ac_try" in
 6.13487 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.13488 ++  *) ac_try_echo=$ac_try;;
 6.13489 ++esac
 6.13490 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.13491 ++  (eval "$ac_link") 2>conftest.er1
 6.13492 +   ac_status=$?
 6.13493 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.13494 +   rm -f conftest.er1
 6.13495 +   cat conftest.err >&5
 6.13496 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13497 +-  (exit $ac_status); } &&
 6.13498 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.13499 +-			 || test ! -s conftest.err'
 6.13500 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.13501 +-  (eval $ac_try) 2>&5
 6.13502 +-  ac_status=$?
 6.13503 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13504 +-  (exit $ac_status); }; } &&
 6.13505 +-	 { ac_try='test -s conftest$ac_exeext'
 6.13506 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.13507 +-  (eval $ac_try) 2>&5
 6.13508 +-  ac_status=$?
 6.13509 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13510 +-  (exit $ac_status); }; }; then
 6.13511 ++  (exit $ac_status); } && {
 6.13512 ++	 test -z "$ac_c_werror_flag" ||
 6.13513 ++	 test ! -s conftest.err
 6.13514 ++       } && test -s conftest$ac_exeext &&
 6.13515 ++       $as_test_x conftest$ac_exeext; then
 6.13516 +   ac_cv_func_dlopen=yes
 6.13517 + else
 6.13518 +   echo "$as_me: failed program was:" >&5
 6.13519 + sed 's/^/| /' conftest.$ac_ext >&5
 6.13520 + 
 6.13521 +-ac_cv_func_dlopen=no
 6.13522 ++	ac_cv_func_dlopen=no
 6.13523 + fi
 6.13524 +-rm -f conftest.err conftest.$ac_objext \
 6.13525 ++
 6.13526 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.13527 +       conftest$ac_exeext conftest.$ac_ext
 6.13528 + fi
 6.13529 +-echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
 6.13530 +-echo "${ECHO_T}$ac_cv_func_dlopen" >&6
 6.13531 ++{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
 6.13532 ++echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
 6.13533 + if test $ac_cv_func_dlopen = yes; then
 6.13534 +   lt_cv_dlopen="dlopen"
 6.13535 + else
 6.13536 +-  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
 6.13537 +-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
 6.13538 ++  { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
 6.13539 ++echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
 6.13540 + if test "${ac_cv_lib_dl_dlopen+set}" = set; then
 6.13541 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.13542 + else
 6.13543 +@@ -10809,61 +11894,58 @@
 6.13544 + cat >>conftest.$ac_ext <<_ACEOF
 6.13545 + /* end confdefs.h.  */
 6.13546 + 
 6.13547 +-/* Override any gcc2 internal prototype to avoid an error.  */
 6.13548 ++/* Override any GCC internal prototype to avoid an error.
 6.13549 ++   Use char because int might match the return type of a GCC
 6.13550 ++   builtin and then its argument prototype would still apply.  */
 6.13551 + #ifdef __cplusplus
 6.13552 + extern "C"
 6.13553 + #endif
 6.13554 +-/* We use char because int might match the return type of a gcc2
 6.13555 +-   builtin and then its argument prototype would still apply.  */
 6.13556 + char dlopen ();
 6.13557 + int
 6.13558 + main ()
 6.13559 + {
 6.13560 +-dlopen ();
 6.13561 ++return dlopen ();
 6.13562 +   ;
 6.13563 +   return 0;
 6.13564 + }
 6.13565 + _ACEOF
 6.13566 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.13567 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.13568 +-  (eval $ac_link) 2>conftest.er1
 6.13569 ++if { (ac_try="$ac_link"
 6.13570 ++case "(($ac_try" in
 6.13571 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.13572 ++  *) ac_try_echo=$ac_try;;
 6.13573 ++esac
 6.13574 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.13575 ++  (eval "$ac_link") 2>conftest.er1
 6.13576 +   ac_status=$?
 6.13577 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.13578 +   rm -f conftest.er1
 6.13579 +   cat conftest.err >&5
 6.13580 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13581 +-  (exit $ac_status); } &&
 6.13582 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.13583 +-			 || test ! -s conftest.err'
 6.13584 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.13585 +-  (eval $ac_try) 2>&5
 6.13586 +-  ac_status=$?
 6.13587 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13588 +-  (exit $ac_status); }; } &&
 6.13589 +-	 { ac_try='test -s conftest$ac_exeext'
 6.13590 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.13591 +-  (eval $ac_try) 2>&5
 6.13592 +-  ac_status=$?
 6.13593 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13594 +-  (exit $ac_status); }; }; then
 6.13595 ++  (exit $ac_status); } && {
 6.13596 ++	 test -z "$ac_c_werror_flag" ||
 6.13597 ++	 test ! -s conftest.err
 6.13598 ++       } && test -s conftest$ac_exeext &&
 6.13599 ++       $as_test_x conftest$ac_exeext; then
 6.13600 +   ac_cv_lib_dl_dlopen=yes
 6.13601 + else
 6.13602 +   echo "$as_me: failed program was:" >&5
 6.13603 + sed 's/^/| /' conftest.$ac_ext >&5
 6.13604 + 
 6.13605 +-ac_cv_lib_dl_dlopen=no
 6.13606 ++	ac_cv_lib_dl_dlopen=no
 6.13607 + fi
 6.13608 +-rm -f conftest.err conftest.$ac_objext \
 6.13609 ++
 6.13610 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.13611 +       conftest$ac_exeext conftest.$ac_ext
 6.13612 + LIBS=$ac_check_lib_save_LIBS
 6.13613 + fi
 6.13614 +-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
 6.13615 +-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
 6.13616 ++{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
 6.13617 ++echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
 6.13618 + if test $ac_cv_lib_dl_dlopen = yes; then
 6.13619 +   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 6.13620 + else
 6.13621 +-  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
 6.13622 +-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
 6.13623 ++  { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
 6.13624 ++echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
 6.13625 + if test "${ac_cv_lib_svld_dlopen+set}" = set; then
 6.13626 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.13627 + else
 6.13628 +@@ -10876,61 +11958,58 @@
 6.13629 + cat >>conftest.$ac_ext <<_ACEOF
 6.13630 + /* end confdefs.h.  */
 6.13631 + 
 6.13632 +-/* Override any gcc2 internal prototype to avoid an error.  */
 6.13633 ++/* Override any GCC internal prototype to avoid an error.
 6.13634 ++   Use char because int might match the return type of a GCC
 6.13635 ++   builtin and then its argument prototype would still apply.  */
 6.13636 + #ifdef __cplusplus
 6.13637 + extern "C"
 6.13638 + #endif
 6.13639 +-/* We use char because int might match the return type of a gcc2
 6.13640 +-   builtin and then its argument prototype would still apply.  */
 6.13641 + char dlopen ();
 6.13642 + int
 6.13643 + main ()
 6.13644 + {
 6.13645 +-dlopen ();
 6.13646 ++return dlopen ();
 6.13647 +   ;
 6.13648 +   return 0;
 6.13649 + }
 6.13650 + _ACEOF
 6.13651 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.13652 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.13653 +-  (eval $ac_link) 2>conftest.er1
 6.13654 ++if { (ac_try="$ac_link"
 6.13655 ++case "(($ac_try" in
 6.13656 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.13657 ++  *) ac_try_echo=$ac_try;;
 6.13658 ++esac
 6.13659 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.13660 ++  (eval "$ac_link") 2>conftest.er1
 6.13661 +   ac_status=$?
 6.13662 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.13663 +   rm -f conftest.er1
 6.13664 +   cat conftest.err >&5
 6.13665 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13666 +-  (exit $ac_status); } &&
 6.13667 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.13668 +-			 || test ! -s conftest.err'
 6.13669 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.13670 +-  (eval $ac_try) 2>&5
 6.13671 +-  ac_status=$?
 6.13672 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13673 +-  (exit $ac_status); }; } &&
 6.13674 +-	 { ac_try='test -s conftest$ac_exeext'
 6.13675 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.13676 +-  (eval $ac_try) 2>&5
 6.13677 +-  ac_status=$?
 6.13678 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13679 +-  (exit $ac_status); }; }; then
 6.13680 ++  (exit $ac_status); } && {
 6.13681 ++	 test -z "$ac_c_werror_flag" ||
 6.13682 ++	 test ! -s conftest.err
 6.13683 ++       } && test -s conftest$ac_exeext &&
 6.13684 ++       $as_test_x conftest$ac_exeext; then
 6.13685 +   ac_cv_lib_svld_dlopen=yes
 6.13686 + else
 6.13687 +   echo "$as_me: failed program was:" >&5
 6.13688 + sed 's/^/| /' conftest.$ac_ext >&5
 6.13689 + 
 6.13690 +-ac_cv_lib_svld_dlopen=no
 6.13691 ++	ac_cv_lib_svld_dlopen=no
 6.13692 + fi
 6.13693 +-rm -f conftest.err conftest.$ac_objext \
 6.13694 ++
 6.13695 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.13696 +       conftest$ac_exeext conftest.$ac_ext
 6.13697 + LIBS=$ac_check_lib_save_LIBS
 6.13698 + fi
 6.13699 +-echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
 6.13700 +-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
 6.13701 ++{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
 6.13702 ++echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
 6.13703 + if test $ac_cv_lib_svld_dlopen = yes; then
 6.13704 +   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
 6.13705 + else
 6.13706 +-  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
 6.13707 +-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
 6.13708 ++  { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
 6.13709 ++echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
 6.13710 + if test "${ac_cv_lib_dld_dld_link+set}" = set; then
 6.13711 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.13712 + else
 6.13713 +@@ -10943,56 +12022,53 @@
 6.13714 + cat >>conftest.$ac_ext <<_ACEOF
 6.13715 + /* end confdefs.h.  */
 6.13716 + 
 6.13717 +-/* Override any gcc2 internal prototype to avoid an error.  */
 6.13718 ++/* Override any GCC internal prototype to avoid an error.
 6.13719 ++   Use char because int might match the return type of a GCC
 6.13720 ++   builtin and then its argument prototype would still apply.  */
 6.13721 + #ifdef __cplusplus
 6.13722 + extern "C"
 6.13723 + #endif
 6.13724 +-/* We use char because int might match the return type of a gcc2
 6.13725 +-   builtin and then its argument prototype would still apply.  */
 6.13726 + char dld_link ();
 6.13727 + int
 6.13728 + main ()
 6.13729 + {
 6.13730 +-dld_link ();
 6.13731 ++return dld_link ();
 6.13732 +   ;
 6.13733 +   return 0;
 6.13734 + }
 6.13735 + _ACEOF
 6.13736 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.13737 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.13738 +-  (eval $ac_link) 2>conftest.er1
 6.13739 ++if { (ac_try="$ac_link"
 6.13740 ++case "(($ac_try" in
 6.13741 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.13742 ++  *) ac_try_echo=$ac_try;;
 6.13743 ++esac
 6.13744 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.13745 ++  (eval "$ac_link") 2>conftest.er1
 6.13746 +   ac_status=$?
 6.13747 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.13748 +   rm -f conftest.er1
 6.13749 +   cat conftest.err >&5
 6.13750 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13751 +-  (exit $ac_status); } &&
 6.13752 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.13753 +-			 || test ! -s conftest.err'
 6.13754 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.13755 +-  (eval $ac_try) 2>&5
 6.13756 +-  ac_status=$?
 6.13757 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13758 +-  (exit $ac_status); }; } &&
 6.13759 +-	 { ac_try='test -s conftest$ac_exeext'
 6.13760 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.13761 +-  (eval $ac_try) 2>&5
 6.13762 +-  ac_status=$?
 6.13763 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.13764 +-  (exit $ac_status); }; }; then
 6.13765 ++  (exit $ac_status); } && {
 6.13766 ++	 test -z "$ac_c_werror_flag" ||
 6.13767 ++	 test ! -s conftest.err
 6.13768 ++       } && test -s conftest$ac_exeext &&
 6.13769 ++       $as_test_x conftest$ac_exeext; then
 6.13770 +   ac_cv_lib_dld_dld_link=yes
 6.13771 + else
 6.13772 +   echo "$as_me: failed program was:" >&5
 6.13773 + sed 's/^/| /' conftest.$ac_ext >&5
 6.13774 + 
 6.13775 +-ac_cv_lib_dld_dld_link=no
 6.13776 ++	ac_cv_lib_dld_dld_link=no
 6.13777 + fi
 6.13778 +-rm -f conftest.err conftest.$ac_objext \
 6.13779 ++
 6.13780 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.13781 +       conftest$ac_exeext conftest.$ac_ext
 6.13782 + LIBS=$ac_check_lib_save_LIBS
 6.13783 + fi
 6.13784 +-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
 6.13785 +-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
 6.13786 ++{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
 6.13787 ++echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
 6.13788 + if test $ac_cv_lib_dld_dld_link = yes; then
 6.13789 +   lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
 6.13790 + fi
 6.13791 +@@ -11032,8 +12108,8 @@
 6.13792 +     save_LIBS="$LIBS"
 6.13793 +     LIBS="$lt_cv_dlopen_libs $LIBS"
 6.13794 + 
 6.13795 +-    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
 6.13796 +-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
 6.13797 ++    { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
 6.13798 ++echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; }
 6.13799 + if test "${lt_cv_dlopen_self+set}" = set; then
 6.13800 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.13801 + else
 6.13802 +@@ -11043,7 +12119,7 @@
 6.13803 +   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
 6.13804 +   lt_status=$lt_dlunknown
 6.13805 +   cat > conftest.$ac_ext <<_LT_EOF
 6.13806 +-#line 11046 "configure"
 6.13807 ++#line 12122 "configure"
 6.13808 + #include "confdefs.h"
 6.13809 + 
 6.13810 + #if HAVE_DLFCN_H
 6.13811 +@@ -11123,13 +12199,13 @@
 6.13812 + 
 6.13813 + 
 6.13814 + fi
 6.13815 +-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
 6.13816 +-echo "${ECHO_T}$lt_cv_dlopen_self" >&6
 6.13817 ++{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
 6.13818 ++echo "${ECHO_T}$lt_cv_dlopen_self" >&6; }
 6.13819 + 
 6.13820 +     if test "x$lt_cv_dlopen_self" = xyes; then
 6.13821 +       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
 6.13822 +-      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
 6.13823 +-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
 6.13824 ++      { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
 6.13825 ++echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
 6.13826 + if test "${lt_cv_dlopen_self_static+set}" = set; then
 6.13827 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.13828 + else
 6.13829 +@@ -11139,7 +12215,7 @@
 6.13830 +   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
 6.13831 +   lt_status=$lt_dlunknown
 6.13832 +   cat > conftest.$ac_ext <<_LT_EOF
 6.13833 +-#line 11142 "configure"
 6.13834 ++#line 12218 "configure"
 6.13835 + #include "confdefs.h"
 6.13836 + 
 6.13837 + #if HAVE_DLFCN_H
 6.13838 +@@ -11219,8 +12295,8 @@
 6.13839 + 
 6.13840 + 
 6.13841 + fi
 6.13842 +-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
 6.13843 +-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
 6.13844 ++{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
 6.13845 ++echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; }
 6.13846 +     fi
 6.13847 + 
 6.13848 +     CPPFLAGS="$save_CPPFLAGS"
 6.13849 +@@ -11258,13 +12334,13 @@
 6.13850 + 
 6.13851 + striplib=
 6.13852 + old_striplib=
 6.13853 +-echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
 6.13854 +-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
 6.13855 ++{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
 6.13856 ++echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; }
 6.13857 + if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
 6.13858 +   test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
 6.13859 +   test -z "$striplib" && striplib="$STRIP --strip-unneeded"
 6.13860 +-  echo "$as_me:$LINENO: result: yes" >&5
 6.13861 +-echo "${ECHO_T}yes" >&6
 6.13862 ++  { echo "$as_me:$LINENO: result: yes" >&5
 6.13863 ++echo "${ECHO_T}yes" >&6; }
 6.13864 + else
 6.13865 + # FIXME - insert some real tests, host_os isn't really good enough
 6.13866 +   case $host_os in
 6.13867 +@@ -11272,16 +12348,16 @@
 6.13868 +     if test -n "$STRIP" ; then
 6.13869 +       striplib="$STRIP -x"
 6.13870 +       old_striplib="$STRIP -S"
 6.13871 +-      echo "$as_me:$LINENO: result: yes" >&5
 6.13872 +-echo "${ECHO_T}yes" >&6
 6.13873 ++      { echo "$as_me:$LINENO: result: yes" >&5
 6.13874 ++echo "${ECHO_T}yes" >&6; }
 6.13875 +     else
 6.13876 +-      echo "$as_me:$LINENO: result: no" >&5
 6.13877 +-echo "${ECHO_T}no" >&6
 6.13878 ++      { echo "$as_me:$LINENO: result: no" >&5
 6.13879 ++echo "${ECHO_T}no" >&6; }
 6.13880 +     fi
 6.13881 +     ;;
 6.13882 +   *)
 6.13883 +-    echo "$as_me:$LINENO: result: no" >&5
 6.13884 +-echo "${ECHO_T}no" >&6
 6.13885 ++    { echo "$as_me:$LINENO: result: no" >&5
 6.13886 ++echo "${ECHO_T}no" >&6; }
 6.13887 +     ;;
 6.13888 +   esac
 6.13889 + fi
 6.13890 +@@ -11298,13 +12374,13 @@
 6.13891 + 
 6.13892 + 
 6.13893 +   # Report which library types will actually be built
 6.13894 +-  echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
 6.13895 +-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
 6.13896 +-  echo "$as_me:$LINENO: result: $can_build_shared" >&5
 6.13897 +-echo "${ECHO_T}$can_build_shared" >&6
 6.13898 ++  { echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
 6.13899 ++echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
 6.13900 ++  { echo "$as_me:$LINENO: result: $can_build_shared" >&5
 6.13901 ++echo "${ECHO_T}$can_build_shared" >&6; }
 6.13902 + 
 6.13903 +-  echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
 6.13904 +-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
 6.13905 ++  { echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
 6.13906 ++echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; }
 6.13907 +   test "$can_build_shared" = "no" && enable_shared=no
 6.13908 + 
 6.13909 +   # On AIX, shared libraries and static libraries use the same namespace, and
 6.13910 +@@ -11324,15 +12400,15 @@
 6.13911 +     fi
 6.13912 +     ;;
 6.13913 +   esac
 6.13914 +-  echo "$as_me:$LINENO: result: $enable_shared" >&5
 6.13915 +-echo "${ECHO_T}$enable_shared" >&6
 6.13916 ++  { echo "$as_me:$LINENO: result: $enable_shared" >&5
 6.13917 ++echo "${ECHO_T}$enable_shared" >&6; }
 6.13918 + 
 6.13919 +-  echo "$as_me:$LINENO: checking whether to build static libraries" >&5
 6.13920 +-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
 6.13921 ++  { echo "$as_me:$LINENO: checking whether to build static libraries" >&5
 6.13922 ++echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
 6.13923 +   # Make sure either enable_shared or enable_static is yes.
 6.13924 +   test "$enable_shared" = yes || enable_static=yes
 6.13925 +-  echo "$as_me:$LINENO: result: $enable_static" >&5
 6.13926 +-echo "${ECHO_T}$enable_static" >&6
 6.13927 ++  { echo "$as_me:$LINENO: result: $enable_static" >&5
 6.13928 ++echo "${ECHO_T}$enable_static" >&6; }
 6.13929 + 
 6.13930 + 
 6.13931 + 
 6.13932 +@@ -11358,7 +12434,7 @@
 6.13933 + 
 6.13934 + 
 6.13935 + 
 6.13936 +-                  ac_config_commands="$ac_config_commands libtool"
 6.13937 ++        ac_config_commands="$ac_config_commands libtool"
 6.13938 + 
 6.13939 + 
 6.13940 + 
 6.13941 +@@ -11370,161 +12446,85 @@
 6.13942 + 
 6.13943 + if test -n "${machine_dir}"; then
 6.13944 +   case ${machine_dir} in
 6.13945 +-	a29k)
 6.13946 +-
 6.13947 +-subdirs="$subdirs a29k"
 6.13948 ++	a29k) subdirs="$subdirs a29k"
 6.13949 +  ;;
 6.13950 +-	arm)
 6.13951 +-
 6.13952 +-subdirs="$subdirs arm"
 6.13953 ++	arm) subdirs="$subdirs arm"
 6.13954 +  ;;
 6.13955 +-	bfin)
 6.13956 +-
 6.13957 +-subdirs="$subdirs bfin"
 6.13958 ++	avr32) subdirs="$subdirs avr32"
 6.13959 +  ;;
 6.13960 +-	cris)
 6.13961 +-
 6.13962 +-subdirs="$subdirs cris"
 6.13963 ++	bfin) subdirs="$subdirs bfin"
 6.13964 +  ;;
 6.13965 +-	crx)
 6.13966 +-
 6.13967 +-subdirs="$subdirs crx"
 6.13968 ++	cris) subdirs="$subdirs cris"
 6.13969 +  ;;
 6.13970 +-	d10v)
 6.13971 +-
 6.13972 +-subdirs="$subdirs d10v"
 6.13973 ++	crx) subdirs="$subdirs crx"
 6.13974 +  ;;
 6.13975 +-	d30v)
 6.13976 +-
 6.13977 +-subdirs="$subdirs d30v"
 6.13978 ++	d10v) subdirs="$subdirs d10v"
 6.13979 +  ;;
 6.13980 +-	fr30)
 6.13981 +-
 6.13982 +-subdirs="$subdirs fr30"
 6.13983 ++	d30v) subdirs="$subdirs d30v"
 6.13984 +  ;;
 6.13985 +-	frv)
 6.13986 +-
 6.13987 +-subdirs="$subdirs frv"
 6.13988 ++	fr30) subdirs="$subdirs fr30"
 6.13989 +  ;;
 6.13990 +-	h8300)
 6.13991 +-
 6.13992 +-subdirs="$subdirs h8300"
 6.13993 ++	frv) subdirs="$subdirs frv"
 6.13994 +  ;;
 6.13995 +-	h8500)
 6.13996 +-
 6.13997 +-subdirs="$subdirs h8500"
 6.13998 ++	h8300) subdirs="$subdirs h8300"
 6.13999 +  ;;
 6.14000 +-	hppa)
 6.14001 +-
 6.14002 +-subdirs="$subdirs hppa"
 6.14003 ++	h8500) subdirs="$subdirs h8500"
 6.14004 +  ;;
 6.14005 +-	i386)
 6.14006 +-
 6.14007 +-subdirs="$subdirs i386"
 6.14008 ++	hppa) subdirs="$subdirs hppa"
 6.14009 +  ;;
 6.14010 +-	i960)
 6.14011 +-
 6.14012 +-subdirs="$subdirs i960"
 6.14013 ++	i386) subdirs="$subdirs i386"
 6.14014 +  ;;
 6.14015 +-	iq2000)
 6.14016 +-
 6.14017 +-subdirs="$subdirs iq2000"
 6.14018 ++	i960) subdirs="$subdirs i960"
 6.14019 +  ;;
 6.14020 +-	lm32)
 6.14021 +-
 6.14022 +-subdirs="$subdirs lm32"
 6.14023 ++	iq2000) subdirs="$subdirs iq2000"
 6.14024 +  ;;
 6.14025 +-	m32c)
 6.14026 +-
 6.14027 +-subdirs="$subdirs m32c"
 6.14028 ++	lm32) subdirs="$subdirs lm32"
 6.14029 +  ;;
 6.14030 +-	m32r)
 6.14031 +-
 6.14032 +-subdirs="$subdirs m32r"
 6.14033 ++	m32c) subdirs="$subdirs m32c"
 6.14034 +  ;;
 6.14035 +-	m68hc11)
 6.14036 +-
 6.14037 +-subdirs="$subdirs m68hc11"
 6.14038 ++	m32r) subdirs="$subdirs m32r"
 6.14039 +  ;;
 6.14040 +-	m68k)
 6.14041 +-
 6.14042 +-subdirs="$subdirs m68k"
 6.14043 ++	m68hc11) subdirs="$subdirs m68hc11"
 6.14044 +  ;;
 6.14045 +-	m88k)
 6.14046 +-
 6.14047 +-subdirs="$subdirs m88k"
 6.14048 ++	m68k) subdirs="$subdirs m68k"
 6.14049 +  ;;
 6.14050 +-	mep )
 6.14051 +-
 6.14052 +-subdirs="$subdirs mep"
 6.14053 ++	m88k) subdirs="$subdirs m88k"
 6.14054 +  ;;
 6.14055 +-	mips)
 6.14056 +-
 6.14057 +-subdirs="$subdirs mips"
 6.14058 ++	mep ) subdirs="$subdirs mep"
 6.14059 +  ;;
 6.14060 +-	mn10200)
 6.14061 +-
 6.14062 +-subdirs="$subdirs mn10200"
 6.14063 ++	mips) subdirs="$subdirs mips"
 6.14064 +  ;;
 6.14065 +-	mn10300)
 6.14066 +-
 6.14067 +-subdirs="$subdirs mn10300"
 6.14068 ++	mn10200) subdirs="$subdirs mn10200"
 6.14069 +  ;;
 6.14070 +-	mt)
 6.14071 +-
 6.14072 +-subdirs="$subdirs mt"
 6.14073 ++	mn10300) subdirs="$subdirs mn10300"
 6.14074 +  ;;
 6.14075 +-	necv70)
 6.14076 +-
 6.14077 +-subdirs="$subdirs necv70"
 6.14078 ++	mt) subdirs="$subdirs mt"
 6.14079 +  ;;
 6.14080 +-	powerpc)
 6.14081 +-
 6.14082 +-subdirs="$subdirs powerpc"
 6.14083 ++	necv70) subdirs="$subdirs necv70"
 6.14084 +  ;;
 6.14085 +-	sh)
 6.14086 +-
 6.14087 +-subdirs="$subdirs sh"
 6.14088 ++	powerpc) subdirs="$subdirs powerpc"
 6.14089 +  ;;
 6.14090 +-	sparc)
 6.14091 +-
 6.14092 +-subdirs="$subdirs sparc"
 6.14093 ++	sh) subdirs="$subdirs sh"
 6.14094 +  ;;
 6.14095 +-	spu)
 6.14096 +-
 6.14097 +-subdirs="$subdirs spu"
 6.14098 ++	sparc) subdirs="$subdirs sparc"
 6.14099 +  ;;
 6.14100 +-	tic4x)
 6.14101 +-
 6.14102 +-subdirs="$subdirs tic4x"
 6.14103 ++	spu) subdirs="$subdirs spu"
 6.14104 +  ;;
 6.14105 +-	tic80)
 6.14106 +-
 6.14107 +-subdirs="$subdirs tic80"
 6.14108 ++	tic4x) subdirs="$subdirs tic4x"
 6.14109 +  ;;
 6.14110 +-	v850)
 6.14111 +-
 6.14112 +-subdirs="$subdirs v850"
 6.14113 ++	tic80) subdirs="$subdirs tic80"
 6.14114 +  ;;
 6.14115 +-	w65)
 6.14116 +-
 6.14117 +-subdirs="$subdirs w65"
 6.14118 ++	v850) subdirs="$subdirs v850"
 6.14119 +  ;;
 6.14120 +-	x86_64)
 6.14121 +-
 6.14122 +-subdirs="$subdirs x86_64"
 6.14123 ++	w65) subdirs="$subdirs w65"
 6.14124 +  ;;
 6.14125 +-	xscale)
 6.14126 +-
 6.14127 +-subdirs="$subdirs xscale"
 6.14128 ++	x86_64) subdirs="$subdirs x86_64"
 6.14129 +  ;;
 6.14130 +-	xstormy16)
 6.14131 +-
 6.14132 +-subdirs="$subdirs xstormy16"
 6.14133 ++	xscale) subdirs="$subdirs xscale"
 6.14134 +  ;;
 6.14135 +-	z8k)
 6.14136 +-
 6.14137 +-subdirs="$subdirs z8k"
 6.14138 ++	xstormy16) subdirs="$subdirs xstormy16"
 6.14139 ++ ;;
 6.14140 ++	z8k) subdirs="$subdirs z8k"
 6.14141 +  ;;
 6.14142 +   esac;
 6.14143 + fi
 6.14144 +@@ -11540,7 +12540,7 @@
 6.14145 + fi
 6.14146 + 
 6.14147 + 
 6.14148 +-          ac_config_files="$ac_config_files Makefile"
 6.14149 ++ac_config_files="$ac_config_files Makefile"
 6.14150 + 
 6.14151 + cat >confcache <<\_ACEOF
 6.14152 + # This file is a shell script that caches the results of configure
 6.14153 +@@ -11560,39 +12560,58 @@
 6.14154 + 
 6.14155 + # The following way of writing the cache mishandles newlines in values,
 6.14156 + # but we know of no workaround that is simple, portable, and efficient.
 6.14157 +-# So, don't put newlines in cache variables' values.
 6.14158 ++# So, we kill variables containing newlines.
 6.14159 + # Ultrix sh set writes to stderr and can't be redirected directly,
 6.14160 + # and sets the high bit in the cache file unless we assign to the vars.
 6.14161 +-{
 6.14162 ++(
 6.14163 ++  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
 6.14164 ++    eval ac_val=\$$ac_var
 6.14165 ++    case $ac_val in #(
 6.14166 ++    *${as_nl}*)
 6.14167 ++      case $ac_var in #(
 6.14168 ++      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
 6.14169 ++echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
 6.14170 ++      esac
 6.14171 ++      case $ac_var in #(
 6.14172 ++      _ | IFS | as_nl) ;; #(
 6.14173 ++      *) $as_unset $ac_var ;;
 6.14174 ++      esac ;;
 6.14175 ++    esac
 6.14176 ++  done
 6.14177 ++
 6.14178 +   (set) 2>&1 |
 6.14179 +-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
 6.14180 +-    *ac_space=\ *)
 6.14181 ++    case $as_nl`(ac_space=' '; set) 2>&1` in #(
 6.14182 ++    *${as_nl}ac_space=\ *)
 6.14183 +       # `set' does not quote correctly, so add quotes (double-quote
 6.14184 +       # substitution turns \\\\ into \\, and sed turns \\ into \).
 6.14185 +       sed -n \
 6.14186 + 	"s/'/'\\\\''/g;
 6.14187 + 	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
 6.14188 +-      ;;
 6.14189 ++      ;; #(
 6.14190 +     *)
 6.14191 +       # `set' quotes correctly as required by POSIX, so do not add quotes.
 6.14192 +-      sed -n \
 6.14193 +-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
 6.14194 ++      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
 6.14195 +       ;;
 6.14196 +-    esac;
 6.14197 +-} |
 6.14198 ++    esac |
 6.14199 ++    sort
 6.14200 ++) |
 6.14201 +   sed '
 6.14202 ++     /^ac_cv_env_/b end
 6.14203 +      t clear
 6.14204 +-     : clear
 6.14205 ++     :clear
 6.14206 +      s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
 6.14207 +      t end
 6.14208 +-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
 6.14209 +-     : end' >>confcache
 6.14210 +-if diff $cache_file confcache >/dev/null 2>&1; then :; else
 6.14211 +-  if test -w $cache_file; then
 6.14212 +-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
 6.14213 ++     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
 6.14214 ++     :end' >>confcache
 6.14215 ++if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
 6.14216 ++  if test -w "$cache_file"; then
 6.14217 ++    test "x$cache_file" != "x/dev/null" &&
 6.14218 ++      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
 6.14219 ++echo "$as_me: updating cache $cache_file" >&6;}
 6.14220 +     cat confcache >$cache_file
 6.14221 +   else
 6.14222 +-    echo "not updating unwritable cache $cache_file"
 6.14223 ++    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
 6.14224 ++echo "$as_me: not updating unwritable cache $cache_file" >&6;}
 6.14225 +   fi
 6.14226 + fi
 6.14227 + rm -f confcache
 6.14228 +@@ -11601,63 +12620,48 @@
 6.14229 + # Let make expand exec_prefix.
 6.14230 + test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
 6.14231 + 
 6.14232 +-# VPATH may cause trouble with some makes, so we remove $(srcdir),
 6.14233 +-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
 6.14234 +-# trailing colons and then remove the whole line if VPATH becomes empty
 6.14235 +-# (actually we leave an empty line to preserve line numbers).
 6.14236 +-if test "x$srcdir" = x.; then
 6.14237 +-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
 6.14238 +-s/:*\$(srcdir):*/:/;
 6.14239 +-s/:*\${srcdir}:*/:/;
 6.14240 +-s/:*@srcdir@:*/:/;
 6.14241 +-s/^\([^=]*=[	 ]*\):*/\1/;
 6.14242 +-s/:*$//;
 6.14243 +-s/^[^=]*=[	 ]*$//;
 6.14244 +-}'
 6.14245 +-fi
 6.14246 +-
 6.14247 + # Transform confdefs.h into DEFS.
 6.14248 + # Protect against shell expansion while executing Makefile rules.
 6.14249 + # Protect against Makefile macro expansion.
 6.14250 + #
 6.14251 + # If the first sed substitution is executed (which looks for macros that
 6.14252 +-# take arguments), then we branch to the quote section.  Otherwise,
 6.14253 ++# take arguments), then branch to the quote section.  Otherwise,
 6.14254 + # look for a macro that doesn't take arguments.
 6.14255 +-cat >confdef2opt.sed <<\_ACEOF
 6.14256 ++ac_script='
 6.14257 + t clear
 6.14258 +-: clear
 6.14259 +-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\),-D\1=\2,g
 6.14260 ++:clear
 6.14261 ++s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\)/-D\1=\2/g
 6.14262 + t quote
 6.14263 +-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\),-D\1=\2,g
 6.14264 ++s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)/-D\1=\2/g
 6.14265 + t quote
 6.14266 +-d
 6.14267 +-: quote
 6.14268 +-s,[	 `~#$^&*(){}\\|;'"<>?],\\&,g
 6.14269 +-s,\[,\\&,g
 6.14270 +-s,\],\\&,g
 6.14271 +-s,\$,$$,g
 6.14272 +-p
 6.14273 +-_ACEOF
 6.14274 +-# We use echo to avoid assuming a particular line-breaking character.
 6.14275 +-# The extra dot is to prevent the shell from consuming trailing
 6.14276 +-# line-breaks from the sub-command output.  A line-break within
 6.14277 +-# single-quotes doesn't work because, if this script is created in a
 6.14278 +-# platform that uses two characters for line-breaks (e.g., DOS), tr
 6.14279 +-# would break.
 6.14280 +-ac_LF_and_DOT=`echo; echo .`
 6.14281 +-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
 6.14282 +-rm -f confdef2opt.sed
 6.14283 ++b any
 6.14284 ++:quote
 6.14285 ++s/[	 `~#$^&*(){}\\|;'\''"<>?]/\\&/g
 6.14286 ++s/\[/\\&/g
 6.14287 ++s/\]/\\&/g
 6.14288 ++s/\$/$$/g
 6.14289 ++H
 6.14290 ++:any
 6.14291 ++${
 6.14292 ++	g
 6.14293 ++	s/^\n//
 6.14294 ++	s/\n/ /g
 6.14295 ++	p
 6.14296 ++}
 6.14297 ++'
 6.14298 ++DEFS=`sed -n "$ac_script" confdefs.h`
 6.14299 + 
 6.14300 + 
 6.14301 + ac_libobjs=
 6.14302 + ac_ltlibobjs=
 6.14303 + for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
 6.14304 +   # 1. Remove the extension, and $U if already installed.
 6.14305 +-  ac_i=`echo "$ac_i" |
 6.14306 +-	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
 6.14307 +-  # 2. Add them.
 6.14308 +-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
 6.14309 +-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
 6.14310 ++  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
 6.14311 ++  ac_i=`echo "$ac_i" | sed "$ac_script"`
 6.14312 ++  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
 6.14313 ++  #    will be set to the directory where LIBOBJS objects are built.
 6.14314 ++  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
 6.14315 ++  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
 6.14316 + done
 6.14317 + LIBOBJS=$ac_libobjs
 6.14318 + 
 6.14319 +@@ -11772,17 +12776,45 @@
 6.14320 + ## M4sh Initialization.  ##
 6.14321 + ## --------------------- ##
 6.14322 + 
 6.14323 +-# Be Bourne compatible
 6.14324 ++# Be more Bourne compatible
 6.14325 ++DUALCASE=1; export DUALCASE # for MKS sh
 6.14326 + if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
 6.14327 +   emulate sh
 6.14328 +   NULLCMD=:
 6.14329 +   # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
 6.14330 +   # is contrary to our usage.  Disable this feature.
 6.14331 +   alias -g '${1+"$@"}'='"$@"'
 6.14332 +-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
 6.14333 +-  set -o posix
 6.14334 ++  setopt NO_GLOB_SUBST
 6.14335 ++else
 6.14336 ++  case `(set -o) 2>/dev/null` in
 6.14337 ++  *posix*) set -o posix ;;
 6.14338 ++esac
 6.14339 ++
 6.14340 ++fi
 6.14341 ++
 6.14342 ++
 6.14343 ++
 6.14344 ++
 6.14345 ++# PATH needs CR
 6.14346 ++# Avoid depending upon Character Ranges.
 6.14347 ++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
 6.14348 ++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
 6.14349 ++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 6.14350 ++as_cr_digits='0123456789'
 6.14351 ++as_cr_alnum=$as_cr_Letters$as_cr_digits
 6.14352 ++
 6.14353 ++# The user is always right.
 6.14354 ++if test "${PATH_SEPARATOR+set}" != set; then
 6.14355 ++  echo "#! /bin/sh" >conf$$.sh
 6.14356 ++  echo  "exit 0"   >>conf$$.sh
 6.14357 ++  chmod +x conf$$.sh
 6.14358 ++  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
 6.14359 ++    PATH_SEPARATOR=';'
 6.14360 ++  else
 6.14361 ++    PATH_SEPARATOR=:
 6.14362 ++  fi
 6.14363 ++  rm -f conf$$.sh
 6.14364 + fi
 6.14365 +-DUALCASE=1; export DUALCASE # for MKS sh
 6.14366 + 
 6.14367 + # Support unset when possible.
 6.14368 + if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
 6.14369 +@@ -11792,8 +12824,43 @@
 6.14370 + fi
 6.14371 + 
 6.14372 + 
 6.14373 ++# IFS
 6.14374 ++# We need space, tab and new line, in precisely that order.  Quoting is
 6.14375 ++# there to prevent editors from complaining about space-tab.
 6.14376 ++# (If _AS_PATH_WALK were called with IFS unset, it would disable word
 6.14377 ++# splitting by setting IFS to empty value.)
 6.14378 ++as_nl='
 6.14379 ++'
 6.14380 ++IFS=" ""	$as_nl"
 6.14381 ++
 6.14382 ++# Find who we are.  Look in the path if we contain no directory separator.
 6.14383 ++case $0 in
 6.14384 ++  *[\\/]* ) as_myself=$0 ;;
 6.14385 ++  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.14386 ++for as_dir in $PATH
 6.14387 ++do
 6.14388 ++  IFS=$as_save_IFS
 6.14389 ++  test -z "$as_dir" && as_dir=.
 6.14390 ++  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
 6.14391 ++done
 6.14392 ++IFS=$as_save_IFS
 6.14393 ++
 6.14394 ++     ;;
 6.14395 ++esac
 6.14396 ++# We did not find ourselves, most probably we were run as `sh COMMAND'
 6.14397 ++# in which case we are not to be found in the path.
 6.14398 ++if test "x$as_myself" = x; then
 6.14399 ++  as_myself=$0
 6.14400 ++fi
 6.14401 ++if test ! -f "$as_myself"; then
 6.14402 ++  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
 6.14403 ++  { (exit 1); exit 1; }
 6.14404 ++fi
 6.14405 ++
 6.14406 + # Work around bugs in pre-3.0 UWIN ksh.
 6.14407 +-$as_unset ENV MAIL MAILPATH
 6.14408 ++for as_var in ENV MAIL MAILPATH
 6.14409 ++do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
 6.14410 ++done
 6.14411 + PS1='$ '
 6.14412 + PS2='> '
 6.14413 + PS4='+ '
 6.14414 +@@ -11807,18 +12874,19 @@
 6.14415 +   if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
 6.14416 +     eval $as_var=C; export $as_var
 6.14417 +   else
 6.14418 +-    $as_unset $as_var
 6.14419 ++    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
 6.14420 +   fi
 6.14421 + done
 6.14422 + 
 6.14423 + # Required to use basename.
 6.14424 +-if expr a : '\(a\)' >/dev/null 2>&1; then
 6.14425 ++if expr a : '\(a\)' >/dev/null 2>&1 &&
 6.14426 ++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
 6.14427 +   as_expr=expr
 6.14428 + else
 6.14429 +   as_expr=false
 6.14430 + fi
 6.14431 + 
 6.14432 +-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
 6.14433 ++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
 6.14434 +   as_basename=basename
 6.14435 + else
 6.14436 +   as_basename=false
 6.14437 +@@ -11826,159 +12894,120 @@
 6.14438 + 
 6.14439 + 
 6.14440 + # Name of the executable.
 6.14441 +-as_me=`$as_basename "$0" ||
 6.14442 ++as_me=`$as_basename -- "$0" ||
 6.14443 + $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 6.14444 + 	 X"$0" : 'X\(//\)$' \| \
 6.14445 +-	 X"$0" : 'X\(/\)$' \| \
 6.14446 +-	 .     : '\(.\)' 2>/dev/null ||
 6.14447 ++	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
 6.14448 + echo X/"$0" |
 6.14449 +-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
 6.14450 +-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
 6.14451 +-  	  /^X\/\(\/\).*/{ s//\1/; q; }
 6.14452 +-  	  s/.*/./; q'`
 6.14453 +-
 6.14454 +-
 6.14455 +-# PATH needs CR, and LINENO needs CR and PATH.
 6.14456 +-# Avoid depending upon Character Ranges.
 6.14457 +-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
 6.14458 +-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
 6.14459 +-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 6.14460 +-as_cr_digits='0123456789'
 6.14461 +-as_cr_alnum=$as_cr_Letters$as_cr_digits
 6.14462 +-
 6.14463 +-# The user is always right.
 6.14464 +-if test "${PATH_SEPARATOR+set}" != set; then
 6.14465 +-  echo "#! /bin/sh" >conf$$.sh
 6.14466 +-  echo  "exit 0"   >>conf$$.sh
 6.14467 +-  chmod +x conf$$.sh
 6.14468 +-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
 6.14469 +-    PATH_SEPARATOR=';'
 6.14470 +-  else
 6.14471 +-    PATH_SEPARATOR=:
 6.14472 +-  fi
 6.14473 +-  rm -f conf$$.sh
 6.14474 +-fi
 6.14475 ++    sed '/^.*\/\([^/][^/]*\)\/*$/{
 6.14476 ++	    s//\1/
 6.14477 ++	    q
 6.14478 ++	  }
 6.14479 ++	  /^X\/\(\/\/\)$/{
 6.14480 ++	    s//\1/
 6.14481 ++	    q
 6.14482 ++	  }
 6.14483 ++	  /^X\/\(\/\).*/{
 6.14484 ++	    s//\1/
 6.14485 ++	    q
 6.14486 ++	  }
 6.14487 ++	  s/.*/./; q'`
 6.14488 ++
 6.14489 ++# CDPATH.
 6.14490 ++$as_unset CDPATH
 6.14491 + 
 6.14492 + 
 6.14493 +-  as_lineno_1=$LINENO
 6.14494 +-  as_lineno_2=$LINENO
 6.14495 +-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
 6.14496 +-  test "x$as_lineno_1" != "x$as_lineno_2" &&
 6.14497 +-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
 6.14498 +-  # Find who we are.  Look in the path if we contain no path at all
 6.14499 +-  # relative or not.
 6.14500 +-  case $0 in
 6.14501 +-    *[\\/]* ) as_myself=$0 ;;
 6.14502 +-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.14503 +-for as_dir in $PATH
 6.14504 +-do
 6.14505 +-  IFS=$as_save_IFS
 6.14506 +-  test -z "$as_dir" && as_dir=.
 6.14507 +-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
 6.14508 +-done
 6.14509 + 
 6.14510 +-       ;;
 6.14511 +-  esac
 6.14512 +-  # We did not find ourselves, most probably we were run as `sh COMMAND'
 6.14513 +-  # in which case we are not to be found in the path.
 6.14514 +-  if test "x$as_myself" = x; then
 6.14515 +-    as_myself=$0
 6.14516 +-  fi
 6.14517 +-  if test ! -f "$as_myself"; then
 6.14518 +-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
 6.14519 +-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
 6.14520 +-   { (exit 1); exit 1; }; }
 6.14521 +-  fi
 6.14522 +-  case $CONFIG_SHELL in
 6.14523 +-  '')
 6.14524 +-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.14525 +-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 6.14526 +-do
 6.14527 +-  IFS=$as_save_IFS
 6.14528 +-  test -z "$as_dir" && as_dir=.
 6.14529 +-  for as_base in sh bash ksh sh5; do
 6.14530 +-	 case $as_dir in
 6.14531 +-	 /*)
 6.14532 +-	   if ("$as_dir/$as_base" -c '
 6.14533 +   as_lineno_1=$LINENO
 6.14534 +   as_lineno_2=$LINENO
 6.14535 +-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
 6.14536 +   test "x$as_lineno_1" != "x$as_lineno_2" &&
 6.14537 +-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
 6.14538 +-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
 6.14539 +-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
 6.14540 +-	     CONFIG_SHELL=$as_dir/$as_base
 6.14541 +-	     export CONFIG_SHELL
 6.14542 +-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
 6.14543 +-	   fi;;
 6.14544 +-	 esac
 6.14545 +-       done
 6.14546 +-done
 6.14547 +-;;
 6.14548 +-  esac
 6.14549 ++  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
 6.14550 + 
 6.14551 +   # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
 6.14552 +   # uniformly replaced by the line number.  The first 'sed' inserts a
 6.14553 +-  # line-number line before each line; the second 'sed' does the real
 6.14554 +-  # work.  The second script uses 'N' to pair each line-number line
 6.14555 +-  # with the numbered line, and appends trailing '-' during
 6.14556 +-  # substitution so that $LINENO is not a special case at line end.
 6.14557 ++  # line-number line after each line using $LINENO; the second 'sed'
 6.14558 ++  # does the real work.  The second script uses 'N' to pair each
 6.14559 ++  # line-number line with the line containing $LINENO, and appends
 6.14560 ++  # trailing '-' during substitution so that $LINENO is not a special
 6.14561 ++  # case at line end.
 6.14562 +   # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
 6.14563 +-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
 6.14564 +-  sed '=' <$as_myself |
 6.14565 ++  # scripts with optimization help from Paolo Bonzini.  Blame Lee
 6.14566 ++  # E. McMahon (1931-1989) for sed's syntax.  :-)
 6.14567 ++  sed -n '
 6.14568 ++    p
 6.14569 ++    /[$]LINENO/=
 6.14570 ++  ' <$as_myself |
 6.14571 +     sed '
 6.14572 ++      s/[$]LINENO.*/&-/
 6.14573 ++      t lineno
 6.14574 ++      b
 6.14575 ++      :lineno
 6.14576 +       N
 6.14577 +-      s,$,-,
 6.14578 +-      : loop
 6.14579 +-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
 6.14580 ++      :loop
 6.14581 ++      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
 6.14582 +       t loop
 6.14583 +-      s,-$,,
 6.14584 +-      s,^['$as_cr_digits']*\n,,
 6.14585 ++      s/-\n.*//
 6.14586 +     ' >$as_me.lineno &&
 6.14587 +-  chmod +x $as_me.lineno ||
 6.14588 +-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
 6.14589 +-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
 6.14590 ++  chmod +x "$as_me.lineno" ||
 6.14591 ++    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
 6.14592 +    { (exit 1); exit 1; }; }
 6.14593 + 
 6.14594 +   # Don't try to exec as it changes $[0], causing all sort of problems
 6.14595 +   # (the dirname of $[0] is not the place where we might find the
 6.14596 +-  # original and so on.  Autoconf is especially sensible to this).
 6.14597 +-  . ./$as_me.lineno
 6.14598 ++  # original and so on.  Autoconf is especially sensitive to this).
 6.14599 ++  . "./$as_me.lineno"
 6.14600 +   # Exit status is that of the last command.
 6.14601 +   exit
 6.14602 + }
 6.14603 + 
 6.14604 + 
 6.14605 +-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
 6.14606 +-  *c*,-n*) ECHO_N= ECHO_C='
 6.14607 +-' ECHO_T='	' ;;
 6.14608 +-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
 6.14609 +-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
 6.14610 ++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
 6.14611 ++  as_dirname=dirname
 6.14612 ++else
 6.14613 ++  as_dirname=false
 6.14614 ++fi
 6.14615 ++
 6.14616 ++ECHO_C= ECHO_N= ECHO_T=
 6.14617 ++case `echo -n x` in
 6.14618 ++-n*)
 6.14619 ++  case `echo 'x\c'` in
 6.14620 ++  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
 6.14621 ++  *)   ECHO_C='\c';;
 6.14622 ++  esac;;
 6.14623 ++*)
 6.14624 ++  ECHO_N='-n';;
 6.14625 + esac
 6.14626 + 
 6.14627 +-if expr a : '\(a\)' >/dev/null 2>&1; then
 6.14628 ++if expr a : '\(a\)' >/dev/null 2>&1 &&
 6.14629 ++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
 6.14630 +   as_expr=expr
 6.14631 + else
 6.14632 +   as_expr=false
 6.14633 + fi
 6.14634 + 
 6.14635 + rm -f conf$$ conf$$.exe conf$$.file
 6.14636 ++if test -d conf$$.dir; then
 6.14637 ++  rm -f conf$$.dir/conf$$.file
 6.14638 ++else
 6.14639 ++  rm -f conf$$.dir
 6.14640 ++  mkdir conf$$.dir
 6.14641 ++fi
 6.14642 + echo >conf$$.file
 6.14643 + if ln -s conf$$.file conf$$ 2>/dev/null; then
 6.14644 +-  # We could just check for DJGPP; but this test a) works b) is more generic
 6.14645 +-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
 6.14646 +-  if test -f conf$$.exe; then
 6.14647 +-    # Don't use ln at all; we don't have any links
 6.14648 ++  as_ln_s='ln -s'
 6.14649 ++  # ... but there are two gotchas:
 6.14650 ++  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
 6.14651 ++  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
 6.14652 ++  # In both cases, we have to default to `cp -p'.
 6.14653 ++  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
 6.14654 +     as_ln_s='cp -p'
 6.14655 +-  else
 6.14656 +-    as_ln_s='ln -s'
 6.14657 +-  fi
 6.14658 + elif ln conf$$.file conf$$ 2>/dev/null; then
 6.14659 +   as_ln_s=ln
 6.14660 + else
 6.14661 +   as_ln_s='cp -p'
 6.14662 + fi
 6.14663 +-rm -f conf$$ conf$$.exe conf$$.file
 6.14664 ++rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 6.14665 ++rmdir conf$$.dir 2>/dev/null
 6.14666 + 
 6.14667 + if mkdir -p . 2>/dev/null; then
 6.14668 +   as_mkdir_p=:
 6.14669 +@@ -11987,7 +13016,28 @@
 6.14670 +   as_mkdir_p=false
 6.14671 + fi
 6.14672 + 
 6.14673 +-as_executable_p="test -f"
 6.14674 ++if test -x / >/dev/null 2>&1; then
 6.14675 ++  as_test_x='test -x'
 6.14676 ++else
 6.14677 ++  if ls -dL / >/dev/null 2>&1; then
 6.14678 ++    as_ls_L_option=L
 6.14679 ++  else
 6.14680 ++    as_ls_L_option=
 6.14681 ++  fi
 6.14682 ++  as_test_x='
 6.14683 ++    eval sh -c '\''
 6.14684 ++      if test -d "$1"; then
 6.14685 ++        test -d "$1/.";
 6.14686 ++      else
 6.14687 ++	case $1 in
 6.14688 ++        -*)set "./$1";;
 6.14689 ++	esac;
 6.14690 ++	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
 6.14691 ++	???[sx]*):;;*)false;;esac;fi
 6.14692 ++    '\'' sh
 6.14693 ++  '
 6.14694 ++fi
 6.14695 ++as_executable_p=$as_test_x
 6.14696 + 
 6.14697 + # Sed expression to map a string onto a valid CPP name.
 6.14698 + as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 6.14699 +@@ -11996,31 +13046,14 @@
 6.14700 + as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 6.14701 + 
 6.14702 + 
 6.14703 +-# IFS
 6.14704 +-# We need space, tab and new line, in precisely that order.
 6.14705 +-as_nl='
 6.14706 +-'
 6.14707 +-IFS=" 	$as_nl"
 6.14708 +-
 6.14709 +-# CDPATH.
 6.14710 +-$as_unset CDPATH
 6.14711 +-
 6.14712 + exec 6>&1
 6.14713 + 
 6.14714 +-# Open the log real soon, to keep \$[0] and so on meaningful, and to
 6.14715 ++# Save the log message, to keep $[0] and so on meaningful, and to
 6.14716 + # report actual input values of CONFIG_FILES etc. instead of their
 6.14717 +-# values after options handling.  Logging --version etc. is OK.
 6.14718 +-exec 5>>config.log
 6.14719 +-{
 6.14720 +-  echo
 6.14721 +-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
 6.14722 +-## Running $as_me. ##
 6.14723 +-_ASBOX
 6.14724 +-} >&5
 6.14725 +-cat >&5 <<_CSEOF
 6.14726 +-
 6.14727 ++# values after options handling.
 6.14728 ++ac_log="
 6.14729 + This file was extended by newlib $as_me 1.17.0, which was
 6.14730 +-generated by GNU Autoconf 2.59.  Invocation command line was
 6.14731 ++generated by GNU Autoconf 2.61.  Invocation command line was
 6.14732 + 
 6.14733 +   CONFIG_FILES    = $CONFIG_FILES
 6.14734 +   CONFIG_HEADERS  = $CONFIG_HEADERS
 6.14735 +@@ -12028,30 +13061,19 @@
 6.14736 +   CONFIG_COMMANDS = $CONFIG_COMMANDS
 6.14737 +   $ $0 $@
 6.14738 + 
 6.14739 +-_CSEOF
 6.14740 +-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
 6.14741 +-echo >&5
 6.14742 ++on `(hostname || uname -n) 2>/dev/null | sed 1q`
 6.14743 ++"
 6.14744 ++
 6.14745 + _ACEOF
 6.14746 + 
 6.14747 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.14748 + # Files that config.status was made for.
 6.14749 +-if test -n "$ac_config_files"; then
 6.14750 +-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
 6.14751 +-fi
 6.14752 +-
 6.14753 +-if test -n "$ac_config_headers"; then
 6.14754 +-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
 6.14755 +-fi
 6.14756 +-
 6.14757 +-if test -n "$ac_config_links"; then
 6.14758 +-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
 6.14759 +-fi
 6.14760 ++config_files="$ac_config_files"
 6.14761 ++config_commands="$ac_config_commands"
 6.14762 + 
 6.14763 +-if test -n "$ac_config_commands"; then
 6.14764 +-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
 6.14765 +-fi
 6.14766 ++_ACEOF
 6.14767 + 
 6.14768 + cat >>$CONFIG_STATUS <<\_ACEOF
 6.14769 +-
 6.14770 + ac_cs_usage="\
 6.14771 + \`$as_me' instantiates files from templates according to the
 6.14772 + current configuration.
 6.14773 +@@ -12059,7 +13081,7 @@
 6.14774 + Usage: $0 [OPTIONS] [FILE]...
 6.14775 + 
 6.14776 +   -h, --help       print this help, then exit
 6.14777 +-  -V, --version    print version number, then exit
 6.14778 ++  -V, --version    print version number and configuration settings, then exit
 6.14779 +   -q, --quiet      do not print progress messages
 6.14780 +   -d, --debug      don't remove temporary files
 6.14781 +       --recheck    update $as_me by reconfiguring in the same conditions
 6.14782 +@@ -12073,19 +13095,21 @@
 6.14783 + $config_commands
 6.14784 + 
 6.14785 + Report bugs to <bug-autoconf@gnu.org>."
 6.14786 +-_ACEOF
 6.14787 + 
 6.14788 ++_ACEOF
 6.14789 + cat >>$CONFIG_STATUS <<_ACEOF
 6.14790 + ac_cs_version="\\
 6.14791 + newlib config.status 1.17.0
 6.14792 +-configured by $0, generated by GNU Autoconf 2.59,
 6.14793 +-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 6.14794 ++configured by $0, generated by GNU Autoconf 2.61,
 6.14795 ++  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 6.14796 + 
 6.14797 +-Copyright (C) 2003 Free Software Foundation, Inc.
 6.14798 ++Copyright (C) 2006 Free Software Foundation, Inc.
 6.14799 + This config.status script is free software; the Free Software Foundation
 6.14800 + gives unlimited permission to copy, distribute and modify it."
 6.14801 +-srcdir=$srcdir
 6.14802 +-INSTALL="$INSTALL"
 6.14803 ++
 6.14804 ++ac_pwd='$ac_pwd'
 6.14805 ++srcdir='$srcdir'
 6.14806 ++INSTALL='$INSTALL'
 6.14807 + _ACEOF
 6.14808 + 
 6.14809 + cat >>$CONFIG_STATUS <<\_ACEOF
 6.14810 +@@ -12096,60 +13120,42 @@
 6.14811 + do
 6.14812 +   case $1 in
 6.14813 +   --*=*)
 6.14814 +-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
 6.14815 +-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
 6.14816 ++    ac_option=`expr "X$1" : 'X\([^=]*\)='`
 6.14817 ++    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
 6.14818 +     ac_shift=:
 6.14819 +     ;;
 6.14820 +-  -*)
 6.14821 ++  *)
 6.14822 +     ac_option=$1
 6.14823 +     ac_optarg=$2
 6.14824 +     ac_shift=shift
 6.14825 +     ;;
 6.14826 +-  *) # This is not an option, so the user has probably given explicit
 6.14827 +-     # arguments.
 6.14828 +-     ac_option=$1
 6.14829 +-     ac_need_defaults=false;;
 6.14830 +   esac
 6.14831 + 
 6.14832 +   case $ac_option in
 6.14833 +   # Handling of the options.
 6.14834 +-_ACEOF
 6.14835 +-cat >>$CONFIG_STATUS <<\_ACEOF
 6.14836 +   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
 6.14837 +     ac_cs_recheck=: ;;
 6.14838 +-  --version | --vers* | -V )
 6.14839 +-    echo "$ac_cs_version"; exit 0 ;;
 6.14840 +-  --he | --h)
 6.14841 +-    # Conflict between --help and --header
 6.14842 +-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
 6.14843 +-Try \`$0 --help' for more information." >&5
 6.14844 +-echo "$as_me: error: ambiguous option: $1
 6.14845 +-Try \`$0 --help' for more information." >&2;}
 6.14846 +-   { (exit 1); exit 1; }; };;
 6.14847 +-  --help | --hel | -h )
 6.14848 +-    echo "$ac_cs_usage"; exit 0 ;;
 6.14849 +-  --debug | --d* | -d )
 6.14850 ++  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
 6.14851 ++    echo "$ac_cs_version"; exit ;;
 6.14852 ++  --debug | --debu | --deb | --de | --d | -d )
 6.14853 +     debug=: ;;
 6.14854 +   --file | --fil | --fi | --f )
 6.14855 +     $ac_shift
 6.14856 +     CONFIG_FILES="$CONFIG_FILES $ac_optarg"
 6.14857 +     ac_need_defaults=false;;
 6.14858 +-  --header | --heade | --head | --hea )
 6.14859 +-    $ac_shift
 6.14860 +-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
 6.14861 +-    ac_need_defaults=false;;
 6.14862 ++  --he | --h |  --help | --hel | -h )
 6.14863 ++    echo "$ac_cs_usage"; exit ;;
 6.14864 +   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
 6.14865 +   | -silent | --silent | --silen | --sile | --sil | --si | --s)
 6.14866 +     ac_cs_silent=: ;;
 6.14867 + 
 6.14868 +   # This is an error.
 6.14869 +-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
 6.14870 +-Try \`$0 --help' for more information." >&5
 6.14871 +-echo "$as_me: error: unrecognized option: $1
 6.14872 +-Try \`$0 --help' for more information." >&2;}
 6.14873 ++  -*) { echo "$as_me: error: unrecognized option: $1
 6.14874 ++Try \`$0 --help' for more information." >&2
 6.14875 +    { (exit 1); exit 1; }; } ;;
 6.14876 + 
 6.14877 +-  *) ac_config_targets="$ac_config_targets $1" ;;
 6.14878 ++  *) ac_config_targets="$ac_config_targets $1"
 6.14879 ++     ac_need_defaults=false ;;
 6.14880 + 
 6.14881 +   esac
 6.14882 +   shift
 6.14883 +@@ -12165,17 +13171,28 @@
 6.14884 + _ACEOF
 6.14885 + cat >>$CONFIG_STATUS <<_ACEOF
 6.14886 + if \$ac_cs_recheck; then
 6.14887 +-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
 6.14888 +-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
 6.14889 ++  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
 6.14890 ++  CONFIG_SHELL=$SHELL
 6.14891 ++  export CONFIG_SHELL
 6.14892 ++  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
 6.14893 + fi
 6.14894 + 
 6.14895 + _ACEOF
 6.14896 ++cat >>$CONFIG_STATUS <<\_ACEOF
 6.14897 ++exec 5>>config.log
 6.14898 ++{
 6.14899 ++  echo
 6.14900 ++  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
 6.14901 ++## Running $as_me. ##
 6.14902 ++_ASBOX
 6.14903 ++  echo "$ac_log"
 6.14904 ++} >&5
 6.14905 + 
 6.14906 ++_ACEOF
 6.14907 + cat >>$CONFIG_STATUS <<_ACEOF
 6.14908 + #
 6.14909 +-# INIT-COMMANDS section.
 6.14910 ++# INIT-COMMANDS
 6.14911 + #
 6.14912 +-
 6.14913 + AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 6.14914 + 
 6.14915 + 
 6.14916 +@@ -12436,22 +13453,23 @@
 6.14917 + 
 6.14918 + _ACEOF
 6.14919 + 
 6.14920 +-
 6.14921 +-
 6.14922 + cat >>$CONFIG_STATUS <<\_ACEOF
 6.14923 ++
 6.14924 ++# Handling of arguments.
 6.14925 + for ac_config_target in $ac_config_targets
 6.14926 + do
 6.14927 +-  case "$ac_config_target" in
 6.14928 +-  # Handling of arguments.
 6.14929 +-  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
 6.14930 +-  "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
 6.14931 +-  "libtool" ) CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
 6.14932 ++  case $ac_config_target in
 6.14933 ++    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
 6.14934 ++    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
 6.14935 ++    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
 6.14936 ++
 6.14937 +   *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
 6.14938 + echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
 6.14939 +    { (exit 1); exit 1; }; };;
 6.14940 +   esac
 6.14941 + done
 6.14942 + 
 6.14943 ++
 6.14944 + # If the user did not use the arguments to specify the items to instantiate,
 6.14945 + # then the envvar interface is used.  Set only those that are not.
 6.14946 + # We use the long form for the default assignment because of an extremely
 6.14947 +@@ -12462,396 +13480,492 @@
 6.14948 + fi
 6.14949 + 
 6.14950 + # Have a temporary directory for convenience.  Make it in the build tree
 6.14951 +-# simply because there is no reason to put it here, and in addition,
 6.14952 ++# simply because there is no reason against having it here, and in addition,
 6.14953 + # creating and moving files from /tmp can sometimes cause problems.
 6.14954 +-# Create a temporary directory, and hook for its removal unless debugging.
 6.14955 ++# Hook for its removal unless debugging.
 6.14956 ++# Note that there is a small window in which the directory will not be cleaned:
 6.14957 ++# after its creation but before its name has been assigned to `$tmp'.
 6.14958 + $debug ||
 6.14959 + {
 6.14960 +-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
 6.14961 ++  tmp=
 6.14962 ++  trap 'exit_status=$?
 6.14963 ++  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
 6.14964 ++' 0
 6.14965 +   trap '{ (exit 1); exit 1; }' 1 2 13 15
 6.14966 + }
 6.14967 +-
 6.14968 + # Create a (secure) tmp directory for tmp files.
 6.14969 + 
 6.14970 + {
 6.14971 +-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
 6.14972 ++  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
 6.14973 +   test -n "$tmp" && test -d "$tmp"
 6.14974 + }  ||
 6.14975 + {
 6.14976 +-  tmp=./confstat$$-$RANDOM
 6.14977 +-  (umask 077 && mkdir $tmp)
 6.14978 ++  tmp=./conf$$-$RANDOM
 6.14979 ++  (umask 077 && mkdir "$tmp")
 6.14980 + } ||
 6.14981 + {
 6.14982 +    echo "$me: cannot create a temporary directory in ." >&2
 6.14983 +    { (exit 1); exit 1; }
 6.14984 + }
 6.14985 + 
 6.14986 +-_ACEOF
 6.14987 +-
 6.14988 +-cat >>$CONFIG_STATUS <<_ACEOF
 6.14989 +-
 6.14990 + #
 6.14991 +-# CONFIG_FILES section.
 6.14992 ++# Set up the sed scripts for CONFIG_FILES section.
 6.14993 + #
 6.14994 + 
 6.14995 + # No need to generate the scripts if there are no CONFIG_FILES.
 6.14996 + # This happens for instance when ./config.status config.h
 6.14997 +-if test -n "\$CONFIG_FILES"; then
 6.14998 +-  # Protect against being on the right side of a sed subst in config.status.
 6.14999 +-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
 6.15000 +-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
 6.15001 +-s,@SHELL@,$SHELL,;t t
 6.15002 +-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
 6.15003 +-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
 6.15004 +-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
 6.15005 +-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
 6.15006 +-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
 6.15007 +-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
 6.15008 +-s,@exec_prefix@,$exec_prefix,;t t
 6.15009 +-s,@prefix@,$prefix,;t t
 6.15010 +-s,@program_transform_name@,$program_transform_name,;t t
 6.15011 +-s,@bindir@,$bindir,;t t
 6.15012 +-s,@sbindir@,$sbindir,;t t
 6.15013 +-s,@libexecdir@,$libexecdir,;t t
 6.15014 +-s,@datadir@,$datadir,;t t
 6.15015 +-s,@sysconfdir@,$sysconfdir,;t t
 6.15016 +-s,@sharedstatedir@,$sharedstatedir,;t t
 6.15017 +-s,@localstatedir@,$localstatedir,;t t
 6.15018 +-s,@libdir@,$libdir,;t t
 6.15019 +-s,@includedir@,$includedir,;t t
 6.15020 +-s,@oldincludedir@,$oldincludedir,;t t
 6.15021 +-s,@infodir@,$infodir,;t t
 6.15022 +-s,@mandir@,$mandir,;t t
 6.15023 +-s,@build_alias@,$build_alias,;t t
 6.15024 +-s,@host_alias@,$host_alias,;t t
 6.15025 +-s,@target_alias@,$target_alias,;t t
 6.15026 +-s,@DEFS@,$DEFS,;t t
 6.15027 +-s,@ECHO_C@,$ECHO_C,;t t
 6.15028 +-s,@ECHO_N@,$ECHO_N,;t t
 6.15029 +-s,@ECHO_T@,$ECHO_T,;t t
 6.15030 +-s,@LIBS@,$LIBS,;t t
 6.15031 +-s,@MAY_SUPPLY_SYSCALLS_TRUE@,$MAY_SUPPLY_SYSCALLS_TRUE,;t t
 6.15032 +-s,@MAY_SUPPLY_SYSCALLS_FALSE@,$MAY_SUPPLY_SYSCALLS_FALSE,;t t
 6.15033 +-s,@newlib_basedir@,$newlib_basedir,;t t
 6.15034 +-s,@build@,$build,;t t
 6.15035 +-s,@build_cpu@,$build_cpu,;t t
 6.15036 +-s,@build_vendor@,$build_vendor,;t t
 6.15037 +-s,@build_os@,$build_os,;t t
 6.15038 +-s,@host@,$host,;t t
 6.15039 +-s,@host_cpu@,$host_cpu,;t t
 6.15040 +-s,@host_vendor@,$host_vendor,;t t
 6.15041 +-s,@host_os@,$host_os,;t t
 6.15042 +-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
 6.15043 +-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
 6.15044 +-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
 6.15045 +-s,@CYGPATH_W@,$CYGPATH_W,;t t
 6.15046 +-s,@PACKAGE@,$PACKAGE,;t t
 6.15047 +-s,@VERSION@,$VERSION,;t t
 6.15048 +-s,@ACLOCAL@,$ACLOCAL,;t t
 6.15049 +-s,@AUTOCONF@,$AUTOCONF,;t t
 6.15050 +-s,@AUTOMAKE@,$AUTOMAKE,;t t
 6.15051 +-s,@AUTOHEADER@,$AUTOHEADER,;t t
 6.15052 +-s,@MAKEINFO@,$MAKEINFO,;t t
 6.15053 +-s,@install_sh@,$install_sh,;t t
 6.15054 +-s,@STRIP@,$STRIP,;t t
 6.15055 +-s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
 6.15056 +-s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
 6.15057 +-s,@mkdir_p@,$mkdir_p,;t t
 6.15058 +-s,@AWK@,$AWK,;t t
 6.15059 +-s,@SET_MAKE@,$SET_MAKE,;t t
 6.15060 +-s,@am__leading_dot@,$am__leading_dot,;t t
 6.15061 +-s,@AMTAR@,$AMTAR,;t t
 6.15062 +-s,@am__tar@,$am__tar,;t t
 6.15063 +-s,@am__untar@,$am__untar,;t t
 6.15064 +-s,@CC@,$CC,;t t
 6.15065 +-s,@DEPDIR@,$DEPDIR,;t t
 6.15066 +-s,@am__include@,$am__include,;t t
 6.15067 +-s,@am__quote@,$am__quote,;t t
 6.15068 +-s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
 6.15069 +-s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
 6.15070 +-s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
 6.15071 +-s,@CCDEPMODE@,$CCDEPMODE,;t t
 6.15072 +-s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
 6.15073 +-s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
 6.15074 +-s,@AS@,$AS,;t t
 6.15075 +-s,@ac_ct_AS@,$ac_ct_AS,;t t
 6.15076 +-s,@AR@,$AR,;t t
 6.15077 +-s,@ac_ct_AR@,$ac_ct_AR,;t t
 6.15078 +-s,@RANLIB@,$RANLIB,;t t
 6.15079 +-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
 6.15080 +-s,@READELF@,$READELF,;t t
 6.15081 +-s,@ac_ct_READELF@,$ac_ct_READELF,;t t
 6.15082 +-s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
 6.15083 +-s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
 6.15084 +-s,@MAINT@,$MAINT,;t t
 6.15085 +-s,@CCAS@,$CCAS,;t t
 6.15086 +-s,@CCASFLAGS@,$CCASFLAGS,;t t
 6.15087 +-s,@NEWLIB_CFLAGS@,$NEWLIB_CFLAGS,;t t
 6.15088 +-s,@LDFLAGS@,$LDFLAGS,;t t
 6.15089 +-s,@ELIX_LEVEL_0_TRUE@,$ELIX_LEVEL_0_TRUE,;t t
 6.15090 +-s,@ELIX_LEVEL_0_FALSE@,$ELIX_LEVEL_0_FALSE,;t t
 6.15091 +-s,@ELIX_LEVEL_1_TRUE@,$ELIX_LEVEL_1_TRUE,;t t
 6.15092 +-s,@ELIX_LEVEL_1_FALSE@,$ELIX_LEVEL_1_FALSE,;t t
 6.15093 +-s,@ELIX_LEVEL_2_TRUE@,$ELIX_LEVEL_2_TRUE,;t t
 6.15094 +-s,@ELIX_LEVEL_2_FALSE@,$ELIX_LEVEL_2_FALSE,;t t
 6.15095 +-s,@ELIX_LEVEL_3_TRUE@,$ELIX_LEVEL_3_TRUE,;t t
 6.15096 +-s,@ELIX_LEVEL_3_FALSE@,$ELIX_LEVEL_3_FALSE,;t t
 6.15097 +-s,@ELIX_LEVEL_4_TRUE@,$ELIX_LEVEL_4_TRUE,;t t
 6.15098 +-s,@ELIX_LEVEL_4_FALSE@,$ELIX_LEVEL_4_FALSE,;t t
 6.15099 +-s,@USE_LIBTOOL_TRUE@,$USE_LIBTOOL_TRUE,;t t
 6.15100 +-s,@USE_LIBTOOL_FALSE@,$USE_LIBTOOL_FALSE,;t t
 6.15101 +-s,@OBJEXT@,$OBJEXT,;t t
 6.15102 +-s,@oext@,$oext,;t t
 6.15103 +-s,@aext@,$aext,;t t
 6.15104 +-s,@lpfx@,$lpfx,;t t
 6.15105 +-s,@libm_machine_dir@,$libm_machine_dir,;t t
 6.15106 +-s,@machine_dir@,$machine_dir,;t t
 6.15107 +-s,@sys_dir@,$sys_dir,;t t
 6.15108 +-s,@SED@,$SED,;t t
 6.15109 +-s,@DLLTOOL@,$DLLTOOL,;t t
 6.15110 +-s,@ac_ct_DLLTOOL@,$ac_ct_DLLTOOL,;t t
 6.15111 +-s,@OBJDUMP@,$OBJDUMP,;t t
 6.15112 +-s,@ac_ct_OBJDUMP@,$ac_ct_OBJDUMP,;t t
 6.15113 +-s,@LIBTOOL@,$LIBTOOL,;t t
 6.15114 +-s,@CFLAGS@,$CFLAGS,;t t
 6.15115 +-s,@CPPFLAGS@,$CPPFLAGS,;t t
 6.15116 +-s,@ac_ct_CC@,$ac_ct_CC,;t t
 6.15117 +-s,@EXEEXT@,$EXEEXT,;t t
 6.15118 +-s,@EGREP@,$EGREP,;t t
 6.15119 +-s,@FGREP@,$FGREP,;t t
 6.15120 +-s,@GREP@,$GREP,;t t
 6.15121 +-s,@LD@,$LD,;t t
 6.15122 +-s,@DUMPBIN@,$DUMPBIN,;t t
 6.15123 +-s,@ac_ct_DUMPBIN@,$ac_ct_DUMPBIN,;t t
 6.15124 +-s,@NM@,$NM,;t t
 6.15125 +-s,@LN_S@,$LN_S,;t t
 6.15126 +-s,@lt_ECHO@,$lt_ECHO,;t t
 6.15127 +-s,@DSYMUTIL@,$DSYMUTIL,;t t
 6.15128 +-s,@ac_ct_DSYMUTIL@,$ac_ct_DSYMUTIL,;t t
 6.15129 +-s,@NMEDIT@,$NMEDIT,;t t
 6.15130 +-s,@ac_ct_NMEDIT@,$ac_ct_NMEDIT,;t t
 6.15131 +-s,@LIPO@,$LIPO,;t t
 6.15132 +-s,@ac_ct_LIPO@,$ac_ct_LIPO,;t t
 6.15133 +-s,@OTOOL@,$OTOOL,;t t
 6.15134 +-s,@ac_ct_OTOOL@,$ac_ct_OTOOL,;t t
 6.15135 +-s,@OTOOL64@,$OTOOL64,;t t
 6.15136 +-s,@ac_ct_OTOOL64@,$ac_ct_OTOOL64,;t t
 6.15137 +-s,@CPP@,$CPP,;t t
 6.15138 +-s,@subdirs@,$subdirs,;t t
 6.15139 +-s,@HAVE_MACHINE_DIR_TRUE@,$HAVE_MACHINE_DIR_TRUE,;t t
 6.15140 +-s,@HAVE_MACHINE_DIR_FALSE@,$HAVE_MACHINE_DIR_FALSE,;t t
 6.15141 +-s,@LIBOBJS@,$LIBOBJS,;t t
 6.15142 +-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
 6.15143 +-CEOF
 6.15144 +-
 6.15145 +-_ACEOF
 6.15146 +-
 6.15147 +-  cat >>$CONFIG_STATUS <<\_ACEOF
 6.15148 +-  # Split the substitutions into bite-sized pieces for seds with
 6.15149 +-  # small command number limits, like on Digital OSF/1 and HP-UX.
 6.15150 +-  ac_max_sed_lines=48
 6.15151 +-  ac_sed_frag=1 # Number of current file.
 6.15152 +-  ac_beg=1 # First line for current file.
 6.15153 +-  ac_end=$ac_max_sed_lines # Line after last line for current file.
 6.15154 +-  ac_more_lines=:
 6.15155 +-  ac_sed_cmds=
 6.15156 +-  while $ac_more_lines; do
 6.15157 +-    if test $ac_beg -gt 1; then
 6.15158 +-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
 6.15159 +-    else
 6.15160 +-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
 6.15161 +-    fi
 6.15162 +-    if test ! -s $tmp/subs.frag; then
 6.15163 +-      ac_more_lines=false
 6.15164 +-    else
 6.15165 +-      # The purpose of the label and of the branching condition is to
 6.15166 +-      # speed up the sed processing (if there are no `@' at all, there
 6.15167 +-      # is no need to browse any of the substitutions).
 6.15168 +-      # These are the two extra sed commands mentioned above.
 6.15169 +-      (echo ':t
 6.15170 +-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
 6.15171 +-      if test -z "$ac_sed_cmds"; then
 6.15172 +-	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
 6.15173 +-      else
 6.15174 +-	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
 6.15175 +-      fi
 6.15176 +-      ac_sed_frag=`expr $ac_sed_frag + 1`
 6.15177 +-      ac_beg=$ac_end
 6.15178 +-      ac_end=`expr $ac_end + $ac_max_sed_lines`
 6.15179 +-    fi
 6.15180 +-  done
 6.15181 +-  if test -z "$ac_sed_cmds"; then
 6.15182 +-    ac_sed_cmds=cat
 6.15183 ++if test -n "$CONFIG_FILES"; then
 6.15184 ++
 6.15185 ++_ACEOF
 6.15186 ++
 6.15187 ++
 6.15188 ++
 6.15189 ++ac_delim='%!_!# '
 6.15190 ++for ac_last_try in false false false false false :; do
 6.15191 ++  cat >conf$$subs.sed <<_ACEOF
 6.15192 ++SHELL!$SHELL$ac_delim
 6.15193 ++PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
 6.15194 ++PACKAGE_NAME!$PACKAGE_NAME$ac_delim
 6.15195 ++PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
 6.15196 ++PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
 6.15197 ++PACKAGE_STRING!$PACKAGE_STRING$ac_delim
 6.15198 ++PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
 6.15199 ++exec_prefix!$exec_prefix$ac_delim
 6.15200 ++prefix!$prefix$ac_delim
 6.15201 ++program_transform_name!$program_transform_name$ac_delim
 6.15202 ++bindir!$bindir$ac_delim
 6.15203 ++sbindir!$sbindir$ac_delim
 6.15204 ++libexecdir!$libexecdir$ac_delim
 6.15205 ++datarootdir!$datarootdir$ac_delim
 6.15206 ++datadir!$datadir$ac_delim
 6.15207 ++sysconfdir!$sysconfdir$ac_delim
 6.15208 ++sharedstatedir!$sharedstatedir$ac_delim
 6.15209 ++localstatedir!$localstatedir$ac_delim
 6.15210 ++includedir!$includedir$ac_delim
 6.15211 ++oldincludedir!$oldincludedir$ac_delim
 6.15212 ++docdir!$docdir$ac_delim
 6.15213 ++infodir!$infodir$ac_delim
 6.15214 ++htmldir!$htmldir$ac_delim
 6.15215 ++dvidir!$dvidir$ac_delim
 6.15216 ++pdfdir!$pdfdir$ac_delim
 6.15217 ++psdir!$psdir$ac_delim
 6.15218 ++libdir!$libdir$ac_delim
 6.15219 ++localedir!$localedir$ac_delim
 6.15220 ++mandir!$mandir$ac_delim
 6.15221 ++DEFS!$DEFS$ac_delim
 6.15222 ++ECHO_C!$ECHO_C$ac_delim
 6.15223 ++ECHO_N!$ECHO_N$ac_delim
 6.15224 ++ECHO_T!$ECHO_T$ac_delim
 6.15225 ++LIBS!$LIBS$ac_delim
 6.15226 ++build_alias!$build_alias$ac_delim
 6.15227 ++host_alias!$host_alias$ac_delim
 6.15228 ++target_alias!$target_alias$ac_delim
 6.15229 ++MAY_SUPPLY_SYSCALLS_TRUE!$MAY_SUPPLY_SYSCALLS_TRUE$ac_delim
 6.15230 ++MAY_SUPPLY_SYSCALLS_FALSE!$MAY_SUPPLY_SYSCALLS_FALSE$ac_delim
 6.15231 ++newlib_basedir!$newlib_basedir$ac_delim
 6.15232 ++build!$build$ac_delim
 6.15233 ++build_cpu!$build_cpu$ac_delim
 6.15234 ++build_vendor!$build_vendor$ac_delim
 6.15235 ++build_os!$build_os$ac_delim
 6.15236 ++host!$host$ac_delim
 6.15237 ++host_cpu!$host_cpu$ac_delim
 6.15238 ++host_vendor!$host_vendor$ac_delim
 6.15239 ++host_os!$host_os$ac_delim
 6.15240 ++INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
 6.15241 ++INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
 6.15242 ++INSTALL_DATA!$INSTALL_DATA$ac_delim
 6.15243 ++CYGPATH_W!$CYGPATH_W$ac_delim
 6.15244 ++PACKAGE!$PACKAGE$ac_delim
 6.15245 ++VERSION!$VERSION$ac_delim
 6.15246 ++ACLOCAL!$ACLOCAL$ac_delim
 6.15247 ++AUTOCONF!$AUTOCONF$ac_delim
 6.15248 ++AUTOMAKE!$AUTOMAKE$ac_delim
 6.15249 ++AUTOHEADER!$AUTOHEADER$ac_delim
 6.15250 ++MAKEINFO!$MAKEINFO$ac_delim
 6.15251 ++install_sh!$install_sh$ac_delim
 6.15252 ++STRIP!$STRIP$ac_delim
 6.15253 ++INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim
 6.15254 ++mkdir_p!$mkdir_p$ac_delim
 6.15255 ++AWK!$AWK$ac_delim
 6.15256 ++SET_MAKE!$SET_MAKE$ac_delim
 6.15257 ++am__leading_dot!$am__leading_dot$ac_delim
 6.15258 ++AMTAR!$AMTAR$ac_delim
 6.15259 ++am__tar!$am__tar$ac_delim
 6.15260 ++am__untar!$am__untar$ac_delim
 6.15261 ++CC!$CC$ac_delim
 6.15262 ++DEPDIR!$DEPDIR$ac_delim
 6.15263 ++am__include!$am__include$ac_delim
 6.15264 ++am__quote!$am__quote$ac_delim
 6.15265 ++AMDEP_TRUE!$AMDEP_TRUE$ac_delim
 6.15266 ++AMDEP_FALSE!$AMDEP_FALSE$ac_delim
 6.15267 ++AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim
 6.15268 ++CCDEPMODE!$CCDEPMODE$ac_delim
 6.15269 ++am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim
 6.15270 ++am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim
 6.15271 ++AS!$AS$ac_delim
 6.15272 ++AR!$AR$ac_delim
 6.15273 ++RANLIB!$RANLIB$ac_delim
 6.15274 ++READELF!$READELF$ac_delim
 6.15275 ++MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim
 6.15276 ++MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim
 6.15277 ++MAINT!$MAINT$ac_delim
 6.15278 ++CCAS!$CCAS$ac_delim
 6.15279 ++CCASFLAGS!$CCASFLAGS$ac_delim
 6.15280 ++NEWLIB_CFLAGS!$NEWLIB_CFLAGS$ac_delim
 6.15281 ++LDFLAGS!$LDFLAGS$ac_delim
 6.15282 ++ELIX_LEVEL_0_TRUE!$ELIX_LEVEL_0_TRUE$ac_delim
 6.15283 ++ELIX_LEVEL_0_FALSE!$ELIX_LEVEL_0_FALSE$ac_delim
 6.15284 ++ELIX_LEVEL_1_TRUE!$ELIX_LEVEL_1_TRUE$ac_delim
 6.15285 ++ELIX_LEVEL_1_FALSE!$ELIX_LEVEL_1_FALSE$ac_delim
 6.15286 ++ELIX_LEVEL_2_TRUE!$ELIX_LEVEL_2_TRUE$ac_delim
 6.15287 ++ELIX_LEVEL_2_FALSE!$ELIX_LEVEL_2_FALSE$ac_delim
 6.15288 ++ELIX_LEVEL_3_TRUE!$ELIX_LEVEL_3_TRUE$ac_delim
 6.15289 ++_ACEOF
 6.15290 ++
 6.15291 ++  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
 6.15292 ++    break
 6.15293 ++  elif $ac_last_try; then
 6.15294 ++    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
 6.15295 ++echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
 6.15296 ++   { (exit 1); exit 1; }; }
 6.15297 ++  else
 6.15298 ++    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
 6.15299 +   fi
 6.15300 +-fi # test -n "$CONFIG_FILES"
 6.15301 ++done
 6.15302 ++
 6.15303 ++ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
 6.15304 ++if test -n "$ac_eof"; then
 6.15305 ++  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
 6.15306 ++  ac_eof=`expr $ac_eof + 1`
 6.15307 ++fi
 6.15308 ++
 6.15309 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.15310 ++cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
 6.15311 ++/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
 6.15312 ++_ACEOF
 6.15313 ++sed '
 6.15314 ++s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
 6.15315 ++s/^/s,@/; s/!/@,|#_!!_#|/
 6.15316 ++:n
 6.15317 ++t n
 6.15318 ++s/'"$ac_delim"'$/,g/; t
 6.15319 ++s/$/\\/; p
 6.15320 ++N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
 6.15321 ++' >>$CONFIG_STATUS <conf$$subs.sed
 6.15322 ++rm -f conf$$subs.sed
 6.15323 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.15324 ++CEOF$ac_eof
 6.15325 ++_ACEOF
 6.15326 ++
 6.15327 ++
 6.15328 ++ac_delim='%!_!# '
 6.15329 ++for ac_last_try in false false false false false :; do
 6.15330 ++  cat >conf$$subs.sed <<_ACEOF
 6.15331 ++ELIX_LEVEL_3_FALSE!$ELIX_LEVEL_3_FALSE$ac_delim
 6.15332 ++ELIX_LEVEL_4_TRUE!$ELIX_LEVEL_4_TRUE$ac_delim
 6.15333 ++ELIX_LEVEL_4_FALSE!$ELIX_LEVEL_4_FALSE$ac_delim
 6.15334 ++USE_LIBTOOL_TRUE!$USE_LIBTOOL_TRUE$ac_delim
 6.15335 ++USE_LIBTOOL_FALSE!$USE_LIBTOOL_FALSE$ac_delim
 6.15336 ++OBJEXT!$OBJEXT$ac_delim
 6.15337 ++oext!$oext$ac_delim
 6.15338 ++aext!$aext$ac_delim
 6.15339 ++lpfx!$lpfx$ac_delim
 6.15340 ++libm_machine_dir!$libm_machine_dir$ac_delim
 6.15341 ++machine_dir!$machine_dir$ac_delim
 6.15342 ++sys_dir!$sys_dir$ac_delim
 6.15343 ++SED!$SED$ac_delim
 6.15344 ++DLLTOOL!$DLLTOOL$ac_delim
 6.15345 ++OBJDUMP!$OBJDUMP$ac_delim
 6.15346 ++LIBTOOL!$LIBTOOL$ac_delim
 6.15347 ++CFLAGS!$CFLAGS$ac_delim
 6.15348 ++CPPFLAGS!$CPPFLAGS$ac_delim
 6.15349 ++ac_ct_CC!$ac_ct_CC$ac_delim
 6.15350 ++EXEEXT!$EXEEXT$ac_delim
 6.15351 ++GREP!$GREP$ac_delim
 6.15352 ++EGREP!$EGREP$ac_delim
 6.15353 ++FGREP!$FGREP$ac_delim
 6.15354 ++LD!$LD$ac_delim
 6.15355 ++DUMPBIN!$DUMPBIN$ac_delim
 6.15356 ++ac_ct_DUMPBIN!$ac_ct_DUMPBIN$ac_delim
 6.15357 ++NM!$NM$ac_delim
 6.15358 ++LN_S!$LN_S$ac_delim
 6.15359 ++lt_ECHO!$lt_ECHO$ac_delim
 6.15360 ++DSYMUTIL!$DSYMUTIL$ac_delim
 6.15361 ++NMEDIT!$NMEDIT$ac_delim
 6.15362 ++LIPO!$LIPO$ac_delim
 6.15363 ++OTOOL!$OTOOL$ac_delim
 6.15364 ++OTOOL64!$OTOOL64$ac_delim
 6.15365 ++CPP!$CPP$ac_delim
 6.15366 ++subdirs!$subdirs$ac_delim
 6.15367 ++HAVE_MACHINE_DIR_TRUE!$HAVE_MACHINE_DIR_TRUE$ac_delim
 6.15368 ++HAVE_MACHINE_DIR_FALSE!$HAVE_MACHINE_DIR_FALSE$ac_delim
 6.15369 ++LIBOBJS!$LIBOBJS$ac_delim
 6.15370 ++LTLIBOBJS!$LTLIBOBJS$ac_delim
 6.15371 ++_ACEOF
 6.15372 ++
 6.15373 ++  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 40; then
 6.15374 ++    break
 6.15375 ++  elif $ac_last_try; then
 6.15376 ++    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
 6.15377 ++echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
 6.15378 ++   { (exit 1); exit 1; }; }
 6.15379 ++  else
 6.15380 ++    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
 6.15381 ++  fi
 6.15382 ++done
 6.15383 ++
 6.15384 ++ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
 6.15385 ++if test -n "$ac_eof"; then
 6.15386 ++  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
 6.15387 ++  ac_eof=`expr $ac_eof + 1`
 6.15388 ++fi
 6.15389 + 
 6.15390 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.15391 ++cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
 6.15392 ++/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
 6.15393 ++_ACEOF
 6.15394 ++sed '
 6.15395 ++s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
 6.15396 ++s/^/s,@/; s/!/@,|#_!!_#|/
 6.15397 ++:n
 6.15398 ++t n
 6.15399 ++s/'"$ac_delim"'$/,g/; t
 6.15400 ++s/$/\\/; p
 6.15401 ++N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
 6.15402 ++' >>$CONFIG_STATUS <conf$$subs.sed
 6.15403 ++rm -f conf$$subs.sed
 6.15404 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.15405 ++:end
 6.15406 ++s/|#_!!_#|//g
 6.15407 ++CEOF$ac_eof
 6.15408 + _ACEOF
 6.15409 ++
 6.15410 ++
 6.15411 ++# VPATH may cause trouble with some makes, so we remove $(srcdir),
 6.15412 ++# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
 6.15413 ++# trailing colons and then remove the whole line if VPATH becomes empty
 6.15414 ++# (actually we leave an empty line to preserve line numbers).
 6.15415 ++if test "x$srcdir" = x.; then
 6.15416 ++  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
 6.15417 ++s/:*\$(srcdir):*/:/
 6.15418 ++s/:*\${srcdir}:*/:/
 6.15419 ++s/:*@srcdir@:*/:/
 6.15420 ++s/^\([^=]*=[	 ]*\):*/\1/
 6.15421 ++s/:*$//
 6.15422 ++s/^[^=]*=[	 ]*$//
 6.15423 ++}'
 6.15424 ++fi
 6.15425 ++
 6.15426 + cat >>$CONFIG_STATUS <<\_ACEOF
 6.15427 +-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
 6.15428 +-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
 6.15429 +-  case $ac_file in
 6.15430 +-  - | *:- | *:-:* ) # input from stdin
 6.15431 +-	cat >$tmp/stdin
 6.15432 +-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
 6.15433 +-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
 6.15434 +-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
 6.15435 +-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
 6.15436 +-  * )   ac_file_in=$ac_file.in ;;
 6.15437 ++fi # test -n "$CONFIG_FILES"
 6.15438 ++
 6.15439 ++
 6.15440 ++for ac_tag in  :F $CONFIG_FILES      :C $CONFIG_COMMANDS
 6.15441 ++do
 6.15442 ++  case $ac_tag in
 6.15443 ++  :[FHLC]) ac_mode=$ac_tag; continue;;
 6.15444 ++  esac
 6.15445 ++  case $ac_mode$ac_tag in
 6.15446 ++  :[FHL]*:*);;
 6.15447 ++  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
 6.15448 ++echo "$as_me: error: Invalid tag $ac_tag." >&2;}
 6.15449 ++   { (exit 1); exit 1; }; };;
 6.15450 ++  :[FH]-) ac_tag=-:-;;
 6.15451 ++  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
 6.15452 ++  esac
 6.15453 ++  ac_save_IFS=$IFS
 6.15454 ++  IFS=:
 6.15455 ++  set x $ac_tag
 6.15456 ++  IFS=$ac_save_IFS
 6.15457 ++  shift
 6.15458 ++  ac_file=$1
 6.15459 ++  shift
 6.15460 ++
 6.15461 ++  case $ac_mode in
 6.15462 ++  :L) ac_source=$1;;
 6.15463 ++  :[FH])
 6.15464 ++    ac_file_inputs=
 6.15465 ++    for ac_f
 6.15466 ++    do
 6.15467 ++      case $ac_f in
 6.15468 ++      -) ac_f="$tmp/stdin";;
 6.15469 ++      *) # Look for the file first in the build tree, then in the source tree
 6.15470 ++	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
 6.15471 ++	 # because $ac_f cannot contain `:'.
 6.15472 ++	 test -f "$ac_f" ||
 6.15473 ++	   case $ac_f in
 6.15474 ++	   [\\/$]*) false;;
 6.15475 ++	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
 6.15476 ++	   esac ||
 6.15477 ++	   { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
 6.15478 ++echo "$as_me: error: cannot find input file: $ac_f" >&2;}
 6.15479 ++   { (exit 1); exit 1; }; };;
 6.15480 ++      esac
 6.15481 ++      ac_file_inputs="$ac_file_inputs $ac_f"
 6.15482 ++    done
 6.15483 ++
 6.15484 ++    # Let's still pretend it is `configure' which instantiates (i.e., don't
 6.15485 ++    # use $as_me), people would be surprised to read:
 6.15486 ++    #    /* config.h.  Generated by config.status.  */
 6.15487 ++    configure_input="Generated from "`IFS=:
 6.15488 ++	  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
 6.15489 ++    if test x"$ac_file" != x-; then
 6.15490 ++      configure_input="$ac_file.  $configure_input"
 6.15491 ++      { echo "$as_me:$LINENO: creating $ac_file" >&5
 6.15492 ++echo "$as_me: creating $ac_file" >&6;}
 6.15493 ++    fi
 6.15494 ++
 6.15495 ++    case $ac_tag in
 6.15496 ++    *:-:* | *:-) cat >"$tmp/stdin";;
 6.15497 ++    esac
 6.15498 ++    ;;
 6.15499 +   esac
 6.15500 + 
 6.15501 +-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
 6.15502 +-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
 6.15503 ++  ac_dir=`$as_dirname -- "$ac_file" ||
 6.15504 + $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.15505 + 	 X"$ac_file" : 'X\(//\)[^/]' \| \
 6.15506 + 	 X"$ac_file" : 'X\(//\)$' \| \
 6.15507 +-	 X"$ac_file" : 'X\(/\)' \| \
 6.15508 +-	 .     : '\(.\)' 2>/dev/null ||
 6.15509 ++	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
 6.15510 + echo X"$ac_file" |
 6.15511 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.15512 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.15513 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.15514 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.15515 +-  	  s/.*/./; q'`
 6.15516 +-  { if $as_mkdir_p; then
 6.15517 +-    mkdir -p "$ac_dir"
 6.15518 +-  else
 6.15519 +-    as_dir="$ac_dir"
 6.15520 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 6.15521 ++	    s//\1/
 6.15522 ++	    q
 6.15523 ++	  }
 6.15524 ++	  /^X\(\/\/\)[^/].*/{
 6.15525 ++	    s//\1/
 6.15526 ++	    q
 6.15527 ++	  }
 6.15528 ++	  /^X\(\/\/\)$/{
 6.15529 ++	    s//\1/
 6.15530 ++	    q
 6.15531 ++	  }
 6.15532 ++	  /^X\(\/\).*/{
 6.15533 ++	    s//\1/
 6.15534 ++	    q
 6.15535 ++	  }
 6.15536 ++	  s/.*/./; q'`
 6.15537 ++  { as_dir="$ac_dir"
 6.15538 ++  case $as_dir in #(
 6.15539 ++  -*) as_dir=./$as_dir;;
 6.15540 ++  esac
 6.15541 ++  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
 6.15542 +     as_dirs=
 6.15543 +-    while test ! -d "$as_dir"; do
 6.15544 +-      as_dirs="$as_dir $as_dirs"
 6.15545 +-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
 6.15546 ++    while :; do
 6.15547 ++      case $as_dir in #(
 6.15548 ++      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
 6.15549 ++      *) as_qdir=$as_dir;;
 6.15550 ++      esac
 6.15551 ++      as_dirs="'$as_qdir' $as_dirs"
 6.15552 ++      as_dir=`$as_dirname -- "$as_dir" ||
 6.15553 + $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.15554 + 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 6.15555 + 	 X"$as_dir" : 'X\(//\)$' \| \
 6.15556 +-	 X"$as_dir" : 'X\(/\)' \| \
 6.15557 +-	 .     : '\(.\)' 2>/dev/null ||
 6.15558 ++	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
 6.15559 + echo X"$as_dir" |
 6.15560 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.15561 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.15562 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.15563 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.15564 +-  	  s/.*/./; q'`
 6.15565 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 6.15566 ++	    s//\1/
 6.15567 ++	    q
 6.15568 ++	  }
 6.15569 ++	  /^X\(\/\/\)[^/].*/{
 6.15570 ++	    s//\1/
 6.15571 ++	    q
 6.15572 ++	  }
 6.15573 ++	  /^X\(\/\/\)$/{
 6.15574 ++	    s//\1/
 6.15575 ++	    q
 6.15576 ++	  }
 6.15577 ++	  /^X\(\/\).*/{
 6.15578 ++	    s//\1/
 6.15579 ++	    q
 6.15580 ++	  }
 6.15581 ++	  s/.*/./; q'`
 6.15582 ++      test -d "$as_dir" && break
 6.15583 +     done
 6.15584 +-    test ! -n "$as_dirs" || mkdir $as_dirs
 6.15585 +-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
 6.15586 +-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
 6.15587 ++    test -z "$as_dirs" || eval "mkdir $as_dirs"
 6.15588 ++  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
 6.15589 ++echo "$as_me: error: cannot create directory $as_dir" >&2;}
 6.15590 +    { (exit 1); exit 1; }; }; }
 6.15591 +-
 6.15592 +   ac_builddir=.
 6.15593 + 
 6.15594 +-if test "$ac_dir" != .; then
 6.15595 ++case "$ac_dir" in
 6.15596 ++.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 6.15597 ++*)
 6.15598 +   ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
 6.15599 +-  # A "../" for each directory in $ac_dir_suffix.
 6.15600 +-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
 6.15601 +-else
 6.15602 +-  ac_dir_suffix= ac_top_builddir=
 6.15603 +-fi
 6.15604 ++  # A ".." for each directory in $ac_dir_suffix.
 6.15605 ++  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
 6.15606 ++  case $ac_top_builddir_sub in
 6.15607 ++  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
 6.15608 ++  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
 6.15609 ++  esac ;;
 6.15610 ++esac
 6.15611 ++ac_abs_top_builddir=$ac_pwd
 6.15612 ++ac_abs_builddir=$ac_pwd$ac_dir_suffix
 6.15613 ++# for backward compatibility:
 6.15614 ++ac_top_builddir=$ac_top_build_prefix
 6.15615 + 
 6.15616 + case $srcdir in
 6.15617 +-  .)  # No --srcdir option.  We are building in place.
 6.15618 ++  .)  # We are building in place.
 6.15619 +     ac_srcdir=.
 6.15620 +-    if test -z "$ac_top_builddir"; then
 6.15621 +-       ac_top_srcdir=.
 6.15622 +-    else
 6.15623 +-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
 6.15624 +-    fi ;;
 6.15625 +-  [\\/]* | ?:[\\/]* )  # Absolute path.
 6.15626 ++    ac_top_srcdir=$ac_top_builddir_sub
 6.15627 ++    ac_abs_top_srcdir=$ac_pwd ;;
 6.15628 ++  [\\/]* | ?:[\\/]* )  # Absolute name.
 6.15629 +     ac_srcdir=$srcdir$ac_dir_suffix;
 6.15630 +-    ac_top_srcdir=$srcdir ;;
 6.15631 +-  *) # Relative path.
 6.15632 +-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
 6.15633 +-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
 6.15634 +-esac
 6.15635 ++    ac_top_srcdir=$srcdir
 6.15636 ++    ac_abs_top_srcdir=$srcdir ;;
 6.15637 ++  *) # Relative name.
 6.15638 ++    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
 6.15639 ++    ac_top_srcdir=$ac_top_build_prefix$srcdir
 6.15640 ++    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
 6.15641 ++esac
 6.15642 ++ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 6.15643 + 
 6.15644 +-# Do not use `cd foo && pwd` to compute absolute paths, because
 6.15645 +-# the directories may not exist.
 6.15646 +-case `pwd` in
 6.15647 +-.) ac_abs_builddir="$ac_dir";;
 6.15648 +-*)
 6.15649 +-  case "$ac_dir" in
 6.15650 +-  .) ac_abs_builddir=`pwd`;;
 6.15651 +-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
 6.15652 +-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
 6.15653 +-  esac;;
 6.15654 +-esac
 6.15655 +-case $ac_abs_builddir in
 6.15656 +-.) ac_abs_top_builddir=${ac_top_builddir}.;;
 6.15657 +-*)
 6.15658 +-  case ${ac_top_builddir}. in
 6.15659 +-  .) ac_abs_top_builddir=$ac_abs_builddir;;
 6.15660 +-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
 6.15661 +-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
 6.15662 +-  esac;;
 6.15663 +-esac
 6.15664 +-case $ac_abs_builddir in
 6.15665 +-.) ac_abs_srcdir=$ac_srcdir;;
 6.15666 +-*)
 6.15667 +-  case $ac_srcdir in
 6.15668 +-  .) ac_abs_srcdir=$ac_abs_builddir;;
 6.15669 +-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
 6.15670 +-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
 6.15671 +-  esac;;
 6.15672 +-esac
 6.15673 +-case $ac_abs_builddir in
 6.15674 +-.) ac_abs_top_srcdir=$ac_top_srcdir;;
 6.15675 +-*)
 6.15676 +-  case $ac_top_srcdir in
 6.15677 +-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
 6.15678 +-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
 6.15679 +-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
 6.15680 +-  esac;;
 6.15681 +-esac
 6.15682 + 
 6.15683 ++  case $ac_mode in
 6.15684 ++  :F)
 6.15685 ++  #
 6.15686 ++  # CONFIG_FILE
 6.15687 ++  #
 6.15688 + 
 6.15689 +   case $INSTALL in
 6.15690 +   [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
 6.15691 +-  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
 6.15692 ++  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
 6.15693 +   esac
 6.15694 ++_ACEOF
 6.15695 + 
 6.15696 +-  if test x"$ac_file" != x-; then
 6.15697 +-    { echo "$as_me:$LINENO: creating $ac_file" >&5
 6.15698 +-echo "$as_me: creating $ac_file" >&6;}
 6.15699 +-    rm -f "$ac_file"
 6.15700 +-  fi
 6.15701 +-  # Let's still pretend it is `configure' which instantiates (i.e., don't
 6.15702 +-  # use $as_me), people would be surprised to read:
 6.15703 +-  #    /* config.h.  Generated by config.status.  */
 6.15704 +-  if test x"$ac_file" = x-; then
 6.15705 +-    configure_input=
 6.15706 +-  else
 6.15707 +-    configure_input="$ac_file.  "
 6.15708 +-  fi
 6.15709 +-  configure_input=$configure_input"Generated from `echo $ac_file_in |
 6.15710 +-				     sed 's,.*/,,'` by configure."
 6.15711 +-
 6.15712 +-  # First look for the input files in the build tree, otherwise in the
 6.15713 +-  # src tree.
 6.15714 +-  ac_file_inputs=`IFS=:
 6.15715 +-    for f in $ac_file_in; do
 6.15716 +-      case $f in
 6.15717 +-      -) echo $tmp/stdin ;;
 6.15718 +-      [\\/$]*)
 6.15719 +-	 # Absolute (can't be DOS-style, as IFS=:)
 6.15720 +-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
 6.15721 +-echo "$as_me: error: cannot find input file: $f" >&2;}
 6.15722 +-   { (exit 1); exit 1; }; }
 6.15723 +-	 echo "$f";;
 6.15724 +-      *) # Relative
 6.15725 +-	 if test -f "$f"; then
 6.15726 +-	   # Build tree
 6.15727 +-	   echo "$f"
 6.15728 +-	 elif test -f "$srcdir/$f"; then
 6.15729 +-	   # Source tree
 6.15730 +-	   echo "$srcdir/$f"
 6.15731 +-	 else
 6.15732 +-	   # /dev/null tree
 6.15733 +-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
 6.15734 +-echo "$as_me: error: cannot find input file: $f" >&2;}
 6.15735 +-   { (exit 1); exit 1; }; }
 6.15736 +-	 fi;;
 6.15737 +-      esac
 6.15738 +-    done` || { (exit 1); exit 1; }
 6.15739 ++cat >>$CONFIG_STATUS <<\_ACEOF
 6.15740 ++# If the template does not know about datarootdir, expand it.
 6.15741 ++# FIXME: This hack should be removed a few years after 2.60.
 6.15742 ++ac_datarootdir_hack=; ac_datarootdir_seen=
 6.15743 ++
 6.15744 ++case `sed -n '/datarootdir/ {
 6.15745 ++  p
 6.15746 ++  q
 6.15747 ++}
 6.15748 ++/@datadir@/p
 6.15749 ++/@docdir@/p
 6.15750 ++/@infodir@/p
 6.15751 ++/@localedir@/p
 6.15752 ++/@mandir@/p
 6.15753 ++' $ac_file_inputs` in
 6.15754 ++*datarootdir*) ac_datarootdir_seen=yes;;
 6.15755 ++*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
 6.15756 ++  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
 6.15757 ++echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 6.15758 ++_ACEOF
 6.15759 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.15760 ++  ac_datarootdir_hack='
 6.15761 ++  s&@datadir@&$datadir&g
 6.15762 ++  s&@docdir@&$docdir&g
 6.15763 ++  s&@infodir@&$infodir&g
 6.15764 ++  s&@localedir@&$localedir&g
 6.15765 ++  s&@mandir@&$mandir&g
 6.15766 ++    s&\\\${datarootdir}&$datarootdir&g' ;;
 6.15767 ++esac
 6.15768 + _ACEOF
 6.15769 ++
 6.15770 ++# Neutralize VPATH when `$srcdir' = `.'.
 6.15771 ++# Shell code in configure.ac might set extrasub.
 6.15772 ++# FIXME: do we really want to maintain this feature?
 6.15773 + cat >>$CONFIG_STATUS <<_ACEOF
 6.15774 +   sed "$ac_vpsub
 6.15775 + $extrasub
 6.15776 +@@ -12859,142 +13973,43 @@
 6.15777 + cat >>$CONFIG_STATUS <<\_ACEOF
 6.15778 + :t
 6.15779 + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
 6.15780 +-s,@configure_input@,$configure_input,;t t
 6.15781 +-s,@srcdir@,$ac_srcdir,;t t
 6.15782 +-s,@abs_srcdir@,$ac_abs_srcdir,;t t
 6.15783 +-s,@top_srcdir@,$ac_top_srcdir,;t t
 6.15784 +-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
 6.15785 +-s,@builddir@,$ac_builddir,;t t
 6.15786 +-s,@abs_builddir@,$ac_abs_builddir,;t t
 6.15787 +-s,@top_builddir@,$ac_top_builddir,;t t
 6.15788 +-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
 6.15789 +-s,@INSTALL@,$ac_INSTALL,;t t
 6.15790 +-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
 6.15791 +-  rm -f $tmp/stdin
 6.15792 +-  if test x"$ac_file" != x-; then
 6.15793 +-    mv $tmp/out $ac_file
 6.15794 +-  else
 6.15795 +-    cat $tmp/out
 6.15796 +-    rm -f $tmp/out
 6.15797 +-  fi
 6.15798 +-
 6.15799 +-done
 6.15800 +-_ACEOF
 6.15801 +-cat >>$CONFIG_STATUS <<\_ACEOF
 6.15802 +-
 6.15803 +-#
 6.15804 +-# CONFIG_COMMANDS section.
 6.15805 +-#
 6.15806 +-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
 6.15807 +-  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
 6.15808 +-  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
 6.15809 +-  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
 6.15810 +-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.15811 +-	 X"$ac_dest" : 'X\(//\)[^/]' \| \
 6.15812 +-	 X"$ac_dest" : 'X\(//\)$' \| \
 6.15813 +-	 X"$ac_dest" : 'X\(/\)' \| \
 6.15814 +-	 .     : '\(.\)' 2>/dev/null ||
 6.15815 +-echo X"$ac_dest" |
 6.15816 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.15817 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.15818 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.15819 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.15820 +-  	  s/.*/./; q'`
 6.15821 +-  { if $as_mkdir_p; then
 6.15822 +-    mkdir -p "$ac_dir"
 6.15823 +-  else
 6.15824 +-    as_dir="$ac_dir"
 6.15825 +-    as_dirs=
 6.15826 +-    while test ! -d "$as_dir"; do
 6.15827 +-      as_dirs="$as_dir $as_dirs"
 6.15828 +-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
 6.15829 +-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.15830 +-	 X"$as_dir" : 'X\(//\)[^/]' \| \
 6.15831 +-	 X"$as_dir" : 'X\(//\)$' \| \
 6.15832 +-	 X"$as_dir" : 'X\(/\)' \| \
 6.15833 +-	 .     : '\(.\)' 2>/dev/null ||
 6.15834 +-echo X"$as_dir" |
 6.15835 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.15836 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.15837 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.15838 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.15839 +-  	  s/.*/./; q'`
 6.15840 +-    done
 6.15841 +-    test ! -n "$as_dirs" || mkdir $as_dirs
 6.15842 +-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
 6.15843 +-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
 6.15844 +-   { (exit 1); exit 1; }; }; }
 6.15845 ++s&@configure_input@&$configure_input&;t t
 6.15846 ++s&@top_builddir@&$ac_top_builddir_sub&;t t
 6.15847 ++s&@srcdir@&$ac_srcdir&;t t
 6.15848 ++s&@abs_srcdir@&$ac_abs_srcdir&;t t
 6.15849 ++s&@top_srcdir@&$ac_top_srcdir&;t t
 6.15850 ++s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
 6.15851 ++s&@builddir@&$ac_builddir&;t t
 6.15852 ++s&@abs_builddir@&$ac_abs_builddir&;t t
 6.15853 ++s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
 6.15854 ++s&@INSTALL@&$ac_INSTALL&;t t
 6.15855 ++$ac_datarootdir_hack
 6.15856 ++" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
 6.15857 ++
 6.15858 ++test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
 6.15859 ++  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
 6.15860 ++  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
 6.15861 ++  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 6.15862 ++which seems to be undefined.  Please make sure it is defined." >&5
 6.15863 ++echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 6.15864 ++which seems to be undefined.  Please make sure it is defined." >&2;}
 6.15865 + 
 6.15866 +-  ac_builddir=.
 6.15867 +-
 6.15868 +-if test "$ac_dir" != .; then
 6.15869 +-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
 6.15870 +-  # A "../" for each directory in $ac_dir_suffix.
 6.15871 +-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
 6.15872 +-else
 6.15873 +-  ac_dir_suffix= ac_top_builddir=
 6.15874 +-fi
 6.15875 ++  rm -f "$tmp/stdin"
 6.15876 ++  case $ac_file in
 6.15877 ++  -) cat "$tmp/out"; rm -f "$tmp/out";;
 6.15878 ++  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
 6.15879 ++  esac
 6.15880 ++ ;;
 6.15881 + 
 6.15882 +-case $srcdir in
 6.15883 +-  .)  # No --srcdir option.  We are building in place.
 6.15884 +-    ac_srcdir=.
 6.15885 +-    if test -z "$ac_top_builddir"; then
 6.15886 +-       ac_top_srcdir=.
 6.15887 +-    else
 6.15888 +-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
 6.15889 +-    fi ;;
 6.15890 +-  [\\/]* | ?:[\\/]* )  # Absolute path.
 6.15891 +-    ac_srcdir=$srcdir$ac_dir_suffix;
 6.15892 +-    ac_top_srcdir=$srcdir ;;
 6.15893 +-  *) # Relative path.
 6.15894 +-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
 6.15895 +-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
 6.15896 +-esac
 6.15897 + 
 6.15898 +-# Do not use `cd foo && pwd` to compute absolute paths, because
 6.15899 +-# the directories may not exist.
 6.15900 +-case `pwd` in
 6.15901 +-.) ac_abs_builddir="$ac_dir";;
 6.15902 +-*)
 6.15903 +-  case "$ac_dir" in
 6.15904 +-  .) ac_abs_builddir=`pwd`;;
 6.15905 +-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
 6.15906 +-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
 6.15907 +-  esac;;
 6.15908 +-esac
 6.15909 +-case $ac_abs_builddir in
 6.15910 +-.) ac_abs_top_builddir=${ac_top_builddir}.;;
 6.15911 +-*)
 6.15912 +-  case ${ac_top_builddir}. in
 6.15913 +-  .) ac_abs_top_builddir=$ac_abs_builddir;;
 6.15914 +-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
 6.15915 +-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
 6.15916 +-  esac;;
 6.15917 +-esac
 6.15918 +-case $ac_abs_builddir in
 6.15919 +-.) ac_abs_srcdir=$ac_srcdir;;
 6.15920 +-*)
 6.15921 +-  case $ac_srcdir in
 6.15922 +-  .) ac_abs_srcdir=$ac_abs_builddir;;
 6.15923 +-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
 6.15924 +-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
 6.15925 +-  esac;;
 6.15926 +-esac
 6.15927 +-case $ac_abs_builddir in
 6.15928 +-.) ac_abs_top_srcdir=$ac_top_srcdir;;
 6.15929 +-*)
 6.15930 +-  case $ac_top_srcdir in
 6.15931 +-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
 6.15932 +-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
 6.15933 +-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
 6.15934 +-  esac;;
 6.15935 +-esac
 6.15936 ++  :C)  { echo "$as_me:$LINENO: executing $ac_file commands" >&5
 6.15937 ++echo "$as_me: executing $ac_file commands" >&6;}
 6.15938 ++ ;;
 6.15939 ++  esac
 6.15940 + 
 6.15941 + 
 6.15942 +-  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
 6.15943 +-echo "$as_me: executing $ac_dest commands" >&6;}
 6.15944 +-  case $ac_dest in
 6.15945 +-    depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
 6.15946 ++  case $ac_file$ac_mode in
 6.15947 ++    "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
 6.15948 +   # Strip MF so we end up with the name of the file.
 6.15949 +   mf=`echo "$mf" | sed -e 's/:.*$//'`
 6.15950 +   # Check whether this is an Automake generated Makefile or not.
 6.15951 +@@ -13004,18 +14019,29 @@
 6.15952 +   # each Makefile.in and add a new line on top of each file to say so.
 6.15953 +   # So let's grep whole file.
 6.15954 +   if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
 6.15955 +-    dirpart=`(dirname "$mf") 2>/dev/null ||
 6.15956 ++    dirpart=`$as_dirname -- "$mf" ||
 6.15957 + $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.15958 + 	 X"$mf" : 'X\(//\)[^/]' \| \
 6.15959 + 	 X"$mf" : 'X\(//\)$' \| \
 6.15960 +-	 X"$mf" : 'X\(/\)' \| \
 6.15961 +-	 .     : '\(.\)' 2>/dev/null ||
 6.15962 ++	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
 6.15963 + echo X"$mf" |
 6.15964 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.15965 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.15966 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.15967 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.15968 +-  	  s/.*/./; q'`
 6.15969 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 6.15970 ++	    s//\1/
 6.15971 ++	    q
 6.15972 ++	  }
 6.15973 ++	  /^X\(\/\/\)[^/].*/{
 6.15974 ++	    s//\1/
 6.15975 ++	    q
 6.15976 ++	  }
 6.15977 ++	  /^X\(\/\/\)$/{
 6.15978 ++	    s//\1/
 6.15979 ++	    q
 6.15980 ++	  }
 6.15981 ++	  /^X\(\/\).*/{
 6.15982 ++	    s//\1/
 6.15983 ++	    q
 6.15984 ++	  }
 6.15985 ++	  s/.*/./; q'`
 6.15986 +   else
 6.15987 +     continue
 6.15988 +   fi
 6.15989 +@@ -13037,49 +14063,76 @@
 6.15990 +        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
 6.15991 +     # Make sure the directory exists.
 6.15992 +     test -f "$dirpart/$file" && continue
 6.15993 +-    fdir=`(dirname "$file") 2>/dev/null ||
 6.15994 ++    fdir=`$as_dirname -- "$file" ||
 6.15995 + $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.15996 + 	 X"$file" : 'X\(//\)[^/]' \| \
 6.15997 + 	 X"$file" : 'X\(//\)$' \| \
 6.15998 +-	 X"$file" : 'X\(/\)' \| \
 6.15999 +-	 .     : '\(.\)' 2>/dev/null ||
 6.16000 ++	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
 6.16001 + echo X"$file" |
 6.16002 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.16003 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.16004 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.16005 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.16006 +-  	  s/.*/./; q'`
 6.16007 +-    { if $as_mkdir_p; then
 6.16008 +-    mkdir -p $dirpart/$fdir
 6.16009 +-  else
 6.16010 +-    as_dir=$dirpart/$fdir
 6.16011 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 6.16012 ++	    s//\1/
 6.16013 ++	    q
 6.16014 ++	  }
 6.16015 ++	  /^X\(\/\/\)[^/].*/{
 6.16016 ++	    s//\1/
 6.16017 ++	    q
 6.16018 ++	  }
 6.16019 ++	  /^X\(\/\/\)$/{
 6.16020 ++	    s//\1/
 6.16021 ++	    q
 6.16022 ++	  }
 6.16023 ++	  /^X\(\/\).*/{
 6.16024 ++	    s//\1/
 6.16025 ++	    q
 6.16026 ++	  }
 6.16027 ++	  s/.*/./; q'`
 6.16028 ++    { as_dir=$dirpart/$fdir
 6.16029 ++  case $as_dir in #(
 6.16030 ++  -*) as_dir=./$as_dir;;
 6.16031 ++  esac
 6.16032 ++  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
 6.16033 +     as_dirs=
 6.16034 +-    while test ! -d "$as_dir"; do
 6.16035 +-      as_dirs="$as_dir $as_dirs"
 6.16036 +-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
 6.16037 ++    while :; do
 6.16038 ++      case $as_dir in #(
 6.16039 ++      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
 6.16040 ++      *) as_qdir=$as_dir;;
 6.16041 ++      esac
 6.16042 ++      as_dirs="'$as_qdir' $as_dirs"
 6.16043 ++      as_dir=`$as_dirname -- "$as_dir" ||
 6.16044 + $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.16045 + 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 6.16046 + 	 X"$as_dir" : 'X\(//\)$' \| \
 6.16047 +-	 X"$as_dir" : 'X\(/\)' \| \
 6.16048 +-	 .     : '\(.\)' 2>/dev/null ||
 6.16049 ++	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
 6.16050 + echo X"$as_dir" |
 6.16051 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.16052 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.16053 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.16054 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.16055 +-  	  s/.*/./; q'`
 6.16056 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 6.16057 ++	    s//\1/
 6.16058 ++	    q
 6.16059 ++	  }
 6.16060 ++	  /^X\(\/\/\)[^/].*/{
 6.16061 ++	    s//\1/
 6.16062 ++	    q
 6.16063 ++	  }
 6.16064 ++	  /^X\(\/\/\)$/{
 6.16065 ++	    s//\1/
 6.16066 ++	    q
 6.16067 ++	  }
 6.16068 ++	  /^X\(\/\).*/{
 6.16069 ++	    s//\1/
 6.16070 ++	    q
 6.16071 ++	  }
 6.16072 ++	  s/.*/./; q'`
 6.16073 ++      test -d "$as_dir" && break
 6.16074 +     done
 6.16075 +-    test ! -n "$as_dirs" || mkdir $as_dirs
 6.16076 +-  fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
 6.16077 +-echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
 6.16078 ++    test -z "$as_dirs" || eval "mkdir $as_dirs"
 6.16079 ++  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
 6.16080 ++echo "$as_me: error: cannot create directory $as_dir" >&2;}
 6.16081 +    { (exit 1); exit 1; }; }; }
 6.16082 +-
 6.16083 +     # echo "creating $dirpart/$file"
 6.16084 +     echo '# dummy' > "$dirpart/$file"
 6.16085 +   done
 6.16086 + done
 6.16087 +  ;;
 6.16088 +-    libtool )
 6.16089 ++    "libtool":C)
 6.16090 + 
 6.16091 +     # See if we are running on zsh, and set the options which allow our
 6.16092 +     # commands through without removal of \ escapes.
 6.16093 +@@ -13720,11 +14773,10 @@
 6.16094 +   chmod +x "$ofile"
 6.16095 + 
 6.16096 +  ;;
 6.16097 ++
 6.16098 +   esac
 6.16099 +-done
 6.16100 +-_ACEOF
 6.16101 ++done # for ac_tag
 6.16102 + 
 6.16103 +-cat >>$CONFIG_STATUS <<\_ACEOF
 6.16104 + 
 6.16105 + { (exit 0); exit 0; }
 6.16106 + _ACEOF
 6.16107 +@@ -13754,7 +14806,7 @@
 6.16108 + fi
 6.16109 + 
 6.16110 + #
 6.16111 +-# CONFIG_SUBDIRS section, as fixed in confsubdir.m4.
 6.16112 ++# CONFIG_SUBDIRS section.
 6.16113 + #
 6.16114 + if test "$no_recursion" != yes; then
 6.16115 + 
 6.16116 +@@ -13801,7 +14853,12 @@
 6.16117 +   case $ac_arg in
 6.16118 +   *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
 6.16119 +   esac
 6.16120 +-  ac_sub_configure_args="$ac_arg $ac_sub_configure_args"
 6.16121 ++  ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args"
 6.16122 ++
 6.16123 ++  # Pass --silent
 6.16124 ++  if test "$silent" = yes; then
 6.16125 ++    ac_sub_configure_args="--silent $ac_sub_configure_args"
 6.16126 ++  fi
 6.16127 + 
 6.16128 +   ac_popdir=`pwd`
 6.16129 +   for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue
 6.16130 +@@ -13810,97 +14867,83 @@
 6.16131 +     # parts of a large source tree are present.
 6.16132 +     test -d "$srcdir/$ac_dir" || continue
 6.16133 + 
 6.16134 +-    { echo "$as_me:$LINENO: configuring in $ac_dir" >&5
 6.16135 +-echo "$as_me: configuring in $ac_dir" >&6;}
 6.16136 +-    { if $as_mkdir_p; then
 6.16137 +-    mkdir -p "$ac_dir"
 6.16138 +-  else
 6.16139 +-    as_dir="$ac_dir"
 6.16140 ++    ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)"
 6.16141 ++    echo "$as_me:$LINENO: $ac_msg" >&5
 6.16142 ++    echo "$ac_msg" >&6
 6.16143 ++    { as_dir="$ac_dir"
 6.16144 ++  case $as_dir in #(
 6.16145 ++  -*) as_dir=./$as_dir;;
 6.16146 ++  esac
 6.16147 ++  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
 6.16148 +     as_dirs=
 6.16149 +-    while test ! -d "$as_dir"; do
 6.16150 +-      as_dirs="$as_dir $as_dirs"
 6.16151 +-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
 6.16152 ++    while :; do
 6.16153 ++      case $as_dir in #(
 6.16154 ++      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
 6.16155 ++      *) as_qdir=$as_dir;;
 6.16156 ++      esac
 6.16157 ++      as_dirs="'$as_qdir' $as_dirs"
 6.16158 ++      as_dir=`$as_dirname -- "$as_dir" ||
 6.16159 + $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.16160 + 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 6.16161 + 	 X"$as_dir" : 'X\(//\)$' \| \
 6.16162 +-	 X"$as_dir" : 'X\(/\)' \| \
 6.16163 +-	 .     : '\(.\)' 2>/dev/null ||
 6.16164 ++	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
 6.16165 + echo X"$as_dir" |
 6.16166 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.16167 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.16168 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.16169 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.16170 +-  	  s/.*/./; q'`
 6.16171 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 6.16172 ++	    s//\1/
 6.16173 ++	    q
 6.16174 ++	  }
 6.16175 ++	  /^X\(\/\/\)[^/].*/{
 6.16176 ++	    s//\1/
 6.16177 ++	    q
 6.16178 ++	  }
 6.16179 ++	  /^X\(\/\/\)$/{
 6.16180 ++	    s//\1/
 6.16181 ++	    q
 6.16182 ++	  }
 6.16183 ++	  /^X\(\/\).*/{
 6.16184 ++	    s//\1/
 6.16185 ++	    q
 6.16186 ++	  }
 6.16187 ++	  s/.*/./; q'`
 6.16188 ++      test -d "$as_dir" && break
 6.16189 +     done
 6.16190 +-    test ! -n "$as_dirs" || mkdir $as_dirs
 6.16191 +-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
 6.16192 +-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
 6.16193 ++    test -z "$as_dirs" || eval "mkdir $as_dirs"
 6.16194 ++  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
 6.16195 ++echo "$as_me: error: cannot create directory $as_dir" >&2;}
 6.16196 +    { (exit 1); exit 1; }; }; }
 6.16197 +-
 6.16198 +     ac_builddir=.
 6.16199 + 
 6.16200 +-if test "$ac_dir" != .; then
 6.16201 ++case "$ac_dir" in
 6.16202 ++.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 6.16203 ++*)
 6.16204 +   ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
 6.16205 +-  # A "../" for each directory in $ac_dir_suffix.
 6.16206 +-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
 6.16207 +-else
 6.16208 +-  ac_dir_suffix= ac_top_builddir=
 6.16209 +-fi
 6.16210 ++  # A ".." for each directory in $ac_dir_suffix.
 6.16211 ++  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
 6.16212 ++  case $ac_top_builddir_sub in
 6.16213 ++  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
 6.16214 ++  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
 6.16215 ++  esac ;;
 6.16216 ++esac
 6.16217 ++ac_abs_top_builddir=$ac_pwd
 6.16218 ++ac_abs_builddir=$ac_pwd$ac_dir_suffix
 6.16219 ++# for backward compatibility:
 6.16220 ++ac_top_builddir=$ac_top_build_prefix
 6.16221 + 
 6.16222 + case $srcdir in
 6.16223 +-  .)  # No --srcdir option.  We are building in place.
 6.16224 ++  .)  # We are building in place.
 6.16225 +     ac_srcdir=.
 6.16226 +-    if test -z "$ac_top_builddir"; then
 6.16227 +-       ac_top_srcdir=.
 6.16228 +-    else
 6.16229 +-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
 6.16230 +-    fi ;;
 6.16231 +-  [\\/]* | ?:[\\/]* )  # Absolute path.
 6.16232 ++    ac_top_srcdir=$ac_top_builddir_sub
 6.16233 ++    ac_abs_top_srcdir=$ac_pwd ;;
 6.16234 ++  [\\/]* | ?:[\\/]* )  # Absolute name.
 6.16235 +     ac_srcdir=$srcdir$ac_dir_suffix;
 6.16236 +-    ac_top_srcdir=$srcdir ;;
 6.16237 +-  *) # Relative path.
 6.16238 +-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
 6.16239 +-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
 6.16240 +-esac
 6.16241 +-
 6.16242 +-# Do not use `cd foo && pwd` to compute absolute paths, because
 6.16243 +-# the directories may not exist.
 6.16244 +-case `pwd` in
 6.16245 +-.) ac_abs_builddir="$ac_dir";;
 6.16246 +-*)
 6.16247 +-  case "$ac_dir" in
 6.16248 +-  .) ac_abs_builddir=`pwd`;;
 6.16249 +-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
 6.16250 +-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
 6.16251 +-  esac;;
 6.16252 +-esac
 6.16253 +-case $ac_abs_builddir in
 6.16254 +-.) ac_abs_top_builddir=${ac_top_builddir}.;;
 6.16255 +-*)
 6.16256 +-  case ${ac_top_builddir}. in
 6.16257 +-  .) ac_abs_top_builddir=$ac_abs_builddir;;
 6.16258 +-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
 6.16259 +-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
 6.16260 +-  esac;;
 6.16261 +-esac
 6.16262 +-case $ac_abs_builddir in
 6.16263 +-.) ac_abs_srcdir=$ac_srcdir;;
 6.16264 +-*)
 6.16265 +-  case $ac_srcdir in
 6.16266 +-  .) ac_abs_srcdir=$ac_abs_builddir;;
 6.16267 +-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
 6.16268 +-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
 6.16269 +-  esac;;
 6.16270 +-esac
 6.16271 +-case $ac_abs_builddir in
 6.16272 +-.) ac_abs_top_srcdir=$ac_top_srcdir;;
 6.16273 +-*)
 6.16274 +-  case $ac_top_srcdir in
 6.16275 +-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
 6.16276 +-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
 6.16277 +-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
 6.16278 +-  esac;;
 6.16279 ++    ac_top_srcdir=$srcdir
 6.16280 ++    ac_abs_top_srcdir=$srcdir ;;
 6.16281 ++  *) # Relative name.
 6.16282 ++    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
 6.16283 ++    ac_top_srcdir=$ac_top_build_prefix$srcdir
 6.16284 ++    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
 6.16285 + esac
 6.16286 ++ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 6.16287 + 
 6.16288 + 
 6.16289 +     cd "$ac_dir"
 6.16290 +@@ -13924,8 +14967,8 @@
 6.16291 +       # Make the cache file name correct relative to the subdirectory.
 6.16292 +       case $cache_file in
 6.16293 +       [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;;
 6.16294 +-      *) # Relative path.
 6.16295 +-	ac_sub_cache_file=$ac_top_builddir$cache_file ;;
 6.16296 ++      *) # Relative name.
 6.16297 ++	ac_sub_cache_file=$ac_top_build_prefix$cache_file ;;
 6.16298 +       esac
 6.16299 + 
 6.16300 +       { echo "$as_me:$LINENO: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
 6.16301 +diff -Naur newlib-1.17.0/newlib/libc/machine/configure.in newlib-1.17.0-new/newlib/libc/machine/configure.in
 6.16302 +--- newlib-1.17.0/newlib/libc/machine/configure.in	2008-12-11 21:05:38.000000000 +0100
 6.16303 ++++ newlib-1.17.0-new/newlib/libc/machine/configure.in	2009-05-22 09:57:50.000000000 +0200
 6.16304 +@@ -24,6 +24,7 @@
 6.16305 +   case ${machine_dir} in
 6.16306 + 	a29k) AC_CONFIG_SUBDIRS(a29k) ;;
 6.16307 + 	arm) AC_CONFIG_SUBDIRS(arm) ;;
 6.16308 ++	avr32) AC_CONFIG_SUBDIRS(avr32) ;;
 6.16309 + 	bfin) AC_CONFIG_SUBDIRS(bfin) ;;
 6.16310 + 	cris) AC_CONFIG_SUBDIRS(cris) ;;
 6.16311 + 	crx) AC_CONFIG_SUBDIRS(crx) ;;
 6.16312 +diff -Naur newlib-1.17.0/newlib/libc/sys/avr32/aclocal.m4 newlib-1.17.0-new/newlib/libc/sys/avr32/aclocal.m4
 6.16313 +--- newlib-1.17.0/newlib/libc/sys/avr32/aclocal.m4	1970-01-01 01:00:00.000000000 +0100
 6.16314 ++++ newlib-1.17.0-new/newlib/libc/sys/avr32/aclocal.m4	2009-05-22 09:57:50.000000000 +0200
 6.16315 +@@ -0,0 +1,366 @@
 6.16316 ++dnl aclocal.m4 generated automatically by aclocal 1.4-p6
 6.16317 ++
 6.16318 ++dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
 6.16319 ++dnl This file is free software; the Free Software Foundation
 6.16320 ++dnl gives unlimited permission to copy and/or distribute it,
 6.16321 ++dnl with or without modifications, as long as this notice is preserved.
 6.16322 ++
 6.16323 ++dnl This program is distributed in the hope that it will be useful,
 6.16324 ++dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
 6.16325 ++dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 6.16326 ++dnl PARTICULAR PURPOSE.
 6.16327 ++
 6.16328 ++dnl This provides configure definitions used by all the newlib
 6.16329 ++dnl configure.in files.
 6.16330 ++
 6.16331 ++dnl Basic newlib configury.  This calls basic introductory stuff,
 6.16332 ++dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST.  It also runs
 6.16333 ++dnl configure.host.  The only argument is the relative path to the top
 6.16334 ++dnl newlib directory.
 6.16335 ++
 6.16336 ++AC_DEFUN(NEWLIB_CONFIGURE,
 6.16337 ++[
 6.16338 ++dnl Default to --enable-multilib
 6.16339 ++AC_ARG_ENABLE(multilib,
 6.16340 ++[  --enable-multilib         build many library versions (default)],
 6.16341 ++[case "${enableval}" in
 6.16342 ++  yes) multilib=yes ;;
 6.16343 ++  no)  multilib=no ;;
 6.16344 ++  *)   AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
 6.16345 ++ esac], [multilib=yes])dnl
 6.16346 ++
 6.16347 ++dnl Support --enable-target-optspace
 6.16348 ++AC_ARG_ENABLE(target-optspace,
 6.16349 ++[  --enable-target-optspace  optimize for space],
 6.16350 ++[case "${enableval}" in
 6.16351 ++  yes) target_optspace=yes ;;
 6.16352 ++  no)  target_optspace=no ;;
 6.16353 ++  *)   AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;;
 6.16354 ++ esac], [target_optspace=])dnl
 6.16355 ++
 6.16356 ++dnl Support --enable-malloc-debugging - currently only supported for Cygwin
 6.16357 ++AC_ARG_ENABLE(malloc-debugging,
 6.16358 ++[  --enable-malloc-debugging indicate malloc debugging requested],
 6.16359 ++[case "${enableval}" in
 6.16360 ++  yes) malloc_debugging=yes ;;
 6.16361 ++  no)  malloc_debugging=no ;;
 6.16362 ++  *)   AC_MSG_ERROR(bad value ${enableval} for malloc-debugging option) ;;
 6.16363 ++ esac], [malloc_debugging=])dnl
 6.16364 ++
 6.16365 ++dnl Support --enable-newlib-multithread
 6.16366 ++AC_ARG_ENABLE(newlib-multithread,
 6.16367 ++[  --enable-newlib-multithread        enable support for multiple threads],
 6.16368 ++[case "${enableval}" in
 6.16369 ++  yes) newlib_multithread=yes ;;
 6.16370 ++  no)  newlib_multithread=no ;;
 6.16371 ++  *)   AC_MSG_ERROR(bad value ${enableval} for newlib-multithread option) ;;
 6.16372 ++ esac], [newlib_multithread=yes])dnl
 6.16373 ++
 6.16374 ++dnl Support --enable-newlib-iconv
 6.16375 ++AC_ARG_ENABLE(newlib-iconv,
 6.16376 ++[  --enable-newlib-iconv     enable iconv library support],
 6.16377 ++[if test "${newlib_iconv+set}" != set; then
 6.16378 ++   case "${enableval}" in
 6.16379 ++     yes) newlib_iconv=yes ;;
 6.16380 ++     no)  newlib_iconv=no ;;
 6.16381 ++     *)   AC_MSG_ERROR(bad value ${enableval} for newlib-iconv option) ;;
 6.16382 ++   esac
 6.16383 ++ fi], [newlib_iconv=${newlib_iconv}])dnl
 6.16384 ++
 6.16385 ++dnl Support --enable-newlib-elix-level
 6.16386 ++AC_ARG_ENABLE(newlib-elix-level,
 6.16387 ++[  --enable-newlib-elix-level         supply desired elix library level (1-4)],
 6.16388 ++[case "${enableval}" in
 6.16389 ++  0)   newlib_elix_level=0 ;;
 6.16390 ++  1)   newlib_elix_level=1 ;;
 6.16391 ++  2)   newlib_elix_level=2 ;;
 6.16392 ++  3)   newlib_elix_level=3 ;;
 6.16393 ++  4)   newlib_elix_level=4 ;;
 6.16394 ++  *)   AC_MSG_ERROR(bad value ${enableval} for newlib-elix-level option) ;;
 6.16395 ++ esac], [newlib_elix_level=0])dnl
 6.16396 ++
 6.16397 ++dnl Support --disable-newlib-io-float
 6.16398 ++AC_ARG_ENABLE(newlib-io-float,
 6.16399 ++[  --disable-newlib-io-float disable printf/scanf family float support],
 6.16400 ++[case "${enableval}" in
 6.16401 ++  yes) newlib_io_float=yes ;;
 6.16402 ++  no)  newlib_io_float=no ;;
 6.16403 ++  *)   AC_MSG_ERROR(bad value ${enableval} for newlib-io-float option) ;;
 6.16404 ++ esac], [newlib_io_float=yes])dnl
 6.16405 ++
 6.16406 ++dnl Support --disable-newlib-supplied-syscalls
 6.16407 ++AC_ARG_ENABLE(newlib-supplied-syscalls,
 6.16408 ++[  --disable-newlib-supplied-syscalls disable newlib from supplying syscalls],
 6.16409 ++[case "${enableval}" in
 6.16410 ++  yes) newlib_may_supply_syscalls=yes ;;
 6.16411 ++  no)  newlib_may_supply_syscalls=no ;;
 6.16412 ++  *)   AC_MSG_ERROR(bad value ${enableval} for newlib-supplied-syscalls option) ;;
 6.16413 ++ esac], [newlib_may_supply_syscalls=yes])dnl
 6.16414 ++
 6.16415 ++AM_CONDITIONAL(MAY_SUPPLY_SYSCALLS, test x[$]{newlib_may_supply_syscalls} = xyes)
 6.16416 ++
 6.16417 ++dnl We may get other options which we don't document:
 6.16418 ++dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
 6.16419 ++
 6.16420 ++test -z "[$]{with_target_subdir}" && with_target_subdir=.
 6.16421 ++
 6.16422 ++if test "[$]{srcdir}" = "."; then
 6.16423 ++  if test "[$]{with_target_subdir}" != "."; then
 6.16424 ++    newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1"
 6.16425 ++  else
 6.16426 ++    newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1"
 6.16427 ++  fi
 6.16428 ++else
 6.16429 ++  newlib_basedir="[$]{srcdir}/$1"
 6.16430 ++fi
 6.16431 ++AC_SUBST(newlib_basedir)
 6.16432 ++
 6.16433 ++AC_CANONICAL_SYSTEM
 6.16434 ++
 6.16435 ++AM_INIT_AUTOMAKE(newlib, 1.14.0.atmel.1.0.1)
 6.16436 ++
 6.16437 ++# FIXME: We temporarily define our own version of AC_PROG_CC.  This is
 6.16438 ++# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS.  We
 6.16439 ++# are probably using a cross compiler, which will not be able to fully
 6.16440 ++# link an executable.  This should really be fixed in autoconf
 6.16441 ++# itself.
 6.16442 ++
 6.16443 ++AC_DEFUN(LIB_AC_PROG_CC,
 6.16444 ++[AC_BEFORE([$0], [AC_PROG_CPP])dnl
 6.16445 ++AC_CHECK_PROG(CC, gcc, gcc)
 6.16446 ++if test -z "$CC"; then
 6.16447 ++  AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
 6.16448 ++  test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
 6.16449 ++fi
 6.16450 ++
 6.16451 ++AC_PROG_CC_GNU
 6.16452 ++
 6.16453 ++if test $ac_cv_prog_gcc = yes; then
 6.16454 ++  GCC=yes
 6.16455 ++dnl Check whether -g works, even if CFLAGS is set, in case the package
 6.16456 ++dnl plays around with CFLAGS (such as to build both debugging and
 6.16457 ++dnl normal versions of a library), tasteless as that idea is.
 6.16458 ++  ac_test_CFLAGS="${CFLAGS+set}"
 6.16459 ++  ac_save_CFLAGS="$CFLAGS"
 6.16460 ++  CFLAGS=
 6.16461 ++  AC_PROG_CC_G
 6.16462 ++  if test "$ac_test_CFLAGS" = set; then
 6.16463 ++    CFLAGS="$ac_save_CFLAGS"
 6.16464 ++  elif test $ac_cv_prog_cc_g = yes; then
 6.16465 ++    CFLAGS="-g -O2"
 6.16466 ++  else
 6.16467 ++    CFLAGS="-O2"
 6.16468 ++  fi
 6.16469 ++else
 6.16470 ++  GCC=
 6.16471 ++  test "${CFLAGS+set}" = set || CFLAGS="-g"
 6.16472 ++fi
 6.16473 ++])
 6.16474 ++
 6.16475 ++LIB_AC_PROG_CC
 6.16476 ++
 6.16477 ++AC_CHECK_TOOL(AS, as)
 6.16478 ++AC_CHECK_TOOL(AR, ar)
 6.16479 ++AC_CHECK_TOOL(RANLIB, ranlib, :)
 6.16480 ++
 6.16481 ++AC_PROG_INSTALL
 6.16482 ++
 6.16483 ++AM_MAINTAINER_MODE
 6.16484 ++
 6.16485 ++# We need AC_EXEEXT to keep automake happy in cygnus mode.  However,
 6.16486 ++# at least currently, we never actually build a program, so we never
 6.16487 ++# need to use $(EXEEXT).  Moreover, the test for EXEEXT normally
 6.16488 ++# fails, because we are probably configuring with a cross compiler
 6.16489 ++# which can't create executables.  So we include AC_EXEEXT to keep
 6.16490 ++# automake happy, but we don't execute it, since we don't care about
 6.16491 ++# the result.
 6.16492 ++if false; then
 6.16493 ++  AC_EXEEXT
 6.16494 ++fi
 6.16495 ++
 6.16496 ++. [$]{newlib_basedir}/configure.host
 6.16497 ++
 6.16498 ++newlib_cflags="[$]{newlib_cflags} -fno-builtin"
 6.16499 ++
 6.16500 ++NEWLIB_CFLAGS=${newlib_cflags}
 6.16501 ++AC_SUBST(NEWLIB_CFLAGS)
 6.16502 ++
 6.16503 ++LDFLAGS=${ldflags}
 6.16504 ++AC_SUBST(LDFLAGS)
 6.16505 ++
 6.16506 ++AM_CONDITIONAL(ELIX_LEVEL_0, test x[$]{newlib_elix_level} = x0)
 6.16507 ++AM_CONDITIONAL(ELIX_LEVEL_1, test x[$]{newlib_elix_level} = x1)
 6.16508 ++AM_CONDITIONAL(ELIX_LEVEL_2, test x[$]{newlib_elix_level} = x2)
 6.16509 ++AM_CONDITIONAL(ELIX_LEVEL_3, test x[$]{newlib_elix_level} = x3)
 6.16510 ++AM_CONDITIONAL(ELIX_LEVEL_4, test x[$]{newlib_elix_level} = x4)
 6.16511 ++
 6.16512 ++AM_CONDITIONAL(USE_LIBTOOL, test x[$]{use_libtool} = xyes)
 6.16513 ++
 6.16514 ++# Hard-code OBJEXT.  Normally it is set by AC_OBJEXT, but we
 6.16515 ++# use oext, which is set in configure.host based on the target platform.
 6.16516 ++OBJEXT=${oext}
 6.16517 ++
 6.16518 ++AC_SUBST(OBJEXT)
 6.16519 ++AC_SUBST(oext)
 6.16520 ++AC_SUBST(aext)
 6.16521 ++
 6.16522 ++AC_SUBST(libm_machine_dir)
 6.16523 ++AC_SUBST(machine_dir)
 6.16524 ++AC_SUBST(sys_dir)
 6.16525 ++])
 6.16526 ++
 6.16527 ++# Do all the work for Automake.  This macro actually does too much --
 6.16528 ++# some checks are only needed if your package does certain things.
 6.16529 ++# But this isn't really a big deal.
 6.16530 ++
 6.16531 ++# serial 1
 6.16532 ++
 6.16533 ++dnl Usage:
 6.16534 ++dnl AM_INIT_AUTOMAKE(package,version, [no-define])
 6.16535 ++
 6.16536 ++AC_DEFUN([AM_INIT_AUTOMAKE],
 6.16537 ++[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
 6.16538 ++AC_REQUIRE([AC_PROG_INSTALL])
 6.16539 ++PACKAGE=[$1]
 6.16540 ++AC_SUBST(PACKAGE)
 6.16541 ++VERSION=[$2]
 6.16542 ++AC_SUBST(VERSION)
 6.16543 ++dnl test to see if srcdir already configured
 6.16544 ++if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
 6.16545 ++  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
 6.16546 ++fi
 6.16547 ++ifelse([$3],,
 6.16548 ++AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
 6.16549 ++AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
 6.16550 ++AC_REQUIRE([AM_SANITY_CHECK])
 6.16551 ++AC_REQUIRE([AC_ARG_PROGRAM])
 6.16552 ++dnl FIXME This is truly gross.
 6.16553 ++missing_dir=`cd $ac_aux_dir && pwd`
 6.16554 ++AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir)
 6.16555 ++AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
 6.16556 ++AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir)
 6.16557 ++AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
 6.16558 ++AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
 6.16559 ++AC_REQUIRE([AC_PROG_MAKE_SET])])
 6.16560 ++
 6.16561 ++# Copyright 2002  Free Software Foundation, Inc.
 6.16562 ++
 6.16563 ++# This program is free software; you can redistribute it and/or modify
 6.16564 ++# it under the terms of the GNU General Public License as published by
 6.16565 ++# the Free Software Foundation; either version 2, or (at your option)
 6.16566 ++# any later version.
 6.16567 ++
 6.16568 ++# This program is distributed in the hope that it will be useful,
 6.16569 ++# but WITHOUT ANY WARRANTY; without even the implied warranty of
 6.16570 ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 6.16571 ++# GNU General Public License for more details.
 6.16572 ++
 6.16573 ++# You should have received a copy of the GNU General Public License
 6.16574 ++# along with this program; if not, write to the Free Software
 6.16575 ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 6.16576 ++
 6.16577 ++# AM_AUTOMAKE_VERSION(VERSION)
 6.16578 ++# ----------------------------
 6.16579 ++# Automake X.Y traces this macro to ensure aclocal.m4 has been
 6.16580 ++# generated from the m4 files accompanying Automake X.Y.
 6.16581 ++AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"])
 6.16582 ++
 6.16583 ++# AM_SET_CURRENT_AUTOMAKE_VERSION
 6.16584 ++# -------------------------------
 6.16585 ++# Call AM_AUTOMAKE_VERSION so it can be traced.
 6.16586 ++# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
 6.16587 ++AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
 6.16588 ++	 [AM_AUTOMAKE_VERSION([1.4-p6])])
 6.16589 ++
 6.16590 ++#
 6.16591 ++# Check to make sure that the build environment is sane.
 6.16592 ++#
 6.16593 ++
 6.16594 ++AC_DEFUN([AM_SANITY_CHECK],
 6.16595 ++[AC_MSG_CHECKING([whether build environment is sane])
 6.16596 ++# Just in case
 6.16597 ++sleep 1
 6.16598 ++echo timestamp > conftestfile
 6.16599 ++# Do `set' in a subshell so we don't clobber the current shell's
 6.16600 ++# arguments.  Must try -L first in case configure is actually a
 6.16601 ++# symlink; some systems play weird games with the mod time of symlinks
 6.16602 ++# (eg FreeBSD returns the mod time of the symlink's containing
 6.16603 ++# directory).
 6.16604 ++if (
 6.16605 ++   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
 6.16606 ++   if test "[$]*" = "X"; then
 6.16607 ++      # -L didn't work.
 6.16608 ++      set X `ls -t $srcdir/configure conftestfile`
 6.16609 ++   fi
 6.16610 ++   if test "[$]*" != "X $srcdir/configure conftestfile" \
 6.16611 ++      && test "[$]*" != "X conftestfile $srcdir/configure"; then
 6.16612 ++
 6.16613 ++      # If neither matched, then we have a broken ls.  This can happen
 6.16614 ++      # if, for instance, CONFIG_SHELL is bash and it inherits a
 6.16615 ++      # broken ls alias from the environment.  This has actually
 6.16616 ++      # happened.  Such a system could not be considered "sane".
 6.16617 ++      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
 6.16618 ++alias in your environment])
 6.16619 ++   fi
 6.16620 ++
 6.16621 ++   test "[$]2" = conftestfile
 6.16622 ++   )
 6.16623 ++then
 6.16624 ++   # Ok.
 6.16625 ++   :
 6.16626 ++else
 6.16627 ++   AC_MSG_ERROR([newly created file is older than distributed files!
 6.16628 ++Check your system clock])
 6.16629 ++fi
 6.16630 ++rm -f conftest*
 6.16631 ++AC_MSG_RESULT(yes)])
 6.16632 ++
 6.16633 ++dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
 6.16634 ++dnl The program must properly implement --version.
 6.16635 ++AC_DEFUN([AM_MISSING_PROG],
 6.16636 ++[AC_MSG_CHECKING(for working $2)
 6.16637 ++# Run test in a subshell; some versions of sh will print an error if
 6.16638 ++# an executable is not found, even if stderr is redirected.
 6.16639 ++# Redirect stdin to placate older versions of autoconf.  Sigh.
 6.16640 ++if ($2 --version) < /dev/null > /dev/null 2>&1; then
 6.16641 ++   $1=$2
 6.16642 ++   AC_MSG_RESULT(found)
 6.16643 ++else
 6.16644 ++   $1="$3/missing $2"
 6.16645 ++   AC_MSG_RESULT(missing)
 6.16646 ++fi
 6.16647 ++AC_SUBST($1)])
 6.16648 ++
 6.16649 ++# Define a conditional.
 6.16650 ++
 6.16651 ++AC_DEFUN([AM_CONDITIONAL],
 6.16652 ++[AC_SUBST($1_TRUE)
 6.16653 ++AC_SUBST($1_FALSE)
 6.16654 ++if $2; then
 6.16655 ++  $1_TRUE=
 6.16656 ++  $1_FALSE='#'
 6.16657 ++else
 6.16658 ++  $1_TRUE='#'
 6.16659 ++  $1_FALSE=
 6.16660 ++fi])
 6.16661 ++
 6.16662 ++# Add --enable-maintainer-mode option to configure.
 6.16663 ++# From Jim Meyering
 6.16664 ++
 6.16665 ++# serial 1
 6.16666 ++
 6.16667 ++AC_DEFUN([AM_MAINTAINER_MODE],
 6.16668 ++[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
 6.16669 ++  dnl maintainer-mode is disabled by default
 6.16670 ++  AC_ARG_ENABLE(maintainer-mode,
 6.16671 ++[  --enable-maintainer-mode enable make rules and dependencies not useful
 6.16672 ++                          (and sometimes confusing) to the casual installer],
 6.16673 ++      USE_MAINTAINER_MODE=$enableval,
 6.16674 ++      USE_MAINTAINER_MODE=no)
 6.16675 ++  AC_MSG_RESULT($USE_MAINTAINER_MODE)
 6.16676 ++  AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
 6.16677 ++  MAINT=$MAINTAINER_MODE_TRUE
 6.16678 ++  AC_SUBST(MAINT)dnl
 6.16679 ++]
 6.16680 ++)
 6.16681 ++
 6.16682 +diff -Naur newlib-1.17.0/newlib/libc/sys/avr32/confdefs.h newlib-1.17.0-new/newlib/libc/sys/avr32/confdefs.h
 6.16683 +--- newlib-1.17.0/newlib/libc/sys/avr32/confdefs.h	1970-01-01 01:00:00.000000000 +0100
 6.16684 ++++ newlib-1.17.0-new/newlib/libc/sys/avr32/confdefs.h	2009-05-22 09:57:50.000000000 +0200
 6.16685 +@@ -0,0 +1 @@
 6.16686 ++
 6.16687 +diff -Naur newlib-1.17.0/newlib/libc/sys/avr32/configure newlib-1.17.0-new/newlib/libc/sys/avr32/configure
 6.16688 +--- newlib-1.17.0/newlib/libc/sys/avr32/configure	1970-01-01 01:00:00.000000000 +0100
 6.16689 ++++ newlib-1.17.0-new/newlib/libc/sys/avr32/configure	2009-05-22 09:57:50.000000000 +0200
 6.16690 +@@ -0,0 +1,3922 @@
 6.16691 ++#! /bin/sh
 6.16692 ++# Guess values for system-dependent variables and create Makefiles.
 6.16693 ++# Generated by GNU Autoconf 2.61 for newlib NEWLIB_VERSION.
 6.16694 ++#
 6.16695 ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 6.16696 ++# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 6.16697 ++# This configure script is free software; the Free Software Foundation
 6.16698 ++# gives unlimited permission to copy, distribute and modify it.
 6.16699 ++## --------------------- ##
 6.16700 ++## M4sh Initialization.  ##
 6.16701 ++## --------------------- ##
 6.16702 ++
 6.16703 ++# Be more Bourne compatible
 6.16704 ++DUALCASE=1; export DUALCASE # for MKS sh
 6.16705 ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
 6.16706 ++  emulate sh
 6.16707 ++  NULLCMD=:
 6.16708 ++  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
 6.16709 ++  # is contrary to our usage.  Disable this feature.
 6.16710 ++  alias -g '${1+"$@"}'='"$@"'
 6.16711 ++  setopt NO_GLOB_SUBST
 6.16712 ++else
 6.16713 ++  case `(set -o) 2>/dev/null` in
 6.16714 ++  *posix*) set -o posix ;;
 6.16715 ++esac
 6.16716 ++
 6.16717 ++fi
 6.16718 ++
 6.16719 ++
 6.16720 ++
 6.16721 ++
 6.16722 ++# PATH needs CR
 6.16723 ++# Avoid depending upon Character Ranges.
 6.16724 ++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
 6.16725 ++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
 6.16726 ++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 6.16727 ++as_cr_digits='0123456789'
 6.16728 ++as_cr_alnum=$as_cr_Letters$as_cr_digits
 6.16729 ++
 6.16730 ++# The user is always right.
 6.16731 ++if test "${PATH_SEPARATOR+set}" != set; then
 6.16732 ++  echo "#! /bin/sh" >conf$$.sh
 6.16733 ++  echo  "exit 0"   >>conf$$.sh
 6.16734 ++  chmod +x conf$$.sh
 6.16735 ++  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
 6.16736 ++    PATH_SEPARATOR=';'
 6.16737 ++  else
 6.16738 ++    PATH_SEPARATOR=:
 6.16739 ++  fi
 6.16740 ++  rm -f conf$$.sh
 6.16741 ++fi
 6.16742 ++
 6.16743 ++# Support unset when possible.
 6.16744 ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
 6.16745 ++  as_unset=unset
 6.16746 ++else
 6.16747 ++  as_unset=false
 6.16748 ++fi
 6.16749 ++
 6.16750 ++
 6.16751 ++# IFS
 6.16752 ++# We need space, tab and new line, in precisely that order.  Quoting is
 6.16753 ++# there to prevent editors from complaining about space-tab.
 6.16754 ++# (If _AS_PATH_WALK were called with IFS unset, it would disable word
 6.16755 ++# splitting by setting IFS to empty value.)
 6.16756 ++as_nl='
 6.16757 ++'
 6.16758 ++IFS=" ""	$as_nl"
 6.16759 ++
 6.16760 ++# Find who we are.  Look in the path if we contain no directory separator.
 6.16761 ++case $0 in
 6.16762 ++  *[\\/]* ) as_myself=$0 ;;
 6.16763 ++  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.16764 ++for as_dir in $PATH
 6.16765 ++do
 6.16766 ++  IFS=$as_save_IFS
 6.16767 ++  test -z "$as_dir" && as_dir=.
 6.16768 ++  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
 6.16769 ++done
 6.16770 ++IFS=$as_save_IFS
 6.16771 ++
 6.16772 ++     ;;
 6.16773 ++esac
 6.16774 ++# We did not find ourselves, most probably we were run as `sh COMMAND'
 6.16775 ++# in which case we are not to be found in the path.
 6.16776 ++if test "x$as_myself" = x; then
 6.16777 ++  as_myself=$0
 6.16778 ++fi
 6.16779 ++if test ! -f "$as_myself"; then
 6.16780 ++  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
 6.16781 ++  { (exit 1); exit 1; }
 6.16782 ++fi
 6.16783 ++
 6.16784 ++# Work around bugs in pre-3.0 UWIN ksh.
 6.16785 ++for as_var in ENV MAIL MAILPATH
 6.16786 ++do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
 6.16787 ++done
 6.16788 ++PS1='$ '
 6.16789 ++PS2='> '
 6.16790 ++PS4='+ '
 6.16791 ++
 6.16792 ++# NLS nuisances.
 6.16793 ++for as_var in \
 6.16794 ++  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
 6.16795 ++  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
 6.16796 ++  LC_TELEPHONE LC_TIME
 6.16797 ++do
 6.16798 ++  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
 6.16799 ++    eval $as_var=C; export $as_var
 6.16800 ++  else
 6.16801 ++    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
 6.16802 ++  fi
 6.16803 ++done
 6.16804 ++
 6.16805 ++# Required to use basename.
 6.16806 ++if expr a : '\(a\)' >/dev/null 2>&1 &&
 6.16807 ++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
 6.16808 ++  as_expr=expr
 6.16809 ++else
 6.16810 ++  as_expr=false
 6.16811 ++fi
 6.16812 ++
 6.16813 ++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
 6.16814 ++  as_basename=basename
 6.16815 ++else
 6.16816 ++  as_basename=false
 6.16817 ++fi
 6.16818 ++
 6.16819 ++
 6.16820 ++# Name of the executable.
 6.16821 ++as_me=`$as_basename -- "$0" ||
 6.16822 ++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 6.16823 ++	 X"$0" : 'X\(//\)$' \| \
 6.16824 ++	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
 6.16825 ++echo X/"$0" |
 6.16826 ++    sed '/^.*\/\([^/][^/]*\)\/*$/{
 6.16827 ++	    s//\1/
 6.16828 ++	    q
 6.16829 ++	  }
 6.16830 ++	  /^X\/\(\/\/\)$/{
 6.16831 ++	    s//\1/
 6.16832 ++	    q
 6.16833 ++	  }
 6.16834 ++	  /^X\/\(\/\).*/{
 6.16835 ++	    s//\1/
 6.16836 ++	    q
 6.16837 ++	  }
 6.16838 ++	  s/.*/./; q'`
 6.16839 ++
 6.16840 ++# CDPATH.
 6.16841 ++$as_unset CDPATH
 6.16842 ++
 6.16843 ++
 6.16844 ++if test "x$CONFIG_SHELL" = x; then
 6.16845 ++  if (eval ":") 2>/dev/null; then
 6.16846 ++  as_have_required=yes
 6.16847 ++else
 6.16848 ++  as_have_required=no
 6.16849 ++fi
 6.16850 ++
 6.16851 ++  if test $as_have_required = yes && 	 (eval ":
 6.16852 ++(as_func_return () {
 6.16853 ++  (exit \$1)
 6.16854 ++}
 6.16855 ++as_func_success () {
 6.16856 ++  as_func_return 0
 6.16857 ++}
 6.16858 ++as_func_failure () {
 6.16859 ++  as_func_return 1
 6.16860 ++}
 6.16861 ++as_func_ret_success () {
 6.16862 ++  return 0
 6.16863 ++}
 6.16864 ++as_func_ret_failure () {
 6.16865 ++  return 1
 6.16866 ++}
 6.16867 ++
 6.16868 ++exitcode=0
 6.16869 ++if as_func_success; then
 6.16870 ++  :
 6.16871 ++else
 6.16872 ++  exitcode=1
 6.16873 ++  echo as_func_success failed.
 6.16874 ++fi
 6.16875 ++
 6.16876 ++if as_func_failure; then
 6.16877 ++  exitcode=1
 6.16878 ++  echo as_func_failure succeeded.
 6.16879 ++fi
 6.16880 ++
 6.16881 ++if as_func_ret_success; then
 6.16882 ++  :
 6.16883 ++else
 6.16884 ++  exitcode=1
 6.16885 ++  echo as_func_ret_success failed.
 6.16886 ++fi
 6.16887 ++
 6.16888 ++if as_func_ret_failure; then
 6.16889 ++  exitcode=1
 6.16890 ++  echo as_func_ret_failure succeeded.
 6.16891 ++fi
 6.16892 ++
 6.16893 ++if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
 6.16894 ++  :
 6.16895 ++else
 6.16896 ++  exitcode=1
 6.16897 ++  echo positional parameters were not saved.
 6.16898 ++fi
 6.16899 ++
 6.16900 ++test \$exitcode = 0) || { (exit 1); exit 1; }
 6.16901 ++
 6.16902 ++(
 6.16903 ++  as_lineno_1=\$LINENO
 6.16904 ++  as_lineno_2=\$LINENO
 6.16905 ++  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
 6.16906 ++  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
 6.16907 ++") 2> /dev/null; then
 6.16908 ++  :
 6.16909 ++else
 6.16910 ++  as_candidate_shells=
 6.16911 ++    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.16912 ++for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 6.16913 ++do
 6.16914 ++  IFS=$as_save_IFS
 6.16915 ++  test -z "$as_dir" && as_dir=.
 6.16916 ++  case $as_dir in
 6.16917 ++	 /*)
 6.16918 ++	   for as_base in sh bash ksh sh5; do
 6.16919 ++	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
 6.16920 ++	   done;;
 6.16921 ++       esac
 6.16922 ++done
 6.16923 ++IFS=$as_save_IFS
 6.16924 ++
 6.16925 ++
 6.16926 ++      for as_shell in $as_candidate_shells $SHELL; do
 6.16927 ++	 # Try only shells that exist, to save several forks.
 6.16928 ++	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
 6.16929 ++		{ ("$as_shell") 2> /dev/null <<\_ASEOF
 6.16930 ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
 6.16931 ++  emulate sh
 6.16932 ++  NULLCMD=:
 6.16933 ++  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
 6.16934 ++  # is contrary to our usage.  Disable this feature.
 6.16935 ++  alias -g '${1+"$@"}'='"$@"'
 6.16936 ++  setopt NO_GLOB_SUBST
 6.16937 ++else
 6.16938 ++  case `(set -o) 2>/dev/null` in
 6.16939 ++  *posix*) set -o posix ;;
 6.16940 ++esac
 6.16941 ++
 6.16942 ++fi
 6.16943 ++
 6.16944 ++
 6.16945 ++:
 6.16946 ++_ASEOF
 6.16947 ++}; then
 6.16948 ++  CONFIG_SHELL=$as_shell
 6.16949 ++	       as_have_required=yes
 6.16950 ++	       if { "$as_shell" 2> /dev/null <<\_ASEOF
 6.16951 ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
 6.16952 ++  emulate sh
 6.16953 ++  NULLCMD=:
 6.16954 ++  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
 6.16955 ++  # is contrary to our usage.  Disable this feature.
 6.16956 ++  alias -g '${1+"$@"}'='"$@"'
 6.16957 ++  setopt NO_GLOB_SUBST
 6.16958 ++else
 6.16959 ++  case `(set -o) 2>/dev/null` in
 6.16960 ++  *posix*) set -o posix ;;
 6.16961 ++esac
 6.16962 ++
 6.16963 ++fi
 6.16964 ++
 6.16965 ++
 6.16966 ++:
 6.16967 ++(as_func_return () {
 6.16968 ++  (exit $1)
 6.16969 ++}
 6.16970 ++as_func_success () {
 6.16971 ++  as_func_return 0
 6.16972 ++}
 6.16973 ++as_func_failure () {
 6.16974 ++  as_func_return 1
 6.16975 ++}
 6.16976 ++as_func_ret_success () {
 6.16977 ++  return 0
 6.16978 ++}
 6.16979 ++as_func_ret_failure () {
 6.16980 ++  return 1
 6.16981 ++}
 6.16982 ++
 6.16983 ++exitcode=0
 6.16984 ++if as_func_success; then
 6.16985 ++  :
 6.16986 ++else
 6.16987 ++  exitcode=1
 6.16988 ++  echo as_func_success failed.
 6.16989 ++fi
 6.16990 ++
 6.16991 ++if as_func_failure; then
 6.16992 ++  exitcode=1
 6.16993 ++  echo as_func_failure succeeded.
 6.16994 ++fi
 6.16995 ++
 6.16996 ++if as_func_ret_success; then
 6.16997 ++  :
 6.16998 ++else
 6.16999 ++  exitcode=1
 6.17000 ++  echo as_func_ret_success failed.
 6.17001 ++fi
 6.17002 ++
 6.17003 ++if as_func_ret_failure; then
 6.17004 ++  exitcode=1
 6.17005 ++  echo as_func_ret_failure succeeded.
 6.17006 ++fi
 6.17007 ++
 6.17008 ++if ( set x; as_func_ret_success y && test x = "$1" ); then
 6.17009 ++  :
 6.17010 ++else
 6.17011 ++  exitcode=1
 6.17012 ++  echo positional parameters were not saved.
 6.17013 ++fi
 6.17014 ++
 6.17015 ++test $exitcode = 0) || { (exit 1); exit 1; }
 6.17016 ++
 6.17017 ++(
 6.17018 ++  as_lineno_1=$LINENO
 6.17019 ++  as_lineno_2=$LINENO
 6.17020 ++  test "x$as_lineno_1" != "x$as_lineno_2" &&
 6.17021 ++  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
 6.17022 ++
 6.17023 ++_ASEOF
 6.17024 ++}; then
 6.17025 ++  break
 6.17026 ++fi
 6.17027 ++
 6.17028 ++fi
 6.17029 ++
 6.17030 ++      done
 6.17031 ++
 6.17032 ++      if test "x$CONFIG_SHELL" != x; then
 6.17033 ++  for as_var in BASH_ENV ENV
 6.17034 ++        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
 6.17035 ++        done
 6.17036 ++        export CONFIG_SHELL
 6.17037 ++        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
 6.17038 ++fi
 6.17039 ++
 6.17040 ++
 6.17041 ++    if test $as_have_required = no; then
 6.17042 ++  echo This script requires a shell more modern than all the
 6.17043 ++      echo shells that I found on your system.  Please install a
 6.17044 ++      echo modern shell, or manually run the script under such a
 6.17045 ++      echo shell if you do have one.
 6.17046 ++      { (exit 1); exit 1; }
 6.17047 ++fi
 6.17048 ++
 6.17049 ++
 6.17050 ++fi
 6.17051 ++
 6.17052 ++fi
 6.17053 ++
 6.17054 ++
 6.17055 ++
 6.17056 ++(eval "as_func_return () {
 6.17057 ++  (exit \$1)
 6.17058 ++}
 6.17059 ++as_func_success () {
 6.17060 ++  as_func_return 0
 6.17061 ++}
 6.17062 ++as_func_failure () {
 6.17063 ++  as_func_return 1
 6.17064 ++}
 6.17065 ++as_func_ret_success () {
 6.17066 ++  return 0
 6.17067 ++}
 6.17068 ++as_func_ret_failure () {
 6.17069 ++  return 1
 6.17070 ++}
 6.17071 ++
 6.17072 ++exitcode=0
 6.17073 ++if as_func_success; then
 6.17074 ++  :
 6.17075 ++else
 6.17076 ++  exitcode=1
 6.17077 ++  echo as_func_success failed.
 6.17078 ++fi
 6.17079 ++
 6.17080 ++if as_func_failure; then
 6.17081 ++  exitcode=1
 6.17082 ++  echo as_func_failure succeeded.
 6.17083 ++fi
 6.17084 ++
 6.17085 ++if as_func_ret_success; then
 6.17086 ++  :
 6.17087 ++else
 6.17088 ++  exitcode=1
 6.17089 ++  echo as_func_ret_success failed.
 6.17090 ++fi
 6.17091 ++
 6.17092 ++if as_func_ret_failure; then
 6.17093 ++  exitcode=1
 6.17094 ++  echo as_func_ret_failure succeeded.
 6.17095 ++fi
 6.17096 ++
 6.17097 ++if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
 6.17098 ++  :
 6.17099 ++else
 6.17100 ++  exitcode=1
 6.17101 ++  echo positional parameters were not saved.
 6.17102 ++fi
 6.17103 ++
 6.17104 ++test \$exitcode = 0") || {
 6.17105 ++  echo No shell found that supports shell functions.
 6.17106 ++  echo Please tell autoconf@gnu.org about your system,
 6.17107 ++  echo including any error possibly output before this
 6.17108 ++  echo message
 6.17109 ++}
 6.17110 ++
 6.17111 ++
 6.17112 ++
 6.17113 ++  as_lineno_1=$LINENO
 6.17114 ++  as_lineno_2=$LINENO
 6.17115 ++  test "x$as_lineno_1" != "x$as_lineno_2" &&
 6.17116 ++  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
 6.17117 ++
 6.17118 ++  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
 6.17119 ++  # uniformly replaced by the line number.  The first 'sed' inserts a
 6.17120 ++  # line-number line after each line using $LINENO; the second 'sed'
 6.17121 ++  # does the real work.  The second script uses 'N' to pair each
 6.17122 ++  # line-number line with the line containing $LINENO, and appends
 6.17123 ++  # trailing '-' during substitution so that $LINENO is not a special
 6.17124 ++  # case at line end.
 6.17125 ++  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
 6.17126 ++  # scripts with optimization help from Paolo Bonzini.  Blame Lee
 6.17127 ++  # E. McMahon (1931-1989) for sed's syntax.  :-)
 6.17128 ++  sed -n '
 6.17129 ++    p
 6.17130 ++    /[$]LINENO/=
 6.17131 ++  ' <$as_myself |
 6.17132 ++    sed '
 6.17133 ++      s/[$]LINENO.*/&-/
 6.17134 ++      t lineno
 6.17135 ++      b
 6.17136 ++      :lineno
 6.17137 ++      N
 6.17138 ++      :loop
 6.17139 ++      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
 6.17140 ++      t loop
 6.17141 ++      s/-\n.*//
 6.17142 ++    ' >$as_me.lineno &&
 6.17143 ++  chmod +x "$as_me.lineno" ||
 6.17144 ++    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
 6.17145 ++   { (exit 1); exit 1; }; }
 6.17146 ++
 6.17147 ++  # Don't try to exec as it changes $[0], causing all sort of problems
 6.17148 ++  # (the dirname of $[0] is not the place where we might find the
 6.17149 ++  # original and so on.  Autoconf is especially sensitive to this).
 6.17150 ++  . "./$as_me.lineno"
 6.17151 ++  # Exit status is that of the last command.
 6.17152 ++  exit
 6.17153 ++}
 6.17154 ++
 6.17155 ++
 6.17156 ++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
 6.17157 ++  as_dirname=dirname
 6.17158 ++else
 6.17159 ++  as_dirname=false
 6.17160 ++fi
 6.17161 ++
 6.17162 ++ECHO_C= ECHO_N= ECHO_T=
 6.17163 ++case `echo -n x` in
 6.17164 ++-n*)
 6.17165 ++  case `echo 'x\c'` in
 6.17166 ++  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
 6.17167 ++  *)   ECHO_C='\c';;
 6.17168 ++  esac;;
 6.17169 ++*)
 6.17170 ++  ECHO_N='-n';;
 6.17171 ++esac
 6.17172 ++
 6.17173 ++if expr a : '\(a\)' >/dev/null 2>&1 &&
 6.17174 ++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
 6.17175 ++  as_expr=expr
 6.17176 ++else
 6.17177 ++  as_expr=false
 6.17178 ++fi
 6.17179 ++
 6.17180 ++rm -f conf$$ conf$$.exe conf$$.file
 6.17181 ++if test -d conf$$.dir; then
 6.17182 ++  rm -f conf$$.dir/conf$$.file
 6.17183 ++else
 6.17184 ++  rm -f conf$$.dir
 6.17185 ++  mkdir conf$$.dir
 6.17186 ++fi
 6.17187 ++echo >conf$$.file
 6.17188 ++if ln -s conf$$.file conf$$ 2>/dev/null; then
 6.17189 ++  as_ln_s='ln -s'
 6.17190 ++  # ... but there are two gotchas:
 6.17191 ++  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
 6.17192 ++  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
 6.17193 ++  # In both cases, we have to default to `cp -p'.
 6.17194 ++  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
 6.17195 ++    as_ln_s='cp -p'
 6.17196 ++elif ln conf$$.file conf$$ 2>/dev/null; then
 6.17197 ++  as_ln_s=ln
 6.17198 ++else
 6.17199 ++  as_ln_s='cp -p'
 6.17200 ++fi
 6.17201 ++rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 6.17202 ++rmdir conf$$.dir 2>/dev/null
 6.17203 ++
 6.17204 ++if mkdir -p . 2>/dev/null; then
 6.17205 ++  as_mkdir_p=:
 6.17206 ++else
 6.17207 ++  test -d ./-p && rmdir ./-p
 6.17208 ++  as_mkdir_p=false
 6.17209 ++fi
 6.17210 ++
 6.17211 ++if test -x / >/dev/null 2>&1; then
 6.17212 ++  as_test_x='test -x'
 6.17213 ++else
 6.17214 ++  if ls -dL / >/dev/null 2>&1; then
 6.17215 ++    as_ls_L_option=L
 6.17216 ++  else
 6.17217 ++    as_ls_L_option=
 6.17218 ++  fi
 6.17219 ++  as_test_x='
 6.17220 ++    eval sh -c '\''
 6.17221 ++      if test -d "$1"; then
 6.17222 ++        test -d "$1/.";
 6.17223 ++      else
 6.17224 ++	case $1 in
 6.17225 ++        -*)set "./$1";;
 6.17226 ++	esac;
 6.17227 ++	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
 6.17228 ++	???[sx]*):;;*)false;;esac;fi
 6.17229 ++    '\'' sh
 6.17230 ++  '
 6.17231 ++fi
 6.17232 ++as_executable_p=$as_test_x
 6.17233 ++
 6.17234 ++# Sed expression to map a string onto a valid CPP name.
 6.17235 ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 6.17236 ++
 6.17237 ++# Sed expression to map a string onto a valid variable name.
 6.17238 ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 6.17239 ++
 6.17240 ++
 6.17241 ++
 6.17242 ++exec 7<&0 </dev/null 6>&1
 6.17243 ++
 6.17244 ++# Name of the host.
 6.17245 ++# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
 6.17246 ++# so uname gets run too.
 6.17247 ++ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
 6.17248 ++
 6.17249 ++#
 6.17250 ++# Initializations.
 6.17251 ++#
 6.17252 ++ac_default_prefix=/usr/local
 6.17253 ++ac_clean_files=
 6.17254 ++ac_config_libobj_dir=.
 6.17255 ++LIBOBJS=
 6.17256 ++cross_compiling=no
 6.17257 ++subdirs=
 6.17258 ++MFLAGS=
 6.17259 ++MAKEFLAGS=
 6.17260 ++SHELL=${CONFIG_SHELL-/bin/sh}
 6.17261 ++
 6.17262 ++# Identity of this package.
 6.17263 ++PACKAGE_NAME='newlib'
 6.17264 ++PACKAGE_TARNAME='newlib'
 6.17265 ++PACKAGE_VERSION='NEWLIB_VERSION'
 6.17266 ++PACKAGE_STRING='newlib NEWLIB_VERSION'
 6.17267 ++PACKAGE_BUGREPORT=''
 6.17268 ++
 6.17269 ++ac_subst_vars='SHELL
 6.17270 ++PATH_SEPARATOR
 6.17271 ++PACKAGE_NAME
 6.17272 ++PACKAGE_TARNAME
 6.17273 ++PACKAGE_VERSION
 6.17274 ++PACKAGE_STRING
 6.17275 ++PACKAGE_BUGREPORT
 6.17276 ++exec_prefix
 6.17277 ++prefix
 6.17278 ++program_transform_name
 6.17279 ++bindir
 6.17280 ++sbindir
 6.17281 ++libexecdir
 6.17282 ++datarootdir
 6.17283 ++datadir
 6.17284 ++sysconfdir
 6.17285 ++sharedstatedir
 6.17286 ++localstatedir
 6.17287 ++includedir
 6.17288 ++oldincludedir
 6.17289 ++docdir
 6.17290 ++infodir
 6.17291 ++htmldir
 6.17292 ++dvidir
 6.17293 ++pdfdir
 6.17294 ++psdir
 6.17295 ++libdir
 6.17296 ++localedir
 6.17297 ++mandir
 6.17298 ++DEFS
 6.17299 ++ECHO_C
 6.17300 ++ECHO_N
 6.17301 ++ECHO_T
 6.17302 ++LIBS
 6.17303 ++build_alias
 6.17304 ++host_alias
 6.17305 ++target_alias
 6.17306 ++MAY_SUPPLY_SYSCALLS_TRUE
 6.17307 ++MAY_SUPPLY_SYSCALLS_FALSE
 6.17308 ++newlib_basedir
 6.17309 ++build
 6.17310 ++build_cpu
 6.17311 ++build_vendor
 6.17312 ++build_os
 6.17313 ++host
 6.17314 ++host_cpu
 6.17315 ++host_vendor
 6.17316 ++host_os
 6.17317 ++target
 6.17318 ++target_cpu
 6.17319 ++target_vendor
 6.17320 ++target_os
 6.17321 ++INSTALL_PROGRAM
 6.17322 ++INSTALL_SCRIPT
 6.17323 ++INSTALL_DATA
 6.17324 ++PACKAGE
 6.17325 ++VERSION
 6.17326 ++ACLOCAL
 6.17327 ++AUTOCONF
 6.17328 ++AUTOMAKE
 6.17329 ++AUTOHEADER
 6.17330 ++MAKEINFO
 6.17331 ++SET_MAKE
 6.17332 ++CC
 6.17333 ++AS
 6.17334 ++AR
 6.17335 ++RANLIB
 6.17336 ++MAINTAINER_MODE_TRUE
 6.17337 ++MAINTAINER_MODE_FALSE
 6.17338 ++MAINT
 6.17339 ++NEWLIB_CFLAGS
 6.17340 ++LDFLAGS
 6.17341 ++ELIX_LEVEL_0_TRUE
 6.17342 ++ELIX_LEVEL_0_FALSE
 6.17343 ++ELIX_LEVEL_1_TRUE
 6.17344 ++ELIX_LEVEL_1_FALSE
 6.17345 ++ELIX_LEVEL_2_TRUE
 6.17346 ++ELIX_LEVEL_2_FALSE
 6.17347 ++ELIX_LEVEL_3_TRUE
 6.17348 ++ELIX_LEVEL_3_FALSE
 6.17349 ++ELIX_LEVEL_4_TRUE
 6.17350 ++ELIX_LEVEL_4_FALSE
 6.17351 ++USE_LIBTOOL_TRUE
 6.17352 ++USE_LIBTOOL_FALSE
 6.17353 ++OBJEXT
 6.17354 ++oext
 6.17355 ++aext
 6.17356 ++libm_machine_dir
 6.17357 ++machine_dir
 6.17358 ++sys_dir
 6.17359 ++LIBOBJS
 6.17360 ++LTLIBOBJS'
 6.17361 ++ac_subst_files=''
 6.17362 ++      ac_precious_vars='build_alias
 6.17363 ++host_alias
 6.17364 ++target_alias'
 6.17365 ++
 6.17366 ++
 6.17367 ++# Initialize some variables set by options.
 6.17368 ++ac_init_help=
 6.17369 ++ac_init_version=false
 6.17370 ++# The variables have the same names as the options, with
 6.17371 ++# dashes changed to underlines.
 6.17372 ++cache_file=/dev/null
 6.17373 ++exec_prefix=NONE
 6.17374 ++no_create=
 6.17375 ++no_recursion=
 6.17376 ++prefix=NONE
 6.17377 ++program_prefix=NONE
 6.17378 ++program_suffix=NONE
 6.17379 ++program_transform_name=s,x,x,
 6.17380 ++silent=
 6.17381 ++site=
 6.17382 ++srcdir=
 6.17383 ++verbose=
 6.17384 ++x_includes=NONE
 6.17385 ++x_libraries=NONE
 6.17386 ++
 6.17387 ++# Installation directory options.
 6.17388 ++# These are left unexpanded so users can "make install exec_prefix=/foo"
 6.17389 ++# and all the variables that are supposed to be based on exec_prefix
 6.17390 ++# by default will actually change.
 6.17391 ++# Use braces instead of parens because sh, perl, etc. also accept them.
 6.17392 ++# (The list follows the same order as the GNU Coding Standards.)
 6.17393 ++bindir='${exec_prefix}/bin'
 6.17394 ++sbindir='${exec_prefix}/sbin'
 6.17395 ++libexecdir='${exec_prefix}/libexec'
 6.17396 ++datarootdir='${prefix}/share'
 6.17397 ++datadir='${datarootdir}'
 6.17398 ++sysconfdir='${prefix}/etc'
 6.17399 ++sharedstatedir='${prefix}/com'
 6.17400 ++localstatedir='${prefix}/var'
 6.17401 ++includedir='${prefix}/include'
 6.17402 ++oldincludedir='/usr/include'
 6.17403 ++docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
 6.17404 ++infodir='${datarootdir}/info'
 6.17405 ++htmldir='${docdir}'
 6.17406 ++dvidir='${docdir}'
 6.17407 ++pdfdir='${docdir}'
 6.17408 ++psdir='${docdir}'
 6.17409 ++libdir='${exec_prefix}/lib'
 6.17410 ++localedir='${datarootdir}/locale'
 6.17411 ++mandir='${datarootdir}/man'
 6.17412 ++
 6.17413 ++ac_prev=
 6.17414 ++ac_dashdash=
 6.17415 ++for ac_option
 6.17416 ++do
 6.17417 ++  # If the previous option needs an argument, assign it.
 6.17418 ++  if test -n "$ac_prev"; then
 6.17419 ++    eval $ac_prev=\$ac_option
 6.17420 ++    ac_prev=
 6.17421 ++    continue
 6.17422 ++  fi
 6.17423 ++
 6.17424 ++  case $ac_option in
 6.17425 ++  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
 6.17426 ++  *)	ac_optarg=yes ;;
 6.17427 ++  esac
 6.17428 ++
 6.17429 ++  # Accept the important Cygnus configure options, so we can diagnose typos.
 6.17430 ++
 6.17431 ++  case $ac_dashdash$ac_option in
 6.17432 ++  --)
 6.17433 ++    ac_dashdash=yes ;;
 6.17434 ++
 6.17435 ++  -bindir | --bindir | --bindi | --bind | --bin | --bi)
 6.17436 ++    ac_prev=bindir ;;
 6.17437 ++  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
 6.17438 ++    bindir=$ac_optarg ;;
 6.17439 ++
 6.17440 ++  -build | --build | --buil | --bui | --bu)
 6.17441 ++    ac_prev=build_alias ;;
 6.17442 ++  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
 6.17443 ++    build_alias=$ac_optarg ;;
 6.17444 ++
 6.17445 ++  -cache-file | --cache-file | --cache-fil | --cache-fi \
 6.17446 ++  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
 6.17447 ++    ac_prev=cache_file ;;
 6.17448 ++  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
 6.17449 ++  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
 6.17450 ++    cache_file=$ac_optarg ;;
 6.17451 ++
 6.17452 ++  --config-cache | -C)
 6.17453 ++    cache_file=config.cache ;;
 6.17454 ++
 6.17455 ++  -datadir | --datadir | --datadi | --datad)
 6.17456 ++    ac_prev=datadir ;;
 6.17457 ++  -datadir=* | --datadir=* | --datadi=* | --datad=*)
 6.17458 ++    datadir=$ac_optarg ;;
 6.17459 ++
 6.17460 ++  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
 6.17461 ++  | --dataroo | --dataro | --datar)
 6.17462 ++    ac_prev=datarootdir ;;
 6.17463 ++  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
 6.17464 ++  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
 6.17465 ++    datarootdir=$ac_optarg ;;
 6.17466 ++
 6.17467 ++  -disable-* | --disable-*)
 6.17468 ++    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
 6.17469 ++    # Reject names that are not valid shell variable names.
 6.17470 ++    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
 6.17471 ++      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
 6.17472 ++   { (exit 1); exit 1; }; }
 6.17473 ++    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
 6.17474 ++    eval enable_$ac_feature=no ;;
 6.17475 ++
 6.17476 ++  -docdir | --docdir | --docdi | --doc | --do)
 6.17477 ++    ac_prev=docdir ;;
 6.17478 ++  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
 6.17479 ++    docdir=$ac_optarg ;;
 6.17480 ++
 6.17481 ++  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
 6.17482 ++    ac_prev=dvidir ;;
 6.17483 ++  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
 6.17484 ++    dvidir=$ac_optarg ;;
 6.17485 ++
 6.17486 ++  -enable-* | --enable-*)
 6.17487 ++    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
 6.17488 ++    # Reject names that are not valid shell variable names.
 6.17489 ++    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
 6.17490 ++      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
 6.17491 ++   { (exit 1); exit 1; }; }
 6.17492 ++    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
 6.17493 ++    eval enable_$ac_feature=\$ac_optarg ;;
 6.17494 ++
 6.17495 ++  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
 6.17496 ++  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
 6.17497 ++  | --exec | --exe | --ex)
 6.17498 ++    ac_prev=exec_prefix ;;
 6.17499 ++  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
 6.17500 ++  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
 6.17501 ++  | --exec=* | --exe=* | --ex=*)
 6.17502 ++    exec_prefix=$ac_optarg ;;
 6.17503 ++
 6.17504 ++  -gas | --gas | --ga | --g)
 6.17505 ++    # Obsolete; use --with-gas.
 6.17506 ++    with_gas=yes ;;
 6.17507 ++
 6.17508 ++  -help | --help | --hel | --he | -h)
 6.17509 ++    ac_init_help=long ;;
 6.17510 ++  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
 6.17511 ++    ac_init_help=recursive ;;
 6.17512 ++  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
 6.17513 ++    ac_init_help=short ;;
 6.17514 ++
 6.17515 ++  -host | --host | --hos | --ho)
 6.17516 ++    ac_prev=host_alias ;;
 6.17517 ++  -host=* | --host=* | --hos=* | --ho=*)
 6.17518 ++    host_alias=$ac_optarg ;;
 6.17519 ++
 6.17520 ++  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
 6.17521 ++    ac_prev=htmldir ;;
 6.17522 ++  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
 6.17523 ++  | --ht=*)
 6.17524 ++    htmldir=$ac_optarg ;;
 6.17525 ++
 6.17526 ++  -includedir | --includedir | --includedi | --included | --include \
 6.17527 ++  | --includ | --inclu | --incl | --inc)
 6.17528 ++    ac_prev=includedir ;;
 6.17529 ++  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
 6.17530 ++  | --includ=* | --inclu=* | --incl=* | --inc=*)
 6.17531 ++    includedir=$ac_optarg ;;
 6.17532 ++
 6.17533 ++  -infodir | --infodir | --infodi | --infod | --info | --inf)
 6.17534 ++    ac_prev=infodir ;;
 6.17535 ++  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
 6.17536 ++    infodir=$ac_optarg ;;
 6.17537 ++
 6.17538 ++  -libdir | --libdir | --libdi | --libd)
 6.17539 ++    ac_prev=libdir ;;
 6.17540 ++  -libdir=* | --libdir=* | --libdi=* | --libd=*)
 6.17541 ++    libdir=$ac_optarg ;;
 6.17542 ++
 6.17543 ++  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
 6.17544 ++  | --libexe | --libex | --libe)
 6.17545 ++    ac_prev=libexecdir ;;
 6.17546 ++  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
 6.17547 ++  | --libexe=* | --libex=* | --libe=*)
 6.17548 ++    libexecdir=$ac_optarg ;;
 6.17549 ++
 6.17550 ++  -localedir | --localedir | --localedi | --localed | --locale)
 6.17551 ++    ac_prev=localedir ;;
 6.17552 ++  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
 6.17553 ++    localedir=$ac_optarg ;;
 6.17554 ++
 6.17555 ++  -localstatedir | --localstatedir | --localstatedi | --localstated \
 6.17556 ++  | --localstate | --localstat | --localsta | --localst | --locals)
 6.17557 ++    ac_prev=localstatedir ;;
 6.17558 ++  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
 6.17559 ++  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
 6.17560 ++    localstatedir=$ac_optarg ;;
 6.17561 ++
 6.17562 ++  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
 6.17563 ++    ac_prev=mandir ;;
 6.17564 ++  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
 6.17565 ++    mandir=$ac_optarg ;;
 6.17566 ++
 6.17567 ++  -nfp | --nfp | --nf)
 6.17568 ++    # Obsolete; use --without-fp.
 6.17569 ++    with_fp=no ;;
 6.17570 ++
 6.17571 ++  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
 6.17572 ++  | --no-cr | --no-c | -n)
 6.17573 ++    no_create=yes ;;
 6.17574 ++
 6.17575 ++  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
 6.17576 ++  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
 6.17577 ++    no_recursion=yes ;;
 6.17578 ++
 6.17579 ++  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
 6.17580 ++  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
 6.17581 ++  | --oldin | --oldi | --old | --ol | --o)
 6.17582 ++    ac_prev=oldincludedir ;;
 6.17583 ++  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
 6.17584 ++  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
 6.17585 ++  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
 6.17586 ++    oldincludedir=$ac_optarg ;;
 6.17587 ++
 6.17588 ++  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
 6.17589 ++    ac_prev=prefix ;;
 6.17590 ++  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
 6.17591 ++    prefix=$ac_optarg ;;
 6.17592 ++
 6.17593 ++  -program-prefix | --program-prefix | --program-prefi | --program-pref \
 6.17594 ++  | --program-pre | --program-pr | --program-p)
 6.17595 ++    ac_prev=program_prefix ;;
 6.17596 ++  -program-prefix=* | --program-prefix=* | --program-prefi=* \
 6.17597 ++  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
 6.17598 ++    program_prefix=$ac_optarg ;;
 6.17599 ++
 6.17600 ++  -program-suffix | --program-suffix | --program-suffi | --program-suff \
 6.17601 ++  | --program-suf | --program-su | --program-s)
 6.17602 ++    ac_prev=program_suffix ;;
 6.17603 ++  -program-suffix=* | --program-suffix=* | --program-suffi=* \
 6.17604 ++  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
 6.17605 ++    program_suffix=$ac_optarg ;;
 6.17606 ++
 6.17607 ++  -program-transform-name | --program-transform-name \
 6.17608 ++  | --program-transform-nam | --program-transform-na \
 6.17609 ++  | --program-transform-n | --program-transform- \
 6.17610 ++  | --program-transform | --program-transfor \
 6.17611 ++  | --program-transfo | --program-transf \
 6.17612 ++  | --program-trans | --program-tran \
 6.17613 ++  | --progr-tra | --program-tr | --program-t)
 6.17614 ++    ac_prev=program_transform_name ;;
 6.17615 ++  -program-transform-name=* | --program-transform-name=* \
 6.17616 ++  | --program-transform-nam=* | --program-transform-na=* \
 6.17617 ++  | --program-transform-n=* | --program-transform-=* \
 6.17618 ++  | --program-transform=* | --program-transfor=* \
 6.17619 ++  | --program-transfo=* | --program-transf=* \
 6.17620 ++  | --program-trans=* | --program-tran=* \
 6.17621 ++  | --progr-tra=* | --program-tr=* | --program-t=*)
 6.17622 ++    program_transform_name=$ac_optarg ;;
 6.17623 ++
 6.17624 ++  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
 6.17625 ++    ac_prev=pdfdir ;;
 6.17626 ++  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
 6.17627 ++    pdfdir=$ac_optarg ;;
 6.17628 ++
 6.17629 ++  -psdir | --psdir | --psdi | --psd | --ps)
 6.17630 ++    ac_prev=psdir ;;
 6.17631 ++  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
 6.17632 ++    psdir=$ac_optarg ;;
 6.17633 ++
 6.17634 ++  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
 6.17635 ++  | -silent | --silent | --silen | --sile | --sil)
 6.17636 ++    silent=yes ;;
 6.17637 ++
 6.17638 ++  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
 6.17639 ++    ac_prev=sbindir ;;
 6.17640 ++  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
 6.17641 ++  | --sbi=* | --sb=*)
 6.17642 ++    sbindir=$ac_optarg ;;
 6.17643 ++
 6.17644 ++  -sharedstatedir | --sharedstatedir | --sharedstatedi \
 6.17645 ++  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
 6.17646 ++  | --sharedst | --shareds | --shared | --share | --shar \
 6.17647 ++  | --sha | --sh)
 6.17648 ++    ac_prev=sharedstatedir ;;
 6.17649 ++  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
 6.17650 ++  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
 6.17651 ++  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
 6.17652 ++  | --sha=* | --sh=*)
 6.17653 ++    sharedstatedir=$ac_optarg ;;
 6.17654 ++
 6.17655 ++  -site | --site | --sit)
 6.17656 ++    ac_prev=site ;;
 6.17657 ++  -site=* | --site=* | --sit=*)
 6.17658 ++    site=$ac_optarg ;;
 6.17659 ++
 6.17660 ++  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
 6.17661 ++    ac_prev=srcdir ;;
 6.17662 ++  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
 6.17663 ++    srcdir=$ac_optarg ;;
 6.17664 ++
 6.17665 ++  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
 6.17666 ++  | --syscon | --sysco | --sysc | --sys | --sy)
 6.17667 ++    ac_prev=sysconfdir ;;
 6.17668 ++  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
 6.17669 ++  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
 6.17670 ++    sysconfdir=$ac_optarg ;;
 6.17671 ++
 6.17672 ++  -target | --target | --targe | --targ | --tar | --ta | --t)
 6.17673 ++    ac_prev=target_alias ;;
 6.17674 ++  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
 6.17675 ++    target_alias=$ac_optarg ;;
 6.17676 ++
 6.17677 ++  -v | -verbose | --verbose | --verbos | --verbo | --verb)
 6.17678 ++    verbose=yes ;;
 6.17679 ++
 6.17680 ++  -version | --version | --versio | --versi | --vers | -V)
 6.17681 ++    ac_init_version=: ;;
 6.17682 ++
 6.17683 ++  -with-* | --with-*)
 6.17684 ++    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
 6.17685 ++    # Reject names that are not valid shell variable names.
 6.17686 ++    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
 6.17687 ++      { echo "$as_me: error: invalid package name: $ac_package" >&2
 6.17688 ++   { (exit 1); exit 1; }; }
 6.17689 ++    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
 6.17690 ++    eval with_$ac_package=\$ac_optarg ;;
 6.17691 ++
 6.17692 ++  -without-* | --without-*)
 6.17693 ++    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
 6.17694 ++    # Reject names that are not valid shell variable names.
 6.17695 ++    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
 6.17696 ++      { echo "$as_me: error: invalid package name: $ac_package" >&2
 6.17697 ++   { (exit 1); exit 1; }; }
 6.17698 ++    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
 6.17699 ++    eval with_$ac_package=no ;;
 6.17700 ++
 6.17701 ++  --x)
 6.17702 ++    # Obsolete; use --with-x.
 6.17703 ++    with_x=yes ;;
 6.17704 ++
 6.17705 ++  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
 6.17706 ++  | --x-incl | --x-inc | --x-in | --x-i)
 6.17707 ++    ac_prev=x_includes ;;
 6.17708 ++  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
 6.17709 ++  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
 6.17710 ++    x_includes=$ac_optarg ;;
 6.17711 ++
 6.17712 ++  -x-libraries | --x-libraries | --x-librarie | --x-librari \
 6.17713 ++  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
 6.17714 ++    ac_prev=x_libraries ;;
 6.17715 ++  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
 6.17716 ++  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
 6.17717 ++    x_libraries=$ac_optarg ;;
 6.17718 ++
 6.17719 ++  -*) { echo "$as_me: error: unrecognized option: $ac_option
 6.17720 ++Try \`$0 --help' for more information." >&2
 6.17721 ++   { (exit 1); exit 1; }; }
 6.17722 ++    ;;
 6.17723 ++
 6.17724 ++  *=*)
 6.17725 ++    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
 6.17726 ++    # Reject names that are not valid shell variable names.
 6.17727 ++    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
 6.17728 ++      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
 6.17729 ++   { (exit 1); exit 1; }; }
 6.17730 ++    eval $ac_envvar=\$ac_optarg
 6.17731 ++    export $ac_envvar ;;
 6.17732 ++
 6.17733 ++  *)
 6.17734 ++    # FIXME: should be removed in autoconf 3.0.
 6.17735 ++    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
 6.17736 ++    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
 6.17737 ++      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
 6.17738 ++    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
 6.17739 ++    ;;
 6.17740 ++
 6.17741 ++  esac
 6.17742 ++done
 6.17743 ++
 6.17744 ++if test -n "$ac_prev"; then
 6.17745 ++  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
 6.17746 ++  { echo "$as_me: error: missing argument to $ac_option" >&2
 6.17747 ++   { (exit 1); exit 1; }; }
 6.17748 ++fi
 6.17749 ++
 6.17750 ++# Be sure to have absolute directory names.
 6.17751 ++for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 6.17752 ++		datadir sysconfdir sharedstatedir localstatedir includedir \
 6.17753 ++		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
 6.17754 ++		libdir localedir mandir
 6.17755 ++do
 6.17756 ++  eval ac_val=\$$ac_var
 6.17757 ++  case $ac_val in
 6.17758 ++    [\\/$]* | ?:[\\/]* )  continue;;
 6.17759 ++    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
 6.17760 ++  esac
 6.17761 ++  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
 6.17762 ++   { (exit 1); exit 1; }; }
 6.17763 ++done
 6.17764 ++
 6.17765 ++# There might be people who depend on the old broken behavior: `$host'
 6.17766 ++# used to hold the argument of --host etc.
 6.17767 ++# FIXME: To remove some day.
 6.17768 ++build=$build_alias
 6.17769 ++host=$host_alias
 6.17770 ++target=$target_alias
 6.17771 ++
 6.17772 ++# FIXME: To remove some day.
 6.17773 ++if test "x$host_alias" != x; then
 6.17774 ++  if test "x$build_alias" = x; then
 6.17775 ++    cross_compiling=maybe
 6.17776 ++    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
 6.17777 ++    If a cross compiler is detected then cross compile mode will be used." >&2
 6.17778 ++  elif test "x$build_alias" != "x$host_alias"; then
 6.17779 ++    cross_compiling=yes
 6.17780 ++  fi
 6.17781 ++fi
 6.17782 ++
 6.17783 ++ac_tool_prefix=
 6.17784 ++test -n "$host_alias" && ac_tool_prefix=$host_alias-
 6.17785 ++
 6.17786 ++test "$silent" = yes && exec 6>/dev/null
 6.17787 ++
 6.17788 ++
 6.17789 ++ac_pwd=`pwd` && test -n "$ac_pwd" &&
 6.17790 ++ac_ls_di=`ls -di .` &&
 6.17791 ++ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
 6.17792 ++  { echo "$as_me: error: Working directory cannot be determined" >&2
 6.17793 ++   { (exit 1); exit 1; }; }
 6.17794 ++test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
 6.17795 ++  { echo "$as_me: error: pwd does not report name of working directory" >&2
 6.17796 ++   { (exit 1); exit 1; }; }
 6.17797 ++
 6.17798 ++
 6.17799 ++# Find the source files, if location was not specified.
 6.17800 ++if test -z "$srcdir"; then
 6.17801 ++  ac_srcdir_defaulted=yes
 6.17802 ++  # Try the directory containing this script, then the parent directory.
 6.17803 ++  ac_confdir=`$as_dirname -- "$0" ||
 6.17804 ++$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.17805 ++	 X"$0" : 'X\(//\)[^/]' \| \
 6.17806 ++	 X"$0" : 'X\(//\)$' \| \
 6.17807 ++	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
 6.17808 ++echo X"$0" |
 6.17809 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 6.17810 ++	    s//\1/
 6.17811 ++	    q
 6.17812 ++	  }
 6.17813 ++	  /^X\(\/\/\)[^/].*/{
 6.17814 ++	    s//\1/
 6.17815 ++	    q
 6.17816 ++	  }
 6.17817 ++	  /^X\(\/\/\)$/{
 6.17818 ++	    s//\1/
 6.17819 ++	    q
 6.17820 ++	  }
 6.17821 ++	  /^X\(\/\).*/{
 6.17822 ++	    s//\1/
 6.17823 ++	    q
 6.17824 ++	  }
 6.17825 ++	  s/.*/./; q'`
 6.17826 ++  srcdir=$ac_confdir
 6.17827 ++  if test ! -r "$srcdir/$ac_unique_file"; then
 6.17828 ++    srcdir=..
 6.17829 ++  fi
 6.17830 ++else
 6.17831 ++  ac_srcdir_defaulted=no
 6.17832 ++fi
 6.17833 ++if test ! -r "$srcdir/$ac_unique_file"; then
 6.17834 ++  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
 6.17835 ++  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
 6.17836 ++   { (exit 1); exit 1; }; }
 6.17837 ++fi
 6.17838 ++ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
 6.17839 ++ac_abs_confdir=`(
 6.17840 ++	cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
 6.17841 ++   { (exit 1); exit 1; }; }
 6.17842 ++	pwd)`
 6.17843 ++# When building in place, set srcdir=.
 6.17844 ++if test "$ac_abs_confdir" = "$ac_pwd"; then
 6.17845 ++  srcdir=.
 6.17846 ++fi
 6.17847 ++# Remove unnecessary trailing slashes from srcdir.
 6.17848 ++# Double slashes in file names in object file debugging info
 6.17849 ++# mess up M-x gdb in Emacs.
 6.17850 ++case $srcdir in
 6.17851 ++*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
 6.17852 ++esac
 6.17853 ++for ac_var in $ac_precious_vars; do
 6.17854 ++  eval ac_env_${ac_var}_set=\${${ac_var}+set}
 6.17855 ++  eval ac_env_${ac_var}_value=\$${ac_var}
 6.17856 ++  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
 6.17857 ++  eval ac_cv_env_${ac_var}_value=\$${ac_var}
 6.17858 ++done
 6.17859 ++
 6.17860 ++#
 6.17861 ++# Report the --help message.
 6.17862 ++#
 6.17863 ++if test "$ac_init_help" = "long"; then
 6.17864 ++  # Omit some internal or obsolete options to make the list less imposing.
 6.17865 ++  # This message is too long to be a string in the A/UX 3.1 sh.
 6.17866 ++  cat <<_ACEOF
 6.17867 ++\`configure' configures newlib NEWLIB_VERSION to adapt to many kinds of systems.
 6.17868 ++
 6.17869 ++Usage: $0 [OPTION]... [VAR=VALUE]...
 6.17870 ++
 6.17871 ++To assign environment variables (e.g., CC, CFLAGS...), specify them as
 6.17872 ++VAR=VALUE.  See below for descriptions of some of the useful variables.
 6.17873 ++
 6.17874 ++Defaults for the options are specified in brackets.
 6.17875 ++
 6.17876 ++Configuration:
 6.17877 ++  -h, --help              display this help and exit
 6.17878 ++      --help=short        display options specific to this package
 6.17879 ++      --help=recursive    display the short help of all the included packages
 6.17880 ++  -V, --version           display version information and exit
 6.17881 ++  -q, --quiet, --silent   do not print \`checking...' messages
 6.17882 ++      --cache-file=FILE   cache test results in FILE [disabled]
 6.17883 ++  -C, --config-cache      alias for \`--cache-file=config.cache'
 6.17884 ++  -n, --no-create         do not create output files
 6.17885 ++      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
 6.17886 ++
 6.17887 ++Installation directories:
 6.17888 ++  --prefix=PREFIX         install architecture-independent files in PREFIX
 6.17889 ++			  [$ac_default_prefix]
 6.17890 ++  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
 6.17891 ++			  [PREFIX]
 6.17892 ++
 6.17893 ++By default, \`make install' will install all the files in
 6.17894 ++\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
 6.17895 ++an installation prefix other than \`$ac_default_prefix' using \`--prefix',
 6.17896 ++for instance \`--prefix=\$HOME'.
 6.17897 ++
 6.17898 ++For better control, use the options below.
 6.17899 ++
 6.17900 ++Fine tuning of the installation directories:
 6.17901 ++  --bindir=DIR           user executables [EPREFIX/bin]
 6.17902 ++  --sbindir=DIR          system admin executables [EPREFIX/sbin]
 6.17903 ++  --libexecdir=DIR       program executables [EPREFIX/libexec]
 6.17904 ++  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
 6.17905 ++  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
 6.17906 ++  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
 6.17907 ++  --libdir=DIR           object code libraries [EPREFIX/lib]
 6.17908 ++  --includedir=DIR       C header files [PREFIX/include]
 6.17909 ++  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
 6.17910 ++  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]
 6.17911 ++  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]
 6.17912 ++  --infodir=DIR          info documentation [DATAROOTDIR/info]
 6.17913 ++  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]
 6.17914 ++  --mandir=DIR           man documentation [DATAROOTDIR/man]
 6.17915 ++  --docdir=DIR           documentation root [DATAROOTDIR/doc/newlib]
 6.17916 ++  --htmldir=DIR          html documentation [DOCDIR]
 6.17917 ++  --dvidir=DIR           dvi documentation [DOCDIR]
 6.17918 ++  --pdfdir=DIR           pdf documentation [DOCDIR]
 6.17919 ++  --psdir=DIR            ps documentation [DOCDIR]
 6.17920 ++_ACEOF
 6.17921 ++
 6.17922 ++  cat <<\_ACEOF
 6.17923 ++
 6.17924 ++Program names:
 6.17925 ++  --program-prefix=PREFIX            prepend PREFIX to installed program names
 6.17926 ++  --program-suffix=SUFFIX            append SUFFIX to installed program names
 6.17927 ++  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
 6.17928 ++
 6.17929 ++System types:
 6.17930 ++  --build=BUILD     configure for building on BUILD [guessed]
 6.17931 ++  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
 6.17932 ++  --target=TARGET   configure for building compilers for TARGET [HOST]
 6.17933 ++_ACEOF
 6.17934 ++fi
 6.17935 ++
 6.17936 ++if test -n "$ac_init_help"; then
 6.17937 ++  case $ac_init_help in
 6.17938 ++     short | recursive ) echo "Configuration of newlib NEWLIB_VERSION:";;
 6.17939 ++   esac
 6.17940 ++  cat <<\_ACEOF
 6.17941 ++
 6.17942 ++Optional Features:
 6.17943 ++  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
 6.17944 ++  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
 6.17945 ++  --enable-multilib         build many library versions (default)
 6.17946 ++  --enable-target-optspace  optimize for space
 6.17947 ++  --enable-malloc-debugging indicate malloc debugging requested
 6.17948 ++  --enable-newlib-multithread        enable support for multiple threads
 6.17949 ++  --enable-newlib-iconv     enable iconv library support
 6.17950 ++  --enable-newlib-elix-level         supply desired elix library level (1-4)
 6.17951 ++  --disable-newlib-io-float disable printf/scanf family float support
 6.17952 ++  --disable-newlib-supplied-syscalls disable newlib from supplying syscalls
 6.17953 ++  --enable-maintainer-mode enable make rules and dependencies not useful
 6.17954 ++                          (and sometimes confusing) to the casual installer
 6.17955 ++
 6.17956 ++_ACEOF
 6.17957 ++ac_status=$?
 6.17958 ++fi
 6.17959 ++
 6.17960 ++if test "$ac_init_help" = "recursive"; then
 6.17961 ++  # If there are subdirs, report their specific --help.
 6.17962 ++  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
 6.17963 ++    test -d "$ac_dir" || continue
 6.17964 ++    ac_builddir=.
 6.17965 ++
 6.17966 ++case "$ac_dir" in
 6.17967 ++.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 6.17968 ++*)
 6.17969 ++  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
 6.17970 ++  # A ".." for each directory in $ac_dir_suffix.
 6.17971 ++  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
 6.17972 ++  case $ac_top_builddir_sub in
 6.17973 ++  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
 6.17974 ++  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
 6.17975 ++  esac ;;
 6.17976 ++esac
 6.17977 ++ac_abs_top_builddir=$ac_pwd
 6.17978 ++ac_abs_builddir=$ac_pwd$ac_dir_suffix
 6.17979 ++# for backward compatibility:
 6.17980 ++ac_top_builddir=$ac_top_build_prefix
 6.17981 ++
 6.17982 ++case $srcdir in
 6.17983 ++  .)  # We are building in place.
 6.17984 ++    ac_srcdir=.
 6.17985 ++    ac_top_srcdir=$ac_top_builddir_sub
 6.17986 ++    ac_abs_top_srcdir=$ac_pwd ;;
 6.17987 ++  [\\/]* | ?:[\\/]* )  # Absolute name.
 6.17988 ++    ac_srcdir=$srcdir$ac_dir_suffix;
 6.17989 ++    ac_top_srcdir=$srcdir
 6.17990 ++    ac_abs_top_srcdir=$srcdir ;;
 6.17991 ++  *) # Relative name.
 6.17992 ++    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
 6.17993 ++    ac_top_srcdir=$ac_top_build_prefix$srcdir
 6.17994 ++    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
 6.17995 ++esac
 6.17996 ++ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 6.17997 ++
 6.17998 ++    cd "$ac_dir" || { ac_status=$?; continue; }
 6.17999 ++    # Check for guested configure.
 6.18000 ++    if test -f "$ac_srcdir/configure.gnu"; then
 6.18001 ++      echo &&
 6.18002 ++      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
 6.18003 ++    elif test -f "$ac_srcdir/configure"; then
 6.18004 ++      echo &&
 6.18005 ++      $SHELL "$ac_srcdir/configure" --help=recursive
 6.18006 ++    else
 6.18007 ++      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
 6.18008 ++    fi || ac_status=$?
 6.18009 ++    cd "$ac_pwd" || { ac_status=$?; break; }
 6.18010 ++  done
 6.18011 ++fi
 6.18012 ++
 6.18013 ++test -n "$ac_init_help" && exit $ac_status
 6.18014 ++if $ac_init_version; then
 6.18015 ++  cat <<\_ACEOF
 6.18016 ++newlib configure NEWLIB_VERSION
 6.18017 ++generated by GNU Autoconf 2.61
 6.18018 ++
 6.18019 ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 6.18020 ++2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 6.18021 ++This configure script is free software; the Free Software Foundation
 6.18022 ++gives unlimited permission to copy, distribute and modify it.
 6.18023 ++_ACEOF
 6.18024 ++  exit
 6.18025 ++fi
 6.18026 ++cat >config.log <<_ACEOF
 6.18027 ++This file contains any messages produced by compilers while
 6.18028 ++running configure, to aid debugging if configure makes a mistake.
 6.18029 ++
 6.18030 ++It was created by newlib $as_me NEWLIB_VERSION, which was
 6.18031 ++generated by GNU Autoconf 2.61.  Invocation command line was
 6.18032 ++
 6.18033 ++  $ $0 $@
 6.18034 ++
 6.18035 ++_ACEOF
 6.18036 ++exec 5>>config.log
 6.18037 ++{
 6.18038 ++cat <<_ASUNAME
 6.18039 ++## --------- ##
 6.18040 ++## Platform. ##
 6.18041 ++## --------- ##
 6.18042 ++
 6.18043 ++hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
 6.18044 ++uname -m = `(uname -m) 2>/dev/null || echo unknown`
 6.18045 ++uname -r = `(uname -r) 2>/dev/null || echo unknown`
 6.18046 ++uname -s = `(uname -s) 2>/dev/null || echo unknown`
 6.18047 ++uname -v = `(uname -v) 2>/dev/null || echo unknown`
 6.18048 ++
 6.18049 ++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
 6.18050 ++/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
 6.18051 ++
 6.18052 ++/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
 6.18053 ++/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
 6.18054 ++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
 6.18055 ++/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
 6.18056 ++/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
 6.18057 ++/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
 6.18058 ++/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
 6.18059 ++
 6.18060 ++_ASUNAME
 6.18061 ++
 6.18062 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.18063 ++for as_dir in $PATH
 6.18064 ++do
 6.18065 ++  IFS=$as_save_IFS
 6.18066 ++  test -z "$as_dir" && as_dir=.
 6.18067 ++  echo "PATH: $as_dir"
 6.18068 ++done
 6.18069 ++IFS=$as_save_IFS
 6.18070 ++
 6.18071 ++} >&5
 6.18072 ++
 6.18073 ++cat >&5 <<_ACEOF
 6.18074 ++
 6.18075 ++
 6.18076 ++## ----------- ##
 6.18077 ++## Core tests. ##
 6.18078 ++## ----------- ##
 6.18079 ++
 6.18080 ++_ACEOF
 6.18081 ++
 6.18082 ++
 6.18083 ++# Keep a trace of the command line.
 6.18084 ++# Strip out --no-create and --no-recursion so they do not pile up.
 6.18085 ++# Strip out --silent because we don't want to record it for future runs.
 6.18086 ++# Also quote any args containing shell meta-characters.
 6.18087 ++# Make two passes to allow for proper duplicate-argument suppression.
 6.18088 ++ac_configure_args=
 6.18089 ++ac_configure_args0=
 6.18090 ++ac_configure_args1=
 6.18091 ++ac_must_keep_next=false
 6.18092 ++for ac_pass in 1 2
 6.18093 ++do
 6.18094 ++  for ac_arg
 6.18095 ++  do
 6.18096 ++    case $ac_arg in
 6.18097 ++    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
 6.18098 ++    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
 6.18099 ++    | -silent | --silent | --silen | --sile | --sil)
 6.18100 ++      continue ;;
 6.18101 ++    *\'*)
 6.18102 ++      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
 6.18103 ++    esac
 6.18104 ++    case $ac_pass in
 6.18105 ++    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
 6.18106 ++    2)
 6.18107 ++      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
 6.18108 ++      if test $ac_must_keep_next = true; then
 6.18109 ++	ac_must_keep_next=false # Got value, back to normal.
 6.18110 ++      else
 6.18111 ++	case $ac_arg in
 6.18112 ++	  *=* | --config-cache | -C | -disable-* | --disable-* \
 6.18113 ++	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
 6.18114 ++	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
 6.18115 ++	  | -with-* | --with-* | -without-* | --without-* | --x)
 6.18116 ++	    case "$ac_configure_args0 " in
 6.18117 ++	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
 6.18118 ++	    esac
 6.18119 ++	    ;;
 6.18120 ++	  -* ) ac_must_keep_next=true ;;
 6.18121 ++	esac
 6.18122 ++      fi
 6.18123 ++      ac_configure_args="$ac_configure_args '$ac_arg'"
 6.18124 ++      ;;
 6.18125 ++    esac
 6.18126 ++  done
 6.18127 ++done
 6.18128 ++$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
 6.18129 ++$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
 6.18130 ++
 6.18131 ++# When interrupted or exit'd, cleanup temporary files, and complete
 6.18132 ++# config.log.  We remove comments because anyway the quotes in there
 6.18133 ++# would cause problems or look ugly.
 6.18134 ++# WARNING: Use '\'' to represent an apostrophe within the trap.
 6.18135 ++# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
 6.18136 ++trap 'exit_status=$?
 6.18137 ++  # Save into config.log some information that might help in debugging.
 6.18138 ++  {
 6.18139 ++    echo
 6.18140 ++
 6.18141 ++    cat <<\_ASBOX
 6.18142 ++## ---------------- ##
 6.18143 ++## Cache variables. ##
 6.18144 ++## ---------------- ##
 6.18145 ++_ASBOX
 6.18146 ++    echo
 6.18147 ++    # The following way of writing the cache mishandles newlines in values,
 6.18148 ++(
 6.18149 ++  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
 6.18150 ++    eval ac_val=\$$ac_var
 6.18151 ++    case $ac_val in #(
 6.18152 ++    *${as_nl}*)
 6.18153 ++      case $ac_var in #(
 6.18154 ++      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
 6.18155 ++echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
 6.18156 ++      esac
 6.18157 ++      case $ac_var in #(
 6.18158 ++      _ | IFS | as_nl) ;; #(
 6.18159 ++      *) $as_unset $ac_var ;;
 6.18160 ++      esac ;;
 6.18161 ++    esac
 6.18162 ++  done
 6.18163 ++  (set) 2>&1 |
 6.18164 ++    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
 6.18165 ++    *${as_nl}ac_space=\ *)
 6.18166 ++      sed -n \
 6.18167 ++	"s/'\''/'\''\\\\'\'''\''/g;
 6.18168 ++	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
 6.18169 ++      ;; #(
 6.18170 ++    *)
 6.18171 ++      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
 6.18172 ++      ;;
 6.18173 ++    esac |
 6.18174 ++    sort
 6.18175 ++)
 6.18176 ++    echo
 6.18177 ++
 6.18178 ++    cat <<\_ASBOX
 6.18179 ++## ----------------- ##
 6.18180 ++## Output variables. ##
 6.18181 ++## ----------------- ##
 6.18182 ++_ASBOX
 6.18183 ++    echo
 6.18184 ++    for ac_var in $ac_subst_vars
 6.18185 ++    do
 6.18186 ++      eval ac_val=\$$ac_var
 6.18187 ++      case $ac_val in
 6.18188 ++      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
 6.18189 ++      esac
 6.18190 ++      echo "$ac_var='\''$ac_val'\''"
 6.18191 ++    done | sort
 6.18192 ++    echo
 6.18193 ++
 6.18194 ++    if test -n "$ac_subst_files"; then
 6.18195 ++      cat <<\_ASBOX
 6.18196 ++## ------------------- ##
 6.18197 ++## File substitutions. ##
 6.18198 ++## ------------------- ##
 6.18199 ++_ASBOX
 6.18200 ++      echo
 6.18201 ++      for ac_var in $ac_subst_files
 6.18202 ++      do
 6.18203 ++	eval ac_val=\$$ac_var
 6.18204 ++	case $ac_val in
 6.18205 ++	*\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
 6.18206 ++	esac
 6.18207 ++	echo "$ac_var='\''$ac_val'\''"
 6.18208 ++      done | sort
 6.18209 ++      echo
 6.18210 ++    fi
 6.18211 ++
 6.18212 ++    if test -s confdefs.h; then
 6.18213 ++      cat <<\_ASBOX
 6.18214 ++## ----------- ##
 6.18215 ++## confdefs.h. ##
 6.18216 ++## ----------- ##
 6.18217 ++_ASBOX
 6.18218 ++      echo
 6.18219 ++      cat confdefs.h
 6.18220 ++      echo
 6.18221 ++    fi
 6.18222 ++    test "$ac_signal" != 0 &&
 6.18223 ++      echo "$as_me: caught signal $ac_signal"
 6.18224 ++    echo "$as_me: exit $exit_status"
 6.18225 ++  } >&5
 6.18226 ++  rm -f core *.core core.conftest.* &&
 6.18227 ++    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
 6.18228 ++    exit $exit_status
 6.18229 ++' 0
 6.18230 ++for ac_signal in 1 2 13 15; do
 6.18231 ++  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
 6.18232 ++done
 6.18233 ++ac_signal=0
 6.18234 ++
 6.18235 ++# confdefs.h avoids OS command line length limits that DEFS can exceed.
 6.18236 ++rm -f -r conftest* confdefs.h
 6.18237 ++
 6.18238 ++# Predefined preprocessor variables.
 6.18239 ++
 6.18240 ++cat >>confdefs.h <<_ACEOF
 6.18241 ++#define PACKAGE_NAME "$PACKAGE_NAME"
 6.18242 ++_ACEOF
 6.18243 ++
 6.18244 ++
 6.18245 ++cat >>confdefs.h <<_ACEOF
 6.18246 ++#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
 6.18247 ++_ACEOF
 6.18248 ++
 6.18249 ++
 6.18250 ++cat >>confdefs.h <<_ACEOF
 6.18251 ++#define PACKAGE_VERSION "$PACKAGE_VERSION"
 6.18252 ++_ACEOF
 6.18253 ++
 6.18254 ++
 6.18255 ++cat >>confdefs.h <<_ACEOF
 6.18256 ++#define PACKAGE_STRING "$PACKAGE_STRING"
 6.18257 ++_ACEOF
 6.18258 ++
 6.18259 ++
 6.18260 ++cat >>confdefs.h <<_ACEOF
 6.18261 ++#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
 6.18262 ++_ACEOF
 6.18263 ++
 6.18264 ++
 6.18265 ++# Let the site file select an alternate cache file if it wants to.
 6.18266 ++# Prefer explicitly selected file to automatically selected ones.
 6.18267 ++if test -n "$CONFIG_SITE"; then
 6.18268 ++  set x "$CONFIG_SITE"
 6.18269 ++elif test "x$prefix" != xNONE; then
 6.18270 ++  set x "$prefix/share/config.site" "$prefix/etc/config.site"
 6.18271 ++else
 6.18272 ++  set x "$ac_default_prefix/share/config.site" \
 6.18273 ++	"$ac_default_prefix/etc/config.site"
 6.18274 ++fi
 6.18275 ++shift
 6.18276 ++for ac_site_file
 6.18277 ++do
 6.18278 ++  if test -r "$ac_site_file"; then
 6.18279 ++    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
 6.18280 ++echo "$as_me: loading site script $ac_site_file" >&6;}
 6.18281 ++    sed 's/^/| /' "$ac_site_file" >&5
 6.18282 ++    . "$ac_site_file"
 6.18283 ++  fi
 6.18284 ++done
 6.18285 ++
 6.18286 ++if test -r "$cache_file"; then
 6.18287 ++  # Some versions of bash will fail to source /dev/null (special
 6.18288 ++  # files actually), so we avoid doing that.
 6.18289 ++  if test -f "$cache_file"; then
 6.18290 ++    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
 6.18291 ++echo "$as_me: loading cache $cache_file" >&6;}
 6.18292 ++    case $cache_file in
 6.18293 ++      [\\/]* | ?:[\\/]* ) . "$cache_file";;
 6.18294 ++      *)                      . "./$cache_file";;
 6.18295 ++    esac
 6.18296 ++  fi
 6.18297 ++else
 6.18298 ++  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
 6.18299 ++echo "$as_me: creating cache $cache_file" >&6;}
 6.18300 ++  >$cache_file
 6.18301 ++fi
 6.18302 ++
 6.18303 ++# Check that the precious variables saved in the cache have kept the same
 6.18304 ++# value.
 6.18305 ++ac_cache_corrupted=false
 6.18306 ++for ac_var in $ac_precious_vars; do
 6.18307 ++  eval ac_old_set=\$ac_cv_env_${ac_var}_set
 6.18308 ++  eval ac_new_set=\$ac_env_${ac_var}_set
 6.18309 ++  eval ac_old_val=\$ac_cv_env_${ac_var}_value
 6.18310 ++  eval ac_new_val=\$ac_env_${ac_var}_value
 6.18311 ++  case $ac_old_set,$ac_new_set in
 6.18312 ++    set,)
 6.18313 ++      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
 6.18314 ++echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
 6.18315 ++      ac_cache_corrupted=: ;;
 6.18316 ++    ,set)
 6.18317 ++      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
 6.18318 ++echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
 6.18319 ++      ac_cache_corrupted=: ;;
 6.18320 ++    ,);;
 6.18321 ++    *)
 6.18322 ++      if test "x$ac_old_val" != "x$ac_new_val"; then
 6.18323 ++	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
 6.18324 ++echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
 6.18325 ++	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
 6.18326 ++echo "$as_me:   former value:  $ac_old_val" >&2;}
 6.18327 ++	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
 6.18328 ++echo "$as_me:   current value: $ac_new_val" >&2;}
 6.18329 ++	ac_cache_corrupted=:
 6.18330 ++      fi;;
 6.18331 ++  esac
 6.18332 ++  # Pass precious variables to config.status.
 6.18333 ++  if test "$ac_new_set" = set; then
 6.18334 ++    case $ac_new_val in
 6.18335 ++    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
 6.18336 ++    *) ac_arg=$ac_var=$ac_new_val ;;
 6.18337 ++    esac
 6.18338 ++    case " $ac_configure_args " in
 6.18339 ++      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
 6.18340 ++      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
 6.18341 ++    esac
 6.18342 ++  fi
 6.18343 ++done
 6.18344 ++if $ac_cache_corrupted; then
 6.18345 ++  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
 6.18346 ++echo "$as_me: error: changes in the environment can compromise the build" >&2;}
 6.18347 ++  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
 6.18348 ++echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
 6.18349 ++   { (exit 1); exit 1; }; }
 6.18350 ++fi
 6.18351 ++
 6.18352 ++
 6.18353 ++
 6.18354 ++
 6.18355 ++
 6.18356 ++
 6.18357 ++
 6.18358 ++
 6.18359 ++
 6.18360 ++
 6.18361 ++
 6.18362 ++
 6.18363 ++
 6.18364 ++
 6.18365 ++
 6.18366 ++
 6.18367 ++
 6.18368 ++
 6.18369 ++
 6.18370 ++
 6.18371 ++
 6.18372 ++
 6.18373 ++
 6.18374 ++
 6.18375 ++
 6.18376 ++ac_ext=c
 6.18377 ++ac_cpp='$CPP $CPPFLAGS'
 6.18378 ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 6.18379 ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 6.18380 ++ac_compiler_gnu=$ac_cv_c_compiler_gnu
 6.18381 ++
 6.18382 ++
 6.18383 ++
 6.18384 ++ac_aux_dir=
 6.18385 ++for ac_dir in ../../../.. "$srcdir"/../../../..; do
 6.18386 ++  if test -f "$ac_dir/install-sh"; then
 6.18387 ++    ac_aux_dir=$ac_dir
 6.18388 ++    ac_install_sh="$ac_aux_dir/install-sh -c"
 6.18389 ++    break
 6.18390 ++  elif test -f "$ac_dir/install.sh"; then
 6.18391 ++    ac_aux_dir=$ac_dir
 6.18392 ++    ac_install_sh="$ac_aux_dir/install.sh -c"
 6.18393 ++    break
 6.18394 ++  elif test -f "$ac_dir/shtool"; then
 6.18395 ++    ac_aux_dir=$ac_dir
 6.18396 ++    ac_install_sh="$ac_aux_dir/shtool install -c"
 6.18397 ++    break
 6.18398 ++  fi
 6.18399 ++done
 6.18400 ++if test -z "$ac_aux_dir"; then
 6.18401 ++  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../../../.. \"$srcdir\"/../../../.." >&5
 6.18402 ++echo "$as_me: error: cannot find install-sh or install.sh in ../../../.. \"$srcdir\"/../../../.." >&2;}
 6.18403 ++   { (exit 1); exit 1; }; }
 6.18404 ++fi
 6.18405 ++
 6.18406 ++# These three variables are undocumented and unsupported,
 6.18407 ++# and are intended to be withdrawn in a future Autoconf release.
 6.18408 ++# They can cause serious problems if a builder's source tree is in a directory
 6.18409 ++# whose full name contains unusual characters.
 6.18410 ++ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
 6.18411 ++ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
 6.18412 ++ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 6.18413 ++
 6.18414 ++
 6.18415 ++
 6.18416 ++# Make sure we can run config.sub.
 6.18417 ++$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
 6.18418 ++  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
 6.18419 ++echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
 6.18420 ++   { (exit 1); exit 1; }; }
 6.18421 ++
 6.18422 ++{ echo "$as_me:$LINENO: checking build system type" >&5
 6.18423 ++echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
 6.18424 ++if test "${ac_cv_build+set}" = set; then
 6.18425 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.18426 ++else
 6.18427 ++  ac_build_alias=$build_alias
 6.18428 ++test "x$ac_build_alias" = x &&
 6.18429 ++  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
 6.18430 ++test "x$ac_build_alias" = x &&
 6.18431 ++  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
 6.18432 ++echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
 6.18433 ++   { (exit 1); exit 1; }; }
 6.18434 ++ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
 6.18435 ++  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
 6.18436 ++echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
 6.18437 ++   { (exit 1); exit 1; }; }
 6.18438 ++
 6.18439 ++fi
 6.18440 ++{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
 6.18441 ++echo "${ECHO_T}$ac_cv_build" >&6; }
 6.18442 ++case $ac_cv_build in
 6.18443 ++*-*-*) ;;
 6.18444 ++*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
 6.18445 ++echo "$as_me: error: invalid value of canonical build" >&2;}
 6.18446 ++   { (exit 1); exit 1; }; };;
 6.18447 ++esac
 6.18448 ++build=$ac_cv_build
 6.18449 ++ac_save_IFS=$IFS; IFS='-'
 6.18450 ++set x $ac_cv_build
 6.18451 ++shift
 6.18452 ++build_cpu=$1
 6.18453 ++build_vendor=$2
 6.18454 ++shift; shift
 6.18455 ++# Remember, the first character of IFS is used to create $*,
 6.18456 ++# except with old shells:
 6.18457 ++build_os=$*
 6.18458 ++IFS=$ac_save_IFS
 6.18459 ++case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 6.18460 ++
 6.18461 ++
 6.18462 ++{ echo "$as_me:$LINENO: checking host system type" >&5
 6.18463 ++echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
 6.18464 ++if test "${ac_cv_host+set}" = set; then
 6.18465 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.18466 ++else
 6.18467 ++  if test "x$host_alias" = x; then
 6.18468 ++  ac_cv_host=$ac_cv_build
 6.18469 ++else
 6.18470 ++  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
 6.18471 ++    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
 6.18472 ++echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
 6.18473 ++   { (exit 1); exit 1; }; }
 6.18474 ++fi
 6.18475 ++
 6.18476 ++fi
 6.18477 ++{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
 6.18478 ++echo "${ECHO_T}$ac_cv_host" >&6; }
 6.18479 ++case $ac_cv_host in
 6.18480 ++*-*-*) ;;
 6.18481 ++*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
 6.18482 ++echo "$as_me: error: invalid value of canonical host" >&2;}
 6.18483 ++   { (exit 1); exit 1; }; };;
 6.18484 ++esac
 6.18485 ++host=$ac_cv_host
 6.18486 ++ac_save_IFS=$IFS; IFS='-'
 6.18487 ++set x $ac_cv_host
 6.18488 ++shift
 6.18489 ++host_cpu=$1
 6.18490 ++host_vendor=$2
 6.18491 ++shift; shift
 6.18492 ++# Remember, the first character of IFS is used to create $*,
 6.18493 ++# except with old shells:
 6.18494 ++host_os=$*
 6.18495 ++IFS=$ac_save_IFS
 6.18496 ++case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 6.18497 ++
 6.18498 ++
 6.18499 ++am__api_version="1.4"
 6.18500 ++# Find a good install program.  We prefer a C program (faster),
 6.18501 ++# so one script is as good as another.  But avoid the broken or
 6.18502 ++# incompatible versions:
 6.18503 ++# SysV /etc/install, /usr/sbin/install
 6.18504 ++# SunOS /usr/etc/install
 6.18505 ++# IRIX /sbin/install
 6.18506 ++# AIX /bin/install
 6.18507 ++# AmigaOS /C/install, which installs bootblocks on floppy discs
 6.18508 ++# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
 6.18509 ++# AFS /usr/afsws/bin/install, which mishandles nonexistent args
 6.18510 ++# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 6.18511 ++# OS/2's system install, which has a completely different semantic
 6.18512 ++# ./install, which can be erroneously created by make from ./install.sh.
 6.18513 ++{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
 6.18514 ++echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
 6.18515 ++if test -z "$INSTALL"; then
 6.18516 ++if test "${ac_cv_path_install+set}" = set; then
 6.18517 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.18518 ++else
 6.18519 ++  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.18520 ++for as_dir in $PATH
 6.18521 ++do
 6.18522 ++  IFS=$as_save_IFS
 6.18523 ++  test -z "$as_dir" && as_dir=.
 6.18524 ++  # Account for people who put trailing slashes in PATH elements.
 6.18525 ++case $as_dir/ in
 6.18526 ++  ./ | .// | /cC/* | \
 6.18527 ++  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
 6.18528 ++  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
 6.18529 ++  /usr/ucb/* ) ;;
 6.18530 ++  *)
 6.18531 ++    # OSF1 and SCO ODT 3.0 have their own names for install.
 6.18532 ++    # Don't use installbsd from OSF since it installs stuff as root
 6.18533 ++    # by default.
 6.18534 ++    for ac_prog in ginstall scoinst install; do
 6.18535 ++      for ac_exec_ext in '' $ac_executable_extensions; do
 6.18536 ++	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
 6.18537 ++	  if test $ac_prog = install &&
 6.18538 ++	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 6.18539 ++	    # AIX install.  It has an incompatible calling convention.
 6.18540 ++	    :
 6.18541 ++	  elif test $ac_prog = install &&
 6.18542 ++	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 6.18543 ++	    # program-specific install script used by HP pwplus--don't use.
 6.18544 ++	    :
 6.18545 ++	  else
 6.18546 ++	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
 6.18547 ++	    break 3
 6.18548 ++	  fi
 6.18549 ++	fi
 6.18550 ++      done
 6.18551 ++    done
 6.18552 ++    ;;
 6.18553 ++esac
 6.18554 ++done
 6.18555 ++IFS=$as_save_IFS
 6.18556 ++
 6.18557 ++
 6.18558 ++fi
 6.18559 ++  if test "${ac_cv_path_install+set}" = set; then
 6.18560 ++    INSTALL=$ac_cv_path_install
 6.18561 ++  else
 6.18562 ++    # As a last resort, use the slow shell script.  Don't cache a
 6.18563 ++    # value for INSTALL within a source directory, because that will
 6.18564 ++    # break other packages using the cache if that directory is
 6.18565 ++    # removed, or if the value is a relative name.
 6.18566 ++    INSTALL=$ac_install_sh
 6.18567 ++  fi
 6.18568 ++fi
 6.18569 ++{ echo "$as_me:$LINENO: result: $INSTALL" >&5
 6.18570 ++echo "${ECHO_T}$INSTALL" >&6; }
 6.18571 ++
 6.18572 ++# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 6.18573 ++# It thinks the first close brace ends the variable substitution.
 6.18574 ++test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
 6.18575 ++
 6.18576 ++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 6.18577 ++
 6.18578 ++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 6.18579 ++
 6.18580 ++{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5
 6.18581 ++echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; }
 6.18582 ++# Just in case
 6.18583 ++sleep 1
 6.18584 ++echo timestamp > conftestfile
 6.18585 ++# Do `set' in a subshell so we don't clobber the current shell's
 6.18586 ++# arguments.  Must try -L first in case configure is actually a
 6.18587 ++# symlink; some systems play weird games with the mod time of symlinks
 6.18588 ++# (eg FreeBSD returns the mod time of the symlink's containing
 6.18589 ++# directory).
 6.18590 ++if (
 6.18591 ++   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
 6.18592 ++   if test "$*" = "X"; then
 6.18593 ++      # -L didn't work.
 6.18594 ++      set X `ls -t $srcdir/configure conftestfile`
 6.18595 ++   fi
 6.18596 ++   if test "$*" != "X $srcdir/configure conftestfile" \
 6.18597 ++      && test "$*" != "X conftestfile $srcdir/configure"; then
 6.18598 ++
 6.18599 ++      # If neither matched, then we have a broken ls.  This can happen
 6.18600 ++      # if, for instance, CONFIG_SHELL is bash and it inherits a
 6.18601 ++      # broken ls alias from the environment.  This has actually
 6.18602 ++      # happened.  Such a system could not be considered "sane".
 6.18603 ++      { { echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
 6.18604 ++alias in your environment" >&5
 6.18605 ++echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
 6.18606 ++alias in your environment" >&2;}
 6.18607 ++   { (exit 1); exit 1; }; }
 6.18608 ++   fi
 6.18609 ++
 6.18610 ++   test "$2" = conftestfile
 6.18611 ++   )
 6.18612 ++then
 6.18613 ++   # Ok.
 6.18614 ++   :
 6.18615 ++else
 6.18616 ++   { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
 6.18617 ++Check your system clock" >&5
 6.18618 ++echo "$as_me: error: newly created file is older than distributed files!
 6.18619 ++Check your system clock" >&2;}
 6.18620 ++   { (exit 1); exit 1; }; }
 6.18621 ++fi
 6.18622 ++rm -f conftest*
 6.18623 ++{ echo "$as_me:$LINENO: result: yes" >&5
 6.18624 ++echo "${ECHO_T}yes" >&6; }
 6.18625 ++test "$program_prefix" != NONE &&
 6.18626 ++  program_transform_name="s&^&$program_prefix&;$program_transform_name"
 6.18627 ++# Use a double $ so make ignores it.
 6.18628 ++test "$program_suffix" != NONE &&
 6.18629 ++  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
 6.18630 ++# Double any \ or $.  echo might interpret backslashes.
 6.18631 ++# By default was `s,x,x', remove it if useless.
 6.18632 ++cat <<\_ACEOF >conftest.sed
 6.18633 ++s/[\\$]/&&/g;s/;s,x,x,$//
 6.18634 ++_ACEOF
 6.18635 ++program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
 6.18636 ++rm -f conftest.sed
 6.18637 ++
 6.18638 ++{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
 6.18639 ++echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
 6.18640 ++set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
 6.18641 ++if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
 6.18642 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.18643 ++else
 6.18644 ++  cat >conftest.make <<\_ACEOF
 6.18645 ++SHELL = /bin/sh
 6.18646 ++all:
 6.18647 ++	@echo '@@@%%%=$(MAKE)=@@@%%%'
 6.18648 ++_ACEOF
 6.18649 ++# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
 6.18650 ++case `${MAKE-make} -f conftest.make 2>/dev/null` in
 6.18651 ++  *@@@%%%=?*=@@@%%%*)
 6.18652 ++    eval ac_cv_prog_make_${ac_make}_set=yes;;
 6.18653 ++  *)
 6.18654 ++    eval ac_cv_prog_make_${ac_make}_set=no;;
 6.18655 ++esac
 6.18656 ++rm -f conftest.make
 6.18657 ++fi
 6.18658 ++if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
 6.18659 ++  { echo "$as_me:$LINENO: result: yes" >&5
 6.18660 ++echo "${ECHO_T}yes" >&6; }
 6.18661 ++  SET_MAKE=
 6.18662 ++else
 6.18663 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.18664 ++echo "${ECHO_T}no" >&6; }
 6.18665 ++  SET_MAKE="MAKE=${MAKE-make}"
 6.18666 ++fi
 6.18667 ++
 6.18668 ++
 6.18669 ++# Check whether --enable-multilib was given.
 6.18670 ++if test "${enable_multilib+set}" = set; then
 6.18671 ++  enableval=$enable_multilib; case "${enableval}" in
 6.18672 ++  yes) multilib=yes ;;
 6.18673 ++  no)  multilib=no ;;
 6.18674 ++  *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for multilib option" >&5
 6.18675 ++echo "$as_me: error: bad value ${enableval} for multilib option" >&2;}
 6.18676 ++   { (exit 1); exit 1; }; } ;;
 6.18677 ++ esac
 6.18678 ++else
 6.18679 ++  multilib=yes
 6.18680 ++fi
 6.18681 ++
 6.18682 ++# Check whether --enable-target-optspace was given.
 6.18683 ++if test "${enable_target_optspace+set}" = set; then
 6.18684 ++  enableval=$enable_target_optspace; case "${enableval}" in
 6.18685 ++  yes) target_optspace=yes ;;
 6.18686 ++  no)  target_optspace=no ;;
 6.18687 ++  *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for target-optspace option" >&5
 6.18688 ++echo "$as_me: error: bad value ${enableval} for target-optspace option" >&2;}
 6.18689 ++   { (exit 1); exit 1; }; } ;;
 6.18690 ++ esac
 6.18691 ++else
 6.18692 ++  target_optspace=
 6.18693 ++fi
 6.18694 ++
 6.18695 ++# Check whether --enable-malloc-debugging was given.
 6.18696 ++if test "${enable_malloc_debugging+set}" = set; then
 6.18697 ++  enableval=$enable_malloc_debugging; case "${enableval}" in
 6.18698 ++  yes) malloc_debugging=yes ;;
 6.18699 ++  no)  malloc_debugging=no ;;
 6.18700 ++  *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for malloc-debugging option" >&5
 6.18701 ++echo "$as_me: error: bad value ${enableval} for malloc-debugging option" >&2;}
 6.18702 ++   { (exit 1); exit 1; }; } ;;
 6.18703 ++ esac
 6.18704 ++else
 6.18705 ++  malloc_debugging=
 6.18706 ++fi
 6.18707 ++
 6.18708 ++# Check whether --enable-newlib-multithread was given.
 6.18709 ++if test "${enable_newlib_multithread+set}" = set; then
 6.18710 ++  enableval=$enable_newlib_multithread; case "${enableval}" in
 6.18711 ++  yes) newlib_multithread=yes ;;
 6.18712 ++  no)  newlib_multithread=no ;;
 6.18713 ++  *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-multithread option" >&5
 6.18714 ++echo "$as_me: error: bad value ${enableval} for newlib-multithread option" >&2;}
 6.18715 ++   { (exit 1); exit 1; }; } ;;
 6.18716 ++ esac
 6.18717 ++else
 6.18718 ++  newlib_multithread=yes
 6.18719 ++fi
 6.18720 ++
 6.18721 ++# Check whether --enable-newlib-iconv was given.
 6.18722 ++if test "${enable_newlib_iconv+set}" = set; then
 6.18723 ++  enableval=$enable_newlib_iconv; if test "${newlib_iconv+set}" != set; then
 6.18724 ++   case "${enableval}" in
 6.18725 ++     yes) newlib_iconv=yes ;;
 6.18726 ++     no)  newlib_iconv=no ;;
 6.18727 ++     *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-iconv option" >&5
 6.18728 ++echo "$as_me: error: bad value ${enableval} for newlib-iconv option" >&2;}
 6.18729 ++   { (exit 1); exit 1; }; } ;;
 6.18730 ++   esac
 6.18731 ++ fi
 6.18732 ++else
 6.18733 ++  newlib_iconv=${newlib_iconv}
 6.18734 ++fi
 6.18735 ++
 6.18736 ++# Check whether --enable-newlib-elix-level was given.
 6.18737 ++if test "${enable_newlib_elix_level+set}" = set; then
 6.18738 ++  enableval=$enable_newlib_elix_level; case "${enableval}" in
 6.18739 ++  0)   newlib_elix_level=0 ;;
 6.18740 ++  1)   newlib_elix_level=1 ;;
 6.18741 ++  2)   newlib_elix_level=2 ;;
 6.18742 ++  3)   newlib_elix_level=3 ;;
 6.18743 ++  4)   newlib_elix_level=4 ;;
 6.18744 ++  *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-elix-level option" >&5
 6.18745 ++echo "$as_me: error: bad value ${enableval} for newlib-elix-level option" >&2;}
 6.18746 ++   { (exit 1); exit 1; }; } ;;
 6.18747 ++ esac
 6.18748 ++else
 6.18749 ++  newlib_elix_level=0
 6.18750 ++fi
 6.18751 ++
 6.18752 ++# Check whether --enable-newlib-io-float was given.
 6.18753 ++if test "${enable_newlib_io_float+set}" = set; then
 6.18754 ++  enableval=$enable_newlib_io_float; case "${enableval}" in
 6.18755 ++  yes) newlib_io_float=yes ;;
 6.18756 ++  no)  newlib_io_float=no ;;
 6.18757 ++  *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-io-float option" >&5
 6.18758 ++echo "$as_me: error: bad value ${enableval} for newlib-io-float option" >&2;}
 6.18759 ++   { (exit 1); exit 1; }; } ;;
 6.18760 ++ esac
 6.18761 ++else
 6.18762 ++  newlib_io_float=yes
 6.18763 ++fi
 6.18764 ++
 6.18765 ++# Check whether --enable-newlib-supplied-syscalls was given.
 6.18766 ++if test "${enable_newlib_supplied_syscalls+set}" = set; then
 6.18767 ++  enableval=$enable_newlib_supplied_syscalls; case "${enableval}" in
 6.18768 ++  yes) newlib_may_supply_syscalls=yes ;;
 6.18769 ++  no)  newlib_may_supply_syscalls=no ;;
 6.18770 ++  *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-supplied-syscalls option" >&5
 6.18771 ++echo "$as_me: error: bad value ${enableval} for newlib-supplied-syscalls option" >&2;}
 6.18772 ++   { (exit 1); exit 1; }; } ;;
 6.18773 ++ esac
 6.18774 ++else
 6.18775 ++  newlib_may_supply_syscalls=yes
 6.18776 ++fi
 6.18777 ++
 6.18778 ++
 6.18779 ++
 6.18780 ++if test x${newlib_may_supply_syscalls} = xyes; then
 6.18781 ++  MAY_SUPPLY_SYSCALLS_TRUE=
 6.18782 ++  MAY_SUPPLY_SYSCALLS_FALSE='#'
 6.18783 ++else
 6.18784 ++  MAY_SUPPLY_SYSCALLS_TRUE='#'
 6.18785 ++  MAY_SUPPLY_SYSCALLS_FALSE=
 6.18786 ++fi
 6.18787 ++
 6.18788 ++
 6.18789 ++test -z "${with_target_subdir}" && with_target_subdir=.
 6.18790 ++
 6.18791 ++if test "${srcdir}" = "."; then
 6.18792 ++  if test "${with_target_subdir}" != "."; then
 6.18793 ++    newlib_basedir="${srcdir}/${with_multisrctop}../../../.."
 6.18794 ++  else
 6.18795 ++    newlib_basedir="${srcdir}/${with_multisrctop}../../.."
 6.18796 ++  fi
 6.18797 ++else
 6.18798 ++  newlib_basedir="${srcdir}/../../.."
 6.18799 ++fi
 6.18800 ++
 6.18801 ++
 6.18802 ++{ echo "$as_me:$LINENO: checking target system type" >&5
 6.18803 ++echo $ECHO_N "checking target system type... $ECHO_C" >&6; }
 6.18804 ++if test "${ac_cv_target+set}" = set; then
 6.18805 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.18806 ++else
 6.18807 ++  if test "x$target_alias" = x; then
 6.18808 ++  ac_cv_target=$ac_cv_host
 6.18809 ++else
 6.18810 ++  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
 6.18811 ++    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5
 6.18812 ++echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;}
 6.18813 ++   { (exit 1); exit 1; }; }
 6.18814 ++fi
 6.18815 ++
 6.18816 ++fi
 6.18817 ++{ echo "$as_me:$LINENO: result: $ac_cv_target" >&5
 6.18818 ++echo "${ECHO_T}$ac_cv_target" >&6; }
 6.18819 ++case $ac_cv_target in
 6.18820 ++*-*-*) ;;
 6.18821 ++*) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5
 6.18822 ++echo "$as_me: error: invalid value of canonical target" >&2;}
 6.18823 ++   { (exit 1); exit 1; }; };;
 6.18824 ++esac
 6.18825 ++target=$ac_cv_target
 6.18826 ++ac_save_IFS=$IFS; IFS='-'
 6.18827 ++set x $ac_cv_target
 6.18828 ++shift
 6.18829 ++target_cpu=$1
 6.18830 ++target_vendor=$2
 6.18831 ++shift; shift
 6.18832 ++# Remember, the first character of IFS is used to create $*,
 6.18833 ++# except with old shells:
 6.18834 ++target_os=$*
 6.18835 ++IFS=$ac_save_IFS
 6.18836 ++case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
 6.18837 ++
 6.18838 ++
 6.18839 ++# The aliases save the names the user supplied, while $host etc.
 6.18840 ++# will get canonicalized.
 6.18841 ++test -n "$target_alias" &&
 6.18842 ++  test "$program_prefix$program_suffix$program_transform_name" = \
 6.18843 ++    NONENONEs,x,x, &&
 6.18844 ++  program_prefix=${target_alias}-
 6.18845 ++
 6.18846 ++
 6.18847 ++PACKAGE=newlib
 6.18848 ++
 6.18849 ++VERSION=1.14.0.atmel.1.0.1
 6.18850 ++
 6.18851 ++if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
 6.18852 ++  { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
 6.18853 ++echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
 6.18854 ++   { (exit 1); exit 1; }; }
 6.18855 ++fi
 6.18856 ++
 6.18857 ++cat >>confdefs.h <<_ACEOF
 6.18858 ++#define PACKAGE "$PACKAGE"
 6.18859 ++_ACEOF
 6.18860 ++
 6.18861 ++
 6.18862 ++cat >>confdefs.h <<_ACEOF
 6.18863 ++#define VERSION "$VERSION"
 6.18864 ++_ACEOF
 6.18865 ++
 6.18866 ++
 6.18867 ++
 6.18868 ++missing_dir=`cd $ac_aux_dir && pwd`
 6.18869 ++{ echo "$as_me:$LINENO: checking for working aclocal-${am__api_version}" >&5
 6.18870 ++echo $ECHO_N "checking for working aclocal-${am__api_version}... $ECHO_C" >&6; }
 6.18871 ++# Run test in a subshell; some versions of sh will print an error if
 6.18872 ++# an executable is not found, even if stderr is redirected.
 6.18873 ++# Redirect stdin to placate older versions of autoconf.  Sigh.
 6.18874 ++if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then
 6.18875 ++   ACLOCAL=aclocal-${am__api_version}
 6.18876 ++   { echo "$as_me:$LINENO: result: found" >&5
 6.18877 ++echo "${ECHO_T}found" >&6; }
 6.18878 ++else
 6.18879 ++   ACLOCAL="$missing_dir/missing aclocal-${am__api_version}"
 6.18880 ++   { echo "$as_me:$LINENO: result: missing" >&5
 6.18881 ++echo "${ECHO_T}missing" >&6; }
 6.18882 ++fi
 6.18883 ++
 6.18884 ++{ echo "$as_me:$LINENO: checking for working autoconf" >&5
 6.18885 ++echo $ECHO_N "checking for working autoconf... $ECHO_C" >&6; }
 6.18886 ++# Run test in a subshell; some versions of sh will print an error if
 6.18887 ++# an executable is not found, even if stderr is redirected.
 6.18888 ++# Redirect stdin to placate older versions of autoconf.  Sigh.
 6.18889 ++if (autoconf --version) < /dev/null > /dev/null 2>&1; then
 6.18890 ++   AUTOCONF=autoconf
 6.18891 ++   { echo "$as_me:$LINENO: result: found" >&5
 6.18892 ++echo "${ECHO_T}found" >&6; }
 6.18893 ++else
 6.18894 ++   AUTOCONF="$missing_dir/missing autoconf"
 6.18895 ++   { echo "$as_me:$LINENO: result: missing" >&5
 6.18896 ++echo "${ECHO_T}missing" >&6; }
 6.18897 ++fi
 6.18898 ++
 6.18899 ++{ echo "$as_me:$LINENO: checking for working automake-${am__api_version}" >&5
 6.18900 ++echo $ECHO_N "checking for working automake-${am__api_version}... $ECHO_C" >&6; }
 6.18901 ++# Run test in a subshell; some versions of sh will print an error if
 6.18902 ++# an executable is not found, even if stderr is redirected.
 6.18903 ++# Redirect stdin to placate older versions of autoconf.  Sigh.
 6.18904 ++if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then
 6.18905 ++   AUTOMAKE=automake-${am__api_version}
 6.18906 ++   { echo "$as_me:$LINENO: result: found" >&5
 6.18907 ++echo "${ECHO_T}found" >&6; }
 6.18908 ++else
 6.18909 ++   AUTOMAKE="$missing_dir/missing automake-${am__api_version}"
 6.18910 ++   { echo "$as_me:$LINENO: result: missing" >&5
 6.18911 ++echo "${ECHO_T}missing" >&6; }
 6.18912 ++fi
 6.18913 ++
 6.18914 ++{ echo "$as_me:$LINENO: checking for working autoheader" >&5
 6.18915 ++echo $ECHO_N "checking for working autoheader... $ECHO_C" >&6; }
 6.18916 ++# Run test in a subshell; some versions of sh will print an error if
 6.18917 ++# an executable is not found, even if stderr is redirected.
 6.18918 ++# Redirect stdin to placate older versions of autoconf.  Sigh.
 6.18919 ++if (autoheader --version) < /dev/null > /dev/null 2>&1; then
 6.18920 ++   AUTOHEADER=autoheader
 6.18921 ++   { echo "$as_me:$LINENO: result: found" >&5
 6.18922 ++echo "${ECHO_T}found" >&6; }
 6.18923 ++else
 6.18924 ++   AUTOHEADER="$missing_dir/missing autoheader"
 6.18925 ++   { echo "$as_me:$LINENO: result: missing" >&5
 6.18926 ++echo "${ECHO_T}missing" >&6; }
 6.18927 ++fi
 6.18928 ++
 6.18929 ++{ echo "$as_me:$LINENO: checking for working makeinfo" >&5
 6.18930 ++echo $ECHO_N "checking for working makeinfo... $ECHO_C" >&6; }
 6.18931 ++# Run test in a subshell; some versions of sh will print an error if
 6.18932 ++# an executable is not found, even if stderr is redirected.
 6.18933 ++# Redirect stdin to placate older versions of autoconf.  Sigh.
 6.18934 ++if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
 6.18935 ++   MAKEINFO=makeinfo
 6.18936 ++   { echo "$as_me:$LINENO: result: found" >&5
 6.18937 ++echo "${ECHO_T}found" >&6; }
 6.18938 ++else
 6.18939 ++   MAKEINFO="$missing_dir/missing makeinfo"
 6.18940 ++   { echo "$as_me:$LINENO: result: missing" >&5
 6.18941 ++echo "${ECHO_T}missing" >&6; }
 6.18942 ++fi
 6.18943 ++
 6.18944 ++
 6.18945 ++
 6.18946 ++# FIXME: We temporarily define our own version of AC_PROG_CC.  This is
 6.18947 ++# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS.  We
 6.18948 ++# are probably using a cross compiler, which will not be able to fully
 6.18949 ++# link an executable.  This should really be fixed in autoconf
 6.18950 ++# itself.
 6.18951 ++
 6.18952 ++
 6.18953 ++
 6.18954 ++# Extract the first word of "gcc", so it can be a program name with args.
 6.18955 ++set dummy gcc; ac_word=$2
 6.18956 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.18957 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.18958 ++if test "${ac_cv_prog_CC+set}" = set; then
 6.18959 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.18960 ++else
 6.18961 ++  if test -n "$CC"; then
 6.18962 ++  ac_cv_prog_CC="$CC" # Let the user override the test.
 6.18963 ++else
 6.18964 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.18965 ++for as_dir in $PATH
 6.18966 ++do
 6.18967 ++  IFS=$as_save_IFS
 6.18968 ++  test -z "$as_dir" && as_dir=.
 6.18969 ++  for ac_exec_ext in '' $ac_executable_extensions; do
 6.18970 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.18971 ++    ac_cv_prog_CC="gcc"
 6.18972 ++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.18973 ++    break 2
 6.18974 ++  fi
 6.18975 ++done
 6.18976 ++done
 6.18977 ++IFS=$as_save_IFS
 6.18978 ++
 6.18979 ++fi
 6.18980 ++fi
 6.18981 ++CC=$ac_cv_prog_CC
 6.18982 ++if test -n "$CC"; then
 6.18983 ++  { echo "$as_me:$LINENO: result: $CC" >&5
 6.18984 ++echo "${ECHO_T}$CC" >&6; }
 6.18985 ++else
 6.18986 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.18987 ++echo "${ECHO_T}no" >&6; }
 6.18988 ++fi
 6.18989 ++
 6.18990 ++
 6.18991 ++if test -z "$CC"; then
 6.18992 ++  # Extract the first word of "cc", so it can be a program name with args.
 6.18993 ++set dummy cc; ac_word=$2
 6.18994 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.18995 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.18996 ++if test "${ac_cv_prog_CC+set}" = set; then
 6.18997 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.18998 ++else
 6.18999 ++  if test -n "$CC"; then
 6.19000 ++  ac_cv_prog_CC="$CC" # Let the user override the test.
 6.19001 ++else
 6.19002 ++  ac_prog_rejected=no
 6.19003 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.19004 ++for as_dir in $PATH
 6.19005 ++do
 6.19006 ++  IFS=$as_save_IFS
 6.19007 ++  test -z "$as_dir" && as_dir=.
 6.19008 ++  for ac_exec_ext in '' $ac_executable_extensions; do
 6.19009 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.19010 ++    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
 6.19011 ++       ac_prog_rejected=yes
 6.19012 ++       continue
 6.19013 ++     fi
 6.19014 ++    ac_cv_prog_CC="cc"
 6.19015 ++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.19016 ++    break 2
 6.19017 ++  fi
 6.19018 ++done
 6.19019 ++done
 6.19020 ++IFS=$as_save_IFS
 6.19021 ++
 6.19022 ++if test $ac_prog_rejected = yes; then
 6.19023 ++  # We found a bogon in the path, so make sure we never use it.
 6.19024 ++  set dummy $ac_cv_prog_CC
 6.19025 ++  shift
 6.19026 ++  if test $# != 0; then
 6.19027 ++    # We chose a different compiler from the bogus one.
 6.19028 ++    # However, it has the same basename, so the bogon will be chosen
 6.19029 ++    # first if we set CC to just the basename; use the full file name.
 6.19030 ++    shift
 6.19031 ++    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
 6.19032 ++  fi
 6.19033 ++fi
 6.19034 ++fi
 6.19035 ++fi
 6.19036 ++CC=$ac_cv_prog_CC
 6.19037 ++if test -n "$CC"; then
 6.19038 ++  { echo "$as_me:$LINENO: result: $CC" >&5
 6.19039 ++echo "${ECHO_T}$CC" >&6; }
 6.19040 ++else
 6.19041 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.19042 ++echo "${ECHO_T}no" >&6; }
 6.19043 ++fi
 6.19044 ++
 6.19045 ++
 6.19046 ++  test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable cc found in \$PATH" >&5
 6.19047 ++echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
 6.19048 ++   { (exit 1); exit 1; }; }
 6.19049 ++fi
 6.19050 ++
 6.19051 ++#AC_PROG_CC_GNU
 6.19052 ++
 6.19053 ++if test $ac_cv_c_compiler_gnu = yes; then
 6.19054 ++  GCC=yes
 6.19055 ++  ac_test_CFLAGS="${CFLAGS+set}"
 6.19056 ++  ac_save_CFLAGS="$CFLAGS"
 6.19057 ++  CFLAGS=
 6.19058 ++#  AC_PROG_CC_G
 6.19059 ++  if test "$ac_test_CFLAGS" = set; then
 6.19060 ++    CFLAGS="$ac_save_CFLAGS"
 6.19061 ++  elif test $ac_cv_prog_cc_g = yes; then
 6.19062 ++    CFLAGS="-g -O2"
 6.19063 ++  else
 6.19064 ++    CFLAGS="-O2"
 6.19065 ++  fi
 6.19066 ++else
 6.19067 ++  GCC=
 6.19068 ++  test "${CFLAGS+set}" = set || CFLAGS="-g"
 6.19069 ++fi
 6.19070 ++
 6.19071 ++
 6.19072 ++if test -n "$ac_tool_prefix"; then
 6.19073 ++  # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
 6.19074 ++set dummy ${ac_tool_prefix}as; ac_word=$2
 6.19075 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.19076 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.19077 ++if test "${ac_cv_prog_AS+set}" = set; then
 6.19078 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.19079 ++else
 6.19080 ++  if test -n "$AS"; then
 6.19081 ++  ac_cv_prog_AS="$AS" # Let the user override the test.
 6.19082 ++else
 6.19083 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.19084 ++for as_dir in $PATH
 6.19085 ++do
 6.19086 ++  IFS=$as_save_IFS
 6.19087 ++  test -z "$as_dir" && as_dir=.
 6.19088 ++  for ac_exec_ext in '' $ac_executable_extensions; do
 6.19089 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.19090 ++    ac_cv_prog_AS="${ac_tool_prefix}as"
 6.19091 ++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.19092 ++    break 2
 6.19093 ++  fi
 6.19094 ++done
 6.19095 ++done
 6.19096 ++IFS=$as_save_IFS
 6.19097 ++
 6.19098 ++fi
 6.19099 ++fi
 6.19100 ++AS=$ac_cv_prog_AS
 6.19101 ++if test -n "$AS"; then
 6.19102 ++  { echo "$as_me:$LINENO: result: $AS" >&5
 6.19103 ++echo "${ECHO_T}$AS" >&6; }
 6.19104 ++else
 6.19105 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.19106 ++echo "${ECHO_T}no" >&6; }
 6.19107 ++fi
 6.19108 ++
 6.19109 ++
 6.19110 ++fi
 6.19111 ++if test -z "$ac_cv_prog_AS"; then
 6.19112 ++  ac_ct_AS=$AS
 6.19113 ++  # Extract the first word of "as", so it can be a program name with args.
 6.19114 ++set dummy as; ac_word=$2
 6.19115 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.19116 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.19117 ++if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
 6.19118 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.19119 ++else
 6.19120 ++  if test -n "$ac_ct_AS"; then
 6.19121 ++  ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
 6.19122 ++else
 6.19123 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.19124 ++for as_dir in $PATH
 6.19125 ++do
 6.19126 ++  IFS=$as_save_IFS
 6.19127 ++  test -z "$as_dir" && as_dir=.
 6.19128 ++  for ac_exec_ext in '' $ac_executable_extensions; do
 6.19129 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.19130 ++    ac_cv_prog_ac_ct_AS="as"
 6.19131 ++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.19132 ++    break 2
 6.19133 ++  fi
 6.19134 ++done
 6.19135 ++done
 6.19136 ++IFS=$as_save_IFS
 6.19137 ++
 6.19138 ++fi
 6.19139 ++fi
 6.19140 ++ac_ct_AS=$ac_cv_prog_ac_ct_AS
 6.19141 ++if test -n "$ac_ct_AS"; then
 6.19142 ++  { echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
 6.19143 ++echo "${ECHO_T}$ac_ct_AS" >&6; }
 6.19144 ++else
 6.19145 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.19146 ++echo "${ECHO_T}no" >&6; }
 6.19147 ++fi
 6.19148 ++
 6.19149 ++  if test "x$ac_ct_AS" = x; then
 6.19150 ++    AS=""
 6.19151 ++  else
 6.19152 ++    case $cross_compiling:$ac_tool_warned in
 6.19153 ++yes:)
 6.19154 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.19155 ++whose name does not start with the host triplet.  If you think this
 6.19156 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.19157 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.19158 ++whose name does not start with the host triplet.  If you think this
 6.19159 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.19160 ++ac_tool_warned=yes ;;
 6.19161 ++esac
 6.19162 ++    AS=$ac_ct_AS
 6.19163 ++  fi
 6.19164 ++else
 6.19165 ++  AS="$ac_cv_prog_AS"
 6.19166 ++fi
 6.19167 ++
 6.19168 ++if test -n "$ac_tool_prefix"; then
 6.19169 ++  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 6.19170 ++set dummy ${ac_tool_prefix}ar; ac_word=$2
 6.19171 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.19172 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.19173 ++if test "${ac_cv_prog_AR+set}" = set; then
 6.19174 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.19175 ++else
 6.19176 ++  if test -n "$AR"; then
 6.19177 ++  ac_cv_prog_AR="$AR" # Let the user override the test.
 6.19178 ++else
 6.19179 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.19180 ++for as_dir in $PATH
 6.19181 ++do
 6.19182 ++  IFS=$as_save_IFS
 6.19183 ++  test -z "$as_dir" && as_dir=.
 6.19184 ++  for ac_exec_ext in '' $ac_executable_extensions; do
 6.19185 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.19186 ++    ac_cv_prog_AR="${ac_tool_prefix}ar"
 6.19187 ++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.19188 ++    break 2
 6.19189 ++  fi
 6.19190 ++done
 6.19191 ++done
 6.19192 ++IFS=$as_save_IFS
 6.19193 ++
 6.19194 ++fi
 6.19195 ++fi
 6.19196 ++AR=$ac_cv_prog_AR
 6.19197 ++if test -n "$AR"; then
 6.19198 ++  { echo "$as_me:$LINENO: result: $AR" >&5
 6.19199 ++echo "${ECHO_T}$AR" >&6; }
 6.19200 ++else
 6.19201 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.19202 ++echo "${ECHO_T}no" >&6; }
 6.19203 ++fi
 6.19204 ++
 6.19205 ++
 6.19206 ++fi
 6.19207 ++if test -z "$ac_cv_prog_AR"; then
 6.19208 ++  ac_ct_AR=$AR
 6.19209 ++  # Extract the first word of "ar", so it can be a program name with args.
 6.19210 ++set dummy ar; ac_word=$2
 6.19211 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.19212 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.19213 ++if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
 6.19214 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.19215 ++else
 6.19216 ++  if test -n "$ac_ct_AR"; then
 6.19217 ++  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
 6.19218 ++else
 6.19219 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.19220 ++for as_dir in $PATH
 6.19221 ++do
 6.19222 ++  IFS=$as_save_IFS
 6.19223 ++  test -z "$as_dir" && as_dir=.
 6.19224 ++  for ac_exec_ext in '' $ac_executable_extensions; do
 6.19225 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.19226 ++    ac_cv_prog_ac_ct_AR="ar"
 6.19227 ++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.19228 ++    break 2
 6.19229 ++  fi
 6.19230 ++done
 6.19231 ++done
 6.19232 ++IFS=$as_save_IFS
 6.19233 ++
 6.19234 ++fi
 6.19235 ++fi
 6.19236 ++ac_ct_AR=$ac_cv_prog_ac_ct_AR
 6.19237 ++if test -n "$ac_ct_AR"; then
 6.19238 ++  { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
 6.19239 ++echo "${ECHO_T}$ac_ct_AR" >&6; }
 6.19240 ++else
 6.19241 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.19242 ++echo "${ECHO_T}no" >&6; }
 6.19243 ++fi
 6.19244 ++
 6.19245 ++  if test "x$ac_ct_AR" = x; then
 6.19246 ++    AR=""
 6.19247 ++  else
 6.19248 ++    case $cross_compiling:$ac_tool_warned in
 6.19249 ++yes:)
 6.19250 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.19251 ++whose name does not start with the host triplet.  If you think this
 6.19252 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.19253 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.19254 ++whose name does not start with the host triplet.  If you think this
 6.19255 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.19256 ++ac_tool_warned=yes ;;
 6.19257 ++esac
 6.19258 ++    AR=$ac_ct_AR
 6.19259 ++  fi
 6.19260 ++else
 6.19261 ++  AR="$ac_cv_prog_AR"
 6.19262 ++fi
 6.19263 ++
 6.19264 ++if test -n "$ac_tool_prefix"; then
 6.19265 ++  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 6.19266 ++set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 6.19267 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.19268 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.19269 ++if test "${ac_cv_prog_RANLIB+set}" = set; then
 6.19270 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.19271 ++else
 6.19272 ++  if test -n "$RANLIB"; then
 6.19273 ++  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 6.19274 ++else
 6.19275 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.19276 ++for as_dir in $PATH
 6.19277 ++do
 6.19278 ++  IFS=$as_save_IFS
 6.19279 ++  test -z "$as_dir" && as_dir=.
 6.19280 ++  for ac_exec_ext in '' $ac_executable_extensions; do
 6.19281 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.19282 ++    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
 6.19283 ++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.19284 ++    break 2
 6.19285 ++  fi
 6.19286 ++done
 6.19287 ++done
 6.19288 ++IFS=$as_save_IFS
 6.19289 ++
 6.19290 ++fi
 6.19291 ++fi
 6.19292 ++RANLIB=$ac_cv_prog_RANLIB
 6.19293 ++if test -n "$RANLIB"; then
 6.19294 ++  { echo "$as_me:$LINENO: result: $RANLIB" >&5
 6.19295 ++echo "${ECHO_T}$RANLIB" >&6; }
 6.19296 ++else
 6.19297 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.19298 ++echo "${ECHO_T}no" >&6; }
 6.19299 ++fi
 6.19300 ++
 6.19301 ++
 6.19302 ++fi
 6.19303 ++if test -z "$ac_cv_prog_RANLIB"; then
 6.19304 ++  ac_ct_RANLIB=$RANLIB
 6.19305 ++  # Extract the first word of "ranlib", so it can be a program name with args.
 6.19306 ++set dummy ranlib; ac_word=$2
 6.19307 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.19308 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.19309 ++if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
 6.19310 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.19311 ++else
 6.19312 ++  if test -n "$ac_ct_RANLIB"; then
 6.19313 ++  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
 6.19314 ++else
 6.19315 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.19316 ++for as_dir in $PATH
 6.19317 ++do
 6.19318 ++  IFS=$as_save_IFS
 6.19319 ++  test -z "$as_dir" && as_dir=.
 6.19320 ++  for ac_exec_ext in '' $ac_executable_extensions; do
 6.19321 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.19322 ++    ac_cv_prog_ac_ct_RANLIB="ranlib"
 6.19323 ++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.19324 ++    break 2
 6.19325 ++  fi
 6.19326 ++done
 6.19327 ++done
 6.19328 ++IFS=$as_save_IFS
 6.19329 ++
 6.19330 ++fi
 6.19331 ++fi
 6.19332 ++ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 6.19333 ++if test -n "$ac_ct_RANLIB"; then
 6.19334 ++  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
 6.19335 ++echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
 6.19336 ++else
 6.19337 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.19338 ++echo "${ECHO_T}no" >&6; }
 6.19339 ++fi
 6.19340 ++
 6.19341 ++  if test "x$ac_ct_RANLIB" = x; then
 6.19342 ++    RANLIB=":"
 6.19343 ++  else
 6.19344 ++    case $cross_compiling:$ac_tool_warned in
 6.19345 ++yes:)
 6.19346 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.19347 ++whose name does not start with the host triplet.  If you think this
 6.19348 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.19349 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.19350 ++whose name does not start with the host triplet.  If you think this
 6.19351 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.19352 ++ac_tool_warned=yes ;;
 6.19353 ++esac
 6.19354 ++    RANLIB=$ac_ct_RANLIB
 6.19355 ++  fi
 6.19356 ++else
 6.19357 ++  RANLIB="$ac_cv_prog_RANLIB"
 6.19358 ++fi
 6.19359 ++
 6.19360 ++
 6.19361 ++# Find a good install program.  We prefer a C program (faster),
 6.19362 ++# so one script is as good as another.  But avoid the broken or
 6.19363 ++# incompatible versions:
 6.19364 ++# SysV /etc/install, /usr/sbin/install
 6.19365 ++# SunOS /usr/etc/install
 6.19366 ++# IRIX /sbin/install
 6.19367 ++# AIX /bin/install
 6.19368 ++# AmigaOS /C/install, which installs bootblocks on floppy discs
 6.19369 ++# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
 6.19370 ++# AFS /usr/afsws/bin/install, which mishandles nonexistent args
 6.19371 ++# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 6.19372 ++# OS/2's system install, which has a completely different semantic
 6.19373 ++# ./install, which can be erroneously created by make from ./install.sh.
 6.19374 ++{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
 6.19375 ++echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
 6.19376 ++if test -z "$INSTALL"; then
 6.19377 ++if test "${ac_cv_path_install+set}" = set; then
 6.19378 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.19379 ++else
 6.19380 ++  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.19381 ++for as_dir in $PATH
 6.19382 ++do
 6.19383 ++  IFS=$as_save_IFS
 6.19384 ++  test -z "$as_dir" && as_dir=.
 6.19385 ++  # Account for people who put trailing slashes in PATH elements.
 6.19386 ++case $as_dir/ in
 6.19387 ++  ./ | .// | /cC/* | \
 6.19388 ++  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
 6.19389 ++  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
 6.19390 ++  /usr/ucb/* ) ;;
 6.19391 ++  *)
 6.19392 ++    # OSF1 and SCO ODT 3.0 have their own names for install.
 6.19393 ++    # Don't use installbsd from OSF since it installs stuff as root
 6.19394 ++    # by default.
 6.19395 ++    for ac_prog in ginstall scoinst install; do
 6.19396 ++      for ac_exec_ext in '' $ac_executable_extensions; do
 6.19397 ++	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
 6.19398 ++	  if test $ac_prog = install &&
 6.19399 ++	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 6.19400 ++	    # AIX install.  It has an incompatible calling convention.
 6.19401 ++	    :
 6.19402 ++	  elif test $ac_prog = install &&
 6.19403 ++	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 6.19404 ++	    # program-specific install script used by HP pwplus--don't use.
 6.19405 ++	    :
 6.19406 ++	  else
 6.19407 ++	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
 6.19408 ++	    break 3
 6.19409 ++	  fi
 6.19410 ++	fi
 6.19411 ++      done
 6.19412 ++    done
 6.19413 ++    ;;
 6.19414 ++esac
 6.19415 ++done
 6.19416 ++IFS=$as_save_IFS
 6.19417 ++
 6.19418 ++
 6.19419 ++fi
 6.19420 ++  if test "${ac_cv_path_install+set}" = set; then
 6.19421 ++    INSTALL=$ac_cv_path_install
 6.19422 ++  else
 6.19423 ++    # As a last resort, use the slow shell script.  Don't cache a
 6.19424 ++    # value for INSTALL within a source directory, because that will
 6.19425 ++    # break other packages using the cache if that directory is
 6.19426 ++    # removed, or if the value is a relative name.
 6.19427 ++    INSTALL=$ac_install_sh
 6.19428 ++  fi
 6.19429 ++fi
 6.19430 ++{ echo "$as_me:$LINENO: result: $INSTALL" >&5
 6.19431 ++echo "${ECHO_T}$INSTALL" >&6; }
 6.19432 ++
 6.19433 ++# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 6.19434 ++# It thinks the first close brace ends the variable substitution.
 6.19435 ++test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
 6.19436 ++
 6.19437 ++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 6.19438 ++
 6.19439 ++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 6.19440 ++
 6.19441 ++
 6.19442 ++{ echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
 6.19443 ++echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; }
 6.19444 ++    # Check whether --enable-maintainer-mode was given.
 6.19445 ++if test "${enable_maintainer_mode+set}" = set; then
 6.19446 ++  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
 6.19447 ++else
 6.19448 ++  USE_MAINTAINER_MODE=no
 6.19449 ++fi
 6.19450 ++
 6.19451 ++  { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
 6.19452 ++echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; }
 6.19453 ++
 6.19454 ++
 6.19455 ++if test $USE_MAINTAINER_MODE = yes; then
 6.19456 ++  MAINTAINER_MODE_TRUE=
 6.19457 ++  MAINTAINER_MODE_FALSE='#'
 6.19458 ++else
 6.19459 ++  MAINTAINER_MODE_TRUE='#'
 6.19460 ++  MAINTAINER_MODE_FALSE=
 6.19461 ++fi
 6.19462 ++  MAINT=$MAINTAINER_MODE_TRUE
 6.19463 ++
 6.19464 ++
 6.19465 ++
 6.19466 ++# We need AC_EXEEXT to keep automake happy in cygnus mode.  However,
 6.19467 ++# at least currently, we never actually build a program, so we never
 6.19468 ++# need to use $(EXEEXT).  Moreover, the test for EXEEXT normally
 6.19469 ++# fails, because we are probably configuring with a cross compiler
 6.19470 ++# which can't create executables.  So we include AC_EXEEXT to keep
 6.19471 ++# automake happy, but we don't execute it, since we don't care about
 6.19472 ++# the result.
 6.19473 ++#if false; then
 6.19474 ++#
 6.19475 ++#fi
 6.19476 ++
 6.19477 ++. ${newlib_basedir}/configure.host
 6.19478 ++
 6.19479 ++newlib_cflags="${newlib_cflags} -fno-builtin"
 6.19480 ++
 6.19481 ++NEWLIB_CFLAGS=${newlib_cflags}
 6.19482 ++
 6.19483 ++
 6.19484 ++LDFLAGS=${ldflags}
 6.19485 ++
 6.19486 ++
 6.19487 ++
 6.19488 ++
 6.19489 ++if test x${newlib_elix_level} = x0; then
 6.19490 ++  ELIX_LEVEL_0_TRUE=
 6.19491 ++  ELIX_LEVEL_0_FALSE='#'
 6.19492 ++else
 6.19493 ++  ELIX_LEVEL_0_TRUE='#'
 6.19494 ++  ELIX_LEVEL_0_FALSE=
 6.19495 ++fi
 6.19496 ++
 6.19497 ++
 6.19498 ++if test x${newlib_elix_level} = x1; then
 6.19499 ++  ELIX_LEVEL_1_TRUE=
 6.19500 ++  ELIX_LEVEL_1_FALSE='#'
 6.19501 ++else
 6.19502 ++  ELIX_LEVEL_1_TRUE='#'
 6.19503 ++  ELIX_LEVEL_1_FALSE=
 6.19504 ++fi
 6.19505 ++
 6.19506 ++
 6.19507 ++if test x${newlib_elix_level} = x2; then
 6.19508 ++  ELIX_LEVEL_2_TRUE=
 6.19509 ++  ELIX_LEVEL_2_FALSE='#'
 6.19510 ++else
 6.19511 ++  ELIX_LEVEL_2_TRUE='#'
 6.19512 ++  ELIX_LEVEL_2_FALSE=
 6.19513 ++fi
 6.19514 ++
 6.19515 ++
 6.19516 ++if test x${newlib_elix_level} = x3; then
 6.19517 ++  ELIX_LEVEL_3_TRUE=
 6.19518 ++  ELIX_LEVEL_3_FALSE='#'
 6.19519 ++else
 6.19520 ++  ELIX_LEVEL_3_TRUE='#'
 6.19521 ++  ELIX_LEVEL_3_FALSE=
 6.19522 ++fi
 6.19523 ++
 6.19524 ++
 6.19525 ++if test x${newlib_elix_level} = x4; then
 6.19526 ++  ELIX_LEVEL_4_TRUE=
 6.19527 ++  ELIX_LEVEL_4_FALSE='#'
 6.19528 ++else
 6.19529 ++  ELIX_LEVEL_4_TRUE='#'
 6.19530 ++  ELIX_LEVEL_4_FALSE=
 6.19531 ++fi
 6.19532 ++
 6.19533 ++
 6.19534 ++
 6.19535 ++if test x${use_libtool} = xyes; then
 6.19536 ++  USE_LIBTOOL_TRUE=
 6.19537 ++  USE_LIBTOOL_FALSE='#'
 6.19538 ++else
 6.19539 ++  USE_LIBTOOL_TRUE='#'
 6.19540 ++  USE_LIBTOOL_FALSE=
 6.19541 ++fi
 6.19542 ++
 6.19543 ++# Hard-code OBJEXT.  Normally it is set by AC_OBJEXT, but we
 6.19544 ++# use oext, which is set in configure.host based on the target platform.
 6.19545 ++OBJEXT=${oext}
 6.19546 ++
 6.19547 ++
 6.19548 ++
 6.19549 ++
 6.19550 ++
 6.19551 ++
 6.19552 ++
 6.19553 ++
 6.19554 ++
 6.19555 ++
 6.19556 ++ac_config_files="$ac_config_files Makefile"
 6.19557 ++
 6.19558 ++cat >confcache <<\_ACEOF
 6.19559 ++# This file is a shell script that caches the results of configure
 6.19560 ++# tests run on this system so they can be shared between configure
 6.19561 ++# scripts and configure runs, see configure's option --config-cache.
 6.19562 ++# It is not useful on other systems.  If it contains results you don't
 6.19563 ++# want to keep, you may remove or edit it.
 6.19564 ++#
 6.19565 ++# config.status only pays attention to the cache file if you give it
 6.19566 ++# the --recheck option to rerun configure.
 6.19567 ++#
 6.19568 ++# `ac_cv_env_foo' variables (set or unset) will be overridden when
 6.19569 ++# loading this file, other *unset* `ac_cv_foo' will be assigned the
 6.19570 ++# following values.
 6.19571 ++
 6.19572 ++_ACEOF
 6.19573 ++
 6.19574 ++# The following way of writing the cache mishandles newlines in values,
 6.19575 ++# but we know of no workaround that is simple, portable, and efficient.
 6.19576 ++# So, we kill variables containing newlines.
 6.19577 ++# Ultrix sh set writes to stderr and can't be redirected directly,
 6.19578 ++# and sets the high bit in the cache file unless we assign to the vars.
 6.19579 ++(
 6.19580 ++  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
 6.19581 ++    eval ac_val=\$$ac_var
 6.19582 ++    case $ac_val in #(
 6.19583 ++    *${as_nl}*)
 6.19584 ++      case $ac_var in #(
 6.19585 ++      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
 6.19586 ++echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
 6.19587 ++      esac
 6.19588 ++      case $ac_var in #(
 6.19589 ++      _ | IFS | as_nl) ;; #(
 6.19590 ++      *) $as_unset $ac_var ;;
 6.19591 ++      esac ;;
 6.19592 ++    esac
 6.19593 ++  done
 6.19594 ++
 6.19595 ++  (set) 2>&1 |
 6.19596 ++    case $as_nl`(ac_space=' '; set) 2>&1` in #(
 6.19597 ++    *${as_nl}ac_space=\ *)
 6.19598 ++      # `set' does not quote correctly, so add quotes (double-quote
 6.19599 ++      # substitution turns \\\\ into \\, and sed turns \\ into \).
 6.19600 ++      sed -n \
 6.19601 ++	"s/'/'\\\\''/g;
 6.19602 ++	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
 6.19603 ++      ;; #(
 6.19604 ++    *)
 6.19605 ++      # `set' quotes correctly as required by POSIX, so do not add quotes.
 6.19606 ++      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
 6.19607 ++      ;;
 6.19608 ++    esac |
 6.19609 ++    sort
 6.19610 ++) |
 6.19611 ++  sed '
 6.19612 ++     /^ac_cv_env_/b end
 6.19613 ++     t clear
 6.19614 ++     :clear
 6.19615 ++     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
 6.19616 ++     t end
 6.19617 ++     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
 6.19618 ++     :end' >>confcache
 6.19619 ++if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
 6.19620 ++  if test -w "$cache_file"; then
 6.19621 ++    test "x$cache_file" != "x/dev/null" &&
 6.19622 ++      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
 6.19623 ++echo "$as_me: updating cache $cache_file" >&6;}
 6.19624 ++    cat confcache >$cache_file
 6.19625 ++  else
 6.19626 ++    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
 6.19627 ++echo "$as_me: not updating unwritable cache $cache_file" >&6;}
 6.19628 ++  fi
 6.19629 ++fi
 6.19630 ++rm -f confcache
 6.19631 ++
 6.19632 ++test "x$prefix" = xNONE && prefix=$ac_default_prefix
 6.19633 ++# Let make expand exec_prefix.
 6.19634 ++test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
 6.19635 ++
 6.19636 ++# Transform confdefs.h into DEFS.
 6.19637 ++# Protect against shell expansion while executing Makefile rules.
 6.19638 ++# Protect against Makefile macro expansion.
 6.19639 ++#
 6.19640 ++# If the first sed substitution is executed (which looks for macros that
 6.19641 ++# take arguments), then branch to the quote section.  Otherwise,
 6.19642 ++# look for a macro that doesn't take arguments.
 6.19643 ++ac_script='
 6.19644 ++t clear
 6.19645 ++:clear
 6.19646 ++s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\)/-D\1=\2/g
 6.19647 ++t quote
 6.19648 ++s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)/-D\1=\2/g
 6.19649 ++t quote
 6.19650 ++b any
 6.19651 ++:quote
 6.19652 ++s/[	 `~#$^&*(){}\\|;'\''"<>?]/\\&/g
 6.19653 ++s/\[/\\&/g
 6.19654 ++s/\]/\\&/g
 6.19655 ++s/\$/$$/g
 6.19656 ++H
 6.19657 ++:any
 6.19658 ++${
 6.19659 ++	g
 6.19660 ++	s/^\n//
 6.19661 ++	s/\n/ /g
 6.19662 ++	p
 6.19663 ++}
 6.19664 ++'
 6.19665 ++DEFS=`sed -n "$ac_script" confdefs.h`
 6.19666 ++
 6.19667 ++
 6.19668 ++ac_libobjs=
 6.19669 ++ac_ltlibobjs=
 6.19670 ++for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
 6.19671 ++  # 1. Remove the extension, and $U if already installed.
 6.19672 ++  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
 6.19673 ++  ac_i=`echo "$ac_i" | sed "$ac_script"`
 6.19674 ++  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
 6.19675 ++  #    will be set to the directory where LIBOBJS objects are built.
 6.19676 ++  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
 6.19677 ++  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
 6.19678 ++done
 6.19679 ++LIBOBJS=$ac_libobjs
 6.19680 ++
 6.19681 ++LTLIBOBJS=$ac_ltlibobjs
 6.19682 ++
 6.19683 ++
 6.19684 ++
 6.19685 ++: ${CONFIG_STATUS=./config.status}
 6.19686 ++ac_clean_files_save=$ac_clean_files
 6.19687 ++ac_clean_files="$ac_clean_files $CONFIG_STATUS"
 6.19688 ++{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
 6.19689 ++echo "$as_me: creating $CONFIG_STATUS" >&6;}
 6.19690 ++cat >$CONFIG_STATUS <<_ACEOF
 6.19691 ++#! $SHELL
 6.19692 ++# Generated by $as_me.
 6.19693 ++# Run this file to recreate the current configuration.
 6.19694 ++# Compiler output produced by configure, useful for debugging
 6.19695 ++# configure, is in config.log if it exists.
 6.19696 ++
 6.19697 ++debug=false
 6.19698 ++ac_cs_recheck=false
 6.19699 ++ac_cs_silent=false
 6.19700 ++SHELL=\${CONFIG_SHELL-$SHELL}
 6.19701 ++_ACEOF
 6.19702 ++
 6.19703 ++cat >>$CONFIG_STATUS <<\_ACEOF
 6.19704 ++## --------------------- ##
 6.19705 ++## M4sh Initialization.  ##
 6.19706 ++## --------------------- ##
 6.19707 ++
 6.19708 ++# Be more Bourne compatible
 6.19709 ++DUALCASE=1; export DUALCASE # for MKS sh
 6.19710 ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
 6.19711 ++  emulate sh
 6.19712 ++  NULLCMD=:
 6.19713 ++  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
 6.19714 ++  # is contrary to our usage.  Disable this feature.
 6.19715 ++  alias -g '${1+"$@"}'='"$@"'
 6.19716 ++  setopt NO_GLOB_SUBST
 6.19717 ++else
 6.19718 ++  case `(set -o) 2>/dev/null` in
 6.19719 ++  *posix*) set -o posix ;;
 6.19720 ++esac
 6.19721 ++
 6.19722 ++fi
 6.19723 ++
 6.19724 ++
 6.19725 ++
 6.19726 ++
 6.19727 ++# PATH needs CR
 6.19728 ++# Avoid depending upon Character Ranges.
 6.19729 ++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
 6.19730 ++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
 6.19731 ++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 6.19732 ++as_cr_digits='0123456789'
 6.19733 ++as_cr_alnum=$as_cr_Letters$as_cr_digits
 6.19734 ++
 6.19735 ++# The user is always right.
 6.19736 ++if test "${PATH_SEPARATOR+set}" != set; then
 6.19737 ++  echo "#! /bin/sh" >conf$$.sh
 6.19738 ++  echo  "exit 0"   >>conf$$.sh
 6.19739 ++  chmod +x conf$$.sh
 6.19740 ++  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
 6.19741 ++    PATH_SEPARATOR=';'
 6.19742 ++  else
 6.19743 ++    PATH_SEPARATOR=:
 6.19744 ++  fi
 6.19745 ++  rm -f conf$$.sh
 6.19746 ++fi
 6.19747 ++
 6.19748 ++# Support unset when possible.
 6.19749 ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
 6.19750 ++  as_unset=unset
 6.19751 ++else
 6.19752 ++  as_unset=false
 6.19753 ++fi
 6.19754 ++
 6.19755 ++
 6.19756 ++# IFS
 6.19757 ++# We need space, tab and new line, in precisely that order.  Quoting is
 6.19758 ++# there to prevent editors from complaining about space-tab.
 6.19759 ++# (If _AS_PATH_WALK were called with IFS unset, it would disable word
 6.19760 ++# splitting by setting IFS to empty value.)
 6.19761 ++as_nl='
 6.19762 ++'
 6.19763 ++IFS=" ""	$as_nl"
 6.19764 ++
 6.19765 ++# Find who we are.  Look in the path if we contain no directory separator.
 6.19766 ++case $0 in
 6.19767 ++  *[\\/]* ) as_myself=$0 ;;
 6.19768 ++  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.19769 ++for as_dir in $PATH
 6.19770 ++do
 6.19771 ++  IFS=$as_save_IFS
 6.19772 ++  test -z "$as_dir" && as_dir=.
 6.19773 ++  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
 6.19774 ++done
 6.19775 ++IFS=$as_save_IFS
 6.19776 ++
 6.19777 ++     ;;
 6.19778 ++esac
 6.19779 ++# We did not find ourselves, most probably we were run as `sh COMMAND'
 6.19780 ++# in which case we are not to be found in the path.
 6.19781 ++if test "x$as_myself" = x; then
 6.19782 ++  as_myself=$0
 6.19783 ++fi
 6.19784 ++if test ! -f "$as_myself"; then
 6.19785 ++  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
 6.19786 ++  { (exit 1); exit 1; }
 6.19787 ++fi
 6.19788 ++
 6.19789 ++# Work around bugs in pre-3.0 UWIN ksh.
 6.19790 ++for as_var in ENV MAIL MAILPATH
 6.19791 ++do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
 6.19792 ++done
 6.19793 ++PS1='$ '
 6.19794 ++PS2='> '
 6.19795 ++PS4='+ '
 6.19796 ++
 6.19797 ++# NLS nuisances.
 6.19798 ++for as_var in \
 6.19799 ++  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
 6.19800 ++  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
 6.19801 ++  LC_TELEPHONE LC_TIME
 6.19802 ++do
 6.19803 ++  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
 6.19804 ++    eval $as_var=C; export $as_var
 6.19805 ++  else
 6.19806 ++    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
 6.19807 ++  fi
 6.19808 ++done
 6.19809 ++
 6.19810 ++# Required to use basename.
 6.19811 ++if expr a : '\(a\)' >/dev/null 2>&1 &&
 6.19812 ++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
 6.19813 ++  as_expr=expr
 6.19814 ++else
 6.19815 ++  as_expr=false
 6.19816 ++fi
 6.19817 ++
 6.19818 ++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
 6.19819 ++  as_basename=basename
 6.19820 ++else
 6.19821 ++  as_basename=false
 6.19822 ++fi
 6.19823 ++
 6.19824 ++
 6.19825 ++# Name of the executable.
 6.19826 ++as_me=`$as_basename -- "$0" ||
 6.19827 ++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 6.19828 ++	 X"$0" : 'X\(//\)$' \| \
 6.19829 ++	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
 6.19830 ++echo X/"$0" |
 6.19831 ++    sed '/^.*\/\([^/][^/]*\)\/*$/{
 6.19832 ++	    s//\1/
 6.19833 ++	    q
 6.19834 ++	  }
 6.19835 ++	  /^X\/\(\/\/\)$/{
 6.19836 ++	    s//\1/
 6.19837 ++	    q
 6.19838 ++	  }
 6.19839 ++	  /^X\/\(\/\).*/{
 6.19840 ++	    s//\1/
 6.19841 ++	    q
 6.19842 ++	  }
 6.19843 ++	  s/.*/./; q'`
 6.19844 ++
 6.19845 ++# CDPATH.
 6.19846 ++$as_unset CDPATH
 6.19847 ++
 6.19848 ++
 6.19849 ++
 6.19850 ++  as_lineno_1=$LINENO
 6.19851 ++  as_lineno_2=$LINENO
 6.19852 ++  test "x$as_lineno_1" != "x$as_lineno_2" &&
 6.19853 ++  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
 6.19854 ++
 6.19855 ++  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
 6.19856 ++  # uniformly replaced by the line number.  The first 'sed' inserts a
 6.19857 ++  # line-number line after each line using $LINENO; the second 'sed'
 6.19858 ++  # does the real work.  The second script uses 'N' to pair each
 6.19859 ++  # line-number line with the line containing $LINENO, and appends
 6.19860 ++  # trailing '-' during substitution so that $LINENO is not a special
 6.19861 ++  # case at line end.
 6.19862 ++  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
 6.19863 ++  # scripts with optimization help from Paolo Bonzini.  Blame Lee
 6.19864 ++  # E. McMahon (1931-1989) for sed's syntax.  :-)
 6.19865 ++  sed -n '
 6.19866 ++    p
 6.19867 ++    /[$]LINENO/=
 6.19868 ++  ' <$as_myself |
 6.19869 ++    sed '
 6.19870 ++      s/[$]LINENO.*/&-/
 6.19871 ++      t lineno
 6.19872 ++      b
 6.19873 ++      :lineno
 6.19874 ++      N
 6.19875 ++      :loop
 6.19876 ++      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
 6.19877 ++      t loop
 6.19878 ++      s/-\n.*//
 6.19879 ++    ' >$as_me.lineno &&
 6.19880 ++  chmod +x "$as_me.lineno" ||
 6.19881 ++    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
 6.19882 ++   { (exit 1); exit 1; }; }
 6.19883 ++
 6.19884 ++  # Don't try to exec as it changes $[0], causing all sort of problems
 6.19885 ++  # (the dirname of $[0] is not the place where we might find the
 6.19886 ++  # original and so on.  Autoconf is especially sensitive to this).
 6.19887 ++  . "./$as_me.lineno"
 6.19888 ++  # Exit status is that of the last command.
 6.19889 ++  exit
 6.19890 ++}
 6.19891 ++
 6.19892 ++
 6.19893 ++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
 6.19894 ++  as_dirname=dirname
 6.19895 ++else
 6.19896 ++  as_dirname=false
 6.19897 ++fi
 6.19898 ++
 6.19899 ++ECHO_C= ECHO_N= ECHO_T=
 6.19900 ++case `echo -n x` in
 6.19901 ++-n*)
 6.19902 ++  case `echo 'x\c'` in
 6.19903 ++  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
 6.19904 ++  *)   ECHO_C='\c';;
 6.19905 ++  esac;;
 6.19906 ++*)
 6.19907 ++  ECHO_N='-n';;
 6.19908 ++esac
 6.19909 ++
 6.19910 ++if expr a : '\(a\)' >/dev/null 2>&1 &&
 6.19911 ++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
 6.19912 ++  as_expr=expr
 6.19913 ++else
 6.19914 ++  as_expr=false
 6.19915 ++fi
 6.19916 ++
 6.19917 ++rm -f conf$$ conf$$.exe conf$$.file
 6.19918 ++if test -d conf$$.dir; then
 6.19919 ++  rm -f conf$$.dir/conf$$.file
 6.19920 ++else
 6.19921 ++  rm -f conf$$.dir
 6.19922 ++  mkdir conf$$.dir
 6.19923 ++fi
 6.19924 ++echo >conf$$.file
 6.19925 ++if ln -s conf$$.file conf$$ 2>/dev/null; then
 6.19926 ++  as_ln_s='ln -s'
 6.19927 ++  # ... but there are two gotchas:
 6.19928 ++  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
 6.19929 ++  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
 6.19930 ++  # In both cases, we have to default to `cp -p'.
 6.19931 ++  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
 6.19932 ++    as_ln_s='cp -p'
 6.19933 ++elif ln conf$$.file conf$$ 2>/dev/null; then
 6.19934 ++  as_ln_s=ln
 6.19935 ++else
 6.19936 ++  as_ln_s='cp -p'
 6.19937 ++fi
 6.19938 ++rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 6.19939 ++rmdir conf$$.dir 2>/dev/null
 6.19940 ++
 6.19941 ++if mkdir -p . 2>/dev/null; then
 6.19942 ++  as_mkdir_p=:
 6.19943 ++else
 6.19944 ++  test -d ./-p && rmdir ./-p
 6.19945 ++  as_mkdir_p=false
 6.19946 ++fi
 6.19947 ++
 6.19948 ++if test -x / >/dev/null 2>&1; then
 6.19949 ++  as_test_x='test -x'
 6.19950 ++else
 6.19951 ++  if ls -dL / >/dev/null 2>&1; then
 6.19952 ++    as_ls_L_option=L
 6.19953 ++  else
 6.19954 ++    as_ls_L_option=
 6.19955 ++  fi
 6.19956 ++  as_test_x='
 6.19957 ++    eval sh -c '\''
 6.19958 ++      if test -d "$1"; then
 6.19959 ++        test -d "$1/.";
 6.19960 ++      else
 6.19961 ++	case $1 in
 6.19962 ++        -*)set "./$1";;
 6.19963 ++	esac;
 6.19964 ++	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
 6.19965 ++	???[sx]*):;;*)false;;esac;fi
 6.19966 ++    '\'' sh
 6.19967 ++  '
 6.19968 ++fi
 6.19969 ++as_executable_p=$as_test_x
 6.19970 ++
 6.19971 ++# Sed expression to map a string onto a valid CPP name.
 6.19972 ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 6.19973 ++
 6.19974 ++# Sed expression to map a string onto a valid variable name.
 6.19975 ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 6.19976 ++
 6.19977 ++
 6.19978 ++exec 6>&1
 6.19979 ++
 6.19980 ++# Save the log message, to keep $[0] and so on meaningful, and to
 6.19981 ++# report actual input values of CONFIG_FILES etc. instead of their
 6.19982 ++# values after options handling.
 6.19983 ++ac_log="
 6.19984 ++This file was extended by newlib $as_me NEWLIB_VERSION, which was
 6.19985 ++generated by GNU Autoconf 2.61.  Invocation command line was
 6.19986 ++
 6.19987 ++  CONFIG_FILES    = $CONFIG_FILES
 6.19988 ++  CONFIG_HEADERS  = $CONFIG_HEADERS
 6.19989 ++  CONFIG_LINKS    = $CONFIG_LINKS
 6.19990 ++  CONFIG_COMMANDS = $CONFIG_COMMANDS
 6.19991 ++  $ $0 $@
 6.19992 ++
 6.19993 ++on `(hostname || uname -n) 2>/dev/null | sed 1q`
 6.19994 ++"
 6.19995 ++
 6.19996 ++_ACEOF
 6.19997 ++
 6.19998 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.19999 ++# Files that config.status was made for.
 6.20000 ++config_files="$ac_config_files"
 6.20001 ++
 6.20002 ++_ACEOF
 6.20003 ++
 6.20004 ++cat >>$CONFIG_STATUS <<\_ACEOF
 6.20005 ++ac_cs_usage="\
 6.20006 ++\`$as_me' instantiates files from templates according to the
 6.20007 ++current configuration.
 6.20008 ++
 6.20009 ++Usage: $0 [OPTIONS] [FILE]...
 6.20010 ++
 6.20011 ++  -h, --help       print this help, then exit
 6.20012 ++  -V, --version    print version number and configuration settings, then exit
 6.20013 ++  -q, --quiet      do not print progress messages
 6.20014 ++  -d, --debug      don't remove temporary files
 6.20015 ++      --recheck    update $as_me by reconfiguring in the same conditions
 6.20016 ++  --file=FILE[:TEMPLATE]
 6.20017 ++		   instantiate the configuration file FILE
 6.20018 ++
 6.20019 ++Configuration files:
 6.20020 ++$config_files
 6.20021 ++
 6.20022 ++Report bugs to <bug-autoconf@gnu.org>."
 6.20023 ++
 6.20024 ++_ACEOF
 6.20025 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.20026 ++ac_cs_version="\\
 6.20027 ++newlib config.status NEWLIB_VERSION
 6.20028 ++configured by $0, generated by GNU Autoconf 2.61,
 6.20029 ++  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 6.20030 ++
 6.20031 ++Copyright (C) 2006 Free Software Foundation, Inc.
 6.20032 ++This config.status script is free software; the Free Software Foundation
 6.20033 ++gives unlimited permission to copy, distribute and modify it."
 6.20034 ++
 6.20035 ++ac_pwd='$ac_pwd'
 6.20036 ++srcdir='$srcdir'
 6.20037 ++INSTALL='$INSTALL'
 6.20038 ++_ACEOF
 6.20039 ++
 6.20040 ++cat >>$CONFIG_STATUS <<\_ACEOF
 6.20041 ++# If no file are specified by the user, then we need to provide default
 6.20042 ++# value.  By we need to know if files were specified by the user.
 6.20043 ++ac_need_defaults=:
 6.20044 ++while test $# != 0
 6.20045 ++do
 6.20046 ++  case $1 in
 6.20047 ++  --*=*)
 6.20048 ++    ac_option=`expr "X$1" : 'X\([^=]*\)='`
 6.20049 ++    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
 6.20050 ++    ac_shift=:
 6.20051 ++    ;;
 6.20052 ++  *)
 6.20053 ++    ac_option=$1
 6.20054 ++    ac_optarg=$2
 6.20055 ++    ac_shift=shift
 6.20056 ++    ;;
 6.20057 ++  esac
 6.20058 ++
 6.20059 ++  case $ac_option in
 6.20060 ++  # Handling of the options.
 6.20061 ++  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
 6.20062 ++    ac_cs_recheck=: ;;
 6.20063 ++  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
 6.20064 ++    echo "$ac_cs_version"; exit ;;
 6.20065 ++  --debug | --debu | --deb | --de | --d | -d )
 6.20066 ++    debug=: ;;
 6.20067 ++  --file | --fil | --fi | --f )
 6.20068 ++    $ac_shift
 6.20069 ++    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
 6.20070 ++    ac_need_defaults=false;;
 6.20071 ++  --he | --h |  --help | --hel | -h )
 6.20072 ++    echo "$ac_cs_usage"; exit ;;
 6.20073 ++  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
 6.20074 ++  | -silent | --silent | --silen | --sile | --sil | --si | --s)
 6.20075 ++    ac_cs_silent=: ;;
 6.20076 ++
 6.20077 ++  # This is an error.
 6.20078 ++  -*) { echo "$as_me: error: unrecognized option: $1
 6.20079 ++Try \`$0 --help' for more information." >&2
 6.20080 ++   { (exit 1); exit 1; }; } ;;
 6.20081 ++
 6.20082 ++  *) ac_config_targets="$ac_config_targets $1"
 6.20083 ++     ac_need_defaults=false ;;
 6.20084 ++
 6.20085 ++  esac
 6.20086 ++  shift
 6.20087 ++done
 6.20088 ++
 6.20089 ++ac_configure_extra_args=
 6.20090 ++
 6.20091 ++if $ac_cs_silent; then
 6.20092 ++  exec 6>/dev/null
 6.20093 ++  ac_configure_extra_args="$ac_configure_extra_args --silent"
 6.20094 ++fi
 6.20095 ++
 6.20096 ++_ACEOF
 6.20097 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.20098 ++if \$ac_cs_recheck; then
 6.20099 ++  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
 6.20100 ++  CONFIG_SHELL=$SHELL
 6.20101 ++  export CONFIG_SHELL
 6.20102 ++  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
 6.20103 ++fi
 6.20104 ++
 6.20105 ++_ACEOF
 6.20106 ++cat >>$CONFIG_STATUS <<\_ACEOF
 6.20107 ++exec 5>>config.log
 6.20108 ++{
 6.20109 ++  echo
 6.20110 ++  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
 6.20111 ++## Running $as_me. ##
 6.20112 ++_ASBOX
 6.20113 ++  echo "$ac_log"
 6.20114 ++} >&5
 6.20115 ++
 6.20116 ++_ACEOF
 6.20117 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.20118 ++_ACEOF
 6.20119 ++
 6.20120 ++cat >>$CONFIG_STATUS <<\_ACEOF
 6.20121 ++
 6.20122 ++# Handling of arguments.
 6.20123 ++for ac_config_target in $ac_config_targets
 6.20124 ++do
 6.20125 ++  case $ac_config_target in
 6.20126 ++    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
 6.20127 ++
 6.20128 ++  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
 6.20129 ++echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
 6.20130 ++   { (exit 1); exit 1; }; };;
 6.20131 ++  esac
 6.20132 ++done
 6.20133 ++
 6.20134 ++
 6.20135 ++# If the user did not use the arguments to specify the items to instantiate,
 6.20136 ++# then the envvar interface is used.  Set only those that are not.
 6.20137 ++# We use the long form for the default assignment because of an extremely
 6.20138 ++# bizarre bug on SunOS 4.1.3.
 6.20139 ++if $ac_need_defaults; then
 6.20140 ++  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
 6.20141 ++fi
 6.20142 ++
 6.20143 ++# Have a temporary directory for convenience.  Make it in the build tree
 6.20144 ++# simply because there is no reason against having it here, and in addition,
 6.20145 ++# creating and moving files from /tmp can sometimes cause problems.
 6.20146 ++# Hook for its removal unless debugging.
 6.20147 ++# Note that there is a small window in which the directory will not be cleaned:
 6.20148 ++# after its creation but before its name has been assigned to `$tmp'.
 6.20149 ++$debug ||
 6.20150 ++{
 6.20151 ++  tmp=
 6.20152 ++  trap 'exit_status=$?
 6.20153 ++  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
 6.20154 ++' 0
 6.20155 ++  trap '{ (exit 1); exit 1; }' 1 2 13 15
 6.20156 ++}
 6.20157 ++# Create a (secure) tmp directory for tmp files.
 6.20158 ++
 6.20159 ++{
 6.20160 ++  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
 6.20161 ++  test -n "$tmp" && test -d "$tmp"
 6.20162 ++}  ||
 6.20163 ++{
 6.20164 ++  tmp=./conf$$-$RANDOM
 6.20165 ++  (umask 077 && mkdir "$tmp")
 6.20166 ++} ||
 6.20167 ++{
 6.20168 ++   echo "$me: cannot create a temporary directory in ." >&2
 6.20169 ++   { (exit 1); exit 1; }
 6.20170 ++}
 6.20171 ++
 6.20172 ++#
 6.20173 ++# Set up the sed scripts for CONFIG_FILES section.
 6.20174 ++#
 6.20175 ++
 6.20176 ++# No need to generate the scripts if there are no CONFIG_FILES.
 6.20177 ++# This happens for instance when ./config.status config.h
 6.20178 ++if test -n "$CONFIG_FILES"; then
 6.20179 ++
 6.20180 ++_ACEOF
 6.20181 ++
 6.20182 ++
 6.20183 ++
 6.20184 ++ac_delim='%!_!# '
 6.20185 ++for ac_last_try in false false false false false :; do
 6.20186 ++  cat >conf$$subs.sed <<_ACEOF
 6.20187 ++SHELL!$SHELL$ac_delim
 6.20188 ++PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
 6.20189 ++PACKAGE_NAME!$PACKAGE_NAME$ac_delim
 6.20190 ++PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
 6.20191 ++PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
 6.20192 ++PACKAGE_STRING!$PACKAGE_STRING$ac_delim
 6.20193 ++PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
 6.20194 ++exec_prefix!$exec_prefix$ac_delim
 6.20195 ++prefix!$prefix$ac_delim
 6.20196 ++program_transform_name!$program_transform_name$ac_delim
 6.20197 ++bindir!$bindir$ac_delim
 6.20198 ++sbindir!$sbindir$ac_delim
 6.20199 ++libexecdir!$libexecdir$ac_delim
 6.20200 ++datarootdir!$datarootdir$ac_delim
 6.20201 ++datadir!$datadir$ac_delim
 6.20202 ++sysconfdir!$sysconfdir$ac_delim
 6.20203 ++sharedstatedir!$sharedstatedir$ac_delim
 6.20204 ++localstatedir!$localstatedir$ac_delim
 6.20205 ++includedir!$includedir$ac_delim
 6.20206 ++oldincludedir!$oldincludedir$ac_delim
 6.20207 ++docdir!$docdir$ac_delim
 6.20208 ++infodir!$infodir$ac_delim
 6.20209 ++htmldir!$htmldir$ac_delim
 6.20210 ++dvidir!$dvidir$ac_delim
 6.20211 ++pdfdir!$pdfdir$ac_delim
 6.20212 ++psdir!$psdir$ac_delim
 6.20213 ++libdir!$libdir$ac_delim
 6.20214 ++localedir!$localedir$ac_delim
 6.20215 ++mandir!$mandir$ac_delim
 6.20216 ++DEFS!$DEFS$ac_delim
 6.20217 ++ECHO_C!$ECHO_C$ac_delim
 6.20218 ++ECHO_N!$ECHO_N$ac_delim
 6.20219 ++ECHO_T!$ECHO_T$ac_delim
 6.20220 ++LIBS!$LIBS$ac_delim
 6.20221 ++build_alias!$build_alias$ac_delim
 6.20222 ++host_alias!$host_alias$ac_delim
 6.20223 ++target_alias!$target_alias$ac_delim
 6.20224 ++MAY_SUPPLY_SYSCALLS_TRUE!$MAY_SUPPLY_SYSCALLS_TRUE$ac_delim
 6.20225 ++MAY_SUPPLY_SYSCALLS_FALSE!$MAY_SUPPLY_SYSCALLS_FALSE$ac_delim
 6.20226 ++newlib_basedir!$newlib_basedir$ac_delim
 6.20227 ++build!$build$ac_delim
 6.20228 ++build_cpu!$build_cpu$ac_delim
 6.20229 ++build_vendor!$build_vendor$ac_delim
 6.20230 ++build_os!$build_os$ac_delim
 6.20231 ++host!$host$ac_delim
 6.20232 ++host_cpu!$host_cpu$ac_delim
 6.20233 ++host_vendor!$host_vendor$ac_delim
 6.20234 ++host_os!$host_os$ac_delim
 6.20235 ++target!$target$ac_delim
 6.20236 ++target_cpu!$target_cpu$ac_delim
 6.20237 ++target_vendor!$target_vendor$ac_delim
 6.20238 ++target_os!$target_os$ac_delim
 6.20239 ++INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
 6.20240 ++INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
 6.20241 ++INSTALL_DATA!$INSTALL_DATA$ac_delim
 6.20242 ++PACKAGE!$PACKAGE$ac_delim
 6.20243 ++VERSION!$VERSION$ac_delim
 6.20244 ++ACLOCAL!$ACLOCAL$ac_delim
 6.20245 ++AUTOCONF!$AUTOCONF$ac_delim
 6.20246 ++AUTOMAKE!$AUTOMAKE$ac_delim
 6.20247 ++AUTOHEADER!$AUTOHEADER$ac_delim
 6.20248 ++MAKEINFO!$MAKEINFO$ac_delim
 6.20249 ++SET_MAKE!$SET_MAKE$ac_delim
 6.20250 ++CC!$CC$ac_delim
 6.20251 ++AS!$AS$ac_delim
 6.20252 ++AR!$AR$ac_delim
 6.20253 ++RANLIB!$RANLIB$ac_delim
 6.20254 ++MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim
 6.20255 ++MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim
 6.20256 ++MAINT!$MAINT$ac_delim
 6.20257 ++NEWLIB_CFLAGS!$NEWLIB_CFLAGS$ac_delim
 6.20258 ++LDFLAGS!$LDFLAGS$ac_delim
 6.20259 ++ELIX_LEVEL_0_TRUE!$ELIX_LEVEL_0_TRUE$ac_delim
 6.20260 ++ELIX_LEVEL_0_FALSE!$ELIX_LEVEL_0_FALSE$ac_delim
 6.20261 ++ELIX_LEVEL_1_TRUE!$ELIX_LEVEL_1_TRUE$ac_delim
 6.20262 ++ELIX_LEVEL_1_FALSE!$ELIX_LEVEL_1_FALSE$ac_delim
 6.20263 ++ELIX_LEVEL_2_TRUE!$ELIX_LEVEL_2_TRUE$ac_delim
 6.20264 ++ELIX_LEVEL_2_FALSE!$ELIX_LEVEL_2_FALSE$ac_delim
 6.20265 ++ELIX_LEVEL_3_TRUE!$ELIX_LEVEL_3_TRUE$ac_delim
 6.20266 ++ELIX_LEVEL_3_FALSE!$ELIX_LEVEL_3_FALSE$ac_delim
 6.20267 ++ELIX_LEVEL_4_TRUE!$ELIX_LEVEL_4_TRUE$ac_delim
 6.20268 ++ELIX_LEVEL_4_FALSE!$ELIX_LEVEL_4_FALSE$ac_delim
 6.20269 ++USE_LIBTOOL_TRUE!$USE_LIBTOOL_TRUE$ac_delim
 6.20270 ++USE_LIBTOOL_FALSE!$USE_LIBTOOL_FALSE$ac_delim
 6.20271 ++OBJEXT!$OBJEXT$ac_delim
 6.20272 ++oext!$oext$ac_delim
 6.20273 ++aext!$aext$ac_delim
 6.20274 ++libm_machine_dir!$libm_machine_dir$ac_delim
 6.20275 ++machine_dir!$machine_dir$ac_delim
 6.20276 ++sys_dir!$sys_dir$ac_delim
 6.20277 ++LIBOBJS!$LIBOBJS$ac_delim
 6.20278 ++LTLIBOBJS!$LTLIBOBJS$ac_delim
 6.20279 ++_ACEOF
 6.20280 ++
 6.20281 ++  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 92; then
 6.20282 ++    break
 6.20283 ++  elif $ac_last_try; then
 6.20284 ++    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
 6.20285 ++echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
 6.20286 ++   { (exit 1); exit 1; }; }
 6.20287 ++  else
 6.20288 ++    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
 6.20289 ++  fi
 6.20290 ++done
 6.20291 ++
 6.20292 ++ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
 6.20293 ++if test -n "$ac_eof"; then
 6.20294 ++  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
 6.20295 ++  ac_eof=`expr $ac_eof + 1`
 6.20296 ++fi
 6.20297 ++
 6.20298 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.20299 ++cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
 6.20300 ++/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
 6.20301 ++_ACEOF
 6.20302 ++sed '
 6.20303 ++s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
 6.20304 ++s/^/s,@/; s/!/@,|#_!!_#|/
 6.20305 ++:n
 6.20306 ++t n
 6.20307 ++s/'"$ac_delim"'$/,g/; t
 6.20308 ++s/$/\\/; p
 6.20309 ++N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
 6.20310 ++' >>$CONFIG_STATUS <conf$$subs.sed
 6.20311 ++rm -f conf$$subs.sed
 6.20312 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.20313 ++:end
 6.20314 ++s/|#_!!_#|//g
 6.20315 ++CEOF$ac_eof
 6.20316 ++_ACEOF
 6.20317 ++
 6.20318 ++
 6.20319 ++# VPATH may cause trouble with some makes, so we remove $(srcdir),
 6.20320 ++# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
 6.20321 ++# trailing colons and then remove the whole line if VPATH becomes empty
 6.20322 ++# (actually we leave an empty line to preserve line numbers).
 6.20323 ++if test "x$srcdir" = x.; then
 6.20324 ++  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
 6.20325 ++s/:*\$(srcdir):*/:/
 6.20326 ++s/:*\${srcdir}:*/:/
 6.20327 ++s/:*@srcdir@:*/:/
 6.20328 ++s/^\([^=]*=[	 ]*\):*/\1/
 6.20329 ++s/:*$//
 6.20330 ++s/^[^=]*=[	 ]*$//
 6.20331 ++}'
 6.20332 ++fi
 6.20333 ++
 6.20334 ++cat >>$CONFIG_STATUS <<\_ACEOF
 6.20335 ++fi # test -n "$CONFIG_FILES"
 6.20336 ++
 6.20337 ++
 6.20338 ++for ac_tag in  :F $CONFIG_FILES
 6.20339 ++do
 6.20340 ++  case $ac_tag in
 6.20341 ++  :[FHLC]) ac_mode=$ac_tag; continue;;
 6.20342 ++  esac
 6.20343 ++  case $ac_mode$ac_tag in
 6.20344 ++  :[FHL]*:*);;
 6.20345 ++  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
 6.20346 ++echo "$as_me: error: Invalid tag $ac_tag." >&2;}
 6.20347 ++   { (exit 1); exit 1; }; };;
 6.20348 ++  :[FH]-) ac_tag=-:-;;
 6.20349 ++  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
 6.20350 ++  esac
 6.20351 ++  ac_save_IFS=$IFS
 6.20352 ++  IFS=:
 6.20353 ++  set x $ac_tag
 6.20354 ++  IFS=$ac_save_IFS
 6.20355 ++  shift
 6.20356 ++  ac_file=$1
 6.20357 ++  shift
 6.20358 ++
 6.20359 ++  case $ac_mode in
 6.20360 ++  :L) ac_source=$1;;
 6.20361 ++  :[FH])
 6.20362 ++    ac_file_inputs=
 6.20363 ++    for ac_f
 6.20364 ++    do
 6.20365 ++      case $ac_f in
 6.20366 ++      -) ac_f="$tmp/stdin";;
 6.20367 ++      *) # Look for the file first in the build tree, then in the source tree
 6.20368 ++	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
 6.20369 ++	 # because $ac_f cannot contain `:'.
 6.20370 ++	 test -f "$ac_f" ||
 6.20371 ++	   case $ac_f in
 6.20372 ++	   [\\/$]*) false;;
 6.20373 ++	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
 6.20374 ++	   esac ||
 6.20375 ++	   { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
 6.20376 ++echo "$as_me: error: cannot find input file: $ac_f" >&2;}
 6.20377 ++   { (exit 1); exit 1; }; };;
 6.20378 ++      esac
 6.20379 ++      ac_file_inputs="$ac_file_inputs $ac_f"
 6.20380 ++    done
 6.20381 ++
 6.20382 ++    # Let's still pretend it is `configure' which instantiates (i.e., don't
 6.20383 ++    # use $as_me), people would be surprised to read:
 6.20384 ++    #    /* config.h.  Generated by config.status.  */
 6.20385 ++    configure_input="Generated from "`IFS=:
 6.20386 ++	  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
 6.20387 ++    if test x"$ac_file" != x-; then
 6.20388 ++      configure_input="$ac_file.  $configure_input"
 6.20389 ++      { echo "$as_me:$LINENO: creating $ac_file" >&5
 6.20390 ++echo "$as_me: creating $ac_file" >&6;}
 6.20391 ++    fi
 6.20392 ++
 6.20393 ++    case $ac_tag in
 6.20394 ++    *:-:* | *:-) cat >"$tmp/stdin";;
 6.20395 ++    esac
 6.20396 ++    ;;
 6.20397 ++  esac
 6.20398 ++
 6.20399 ++  ac_dir=`$as_dirname -- "$ac_file" ||
 6.20400 ++$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.20401 ++	 X"$ac_file" : 'X\(//\)[^/]' \| \
 6.20402 ++	 X"$ac_file" : 'X\(//\)$' \| \
 6.20403 ++	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
 6.20404 ++echo X"$ac_file" |
 6.20405 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 6.20406 ++	    s//\1/
 6.20407 ++	    q
 6.20408 ++	  }
 6.20409 ++	  /^X\(\/\/\)[^/].*/{
 6.20410 ++	    s//\1/
 6.20411 ++	    q
 6.20412 ++	  }
 6.20413 ++	  /^X\(\/\/\)$/{
 6.20414 ++	    s//\1/
 6.20415 ++	    q
 6.20416 ++	  }
 6.20417 ++	  /^X\(\/\).*/{
 6.20418 ++	    s//\1/
 6.20419 ++	    q
 6.20420 ++	  }
 6.20421 ++	  s/.*/./; q'`
 6.20422 ++  { as_dir="$ac_dir"
 6.20423 ++  case $as_dir in #(
 6.20424 ++  -*) as_dir=./$as_dir;;
 6.20425 ++  esac
 6.20426 ++  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
 6.20427 ++    as_dirs=
 6.20428 ++    while :; do
 6.20429 ++      case $as_dir in #(
 6.20430 ++      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
 6.20431 ++      *) as_qdir=$as_dir;;
 6.20432 ++      esac
 6.20433 ++      as_dirs="'$as_qdir' $as_dirs"
 6.20434 ++      as_dir=`$as_dirname -- "$as_dir" ||
 6.20435 ++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.20436 ++	 X"$as_dir" : 'X\(//\)[^/]' \| \
 6.20437 ++	 X"$as_dir" : 'X\(//\)$' \| \
 6.20438 ++	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
 6.20439 ++echo X"$as_dir" |
 6.20440 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 6.20441 ++	    s//\1/
 6.20442 ++	    q
 6.20443 ++	  }
 6.20444 ++	  /^X\(\/\/\)[^/].*/{
 6.20445 ++	    s//\1/
 6.20446 ++	    q
 6.20447 ++	  }
 6.20448 ++	  /^X\(\/\/\)$/{
 6.20449 ++	    s//\1/
 6.20450 ++	    q
 6.20451 ++	  }
 6.20452 ++	  /^X\(\/\).*/{
 6.20453 ++	    s//\1/
 6.20454 ++	    q
 6.20455 ++	  }
 6.20456 ++	  s/.*/./; q'`
 6.20457 ++      test -d "$as_dir" && break
 6.20458 ++    done
 6.20459 ++    test -z "$as_dirs" || eval "mkdir $as_dirs"
 6.20460 ++  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
 6.20461 ++echo "$as_me: error: cannot create directory $as_dir" >&2;}
 6.20462 ++   { (exit 1); exit 1; }; }; }
 6.20463 ++  ac_builddir=.
 6.20464 ++
 6.20465 ++case "$ac_dir" in
 6.20466 ++.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 6.20467 ++*)
 6.20468 ++  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
 6.20469 ++  # A ".." for each directory in $ac_dir_suffix.
 6.20470 ++  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
 6.20471 ++  case $ac_top_builddir_sub in
 6.20472 ++  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
 6.20473 ++  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
 6.20474 ++  esac ;;
 6.20475 ++esac
 6.20476 ++ac_abs_top_builddir=$ac_pwd
 6.20477 ++ac_abs_builddir=$ac_pwd$ac_dir_suffix
 6.20478 ++# for backward compatibility:
 6.20479 ++ac_top_builddir=$ac_top_build_prefix
 6.20480 ++
 6.20481 ++case $srcdir in
 6.20482 ++  .)  # We are building in place.
 6.20483 ++    ac_srcdir=.
 6.20484 ++    ac_top_srcdir=$ac_top_builddir_sub
 6.20485 ++    ac_abs_top_srcdir=$ac_pwd ;;
 6.20486 ++  [\\/]* | ?:[\\/]* )  # Absolute name.
 6.20487 ++    ac_srcdir=$srcdir$ac_dir_suffix;
 6.20488 ++    ac_top_srcdir=$srcdir
 6.20489 ++    ac_abs_top_srcdir=$srcdir ;;
 6.20490 ++  *) # Relative name.
 6.20491 ++    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
 6.20492 ++    ac_top_srcdir=$ac_top_build_prefix$srcdir
 6.20493 ++    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
 6.20494 ++esac
 6.20495 ++ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 6.20496 ++
 6.20497 ++
 6.20498 ++  case $ac_mode in
 6.20499 ++  :F)
 6.20500 ++  #
 6.20501 ++  # CONFIG_FILE
 6.20502 ++  #
 6.20503 ++
 6.20504 ++  case $INSTALL in
 6.20505 ++  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
 6.20506 ++  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
 6.20507 ++  esac
 6.20508 ++_ACEOF
 6.20509 ++
 6.20510 ++cat >>$CONFIG_STATUS <<\_ACEOF
 6.20511 ++# If the template does not know about datarootdir, expand it.
 6.20512 ++# FIXME: This hack should be removed a few years after 2.60.
 6.20513 ++ac_datarootdir_hack=; ac_datarootdir_seen=
 6.20514 ++
 6.20515 ++case `sed -n '/datarootdir/ {
 6.20516 ++  p
 6.20517 ++  q
 6.20518 ++}
 6.20519 ++/@datadir@/p
 6.20520 ++/@docdir@/p
 6.20521 ++/@infodir@/p
 6.20522 ++/@localedir@/p
 6.20523 ++/@mandir@/p
 6.20524 ++' $ac_file_inputs` in
 6.20525 ++*datarootdir*) ac_datarootdir_seen=yes;;
 6.20526 ++*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
 6.20527 ++  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
 6.20528 ++echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 6.20529 ++_ACEOF
 6.20530 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.20531 ++  ac_datarootdir_hack='
 6.20532 ++  s&@datadir@&$datadir&g
 6.20533 ++  s&@docdir@&$docdir&g
 6.20534 ++  s&@infodir@&$infodir&g
 6.20535 ++  s&@localedir@&$localedir&g
 6.20536 ++  s&@mandir@&$mandir&g
 6.20537 ++    s&\\\${datarootdir}&$datarootdir&g' ;;
 6.20538 ++esac
 6.20539 ++_ACEOF
 6.20540 ++
 6.20541 ++# Neutralize VPATH when `$srcdir' = `.'.
 6.20542 ++# Shell code in configure.ac might set extrasub.
 6.20543 ++# FIXME: do we really want to maintain this feature?
 6.20544 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.20545 ++  sed "$ac_vpsub
 6.20546 ++$extrasub
 6.20547 ++_ACEOF
 6.20548 ++cat >>$CONFIG_STATUS <<\_ACEOF
 6.20549 ++:t
 6.20550 ++/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
 6.20551 ++s&@configure_input@&$configure_input&;t t
 6.20552 ++s&@top_builddir@&$ac_top_builddir_sub&;t t
 6.20553 ++s&@srcdir@&$ac_srcdir&;t t
 6.20554 ++s&@abs_srcdir@&$ac_abs_srcdir&;t t
 6.20555 ++s&@top_srcdir@&$ac_top_srcdir&;t t
 6.20556 ++s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
 6.20557 ++s&@builddir@&$ac_builddir&;t t
 6.20558 ++s&@abs_builddir@&$ac_abs_builddir&;t t
 6.20559 ++s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
 6.20560 ++s&@INSTALL@&$ac_INSTALL&;t t
 6.20561 ++$ac_datarootdir_hack
 6.20562 ++" $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out
 6.20563 ++
 6.20564 ++test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
 6.20565 ++  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
 6.20566 ++  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
 6.20567 ++  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 6.20568 ++which seems to be undefined.  Please make sure it is defined." >&5
 6.20569 ++echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 6.20570 ++which seems to be undefined.  Please make sure it is defined." >&2;}
 6.20571 ++
 6.20572 ++  rm -f "$tmp/stdin"
 6.20573 ++  case $ac_file in
 6.20574 ++  -) cat "$tmp/out"; rm -f "$tmp/out";;
 6.20575 ++  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
 6.20576 ++  esac
 6.20577 ++ ;;
 6.20578 ++
 6.20579 ++
 6.20580 ++
 6.20581 ++  esac
 6.20582 ++
 6.20583 ++done # for ac_tag
 6.20584 ++
 6.20585 ++
 6.20586 ++{ (exit 0); exit 0; }
 6.20587 ++_ACEOF
 6.20588 ++chmod +x $CONFIG_STATUS
 6.20589 ++ac_clean_files=$ac_clean_files_save
 6.20590 ++
 6.20591 ++
 6.20592 ++# configure is writing to config.log, and then calls config.status.
 6.20593 ++# config.status does its own redirection, appending to config.log.
 6.20594 ++# Unfortunately, on DOS this fails, as config.log is still kept open
 6.20595 ++# by configure, so config.status won't be able to write to it; its
 6.20596 ++# output is simply discarded.  So we exec the FD to /dev/null,
 6.20597 ++# effectively closing config.log, so it can be properly (re)opened and
 6.20598 ++# appended to by config.status.  When coming back to configure, we
 6.20599 ++# need to make the FD available again.
 6.20600 ++if test "$no_create" != yes; then
 6.20601 ++  ac_cs_success=:
 6.20602 ++  ac_config_status_args=
 6.20603 ++  test "$silent" = yes &&
 6.20604 ++    ac_config_status_args="$ac_config_status_args --quiet"
 6.20605 ++  exec 5>/dev/null
 6.20606 ++  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
 6.20607 ++  exec 5>>config.log
 6.20608 ++  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
 6.20609 ++  # would make configure fail if this is the last instruction.
 6.20610 ++  $ac_cs_success || { (exit 1); exit 1; }
 6.20611 ++fi
 6.20612 ++
 6.20613 +diff -Naur newlib-1.17.0/newlib/libc/sys/avr32/configure.in newlib-1.17.0-new/newlib/libc/sys/avr32/configure.in
 6.20614 +--- newlib-1.17.0/newlib/libc/sys/avr32/configure.in	1970-01-01 01:00:00.000000000 +0100
 6.20615 ++++ newlib-1.17.0-new/newlib/libc/sys/avr32/configure.in	2009-05-22 09:57:50.000000000 +0200
 6.20616 +@@ -0,0 +1,13 @@
 6.20617 ++dnl This is the newlib/libc/sys/avr32 configure.in file.
 6.20618 ++dnl Process this file with autoconf to produce a configure script.
 6.20619 ++
 6.20620 ++AC_PREREQ(2.59)
 6.20621 ++AC_INIT([newlib],[NEWLIB_VERSION])
 6.20622 ++
 6.20623 ++dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. 
 6.20624 ++AC_CONFIG_AUX_DIR(../../../..)
 6.20625 ++
 6.20626 ++NEWLIB_CONFIGURE(../../..)
 6.20627 ++
 6.20628 ++AC_CONFIG_FILES([Makefile])
 6.20629 ++AC_OUTPUT
 6.20630 +diff -Naur newlib-1.17.0/newlib/libc/sys/avr32/crt0.S newlib-1.17.0-new/newlib/libc/sys/avr32/crt0.S
 6.20631 +--- newlib-1.17.0/newlib/libc/sys/avr32/crt0.S	1970-01-01 01:00:00.000000000 +0100
 6.20632 ++++ newlib-1.17.0-new/newlib/libc/sys/avr32/crt0.S	2009-05-22 09:57:50.000000000 +0200
 6.20633 +@@ -0,0 +1,83 @@
 6.20634 ++
 6.20635 ++	.section	.reset,"ax"
 6.20636 ++	
 6.20637 ++	.global _start
 6.20638 ++	.type	_start,@function
 6.20639 ++_start:
 6.20640 ++	/* Jump to wherever the linker thinks we are... */
 6.20641 ++	lddpc	pc, .Ltext_vaddr
 6.20642 ++
 6.20643 ++	.align	2
 6.20644 ++.Ltext_vaddr:
 6.20645 ++	.word	_stext
 6.20646 ++
 6.20647 ++	.text
 6.20648 ++	.global	_stext
 6.20649 ++_stext:
 6.20650 ++	/* Zero marks the end of the outermost frame.  */
 6.20651 ++	mov	r7, 0
 6.20652 ++
 6.20653 ++	/*  Set up the stack pointer to a fixed value */
 6.20654 ++	lda.w	r10, _estack
 6.20655 ++
 6.20656 ++	/*  If _stack is -1 don't set sp, the stack is then probably
 6.20657 ++	    set by some other means i.e. by a bootloader. */
 6.20658 ++	cp	r10, -1
 6.20659 ++	movne	sp, r10
 6.20660 ++
 6.20661 ++	/* Copy the data segment into RAM if necessary. If data_lma
 6.20662 ++	   is equal to data then VMA==LMA and no copying is necessary.
 6.20663 ++	   The linker script must make sure that the data segment is at
 6.20664 ++	   least dword-aligned.  */
 6.20665 ++	lda.w	r11, _data_lma
 6.20666 ++	lda.w	r12, _data
 6.20667 ++	cp.w	r11, r12
 6.20668 ++	breq	1f
 6.20669 ++	lda.w	r10, _edata
 6.20670 ++2:	ld.d	r8, r11++
 6.20671 ++	st.d	r12++, r8
 6.20672 ++	cp.w	r12, r10
 6.20673 ++	brlt	2b
 6.20674 ++	
 6.20675 ++	/* Zero the memory in the .bss section.  */
 6.20676 ++1:	lda.w	r10, _end
 6.20677 ++	lda.w	r12, _edata
 6.20678 ++
 6.20679 ++	mov	r8, 0
 6.20680 ++	mov	r9, 0
 6.20681 ++2:	st.d	r12++, r8
 6.20682 ++	cp.w	r12, r10
 6.20683 ++	brlt	2b
 6.20684 ++
 6.20685 ++	/* User dependent initialization */
 6.20686 ++	call	_init_startup
 6.20687 ++
 6.20688 ++	/* Register _fini function with atexit 
 6.20689 ++	   The _fini function is responsible for calling destructiors */
 6.20690 ++	lda.w	r12, _fini
 6.20691 ++	call	atexit
 6.20692 ++
 6.20693 ++	/* Call _init in order to initialize constructors etc */
 6.20694 ++	call	_init
 6.20695 ++		
 6.20696 ++	/*Initialize argv, use stack for keeping arguments. 
 6.20697 ++          _init_argv() returns argc in r12 and argv in r11
 6.20698 ++	 and the total size used for the arguments in r10.*/
 6.20699 ++	mov	r12, sp	
 6.20700 ++	/* Signal that we are storing the arguments in a stackwise
 6.20701 ++	   top down approach. */	
 6.20702 ++	mov	r11, 0	
 6.20703 ++	call	_init_argv
 6.20704 ++	/* If initialization if argv is not handled then _init_argv
 6.20705 ++           returns -1 so set argc to 0 and make sure no space is 
 6.20706 ++	   allocated on the stack. */
 6.20707 ++	cp.w	r12, -1
 6.20708 ++	moveq	r12, 0
 6.20709 ++	moveq	r10, 0
 6.20710 ++	sub	sp, r10
 6.20711 ++
 6.20712 ++	/* Call main and call exit when it returns */
 6.20713 ++	call	main
 6.20714 ++	call	exit
 6.20715 ++
 6.20716 ++	.weak	_data_lma
 6.20717 +diff -Naur newlib-1.17.0/newlib/libc/sys/avr32/Makefile.am newlib-1.17.0-new/newlib/libc/sys/avr32/Makefile.am
 6.20718 +--- newlib-1.17.0/newlib/libc/sys/avr32/Makefile.am	1970-01-01 01:00:00.000000000 +0100
 6.20719 ++++ newlib-1.17.0-new/newlib/libc/sys/avr32/Makefile.am	2009-05-22 09:57:50.000000000 +0200
 6.20720 +@@ -0,0 +1,18 @@
 6.20721 ++## Process this file with automake to generate Makefile.in
 6.20722 ++
 6.20723 ++AUTOMAKE_OPTIONS = cygnus
 6.20724 ++
 6.20725 ++INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
 6.20726 ++
 6.20727 ++AM_CCASFLAGS = $(INCLUDES)
 6.20728 ++
 6.20729 ++noinst_LIBRARIES = lib.a
 6.20730 ++
 6.20731 ++lib_a_SOURCES = syscalls.c setjmp.S
 6.20732 ++lib_a_CCASFLAGS = $(AM_CCASFLAGS)
 6.20733 ++lib_a_CFLAGS = $(AM_CFLAGS)
 6.20734 ++
 6.20735 ++all: crt0.o
 6.20736 ++
 6.20737 ++ACLOCAL_AMFLAGS = -I ../../..
 6.20738 ++CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
 6.20739 +diff -Naur newlib-1.17.0/newlib/libc/sys/avr32/Makefile.in newlib-1.17.0-new/newlib/libc/sys/avr32/Makefile.in
 6.20740 +--- newlib-1.17.0/newlib/libc/sys/avr32/Makefile.in	1970-01-01 01:00:00.000000000 +0100
 6.20741 ++++ newlib-1.17.0-new/newlib/libc/sys/avr32/Makefile.in	2009-05-22 09:57:50.000000000 +0200
 6.20742 +@@ -0,0 +1,329 @@
 6.20743 ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
 6.20744 ++
 6.20745 ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
 6.20746 ++# This Makefile.in is free software; the Free Software Foundation
 6.20747 ++# gives unlimited permission to copy and/or distribute it,
 6.20748 ++# with or without modifications, as long as this notice is preserved.
 6.20749 ++
 6.20750 ++# This program is distributed in the hope that it will be useful,
 6.20751 ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
 6.20752 ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 6.20753 ++# PARTICULAR PURPOSE.
 6.20754 ++
 6.20755 ++
 6.20756 ++SHELL = @SHELL@
 6.20757 ++
 6.20758 ++srcdir = @srcdir@
 6.20759 ++top_srcdir = @top_srcdir@
 6.20760 ++VPATH = @srcdir@
 6.20761 ++prefix = @prefix@
 6.20762 ++exec_prefix = @exec_prefix@
 6.20763 ++
 6.20764 ++bindir = @bindir@
 6.20765 ++sbindir = @sbindir@
 6.20766 ++libexecdir = @libexecdir@
 6.20767 ++datadir = @datadir@
 6.20768 ++sysconfdir = @sysconfdir@
 6.20769 ++sharedstatedir = @sharedstatedir@
 6.20770 ++localstatedir = @localstatedir@
 6.20771 ++libdir = @libdir@
 6.20772 ++infodir = @infodir@
 6.20773 ++mandir = @mandir@
 6.20774 ++includedir = @includedir@
 6.20775 ++oldincludedir = /usr/include
 6.20776 ++
 6.20777 ++DESTDIR =
 6.20778 ++
 6.20779 ++pkgdatadir = $(datadir)/@PACKAGE@
 6.20780 ++pkglibdir = $(libdir)/@PACKAGE@
 6.20781 ++pkgincludedir = $(includedir)/@PACKAGE@
 6.20782 ++
 6.20783 ++top_builddir = .
 6.20784 ++
 6.20785 ++ACLOCAL = @ACLOCAL@
 6.20786 ++AUTOCONF = @AUTOCONF@
 6.20787 ++AUTOMAKE = @AUTOMAKE@
 6.20788 ++AUTOHEADER = @AUTOHEADER@
 6.20789 ++
 6.20790 ++INSTALL = @INSTALL@
 6.20791 ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
 6.20792 ++INSTALL_DATA = @INSTALL_DATA@
 6.20793 ++INSTALL_SCRIPT = @INSTALL_SCRIPT@
 6.20794 ++transform = @program_transform_name@
 6.20795 ++
 6.20796 ++NORMAL_INSTALL = :
 6.20797 ++PRE_INSTALL = :
 6.20798 ++POST_INSTALL = :
 6.20799 ++NORMAL_UNINSTALL = :
 6.20800 ++PRE_UNINSTALL = :
 6.20801 ++POST_UNINSTALL = :
 6.20802 ++build_alias = @build_alias@
 6.20803 ++build_triplet = @build@
 6.20804 ++host_alias = @host_alias@
 6.20805 ++host_triplet = @host@
 6.20806 ++target_alias = @target_alias@
 6.20807 ++target_triplet = @target@
 6.20808 ++AR = @AR@
 6.20809 ++AS = @AS@
 6.20810 ++CC = @CC@
 6.20811 ++CPP = @CPP@
 6.20812 ++EXEEXT = @EXEEXT@
 6.20813 ++LDFLAGS = @LDFLAGS@
 6.20814 ++MAINT = @MAINT@
 6.20815 ++MAKEINFO = @MAKEINFO@
 6.20816 ++NEWLIB_CFLAGS = @NEWLIB_CFLAGS@
 6.20817 ++OBJEXT = @OBJEXT@
 6.20818 ++PACKAGE = @PACKAGE@
 6.20819 ++RANLIB = @RANLIB@
 6.20820 ++VERSION = @VERSION@
 6.20821 ++aext = @aext@
 6.20822 ++libm_machine_dir = @libm_machine_dir@
 6.20823 ++machine_dir = @machine_dir@
 6.20824 ++newlib_basedir = @newlib_basedir@
 6.20825 ++oext = @oext@
 6.20826 ++sys_dir = @sys_dir@
 6.20827 ++
 6.20828 ++AUTOMAKE_OPTIONS = cygnus
 6.20829 ++
 6.20830 ++INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
 6.20831 ++
 6.20832 ++noinst_LIBRARIES = lib.a
 6.20833 ++
 6.20834 ++lib_a_SOURCES = syscalls.c setjmp.S
 6.20835 ++
 6.20836 ++ACLOCAL_AMFLAGS = -I ../../..
 6.20837 ++CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
 6.20838 ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 6.20839 ++mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs
 6.20840 ++CONFIG_CLEAN_FILES = 
 6.20841 ++LIBRARIES =  $(noinst_LIBRARIES)
 6.20842 ++
 6.20843 ++
 6.20844 ++DEFS = @DEFS@ -I. -I$(srcdir) 
 6.20845 ++CPPFLAGS =
 6.20846 ++LIBS = @LIBS@
 6.20847 ++lib_a_LIBADD = 
 6.20848 ++lib_a_OBJECTS =  syscalls.o setjmp.o
 6.20849 ++CFLAGS = @CFLAGS@
 6.20850 ++COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 6.20851 ++CCLD = $(CC)
 6.20852 ++LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
 6.20853 ++DIST_COMMON =  Makefile.am Makefile.in aclocal.m4 configure configure.in
 6.20854 ++
 6.20855 ++
 6.20856 ++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 6.20857 ++
 6.20858 ++TAR = gtar
 6.20859 ++GZIP_ENV = --best
 6.20860 ++SOURCES = $(lib_a_SOURCES)
 6.20861 ++OBJECTS = $(lib_a_OBJECTS)
 6.20862 ++
 6.20863 ++all: all-redirect
 6.20864 ++.SUFFIXES:
 6.20865 ++.SUFFIXES: .S .c .o .s
 6.20866 ++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
 6.20867 ++	cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile
 6.20868 ++
 6.20869 ++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
 6.20870 ++	cd $(top_builddir) \
 6.20871 ++	  && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
 6.20872 ++
 6.20873 ++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in  \
 6.20874 ++		../../../acinclude.m4 ../../../aclocal.m4 \
 6.20875 ++		../../../libtool.m4
 6.20876 ++	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
 6.20877 ++
 6.20878 ++config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 6.20879 ++	$(SHELL) ./config.status --recheck
 6.20880 ++$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
 6.20881 ++	cd $(srcdir) && $(AUTOCONF)
 6.20882 ++
 6.20883 ++mostlyclean-noinstLIBRARIES:
 6.20884 ++
 6.20885 ++clean-noinstLIBRARIES:
 6.20886 ++	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
 6.20887 ++
 6.20888 ++distclean-noinstLIBRARIES:
 6.20889 ++
 6.20890 ++maintainer-clean-noinstLIBRARIES:
 6.20891 ++
 6.20892 ++.c.o:
 6.20893 ++	$(COMPILE) -c $<
 6.20894 ++
 6.20895 ++.s.o:
 6.20896 ++	$(COMPILE) -c $<
 6.20897 ++
 6.20898 ++.S.o:
 6.20899 ++	$(COMPILE) -c $<
 6.20900 ++
 6.20901 ++mostlyclean-compile:
 6.20902 ++	-rm -f *.o core *.core
 6.20903 ++
 6.20904 ++clean-compile:
 6.20905 ++
 6.20906 ++distclean-compile:
 6.20907 ++	-rm -f *.tab.c
 6.20908 ++
 6.20909 ++maintainer-clean-compile:
 6.20910 ++
 6.20911 ++lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)
 6.20912 ++	-rm -f lib.a
 6.20913 ++	$(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)
 6.20914 ++	$(RANLIB) lib.a
 6.20915 ++
 6.20916 ++tags: TAGS
 6.20917 ++
 6.20918 ++ID: $(HEADERS) $(SOURCES) $(LISP)
 6.20919 ++	list='$(SOURCES) $(HEADERS)'; \
 6.20920 ++	unique=`for i in $$list; do echo $$i; done | \
 6.20921 ++	  awk '    { files[$$0] = 1; } \
 6.20922 ++	       END { for (i in files) print i; }'`; \
 6.20923 ++	here=`pwd` && cd $(srcdir) \
 6.20924 ++	  && mkid -f$$here/ID $$unique $(LISP)
 6.20925 ++
 6.20926 ++TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
 6.20927 ++	tags=; \
 6.20928 ++	here=`pwd`; \
 6.20929 ++	list='$(SOURCES) $(HEADERS)'; \
 6.20930 ++	unique=`for i in $$list; do echo $$i; done | \
 6.20931 ++	  awk '    { files[$$0] = 1; } \
 6.20932 ++	       END { for (i in files) print i; }'`; \
 6.20933 ++	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
 6.20934 ++	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
 6.20935 ++
 6.20936 ++mostlyclean-tags:
 6.20937 ++
 6.20938 ++clean-tags:
 6.20939 ++
 6.20940 ++distclean-tags:
 6.20941 ++	-rm -f TAGS ID
 6.20942 ++
 6.20943 ++maintainer-clean-tags:
 6.20944 ++
 6.20945 ++distdir = $(PACKAGE)-$(VERSION)
 6.20946 ++top_distdir = $(distdir)
 6.20947 ++
 6.20948 ++# This target untars the dist file and tries a VPATH configuration.  Then
 6.20949 ++# it guarantees that the distribution is self-contained by making another
 6.20950 ++# tarfile.
 6.20951 ++distcheck: dist
 6.20952 ++	-rm -rf $(distdir)
 6.20953 ++	GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
 6.20954 ++	mkdir $(distdir)/=build
 6.20955 ++	mkdir $(distdir)/=inst
 6.20956 ++	dc_install_base=`cd $(distdir)/=inst && pwd`; \
 6.20957 ++	cd $(distdir)/=build \
 6.20958 ++	  && ../configure --srcdir=.. --prefix=$$dc_install_base \
 6.20959 ++	  && $(MAKE) $(AM_MAKEFLAGS) \
 6.20960 ++	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
 6.20961 ++	  && $(MAKE) $(AM_MAKEFLAGS) check \
 6.20962 ++	  && $(MAKE) $(AM_MAKEFLAGS) install \
 6.20963 ++	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
 6.20964 ++	  && $(MAKE) $(AM_MAKEFLAGS) dist
 6.20965 ++	-rm -rf $(distdir)
 6.20966 ++	@banner="$(distdir).tar.gz is ready for distribution"; \
 6.20967 ++	dashes=`echo "$$banner" | sed s/./=/g`; \
 6.20968 ++	echo "$$dashes"; \
 6.20969 ++	echo "$$banner"; \
 6.20970 ++	echo "$$dashes"
 6.20971 ++dist: distdir
 6.20972 ++	-chmod -R a+r $(distdir)
 6.20973 ++	GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
 6.20974 ++	-rm -rf $(distdir)
 6.20975 ++dist-all: distdir
 6.20976 ++	-chmod -R a+r $(distdir)
 6.20977 ++	GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
 6.20978 ++	-rm -rf $(distdir)
 6.20979 ++distdir: $(DISTFILES)
 6.20980 ++	-rm -rf $(distdir)
 6.20981 ++	mkdir $(distdir)
 6.20982 ++	-chmod 777 $(distdir)
 6.20983 ++	@for file in $(DISTFILES); do \
 6.20984 ++	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
 6.20985 ++	  if test -d $$d/$$file; then \
 6.20986 ++	    cp -pr $$d/$$file $(distdir)/$$file; \
 6.20987 ++	  else \
 6.20988 ++	    test -f $(distdir)/$$file \
 6.20989 ++	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
 6.20990 ++	    || cp -p $$d/$$file $(distdir)/$$file || :; \
 6.20991 ++	  fi; \
 6.20992 ++	done
 6.20993 ++info-am:
 6.20994 ++info: info-am
 6.20995 ++dvi-am:
 6.20996 ++dvi: dvi-am
 6.20997 ++check-am:
 6.20998 ++check: check-am
 6.20999 ++installcheck-am:
 6.21000 ++installcheck: installcheck-am
 6.21001 ++install-info-am: 
 6.21002 ++install-info: install-info-am
 6.21003 ++install-exec-am:
 6.21004 ++install-exec: install-exec-am
 6.21005 ++
 6.21006 ++install-data-am:
 6.21007 ++install-data: install-data-am
 6.21008 ++
 6.21009 ++install-am: all-am
 6.21010 ++	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 6.21011 ++install: install-am
 6.21012 ++uninstall-am:
 6.21013 ++uninstall: uninstall-am
 6.21014 ++all-am: Makefile $(LIBRARIES)
 6.21015 ++all-redirect: all-am
 6.21016 ++install-strip:
 6.21017 ++	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
 6.21018 ++installdirs:
 6.21019 ++
 6.21020 ++
 6.21021 ++mostlyclean-generic:
 6.21022 ++
 6.21023 ++clean-generic:
 6.21024 ++
 6.21025 ++distclean-generic:
 6.21026 ++	-rm -f Makefile $(CONFIG_CLEAN_FILES)
 6.21027 ++	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
 6.21028 ++
 6.21029 ++maintainer-clean-generic:
 6.21030 ++mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
 6.21031 ++		mostlyclean-tags mostlyclean-generic
 6.21032 ++
 6.21033 ++mostlyclean: mostlyclean-am
 6.21034 ++
 6.21035 ++clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
 6.21036 ++		mostlyclean-am
 6.21037 ++
 6.21038 ++clean: clean-am
 6.21039 ++
 6.21040 ++distclean-am:  distclean-noinstLIBRARIES distclean-compile \
 6.21041 ++		distclean-tags distclean-generic clean-am
 6.21042 ++
 6.21043 ++distclean: distclean-am
 6.21044 ++	-rm -f config.status
 6.21045 ++
 6.21046 ++maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
 6.21047 ++		maintainer-clean-compile maintainer-clean-tags \
 6.21048 ++		maintainer-clean-generic distclean-am
 6.21049 ++	@echo "This command is intended for maintainers to use;"
 6.21050 ++	@echo "it deletes files that may require special tools to rebuild."
 6.21051 ++
 6.21052 ++maintainer-clean: maintainer-clean-am
 6.21053 ++	-rm -f config.status
 6.21054 ++
 6.21055 ++.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
 6.21056 ++clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
 6.21057 ++mostlyclean-compile distclean-compile clean-compile \
 6.21058 ++maintainer-clean-compile tags mostlyclean-tags distclean-tags \
 6.21059 ++clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
 6.21060 ++check-am installcheck-am installcheck install-info-am install-info \
 6.21061 ++install-exec-am install-exec install-data-am install-data install-am \
 6.21062 ++install uninstall-am uninstall all-redirect all-am all installdirs \
 6.21063 ++mostlyclean-generic distclean-generic clean-generic \
 6.21064 ++maintainer-clean-generic clean mostlyclean distclean maintainer-clean
 6.21065 ++
 6.21066 ++
 6.21067 ++all: crt0.o
 6.21068 ++
 6.21069 ++# Tell versions [3.59,3.63) of GNU make to not export all variables.
 6.21070 ++# Otherwise a system limit (for SysV at least) may be exceeded.
 6.21071 ++.NOEXPORT:
 6.21072 +diff -Naur newlib-1.17.0/newlib/libc/sys/avr32/setjmp.S newlib-1.17.0-new/newlib/libc/sys/avr32/setjmp.S
 6.21073 +--- newlib-1.17.0/newlib/libc/sys/avr32/setjmp.S	1970-01-01 01:00:00.000000000 +0100
 6.21074 ++++ newlib-1.17.0-new/newlib/libc/sys/avr32/setjmp.S	2009-05-22 09:57:50.000000000 +0200
 6.21075 +@@ -0,0 +1,20 @@
 6.21076 ++	.text
 6.21077 ++	.globl setjmp
 6.21078 ++setjmp:
 6.21079 ++	stm	r12, r0, r1, r2, r3, r4, r5, r6, r7, sp, lr
 6.21080 ++	retal	0
 6.21081 ++
 6.21082 ++	.globl longjmp
 6.21083 ++longjmp:	
 6.21084 ++	ldm	r12, r0, r1, r2, r3, r4, r5, r6, r7, sp, lr
 6.21085 ++	/* Put the return value into the integer result register.
 6.21086 ++	   But if it is zero then return 1 instead.  */	
 6.21087 ++	cp	r11, 0
 6.21088 ++	reteq	1
 6.21089 ++	retal	r11
 6.21090 ++
 6.21091 ++
 6.21092 ++	
 6.21093 ++
 6.21094 ++	
 6.21095 ++	
 6.21096 +diff -Naur newlib-1.17.0/newlib/libc/sys/avr32/sys/sysregs.h newlib-1.17.0-new/newlib/libc/sys/avr32/sys/sysregs.h
 6.21097 +--- newlib-1.17.0/newlib/libc/sys/avr32/sys/sysregs.h	1970-01-01 01:00:00.000000000 +0100
 6.21098 ++++ newlib-1.17.0-new/newlib/libc/sys/avr32/sys/sysregs.h	2009-05-22 09:57:50.000000000 +0200
 6.21099 +@@ -0,0 +1,158 @@
 6.21100 ++#ifndef __ASM_AVR32_SYSREGS_H
 6.21101 ++#define __ASM_AVR32_SYSREGS_H
 6.21102 ++
 6.21103 ++#define SYSREG_SR	  0
 6.21104 ++#define SYSREG_EVBA	  4
 6.21105 ++#define SYSREG_ACBA	  8
 6.21106 ++#define SYSREG_CPUCR	 12
 6.21107 ++#define SYSREG_ECR       16
 6.21108 ++#define SYSREG_RSR_SUP	 20
 6.21109 ++#define SYSREG_RSR_INT0	 24
 6.21110 ++#define SYSREG_RSR_INT1	 28
 6.21111 ++#define SYSREG_RSR_INT2	 32
 6.21112 ++#define SYSREG_RSR_INT3	 36
 6.21113 ++#define SYSREG_RSR_EX	 40
 6.21114 ++#define SYSREG_RSR_NMI	 44
 6.21115 ++#define SYSREG_RSR_DBG	 48
 6.21116 ++#define SYSREG_RAR_SUP	 52
 6.21117 ++#define SYSREG_RAR_INT0	 56
 6.21118 ++#define SYSREG_RAR_INT1	 60
 6.21119 ++#define SYSREG_RAR_INT2	 64
 6.21120 ++#define SYSREG_RAR_INT3	 68
 6.21121 ++#define SYSREG_RAR_EX	 72
 6.21122 ++#define SYSREG_RAR_NMI	 76
 6.21123 ++#define SYSREG_RAR_DBG	 80
 6.21124 ++#define SYSREG_JECR       84
 6.21125 ++#define SYSREG_JOSP       88
 6.21126 ++#define SYSREG_JAVA_LV0   92
 6.21127 ++#define SYSREG_JAVA_LV1   96
 6.21128 ++#define SYSREG_JAVA_LV2   100
 6.21129 ++#define SYSREG_JAVA_LV3   104
 6.21130 ++#define SYSREG_JAVA_LV4   108
 6.21131 ++#define SYSREG_JAVA_LV5   112
 6.21132 ++#define SYSREG_JAVA_LV6   116
 6.21133 ++#define SYSREG_JAVA_LV7   120
 6.21134 ++#define SYSREG_JTBA       124
 6.21135 ++#define SYSREG_JBCR       128
 6.21136 ++
 6.21137 ++#define SYSREG_CONFIG0	256
 6.21138 ++#define SYSREG_CONFIG1	260
 6.21139 ++#define SYSREG_COUNT	264
 6.21140 ++#define SYSREG_COMPARE	268
 6.21141 ++
 6.21142 ++#define SYSREG_BEAR 316
 6.21143 ++
 6.21144 ++/* MMU interface registers */
 6.21145 ++#define SYSREG_TLBEHI	272
 6.21146 ++#define SYSREG_TLBELO	276
 6.21147 ++#define SYSREG_PTBR	280
 6.21148 ++#define SYSREG_TLBEAR	284
 6.21149 ++#define SYSREG_MMUCR	288
 6.21150 ++#define SYSREG_TLBARLO	292
 6.21151 ++#define SYSREG_TLBDRLO	296
 6.21152 ++#define SYSREG_TLBARHI	300
 6.21153 ++#define SYSREG_TLBDRHI	304
 6.21154 ++
 6.21155 ++/* Performance counter */
 6.21156 ++#define SYSREG_PCCR	320
 6.21157 ++
 6.21158 ++ // Status register bits
 6.21159 ++#define SR_C_OFFSET    0
 6.21160 ++#define SR_Z_OFFSET    1
 6.21161 ++#define SR_N_OFFSET    2
 6.21162 ++#define SR_V_OFFSET    3
 6.21163 ++#define SR_Q_OFFSET    4
 6.21164 ++#define SR_T_OFFSET    14
 6.21165 ++#define SR_R_OFFSET    15
 6.21166 ++#define SR_GM_OFFSET   16
 6.21167 ++#define SR_I0M_OFFSET  17
 6.21168 ++#define SR_I1M_OFFSET  18
 6.21169 ++#define SR_I2M_OFFSET  19
 6.21170 ++#define SR_I3M_OFFSET  20
 6.21171 ++#define SR_EM_OFFSET   21
 6.21172 ++#define SR_M0_OFFSET   22
 6.21173 ++#define SR_M1_OFFSET   23
 6.21174 ++#define SR_M2_OFFSET   24
 6.21175 ++#define SR_D_OFFSET    26
 6.21176 ++#define SR_DM_OFFSET   27
 6.21177 ++#define SR_J_OFFSET    28
 6.21178 ++
 6.21179 ++#define SR_C    (1 << 0)
 6.21180 ++#define SR_Z    (1 << 1)
 6.21181 ++#define SR_N    (1 << 2)
 6.21182 ++#define SR_V    (1 << 3)
 6.21183 ++#define SR_Q    (1 << 4)
 6.21184 ++#define SR_T    (1 << 14)
 6.21185 ++#define SR_R    (1 << 15)
 6.21186 ++#define SR_GM   (1 << 16)
 6.21187 ++#define SR_I0M  (1 << 17)
 6.21188 ++#define SR_I1M  (1 << 18)
 6.21189 ++#define SR_I2M  (1 << 19)
 6.21190 ++#define SR_I3M  (1 << 20)
 6.21191 ++#define SR_EM   (1 << 21)
 6.21192 ++#define SR_M0   (1 << 22)
 6.21193 ++#define SR_M1   (1 << 23)
 6.21194 ++#define SR_M2   (1 << 24)
 6.21195 ++#define SR_D    (1 << 26)
 6.21196 ++#define SR_DM   (1 << 27)
 6.21197 ++#define SR_J    (1 << 28)
 6.21198 ++
 6.21199 ++//PCCR bits
 6.21200 ++#define PCCRS  (1<<3)
 6.21201 ++#define PCCRC  (1<<2)
 6.21202 ++#define PCCRR  (1<<1)
 6.21203 ++#define PCCRE  (1<<0)
 6.21204 ++#define PCCNT_PRESCALE 64
 6.21205 ++
 6.21206 ++//TLBEHI bits
 6.21207 ++#define TLBEHIVPN  (1<<10)
 6.21208 ++#define TLBEHIV  (1<<9)
 6.21209 ++#define TLBEHII  (1<<0)
 6.21210 ++ 
 6.21211 ++//TLBELO = bits
 6.21212 ++#define TLBELOPFN  (1<<10)
 6.21213 ++#define TLBELOC  (1<<9)
 6.21214 ++#define TLBELOG  (1<<8)
 6.21215 ++#define TLBELOB  (1<<7)
 6.21216 ++#define TLBELOAP  (1<<5)
 6.21217 ++#define TLBELOSZ  (1<<2)
 6.21218 ++#define TLBELOD  (1<<1)
 6.21219 ++#define TLBELOW  (1<<0)
 6.21220 ++ 
 6.21221 ++//MMUCR bits
 6.21222 ++#define MMUIRP  (1<<26)
 6.21223 ++#define MMUILA  (1<<20)
 6.21224 ++#define MMUDRP  (1<<14)
 6.21225 ++#define MMUDLA  (1<<8)
 6.21226 ++#define MMUS  (1<<4)
 6.21227 ++#define MMUN  (1<<3)
 6.21228 ++#define MMUI  (1<<2)
 6.21229 ++#define MMUM  (1<<1)
 6.21230 ++#define MMUE  (1<<0)
 6.21231 ++ 
 6.21232 ++// Relative offsets to EVBA
 6.21233 ++#define H_UNREC_EX  0x000
 6.21234 ++#define H_TLB_MH    0x004
 6.21235 ++#define H_BUS_ERR_D 0x008
 6.21236 ++#define H_BUS_ERR_I 0x00C
 6.21237 ++#define H_NMI       0x010
 6.21238 ++#define H_INST_ADDR 0x014
 6.21239 ++#define H_ITLB_MISS 0x050
 6.21240 ++#define H_ITLB_PROT 0x018
 6.21241 ++#define H_DEBUG     0x01C
 6.21242 ++#define H_ILL_OPC   0x020
 6.21243 ++#define H_UNIMPL_INST 0x024
 6.21244 ++#define H_PRIV_VIOL 0x028
 6.21245 ++#define H_FLOAT_PT  0x02C
 6.21246 ++#define H_COPROC_ABS 0x030
 6.21247 ++#define H_SCALL  0x100
 6.21248 ++#define H_DATA_ADDR_R  0x034
 6.21249 ++#define H_DATA_ADDR_W  0x038
 6.21250 ++#define H_DTLB_MISS_R  0x060
 6.21251 ++#define H_DTLB_MISS_W  0x070
 6.21252 ++#define H_DTLB_PROT_R  0x03C
 6.21253 ++#define H_DTLB_PROT_W  0x040
 6.21254 ++#define H_DTLB_MOD  0x044
 6.21255 ++
 6.21256 ++
 6.21257 ++#endif /* __ASM_AVR32_SYSREGS_H */
 6.21258 +diff -Naur newlib-1.17.0/newlib/libc/sys/avr32/syscalls.c newlib-1.17.0-new/newlib/libc/sys/avr32/syscalls.c
 6.21259 +--- newlib-1.17.0/newlib/libc/sys/avr32/syscalls.c	1970-01-01 01:00:00.000000000 +0100
 6.21260 ++++ newlib-1.17.0-new/newlib/libc/sys/avr32/syscalls.c	2009-05-22 09:57:50.000000000 +0200
 6.21261 +@@ -0,0 +1,234 @@
 6.21262 ++#include "syscalls.h"
 6.21263 ++#include "sys/sysregs.h"
 6.21264 ++#include <sys/times.h>
 6.21265 ++#include <sys/time.h>
 6.21266 ++#include <stdio.h>
 6.21267 ++#include <errno.h>
 6.21268 ++
 6.21269 ++int  __attribute__((weak))
 6.21270 ++     _init_startup ()
 6.21271 ++{
 6.21272 ++  return 0;
 6.21273 ++}
 6.21274 ++
 6.21275 ++
 6.21276 ++clock_t __attribute__((weak))
 6.21277 ++     _times( struct tms *tms )
 6.21278 ++{
 6.21279 ++  int tick;
 6.21280 ++  tick = __builtin_mfsr(SYSREG_COUNT);
 6.21281 ++  tms->tms_utime = 0;
 6.21282 ++  tms->tms_stime = tick;
 6.21283 ++  tms->tms_cutime = 0;
 6.21284 ++  tms->tms_cstime = 0;
 6.21285 ++  return tick;
 6.21286 ++}
 6.21287 ++ 
 6.21288 ++extern void __heap_start__, __heap_end__;
 6.21289 ++
 6.21290 ++void * __attribute__((weak))
 6.21291 ++     _sbrk(int increment)
 6.21292 ++{
 6.21293 ++  static void *cur_heap_pos = 0;
 6.21294 ++
 6.21295 ++  //Initialize cur_heap_pos
 6.21296 ++  if ( cur_heap_pos == 0 )
 6.21297 ++    cur_heap_pos = &__heap_start__;
 6.21298 ++  
 6.21299 ++  if ( (cur_heap_pos + increment) <= &__heap_end__ ){
 6.21300 ++    void *heap_pos = cur_heap_pos;
 6.21301 ++    cur_heap_pos += increment;
 6.21302 ++    return heap_pos;
 6.21303 ++  } else {
 6.21304 ++#ifdef DEBUG_MSG_ON
 6.21305 ++    fprintf(stderr, "Warning: Heap is running full trying to allocate %i bytes!!!!\n", increment);
 6.21306 ++    fprintf(stderr, "\tHeap start address\t= 0x%x\n", &__heap_start__);
 6.21307 ++    fprintf(stderr, "\tHeap end address\t= 0x%x\n", &__heap_end__);
 6.21308 ++    fprintf(stderr, "\tCurrent heap address\t= 0x%x\n", cur_heap_pos);
 6.21309 ++    fflush(stderr);
 6.21310 ++#endif
 6.21311 ++    errno = ENOMEM;
 6.21312 ++    return (void *)-1;
 6.21313 ++  }  
 6.21314 ++  return (void *)-1;
 6.21315 ++}
 6.21316 ++  
 6.21317 ++void __attribute__((weak,naked))
 6.21318 ++     _init_argv (void *arg_mem_top)
 6.21319 ++{
 6.21320 ++  T2H_SYSCALL(T2H_SYSCALL_INIT_ARGV);
 6.21321 ++  T2H_SYSCALL_RETURN();
 6.21322 ++}
 6.21323 ++
 6.21324 ++void __attribute__((weak,naked))
 6.21325 ++     _exit( int code )
 6.21326 ++{
 6.21327 ++  T2H_SYSCALL(T2H_SYSCALL_EXIT);
 6.21328 ++  while (1);
 6.21329 ++}
 6.21330 ++
 6.21331 ++int __attribute__((weak,naked))
 6.21332 ++     _open (char *pathname, int flags, int mode)
 6.21333 ++{
 6.21334 ++  T2H_SYSCALL(T2H_SYSCALL_OPEN);
 6.21335 ++  T2H_SYSCALL_CHECK_ERROR_AND_RETURN();
 6.21336 ++}
 6.21337 ++
 6.21338 ++int __attribute__((weak,naked))
 6.21339 ++     _close (int file)
 6.21340 ++{
 6.21341 ++  T2H_SYSCALL(T2H_SYSCALL_CLOSE);
 6.21342 ++  T2H_SYSCALL_CHECK_ERROR_AND_RETURN();
 6.21343 ++}
 6.21344 ++
 6.21345 ++int __attribute__((weak,naked))
 6.21346 ++     _lseek( int filedes, int offset, int whence )
 6.21347 ++{
 6.21348 ++  T2H_SYSCALL(T2H_SYSCALL_LSEEK);
 6.21349 ++  T2H_SYSCALL_CHECK_ERROR_AND_RETURN();
 6.21350 ++}
 6.21351 ++
 6.21352 ++
 6.21353 ++int __attribute__((weak,naked))
 6.21354 ++     _read (int file,
 6.21355 ++            char * ptr,
 6.21356 ++            int len){
 6.21357 ++  T2H_SYSCALL(T2H_SYSCALL_READ);
 6.21358 ++  T2H_SYSCALL_CHECK_ERROR_AND_RETURN();
 6.21359 ++}
 6.21360 ++
 6.21361 ++int __attribute__((weak,naked))
 6.21362 ++     _write (int file,
 6.21363 ++             char * ptr,
 6.21364 ++             int len){
 6.21365 ++  T2H_SYSCALL(T2H_SYSCALL_WRITE);
 6.21366 ++  T2H_SYSCALL_CHECK_ERROR_AND_RETURN();
 6.21367 ++}
 6.21368 ++
 6.21369 ++int __attribute__((weak,naked))
 6.21370 ++     isatty (int desc){ 
 6.21371 ++  T2H_SYSCALL(T2H_SYSCALL_ISATTY);
 6.21372 ++  T2H_SYSCALL_CHECK_ERROR_AND_RETURN();
 6.21373 ++}
 6.21374 ++
 6.21375 ++static void _convert_host2target_stat(struct stat *target_stat, struct host_stat *host_stat)
 6.21376 ++{
 6.21377 ++  target_stat->st_dev = (dev_t)host_stat->st_dev;
 6.21378 ++  target_stat->st_ino = (ino_t)host_stat->st_ino;
 6.21379 ++  target_stat->st_mode = (mode_t)host_stat->st_mode;
 6.21380 ++  target_stat->st_nlink = (nlink_t)host_stat->st_nlink;
 6.21381 ++  target_stat->st_uid = (uid_t)host_stat->st_uid;
 6.21382 ++  target_stat->st_gid = (gid_t)host_stat->st_gid;
 6.21383 ++  target_stat->st_rdev = (dev_t)host_stat->st_rdev;
 6.21384 ++  target_stat->st_size = (off_t)host_stat->st_size;
 6.21385 ++  target_stat->st_blksize = (long)host_stat->st_blksize;
 6.21386 ++  target_stat->st_blocks = (long)host_stat->st_blocks;
 6.21387 ++  target_stat->st_atime = (time_t)host_stat->st_atime; 
 6.21388 ++  target_stat->st_mtime = (time_t)host_stat->st_mtime;
 6.21389 ++  target_stat->st_ctime = (time_t)host_stat->st_ctime;
 6.21390 ++}
 6.21391 ++
 6.21392 ++int __attribute__((naked))
 6.21393 ++     _fstat_host (int filedes, struct host_stat *ptr){ 
 6.21394 ++  T2H_SYSCALL(T2H_SYSCALL_FSTAT);
 6.21395 ++  T2H_SYSCALL_CHECK_ERROR_AND_RETURN();
 6.21396 ++}
 6.21397 ++
 6.21398 ++int __attribute__((naked))
 6.21399 ++     _stat_host (const char *filename, struct host_stat *ptr){ 
 6.21400 ++  T2H_SYSCALL(T2H_SYSCALL_STAT);
 6.21401 ++  T2H_SYSCALL_CHECK_ERROR_AND_RETURN();
 6.21402 ++}
 6.21403 ++
 6.21404 ++int __attribute__((weak))
 6.21405 ++     _fstat (int filedes, struct stat *stat){ 
 6.21406 ++  struct host_stat host_stat;
 6.21407 ++  if ( _fstat_host (filedes, &host_stat) < 0 )
 6.21408 ++    return -1;
 6.21409 ++  _convert_host2target_stat (stat, &host_stat);
 6.21410 ++  return 0;
 6.21411 ++}
 6.21412 ++
 6.21413 ++int __attribute__((weak))
 6.21414 ++     _stat (const char *filename, struct stat *stat){ 
 6.21415 ++  struct host_stat host_stat;
 6.21416 ++  if ( _stat_host (filename, &host_stat) < 0)
 6.21417 ++    return -1;
 6.21418 ++  _convert_host2target_stat (stat, &host_stat);
 6.21419 ++  return 0;
 6.21420 ++}
 6.21421 ++
 6.21422 ++
 6.21423 ++int __attribute__((naked))
 6.21424 ++     _gettimeofday_host (struct host_timeval *tv, struct timezone *tz){ 
 6.21425 ++  T2H_SYSCALL(T2H_SYSCALL_GETTIMEOFDAY);
 6.21426 ++  T2H_SYSCALL_CHECK_ERROR_AND_RETURN();
 6.21427 ++}
 6.21428 ++
 6.21429 ++int __attribute__((weak))
 6.21430 ++     _gettimeofday (struct timeval *tv, struct timezone *tz){ 
 6.21431 ++  struct host_timeval host_tv;
 6.21432 ++  if ( _gettimeofday_host (&host_tv, tz)  < 0 )
 6.21433 ++    return -1;
 6.21434 ++  tv->tv_sec = (long)host_tv.tv_sec;
 6.21435 ++  tv->tv_usec = (long)host_tv.tv_usec;
 6.21436 ++  return 0;
 6.21437 ++}
 6.21438 ++
 6.21439 ++int __attribute__((weak,naked))
 6.21440 ++     _unlink (const char *path){ 
 6.21441 ++  T2H_SYSCALL(T2H_SYSCALL_UNLINK);
 6.21442 ++  T2H_SYSCALL_CHECK_ERROR_AND_RETURN();
 6.21443 ++}
 6.21444 ++
 6.21445 ++int __attribute__((weak,naked))
 6.21446 ++     _system (const char *command){ 
 6.21447 ++  T2H_SYSCALL(T2H_SYSCALL_SYSTEM);
 6.21448 ++  T2H_SYSCALL_CHECK_ERROR_AND_RETURN();
 6.21449 ++}
 6.21450 ++
 6.21451 ++int __attribute__((weak))
 6.21452 ++     _execve (){
 6.21453 ++  return -1;
 6.21454 ++}
 6.21455 ++
 6.21456 ++
 6.21457 ++int __attribute__((weak))
 6.21458 ++     _fork (){ 
 6.21459 ++  return -1;
 6.21460 ++}
 6.21461 ++
 6.21462 ++int __attribute__((weak))
 6.21463 ++     _wait (){ 
 6.21464 ++  return -1; 
 6.21465 ++}
 6.21466 ++
 6.21467 ++int __attribute__((weak))
 6.21468 ++     sigfillset (){ 
 6.21469 ++  return -1;
 6.21470 ++}
 6.21471 ++
 6.21472 ++int __attribute__((weak))
 6.21473 ++     sigprocmask (){ 
 6.21474 ++  return -1;
 6.21475 ++}
 6.21476 ++
 6.21477 ++int __attribute__((weak))
 6.21478 ++     _fcntl (){ 
 6.21479 ++  return -1;
 6.21480 ++}
 6.21481 ++
 6.21482 ++int __attribute__((weak))
 6.21483 ++     _link (){ 
 6.21484 ++  return -1;
 6.21485 ++}
 6.21486 ++
 6.21487 ++int __attribute__((weak))
 6.21488 ++     _kill (){ 
 6.21489 ++  return -1;
 6.21490 ++}
 6.21491 ++
 6.21492 ++int __attribute__((weak))
 6.21493 ++     _getpid (){
 6.21494 ++  return -1;
 6.21495 ++}
 6.21496 +diff -Naur newlib-1.17.0/newlib/libc/sys/avr32/syscalls.h newlib-1.17.0-new/newlib/libc/sys/avr32/syscalls.h
 6.21497 +--- newlib-1.17.0/newlib/libc/sys/avr32/syscalls.h	1970-01-01 01:00:00.000000000 +0100
 6.21498 ++++ newlib-1.17.0-new/newlib/libc/sys/avr32/syscalls.h	2009-05-22 09:57:50.000000000 +0200
 6.21499 +@@ -0,0 +1,72 @@
 6.21500 ++#ifndef __SYSCALLS_H__
 6.21501 ++#define __SYSCALLS_H__
 6.21502 ++
 6.21503 ++#include <sys/stat.h>
 6.21504 ++#include <errno.h>
 6.21505 ++
 6.21506 ++struct host_stat {
 6.21507 ++  unsigned int       st_dev;      /* device */
 6.21508 ++  unsigned int       st_ino;      /* inode */
 6.21509 ++  mode_t             st_mode;     /* protection */
 6.21510 ++  unsigned int       st_nlink;    /* number of hard links */
 6.21511 ++  unsigned int       st_uid;      /* user ID of owner */
 6.21512 ++  unsigned int       st_gid;      /* group ID of owner */
 6.21513 ++  unsigned int       st_rdev;     /* device type (if inode device) */
 6.21514 ++  unsigned long long st_size;     /* total size, in bytes */
 6.21515 ++  unsigned long long st_blksize;  /* blocksize for filesystem I/O */
 6.21516 ++  unsigned long long st_blocks;   /* number of blocks allocated */
 6.21517 ++  time_t             st_atime;    /* time of last access */
 6.21518 ++  time_t             st_mtime;    /* time of last modification */
 6.21519 ++  time_t             st_ctime;    /* time of last change */
 6.21520 ++};
 6.21521 ++
 6.21522 ++struct host_timeval {
 6.21523 ++  time_t tv_sec;
 6.21524 ++  long long tv_usec;
 6.21525 ++};
 6.21526 ++
 6.21527 ++
 6.21528 ++#define T2H_SYSCALL_OPEN                1
 6.21529 ++#define T2H_SYSCALL_CLOSE               2
 6.21530 ++#define T2H_SYSCALL_READ                3
 6.21531 ++#define T2H_SYSCALL_WRITE               4
 6.21532 ++#define T2H_SYSCALL_LSEEK               5
 6.21533 ++#define T2H_SYSCALL_RENAME              6
 6.21534 ++#define T2H_SYSCALL_UNLINK              7
 6.21535 ++#define T2H_SYSCALL_STAT                8
 6.21536 ++#define T2H_SYSCALL_FSTAT               9
 6.21537 ++#define T2H_SYSCALL_GETTIMEOFDAY        10
 6.21538 ++#define T2H_SYSCALL_ISATTY              11
 6.21539 ++#define T2H_SYSCALL_SYSTEM              12
 6.21540 ++#define T2H_SYSCALL_EXIT                13
 6.21541 ++#define T2H_SYSCALL_INIT_ARGV           14
 6.21542 ++
 6.21543 ++
 6.21544 ++/* The breakpoint/mov r12,-1/mov r11,... pattern causes
 6.21545 ++   the debugger to be able to recognize the system call. 
 6.21546 ++   If the debug system is not enabled then the breakpoint 
 6.21547 ++   is executed as a nop and r12 set to -1 and errno to 
 6.21548 ++   ENOSYS. The debugger is responsible for setting r12
 6.21549 ++   and r11 and skipping the instructions after the breakpoint
 6.21550 ++   which would otherwise set these registers.
 6.21551 ++*/    
 6.21552 ++#define T2H_SYSCALL(syscall_code)                 \
 6.21553 ++  asm ("mov   r8, %0\n"                           \
 6.21554 ++       "breakpoint\n"                             \
 6.21555 ++       "mov   r12, -1\n"                          \
 6.21556 ++       "mov   r11, %1\n"                          \
 6.21557 ++       :: "i" (syscall_code), "i" (ENOSYS) );
 6.21558 ++
 6.21559 ++#define T2H_SYSCALL_CHECK_ERROR_AND_RETURN()                            \
 6.21560 ++  asm ("cp.w  r12, 0\n"                                                 \
 6.21561 ++       "retge r12\n"                                                    \
 6.21562 ++       "lda.w r10, errno\n"                                             \
 6.21563 ++       "st.w  r10[0], r11\n"                                            \
 6.21564 ++       "ret   r12\n"                                                    \
 6.21565 ++       ".align 2\n"                                                     \
 6.21566 ++       ".cpool\n");
 6.21567 ++
 6.21568 ++#define T2H_SYSCALL_RETURN()                                       \
 6.21569 ++  asm ("ret  r12\n");                                            
 6.21570 ++
 6.21571 ++#endif
 6.21572 +diff -Naur newlib-1.17.0/newlib/libc/sys/configure newlib-1.17.0-new/newlib/libc/sys/configure
 6.21573 +--- newlib-1.17.0/newlib/libc/sys/configure	2008-12-22 20:45:49.000000000 +0100
 6.21574 ++++ newlib-1.17.0-new/newlib/libc/sys/configure	2009-05-22 09:57:50.000000000 +0200
 6.21575 +@@ -1,25 +1,54 @@
 6.21576 + #! /bin/sh
 6.21577 + # Guess values for system-dependent variables and create Makefiles.
 6.21578 +-# Generated by GNU Autoconf 2.59 for newlib 1.17.0.
 6.21579 ++# Generated by GNU Autoconf 2.61 for newlib 1.17.0.
 6.21580 + #
 6.21581 +-# Copyright (C) 2003 Free Software Foundation, Inc.
 6.21582 ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 6.21583 ++# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 6.21584 + # This configure script is free software; the Free Software Foundation
 6.21585 + # gives unlimited permission to copy, distribute and modify it.
 6.21586 + ## --------------------- ##
 6.21587 + ## M4sh Initialization.  ##
 6.21588 + ## --------------------- ##
 6.21589 + 
 6.21590 +-# Be Bourne compatible
 6.21591 ++# Be more Bourne compatible
 6.21592 ++DUALCASE=1; export DUALCASE # for MKS sh
 6.21593 + if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
 6.21594 +   emulate sh
 6.21595 +   NULLCMD=:
 6.21596 +   # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
 6.21597 +   # is contrary to our usage.  Disable this feature.
 6.21598 +   alias -g '${1+"$@"}'='"$@"'
 6.21599 +-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
 6.21600 +-  set -o posix
 6.21601 ++  setopt NO_GLOB_SUBST
 6.21602 ++else
 6.21603 ++  case `(set -o) 2>/dev/null` in
 6.21604 ++  *posix*) set -o posix ;;
 6.21605 ++esac
 6.21606 ++
 6.21607 ++fi
 6.21608 ++
 6.21609 ++
 6.21610 ++
 6.21611 ++
 6.21612 ++# PATH needs CR
 6.21613 ++# Avoid depending upon Character Ranges.
 6.21614 ++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
 6.21615 ++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
 6.21616 ++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 6.21617 ++as_cr_digits='0123456789'
 6.21618 ++as_cr_alnum=$as_cr_Letters$as_cr_digits
 6.21619 ++
 6.21620 ++# The user is always right.
 6.21621 ++if test "${PATH_SEPARATOR+set}" != set; then
 6.21622 ++  echo "#! /bin/sh" >conf$$.sh
 6.21623 ++  echo  "exit 0"   >>conf$$.sh
 6.21624 ++  chmod +x conf$$.sh
 6.21625 ++  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
 6.21626 ++    PATH_SEPARATOR=';'
 6.21627 ++  else
 6.21628 ++    PATH_SEPARATOR=:
 6.21629 ++  fi
 6.21630 ++  rm -f conf$$.sh
 6.21631 + fi
 6.21632 +-DUALCASE=1; export DUALCASE # for MKS sh
 6.21633 + 
 6.21634 + # Support unset when possible.
 6.21635 + if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
 6.21636 +@@ -29,8 +58,43 @@
 6.21637 + fi
 6.21638 + 
 6.21639 + 
 6.21640 ++# IFS
 6.21641 ++# We need space, tab and new line, in precisely that order.  Quoting is
 6.21642 ++# there to prevent editors from complaining about space-tab.
 6.21643 ++# (If _AS_PATH_WALK were called with IFS unset, it would disable word
 6.21644 ++# splitting by setting IFS to empty value.)
 6.21645 ++as_nl='
 6.21646 ++'
 6.21647 ++IFS=" ""	$as_nl"
 6.21648 ++
 6.21649 ++# Find who we are.  Look in the path if we contain no directory separator.
 6.21650 ++case $0 in
 6.21651 ++  *[\\/]* ) as_myself=$0 ;;
 6.21652 ++  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.21653 ++for as_dir in $PATH
 6.21654 ++do
 6.21655 ++  IFS=$as_save_IFS
 6.21656 ++  test -z "$as_dir" && as_dir=.
 6.21657 ++  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
 6.21658 ++done
 6.21659 ++IFS=$as_save_IFS
 6.21660 ++
 6.21661 ++     ;;
 6.21662 ++esac
 6.21663 ++# We did not find ourselves, most probably we were run as `sh COMMAND'
 6.21664 ++# in which case we are not to be found in the path.
 6.21665 ++if test "x$as_myself" = x; then
 6.21666 ++  as_myself=$0
 6.21667 ++fi
 6.21668 ++if test ! -f "$as_myself"; then
 6.21669 ++  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
 6.21670 ++  { (exit 1); exit 1; }
 6.21671 ++fi
 6.21672 ++
 6.21673 + # Work around bugs in pre-3.0 UWIN ksh.
 6.21674 +-$as_unset ENV MAIL MAILPATH
 6.21675 ++for as_var in ENV MAIL MAILPATH
 6.21676 ++do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
 6.21677 ++done
 6.21678 + PS1='$ '
 6.21679 + PS2='> '
 6.21680 + PS4='+ '
 6.21681 +@@ -44,18 +108,19 @@
 6.21682 +   if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
 6.21683 +     eval $as_var=C; export $as_var
 6.21684 +   else
 6.21685 +-    $as_unset $as_var
 6.21686 ++    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
 6.21687 +   fi
 6.21688 + done
 6.21689 + 
 6.21690 + # Required to use basename.
 6.21691 +-if expr a : '\(a\)' >/dev/null 2>&1; then
 6.21692 ++if expr a : '\(a\)' >/dev/null 2>&1 &&
 6.21693 ++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
 6.21694 +   as_expr=expr
 6.21695 + else
 6.21696 +   as_expr=false
 6.21697 + fi
 6.21698 + 
 6.21699 +-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
 6.21700 ++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
 6.21701 +   as_basename=basename
 6.21702 + else
 6.21703 +   as_basename=false
 6.21704 +@@ -63,157 +128,388 @@
 6.21705 + 
 6.21706 + 
 6.21707 + # Name of the executable.
 6.21708 +-as_me=`$as_basename "$0" ||
 6.21709 ++as_me=`$as_basename -- "$0" ||
 6.21710 + $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 6.21711 + 	 X"$0" : 'X\(//\)$' \| \
 6.21712 +-	 X"$0" : 'X\(/\)$' \| \
 6.21713 +-	 .     : '\(.\)' 2>/dev/null ||
 6.21714 ++	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
 6.21715 + echo X/"$0" |
 6.21716 +-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
 6.21717 +-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
 6.21718 +-  	  /^X\/\(\/\).*/{ s//\1/; q; }
 6.21719 +-  	  s/.*/./; q'`
 6.21720 ++    sed '/^.*\/\([^/][^/]*\)\/*$/{
 6.21721 ++	    s//\1/
 6.21722 ++	    q
 6.21723 ++	  }
 6.21724 ++	  /^X\/\(\/\/\)$/{
 6.21725 ++	    s//\1/
 6.21726 ++	    q
 6.21727 ++	  }
 6.21728 ++	  /^X\/\(\/\).*/{
 6.21729 ++	    s//\1/
 6.21730 ++	    q
 6.21731 ++	  }
 6.21732 ++	  s/.*/./; q'`
 6.21733 + 
 6.21734 ++# CDPATH.
 6.21735 ++$as_unset CDPATH
 6.21736 + 
 6.21737 +-# PATH needs CR, and LINENO needs CR and PATH.
 6.21738 +-# Avoid depending upon Character Ranges.
 6.21739 +-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
 6.21740 +-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
 6.21741 +-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 6.21742 +-as_cr_digits='0123456789'
 6.21743 +-as_cr_alnum=$as_cr_Letters$as_cr_digits
 6.21744 + 
 6.21745 +-# The user is always right.
 6.21746 +-if test "${PATH_SEPARATOR+set}" != set; then
 6.21747 +-  echo "#! /bin/sh" >conf$$.sh
 6.21748 +-  echo  "exit 0"   >>conf$$.sh
 6.21749 +-  chmod +x conf$$.sh
 6.21750 +-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
 6.21751 +-    PATH_SEPARATOR=';'
 6.21752 +-  else
 6.21753 +-    PATH_SEPARATOR=:
 6.21754 +-  fi
 6.21755 +-  rm -f conf$$.sh
 6.21756 ++if test "x$CONFIG_SHELL" = x; then
 6.21757 ++  if (eval ":") 2>/dev/null; then
 6.21758 ++  as_have_required=yes
 6.21759 ++else
 6.21760 ++  as_have_required=no
 6.21761 + fi
 6.21762 + 
 6.21763 ++  if test $as_have_required = yes && 	 (eval ":
 6.21764 ++(as_func_return () {
 6.21765 ++  (exit \$1)
 6.21766 ++}
 6.21767 ++as_func_success () {
 6.21768 ++  as_func_return 0
 6.21769 ++}
 6.21770 ++as_func_failure () {
 6.21771 ++  as_func_return 1
 6.21772 ++}
 6.21773 ++as_func_ret_success () {
 6.21774 ++  return 0
 6.21775 ++}
 6.21776 ++as_func_ret_failure () {
 6.21777 ++  return 1
 6.21778 ++}
 6.21779 + 
 6.21780 +-  as_lineno_1=$LINENO
 6.21781 +-  as_lineno_2=$LINENO
 6.21782 +-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
 6.21783 +-  test "x$as_lineno_1" != "x$as_lineno_2" &&
 6.21784 +-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
 6.21785 +-  # Find who we are.  Look in the path if we contain no path at all
 6.21786 +-  # relative or not.
 6.21787 +-  case $0 in
 6.21788 +-    *[\\/]* ) as_myself=$0 ;;
 6.21789 +-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.21790 +-for as_dir in $PATH
 6.21791 +-do
 6.21792 +-  IFS=$as_save_IFS
 6.21793 +-  test -z "$as_dir" && as_dir=.
 6.21794 +-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
 6.21795 +-done
 6.21796 ++exitcode=0
 6.21797 ++if as_func_success; then
 6.21798 ++  :
 6.21799 ++else
 6.21800 ++  exitcode=1
 6.21801 ++  echo as_func_success failed.
 6.21802 ++fi
 6.21803 + 
 6.21804 +-       ;;
 6.21805 +-  esac
 6.21806 +-  # We did not find ourselves, most probably we were run as `sh COMMAND'
 6.21807 +-  # in which case we are not to be found in the path.
 6.21808 +-  if test "x$as_myself" = x; then
 6.21809 +-    as_myself=$0
 6.21810 +-  fi
 6.21811 +-  if test ! -f "$as_myself"; then
 6.21812 +-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
 6.21813 +-   { (exit 1); exit 1; }; }
 6.21814 +-  fi
 6.21815 +-  case $CONFIG_SHELL in
 6.21816 +-  '')
 6.21817 ++if as_func_failure; then
 6.21818 ++  exitcode=1
 6.21819 ++  echo as_func_failure succeeded.
 6.21820 ++fi
 6.21821 ++
 6.21822 ++if as_func_ret_success; then
 6.21823 ++  :
 6.21824 ++else
 6.21825 ++  exitcode=1
 6.21826 ++  echo as_func_ret_success failed.
 6.21827 ++fi
 6.21828 ++
 6.21829 ++if as_func_ret_failure; then
 6.21830 ++  exitcode=1
 6.21831 ++  echo as_func_ret_failure succeeded.
 6.21832 ++fi
 6.21833 ++
 6.21834 ++if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
 6.21835 ++  :
 6.21836 ++else
 6.21837 ++  exitcode=1
 6.21838 ++  echo positional parameters were not saved.
 6.21839 ++fi
 6.21840 ++
 6.21841 ++test \$exitcode = 0) || { (exit 1); exit 1; }
 6.21842 ++
 6.21843 ++(
 6.21844 ++  as_lineno_1=\$LINENO
 6.21845 ++  as_lineno_2=\$LINENO
 6.21846 ++  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
 6.21847 ++  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
 6.21848 ++") 2> /dev/null; then
 6.21849 ++  :
 6.21850 ++else
 6.21851 ++  as_candidate_shells=
 6.21852 +     as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.21853 + for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 6.21854 + do
 6.21855 +   IFS=$as_save_IFS
 6.21856 +   test -z "$as_dir" && as_dir=.
 6.21857 +-  for as_base in sh bash ksh sh5; do
 6.21858 +-	 case $as_dir in
 6.21859 ++  case $as_dir in
 6.21860 + 	 /*)
 6.21861 +-	   if ("$as_dir/$as_base" -c '
 6.21862 ++	   for as_base in sh bash ksh sh5; do
 6.21863 ++	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
 6.21864 ++	   done;;
 6.21865 ++       esac
 6.21866 ++done
 6.21867 ++IFS=$as_save_IFS
 6.21868 ++
 6.21869 ++
 6.21870 ++      for as_shell in $as_candidate_shells $SHELL; do
 6.21871 ++	 # Try only shells that exist, to save several forks.
 6.21872 ++	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
 6.21873 ++		{ ("$as_shell") 2> /dev/null <<\_ASEOF
 6.21874 ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
 6.21875 ++  emulate sh
 6.21876 ++  NULLCMD=:
 6.21877 ++  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
 6.21878 ++  # is contrary to our usage.  Disable this feature.
 6.21879 ++  alias -g '${1+"$@"}'='"$@"'
 6.21880 ++  setopt NO_GLOB_SUBST
 6.21881 ++else
 6.21882 ++  case `(set -o) 2>/dev/null` in
 6.21883 ++  *posix*) set -o posix ;;
 6.21884 ++esac
 6.21885 ++
 6.21886 ++fi
 6.21887 ++
 6.21888 ++
 6.21889 ++:
 6.21890 ++_ASEOF
 6.21891 ++}; then
 6.21892 ++  CONFIG_SHELL=$as_shell
 6.21893 ++	       as_have_required=yes
 6.21894 ++	       if { "$as_shell" 2> /dev/null <<\_ASEOF
 6.21895 ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
 6.21896 ++  emulate sh
 6.21897 ++  NULLCMD=:
 6.21898 ++  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
 6.21899 ++  # is contrary to our usage.  Disable this feature.
 6.21900 ++  alias -g '${1+"$@"}'='"$@"'
 6.21901 ++  setopt NO_GLOB_SUBST
 6.21902 ++else
 6.21903 ++  case `(set -o) 2>/dev/null` in
 6.21904 ++  *posix*) set -o posix ;;
 6.21905 ++esac
 6.21906 ++
 6.21907 ++fi
 6.21908 ++
 6.21909 ++
 6.21910 ++:
 6.21911 ++(as_func_return () {
 6.21912 ++  (exit $1)
 6.21913 ++}
 6.21914 ++as_func_success () {
 6.21915 ++  as_func_return 0
 6.21916 ++}
 6.21917 ++as_func_failure () {
 6.21918 ++  as_func_return 1
 6.21919 ++}
 6.21920 ++as_func_ret_success () {
 6.21921 ++  return 0
 6.21922 ++}
 6.21923 ++as_func_ret_failure () {
 6.21924 ++  return 1
 6.21925 ++}
 6.21926 ++
 6.21927 ++exitcode=0
 6.21928 ++if as_func_success; then
 6.21929 ++  :
 6.21930 ++else
 6.21931 ++  exitcode=1
 6.21932 ++  echo as_func_success failed.
 6.21933 ++fi
 6.21934 ++
 6.21935 ++if as_func_failure; then
 6.21936 ++  exitcode=1
 6.21937 ++  echo as_func_failure succeeded.
 6.21938 ++fi
 6.21939 ++
 6.21940 ++if as_func_ret_success; then
 6.21941 ++  :
 6.21942 ++else
 6.21943 ++  exitcode=1
 6.21944 ++  echo as_func_ret_success failed.
 6.21945 ++fi
 6.21946 ++
 6.21947 ++if as_func_ret_failure; then
 6.21948 ++  exitcode=1
 6.21949 ++  echo as_func_ret_failure succeeded.
 6.21950 ++fi
 6.21951 ++
 6.21952 ++if ( set x; as_func_ret_success y && test x = "$1" ); then
 6.21953 ++  :
 6.21954 ++else
 6.21955 ++  exitcode=1
 6.21956 ++  echo positional parameters were not saved.
 6.21957 ++fi
 6.21958 ++
 6.21959 ++test $exitcode = 0) || { (exit 1); exit 1; }
 6.21960 ++
 6.21961 ++(
 6.21962 +   as_lineno_1=$LINENO
 6.21963 +   as_lineno_2=$LINENO
 6.21964 +-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
 6.21965 +   test "x$as_lineno_1" != "x$as_lineno_2" &&
 6.21966 +-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
 6.21967 +-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
 6.21968 +-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
 6.21969 +-	     CONFIG_SHELL=$as_dir/$as_base
 6.21970 +-	     export CONFIG_SHELL
 6.21971 +-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
 6.21972 +-	   fi;;
 6.21973 +-	 esac
 6.21974 +-       done
 6.21975 +-done
 6.21976 +-;;
 6.21977 +-  esac
 6.21978 ++  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
 6.21979 ++
 6.21980 ++_ASEOF
 6.21981 ++}; then
 6.21982 ++  break
 6.21983 ++fi
 6.21984 ++
 6.21985 ++fi
 6.21986 ++
 6.21987 ++      done
 6.21988 ++
 6.21989 ++      if test "x$CONFIG_SHELL" != x; then
 6.21990 ++  for as_var in BASH_ENV ENV
 6.21991 ++        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
 6.21992 ++        done
 6.21993 ++        export CONFIG_SHELL
 6.21994 ++        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
 6.21995 ++fi
 6.21996 ++
 6.21997 ++
 6.21998 ++    if test $as_have_required = no; then
 6.21999 ++  echo This script requires a shell more modern than all the
 6.22000 ++      echo shells that I found on your system.  Please install a
 6.22001 ++      echo modern shell, or manually run the script under such a
 6.22002 ++      echo shell if you do have one.
 6.22003 ++      { (exit 1); exit 1; }
 6.22004 ++fi
 6.22005 ++
 6.22006 ++
 6.22007 ++fi
 6.22008 ++
 6.22009 ++fi
 6.22010 ++
 6.22011 ++
 6.22012 ++
 6.22013 ++(eval "as_func_return () {
 6.22014 ++  (exit \$1)
 6.22015 ++}
 6.22016 ++as_func_success () {
 6.22017 ++  as_func_return 0
 6.22018 ++}
 6.22019 ++as_func_failure () {
 6.22020 ++  as_func_return 1
 6.22021 ++}
 6.22022 ++as_func_ret_success () {
 6.22023 ++  return 0
 6.22024 ++}
 6.22025 ++as_func_ret_failure () {
 6.22026 ++  return 1
 6.22027 ++}
 6.22028 ++
 6.22029 ++exitcode=0
 6.22030 ++if as_func_success; then
 6.22031 ++  :
 6.22032 ++else
 6.22033 ++  exitcode=1
 6.22034 ++  echo as_func_success failed.
 6.22035 ++fi
 6.22036 ++
 6.22037 ++if as_func_failure; then
 6.22038 ++  exitcode=1
 6.22039 ++  echo as_func_failure succeeded.
 6.22040 ++fi
 6.22041 ++
 6.22042 ++if as_func_ret_success; then
 6.22043 ++  :
 6.22044 ++else
 6.22045 ++  exitcode=1
 6.22046 ++  echo as_func_ret_success failed.
 6.22047 ++fi
 6.22048 ++
 6.22049 ++if as_func_ret_failure; then
 6.22050 ++  exitcode=1
 6.22051 ++  echo as_func_ret_failure succeeded.
 6.22052 ++fi
 6.22053 ++
 6.22054 ++if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
 6.22055 ++  :
 6.22056 ++else
 6.22057 ++  exitcode=1
 6.22058 ++  echo positional parameters were not saved.
 6.22059 ++fi
 6.22060 ++
 6.22061 ++test \$exitcode = 0") || {
 6.22062 ++  echo No shell found that supports shell functions.
 6.22063 ++  echo Please tell autoconf@gnu.org about your system,
 6.22064 ++  echo including any error possibly output before this
 6.22065 ++  echo message
 6.22066 ++}
 6.22067 ++
 6.22068 ++
 6.22069 ++
 6.22070 ++  as_lineno_1=$LINENO
 6.22071 ++  as_lineno_2=$LINENO
 6.22072 ++  test "x$as_lineno_1" != "x$as_lineno_2" &&
 6.22073 ++  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
 6.22074 + 
 6.22075 +   # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
 6.22076 +   # uniformly replaced by the line number.  The first 'sed' inserts a
 6.22077 +-  # line-number line before each line; the second 'sed' does the real
 6.22078 +-  # work.  The second script uses 'N' to pair each line-number line
 6.22079 +-  # with the numbered line, and appends trailing '-' during
 6.22080 +-  # substitution so that $LINENO is not a special case at line end.
 6.22081 ++  # line-number line after each line using $LINENO; the second 'sed'
 6.22082 ++  # does the real work.  The second script uses 'N' to pair each
 6.22083 ++  # line-number line with the line containing $LINENO, and appends
 6.22084 ++  # trailing '-' during substitution so that $LINENO is not a special
 6.22085 ++  # case at line end.
 6.22086 +   # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
 6.22087 +-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
 6.22088 +-  sed '=' <$as_myself |
 6.22089 ++  # scripts with optimization help from Paolo Bonzini.  Blame Lee
 6.22090 ++  # E. McMahon (1931-1989) for sed's syntax.  :-)
 6.22091 ++  sed -n '
 6.22092 ++    p
 6.22093 ++    /[$]LINENO/=
 6.22094 ++  ' <$as_myself |
 6.22095 +     sed '
 6.22096 ++      s/[$]LINENO.*/&-/
 6.22097 ++      t lineno
 6.22098 ++      b
 6.22099 ++      :lineno
 6.22100 +       N
 6.22101 +-      s,$,-,
 6.22102 +-      : loop
 6.22103 +-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
 6.22104 ++      :loop
 6.22105 ++      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
 6.22106 +       t loop
 6.22107 +-      s,-$,,
 6.22108 +-      s,^['$as_cr_digits']*\n,,
 6.22109 ++      s/-\n.*//
 6.22110 +     ' >$as_me.lineno &&
 6.22111 +-  chmod +x $as_me.lineno ||
 6.22112 ++  chmod +x "$as_me.lineno" ||
 6.22113 +     { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
 6.22114 +    { (exit 1); exit 1; }; }
 6.22115 + 
 6.22116 +   # Don't try to exec as it changes $[0], causing all sort of problems
 6.22117 +   # (the dirname of $[0] is not the place where we might find the
 6.22118 +-  # original and so on.  Autoconf is especially sensible to this).
 6.22119 +-  . ./$as_me.lineno
 6.22120 ++  # original and so on.  Autoconf is especially sensitive to this).
 6.22121 ++  . "./$as_me.lineno"
 6.22122 +   # Exit status is that of the last command.
 6.22123 +   exit
 6.22124 + }
 6.22125 + 
 6.22126 + 
 6.22127 +-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
 6.22128 +-  *c*,-n*) ECHO_N= ECHO_C='
 6.22129 +-' ECHO_T='	' ;;
 6.22130 +-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
 6.22131 +-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
 6.22132 ++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
 6.22133 ++  as_dirname=dirname
 6.22134 ++else
 6.22135 ++  as_dirname=false
 6.22136 ++fi
 6.22137 ++
 6.22138 ++ECHO_C= ECHO_N= ECHO_T=
 6.22139 ++case `echo -n x` in
 6.22140 ++-n*)
 6.22141 ++  case `echo 'x\c'` in
 6.22142 ++  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
 6.22143 ++  *)   ECHO_C='\c';;
 6.22144 ++  esac;;
 6.22145 ++*)
 6.22146 ++  ECHO_N='-n';;
 6.22147 + esac
 6.22148 + 
 6.22149 +-if expr a : '\(a\)' >/dev/null 2>&1; then
 6.22150 ++if expr a : '\(a\)' >/dev/null 2>&1 &&
 6.22151 ++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
 6.22152 +   as_expr=expr
 6.22153 + else
 6.22154 +   as_expr=false
 6.22155 + fi
 6.22156 + 
 6.22157 + rm -f conf$$ conf$$.exe conf$$.file
 6.22158 ++if test -d conf$$.dir; then
 6.22159 ++  rm -f conf$$.dir/conf$$.file
 6.22160 ++else
 6.22161 ++  rm -f conf$$.dir
 6.22162 ++  mkdir conf$$.dir
 6.22163 ++fi
 6.22164 + echo >conf$$.file
 6.22165 + if ln -s conf$$.file conf$$ 2>/dev/null; then
 6.22166 +-  # We could just check for DJGPP; but this test a) works b) is more generic
 6.22167 +-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
 6.22168 +-  if test -f conf$$.exe; then
 6.22169 +-    # Don't use ln at all; we don't have any links
 6.22170 ++  as_ln_s='ln -s'
 6.22171 ++  # ... but there are two gotchas:
 6.22172 ++  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
 6.22173 ++  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
 6.22174 ++  # In both cases, we have to default to `cp -p'.
 6.22175 ++  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
 6.22176 +     as_ln_s='cp -p'
 6.22177 +-  else
 6.22178 +-    as_ln_s='ln -s'
 6.22179 +-  fi
 6.22180 + elif ln conf$$.file conf$$ 2>/dev/null; then
 6.22181 +   as_ln_s=ln
 6.22182 + else
 6.22183 +   as_ln_s='cp -p'
 6.22184 + fi
 6.22185 +-rm -f conf$$ conf$$.exe conf$$.file
 6.22186 ++rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 6.22187 ++rmdir conf$$.dir 2>/dev/null
 6.22188 + 
 6.22189 + if mkdir -p . 2>/dev/null; then
 6.22190 +   as_mkdir_p=:
 6.22191 +@@ -222,7 +518,28 @@
 6.22192 +   as_mkdir_p=false
 6.22193 + fi
 6.22194 + 
 6.22195 +-as_executable_p="test -f"
 6.22196 ++if test -x / >/dev/null 2>&1; then
 6.22197 ++  as_test_x='test -x'
 6.22198 ++else
 6.22199 ++  if ls -dL / >/dev/null 2>&1; then
 6.22200 ++    as_ls_L_option=L
 6.22201 ++  else
 6.22202 ++    as_ls_L_option=
 6.22203 ++  fi
 6.22204 ++  as_test_x='
 6.22205 ++    eval sh -c '\''
 6.22206 ++      if test -d "$1"; then
 6.22207 ++        test -d "$1/.";
 6.22208 ++      else
 6.22209 ++	case $1 in
 6.22210 ++        -*)set "./$1";;
 6.22211 ++	esac;
 6.22212 ++	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
 6.22213 ++	???[sx]*):;;*)false;;esac;fi
 6.22214 ++    '\'' sh
 6.22215 ++  '
 6.22216 ++fi
 6.22217 ++as_executable_p=$as_test_x
 6.22218 + 
 6.22219 + # Sed expression to map a string onto a valid CPP name.
 6.22220 + as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 6.22221 +@@ -231,15 +548,6 @@
 6.22222 + as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 6.22223 + 
 6.22224 + 
 6.22225 +-# IFS
 6.22226 +-# We need space, tab and new line, in precisely that order.
 6.22227 +-as_nl='
 6.22228 +-'
 6.22229 +-IFS=" 	$as_nl"
 6.22230 +-
 6.22231 +-# CDPATH.
 6.22232 +-$as_unset CDPATH
 6.22233 +-
 6.22234 + 
 6.22235 + 
 6.22236 + # Check that we are running under the correct shell.
 6.22237 +@@ -390,29 +698,26 @@
 6.22238 + 
 6.22239 + 
 6.22240 + 
 6.22241 ++exec 7<&0 </dev/null 6>&1
 6.22242 ++
 6.22243 + # Name of the host.
 6.22244 + # hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
 6.22245 + # so uname gets run too.
 6.22246 + ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
 6.22247 + 
 6.22248 +-exec 6>&1
 6.22249 +-
 6.22250 + #
 6.22251 + # Initializations.
 6.22252 + #
 6.22253 + ac_default_prefix=/usr/local
 6.22254 ++ac_clean_files=
 6.22255 + ac_config_libobj_dir=.
 6.22256 ++LIBOBJS=
 6.22257 + cross_compiling=no
 6.22258 + subdirs=
 6.22259 + MFLAGS=
 6.22260 + MAKEFLAGS=
 6.22261 + SHELL=${CONFIG_SHELL-/bin/sh}
 6.22262 + 
 6.22263 +-# Maximum number of lines to put in a shell here document.
 6.22264 +-# This variable seems obsolete.  It should probably be removed, and
 6.22265 +-# only ac_max_sed_lines should be used.
 6.22266 +-: ${ac_max_here_lines=38}
 6.22267 +-
 6.22268 + # Identity of this package.
 6.22269 + PACKAGE_NAME='newlib'
 6.22270 + PACKAGE_TARNAME='newlib'
 6.22271 +@@ -424,66 +729,214 @@
 6.22272 + # Factoring default headers for most tests.
 6.22273 + ac_includes_default="\
 6.22274 + #include <stdio.h>
 6.22275 +-#if HAVE_SYS_TYPES_H
 6.22276 ++#ifdef HAVE_SYS_TYPES_H
 6.22277 + # include <sys/types.h>
 6.22278 + #endif
 6.22279 +-#if HAVE_SYS_STAT_H
 6.22280 ++#ifdef HAVE_SYS_STAT_H
 6.22281 + # include <sys/stat.h>
 6.22282 + #endif
 6.22283 +-#if STDC_HEADERS
 6.22284 ++#ifdef STDC_HEADERS
 6.22285 + # include <stdlib.h>
 6.22286 + # include <stddef.h>
 6.22287 + #else
 6.22288 +-# if HAVE_STDLIB_H
 6.22289 ++# ifdef HAVE_STDLIB_H
 6.22290 + #  include <stdlib.h>
 6.22291 + # endif
 6.22292 + #endif
 6.22293 +-#if HAVE_STRING_H
 6.22294 +-# if !STDC_HEADERS && HAVE_MEMORY_H
 6.22295 ++#ifdef HAVE_STRING_H
 6.22296 ++# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
 6.22297 + #  include <memory.h>
 6.22298 + # endif
 6.22299 + # include <string.h>
 6.22300 + #endif
 6.22301 +-#if HAVE_STRINGS_H
 6.22302 ++#ifdef HAVE_STRINGS_H
 6.22303 + # include <strings.h>
 6.22304 + #endif
 6.22305 +-#if HAVE_INTTYPES_H
 6.22306 ++#ifdef HAVE_INTTYPES_H
 6.22307 + # include <inttypes.h>
 6.22308 +-#else
 6.22309 +-# if HAVE_STDINT_H
 6.22310 +-#  include <stdint.h>
 6.22311 +-# endif
 6.22312 + #endif
 6.22313 +-#if HAVE_UNISTD_H
 6.22314 ++#ifdef HAVE_STDINT_H
 6.22315 ++# include <stdint.h>
 6.22316 ++#endif
 6.22317 ++#ifdef HAVE_UNISTD_H
 6.22318 + # include <unistd.h>
 6.22319 + #endif"
 6.22320 + 
 6.22321 +-ac_subdirs_all="$ac_subdirs_all a29khif"
 6.22322 +-ac_subdirs_all="$ac_subdirs_all arc"
 6.22323 +-ac_subdirs_all="$ac_subdirs_all arm"
 6.22324 +-ac_subdirs_all="$ac_subdirs_all d10v"
 6.22325 +-ac_subdirs_all="$ac_subdirs_all decstation"
 6.22326 +-ac_subdirs_all="$ac_subdirs_all h8300hms"
 6.22327 +-ac_subdirs_all="$ac_subdirs_all h8500hms"
 6.22328 +-ac_subdirs_all="$ac_subdirs_all linux"
 6.22329 +-ac_subdirs_all="$ac_subdirs_all m88kbug"
 6.22330 +-ac_subdirs_all="$ac_subdirs_all mmixware"
 6.22331 +-ac_subdirs_all="$ac_subdirs_all netware"
 6.22332 +-ac_subdirs_all="$ac_subdirs_all rdos"
 6.22333 +-ac_subdirs_all="$ac_subdirs_all rtems"
 6.22334 +-ac_subdirs_all="$ac_subdirs_all sh"
 6.22335 +-ac_subdirs_all="$ac_subdirs_all sparc64"
 6.22336 +-ac_subdirs_all="$ac_subdirs_all sun4"
 6.22337 +-ac_subdirs_all="$ac_subdirs_all sysmec"
 6.22338 +-ac_subdirs_all="$ac_subdirs_all sysnec810"
 6.22339 +-ac_subdirs_all="$ac_subdirs_all sysnecv850"
 6.22340 +-ac_subdirs_all="$ac_subdirs_all sysvi386"
 6.22341 +-ac_subdirs_all="$ac_subdirs_all sysvnecv70"
 6.22342 +-ac_subdirs_all="$ac_subdirs_all tic80"
 6.22343 +-ac_subdirs_all="$ac_subdirs_all w65"
 6.22344 +-ac_subdirs_all="$ac_subdirs_all z8ksim"
 6.22345 +-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAY_SUPPLY_SYSCALLS_TRUE MAY_SUPPLY_SYSCALLS_FALSE newlib_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB READELF ac_ct_READELF MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CCAS CCASFLAGS NEWLIB_CFLAGS LDFLAGS ELIX_LEVEL_0_TRUE ELIX_LEVEL_0_FALSE ELIX_LEVEL_1_TRUE ELIX_LEVEL_1_FALSE ELIX_LEVEL_2_TRUE ELIX_LEVEL_2_FALSE ELIX_LEVEL_3_TRUE ELIX_LEVEL_3_FALSE ELIX_LEVEL_4_TRUE ELIX_LEVEL_4_FALSE USE_LIBTOOL_TRUE USE_LIBTOOL_FALSE OBJEXT oext aext lpfx libm_machine_dir machine_dir sys_dir SED DLLTOOL ac_ct_DLLTOOL OBJDUMP ac_ct_OBJDUMP LIBTOOL CFLAGS CPPFLAGS ac_ct_CC EXEEXT EGREP FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM LN_S lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CPP subdirs CRT0 HAVE_SYS_DIR_TRUE HAVE_SYS_DIR_FALSE LIBOBJS LTLIBOBJS'
 6.22346 ++ac_subst_vars='SHELL
 6.22347 ++PATH_SEPARATOR
 6.22348 ++PACKAGE_NAME
 6.22349 ++PACKAGE_TARNAME
 6.22350 ++PACKAGE_VERSION
 6.22351 ++PACKAGE_STRING
 6.22352 ++PACKAGE_BUGREPORT
 6.22353 ++exec_prefix
 6.22354 ++prefix
 6.22355 ++program_transform_name
 6.22356 ++bindir
 6.22357 ++sbindir
 6.22358 ++libexecdir
 6.22359 ++datarootdir
 6.22360 ++datadir
 6.22361 ++sysconfdir
 6.22362 ++sharedstatedir
 6.22363 ++localstatedir
 6.22364 ++includedir
 6.22365 ++oldincludedir
 6.22366 ++docdir
 6.22367 ++infodir
 6.22368 ++htmldir
 6.22369 ++dvidir
 6.22370 ++pdfdir
 6.22371 ++psdir
 6.22372 ++libdir
 6.22373 ++localedir
 6.22374 ++mandir
 6.22375 ++DEFS
 6.22376 ++ECHO_C
 6.22377 ++ECHO_N
 6.22378 ++ECHO_T
 6.22379 ++LIBS
 6.22380 ++build_alias
 6.22381 ++host_alias
 6.22382 ++target_alias
 6.22383 ++MAY_SUPPLY_SYSCALLS_TRUE
 6.22384 ++MAY_SUPPLY_SYSCALLS_FALSE
 6.22385 ++newlib_basedir
 6.22386 ++build
 6.22387 ++build_cpu
 6.22388 ++build_vendor
 6.22389 ++build_os
 6.22390 ++host
 6.22391 ++host_cpu
 6.22392 ++host_vendor
 6.22393 ++host_os
 6.22394 ++INSTALL_PROGRAM
 6.22395 ++INSTALL_SCRIPT
 6.22396 ++INSTALL_DATA
 6.22397 ++CYGPATH_W
 6.22398 ++PACKAGE
 6.22399 ++VERSION
 6.22400 ++ACLOCAL
 6.22401 ++AUTOCONF
 6.22402 ++AUTOMAKE
 6.22403 ++AUTOHEADER
 6.22404 ++MAKEINFO
 6.22405 ++install_sh
 6.22406 ++STRIP
 6.22407 ++INSTALL_STRIP_PROGRAM
 6.22408 ++mkdir_p
 6.22409 ++AWK
 6.22410 ++SET_MAKE
 6.22411 ++am__leading_dot
 6.22412 ++AMTAR
 6.22413 ++am__tar
 6.22414 ++am__untar
 6.22415 ++CC
 6.22416 ++DEPDIR
 6.22417 ++am__include
 6.22418 ++am__quote
 6.22419 ++AMDEP_TRUE
 6.22420 ++AMDEP_FALSE
 6.22421 ++AMDEPBACKSLASH
 6.22422 ++CCDEPMODE
 6.22423 ++am__fastdepCC_TRUE
 6.22424 ++am__fastdepCC_FALSE
 6.22425 ++AS
 6.22426 ++AR
 6.22427 ++RANLIB
 6.22428 ++READELF
 6.22429 ++MAINTAINER_MODE_TRUE
 6.22430 ++MAINTAINER_MODE_FALSE
 6.22431 ++MAINT
 6.22432 ++CCAS
 6.22433 ++CCASFLAGS
 6.22434 ++NEWLIB_CFLAGS
 6.22435 ++LDFLAGS
 6.22436 ++ELIX_LEVEL_0_TRUE
 6.22437 ++ELIX_LEVEL_0_FALSE
 6.22438 ++ELIX_LEVEL_1_TRUE
 6.22439 ++ELIX_LEVEL_1_FALSE
 6.22440 ++ELIX_LEVEL_2_TRUE
 6.22441 ++ELIX_LEVEL_2_FALSE
 6.22442 ++ELIX_LEVEL_3_TRUE
 6.22443 ++ELIX_LEVEL_3_FALSE
 6.22444 ++ELIX_LEVEL_4_TRUE
 6.22445 ++ELIX_LEVEL_4_FALSE
 6.22446 ++USE_LIBTOOL_TRUE
 6.22447 ++USE_LIBTOOL_FALSE
 6.22448 ++OBJEXT
 6.22449 ++oext
 6.22450 ++aext
 6.22451 ++lpfx
 6.22452 ++libm_machine_dir
 6.22453 ++machine_dir
 6.22454 ++sys_dir
 6.22455 ++SED
 6.22456 ++DLLTOOL
 6.22457 ++OBJDUMP
 6.22458 ++LIBTOOL
 6.22459 ++CFLAGS
 6.22460 ++CPPFLAGS
 6.22461 ++ac_ct_CC
 6.22462 ++EXEEXT
 6.22463 ++GREP
 6.22464 ++EGREP
 6.22465 ++FGREP
 6.22466 ++LD
 6.22467 ++DUMPBIN
 6.22468 ++ac_ct_DUMPBIN
 6.22469 ++NM
 6.22470 ++LN_S
 6.22471 ++lt_ECHO
 6.22472 ++DSYMUTIL
 6.22473 ++NMEDIT
 6.22474 ++LIPO
 6.22475 ++OTOOL
 6.22476 ++OTOOL64
 6.22477 ++CPP
 6.22478 ++subdirs
 6.22479 ++CRT0
 6.22480 ++HAVE_SYS_DIR_TRUE
 6.22481 ++HAVE_SYS_DIR_FALSE
 6.22482 ++LIBOBJS
 6.22483 ++LTLIBOBJS'
 6.22484 + ac_subst_files=''
 6.22485 ++      ac_precious_vars='build_alias
 6.22486 ++host_alias
 6.22487 ++target_alias
 6.22488 ++CCAS
 6.22489 ++CCASFLAGS
 6.22490 ++CC
 6.22491 ++CFLAGS
 6.22492 ++LDFLAGS
 6.22493 ++LIBS
 6.22494 ++CPPFLAGS
 6.22495 ++CPP'
 6.22496 ++ac_subdirs_all='a29khif
 6.22497 ++arc
 6.22498 ++arm
 6.22499 ++avr32
 6.22500 ++d10v
 6.22501 ++decstation
 6.22502 ++h8300hms
 6.22503 ++h8500hms
 6.22504 ++linux
 6.22505 ++m88kbug
 6.22506 ++mmixware
 6.22507 ++netware
 6.22508 ++rdos
 6.22509 ++rtems
 6.22510 ++sh
 6.22511 ++sparc64
 6.22512 ++sun4
 6.22513 ++sysmec
 6.22514 ++sysnec810
 6.22515 ++sysnecv850
 6.22516 ++sysvi386
 6.22517 ++sysvnecv70
 6.22518 ++tic80
 6.22519 ++w65
 6.22520 ++z8ksim'
 6.22521 + 
 6.22522 + # Initialize some variables set by options.
 6.22523 + ac_init_help=
 6.22524 +@@ -510,34 +963,48 @@
 6.22525 + # and all the variables that are supposed to be based on exec_prefix
 6.22526 + # by default will actually change.
 6.22527 + # Use braces instead of parens because sh, perl, etc. also accept them.
 6.22528 ++# (The list follows the same order as the GNU Coding Standards.)
 6.22529 + bindir='${exec_prefix}/bin'
 6.22530 + sbindir='${exec_prefix}/sbin'
 6.22531 + libexecdir='${exec_prefix}/libexec'
 6.22532 +-datadir='${prefix}/share'
 6.22533 ++datarootdir='${prefix}/share'
 6.22534 ++datadir='${datarootdir}'
 6.22535 + sysconfdir='${prefix}/etc'
 6.22536 + sharedstatedir='${prefix}/com'
 6.22537 + localstatedir='${prefix}/var'
 6.22538 +-libdir='${exec_prefix}/lib'
 6.22539 + includedir='${prefix}/include'
 6.22540 + oldincludedir='/usr/include'
 6.22541 +-infodir='${prefix}/info'
 6.22542 +-mandir='${prefix}/man'
 6.22543 ++docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
 6.22544 ++infodir='${datarootdir}/info'
 6.22545 ++htmldir='${docdir}'
 6.22546 ++dvidir='${docdir}'
 6.22547 ++pdfdir='${docdir}'
 6.22548 ++psdir='${docdir}'
 6.22549 ++libdir='${exec_prefix}/lib'
 6.22550 ++localedir='${datarootdir}/locale'
 6.22551 ++mandir='${datarootdir}/man'
 6.22552 + 
 6.22553 + ac_prev=
 6.22554 ++ac_dashdash=
 6.22555 + for ac_option
 6.22556 + do
 6.22557 +   # If the previous option needs an argument, assign it.
 6.22558 +   if test -n "$ac_prev"; then
 6.22559 +-    eval "$ac_prev=\$ac_option"
 6.22560 ++    eval $ac_prev=\$ac_option
 6.22561 +     ac_prev=
 6.22562 +     continue
 6.22563 +   fi
 6.22564 + 
 6.22565 +-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
 6.22566 ++  case $ac_option in
 6.22567 ++  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
 6.22568 ++  *)	ac_optarg=yes ;;
 6.22569 ++  esac
 6.22570 + 
 6.22571 +   # Accept the important Cygnus configure options, so we can diagnose typos.
 6.22572 + 
 6.22573 +-  case $ac_option in
 6.22574 ++  case $ac_dashdash$ac_option in
 6.22575 ++  --)
 6.22576 ++    ac_dashdash=yes ;;
 6.22577 + 
 6.22578 +   -bindir | --bindir | --bindi | --bind | --bin | --bi)
 6.22579 +     ac_prev=bindir ;;
 6.22580 +@@ -559,33 +1026,45 @@
 6.22581 +   --config-cache | -C)
 6.22582 +     cache_file=config.cache ;;
 6.22583 + 
 6.22584 +-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
 6.22585 ++  -datadir | --datadir | --datadi | --datad)
 6.22586 +     ac_prev=datadir ;;
 6.22587 +-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
 6.22588 +-  | --da=*)
 6.22589 ++  -datadir=* | --datadir=* | --datadi=* | --datad=*)
 6.22590 +     datadir=$ac_optarg ;;
 6.22591 + 
 6.22592 ++  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
 6.22593 ++  | --dataroo | --dataro | --datar)
 6.22594 ++    ac_prev=datarootdir ;;
 6.22595 ++  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
 6.22596 ++  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
 6.22597 ++    datarootdir=$ac_optarg ;;
 6.22598 ++
 6.22599 +   -disable-* | --disable-*)
 6.22600 +     ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
 6.22601 +     # Reject names that are not valid shell variable names.
 6.22602 +-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
 6.22603 ++    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
 6.22604 +       { echo "$as_me: error: invalid feature name: $ac_feature" >&2
 6.22605 +    { (exit 1); exit 1; }; }
 6.22606 +-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
 6.22607 +-    eval "enable_$ac_feature=no" ;;
 6.22608 ++    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
 6.22609 ++    eval enable_$ac_feature=no ;;
 6.22610 ++
 6.22611 ++  -docdir | --docdir | --docdi | --doc | --do)
 6.22612 ++    ac_prev=docdir ;;
 6.22613 ++  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
 6.22614 ++    docdir=$ac_optarg ;;
 6.22615 ++
 6.22616 ++  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
 6.22617 ++    ac_prev=dvidir ;;
 6.22618 ++  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
 6.22619 ++    dvidir=$ac_optarg ;;
 6.22620 + 
 6.22621 +   -enable-* | --enable-*)
 6.22622 +     ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
 6.22623 +     # Reject names that are not valid shell variable names.
 6.22624 +-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
 6.22625 ++    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
 6.22626 +       { echo "$as_me: error: invalid feature name: $ac_feature" >&2
 6.22627 +    { (exit 1); exit 1; }; }
 6.22628 +-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
 6.22629 +-    case $ac_option in
 6.22630 +-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
 6.22631 +-      *) ac_optarg=yes ;;
 6.22632 +-    esac
 6.22633 +-    eval "enable_$ac_feature='$ac_optarg'" ;;
 6.22634 ++    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
 6.22635 ++    eval enable_$ac_feature=\$ac_optarg ;;
 6.22636 + 
 6.22637 +   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
 6.22638 +   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
 6.22639 +@@ -612,6 +1091,12 @@
 6.22640 +   -host=* | --host=* | --hos=* | --ho=*)
 6.22641 +     host_alias=$ac_optarg ;;
 6.22642 + 
 6.22643 ++  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
 6.22644 ++    ac_prev=htmldir ;;
 6.22645 ++  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
 6.22646 ++  | --ht=*)
 6.22647 ++    htmldir=$ac_optarg ;;
 6.22648 ++
 6.22649 +   -includedir | --includedir | --includedi | --included | --include \
 6.22650 +   | --includ | --inclu | --incl | --inc)
 6.22651 +     ac_prev=includedir ;;
 6.22652 +@@ -636,13 +1121,16 @@
 6.22653 +   | --libexe=* | --libex=* | --libe=*)
 6.22654 +     libexecdir=$ac_optarg ;;
 6.22655 + 
 6.22656 ++  -localedir | --localedir | --localedi | --localed | --locale)
 6.22657 ++    ac_prev=localedir ;;
 6.22658 ++  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
 6.22659 ++    localedir=$ac_optarg ;;
 6.22660 ++
 6.22661 +   -localstatedir | --localstatedir | --localstatedi | --localstated \
 6.22662 +-  | --localstate | --localstat | --localsta | --localst \
 6.22663 +-  | --locals | --local | --loca | --loc | --lo)
 6.22664 ++  | --localstate | --localstat | --localsta | --localst | --locals)
 6.22665 +     ac_prev=localstatedir ;;
 6.22666 +   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
 6.22667 +-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
 6.22668 +-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
 6.22669 ++  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
 6.22670 +     localstatedir=$ac_optarg ;;
 6.22671 + 
 6.22672 +   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
 6.22673 +@@ -707,6 +1195,16 @@
 6.22674 +   | --progr-tra=* | --program-tr=* | --program-t=*)
 6.22675 +     program_transform_name=$ac_optarg ;;
 6.22676 + 
 6.22677 ++  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
 6.22678 ++    ac_prev=pdfdir ;;
 6.22679 ++  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
 6.22680 ++    pdfdir=$ac_optarg ;;
 6.22681 ++
 6.22682 ++  -psdir | --psdir | --psdi | --psd | --ps)
 6.22683 ++    ac_prev=psdir ;;
 6.22684 ++  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
 6.22685 ++    psdir=$ac_optarg ;;
 6.22686 ++
 6.22687 +   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
 6.22688 +   | -silent | --silent | --silen | --sile | --sil)
 6.22689 +     silent=yes ;;
 6.22690 +@@ -759,24 +1257,20 @@
 6.22691 +   -with-* | --with-*)
 6.22692 +     ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
 6.22693 +     # Reject names that are not valid shell variable names.
 6.22694 +-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
 6.22695 ++    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
 6.22696 +       { echo "$as_me: error: invalid package name: $ac_package" >&2
 6.22697 +    { (exit 1); exit 1; }; }
 6.22698 +-    ac_package=`echo $ac_package| sed 's/-/_/g'`
 6.22699 +-    case $ac_option in
 6.22700 +-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
 6.22701 +-      *) ac_optarg=yes ;;
 6.22702 +-    esac
 6.22703 +-    eval "with_$ac_package='$ac_optarg'" ;;
 6.22704 ++    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
 6.22705 ++    eval with_$ac_package=\$ac_optarg ;;
 6.22706 + 
 6.22707 +   -without-* | --without-*)
 6.22708 +     ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
 6.22709 +     # Reject names that are not valid shell variable names.
 6.22710 +-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
 6.22711 ++    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
 6.22712 +       { echo "$as_me: error: invalid package name: $ac_package" >&2
 6.22713 +    { (exit 1); exit 1; }; }
 6.22714 +-    ac_package=`echo $ac_package | sed 's/-/_/g'`
 6.22715 +-    eval "with_$ac_package=no" ;;
 6.22716 ++    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
 6.22717 ++    eval with_$ac_package=no ;;
 6.22718 + 
 6.22719 +   --x)
 6.22720 +     # Obsolete; use --with-x.
 6.22721 +@@ -807,8 +1301,7 @@
 6.22722 +     expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
 6.22723 +       { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
 6.22724 +    { (exit 1); exit 1; }; }
 6.22725 +-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
 6.22726 +-    eval "$ac_envvar='$ac_optarg'"
 6.22727 ++    eval $ac_envvar=\$ac_optarg
 6.22728 +     export $ac_envvar ;;
 6.22729 + 
 6.22730 +   *)
 6.22731 +@@ -828,27 +1321,19 @@
 6.22732 +    { (exit 1); exit 1; }; }
 6.22733 + fi
 6.22734 + 
 6.22735 +-# Be sure to have absolute paths.
 6.22736 +-for ac_var in exec_prefix prefix
 6.22737 +-do
 6.22738 +-  eval ac_val=$`echo $ac_var`
 6.22739 +-  case $ac_val in
 6.22740 +-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
 6.22741 +-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
 6.22742 +-   { (exit 1); exit 1; }; };;
 6.22743 +-  esac
 6.22744 +-done
 6.22745 +-
 6.22746 +-# Be sure to have absolute paths.
 6.22747 +-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
 6.22748 +-	      localstatedir libdir includedir oldincludedir infodir mandir
 6.22749 ++# Be sure to have absolute directory names.
 6.22750 ++for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 6.22751 ++		datadir sysconfdir sharedstatedir localstatedir includedir \
 6.22752 ++		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
 6.22753 ++		libdir localedir mandir
 6.22754 + do
 6.22755 +-  eval ac_val=$`echo $ac_var`
 6.22756 ++  eval ac_val=\$$ac_var
 6.22757 +   case $ac_val in
 6.22758 +-    [\\/$]* | ?:[\\/]* ) ;;
 6.22759 +-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
 6.22760 +-   { (exit 1); exit 1; }; };;
 6.22761 ++    [\\/$]* | ?:[\\/]* )  continue;;
 6.22762 ++    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
 6.22763 +   esac
 6.22764 ++  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
 6.22765 ++   { (exit 1); exit 1; }; }
 6.22766 + done
 6.22767 + 
 6.22768 + # There might be people who depend on the old broken behavior: `$host'
 6.22769 +@@ -875,82 +1360,76 @@
 6.22770 + test "$silent" = yes && exec 6>/dev/null
 6.22771 + 
 6.22772 + 
 6.22773 ++ac_pwd=`pwd` && test -n "$ac_pwd" &&
 6.22774 ++ac_ls_di=`ls -di .` &&
 6.22775 ++ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
 6.22776 ++  { echo "$as_me: error: Working directory cannot be determined" >&2
 6.22777 ++   { (exit 1); exit 1; }; }
 6.22778 ++test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
 6.22779 ++  { echo "$as_me: error: pwd does not report name of working directory" >&2
 6.22780 ++   { (exit 1); exit 1; }; }
 6.22781 ++
 6.22782 ++
 6.22783 + # Find the source files, if location was not specified.
 6.22784 + if test -z "$srcdir"; then
 6.22785 +   ac_srcdir_defaulted=yes
 6.22786 +-  # Try the directory containing this script, then its parent.
 6.22787 +-  ac_confdir=`(dirname "$0") 2>/dev/null ||
 6.22788 ++  # Try the directory containing this script, then the parent directory.
 6.22789 ++  ac_confdir=`$as_dirname -- "$0" ||
 6.22790 + $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.22791 + 	 X"$0" : 'X\(//\)[^/]' \| \
 6.22792 + 	 X"$0" : 'X\(//\)$' \| \
 6.22793 +-	 X"$0" : 'X\(/\)' \| \
 6.22794 +-	 .     : '\(.\)' 2>/dev/null ||
 6.22795 ++	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
 6.22796 + echo X"$0" |
 6.22797 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.22798 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.22799 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.22800 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.22801 +-  	  s/.*/./; q'`
 6.22802 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 6.22803 ++	    s//\1/
 6.22804 ++	    q
 6.22805 ++	  }
 6.22806 ++	  /^X\(\/\/\)[^/].*/{
 6.22807 ++	    s//\1/
 6.22808 ++	    q
 6.22809 ++	  }
 6.22810 ++	  /^X\(\/\/\)$/{
 6.22811 ++	    s//\1/
 6.22812 ++	    q
 6.22813 ++	  }
 6.22814 ++	  /^X\(\/\).*/{
 6.22815 ++	    s//\1/
 6.22816 ++	    q
 6.22817 ++	  }
 6.22818 ++	  s/.*/./; q'`
 6.22819 +   srcdir=$ac_confdir
 6.22820 +-  if test ! -r $srcdir/$ac_unique_file; then
 6.22821 ++  if test ! -r "$srcdir/$ac_unique_file"; then
 6.22822 +     srcdir=..
 6.22823 +   fi
 6.22824 + else
 6.22825 +   ac_srcdir_defaulted=no
 6.22826 + fi
 6.22827 +-if test ! -r $srcdir/$ac_unique_file; then
 6.22828 +-  if test "$ac_srcdir_defaulted" = yes; then
 6.22829 +-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
 6.22830 +-   { (exit 1); exit 1; }; }
 6.22831 +-  else
 6.22832 +-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
 6.22833 +-   { (exit 1); exit 1; }; }
 6.22834 +-  fi
 6.22835 +-fi
 6.22836 +-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
 6.22837 +-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
 6.22838 +-   { (exit 1); exit 1; }; }
 6.22839 +-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
 6.22840 +-ac_env_build_alias_set=${build_alias+set}
 6.22841 +-ac_env_build_alias_value=$build_alias
 6.22842 +-ac_cv_env_build_alias_set=${build_alias+set}
 6.22843 +-ac_cv_env_build_alias_value=$build_alias
 6.22844 +-ac_env_host_alias_set=${host_alias+set}
 6.22845 +-ac_env_host_alias_value=$host_alias
 6.22846 +-ac_cv_env_host_alias_set=${host_alias+set}
 6.22847 +-ac_cv_env_host_alias_value=$host_alias
 6.22848 +-ac_env_target_alias_set=${target_alias+set}
 6.22849 +-ac_env_target_alias_value=$target_alias
 6.22850 +-ac_cv_env_target_alias_set=${target_alias+set}
 6.22851 +-ac_cv_env_target_alias_value=$target_alias
 6.22852 +-ac_env_CCAS_set=${CCAS+set}
 6.22853 +-ac_env_CCAS_value=$CCAS
 6.22854 +-ac_cv_env_CCAS_set=${CCAS+set}
 6.22855 +-ac_cv_env_CCAS_value=$CCAS
 6.22856 +-ac_env_CCASFLAGS_set=${CCASFLAGS+set}
 6.22857 +-ac_env_CCASFLAGS_value=$CCASFLAGS
 6.22858 +-ac_cv_env_CCASFLAGS_set=${CCASFLAGS+set}
 6.22859 +-ac_cv_env_CCASFLAGS_value=$CCASFLAGS
 6.22860 +-ac_env_CC_set=${CC+set}
 6.22861 +-ac_env_CC_value=$CC
 6.22862 +-ac_cv_env_CC_set=${CC+set}
 6.22863 +-ac_cv_env_CC_value=$CC
 6.22864 +-ac_env_CFLAGS_set=${CFLAGS+set}
 6.22865 +-ac_env_CFLAGS_value=$CFLAGS
 6.22866 +-ac_cv_env_CFLAGS_set=${CFLAGS+set}
 6.22867 +-ac_cv_env_CFLAGS_value=$CFLAGS
 6.22868 +-ac_env_LDFLAGS_set=${LDFLAGS+set}
 6.22869 +-ac_env_LDFLAGS_value=$LDFLAGS
 6.22870 +-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
 6.22871 +-ac_cv_env_LDFLAGS_value=$LDFLAGS
 6.22872 +-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
 6.22873 +-ac_env_CPPFLAGS_value=$CPPFLAGS
 6.22874 +-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
 6.22875 +-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
 6.22876 +-ac_env_CPP_set=${CPP+set}
 6.22877 +-ac_env_CPP_value=$CPP
 6.22878 +-ac_cv_env_CPP_set=${CPP+set}
 6.22879 +-ac_cv_env_CPP_value=$CPP
 6.22880 ++if test ! -r "$srcdir/$ac_unique_file"; then
 6.22881 ++  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
 6.22882 ++  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
 6.22883 ++   { (exit 1); exit 1; }; }
 6.22884 ++fi
 6.22885 ++ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
 6.22886 ++ac_abs_confdir=`(
 6.22887 ++	cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
 6.22888 ++   { (exit 1); exit 1; }; }
 6.22889 ++	pwd)`
 6.22890 ++# When building in place, set srcdir=.
 6.22891 ++if test "$ac_abs_confdir" = "$ac_pwd"; then
 6.22892 ++  srcdir=.
 6.22893 ++fi
 6.22894 ++# Remove unnecessary trailing slashes from srcdir.
 6.22895 ++# Double slashes in file names in object file debugging info
 6.22896 ++# mess up M-x gdb in Emacs.
 6.22897 ++case $srcdir in
 6.22898 ++*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
 6.22899 ++esac
 6.22900 ++for ac_var in $ac_precious_vars; do
 6.22901 ++  eval ac_env_${ac_var}_set=\${${ac_var}+set}
 6.22902 ++  eval ac_env_${ac_var}_value=\$${ac_var}
 6.22903 ++  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
 6.22904 ++  eval ac_cv_env_${ac_var}_value=\$${ac_var}
 6.22905 ++done
 6.22906 + 
 6.22907 + #
 6.22908 + # Report the --help message.
 6.22909 +@@ -979,9 +1458,6 @@
 6.22910 +   -n, --no-create         do not create output files
 6.22911 +       --srcdir=DIR        find the sources in DIR [configure dir or \`..']
 6.22912 + 
 6.22913 +-_ACEOF
 6.22914 +-
 6.22915 +-  cat <<_ACEOF
 6.22916 + Installation directories:
 6.22917 +   --prefix=PREFIX         install architecture-independent files in PREFIX
 6.22918 + 			  [$ac_default_prefix]
 6.22919 +@@ -999,15 +1475,22 @@
 6.22920 +   --bindir=DIR           user executables [EPREFIX/bin]
 6.22921 +   --sbindir=DIR          system admin executables [EPREFIX/sbin]
 6.22922 +   --libexecdir=DIR       program executables [EPREFIX/libexec]
 6.22923 +-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
 6.22924 +   --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
 6.22925 +   --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
 6.22926 +   --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
 6.22927 +   --libdir=DIR           object code libraries [EPREFIX/lib]
 6.22928 +   --includedir=DIR       C header files [PREFIX/include]
 6.22929 +   --oldincludedir=DIR    C header files for non-gcc [/usr/include]
 6.22930 +-  --infodir=DIR          info documentation [PREFIX/info]
 6.22931 +-  --mandir=DIR           man documentation [PREFIX/man]
 6.22932 ++  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]
 6.22933 ++  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]
 6.22934 ++  --infodir=DIR          info documentation [DATAROOTDIR/info]
 6.22935 ++  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]
 6.22936 ++  --mandir=DIR           man documentation [DATAROOTDIR/man]
 6.22937 ++  --docdir=DIR           documentation root [DATAROOTDIR/doc/newlib]
 6.22938 ++  --htmldir=DIR          html documentation [DOCDIR]
 6.22939 ++  --dvidir=DIR           dvi documentation [DOCDIR]
 6.22940 ++  --pdfdir=DIR           pdf documentation [DOCDIR]
 6.22941 ++  --psdir=DIR            ps documentation [DOCDIR]
 6.22942 + _ACEOF
 6.22943 + 
 6.22944 +   cat <<\_ACEOF
 6.22945 +@@ -1044,10 +1527,8 @@
 6.22946 +   --enable-dependency-tracking   do not reject slow dependency extractors
 6.22947 +   --enable-maintainer-mode  enable make rules and dependencies not useful
 6.22948 + 			  (and sometimes confusing) to the casual installer
 6.22949 +-  --enable-shared[=PKGS]
 6.22950 +-                          build shared libraries [default=yes]
 6.22951 +-  --enable-static[=PKGS]
 6.22952 +-                          build static libraries [default=yes]
 6.22953 ++  --enable-shared[=PKGS]  build shared libraries [default=yes]
 6.22954 ++  --enable-static[=PKGS]  build static libraries [default=yes]
 6.22955 +   --enable-fast-install[=PKGS]
 6.22956 +                           optimize for fast installation [default=yes]
 6.22957 +   --disable-libtool-lock  avoid locking (might break parallel builds)
 6.22958 +@@ -1066,128 +1547,95 @@
 6.22959 +   CFLAGS      C compiler flags
 6.22960 +   LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
 6.22961 +               nonstandard directory <lib dir>
 6.22962 +-  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
 6.22963 +-              headers in a nonstandard directory <include dir>
 6.22964 ++  LIBS        libraries to pass to the linker, e.g. -l<library>
 6.22965 ++  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
 6.22966 ++              you have headers in a nonstandard directory <include dir>
 6.22967 +   CPP         C preprocessor
 6.22968 + 
 6.22969 + Use these variables to override the choices made by `configure' or to help
 6.22970 + it to find libraries and programs with nonstandard names/locations.
 6.22971 + 
 6.22972 + _ACEOF
 6.22973 ++ac_status=$?
 6.22974 + fi
 6.22975 + 
 6.22976 + if test "$ac_init_help" = "recursive"; then
 6.22977 +   # If there are subdirs, report their specific --help.
 6.22978 +-  ac_popdir=`pwd`
 6.22979 +   for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
 6.22980 +-    test -d $ac_dir || continue
 6.22981 ++    test -d "$ac_dir" || continue
 6.22982 +     ac_builddir=.
 6.22983 + 
 6.22984 +-if test "$ac_dir" != .; then
 6.22985 ++case "$ac_dir" in
 6.22986 ++.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 6.22987 ++*)
 6.22988 +   ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
 6.22989 +-  # A "../" for each directory in $ac_dir_suffix.
 6.22990 +-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
 6.22991 +-else
 6.22992 +-  ac_dir_suffix= ac_top_builddir=
 6.22993 +-fi
 6.22994 ++  # A ".." for each directory in $ac_dir_suffix.
 6.22995 ++  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
 6.22996 ++  case $ac_top_builddir_sub in
 6.22997 ++  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
 6.22998 ++  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
 6.22999 ++  esac ;;
 6.23000 ++esac
 6.23001 ++ac_abs_top_builddir=$ac_pwd
 6.23002 ++ac_abs_builddir=$ac_pwd$ac_dir_suffix
 6.23003 ++# for backward compatibility:
 6.23004 ++ac_top_builddir=$ac_top_build_prefix
 6.23005 + 
 6.23006 + case $srcdir in
 6.23007 +-  .)  # No --srcdir option.  We are building in place.
 6.23008 ++  .)  # We are building in place.
 6.23009 +     ac_srcdir=.
 6.23010 +-    if test -z "$ac_top_builddir"; then
 6.23011 +-       ac_top_srcdir=.
 6.23012 +-    else
 6.23013 +-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
 6.23014 +-    fi ;;
 6.23015 +-  [\\/]* | ?:[\\/]* )  # Absolute path.
 6.23016 ++    ac_top_srcdir=$ac_top_builddir_sub
 6.23017 ++    ac_abs_top_srcdir=$ac_pwd ;;
 6.23018 ++  [\\/]* | ?:[\\/]* )  # Absolute name.
 6.23019 +     ac_srcdir=$srcdir$ac_dir_suffix;
 6.23020 +-    ac_top_srcdir=$srcdir ;;
 6.23021 +-  *) # Relative path.
 6.23022 +-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
 6.23023 +-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
 6.23024 +-esac
 6.23025 +-
 6.23026 +-# Do not use `cd foo && pwd` to compute absolute paths, because
 6.23027 +-# the directories may not exist.
 6.23028 +-case `pwd` in
 6.23029 +-.) ac_abs_builddir="$ac_dir";;
 6.23030 +-*)
 6.23031 +-  case "$ac_dir" in
 6.23032 +-  .) ac_abs_builddir=`pwd`;;
 6.23033 +-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
 6.23034 +-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
 6.23035 +-  esac;;
 6.23036 +-esac
 6.23037 +-case $ac_abs_builddir in
 6.23038 +-.) ac_abs_top_builddir=${ac_top_builddir}.;;
 6.23039 +-*)
 6.23040 +-  case ${ac_top_builddir}. in
 6.23041 +-  .) ac_abs_top_builddir=$ac_abs_builddir;;
 6.23042 +-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
 6.23043 +-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
 6.23044 +-  esac;;
 6.23045 +-esac
 6.23046 +-case $ac_abs_builddir in
 6.23047 +-.) ac_abs_srcdir=$ac_srcdir;;
 6.23048 +-*)
 6.23049 +-  case $ac_srcdir in
 6.23050 +-  .) ac_abs_srcdir=$ac_abs_builddir;;
 6.23051 +-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
 6.23052 +-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
 6.23053 +-  esac;;
 6.23054 +-esac
 6.23055 +-case $ac_abs_builddir in
 6.23056 +-.) ac_abs_top_srcdir=$ac_top_srcdir;;
 6.23057 +-*)
 6.23058 +-  case $ac_top_srcdir in
 6.23059 +-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
 6.23060 +-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
 6.23061 +-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
 6.23062 +-  esac;;
 6.23063 ++    ac_top_srcdir=$srcdir
 6.23064 ++    ac_abs_top_srcdir=$srcdir ;;
 6.23065 ++  *) # Relative name.
 6.23066 ++    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
 6.23067 ++    ac_top_srcdir=$ac_top_build_prefix$srcdir
 6.23068 ++    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
 6.23069 + esac
 6.23070 ++ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 6.23071 + 
 6.23072 +-    cd $ac_dir
 6.23073 +-    # Check for guested configure; otherwise get Cygnus style configure.
 6.23074 +-    if test -f $ac_srcdir/configure.gnu; then
 6.23075 +-      echo
 6.23076 +-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
 6.23077 +-    elif test -f $ac_srcdir/configure; then
 6.23078 +-      echo
 6.23079 +-      $SHELL $ac_srcdir/configure  --help=recursive
 6.23080 +-    elif test -f $ac_srcdir/configure.ac ||
 6.23081 +-	   test -f $ac_srcdir/configure.in; then
 6.23082 +-      echo
 6.23083 +-      $ac_configure --help
 6.23084 ++    cd "$ac_dir" || { ac_status=$?; continue; }
 6.23085 ++    # Check for guested configure.
 6.23086 ++    if test -f "$ac_srcdir/configure.gnu"; then
 6.23087 ++      echo &&
 6.23088 ++      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
 6.23089 ++    elif test -f "$ac_srcdir/configure"; then
 6.23090 ++      echo &&
 6.23091 ++      $SHELL "$ac_srcdir/configure" --help=recursive
 6.23092 +     else
 6.23093 +       echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
 6.23094 +-    fi
 6.23095 +-    cd $ac_popdir
 6.23096 ++    fi || ac_status=$?
 6.23097 ++    cd "$ac_pwd" || { ac_status=$?; break; }
 6.23098 +   done
 6.23099 + fi
 6.23100 + 
 6.23101 +-test -n "$ac_init_help" && exit 0
 6.23102 ++test -n "$ac_init_help" && exit $ac_status
 6.23103 + if $ac_init_version; then
 6.23104 +   cat <<\_ACEOF
 6.23105 + newlib configure 1.17.0
 6.23106 +-generated by GNU Autoconf 2.59
 6.23107 ++generated by GNU Autoconf 2.61
 6.23108 + 
 6.23109 +-Copyright (C) 2003 Free Software Foundation, Inc.
 6.23110 ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 6.23111 ++2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 6.23112 + This configure script is free software; the Free Software Foundation
 6.23113 + gives unlimited permission to copy, distribute and modify it.
 6.23114 + _ACEOF
 6.23115 +-  exit 0
 6.23116 ++  exit
 6.23117 + fi
 6.23118 +-exec 5>config.log
 6.23119 +-cat >&5 <<_ACEOF
 6.23120 ++cat >config.log <<_ACEOF
 6.23121 + This file contains any messages produced by compilers while
 6.23122 + running configure, to aid debugging if configure makes a mistake.
 6.23123 + 
 6.23124 + It was created by newlib $as_me 1.17.0, which was
 6.23125 +-generated by GNU Autoconf 2.59.  Invocation command line was
 6.23126 ++generated by GNU Autoconf 2.61.  Invocation command line was
 6.23127 + 
 6.23128 +   $ $0 $@
 6.23129 + 
 6.23130 + _ACEOF
 6.23131 ++exec 5>>config.log
 6.23132 + {
 6.23133 + cat <<_ASUNAME
 6.23134 + ## --------- ##
 6.23135 +@@ -1206,7 +1654,7 @@
 6.23136 + /bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
 6.23137 + /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
 6.23138 + /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
 6.23139 +-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
 6.23140 ++/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
 6.23141 + /bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
 6.23142 + /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
 6.23143 + /bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
 6.23144 +@@ -1220,6 +1668,7 @@
 6.23145 +   test -z "$as_dir" && as_dir=.
 6.23146 +   echo "PATH: $as_dir"
 6.23147 + done
 6.23148 ++IFS=$as_save_IFS
 6.23149 + 
 6.23150 + } >&5
 6.23151 + 
 6.23152 +@@ -1241,7 +1690,6 @@
 6.23153 + ac_configure_args=
 6.23154 + ac_configure_args0=
 6.23155 + ac_configure_args1=
 6.23156 +-ac_sep=
 6.23157 + ac_must_keep_next=false
 6.23158 + for ac_pass in 1 2
 6.23159 + do
 6.23160 +@@ -1252,7 +1700,7 @@
 6.23161 +     -q | -quiet | --quiet | --quie | --qui | --qu | --q \
 6.23162 +     | -silent | --silent | --silen | --sile | --sil)
 6.23163 +       continue ;;
 6.23164 +-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
 6.23165 ++    *\'*)
 6.23166 +       ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
 6.23167 +     esac
 6.23168 +     case $ac_pass in
 6.23169 +@@ -1274,9 +1722,7 @@
 6.23170 + 	  -* ) ac_must_keep_next=true ;;
 6.23171 + 	esac
 6.23172 +       fi
 6.23173 +-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
 6.23174 +-      # Get rid of the leading space.
 6.23175 +-      ac_sep=" "
 6.23176 ++      ac_configure_args="$ac_configure_args '$ac_arg'"
 6.23177 +       ;;
 6.23178 +     esac
 6.23179 +   done
 6.23180 +@@ -1287,8 +1733,8 @@
 6.23181 + # When interrupted or exit'd, cleanup temporary files, and complete
 6.23182 + # config.log.  We remove comments because anyway the quotes in there
 6.23183 + # would cause problems or look ugly.
 6.23184 +-# WARNING: Be sure not to use single quotes in there, as some shells,
 6.23185 +-# such as our DU 5.0 friend, will then `close' the trap.
 6.23186 ++# WARNING: Use '\'' to represent an apostrophe within the trap.
 6.23187 ++# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
 6.23188 + trap 'exit_status=$?
 6.23189 +   # Save into config.log some information that might help in debugging.
 6.23190 +   {
 6.23191 +@@ -1301,20 +1747,34 @@
 6.23192 + _ASBOX
 6.23193 +     echo
 6.23194 +     # The following way of writing the cache mishandles newlines in values,
 6.23195 +-{
 6.23196 ++(
 6.23197 ++  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
 6.23198 ++    eval ac_val=\$$ac_var
 6.23199 ++    case $ac_val in #(
 6.23200 ++    *${as_nl}*)
 6.23201 ++      case $ac_var in #(
 6.23202 ++      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
 6.23203 ++echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
 6.23204 ++      esac
 6.23205 ++      case $ac_var in #(
 6.23206 ++      _ | IFS | as_nl) ;; #(
 6.23207 ++      *) $as_unset $ac_var ;;
 6.23208 ++      esac ;;
 6.23209 ++    esac
 6.23210 ++  done
 6.23211 +   (set) 2>&1 |
 6.23212 +-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
 6.23213 +-    *ac_space=\ *)
 6.23214 ++    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
 6.23215 ++    *${as_nl}ac_space=\ *)
 6.23216 +       sed -n \
 6.23217 +-	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
 6.23218 +-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
 6.23219 +-      ;;
 6.23220 ++	"s/'\''/'\''\\\\'\'''\''/g;
 6.23221 ++	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
 6.23222 ++      ;; #(
 6.23223 +     *)
 6.23224 +-      sed -n \
 6.23225 +-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
 6.23226 ++      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
 6.23227 +       ;;
 6.23228 +-    esac;
 6.23229 +-}
 6.23230 ++    esac |
 6.23231 ++    sort
 6.23232 ++)
 6.23233 +     echo
 6.23234 + 
 6.23235 +     cat <<\_ASBOX
 6.23236 +@@ -1325,22 +1785,28 @@
 6.23237 +     echo
 6.23238 +     for ac_var in $ac_subst_vars
 6.23239 +     do
 6.23240 +-      eval ac_val=$`echo $ac_var`
 6.23241 +-      echo "$ac_var='"'"'$ac_val'"'"'"
 6.23242 ++      eval ac_val=\$$ac_var
 6.23243 ++      case $ac_val in
 6.23244 ++      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
 6.23245 ++      esac
 6.23246 ++      echo "$ac_var='\''$ac_val'\''"
 6.23247 +     done | sort
 6.23248 +     echo
 6.23249 + 
 6.23250 +     if test -n "$ac_subst_files"; then
 6.23251 +       cat <<\_ASBOX
 6.23252 +-## ------------- ##
 6.23253 +-## Output files. ##
 6.23254 +-## ------------- ##
 6.23255 ++## ------------------- ##
 6.23256 ++## File substitutions. ##
 6.23257 ++## ------------------- ##
 6.23258 + _ASBOX
 6.23259 +       echo
 6.23260 +       for ac_var in $ac_subst_files
 6.23261 +       do
 6.23262 +-	eval ac_val=$`echo $ac_var`
 6.23263 +-	echo "$ac_var='"'"'$ac_val'"'"'"
 6.23264 ++	eval ac_val=\$$ac_var
 6.23265 ++	case $ac_val in
 6.23266 ++	*\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
 6.23267 ++	esac
 6.23268 ++	echo "$ac_var='\''$ac_val'\''"
 6.23269 +       done | sort
 6.23270 +       echo
 6.23271 +     fi
 6.23272 +@@ -1352,26 +1818,24 @@
 6.23273 + ## ----------- ##
 6.23274 + _ASBOX
 6.23275 +       echo
 6.23276 +-      sed "/^$/d" confdefs.h | sort
 6.23277 ++      cat confdefs.h
 6.23278 +       echo
 6.23279 +     fi
 6.23280 +     test "$ac_signal" != 0 &&
 6.23281 +       echo "$as_me: caught signal $ac_signal"
 6.23282 +     echo "$as_me: exit $exit_status"
 6.23283 +   } >&5
 6.23284 +-  rm -f core *.core &&
 6.23285 +-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
 6.23286 ++  rm -f core *.core core.conftest.* &&
 6.23287 ++    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
 6.23288 +     exit $exit_status
 6.23289 +-     ' 0
 6.23290 ++' 0
 6.23291 + for ac_signal in 1 2 13 15; do
 6.23292 +   trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
 6.23293 + done
 6.23294 + ac_signal=0
 6.23295 + 
 6.23296 + # confdefs.h avoids OS command line length limits that DEFS can exceed.
 6.23297 +-rm -rf conftest* confdefs.h
 6.23298 +-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
 6.23299 +-echo >confdefs.h
 6.23300 ++rm -f -r conftest* confdefs.h
 6.23301 + 
 6.23302 + # Predefined preprocessor variables.
 6.23303 + 
 6.23304 +@@ -1402,14 +1866,17 @@
 6.23305 + 
 6.23306 + # Let the site file select an alternate cache file if it wants to.
 6.23307 + # Prefer explicitly selected file to automatically selected ones.
 6.23308 +-if test -z "$CONFIG_SITE"; then
 6.23309 +-  if test "x$prefix" != xNONE; then
 6.23310 +-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
 6.23311 +-  else
 6.23312 +-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
 6.23313 +-  fi
 6.23314 ++if test -n "$CONFIG_SITE"; then
 6.23315 ++  set x "$CONFIG_SITE"
 6.23316 ++elif test "x$prefix" != xNONE; then
 6.23317 ++  set x "$prefix/share/config.site" "$prefix/etc/config.site"
 6.23318 ++else
 6.23319 ++  set x "$ac_default_prefix/share/config.site" \
 6.23320 ++	"$ac_default_prefix/etc/config.site"
 6.23321 + fi
 6.23322 +-for ac_site_file in $CONFIG_SITE; do
 6.23323 ++shift
 6.23324 ++for ac_site_file
 6.23325 ++do
 6.23326 +   if test -r "$ac_site_file"; then
 6.23327 +     { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
 6.23328 + echo "$as_me: loading site script $ac_site_file" >&6;}
 6.23329 +@@ -1425,8 +1892,8 @@
 6.23330 +     { echo "$as_me:$LINENO: loading cache $cache_file" >&5
 6.23331 + echo "$as_me: loading cache $cache_file" >&6;}
 6.23332 +     case $cache_file in
 6.23333 +-      [\\/]* | ?:[\\/]* ) . $cache_file;;
 6.23334 +-      *)                      . ./$cache_file;;
 6.23335 ++      [\\/]* | ?:[\\/]* ) . "$cache_file";;
 6.23336 ++      *)                      . "./$cache_file";;
 6.23337 +     esac
 6.23338 +   fi
 6.23339 + else
 6.23340 +@@ -1438,12 +1905,11 @@
 6.23341 + # Check that the precious variables saved in the cache have kept the same
 6.23342 + # value.
 6.23343 + ac_cache_corrupted=false
 6.23344 +-for ac_var in `(set) 2>&1 |
 6.23345 +-	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
 6.23346 ++for ac_var in $ac_precious_vars; do
 6.23347 +   eval ac_old_set=\$ac_cv_env_${ac_var}_set
 6.23348 +   eval ac_new_set=\$ac_env_${ac_var}_set
 6.23349 +-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
 6.23350 +-  eval ac_new_val="\$ac_env_${ac_var}_value"
 6.23351 ++  eval ac_old_val=\$ac_cv_env_${ac_var}_value
 6.23352 ++  eval ac_new_val=\$ac_env_${ac_var}_value
 6.23353 +   case $ac_old_set,$ac_new_set in
 6.23354 +     set,)
 6.23355 +       { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
 6.23356 +@@ -1468,8 +1934,7 @@
 6.23357 +   # Pass precious variables to config.status.
 6.23358 +   if test "$ac_new_set" = set; then
 6.23359 +     case $ac_new_val in
 6.23360 +-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
 6.23361 +-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
 6.23362 ++    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
 6.23363 +     *) ac_arg=$ac_var=$ac_new_val ;;
 6.23364 +     esac
 6.23365 +     case " $ac_configure_args " in
 6.23366 +@@ -1486,12 +1951,6 @@
 6.23367 +    { (exit 1); exit 1; }; }
 6.23368 + fi
 6.23369 + 
 6.23370 +-ac_ext=c
 6.23371 +-ac_cpp='$CPP $CPPFLAGS'
 6.23372 +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 6.23373 +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 6.23374 +-ac_compiler_gnu=$ac_cv_c_compiler_gnu
 6.23375 +-
 6.23376 + 
 6.23377 + 
 6.23378 + 
 6.23379 +@@ -1516,67 +1975,92 @@
 6.23380 + 
 6.23381 + 
 6.23382 + 
 6.23383 ++ac_ext=c
 6.23384 ++ac_cpp='$CPP $CPPFLAGS'
 6.23385 ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 6.23386 ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 6.23387 ++ac_compiler_gnu=$ac_cv_c_compiler_gnu
 6.23388 + 
 6.23389 + 
 6.23390 + 
 6.23391 + 
 6.23392 + ac_aux_dir=
 6.23393 +-for ac_dir in ../../.. $srcdir/../../..; do
 6.23394 +-  if test -f $ac_dir/install-sh; then
 6.23395 ++for ac_dir in ../../.. "$srcdir"/../../..; do
 6.23396 ++  if test -f "$ac_dir/install-sh"; then
 6.23397 +     ac_aux_dir=$ac_dir
 6.23398 +     ac_install_sh="$ac_aux_dir/install-sh -c"
 6.23399 +     break
 6.23400 +-  elif test -f $ac_dir/install.sh; then
 6.23401 ++  elif test -f "$ac_dir/install.sh"; then
 6.23402 +     ac_aux_dir=$ac_dir
 6.23403 +     ac_install_sh="$ac_aux_dir/install.sh -c"
 6.23404 +     break
 6.23405 +-  elif test -f $ac_dir/shtool; then
 6.23406 ++  elif test -f "$ac_dir/shtool"; then
 6.23407 +     ac_aux_dir=$ac_dir
 6.23408 +     ac_install_sh="$ac_aux_dir/shtool install -c"
 6.23409 +     break
 6.23410 +   fi
 6.23411 + done
 6.23412 + if test -z "$ac_aux_dir"; then
 6.23413 +-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../../.. $srcdir/../../.." >&5
 6.23414 +-echo "$as_me: error: cannot find install-sh or install.sh in ../../.. $srcdir/../../.." >&2;}
 6.23415 ++  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../../.. \"$srcdir\"/../../.." >&5
 6.23416 ++echo "$as_me: error: cannot find install-sh or install.sh in ../../.. \"$srcdir\"/../../.." >&2;}
 6.23417 +    { (exit 1); exit 1; }; }
 6.23418 + fi
 6.23419 +-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
 6.23420 +-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
 6.23421 +-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
 6.23422 ++
 6.23423 ++# These three variables are undocumented and unsupported,
 6.23424 ++# and are intended to be withdrawn in a future Autoconf release.
 6.23425 ++# They can cause serious problems if a builder's source tree is in a directory
 6.23426 ++# whose full name contains unusual characters.
 6.23427 ++ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
 6.23428 ++ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
 6.23429 ++ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 6.23430 ++
 6.23431 + 
 6.23432 + 
 6.23433 + 
 6.23434 + # Make sure we can run config.sub.
 6.23435 +-$ac_config_sub sun4 >/dev/null 2>&1 ||
 6.23436 +-  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
 6.23437 +-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
 6.23438 ++$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
 6.23439 ++  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
 6.23440 ++echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
 6.23441 +    { (exit 1); exit 1; }; }
 6.23442 + 
 6.23443 +-echo "$as_me:$LINENO: checking build system type" >&5
 6.23444 +-echo $ECHO_N "checking build system type... $ECHO_C" >&6
 6.23445 ++{ echo "$as_me:$LINENO: checking build system type" >&5
 6.23446 ++echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
 6.23447 + if test "${ac_cv_build+set}" = set; then
 6.23448 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.23449 + else
 6.23450 +-  ac_cv_build_alias=$build_alias
 6.23451 +-test -z "$ac_cv_build_alias" &&
 6.23452 +-  ac_cv_build_alias=`$ac_config_guess`
 6.23453 +-test -z "$ac_cv_build_alias" &&
 6.23454 ++  ac_build_alias=$build_alias
 6.23455 ++test "x$ac_build_alias" = x &&
 6.23456 ++  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
 6.23457 ++test "x$ac_build_alias" = x &&
 6.23458 +   { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
 6.23459 + echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
 6.23460 +    { (exit 1); exit 1; }; }
 6.23461 +-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
 6.23462 +-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
 6.23463 +-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
 6.23464 ++ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
 6.23465 ++  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
 6.23466 ++echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
 6.23467 +    { (exit 1); exit 1; }; }
 6.23468 + 
 6.23469 + fi
 6.23470 +-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
 6.23471 +-echo "${ECHO_T}$ac_cv_build" >&6
 6.23472 ++{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
 6.23473 ++echo "${ECHO_T}$ac_cv_build" >&6; }
 6.23474 ++case $ac_cv_build in
 6.23475 ++*-*-*) ;;
 6.23476 ++*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
 6.23477 ++echo "$as_me: error: invalid value of canonical build" >&2;}
 6.23478 ++   { (exit 1); exit 1; }; };;
 6.23479 ++esac
 6.23480 + build=$ac_cv_build
 6.23481 +-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
 6.23482 +-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
 6.23483 +-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 6.23484 ++ac_save_IFS=$IFS; IFS='-'
 6.23485 ++set x $ac_cv_build
 6.23486 ++shift
 6.23487 ++build_cpu=$1
 6.23488 ++build_vendor=$2
 6.23489 ++shift; shift
 6.23490 ++# Remember, the first character of IFS is used to create $*,
 6.23491 ++# except with old shells:
 6.23492 ++build_os=$*
 6.23493 ++IFS=$ac_save_IFS
 6.23494 ++case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 6.23495 + 
 6.23496 + 
 6.23497 + am__api_version="1.9"
 6.23498 +@@ -1593,8 +2077,8 @@
 6.23499 + # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 6.23500 + # OS/2's system install, which has a completely different semantic
 6.23501 + # ./install, which can be erroneously created by make from ./install.sh.
 6.23502 +-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
 6.23503 +-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
 6.23504 ++{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
 6.23505 ++echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
 6.23506 + if test -z "$INSTALL"; then
 6.23507 + if test "${ac_cv_path_install+set}" = set; then
 6.23508 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.23509 +@@ -1616,7 +2100,7 @@
 6.23510 +     # by default.
 6.23511 +     for ac_prog in ginstall scoinst install; do
 6.23512 +       for ac_exec_ext in '' $ac_executable_extensions; do
 6.23513 +-	if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
 6.23514 ++	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
 6.23515 + 	  if test $ac_prog = install &&
 6.23516 + 	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 6.23517 + 	    # AIX install.  It has an incompatible calling convention.
 6.23518 +@@ -1635,21 +2119,22 @@
 6.23519 +     ;;
 6.23520 + esac
 6.23521 + done
 6.23522 ++IFS=$as_save_IFS
 6.23523 + 
 6.23524 + 
 6.23525 + fi
 6.23526 +   if test "${ac_cv_path_install+set}" = set; then
 6.23527 +     INSTALL=$ac_cv_path_install
 6.23528 +   else
 6.23529 +-    # As a last resort, use the slow shell script.  We don't cache a
 6.23530 +-    # path for INSTALL within a source directory, because that will
 6.23531 ++    # As a last resort, use the slow shell script.  Don't cache a
 6.23532 ++    # value for INSTALL within a source directory, because that will
 6.23533 +     # break other packages using the cache if that directory is
 6.23534 +-    # removed, or if the path is relative.
 6.23535 ++    # removed, or if the value is a relative name.
 6.23536 +     INSTALL=$ac_install_sh
 6.23537 +   fi
 6.23538 + fi
 6.23539 +-echo "$as_me:$LINENO: result: $INSTALL" >&5
 6.23540 +-echo "${ECHO_T}$INSTALL" >&6
 6.23541 ++{ echo "$as_me:$LINENO: result: $INSTALL" >&5
 6.23542 ++echo "${ECHO_T}$INSTALL" >&6; }
 6.23543 + 
 6.23544 + # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 6.23545 + # It thinks the first close brace ends the variable substitution.
 6.23546 +@@ -1659,8 +2144,8 @@
 6.23547 + 
 6.23548 + test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 6.23549 + 
 6.23550 +-echo "$as_me:$LINENO: checking whether build environment is sane" >&5
 6.23551 +-echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
 6.23552 ++{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5
 6.23553 ++echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; }
 6.23554 + # Just in case
 6.23555 + sleep 1
 6.23556 + echo timestamp > conftest.file
 6.23557 +@@ -1702,20 +2187,20 @@
 6.23558 + Check your system clock" >&2;}
 6.23559 +    { (exit 1); exit 1; }; }
 6.23560 + fi
 6.23561 +-echo "$as_me:$LINENO: result: yes" >&5
 6.23562 +-echo "${ECHO_T}yes" >&6
 6.23563 ++{ echo "$as_me:$LINENO: result: yes" >&5
 6.23564 ++echo "${ECHO_T}yes" >&6; }
 6.23565 + test "$program_prefix" != NONE &&
 6.23566 +-  program_transform_name="s,^,$program_prefix,;$program_transform_name"
 6.23567 ++  program_transform_name="s&^&$program_prefix&;$program_transform_name"
 6.23568 + # Use a double $ so make ignores it.
 6.23569 + test "$program_suffix" != NONE &&
 6.23570 +-  program_transform_name="s,\$,$program_suffix,;$program_transform_name"
 6.23571 ++  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
 6.23572 + # Double any \ or $.  echo might interpret backslashes.
 6.23573 + # By default was `s,x,x', remove it if useless.
 6.23574 + cat <<\_ACEOF >conftest.sed
 6.23575 + s/[\\$]/&&/g;s/;s,x,x,$//
 6.23576 + _ACEOF
 6.23577 + program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
 6.23578 +-rm conftest.sed
 6.23579 ++rm -f conftest.sed
 6.23580 + 
 6.23581 + # expand $ac_aux_dir to an absolute path
 6.23582 + am_aux_dir=`cd $ac_aux_dir && pwd`
 6.23583 +@@ -1767,8 +2252,8 @@
 6.23584 + do
 6.23585 +   # Extract the first word of "$ac_prog", so it can be a program name with args.
 6.23586 + set dummy $ac_prog; ac_word=$2
 6.23587 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.23588 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.23589 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.23590 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.23591 + if test "${ac_cv_prog_AWK+set}" = set; then
 6.23592 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.23593 + else
 6.23594 +@@ -1781,54 +2266,57 @@
 6.23595 +   IFS=$as_save_IFS
 6.23596 +   test -z "$as_dir" && as_dir=.
 6.23597 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.23598 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.23599 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.23600 +     ac_cv_prog_AWK="$ac_prog"
 6.23601 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.23602 +     break 2
 6.23603 +   fi
 6.23604 + done
 6.23605 + done
 6.23606 ++IFS=$as_save_IFS
 6.23607 + 
 6.23608 + fi
 6.23609 + fi
 6.23610 + AWK=$ac_cv_prog_AWK
 6.23611 + if test -n "$AWK"; then
 6.23612 +-  echo "$as_me:$LINENO: result: $AWK" >&5
 6.23613 +-echo "${ECHO_T}$AWK" >&6
 6.23614 ++  { echo "$as_me:$LINENO: result: $AWK" >&5
 6.23615 ++echo "${ECHO_T}$AWK" >&6; }
 6.23616 + else
 6.23617 +-  echo "$as_me:$LINENO: result: no" >&5
 6.23618 +-echo "${ECHO_T}no" >&6
 6.23619 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.23620 ++echo "${ECHO_T}no" >&6; }
 6.23621 + fi
 6.23622 + 
 6.23623 ++
 6.23624 +   test -n "$AWK" && break
 6.23625 + done
 6.23626 + 
 6.23627 +-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
 6.23628 +-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
 6.23629 +-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
 6.23630 +-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
 6.23631 ++{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
 6.23632 ++echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
 6.23633 ++set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
 6.23634 ++if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
 6.23635 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.23636 + else
 6.23637 +   cat >conftest.make <<\_ACEOF
 6.23638 ++SHELL = /bin/sh
 6.23639 + all:
 6.23640 +-	@echo 'ac_maketemp="$(MAKE)"'
 6.23641 ++	@echo '@@@%%%=$(MAKE)=@@@%%%'
 6.23642 + _ACEOF
 6.23643 + # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
 6.23644 +-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
 6.23645 +-if test -n "$ac_maketemp"; then
 6.23646 +-  eval ac_cv_prog_make_${ac_make}_set=yes
 6.23647 +-else
 6.23648 +-  eval ac_cv_prog_make_${ac_make}_set=no
 6.23649 +-fi
 6.23650 ++case `${MAKE-make} -f conftest.make 2>/dev/null` in
 6.23651 ++  *@@@%%%=?*=@@@%%%*)
 6.23652 ++    eval ac_cv_prog_make_${ac_make}_set=yes;;
 6.23653 ++  *)
 6.23654 ++    eval ac_cv_prog_make_${ac_make}_set=no;;
 6.23655 ++esac
 6.23656 + rm -f conftest.make
 6.23657 + fi
 6.23658 +-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
 6.23659 +-  echo "$as_me:$LINENO: result: yes" >&5
 6.23660 +-echo "${ECHO_T}yes" >&6
 6.23661 ++if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
 6.23662 ++  { echo "$as_me:$LINENO: result: yes" >&5
 6.23663 ++echo "${ECHO_T}yes" >&6; }
 6.23664 +   SET_MAKE=
 6.23665 + else
 6.23666 +-  echo "$as_me:$LINENO: result: no" >&5
 6.23667 +-echo "${ECHO_T}no" >&6
 6.23668 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.23669 ++echo "${ECHO_T}no" >&6; }
 6.23670 +   SET_MAKE="MAKE=${MAKE-make}"
 6.23671 + fi
 6.23672 + 
 6.23673 +@@ -1843,7 +2331,7 @@
 6.23674 + 
 6.23675 + DEPDIR="${am__leading_dot}deps"
 6.23676 + 
 6.23677 +-          ac_config_commands="$ac_config_commands depfiles"
 6.23678 ++ac_config_commands="$ac_config_commands depfiles"
 6.23679 + 
 6.23680 + 
 6.23681 + am_make=${MAKE-make}
 6.23682 +@@ -1853,8 +2341,8 @@
 6.23683 + .PHONY: am__doit
 6.23684 + END
 6.23685 + # If we don't find an include directive, just comment out the code.
 6.23686 +-echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
 6.23687 +-echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
 6.23688 ++{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
 6.23689 ++echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; }
 6.23690 + am__include="#"
 6.23691 + am__quote=
 6.23692 + _am_result=none
 6.23693 +@@ -1881,15 +2369,15 @@
 6.23694 + fi
 6.23695 + 
 6.23696 + 
 6.23697 +-echo "$as_me:$LINENO: result: $_am_result" >&5
 6.23698 +-echo "${ECHO_T}$_am_result" >&6
 6.23699 ++{ echo "$as_me:$LINENO: result: $_am_result" >&5
 6.23700 ++echo "${ECHO_T}$_am_result" >&6; }
 6.23701 + rm -f confinc confmf
 6.23702 + 
 6.23703 +-# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
 6.23704 ++# Check whether --enable-dependency-tracking was given.
 6.23705 + if test "${enable_dependency_tracking+set}" = set; then
 6.23706 +-  enableval="$enable_dependency_tracking"
 6.23707 ++  enableval=$enable_dependency_tracking;
 6.23708 ++fi
 6.23709 + 
 6.23710 +-fi;
 6.23711 + if test "x$enable_dependency_tracking" != xno; then
 6.23712 +   am_depcomp="$ac_aux_dir/depcomp"
 6.23713 +   AMDEPBACKSLASH='\'
 6.23714 +@@ -1907,10 +2395,9 @@
 6.23715 + 
 6.23716 + 
 6.23717 + 
 6.23718 +-# Check whether --enable-multilib or --disable-multilib was given.
 6.23719 ++# Check whether --enable-multilib was given.
 6.23720 + if test "${enable_multilib+set}" = set; then
 6.23721 +-  enableval="$enable_multilib"
 6.23722 +-  case "${enableval}" in
 6.23723 ++  enableval=$enable_multilib; case "${enableval}" in
 6.23724 +   yes) multilib=yes ;;
 6.23725 +   no)  multilib=no ;;
 6.23726 +   *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for multilib option" >&5
 6.23727 +@@ -1919,11 +2406,11 @@
 6.23728 +  esac
 6.23729 + else
 6.23730 +   multilib=yes
 6.23731 +-fi;
 6.23732 +-# Check whether --enable-target-optspace or --disable-target-optspace was given.
 6.23733 ++fi
 6.23734 ++
 6.23735 ++# Check whether --enable-target-optspace was given.
 6.23736 + if test "${enable_target_optspace+set}" = set; then
 6.23737 +-  enableval="$enable_target_optspace"
 6.23738 +-  case "${enableval}" in
 6.23739 ++  enableval=$enable_target_optspace; case "${enableval}" in
 6.23740 +   yes) target_optspace=yes ;;
 6.23741 +   no)  target_optspace=no ;;
 6.23742 +   *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for target-optspace option" >&5
 6.23743 +@@ -1932,11 +2419,11 @@
 6.23744 +  esac
 6.23745 + else
 6.23746 +   target_optspace=
 6.23747 +-fi;
 6.23748 +-# Check whether --enable-malloc-debugging or --disable-malloc-debugging was given.
 6.23749 ++fi
 6.23750 ++
 6.23751 ++# Check whether --enable-malloc-debugging was given.
 6.23752 + if test "${enable_malloc_debugging+set}" = set; then
 6.23753 +-  enableval="$enable_malloc_debugging"
 6.23754 +-  case "${enableval}" in
 6.23755 ++  enableval=$enable_malloc_debugging; case "${enableval}" in
 6.23756 +   yes) malloc_debugging=yes ;;
 6.23757 +   no)  malloc_debugging=no ;;
 6.23758 +   *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for malloc-debugging option" >&5
 6.23759 +@@ -1945,11 +2432,11 @@
 6.23760 +  esac
 6.23761 + else
 6.23762 +   malloc_debugging=
 6.23763 +-fi;
 6.23764 +-# Check whether --enable-newlib-multithread or --disable-newlib-multithread was given.
 6.23765 ++fi
 6.23766 ++
 6.23767 ++# Check whether --enable-newlib-multithread was given.
 6.23768 + if test "${enable_newlib_multithread+set}" = set; then
 6.23769 +-  enableval="$enable_newlib_multithread"
 6.23770 +-  case "${enableval}" in
 6.23771 ++  enableval=$enable_newlib_multithread; case "${enableval}" in
 6.23772 +   yes) newlib_multithread=yes ;;
 6.23773 +   no)  newlib_multithread=no ;;
 6.23774 +   *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-multithread option" >&5
 6.23775 +@@ -1958,11 +2445,11 @@
 6.23776 +  esac
 6.23777 + else
 6.23778 +   newlib_multithread=yes
 6.23779 +-fi;
 6.23780 +-# Check whether --enable-newlib-iconv or --disable-newlib-iconv was given.
 6.23781 ++fi
 6.23782 ++
 6.23783 ++# Check whether --enable-newlib-iconv was given.
 6.23784 + if test "${enable_newlib_iconv+set}" = set; then
 6.23785 +-  enableval="$enable_newlib_iconv"
 6.23786 +-  if test "${newlib_iconv+set}" != set; then
 6.23787 ++  enableval=$enable_newlib_iconv; if test "${newlib_iconv+set}" != set; then
 6.23788 +    case "${enableval}" in
 6.23789 +      yes) newlib_iconv=yes ;;
 6.23790 +      no)  newlib_iconv=no ;;
 6.23791 +@@ -1973,11 +2460,11 @@
 6.23792 +  fi
 6.23793 + else
 6.23794 +   newlib_iconv=${newlib_iconv}
 6.23795 +-fi;
 6.23796 +-# Check whether --enable-newlib-elix-level or --disable-newlib-elix-level was given.
 6.23797 ++fi
 6.23798 ++
 6.23799 ++# Check whether --enable-newlib-elix-level was given.
 6.23800 + if test "${enable_newlib_elix_level+set}" = set; then
 6.23801 +-  enableval="$enable_newlib_elix_level"
 6.23802 +-  case "${enableval}" in
 6.23803 ++  enableval=$enable_newlib_elix_level; case "${enableval}" in
 6.23804 +   0)   newlib_elix_level=0 ;;
 6.23805 +   1)   newlib_elix_level=1 ;;
 6.23806 +   2)   newlib_elix_level=2 ;;
 6.23807 +@@ -1989,11 +2476,11 @@
 6.23808 +  esac
 6.23809 + else
 6.23810 +   newlib_elix_level=0
 6.23811 +-fi;
 6.23812 +-# Check whether --enable-newlib-io-float or --disable-newlib-io-float was given.
 6.23813 ++fi
 6.23814 ++
 6.23815 ++# Check whether --enable-newlib-io-float was given.
 6.23816 + if test "${enable_newlib_io_float+set}" = set; then
 6.23817 +-  enableval="$enable_newlib_io_float"
 6.23818 +-  case "${enableval}" in
 6.23819 ++  enableval=$enable_newlib_io_float; case "${enableval}" in
 6.23820 +   yes) newlib_io_float=yes ;;
 6.23821 +   no)  newlib_io_float=no ;;
 6.23822 +   *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-io-float option" >&5
 6.23823 +@@ -2002,11 +2489,11 @@
 6.23824 +  esac
 6.23825 + else
 6.23826 +   newlib_io_float=yes
 6.23827 +-fi;
 6.23828 +-# Check whether --enable-newlib-supplied-syscalls or --disable-newlib-supplied-syscalls was given.
 6.23829 ++fi
 6.23830 ++
 6.23831 ++# Check whether --enable-newlib-supplied-syscalls was given.
 6.23832 + if test "${enable_newlib_supplied_syscalls+set}" = set; then
 6.23833 +-  enableval="$enable_newlib_supplied_syscalls"
 6.23834 +-  case "${enableval}" in
 6.23835 ++  enableval=$enable_newlib_supplied_syscalls; case "${enableval}" in
 6.23836 +   yes) newlib_may_supply_syscalls=yes ;;
 6.23837 +   no)  newlib_may_supply_syscalls=no ;;
 6.23838 +   *)   { { echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-supplied-syscalls option" >&5
 6.23839 +@@ -2015,7 +2502,8 @@
 6.23840 +  esac
 6.23841 + else
 6.23842 +   newlib_may_supply_syscalls=yes
 6.23843 +-fi;
 6.23844 ++fi
 6.23845 ++
 6.23846 + 
 6.23847 + 
 6.23848 + if test x${newlib_may_supply_syscalls} = xyes; then
 6.23849 +@@ -2041,26 +2529,41 @@
 6.23850 + fi
 6.23851 + 
 6.23852 + 
 6.23853 +-echo "$as_me:$LINENO: checking host system type" >&5
 6.23854 +-echo $ECHO_N "checking host system type... $ECHO_C" >&6
 6.23855 ++{ echo "$as_me:$LINENO: checking host system type" >&5
 6.23856 ++echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
 6.23857 + if test "${ac_cv_host+set}" = set; then
 6.23858 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.23859 + else
 6.23860 +-  ac_cv_host_alias=$host_alias
 6.23861 +-test -z "$ac_cv_host_alias" &&
 6.23862 +-  ac_cv_host_alias=$ac_cv_build_alias
 6.23863 +-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
 6.23864 +-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
 6.23865 +-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
 6.23866 ++  if test "x$host_alias" = x; then
 6.23867 ++  ac_cv_host=$ac_cv_build
 6.23868 ++else
 6.23869 ++  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
 6.23870 ++    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
 6.23871 ++echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
 6.23872 +    { (exit 1); exit 1; }; }
 6.23873 ++fi
 6.23874 + 
 6.23875 + fi
 6.23876 +-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
 6.23877 +-echo "${ECHO_T}$ac_cv_host" >&6
 6.23878 ++{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
 6.23879 ++echo "${ECHO_T}$ac_cv_host" >&6; }
 6.23880 ++case $ac_cv_host in
 6.23881 ++*-*-*) ;;
 6.23882 ++*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
 6.23883 ++echo "$as_me: error: invalid value of canonical host" >&2;}
 6.23884 ++   { (exit 1); exit 1; }; };;
 6.23885 ++esac
 6.23886 + host=$ac_cv_host
 6.23887 +-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
 6.23888 +-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
 6.23889 +-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 6.23890 ++ac_save_IFS=$IFS; IFS='-'
 6.23891 ++set x $ac_cv_host
 6.23892 ++shift
 6.23893 ++host_cpu=$1
 6.23894 ++host_vendor=$2
 6.23895 ++shift; shift
 6.23896 ++# Remember, the first character of IFS is used to create $*,
 6.23897 ++# except with old shells:
 6.23898 ++host_os=$*
 6.23899 ++IFS=$ac_save_IFS
 6.23900 ++case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 6.23901 + 
 6.23902 + 
 6.23903 + 
 6.23904 +@@ -2113,8 +2616,8 @@
 6.23905 +   if test -n "$ac_tool_prefix"; then
 6.23906 +   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 6.23907 + set dummy ${ac_tool_prefix}strip; ac_word=$2
 6.23908 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.23909 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.23910 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.23911 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.23912 + if test "${ac_cv_prog_STRIP+set}" = set; then
 6.23913 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.23914 + else
 6.23915 +@@ -2127,32 +2630,34 @@
 6.23916 +   IFS=$as_save_IFS
 6.23917 +   test -z "$as_dir" && as_dir=.
 6.23918 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.23919 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.23920 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.23921 +     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
 6.23922 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.23923 +     break 2
 6.23924 +   fi
 6.23925 + done
 6.23926 + done
 6.23927 ++IFS=$as_save_IFS
 6.23928 + 
 6.23929 + fi
 6.23930 + fi
 6.23931 + STRIP=$ac_cv_prog_STRIP
 6.23932 + if test -n "$STRIP"; then
 6.23933 +-  echo "$as_me:$LINENO: result: $STRIP" >&5
 6.23934 +-echo "${ECHO_T}$STRIP" >&6
 6.23935 ++  { echo "$as_me:$LINENO: result: $STRIP" >&5
 6.23936 ++echo "${ECHO_T}$STRIP" >&6; }
 6.23937 + else
 6.23938 +-  echo "$as_me:$LINENO: result: no" >&5
 6.23939 +-echo "${ECHO_T}no" >&6
 6.23940 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.23941 ++echo "${ECHO_T}no" >&6; }
 6.23942 + fi
 6.23943 + 
 6.23944 ++
 6.23945 + fi
 6.23946 + if test -z "$ac_cv_prog_STRIP"; then
 6.23947 +   ac_ct_STRIP=$STRIP
 6.23948 +   # Extract the first word of "strip", so it can be a program name with args.
 6.23949 + set dummy strip; ac_word=$2
 6.23950 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.23951 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.23952 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.23953 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.23954 + if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
 6.23955 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.23956 + else
 6.23957 +@@ -2165,27 +2670,41 @@
 6.23958 +   IFS=$as_save_IFS
 6.23959 +   test -z "$as_dir" && as_dir=.
 6.23960 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.23961 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.23962 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.23963 +     ac_cv_prog_ac_ct_STRIP="strip"
 6.23964 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.23965 +     break 2
 6.23966 +   fi
 6.23967 + done
 6.23968 + done
 6.23969 ++IFS=$as_save_IFS
 6.23970 + 
 6.23971 +-  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
 6.23972 + fi
 6.23973 + fi
 6.23974 + ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 6.23975 + if test -n "$ac_ct_STRIP"; then
 6.23976 +-  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
 6.23977 +-echo "${ECHO_T}$ac_ct_STRIP" >&6
 6.23978 ++  { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
 6.23979 ++echo "${ECHO_T}$ac_ct_STRIP" >&6; }
 6.23980 + else
 6.23981 +-  echo "$as_me:$LINENO: result: no" >&5
 6.23982 +-echo "${ECHO_T}no" >&6
 6.23983 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.23984 ++echo "${ECHO_T}no" >&6; }
 6.23985 + fi
 6.23986 + 
 6.23987 +-  STRIP=$ac_ct_STRIP
 6.23988 ++  if test "x$ac_ct_STRIP" = x; then
 6.23989 ++    STRIP=":"
 6.23990 ++  else
 6.23991 ++    case $cross_compiling:$ac_tool_warned in
 6.23992 ++yes:)
 6.23993 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.23994 ++whose name does not start with the host triplet.  If you think this
 6.23995 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.23996 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.23997 ++whose name does not start with the host triplet.  If you think this
 6.23998 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.23999 ++ac_tool_warned=yes ;;
 6.24000 ++esac
 6.24001 ++    STRIP=$ac_ct_STRIP
 6.24002 ++  fi
 6.24003 + else
 6.24004 +   STRIP="$ac_cv_prog_STRIP"
 6.24005 + fi
 6.24006 +@@ -2220,8 +2739,8 @@
 6.24007 + 
 6.24008 + # Extract the first word of "gcc", so it can be a program name with args.
 6.24009 + set dummy gcc; ac_word=$2
 6.24010 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24011 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.24012 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24013 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.24014 + if test "${ac_cv_prog_CC+set}" = set; then
 6.24015 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24016 + else
 6.24017 +@@ -2234,30 +2753,32 @@
 6.24018 +   IFS=$as_save_IFS
 6.24019 +   test -z "$as_dir" && as_dir=.
 6.24020 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.24021 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.24022 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.24023 +     ac_cv_prog_CC="gcc"
 6.24024 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.24025 +     break 2
 6.24026 +   fi
 6.24027 + done
 6.24028 + done
 6.24029 ++IFS=$as_save_IFS
 6.24030 + 
 6.24031 + fi
 6.24032 + fi
 6.24033 + CC=$ac_cv_prog_CC
 6.24034 + if test -n "$CC"; then
 6.24035 +-  echo "$as_me:$LINENO: result: $CC" >&5
 6.24036 +-echo "${ECHO_T}$CC" >&6
 6.24037 ++  { echo "$as_me:$LINENO: result: $CC" >&5
 6.24038 ++echo "${ECHO_T}$CC" >&6; }
 6.24039 + else
 6.24040 +-  echo "$as_me:$LINENO: result: no" >&5
 6.24041 +-echo "${ECHO_T}no" >&6
 6.24042 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.24043 ++echo "${ECHO_T}no" >&6; }
 6.24044 + fi
 6.24045 + 
 6.24046 + 
 6.24047 ++
 6.24048 + depcc="$CC"   am_compiler_list=
 6.24049 + 
 6.24050 +-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
 6.24051 +-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
 6.24052 ++{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
 6.24053 ++echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
 6.24054 + if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
 6.24055 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24056 + else
 6.24057 +@@ -2346,8 +2867,8 @@
 6.24058 + fi
 6.24059 + 
 6.24060 + fi
 6.24061 +-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
 6.24062 +-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
 6.24063 ++{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
 6.24064 ++echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
 6.24065 + CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 6.24066 + 
 6.24067 + 
 6.24068 +@@ -2366,8 +2887,8 @@
 6.24069 + if test -z "$CC"; then
 6.24070 +   # Extract the first word of "cc", so it can be a program name with args.
 6.24071 + set dummy cc; ac_word=$2
 6.24072 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24073 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.24074 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24075 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.24076 + if test "${ac_cv_prog_CC+set}" = set; then
 6.24077 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24078 + else
 6.24079 +@@ -2381,7 +2902,7 @@
 6.24080 +   IFS=$as_save_IFS
 6.24081 +   test -z "$as_dir" && as_dir=.
 6.24082 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.24083 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.24084 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.24085 +     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
 6.24086 +        ac_prog_rejected=yes
 6.24087 +        continue
 6.24088 +@@ -2392,6 +2913,7 @@
 6.24089 +   fi
 6.24090 + done
 6.24091 + done
 6.24092 ++IFS=$as_save_IFS
 6.24093 + 
 6.24094 + if test $ac_prog_rejected = yes; then
 6.24095 +   # We found a bogon in the path, so make sure we never use it.
 6.24096 +@@ -2409,20 +2931,21 @@
 6.24097 + fi
 6.24098 + CC=$ac_cv_prog_CC
 6.24099 + if test -n "$CC"; then
 6.24100 +-  echo "$as_me:$LINENO: result: $CC" >&5
 6.24101 +-echo "${ECHO_T}$CC" >&6
 6.24102 ++  { echo "$as_me:$LINENO: result: $CC" >&5
 6.24103 ++echo "${ECHO_T}$CC" >&6; }
 6.24104 + else
 6.24105 +-  echo "$as_me:$LINENO: result: no" >&5
 6.24106 +-echo "${ECHO_T}no" >&6
 6.24107 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.24108 ++echo "${ECHO_T}no" >&6; }
 6.24109 + fi
 6.24110 + 
 6.24111 ++
 6.24112 +   test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable cc found in \$PATH" >&5
 6.24113 + echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
 6.24114 +    { (exit 1); exit 1; }; }
 6.24115 + fi
 6.24116 + 
 6.24117 +-echo "$as_me:$LINENO: checking whether we are using GNU C" >&5
 6.24118 +-echo $ECHO_N "checking whether we are using GNU C... $ECHO_C" >&6
 6.24119 ++{ echo "$as_me:$LINENO: checking whether we are using GNU C" >&5
 6.24120 ++echo $ECHO_N "checking whether we are using GNU C... $ECHO_C" >&6; }
 6.24121 + if test "${ac_cv_c_compiler_gnu+set}" = set; then
 6.24122 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24123 + else
 6.24124 +@@ -2442,8 +2965,8 @@
 6.24125 +   ac_cv_c_compiler_gnu=no
 6.24126 + fi
 6.24127 + fi
 6.24128 +-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
 6.24129 +-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
 6.24130 ++{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
 6.24131 ++echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
 6.24132 + 
 6.24133 + if test $ac_cv_c_compiler_gnu = yes; then
 6.24134 +   GCC=yes
 6.24135 +@@ -2452,13 +2975,16 @@
 6.24136 +   CFLAGS=
 6.24137 +   ac_test_CFLAGS=${CFLAGS+set}
 6.24138 + ac_save_CFLAGS=$CFLAGS
 6.24139 +-CFLAGS="-g"
 6.24140 +-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
 6.24141 +-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
 6.24142 ++{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
 6.24143 ++echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
 6.24144 + if test "${ac_cv_prog_cc_g+set}" = set; then
 6.24145 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24146 + else
 6.24147 +-  cat >conftest.$ac_ext <<_ACEOF
 6.24148 ++  ac_save_c_werror_flag=$ac_c_werror_flag
 6.24149 ++   ac_c_werror_flag=yes
 6.24150 ++   ac_cv_prog_cc_g=no
 6.24151 ++   CFLAGS="-g"
 6.24152 ++   cat >conftest.$ac_ext <<_ACEOF
 6.24153 + /* confdefs.h.  */
 6.24154 + _ACEOF
 6.24155 + cat confdefs.h >>conftest.$ac_ext
 6.24156 +@@ -2474,38 +3000,118 @@
 6.24157 + }
 6.24158 + _ACEOF
 6.24159 + rm -f conftest.$ac_objext
 6.24160 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.24161 +-  (eval $ac_compile) 2>conftest.er1
 6.24162 ++if { (ac_try="$ac_compile"
 6.24163 ++case "(($ac_try" in
 6.24164 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.24165 ++  *) ac_try_echo=$ac_try;;
 6.24166 ++esac
 6.24167 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.24168 ++  (eval "$ac_compile") 2>conftest.er1
 6.24169 +   ac_status=$?
 6.24170 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.24171 +   rm -f conftest.er1
 6.24172 +   cat conftest.err >&5
 6.24173 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.24174 +-  (exit $ac_status); } &&
 6.24175 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.24176 +-			 || test ! -s conftest.err'
 6.24177 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.24178 +-  (eval $ac_try) 2>&5
 6.24179 ++  (exit $ac_status); } && {
 6.24180 ++	 test -z "$ac_c_werror_flag" ||
 6.24181 ++	 test ! -s conftest.err
 6.24182 ++       } && test -s conftest.$ac_objext; then
 6.24183 ++  ac_cv_prog_cc_g=yes
 6.24184 ++else
 6.24185 ++  echo "$as_me: failed program was:" >&5
 6.24186 ++sed 's/^/| /' conftest.$ac_ext >&5
 6.24187 ++
 6.24188 ++	CFLAGS=""
 6.24189 ++      cat >conftest.$ac_ext <<_ACEOF
 6.24190 ++/* confdefs.h.  */
 6.24191 ++_ACEOF
 6.24192 ++cat confdefs.h >>conftest.$ac_ext
 6.24193 ++cat >>conftest.$ac_ext <<_ACEOF
 6.24194 ++/* end confdefs.h.  */
 6.24195 ++
 6.24196 ++int
 6.24197 ++main ()
 6.24198 ++{
 6.24199 ++
 6.24200 ++  ;
 6.24201 ++  return 0;
 6.24202 ++}
 6.24203 ++_ACEOF
 6.24204 ++rm -f conftest.$ac_objext
 6.24205 ++if { (ac_try="$ac_compile"
 6.24206 ++case "(($ac_try" in
 6.24207 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.24208 ++  *) ac_try_echo=$ac_try;;
 6.24209 ++esac
 6.24210 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.24211 ++  (eval "$ac_compile") 2>conftest.er1
 6.24212 +   ac_status=$?
 6.24213 ++  grep -v '^ *+' conftest.er1 >conftest.err
 6.24214 ++  rm -f conftest.er1
 6.24215 ++  cat conftest.err >&5
 6.24216 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.24217 +-  (exit $ac_status); }; } &&
 6.24218 +-	 { ac_try='test -s conftest.$ac_objext'
 6.24219 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.24220 +-  (eval $ac_try) 2>&5
 6.24221 ++  (exit $ac_status); } && {
 6.24222 ++	 test -z "$ac_c_werror_flag" ||
 6.24223 ++	 test ! -s conftest.err
 6.24224 ++       } && test -s conftest.$ac_objext; then
 6.24225 ++  :
 6.24226 ++else
 6.24227 ++  echo "$as_me: failed program was:" >&5
 6.24228 ++sed 's/^/| /' conftest.$ac_ext >&5
 6.24229 ++
 6.24230 ++	ac_c_werror_flag=$ac_save_c_werror_flag
 6.24231 ++	 CFLAGS="-g"
 6.24232 ++	 cat >conftest.$ac_ext <<_ACEOF
 6.24233 ++/* confdefs.h.  */
 6.24234 ++_ACEOF
 6.24235 ++cat confdefs.h >>conftest.$ac_ext
 6.24236 ++cat >>conftest.$ac_ext <<_ACEOF
 6.24237 ++/* end confdefs.h.  */
 6.24238 ++
 6.24239 ++int
 6.24240 ++main ()
 6.24241 ++{
 6.24242 ++
 6.24243 ++  ;
 6.24244 ++  return 0;
 6.24245 ++}
 6.24246 ++_ACEOF
 6.24247 ++rm -f conftest.$ac_objext
 6.24248 ++if { (ac_try="$ac_compile"
 6.24249 ++case "(($ac_try" in
 6.24250 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.24251 ++  *) ac_try_echo=$ac_try;;
 6.24252 ++esac
 6.24253 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.24254 ++  (eval "$ac_compile") 2>conftest.er1
 6.24255 +   ac_status=$?
 6.24256 ++  grep -v '^ *+' conftest.er1 >conftest.err
 6.24257 ++  rm -f conftest.er1
 6.24258 ++  cat conftest.err >&5
 6.24259 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.24260 +-  (exit $ac_status); }; }; then
 6.24261 ++  (exit $ac_status); } && {
 6.24262 ++	 test -z "$ac_c_werror_flag" ||
 6.24263 ++	 test ! -s conftest.err
 6.24264 ++       } && test -s conftest.$ac_objext; then
 6.24265 +   ac_cv_prog_cc_g=yes
 6.24266 + else
 6.24267 +   echo "$as_me: failed program was:" >&5
 6.24268 + sed 's/^/| /' conftest.$ac_ext >&5
 6.24269 + 
 6.24270 +-ac_cv_prog_cc_g=no
 6.24271 ++
 6.24272 ++fi
 6.24273 ++
 6.24274 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 6.24275 ++fi
 6.24276 ++
 6.24277 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 6.24278 + fi
 6.24279 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 6.24280 ++
 6.24281 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 6.24282 ++   ac_c_werror_flag=$ac_save_c_werror_flag
 6.24283 + fi
 6.24284 +-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
 6.24285 +-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
 6.24286 ++{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
 6.24287 ++echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
 6.24288 + if test "$ac_test_CFLAGS" = set; then
 6.24289 +   CFLAGS=$ac_save_CFLAGS
 6.24290 + elif test $ac_cv_prog_cc_g = yes; then
 6.24291 +@@ -2537,8 +3143,8 @@
 6.24292 + if test -n "$ac_tool_prefix"; then
 6.24293 +   # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
 6.24294 + set dummy ${ac_tool_prefix}as; ac_word=$2
 6.24295 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24296 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.24297 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24298 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.24299 + if test "${ac_cv_prog_AS+set}" = set; then
 6.24300 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24301 + else
 6.24302 +@@ -2551,32 +3157,34 @@
 6.24303 +   IFS=$as_save_IFS
 6.24304 +   test -z "$as_dir" && as_dir=.
 6.24305 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.24306 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.24307 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.24308 +     ac_cv_prog_AS="${ac_tool_prefix}as"
 6.24309 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.24310 +     break 2
 6.24311 +   fi
 6.24312 + done
 6.24313 + done
 6.24314 ++IFS=$as_save_IFS
 6.24315 + 
 6.24316 + fi
 6.24317 + fi
 6.24318 + AS=$ac_cv_prog_AS
 6.24319 + if test -n "$AS"; then
 6.24320 +-  echo "$as_me:$LINENO: result: $AS" >&5
 6.24321 +-echo "${ECHO_T}$AS" >&6
 6.24322 ++  { echo "$as_me:$LINENO: result: $AS" >&5
 6.24323 ++echo "${ECHO_T}$AS" >&6; }
 6.24324 + else
 6.24325 +-  echo "$as_me:$LINENO: result: no" >&5
 6.24326 +-echo "${ECHO_T}no" >&6
 6.24327 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.24328 ++echo "${ECHO_T}no" >&6; }
 6.24329 + fi
 6.24330 + 
 6.24331 ++
 6.24332 + fi
 6.24333 + if test -z "$ac_cv_prog_AS"; then
 6.24334 +   ac_ct_AS=$AS
 6.24335 +   # Extract the first word of "as", so it can be a program name with args.
 6.24336 + set dummy as; ac_word=$2
 6.24337 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24338 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.24339 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24340 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.24341 + if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
 6.24342 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24343 + else
 6.24344 +@@ -2589,26 +3197,41 @@
 6.24345 +   IFS=$as_save_IFS
 6.24346 +   test -z "$as_dir" && as_dir=.
 6.24347 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.24348 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.24349 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.24350 +     ac_cv_prog_ac_ct_AS="as"
 6.24351 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.24352 +     break 2
 6.24353 +   fi
 6.24354 + done
 6.24355 + done
 6.24356 ++IFS=$as_save_IFS
 6.24357 + 
 6.24358 + fi
 6.24359 + fi
 6.24360 + ac_ct_AS=$ac_cv_prog_ac_ct_AS
 6.24361 + if test -n "$ac_ct_AS"; then
 6.24362 +-  echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
 6.24363 +-echo "${ECHO_T}$ac_ct_AS" >&6
 6.24364 ++  { echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
 6.24365 ++echo "${ECHO_T}$ac_ct_AS" >&6; }
 6.24366 + else
 6.24367 +-  echo "$as_me:$LINENO: result: no" >&5
 6.24368 +-echo "${ECHO_T}no" >&6
 6.24369 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.24370 ++echo "${ECHO_T}no" >&6; }
 6.24371 + fi
 6.24372 + 
 6.24373 +-  AS=$ac_ct_AS
 6.24374 ++  if test "x$ac_ct_AS" = x; then
 6.24375 ++    AS=""
 6.24376 ++  else
 6.24377 ++    case $cross_compiling:$ac_tool_warned in
 6.24378 ++yes:)
 6.24379 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.24380 ++whose name does not start with the host triplet.  If you think this
 6.24381 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.24382 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.24383 ++whose name does not start with the host triplet.  If you think this
 6.24384 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.24385 ++ac_tool_warned=yes ;;
 6.24386 ++esac
 6.24387 ++    AS=$ac_ct_AS
 6.24388 ++  fi
 6.24389 + else
 6.24390 +   AS="$ac_cv_prog_AS"
 6.24391 + fi
 6.24392 +@@ -2616,8 +3239,8 @@
 6.24393 + if test -n "$ac_tool_prefix"; then
 6.24394 +   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 6.24395 + set dummy ${ac_tool_prefix}ar; ac_word=$2
 6.24396 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24397 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.24398 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24399 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.24400 + if test "${ac_cv_prog_AR+set}" = set; then
 6.24401 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24402 + else
 6.24403 +@@ -2630,32 +3253,34 @@
 6.24404 +   IFS=$as_save_IFS
 6.24405 +   test -z "$as_dir" && as_dir=.
 6.24406 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.24407 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.24408 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.24409 +     ac_cv_prog_AR="${ac_tool_prefix}ar"
 6.24410 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.24411 +     break 2
 6.24412 +   fi
 6.24413 + done
 6.24414 + done
 6.24415 ++IFS=$as_save_IFS
 6.24416 + 
 6.24417 + fi
 6.24418 + fi
 6.24419 + AR=$ac_cv_prog_AR
 6.24420 + if test -n "$AR"; then
 6.24421 +-  echo "$as_me:$LINENO: result: $AR" >&5
 6.24422 +-echo "${ECHO_T}$AR" >&6
 6.24423 ++  { echo "$as_me:$LINENO: result: $AR" >&5
 6.24424 ++echo "${ECHO_T}$AR" >&6; }
 6.24425 + else
 6.24426 +-  echo "$as_me:$LINENO: result: no" >&5
 6.24427 +-echo "${ECHO_T}no" >&6
 6.24428 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.24429 ++echo "${ECHO_T}no" >&6; }
 6.24430 + fi
 6.24431 + 
 6.24432 ++
 6.24433 + fi
 6.24434 + if test -z "$ac_cv_prog_AR"; then
 6.24435 +   ac_ct_AR=$AR
 6.24436 +   # Extract the first word of "ar", so it can be a program name with args.
 6.24437 + set dummy ar; ac_word=$2
 6.24438 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24439 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.24440 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24441 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.24442 + if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
 6.24443 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24444 + else
 6.24445 +@@ -2668,26 +3293,41 @@
 6.24446 +   IFS=$as_save_IFS
 6.24447 +   test -z "$as_dir" && as_dir=.
 6.24448 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.24449 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.24450 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.24451 +     ac_cv_prog_ac_ct_AR="ar"
 6.24452 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.24453 +     break 2
 6.24454 +   fi
 6.24455 + done
 6.24456 + done
 6.24457 ++IFS=$as_save_IFS
 6.24458 + 
 6.24459 + fi
 6.24460 + fi
 6.24461 + ac_ct_AR=$ac_cv_prog_ac_ct_AR
 6.24462 + if test -n "$ac_ct_AR"; then
 6.24463 +-  echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
 6.24464 +-echo "${ECHO_T}$ac_ct_AR" >&6
 6.24465 ++  { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
 6.24466 ++echo "${ECHO_T}$ac_ct_AR" >&6; }
 6.24467 + else
 6.24468 +-  echo "$as_me:$LINENO: result: no" >&5
 6.24469 +-echo "${ECHO_T}no" >&6
 6.24470 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.24471 ++echo "${ECHO_T}no" >&6; }
 6.24472 + fi
 6.24473 + 
 6.24474 +-  AR=$ac_ct_AR
 6.24475 ++  if test "x$ac_ct_AR" = x; then
 6.24476 ++    AR=""
 6.24477 ++  else
 6.24478 ++    case $cross_compiling:$ac_tool_warned in
 6.24479 ++yes:)
 6.24480 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.24481 ++whose name does not start with the host triplet.  If you think this
 6.24482 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.24483 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.24484 ++whose name does not start with the host triplet.  If you think this
 6.24485 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.24486 ++ac_tool_warned=yes ;;
 6.24487 ++esac
 6.24488 ++    AR=$ac_ct_AR
 6.24489 ++  fi
 6.24490 + else
 6.24491 +   AR="$ac_cv_prog_AR"
 6.24492 + fi
 6.24493 +@@ -2695,8 +3335,8 @@
 6.24494 + if test -n "$ac_tool_prefix"; then
 6.24495 +   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 6.24496 + set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 6.24497 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24498 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.24499 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24500 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.24501 + if test "${ac_cv_prog_RANLIB+set}" = set; then
 6.24502 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24503 + else
 6.24504 +@@ -2709,32 +3349,34 @@
 6.24505 +   IFS=$as_save_IFS
 6.24506 +   test -z "$as_dir" && as_dir=.
 6.24507 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.24508 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.24509 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.24510 +     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
 6.24511 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.24512 +     break 2
 6.24513 +   fi
 6.24514 + done
 6.24515 + done
 6.24516 ++IFS=$as_save_IFS
 6.24517 + 
 6.24518 + fi
 6.24519 + fi
 6.24520 + RANLIB=$ac_cv_prog_RANLIB
 6.24521 + if test -n "$RANLIB"; then
 6.24522 +-  echo "$as_me:$LINENO: result: $RANLIB" >&5
 6.24523 +-echo "${ECHO_T}$RANLIB" >&6
 6.24524 ++  { echo "$as_me:$LINENO: result: $RANLIB" >&5
 6.24525 ++echo "${ECHO_T}$RANLIB" >&6; }
 6.24526 + else
 6.24527 +-  echo "$as_me:$LINENO: result: no" >&5
 6.24528 +-echo "${ECHO_T}no" >&6
 6.24529 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.24530 ++echo "${ECHO_T}no" >&6; }
 6.24531 + fi
 6.24532 + 
 6.24533 ++
 6.24534 + fi
 6.24535 + if test -z "$ac_cv_prog_RANLIB"; then
 6.24536 +   ac_ct_RANLIB=$RANLIB
 6.24537 +   # Extract the first word of "ranlib", so it can be a program name with args.
 6.24538 + set dummy ranlib; ac_word=$2
 6.24539 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24540 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.24541 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24542 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.24543 + if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
 6.24544 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24545 + else
 6.24546 +@@ -2747,27 +3389,41 @@
 6.24547 +   IFS=$as_save_IFS
 6.24548 +   test -z "$as_dir" && as_dir=.
 6.24549 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.24550 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.24551 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.24552 +     ac_cv_prog_ac_ct_RANLIB="ranlib"
 6.24553 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.24554 +     break 2
 6.24555 +   fi
 6.24556 + done
 6.24557 + done
 6.24558 ++IFS=$as_save_IFS
 6.24559 + 
 6.24560 +-  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
 6.24561 + fi
 6.24562 + fi
 6.24563 + ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 6.24564 + if test -n "$ac_ct_RANLIB"; then
 6.24565 +-  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
 6.24566 +-echo "${ECHO_T}$ac_ct_RANLIB" >&6
 6.24567 ++  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
 6.24568 ++echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
 6.24569 + else
 6.24570 +-  echo "$as_me:$LINENO: result: no" >&5
 6.24571 +-echo "${ECHO_T}no" >&6
 6.24572 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.24573 ++echo "${ECHO_T}no" >&6; }
 6.24574 + fi
 6.24575 + 
 6.24576 +-  RANLIB=$ac_ct_RANLIB
 6.24577 ++  if test "x$ac_ct_RANLIB" = x; then
 6.24578 ++    RANLIB=":"
 6.24579 ++  else
 6.24580 ++    case $cross_compiling:$ac_tool_warned in
 6.24581 ++yes:)
 6.24582 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.24583 ++whose name does not start with the host triplet.  If you think this
 6.24584 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.24585 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.24586 ++whose name does not start with the host triplet.  If you think this
 6.24587 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.24588 ++ac_tool_warned=yes ;;
 6.24589 ++esac
 6.24590 ++    RANLIB=$ac_ct_RANLIB
 6.24591 ++  fi
 6.24592 + else
 6.24593 +   RANLIB="$ac_cv_prog_RANLIB"
 6.24594 + fi
 6.24595 +@@ -2775,8 +3431,8 @@
 6.24596 + if test -n "$ac_tool_prefix"; then
 6.24597 +   # Extract the first word of "${ac_tool_prefix}readelf", so it can be a program name with args.
 6.24598 + set dummy ${ac_tool_prefix}readelf; ac_word=$2
 6.24599 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24600 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.24601 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24602 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.24603 + if test "${ac_cv_prog_READELF+set}" = set; then
 6.24604 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24605 + else
 6.24606 +@@ -2789,32 +3445,34 @@
 6.24607 +   IFS=$as_save_IFS
 6.24608 +   test -z "$as_dir" && as_dir=.
 6.24609 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.24610 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.24611 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.24612 +     ac_cv_prog_READELF="${ac_tool_prefix}readelf"
 6.24613 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.24614 +     break 2
 6.24615 +   fi
 6.24616 + done
 6.24617 + done
 6.24618 ++IFS=$as_save_IFS
 6.24619 + 
 6.24620 + fi
 6.24621 + fi
 6.24622 + READELF=$ac_cv_prog_READELF
 6.24623 + if test -n "$READELF"; then
 6.24624 +-  echo "$as_me:$LINENO: result: $READELF" >&5
 6.24625 +-echo "${ECHO_T}$READELF" >&6
 6.24626 ++  { echo "$as_me:$LINENO: result: $READELF" >&5
 6.24627 ++echo "${ECHO_T}$READELF" >&6; }
 6.24628 + else
 6.24629 +-  echo "$as_me:$LINENO: result: no" >&5
 6.24630 +-echo "${ECHO_T}no" >&6
 6.24631 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.24632 ++echo "${ECHO_T}no" >&6; }
 6.24633 + fi
 6.24634 + 
 6.24635 ++
 6.24636 + fi
 6.24637 + if test -z "$ac_cv_prog_READELF"; then
 6.24638 +   ac_ct_READELF=$READELF
 6.24639 +   # Extract the first word of "readelf", so it can be a program name with args.
 6.24640 + set dummy readelf; ac_word=$2
 6.24641 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24642 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.24643 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24644 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.24645 + if test "${ac_cv_prog_ac_ct_READELF+set}" = set; then
 6.24646 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24647 + else
 6.24648 +@@ -2827,27 +3485,41 @@
 6.24649 +   IFS=$as_save_IFS
 6.24650 +   test -z "$as_dir" && as_dir=.
 6.24651 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.24652 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.24653 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.24654 +     ac_cv_prog_ac_ct_READELF="readelf"
 6.24655 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.24656 +     break 2
 6.24657 +   fi
 6.24658 + done
 6.24659 + done
 6.24660 ++IFS=$as_save_IFS
 6.24661 + 
 6.24662 +-  test -z "$ac_cv_prog_ac_ct_READELF" && ac_cv_prog_ac_ct_READELF=":"
 6.24663 + fi
 6.24664 + fi
 6.24665 + ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
 6.24666 + if test -n "$ac_ct_READELF"; then
 6.24667 +-  echo "$as_me:$LINENO: result: $ac_ct_READELF" >&5
 6.24668 +-echo "${ECHO_T}$ac_ct_READELF" >&6
 6.24669 ++  { echo "$as_me:$LINENO: result: $ac_ct_READELF" >&5
 6.24670 ++echo "${ECHO_T}$ac_ct_READELF" >&6; }
 6.24671 + else
 6.24672 +-  echo "$as_me:$LINENO: result: no" >&5
 6.24673 +-echo "${ECHO_T}no" >&6
 6.24674 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.24675 ++echo "${ECHO_T}no" >&6; }
 6.24676 + fi
 6.24677 + 
 6.24678 +-  READELF=$ac_ct_READELF
 6.24679 ++  if test "x$ac_ct_READELF" = x; then
 6.24680 ++    READELF=":"
 6.24681 ++  else
 6.24682 ++    case $cross_compiling:$ac_tool_warned in
 6.24683 ++yes:)
 6.24684 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.24685 ++whose name does not start with the host triplet.  If you think this
 6.24686 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.24687 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.24688 ++whose name does not start with the host triplet.  If you think this
 6.24689 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.24690 ++ac_tool_warned=yes ;;
 6.24691 ++esac
 6.24692 ++    READELF=$ac_ct_READELF
 6.24693 ++  fi
 6.24694 + else
 6.24695 +   READELF="$ac_cv_prog_READELF"
 6.24696 + fi
 6.24697 +@@ -2866,8 +3538,8 @@
 6.24698 + # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 6.24699 + # OS/2's system install, which has a completely different semantic
 6.24700 + # ./install, which can be erroneously created by make from ./install.sh.
 6.24701 +-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
 6.24702 +-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
 6.24703 ++{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
 6.24704 ++echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
 6.24705 + if test -z "$INSTALL"; then
 6.24706 + if test "${ac_cv_path_install+set}" = set; then
 6.24707 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24708 +@@ -2889,7 +3561,7 @@
 6.24709 +     # by default.
 6.24710 +     for ac_prog in ginstall scoinst install; do
 6.24711 +       for ac_exec_ext in '' $ac_executable_extensions; do
 6.24712 +-	if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
 6.24713 ++	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
 6.24714 + 	  if test $ac_prog = install &&
 6.24715 + 	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 6.24716 + 	    # AIX install.  It has an incompatible calling convention.
 6.24717 +@@ -2908,21 +3580,22 @@
 6.24718 +     ;;
 6.24719 + esac
 6.24720 + done
 6.24721 ++IFS=$as_save_IFS
 6.24722 + 
 6.24723 + 
 6.24724 + fi
 6.24725 +   if test "${ac_cv_path_install+set}" = set; then
 6.24726 +     INSTALL=$ac_cv_path_install
 6.24727 +   else
 6.24728 +-    # As a last resort, use the slow shell script.  We don't cache a
 6.24729 +-    # path for INSTALL within a source directory, because that will
 6.24730 ++    # As a last resort, use the slow shell script.  Don't cache a
 6.24731 ++    # value for INSTALL within a source directory, because that will
 6.24732 +     # break other packages using the cache if that directory is
 6.24733 +-    # removed, or if the path is relative.
 6.24734 ++    # removed, or if the value is a relative name.
 6.24735 +     INSTALL=$ac_install_sh
 6.24736 +   fi
 6.24737 + fi
 6.24738 +-echo "$as_me:$LINENO: result: $INSTALL" >&5
 6.24739 +-echo "${ECHO_T}$INSTALL" >&6
 6.24740 ++{ echo "$as_me:$LINENO: result: $INSTALL" >&5
 6.24741 ++echo "${ECHO_T}$INSTALL" >&6; }
 6.24742 + 
 6.24743 + # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 6.24744 + # It thinks the first close brace ends the variable substitution.
 6.24745 +@@ -2936,17 +3609,17 @@
 6.24746 + # Hack to ensure that INSTALL won't be set to "../" with autoconf 2.13.  */
 6.24747 + ac_given_INSTALL=$INSTALL
 6.24748 + 
 6.24749 +-echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
 6.24750 +-echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
 6.24751 +-    # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
 6.24752 ++{ echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
 6.24753 ++echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; }
 6.24754 ++    # Check whether --enable-maintainer-mode was given.
 6.24755 + if test "${enable_maintainer_mode+set}" = set; then
 6.24756 +-  enableval="$enable_maintainer_mode"
 6.24757 +-  USE_MAINTAINER_MODE=$enableval
 6.24758 ++  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
 6.24759 + else
 6.24760 +   USE_MAINTAINER_MODE=no
 6.24761 +-fi;
 6.24762 +-  echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
 6.24763 +-echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
 6.24764 ++fi
 6.24765 ++
 6.24766 ++  { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
 6.24767 ++echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; }
 6.24768 + 
 6.24769 + 
 6.24770 + if test $USE_MAINTAINER_MODE = yes; then
 6.24771 +@@ -3066,64 +3739,89 @@
 6.24772 + 
 6.24773 + 
 6.24774 + 
 6.24775 +-echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
 6.24776 +-echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6
 6.24777 +-if test "${lt_cv_path_SED+set}" = set; then
 6.24778 ++{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
 6.24779 ++echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; }
 6.24780 ++if test "${ac_cv_path_SED+set}" = set; then
 6.24781 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24782 ++else
 6.24783 ++            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
 6.24784 ++     for ac_i in 1 2 3 4 5 6 7; do
 6.24785 ++       ac_script="$ac_script$as_nl$ac_script"
 6.24786 ++     done
 6.24787 ++     echo "$ac_script" | sed 99q >conftest.sed
 6.24788 ++     $as_unset ac_script || ac_script=
 6.24789 ++     # Extract the first word of "sed gsed" to use in msg output
 6.24790 ++if test -z "$SED"; then
 6.24791 ++set dummy sed gsed; ac_prog_name=$2
 6.24792 ++if test "${ac_cv_path_SED+set}" = set; then
 6.24793 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24794 + else
 6.24795 +-  # Loop through the user's path and test for sed and gsed.
 6.24796 +-# Then use that list of sed's as ones to test for truncation.
 6.24797 ++  ac_path_SED_found=false
 6.24798 ++# Loop through the user's path and test for each of PROGNAME-LIST
 6.24799 + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.24800 + for as_dir in $PATH
 6.24801 + do
 6.24802 +   IFS=$as_save_IFS
 6.24803 +   test -z "$as_dir" && as_dir=.
 6.24804 +-  for lt_ac_prog in sed gsed; do
 6.24805 +-    for ac_exec_ext in '' $ac_executable_extensions; do
 6.24806 +-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
 6.24807 +-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
 6.24808 +-      fi
 6.24809 +-    done
 6.24810 +-  done
 6.24811 +-done
 6.24812 +-IFS=$as_save_IFS
 6.24813 +-lt_ac_max=0
 6.24814 +-lt_ac_count=0
 6.24815 +-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
 6.24816 +-# along with /bin/sed that truncates output.
 6.24817 +-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
 6.24818 +-  test ! -f $lt_ac_sed && continue
 6.24819 +-  cat /dev/null > conftest.in
 6.24820 +-  lt_ac_count=0
 6.24821 +-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
 6.24822 +-  # Check for GNU sed and select it if it is found.
 6.24823 +-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
 6.24824 +-    lt_cv_path_SED=$lt_ac_sed
 6.24825 +-    break
 6.24826 +-  fi
 6.24827 +-  while true; do
 6.24828 +-    cat conftest.in conftest.in >conftest.tmp
 6.24829 +-    mv conftest.tmp conftest.in
 6.24830 +-    cp conftest.in conftest.nl
 6.24831 +-    echo >>conftest.nl
 6.24832 +-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
 6.24833 +-    cmp -s conftest.out conftest.nl || break
 6.24834 +-    # 10000 chars as input seems more than enough
 6.24835 +-    test $lt_ac_count -gt 10 && break
 6.24836 +-    lt_ac_count=`expr $lt_ac_count + 1`
 6.24837 +-    if test $lt_ac_count -gt $lt_ac_max; then
 6.24838 +-      lt_ac_max=$lt_ac_count
 6.24839 +-      lt_cv_path_SED=$lt_ac_sed
 6.24840 ++  for ac_prog in sed gsed; do
 6.24841 ++  for ac_exec_ext in '' $ac_executable_extensions; do
 6.24842 ++    ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
 6.24843 ++    { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
 6.24844 ++    # Check for GNU ac_path_SED and select it if it is found.
 6.24845 ++  # Check for GNU $ac_path_SED
 6.24846 ++case `"$ac_path_SED" --version 2>&1` in
 6.24847 ++*GNU*)
 6.24848 ++  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
 6.24849 ++*)
 6.24850 ++  ac_count=0
 6.24851 ++  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
 6.24852 ++  while :
 6.24853 ++  do
 6.24854 ++    cat "conftest.in" "conftest.in" >"conftest.tmp"
 6.24855 ++    mv "conftest.tmp" "conftest.in"
 6.24856 ++    cp "conftest.in" "conftest.nl"
 6.24857 ++    echo '' >> "conftest.nl"
 6.24858 ++    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
 6.24859 ++    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
 6.24860 ++    ac_count=`expr $ac_count + 1`
 6.24861 ++    if test $ac_count -gt ${ac_path_SED_max-0}; then
 6.24862 ++      # Best one so far, save it but keep looking for a better one
 6.24863 ++      ac_cv_path_SED="$ac_path_SED"
 6.24864 ++      ac_path_SED_max=$ac_count
 6.24865 +     fi
 6.24866 ++    # 10*(2^10) chars as input seems more than enough
 6.24867 ++    test $ac_count -gt 10 && break
 6.24868 ++  done
 6.24869 ++  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 6.24870 ++esac
 6.24871 ++
 6.24872 ++
 6.24873 ++    $ac_path_SED_found && break 3
 6.24874 +   done
 6.24875 + done
 6.24876 + 
 6.24877 ++done
 6.24878 ++IFS=$as_save_IFS
 6.24879 ++
 6.24880 ++
 6.24881 ++fi
 6.24882 ++
 6.24883 ++SED="$ac_cv_path_SED"
 6.24884 ++if test -z "$SED"; then
 6.24885 ++  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in \$PATH" >&5
 6.24886 ++echo "$as_me: error: no acceptable $ac_prog_name could be found in \$PATH" >&2;}
 6.24887 ++   { (exit 1); exit 1; }; }
 6.24888 + fi
 6.24889 + 
 6.24890 +-SED=$lt_cv_path_SED
 6.24891 ++else
 6.24892 ++  ac_cv_path_SED=$SED
 6.24893 ++fi
 6.24894 + 
 6.24895 +-echo "$as_me:$LINENO: result: $SED" >&5
 6.24896 +-echo "${ECHO_T}$SED" >&6
 6.24897 ++fi
 6.24898 ++{ echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5
 6.24899 ++echo "${ECHO_T}$ac_cv_path_SED" >&6; }
 6.24900 ++ SED="$ac_cv_path_SED"
 6.24901 ++  rm -f conftest.sed
 6.24902 + 
 6.24903 + test -z "$SED" && SED=sed
 6.24904 + Xsed="$SED -e 1s/^X//"
 6.24905 +@@ -3146,8 +3844,8 @@
 6.24906 +   if test -n "$ac_tool_prefix"; then
 6.24907 +   # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
 6.24908 + set dummy ${ac_tool_prefix}as; ac_word=$2
 6.24909 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24910 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.24911 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24912 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.24913 + if test "${ac_cv_prog_AS+set}" = set; then
 6.24914 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24915 + else
 6.24916 +@@ -3160,32 +3858,34 @@
 6.24917 +   IFS=$as_save_IFS
 6.24918 +   test -z "$as_dir" && as_dir=.
 6.24919 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.24920 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.24921 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.24922 +     ac_cv_prog_AS="${ac_tool_prefix}as"
 6.24923 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.24924 +     break 2
 6.24925 +   fi
 6.24926 + done
 6.24927 + done
 6.24928 ++IFS=$as_save_IFS
 6.24929 + 
 6.24930 + fi
 6.24931 + fi
 6.24932 + AS=$ac_cv_prog_AS
 6.24933 + if test -n "$AS"; then
 6.24934 +-  echo "$as_me:$LINENO: result: $AS" >&5
 6.24935 +-echo "${ECHO_T}$AS" >&6
 6.24936 ++  { echo "$as_me:$LINENO: result: $AS" >&5
 6.24937 ++echo "${ECHO_T}$AS" >&6; }
 6.24938 + else
 6.24939 +-  echo "$as_me:$LINENO: result: no" >&5
 6.24940 +-echo "${ECHO_T}no" >&6
 6.24941 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.24942 ++echo "${ECHO_T}no" >&6; }
 6.24943 + fi
 6.24944 + 
 6.24945 ++
 6.24946 + fi
 6.24947 + if test -z "$ac_cv_prog_AS"; then
 6.24948 +   ac_ct_AS=$AS
 6.24949 +   # Extract the first word of "as", so it can be a program name with args.
 6.24950 + set dummy as; ac_word=$2
 6.24951 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24952 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.24953 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.24954 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.24955 + if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
 6.24956 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.24957 + else
 6.24958 +@@ -3198,27 +3898,41 @@
 6.24959 +   IFS=$as_save_IFS
 6.24960 +   test -z "$as_dir" && as_dir=.
 6.24961 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.24962 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.24963 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.24964 +     ac_cv_prog_ac_ct_AS="as"
 6.24965 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.24966 +     break 2
 6.24967 +   fi
 6.24968 + done
 6.24969 + done
 6.24970 ++IFS=$as_save_IFS
 6.24971 + 
 6.24972 +-  test -z "$ac_cv_prog_ac_ct_AS" && ac_cv_prog_ac_ct_AS="false"
 6.24973 + fi
 6.24974 + fi
 6.24975 + ac_ct_AS=$ac_cv_prog_ac_ct_AS
 6.24976 + if test -n "$ac_ct_AS"; then
 6.24977 +-  echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
 6.24978 +-echo "${ECHO_T}$ac_ct_AS" >&6
 6.24979 ++  { echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
 6.24980 ++echo "${ECHO_T}$ac_ct_AS" >&6; }
 6.24981 + else
 6.24982 +-  echo "$as_me:$LINENO: result: no" >&5
 6.24983 +-echo "${ECHO_T}no" >&6
 6.24984 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.24985 ++echo "${ECHO_T}no" >&6; }
 6.24986 + fi
 6.24987 + 
 6.24988 +-  AS=$ac_ct_AS
 6.24989 ++  if test "x$ac_ct_AS" = x; then
 6.24990 ++    AS="false"
 6.24991 ++  else
 6.24992 ++    case $cross_compiling:$ac_tool_warned in
 6.24993 ++yes:)
 6.24994 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.24995 ++whose name does not start with the host triplet.  If you think this
 6.24996 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.24997 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.24998 ++whose name does not start with the host triplet.  If you think this
 6.24999 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.25000 ++ac_tool_warned=yes ;;
 6.25001 ++esac
 6.25002 ++    AS=$ac_ct_AS
 6.25003 ++  fi
 6.25004 + else
 6.25005 +   AS="$ac_cv_prog_AS"
 6.25006 + fi
 6.25007 +@@ -3226,8 +3940,8 @@
 6.25008 +   if test -n "$ac_tool_prefix"; then
 6.25009 +   # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
 6.25010 + set dummy ${ac_tool_prefix}dlltool; ac_word=$2
 6.25011 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25012 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.25013 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25014 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.25015 + if test "${ac_cv_prog_DLLTOOL+set}" = set; then
 6.25016 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.25017 + else
 6.25018 +@@ -3240,32 +3954,34 @@
 6.25019 +   IFS=$as_save_IFS
 6.25020 +   test -z "$as_dir" && as_dir=.
 6.25021 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.25022 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.25023 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.25024 +     ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
 6.25025 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.25026 +     break 2
 6.25027 +   fi
 6.25028 + done
 6.25029 + done
 6.25030 ++IFS=$as_save_IFS
 6.25031 + 
 6.25032 + fi
 6.25033 + fi
 6.25034 + DLLTOOL=$ac_cv_prog_DLLTOOL
 6.25035 + if test -n "$DLLTOOL"; then
 6.25036 +-  echo "$as_me:$LINENO: result: $DLLTOOL" >&5
 6.25037 +-echo "${ECHO_T}$DLLTOOL" >&6
 6.25038 ++  { echo "$as_me:$LINENO: result: $DLLTOOL" >&5
 6.25039 ++echo "${ECHO_T}$DLLTOOL" >&6; }
 6.25040 + else
 6.25041 +-  echo "$as_me:$LINENO: result: no" >&5
 6.25042 +-echo "${ECHO_T}no" >&6
 6.25043 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.25044 ++echo "${ECHO_T}no" >&6; }
 6.25045 + fi
 6.25046 + 
 6.25047 ++
 6.25048 + fi
 6.25049 + if test -z "$ac_cv_prog_DLLTOOL"; then
 6.25050 +   ac_ct_DLLTOOL=$DLLTOOL
 6.25051 +   # Extract the first word of "dlltool", so it can be a program name with args.
 6.25052 + set dummy dlltool; ac_word=$2
 6.25053 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25054 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.25055 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25056 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.25057 + if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then
 6.25058 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.25059 + else
 6.25060 +@@ -3278,27 +3994,41 @@
 6.25061 +   IFS=$as_save_IFS
 6.25062 +   test -z "$as_dir" && as_dir=.
 6.25063 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.25064 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.25065 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.25066 +     ac_cv_prog_ac_ct_DLLTOOL="dlltool"
 6.25067 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.25068 +     break 2
 6.25069 +   fi
 6.25070 + done
 6.25071 + done
 6.25072 ++IFS=$as_save_IFS
 6.25073 + 
 6.25074 +-  test -z "$ac_cv_prog_ac_ct_DLLTOOL" && ac_cv_prog_ac_ct_DLLTOOL="false"
 6.25075 + fi
 6.25076 + fi
 6.25077 + ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
 6.25078 + if test -n "$ac_ct_DLLTOOL"; then
 6.25079 +-  echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5
 6.25080 +-echo "${ECHO_T}$ac_ct_DLLTOOL" >&6
 6.25081 ++  { echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5
 6.25082 ++echo "${ECHO_T}$ac_ct_DLLTOOL" >&6; }
 6.25083 + else
 6.25084 +-  echo "$as_me:$LINENO: result: no" >&5
 6.25085 +-echo "${ECHO_T}no" >&6
 6.25086 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.25087 ++echo "${ECHO_T}no" >&6; }
 6.25088 + fi
 6.25089 + 
 6.25090 +-  DLLTOOL=$ac_ct_DLLTOOL
 6.25091 ++  if test "x$ac_ct_DLLTOOL" = x; then
 6.25092 ++    DLLTOOL="false"
 6.25093 ++  else
 6.25094 ++    case $cross_compiling:$ac_tool_warned in
 6.25095 ++yes:)
 6.25096 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.25097 ++whose name does not start with the host triplet.  If you think this
 6.25098 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.25099 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.25100 ++whose name does not start with the host triplet.  If you think this
 6.25101 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.25102 ++ac_tool_warned=yes ;;
 6.25103 ++esac
 6.25104 ++    DLLTOOL=$ac_ct_DLLTOOL
 6.25105 ++  fi
 6.25106 + else
 6.25107 +   DLLTOOL="$ac_cv_prog_DLLTOOL"
 6.25108 + fi
 6.25109 +@@ -3306,8 +4036,8 @@
 6.25110 +   if test -n "$ac_tool_prefix"; then
 6.25111 +   # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
 6.25112 + set dummy ${ac_tool_prefix}objdump; ac_word=$2
 6.25113 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25114 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.25115 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25116 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.25117 + if test "${ac_cv_prog_OBJDUMP+set}" = set; then
 6.25118 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.25119 + else
 6.25120 +@@ -3320,32 +4050,34 @@
 6.25121 +   IFS=$as_save_IFS
 6.25122 +   test -z "$as_dir" && as_dir=.
 6.25123 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.25124 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.25125 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.25126 +     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
 6.25127 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.25128 +     break 2
 6.25129 +   fi
 6.25130 + done
 6.25131 + done
 6.25132 ++IFS=$as_save_IFS
 6.25133 + 
 6.25134 + fi
 6.25135 + fi
 6.25136 + OBJDUMP=$ac_cv_prog_OBJDUMP
 6.25137 + if test -n "$OBJDUMP"; then
 6.25138 +-  echo "$as_me:$LINENO: result: $OBJDUMP" >&5
 6.25139 +-echo "${ECHO_T}$OBJDUMP" >&6
 6.25140 ++  { echo "$as_me:$LINENO: result: $OBJDUMP" >&5
 6.25141 ++echo "${ECHO_T}$OBJDUMP" >&6; }
 6.25142 + else
 6.25143 +-  echo "$as_me:$LINENO: result: no" >&5
 6.25144 +-echo "${ECHO_T}no" >&6
 6.25145 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.25146 ++echo "${ECHO_T}no" >&6; }
 6.25147 + fi
 6.25148 + 
 6.25149 ++
 6.25150 + fi
 6.25151 + if test -z "$ac_cv_prog_OBJDUMP"; then
 6.25152 +   ac_ct_OBJDUMP=$OBJDUMP
 6.25153 +   # Extract the first word of "objdump", so it can be a program name with args.
 6.25154 + set dummy objdump; ac_word=$2
 6.25155 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25156 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.25157 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25158 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.25159 + if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then
 6.25160 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.25161 + else
 6.25162 +@@ -3358,27 +4090,41 @@
 6.25163 +   IFS=$as_save_IFS
 6.25164 +   test -z "$as_dir" && as_dir=.
 6.25165 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.25166 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.25167 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.25168 +     ac_cv_prog_ac_ct_OBJDUMP="objdump"
 6.25169 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.25170 +     break 2
 6.25171 +   fi
 6.25172 + done
 6.25173 + done
 6.25174 ++IFS=$as_save_IFS
 6.25175 + 
 6.25176 +-  test -z "$ac_cv_prog_ac_ct_OBJDUMP" && ac_cv_prog_ac_ct_OBJDUMP="false"
 6.25177 + fi
 6.25178 + fi
 6.25179 + ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
 6.25180 + if test -n "$ac_ct_OBJDUMP"; then
 6.25181 +-  echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
 6.25182 +-echo "${ECHO_T}$ac_ct_OBJDUMP" >&6
 6.25183 ++  { echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
 6.25184 ++echo "${ECHO_T}$ac_ct_OBJDUMP" >&6; }
 6.25185 + else
 6.25186 +-  echo "$as_me:$LINENO: result: no" >&5
 6.25187 +-echo "${ECHO_T}no" >&6
 6.25188 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.25189 ++echo "${ECHO_T}no" >&6; }
 6.25190 + fi
 6.25191 + 
 6.25192 +-  OBJDUMP=$ac_ct_OBJDUMP
 6.25193 ++  if test "x$ac_ct_OBJDUMP" = x; then
 6.25194 ++    OBJDUMP="false"
 6.25195 ++  else
 6.25196 ++    case $cross_compiling:$ac_tool_warned in
 6.25197 ++yes:)
 6.25198 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.25199 ++whose name does not start with the host triplet.  If you think this
 6.25200 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.25201 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.25202 ++whose name does not start with the host triplet.  If you think this
 6.25203 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.25204 ++ac_tool_warned=yes ;;
 6.25205 ++esac
 6.25206 ++    OBJDUMP=$ac_ct_OBJDUMP
 6.25207 ++  fi
 6.25208 + else
 6.25209 +   OBJDUMP="$ac_cv_prog_OBJDUMP"
 6.25210 + fi
 6.25211 +@@ -3439,8 +4185,8 @@
 6.25212 + if test -n "$ac_tool_prefix"; then
 6.25213 +   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 6.25214 + set dummy ${ac_tool_prefix}gcc; ac_word=$2
 6.25215 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25216 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.25217 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25218 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.25219 + if test "${ac_cv_prog_CC+set}" = set; then
 6.25220 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.25221 + else
 6.25222 +@@ -3453,32 +4199,34 @@
 6.25223 +   IFS=$as_save_IFS
 6.25224 +   test -z "$as_dir" && as_dir=.
 6.25225 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.25226 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.25227 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.25228 +     ac_cv_prog_CC="${ac_tool_prefix}gcc"
 6.25229 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.25230 +     break 2
 6.25231 +   fi
 6.25232 + done
 6.25233 + done
 6.25234 ++IFS=$as_save_IFS
 6.25235 + 
 6.25236 + fi
 6.25237 + fi
 6.25238 + CC=$ac_cv_prog_CC
 6.25239 + if test -n "$CC"; then
 6.25240 +-  echo "$as_me:$LINENO: result: $CC" >&5
 6.25241 +-echo "${ECHO_T}$CC" >&6
 6.25242 ++  { echo "$as_me:$LINENO: result: $CC" >&5
 6.25243 ++echo "${ECHO_T}$CC" >&6; }
 6.25244 + else
 6.25245 +-  echo "$as_me:$LINENO: result: no" >&5
 6.25246 +-echo "${ECHO_T}no" >&6
 6.25247 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.25248 ++echo "${ECHO_T}no" >&6; }
 6.25249 + fi
 6.25250 + 
 6.25251 ++
 6.25252 + fi
 6.25253 + if test -z "$ac_cv_prog_CC"; then
 6.25254 +   ac_ct_CC=$CC
 6.25255 +   # Extract the first word of "gcc", so it can be a program name with args.
 6.25256 + set dummy gcc; ac_word=$2
 6.25257 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25258 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.25259 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25260 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.25261 + if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
 6.25262 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.25263 + else
 6.25264 +@@ -3491,36 +4239,51 @@
 6.25265 +   IFS=$as_save_IFS
 6.25266 +   test -z "$as_dir" && as_dir=.
 6.25267 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.25268 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.25269 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.25270 +     ac_cv_prog_ac_ct_CC="gcc"
 6.25271 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.25272 +     break 2
 6.25273 +   fi
 6.25274 + done
 6.25275 + done
 6.25276 ++IFS=$as_save_IFS
 6.25277 + 
 6.25278 + fi
 6.25279 + fi
 6.25280 + ac_ct_CC=$ac_cv_prog_ac_ct_CC
 6.25281 + if test -n "$ac_ct_CC"; then
 6.25282 +-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
 6.25283 +-echo "${ECHO_T}$ac_ct_CC" >&6
 6.25284 ++  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
 6.25285 ++echo "${ECHO_T}$ac_ct_CC" >&6; }
 6.25286 + else
 6.25287 +-  echo "$as_me:$LINENO: result: no" >&5
 6.25288 +-echo "${ECHO_T}no" >&6
 6.25289 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.25290 ++echo "${ECHO_T}no" >&6; }
 6.25291 + fi
 6.25292 + 
 6.25293 +-  CC=$ac_ct_CC
 6.25294 ++  if test "x$ac_ct_CC" = x; then
 6.25295 ++    CC=""
 6.25296 ++  else
 6.25297 ++    case $cross_compiling:$ac_tool_warned in
 6.25298 ++yes:)
 6.25299 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.25300 ++whose name does not start with the host triplet.  If you think this
 6.25301 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.25302 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.25303 ++whose name does not start with the host triplet.  If you think this
 6.25304 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.25305 ++ac_tool_warned=yes ;;
 6.25306 ++esac
 6.25307 ++    CC=$ac_ct_CC
 6.25308 ++  fi
 6.25309 + else
 6.25310 +   CC="$ac_cv_prog_CC"
 6.25311 + fi
 6.25312 + 
 6.25313 + if test -z "$CC"; then
 6.25314 +-  if test -n "$ac_tool_prefix"; then
 6.25315 +-  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 6.25316 ++          if test -n "$ac_tool_prefix"; then
 6.25317 ++    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 6.25318 + set dummy ${ac_tool_prefix}cc; ac_word=$2
 6.25319 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25320 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.25321 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25322 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.25323 + if test "${ac_cv_prog_CC+set}" = set; then
 6.25324 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.25325 + else
 6.25326 +@@ -3533,98 +4296,59 @@
 6.25327 +   IFS=$as_save_IFS
 6.25328 +   test -z "$as_dir" && as_dir=.
 6.25329 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.25330 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.25331 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.25332 +     ac_cv_prog_CC="${ac_tool_prefix}cc"
 6.25333 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.25334 +     break 2
 6.25335 +   fi
 6.25336 + done
 6.25337 + done
 6.25338 ++IFS=$as_save_IFS
 6.25339 + 
 6.25340 + fi
 6.25341 + fi
 6.25342 + CC=$ac_cv_prog_CC
 6.25343 + if test -n "$CC"; then
 6.25344 +-  echo "$as_me:$LINENO: result: $CC" >&5
 6.25345 +-echo "${ECHO_T}$CC" >&6
 6.25346 ++  { echo "$as_me:$LINENO: result: $CC" >&5
 6.25347 ++echo "${ECHO_T}$CC" >&6; }
 6.25348 + else
 6.25349 +-  echo "$as_me:$LINENO: result: no" >&5
 6.25350 +-echo "${ECHO_T}no" >&6
 6.25351 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.25352 ++echo "${ECHO_T}no" >&6; }
 6.25353 + fi
 6.25354 + 
 6.25355 ++
 6.25356 ++  fi
 6.25357 + fi
 6.25358 +-if test -z "$ac_cv_prog_CC"; then
 6.25359 +-  ac_ct_CC=$CC
 6.25360 ++if test -z "$CC"; then
 6.25361 +   # Extract the first word of "cc", so it can be a program name with args.
 6.25362 + set dummy cc; ac_word=$2
 6.25363 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25364 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.25365 +-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
 6.25366 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25367 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.25368 ++if test "${ac_cv_prog_CC+set}" = set; then
 6.25369 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.25370 + else
 6.25371 +-  if test -n "$ac_ct_CC"; then
 6.25372 +-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 6.25373 ++  if test -n "$CC"; then
 6.25374 ++  ac_cv_prog_CC="$CC" # Let the user override the test.
 6.25375 + else
 6.25376 ++  ac_prog_rejected=no
 6.25377 + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.25378 + for as_dir in $PATH
 6.25379 + do
 6.25380 +   IFS=$as_save_IFS
 6.25381 +   test -z "$as_dir" && as_dir=.
 6.25382 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.25383 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.25384 +-    ac_cv_prog_ac_ct_CC="cc"
 6.25385 +-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.25386 +-    break 2
 6.25387 +-  fi
 6.25388 +-done
 6.25389 +-done
 6.25390 +-
 6.25391 +-fi
 6.25392 +-fi
 6.25393 +-ac_ct_CC=$ac_cv_prog_ac_ct_CC
 6.25394 +-if test -n "$ac_ct_CC"; then
 6.25395 +-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
 6.25396 +-echo "${ECHO_T}$ac_ct_CC" >&6
 6.25397 +-else
 6.25398 +-  echo "$as_me:$LINENO: result: no" >&5
 6.25399 +-echo "${ECHO_T}no" >&6
 6.25400 +-fi
 6.25401 +-
 6.25402 +-  CC=$ac_ct_CC
 6.25403 +-else
 6.25404 +-  CC="$ac_cv_prog_CC"
 6.25405 +-fi
 6.25406 +-
 6.25407 +-fi
 6.25408 +-if test -z "$CC"; then
 6.25409 +-  # Extract the first word of "cc", so it can be a program name with args.
 6.25410 +-set dummy cc; ac_word=$2
 6.25411 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25412 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.25413 +-if test "${ac_cv_prog_CC+set}" = set; then
 6.25414 +-  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.25415 +-else
 6.25416 +-  if test -n "$CC"; then
 6.25417 +-  ac_cv_prog_CC="$CC" # Let the user override the test.
 6.25418 +-else
 6.25419 +-  ac_prog_rejected=no
 6.25420 +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.25421 +-for as_dir in $PATH
 6.25422 +-do
 6.25423 +-  IFS=$as_save_IFS
 6.25424 +-  test -z "$as_dir" && as_dir=.
 6.25425 +-  for ac_exec_ext in '' $ac_executable_extensions; do
 6.25426 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.25427 +-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
 6.25428 +-       ac_prog_rejected=yes
 6.25429 +-       continue
 6.25430 +-     fi
 6.25431 +-    ac_cv_prog_CC="cc"
 6.25432 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.25433 ++    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
 6.25434 ++       ac_prog_rejected=yes
 6.25435 ++       continue
 6.25436 ++     fi
 6.25437 ++    ac_cv_prog_CC="cc"
 6.25438 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.25439 +     break 2
 6.25440 +   fi
 6.25441 + done
 6.25442 + done
 6.25443 ++IFS=$as_save_IFS
 6.25444 + 
 6.25445 + if test $ac_prog_rejected = yes; then
 6.25446 +   # We found a bogon in the path, so make sure we never use it.
 6.25447 +@@ -3642,22 +4366,23 @@
 6.25448 + fi
 6.25449 + CC=$ac_cv_prog_CC
 6.25450 + if test -n "$CC"; then
 6.25451 +-  echo "$as_me:$LINENO: result: $CC" >&5
 6.25452 +-echo "${ECHO_T}$CC" >&6
 6.25453 ++  { echo "$as_me:$LINENO: result: $CC" >&5
 6.25454 ++echo "${ECHO_T}$CC" >&6; }
 6.25455 + else
 6.25456 +-  echo "$as_me:$LINENO: result: no" >&5
 6.25457 +-echo "${ECHO_T}no" >&6
 6.25458 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.25459 ++echo "${ECHO_T}no" >&6; }
 6.25460 + fi
 6.25461 + 
 6.25462 ++
 6.25463 + fi
 6.25464 + if test -z "$CC"; then
 6.25465 +   if test -n "$ac_tool_prefix"; then
 6.25466 +-  for ac_prog in cl
 6.25467 ++  for ac_prog in cl.exe
 6.25468 +   do
 6.25469 +     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 6.25470 + set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 6.25471 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25472 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.25473 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25474 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.25475 + if test "${ac_cv_prog_CC+set}" = set; then
 6.25476 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.25477 + else
 6.25478 +@@ -3670,36 +4395,38 @@
 6.25479 +   IFS=$as_save_IFS
 6.25480 +   test -z "$as_dir" && as_dir=.
 6.25481 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.25482 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.25483 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.25484 +     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
 6.25485 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.25486 +     break 2
 6.25487 +   fi
 6.25488 + done
 6.25489 + done
 6.25490 ++IFS=$as_save_IFS
 6.25491 + 
 6.25492 + fi
 6.25493 + fi
 6.25494 + CC=$ac_cv_prog_CC
 6.25495 + if test -n "$CC"; then
 6.25496 +-  echo "$as_me:$LINENO: result: $CC" >&5
 6.25497 +-echo "${ECHO_T}$CC" >&6
 6.25498 ++  { echo "$as_me:$LINENO: result: $CC" >&5
 6.25499 ++echo "${ECHO_T}$CC" >&6; }
 6.25500 + else
 6.25501 +-  echo "$as_me:$LINENO: result: no" >&5
 6.25502 +-echo "${ECHO_T}no" >&6
 6.25503 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.25504 ++echo "${ECHO_T}no" >&6; }
 6.25505 + fi
 6.25506 + 
 6.25507 ++
 6.25508 +     test -n "$CC" && break
 6.25509 +   done
 6.25510 + fi
 6.25511 + if test -z "$CC"; then
 6.25512 +   ac_ct_CC=$CC
 6.25513 +-  for ac_prog in cl
 6.25514 ++  for ac_prog in cl.exe
 6.25515 + do
 6.25516 +   # Extract the first word of "$ac_prog", so it can be a program name with args.
 6.25517 + set dummy $ac_prog; ac_word=$2
 6.25518 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25519 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.25520 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.25521 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.25522 + if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
 6.25523 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.25524 + else
 6.25525 +@@ -3712,29 +4439,45 @@
 6.25526 +   IFS=$as_save_IFS
 6.25527 +   test -z "$as_dir" && as_dir=.
 6.25528 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.25529 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.25530 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.25531 +     ac_cv_prog_ac_ct_CC="$ac_prog"
 6.25532 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.25533 +     break 2
 6.25534 +   fi
 6.25535 + done
 6.25536 + done
 6.25537 ++IFS=$as_save_IFS
 6.25538 + 
 6.25539 + fi
 6.25540 + fi
 6.25541 + ac_ct_CC=$ac_cv_prog_ac_ct_CC
 6.25542 + if test -n "$ac_ct_CC"; then
 6.25543 +-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
 6.25544 +-echo "${ECHO_T}$ac_ct_CC" >&6
 6.25545 ++  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
 6.25546 ++echo "${ECHO_T}$ac_ct_CC" >&6; }
 6.25547 + else
 6.25548 +-  echo "$as_me:$LINENO: result: no" >&5
 6.25549 +-echo "${ECHO_T}no" >&6
 6.25550 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.25551 ++echo "${ECHO_T}no" >&6; }
 6.25552 + fi
 6.25553 + 
 6.25554 ++
 6.25555 +   test -n "$ac_ct_CC" && break
 6.25556 + done
 6.25557 + 
 6.25558 +-  CC=$ac_ct_CC
 6.25559 ++  if test "x$ac_ct_CC" = x; then
 6.25560 ++    CC=""
 6.25561 ++  else
 6.25562 ++    case $cross_compiling:$ac_tool_warned in
 6.25563 ++yes:)
 6.25564 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.25565 ++whose name does not start with the host triplet.  If you think this
 6.25566 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.25567 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.25568 ++whose name does not start with the host triplet.  If you think this
 6.25569 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.25570 ++ac_tool_warned=yes ;;
 6.25571 ++esac
 6.25572 ++    CC=$ac_ct_CC
 6.25573 ++  fi
 6.25574 + fi
 6.25575 + 
 6.25576 + fi
 6.25577 +@@ -3747,21 +4490,35 @@
 6.25578 +    { (exit 1); exit 1; }; }
 6.25579 + 
 6.25580 + # Provide some information about the compiler.
 6.25581 +-echo "$as_me:$LINENO:" \
 6.25582 +-     "checking for C compiler version" >&5
 6.25583 ++echo "$as_me:$LINENO: checking for C compiler version" >&5
 6.25584 + ac_compiler=`set X $ac_compile; echo $2`
 6.25585 +-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
 6.25586 +-  (eval $ac_compiler --version </dev/null >&5) 2>&5
 6.25587 ++{ (ac_try="$ac_compiler --version >&5"
 6.25588 ++case "(($ac_try" in
 6.25589 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.25590 ++  *) ac_try_echo=$ac_try;;
 6.25591 ++esac
 6.25592 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.25593 ++  (eval "$ac_compiler --version >&5") 2>&5
 6.25594 +   ac_status=$?
 6.25595 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.25596 +   (exit $ac_status); }
 6.25597 +-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
 6.25598 +-  (eval $ac_compiler -v </dev/null >&5) 2>&5
 6.25599 ++{ (ac_try="$ac_compiler -v >&5"
 6.25600 ++case "(($ac_try" in
 6.25601 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.25602 ++  *) ac_try_echo=$ac_try;;
 6.25603 ++esac
 6.25604 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.25605 ++  (eval "$ac_compiler -v >&5") 2>&5
 6.25606 +   ac_status=$?
 6.25607 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.25608 +   (exit $ac_status); }
 6.25609 +-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
 6.25610 +-  (eval $ac_compiler -V </dev/null >&5) 2>&5
 6.25611 ++{ (ac_try="$ac_compiler -V >&5"
 6.25612 ++case "(($ac_try" in
 6.25613 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.25614 ++  *) ac_try_echo=$ac_try;;
 6.25615 ++esac
 6.25616 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.25617 ++  (eval "$ac_compiler -V >&5") 2>&5
 6.25618 +   ac_status=$?
 6.25619 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.25620 +   (exit $ac_status); }
 6.25621 +@@ -3786,47 +4543,77 @@
 6.25622 + # Try to create an executable without -o first, disregard a.out.
 6.25623 + # It will help us diagnose broken compilers, and finding out an intuition
 6.25624 + # of exeext.
 6.25625 +-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
 6.25626 +-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
 6.25627 ++{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
 6.25628 ++echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }
 6.25629 + ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
 6.25630 +-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
 6.25631 +-  (eval $ac_link_default) 2>&5
 6.25632 ++#
 6.25633 ++# List of possible output files, starting from the most likely.
 6.25634 ++# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
 6.25635 ++# only as a last resort.  b.out is created by i960 compilers.
 6.25636 ++ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
 6.25637 ++#
 6.25638 ++# The IRIX 6 linker writes into existing files which may not be
 6.25639 ++# executable, retaining their permissions.  Remove them first so a
 6.25640 ++# subsequent execution test works.
 6.25641 ++ac_rmfiles=
 6.25642 ++for ac_file in $ac_files
 6.25643 ++do
 6.25644 ++  case $ac_file in
 6.25645 ++    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
 6.25646 ++    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
 6.25647 ++  esac
 6.25648 ++done
 6.25649 ++rm -f $ac_rmfiles
 6.25650 ++
 6.25651 ++if { (ac_try="$ac_link_default"
 6.25652 ++case "(($ac_try" in
 6.25653 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.25654 ++  *) ac_try_echo=$ac_try;;
 6.25655 ++esac
 6.25656 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.25657 ++  (eval "$ac_link_default") 2>&5
 6.25658 +   ac_status=$?
 6.25659 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.25660 +   (exit $ac_status); }; then
 6.25661 +-  # Find the output, starting from the most likely.  This scheme is
 6.25662 +-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
 6.25663 +-# resort.
 6.25664 +-
 6.25665 +-# Be careful to initialize this variable, since it used to be cached.
 6.25666 +-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
 6.25667 +-ac_cv_exeext=
 6.25668 +-# b.out is created by i960 compilers.
 6.25669 +-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
 6.25670 ++  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
 6.25671 ++# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
 6.25672 ++# in a Makefile.  We should not override ac_cv_exeext if it was cached,
 6.25673 ++# so that the user can short-circuit this test for compilers unknown to
 6.25674 ++# Autoconf.
 6.25675 ++for ac_file in $ac_files ''
 6.25676 + do
 6.25677 +   test -f "$ac_file" || continue
 6.25678 +   case $ac_file in
 6.25679 +-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
 6.25680 +-	;;
 6.25681 +-    conftest.$ac_ext )
 6.25682 +-	# This is the source file.
 6.25683 ++    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
 6.25684 + 	;;
 6.25685 +     [ab].out )
 6.25686 + 	# We found the default executable, but exeext='' is most
 6.25687 + 	# certainly right.
 6.25688 + 	break;;
 6.25689 +     *.* )
 6.25690 +-	ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
 6.25691 +-	# FIXME: I believe we export ac_cv_exeext for Libtool,
 6.25692 +-	# but it would be cool to find out if it's true.  Does anybody
 6.25693 +-	# maintain Libtool? --akim.
 6.25694 +-	export ac_cv_exeext
 6.25695 ++        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
 6.25696 ++	then :; else
 6.25697 ++	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
 6.25698 ++	fi
 6.25699 ++	# We set ac_cv_exeext here because the later test for it is not
 6.25700 ++	# safe: cross compilers may not add the suffix if given an `-o'
 6.25701 ++	# argument, so we may need to know it at that point already.
 6.25702 ++	# Even if this section looks crufty: it has the advantage of
 6.25703 ++	# actually working.
 6.25704 + 	break;;
 6.25705 +     * )
 6.25706 + 	break;;
 6.25707 +   esac
 6.25708 + done
 6.25709 ++test "$ac_cv_exeext" = no && ac_cv_exeext=
 6.25710 ++
 6.25711 + else
 6.25712 ++  ac_file=''
 6.25713 ++fi
 6.25714 ++
 6.25715 ++{ echo "$as_me:$LINENO: result: $ac_file" >&5
 6.25716 ++echo "${ECHO_T}$ac_file" >&6; }
 6.25717 ++if test -z "$ac_file"; then
 6.25718 +   echo "$as_me: failed program was:" >&5
 6.25719 + sed 's/^/| /' conftest.$ac_ext >&5
 6.25720 + 
 6.25721 +@@ -3838,19 +4625,21 @@
 6.25722 + fi
 6.25723 + 
 6.25724 + ac_exeext=$ac_cv_exeext
 6.25725 +-echo "$as_me:$LINENO: result: $ac_file" >&5
 6.25726 +-echo "${ECHO_T}$ac_file" >&6
 6.25727 + 
 6.25728 +-# Check the compiler produces executables we can run.  If not, either
 6.25729 ++# Check that the compiler produces executables we can run.  If not, either
 6.25730 + # the compiler is broken, or we cross compile.
 6.25731 +-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
 6.25732 +-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
 6.25733 ++{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5
 6.25734 ++echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }
 6.25735 + # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
 6.25736 + # If not cross compiling, check that we can run a simple program.
 6.25737 + if test "$cross_compiling" != yes; then
 6.25738 +   if { ac_try='./$ac_file'
 6.25739 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.25740 +-  (eval $ac_try) 2>&5
 6.25741 ++  { (case "(($ac_try" in
 6.25742 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.25743 ++  *) ac_try_echo=$ac_try;;
 6.25744 ++esac
 6.25745 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.25746 ++  (eval "$ac_try") 2>&5
 6.25747 +   ac_status=$?
 6.25748 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.25749 +   (exit $ac_status); }; }; then
 6.25750 +@@ -3869,22 +4658,27 @@
 6.25751 +     fi
 6.25752 +   fi
 6.25753 + fi
 6.25754 +-echo "$as_me:$LINENO: result: yes" >&5
 6.25755 +-echo "${ECHO_T}yes" >&6
 6.25756 ++{ echo "$as_me:$LINENO: result: yes" >&5
 6.25757 ++echo "${ECHO_T}yes" >&6; }
 6.25758 + 
 6.25759 + rm -f a.out a.exe conftest$ac_cv_exeext b.out
 6.25760 + ac_clean_files=$ac_clean_files_save
 6.25761 +-# Check the compiler produces executables we can run.  If not, either
 6.25762 ++# Check that the compiler produces executables we can run.  If not, either
 6.25763 + # the compiler is broken, or we cross compile.
 6.25764 +-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
 6.25765 +-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
 6.25766 +-echo "$as_me:$LINENO: result: $cross_compiling" >&5
 6.25767 +-echo "${ECHO_T}$cross_compiling" >&6
 6.25768 +-
 6.25769 +-echo "$as_me:$LINENO: checking for suffix of executables" >&5
 6.25770 +-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
 6.25771 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.25772 +-  (eval $ac_link) 2>&5
 6.25773 ++{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
 6.25774 ++echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
 6.25775 ++{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
 6.25776 ++echo "${ECHO_T}$cross_compiling" >&6; }
 6.25777 ++
 6.25778 ++{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
 6.25779 ++echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
 6.25780 ++if { (ac_try="$ac_link"
 6.25781 ++case "(($ac_try" in
 6.25782 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.25783 ++  *) ac_try_echo=$ac_try;;
 6.25784 ++esac
 6.25785 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.25786 ++  (eval "$ac_link") 2>&5
 6.25787 +   ac_status=$?
 6.25788 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.25789 +   (exit $ac_status); }; then
 6.25790 +@@ -3895,9 +4689,8 @@
 6.25791 + for ac_file in conftest.exe conftest conftest.*; do
 6.25792 +   test -f "$ac_file" || continue
 6.25793 +   case $ac_file in
 6.25794 +-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
 6.25795 ++    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
 6.25796 +     *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
 6.25797 +-	  export ac_cv_exeext
 6.25798 + 	  break;;
 6.25799 +     * ) break;;
 6.25800 +   esac
 6.25801 +@@ -3911,14 +4704,14 @@
 6.25802 + fi
 6.25803 + 
 6.25804 + rm -f conftest$ac_cv_exeext
 6.25805 +-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
 6.25806 +-echo "${ECHO_T}$ac_cv_exeext" >&6
 6.25807 ++{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
 6.25808 ++echo "${ECHO_T}$ac_cv_exeext" >&6; }
 6.25809 + 
 6.25810 + rm -f conftest.$ac_ext
 6.25811 + EXEEXT=$ac_cv_exeext
 6.25812 + ac_exeext=$EXEEXT
 6.25813 +-echo "$as_me:$LINENO: checking for suffix of object files" >&5
 6.25814 +-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
 6.25815 ++{ echo "$as_me:$LINENO: checking for suffix of object files" >&5
 6.25816 ++echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
 6.25817 + if test "${ac_cv_objext+set}" = set; then
 6.25818 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.25819 + else
 6.25820 +@@ -3938,14 +4731,20 @@
 6.25821 + }
 6.25822 + _ACEOF
 6.25823 + rm -f conftest.o conftest.obj
 6.25824 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.25825 +-  (eval $ac_compile) 2>&5
 6.25826 ++if { (ac_try="$ac_compile"
 6.25827 ++case "(($ac_try" in
 6.25828 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.25829 ++  *) ac_try_echo=$ac_try;;
 6.25830 ++esac
 6.25831 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.25832 ++  (eval "$ac_compile") 2>&5
 6.25833 +   ac_status=$?
 6.25834 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.25835 +   (exit $ac_status); }; then
 6.25836 +-  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
 6.25837 ++  for ac_file in conftest.o conftest.obj conftest.*; do
 6.25838 ++  test -f "$ac_file" || continue;
 6.25839 +   case $ac_file in
 6.25840 +-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
 6.25841 ++    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
 6.25842 +     *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
 6.25843 +        break;;
 6.25844 +   esac
 6.25845 +@@ -3963,12 +4762,12 @@
 6.25846 + 
 6.25847 + rm -f conftest.$ac_cv_objext conftest.$ac_ext
 6.25848 + fi
 6.25849 +-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
 6.25850 +-echo "${ECHO_T}$ac_cv_objext" >&6
 6.25851 ++{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
 6.25852 ++echo "${ECHO_T}$ac_cv_objext" >&6; }
 6.25853 + OBJEXT=$ac_cv_objext
 6.25854 + ac_objext=$OBJEXT
 6.25855 +-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
 6.25856 +-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
 6.25857 ++{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
 6.25858 ++echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
 6.25859 + if test "${ac_cv_c_compiler_gnu+set}" = set; then
 6.25860 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.25861 + else
 6.25862 +@@ -3991,50 +4790,49 @@
 6.25863 + }
 6.25864 + _ACEOF
 6.25865 + rm -f conftest.$ac_objext
 6.25866 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.25867 +-  (eval $ac_compile) 2>conftest.er1
 6.25868 ++if { (ac_try="$ac_compile"
 6.25869 ++case "(($ac_try" in
 6.25870 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.25871 ++  *) ac_try_echo=$ac_try;;
 6.25872 ++esac
 6.25873 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.25874 ++  (eval "$ac_compile") 2>conftest.er1
 6.25875 +   ac_status=$?
 6.25876 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.25877 +   rm -f conftest.er1
 6.25878 +   cat conftest.err >&5
 6.25879 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.25880 +-  (exit $ac_status); } &&
 6.25881 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.25882 +-			 || test ! -s conftest.err'
 6.25883 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.25884 +-  (eval $ac_try) 2>&5
 6.25885 +-  ac_status=$?
 6.25886 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.25887 +-  (exit $ac_status); }; } &&
 6.25888 +-	 { ac_try='test -s conftest.$ac_objext'
 6.25889 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.25890 +-  (eval $ac_try) 2>&5
 6.25891 +-  ac_status=$?
 6.25892 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.25893 +-  (exit $ac_status); }; }; then
 6.25894 ++  (exit $ac_status); } && {
 6.25895 ++	 test -z "$ac_c_werror_flag" ||
 6.25896 ++	 test ! -s conftest.err
 6.25897 ++       } && test -s conftest.$ac_objext; then
 6.25898 +   ac_compiler_gnu=yes
 6.25899 + else
 6.25900 +   echo "$as_me: failed program was:" >&5
 6.25901 + sed 's/^/| /' conftest.$ac_ext >&5
 6.25902 + 
 6.25903 +-ac_compiler_gnu=no
 6.25904 ++	ac_compiler_gnu=no
 6.25905 + fi
 6.25906 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 6.25907 ++
 6.25908 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 6.25909 + ac_cv_c_compiler_gnu=$ac_compiler_gnu
 6.25910 + 
 6.25911 + fi
 6.25912 +-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
 6.25913 +-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
 6.25914 ++{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
 6.25915 ++echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
 6.25916 + GCC=`test $ac_compiler_gnu = yes && echo yes`
 6.25917 + ac_test_CFLAGS=${CFLAGS+set}
 6.25918 + ac_save_CFLAGS=$CFLAGS
 6.25919 +-CFLAGS="-g"
 6.25920 +-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
 6.25921 +-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
 6.25922 ++{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
 6.25923 ++echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
 6.25924 + if test "${ac_cv_prog_cc_g+set}" = set; then
 6.25925 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.25926 + else
 6.25927 +-  cat >conftest.$ac_ext <<_ACEOF
 6.25928 ++  ac_save_c_werror_flag=$ac_c_werror_flag
 6.25929 ++   ac_c_werror_flag=yes
 6.25930 ++   ac_cv_prog_cc_g=no
 6.25931 ++   CFLAGS="-g"
 6.25932 ++   cat >conftest.$ac_ext <<_ACEOF
 6.25933 + /* confdefs.h.  */
 6.25934 + _ACEOF
 6.25935 + cat confdefs.h >>conftest.$ac_ext
 6.25936 +@@ -4050,38 +4848,118 @@
 6.25937 + }
 6.25938 + _ACEOF
 6.25939 + rm -f conftest.$ac_objext
 6.25940 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.25941 +-  (eval $ac_compile) 2>conftest.er1
 6.25942 ++if { (ac_try="$ac_compile"
 6.25943 ++case "(($ac_try" in
 6.25944 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.25945 ++  *) ac_try_echo=$ac_try;;
 6.25946 ++esac
 6.25947 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.25948 ++  (eval "$ac_compile") 2>conftest.er1
 6.25949 +   ac_status=$?
 6.25950 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.25951 +   rm -f conftest.er1
 6.25952 +   cat conftest.err >&5
 6.25953 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.25954 +-  (exit $ac_status); } &&
 6.25955 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.25956 +-			 || test ! -s conftest.err'
 6.25957 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.25958 +-  (eval $ac_try) 2>&5
 6.25959 ++  (exit $ac_status); } && {
 6.25960 ++	 test -z "$ac_c_werror_flag" ||
 6.25961 ++	 test ! -s conftest.err
 6.25962 ++       } && test -s conftest.$ac_objext; then
 6.25963 ++  ac_cv_prog_cc_g=yes
 6.25964 ++else
 6.25965 ++  echo "$as_me: failed program was:" >&5
 6.25966 ++sed 's/^/| /' conftest.$ac_ext >&5
 6.25967 ++
 6.25968 ++	CFLAGS=""
 6.25969 ++      cat >conftest.$ac_ext <<_ACEOF
 6.25970 ++/* confdefs.h.  */
 6.25971 ++_ACEOF
 6.25972 ++cat confdefs.h >>conftest.$ac_ext
 6.25973 ++cat >>conftest.$ac_ext <<_ACEOF
 6.25974 ++/* end confdefs.h.  */
 6.25975 ++
 6.25976 ++int
 6.25977 ++main ()
 6.25978 ++{
 6.25979 ++
 6.25980 ++  ;
 6.25981 ++  return 0;
 6.25982 ++}
 6.25983 ++_ACEOF
 6.25984 ++rm -f conftest.$ac_objext
 6.25985 ++if { (ac_try="$ac_compile"
 6.25986 ++case "(($ac_try" in
 6.25987 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.25988 ++  *) ac_try_echo=$ac_try;;
 6.25989 ++esac
 6.25990 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.25991 ++  (eval "$ac_compile") 2>conftest.er1
 6.25992 +   ac_status=$?
 6.25993 ++  grep -v '^ *+' conftest.er1 >conftest.err
 6.25994 ++  rm -f conftest.er1
 6.25995 ++  cat conftest.err >&5
 6.25996 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.25997 +-  (exit $ac_status); }; } &&
 6.25998 +-	 { ac_try='test -s conftest.$ac_objext'
 6.25999 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.26000 +-  (eval $ac_try) 2>&5
 6.26001 ++  (exit $ac_status); } && {
 6.26002 ++	 test -z "$ac_c_werror_flag" ||
 6.26003 ++	 test ! -s conftest.err
 6.26004 ++       } && test -s conftest.$ac_objext; then
 6.26005 ++  :
 6.26006 ++else
 6.26007 ++  echo "$as_me: failed program was:" >&5
 6.26008 ++sed 's/^/| /' conftest.$ac_ext >&5
 6.26009 ++
 6.26010 ++	ac_c_werror_flag=$ac_save_c_werror_flag
 6.26011 ++	 CFLAGS="-g"
 6.26012 ++	 cat >conftest.$ac_ext <<_ACEOF
 6.26013 ++/* confdefs.h.  */
 6.26014 ++_ACEOF
 6.26015 ++cat confdefs.h >>conftest.$ac_ext
 6.26016 ++cat >>conftest.$ac_ext <<_ACEOF
 6.26017 ++/* end confdefs.h.  */
 6.26018 ++
 6.26019 ++int
 6.26020 ++main ()
 6.26021 ++{
 6.26022 ++
 6.26023 ++  ;
 6.26024 ++  return 0;
 6.26025 ++}
 6.26026 ++_ACEOF
 6.26027 ++rm -f conftest.$ac_objext
 6.26028 ++if { (ac_try="$ac_compile"
 6.26029 ++case "(($ac_try" in
 6.26030 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.26031 ++  *) ac_try_echo=$ac_try;;
 6.26032 ++esac
 6.26033 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.26034 ++  (eval "$ac_compile") 2>conftest.er1
 6.26035 +   ac_status=$?
 6.26036 ++  grep -v '^ *+' conftest.er1 >conftest.err
 6.26037 ++  rm -f conftest.er1
 6.26038 ++  cat conftest.err >&5
 6.26039 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.26040 +-  (exit $ac_status); }; }; then
 6.26041 ++  (exit $ac_status); } && {
 6.26042 ++	 test -z "$ac_c_werror_flag" ||
 6.26043 ++	 test ! -s conftest.err
 6.26044 ++       } && test -s conftest.$ac_objext; then
 6.26045 +   ac_cv_prog_cc_g=yes
 6.26046 + else
 6.26047 +   echo "$as_me: failed program was:" >&5
 6.26048 + sed 's/^/| /' conftest.$ac_ext >&5
 6.26049 + 
 6.26050 +-ac_cv_prog_cc_g=no
 6.26051 ++
 6.26052 ++fi
 6.26053 ++
 6.26054 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 6.26055 + fi
 6.26056 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 6.26057 ++
 6.26058 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 6.26059 ++fi
 6.26060 ++
 6.26061 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 6.26062 ++   ac_c_werror_flag=$ac_save_c_werror_flag
 6.26063 + fi
 6.26064 +-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
 6.26065 +-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
 6.26066 ++{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
 6.26067 ++echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
 6.26068 + if test "$ac_test_CFLAGS" = set; then
 6.26069 +   CFLAGS=$ac_save_CFLAGS
 6.26070 + elif test $ac_cv_prog_cc_g = yes; then
 6.26071 +@@ -4097,12 +4975,12 @@
 6.26072 +     CFLAGS=
 6.26073 +   fi
 6.26074 + fi
 6.26075 +-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
 6.26076 +-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
 6.26077 +-if test "${ac_cv_prog_cc_stdc+set}" = set; then
 6.26078 ++{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
 6.26079 ++echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
 6.26080 ++if test "${ac_cv_prog_cc_c89+set}" = set; then
 6.26081 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26082 + else
 6.26083 +-  ac_cv_prog_cc_stdc=no
 6.26084 ++  ac_cv_prog_cc_c89=no
 6.26085 + ac_save_CC=$CC
 6.26086 + cat >conftest.$ac_ext <<_ACEOF
 6.26087 + /* confdefs.h.  */
 6.26088 +@@ -4136,12 +5014,17 @@
 6.26089 + /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
 6.26090 +    function prototypes and stuff, but not '\xHH' hex character constants.
 6.26091 +    These don't provoke an error unfortunately, instead are silently treated
 6.26092 +-   as 'x'.  The following induces an error, until -std1 is added to get
 6.26093 ++   as 'x'.  The following induces an error, until -std is added to get
 6.26094 +    proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
 6.26095 +    array size at least.  It's necessary to write '\x00'==0 to get something
 6.26096 +-   that's true only with -std1.  */
 6.26097 ++   that's true only with -std.  */
 6.26098 + int osf4_cc_array ['\x00' == 0 ? 1 : -1];
 6.26099 + 
 6.26100 ++/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
 6.26101 ++   inside strings and character constants.  */
 6.26102 ++#define FOO(x) 'x'
 6.26103 ++int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
 6.26104 ++
 6.26105 + int test (int i, double x);
 6.26106 + struct s1 {int (*f) (int a);};
 6.26107 + struct s2 {int (*f) (double a);};
 6.26108 +@@ -4156,205 +5039,57 @@
 6.26109 +   return 0;
 6.26110 + }
 6.26111 + _ACEOF
 6.26112 +-# Don't try gcc -ansi; that turns off useful extensions and
 6.26113 +-# breaks some systems' header files.
 6.26114 +-# AIX			-qlanglvl=ansi
 6.26115 +-# Ultrix and OSF/1	-std1
 6.26116 +-# HP-UX 10.20 and later	-Ae
 6.26117 +-# HP-UX older versions	-Aa -D_HPUX_SOURCE
 6.26118 +-# SVR4			-Xc -D__EXTENSIONS__
 6.26119 +-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 6.26120 ++for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
 6.26121 ++	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 6.26122 + do
 6.26123 +   CC="$ac_save_CC $ac_arg"
 6.26124 +   rm -f conftest.$ac_objext
 6.26125 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.26126 +-  (eval $ac_compile) 2>conftest.er1
 6.26127 ++if { (ac_try="$ac_compile"
 6.26128 ++case "(($ac_try" in
 6.26129 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.26130 ++  *) ac_try_echo=$ac_try;;
 6.26131 ++esac
 6.26132 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.26133 ++  (eval "$ac_compile") 2>conftest.er1
 6.26134 +   ac_status=$?
 6.26135 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.26136 +   rm -f conftest.er1
 6.26137 +   cat conftest.err >&5
 6.26138 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.26139 +-  (exit $ac_status); } &&
 6.26140 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.26141 +-			 || test ! -s conftest.err'
 6.26142 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.26143 +-  (eval $ac_try) 2>&5
 6.26144 +-  ac_status=$?
 6.26145 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.26146 +-  (exit $ac_status); }; } &&
 6.26147 +-	 { ac_try='test -s conftest.$ac_objext'
 6.26148 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.26149 +-  (eval $ac_try) 2>&5
 6.26150 +-  ac_status=$?
 6.26151 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.26152 +-  (exit $ac_status); }; }; then
 6.26153 +-  ac_cv_prog_cc_stdc=$ac_arg
 6.26154 +-break
 6.26155 ++  (exit $ac_status); } && {
 6.26156 ++	 test -z "$ac_c_werror_flag" ||
 6.26157 ++	 test ! -s conftest.err
 6.26158 ++       } && test -s conftest.$ac_objext; then
 6.26159 ++  ac_cv_prog_cc_c89=$ac_arg
 6.26160 + else
 6.26161 +   echo "$as_me: failed program was:" >&5
 6.26162 + sed 's/^/| /' conftest.$ac_ext >&5
 6.26163 + 
 6.26164 ++
 6.26165 + fi
 6.26166 +-rm -f conftest.err conftest.$ac_objext
 6.26167 ++
 6.26168 ++rm -f core conftest.err conftest.$ac_objext
 6.26169 ++  test "x$ac_cv_prog_cc_c89" != "xno" && break
 6.26170 + done
 6.26171 +-rm -f conftest.$ac_ext conftest.$ac_objext
 6.26172 ++rm -f conftest.$ac_ext
 6.26173 + CC=$ac_save_CC
 6.26174 + 
 6.26175 + fi
 6.26176 +-
 6.26177 +-case "x$ac_cv_prog_cc_stdc" in
 6.26178 +-  x|xno)
 6.26179 +-    echo "$as_me:$LINENO: result: none needed" >&5
 6.26180 +-echo "${ECHO_T}none needed" >&6 ;;
 6.26181 ++# AC_CACHE_VAL
 6.26182 ++case "x$ac_cv_prog_cc_c89" in
 6.26183 ++  x)
 6.26184 ++    { echo "$as_me:$LINENO: result: none needed" >&5
 6.26185 ++echo "${ECHO_T}none needed" >&6; } ;;
 6.26186 ++  xno)
 6.26187 ++    { echo "$as_me:$LINENO: result: unsupported" >&5
 6.26188 ++echo "${ECHO_T}unsupported" >&6; } ;;
 6.26189 +   *)
 6.26190 +-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
 6.26191 +-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
 6.26192 +-    CC="$CC $ac_cv_prog_cc_stdc" ;;
 6.26193 ++    CC="$CC $ac_cv_prog_cc_c89"
 6.26194 ++    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
 6.26195 ++echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
 6.26196 + esac
 6.26197 + 
 6.26198 +-# Some people use a C++ compiler to compile C.  Since we use `exit',
 6.26199 +-# in C++ we need to declare it.  In case someone uses the same compiler
 6.26200 +-# for both compiling C and C++ we need to have the C++ compiler decide
 6.26201 +-# the declaration of exit, since it's the most demanding environment.
 6.26202 +-cat >conftest.$ac_ext <<_ACEOF
 6.26203 +-#ifndef __cplusplus
 6.26204 +-  choke me
 6.26205 +-#endif
 6.26206 +-_ACEOF
 6.26207 +-rm -f conftest.$ac_objext
 6.26208 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.26209 +-  (eval $ac_compile) 2>conftest.er1
 6.26210 +-  ac_status=$?
 6.26211 +-  grep -v '^ *+' conftest.er1 >conftest.err
 6.26212 +-  rm -f conftest.er1
 6.26213 +-  cat conftest.err >&5
 6.26214 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.26215 +-  (exit $ac_status); } &&
 6.26216 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.26217 +-			 || test ! -s conftest.err'
 6.26218 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.26219 +-  (eval $ac_try) 2>&5
 6.26220 +-  ac_status=$?
 6.26221 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.26222 +-  (exit $ac_status); }; } &&
 6.26223 +-	 { ac_try='test -s conftest.$ac_objext'
 6.26224 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.26225 +-  (eval $ac_try) 2>&5
 6.26226 +-  ac_status=$?
 6.26227 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.26228 +-  (exit $ac_status); }; }; then
 6.26229 +-  for ac_declaration in \
 6.26230 +-   '' \
 6.26231 +-   'extern "C" void std::exit (int) throw (); using std::exit;' \
 6.26232 +-   'extern "C" void std::exit (int); using std::exit;' \
 6.26233 +-   'extern "C" void exit (int) throw ();' \
 6.26234 +-   'extern "C" void exit (int);' \
 6.26235 +-   'void exit (int);'
 6.26236 +-do
 6.26237 +-  cat >conftest.$ac_ext <<_ACEOF
 6.26238 +-/* confdefs.h.  */
 6.26239 +-_ACEOF
 6.26240 +-cat confdefs.h >>conftest.$ac_ext
 6.26241 +-cat >>conftest.$ac_ext <<_ACEOF
 6.26242 +-/* end confdefs.h.  */
 6.26243 +-$ac_declaration
 6.26244 +-#include <stdlib.h>
 6.26245 +-int
 6.26246 +-main ()
 6.26247 +-{
 6.26248 +-exit (42);
 6.26249 +-  ;
 6.26250 +-  return 0;
 6.26251 +-}
 6.26252 +-_ACEOF
 6.26253 +-rm -f conftest.$ac_objext
 6.26254 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.26255 +-  (eval $ac_compile) 2>conftest.er1
 6.26256 +-  ac_status=$?
 6.26257 +-  grep -v '^ *+' conftest.er1 >conftest.err
 6.26258 +-  rm -f conftest.er1
 6.26259 +-  cat conftest.err >&5
 6.26260 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.26261 +-  (exit $ac_status); } &&
 6.26262 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.26263 +-			 || test ! -s conftest.err'
 6.26264 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.26265 +-  (eval $ac_try) 2>&5
 6.26266 +-  ac_status=$?
 6.26267 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.26268 +-  (exit $ac_status); }; } &&
 6.26269 +-	 { ac_try='test -s conftest.$ac_objext'
 6.26270 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.26271 +-  (eval $ac_try) 2>&5
 6.26272 +-  ac_status=$?
 6.26273 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.26274 +-  (exit $ac_status); }; }; then
 6.26275 +-  :
 6.26276 +-else
 6.26277 +-  echo "$as_me: failed program was:" >&5
 6.26278 +-sed 's/^/| /' conftest.$ac_ext >&5
 6.26279 +-
 6.26280 +-continue
 6.26281 +-fi
 6.26282 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 6.26283 +-  cat >conftest.$ac_ext <<_ACEOF
 6.26284 +-/* confdefs.h.  */
 6.26285 +-_ACEOF
 6.26286 +-cat confdefs.h >>conftest.$ac_ext
 6.26287 +-cat >>conftest.$ac_ext <<_ACEOF
 6.26288 +-/* end confdefs.h.  */
 6.26289 +-$ac_declaration
 6.26290 +-int
 6.26291 +-main ()
 6.26292 +-{
 6.26293 +-exit (42);
 6.26294 +-  ;
 6.26295 +-  return 0;
 6.26296 +-}
 6.26297 +-_ACEOF
 6.26298 +-rm -f conftest.$ac_objext
 6.26299 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.26300 +-  (eval $ac_compile) 2>conftest.er1
 6.26301 +-  ac_status=$?
 6.26302 +-  grep -v '^ *+' conftest.er1 >conftest.err
 6.26303 +-  rm -f conftest.er1
 6.26304 +-  cat conftest.err >&5
 6.26305 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.26306 +-  (exit $ac_status); } &&
 6.26307 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.26308 +-			 || test ! -s conftest.err'
 6.26309 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.26310 +-  (eval $ac_try) 2>&5
 6.26311 +-  ac_status=$?
 6.26312 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.26313 +-  (exit $ac_status); }; } &&
 6.26314 +-	 { ac_try='test -s conftest.$ac_objext'
 6.26315 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.26316 +-  (eval $ac_try) 2>&5
 6.26317 +-  ac_status=$?
 6.26318 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.26319 +-  (exit $ac_status); }; }; then
 6.26320 +-  break
 6.26321 +-else
 6.26322 +-  echo "$as_me: failed program was:" >&5
 6.26323 +-sed 's/^/| /' conftest.$ac_ext >&5
 6.26324 +-
 6.26325 +-fi
 6.26326 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 6.26327 +-done
 6.26328 +-rm -f conftest*
 6.26329 +-if test -n "$ac_declaration"; then
 6.26330 +-  echo '#ifdef __cplusplus' >>confdefs.h
 6.26331 +-  echo $ac_declaration      >>confdefs.h
 6.26332 +-  echo '#endif'             >>confdefs.h
 6.26333 +-fi
 6.26334 + 
 6.26335 +-else
 6.26336 +-  echo "$as_me: failed program was:" >&5
 6.26337 +-sed 's/^/| /' conftest.$ac_ext >&5
 6.26338 +-
 6.26339 +-fi
 6.26340 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 6.26341 + ac_ext=c
 6.26342 + ac_cpp='$CPP $CPPFLAGS'
 6.26343 + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 6.26344 +@@ -4363,8 +5098,8 @@
 6.26345 + 
 6.26346 + depcc="$CC"   am_compiler_list=
 6.26347 + 
 6.26348 +-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
 6.26349 +-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
 6.26350 ++{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
 6.26351 ++echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
 6.26352 + if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
 6.26353 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26354 + else
 6.26355 +@@ -4446,58 +5181,273 @@
 6.26356 +     fi
 6.26357 +   done
 6.26358 + 
 6.26359 +-  cd ..
 6.26360 +-  rm -rf conftest.dir
 6.26361 +-else
 6.26362 +-  am_cv_CC_dependencies_compiler_type=none
 6.26363 ++  cd ..
 6.26364 ++  rm -rf conftest.dir
 6.26365 ++else
 6.26366 ++  am_cv_CC_dependencies_compiler_type=none
 6.26367 ++fi
 6.26368 ++
 6.26369 ++fi
 6.26370 ++{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
 6.26371 ++echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
 6.26372 ++CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 6.26373 ++
 6.26374 ++
 6.26375 ++
 6.26376 ++if
 6.26377 ++  test "x$enable_dependency_tracking" != xno \
 6.26378 ++  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
 6.26379 ++  am__fastdepCC_TRUE=
 6.26380 ++  am__fastdepCC_FALSE='#'
 6.26381 ++else
 6.26382 ++  am__fastdepCC_TRUE='#'
 6.26383 ++  am__fastdepCC_FALSE=
 6.26384 ++fi
 6.26385 ++
 6.26386 ++
 6.26387 ++{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
 6.26388 ++echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
 6.26389 ++if test "${ac_cv_path_GREP+set}" = set; then
 6.26390 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26391 ++else
 6.26392 ++  # Extract the first word of "grep ggrep" to use in msg output
 6.26393 ++if test -z "$GREP"; then
 6.26394 ++set dummy grep ggrep; ac_prog_name=$2
 6.26395 ++if test "${ac_cv_path_GREP+set}" = set; then
 6.26396 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26397 ++else
 6.26398 ++  ac_path_GREP_found=false
 6.26399 ++# Loop through the user's path and test for each of PROGNAME-LIST
 6.26400 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.26401 ++for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 6.26402 ++do
 6.26403 ++  IFS=$as_save_IFS
 6.26404 ++  test -z "$as_dir" && as_dir=.
 6.26405 ++  for ac_prog in grep ggrep; do
 6.26406 ++  for ac_exec_ext in '' $ac_executable_extensions; do
 6.26407 ++    ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
 6.26408 ++    { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
 6.26409 ++    # Check for GNU ac_path_GREP and select it if it is found.
 6.26410 ++  # Check for GNU $ac_path_GREP
 6.26411 ++case `"$ac_path_GREP" --version 2>&1` in
 6.26412 ++*GNU*)
 6.26413 ++  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
 6.26414 ++*)
 6.26415 ++  ac_count=0
 6.26416 ++  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
 6.26417 ++  while :
 6.26418 ++  do
 6.26419 ++    cat "conftest.in" "conftest.in" >"conftest.tmp"
 6.26420 ++    mv "conftest.tmp" "conftest.in"
 6.26421 ++    cp "conftest.in" "conftest.nl"
 6.26422 ++    echo 'GREP' >> "conftest.nl"
 6.26423 ++    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
 6.26424 ++    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
 6.26425 ++    ac_count=`expr $ac_count + 1`
 6.26426 ++    if test $ac_count -gt ${ac_path_GREP_max-0}; then
 6.26427 ++      # Best one so far, save it but keep looking for a better one
 6.26428 ++      ac_cv_path_GREP="$ac_path_GREP"
 6.26429 ++      ac_path_GREP_max=$ac_count
 6.26430 ++    fi
 6.26431 ++    # 10*(2^10) chars as input seems more than enough
 6.26432 ++    test $ac_count -gt 10 && break
 6.26433 ++  done
 6.26434 ++  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 6.26435 ++esac
 6.26436 ++
 6.26437 ++
 6.26438 ++    $ac_path_GREP_found && break 3
 6.26439 ++  done
 6.26440 ++done
 6.26441 ++
 6.26442 ++done
 6.26443 ++IFS=$as_save_IFS
 6.26444 ++
 6.26445 ++
 6.26446 ++fi
 6.26447 ++
 6.26448 ++GREP="$ac_cv_path_GREP"
 6.26449 ++if test -z "$GREP"; then
 6.26450 ++  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
 6.26451 ++echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
 6.26452 ++   { (exit 1); exit 1; }; }
 6.26453 ++fi
 6.26454 ++
 6.26455 ++else
 6.26456 ++  ac_cv_path_GREP=$GREP
 6.26457 ++fi
 6.26458 ++
 6.26459 ++
 6.26460 ++fi
 6.26461 ++{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
 6.26462 ++echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
 6.26463 ++ GREP="$ac_cv_path_GREP"
 6.26464 ++
 6.26465 ++
 6.26466 ++{ echo "$as_me:$LINENO: checking for egrep" >&5
 6.26467 ++echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
 6.26468 ++if test "${ac_cv_path_EGREP+set}" = set; then
 6.26469 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26470 ++else
 6.26471 ++  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
 6.26472 ++   then ac_cv_path_EGREP="$GREP -E"
 6.26473 ++   else
 6.26474 ++     # Extract the first word of "egrep" to use in msg output
 6.26475 ++if test -z "$EGREP"; then
 6.26476 ++set dummy egrep; ac_prog_name=$2
 6.26477 ++if test "${ac_cv_path_EGREP+set}" = set; then
 6.26478 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26479 ++else
 6.26480 ++  ac_path_EGREP_found=false
 6.26481 ++# Loop through the user's path and test for each of PROGNAME-LIST
 6.26482 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.26483 ++for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 6.26484 ++do
 6.26485 ++  IFS=$as_save_IFS
 6.26486 ++  test -z "$as_dir" && as_dir=.
 6.26487 ++  for ac_prog in egrep; do
 6.26488 ++  for ac_exec_ext in '' $ac_executable_extensions; do
 6.26489 ++    ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
 6.26490 ++    { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
 6.26491 ++    # Check for GNU ac_path_EGREP and select it if it is found.
 6.26492 ++  # Check for GNU $ac_path_EGREP
 6.26493 ++case `"$ac_path_EGREP" --version 2>&1` in
 6.26494 ++*GNU*)
 6.26495 ++  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
 6.26496 ++*)
 6.26497 ++  ac_count=0
 6.26498 ++  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
 6.26499 ++  while :
 6.26500 ++  do
 6.26501 ++    cat "conftest.in" "conftest.in" >"conftest.tmp"
 6.26502 ++    mv "conftest.tmp" "conftest.in"
 6.26503 ++    cp "conftest.in" "conftest.nl"
 6.26504 ++    echo 'EGREP' >> "conftest.nl"
 6.26505 ++    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
 6.26506 ++    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
 6.26507 ++    ac_count=`expr $ac_count + 1`
 6.26508 ++    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
 6.26509 ++      # Best one so far, save it but keep looking for a better one
 6.26510 ++      ac_cv_path_EGREP="$ac_path_EGREP"
 6.26511 ++      ac_path_EGREP_max=$ac_count
 6.26512 ++    fi
 6.26513 ++    # 10*(2^10) chars as input seems more than enough
 6.26514 ++    test $ac_count -gt 10 && break
 6.26515 ++  done
 6.26516 ++  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 6.26517 ++esac
 6.26518 ++
 6.26519 ++
 6.26520 ++    $ac_path_EGREP_found && break 3
 6.26521 ++  done
 6.26522 ++done
 6.26523 ++
 6.26524 ++done
 6.26525 ++IFS=$as_save_IFS
 6.26526 ++
 6.26527 ++
 6.26528 + fi
 6.26529 + 
 6.26530 ++EGREP="$ac_cv_path_EGREP"
 6.26531 ++if test -z "$EGREP"; then
 6.26532 ++  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
 6.26533 ++echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
 6.26534 ++   { (exit 1); exit 1; }; }
 6.26535 + fi
 6.26536 +-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
 6.26537 +-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
 6.26538 +-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 6.26539 + 
 6.26540 ++else
 6.26541 ++  ac_cv_path_EGREP=$EGREP
 6.26542 ++fi
 6.26543 + 
 6.26544 + 
 6.26545 +-if
 6.26546 +-  test "x$enable_dependency_tracking" != xno \
 6.26547 +-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
 6.26548 +-  am__fastdepCC_TRUE=
 6.26549 +-  am__fastdepCC_FALSE='#'
 6.26550 +-else
 6.26551 +-  am__fastdepCC_TRUE='#'
 6.26552 +-  am__fastdepCC_FALSE=
 6.26553 ++   fi
 6.26554 + fi
 6.26555 ++{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
 6.26556 ++echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
 6.26557 ++ EGREP="$ac_cv_path_EGREP"
 6.26558 + 
 6.26559 + 
 6.26560 +-echo "$as_me:$LINENO: checking for egrep" >&5
 6.26561 +-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
 6.26562 +-if test "${ac_cv_prog_egrep+set}" = set; then
 6.26563 ++{ echo "$as_me:$LINENO: checking for fgrep" >&5
 6.26564 ++echo $ECHO_N "checking for fgrep... $ECHO_C" >&6; }
 6.26565 ++if test "${ac_cv_path_FGREP+set}" = set; then
 6.26566 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26567 ++else
 6.26568 ++  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
 6.26569 ++   then ac_cv_path_FGREP="$GREP -F"
 6.26570 ++   else
 6.26571 ++     # Extract the first word of "fgrep" to use in msg output
 6.26572 ++if test -z "$FGREP"; then
 6.26573 ++set dummy fgrep; ac_prog_name=$2
 6.26574 ++if test "${ac_cv_path_FGREP+set}" = set; then
 6.26575 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26576 + else
 6.26577 +-  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
 6.26578 +-    then ac_cv_prog_egrep='grep -E'
 6.26579 +-    else ac_cv_prog_egrep='egrep'
 6.26580 ++  ac_path_FGREP_found=false
 6.26581 ++# Loop through the user's path and test for each of PROGNAME-LIST
 6.26582 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.26583 ++for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 6.26584 ++do
 6.26585 ++  IFS=$as_save_IFS
 6.26586 ++  test -z "$as_dir" && as_dir=.
 6.26587 ++  for ac_prog in fgrep; do
 6.26588 ++  for ac_exec_ext in '' $ac_executable_extensions; do
 6.26589 ++    ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
 6.26590 ++    { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
 6.26591 ++    # Check for GNU ac_path_FGREP and select it if it is found.
 6.26592 ++  # Check for GNU $ac_path_FGREP
 6.26593 ++case `"$ac_path_FGREP" --version 2>&1` in
 6.26594 ++*GNU*)
 6.26595 ++  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
 6.26596 ++*)
 6.26597 ++  ac_count=0
 6.26598 ++  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
 6.26599 ++  while :
 6.26600 ++  do
 6.26601 ++    cat "conftest.in" "conftest.in" >"conftest.tmp"
 6.26602 ++    mv "conftest.tmp" "conftest.in"
 6.26603 ++    cp "conftest.in" "conftest.nl"
 6.26604 ++    echo 'FGREP' >> "conftest.nl"
 6.26605 ++    "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
 6.26606 ++    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
 6.26607 ++    ac_count=`expr $ac_count + 1`
 6.26608 ++    if test $ac_count -gt ${ac_path_FGREP_max-0}; then
 6.26609 ++      # Best one so far, save it but keep looking for a better one
 6.26610 ++      ac_cv_path_FGREP="$ac_path_FGREP"
 6.26611 ++      ac_path_FGREP_max=$ac_count
 6.26612 +     fi
 6.26613 ++    # 10*(2^10) chars as input seems more than enough
 6.26614 ++    test $ac_count -gt 10 && break
 6.26615 ++  done
 6.26616 ++  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 6.26617 ++esac
 6.26618 ++
 6.26619 ++
 6.26620 ++    $ac_path_FGREP_found && break 3
 6.26621 ++  done
 6.26622 ++done
 6.26623 ++
 6.26624 ++done
 6.26625 ++IFS=$as_save_IFS
 6.26626 ++
 6.26627 ++
 6.26628 + fi
 6.26629 +-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
 6.26630 +-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
 6.26631 +- EGREP=$ac_cv_prog_egrep
 6.26632 + 
 6.26633 ++FGREP="$ac_cv_path_FGREP"
 6.26634 ++if test -z "$FGREP"; then
 6.26635 ++  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
 6.26636 ++echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
 6.26637 ++   { (exit 1); exit 1; }; }
 6.26638 ++fi
 6.26639 + 
 6.26640 +-echo "$as_me:$LINENO: checking for fgrep" >&5
 6.26641 +-echo $ECHO_N "checking for fgrep... $ECHO_C" >&6
 6.26642 +-if test "${ac_cv_prog_fgrep+set}" = set; then
 6.26643 +-  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26644 + else
 6.26645 +-  if echo 'ab*c' | (grep -F 'ab*c') >/dev/null 2>&1
 6.26646 +-    then ac_cv_prog_fgrep='grep -F'
 6.26647 +-    else ac_cv_prog_fgrep='fgrep'
 6.26648 +-    fi
 6.26649 ++  ac_cv_path_FGREP=$FGREP
 6.26650 ++fi
 6.26651 ++
 6.26652 ++
 6.26653 ++   fi
 6.26654 + fi
 6.26655 +-echo "$as_me:$LINENO: result: $ac_cv_prog_fgrep" >&5
 6.26656 +-echo "${ECHO_T}$ac_cv_prog_fgrep" >&6
 6.26657 +- FGREP=$ac_cv_prog_fgrep
 6.26658 ++{ echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5
 6.26659 ++echo "${ECHO_T}$ac_cv_path_FGREP" >&6; }
 6.26660 ++ FGREP="$ac_cv_path_FGREP"
 6.26661 + 
 6.26662 + 
 6.26663 + test -z "$GREP" && GREP=grep
 6.26664 +@@ -4520,18 +5470,18 @@
 6.26665 + 
 6.26666 + 
 6.26667 + 
 6.26668 +-# Check whether --with-gnu-ld or --without-gnu-ld was given.
 6.26669 ++# Check whether --with-gnu-ld was given.
 6.26670 + if test "${with_gnu_ld+set}" = set; then
 6.26671 +-  withval="$with_gnu_ld"
 6.26672 +-  test "$withval" = no || with_gnu_ld=yes
 6.26673 ++  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
 6.26674 + else
 6.26675 +   with_gnu_ld=no
 6.26676 +-fi;
 6.26677 ++fi
 6.26678 ++
 6.26679 + ac_prog=ld
 6.26680 + if test "$GCC" = yes; then
 6.26681 +   # Check if gcc -print-prog-name=ld gives a path.
 6.26682 +-  echo "$as_me:$LINENO: checking for ld used by $CC" >&5
 6.26683 +-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
 6.26684 ++  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
 6.26685 ++echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
 6.26686 +   case $host in
 6.26687 +   *-*-mingw*)
 6.26688 +     # gcc leaves a trailing carriage return which upsets mingw
 6.26689 +@@ -4560,11 +5510,11 @@
 6.26690 +     ;;
 6.26691 +   esac
 6.26692 + elif test "$with_gnu_ld" = yes; then
 6.26693 +-  echo "$as_me:$LINENO: checking for GNU ld" >&5
 6.26694 +-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
 6.26695 ++  { echo "$as_me:$LINENO: checking for GNU ld" >&5
 6.26696 ++echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
 6.26697 + else
 6.26698 +-  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
 6.26699 +-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
 6.26700 ++  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
 6.26701 ++echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
 6.26702 + fi
 6.26703 + if test "${lt_cv_path_LD+set}" = set; then
 6.26704 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26705 +@@ -4597,17 +5547,17 @@
 6.26706 + 
 6.26707 + LD="$lt_cv_path_LD"
 6.26708 + if test -n "$LD"; then
 6.26709 +-  echo "$as_me:$LINENO: result: $LD" >&5
 6.26710 +-echo "${ECHO_T}$LD" >&6
 6.26711 ++  { echo "$as_me:$LINENO: result: $LD" >&5
 6.26712 ++echo "${ECHO_T}$LD" >&6; }
 6.26713 + else
 6.26714 +-  echo "$as_me:$LINENO: result: no" >&5
 6.26715 +-echo "${ECHO_T}no" >&6
 6.26716 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.26717 ++echo "${ECHO_T}no" >&6; }
 6.26718 + fi
 6.26719 + test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
 6.26720 + echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
 6.26721 +    { (exit 1); exit 1; }; }
 6.26722 +-echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
 6.26723 +-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
 6.26724 ++{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
 6.26725 ++echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
 6.26726 + if test "${lt_cv_prog_gnu_ld+set}" = set; then
 6.26727 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26728 + else
 6.26729 +@@ -4621,8 +5571,8 @@
 6.26730 +   ;;
 6.26731 + esac
 6.26732 + fi
 6.26733 +-echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
 6.26734 +-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
 6.26735 ++{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
 6.26736 ++echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
 6.26737 + with_gnu_ld=$lt_cv_prog_gnu_ld
 6.26738 + 
 6.26739 + 
 6.26740 +@@ -4633,8 +5583,8 @@
 6.26741 + 
 6.26742 + 
 6.26743 + 
 6.26744 +-echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5
 6.26745 +-echo $ECHO_N "checking for BSD- or MS-compatible name lister (nm)... $ECHO_C" >&6
 6.26746 ++{ echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5
 6.26747 ++echo $ECHO_N "checking for BSD- or MS-compatible name lister (nm)... $ECHO_C" >&6; }
 6.26748 + if test "${lt_cv_path_NM+set}" = set; then
 6.26749 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26750 + else
 6.26751 +@@ -4682,8 +5632,8 @@
 6.26752 +   : ${lt_cv_path_NM=no}
 6.26753 + fi
 6.26754 + fi
 6.26755 +-echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
 6.26756 +-echo "${ECHO_T}$lt_cv_path_NM" >&6
 6.26757 ++{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
 6.26758 ++echo "${ECHO_T}$lt_cv_path_NM" >&6; }
 6.26759 + if test "$lt_cv_path_NM" != "no"; then
 6.26760 +   NM="$lt_cv_path_NM"
 6.26761 + else
 6.26762 +@@ -4693,8 +5643,8 @@
 6.26763 +   do
 6.26764 +     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 6.26765 + set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 6.26766 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.26767 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.26768 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.26769 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.26770 + if test "${ac_cv_prog_DUMPBIN+set}" = set; then
 6.26771 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26772 + else
 6.26773 +@@ -4707,25 +5657,27 @@
 6.26774 +   IFS=$as_save_IFS
 6.26775 +   test -z "$as_dir" && as_dir=.
 6.26776 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.26777 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.26778 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.26779 +     ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
 6.26780 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.26781 +     break 2
 6.26782 +   fi
 6.26783 + done
 6.26784 + done
 6.26785 ++IFS=$as_save_IFS
 6.26786 + 
 6.26787 + fi
 6.26788 + fi
 6.26789 + DUMPBIN=$ac_cv_prog_DUMPBIN
 6.26790 + if test -n "$DUMPBIN"; then
 6.26791 +-  echo "$as_me:$LINENO: result: $DUMPBIN" >&5
 6.26792 +-echo "${ECHO_T}$DUMPBIN" >&6
 6.26793 ++  { echo "$as_me:$LINENO: result: $DUMPBIN" >&5
 6.26794 ++echo "${ECHO_T}$DUMPBIN" >&6; }
 6.26795 + else
 6.26796 +-  echo "$as_me:$LINENO: result: no" >&5
 6.26797 +-echo "${ECHO_T}no" >&6
 6.26798 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.26799 ++echo "${ECHO_T}no" >&6; }
 6.26800 + fi
 6.26801 + 
 6.26802 ++
 6.26803 +     test -n "$DUMPBIN" && break
 6.26804 +   done
 6.26805 + fi
 6.26806 +@@ -4735,8 +5687,8 @@
 6.26807 + do
 6.26808 +   # Extract the first word of "$ac_prog", so it can be a program name with args.
 6.26809 + set dummy $ac_prog; ac_word=$2
 6.26810 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.26811 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.26812 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.26813 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.26814 + if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then
 6.26815 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26816 + else
 6.26817 +@@ -4749,30 +5701,45 @@
 6.26818 +   IFS=$as_save_IFS
 6.26819 +   test -z "$as_dir" && as_dir=.
 6.26820 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.26821 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.26822 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.26823 +     ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
 6.26824 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.26825 +     break 2
 6.26826 +   fi
 6.26827 + done
 6.26828 + done
 6.26829 ++IFS=$as_save_IFS
 6.26830 + 
 6.26831 + fi
 6.26832 + fi
 6.26833 + ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
 6.26834 + if test -n "$ac_ct_DUMPBIN"; then
 6.26835 +-  echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5
 6.26836 +-echo "${ECHO_T}$ac_ct_DUMPBIN" >&6
 6.26837 ++  { echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5
 6.26838 ++echo "${ECHO_T}$ac_ct_DUMPBIN" >&6; }
 6.26839 + else
 6.26840 +-  echo "$as_me:$LINENO: result: no" >&5
 6.26841 +-echo "${ECHO_T}no" >&6
 6.26842 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.26843 ++echo "${ECHO_T}no" >&6; }
 6.26844 + fi
 6.26845 + 
 6.26846 ++
 6.26847 +   test -n "$ac_ct_DUMPBIN" && break
 6.26848 + done
 6.26849 +-test -n "$ac_ct_DUMPBIN" || ac_ct_DUMPBIN=":"
 6.26850 + 
 6.26851 +-  DUMPBIN=$ac_ct_DUMPBIN
 6.26852 ++  if test "x$ac_ct_DUMPBIN" = x; then
 6.26853 ++    DUMPBIN=":"
 6.26854 ++  else
 6.26855 ++    case $cross_compiling:$ac_tool_warned in
 6.26856 ++yes:)
 6.26857 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.26858 ++whose name does not start with the host triplet.  If you think this
 6.26859 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.26860 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.26861 ++whose name does not start with the host triplet.  If you think this
 6.26862 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.26863 ++ac_tool_warned=yes ;;
 6.26864 ++esac
 6.26865 ++    DUMPBIN=$ac_ct_DUMPBIN
 6.26866 ++  fi
 6.26867 + fi
 6.26868 + 
 6.26869 + 
 6.26870 +@@ -4787,43 +5754,43 @@
 6.26871 + 
 6.26872 + 
 6.26873 + 
 6.26874 +-echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5
 6.26875 +-echo $ECHO_N "checking the name lister ($NM) interface... $ECHO_C" >&6
 6.26876 ++{ echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5
 6.26877 ++echo $ECHO_N "checking the name lister ($NM) interface... $ECHO_C" >&6; }
 6.26878 + if test "${lt_cv_nm_interface+set}" = set; then
 6.26879 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26880 + else
 6.26881 +   lt_cv_nm_interface="BSD nm"
 6.26882 +   echo "int some_variable = 0;" > conftest.$ac_ext
 6.26883 +-  (eval echo "\"\$as_me:4797: $ac_compile\"" >&5)
 6.26884 ++  (eval echo "\"\$as_me:5764: $ac_compile\"" >&5)
 6.26885 +   (eval "$ac_compile" 2>conftest.err)
 6.26886 +   cat conftest.err >&5
 6.26887 +-  (eval echo "\"\$as_me:4800: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
 6.26888 ++  (eval echo "\"\$as_me:5767: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
 6.26889 +   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
 6.26890 +   cat conftest.err >&5
 6.26891 +-  (eval echo "\"\$as_me:4803: output\"" >&5)
 6.26892 ++  (eval echo "\"\$as_me:5770: output\"" >&5)
 6.26893 +   cat conftest.out >&5
 6.26894 +   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
 6.26895 +     lt_cv_nm_interface="MS dumpbin"
 6.26896 +   fi
 6.26897 +   rm -f conftest*
 6.26898 + fi
 6.26899 +-echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5
 6.26900 +-echo "${ECHO_T}$lt_cv_nm_interface" >&6
 6.26901 ++{ echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5
 6.26902 ++echo "${ECHO_T}$lt_cv_nm_interface" >&6; }
 6.26903 + 
 6.26904 +-echo "$as_me:$LINENO: checking whether ln -s works" >&5
 6.26905 +-echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
 6.26906 ++{ echo "$as_me:$LINENO: checking whether ln -s works" >&5
 6.26907 ++echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; }
 6.26908 + LN_S=$as_ln_s
 6.26909 + if test "$LN_S" = "ln -s"; then
 6.26910 +-  echo "$as_me:$LINENO: result: yes" >&5
 6.26911 +-echo "${ECHO_T}yes" >&6
 6.26912 ++  { echo "$as_me:$LINENO: result: yes" >&5
 6.26913 ++echo "${ECHO_T}yes" >&6; }
 6.26914 + else
 6.26915 +-  echo "$as_me:$LINENO: result: no, using $LN_S" >&5
 6.26916 +-echo "${ECHO_T}no, using $LN_S" >&6
 6.26917 ++  { echo "$as_me:$LINENO: result: no, using $LN_S" >&5
 6.26918 ++echo "${ECHO_T}no, using $LN_S" >&6; }
 6.26919 + fi
 6.26920 + 
 6.26921 + # find the maximum length of command line arguments
 6.26922 +-echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
 6.26923 +-echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6
 6.26924 ++{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
 6.26925 ++echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; }
 6.26926 + if test "${lt_cv_sys_max_cmd_len+set}" = set; then
 6.26927 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26928 + else
 6.26929 +@@ -4942,11 +5909,11 @@
 6.26930 + fi
 6.26931 + 
 6.26932 + if test -n $lt_cv_sys_max_cmd_len ; then
 6.26933 +-  echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
 6.26934 +-echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6
 6.26935 ++  { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
 6.26936 ++echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; }
 6.26937 + else
 6.26938 +-  echo "$as_me:$LINENO: result: none" >&5
 6.26939 +-echo "${ECHO_T}none" >&6
 6.26940 ++  { echo "$as_me:$LINENO: result: none" >&5
 6.26941 ++echo "${ECHO_T}none" >&6; }
 6.26942 + fi
 6.26943 + max_cmd_len=$lt_cv_sys_max_cmd_len
 6.26944 + 
 6.26945 +@@ -4959,8 +5926,8 @@
 6.26946 + : ${MV="mv -f"}
 6.26947 + : ${RM="rm -f"}
 6.26948 + 
 6.26949 +-echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5
 6.26950 +-echo $ECHO_N "checking whether the shell understands some XSI constructs... $ECHO_C" >&6
 6.26951 ++{ echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5
 6.26952 ++echo $ECHO_N "checking whether the shell understands some XSI constructs... $ECHO_C" >&6; }
 6.26953 + # Try some XSI features
 6.26954 + xsi_shell=no
 6.26955 + ( _lt_dummy="a/b/c"
 6.26956 +@@ -4969,18 +5936,18 @@
 6.26957 +     && eval 'test $(( 1 + 1 )) -eq 2 \
 6.26958 +     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
 6.26959 +   && xsi_shell=yes
 6.26960 +-echo "$as_me:$LINENO: result: $xsi_shell" >&5
 6.26961 +-echo "${ECHO_T}$xsi_shell" >&6
 6.26962 ++{ echo "$as_me:$LINENO: result: $xsi_shell" >&5
 6.26963 ++echo "${ECHO_T}$xsi_shell" >&6; }
 6.26964 + 
 6.26965 + 
 6.26966 +-echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5
 6.26967 +-echo $ECHO_N "checking whether the shell understands \"+=\"... $ECHO_C" >&6
 6.26968 ++{ echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5
 6.26969 ++echo $ECHO_N "checking whether the shell understands \"+=\"... $ECHO_C" >&6; }
 6.26970 + lt_shell_append=no
 6.26971 + ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
 6.26972 +     >/dev/null 2>&1 \
 6.26973 +   && lt_shell_append=yes
 6.26974 +-echo "$as_me:$LINENO: result: $lt_shell_append" >&5
 6.26975 +-echo "${ECHO_T}$lt_shell_append" >&6
 6.26976 ++{ echo "$as_me:$LINENO: result: $lt_shell_append" >&5
 6.26977 ++echo "${ECHO_T}$lt_shell_append" >&6; }
 6.26978 + 
 6.26979 + 
 6.26980 + if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
 6.26981 +@@ -5014,15 +5981,15 @@
 6.26982 + 
 6.26983 + 
 6.26984 + 
 6.26985 +-echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
 6.26986 +-echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
 6.26987 ++{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
 6.26988 ++echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; }
 6.26989 + if test "${lt_cv_ld_reload_flag+set}" = set; then
 6.26990 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.26991 + else
 6.26992 +   lt_cv_ld_reload_flag='-r'
 6.26993 + fi
 6.26994 +-echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
 6.26995 +-echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
 6.26996 ++{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
 6.26997 ++echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; }
 6.26998 + reload_flag=$lt_cv_ld_reload_flag
 6.26999 + case $reload_flag in
 6.27000 + "" | " "*) ;;
 6.27001 +@@ -5050,8 +6017,8 @@
 6.27002 + if test -n "$ac_tool_prefix"; then
 6.27003 +   # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
 6.27004 + set dummy ${ac_tool_prefix}objdump; ac_word=$2
 6.27005 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27006 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27007 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27008 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27009 + if test "${ac_cv_prog_OBJDUMP+set}" = set; then
 6.27010 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27011 + else
 6.27012 +@@ -5064,32 +6031,34 @@
 6.27013 +   IFS=$as_save_IFS
 6.27014 +   test -z "$as_dir" && as_dir=.
 6.27015 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27016 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27017 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27018 +     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
 6.27019 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27020 +     break 2
 6.27021 +   fi
 6.27022 + done
 6.27023 + done
 6.27024 ++IFS=$as_save_IFS
 6.27025 + 
 6.27026 + fi
 6.27027 + fi
 6.27028 + OBJDUMP=$ac_cv_prog_OBJDUMP
 6.27029 + if test -n "$OBJDUMP"; then
 6.27030 +-  echo "$as_me:$LINENO: result: $OBJDUMP" >&5
 6.27031 +-echo "${ECHO_T}$OBJDUMP" >&6
 6.27032 ++  { echo "$as_me:$LINENO: result: $OBJDUMP" >&5
 6.27033 ++echo "${ECHO_T}$OBJDUMP" >&6; }
 6.27034 + else
 6.27035 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27036 +-echo "${ECHO_T}no" >&6
 6.27037 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.27038 ++echo "${ECHO_T}no" >&6; }
 6.27039 + fi
 6.27040 + 
 6.27041 ++
 6.27042 + fi
 6.27043 + if test -z "$ac_cv_prog_OBJDUMP"; then
 6.27044 +   ac_ct_OBJDUMP=$OBJDUMP
 6.27045 +   # Extract the first word of "objdump", so it can be a program name with args.
 6.27046 + set dummy objdump; ac_word=$2
 6.27047 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27048 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27049 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27050 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27051 + if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then
 6.27052 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27053 + else
 6.27054 +@@ -5102,27 +6071,41 @@
 6.27055 +   IFS=$as_save_IFS
 6.27056 +   test -z "$as_dir" && as_dir=.
 6.27057 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27058 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27059 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27060 +     ac_cv_prog_ac_ct_OBJDUMP="objdump"
 6.27061 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27062 +     break 2
 6.27063 +   fi
 6.27064 + done
 6.27065 + done
 6.27066 ++IFS=$as_save_IFS
 6.27067 + 
 6.27068 +-  test -z "$ac_cv_prog_ac_ct_OBJDUMP" && ac_cv_prog_ac_ct_OBJDUMP="false"
 6.27069 + fi
 6.27070 + fi
 6.27071 + ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
 6.27072 + if test -n "$ac_ct_OBJDUMP"; then
 6.27073 +-  echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
 6.27074 +-echo "${ECHO_T}$ac_ct_OBJDUMP" >&6
 6.27075 ++  { echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
 6.27076 ++echo "${ECHO_T}$ac_ct_OBJDUMP" >&6; }
 6.27077 + else
 6.27078 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27079 +-echo "${ECHO_T}no" >&6
 6.27080 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.27081 ++echo "${ECHO_T}no" >&6; }
 6.27082 + fi
 6.27083 + 
 6.27084 +-  OBJDUMP=$ac_ct_OBJDUMP
 6.27085 ++  if test "x$ac_ct_OBJDUMP" = x; then
 6.27086 ++    OBJDUMP="false"
 6.27087 ++  else
 6.27088 ++    case $cross_compiling:$ac_tool_warned in
 6.27089 ++yes:)
 6.27090 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.27091 ++whose name does not start with the host triplet.  If you think this
 6.27092 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.27093 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.27094 ++whose name does not start with the host triplet.  If you think this
 6.27095 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.27096 ++ac_tool_warned=yes ;;
 6.27097 ++esac
 6.27098 ++    OBJDUMP=$ac_ct_OBJDUMP
 6.27099 ++  fi
 6.27100 + else
 6.27101 +   OBJDUMP="$ac_cv_prog_OBJDUMP"
 6.27102 + fi
 6.27103 +@@ -5134,8 +6117,8 @@
 6.27104 + 
 6.27105 + 
 6.27106 + 
 6.27107 +-echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
 6.27108 +-echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6
 6.27109 ++{ echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
 6.27110 ++echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; }
 6.27111 + if test "${lt_cv_deplibs_check_method+set}" = set; then
 6.27112 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27113 + else
 6.27114 +@@ -5330,8 +6313,8 @@
 6.27115 + esac
 6.27116 + 
 6.27117 + fi
 6.27118 +-echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
 6.27119 +-echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
 6.27120 ++{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
 6.27121 ++echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; }
 6.27122 + file_magic_cmd=$lt_cv_file_magic_cmd
 6.27123 + deplibs_check_method=$lt_cv_deplibs_check_method
 6.27124 + test -z "$deplibs_check_method" && deplibs_check_method=unknown
 6.27125 +@@ -5350,8 +6333,8 @@
 6.27126 + if test -n "$ac_tool_prefix"; then
 6.27127 +   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 6.27128 + set dummy ${ac_tool_prefix}ar; ac_word=$2
 6.27129 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27130 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27131 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27132 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27133 + if test "${ac_cv_prog_AR+set}" = set; then
 6.27134 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27135 + else
 6.27136 +@@ -5364,32 +6347,34 @@
 6.27137 +   IFS=$as_save_IFS
 6.27138 +   test -z "$as_dir" && as_dir=.
 6.27139 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27140 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27141 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27142 +     ac_cv_prog_AR="${ac_tool_prefix}ar"
 6.27143 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27144 +     break 2
 6.27145 +   fi
 6.27146 + done
 6.27147 + done
 6.27148 ++IFS=$as_save_IFS
 6.27149 + 
 6.27150 + fi
 6.27151 + fi
 6.27152 + AR=$ac_cv_prog_AR
 6.27153 + if test -n "$AR"; then
 6.27154 +-  echo "$as_me:$LINENO: result: $AR" >&5
 6.27155 +-echo "${ECHO_T}$AR" >&6
 6.27156 ++  { echo "$as_me:$LINENO: result: $AR" >&5
 6.27157 ++echo "${ECHO_T}$AR" >&6; }
 6.27158 + else
 6.27159 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27160 +-echo "${ECHO_T}no" >&6
 6.27161 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.27162 ++echo "${ECHO_T}no" >&6; }
 6.27163 + fi
 6.27164 + 
 6.27165 ++
 6.27166 + fi
 6.27167 + if test -z "$ac_cv_prog_AR"; then
 6.27168 +   ac_ct_AR=$AR
 6.27169 +   # Extract the first word of "ar", so it can be a program name with args.
 6.27170 + set dummy ar; ac_word=$2
 6.27171 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27172 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27173 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27174 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27175 + if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
 6.27176 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27177 + else
 6.27178 +@@ -5402,27 +6387,41 @@
 6.27179 +   IFS=$as_save_IFS
 6.27180 +   test -z "$as_dir" && as_dir=.
 6.27181 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27182 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27183 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27184 +     ac_cv_prog_ac_ct_AR="ar"
 6.27185 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27186 +     break 2
 6.27187 +   fi
 6.27188 + done
 6.27189 + done
 6.27190 ++IFS=$as_save_IFS
 6.27191 + 
 6.27192 +-  test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false"
 6.27193 + fi
 6.27194 + fi
 6.27195 + ac_ct_AR=$ac_cv_prog_ac_ct_AR
 6.27196 + if test -n "$ac_ct_AR"; then
 6.27197 +-  echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
 6.27198 +-echo "${ECHO_T}$ac_ct_AR" >&6
 6.27199 ++  { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
 6.27200 ++echo "${ECHO_T}$ac_ct_AR" >&6; }
 6.27201 + else
 6.27202 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27203 +-echo "${ECHO_T}no" >&6
 6.27204 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.27205 ++echo "${ECHO_T}no" >&6; }
 6.27206 + fi
 6.27207 + 
 6.27208 +-  AR=$ac_ct_AR
 6.27209 ++  if test "x$ac_ct_AR" = x; then
 6.27210 ++    AR="false"
 6.27211 ++  else
 6.27212 ++    case $cross_compiling:$ac_tool_warned in
 6.27213 ++yes:)
 6.27214 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.27215 ++whose name does not start with the host triplet.  If you think this
 6.27216 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.27217 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.27218 ++whose name does not start with the host triplet.  If you think this
 6.27219 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.27220 ++ac_tool_warned=yes ;;
 6.27221 ++esac
 6.27222 ++    AR=$ac_ct_AR
 6.27223 ++  fi
 6.27224 + else
 6.27225 +   AR="$ac_cv_prog_AR"
 6.27226 + fi
 6.27227 +@@ -5443,8 +6442,8 @@
 6.27228 + if test -n "$ac_tool_prefix"; then
 6.27229 +   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 6.27230 + set dummy ${ac_tool_prefix}strip; ac_word=$2
 6.27231 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27232 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27233 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27234 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27235 + if test "${ac_cv_prog_STRIP+set}" = set; then
 6.27236 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27237 + else
 6.27238 +@@ -5457,32 +6456,34 @@
 6.27239 +   IFS=$as_save_IFS
 6.27240 +   test -z "$as_dir" && as_dir=.
 6.27241 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27242 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27243 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27244 +     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
 6.27245 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27246 +     break 2
 6.27247 +   fi
 6.27248 + done
 6.27249 + done
 6.27250 ++IFS=$as_save_IFS
 6.27251 + 
 6.27252 + fi
 6.27253 + fi
 6.27254 + STRIP=$ac_cv_prog_STRIP
 6.27255 + if test -n "$STRIP"; then
 6.27256 +-  echo "$as_me:$LINENO: result: $STRIP" >&5
 6.27257 +-echo "${ECHO_T}$STRIP" >&6
 6.27258 ++  { echo "$as_me:$LINENO: result: $STRIP" >&5
 6.27259 ++echo "${ECHO_T}$STRIP" >&6; }
 6.27260 + else
 6.27261 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27262 +-echo "${ECHO_T}no" >&6
 6.27263 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.27264 ++echo "${ECHO_T}no" >&6; }
 6.27265 + fi
 6.27266 + 
 6.27267 ++
 6.27268 + fi
 6.27269 + if test -z "$ac_cv_prog_STRIP"; then
 6.27270 +   ac_ct_STRIP=$STRIP
 6.27271 +   # Extract the first word of "strip", so it can be a program name with args.
 6.27272 + set dummy strip; ac_word=$2
 6.27273 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27274 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27275 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27276 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27277 + if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
 6.27278 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27279 + else
 6.27280 +@@ -5495,27 +6496,41 @@
 6.27281 +   IFS=$as_save_IFS
 6.27282 +   test -z "$as_dir" && as_dir=.
 6.27283 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27284 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27285 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27286 +     ac_cv_prog_ac_ct_STRIP="strip"
 6.27287 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27288 +     break 2
 6.27289 +   fi
 6.27290 + done
 6.27291 + done
 6.27292 ++IFS=$as_save_IFS
 6.27293 + 
 6.27294 +-  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
 6.27295 + fi
 6.27296 + fi
 6.27297 + ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 6.27298 + if test -n "$ac_ct_STRIP"; then
 6.27299 +-  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
 6.27300 +-echo "${ECHO_T}$ac_ct_STRIP" >&6
 6.27301 ++  { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
 6.27302 ++echo "${ECHO_T}$ac_ct_STRIP" >&6; }
 6.27303 + else
 6.27304 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27305 +-echo "${ECHO_T}no" >&6
 6.27306 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.27307 ++echo "${ECHO_T}no" >&6; }
 6.27308 + fi
 6.27309 + 
 6.27310 +-  STRIP=$ac_ct_STRIP
 6.27311 ++  if test "x$ac_ct_STRIP" = x; then
 6.27312 ++    STRIP=":"
 6.27313 ++  else
 6.27314 ++    case $cross_compiling:$ac_tool_warned in
 6.27315 ++yes:)
 6.27316 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.27317 ++whose name does not start with the host triplet.  If you think this
 6.27318 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.27319 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.27320 ++whose name does not start with the host triplet.  If you think this
 6.27321 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.27322 ++ac_tool_warned=yes ;;
 6.27323 ++esac
 6.27324 ++    STRIP=$ac_ct_STRIP
 6.27325 ++  fi
 6.27326 + else
 6.27327 +   STRIP="$ac_cv_prog_STRIP"
 6.27328 + fi
 6.27329 +@@ -5530,8 +6545,8 @@
 6.27330 + if test -n "$ac_tool_prefix"; then
 6.27331 +   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 6.27332 + set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 6.27333 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27334 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27335 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27336 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27337 + if test "${ac_cv_prog_RANLIB+set}" = set; then
 6.27338 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27339 + else
 6.27340 +@@ -5544,32 +6559,34 @@
 6.27341 +   IFS=$as_save_IFS
 6.27342 +   test -z "$as_dir" && as_dir=.
 6.27343 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27344 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27345 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27346 +     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
 6.27347 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27348 +     break 2
 6.27349 +   fi
 6.27350 + done
 6.27351 + done
 6.27352 ++IFS=$as_save_IFS
 6.27353 + 
 6.27354 + fi
 6.27355 + fi
 6.27356 + RANLIB=$ac_cv_prog_RANLIB
 6.27357 + if test -n "$RANLIB"; then
 6.27358 +-  echo "$as_me:$LINENO: result: $RANLIB" >&5
 6.27359 +-echo "${ECHO_T}$RANLIB" >&6
 6.27360 ++  { echo "$as_me:$LINENO: result: $RANLIB" >&5
 6.27361 ++echo "${ECHO_T}$RANLIB" >&6; }
 6.27362 + else
 6.27363 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27364 +-echo "${ECHO_T}no" >&6
 6.27365 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.27366 ++echo "${ECHO_T}no" >&6; }
 6.27367 + fi
 6.27368 + 
 6.27369 ++
 6.27370 + fi
 6.27371 + if test -z "$ac_cv_prog_RANLIB"; then
 6.27372 +   ac_ct_RANLIB=$RANLIB
 6.27373 +   # Extract the first word of "ranlib", so it can be a program name with args.
 6.27374 + set dummy ranlib; ac_word=$2
 6.27375 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27376 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27377 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27378 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27379 + if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
 6.27380 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27381 + else
 6.27382 +@@ -5582,27 +6599,41 @@
 6.27383 +   IFS=$as_save_IFS
 6.27384 +   test -z "$as_dir" && as_dir=.
 6.27385 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27386 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27387 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27388 +     ac_cv_prog_ac_ct_RANLIB="ranlib"
 6.27389 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27390 +     break 2
 6.27391 +   fi
 6.27392 + done
 6.27393 + done
 6.27394 ++IFS=$as_save_IFS
 6.27395 + 
 6.27396 +-  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
 6.27397 + fi
 6.27398 + fi
 6.27399 + ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 6.27400 + if test -n "$ac_ct_RANLIB"; then
 6.27401 +-  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
 6.27402 +-echo "${ECHO_T}$ac_ct_RANLIB" >&6
 6.27403 ++  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
 6.27404 ++echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
 6.27405 + else
 6.27406 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27407 +-echo "${ECHO_T}no" >&6
 6.27408 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.27409 ++echo "${ECHO_T}no" >&6; }
 6.27410 + fi
 6.27411 + 
 6.27412 +-  RANLIB=$ac_ct_RANLIB
 6.27413 ++  if test "x$ac_ct_RANLIB" = x; then
 6.27414 ++    RANLIB=":"
 6.27415 ++  else
 6.27416 ++    case $cross_compiling:$ac_tool_warned in
 6.27417 ++yes:)
 6.27418 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.27419 ++whose name does not start with the host triplet.  If you think this
 6.27420 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.27421 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.27422 ++whose name does not start with the host triplet.  If you think this
 6.27423 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.27424 ++ac_tool_warned=yes ;;
 6.27425 ++esac
 6.27426 ++    RANLIB=$ac_ct_RANLIB
 6.27427 ++  fi
 6.27428 + else
 6.27429 +   RANLIB="$ac_cv_prog_RANLIB"
 6.27430 + fi
 6.27431 +@@ -5675,8 +6706,8 @@
 6.27432 + 
 6.27433 + 
 6.27434 + # Check for command to grab the raw symbol name followed by C symbol from nm.
 6.27435 +-echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
 6.27436 +-echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6
 6.27437 ++{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
 6.27438 ++echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; }
 6.27439 + if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
 6.27440 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27441 + else
 6.27442 +@@ -5895,11 +6926,11 @@
 6.27443 +   lt_cv_sys_global_symbol_to_cdecl=
 6.27444 + fi
 6.27445 + if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
 6.27446 +-  echo "$as_me:$LINENO: result: failed" >&5
 6.27447 +-echo "${ECHO_T}failed" >&6
 6.27448 ++  { echo "$as_me:$LINENO: result: failed" >&5
 6.27449 ++echo "${ECHO_T}failed" >&6; }
 6.27450 + else
 6.27451 +-  echo "$as_me:$LINENO: result: ok" >&5
 6.27452 +-echo "${ECHO_T}ok" >&6
 6.27453 ++  { echo "$as_me:$LINENO: result: ok" >&5
 6.27454 ++echo "${ECHO_T}ok" >&6; }
 6.27455 + fi
 6.27456 + 
 6.27457 + 
 6.27458 +@@ -5924,11 +6955,11 @@
 6.27459 + 
 6.27460 + 
 6.27461 + 
 6.27462 +-# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
 6.27463 ++# Check whether --enable-libtool-lock was given.
 6.27464 + if test "${enable_libtool_lock+set}" = set; then
 6.27465 +-  enableval="$enable_libtool_lock"
 6.27466 ++  enableval=$enable_libtool_lock;
 6.27467 ++fi
 6.27468 + 
 6.27469 +-fi;
 6.27470 + test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
 6.27471 + 
 6.27472 + # Some flags need to be propagated to the compiler or linker for good
 6.27473 +@@ -5955,7 +6986,7 @@
 6.27474 +   ;;
 6.27475 + *-*-irix6*)
 6.27476 +   # Find out which ABI we are using.
 6.27477 +-  echo '#line 5958 "configure"' > conftest.$ac_ext
 6.27478 ++  echo '#line 6989 "configure"' > conftest.$ac_ext
 6.27479 +   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.27480 +   (eval $ac_compile) 2>&5
 6.27481 +   ac_status=$?
 6.27482 +@@ -6047,8 +7078,8 @@
 6.27483 +   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
 6.27484 +   SAVE_CFLAGS="$CFLAGS"
 6.27485 +   CFLAGS="$CFLAGS -belf"
 6.27486 +-  echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
 6.27487 +-echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
 6.27488 ++  { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
 6.27489 ++echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; }
 6.27490 + if test "${lt_cv_cc_needs_belf+set}" = set; then
 6.27491 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27492 + else
 6.27493 +@@ -6074,35 +7105,32 @@
 6.27494 + }
 6.27495 + _ACEOF
 6.27496 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.27497 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.27498 +-  (eval $ac_link) 2>conftest.er1
 6.27499 ++if { (ac_try="$ac_link"
 6.27500 ++case "(($ac_try" in
 6.27501 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.27502 ++  *) ac_try_echo=$ac_try;;
 6.27503 ++esac
 6.27504 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.27505 ++  (eval "$ac_link") 2>conftest.er1
 6.27506 +   ac_status=$?
 6.27507 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.27508 +   rm -f conftest.er1
 6.27509 +   cat conftest.err >&5
 6.27510 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.27511 +-  (exit $ac_status); } &&
 6.27512 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.27513 +-			 || test ! -s conftest.err'
 6.27514 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.27515 +-  (eval $ac_try) 2>&5
 6.27516 +-  ac_status=$?
 6.27517 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.27518 +-  (exit $ac_status); }; } &&
 6.27519 +-	 { ac_try='test -s conftest$ac_exeext'
 6.27520 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.27521 +-  (eval $ac_try) 2>&5
 6.27522 +-  ac_status=$?
 6.27523 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.27524 +-  (exit $ac_status); }; }; then
 6.27525 ++  (exit $ac_status); } && {
 6.27526 ++	 test -z "$ac_c_werror_flag" ||
 6.27527 ++	 test ! -s conftest.err
 6.27528 ++       } && test -s conftest$ac_exeext &&
 6.27529 ++       $as_test_x conftest$ac_exeext; then
 6.27530 +   lt_cv_cc_needs_belf=yes
 6.27531 + else
 6.27532 +   echo "$as_me: failed program was:" >&5
 6.27533 + sed 's/^/| /' conftest.$ac_ext >&5
 6.27534 + 
 6.27535 +-lt_cv_cc_needs_belf=no
 6.27536 ++	lt_cv_cc_needs_belf=no
 6.27537 + fi
 6.27538 +-rm -f conftest.err conftest.$ac_objext \
 6.27539 ++
 6.27540 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.27541 +       conftest$ac_exeext conftest.$ac_ext
 6.27542 +      ac_ext=c
 6.27543 + ac_cpp='$CPP $CPPFLAGS'
 6.27544 +@@ -6111,8 +7139,8 @@
 6.27545 + ac_compiler_gnu=$ac_cv_c_compiler_gnu
 6.27546 + 
 6.27547 + fi
 6.27548 +-echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
 6.27549 +-echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
 6.27550 ++{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
 6.27551 ++echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; }
 6.27552 +   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
 6.27553 +     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
 6.27554 +     CFLAGS="$SAVE_CFLAGS"
 6.27555 +@@ -6151,8 +7179,8 @@
 6.27556 +     if test -n "$ac_tool_prefix"; then
 6.27557 +   # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
 6.27558 + set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
 6.27559 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27560 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27561 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27562 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27563 + if test "${ac_cv_prog_DSYMUTIL+set}" = set; then
 6.27564 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27565 + else
 6.27566 +@@ -6165,32 +7193,34 @@
 6.27567 +   IFS=$as_save_IFS
 6.27568 +   test -z "$as_dir" && as_dir=.
 6.27569 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27570 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27571 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27572 +     ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
 6.27573 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27574 +     break 2
 6.27575 +   fi
 6.27576 + done
 6.27577 + done
 6.27578 ++IFS=$as_save_IFS
 6.27579 + 
 6.27580 + fi
 6.27581 + fi
 6.27582 + DSYMUTIL=$ac_cv_prog_DSYMUTIL
 6.27583 + if test -n "$DSYMUTIL"; then
 6.27584 +-  echo "$as_me:$LINENO: result: $DSYMUTIL" >&5
 6.27585 +-echo "${ECHO_T}$DSYMUTIL" >&6
 6.27586 ++  { echo "$as_me:$LINENO: result: $DSYMUTIL" >&5
 6.27587 ++echo "${ECHO_T}$DSYMUTIL" >&6; }
 6.27588 + else
 6.27589 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27590 +-echo "${ECHO_T}no" >&6
 6.27591 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.27592 ++echo "${ECHO_T}no" >&6; }
 6.27593 + fi
 6.27594 + 
 6.27595 ++
 6.27596 + fi
 6.27597 + if test -z "$ac_cv_prog_DSYMUTIL"; then
 6.27598 +   ac_ct_DSYMUTIL=$DSYMUTIL
 6.27599 +   # Extract the first word of "dsymutil", so it can be a program name with args.
 6.27600 + set dummy dsymutil; ac_word=$2
 6.27601 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27602 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27603 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27604 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27605 + if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then
 6.27606 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27607 + else
 6.27608 +@@ -6203,27 +7233,41 @@
 6.27609 +   IFS=$as_save_IFS
 6.27610 +   test -z "$as_dir" && as_dir=.
 6.27611 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27612 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27613 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27614 +     ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
 6.27615 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27616 +     break 2
 6.27617 +   fi
 6.27618 + done
 6.27619 + done
 6.27620 ++IFS=$as_save_IFS
 6.27621 + 
 6.27622 +-  test -z "$ac_cv_prog_ac_ct_DSYMUTIL" && ac_cv_prog_ac_ct_DSYMUTIL=":"
 6.27623 + fi
 6.27624 + fi
 6.27625 + ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
 6.27626 + if test -n "$ac_ct_DSYMUTIL"; then
 6.27627 +-  echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5
 6.27628 +-echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6
 6.27629 ++  { echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5
 6.27630 ++echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6; }
 6.27631 + else
 6.27632 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27633 +-echo "${ECHO_T}no" >&6
 6.27634 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.27635 ++echo "${ECHO_T}no" >&6; }
 6.27636 + fi
 6.27637 + 
 6.27638 +-  DSYMUTIL=$ac_ct_DSYMUTIL
 6.27639 ++  if test "x$ac_ct_DSYMUTIL" = x; then
 6.27640 ++    DSYMUTIL=":"
 6.27641 ++  else
 6.27642 ++    case $cross_compiling:$ac_tool_warned in
 6.27643 ++yes:)
 6.27644 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.27645 ++whose name does not start with the host triplet.  If you think this
 6.27646 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.27647 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.27648 ++whose name does not start with the host triplet.  If you think this
 6.27649 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.27650 ++ac_tool_warned=yes ;;
 6.27651 ++esac
 6.27652 ++    DSYMUTIL=$ac_ct_DSYMUTIL
 6.27653 ++  fi
 6.27654 + else
 6.27655 +   DSYMUTIL="$ac_cv_prog_DSYMUTIL"
 6.27656 + fi
 6.27657 +@@ -6231,8 +7275,8 @@
 6.27658 +     if test -n "$ac_tool_prefix"; then
 6.27659 +   # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
 6.27660 + set dummy ${ac_tool_prefix}nmedit; ac_word=$2
 6.27661 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27662 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27663 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27664 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27665 + if test "${ac_cv_prog_NMEDIT+set}" = set; then
 6.27666 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27667 + else
 6.27668 +@@ -6245,32 +7289,34 @@
 6.27669 +   IFS=$as_save_IFS
 6.27670 +   test -z "$as_dir" && as_dir=.
 6.27671 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27672 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27673 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27674 +     ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
 6.27675 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27676 +     break 2
 6.27677 +   fi
 6.27678 + done
 6.27679 + done
 6.27680 ++IFS=$as_save_IFS
 6.27681 + 
 6.27682 + fi
 6.27683 + fi
 6.27684 + NMEDIT=$ac_cv_prog_NMEDIT
 6.27685 + if test -n "$NMEDIT"; then
 6.27686 +-  echo "$as_me:$LINENO: result: $NMEDIT" >&5
 6.27687 +-echo "${ECHO_T}$NMEDIT" >&6
 6.27688 ++  { echo "$as_me:$LINENO: result: $NMEDIT" >&5
 6.27689 ++echo "${ECHO_T}$NMEDIT" >&6; }
 6.27690 + else
 6.27691 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27692 +-echo "${ECHO_T}no" >&6
 6.27693 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.27694 ++echo "${ECHO_T}no" >&6; }
 6.27695 + fi
 6.27696 + 
 6.27697 ++
 6.27698 + fi
 6.27699 + if test -z "$ac_cv_prog_NMEDIT"; then
 6.27700 +   ac_ct_NMEDIT=$NMEDIT
 6.27701 +   # Extract the first word of "nmedit", so it can be a program name with args.
 6.27702 + set dummy nmedit; ac_word=$2
 6.27703 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27704 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27705 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27706 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27707 + if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then
 6.27708 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27709 + else
 6.27710 +@@ -6283,27 +7329,41 @@
 6.27711 +   IFS=$as_save_IFS
 6.27712 +   test -z "$as_dir" && as_dir=.
 6.27713 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27714 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27715 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27716 +     ac_cv_prog_ac_ct_NMEDIT="nmedit"
 6.27717 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27718 +     break 2
 6.27719 +   fi
 6.27720 + done
 6.27721 + done
 6.27722 ++IFS=$as_save_IFS
 6.27723 + 
 6.27724 +-  test -z "$ac_cv_prog_ac_ct_NMEDIT" && ac_cv_prog_ac_ct_NMEDIT=":"
 6.27725 + fi
 6.27726 + fi
 6.27727 + ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
 6.27728 + if test -n "$ac_ct_NMEDIT"; then
 6.27729 +-  echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5
 6.27730 +-echo "${ECHO_T}$ac_ct_NMEDIT" >&6
 6.27731 ++  { echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5
 6.27732 ++echo "${ECHO_T}$ac_ct_NMEDIT" >&6; }
 6.27733 + else
 6.27734 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27735 +-echo "${ECHO_T}no" >&6
 6.27736 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.27737 ++echo "${ECHO_T}no" >&6; }
 6.27738 + fi
 6.27739 + 
 6.27740 +-  NMEDIT=$ac_ct_NMEDIT
 6.27741 ++  if test "x$ac_ct_NMEDIT" = x; then
 6.27742 ++    NMEDIT=":"
 6.27743 ++  else
 6.27744 ++    case $cross_compiling:$ac_tool_warned in
 6.27745 ++yes:)
 6.27746 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.27747 ++whose name does not start with the host triplet.  If you think this
 6.27748 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.27749 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.27750 ++whose name does not start with the host triplet.  If you think this
 6.27751 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.27752 ++ac_tool_warned=yes ;;
 6.27753 ++esac
 6.27754 ++    NMEDIT=$ac_ct_NMEDIT
 6.27755 ++  fi
 6.27756 + else
 6.27757 +   NMEDIT="$ac_cv_prog_NMEDIT"
 6.27758 + fi
 6.27759 +@@ -6311,8 +7371,8 @@
 6.27760 +     if test -n "$ac_tool_prefix"; then
 6.27761 +   # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
 6.27762 + set dummy ${ac_tool_prefix}lipo; ac_word=$2
 6.27763 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27764 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27765 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27766 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27767 + if test "${ac_cv_prog_LIPO+set}" = set; then
 6.27768 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27769 + else
 6.27770 +@@ -6325,32 +7385,34 @@
 6.27771 +   IFS=$as_save_IFS
 6.27772 +   test -z "$as_dir" && as_dir=.
 6.27773 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27774 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27775 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27776 +     ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
 6.27777 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27778 +     break 2
 6.27779 +   fi
 6.27780 + done
 6.27781 + done
 6.27782 ++IFS=$as_save_IFS
 6.27783 + 
 6.27784 + fi
 6.27785 + fi
 6.27786 + LIPO=$ac_cv_prog_LIPO
 6.27787 + if test -n "$LIPO"; then
 6.27788 +-  echo "$as_me:$LINENO: result: $LIPO" >&5
 6.27789 +-echo "${ECHO_T}$LIPO" >&6
 6.27790 ++  { echo "$as_me:$LINENO: result: $LIPO" >&5
 6.27791 ++echo "${ECHO_T}$LIPO" >&6; }
 6.27792 + else
 6.27793 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27794 +-echo "${ECHO_T}no" >&6
 6.27795 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.27796 ++echo "${ECHO_T}no" >&6; }
 6.27797 + fi
 6.27798 + 
 6.27799 ++
 6.27800 + fi
 6.27801 + if test -z "$ac_cv_prog_LIPO"; then
 6.27802 +   ac_ct_LIPO=$LIPO
 6.27803 +   # Extract the first word of "lipo", so it can be a program name with args.
 6.27804 + set dummy lipo; ac_word=$2
 6.27805 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27806 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27807 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27808 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27809 + if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then
 6.27810 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27811 + else
 6.27812 +@@ -6363,27 +7425,41 @@
 6.27813 +   IFS=$as_save_IFS
 6.27814 +   test -z "$as_dir" && as_dir=.
 6.27815 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27816 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27817 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27818 +     ac_cv_prog_ac_ct_LIPO="lipo"
 6.27819 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27820 +     break 2
 6.27821 +   fi
 6.27822 + done
 6.27823 + done
 6.27824 ++IFS=$as_save_IFS
 6.27825 + 
 6.27826 +-  test -z "$ac_cv_prog_ac_ct_LIPO" && ac_cv_prog_ac_ct_LIPO=":"
 6.27827 + fi
 6.27828 + fi
 6.27829 + ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
 6.27830 + if test -n "$ac_ct_LIPO"; then
 6.27831 +-  echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5
 6.27832 +-echo "${ECHO_T}$ac_ct_LIPO" >&6
 6.27833 ++  { echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5
 6.27834 ++echo "${ECHO_T}$ac_ct_LIPO" >&6; }
 6.27835 + else
 6.27836 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27837 +-echo "${ECHO_T}no" >&6
 6.27838 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.27839 ++echo "${ECHO_T}no" >&6; }
 6.27840 + fi
 6.27841 + 
 6.27842 +-  LIPO=$ac_ct_LIPO
 6.27843 ++  if test "x$ac_ct_LIPO" = x; then
 6.27844 ++    LIPO=":"
 6.27845 ++  else
 6.27846 ++    case $cross_compiling:$ac_tool_warned in
 6.27847 ++yes:)
 6.27848 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.27849 ++whose name does not start with the host triplet.  If you think this
 6.27850 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.27851 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.27852 ++whose name does not start with the host triplet.  If you think this
 6.27853 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.27854 ++ac_tool_warned=yes ;;
 6.27855 ++esac
 6.27856 ++    LIPO=$ac_ct_LIPO
 6.27857 ++  fi
 6.27858 + else
 6.27859 +   LIPO="$ac_cv_prog_LIPO"
 6.27860 + fi
 6.27861 +@@ -6391,8 +7467,8 @@
 6.27862 +     if test -n "$ac_tool_prefix"; then
 6.27863 +   # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
 6.27864 + set dummy ${ac_tool_prefix}otool; ac_word=$2
 6.27865 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27866 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27867 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27868 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27869 + if test "${ac_cv_prog_OTOOL+set}" = set; then
 6.27870 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27871 + else
 6.27872 +@@ -6405,32 +7481,34 @@
 6.27873 +   IFS=$as_save_IFS
 6.27874 +   test -z "$as_dir" && as_dir=.
 6.27875 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27876 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27877 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27878 +     ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
 6.27879 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27880 +     break 2
 6.27881 +   fi
 6.27882 + done
 6.27883 + done
 6.27884 ++IFS=$as_save_IFS
 6.27885 + 
 6.27886 + fi
 6.27887 + fi
 6.27888 + OTOOL=$ac_cv_prog_OTOOL
 6.27889 + if test -n "$OTOOL"; then
 6.27890 +-  echo "$as_me:$LINENO: result: $OTOOL" >&5
 6.27891 +-echo "${ECHO_T}$OTOOL" >&6
 6.27892 ++  { echo "$as_me:$LINENO: result: $OTOOL" >&5
 6.27893 ++echo "${ECHO_T}$OTOOL" >&6; }
 6.27894 + else
 6.27895 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27896 +-echo "${ECHO_T}no" >&6
 6.27897 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.27898 ++echo "${ECHO_T}no" >&6; }
 6.27899 + fi
 6.27900 + 
 6.27901 ++
 6.27902 + fi
 6.27903 + if test -z "$ac_cv_prog_OTOOL"; then
 6.27904 +   ac_ct_OTOOL=$OTOOL
 6.27905 +   # Extract the first word of "otool", so it can be a program name with args.
 6.27906 + set dummy otool; ac_word=$2
 6.27907 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27908 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27909 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27910 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27911 + if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then
 6.27912 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27913 + else
 6.27914 +@@ -6443,27 +7521,41 @@
 6.27915 +   IFS=$as_save_IFS
 6.27916 +   test -z "$as_dir" && as_dir=.
 6.27917 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27918 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27919 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27920 +     ac_cv_prog_ac_ct_OTOOL="otool"
 6.27921 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27922 +     break 2
 6.27923 +   fi
 6.27924 + done
 6.27925 + done
 6.27926 ++IFS=$as_save_IFS
 6.27927 + 
 6.27928 +-  test -z "$ac_cv_prog_ac_ct_OTOOL" && ac_cv_prog_ac_ct_OTOOL=":"
 6.27929 + fi
 6.27930 + fi
 6.27931 + ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
 6.27932 + if test -n "$ac_ct_OTOOL"; then
 6.27933 +-  echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5
 6.27934 +-echo "${ECHO_T}$ac_ct_OTOOL" >&6
 6.27935 ++  { echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5
 6.27936 ++echo "${ECHO_T}$ac_ct_OTOOL" >&6; }
 6.27937 + else
 6.27938 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27939 +-echo "${ECHO_T}no" >&6
 6.27940 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.27941 ++echo "${ECHO_T}no" >&6; }
 6.27942 + fi
 6.27943 + 
 6.27944 +-  OTOOL=$ac_ct_OTOOL
 6.27945 ++  if test "x$ac_ct_OTOOL" = x; then
 6.27946 ++    OTOOL=":"
 6.27947 ++  else
 6.27948 ++    case $cross_compiling:$ac_tool_warned in
 6.27949 ++yes:)
 6.27950 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.27951 ++whose name does not start with the host triplet.  If you think this
 6.27952 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.27953 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.27954 ++whose name does not start with the host triplet.  If you think this
 6.27955 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.27956 ++ac_tool_warned=yes ;;
 6.27957 ++esac
 6.27958 ++    OTOOL=$ac_ct_OTOOL
 6.27959 ++  fi
 6.27960 + else
 6.27961 +   OTOOL="$ac_cv_prog_OTOOL"
 6.27962 + fi
 6.27963 +@@ -6471,8 +7563,8 @@
 6.27964 +     if test -n "$ac_tool_prefix"; then
 6.27965 +   # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
 6.27966 + set dummy ${ac_tool_prefix}otool64; ac_word=$2
 6.27967 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27968 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.27969 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.27970 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.27971 + if test "${ac_cv_prog_OTOOL64+set}" = set; then
 6.27972 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.27973 + else
 6.27974 +@@ -6485,32 +7577,34 @@
 6.27975 +   IFS=$as_save_IFS
 6.27976 +   test -z "$as_dir" && as_dir=.
 6.27977 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.27978 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.27979 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.27980 +     ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
 6.27981 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.27982 +     break 2
 6.27983 +   fi
 6.27984 + done
 6.27985 + done
 6.27986 ++IFS=$as_save_IFS
 6.27987 + 
 6.27988 + fi
 6.27989 + fi
 6.27990 + OTOOL64=$ac_cv_prog_OTOOL64
 6.27991 + if test -n "$OTOOL64"; then
 6.27992 +-  echo "$as_me:$LINENO: result: $OTOOL64" >&5
 6.27993 +-echo "${ECHO_T}$OTOOL64" >&6
 6.27994 ++  { echo "$as_me:$LINENO: result: $OTOOL64" >&5
 6.27995 ++echo "${ECHO_T}$OTOOL64" >&6; }
 6.27996 + else
 6.27997 +-  echo "$as_me:$LINENO: result: no" >&5
 6.27998 +-echo "${ECHO_T}no" >&6
 6.27999 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.28000 ++echo "${ECHO_T}no" >&6; }
 6.28001 + fi
 6.28002 + 
 6.28003 ++
 6.28004 + fi
 6.28005 + if test -z "$ac_cv_prog_OTOOL64"; then
 6.28006 +   ac_ct_OTOOL64=$OTOOL64
 6.28007 +   # Extract the first word of "otool64", so it can be a program name with args.
 6.28008 + set dummy otool64; ac_word=$2
 6.28009 +-echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.28010 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 6.28011 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 6.28012 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 6.28013 + if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then
 6.28014 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.28015 + else
 6.28016 +@@ -6523,27 +7617,41 @@
 6.28017 +   IFS=$as_save_IFS
 6.28018 +   test -z "$as_dir" && as_dir=.
 6.28019 +   for ac_exec_ext in '' $ac_executable_extensions; do
 6.28020 +-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
 6.28021 ++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 6.28022 +     ac_cv_prog_ac_ct_OTOOL64="otool64"
 6.28023 +     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 6.28024 +     break 2
 6.28025 +   fi
 6.28026 + done
 6.28027 + done
 6.28028 ++IFS=$as_save_IFS
 6.28029 + 
 6.28030 +-  test -z "$ac_cv_prog_ac_ct_OTOOL64" && ac_cv_prog_ac_ct_OTOOL64=":"
 6.28031 + fi
 6.28032 + fi
 6.28033 + ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
 6.28034 + if test -n "$ac_ct_OTOOL64"; then
 6.28035 +-  echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5
 6.28036 +-echo "${ECHO_T}$ac_ct_OTOOL64" >&6
 6.28037 ++  { echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5
 6.28038 ++echo "${ECHO_T}$ac_ct_OTOOL64" >&6; }
 6.28039 + else
 6.28040 +-  echo "$as_me:$LINENO: result: no" >&5
 6.28041 +-echo "${ECHO_T}no" >&6
 6.28042 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.28043 ++echo "${ECHO_T}no" >&6; }
 6.28044 + fi
 6.28045 + 
 6.28046 +-  OTOOL64=$ac_ct_OTOOL64
 6.28047 ++  if test "x$ac_ct_OTOOL64" = x; then
 6.28048 ++    OTOOL64=":"
 6.28049 ++  else
 6.28050 ++    case $cross_compiling:$ac_tool_warned in
 6.28051 ++yes:)
 6.28052 ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
 6.28053 ++whose name does not start with the host triplet.  If you think this
 6.28054 ++configuration is useful to you, please write to autoconf@gnu.org." >&5
 6.28055 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
 6.28056 ++whose name does not start with the host triplet.  If you think this
 6.28057 ++configuration is useful to you, please write to autoconf@gnu.org." >&2;}
 6.28058 ++ac_tool_warned=yes ;;
 6.28059 ++esac
 6.28060 ++    OTOOL64=$ac_ct_OTOOL64
 6.28061 ++  fi
 6.28062 + else
 6.28063 +   OTOOL64="$ac_cv_prog_OTOOL64"
 6.28064 + fi
 6.28065 +@@ -6574,8 +7682,8 @@
 6.28066 + 
 6.28067 + 
 6.28068 + 
 6.28069 +-    echo "$as_me:$LINENO: checking for -single_module linker flag" >&5
 6.28070 +-echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6
 6.28071 ++    { echo "$as_me:$LINENO: checking for -single_module linker flag" >&5
 6.28072 ++echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6; }
 6.28073 + if test "${lt_cv_apple_cc_single_mod+set}" = set; then
 6.28074 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.28075 + else
 6.28076 +@@ -6601,10 +7709,10 @@
 6.28077 + 	rm -f conftest.*
 6.28078 +       fi
 6.28079 + fi
 6.28080 +-echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5
 6.28081 +-echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6
 6.28082 +-    echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5
 6.28083 +-echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6
 6.28084 ++{ echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5
 6.28085 ++echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6; }
 6.28086 ++    { echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5
 6.28087 ++echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6; }
 6.28088 + if test "${lt_cv_ld_exported_symbols_list+set}" = set; then
 6.28089 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.28090 + else
 6.28091 +@@ -6628,41 +7736,38 @@
 6.28092 + }
 6.28093 + _ACEOF
 6.28094 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.28095 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.28096 +-  (eval $ac_link) 2>conftest.er1
 6.28097 ++if { (ac_try="$ac_link"
 6.28098 ++case "(($ac_try" in
 6.28099 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.28100 ++  *) ac_try_echo=$ac_try;;
 6.28101 ++esac
 6.28102 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.28103 ++  (eval "$ac_link") 2>conftest.er1
 6.28104 +   ac_status=$?
 6.28105 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.28106 +   rm -f conftest.er1
 6.28107 +   cat conftest.err >&5
 6.28108 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28109 +-  (exit $ac_status); } &&
 6.28110 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.28111 +-			 || test ! -s conftest.err'
 6.28112 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.28113 +-  (eval $ac_try) 2>&5
 6.28114 +-  ac_status=$?
 6.28115 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28116 +-  (exit $ac_status); }; } &&
 6.28117 +-	 { ac_try='test -s conftest$ac_exeext'
 6.28118 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.28119 +-  (eval $ac_try) 2>&5
 6.28120 +-  ac_status=$?
 6.28121 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28122 +-  (exit $ac_status); }; }; then
 6.28123 ++  (exit $ac_status); } && {
 6.28124 ++	 test -z "$ac_c_werror_flag" ||
 6.28125 ++	 test ! -s conftest.err
 6.28126 ++       } && test -s conftest$ac_exeext &&
 6.28127 ++       $as_test_x conftest$ac_exeext; then
 6.28128 +   lt_cv_ld_exported_symbols_list=yes
 6.28129 + else
 6.28130 +   echo "$as_me: failed program was:" >&5
 6.28131 + sed 's/^/| /' conftest.$ac_ext >&5
 6.28132 + 
 6.28133 +-lt_cv_ld_exported_symbols_list=no
 6.28134 ++	lt_cv_ld_exported_symbols_list=no
 6.28135 + fi
 6.28136 +-rm -f conftest.err conftest.$ac_objext \
 6.28137 ++
 6.28138 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.28139 +       conftest$ac_exeext conftest.$ac_ext
 6.28140 + 	LDFLAGS="$save_LDFLAGS"
 6.28141 + 
 6.28142 + fi
 6.28143 +-echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5
 6.28144 +-echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6
 6.28145 ++{ echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5
 6.28146 ++echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6; }
 6.28147 +     case $host_os in
 6.28148 +     rhapsody* | darwin1.[012])
 6.28149 +       _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
 6.28150 +@@ -6703,8 +7808,8 @@
 6.28151 + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 6.28152 + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 6.28153 + ac_compiler_gnu=$ac_cv_c_compiler_gnu
 6.28154 +-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
 6.28155 +-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
 6.28156 ++{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
 6.28157 ++echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
 6.28158 + # On Suns, sometimes $CPP names a directory.
 6.28159 + if test -n "$CPP" && test -d "$CPP"; then
 6.28160 +   CPP=
 6.28161 +@@ -6738,24 +7843,22 @@
 6.28162 + #endif
 6.28163 + 		     Syntax error
 6.28164 + _ACEOF
 6.28165 +-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
 6.28166 +-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
 6.28167 ++if { (ac_try="$ac_cpp conftest.$ac_ext"
 6.28168 ++case "(($ac_try" in
 6.28169 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.28170 ++  *) ac_try_echo=$ac_try;;
 6.28171 ++esac
 6.28172 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.28173 ++  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
 6.28174 +   ac_status=$?
 6.28175 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.28176 +   rm -f conftest.er1
 6.28177 +   cat conftest.err >&5
 6.28178 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28179 +-  (exit $ac_status); } >/dev/null; then
 6.28180 +-  if test -s conftest.err; then
 6.28181 +-    ac_cpp_err=$ac_c_preproc_warn_flag
 6.28182 +-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
 6.28183 +-  else
 6.28184 +-    ac_cpp_err=
 6.28185 +-  fi
 6.28186 +-else
 6.28187 +-  ac_cpp_err=yes
 6.28188 +-fi
 6.28189 +-if test -z "$ac_cpp_err"; then
 6.28190 ++  (exit $ac_status); } >/dev/null && {
 6.28191 ++	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 6.28192 ++	 test ! -s conftest.err
 6.28193 ++       }; then
 6.28194 +   :
 6.28195 + else
 6.28196 +   echo "$as_me: failed program was:" >&5
 6.28197 +@@ -6764,9 +7867,10 @@
 6.28198 +   # Broken: fails on valid input.
 6.28199 + continue
 6.28200 + fi
 6.28201 ++
 6.28202 + rm -f conftest.err conftest.$ac_ext
 6.28203 + 
 6.28204 +-  # OK, works on sane cases.  Now check whether non-existent headers
 6.28205 ++  # OK, works on sane cases.  Now check whether nonexistent headers
 6.28206 +   # can be detected and how.
 6.28207 +   cat >conftest.$ac_ext <<_ACEOF
 6.28208 + /* confdefs.h.  */
 6.28209 +@@ -6776,24 +7880,22 @@
 6.28210 + /* end confdefs.h.  */
 6.28211 + #include <ac_nonexistent.h>
 6.28212 + _ACEOF
 6.28213 +-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
 6.28214 +-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
 6.28215 ++if { (ac_try="$ac_cpp conftest.$ac_ext"
 6.28216 ++case "(($ac_try" in
 6.28217 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.28218 ++  *) ac_try_echo=$ac_try;;
 6.28219 ++esac
 6.28220 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.28221 ++  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
 6.28222 +   ac_status=$?
 6.28223 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.28224 +   rm -f conftest.er1
 6.28225 +   cat conftest.err >&5
 6.28226 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28227 +-  (exit $ac_status); } >/dev/null; then
 6.28228 +-  if test -s conftest.err; then
 6.28229 +-    ac_cpp_err=$ac_c_preproc_warn_flag
 6.28230 +-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
 6.28231 +-  else
 6.28232 +-    ac_cpp_err=
 6.28233 +-  fi
 6.28234 +-else
 6.28235 +-  ac_cpp_err=yes
 6.28236 +-fi
 6.28237 +-if test -z "$ac_cpp_err"; then
 6.28238 ++  (exit $ac_status); } >/dev/null && {
 6.28239 ++	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 6.28240 ++	 test ! -s conftest.err
 6.28241 ++       }; then
 6.28242 +   # Broken: success on invalid input.
 6.28243 + continue
 6.28244 + else
 6.28245 +@@ -6804,6 +7906,7 @@
 6.28246 + ac_preproc_ok=:
 6.28247 + break
 6.28248 + fi
 6.28249 ++
 6.28250 + rm -f conftest.err conftest.$ac_ext
 6.28251 + 
 6.28252 + done
 6.28253 +@@ -6821,8 +7924,8 @@
 6.28254 + else
 6.28255 +   ac_cv_prog_CPP=$CPP
 6.28256 + fi
 6.28257 +-echo "$as_me:$LINENO: result: $CPP" >&5
 6.28258 +-echo "${ECHO_T}$CPP" >&6
 6.28259 ++{ echo "$as_me:$LINENO: result: $CPP" >&5
 6.28260 ++echo "${ECHO_T}$CPP" >&6; }
 6.28261 + ac_preproc_ok=false
 6.28262 + for ac_c_preproc_warn_flag in '' yes
 6.28263 + do
 6.28264 +@@ -6845,24 +7948,22 @@
 6.28265 + #endif
 6.28266 + 		     Syntax error
 6.28267 + _ACEOF
 6.28268 +-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
 6.28269 +-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
 6.28270 ++if { (ac_try="$ac_cpp conftest.$ac_ext"
 6.28271 ++case "(($ac_try" in
 6.28272 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.28273 ++  *) ac_try_echo=$ac_try;;
 6.28274 ++esac
 6.28275 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.28276 ++  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
 6.28277 +   ac_status=$?
 6.28278 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.28279 +   rm -f conftest.er1
 6.28280 +   cat conftest.err >&5
 6.28281 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28282 +-  (exit $ac_status); } >/dev/null; then
 6.28283 +-  if test -s conftest.err; then
 6.28284 +-    ac_cpp_err=$ac_c_preproc_warn_flag
 6.28285 +-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
 6.28286 +-  else
 6.28287 +-    ac_cpp_err=
 6.28288 +-  fi
 6.28289 +-else
 6.28290 +-  ac_cpp_err=yes
 6.28291 +-fi
 6.28292 +-if test -z "$ac_cpp_err"; then
 6.28293 ++  (exit $ac_status); } >/dev/null && {
 6.28294 ++	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 6.28295 ++	 test ! -s conftest.err
 6.28296 ++       }; then
 6.28297 +   :
 6.28298 + else
 6.28299 +   echo "$as_me: failed program was:" >&5
 6.28300 +@@ -6871,9 +7972,10 @@
 6.28301 +   # Broken: fails on valid input.
 6.28302 + continue
 6.28303 + fi
 6.28304 ++
 6.28305 + rm -f conftest.err conftest.$ac_ext
 6.28306 + 
 6.28307 +-  # OK, works on sane cases.  Now check whether non-existent headers
 6.28308 ++  # OK, works on sane cases.  Now check whether nonexistent headers
 6.28309 +   # can be detected and how.
 6.28310 +   cat >conftest.$ac_ext <<_ACEOF
 6.28311 + /* confdefs.h.  */
 6.28312 +@@ -6883,24 +7985,22 @@
 6.28313 + /* end confdefs.h.  */
 6.28314 + #include <ac_nonexistent.h>
 6.28315 + _ACEOF
 6.28316 +-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
 6.28317 +-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
 6.28318 ++if { (ac_try="$ac_cpp conftest.$ac_ext"
 6.28319 ++case "(($ac_try" in
 6.28320 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.28321 ++  *) ac_try_echo=$ac_try;;
 6.28322 ++esac
 6.28323 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.28324 ++  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
 6.28325 +   ac_status=$?
 6.28326 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.28327 +   rm -f conftest.er1
 6.28328 +   cat conftest.err >&5
 6.28329 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28330 +-  (exit $ac_status); } >/dev/null; then
 6.28331 +-  if test -s conftest.err; then
 6.28332 +-    ac_cpp_err=$ac_c_preproc_warn_flag
 6.28333 +-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
 6.28334 +-  else
 6.28335 +-    ac_cpp_err=
 6.28336 +-  fi
 6.28337 +-else
 6.28338 +-  ac_cpp_err=yes
 6.28339 +-fi
 6.28340 +-if test -z "$ac_cpp_err"; then
 6.28341 ++  (exit $ac_status); } >/dev/null && {
 6.28342 ++	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 6.28343 ++	 test ! -s conftest.err
 6.28344 ++       }; then
 6.28345 +   # Broken: success on invalid input.
 6.28346 + continue
 6.28347 + else
 6.28348 +@@ -6911,6 +8011,7 @@
 6.28349 + ac_preproc_ok=:
 6.28350 + break
 6.28351 + fi
 6.28352 ++
 6.28353 + rm -f conftest.err conftest.$ac_ext
 6.28354 + 
 6.28355 + done
 6.28356 +@@ -6933,8 +8034,8 @@
 6.28357 + ac_compiler_gnu=$ac_cv_c_compiler_gnu
 6.28358 + 
 6.28359 + 
 6.28360 +-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
 6.28361 +-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
 6.28362 ++{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
 6.28363 ++echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
 6.28364 + if test "${ac_cv_header_stdc+set}" = set; then
 6.28365 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.28366 + else
 6.28367 +@@ -6958,35 +8059,31 @@
 6.28368 + }
 6.28369 + _ACEOF
 6.28370 + rm -f conftest.$ac_objext
 6.28371 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.28372 +-  (eval $ac_compile) 2>conftest.er1
 6.28373 ++if { (ac_try="$ac_compile"
 6.28374 ++case "(($ac_try" in
 6.28375 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.28376 ++  *) ac_try_echo=$ac_try;;
 6.28377 ++esac
 6.28378 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.28379 ++  (eval "$ac_compile") 2>conftest.er1
 6.28380 +   ac_status=$?
 6.28381 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.28382 +   rm -f conftest.er1
 6.28383 +   cat conftest.err >&5
 6.28384 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28385 +-  (exit $ac_status); } &&
 6.28386 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.28387 +-			 || test ! -s conftest.err'
 6.28388 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.28389 +-  (eval $ac_try) 2>&5
 6.28390 +-  ac_status=$?
 6.28391 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28392 +-  (exit $ac_status); }; } &&
 6.28393 +-	 { ac_try='test -s conftest.$ac_objext'
 6.28394 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.28395 +-  (eval $ac_try) 2>&5
 6.28396 +-  ac_status=$?
 6.28397 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28398 +-  (exit $ac_status); }; }; then
 6.28399 ++  (exit $ac_status); } && {
 6.28400 ++	 test -z "$ac_c_werror_flag" ||
 6.28401 ++	 test ! -s conftest.err
 6.28402 ++       } && test -s conftest.$ac_objext; then
 6.28403 +   ac_cv_header_stdc=yes
 6.28404 + else
 6.28405 +   echo "$as_me: failed program was:" >&5
 6.28406 + sed 's/^/| /' conftest.$ac_ext >&5
 6.28407 + 
 6.28408 +-ac_cv_header_stdc=no
 6.28409 ++	ac_cv_header_stdc=no
 6.28410 + fi
 6.28411 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 6.28412 ++
 6.28413 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 6.28414 + 
 6.28415 + if test $ac_cv_header_stdc = yes; then
 6.28416 +   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 6.28417 +@@ -7042,6 +8139,7 @@
 6.28418 + cat >>conftest.$ac_ext <<_ACEOF
 6.28419 + /* end confdefs.h.  */
 6.28420 + #include <ctype.h>
 6.28421 ++#include <stdlib.h>
 6.28422 + #if ((' ' & 0x0FF) == 0x020)
 6.28423 + # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
 6.28424 + # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
 6.28425 +@@ -7061,18 +8159,27 @@
 6.28426 +   for (i = 0; i < 256; i++)
 6.28427 +     if (XOR (islower (i), ISLOWER (i))
 6.28428 + 	|| toupper (i) != TOUPPER (i))
 6.28429 +-      exit(2);
 6.28430 +-  exit (0);
 6.28431 ++      return 2;
 6.28432 ++  return 0;
 6.28433 + }
 6.28434 + _ACEOF
 6.28435 + rm -f conftest$ac_exeext
 6.28436 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.28437 +-  (eval $ac_link) 2>&5
 6.28438 ++if { (ac_try="$ac_link"
 6.28439 ++case "(($ac_try" in
 6.28440 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.28441 ++  *) ac_try_echo=$ac_try;;
 6.28442 ++esac
 6.28443 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.28444 ++  (eval "$ac_link") 2>&5
 6.28445 +   ac_status=$?
 6.28446 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28447 +   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
 6.28448 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.28449 +-  (eval $ac_try) 2>&5
 6.28450 ++  { (case "(($ac_try" in
 6.28451 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.28452 ++  *) ac_try_echo=$ac_try;;
 6.28453 ++esac
 6.28454 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.28455 ++  (eval "$ac_try") 2>&5
 6.28456 +   ac_status=$?
 6.28457 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28458 +   (exit $ac_status); }; }; then
 6.28459 +@@ -7085,12 +8192,14 @@
 6.28460 + ( exit $ac_status )
 6.28461 + ac_cv_header_stdc=no
 6.28462 + fi
 6.28463 +-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 6.28464 ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 6.28465 + fi
 6.28466 ++
 6.28467 ++
 6.28468 + fi
 6.28469 + fi
 6.28470 +-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
 6.28471 +-echo "${ECHO_T}$ac_cv_header_stdc" >&6
 6.28472 ++{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
 6.28473 ++echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
 6.28474 + if test $ac_cv_header_stdc = yes; then
 6.28475 + 
 6.28476 + cat >>confdefs.h <<\_ACEOF
 6.28477 +@@ -7113,9 +8222,9 @@
 6.28478 + 		  inttypes.h stdint.h unistd.h
 6.28479 + do
 6.28480 + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
 6.28481 +-echo "$as_me:$LINENO: checking for $ac_header" >&5
 6.28482 +-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
 6.28483 +-if eval "test \"\${$as_ac_Header+set}\" = set"; then
 6.28484 ++{ echo "$as_me:$LINENO: checking for $ac_header" >&5
 6.28485 ++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
 6.28486 ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
 6.28487 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.28488 + else
 6.28489 +   cat >conftest.$ac_ext <<_ACEOF
 6.28490 +@@ -7129,38 +8238,35 @@
 6.28491 + #include <$ac_header>
 6.28492 + _ACEOF
 6.28493 + rm -f conftest.$ac_objext
 6.28494 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.28495 +-  (eval $ac_compile) 2>conftest.er1
 6.28496 ++if { (ac_try="$ac_compile"
 6.28497 ++case "(($ac_try" in
 6.28498 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.28499 ++  *) ac_try_echo=$ac_try;;
 6.28500 ++esac
 6.28501 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.28502 ++  (eval "$ac_compile") 2>conftest.er1
 6.28503 +   ac_status=$?
 6.28504 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.28505 +   rm -f conftest.er1
 6.28506 +   cat conftest.err >&5
 6.28507 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28508 +-  (exit $ac_status); } &&
 6.28509 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.28510 +-			 || test ! -s conftest.err'
 6.28511 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.28512 +-  (eval $ac_try) 2>&5
 6.28513 +-  ac_status=$?
 6.28514 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28515 +-  (exit $ac_status); }; } &&
 6.28516 +-	 { ac_try='test -s conftest.$ac_objext'
 6.28517 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.28518 +-  (eval $ac_try) 2>&5
 6.28519 +-  ac_status=$?
 6.28520 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28521 +-  (exit $ac_status); }; }; then
 6.28522 ++  (exit $ac_status); } && {
 6.28523 ++	 test -z "$ac_c_werror_flag" ||
 6.28524 ++	 test ! -s conftest.err
 6.28525 ++       } && test -s conftest.$ac_objext; then
 6.28526 +   eval "$as_ac_Header=yes"
 6.28527 + else
 6.28528 +   echo "$as_me: failed program was:" >&5
 6.28529 + sed 's/^/| /' conftest.$ac_ext >&5
 6.28530 + 
 6.28531 +-eval "$as_ac_Header=no"
 6.28532 ++	eval "$as_ac_Header=no"
 6.28533 + fi
 6.28534 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 6.28535 ++
 6.28536 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 6.28537 + fi
 6.28538 +-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
 6.28539 +-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 6.28540 ++ac_res=`eval echo '${'$as_ac_Header'}'`
 6.28541 ++	       { echo "$as_me:$LINENO: result: $ac_res" >&5
 6.28542 ++echo "${ECHO_T}$ac_res" >&6; }
 6.28543 + if test `eval echo '${'$as_ac_Header'}'` = yes; then
 6.28544 +   cat >>confdefs.h <<_ACEOF
 6.28545 + #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 6.28546 +@@ -7175,9 +8281,9 @@
 6.28547 + for ac_header in dlfcn.h
 6.28548 + do
 6.28549 + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
 6.28550 +-echo "$as_me:$LINENO: checking for $ac_header" >&5
 6.28551 +-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
 6.28552 +-if eval "test \"\${$as_ac_Header+set}\" = set"; then
 6.28553 ++{ echo "$as_me:$LINENO: checking for $ac_header" >&5
 6.28554 ++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
 6.28555 ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
 6.28556 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.28557 + else
 6.28558 +   cat >conftest.$ac_ext <<_ACEOF
 6.28559 +@@ -7191,38 +8297,35 @@
 6.28560 + #include <$ac_header>
 6.28561 + _ACEOF
 6.28562 + rm -f conftest.$ac_objext
 6.28563 +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.28564 +-  (eval $ac_compile) 2>conftest.er1
 6.28565 ++if { (ac_try="$ac_compile"
 6.28566 ++case "(($ac_try" in
 6.28567 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.28568 ++  *) ac_try_echo=$ac_try;;
 6.28569 ++esac
 6.28570 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.28571 ++  (eval "$ac_compile") 2>conftest.er1
 6.28572 +   ac_status=$?
 6.28573 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.28574 +   rm -f conftest.er1
 6.28575 +   cat conftest.err >&5
 6.28576 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28577 +-  (exit $ac_status); } &&
 6.28578 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.28579 +-			 || test ! -s conftest.err'
 6.28580 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.28581 +-  (eval $ac_try) 2>&5
 6.28582 +-  ac_status=$?
 6.28583 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28584 +-  (exit $ac_status); }; } &&
 6.28585 +-	 { ac_try='test -s conftest.$ac_objext'
 6.28586 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.28587 +-  (eval $ac_try) 2>&5
 6.28588 +-  ac_status=$?
 6.28589 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.28590 +-  (exit $ac_status); }; }; then
 6.28591 ++  (exit $ac_status); } && {
 6.28592 ++	 test -z "$ac_c_werror_flag" ||
 6.28593 ++	 test ! -s conftest.err
 6.28594 ++       } && test -s conftest.$ac_objext; then
 6.28595 +   eval "$as_ac_Header=yes"
 6.28596 + else
 6.28597 +   echo "$as_me: failed program was:" >&5
 6.28598 + sed 's/^/| /' conftest.$ac_ext >&5
 6.28599 + 
 6.28600 +-eval "$as_ac_Header=no"
 6.28601 ++	eval "$as_ac_Header=no"
 6.28602 + fi
 6.28603 +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 6.28604 ++
 6.28605 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 6.28606 + fi
 6.28607 +-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
 6.28608 +-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 6.28609 ++ac_res=`eval echo '${'$as_ac_Header'}'`
 6.28610 ++	       { echo "$as_me:$LINENO: result: $ac_res" >&5
 6.28611 ++echo "${ECHO_T}$ac_res" >&6; }
 6.28612 + if test `eval echo '${'$as_ac_Header'}'` = yes; then
 6.28613 +   cat >>confdefs.h <<_ACEOF
 6.28614 + #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 6.28615 +@@ -7242,10 +8345,9 @@
 6.28616 + 
 6.28617 + 
 6.28618 + 
 6.28619 +-            # Check whether --enable-shared or --disable-shared was given.
 6.28620 ++            # Check whether --enable-shared was given.
 6.28621 + if test "${enable_shared+set}" = set; then
 6.28622 +-  enableval="$enable_shared"
 6.28623 +-  p=${PACKAGE-default}
 6.28624 ++  enableval=$enable_shared; p=${PACKAGE-default}
 6.28625 +     case $enableval in
 6.28626 +     yes) enable_shared=yes ;;
 6.28627 +     no) enable_shared=no ;;
 6.28628 +@@ -7264,7 +8366,7 @@
 6.28629 +     esac
 6.28630 + else
 6.28631 +   enable_shared=yes
 6.28632 +-fi;
 6.28633 ++fi
 6.28634 + 
 6.28635 + 
 6.28636 + 
 6.28637 +@@ -7273,10 +8375,10 @@
 6.28638 + 
 6.28639 + 
 6.28640 + 
 6.28641 +-  # Check whether --enable-static or --disable-static was given.
 6.28642 ++
 6.28643 ++  # Check whether --enable-static was given.
 6.28644 + if test "${enable_static+set}" = set; then
 6.28645 +-  enableval="$enable_static"
 6.28646 +-  p=${PACKAGE-default}
 6.28647 ++  enableval=$enable_static; p=${PACKAGE-default}
 6.28648 +     case $enableval in
 6.28649 +     yes) enable_static=yes ;;
 6.28650 +     no) enable_static=no ;;
 6.28651 +@@ -7295,7 +8397,7 @@
 6.28652 +     esac
 6.28653 + else
 6.28654 +   enable_static=yes
 6.28655 +-fi;
 6.28656 ++fi
 6.28657 + 
 6.28658 + 
 6.28659 + 
 6.28660 +@@ -7305,13 +8407,14 @@
 6.28661 + 
 6.28662 + 
 6.28663 + 
 6.28664 +-# Check whether --with-pic or --without-pic was given.
 6.28665 ++
 6.28666 ++# Check whether --with-pic was given.
 6.28667 + if test "${with_pic+set}" = set; then
 6.28668 +-  withval="$with_pic"
 6.28669 +-  pic_mode="$withval"
 6.28670 ++  withval=$with_pic; pic_mode="$withval"
 6.28671 + else
 6.28672 +   pic_mode=default
 6.28673 +-fi;
 6.28674 ++fi
 6.28675 ++
 6.28676 + 
 6.28677 + test -z "$pic_mode" && pic_mode=default
 6.28678 + 
 6.28679 +@@ -7321,10 +8424,9 @@
 6.28680 + 
 6.28681 + 
 6.28682 + 
 6.28683 +-  # Check whether --enable-fast-install or --disable-fast-install was given.
 6.28684 ++  # Check whether --enable-fast-install was given.
 6.28685 + if test "${enable_fast_install+set}" = set; then
 6.28686 +-  enableval="$enable_fast_install"
 6.28687 +-  p=${PACKAGE-default}
 6.28688 ++  enableval=$enable_fast_install; p=${PACKAGE-default}
 6.28689 +     case $enableval in
 6.28690 +     yes) enable_fast_install=yes ;;
 6.28691 +     no) enable_fast_install=no ;;
 6.28692 +@@ -7343,7 +8445,8 @@
 6.28693 +     esac
 6.28694 + else
 6.28695 +   enable_fast_install=yes
 6.28696 +-fi;
 6.28697 ++fi
 6.28698 ++
 6.28699 + 
 6.28700 + 
 6.28701 + 
 6.28702 +@@ -7403,8 +8506,8 @@
 6.28703 +    setopt NO_GLOB_SUBST
 6.28704 + fi
 6.28705 + 
 6.28706 +-echo "$as_me:$LINENO: checking for objdir" >&5
 6.28707 +-echo $ECHO_N "checking for objdir... $ECHO_C" >&6
 6.28708 ++{ echo "$as_me:$LINENO: checking for objdir" >&5
 6.28709 ++echo $ECHO_N "checking for objdir... $ECHO_C" >&6; }
 6.28710 + if test "${lt_cv_objdir+set}" = set; then
 6.28711 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.28712 + else
 6.28713 +@@ -7418,8 +8521,8 @@
 6.28714 + fi
 6.28715 + rmdir .libs 2>/dev/null
 6.28716 + fi
 6.28717 +-echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
 6.28718 +-echo "${ECHO_T}$lt_cv_objdir" >&6
 6.28719 ++{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
 6.28720 ++echo "${ECHO_T}$lt_cv_objdir" >&6; }
 6.28721 + objdir=$lt_cv_objdir
 6.28722 + 
 6.28723 + 
 6.28724 +@@ -7511,8 +8614,8 @@
 6.28725 + case $deplibs_check_method in
 6.28726 + file_magic*)
 6.28727 +   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
 6.28728 +-    echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
 6.28729 +-echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
 6.28730 ++    { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
 6.28731 ++echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; }
 6.28732 + if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
 6.28733 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.28734 + else
 6.28735 +@@ -7564,11 +8667,11 @@
 6.28736 + 
 6.28737 + MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 6.28738 + if test -n "$MAGIC_CMD"; then
 6.28739 +-  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
 6.28740 +-echo "${ECHO_T}$MAGIC_CMD" >&6
 6.28741 ++  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
 6.28742 ++echo "${ECHO_T}$MAGIC_CMD" >&6; }
 6.28743 + else
 6.28744 +-  echo "$as_me:$LINENO: result: no" >&5
 6.28745 +-echo "${ECHO_T}no" >&6
 6.28746 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.28747 ++echo "${ECHO_T}no" >&6; }
 6.28748 + fi
 6.28749 + 
 6.28750 + 
 6.28751 +@@ -7577,8 +8680,8 @@
 6.28752 + 
 6.28753 + if test -z "$lt_cv_path_MAGIC_CMD"; then
 6.28754 +   if test -n "$ac_tool_prefix"; then
 6.28755 +-    echo "$as_me:$LINENO: checking for file" >&5
 6.28756 +-echo $ECHO_N "checking for file... $ECHO_C" >&6
 6.28757 ++    { echo "$as_me:$LINENO: checking for file" >&5
 6.28758 ++echo $ECHO_N "checking for file... $ECHO_C" >&6; }
 6.28759 + if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
 6.28760 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.28761 + else
 6.28762 +@@ -7630,11 +8733,11 @@
 6.28763 + 
 6.28764 + MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 6.28765 + if test -n "$MAGIC_CMD"; then
 6.28766 +-  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
 6.28767 +-echo "${ECHO_T}$MAGIC_CMD" >&6
 6.28768 ++  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
 6.28769 ++echo "${ECHO_T}$MAGIC_CMD" >&6; }
 6.28770 + else
 6.28771 +-  echo "$as_me:$LINENO: result: no" >&5
 6.28772 +-echo "${ECHO_T}no" >&6
 6.28773 ++  { echo "$as_me:$LINENO: result: no" >&5
 6.28774 ++echo "${ECHO_T}no" >&6; }
 6.28775 + fi
 6.28776 + 
 6.28777 + 
 6.28778 +@@ -7714,8 +8817,8 @@
 6.28779 + if test "$GCC" = yes; then
 6.28780 +   lt_prog_compiler_no_builtin_flag=' -fno-builtin'
 6.28781 + 
 6.28782 +-  echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
 6.28783 +-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
 6.28784 ++  { echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
 6.28785 ++echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
 6.28786 + if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
 6.28787 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.28788 + else
 6.28789 +@@ -7732,11 +8835,11 @@
 6.28790 +    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
 6.28791 +    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
 6.28792 +    -e 's:$: $lt_compiler_flag:'`
 6.28793 +-   (eval echo "\"\$as_me:7735: $lt_compile\"" >&5)
 6.28794 ++   (eval echo "\"\$as_me:8838: $lt_compile\"" >&5)
 6.28795 +    (eval "$lt_compile" 2>conftest.err)
 6.28796 +    ac_status=$?
 6.28797 +    cat conftest.err >&5
 6.28798 +-   echo "$as_me:7739: \$? = $ac_status" >&5
 6.28799 ++   echo "$as_me:8842: \$? = $ac_status" >&5
 6.28800 +    if (exit $ac_status) && test -s "$ac_outfile"; then
 6.28801 +      # The compiler can only warn and ignore the option if not recognized
 6.28802 +      # So say no if there are warnings other than the usual output.
 6.28803 +@@ -7749,8 +8852,8 @@
 6.28804 +    $RM conftest*
 6.28805 + 
 6.28806 + fi
 6.28807 +-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
 6.28808 +-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
 6.28809 ++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
 6.28810 ++echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 6.28811 + 
 6.28812 + if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
 6.28813 +     lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
 6.28814 +@@ -7769,8 +8872,8 @@
 6.28815 + lt_prog_compiler_pic=
 6.28816 + lt_prog_compiler_static=
 6.28817 + 
 6.28818 +-echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
 6.28819 +-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
 6.28820 ++{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
 6.28821 ++echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
 6.28822 + 
 6.28823 +   if test "$GCC" = yes; then
 6.28824 +     lt_prog_compiler_wl='-Wl,'
 6.28825 +@@ -8041,8 +9144,8 @@
 6.28826 +     lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
 6.28827 +     ;;
 6.28828 + esac
 6.28829 +-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
 6.28830 +-echo "${ECHO_T}$lt_prog_compiler_pic" >&6
 6.28831 ++{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
 6.28832 ++echo "${ECHO_T}$lt_prog_compiler_pic" >&6; }
 6.28833 + 
 6.28834 + 
 6.28835 + 
 6.28836 +@@ -8053,8 +9156,8 @@
 6.28837 + # Check to make sure the PIC flag actually works.
 6.28838 + #
 6.28839 + if test -n "$lt_prog_compiler_pic"; then
 6.28840 +-  echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
 6.28841 +-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6
 6.28842 ++  { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
 6.28843 ++echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; }
 6.28844 + if test "${lt_cv_prog_compiler_pic_works+set}" = set; then
 6.28845 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.28846 + else
 6.28847 +@@ -8071,11 +9174,11 @@
 6.28848 +    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
 6.28849 +    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
 6.28850 +    -e 's:$: $lt_compiler_flag:'`
 6.28851 +-   (eval echo "\"\$as_me:8074: $lt_compile\"" >&5)
 6.28852 ++   (eval echo "\"\$as_me:9177: $lt_compile\"" >&5)
 6.28853 +    (eval "$lt_compile" 2>conftest.err)
 6.28854 +    ac_status=$?
 6.28855 +    cat conftest.err >&5
 6.28856 +-   echo "$as_me:8078: \$? = $ac_status" >&5
 6.28857 ++   echo "$as_me:9181: \$? = $ac_status" >&5
 6.28858 +    if (exit $ac_status) && test -s "$ac_outfile"; then
 6.28859 +      # The compiler can only warn and ignore the option if not recognized
 6.28860 +      # So say no if there are warnings other than the usual output.
 6.28861 +@@ -8088,8 +9191,8 @@
 6.28862 +    $RM conftest*
 6.28863 + 
 6.28864 + fi
 6.28865 +-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5
 6.28866 +-echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6
 6.28867 ++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5
 6.28868 ++echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6; }
 6.28869 + 
 6.28870 + if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
 6.28871 +     case $lt_prog_compiler_pic in
 6.28872 +@@ -8112,8 +9215,8 @@
 6.28873 + # Check to make sure the static flag actually works.
 6.28874 + #
 6.28875 + wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
 6.28876 +-echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 6.28877 +-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6
 6.28878 ++{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 6.28879 ++echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
 6.28880 + if test "${lt_cv_prog_compiler_static_works+set}" = set; then
 6.28881 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.28882 + else
 6.28883 +@@ -8140,8 +9243,8 @@
 6.28884 +    LDFLAGS="$save_LDFLAGS"
 6.28885 + 
 6.28886 + fi
 6.28887 +-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5
 6.28888 +-echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6
 6.28889 ++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5
 6.28890 ++echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6; }
 6.28891 + 
 6.28892 + if test x"$lt_cv_prog_compiler_static_works" = xyes; then
 6.28893 +     :
 6.28894 +@@ -8155,8 +9258,8 @@
 6.28895 + 
 6.28896 + 
 6.28897 + 
 6.28898 +-  echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
 6.28899 +-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
 6.28900 ++  { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
 6.28901 ++echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
 6.28902 + if test "${lt_cv_prog_compiler_c_o+set}" = set; then
 6.28903 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.28904 + else
 6.28905 +@@ -8176,11 +9279,11 @@
 6.28906 +    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
 6.28907 +    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
 6.28908 +    -e 's:$: $lt_compiler_flag:'`
 6.28909 +-   (eval echo "\"\$as_me:8179: $lt_compile\"" >&5)
 6.28910 ++   (eval echo "\"\$as_me:9282: $lt_compile\"" >&5)
 6.28911 +    (eval "$lt_compile" 2>out/conftest.err)
 6.28912 +    ac_status=$?
 6.28913 +    cat out/conftest.err >&5
 6.28914 +-   echo "$as_me:8183: \$? = $ac_status" >&5
 6.28915 ++   echo "$as_me:9286: \$? = $ac_status" >&5
 6.28916 +    if (exit $ac_status) && test -s out/conftest2.$ac_objext
 6.28917 +    then
 6.28918 +      # The compiler can only warn and ignore the option if not recognized
 6.28919 +@@ -8202,16 +9305,16 @@
 6.28920 +    $RM conftest*
 6.28921 + 
 6.28922 + fi
 6.28923 +-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
 6.28924 +-echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6
 6.28925 ++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
 6.28926 ++echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; }
 6.28927 + 
 6.28928 + 
 6.28929 + 
 6.28930 + 
 6.28931 + 
 6.28932 + 
 6.28933 +-  echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
 6.28934 +-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
 6.28935 ++  { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
 6.28936 ++echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
 6.28937 + if test "${lt_cv_prog_compiler_c_o+set}" = set; then
 6.28938 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.28939 + else
 6.28940 +@@ -8231,11 +9334,11 @@
 6.28941 +    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
 6.28942 +    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
 6.28943 +    -e 's:$: $lt_compiler_flag:'`
 6.28944 +-   (eval echo "\"\$as_me:8234: $lt_compile\"" >&5)
 6.28945 ++   (eval echo "\"\$as_me:9337: $lt_compile\"" >&5)
 6.28946 +    (eval "$lt_compile" 2>out/conftest.err)
 6.28947 +    ac_status=$?
 6.28948 +    cat out/conftest.err >&5
 6.28949 +-   echo "$as_me:8238: \$? = $ac_status" >&5
 6.28950 ++   echo "$as_me:9341: \$? = $ac_status" >&5
 6.28951 +    if (exit $ac_status) && test -s out/conftest2.$ac_objext
 6.28952 +    then
 6.28953 +      # The compiler can only warn and ignore the option if not recognized
 6.28954 +@@ -8257,8 +9360,8 @@
 6.28955 +    $RM conftest*
 6.28956 + 
 6.28957 + fi
 6.28958 +-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
 6.28959 +-echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6
 6.28960 ++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
 6.28961 ++echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; }
 6.28962 + 
 6.28963 + 
 6.28964 + 
 6.28965 +@@ -8266,16 +9369,16 @@
 6.28966 + hard_links="nottested"
 6.28967 + if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
 6.28968 +   # do not overwrite the value of need_locks provided by the user
 6.28969 +-  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
 6.28970 +-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
 6.28971 ++  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
 6.28972 ++echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
 6.28973 +   hard_links=yes
 6.28974 +   $RM conftest*
 6.28975 +   ln conftest.a conftest.b 2>/dev/null && hard_links=no
 6.28976 +   touch conftest.a
 6.28977 +   ln conftest.a conftest.b 2>&5 || hard_links=no
 6.28978 +   ln conftest.a conftest.b 2>/dev/null && hard_links=no
 6.28979 +-  echo "$as_me:$LINENO: result: $hard_links" >&5
 6.28980 +-echo "${ECHO_T}$hard_links" >&6
 6.28981 ++  { echo "$as_me:$LINENO: result: $hard_links" >&5
 6.28982 ++echo "${ECHO_T}$hard_links" >&6; }
 6.28983 +   if test "$hard_links" = no; then
 6.28984 +     { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
 6.28985 + echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
 6.28986 +@@ -8290,8 +9393,8 @@
 6.28987 + 
 6.28988 + 
 6.28989 + 
 6.28990 +-  echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
 6.28991 +-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
 6.28992 ++  { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
 6.28993 ++echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
 6.28994 + 
 6.28995 +   runpath_var=
 6.28996 +   allow_undefined_flag=
 6.28997 +@@ -8748,27 +9851,23 @@
 6.28998 + }
 6.28999 + _ACEOF
 6.29000 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.29001 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.29002 +-  (eval $ac_link) 2>conftest.er1
 6.29003 ++if { (ac_try="$ac_link"
 6.29004 ++case "(($ac_try" in
 6.29005 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.29006 ++  *) ac_try_echo=$ac_try;;
 6.29007 ++esac
 6.29008 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.29009 ++  (eval "$ac_link") 2>conftest.er1
 6.29010 +   ac_status=$?
 6.29011 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.29012 +   rm -f conftest.er1
 6.29013 +   cat conftest.err >&5
 6.29014 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29015 +-  (exit $ac_status); } &&
 6.29016 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.29017 +-			 || test ! -s conftest.err'
 6.29018 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29019 +-  (eval $ac_try) 2>&5
 6.29020 +-  ac_status=$?
 6.29021 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29022 +-  (exit $ac_status); }; } &&
 6.29023 +-	 { ac_try='test -s conftest$ac_exeext'
 6.29024 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29025 +-  (eval $ac_try) 2>&5
 6.29026 +-  ac_status=$?
 6.29027 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29028 +-  (exit $ac_status); }; }; then
 6.29029 ++  (exit $ac_status); } && {
 6.29030 ++	 test -z "$ac_c_werror_flag" ||
 6.29031 ++	 test ! -s conftest.err
 6.29032 ++       } && test -s conftest$ac_exeext &&
 6.29033 ++       $as_test_x conftest$ac_exeext; then
 6.29034 + 
 6.29035 + lt_aix_libpath_sed='
 6.29036 +     /Import File Strings/,/^$/ {
 6.29037 +@@ -8786,8 +9885,10 @@
 6.29038 +   echo "$as_me: failed program was:" >&5
 6.29039 + sed 's/^/| /' conftest.$ac_ext >&5
 6.29040 + 
 6.29041 ++
 6.29042 + fi
 6.29043 +-rm -f conftest.err conftest.$ac_objext \
 6.29044 ++
 6.29045 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.29046 +       conftest$ac_exeext conftest.$ac_ext
 6.29047 + if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 6.29048 + 
 6.29049 +@@ -8817,27 +9918,23 @@
 6.29050 + }
 6.29051 + _ACEOF
 6.29052 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.29053 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.29054 +-  (eval $ac_link) 2>conftest.er1
 6.29055 ++if { (ac_try="$ac_link"
 6.29056 ++case "(($ac_try" in
 6.29057 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.29058 ++  *) ac_try_echo=$ac_try;;
 6.29059 ++esac
 6.29060 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.29061 ++  (eval "$ac_link") 2>conftest.er1
 6.29062 +   ac_status=$?
 6.29063 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.29064 +   rm -f conftest.er1
 6.29065 +   cat conftest.err >&5
 6.29066 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29067 +-  (exit $ac_status); } &&
 6.29068 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.29069 +-			 || test ! -s conftest.err'
 6.29070 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29071 +-  (eval $ac_try) 2>&5
 6.29072 +-  ac_status=$?
 6.29073 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29074 +-  (exit $ac_status); }; } &&
 6.29075 +-	 { ac_try='test -s conftest$ac_exeext'
 6.29076 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29077 +-  (eval $ac_try) 2>&5
 6.29078 +-  ac_status=$?
 6.29079 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29080 +-  (exit $ac_status); }; }; then
 6.29081 ++  (exit $ac_status); } && {
 6.29082 ++	 test -z "$ac_c_werror_flag" ||
 6.29083 ++	 test ! -s conftest.err
 6.29084 ++       } && test -s conftest$ac_exeext &&
 6.29085 ++       $as_test_x conftest$ac_exeext; then
 6.29086 + 
 6.29087 + lt_aix_libpath_sed='
 6.29088 +     /Import File Strings/,/^$/ {
 6.29089 +@@ -8855,8 +9952,10 @@
 6.29090 +   echo "$as_me: failed program was:" >&5
 6.29091 + sed 's/^/| /' conftest.$ac_ext >&5
 6.29092 + 
 6.29093 ++
 6.29094 + fi
 6.29095 +-rm -f conftest.err conftest.$ac_objext \
 6.29096 ++
 6.29097 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.29098 +       conftest$ac_exeext conftest.$ac_ext
 6.29099 + if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 6.29100 + 
 6.29101 +@@ -9073,35 +10172,33 @@
 6.29102 + int foo(void) {}
 6.29103 + _ACEOF
 6.29104 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.29105 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.29106 +-  (eval $ac_link) 2>conftest.er1
 6.29107 ++if { (ac_try="$ac_link"
 6.29108 ++case "(($ac_try" in
 6.29109 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.29110 ++  *) ac_try_echo=$ac_try;;
 6.29111 ++esac
 6.29112 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.29113 ++  (eval "$ac_link") 2>conftest.er1
 6.29114 +   ac_status=$?
 6.29115 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.29116 +   rm -f conftest.er1
 6.29117 +   cat conftest.err >&5
 6.29118 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29119 +-  (exit $ac_status); } &&
 6.29120 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.29121 +-			 || test ! -s conftest.err'
 6.29122 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29123 +-  (eval $ac_try) 2>&5
 6.29124 +-  ac_status=$?
 6.29125 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29126 +-  (exit $ac_status); }; } &&
 6.29127 +-	 { ac_try='test -s conftest$ac_exeext'
 6.29128 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29129 +-  (eval $ac_try) 2>&5
 6.29130 +-  ac_status=$?
 6.29131 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29132 +-  (exit $ac_status); }; }; then
 6.29133 ++  (exit $ac_status); } && {
 6.29134 ++	 test -z "$ac_c_werror_flag" ||
 6.29135 ++	 test ! -s conftest.err
 6.29136 ++       } && test -s conftest$ac_exeext &&
 6.29137 ++       $as_test_x conftest$ac_exeext; then
 6.29138 +   archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
 6.29139 + 
 6.29140 + else
 6.29141 +   echo "$as_me: failed program was:" >&5
 6.29142 + sed 's/^/| /' conftest.$ac_ext >&5
 6.29143 + 
 6.29144 ++
 6.29145 + fi
 6.29146 +-rm -f conftest.err conftest.$ac_objext \
 6.29147 ++
 6.29148 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.29149 +       conftest$ac_exeext conftest.$ac_ext
 6.29150 +         LDFLAGS="$save_LDFLAGS"
 6.29151 +       else
 6.29152 +@@ -9358,8 +10455,8 @@
 6.29153 +     fi
 6.29154 +   fi
 6.29155 + 
 6.29156 +-echo "$as_me:$LINENO: result: $ld_shlibs" >&5
 6.29157 +-echo "${ECHO_T}$ld_shlibs" >&6
 6.29158 ++{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5
 6.29159 ++echo "${ECHO_T}$ld_shlibs" >&6; }
 6.29160 + test "$ld_shlibs" = no && can_build_shared=no
 6.29161 + 
 6.29162 + with_gnu_ld=$with_gnu_ld
 6.29163 +@@ -9395,46 +10492,52 @@
 6.29164 +       # Test whether the compiler implicitly links with -lc since on some
 6.29165 +       # systems, -lgcc has to come before -lc. If gcc already passes -lc
 6.29166 +       # to ld, don't add -lc before -lgcc.
 6.29167 +-      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
 6.29168 +-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
 6.29169 +-      $RM conftest*
 6.29170 +-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 6.29171 ++      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
 6.29172 ++echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
 6.29173 ++if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
 6.29174 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.29175 ++else
 6.29176 ++  $RM conftest*
 6.29177 ++	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 6.29178 + 
 6.29179 +-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.29180 ++	if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 6.29181 +   (eval $ac_compile) 2>&5
 6.29182 +   ac_status=$?
 6.29183 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29184 +   (exit $ac_status); } 2>conftest.err; then
 6.29185 +-        soname=conftest
 6.29186 +-        lib=conftest
 6.29187 +-        libobjs=conftest.$ac_objext
 6.29188 +-        deplibs=
 6.29189 +-        wl=$lt_prog_compiler_wl
 6.29190 +-	pic_flag=$lt_prog_compiler_pic
 6.29191 +-        compiler_flags=-v
 6.29192 +-        linker_flags=-v
 6.29193 +-        verstring=
 6.29194 +-        output_objdir=.
 6.29195 +-        libname=conftest
 6.29196 +-        lt_save_allow_undefined_flag=$allow_undefined_flag
 6.29197 +-        allow_undefined_flag=
 6.29198 +-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
 6.29199 ++	  soname=conftest
 6.29200 ++	  lib=conftest
 6.29201 ++	  libobjs=conftest.$ac_objext
 6.29202 ++	  deplibs=
 6.29203 ++	  wl=$lt_prog_compiler_wl
 6.29204 ++	  pic_flag=$lt_prog_compiler_pic
 6.29205 ++	  compiler_flags=-v
 6.29206 ++	  linker_flags=-v
 6.29207 ++	  verstring=
 6.29208 ++	  output_objdir=.
 6.29209 ++	  libname=conftest
 6.29210 ++	  lt_save_allow_undefined_flag=$allow_undefined_flag
 6.29211 ++	  allow_undefined_flag=
 6.29212 ++	  if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
 6.29213 +   (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
 6.29214 +   ac_status=$?
 6.29215 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29216 +   (exit $ac_status); }
 6.29217 +-        then
 6.29218 +-	  archive_cmds_need_lc=no
 6.29219 +-        else
 6.29220 +-	  archive_cmds_need_lc=yes
 6.29221 +-        fi
 6.29222 +-        allow_undefined_flag=$lt_save_allow_undefined_flag
 6.29223 +-      else
 6.29224 +-        cat conftest.err 1>&5
 6.29225 +-      fi
 6.29226 +-      $RM conftest*
 6.29227 +-      echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
 6.29228 +-echo "${ECHO_T}$archive_cmds_need_lc" >&6
 6.29229 ++	  then
 6.29230 ++	    lt_cv_archive_cmds_need_lc=no
 6.29231 ++	  else
 6.29232 ++	    lt_cv_archive_cmds_need_lc=yes
 6.29233 ++	  fi
 6.29234 ++	  allow_undefined_flag=$lt_save_allow_undefined_flag
 6.29235 ++	else
 6.29236 ++	  cat conftest.err 1>&5
 6.29237 ++	fi
 6.29238 ++	$RM conftest*
 6.29239 ++
 6.29240 ++fi
 6.29241 ++{ echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
 6.29242 ++echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6; }
 6.29243 ++      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
 6.29244 +       ;;
 6.29245 +     esac
 6.29246 +   fi
 6.29247 +@@ -9597,8 +10700,8 @@
 6.29248 + 
 6.29249 + 
 6.29250 + 
 6.29251 +-  echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
 6.29252 +-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
 6.29253 ++  { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
 6.29254 ++echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
 6.29255 + 
 6.29256 + if test "$GCC" = yes; then
 6.29257 +   case $host_os in
 6.29258 +@@ -10014,12 +11117,17 @@
 6.29259 +   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
 6.29260 +   shlibpath_var=LD_LIBRARY_PATH
 6.29261 +   shlibpath_overrides_runpath=no
 6.29262 ++
 6.29263 +   # Some binutils ld are patched to set DT_RUNPATH
 6.29264 +-  save_LDFLAGS=$LDFLAGS
 6.29265 +-  save_libdir=$libdir
 6.29266 +-  eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
 6.29267 +-       LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
 6.29268 +-  cat >conftest.$ac_ext <<_ACEOF
 6.29269 ++  if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
 6.29270 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
 6.29271 ++else
 6.29272 ++  lt_cv_shlibpath_overrides_runpath=no
 6.29273 ++    save_LDFLAGS=$LDFLAGS
 6.29274 ++    save_libdir=$libdir
 6.29275 ++    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
 6.29276 ++	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
 6.29277 ++    cat >conftest.$ac_ext <<_ACEOF
 6.29278 + /* confdefs.h.  */
 6.29279 + _ACEOF
 6.29280 + cat confdefs.h >>conftest.$ac_ext
 6.29281 +@@ -10035,40 +11143,42 @@
 6.29282 + }
 6.29283 + _ACEOF
 6.29284 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.29285 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.29286 +-  (eval $ac_link) 2>conftest.er1
 6.29287 ++if { (ac_try="$ac_link"
 6.29288 ++case "(($ac_try" in
 6.29289 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.29290 ++  *) ac_try_echo=$ac_try;;
 6.29291 ++esac
 6.29292 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.29293 ++  (eval "$ac_link") 2>conftest.er1
 6.29294 +   ac_status=$?
 6.29295 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.29296 +   rm -f conftest.er1
 6.29297 +   cat conftest.err >&5
 6.29298 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29299 +-  (exit $ac_status); } &&
 6.29300 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.29301 +-			 || test ! -s conftest.err'
 6.29302 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29303 +-  (eval $ac_try) 2>&5
 6.29304 +-  ac_status=$?
 6.29305 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29306 +-  (exit $ac_status); }; } &&
 6.29307 +-	 { ac_try='test -s conftest$ac_exeext'
 6.29308 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29309 +-  (eval $ac_try) 2>&5
 6.29310 +-  ac_status=$?
 6.29311 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29312 +-  (exit $ac_status); }; }; then
 6.29313 ++  (exit $ac_status); } && {
 6.29314 ++	 test -z "$ac_c_werror_flag" ||
 6.29315 ++	 test ! -s conftest.err
 6.29316 ++       } && test -s conftest$ac_exeext &&
 6.29317 ++       $as_test_x conftest$ac_exeext; then
 6.29318 +   if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
 6.29319 +-  shlibpath_overrides_runpath=yes
 6.29320 ++  lt_cv_shlibpath_overrides_runpath=yes
 6.29321 + fi
 6.29322 + 
 6.29323 + else
 6.29324 +   echo "$as_me: failed program was:" >&5
 6.29325 + sed 's/^/| /' conftest.$ac_ext >&5
 6.29326 + 
 6.29327 ++
 6.29328 + fi
 6.29329 +-rm -f conftest.err conftest.$ac_objext \
 6.29330 ++
 6.29331 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.29332 +       conftest$ac_exeext conftest.$ac_ext
 6.29333 +-  LDFLAGS=$save_LDFLAGS
 6.29334 +-  libdir=$save_libdir
 6.29335 ++    LDFLAGS=$save_LDFLAGS
 6.29336 ++    libdir=$save_libdir
 6.29337 ++
 6.29338 ++fi
 6.29339 ++
 6.29340 ++  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
 6.29341 + 
 6.29342 +   # This implies no fast_install, which is unacceptable.
 6.29343 +   # Some rework will be needed to allow for fast_install
 6.29344 +@@ -10278,8 +11388,8 @@
 6.29345 +   dynamic_linker=no
 6.29346 +   ;;
 6.29347 + esac
 6.29348 +-echo "$as_me:$LINENO: result: $dynamic_linker" >&5
 6.29349 +-echo "${ECHO_T}$dynamic_linker" >&6
 6.29350 ++{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
 6.29351 ++echo "${ECHO_T}$dynamic_linker" >&6; }
 6.29352 + test "$dynamic_linker" = no && can_build_shared=no
 6.29353 + 
 6.29354 + variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
 6.29355 +@@ -10380,8 +11490,8 @@
 6.29356 + 
 6.29357 + 
 6.29358 + 
 6.29359 +-  echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
 6.29360 +-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
 6.29361 ++  { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
 6.29362 ++echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
 6.29363 + hardcode_action=
 6.29364 + if test -n "$hardcode_libdir_flag_spec" ||
 6.29365 +    test -n "$runpath_var" ||
 6.29366 +@@ -10405,8 +11515,8 @@
 6.29367 +   # directories.
 6.29368 +   hardcode_action=unsupported
 6.29369 + fi
 6.29370 +-echo "$as_me:$LINENO: result: $hardcode_action" >&5
 6.29371 +-echo "${ECHO_T}$hardcode_action" >&6
 6.29372 ++{ echo "$as_me:$LINENO: result: $hardcode_action" >&5
 6.29373 ++echo "${ECHO_T}$hardcode_action" >&6; }
 6.29374 + 
 6.29375 + if test "$hardcode_action" = relink ||
 6.29376 +    test "$inherit_rpath" = yes; then
 6.29377 +@@ -10450,8 +11560,8 @@
 6.29378 + 
 6.29379 +   darwin*)
 6.29380 +   # if libdl is installed we need to link against it
 6.29381 +-    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
 6.29382 +-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
 6.29383 ++    { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
 6.29384 ++echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
 6.29385 + if test "${ac_cv_lib_dl_dlopen+set}" = set; then
 6.29386 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.29387 + else
 6.29388 +@@ -10464,56 +11574,53 @@
 6.29389 + cat >>conftest.$ac_ext <<_ACEOF
 6.29390 + /* end confdefs.h.  */
 6.29391 + 
 6.29392 +-/* Override any gcc2 internal prototype to avoid an error.  */
 6.29393 ++/* Override any GCC internal prototype to avoid an error.
 6.29394 ++   Use char because int might match the return type of a GCC
 6.29395 ++   builtin and then its argument prototype would still apply.  */
 6.29396 + #ifdef __cplusplus
 6.29397 + extern "C"
 6.29398 + #endif
 6.29399 +-/* We use char because int might match the return type of a gcc2
 6.29400 +-   builtin and then its argument prototype would still apply.  */
 6.29401 + char dlopen ();
 6.29402 + int
 6.29403 + main ()
 6.29404 + {
 6.29405 +-dlopen ();
 6.29406 ++return dlopen ();
 6.29407 +   ;
 6.29408 +   return 0;
 6.29409 + }
 6.29410 + _ACEOF
 6.29411 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.29412 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.29413 +-  (eval $ac_link) 2>conftest.er1
 6.29414 ++if { (ac_try="$ac_link"
 6.29415 ++case "(($ac_try" in
 6.29416 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.29417 ++  *) ac_try_echo=$ac_try;;
 6.29418 ++esac
 6.29419 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.29420 ++  (eval "$ac_link") 2>conftest.er1
 6.29421 +   ac_status=$?
 6.29422 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.29423 +   rm -f conftest.er1
 6.29424 +   cat conftest.err >&5
 6.29425 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29426 +-  (exit $ac_status); } &&
 6.29427 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.29428 +-			 || test ! -s conftest.err'
 6.29429 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29430 +-  (eval $ac_try) 2>&5
 6.29431 +-  ac_status=$?
 6.29432 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29433 +-  (exit $ac_status); }; } &&
 6.29434 +-	 { ac_try='test -s conftest$ac_exeext'
 6.29435 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29436 +-  (eval $ac_try) 2>&5
 6.29437 +-  ac_status=$?
 6.29438 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29439 +-  (exit $ac_status); }; }; then
 6.29440 ++  (exit $ac_status); } && {
 6.29441 ++	 test -z "$ac_c_werror_flag" ||
 6.29442 ++	 test ! -s conftest.err
 6.29443 ++       } && test -s conftest$ac_exeext &&
 6.29444 ++       $as_test_x conftest$ac_exeext; then
 6.29445 +   ac_cv_lib_dl_dlopen=yes
 6.29446 + else
 6.29447 +   echo "$as_me: failed program was:" >&5
 6.29448 + sed 's/^/| /' conftest.$ac_ext >&5
 6.29449 + 
 6.29450 +-ac_cv_lib_dl_dlopen=no
 6.29451 ++	ac_cv_lib_dl_dlopen=no
 6.29452 + fi
 6.29453 +-rm -f conftest.err conftest.$ac_objext \
 6.29454 ++
 6.29455 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.29456 +       conftest$ac_exeext conftest.$ac_ext
 6.29457 + LIBS=$ac_check_lib_save_LIBS
 6.29458 + fi
 6.29459 +-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
 6.29460 +-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
 6.29461 ++{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
 6.29462 ++echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
 6.29463 + if test $ac_cv_lib_dl_dlopen = yes; then
 6.29464 +   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 6.29465 + else
 6.29466 +@@ -10527,8 +11634,8 @@
 6.29467 +     ;;
 6.29468 + 
 6.29469 +   *)
 6.29470 +-    echo "$as_me:$LINENO: checking for shl_load" >&5
 6.29471 +-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
 6.29472 ++    { echo "$as_me:$LINENO: checking for shl_load" >&5
 6.29473 ++echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
 6.29474 + if test "${ac_cv_func_shl_load+set}" = set; then
 6.29475 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.29476 + else
 6.29477 +@@ -10555,73 +11662,64 @@
 6.29478 + 
 6.29479 + #undef shl_load
 6.29480 + 
 6.29481 +-/* Override any gcc2 internal prototype to avoid an error.  */
 6.29482 ++/* Override any GCC internal prototype to avoid an error.
 6.29483 ++   Use char because int might match the return type of a GCC
 6.29484 ++   builtin and then its argument prototype would still apply.  */
 6.29485 + #ifdef __cplusplus
 6.29486 + extern "C"
 6.29487 +-{
 6.29488 + #endif
 6.29489 +-/* We use char because int might match the return type of a gcc2
 6.29490 +-   builtin and then its argument prototype would still apply.  */
 6.29491 + char shl_load ();
 6.29492 + /* The GNU C library defines this for functions which it implements
 6.29493 +     to always fail with ENOSYS.  Some functions are actually named
 6.29494 +     something starting with __ and the normal name is an alias.  */
 6.29495 +-#if defined (__stub_shl_load) || defined (__stub___shl_load)
 6.29496 ++#if defined __stub_shl_load || defined __stub___shl_load
 6.29497 + choke me
 6.29498 +-#else
 6.29499 +-char (*f) () = shl_load;
 6.29500 +-#endif
 6.29501 +-#ifdef __cplusplus
 6.29502 +-}
 6.29503 + #endif
 6.29504 + 
 6.29505 + int
 6.29506 + main ()
 6.29507 + {
 6.29508 +-return f != shl_load;
 6.29509 ++return shl_load ();
 6.29510 +   ;
 6.29511 +   return 0;
 6.29512 + }
 6.29513 + _ACEOF
 6.29514 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.29515 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.29516 +-  (eval $ac_link) 2>conftest.er1
 6.29517 ++if { (ac_try="$ac_link"
 6.29518 ++case "(($ac_try" in
 6.29519 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.29520 ++  *) ac_try_echo=$ac_try;;
 6.29521 ++esac
 6.29522 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.29523 ++  (eval "$ac_link") 2>conftest.er1
 6.29524 +   ac_status=$?
 6.29525 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.29526 +   rm -f conftest.er1
 6.29527 +   cat conftest.err >&5
 6.29528 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29529 +-  (exit $ac_status); } &&
 6.29530 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.29531 +-			 || test ! -s conftest.err'
 6.29532 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29533 +-  (eval $ac_try) 2>&5
 6.29534 +-  ac_status=$?
 6.29535 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29536 +-  (exit $ac_status); }; } &&
 6.29537 +-	 { ac_try='test -s conftest$ac_exeext'
 6.29538 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29539 +-  (eval $ac_try) 2>&5
 6.29540 +-  ac_status=$?
 6.29541 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29542 +-  (exit $ac_status); }; }; then
 6.29543 ++  (exit $ac_status); } && {
 6.29544 ++	 test -z "$ac_c_werror_flag" ||
 6.29545 ++	 test ! -s conftest.err
 6.29546 ++       } && test -s conftest$ac_exeext &&
 6.29547 ++       $as_test_x conftest$ac_exeext; then
 6.29548 +   ac_cv_func_shl_load=yes
 6.29549 + else
 6.29550 +   echo "$as_me: failed program was:" >&5
 6.29551 + sed 's/^/| /' conftest.$ac_ext >&5
 6.29552 + 
 6.29553 +-ac_cv_func_shl_load=no
 6.29554 ++	ac_cv_func_shl_load=no
 6.29555 + fi
 6.29556 +-rm -f conftest.err conftest.$ac_objext \
 6.29557 ++
 6.29558 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.29559 +       conftest$ac_exeext conftest.$ac_ext
 6.29560 + fi
 6.29561 +-echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
 6.29562 +-echo "${ECHO_T}$ac_cv_func_shl_load" >&6
 6.29563 ++{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
 6.29564 ++echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
 6.29565 + if test $ac_cv_func_shl_load = yes; then
 6.29566 +   lt_cv_dlopen="shl_load"
 6.29567 + else
 6.29568 +-  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
 6.29569 +-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
 6.29570 ++  { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
 6.29571 ++echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
 6.29572 + if test "${ac_cv_lib_dld_shl_load+set}" = set; then
 6.29573 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.29574 + else
 6.29575 +@@ -10634,61 +11732,58 @@
 6.29576 + cat >>conftest.$ac_ext <<_ACEOF
 6.29577 + /* end confdefs.h.  */
 6.29578 + 
 6.29579 +-/* Override any gcc2 internal prototype to avoid an error.  */
 6.29580 ++/* Override any GCC internal prototype to avoid an error.
 6.29581 ++   Use char because int might match the return type of a GCC
 6.29582 ++   builtin and then its argument prototype would still apply.  */
 6.29583 + #ifdef __cplusplus
 6.29584 + extern "C"
 6.29585 + #endif
 6.29586 +-/* We use char because int might match the return type of a gcc2
 6.29587 +-   builtin and then its argument prototype would still apply.  */
 6.29588 + char shl_load ();
 6.29589 + int
 6.29590 + main ()
 6.29591 + {
 6.29592 +-shl_load ();
 6.29593 ++return shl_load ();
 6.29594 +   ;
 6.29595 +   return 0;
 6.29596 + }
 6.29597 + _ACEOF
 6.29598 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.29599 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.29600 +-  (eval $ac_link) 2>conftest.er1
 6.29601 ++if { (ac_try="$ac_link"
 6.29602 ++case "(($ac_try" in
 6.29603 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.29604 ++  *) ac_try_echo=$ac_try;;
 6.29605 ++esac
 6.29606 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.29607 ++  (eval "$ac_link") 2>conftest.er1
 6.29608 +   ac_status=$?
 6.29609 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.29610 +   rm -f conftest.er1
 6.29611 +   cat conftest.err >&5
 6.29612 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29613 +-  (exit $ac_status); } &&
 6.29614 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.29615 +-			 || test ! -s conftest.err'
 6.29616 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29617 +-  (eval $ac_try) 2>&5
 6.29618 +-  ac_status=$?
 6.29619 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29620 +-  (exit $ac_status); }; } &&
 6.29621 +-	 { ac_try='test -s conftest$ac_exeext'
 6.29622 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29623 +-  (eval $ac_try) 2>&5
 6.29624 +-  ac_status=$?
 6.29625 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29626 +-  (exit $ac_status); }; }; then
 6.29627 ++  (exit $ac_status); } && {
 6.29628 ++	 test -z "$ac_c_werror_flag" ||
 6.29629 ++	 test ! -s conftest.err
 6.29630 ++       } && test -s conftest$ac_exeext &&
 6.29631 ++       $as_test_x conftest$ac_exeext; then
 6.29632 +   ac_cv_lib_dld_shl_load=yes
 6.29633 + else
 6.29634 +   echo "$as_me: failed program was:" >&5
 6.29635 + sed 's/^/| /' conftest.$ac_ext >&5
 6.29636 + 
 6.29637 +-ac_cv_lib_dld_shl_load=no
 6.29638 ++	ac_cv_lib_dld_shl_load=no
 6.29639 + fi
 6.29640 +-rm -f conftest.err conftest.$ac_objext \
 6.29641 ++
 6.29642 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.29643 +       conftest$ac_exeext conftest.$ac_ext
 6.29644 + LIBS=$ac_check_lib_save_LIBS
 6.29645 + fi
 6.29646 +-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
 6.29647 +-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
 6.29648 ++{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
 6.29649 ++echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
 6.29650 + if test $ac_cv_lib_dld_shl_load = yes; then
 6.29651 +   lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
 6.29652 + else
 6.29653 +-  echo "$as_me:$LINENO: checking for dlopen" >&5
 6.29654 +-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
 6.29655 ++  { echo "$as_me:$LINENO: checking for dlopen" >&5
 6.29656 ++echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
 6.29657 + if test "${ac_cv_func_dlopen+set}" = set; then
 6.29658 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.29659 + else
 6.29660 +@@ -10715,73 +11810,64 @@
 6.29661 + 
 6.29662 + #undef dlopen
 6.29663 + 
 6.29664 +-/* Override any gcc2 internal prototype to avoid an error.  */
 6.29665 ++/* Override any GCC internal prototype to avoid an error.
 6.29666 ++   Use char because int might match the return type of a GCC
 6.29667 ++   builtin and then its argument prototype would still apply.  */
 6.29668 + #ifdef __cplusplus
 6.29669 + extern "C"
 6.29670 +-{
 6.29671 + #endif
 6.29672 +-/* We use char because int might match the return type of a gcc2
 6.29673 +-   builtin and then its argument prototype would still apply.  */
 6.29674 + char dlopen ();
 6.29675 + /* The GNU C library defines this for functions which it implements
 6.29676 +     to always fail with ENOSYS.  Some functions are actually named
 6.29677 +     something starting with __ and the normal name is an alias.  */
 6.29678 +-#if defined (__stub_dlopen) || defined (__stub___dlopen)
 6.29679 ++#if defined __stub_dlopen || defined __stub___dlopen
 6.29680 + choke me
 6.29681 +-#else
 6.29682 +-char (*f) () = dlopen;
 6.29683 +-#endif
 6.29684 +-#ifdef __cplusplus
 6.29685 +-}
 6.29686 + #endif
 6.29687 + 
 6.29688 + int
 6.29689 + main ()
 6.29690 + {
 6.29691 +-return f != dlopen;
 6.29692 ++return dlopen ();
 6.29693 +   ;
 6.29694 +   return 0;
 6.29695 + }
 6.29696 + _ACEOF
 6.29697 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.29698 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.29699 +-  (eval $ac_link) 2>conftest.er1
 6.29700 ++if { (ac_try="$ac_link"
 6.29701 ++case "(($ac_try" in
 6.29702 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.29703 ++  *) ac_try_echo=$ac_try;;
 6.29704 ++esac
 6.29705 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.29706 ++  (eval "$ac_link") 2>conftest.er1
 6.29707 +   ac_status=$?
 6.29708 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.29709 +   rm -f conftest.er1
 6.29710 +   cat conftest.err >&5
 6.29711 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29712 +-  (exit $ac_status); } &&
 6.29713 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.29714 +-			 || test ! -s conftest.err'
 6.29715 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29716 +-  (eval $ac_try) 2>&5
 6.29717 +-  ac_status=$?
 6.29718 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29719 +-  (exit $ac_status); }; } &&
 6.29720 +-	 { ac_try='test -s conftest$ac_exeext'
 6.29721 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29722 +-  (eval $ac_try) 2>&5
 6.29723 +-  ac_status=$?
 6.29724 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29725 +-  (exit $ac_status); }; }; then
 6.29726 ++  (exit $ac_status); } && {
 6.29727 ++	 test -z "$ac_c_werror_flag" ||
 6.29728 ++	 test ! -s conftest.err
 6.29729 ++       } && test -s conftest$ac_exeext &&
 6.29730 ++       $as_test_x conftest$ac_exeext; then
 6.29731 +   ac_cv_func_dlopen=yes
 6.29732 + else
 6.29733 +   echo "$as_me: failed program was:" >&5
 6.29734 + sed 's/^/| /' conftest.$ac_ext >&5
 6.29735 + 
 6.29736 +-ac_cv_func_dlopen=no
 6.29737 ++	ac_cv_func_dlopen=no
 6.29738 + fi
 6.29739 +-rm -f conftest.err conftest.$ac_objext \
 6.29740 ++
 6.29741 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.29742 +       conftest$ac_exeext conftest.$ac_ext
 6.29743 + fi
 6.29744 +-echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
 6.29745 +-echo "${ECHO_T}$ac_cv_func_dlopen" >&6
 6.29746 ++{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
 6.29747 ++echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
 6.29748 + if test $ac_cv_func_dlopen = yes; then
 6.29749 +   lt_cv_dlopen="dlopen"
 6.29750 + else
 6.29751 +-  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
 6.29752 +-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
 6.29753 ++  { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
 6.29754 ++echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
 6.29755 + if test "${ac_cv_lib_dl_dlopen+set}" = set; then
 6.29756 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.29757 + else
 6.29758 +@@ -10794,61 +11880,58 @@
 6.29759 + cat >>conftest.$ac_ext <<_ACEOF
 6.29760 + /* end confdefs.h.  */
 6.29761 + 
 6.29762 +-/* Override any gcc2 internal prototype to avoid an error.  */
 6.29763 ++/* Override any GCC internal prototype to avoid an error.
 6.29764 ++   Use char because int might match the return type of a GCC
 6.29765 ++   builtin and then its argument prototype would still apply.  */
 6.29766 + #ifdef __cplusplus
 6.29767 + extern "C"
 6.29768 + #endif
 6.29769 +-/* We use char because int might match the return type of a gcc2
 6.29770 +-   builtin and then its argument prototype would still apply.  */
 6.29771 + char dlopen ();
 6.29772 + int
 6.29773 + main ()
 6.29774 + {
 6.29775 +-dlopen ();
 6.29776 ++return dlopen ();
 6.29777 +   ;
 6.29778 +   return 0;
 6.29779 + }
 6.29780 + _ACEOF
 6.29781 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.29782 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.29783 +-  (eval $ac_link) 2>conftest.er1
 6.29784 ++if { (ac_try="$ac_link"
 6.29785 ++case "(($ac_try" in
 6.29786 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.29787 ++  *) ac_try_echo=$ac_try;;
 6.29788 ++esac
 6.29789 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.29790 ++  (eval "$ac_link") 2>conftest.er1
 6.29791 +   ac_status=$?
 6.29792 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.29793 +   rm -f conftest.er1
 6.29794 +   cat conftest.err >&5
 6.29795 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29796 +-  (exit $ac_status); } &&
 6.29797 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.29798 +-			 || test ! -s conftest.err'
 6.29799 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29800 +-  (eval $ac_try) 2>&5
 6.29801 +-  ac_status=$?
 6.29802 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29803 +-  (exit $ac_status); }; } &&
 6.29804 +-	 { ac_try='test -s conftest$ac_exeext'
 6.29805 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29806 +-  (eval $ac_try) 2>&5
 6.29807 +-  ac_status=$?
 6.29808 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29809 +-  (exit $ac_status); }; }; then
 6.29810 ++  (exit $ac_status); } && {
 6.29811 ++	 test -z "$ac_c_werror_flag" ||
 6.29812 ++	 test ! -s conftest.err
 6.29813 ++       } && test -s conftest$ac_exeext &&
 6.29814 ++       $as_test_x conftest$ac_exeext; then
 6.29815 +   ac_cv_lib_dl_dlopen=yes
 6.29816 + else
 6.29817 +   echo "$as_me: failed program was:" >&5
 6.29818 + sed 's/^/| /' conftest.$ac_ext >&5
 6.29819 + 
 6.29820 +-ac_cv_lib_dl_dlopen=no
 6.29821 ++	ac_cv_lib_dl_dlopen=no
 6.29822 + fi
 6.29823 +-rm -f conftest.err conftest.$ac_objext \
 6.29824 ++
 6.29825 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.29826 +       conftest$ac_exeext conftest.$ac_ext
 6.29827 + LIBS=$ac_check_lib_save_LIBS
 6.29828 + fi
 6.29829 +-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
 6.29830 +-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
 6.29831 ++{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
 6.29832 ++echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
 6.29833 + if test $ac_cv_lib_dl_dlopen = yes; then
 6.29834 +   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 6.29835 + else
 6.29836 +-  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
 6.29837 +-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
 6.29838 ++  { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
 6.29839 ++echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
 6.29840 + if test "${ac_cv_lib_svld_dlopen+set}" = set; then
 6.29841 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.29842 + else
 6.29843 +@@ -10861,61 +11944,58 @@
 6.29844 + cat >>conftest.$ac_ext <<_ACEOF
 6.29845 + /* end confdefs.h.  */
 6.29846 + 
 6.29847 +-/* Override any gcc2 internal prototype to avoid an error.  */
 6.29848 ++/* Override any GCC internal prototype to avoid an error.
 6.29849 ++   Use char because int might match the return type of a GCC
 6.29850 ++   builtin and then its argument prototype would still apply.  */
 6.29851 + #ifdef __cplusplus
 6.29852 + extern "C"
 6.29853 + #endif
 6.29854 +-/* We use char because int might match the return type of a gcc2
 6.29855 +-   builtin and then its argument prototype would still apply.  */
 6.29856 + char dlopen ();
 6.29857 + int
 6.29858 + main ()
 6.29859 + {
 6.29860 +-dlopen ();
 6.29861 ++return dlopen ();
 6.29862 +   ;
 6.29863 +   return 0;
 6.29864 + }
 6.29865 + _ACEOF
 6.29866 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.29867 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.29868 +-  (eval $ac_link) 2>conftest.er1
 6.29869 ++if { (ac_try="$ac_link"
 6.29870 ++case "(($ac_try" in
 6.29871 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.29872 ++  *) ac_try_echo=$ac_try;;
 6.29873 ++esac
 6.29874 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.29875 ++  (eval "$ac_link") 2>conftest.er1
 6.29876 +   ac_status=$?
 6.29877 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.29878 +   rm -f conftest.er1
 6.29879 +   cat conftest.err >&5
 6.29880 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29881 +-  (exit $ac_status); } &&
 6.29882 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.29883 +-			 || test ! -s conftest.err'
 6.29884 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29885 +-  (eval $ac_try) 2>&5
 6.29886 +-  ac_status=$?
 6.29887 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29888 +-  (exit $ac_status); }; } &&
 6.29889 +-	 { ac_try='test -s conftest$ac_exeext'
 6.29890 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29891 +-  (eval $ac_try) 2>&5
 6.29892 +-  ac_status=$?
 6.29893 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29894 +-  (exit $ac_status); }; }; then
 6.29895 ++  (exit $ac_status); } && {
 6.29896 ++	 test -z "$ac_c_werror_flag" ||
 6.29897 ++	 test ! -s conftest.err
 6.29898 ++       } && test -s conftest$ac_exeext &&
 6.29899 ++       $as_test_x conftest$ac_exeext; then
 6.29900 +   ac_cv_lib_svld_dlopen=yes
 6.29901 + else
 6.29902 +   echo "$as_me: failed program was:" >&5
 6.29903 + sed 's/^/| /' conftest.$ac_ext >&5
 6.29904 + 
 6.29905 +-ac_cv_lib_svld_dlopen=no
 6.29906 ++	ac_cv_lib_svld_dlopen=no
 6.29907 + fi
 6.29908 +-rm -f conftest.err conftest.$ac_objext \
 6.29909 ++
 6.29910 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.29911 +       conftest$ac_exeext conftest.$ac_ext
 6.29912 + LIBS=$ac_check_lib_save_LIBS
 6.29913 + fi
 6.29914 +-echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
 6.29915 +-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
 6.29916 ++{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
 6.29917 ++echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
 6.29918 + if test $ac_cv_lib_svld_dlopen = yes; then
 6.29919 +   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
 6.29920 + else
 6.29921 +-  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
 6.29922 +-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
 6.29923 ++  { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
 6.29924 ++echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
 6.29925 + if test "${ac_cv_lib_dld_dld_link+set}" = set; then
 6.29926 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.29927 + else
 6.29928 +@@ -10928,56 +12008,53 @@
 6.29929 + cat >>conftest.$ac_ext <<_ACEOF
 6.29930 + /* end confdefs.h.  */
 6.29931 + 
 6.29932 +-/* Override any gcc2 internal prototype to avoid an error.  */
 6.29933 ++/* Override any GCC internal prototype to avoid an error.
 6.29934 ++   Use char because int might match the return type of a GCC
 6.29935 ++   builtin and then its argument prototype would still apply.  */
 6.29936 + #ifdef __cplusplus
 6.29937 + extern "C"
 6.29938 + #endif
 6.29939 +-/* We use char because int might match the return type of a gcc2
 6.29940 +-   builtin and then its argument prototype would still apply.  */
 6.29941 + char dld_link ();
 6.29942 + int
 6.29943 + main ()
 6.29944 + {
 6.29945 +-dld_link ();
 6.29946 ++return dld_link ();
 6.29947 +   ;
 6.29948 +   return 0;
 6.29949 + }
 6.29950 + _ACEOF
 6.29951 + rm -f conftest.$ac_objext conftest$ac_exeext
 6.29952 +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 6.29953 +-  (eval $ac_link) 2>conftest.er1
 6.29954 ++if { (ac_try="$ac_link"
 6.29955 ++case "(($ac_try" in
 6.29956 ++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 6.29957 ++  *) ac_try_echo=$ac_try;;
 6.29958 ++esac
 6.29959 ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 6.29960 ++  (eval "$ac_link") 2>conftest.er1
 6.29961 +   ac_status=$?
 6.29962 +   grep -v '^ *+' conftest.er1 >conftest.err
 6.29963 +   rm -f conftest.er1
 6.29964 +   cat conftest.err >&5
 6.29965 +   echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29966 +-  (exit $ac_status); } &&
 6.29967 +-	 { ac_try='test -z "$ac_c_werror_flag"
 6.29968 +-			 || test ! -s conftest.err'
 6.29969 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29970 +-  (eval $ac_try) 2>&5
 6.29971 +-  ac_status=$?
 6.29972 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29973 +-  (exit $ac_status); }; } &&
 6.29974 +-	 { ac_try='test -s conftest$ac_exeext'
 6.29975 +-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
 6.29976 +-  (eval $ac_try) 2>&5
 6.29977 +-  ac_status=$?
 6.29978 +-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 6.29979 +-  (exit $ac_status); }; }; then
 6.29980 ++  (exit $ac_status); } && {
 6.29981 ++	 test -z "$ac_c_werror_flag" ||
 6.29982 ++	 test ! -s conftest.err
 6.29983 ++       } && test -s conftest$ac_exeext &&
 6.29984 ++       $as_test_x conftest$ac_exeext; then
 6.29985 +   ac_cv_lib_dld_dld_link=yes
 6.29986 + else
 6.29987 +   echo "$as_me: failed program was:" >&5
 6.29988 + sed 's/^/| /' conftest.$ac_ext >&5
 6.29989 + 
 6.29990 +-ac_cv_lib_dld_dld_link=no
 6.29991 ++	ac_cv_lib_dld_dld_link=no
 6.29992 + fi
 6.29993 +-rm -f conftest.err conftest.$ac_objext \
 6.29994 ++
 6.29995 ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 6.29996 +       conftest$ac_exeext conftest.$ac_ext
 6.29997 + LIBS=$ac_check_lib_save_LIBS
 6.29998 + fi
 6.29999 +-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
 6.30000 +-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
 6.30001 ++{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
 6.30002 ++echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
 6.30003 + if test $ac_cv_lib_dld_dld_link = yes; then
 6.30004 +   lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
 6.30005 + fi
 6.30006 +@@ -11017,8 +12094,8 @@
 6.30007 +     save_LIBS="$LIBS"
 6.30008 +     LIBS="$lt_cv_dlopen_libs $LIBS"
 6.30009 + 
 6.30010 +-    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
 6.30011 +-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
 6.30012 ++    { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
 6.30013 ++echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; }
 6.30014 + if test "${lt_cv_dlopen_self+set}" = set; then
 6.30015 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.30016 + else
 6.30017 +@@ -11028,7 +12105,7 @@
 6.30018 +   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
 6.30019 +   lt_status=$lt_dlunknown
 6.30020 +   cat > conftest.$ac_ext <<_LT_EOF
 6.30021 +-#line 11031 "configure"
 6.30022 ++#line 12108 "configure"
 6.30023 + #include "confdefs.h"
 6.30024 + 
 6.30025 + #if HAVE_DLFCN_H
 6.30026 +@@ -11108,13 +12185,13 @@
 6.30027 + 
 6.30028 + 
 6.30029 + fi
 6.30030 +-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
 6.30031 +-echo "${ECHO_T}$lt_cv_dlopen_self" >&6
 6.30032 ++{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
 6.30033 ++echo "${ECHO_T}$lt_cv_dlopen_self" >&6; }
 6.30034 + 
 6.30035 +     if test "x$lt_cv_dlopen_self" = xyes; then
 6.30036 +       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
 6.30037 +-      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
 6.30038 +-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
 6.30039 ++      { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
 6.30040 ++echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
 6.30041 + if test "${lt_cv_dlopen_self_static+set}" = set; then
 6.30042 +   echo $ECHO_N "(cached) $ECHO_C" >&6
 6.30043 + else
 6.30044 +@@ -11124,7 +12201,7 @@
 6.30045 +   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
 6.30046 +   lt_status=$lt_dlunknown
 6.30047 +   cat > conftest.$ac_ext <<_LT_EOF
 6.30048 +-#line 11127 "configure"
 6.30049 ++#line 12204 "configure"
 6.30050 + #include "confdefs.h"
 6.30051 + 
 6.30052 + #if HAVE_DLFCN_H
 6.30053 +@@ -11204,8 +12281,8 @@
 6.30054 + 
 6.30055 + 
 6.30056 + fi
 6.30057 +-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
 6.30058 +-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
 6.30059 ++{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
 6.30060 ++echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; }
 6.30061 +     fi
 6.30062 + 
 6.30063 +     CPPFLAGS="$save_CPPFLAGS"
 6.30064 +@@ -11243,13 +12320,13 @@
 6.30065 + 
 6.30066 + striplib=
 6.30067 + old_striplib=
 6.30068 +-echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
 6.30069 +-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
 6.30070 ++{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
 6.30071 ++echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; }
 6.30072 + if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
 6.30073 +   test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
 6.30074 +   test -z "$striplib" && striplib="$STRIP --strip-unneeded"
 6.30075 +-  echo "$as_me:$LINENO: result: yes" >&5
 6.30076 +-echo "${ECHO_T}yes" >&6
 6.30077 ++  { echo "$as_me:$LINENO: result: yes" >&5
 6.30078 ++echo "${ECHO_T}yes" >&6; }
 6.30079 + else
 6.30080 + # FIXME - insert some real tests, host_os isn't really good enough
 6.30081 +   case $host_os in
 6.30082 +@@ -11257,16 +12334,16 @@
 6.30083 +     if test -n "$STRIP" ; then
 6.30084 +       striplib="$STRIP -x"
 6.30085 +       old_striplib="$STRIP -S"
 6.30086 +-      echo "$as_me:$LINENO: result: yes" >&5
 6.30087 +-echo "${ECHO_T}yes" >&6
 6.30088 ++      { echo "$as_me:$LINENO: result: yes" >&5
 6.30089 ++echo "${ECHO_T}yes" >&6; }
 6.30090 +     else
 6.30091 +-      echo "$as_me:$LINENO: result: no" >&5
 6.30092 +-echo "${ECHO_T}no" >&6
 6.30093 ++      { echo "$as_me:$LINENO: result: no" >&5
 6.30094 ++echo "${ECHO_T}no" >&6; }
 6.30095 +     fi
 6.30096 +     ;;
 6.30097 +   *)
 6.30098 +-    echo "$as_me:$LINENO: result: no" >&5
 6.30099 +-echo "${ECHO_T}no" >&6
 6.30100 ++    { echo "$as_me:$LINENO: result: no" >&5
 6.30101 ++echo "${ECHO_T}no" >&6; }
 6.30102 +     ;;
 6.30103 +   esac
 6.30104 + fi
 6.30105 +@@ -11283,13 +12360,13 @@
 6.30106 + 
 6.30107 + 
 6.30108 +   # Report which library types will actually be built
 6.30109 +-  echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
 6.30110 +-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
 6.30111 +-  echo "$as_me:$LINENO: result: $can_build_shared" >&5
 6.30112 +-echo "${ECHO_T}$can_build_shared" >&6
 6.30113 ++  { echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
 6.30114 ++echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
 6.30115 ++  { echo "$as_me:$LINENO: result: $can_build_shared" >&5
 6.30116 ++echo "${ECHO_T}$can_build_shared" >&6; }
 6.30117 + 
 6.30118 +-  echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
 6.30119 +-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
 6.30120 ++  { echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
 6.30121 ++echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; }
 6.30122 +   test "$can_build_shared" = "no" && enable_shared=no
 6.30123 + 
 6.30124 +   # On AIX, shared libraries and static libraries use the same namespace, and
 6.30125 +@@ -11309,15 +12386,15 @@
 6.30126 +     fi
 6.30127 +     ;;
 6.30128 +   esac
 6.30129 +-  echo "$as_me:$LINENO: result: $enable_shared" >&5
 6.30130 +-echo "${ECHO_T}$enable_shared" >&6
 6.30131 ++  { echo "$as_me:$LINENO: result: $enable_shared" >&5
 6.30132 ++echo "${ECHO_T}$enable_shared" >&6; }
 6.30133 + 
 6.30134 +-  echo "$as_me:$LINENO: checking whether to build static libraries" >&5
 6.30135 +-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
 6.30136 ++  { echo "$as_me:$LINENO: checking whether to build static libraries" >&5
 6.30137 ++echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
 6.30138 +   # Make sure either enable_shared or enable_static is yes.
 6.30139 +   test "$enable_shared" = yes || enable_static=yes
 6.30140 +-  echo "$as_me:$LINENO: result: $enable_static" >&5
 6.30141 +-echo "${ECHO_T}$enable_static" >&6
 6.30142 ++  { echo "$as_me:$LINENO: result: $enable_static" >&5
 6.30143 ++echo "${ECHO_T}$enable_static" >&6; }
 6.30144 + 
 6.30145 + 
 6.30146 + 
 6.30147 +@@ -11343,7 +12420,7 @@
 6.30148 + 
 6.30149 + 
 6.30150 + 
 6.30151 +-                  ac_config_commands="$ac_config_commands libtool"
 6.30152 ++        ac_config_commands="$ac_config_commands libtool"
 6.30153 + 
 6.30154 + 
 6.30155 + 
 6.30156 +@@ -11355,101 +12432,55 @@
 6.30157 + 
 6.30158 + if test -n "${sys_dir}"; then
 6.30159 +   case ${sys_dir} in
 6.30160 +-	a29khif)
 6.30161 +-
 6.30162 +-subdirs="$subdirs a29khif"
 6.30163 ++	a29khif) subdirs="$subdirs a29khif"
 6.30164 +  ;;
 6.30165 +-	arc)
 6.30166 +-
 6.30167 +-subdirs="$subdirs arc"
 6.30168 ++	arc) subdirs="$subdirs arc"
 6.30169 +  ;;
 6.30170 +-	arm)
 6.30171 +-
 6.30172 +-subdirs="$subdirs arm"
 6.30173 ++	arm) subdirs="$subdirs arm"
 6.30174 +  ;;
 6.30175 +-	d10v)
 6.30176 +-
 6.30177 +-subdirs="$subdirs d10v"
 6.30178 ++	avr32) subdirs="$subdirs avr32"
 6.30179 +  ;;
 6.30180 +-	decstation)
 6.30181 +-
 6.30182 +-subdirs="$subdirs decstation"
 6.30183 ++	d10v) subdirs="$subdirs d10v"
 6.30184 +  ;;
 6.30185 +-	h8300hms)
 6.30186 +-
 6.30187 +-subdirs="$subdirs h8300hms"
 6.30188 ++	decstation) subdirs="$subdirs decstation"
 6.30189 +  ;;
 6.30190 +-	h8500hms)
 6.30191 +-
 6.30192 +-subdirs="$subdirs h8500hms"
 6.30193 ++	h8300hms) subdirs="$subdirs h8300hms"
 6.30194 +  ;;
 6.30195 +-	linux)
 6.30196 +-
 6.30197 +-subdirs="$subdirs linux"
 6.30198 ++	h8500hms) subdirs="$subdirs h8500hms"
 6.30199 +  ;;
 6.30200 +-	m88kbug)
 6.30201 +-
 6.30202 +-subdirs="$subdirs m88kbug"
 6.30203 ++	linux) subdirs="$subdirs linux"
 6.30204 +  ;;
 6.30205 +-	mmixware)
 6.30206 +-
 6.30207 +-subdirs="$subdirs mmixware"
 6.30208 ++	m88kbug) subdirs="$subdirs m88kbug"
 6.30209 +  ;;
 6.30210 +-	netware)
 6.30211 +-
 6.30212 +-subdirs="$subdirs netware"
 6.30213 ++	mmixware) subdirs="$subdirs mmixware"
 6.30214 +  ;;
 6.30215 +-	rdos)
 6.30216 +-
 6.30217 +-subdirs="$subdirs rdos"
 6.30218 ++	netware) subdirs="$subdirs netware"
 6.30219 +  ;;
 6.30220 +-	rtems)
 6.30221 +-
 6.30222 +-subdirs="$subdirs rtems"
 6.30223 ++	rdos) subdirs="$subdirs rdos"
 6.30224 +  ;;
 6.30225 +-	sh)
 6.30226 +-
 6.30227 +-subdirs="$subdirs sh"
 6.30228 ++	rtems) subdirs="$subdirs rtems"
 6.30229 +  ;;
 6.30230 +-	sparc64)
 6.30231 +-
 6.30232 +-subdirs="$subdirs sparc64"
 6.30233 ++	sh) subdirs="$subdirs sh"
 6.30234 +  ;;
 6.30235 +-	sun4)
 6.30236 +-
 6.30237 +-subdirs="$subdirs sun4"
 6.30238 ++	sparc64) subdirs="$subdirs sparc64"
 6.30239 +  ;;
 6.30240 +-	sysmec)
 6.30241 +-
 6.30242 +-subdirs="$subdirs sysmec"
 6.30243 ++	sun4) subdirs="$subdirs sun4"
 6.30244 +  ;;
 6.30245 +-	sysnec810)
 6.30246 +-
 6.30247 +-subdirs="$subdirs sysnec810"
 6.30248 ++	sysmec) subdirs="$subdirs sysmec"
 6.30249 +  ;;
 6.30250 +-	sysnecv850)
 6.30251 +-
 6.30252 +-subdirs="$subdirs sysnecv850"
 6.30253 ++	sysnec810) subdirs="$subdirs sysnec810"
 6.30254 +  ;;
 6.30255 +-	sysvi386)
 6.30256 +-
 6.30257 +-subdirs="$subdirs sysvi386"
 6.30258 ++	sysnecv850) subdirs="$subdirs sysnecv850"
 6.30259 +  ;;
 6.30260 +-	sysvnecv70)
 6.30261 +-
 6.30262 +-subdirs="$subdirs sysvnecv70"
 6.30263 ++	sysvi386) subdirs="$subdirs sysvi386"
 6.30264 +  ;;
 6.30265 +-	tic80)
 6.30266 +-
 6.30267 +-subdirs="$subdirs tic80"
 6.30268 ++	sysvnecv70) subdirs="$subdirs sysvnecv70"
 6.30269 +  ;;
 6.30270 +-	w65)
 6.30271 +-
 6.30272 +-subdirs="$subdirs w65"
 6.30273 ++	tic80) subdirs="$subdirs tic80"
 6.30274 +  ;;
 6.30275 +-	z8ksim)
 6.30276 +-
 6.30277 +-subdirs="$subdirs z8ksim"
 6.30278 ++	w65) subdirs="$subdirs w65"
 6.30279 ++ ;;
 6.30280 ++	z8ksim) subdirs="$subdirs z8ksim"
 6.30281 +  ;;
 6.30282 +   esac;
 6.30283 + fi
 6.30284 +@@ -11471,7 +12502,7 @@
 6.30285 + fi
 6.30286 + 
 6.30287 + 
 6.30288 +-          ac_config_files="$ac_config_files Makefile"
 6.30289 ++ac_config_files="$ac_config_files Makefile"
 6.30290 + 
 6.30291 + cat >confcache <<\_ACEOF
 6.30292 + # This file is a shell script that caches the results of configure
 6.30293 +@@ -11491,39 +12522,58 @@
 6.30294 + 
 6.30295 + # The following way of writing the cache mishandles newlines in values,
 6.30296 + # but we know of no workaround that is simple, portable, and efficient.
 6.30297 +-# So, don't put newlines in cache variables' values.
 6.30298 ++# So, we kill variables containing newlines.
 6.30299 + # Ultrix sh set writes to stderr and can't be redirected directly,
 6.30300 + # and sets the high bit in the cache file unless we assign to the vars.
 6.30301 +-{
 6.30302 ++(
 6.30303 ++  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
 6.30304 ++    eval ac_val=\$$ac_var
 6.30305 ++    case $ac_val in #(
 6.30306 ++    *${as_nl}*)
 6.30307 ++      case $ac_var in #(
 6.30308 ++      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
 6.30309 ++echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
 6.30310 ++      esac
 6.30311 ++      case $ac_var in #(
 6.30312 ++      _ | IFS | as_nl) ;; #(
 6.30313 ++      *) $as_unset $ac_var ;;
 6.30314 ++      esac ;;
 6.30315 ++    esac
 6.30316 ++  done
 6.30317 ++
 6.30318 +   (set) 2>&1 |
 6.30319 +-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
 6.30320 +-    *ac_space=\ *)
 6.30321 ++    case $as_nl`(ac_space=' '; set) 2>&1` in #(
 6.30322 ++    *${as_nl}ac_space=\ *)
 6.30323 +       # `set' does not quote correctly, so add quotes (double-quote
 6.30324 +       # substitution turns \\\\ into \\, and sed turns \\ into \).
 6.30325 +       sed -n \
 6.30326 + 	"s/'/'\\\\''/g;
 6.30327 + 	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
 6.30328 +-      ;;
 6.30329 ++      ;; #(
 6.30330 +     *)
 6.30331 +       # `set' quotes correctly as required by POSIX, so do not add quotes.
 6.30332 +-      sed -n \
 6.30333 +-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
 6.30334 ++      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
 6.30335 +       ;;
 6.30336 +-    esac;
 6.30337 +-} |
 6.30338 ++    esac |
 6.30339 ++    sort
 6.30340 ++) |
 6.30341 +   sed '
 6.30342 ++     /^ac_cv_env_/b end
 6.30343 +      t clear
 6.30344 +-     : clear
 6.30345 ++     :clear
 6.30346 +      s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
 6.30347 +      t end
 6.30348 +-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
 6.30349 +-     : end' >>confcache
 6.30350 +-if diff $cache_file confcache >/dev/null 2>&1; then :; else
 6.30351 +-  if test -w $cache_file; then
 6.30352 +-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
 6.30353 ++     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
 6.30354 ++     :end' >>confcache
 6.30355 ++if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
 6.30356 ++  if test -w "$cache_file"; then
 6.30357 ++    test "x$cache_file" != "x/dev/null" &&
 6.30358 ++      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
 6.30359 ++echo "$as_me: updating cache $cache_file" >&6;}
 6.30360 +     cat confcache >$cache_file
 6.30361 +   else
 6.30362 +-    echo "not updating unwritable cache $cache_file"
 6.30363 ++    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
 6.30364 ++echo "$as_me: not updating unwritable cache $cache_file" >&6;}
 6.30365 +   fi
 6.30366 + fi
 6.30367 + rm -f confcache
 6.30368 +@@ -11532,63 +12582,48 @@
 6.30369 + # Let make expand exec_prefix.
 6.30370 + test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
 6.30371 + 
 6.30372 +-# VPATH may cause trouble with some makes, so we remove $(srcdir),
 6.30373 +-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
 6.30374 +-# trailing colons and then remove the whole line if VPATH becomes empty
 6.30375 +-# (actually we leave an empty line to preserve line numbers).
 6.30376 +-if test "x$srcdir" = x.; then
 6.30377 +-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
 6.30378 +-s/:*\$(srcdir):*/:/;
 6.30379 +-s/:*\${srcdir}:*/:/;
 6.30380 +-s/:*@srcdir@:*/:/;
 6.30381 +-s/^\([^=]*=[	 ]*\):*/\1/;
 6.30382 +-s/:*$//;
 6.30383 +-s/^[^=]*=[	 ]*$//;
 6.30384 +-}'
 6.30385 +-fi
 6.30386 +-
 6.30387 + # Transform confdefs.h into DEFS.
 6.30388 + # Protect against shell expansion while executing Makefile rules.
 6.30389 + # Protect against Makefile macro expansion.
 6.30390 + #
 6.30391 + # If the first sed substitution is executed (which looks for macros that
 6.30392 +-# take arguments), then we branch to the quote section.  Otherwise,
 6.30393 ++# take arguments), then branch to the quote section.  Otherwise,
 6.30394 + # look for a macro that doesn't take arguments.
 6.30395 +-cat >confdef2opt.sed <<\_ACEOF
 6.30396 ++ac_script='
 6.30397 + t clear
 6.30398 +-: clear
 6.30399 +-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\),-D\1=\2,g
 6.30400 ++:clear
 6.30401 ++s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\)/-D\1=\2/g
 6.30402 + t quote
 6.30403 +-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\),-D\1=\2,g
 6.30404 ++s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)/-D\1=\2/g
 6.30405 + t quote
 6.30406 +-d
 6.30407 +-: quote
 6.30408 +-s,[	 `~#$^&*(){}\\|;'"<>?],\\&,g
 6.30409 +-s,\[,\\&,g
 6.30410 +-s,\],\\&,g
 6.30411 +-s,\$,$$,g
 6.30412 +-p
 6.30413 +-_ACEOF
 6.30414 +-# We use echo to avoid assuming a particular line-breaking character.
 6.30415 +-# The extra dot is to prevent the shell from consuming trailing
 6.30416 +-# line-breaks from the sub-command output.  A line-break within
 6.30417 +-# single-quotes doesn't work because, if this script is created in a
 6.30418 +-# platform that uses two characters for line-breaks (e.g., DOS), tr
 6.30419 +-# would break.
 6.30420 +-ac_LF_and_DOT=`echo; echo .`
 6.30421 +-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
 6.30422 +-rm -f confdef2opt.sed
 6.30423 ++b any
 6.30424 ++:quote
 6.30425 ++s/[	 `~#$^&*(){}\\|;'\''"<>?]/\\&/g
 6.30426 ++s/\[/\\&/g
 6.30427 ++s/\]/\\&/g
 6.30428 ++s/\$/$$/g
 6.30429 ++H
 6.30430 ++:any
 6.30431 ++${
 6.30432 ++	g
 6.30433 ++	s/^\n//
 6.30434 ++	s/\n/ /g
 6.30435 ++	p
 6.30436 ++}
 6.30437 ++'
 6.30438 ++DEFS=`sed -n "$ac_script" confdefs.h`
 6.30439 + 
 6.30440 + 
 6.30441 + ac_libobjs=
 6.30442 + ac_ltlibobjs=
 6.30443 + for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
 6.30444 +   # 1. Remove the extension, and $U if already installed.
 6.30445 +-  ac_i=`echo "$ac_i" |
 6.30446 +-	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
 6.30447 +-  # 2. Add them.
 6.30448 +-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
 6.30449 +-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
 6.30450 ++  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
 6.30451 ++  ac_i=`echo "$ac_i" | sed "$ac_script"`
 6.30452 ++  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
 6.30453 ++  #    will be set to the directory where LIBOBJS objects are built.
 6.30454 ++  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
 6.30455 ++  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
 6.30456 + done
 6.30457 + LIBOBJS=$ac_libobjs
 6.30458 + 
 6.30459 +@@ -11703,17 +12738,45 @@
 6.30460 + ## M4sh Initialization.  ##
 6.30461 + ## --------------------- ##
 6.30462 + 
 6.30463 +-# Be Bourne compatible
 6.30464 ++# Be more Bourne compatible
 6.30465 ++DUALCASE=1; export DUALCASE # for MKS sh
 6.30466 + if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
 6.30467 +   emulate sh
 6.30468 +   NULLCMD=:
 6.30469 +   # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
 6.30470 +   # is contrary to our usage.  Disable this feature.
 6.30471 +   alias -g '${1+"$@"}'='"$@"'
 6.30472 +-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
 6.30473 +-  set -o posix
 6.30474 ++  setopt NO_GLOB_SUBST
 6.30475 ++else
 6.30476 ++  case `(set -o) 2>/dev/null` in
 6.30477 ++  *posix*) set -o posix ;;
 6.30478 ++esac
 6.30479 ++
 6.30480 ++fi
 6.30481 ++
 6.30482 ++
 6.30483 ++
 6.30484 ++
 6.30485 ++# PATH needs CR
 6.30486 ++# Avoid depending upon Character Ranges.
 6.30487 ++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
 6.30488 ++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
 6.30489 ++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 6.30490 ++as_cr_digits='0123456789'
 6.30491 ++as_cr_alnum=$as_cr_Letters$as_cr_digits
 6.30492 ++
 6.30493 ++# The user is always right.
 6.30494 ++if test "${PATH_SEPARATOR+set}" != set; then
 6.30495 ++  echo "#! /bin/sh" >conf$$.sh
 6.30496 ++  echo  "exit 0"   >>conf$$.sh
 6.30497 ++  chmod +x conf$$.sh
 6.30498 ++  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
 6.30499 ++    PATH_SEPARATOR=';'
 6.30500 ++  else
 6.30501 ++    PATH_SEPARATOR=:
 6.30502 ++  fi
 6.30503 ++  rm -f conf$$.sh
 6.30504 + fi
 6.30505 +-DUALCASE=1; export DUALCASE # for MKS sh
 6.30506 + 
 6.30507 + # Support unset when possible.
 6.30508 + if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
 6.30509 +@@ -11723,8 +12786,43 @@
 6.30510 + fi
 6.30511 + 
 6.30512 + 
 6.30513 ++# IFS
 6.30514 ++# We need space, tab and new line, in precisely that order.  Quoting is
 6.30515 ++# there to prevent editors from complaining about space-tab.
 6.30516 ++# (If _AS_PATH_WALK were called with IFS unset, it would disable word
 6.30517 ++# splitting by setting IFS to empty value.)
 6.30518 ++as_nl='
 6.30519 ++'
 6.30520 ++IFS=" ""	$as_nl"
 6.30521 ++
 6.30522 ++# Find who we are.  Look in the path if we contain no directory separator.
 6.30523 ++case $0 in
 6.30524 ++  *[\\/]* ) as_myself=$0 ;;
 6.30525 ++  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.30526 ++for as_dir in $PATH
 6.30527 ++do
 6.30528 ++  IFS=$as_save_IFS
 6.30529 ++  test -z "$as_dir" && as_dir=.
 6.30530 ++  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
 6.30531 ++done
 6.30532 ++IFS=$as_save_IFS
 6.30533 ++
 6.30534 ++     ;;
 6.30535 ++esac
 6.30536 ++# We did not find ourselves, most probably we were run as `sh COMMAND'
 6.30537 ++# in which case we are not to be found in the path.
 6.30538 ++if test "x$as_myself" = x; then
 6.30539 ++  as_myself=$0
 6.30540 ++fi
 6.30541 ++if test ! -f "$as_myself"; then
 6.30542 ++  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
 6.30543 ++  { (exit 1); exit 1; }
 6.30544 ++fi
 6.30545 ++
 6.30546 + # Work around bugs in pre-3.0 UWIN ksh.
 6.30547 +-$as_unset ENV MAIL MAILPATH
 6.30548 ++for as_var in ENV MAIL MAILPATH
 6.30549 ++do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
 6.30550 ++done
 6.30551 + PS1='$ '
 6.30552 + PS2='> '
 6.30553 + PS4='+ '
 6.30554 +@@ -11738,18 +12836,19 @@
 6.30555 +   if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
 6.30556 +     eval $as_var=C; export $as_var
 6.30557 +   else
 6.30558 +-    $as_unset $as_var
 6.30559 ++    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
 6.30560 +   fi
 6.30561 + done
 6.30562 + 
 6.30563 + # Required to use basename.
 6.30564 +-if expr a : '\(a\)' >/dev/null 2>&1; then
 6.30565 ++if expr a : '\(a\)' >/dev/null 2>&1 &&
 6.30566 ++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
 6.30567 +   as_expr=expr
 6.30568 + else
 6.30569 +   as_expr=false
 6.30570 + fi
 6.30571 + 
 6.30572 +-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
 6.30573 ++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
 6.30574 +   as_basename=basename
 6.30575 + else
 6.30576 +   as_basename=false
 6.30577 +@@ -11757,159 +12856,120 @@
 6.30578 + 
 6.30579 + 
 6.30580 + # Name of the executable.
 6.30581 +-as_me=`$as_basename "$0" ||
 6.30582 ++as_me=`$as_basename -- "$0" ||
 6.30583 + $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 6.30584 + 	 X"$0" : 'X\(//\)$' \| \
 6.30585 +-	 X"$0" : 'X\(/\)$' \| \
 6.30586 +-	 .     : '\(.\)' 2>/dev/null ||
 6.30587 ++	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
 6.30588 + echo X/"$0" |
 6.30589 +-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
 6.30590 +-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
 6.30591 +-  	  /^X\/\(\/\).*/{ s//\1/; q; }
 6.30592 +-  	  s/.*/./; q'`
 6.30593 +-
 6.30594 +-
 6.30595 +-# PATH needs CR, and LINENO needs CR and PATH.
 6.30596 +-# Avoid depending upon Character Ranges.
 6.30597 +-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
 6.30598 +-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
 6.30599 +-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 6.30600 +-as_cr_digits='0123456789'
 6.30601 +-as_cr_alnum=$as_cr_Letters$as_cr_digits
 6.30602 +-
 6.30603 +-# The user is always right.
 6.30604 +-if test "${PATH_SEPARATOR+set}" != set; then
 6.30605 +-  echo "#! /bin/sh" >conf$$.sh
 6.30606 +-  echo  "exit 0"   >>conf$$.sh
 6.30607 +-  chmod +x conf$$.sh
 6.30608 +-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
 6.30609 +-    PATH_SEPARATOR=';'
 6.30610 +-  else
 6.30611 +-    PATH_SEPARATOR=:
 6.30612 +-  fi
 6.30613 +-  rm -f conf$$.sh
 6.30614 +-fi
 6.30615 ++    sed '/^.*\/\([^/][^/]*\)\/*$/{
 6.30616 ++	    s//\1/
 6.30617 ++	    q
 6.30618 ++	  }
 6.30619 ++	  /^X\/\(\/\/\)$/{
 6.30620 ++	    s//\1/
 6.30621 ++	    q
 6.30622 ++	  }
 6.30623 ++	  /^X\/\(\/\).*/{
 6.30624 ++	    s//\1/
 6.30625 ++	    q
 6.30626 ++	  }
 6.30627 ++	  s/.*/./; q'`
 6.30628 ++
 6.30629 ++# CDPATH.
 6.30630 ++$as_unset CDPATH
 6.30631 + 
 6.30632 + 
 6.30633 +-  as_lineno_1=$LINENO
 6.30634 +-  as_lineno_2=$LINENO
 6.30635 +-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
 6.30636 +-  test "x$as_lineno_1" != "x$as_lineno_2" &&
 6.30637 +-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
 6.30638 +-  # Find who we are.  Look in the path if we contain no path at all
 6.30639 +-  # relative or not.
 6.30640 +-  case $0 in
 6.30641 +-    *[\\/]* ) as_myself=$0 ;;
 6.30642 +-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.30643 +-for as_dir in $PATH
 6.30644 +-do
 6.30645 +-  IFS=$as_save_IFS
 6.30646 +-  test -z "$as_dir" && as_dir=.
 6.30647 +-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
 6.30648 +-done
 6.30649 + 
 6.30650 +-       ;;
 6.30651 +-  esac
 6.30652 +-  # We did not find ourselves, most probably we were run as `sh COMMAND'
 6.30653 +-  # in which case we are not to be found in the path.
 6.30654 +-  if test "x$as_myself" = x; then
 6.30655 +-    as_myself=$0
 6.30656 +-  fi
 6.30657 +-  if test ! -f "$as_myself"; then
 6.30658 +-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
 6.30659 +-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
 6.30660 +-   { (exit 1); exit 1; }; }
 6.30661 +-  fi
 6.30662 +-  case $CONFIG_SHELL in
 6.30663 +-  '')
 6.30664 +-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 6.30665 +-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 6.30666 +-do
 6.30667 +-  IFS=$as_save_IFS
 6.30668 +-  test -z "$as_dir" && as_dir=.
 6.30669 +-  for as_base in sh bash ksh sh5; do
 6.30670 +-	 case $as_dir in
 6.30671 +-	 /*)
 6.30672 +-	   if ("$as_dir/$as_base" -c '
 6.30673 +   as_lineno_1=$LINENO
 6.30674 +   as_lineno_2=$LINENO
 6.30675 +-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
 6.30676 +   test "x$as_lineno_1" != "x$as_lineno_2" &&
 6.30677 +-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
 6.30678 +-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
 6.30679 +-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
 6.30680 +-	     CONFIG_SHELL=$as_dir/$as_base
 6.30681 +-	     export CONFIG_SHELL
 6.30682 +-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
 6.30683 +-	   fi;;
 6.30684 +-	 esac
 6.30685 +-       done
 6.30686 +-done
 6.30687 +-;;
 6.30688 +-  esac
 6.30689 ++  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
 6.30690 + 
 6.30691 +   # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
 6.30692 +   # uniformly replaced by the line number.  The first 'sed' inserts a
 6.30693 +-  # line-number line before each line; the second 'sed' does the real
 6.30694 +-  # work.  The second script uses 'N' to pair each line-number line
 6.30695 +-  # with the numbered line, and appends trailing '-' during
 6.30696 +-  # substitution so that $LINENO is not a special case at line end.
 6.30697 ++  # line-number line after each line using $LINENO; the second 'sed'
 6.30698 ++  # does the real work.  The second script uses 'N' to pair each
 6.30699 ++  # line-number line with the line containing $LINENO, and appends
 6.30700 ++  # trailing '-' during substitution so that $LINENO is not a special
 6.30701 ++  # case at line end.
 6.30702 +   # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
 6.30703 +-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
 6.30704 +-  sed '=' <$as_myself |
 6.30705 ++  # scripts with optimization help from Paolo Bonzini.  Blame Lee
 6.30706 ++  # E. McMahon (1931-1989) for sed's syntax.  :-)
 6.30707 ++  sed -n '
 6.30708 ++    p
 6.30709 ++    /[$]LINENO/=
 6.30710 ++  ' <$as_myself |
 6.30711 +     sed '
 6.30712 ++      s/[$]LINENO.*/&-/
 6.30713 ++      t lineno
 6.30714 ++      b
 6.30715 ++      :lineno
 6.30716 +       N
 6.30717 +-      s,$,-,
 6.30718 +-      : loop
 6.30719 +-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
 6.30720 ++      :loop
 6.30721 ++      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
 6.30722 +       t loop
 6.30723 +-      s,-$,,
 6.30724 +-      s,^['$as_cr_digits']*\n,,
 6.30725 ++      s/-\n.*//
 6.30726 +     ' >$as_me.lineno &&
 6.30727 +-  chmod +x $as_me.lineno ||
 6.30728 +-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
 6.30729 +-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
 6.30730 ++  chmod +x "$as_me.lineno" ||
 6.30731 ++    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
 6.30732 +    { (exit 1); exit 1; }; }
 6.30733 + 
 6.30734 +   # Don't try to exec as it changes $[0], causing all sort of problems
 6.30735 +   # (the dirname of $[0] is not the place where we might find the
 6.30736 +-  # original and so on.  Autoconf is especially sensible to this).
 6.30737 +-  . ./$as_me.lineno
 6.30738 ++  # original and so on.  Autoconf is especially sensitive to this).
 6.30739 ++  . "./$as_me.lineno"
 6.30740 +   # Exit status is that of the last command.
 6.30741 +   exit
 6.30742 + }
 6.30743 + 
 6.30744 + 
 6.30745 +-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
 6.30746 +-  *c*,-n*) ECHO_N= ECHO_C='
 6.30747 +-' ECHO_T='	' ;;
 6.30748 +-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
 6.30749 +-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
 6.30750 ++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
 6.30751 ++  as_dirname=dirname
 6.30752 ++else
 6.30753 ++  as_dirname=false
 6.30754 ++fi
 6.30755 ++
 6.30756 ++ECHO_C= ECHO_N= ECHO_T=
 6.30757 ++case `echo -n x` in
 6.30758 ++-n*)
 6.30759 ++  case `echo 'x\c'` in
 6.30760 ++  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
 6.30761 ++  *)   ECHO_C='\c';;
 6.30762 ++  esac;;
 6.30763 ++*)
 6.30764 ++  ECHO_N='-n';;
 6.30765 + esac
 6.30766 + 
 6.30767 +-if expr a : '\(a\)' >/dev/null 2>&1; then
 6.30768 ++if expr a : '\(a\)' >/dev/null 2>&1 &&
 6.30769 ++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
 6.30770 +   as_expr=expr
 6.30771 + else
 6.30772 +   as_expr=false
 6.30773 + fi
 6.30774 + 
 6.30775 + rm -f conf$$ conf$$.exe conf$$.file
 6.30776 ++if test -d conf$$.dir; then
 6.30777 ++  rm -f conf$$.dir/conf$$.file
 6.30778 ++else
 6.30779 ++  rm -f conf$$.dir
 6.30780 ++  mkdir conf$$.dir
 6.30781 ++fi
 6.30782 + echo >conf$$.file
 6.30783 + if ln -s conf$$.file conf$$ 2>/dev/null; then
 6.30784 +-  # We could just check for DJGPP; but this test a) works b) is more generic
 6.30785 +-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
 6.30786 +-  if test -f conf$$.exe; then
 6.30787 +-    # Don't use ln at all; we don't have any links
 6.30788 ++  as_ln_s='ln -s'
 6.30789 ++  # ... but there are two gotchas:
 6.30790 ++  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
 6.30791 ++  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
 6.30792 ++  # In both cases, we have to default to `cp -p'.
 6.30793 ++  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
 6.30794 +     as_ln_s='cp -p'
 6.30795 +-  else
 6.30796 +-    as_ln_s='ln -s'
 6.30797 +-  fi
 6.30798 + elif ln conf$$.file conf$$ 2>/dev/null; then
 6.30799 +   as_ln_s=ln
 6.30800 + else
 6.30801 +   as_ln_s='cp -p'
 6.30802 + fi
 6.30803 +-rm -f conf$$ conf$$.exe conf$$.file
 6.30804 ++rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 6.30805 ++rmdir conf$$.dir 2>/dev/null
 6.30806 + 
 6.30807 + if mkdir -p . 2>/dev/null; then
 6.30808 +   as_mkdir_p=:
 6.30809 +@@ -11918,7 +12978,28 @@
 6.30810 +   as_mkdir_p=false
 6.30811 + fi
 6.30812 + 
 6.30813 +-as_executable_p="test -f"
 6.30814 ++if test -x / >/dev/null 2>&1; then
 6.30815 ++  as_test_x='test -x'
 6.30816 ++else
 6.30817 ++  if ls -dL / >/dev/null 2>&1; then
 6.30818 ++    as_ls_L_option=L
 6.30819 ++  else
 6.30820 ++    as_ls_L_option=
 6.30821 ++  fi
 6.30822 ++  as_test_x='
 6.30823 ++    eval sh -c '\''
 6.30824 ++      if test -d "$1"; then
 6.30825 ++        test -d "$1/.";
 6.30826 ++      else
 6.30827 ++	case $1 in
 6.30828 ++        -*)set "./$1";;
 6.30829 ++	esac;
 6.30830 ++	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
 6.30831 ++	???[sx]*):;;*)false;;esac;fi
 6.30832 ++    '\'' sh
 6.30833 ++  '
 6.30834 ++fi
 6.30835 ++as_executable_p=$as_test_x
 6.30836 + 
 6.30837 + # Sed expression to map a string onto a valid CPP name.
 6.30838 + as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 6.30839 +@@ -11927,31 +13008,14 @@
 6.30840 + as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 6.30841 + 
 6.30842 + 
 6.30843 +-# IFS
 6.30844 +-# We need space, tab and new line, in precisely that order.
 6.30845 +-as_nl='
 6.30846 +-'
 6.30847 +-IFS=" 	$as_nl"
 6.30848 +-
 6.30849 +-# CDPATH.
 6.30850 +-$as_unset CDPATH
 6.30851 +-
 6.30852 + exec 6>&1
 6.30853 + 
 6.30854 +-# Open the log real soon, to keep \$[0] and so on meaningful, and to
 6.30855 ++# Save the log message, to keep $[0] and so on meaningful, and to
 6.30856 + # report actual input values of CONFIG_FILES etc. instead of their
 6.30857 +-# values after options handling.  Logging --version etc. is OK.
 6.30858 +-exec 5>>config.log
 6.30859 +-{
 6.30860 +-  echo
 6.30861 +-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
 6.30862 +-## Running $as_me. ##
 6.30863 +-_ASBOX
 6.30864 +-} >&5
 6.30865 +-cat >&5 <<_CSEOF
 6.30866 +-
 6.30867 ++# values after options handling.
 6.30868 ++ac_log="
 6.30869 + This file was extended by newlib $as_me 1.17.0, which was
 6.30870 +-generated by GNU Autoconf 2.59.  Invocation command line was
 6.30871 ++generated by GNU Autoconf 2.61.  Invocation command line was
 6.30872 + 
 6.30873 +   CONFIG_FILES    = $CONFIG_FILES
 6.30874 +   CONFIG_HEADERS  = $CONFIG_HEADERS
 6.30875 +@@ -11959,30 +13023,19 @@
 6.30876 +   CONFIG_COMMANDS = $CONFIG_COMMANDS
 6.30877 +   $ $0 $@
 6.30878 + 
 6.30879 +-_CSEOF
 6.30880 +-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
 6.30881 +-echo >&5
 6.30882 ++on `(hostname || uname -n) 2>/dev/null | sed 1q`
 6.30883 ++"
 6.30884 ++
 6.30885 + _ACEOF
 6.30886 + 
 6.30887 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.30888 + # Files that config.status was made for.
 6.30889 +-if test -n "$ac_config_files"; then
 6.30890 +-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
 6.30891 +-fi
 6.30892 +-
 6.30893 +-if test -n "$ac_config_headers"; then
 6.30894 +-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
 6.30895 +-fi
 6.30896 +-
 6.30897 +-if test -n "$ac_config_links"; then
 6.30898 +-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
 6.30899 +-fi
 6.30900 ++config_files="$ac_config_files"
 6.30901 ++config_commands="$ac_config_commands"
 6.30902 + 
 6.30903 +-if test -n "$ac_config_commands"; then
 6.30904 +-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
 6.30905 +-fi
 6.30906 ++_ACEOF
 6.30907 + 
 6.30908 + cat >>$CONFIG_STATUS <<\_ACEOF
 6.30909 +-
 6.30910 + ac_cs_usage="\
 6.30911 + \`$as_me' instantiates files from templates according to the
 6.30912 + current configuration.
 6.30913 +@@ -11990,7 +13043,7 @@
 6.30914 + Usage: $0 [OPTIONS] [FILE]...
 6.30915 + 
 6.30916 +   -h, --help       print this help, then exit
 6.30917 +-  -V, --version    print version number, then exit
 6.30918 ++  -V, --version    print version number and configuration settings, then exit
 6.30919 +   -q, --quiet      do not print progress messages
 6.30920 +   -d, --debug      don't remove temporary files
 6.30921 +       --recheck    update $as_me by reconfiguring in the same conditions
 6.30922 +@@ -12004,19 +13057,21 @@
 6.30923 + $config_commands
 6.30924 + 
 6.30925 + Report bugs to <bug-autoconf@gnu.org>."
 6.30926 +-_ACEOF
 6.30927 + 
 6.30928 ++_ACEOF
 6.30929 + cat >>$CONFIG_STATUS <<_ACEOF
 6.30930 + ac_cs_version="\\
 6.30931 + newlib config.status 1.17.0
 6.30932 +-configured by $0, generated by GNU Autoconf 2.59,
 6.30933 +-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 6.30934 ++configured by $0, generated by GNU Autoconf 2.61,
 6.30935 ++  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 6.30936 + 
 6.30937 +-Copyright (C) 2003 Free Software Foundation, Inc.
 6.30938 ++Copyright (C) 2006 Free Software Foundation, Inc.
 6.30939 + This config.status script is free software; the Free Software Foundation
 6.30940 + gives unlimited permission to copy, distribute and modify it."
 6.30941 +-srcdir=$srcdir
 6.30942 +-INSTALL="$INSTALL"
 6.30943 ++
 6.30944 ++ac_pwd='$ac_pwd'
 6.30945 ++srcdir='$srcdir'
 6.30946 ++INSTALL='$INSTALL'
 6.30947 + _ACEOF
 6.30948 + 
 6.30949 + cat >>$CONFIG_STATUS <<\_ACEOF
 6.30950 +@@ -12027,60 +13082,42 @@
 6.30951 + do
 6.30952 +   case $1 in
 6.30953 +   --*=*)
 6.30954 +-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
 6.30955 +-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
 6.30956 ++    ac_option=`expr "X$1" : 'X\([^=]*\)='`
 6.30957 ++    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
 6.30958 +     ac_shift=:
 6.30959 +     ;;
 6.30960 +-  -*)
 6.30961 ++  *)
 6.30962 +     ac_option=$1
 6.30963 +     ac_optarg=$2
 6.30964 +     ac_shift=shift
 6.30965 +     ;;
 6.30966 +-  *) # This is not an option, so the user has probably given explicit
 6.30967 +-     # arguments.
 6.30968 +-     ac_option=$1
 6.30969 +-     ac_need_defaults=false;;
 6.30970 +   esac
 6.30971 + 
 6.30972 +   case $ac_option in
 6.30973 +   # Handling of the options.
 6.30974 +-_ACEOF
 6.30975 +-cat >>$CONFIG_STATUS <<\_ACEOF
 6.30976 +   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
 6.30977 +     ac_cs_recheck=: ;;
 6.30978 +-  --version | --vers* | -V )
 6.30979 +-    echo "$ac_cs_version"; exit 0 ;;
 6.30980 +-  --he | --h)
 6.30981 +-    # Conflict between --help and --header
 6.30982 +-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
 6.30983 +-Try \`$0 --help' for more information." >&5
 6.30984 +-echo "$as_me: error: ambiguous option: $1
 6.30985 +-Try \`$0 --help' for more information." >&2;}
 6.30986 +-   { (exit 1); exit 1; }; };;
 6.30987 +-  --help | --hel | -h )
 6.30988 +-    echo "$ac_cs_usage"; exit 0 ;;
 6.30989 +-  --debug | --d* | -d )
 6.30990 ++  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
 6.30991 ++    echo "$ac_cs_version"; exit ;;
 6.30992 ++  --debug | --debu | --deb | --de | --d | -d )
 6.30993 +     debug=: ;;
 6.30994 +   --file | --fil | --fi | --f )
 6.30995 +     $ac_shift
 6.30996 +     CONFIG_FILES="$CONFIG_FILES $ac_optarg"
 6.30997 +     ac_need_defaults=false;;
 6.30998 +-  --header | --heade | --head | --hea )
 6.30999 +-    $ac_shift
 6.31000 +-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
 6.31001 +-    ac_need_defaults=false;;
 6.31002 ++  --he | --h |  --help | --hel | -h )
 6.31003 ++    echo "$ac_cs_usage"; exit ;;
 6.31004 +   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
 6.31005 +   | -silent | --silent | --silen | --sile | --sil | --si | --s)
 6.31006 +     ac_cs_silent=: ;;
 6.31007 + 
 6.31008 +   # This is an error.
 6.31009 +-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
 6.31010 +-Try \`$0 --help' for more information." >&5
 6.31011 +-echo "$as_me: error: unrecognized option: $1
 6.31012 +-Try \`$0 --help' for more information." >&2;}
 6.31013 ++  -*) { echo "$as_me: error: unrecognized option: $1
 6.31014 ++Try \`$0 --help' for more information." >&2
 6.31015 +    { (exit 1); exit 1; }; } ;;
 6.31016 + 
 6.31017 +-  *) ac_config_targets="$ac_config_targets $1" ;;
 6.31018 ++  *) ac_config_targets="$ac_config_targets $1"
 6.31019 ++     ac_need_defaults=false ;;
 6.31020 + 
 6.31021 +   esac
 6.31022 +   shift
 6.31023 +@@ -12096,17 +13133,28 @@
 6.31024 + _ACEOF
 6.31025 + cat >>$CONFIG_STATUS <<_ACEOF
 6.31026 + if \$ac_cs_recheck; then
 6.31027 +-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
 6.31028 +-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
 6.31029 ++  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
 6.31030 ++  CONFIG_SHELL=$SHELL
 6.31031 ++  export CONFIG_SHELL
 6.31032 ++  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
 6.31033 + fi
 6.31034 + 
 6.31035 + _ACEOF
 6.31036 ++cat >>$CONFIG_STATUS <<\_ACEOF
 6.31037 ++exec 5>>config.log
 6.31038 ++{
 6.31039 ++  echo
 6.31040 ++  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
 6.31041 ++## Running $as_me. ##
 6.31042 ++_ASBOX
 6.31043 ++  echo "$ac_log"
 6.31044 ++} >&5
 6.31045 + 
 6.31046 ++_ACEOF
 6.31047 + cat >>$CONFIG_STATUS <<_ACEOF
 6.31048 + #
 6.31049 +-# INIT-COMMANDS section.
 6.31050 ++# INIT-COMMANDS
 6.31051 + #
 6.31052 +-
 6.31053 + AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 6.31054 + 
 6.31055 + 
 6.31056 +@@ -12367,22 +13415,23 @@
 6.31057 + 
 6.31058 + _ACEOF
 6.31059 + 
 6.31060 +-
 6.31061 +-
 6.31062 + cat >>$CONFIG_STATUS <<\_ACEOF
 6.31063 ++
 6.31064 ++# Handling of arguments.
 6.31065 + for ac_config_target in $ac_config_targets
 6.31066 + do
 6.31067 +-  case "$ac_config_target" in
 6.31068 +-  # Handling of arguments.
 6.31069 +-  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
 6.31070 +-  "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
 6.31071 +-  "libtool" ) CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
 6.31072 ++  case $ac_config_target in
 6.31073 ++    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
 6.31074 ++    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
 6.31075 ++    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
 6.31076 ++
 6.31077 +   *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
 6.31078 + echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
 6.31079 +    { (exit 1); exit 1; }; };;
 6.31080 +   esac
 6.31081 + done
 6.31082 + 
 6.31083 ++
 6.31084 + # If the user did not use the arguments to specify the items to instantiate,
 6.31085 + # then the envvar interface is used.  Set only those that are not.
 6.31086 + # We use the long form for the default assignment because of an extremely
 6.31087 +@@ -12393,397 +13442,493 @@
 6.31088 + fi
 6.31089 + 
 6.31090 + # Have a temporary directory for convenience.  Make it in the build tree
 6.31091 +-# simply because there is no reason to put it here, and in addition,
 6.31092 ++# simply because there is no reason against having it here, and in addition,
 6.31093 + # creating and moving files from /tmp can sometimes cause problems.
 6.31094 +-# Create a temporary directory, and hook for its removal unless debugging.
 6.31095 ++# Hook for its removal unless debugging.
 6.31096 ++# Note that there is a small window in which the directory will not be cleaned:
 6.31097 ++# after its creation but before its name has been assigned to `$tmp'.
 6.31098 + $debug ||
 6.31099 + {
 6.31100 +-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
 6.31101 ++  tmp=
 6.31102 ++  trap 'exit_status=$?
 6.31103 ++  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
 6.31104 ++' 0
 6.31105 +   trap '{ (exit 1); exit 1; }' 1 2 13 15
 6.31106 + }
 6.31107 +-
 6.31108 + # Create a (secure) tmp directory for tmp files.
 6.31109 + 
 6.31110 + {
 6.31111 +-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
 6.31112 ++  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
 6.31113 +   test -n "$tmp" && test -d "$tmp"
 6.31114 + }  ||
 6.31115 + {
 6.31116 +-  tmp=./confstat$$-$RANDOM
 6.31117 +-  (umask 077 && mkdir $tmp)
 6.31118 ++  tmp=./conf$$-$RANDOM
 6.31119 ++  (umask 077 && mkdir "$tmp")
 6.31120 + } ||
 6.31121 + {
 6.31122 +    echo "$me: cannot create a temporary directory in ." >&2
 6.31123 +    { (exit 1); exit 1; }
 6.31124 + }
 6.31125 + 
 6.31126 +-_ACEOF
 6.31127 +-
 6.31128 +-cat >>$CONFIG_STATUS <<_ACEOF
 6.31129 +-
 6.31130 + #
 6.31131 +-# CONFIG_FILES section.
 6.31132 ++# Set up the sed scripts for CONFIG_FILES section.
 6.31133 + #
 6.31134 + 
 6.31135 + # No need to generate the scripts if there are no CONFIG_FILES.
 6.31136 + # This happens for instance when ./config.status config.h
 6.31137 +-if test -n "\$CONFIG_FILES"; then
 6.31138 +-  # Protect against being on the right side of a sed subst in config.status.
 6.31139 +-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
 6.31140 +-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
 6.31141 +-s,@SHELL@,$SHELL,;t t
 6.31142 +-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
 6.31143 +-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
 6.31144 +-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
 6.31145 +-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
 6.31146 +-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
 6.31147 +-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
 6.31148 +-s,@exec_prefix@,$exec_prefix,;t t
 6.31149 +-s,@prefix@,$prefix,;t t
 6.31150 +-s,@program_transform_name@,$program_transform_name,;t t
 6.31151 +-s,@bindir@,$bindir,;t t
 6.31152 +-s,@sbindir@,$sbindir,;t t
 6.31153 +-s,@libexecdir@,$libexecdir,;t t
 6.31154 +-s,@datadir@,$datadir,;t t
 6.31155 +-s,@sysconfdir@,$sysconfdir,;t t
 6.31156 +-s,@sharedstatedir@,$sharedstatedir,;t t
 6.31157 +-s,@localstatedir@,$localstatedir,;t t
 6.31158 +-s,@libdir@,$libdir,;t t
 6.31159 +-s,@includedir@,$includedir,;t t
 6.31160 +-s,@oldincludedir@,$oldincludedir,;t t
 6.31161 +-s,@infodir@,$infodir,;t t
 6.31162 +-s,@mandir@,$mandir,;t t
 6.31163 +-s,@build_alias@,$build_alias,;t t
 6.31164 +-s,@host_alias@,$host_alias,;t t
 6.31165 +-s,@target_alias@,$target_alias,;t t
 6.31166 +-s,@DEFS@,$DEFS,;t t
 6.31167 +-s,@ECHO_C@,$ECHO_C,;t t
 6.31168 +-s,@ECHO_N@,$ECHO_N,;t t
 6.31169 +-s,@ECHO_T@,$ECHO_T,;t t
 6.31170 +-s,@LIBS@,$LIBS,;t t
 6.31171 +-s,@MAY_SUPPLY_SYSCALLS_TRUE@,$MAY_SUPPLY_SYSCALLS_TRUE,;t t
 6.31172 +-s,@MAY_SUPPLY_SYSCALLS_FALSE@,$MAY_SUPPLY_SYSCALLS_FALSE,;t t
 6.31173 +-s,@newlib_basedir@,$newlib_basedir,;t t
 6.31174 +-s,@build@,$build,;t t
 6.31175 +-s,@build_cpu@,$build_cpu,;t t
 6.31176 +-s,@build_vendor@,$build_vendor,;t t
 6.31177 +-s,@build_os@,$build_os,;t t
 6.31178 +-s,@host@,$host,;t t
 6.31179 +-s,@host_cpu@,$host_cpu,;t t
 6.31180 +-s,@host_vendor@,$host_vendor,;t t
 6.31181 +-s,@host_os@,$host_os,;t t
 6.31182 +-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
 6.31183 +-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
 6.31184 +-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
 6.31185 +-s,@CYGPATH_W@,$CYGPATH_W,;t t
 6.31186 +-s,@PACKAGE@,$PACKAGE,;t t
 6.31187 +-s,@VERSION@,$VERSION,;t t
 6.31188 +-s,@ACLOCAL@,$ACLOCAL,;t t
 6.31189 +-s,@AUTOCONF@,$AUTOCONF,;t t
 6.31190 +-s,@AUTOMAKE@,$AUTOMAKE,;t t
 6.31191 +-s,@AUTOHEADER@,$AUTOHEADER,;t t
 6.31192 +-s,@MAKEINFO@,$MAKEINFO,;t t
 6.31193 +-s,@install_sh@,$install_sh,;t t
 6.31194 +-s,@STRIP@,$STRIP,;t t
 6.31195 +-s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
 6.31196 +-s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
 6.31197 +-s,@mkdir_p@,$mkdir_p,;t t
 6.31198 +-s,@AWK@,$AWK,;t t
 6.31199 +-s,@SET_MAKE@,$SET_MAKE,;t t
 6.31200 +-s,@am__leading_dot@,$am__leading_dot,;t t
 6.31201 +-s,@AMTAR@,$AMTAR,;t t
 6.31202 +-s,@am__tar@,$am__tar,;t t
 6.31203 +-s,@am__untar@,$am__untar,;t t
 6.31204 +-s,@CC@,$CC,;t t
 6.31205 +-s,@DEPDIR@,$DEPDIR,;t t
 6.31206 +-s,@am__include@,$am__include,;t t
 6.31207 +-s,@am__quote@,$am__quote,;t t
 6.31208 +-s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
 6.31209 +-s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
 6.31210 +-s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
 6.31211 +-s,@CCDEPMODE@,$CCDEPMODE,;t t
 6.31212 +-s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
 6.31213 +-s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
 6.31214 +-s,@AS@,$AS,;t t
 6.31215 +-s,@ac_ct_AS@,$ac_ct_AS,;t t
 6.31216 +-s,@AR@,$AR,;t t
 6.31217 +-s,@ac_ct_AR@,$ac_ct_AR,;t t
 6.31218 +-s,@RANLIB@,$RANLIB,;t t
 6.31219 +-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
 6.31220 +-s,@READELF@,$READELF,;t t
 6.31221 +-s,@ac_ct_READELF@,$ac_ct_READELF,;t t
 6.31222 +-s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
 6.31223 +-s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
 6.31224 +-s,@MAINT@,$MAINT,;t t
 6.31225 +-s,@CCAS@,$CCAS,;t t
 6.31226 +-s,@CCASFLAGS@,$CCASFLAGS,;t t
 6.31227 +-s,@NEWLIB_CFLAGS@,$NEWLIB_CFLAGS,;t t
 6.31228 +-s,@LDFLAGS@,$LDFLAGS,;t t
 6.31229 +-s,@ELIX_LEVEL_0_TRUE@,$ELIX_LEVEL_0_TRUE,;t t
 6.31230 +-s,@ELIX_LEVEL_0_FALSE@,$ELIX_LEVEL_0_FALSE,;t t
 6.31231 +-s,@ELIX_LEVEL_1_TRUE@,$ELIX_LEVEL_1_TRUE,;t t
 6.31232 +-s,@ELIX_LEVEL_1_FALSE@,$ELIX_LEVEL_1_FALSE,;t t
 6.31233 +-s,@ELIX_LEVEL_2_TRUE@,$ELIX_LEVEL_2_TRUE,;t t
 6.31234 +-s,@ELIX_LEVEL_2_FALSE@,$ELIX_LEVEL_2_FALSE,;t t
 6.31235 +-s,@ELIX_LEVEL_3_TRUE@,$ELIX_LEVEL_3_TRUE,;t t
 6.31236 +-s,@ELIX_LEVEL_3_FALSE@,$ELIX_LEVEL_3_FALSE,;t t
 6.31237 +-s,@ELIX_LEVEL_4_TRUE@,$ELIX_LEVEL_4_TRUE,;t t
 6.31238 +-s,@ELIX_LEVEL_4_FALSE@,$ELIX_LEVEL_4_FALSE,;t t
 6.31239 +-s,@USE_LIBTOOL_TRUE@,$USE_LIBTOOL_TRUE,;t t
 6.31240 +-s,@USE_LIBTOOL_FALSE@,$USE_LIBTOOL_FALSE,;t t
 6.31241 +-s,@OBJEXT@,$OBJEXT,;t t
 6.31242 +-s,@oext@,$oext,;t t
 6.31243 +-s,@aext@,$aext,;t t
 6.31244 +-s,@lpfx@,$lpfx,;t t
 6.31245 +-s,@libm_machine_dir@,$libm_machine_dir,;t t
 6.31246 +-s,@machine_dir@,$machine_dir,;t t
 6.31247 +-s,@sys_dir@,$sys_dir,;t t
 6.31248 +-s,@SED@,$SED,;t t
 6.31249 +-s,@DLLTOOL@,$DLLTOOL,;t t
 6.31250 +-s,@ac_ct_DLLTOOL@,$ac_ct_DLLTOOL,;t t
 6.31251 +-s,@OBJDUMP@,$OBJDUMP,;t t
 6.31252 +-s,@ac_ct_OBJDUMP@,$ac_ct_OBJDUMP,;t t
 6.31253 +-s,@LIBTOOL@,$LIBTOOL,;t t
 6.31254 +-s,@CFLAGS@,$CFLAGS,;t t
 6.31255 +-s,@CPPFLAGS@,$CPPFLAGS,;t t
 6.31256 +-s,@ac_ct_CC@,$ac_ct_CC,;t t
 6.31257 +-s,@EXEEXT@,$EXEEXT,;t t
 6.31258 +-s,@EGREP@,$EGREP,;t t
 6.31259 +-s,@FGREP@,$FGREP,;t t
 6.31260 +-s,@GREP@,$GREP,;t t
 6.31261 +-s,@LD@,$LD,;t t
 6.31262 +-s,@DUMPBIN@,$DUMPBIN,;t t
 6.31263 +-s,@ac_ct_DUMPBIN@,$ac_ct_DUMPBIN,;t t
 6.31264 +-s,@NM@,$NM,;t t
 6.31265 +-s,@LN_S@,$LN_S,;t t
 6.31266 +-s,@lt_ECHO@,$lt_ECHO,;t t
 6.31267 +-s,@DSYMUTIL@,$DSYMUTIL,;t t
 6.31268 +-s,@ac_ct_DSYMUTIL@,$ac_ct_DSYMUTIL,;t t
 6.31269 +-s,@NMEDIT@,$NMEDIT,;t t
 6.31270 +-s,@ac_ct_NMEDIT@,$ac_ct_NMEDIT,;t t
 6.31271 +-s,@LIPO@,$LIPO,;t t
 6.31272 +-s,@ac_ct_LIPO@,$ac_ct_LIPO,;t t
 6.31273 +-s,@OTOOL@,$OTOOL,;t t
 6.31274 +-s,@ac_ct_OTOOL@,$ac_ct_OTOOL,;t t
 6.31275 +-s,@OTOOL64@,$OTOOL64,;t t
 6.31276 +-s,@ac_ct_OTOOL64@,$ac_ct_OTOOL64,;t t
 6.31277 +-s,@CPP@,$CPP,;t t
 6.31278 +-s,@subdirs@,$subdirs,;t t
 6.31279 +-s,@CRT0@,$CRT0,;t t
 6.31280 +-s,@HAVE_SYS_DIR_TRUE@,$HAVE_SYS_DIR_TRUE,;t t
 6.31281 +-s,@HAVE_SYS_DIR_FALSE@,$HAVE_SYS_DIR_FALSE,;t t
 6.31282 +-s,@LIBOBJS@,$LIBOBJS,;t t
 6.31283 +-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
 6.31284 +-CEOF
 6.31285 +-
 6.31286 +-_ACEOF
 6.31287 +-
 6.31288 +-  cat >>$CONFIG_STATUS <<\_ACEOF
 6.31289 +-  # Split the substitutions into bite-sized pieces for seds with
 6.31290 +-  # small command number limits, like on Digital OSF/1 and HP-UX.
 6.31291 +-  ac_max_sed_lines=48
 6.31292 +-  ac_sed_frag=1 # Number of current file.
 6.31293 +-  ac_beg=1 # First line for current file.
 6.31294 +-  ac_end=$ac_max_sed_lines # Line after last line for current file.
 6.31295 +-  ac_more_lines=:
 6.31296 +-  ac_sed_cmds=
 6.31297 +-  while $ac_more_lines; do
 6.31298 +-    if test $ac_beg -gt 1; then
 6.31299 +-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
 6.31300 +-    else
 6.31301 +-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
 6.31302 +-    fi
 6.31303 +-    if test ! -s $tmp/subs.frag; then
 6.31304 +-      ac_more_lines=false
 6.31305 +-    else
 6.31306 +-      # The purpose of the label and of the branching condition is to
 6.31307 +-      # speed up the sed processing (if there are no `@' at all, there
 6.31308 +-      # is no need to browse any of the substitutions).
 6.31309 +-      # These are the two extra sed commands mentioned above.
 6.31310 +-      (echo ':t
 6.31311 +-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
 6.31312 +-      if test -z "$ac_sed_cmds"; then
 6.31313 +-	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
 6.31314 +-      else
 6.31315 +-	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
 6.31316 +-      fi
 6.31317 +-      ac_sed_frag=`expr $ac_sed_frag + 1`
 6.31318 +-      ac_beg=$ac_end
 6.31319 +-      ac_end=`expr $ac_end + $ac_max_sed_lines`
 6.31320 +-    fi
 6.31321 +-  done
 6.31322 +-  if test -z "$ac_sed_cmds"; then
 6.31323 +-    ac_sed_cmds=cat
 6.31324 ++if test -n "$CONFIG_FILES"; then
 6.31325 ++
 6.31326 ++_ACEOF
 6.31327 ++
 6.31328 ++
 6.31329 ++
 6.31330 ++ac_delim='%!_!# '
 6.31331 ++for ac_last_try in false false false false false :; do
 6.31332 ++  cat >conf$$subs.sed <<_ACEOF
 6.31333 ++SHELL!$SHELL$ac_delim
 6.31334 ++PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
 6.31335 ++PACKAGE_NAME!$PACKAGE_NAME$ac_delim
 6.31336 ++PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
 6.31337 ++PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
 6.31338 ++PACKAGE_STRING!$PACKAGE_STRING$ac_delim
 6.31339 ++PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
 6.31340 ++exec_prefix!$exec_prefix$ac_delim
 6.31341 ++prefix!$prefix$ac_delim
 6.31342 ++program_transform_name!$program_transform_name$ac_delim
 6.31343 ++bindir!$bindir$ac_delim
 6.31344 ++sbindir!$sbindir$ac_delim
 6.31345 ++libexecdir!$libexecdir$ac_delim
 6.31346 ++datarootdir!$datarootdir$ac_delim
 6.31347 ++datadir!$datadir$ac_delim
 6.31348 ++sysconfdir!$sysconfdir$ac_delim
 6.31349 ++sharedstatedir!$sharedstatedir$ac_delim
 6.31350 ++localstatedir!$localstatedir$ac_delim
 6.31351 ++includedir!$includedir$ac_delim
 6.31352 ++oldincludedir!$oldincludedir$ac_delim
 6.31353 ++docdir!$docdir$ac_delim
 6.31354 ++infodir!$infodir$ac_delim
 6.31355 ++htmldir!$htmldir$ac_delim
 6.31356 ++dvidir!$dvidir$ac_delim
 6.31357 ++pdfdir!$pdfdir$ac_delim
 6.31358 ++psdir!$psdir$ac_delim
 6.31359 ++libdir!$libdir$ac_delim
 6.31360 ++localedir!$localedir$ac_delim
 6.31361 ++mandir!$mandir$ac_delim
 6.31362 ++DEFS!$DEFS$ac_delim
 6.31363 ++ECHO_C!$ECHO_C$ac_delim
 6.31364 ++ECHO_N!$ECHO_N$ac_delim
 6.31365 ++ECHO_T!$ECHO_T$ac_delim
 6.31366 ++LIBS!$LIBS$ac_delim
 6.31367 ++build_alias!$build_alias$ac_delim
 6.31368 ++host_alias!$host_alias$ac_delim
 6.31369 ++target_alias!$target_alias$ac_delim
 6.31370 ++MAY_SUPPLY_SYSCALLS_TRUE!$MAY_SUPPLY_SYSCALLS_TRUE$ac_delim
 6.31371 ++MAY_SUPPLY_SYSCALLS_FALSE!$MAY_SUPPLY_SYSCALLS_FALSE$ac_delim
 6.31372 ++newlib_basedir!$newlib_basedir$ac_delim
 6.31373 ++build!$build$ac_delim
 6.31374 ++build_cpu!$build_cpu$ac_delim
 6.31375 ++build_vendor!$build_vendor$ac_delim
 6.31376 ++build_os!$build_os$ac_delim
 6.31377 ++host!$host$ac_delim
 6.31378 ++host_cpu!$host_cpu$ac_delim
 6.31379 ++host_vendor!$host_vendor$ac_delim
 6.31380 ++host_os!$host_os$ac_delim
 6.31381 ++INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
 6.31382 ++INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
 6.31383 ++INSTALL_DATA!$INSTALL_DATA$ac_delim
 6.31384 ++CYGPATH_W!$CYGPATH_W$ac_delim
 6.31385 ++PACKAGE!$PACKAGE$ac_delim
 6.31386 ++VERSION!$VERSION$ac_delim
 6.31387 ++ACLOCAL!$ACLOCAL$ac_delim
 6.31388 ++AUTOCONF!$AUTOCONF$ac_delim
 6.31389 ++AUTOMAKE!$AUTOMAKE$ac_delim
 6.31390 ++AUTOHEADER!$AUTOHEADER$ac_delim
 6.31391 ++MAKEINFO!$MAKEINFO$ac_delim
 6.31392 ++install_sh!$install_sh$ac_delim
 6.31393 ++STRIP!$STRIP$ac_delim
 6.31394 ++INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim
 6.31395 ++mkdir_p!$mkdir_p$ac_delim
 6.31396 ++AWK!$AWK$ac_delim
 6.31397 ++SET_MAKE!$SET_MAKE$ac_delim
 6.31398 ++am__leading_dot!$am__leading_dot$ac_delim
 6.31399 ++AMTAR!$AMTAR$ac_delim
 6.31400 ++am__tar!$am__tar$ac_delim
 6.31401 ++am__untar!$am__untar$ac_delim
 6.31402 ++CC!$CC$ac_delim
 6.31403 ++DEPDIR!$DEPDIR$ac_delim
 6.31404 ++am__include!$am__include$ac_delim
 6.31405 ++am__quote!$am__quote$ac_delim
 6.31406 ++AMDEP_TRUE!$AMDEP_TRUE$ac_delim
 6.31407 ++AMDEP_FALSE!$AMDEP_FALSE$ac_delim
 6.31408 ++AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim
 6.31409 ++CCDEPMODE!$CCDEPMODE$ac_delim
 6.31410 ++am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim
 6.31411 ++am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim
 6.31412 ++AS!$AS$ac_delim
 6.31413 ++AR!$AR$ac_delim
 6.31414 ++RANLIB!$RANLIB$ac_delim
 6.31415 ++READELF!$READELF$ac_delim
 6.31416 ++MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim
 6.31417 ++MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim
 6.31418 ++MAINT!$MAINT$ac_delim
 6.31419 ++CCAS!$CCAS$ac_delim
 6.31420 ++CCASFLAGS!$CCASFLAGS$ac_delim
 6.31421 ++NEWLIB_CFLAGS!$NEWLIB_CFLAGS$ac_delim
 6.31422 ++LDFLAGS!$LDFLAGS$ac_delim
 6.31423 ++ELIX_LEVEL_0_TRUE!$ELIX_LEVEL_0_TRUE$ac_delim
 6.31424 ++ELIX_LEVEL_0_FALSE!$ELIX_LEVEL_0_FALSE$ac_delim
 6.31425 ++ELIX_LEVEL_1_TRUE!$ELIX_LEVEL_1_TRUE$ac_delim
 6.31426 ++ELIX_LEVEL_1_FALSE!$ELIX_LEVEL_1_FALSE$ac_delim
 6.31427 ++ELIX_LEVEL_2_TRUE!$ELIX_LEVEL_2_TRUE$ac_delim
 6.31428 ++ELIX_LEVEL_2_FALSE!$ELIX_LEVEL_2_FALSE$ac_delim
 6.31429 ++ELIX_LEVEL_3_TRUE!$ELIX_LEVEL_3_TRUE$ac_delim
 6.31430 ++_ACEOF
 6.31431 ++
 6.31432 ++  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
 6.31433 ++    break
 6.31434 ++  elif $ac_last_try; then
 6.31435 ++    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
 6.31436 ++echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
 6.31437 ++   { (exit 1); exit 1; }; }
 6.31438 ++  else
 6.31439 ++    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
 6.31440 +   fi
 6.31441 +-fi # test -n "$CONFIG_FILES"
 6.31442 ++done
 6.31443 ++
 6.31444 ++ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
 6.31445 ++if test -n "$ac_eof"; then
 6.31446 ++  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
 6.31447 ++  ac_eof=`expr $ac_eof + 1`
 6.31448 ++fi
 6.31449 ++
 6.31450 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.31451 ++cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
 6.31452 ++/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
 6.31453 ++_ACEOF
 6.31454 ++sed '
 6.31455 ++s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
 6.31456 ++s/^/s,@/; s/!/@,|#_!!_#|/
 6.31457 ++:n
 6.31458 ++t n
 6.31459 ++s/'"$ac_delim"'$/,g/; t
 6.31460 ++s/$/\\/; p
 6.31461 ++N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
 6.31462 ++' >>$CONFIG_STATUS <conf$$subs.sed
 6.31463 ++rm -f conf$$subs.sed
 6.31464 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.31465 ++CEOF$ac_eof
 6.31466 ++_ACEOF
 6.31467 ++
 6.31468 ++
 6.31469 ++ac_delim='%!_!# '
 6.31470 ++for ac_last_try in false false false false false :; do
 6.31471 ++  cat >conf$$subs.sed <<_ACEOF
 6.31472 ++ELIX_LEVEL_3_FALSE!$ELIX_LEVEL_3_FALSE$ac_delim
 6.31473 ++ELIX_LEVEL_4_TRUE!$ELIX_LEVEL_4_TRUE$ac_delim
 6.31474 ++ELIX_LEVEL_4_FALSE!$ELIX_LEVEL_4_FALSE$ac_delim
 6.31475 ++USE_LIBTOOL_TRUE!$USE_LIBTOOL_TRUE$ac_delim
 6.31476 ++USE_LIBTOOL_FALSE!$USE_LIBTOOL_FALSE$ac_delim
 6.31477 ++OBJEXT!$OBJEXT$ac_delim
 6.31478 ++oext!$oext$ac_delim
 6.31479 ++aext!$aext$ac_delim
 6.31480 ++lpfx!$lpfx$ac_delim
 6.31481 ++libm_machine_dir!$libm_machine_dir$ac_delim
 6.31482 ++machine_dir!$machine_dir$ac_delim
 6.31483 ++sys_dir!$sys_dir$ac_delim
 6.31484 ++SED!$SED$ac_delim
 6.31485 ++DLLTOOL!$DLLTOOL$ac_delim
 6.31486 ++OBJDUMP!$OBJDUMP$ac_delim
 6.31487 ++LIBTOOL!$LIBTOOL$ac_delim
 6.31488 ++CFLAGS!$CFLAGS$ac_delim
 6.31489 ++CPPFLAGS!$CPPFLAGS$ac_delim
 6.31490 ++ac_ct_CC!$ac_ct_CC$ac_delim
 6.31491 ++EXEEXT!$EXEEXT$ac_delim
 6.31492 ++GREP!$GREP$ac_delim
 6.31493 ++EGREP!$EGREP$ac_delim
 6.31494 ++FGREP!$FGREP$ac_delim
 6.31495 ++LD!$LD$ac_delim
 6.31496 ++DUMPBIN!$DUMPBIN$ac_delim
 6.31497 ++ac_ct_DUMPBIN!$ac_ct_DUMPBIN$ac_delim
 6.31498 ++NM!$NM$ac_delim
 6.31499 ++LN_S!$LN_S$ac_delim
 6.31500 ++lt_ECHO!$lt_ECHO$ac_delim
 6.31501 ++DSYMUTIL!$DSYMUTIL$ac_delim
 6.31502 ++NMEDIT!$NMEDIT$ac_delim
 6.31503 ++LIPO!$LIPO$ac_delim
 6.31504 ++OTOOL!$OTOOL$ac_delim
 6.31505 ++OTOOL64!$OTOOL64$ac_delim
 6.31506 ++CPP!$CPP$ac_delim
 6.31507 ++subdirs!$subdirs$ac_delim
 6.31508 ++CRT0!$CRT0$ac_delim
 6.31509 ++HAVE_SYS_DIR_TRUE!$HAVE_SYS_DIR_TRUE$ac_delim
 6.31510 ++HAVE_SYS_DIR_FALSE!$HAVE_SYS_DIR_FALSE$ac_delim
 6.31511 ++LIBOBJS!$LIBOBJS$ac_delim
 6.31512 ++LTLIBOBJS!$LTLIBOBJS$ac_delim
 6.31513 ++_ACEOF
 6.31514 ++
 6.31515 ++  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 41; then
 6.31516 ++    break
 6.31517 ++  elif $ac_last_try; then
 6.31518 ++    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
 6.31519 ++echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
 6.31520 ++   { (exit 1); exit 1; }; }
 6.31521 ++  else
 6.31522 ++    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
 6.31523 ++  fi
 6.31524 ++done
 6.31525 ++
 6.31526 ++ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
 6.31527 ++if test -n "$ac_eof"; then
 6.31528 ++  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
 6.31529 ++  ac_eof=`expr $ac_eof + 1`
 6.31530 ++fi
 6.31531 + 
 6.31532 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.31533 ++cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
 6.31534 ++/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
 6.31535 ++_ACEOF
 6.31536 ++sed '
 6.31537 ++s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
 6.31538 ++s/^/s,@/; s/!/@,|#_!!_#|/
 6.31539 ++:n
 6.31540 ++t n
 6.31541 ++s/'"$ac_delim"'$/,g/; t
 6.31542 ++s/$/\\/; p
 6.31543 ++N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
 6.31544 ++' >>$CONFIG_STATUS <conf$$subs.sed
 6.31545 ++rm -f conf$$subs.sed
 6.31546 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.31547 ++:end
 6.31548 ++s/|#_!!_#|//g
 6.31549 ++CEOF$ac_eof
 6.31550 + _ACEOF
 6.31551 ++
 6.31552 ++
 6.31553 ++# VPATH may cause trouble with some makes, so we remove $(srcdir),
 6.31554 ++# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
 6.31555 ++# trailing colons and then remove the whole line if VPATH becomes empty
 6.31556 ++# (actually we leave an empty line to preserve line numbers).
 6.31557 ++if test "x$srcdir" = x.; then
 6.31558 ++  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
 6.31559 ++s/:*\$(srcdir):*/:/
 6.31560 ++s/:*\${srcdir}:*/:/
 6.31561 ++s/:*@srcdir@:*/:/
 6.31562 ++s/^\([^=]*=[	 ]*\):*/\1/
 6.31563 ++s/:*$//
 6.31564 ++s/^[^=]*=[	 ]*$//
 6.31565 ++}'
 6.31566 ++fi
 6.31567 ++
 6.31568 + cat >>$CONFIG_STATUS <<\_ACEOF
 6.31569 +-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
 6.31570 +-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
 6.31571 +-  case $ac_file in
 6.31572 +-  - | *:- | *:-:* ) # input from stdin
 6.31573 +-	cat >$tmp/stdin
 6.31574 +-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
 6.31575 +-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
 6.31576 +-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
 6.31577 +-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
 6.31578 +-  * )   ac_file_in=$ac_file.in ;;
 6.31579 ++fi # test -n "$CONFIG_FILES"
 6.31580 ++
 6.31581 ++
 6.31582 ++for ac_tag in  :F $CONFIG_FILES      :C $CONFIG_COMMANDS
 6.31583 ++do
 6.31584 ++  case $ac_tag in
 6.31585 ++  :[FHLC]) ac_mode=$ac_tag; continue;;
 6.31586 ++  esac
 6.31587 ++  case $ac_mode$ac_tag in
 6.31588 ++  :[FHL]*:*);;
 6.31589 ++  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
 6.31590 ++echo "$as_me: error: Invalid tag $ac_tag." >&2;}
 6.31591 ++   { (exit 1); exit 1; }; };;
 6.31592 ++  :[FH]-) ac_tag=-:-;;
 6.31593 ++  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
 6.31594 ++  esac
 6.31595 ++  ac_save_IFS=$IFS
 6.31596 ++  IFS=:
 6.31597 ++  set x $ac_tag
 6.31598 ++  IFS=$ac_save_IFS
 6.31599 ++  shift
 6.31600 ++  ac_file=$1
 6.31601 ++  shift
 6.31602 ++
 6.31603 ++  case $ac_mode in
 6.31604 ++  :L) ac_source=$1;;
 6.31605 ++  :[FH])
 6.31606 ++    ac_file_inputs=
 6.31607 ++    for ac_f
 6.31608 ++    do
 6.31609 ++      case $ac_f in
 6.31610 ++      -) ac_f="$tmp/stdin";;
 6.31611 ++      *) # Look for the file first in the build tree, then in the source tree
 6.31612 ++	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
 6.31613 ++	 # because $ac_f cannot contain `:'.
 6.31614 ++	 test -f "$ac_f" ||
 6.31615 ++	   case $ac_f in
 6.31616 ++	   [\\/$]*) false;;
 6.31617 ++	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
 6.31618 ++	   esac ||
 6.31619 ++	   { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
 6.31620 ++echo "$as_me: error: cannot find input file: $ac_f" >&2;}
 6.31621 ++   { (exit 1); exit 1; }; };;
 6.31622 ++      esac
 6.31623 ++      ac_file_inputs="$ac_file_inputs $ac_f"
 6.31624 ++    done
 6.31625 ++
 6.31626 ++    # Let's still pretend it is `configure' which instantiates (i.e., don't
 6.31627 ++    # use $as_me), people would be surprised to read:
 6.31628 ++    #    /* config.h.  Generated by config.status.  */
 6.31629 ++    configure_input="Generated from "`IFS=:
 6.31630 ++	  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
 6.31631 ++    if test x"$ac_file" != x-; then
 6.31632 ++      configure_input="$ac_file.  $configure_input"
 6.31633 ++      { echo "$as_me:$LINENO: creating $ac_file" >&5
 6.31634 ++echo "$as_me: creating $ac_file" >&6;}
 6.31635 ++    fi
 6.31636 ++
 6.31637 ++    case $ac_tag in
 6.31638 ++    *:-:* | *:-) cat >"$tmp/stdin";;
 6.31639 ++    esac
 6.31640 ++    ;;
 6.31641 +   esac
 6.31642 + 
 6.31643 +-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
 6.31644 +-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
 6.31645 ++  ac_dir=`$as_dirname -- "$ac_file" ||
 6.31646 + $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.31647 + 	 X"$ac_file" : 'X\(//\)[^/]' \| \
 6.31648 + 	 X"$ac_file" : 'X\(//\)$' \| \
 6.31649 +-	 X"$ac_file" : 'X\(/\)' \| \
 6.31650 +-	 .     : '\(.\)' 2>/dev/null ||
 6.31651 ++	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
 6.31652 + echo X"$ac_file" |
 6.31653 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.31654 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.31655 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.31656 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.31657 +-  	  s/.*/./; q'`
 6.31658 +-  { if $as_mkdir_p; then
 6.31659 +-    mkdir -p "$ac_dir"
 6.31660 +-  else
 6.31661 +-    as_dir="$ac_dir"
 6.31662 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 6.31663 ++	    s//\1/
 6.31664 ++	    q
 6.31665 ++	  }
 6.31666 ++	  /^X\(\/\/\)[^/].*/{
 6.31667 ++	    s//\1/
 6.31668 ++	    q
 6.31669 ++	  }
 6.31670 ++	  /^X\(\/\/\)$/{
 6.31671 ++	    s//\1/
 6.31672 ++	    q
 6.31673 ++	  }
 6.31674 ++	  /^X\(\/\).*/{
 6.31675 ++	    s//\1/
 6.31676 ++	    q
 6.31677 ++	  }
 6.31678 ++	  s/.*/./; q'`
 6.31679 ++  { as_dir="$ac_dir"
 6.31680 ++  case $as_dir in #(
 6.31681 ++  -*) as_dir=./$as_dir;;
 6.31682 ++  esac
 6.31683 ++  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
 6.31684 +     as_dirs=
 6.31685 +-    while test ! -d "$as_dir"; do
 6.31686 +-      as_dirs="$as_dir $as_dirs"
 6.31687 +-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
 6.31688 ++    while :; do
 6.31689 ++      case $as_dir in #(
 6.31690 ++      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
 6.31691 ++      *) as_qdir=$as_dir;;
 6.31692 ++      esac
 6.31693 ++      as_dirs="'$as_qdir' $as_dirs"
 6.31694 ++      as_dir=`$as_dirname -- "$as_dir" ||
 6.31695 + $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.31696 + 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 6.31697 + 	 X"$as_dir" : 'X\(//\)$' \| \
 6.31698 +-	 X"$as_dir" : 'X\(/\)' \| \
 6.31699 +-	 .     : '\(.\)' 2>/dev/null ||
 6.31700 ++	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
 6.31701 + echo X"$as_dir" |
 6.31702 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.31703 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.31704 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.31705 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.31706 +-  	  s/.*/./; q'`
 6.31707 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 6.31708 ++	    s//\1/
 6.31709 ++	    q
 6.31710 ++	  }
 6.31711 ++	  /^X\(\/\/\)[^/].*/{
 6.31712 ++	    s//\1/
 6.31713 ++	    q
 6.31714 ++	  }
 6.31715 ++	  /^X\(\/\/\)$/{
 6.31716 ++	    s//\1/
 6.31717 ++	    q
 6.31718 ++	  }
 6.31719 ++	  /^X\(\/\).*/{
 6.31720 ++	    s//\1/
 6.31721 ++	    q
 6.31722 ++	  }
 6.31723 ++	  s/.*/./; q'`
 6.31724 ++      test -d "$as_dir" && break
 6.31725 +     done
 6.31726 +-    test ! -n "$as_dirs" || mkdir $as_dirs
 6.31727 +-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
 6.31728 +-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
 6.31729 ++    test -z "$as_dirs" || eval "mkdir $as_dirs"
 6.31730 ++  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
 6.31731 ++echo "$as_me: error: cannot create directory $as_dir" >&2;}
 6.31732 +    { (exit 1); exit 1; }; }; }
 6.31733 +-
 6.31734 +   ac_builddir=.
 6.31735 + 
 6.31736 +-if test "$ac_dir" != .; then
 6.31737 ++case "$ac_dir" in
 6.31738 ++.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 6.31739 ++*)
 6.31740 +   ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
 6.31741 +-  # A "../" for each directory in $ac_dir_suffix.
 6.31742 +-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
 6.31743 +-else
 6.31744 +-  ac_dir_suffix= ac_top_builddir=
 6.31745 +-fi
 6.31746 ++  # A ".." for each directory in $ac_dir_suffix.
 6.31747 ++  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
 6.31748 ++  case $ac_top_builddir_sub in
 6.31749 ++  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
 6.31750 ++  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
 6.31751 ++  esac ;;
 6.31752 ++esac
 6.31753 ++ac_abs_top_builddir=$ac_pwd
 6.31754 ++ac_abs_builddir=$ac_pwd$ac_dir_suffix
 6.31755 ++# for backward compatibility:
 6.31756 ++ac_top_builddir=$ac_top_build_prefix
 6.31757 + 
 6.31758 + case $srcdir in
 6.31759 +-  .)  # No --srcdir option.  We are building in place.
 6.31760 ++  .)  # We are building in place.
 6.31761 +     ac_srcdir=.
 6.31762 +-    if test -z "$ac_top_builddir"; then
 6.31763 +-       ac_top_srcdir=.
 6.31764 +-    else
 6.31765 +-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
 6.31766 +-    fi ;;
 6.31767 +-  [\\/]* | ?:[\\/]* )  # Absolute path.
 6.31768 ++    ac_top_srcdir=$ac_top_builddir_sub
 6.31769 ++    ac_abs_top_srcdir=$ac_pwd ;;
 6.31770 ++  [\\/]* | ?:[\\/]* )  # Absolute name.
 6.31771 +     ac_srcdir=$srcdir$ac_dir_suffix;
 6.31772 +-    ac_top_srcdir=$srcdir ;;
 6.31773 +-  *) # Relative path.
 6.31774 +-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
 6.31775 +-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
 6.31776 +-esac
 6.31777 ++    ac_top_srcdir=$srcdir
 6.31778 ++    ac_abs_top_srcdir=$srcdir ;;
 6.31779 ++  *) # Relative name.
 6.31780 ++    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
 6.31781 ++    ac_top_srcdir=$ac_top_build_prefix$srcdir
 6.31782 ++    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
 6.31783 ++esac
 6.31784 ++ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 6.31785 + 
 6.31786 +-# Do not use `cd foo && pwd` to compute absolute paths, because
 6.31787 +-# the directories may not exist.
 6.31788 +-case `pwd` in
 6.31789 +-.) ac_abs_builddir="$ac_dir";;
 6.31790 +-*)
 6.31791 +-  case "$ac_dir" in
 6.31792 +-  .) ac_abs_builddir=`pwd`;;
 6.31793 +-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
 6.31794 +-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
 6.31795 +-  esac;;
 6.31796 +-esac
 6.31797 +-case $ac_abs_builddir in
 6.31798 +-.) ac_abs_top_builddir=${ac_top_builddir}.;;
 6.31799 +-*)
 6.31800 +-  case ${ac_top_builddir}. in
 6.31801 +-  .) ac_abs_top_builddir=$ac_abs_builddir;;
 6.31802 +-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
 6.31803 +-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
 6.31804 +-  esac;;
 6.31805 +-esac
 6.31806 +-case $ac_abs_builddir in
 6.31807 +-.) ac_abs_srcdir=$ac_srcdir;;
 6.31808 +-*)
 6.31809 +-  case $ac_srcdir in
 6.31810 +-  .) ac_abs_srcdir=$ac_abs_builddir;;
 6.31811 +-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
 6.31812 +-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
 6.31813 +-  esac;;
 6.31814 +-esac
 6.31815 +-case $ac_abs_builddir in
 6.31816 +-.) ac_abs_top_srcdir=$ac_top_srcdir;;
 6.31817 +-*)
 6.31818 +-  case $ac_top_srcdir in
 6.31819 +-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
 6.31820 +-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
 6.31821 +-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
 6.31822 +-  esac;;
 6.31823 +-esac
 6.31824 + 
 6.31825 ++  case $ac_mode in
 6.31826 ++  :F)
 6.31827 ++  #
 6.31828 ++  # CONFIG_FILE
 6.31829 ++  #
 6.31830 + 
 6.31831 +   case $INSTALL in
 6.31832 +   [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
 6.31833 +-  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
 6.31834 ++  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
 6.31835 +   esac
 6.31836 ++_ACEOF
 6.31837 + 
 6.31838 +-  if test x"$ac_file" != x-; then
 6.31839 +-    { echo "$as_me:$LINENO: creating $ac_file" >&5
 6.31840 +-echo "$as_me: creating $ac_file" >&6;}
 6.31841 +-    rm -f "$ac_file"
 6.31842 +-  fi
 6.31843 +-  # Let's still pretend it is `configure' which instantiates (i.e., don't
 6.31844 +-  # use $as_me), people would be surprised to read:
 6.31845 +-  #    /* config.h.  Generated by config.status.  */
 6.31846 +-  if test x"$ac_file" = x-; then
 6.31847 +-    configure_input=
 6.31848 +-  else
 6.31849 +-    configure_input="$ac_file.  "
 6.31850 +-  fi
 6.31851 +-  configure_input=$configure_input"Generated from `echo $ac_file_in |
 6.31852 +-				     sed 's,.*/,,'` by configure."
 6.31853 +-
 6.31854 +-  # First look for the input files in the build tree, otherwise in the
 6.31855 +-  # src tree.
 6.31856 +-  ac_file_inputs=`IFS=:
 6.31857 +-    for f in $ac_file_in; do
 6.31858 +-      case $f in
 6.31859 +-      -) echo $tmp/stdin ;;
 6.31860 +-      [\\/$]*)
 6.31861 +-	 # Absolute (can't be DOS-style, as IFS=:)
 6.31862 +-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
 6.31863 +-echo "$as_me: error: cannot find input file: $f" >&2;}
 6.31864 +-   { (exit 1); exit 1; }; }
 6.31865 +-	 echo "$f";;
 6.31866 +-      *) # Relative
 6.31867 +-	 if test -f "$f"; then
 6.31868 +-	   # Build tree
 6.31869 +-	   echo "$f"
 6.31870 +-	 elif test -f "$srcdir/$f"; then
 6.31871 +-	   # Source tree
 6.31872 +-	   echo "$srcdir/$f"
 6.31873 +-	 else
 6.31874 +-	   # /dev/null tree
 6.31875 +-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
 6.31876 +-echo "$as_me: error: cannot find input file: $f" >&2;}
 6.31877 +-   { (exit 1); exit 1; }; }
 6.31878 +-	 fi;;
 6.31879 +-      esac
 6.31880 +-    done` || { (exit 1); exit 1; }
 6.31881 ++cat >>$CONFIG_STATUS <<\_ACEOF
 6.31882 ++# If the template does not know about datarootdir, expand it.
 6.31883 ++# FIXME: This hack should be removed a few years after 2.60.
 6.31884 ++ac_datarootdir_hack=; ac_datarootdir_seen=
 6.31885 ++
 6.31886 ++case `sed -n '/datarootdir/ {
 6.31887 ++  p
 6.31888 ++  q
 6.31889 ++}
 6.31890 ++/@datadir@/p
 6.31891 ++/@docdir@/p
 6.31892 ++/@infodir@/p
 6.31893 ++/@localedir@/p
 6.31894 ++/@mandir@/p
 6.31895 ++' $ac_file_inputs` in
 6.31896 ++*datarootdir*) ac_datarootdir_seen=yes;;
 6.31897 ++*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
 6.31898 ++  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
 6.31899 ++echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 6.31900 ++_ACEOF
 6.31901 ++cat >>$CONFIG_STATUS <<_ACEOF
 6.31902 ++  ac_datarootdir_hack='
 6.31903 ++  s&@datadir@&$datadir&g
 6.31904 ++  s&@docdir@&$docdir&g
 6.31905 ++  s&@infodir@&$infodir&g
 6.31906 ++  s&@localedir@&$localedir&g
 6.31907 ++  s&@mandir@&$mandir&g
 6.31908 ++    s&\\\${datarootdir}&$datarootdir&g' ;;
 6.31909 ++esac
 6.31910 + _ACEOF
 6.31911 ++
 6.31912 ++# Neutralize VPATH when `$srcdir' = `.'.
 6.31913 ++# Shell code in configure.ac might set extrasub.
 6.31914 ++# FIXME: do we really want to maintain this feature?
 6.31915 + cat >>$CONFIG_STATUS <<_ACEOF
 6.31916 +   sed "$ac_vpsub
 6.31917 + $extrasub
 6.31918 +@@ -12791,142 +13936,43 @@
 6.31919 + cat >>$CONFIG_STATUS <<\_ACEOF
 6.31920 + :t
 6.31921 + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
 6.31922 +-s,@configure_input@,$configure_input,;t t
 6.31923 +-s,@srcdir@,$ac_srcdir,;t t
 6.31924 +-s,@abs_srcdir@,$ac_abs_srcdir,;t t
 6.31925 +-s,@top_srcdir@,$ac_top_srcdir,;t t
 6.31926 +-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
 6.31927 +-s,@builddir@,$ac_builddir,;t t
 6.31928 +-s,@abs_builddir@,$ac_abs_builddir,;t t
 6.31929 +-s,@top_builddir@,$ac_top_builddir,;t t
 6.31930 +-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
 6.31931 +-s,@INSTALL@,$ac_INSTALL,;t t
 6.31932 +-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
 6.31933 +-  rm -f $tmp/stdin
 6.31934 +-  if test x"$ac_file" != x-; then
 6.31935 +-    mv $tmp/out $ac_file
 6.31936 +-  else
 6.31937 +-    cat $tmp/out
 6.31938 +-    rm -f $tmp/out
 6.31939 +-  fi
 6.31940 +-
 6.31941 +-done
 6.31942 +-_ACEOF
 6.31943 +-cat >>$CONFIG_STATUS <<\_ACEOF
 6.31944 +-
 6.31945 +-#
 6.31946 +-# CONFIG_COMMANDS section.
 6.31947 +-#
 6.31948 +-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
 6.31949 +-  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
 6.31950 +-  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
 6.31951 +-  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
 6.31952 +-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.31953 +-	 X"$ac_dest" : 'X\(//\)[^/]' \| \
 6.31954 +-	 X"$ac_dest" : 'X\(//\)$' \| \
 6.31955 +-	 X"$ac_dest" : 'X\(/\)' \| \
 6.31956 +-	 .     : '\(.\)' 2>/dev/null ||
 6.31957 +-echo X"$ac_dest" |
 6.31958 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.31959 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.31960 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.31961 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.31962 +-  	  s/.*/./; q'`
 6.31963 +-  { if $as_mkdir_p; then
 6.31964 +-    mkdir -p "$ac_dir"
 6.31965 +-  else
 6.31966 +-    as_dir="$ac_dir"
 6.31967 +-    as_dirs=
 6.31968 +-    while test ! -d "$as_dir"; do
 6.31969 +-      as_dirs="$as_dir $as_dirs"
 6.31970 +-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
 6.31971 +-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.31972 +-	 X"$as_dir" : 'X\(//\)[^/]' \| \
 6.31973 +-	 X"$as_dir" : 'X\(//\)$' \| \
 6.31974 +-	 X"$as_dir" : 'X\(/\)' \| \
 6.31975 +-	 .     : '\(.\)' 2>/dev/null ||
 6.31976 +-echo X"$as_dir" |
 6.31977 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.31978 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.31979 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.31980 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.31981 +-  	  s/.*/./; q'`
 6.31982 +-    done
 6.31983 +-    test ! -n "$as_dirs" || mkdir $as_dirs
 6.31984 +-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
 6.31985 +-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
 6.31986 +-   { (exit 1); exit 1; }; }; }
 6.31987 ++s&@configure_input@&$configure_input&;t t
 6.31988 ++s&@top_builddir@&$ac_top_builddir_sub&;t t
 6.31989 ++s&@srcdir@&$ac_srcdir&;t t
 6.31990 ++s&@abs_srcdir@&$ac_abs_srcdir&;t t
 6.31991 ++s&@top_srcdir@&$ac_top_srcdir&;t t
 6.31992 ++s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
 6.31993 ++s&@builddir@&$ac_builddir&;t t
 6.31994 ++s&@abs_builddir@&$ac_abs_builddir&;t t
 6.31995 ++s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
 6.31996 ++s&@INSTALL@&$ac_INSTALL&;t t
 6.31997 ++$ac_datarootdir_hack
 6.31998 ++" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
 6.31999 ++
 6.32000 ++test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
 6.32001 ++  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
 6.32002 ++  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
 6.32003 ++  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 6.32004 ++which seems to be undefined.  Please make sure it is defined." >&5
 6.32005 ++echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 6.32006 ++which seems to be undefined.  Please make sure it is defined." >&2;}
 6.32007 + 
 6.32008 +-  ac_builddir=.
 6.32009 +-
 6.32010 +-if test "$ac_dir" != .; then
 6.32011 +-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
 6.32012 +-  # A "../" for each directory in $ac_dir_suffix.
 6.32013 +-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
 6.32014 +-else
 6.32015 +-  ac_dir_suffix= ac_top_builddir=
 6.32016 +-fi
 6.32017 ++  rm -f "$tmp/stdin"
 6.32018 ++  case $ac_file in
 6.32019 ++  -) cat "$tmp/out"; rm -f "$tmp/out";;
 6.32020 ++  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
 6.32021 ++  esac
 6.32022 ++ ;;
 6.32023 + 
 6.32024 +-case $srcdir in
 6.32025 +-  .)  # No --srcdir option.  We are building in place.
 6.32026 +-    ac_srcdir=.
 6.32027 +-    if test -z "$ac_top_builddir"; then
 6.32028 +-       ac_top_srcdir=.
 6.32029 +-    else
 6.32030 +-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
 6.32031 +-    fi ;;
 6.32032 +-  [\\/]* | ?:[\\/]* )  # Absolute path.
 6.32033 +-    ac_srcdir=$srcdir$ac_dir_suffix;
 6.32034 +-    ac_top_srcdir=$srcdir ;;
 6.32035 +-  *) # Relative path.
 6.32036 +-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
 6.32037 +-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
 6.32038 +-esac
 6.32039 + 
 6.32040 +-# Do not use `cd foo && pwd` to compute absolute paths, because
 6.32041 +-# the directories may not exist.
 6.32042 +-case `pwd` in
 6.32043 +-.) ac_abs_builddir="$ac_dir";;
 6.32044 +-*)
 6.32045 +-  case "$ac_dir" in
 6.32046 +-  .) ac_abs_builddir=`pwd`;;
 6.32047 +-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
 6.32048 +-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
 6.32049 +-  esac;;
 6.32050 +-esac
 6.32051 +-case $ac_abs_builddir in
 6.32052 +-.) ac_abs_top_builddir=${ac_top_builddir}.;;
 6.32053 +-*)
 6.32054 +-  case ${ac_top_builddir}. in
 6.32055 +-  .) ac_abs_top_builddir=$ac_abs_builddir;;
 6.32056 +-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
 6.32057 +-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
 6.32058 +-  esac;;
 6.32059 +-esac
 6.32060 +-case $ac_abs_builddir in
 6.32061 +-.) ac_abs_srcdir=$ac_srcdir;;
 6.32062 +-*)
 6.32063 +-  case $ac_srcdir in
 6.32064 +-  .) ac_abs_srcdir=$ac_abs_builddir;;
 6.32065 +-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
 6.32066 +-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
 6.32067 +-  esac;;
 6.32068 +-esac
 6.32069 +-case $ac_abs_builddir in
 6.32070 +-.) ac_abs_top_srcdir=$ac_top_srcdir;;
 6.32071 +-*)
 6.32072 +-  case $ac_top_srcdir in
 6.32073 +-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
 6.32074 +-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
 6.32075 +-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
 6.32076 +-  esac;;
 6.32077 +-esac
 6.32078 ++  :C)  { echo "$as_me:$LINENO: executing $ac_file commands" >&5
 6.32079 ++echo "$as_me: executing $ac_file commands" >&6;}
 6.32080 ++ ;;
 6.32081 ++  esac
 6.32082 + 
 6.32083 + 
 6.32084 +-  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
 6.32085 +-echo "$as_me: executing $ac_dest commands" >&6;}
 6.32086 +-  case $ac_dest in
 6.32087 +-    depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
 6.32088 ++  case $ac_file$ac_mode in
 6.32089 ++    "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
 6.32090 +   # Strip MF so we end up with the name of the file.
 6.32091 +   mf=`echo "$mf" | sed -e 's/:.*$//'`
 6.32092 +   # Check whether this is an Automake generated Makefile or not.
 6.32093 +@@ -12936,18 +13982,29 @@
 6.32094 +   # each Makefile.in and add a new line on top of each file to say so.
 6.32095 +   # So let's grep whole file.
 6.32096 +   if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
 6.32097 +-    dirpart=`(dirname "$mf") 2>/dev/null ||
 6.32098 ++    dirpart=`$as_dirname -- "$mf" ||
 6.32099 + $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.32100 + 	 X"$mf" : 'X\(//\)[^/]' \| \
 6.32101 + 	 X"$mf" : 'X\(//\)$' \| \
 6.32102 +-	 X"$mf" : 'X\(/\)' \| \
 6.32103 +-	 .     : '\(.\)' 2>/dev/null ||
 6.32104 ++	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
 6.32105 + echo X"$mf" |
 6.32106 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.32107 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.32108 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.32109 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.32110 +-  	  s/.*/./; q'`
 6.32111 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 6.32112 ++	    s//\1/
 6.32113 ++	    q
 6.32114 ++	  }
 6.32115 ++	  /^X\(\/\/\)[^/].*/{
 6.32116 ++	    s//\1/
 6.32117 ++	    q
 6.32118 ++	  }
 6.32119 ++	  /^X\(\/\/\)$/{
 6.32120 ++	    s//\1/
 6.32121 ++	    q
 6.32122 ++	  }
 6.32123 ++	  /^X\(\/\).*/{
 6.32124 ++	    s//\1/
 6.32125 ++	    q
 6.32126 ++	  }
 6.32127 ++	  s/.*/./; q'`
 6.32128 +   else
 6.32129 +     continue
 6.32130 +   fi
 6.32131 +@@ -12969,49 +14026,76 @@
 6.32132 +        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
 6.32133 +     # Make sure the directory exists.
 6.32134 +     test -f "$dirpart/$file" && continue
 6.32135 +-    fdir=`(dirname "$file") 2>/dev/null ||
 6.32136 ++    fdir=`$as_dirname -- "$file" ||
 6.32137 + $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.32138 + 	 X"$file" : 'X\(//\)[^/]' \| \
 6.32139 + 	 X"$file" : 'X\(//\)$' \| \
 6.32140 +-	 X"$file" : 'X\(/\)' \| \
 6.32141 +-	 .     : '\(.\)' 2>/dev/null ||
 6.32142 ++	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
 6.32143 + echo X"$file" |
 6.32144 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.32145 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.32146 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.32147 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.32148 +-  	  s/.*/./; q'`
 6.32149 +-    { if $as_mkdir_p; then
 6.32150 +-    mkdir -p $dirpart/$fdir
 6.32151 +-  else
 6.32152 +-    as_dir=$dirpart/$fdir
 6.32153 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 6.32154 ++	    s//\1/
 6.32155 ++	    q
 6.32156 ++	  }
 6.32157 ++	  /^X\(\/\/\)[^/].*/{
 6.32158 ++	    s//\1/
 6.32159 ++	    q
 6.32160 ++	  }
 6.32161 ++	  /^X\(\/\/\)$/{
 6.32162 ++	    s//\1/
 6.32163 ++	    q
 6.32164 ++	  }
 6.32165 ++	  /^X\(\/\).*/{
 6.32166 ++	    s//\1/
 6.32167 ++	    q
 6.32168 ++	  }
 6.32169 ++	  s/.*/./; q'`
 6.32170 ++    { as_dir=$dirpart/$fdir
 6.32171 ++  case $as_dir in #(
 6.32172 ++  -*) as_dir=./$as_dir;;
 6.32173 ++  esac
 6.32174 ++  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
 6.32175 +     as_dirs=
 6.32176 +-    while test ! -d "$as_dir"; do
 6.32177 +-      as_dirs="$as_dir $as_dirs"
 6.32178 +-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
 6.32179 ++    while :; do
 6.32180 ++      case $as_dir in #(
 6.32181 ++      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
 6.32182 ++      *) as_qdir=$as_dir;;
 6.32183 ++      esac
 6.32184 ++      as_dirs="'$as_qdir' $as_dirs"
 6.32185 ++      as_dir=`$as_dirname -- "$as_dir" ||
 6.32186 + $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.32187 + 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 6.32188 + 	 X"$as_dir" : 'X\(//\)$' \| \
 6.32189 +-	 X"$as_dir" : 'X\(/\)' \| \
 6.32190 +-	 .     : '\(.\)' 2>/dev/null ||
 6.32191 ++	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
 6.32192 + echo X"$as_dir" |
 6.32193 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.32194 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.32195 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.32196 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.32197 +-  	  s/.*/./; q'`
 6.32198 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 6.32199 ++	    s//\1/
 6.32200 ++	    q
 6.32201 ++	  }
 6.32202 ++	  /^X\(\/\/\)[^/].*/{
 6.32203 ++	    s//\1/
 6.32204 ++	    q
 6.32205 ++	  }
 6.32206 ++	  /^X\(\/\/\)$/{
 6.32207 ++	    s//\1/
 6.32208 ++	    q
 6.32209 ++	  }
 6.32210 ++	  /^X\(\/\).*/{
 6.32211 ++	    s//\1/
 6.32212 ++	    q
 6.32213 ++	  }
 6.32214 ++	  s/.*/./; q'`
 6.32215 ++      test -d "$as_dir" && break
 6.32216 +     done
 6.32217 +-    test ! -n "$as_dirs" || mkdir $as_dirs
 6.32218 +-  fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
 6.32219 +-echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
 6.32220 ++    test -z "$as_dirs" || eval "mkdir $as_dirs"
 6.32221 ++  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
 6.32222 ++echo "$as_me: error: cannot create directory $as_dir" >&2;}
 6.32223 +    { (exit 1); exit 1; }; }; }
 6.32224 +-
 6.32225 +     # echo "creating $dirpart/$file"
 6.32226 +     echo '# dummy' > "$dirpart/$file"
 6.32227 +   done
 6.32228 + done
 6.32229 +  ;;
 6.32230 +-    libtool )
 6.32231 ++    "libtool":C)
 6.32232 + 
 6.32233 +     # See if we are running on zsh, and set the options which allow our
 6.32234 +     # commands through without removal of \ escapes.
 6.32235 +@@ -13652,11 +14736,10 @@
 6.32236 +   chmod +x "$ofile"
 6.32237 + 
 6.32238 +  ;;
 6.32239 ++
 6.32240 +   esac
 6.32241 +-done
 6.32242 +-_ACEOF
 6.32243 ++done # for ac_tag
 6.32244 + 
 6.32245 +-cat >>$CONFIG_STATUS <<\_ACEOF
 6.32246 + 
 6.32247 + { (exit 0); exit 0; }
 6.32248 + _ACEOF
 6.32249 +@@ -13686,7 +14769,7 @@
 6.32250 + fi
 6.32251 + 
 6.32252 + #
 6.32253 +-# CONFIG_SUBDIRS section, as fixed in confsubdir.m4.
 6.32254 ++# CONFIG_SUBDIRS section.
 6.32255 + #
 6.32256 + if test "$no_recursion" != yes; then
 6.32257 + 
 6.32258 +@@ -13733,7 +14816,12 @@
 6.32259 +   case $ac_arg in
 6.32260 +   *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
 6.32261 +   esac
 6.32262 +-  ac_sub_configure_args="$ac_arg $ac_sub_configure_args"
 6.32263 ++  ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args"
 6.32264 ++
 6.32265 ++  # Pass --silent
 6.32266 ++  if test "$silent" = yes; then
 6.32267 ++    ac_sub_configure_args="--silent $ac_sub_configure_args"
 6.32268 ++  fi
 6.32269 + 
 6.32270 +   ac_popdir=`pwd`
 6.32271 +   for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue
 6.32272 +@@ -13742,97 +14830,83 @@
 6.32273 +     # parts of a large source tree are present.
 6.32274 +     test -d "$srcdir/$ac_dir" || continue
 6.32275 + 
 6.32276 +-    { echo "$as_me:$LINENO: configuring in $ac_dir" >&5
 6.32277 +-echo "$as_me: configuring in $ac_dir" >&6;}
 6.32278 +-    { if $as_mkdir_p; then
 6.32279 +-    mkdir -p "$ac_dir"
 6.32280 +-  else
 6.32281 +-    as_dir="$ac_dir"
 6.32282 ++    ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)"
 6.32283 ++    echo "$as_me:$LINENO: $ac_msg" >&5
 6.32284 ++    echo "$ac_msg" >&6
 6.32285 ++    { as_dir="$ac_dir"
 6.32286 ++  case $as_dir in #(
 6.32287 ++  -*) as_dir=./$as_dir;;
 6.32288 ++  esac
 6.32289 ++  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
 6.32290 +     as_dirs=
 6.32291 +-    while test ! -d "$as_dir"; do
 6.32292 +-      as_dirs="$as_dir $as_dirs"
 6.32293 +-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
 6.32294 ++    while :; do
 6.32295 ++      case $as_dir in #(
 6.32296 ++      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
 6.32297 ++      *) as_qdir=$as_dir;;
 6.32298 ++      esac
 6.32299 ++      as_dirs="'$as_qdir' $as_dirs"
 6.32300 ++      as_dir=`$as_dirname -- "$as_dir" ||
 6.32301 + $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 6.32302 + 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 6.32303 + 	 X"$as_dir" : 'X\(//\)$' \| \
 6.32304 +-	 X"$as_dir" : 'X\(/\)' \| \
 6.32305 +-	 .     : '\(.\)' 2>/dev/null ||
 6.32306 ++	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
 6.32307 + echo X"$as_dir" |
 6.32308 +-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
 6.32309 +-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
 6.32310 +-  	  /^X\(\/\/\)$/{ s//\1/; q; }
 6.32311 +-  	  /^X\(\/\).*/{ s//\1/; q; }
 6.32312 +-  	  s/.*/./; q'`
 6.32313 ++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 6.32314 ++	    s//\1/
 6.32315 ++	    q
 6.32316 ++	  }
 6.32317 ++	  /^X\(\/\/\)[^/].*/{
 6.32318 ++	    s//\1/
 6.32319 ++	    q
 6.32320 ++	  }
 6.32321 ++	  /^X\(\/\/\)$/{
 6.32322 ++	    s//\1/
 6.32323 ++	    q
 6.32324 ++	  }
 6.32325 ++	  /^X\(\/\).*/{
 6.32326 ++	    s//\1/
 6.32327 ++	    q
 6.32328 ++	  }
 6.32329 ++	  s/.*/./; q'`
 6.32330 ++      test -d "$as_dir" && break
 6.32331 +     done
 6.32332 +-    test ! -n "$as_dirs" || mkdir $as_dirs
 6.32333 +-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
 6.32334 +-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
 6.32335 ++    test -z "$as_dirs" || eval "mkdir $as_dirs"
 6.32336 ++  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
 6.32337 ++echo "$as_me: error: cannot create directory $as_dir" >&2;}
 6.32338 +    { (exit 1); exit 1; }; }; }
 6.32339 +-
 6.32340 +     ac_builddir=.
 6.32341 + 
 6.32342 +-if test "$ac_dir" != .; then
 6.32343 ++case "$ac_dir" in
 6.32344 ++.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 6.32345 ++*)
 6.32346 +   ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
 6.32347 +-  # A "../" for each directory in $ac_dir_suffix.
 6.32348 +-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
 6.32349 +-else
 6.32350 +-  ac_dir_suffix= ac_top_builddir=
 6.32351 +-fi
 6.32352 ++  # A ".." for each directory in $ac_dir_suffix.
 6.32353 ++  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
 6.32354 ++  case $ac_top_builddir_sub in
 6.32355 ++  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
 6.32356 ++  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
 6.32357 ++  esac ;;
 6.32358 ++esac
 6.32359 ++ac_abs_top_builddir=$ac_pwd
 6.32360 ++ac_abs_builddir=$ac_pwd$ac_dir_suffix
 6.32361 ++# for backward compatibility:
 6.32362 ++ac_top_builddir=$ac_top_build_prefix
 6.32363 + 
 6.32364 + case $srcdir in
 6.32365 +-  .)  # No --srcdir option.  We are building in place.
 6.32366 ++  .)  # We are building in place.
 6.32367 +     ac_srcdir=.
 6.32368 +-    if test -z "$ac_top_builddir"; then
 6.32369 +-       ac_top_srcdir=.
 6.32370 +-    else
 6.32371 +-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
 6.32372 +-    fi ;;
 6.32373 +-  [\\/]* | ?:[\\/]* )  # Absolute path.
 6.32374 ++    ac_top_srcdir=$ac_top_builddir_sub
 6.32375 ++    ac_abs_top_srcdir=$ac_pwd ;;
 6.32376 ++  [\\/]* | ?:[\\/]* )  # Absolute name.
 6.32377 +     ac_srcdir=$srcdir$ac_dir_suffix;
 6.32378 +-    ac_top_srcdir=$srcdir ;;
 6.32379 +-  *) # Relative path.
 6.32380 +-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
 6.32381 +-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
 6.32382 +-esac
 6.32383 +-
 6.32384 +-# Do not use `cd foo && pwd` to compute absolute paths, because
 6.32385 +-# the directories may not exist.
 6.32386 +-case `pwd` in
 6.32387 +-.) ac_abs_builddir="$ac_dir";;
 6.32388 +-*)
 6.32389 +-  case "$ac_dir" in
 6.32390 +-  .) ac_abs_builddir=`pwd`;;
 6.32391 +-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
 6.32392 +-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
 6.32393 +-  esac;;
 6.32394 +-esac
 6.32395 +-case $ac_abs_builddir in
 6.32396 +-.) ac_abs_top_builddir=${ac_top_builddir}.;;
 6.32397 +-*)
 6.32398 +-  case ${ac_top_builddir}. in
 6.32399 +-  .) ac_abs_top_builddir=$ac_abs_builddir;;
 6.32400 +-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
 6.32401 +-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
 6.32402 +-  esac;;
 6.32403 +-esac
 6.32404 +-case $ac_abs_builddir in
 6.32405 +-.) ac_abs_srcdir=$ac_srcdir;;
 6.32406 +-*)
 6.32407 +-  case $ac_srcdir in
 6.32408 +-  .) ac_abs_srcdir=$ac_abs_builddir;;
 6.32409 +-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
 6.32410 +-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
 6.32411 +-  esac;;
 6.32412 +-esac
 6.32413 +-case $ac_abs_builddir in
 6.32414 +-.) ac_abs_top_srcdir=$ac_top_srcdir;;
 6.32415 +-*)
 6.32416 +-  case $ac_top_srcdir in
 6.32417 +-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
 6.32418 +-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
 6.32419 +-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
 6.32420 +-  esac;;
 6.32421 ++    ac_top_srcdir=$srcdir
 6.32422 ++    ac_abs_top_srcdir=$srcdir ;;
 6.32423 ++  *) # Relative name.
 6.32424 ++    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
 6.32425 ++    ac_top_srcdir=$ac_top_build_prefix$srcdir
 6.32426 ++    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
 6.32427 + esac
 6.32428 ++ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 6.32429 + 
 6.32430 + 
 6.32431 +     cd "$ac_dir"
 6.32432 +@@ -13856,8 +14930,8 @@
 6.32433 +       # Make the cache file name correct relative to the subdirectory.
 6.32434 +       case $cache_file in
 6.32435 +       [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;;
 6.32436 +-      *) # Relative path.
 6.32437 +-	ac_sub_cache_file=$ac_top_builddir$cache_file ;;
 6.32438 ++      *) # Relative name.
 6.32439 ++	ac_sub_cache_file=$ac_top_build_prefix$cache_file ;;
 6.32440 +       esac
 6.32441 + 
 6.32442 +       { echo "$as_me:$LINENO: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
 6.32443 +diff -Naur newlib-1.17.0/newlib/libc/sys/configure.in newlib-1.17.0-new/newlib/libc/sys/configure.in
 6.32444 +--- newlib-1.17.0/newlib/libc/sys/configure.in	2007-05-24 19:33:37.000000000 +0200
 6.32445 ++++ newlib-1.17.0-new/newlib/libc/sys/configure.in	2009-05-22 09:57:50.000000000 +0200
 6.32446 +@@ -24,6 +24,7 @@
 6.32447 + 	a29khif) AC_CONFIG_SUBDIRS(a29khif) ;;
 6.32448 + 	arc) AC_CONFIG_SUBDIRS(arc) ;;
 6.32449 + 	arm) AC_CONFIG_SUBDIRS(arm) ;;
 6.32450 ++	avr32) AC_CONFIG_SUBDIRS(avr32) ;;
 6.32451 + 	d10v) AC_CONFIG_SUBDIRS(d10v) ;;
 6.32452 + 	decstation) AC_CONFIG_SUBDIRS(decstation) ;;
 6.32453 + 	h8300hms) AC_CONFIG_SUBDIRS(h8300hms) ;;
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/samples/avr32-unknown-none/crosstool.config	Fri May 22 14:46:18 2009 +0000
     7.3 @@ -0,0 +1,273 @@
     7.4 +#
     7.5 +# Automatically generated make config: don't edit
     7.6 +# crosstool-NG version: svn_trunk@1547
     7.7 +# Thu May 21 21:55:59 2009
     7.8 +#
     7.9 +
    7.10 +#
    7.11 +# Paths and misc options
    7.12 +#
    7.13 +
    7.14 +#
    7.15 +# crosstool-NG behavior
    7.16 +#
    7.17 +# CT_OBSOLETE is not set
    7.18 +CT_EXPERIMENTAL=y
    7.19 +CT_DEBUG_CT=y
    7.20 +CT_DEBUG_PAUSE_STEPS=y
    7.21 +# CT_DEBUG_CT_SAVE_STEPS is not set
    7.22 +# CT_NO_OVERIDE_LC_MESSAGES is not set
    7.23 +
    7.24 +#
    7.25 +# Paths
    7.26 +#
    7.27 +CT_LOCAL_TARBALLS_DIR=""
    7.28 +CT_WORK_DIR="${CT_TOP_DIR}/targets"
    7.29 +CT_PREFIX_DIR="${HOME}/x-tools/${CT_TARGET}"
    7.30 +CT_INSTALL_DIR="${CT_PREFIX_DIR}"
    7.31 +# CT_CUSTOM_PATCH is not set
    7.32 +CT_REMOVE_DOCS=y
    7.33 +CT_INSTALL_DIR_RO=y
    7.34 +
    7.35 +#
    7.36 +# Downloading
    7.37 +#
    7.38 +# CT_FORBID_DOWNLOAD is not set
    7.39 +# CT_FORCE_DOWNLOAD is not set
    7.40 +# CT_USE_MIRROR is not set
    7.41 +CT_CONNECT_TIMEOUT=10
    7.42 +# CT_ONLY_DOWNLOAD is not set
    7.43 +
    7.44 +#
    7.45 +# Extracting
    7.46 +#
    7.47 +# CT_FORCE_EXTRACT is not set
    7.48 +CT_OVERIDE_CONFIG_GUESS_SUB=y
    7.49 +# CT_ONLY_EXTRACT is not set
    7.50 +
    7.51 +#
    7.52 +# Build behavior
    7.53 +#
    7.54 +CT_PARALLEL_JOBS=1
    7.55 +CT_LOAD=0
    7.56 +CT_NICE=0
    7.57 +CT_USE_PIPES=y
    7.58 +# CT_CONFIG_SHELL_ASH is not set
    7.59 +
    7.60 +#
    7.61 +# Logging
    7.62 +#
    7.63 +# CT_LOG_ERROR is not set
    7.64 +# CT_LOG_WARN is not set
    7.65 +CT_LOG_INFO=y
    7.66 +# CT_LOG_EXTRA is not set
    7.67 +# CT_LOG_DEBUG is not set
    7.68 +# CT_LOG_ALL is not set
    7.69 +CT_LOG_LEVEL_MAX="INFO"
    7.70 +# CT_LOG_SEE_TOOLS_WARN is not set
    7.71 +CT_LOG_PROGRESS_BAR=y
    7.72 +CT_LOG_TO_FILE=y
    7.73 +CT_LOG_FILE_COMPRESS=y
    7.74 +
    7.75 +#
    7.76 +# Target options
    7.77 +#
    7.78 +CT_ARCH="avr32"
    7.79 +# CT_ARCH_64 is not set
    7.80 +# CT_ARCH_SUPPORTS_BOTH_MMU is not set
    7.81 +# CT_ARCH_SUPPORTS_BOTH_ENDIAN is not set
    7.82 +# CT_ARCH_SUPPORT_ARCH is not set
    7.83 +# CT_ARCH_SUPPORT_ABI is not set
    7.84 +# CT_ARCH_SUPPORT_CPU is not set
    7.85 +# CT_ARCH_SUPPORT_TUNE is not set
    7.86 +# CT_ARCH_SUPPORT_FPU is not set
    7.87 +# CT_ARCH_DEFAULT_HAS_MMU is not set
    7.88 +# CT_ARCH_DEFAULT_BE is not set
    7.89 +# CT_ARCH_DEFAULT_LE is not set
    7.90 +# CT_ARCH_FLOAT_HW is not set
    7.91 +CT_ARCH_FLOAT_SW=y
    7.92 +CT_TARGET_CFLAGS=""
    7.93 +CT_TARGET_LDFLAGS=""
    7.94 +
    7.95 +#
    7.96 +# General target options
    7.97 +#
    7.98 +# CT_ARCH_alpha is not set
    7.99 +# CT_ARCH_arm is not set
   7.100 +CT_ARCH_avr32=y
   7.101 +# CT_ARCH_ia64 is not set
   7.102 +# CT_ARCH_mips is not set
   7.103 +# CT_ARCH_powerpc64 is not set
   7.104 +# CT_ARCH_powerpc is not set
   7.105 +# CT_ARCH_sh is not set
   7.106 +# CT_ARCH_x86_64 is not set
   7.107 +# CT_ARCH_x86 is not set
   7.108 +# CT_ARCH_USE_MMU is not set
   7.109 +
   7.110 +#
   7.111 +# Target optimisations
   7.112 +#
   7.113 +
   7.114 +#
   7.115 +# Toolchain options
   7.116 +#
   7.117 +
   7.118 +#
   7.119 +# General toolchain options
   7.120 +#
   7.121 +CT_USE_SYSROOT=y
   7.122 +CT_SYSROOT_DIR_PREFIX=""
   7.123 +
   7.124 +#
   7.125 +# Tuple completion and aliasing
   7.126 +#
   7.127 +CT_TARGET_VENDOR="unknown"
   7.128 +CT_TARGET_ALIAS_SED_EXPR=""
   7.129 +CT_TARGET_ALIAS=""
   7.130 +
   7.131 +#
   7.132 +# Toolchain type
   7.133 +#
   7.134 +# CT_NATIVE is not set
   7.135 +CT_CROSS=y
   7.136 +# CT_CROSS_NATIVE is not set
   7.137 +# CT_CANADIAN is not set
   7.138 +CT_TOOLCHAIN_TYPE="cross"
   7.139 +
   7.140 +#
   7.141 +# Build system
   7.142 +#
   7.143 +CT_BUILD=""
   7.144 +CT_BUILD_PREFIX=""
   7.145 +CT_BUILD_SUFFIX=""
   7.146 +
   7.147 +#
   7.148 +# Operating System
   7.149 +#
   7.150 +CT_BARE_METAL=y
   7.151 +CT_KERNEL="bare-metal"
   7.152 +CT_KERNEL_bare_metal=y
   7.153 +# CT_KERNEL_linux is not set
   7.154 +
   7.155 +#
   7.156 +# Companion libraries
   7.157 +#
   7.158 +# CT_GMP_MPFR is not set
   7.159 +# CT_PPL_CLOOG is not set
   7.160 +
   7.161 +#
   7.162 +# Binary utilities
   7.163 +#
   7.164 +# CT_ARCH_BINFMT_ELF is not set
   7.165 +CT_ARCH_BINFMT_FLAT=y
   7.166 +
   7.167 +#
   7.168 +# GNU binutils
   7.169 +#
   7.170 +CT_BINUTILS_VERSION="2.18"
   7.171 +# CT_BINUTILS_V_2_14 is not set
   7.172 +# CT_BINUTILS_V_2_15 is not set
   7.173 +# CT_BINUTILS_V_2_16_1 is not set
   7.174 +# CT_BINUTILS_V_2_17 is not set
   7.175 +CT_BINUTILS_V_2_18=y
   7.176 +# CT_BINUTILS_V_2_18_50_0_4 is not set
   7.177 +# CT_BINUTILS_V_2_18_50_0_6 is not set
   7.178 +# CT_BINUTILS_V_2_18_50_0_7 is not set
   7.179 +# CT_BINUTILS_V_2_18_50_0_8 is not set
   7.180 +# CT_BINUTILS_V_2_18_50_0_9 is not set
   7.181 +# CT_BINUTILS_V_2_18_90 is not set
   7.182 +# CT_BINUTILS_V_2_18_91 is not set
   7.183 +# CT_BINUTILS_V_2_18_92 is not set
   7.184 +# CT_BINUTILS_V_2_18_93 is not set
   7.185 +# CT_BINUTILS_V_2_19 is not set
   7.186 +# CT_BINUTILS_V_2_19_1 is not set
   7.187 +# CT_BINUTILS_V_2_19_50_0_1 is not set
   7.188 +# CT_BINUTILS_V_2_19_51_0_1 is not set
   7.189 +# CT_BINUTILS_V_2_19_51_0_2 is not set
   7.190 +CT_BINUTILS_EXTRA_CONFIG=""
   7.191 +
   7.192 +#
   7.193 +# elf2flt
   7.194 +#
   7.195 +CT_ELF2FLT_VERSION="head"
   7.196 +CT_ELF2FLT_CVSHEAD=y
   7.197 +# CT_ELF2FLT_CVS_SNAPSHOT is not set
   7.198 +CT_ELF2FLT_EXTRA_CONFIG=""
   7.199 +
   7.200 +#
   7.201 +# C compiler
   7.202 +#
   7.203 +CT_CC="gcc"
   7.204 +CT_CC_VERSION="4.2.2"
   7.205 +CT_CC_gcc=y
   7.206 +# CT_CC_V_3_2_3 is not set
   7.207 +# CT_CC_V_3_3_6 is not set
   7.208 +# CT_CC_V_3_4_6 is not set
   7.209 +# CT_CC_V_4_0_0 is not set
   7.210 +# CT_CC_V_4_0_1 is not set
   7.211 +# CT_CC_V_4_0_2 is not set
   7.212 +# CT_CC_V_4_0_3 is not set
   7.213 +# CT_CC_V_4_0_4 is not set
   7.214 +# CT_CC_V_4_1_0 is not set
   7.215 +# CT_CC_V_4_1_1 is not set
   7.216 +# CT_CC_V_4_1_2 is not set
   7.217 +# CT_CC_V_4_2_0 is not set
   7.218 +# CT_CC_V_4_2_1 is not set
   7.219 +CT_CC_V_4_2_2=y
   7.220 +# CT_CC_V_4_2_3 is not set
   7.221 +# CT_CC_V_4_2_4 is not set
   7.222 +# CT_CC_V_4_3_0 is not set
   7.223 +# CT_CC_V_4_3_1 is not set
   7.224 +# CT_CC_V_4_3_2 is not set
   7.225 +# CT_CC_V_4_3_3 is not set
   7.226 +# CT_CC_V_4_4_0 is not set
   7.227 +# CT_CC_GCC_4_3_or_later is not set
   7.228 +# CT_CC_GCC_4_4_or_later is not set
   7.229 +CT_CC_CORE_EXTRA_CONFIG=""
   7.230 +CT_CC_SUPPORT_CXX=y
   7.231 +CT_CC_SUPPORT_FORTRAN=y
   7.232 +CT_CC_SUPPORT_JAVA=y
   7.233 +CT_CC_SUPPORT_ADA=y
   7.234 +CT_CC_SUPPORT_OBJC=y
   7.235 +CT_CC_SUPPORT_OBJCXX=y
   7.236 +
   7.237 +#
   7.238 +# Additional supported languages:
   7.239 +#
   7.240 +# CT_CC_LANG_CXX is not set
   7.241 +CT_LIBC="none"
   7.242 +
   7.243 +#
   7.244 +# C-library
   7.245 +#
   7.246 +CT_LIBC_VERSION="1.17.0"
   7.247 +# CT_LIBC_eglibc is not set
   7.248 +# CT_LIBC_glibc is not set
   7.249 +CT_LIBC_newlib=y
   7.250 +# CT_LIBC_uClibc is not set
   7.251 +CT_NEWLIB_V_1_17_0=y
   7.252 +
   7.253 +#
   7.254 +# Common C library options
   7.255 +#
   7.256 +# CT_LIBC_SUPPORT_NPTL is not set
   7.257 +# CT_LIBC_SUPPORT_LINUXTHREADS is not set
   7.258 +CT_THREADS="none"
   7.259 +# CT_THREADS_NPTL is not set
   7.260 +# CT_THREADS_LINUXTHREADS is not set
   7.261 +CT_THREADS_NONE=y
   7.262 +
   7.263 +#
   7.264 +# Tools facilities
   7.265 +#
   7.266 +# CT_TOOL_libelf is not set
   7.267 +# CT_TOOL_sstrip is not set
   7.268 +
   7.269 +#
   7.270 +# Debug facilities
   7.271 +#
   7.272 +# CT_DEBUG_dmalloc is not set
   7.273 +# CT_DEBUG_duma is not set
   7.274 +# CT_DEBUG_gdb is not set
   7.275 +# CT_DEBUG_ltrace is not set
   7.276 +# CT_DEBUG_strace is not set
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/samples/avr32-unknown-none/reported.by	Fri May 22 14:46:18 2009 +0000
     8.3 @@ -0,0 +1,3 @@
     8.4 +reporter_name="Martin Lund"
     8.5 +reporter_url="http://www.doredevelopment.dk"
     8.6 +reporter_comment=""
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/scripts/build/arch/avr32.sh	Fri May 22 14:46:18 2009 +0000
     9.3 @@ -0,0 +1,16 @@
     9.4 +# Compute AVR32-specific values
     9.5 +
     9.6 +CT_DoArchTupleValues() {
     9.7 +    # The architecture part of the tuple:
     9.8 +    CT_TARGET_ARCH="${CT_ARCH}"
     9.9 +
    9.10 +    # gcc ./configure flags
    9.11 +    CT_ARCH_WITH_ARCH=
    9.12 +    CT_ARCH_WITH_ABI=
    9.13 +    CT_ARCH_WITH_CPU=
    9.14 +    CT_ARCH_WITH_TUNE=
    9.15 +    CT_ARCH_WITH_FPU=
    9.16 +    CT_ARCH_WITH_FLOAT=
    9.17 +    CT_TARGET_SYS=none
    9.18 +
    9.19 +}
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/scripts/build/libc/newlib.sh	Fri May 22 14:46:18 2009 +0000
    10.3 @@ -0,0 +1,71 @@
    10.4 +# This file adds functions to build the Newlib C library
    10.5 +# Copyright 2008 Yann E. MORIN
    10.6 +# Licensed under the GPL v2. See COPYING in the root of this package
    10.7 +#
    10.8 +# Edited by by Martin Lund <mgl@doredevelopment.dk>
    10.9 +#
   10.10 +
   10.11 +
   10.12 +do_libc_get() {
   10.13 +    libc_src="ftp://sources.redhat.com/pub/newlib"
   10.14 +
   10.15 +    CT_GetFile "newlib-${CT_LIBC_VERSION}" ${libc_src}
   10.16 +
   10.17 +    return 0
   10.18 +}
   10.19 +
   10.20 +do_libc_extract() {
   10.21 +    CT_Extract "newlib-${CT_LIBC_VERSION}"
   10.22 +    CT_Patch "newlib-${CT_LIBC_VERSION}"
   10.23 +
   10.24 +    return 0
   10.25 +}
   10.26 +
   10.27 +do_libc_check_config() {
   10.28 +    :
   10.29 +}
   10.30 +
   10.31 +do_libc_headers() {
   10.32 +    :
   10.33 +}
   10.34 +
   10.35 +do_libc_start_files() {
   10.36 +    :
   10.37 +}
   10.38 +
   10.39 +do_libc() {
   10.40 +    CT_DoStep INFO "Installing C library"
   10.41 +
   10.42 +    mkdir -p "${CT_BUILD_DIR}/build-libc"
   10.43 +    cd "${CT_BUILD_DIR}/build-libc"
   10.44 +
   10.45 +    CT_DoLog EXTRA "Configuring C library"
   10.46 +
   10.47 +    BUILD_CC="${CT_BUILD}-gcc"                                      \
   10.48 +    CFLAGS="${CT_TARGET_CFLAGS} ${CT_LIBC_GLIBC_EXTRA_CFLAGS} -O"   \
   10.49 +    CC="${CT_TARGET}-gcc ${CT_LIBC_EXTRA_CC_ARGS} ${extra_cc_args}" \
   10.50 +    AR=${CT_TARGET}-ar                                              \
   10.51 +    RANLIB=${CT_TARGET}-ranlib                                      \
   10.52 +    CT_DoExecLog ALL                                                \
   10.53 +    "${CT_SRC_DIR}/newlib-${CT_LIBC_VERSION}/configure"             \
   10.54 +        --build=${CT_BUILD}                                         \
   10.55 +        --host=${CT_HOST}                                           \
   10.56 +        --target=${CT_TARGET}                                       \
   10.57 +        --prefix=${CT_PREFIX_DIR}                                   \
   10.58 +        ${extra_config}                                             \
   10.59 +        ${CT_LIBC_GLIBC_EXTRA_CONFIG}
   10.60 +    
   10.61 +    CT_DoLog EXTRA "Building C library"
   10.62 +
   10.63 +    CT_DoExecLog ALL make
   10.64 +    
   10.65 +    CT_DoLog EXTRA "Installing C library"
   10.66 +
   10.67 +    CT_DoExecLog ALL make install install_root="${CT_SYSROOT_DIR}"
   10.68 +
   10.69 +    CT_EndStep
   10.70 +}
   10.71 +
   10.72 +do_libc_finish() {
   10.73 +    :
   10.74 +}