1.1 --- a/patches/binutils/2.18/130-avr32-atmel-v1.0.1.patch Sun Sep 11 18:26:12 2011 +0200
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,52747 +0,0 @@
1.4 ---- a/bfd/archures.c
1.5 -+++ b/bfd/archures.c
1.6 -@@ -346,6 +346,11 @@ DESCRIPTION
1.7 - .#define bfd_mach_avr4 4
1.8 - .#define bfd_mach_avr5 5
1.9 - .#define bfd_mach_avr6 6
1.10 -+. bfd_arch_avr32, {* Atmel AVR32 *}
1.11 -+.#define bfd_mach_avr32_ap 7000
1.12 -+.#define bfd_mach_avr32_uc 3000
1.13 -+.#define bfd_mach_avr32_ucr1 3001
1.14 -+.#define bfd_mach_avr32_ucr2 3002
1.15 - . bfd_arch_bfin, {* ADI Blackfin *}
1.16 - .#define bfd_mach_bfin 1
1.17 - . bfd_arch_cr16, {* National Semiconductor CompactRISC (ie CR16). *}
1.18 -@@ -438,6 +443,7 @@ extern const bfd_arch_info_type bfd_alph
1.19 - extern const bfd_arch_info_type bfd_arc_arch;
1.20 - extern const bfd_arch_info_type bfd_arm_arch;
1.21 - extern const bfd_arch_info_type bfd_avr_arch;
1.22 -+extern const bfd_arch_info_type bfd_avr32_arch;
1.23 - extern const bfd_arch_info_type bfd_bfin_arch;
1.24 - extern const bfd_arch_info_type bfd_cr16_arch;
1.25 - extern const bfd_arch_info_type bfd_cr16c_arch;
1.26 -@@ -509,6 +515,7 @@ static const bfd_arch_info_type * const
1.27 - &bfd_arc_arch,
1.28 - &bfd_arm_arch,
1.29 - &bfd_avr_arch,
1.30 -+ &bfd_avr32_arch,
1.31 - &bfd_bfin_arch,
1.32 - &bfd_cr16_arch,
1.33 - &bfd_cr16c_arch,
1.34 ---- a/bfd/config.bfd
1.35 -+++ b/bfd/config.bfd
1.36 -@@ -335,6 +335,10 @@ case "${targ}" in
1.37 - targ_underscore=yes
1.38 - ;;
1.39 -
1.40 -+ avr32-*-*)
1.41 -+ targ_defvec=bfd_elf32_avr32_vec
1.42 -+ ;;
1.43 -+
1.44 - c30-*-*aout* | tic30-*-*aout*)
1.45 - targ_defvec=tic30_aout_vec
1.46 - ;;
1.47 ---- a/bfd/configure.in
1.48 -+++ b/bfd/configure.in
1.49 -@@ -8,7 +8,7 @@ AC_CONFIG_SRCDIR([libbfd.c])
1.50 - AC_CANONICAL_TARGET
1.51 - AC_ISC_POSIX
1.52 -
1.53 --AM_INIT_AUTOMAKE(bfd, 2.18)
1.54 -+AM_INIT_AUTOMAKE(bfd, 2.18.atmel.1.0.1.avr32linux.1)
1.55 -
1.56 - dnl These must be called before AM_PROG_LIBTOOL, because it may want
1.57 - dnl to call AC_CHECK_PROG.
1.58 -@@ -619,6 +619,7 @@ do
1.59 - bfd_efi_app_ia64_vec) tb="$tb efi-app-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
1.60 - bfd_elf32_am33lin_vec) tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
1.61 - bfd_elf32_avr_vec) tb="$tb elf32-avr.lo elf32.lo $elf" ;;
1.62 -+ bfd_elf32_avr32_vec) tb="$tb elf32-avr32.lo elf32.lo $elf" ;;
1.63 - bfd_elf32_bfin_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
1.64 - bfd_elf32_bfinfdpic_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
1.65 - bfd_elf32_big_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
1.66 ---- /dev/null
1.67 -+++ b/bfd/cpu-avr32.c
1.68 -@@ -0,0 +1,51 @@
1.69 -+/* BFD library support routines for AVR32.
1.70 -+ Copyright 2003-2006 Atmel Corporation.
1.71 -+
1.72 -+ Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
1.73 -+
1.74 -+ This is part of BFD, the Binary File Descriptor library.
1.75 -+
1.76 -+ This program is free software; you can redistribute it and/or modify
1.77 -+ it under the terms of the GNU General Public License as published by
1.78 -+ the Free Software Foundation; either version 2 of the License, or
1.79 -+ (at your option) any later version.
1.80 -+
1.81 -+ This program is distributed in the hope that it will be useful,
1.82 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1.83 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1.84 -+ GNU General Public License for more details.
1.85 -+
1.86 -+ You should have received a copy of the GNU General Public License
1.87 -+ along with this program; if not, write to the Free Software
1.88 -+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
1.89 -+
1.90 -+#include "bfd.h"
1.91 -+#include "sysdep.h"
1.92 -+#include "libbfd.h"
1.93 -+
1.94 -+#define N(machine, print, default, next) \
1.95 -+ { \
1.96 -+ 32, /* 32 bits in a word */ \
1.97 -+ 32, /* 32 bits in an address */ \
1.98 -+ 8, /* 8 bits in a byte */ \
1.99 -+ bfd_arch_avr32, /* architecture */ \
1.100 -+ machine, /* machine */ \
1.101 -+ "avr32", /* arch name */ \
1.102 -+ print, /* printable name */ \
1.103 -+ 1, /* section align power */ \
1.104 -+ default, /* the default machine? */ \
1.105 -+ bfd_default_compatible, \
1.106 -+ bfd_default_scan, \
1.107 -+ next, \
1.108 -+ }
1.109 -+
1.110 -+static const bfd_arch_info_type cpu_info[] =
1.111 -+{
1.112 -+ N(bfd_mach_avr32_ap, "avr32:ap", FALSE, &cpu_info[1]),
1.113 -+ N(bfd_mach_avr32_uc, "avr32:uc", FALSE, &cpu_info[2]),
1.114 -+ N(bfd_mach_avr32_ucr1, "avr32:ucr1", FALSE, &cpu_info[3]),
1.115 -+ N(bfd_mach_avr32_ucr2, "avr32:ucr2", FALSE, NULL),
1.116 -+};
1.117 -+
1.118 -+const bfd_arch_info_type bfd_avr32_arch =
1.119 -+ N(bfd_mach_avr32_ap, "avr32", TRUE, &cpu_info[0]);
1.120 ---- /dev/null
1.121 -+++ b/bfd/elf32-avr32.c
1.122 -@@ -0,0 +1,3915 @@
1.123 -+/* AVR32-specific support for 32-bit ELF.
1.124 -+ Copyright 2003-2006 Atmel Corporation.
1.125 -+
1.126 -+ Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
1.127 -+
1.128 -+ This file is part of BFD, the Binary File Descriptor library.
1.129 -+
1.130 -+ This program is free software; you can redistribute it and/or modify
1.131 -+ it under the terms of the GNU General Public License as published by
1.132 -+ the Free Software Foundation; either version 2 of the License, or
1.133 -+ (at your option) any later version.
1.134 -+
1.135 -+ This program is distributed in the hope that it will be useful,
1.136 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1.137 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1.138 -+ GNU General Public License for more details.
1.139 -+
1.140 -+ You should have received a copy of the GNU General Public License
1.141 -+ along with this program; if not, write to the Free Software
1.142 -+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
1.143 -+
1.144 -+#include "bfd.h"
1.145 -+#include "sysdep.h"
1.146 -+#include "bfdlink.h"
1.147 -+#include "libbfd.h"
1.148 -+#include "elf-bfd.h"
1.149 -+#include "elf/avr32.h"
1.150 -+#include "elf32-avr32.h"
1.151 -+
1.152 -+#define xDEBUG
1.153 -+#define xRELAX_DEBUG
1.154 -+
1.155 -+#ifdef DEBUG
1.156 -+# define pr_debug(fmt, args...) fprintf(stderr, fmt, ##args)
1.157 -+#else
1.158 -+# define pr_debug(fmt, args...) do { } while (0)
1.159 -+#endif
1.160 -+
1.161 -+#ifdef RELAX_DEBUG
1.162 -+# define RDBG(fmt, args...) fprintf(stderr, fmt, ##args)
1.163 -+#else
1.164 -+# define RDBG(fmt, args...) do { } while (0)
1.165 -+#endif
1.166 -+
1.167 -+/* When things go wrong, we want it to blow up, damnit! */
1.168 -+#undef BFD_ASSERT
1.169 -+#undef abort
1.170 -+#define BFD_ASSERT(expr) \
1.171 -+ do \
1.172 -+ { \
1.173 -+ if (!(expr)) \
1.174 -+ { \
1.175 -+ bfd_assert(__FILE__, __LINE__); \
1.176 -+ abort(); \
1.177 -+ } \
1.178 -+ } \
1.179 -+ while (0)
1.180 -+
1.181 -+/* The name of the dynamic interpreter. This is put in the .interp section. */
1.182 -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld.so.1"
1.183 -+
1.184 -+#define AVR32_GOT_HEADER_SIZE 8
1.185 -+#define AVR32_FUNCTION_STUB_SIZE 8
1.186 -+
1.187 -+#define ELF_R_INFO(x, y) ELF32_R_INFO(x, y)
1.188 -+#define ELF_R_TYPE(x) ELF32_R_TYPE(x)
1.189 -+#define ELF_R_SYM(x) ELF32_R_SYM(x)
1.190 -+
1.191 -+#define NOP_OPCODE 0xd703
1.192 -+
1.193 -+
1.194 -+/* Mapping between BFD relocations and ELF relocations */
1.195 -+
1.196 -+static reloc_howto_type *
1.197 -+bfd_elf32_bfd_reloc_type_lookup(bfd *abfd, bfd_reloc_code_real_type code);
1.198 -+
1.199 -+static reloc_howto_type *
1.200 -+bfd_elf32_bfd_reloc_name_lookup(bfd *abfd, const char *r_name);
1.201 -+
1.202 -+static void
1.203 -+avr32_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst);
1.204 -+
1.205 -+/* Generic HOWTO */
1.206 -+#define GENH(name, align, size, bitsize, pcrel, bitpos, complain, mask) \
1.207 -+ HOWTO(name, align, size, bitsize, pcrel, bitpos, \
1.208 -+ complain_overflow_##complain, bfd_elf_generic_reloc, #name, \
1.209 -+ FALSE, 0, mask, pcrel)
1.210 -+
1.211 -+static reloc_howto_type elf_avr32_howto_table[] = {
1.212 -+ /* NAME ALN SZ BSZ PCREL BP COMPLAIN MASK */
1.213 -+ GENH(R_AVR32_NONE, 0, 0, 0, FALSE, 0, dont, 0x00000000),
1.214 -+
1.215 -+ GENH(R_AVR32_32, 0, 2, 32, FALSE, 0, dont, 0xffffffff),
1.216 -+ GENH(R_AVR32_16, 0, 1, 16, FALSE, 0, bitfield, 0x0000ffff),
1.217 -+ GENH(R_AVR32_8, 0, 0, 8, FALSE, 0, bitfield, 0x000000ff),
1.218 -+ GENH(R_AVR32_32_PCREL, 0, 2, 32, TRUE, 0, signed, 0xffffffff),
1.219 -+ GENH(R_AVR32_16_PCREL, 0, 1, 16, TRUE, 0, signed, 0x0000ffff),
1.220 -+ GENH(R_AVR32_8_PCREL, 0, 0, 8, TRUE, 0, signed, 0x000000ff),
1.221 -+
1.222 -+ /* Difference between two symbol (sym2 - sym1). The reloc encodes
1.223 -+ the value of sym1. The field contains the difference before any
1.224 -+ relaxing is done. */
1.225 -+ GENH(R_AVR32_DIFF32, 0, 2, 32, FALSE, 0, dont, 0xffffffff),
1.226 -+ GENH(R_AVR32_DIFF16, 0, 1, 16, FALSE, 0, signed, 0x0000ffff),
1.227 -+ GENH(R_AVR32_DIFF8, 0, 0, 8, FALSE, 0, signed, 0x000000ff),
1.228 -+
1.229 -+ GENH(R_AVR32_GOT32, 0, 2, 32, FALSE, 0, signed, 0xffffffff),
1.230 -+ GENH(R_AVR32_GOT16, 0, 1, 16, FALSE, 0, signed, 0x0000ffff),
1.231 -+ GENH(R_AVR32_GOT8, 0, 0, 8, FALSE, 0, signed, 0x000000ff),
1.232 -+
1.233 -+ GENH(R_AVR32_21S, 0, 2, 21, FALSE, 0, signed, 0x1e10ffff),
1.234 -+ GENH(R_AVR32_16U, 0, 2, 16, FALSE, 0, unsigned, 0x0000ffff),
1.235 -+ GENH(R_AVR32_16S, 0, 2, 16, FALSE, 0, signed, 0x0000ffff),
1.236 -+ GENH(R_AVR32_8S, 0, 1, 8, FALSE, 4, signed, 0x00000ff0),
1.237 -+ GENH(R_AVR32_8S_EXT, 0, 2, 8, FALSE, 0, signed, 0x000000ff),
1.238 -+
1.239 -+ GENH(R_AVR32_22H_PCREL, 1, 2, 21, TRUE, 0, signed, 0x1e10ffff),
1.240 -+ GENH(R_AVR32_18W_PCREL, 2, 2, 16, TRUE, 0, signed, 0x0000ffff),
1.241 -+ GENH(R_AVR32_16B_PCREL, 0, 2, 16, TRUE, 0, signed, 0x0000ffff),
1.242 -+ GENH(R_AVR32_16N_PCREL, 0, 2, 16, TRUE, 0, signed, 0x0000ffff),
1.243 -+ GENH(R_AVR32_14UW_PCREL, 2, 2, 12, TRUE, 0, unsigned, 0x0000f0ff),
1.244 -+ GENH(R_AVR32_11H_PCREL, 1, 1, 10, TRUE, 4, signed, 0x00000ff3),
1.245 -+ GENH(R_AVR32_10UW_PCREL, 2, 2, 8, TRUE, 0, unsigned, 0x000000ff),
1.246 -+ GENH(R_AVR32_9H_PCREL, 1, 1, 8, TRUE, 4, signed, 0x00000ff0),
1.247 -+ GENH(R_AVR32_9UW_PCREL, 2, 1, 7, TRUE, 4, unsigned, 0x000007f0),
1.248 -+
1.249 -+ GENH(R_AVR32_HI16, 16, 2, 16, FALSE, 0, dont, 0x0000ffff),
1.250 -+ GENH(R_AVR32_LO16, 0, 2, 16, FALSE, 0, dont, 0x0000ffff),
1.251 -+
1.252 -+ GENH(R_AVR32_GOTPC, 0, 2, 32, FALSE, 0, dont, 0xffffffff),
1.253 -+ GENH(R_AVR32_GOTCALL, 2, 2, 21, FALSE, 0, signed, 0x1e10ffff),
1.254 -+ GENH(R_AVR32_LDA_GOT, 2, 2, 21, FALSE, 0, signed, 0x1e10ffff),
1.255 -+ GENH(R_AVR32_GOT21S, 0, 2, 21, FALSE, 0, signed, 0x1e10ffff),
1.256 -+ GENH(R_AVR32_GOT18SW, 2, 2, 16, FALSE, 0, signed, 0x0000ffff),
1.257 -+ GENH(R_AVR32_GOT16S, 0, 2, 16, FALSE, 0, signed, 0x0000ffff),
1.258 -+ GENH(R_AVR32_GOT7UW, 2, 1, 5, FALSE, 4, unsigned, 0x000001f0),
1.259 -+
1.260 -+ GENH(R_AVR32_32_CPENT, 0, 2, 32, FALSE, 0, dont, 0xffffffff),
1.261 -+ GENH(R_AVR32_CPCALL, 2, 2, 16, TRUE, 0, signed, 0x0000ffff),
1.262 -+ GENH(R_AVR32_16_CP, 0, 2, 16, TRUE, 0, signed, 0x0000ffff),
1.263 -+ GENH(R_AVR32_9W_CP, 2, 1, 7, TRUE, 4, unsigned, 0x000007f0),
1.264 -+
1.265 -+ GENH(R_AVR32_RELATIVE, 0, 2, 32, FALSE, 0, signed, 0xffffffff),
1.266 -+ GENH(R_AVR32_GLOB_DAT, 0, 2, 32, FALSE, 0, dont, 0xffffffff),
1.267 -+ GENH(R_AVR32_JMP_SLOT, 0, 2, 32, FALSE, 0, dont, 0xffffffff),
1.268 -+
1.269 -+ GENH(R_AVR32_ALIGN, 0, 1, 0, FALSE, 0, unsigned, 0x00000000),
1.270 -+
1.271 -+ GENH(R_AVR32_15S, 2, 2, 15, FALSE, 0, signed, 0x00007fff),
1.272 -+};
1.273 -+
1.274 -+struct elf_reloc_map
1.275 -+{
1.276 -+ bfd_reloc_code_real_type bfd_reloc_val;
1.277 -+ unsigned char elf_reloc_val;
1.278 -+};
1.279 -+
1.280 -+static const struct elf_reloc_map avr32_reloc_map[] =
1.281 -+{
1.282 -+ { BFD_RELOC_NONE, R_AVR32_NONE },
1.283 -+
1.284 -+ { BFD_RELOC_32, R_AVR32_32 },
1.285 -+ { BFD_RELOC_16, R_AVR32_16 },
1.286 -+ { BFD_RELOC_8, R_AVR32_8 },
1.287 -+ { BFD_RELOC_32_PCREL, R_AVR32_32_PCREL },
1.288 -+ { BFD_RELOC_16_PCREL, R_AVR32_16_PCREL },
1.289 -+ { BFD_RELOC_8_PCREL, R_AVR32_8_PCREL },
1.290 -+ { BFD_RELOC_AVR32_DIFF32, R_AVR32_DIFF32 },
1.291 -+ { BFD_RELOC_AVR32_DIFF16, R_AVR32_DIFF16 },
1.292 -+ { BFD_RELOC_AVR32_DIFF8, R_AVR32_DIFF8 },
1.293 -+ { BFD_RELOC_AVR32_GOT32, R_AVR32_GOT32 },
1.294 -+ { BFD_RELOC_AVR32_GOT16, R_AVR32_GOT16 },
1.295 -+ { BFD_RELOC_AVR32_GOT8, R_AVR32_GOT8 },
1.296 -+
1.297 -+ { BFD_RELOC_AVR32_21S, R_AVR32_21S },
1.298 -+ { BFD_RELOC_AVR32_16U, R_AVR32_16U },
1.299 -+ { BFD_RELOC_AVR32_16S, R_AVR32_16S },
1.300 -+ { BFD_RELOC_AVR32_SUB5, R_AVR32_16S },
1.301 -+ { BFD_RELOC_AVR32_8S_EXT, R_AVR32_8S_EXT },
1.302 -+ { BFD_RELOC_AVR32_8S, R_AVR32_8S },
1.303 -+
1.304 -+ { BFD_RELOC_AVR32_22H_PCREL, R_AVR32_22H_PCREL },
1.305 -+ { BFD_RELOC_AVR32_18W_PCREL, R_AVR32_18W_PCREL },
1.306 -+ { BFD_RELOC_AVR32_16B_PCREL, R_AVR32_16B_PCREL },
1.307 -+ { BFD_RELOC_AVR32_16N_PCREL, R_AVR32_16N_PCREL },
1.308 -+ { BFD_RELOC_AVR32_11H_PCREL, R_AVR32_11H_PCREL },
1.309 -+ { BFD_RELOC_AVR32_10UW_PCREL, R_AVR32_10UW_PCREL },
1.310 -+ { BFD_RELOC_AVR32_9H_PCREL, R_AVR32_9H_PCREL },
1.311 -+ { BFD_RELOC_AVR32_9UW_PCREL, R_AVR32_9UW_PCREL },
1.312 -+
1.313 -+ { BFD_RELOC_HI16, R_AVR32_HI16 },
1.314 -+ { BFD_RELOC_LO16, R_AVR32_LO16 },
1.315 -+
1.316 -+ { BFD_RELOC_AVR32_GOTPC, R_AVR32_GOTPC },
1.317 -+ { BFD_RELOC_AVR32_GOTCALL, R_AVR32_GOTCALL },
1.318 -+ { BFD_RELOC_AVR32_LDA_GOT, R_AVR32_LDA_GOT },
1.319 -+ { BFD_RELOC_AVR32_GOT21S, R_AVR32_GOT21S },
1.320 -+ { BFD_RELOC_AVR32_GOT18SW, R_AVR32_GOT18SW },
1.321 -+ { BFD_RELOC_AVR32_GOT16S, R_AVR32_GOT16S },
1.322 -+ /* GOT7UW should never be generated by the assembler */
1.323 -+
1.324 -+ { BFD_RELOC_AVR32_32_CPENT, R_AVR32_32_CPENT },
1.325 -+ { BFD_RELOC_AVR32_CPCALL, R_AVR32_CPCALL },
1.326 -+ { BFD_RELOC_AVR32_16_CP, R_AVR32_16_CP },
1.327 -+ { BFD_RELOC_AVR32_9W_CP, R_AVR32_9W_CP },
1.328 -+
1.329 -+ { BFD_RELOC_AVR32_ALIGN, R_AVR32_ALIGN },
1.330 -+
1.331 -+ { BFD_RELOC_AVR32_15S, R_AVR32_15S },
1.332 -+};
1.333 -+
1.334 -+static reloc_howto_type *
1.335 -+bfd_elf32_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
1.336 -+ bfd_reloc_code_real_type code)
1.337 -+{
1.338 -+ unsigned int i;
1.339 -+
1.340 -+ for (i = 0; i < sizeof(avr32_reloc_map) / sizeof(struct elf_reloc_map); i++)
1.341 -+ {
1.342 -+ if (avr32_reloc_map[i].bfd_reloc_val == code)
1.343 -+ return &elf_avr32_howto_table[avr32_reloc_map[i].elf_reloc_val];
1.344 -+ }
1.345 -+
1.346 -+ return NULL;
1.347 -+}
1.348 -+
1.349 -+static reloc_howto_type *
1.350 -+bfd_elf32_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
1.351 -+ const char *r_name)
1.352 -+{
1.353 -+ unsigned int i;
1.354 -+
1.355 -+ for (i = 0;
1.356 -+ i < sizeof (elf_avr32_howto_table) / sizeof (elf_avr32_howto_table[0]);
1.357 -+ i++)
1.358 -+ if (elf_avr32_howto_table[i].name != NULL
1.359 -+ && strcasecmp (elf_avr32_howto_table[i].name, r_name) == 0)
1.360 -+ return &elf_avr32_howto_table[i];
1.361 -+
1.362 -+ return NULL;
1.363 -+}
1.364 -+
1.365 -+/* Set the howto pointer for an AVR32 ELF reloc. */
1.366 -+static void
1.367 -+avr32_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
1.368 -+ arelent *cache_ptr,
1.369 -+ Elf_Internal_Rela *dst)
1.370 -+{
1.371 -+ unsigned int r_type;
1.372 -+
1.373 -+ r_type = ELF32_R_TYPE (dst->r_info);
1.374 -+ BFD_ASSERT (r_type < (unsigned int) R_AVR32_max);
1.375 -+ cache_ptr->howto = &elf_avr32_howto_table[r_type];
1.376 -+}
1.377 -+
1.378 -+
1.379 -+/* AVR32 ELF linker hash table and associated hash entries. */
1.380 -+
1.381 -+static struct bfd_hash_entry *
1.382 -+avr32_elf_link_hash_newfunc(struct bfd_hash_entry *entry,
1.383 -+ struct bfd_hash_table *table,
1.384 -+ const char *string);
1.385 -+static void
1.386 -+avr32_elf_copy_indirect_symbol(struct bfd_link_info *info,
1.387 -+ struct elf_link_hash_entry *dir,
1.388 -+ struct elf_link_hash_entry *ind);
1.389 -+static struct bfd_link_hash_table *
1.390 -+avr32_elf_link_hash_table_create(bfd *abfd);
1.391 -+
1.392 -+/*
1.393 -+ Try to limit memory usage to something reasonable when sorting the
1.394 -+ GOT. If just a couple of entries end up getting more references
1.395 -+ than this, it won't affect performance at all, but if there are many
1.396 -+ of them, we could end up with the wrong symbols being assigned the
1.397 -+ first GOT entries.
1.398 -+*/
1.399 -+#define MAX_NR_GOT_HOLES 2048
1.400 -+
1.401 -+/*
1.402 -+ AVR32 GOT entry. We need to keep track of refcounts and offsets
1.403 -+ simultaneously, since we need the offsets during relaxation, and we
1.404 -+ also want to be able to drop GOT entries during relaxation. In
1.405 -+ addition to this, we want to keep the list of GOT entries sorted so
1.406 -+ that we can keep the most-used entries at the lowest offsets.
1.407 -+*/
1.408 -+struct got_entry
1.409 -+{
1.410 -+ struct got_entry *next;
1.411 -+ struct got_entry **pprev;
1.412 -+ int refcount;
1.413 -+ bfd_signed_vma offset;
1.414 -+};
1.415 -+
1.416 -+struct elf_avr32_link_hash_entry
1.417 -+{
1.418 -+ struct elf_link_hash_entry root;
1.419 -+
1.420 -+ /* Number of runtime relocations against this symbol. */
1.421 -+ unsigned int possibly_dynamic_relocs;
1.422 -+
1.423 -+ /* If there are anything but R_AVR32_GOT18 relocations against this
1.424 -+ symbol, it means that someone may be taking the address of the
1.425 -+ function, and we should therefore not create a stub. */
1.426 -+ bfd_boolean no_fn_stub;
1.427 -+
1.428 -+ /* If there is a R_AVR32_32 relocation in a read-only section
1.429 -+ against this symbol, we could be in trouble. If we're linking a
1.430 -+ shared library or this symbol is defined in one, it means we must
1.431 -+ emit a run-time reloc for it and that's not allowed in read-only
1.432 -+ sections. */
1.433 -+ asection *readonly_reloc_sec;
1.434 -+ bfd_vma readonly_reloc_offset;
1.435 -+
1.436 -+ /* Record which frag (if any) contains the symbol. This is used
1.437 -+ during relaxation in order to avoid having to update all symbols
1.438 -+ whenever we move something. For local symbols, this information
1.439 -+ is in the local_sym_frag member of struct elf_obj_tdata. */
1.440 -+ struct fragment *sym_frag;
1.441 -+};
1.442 -+#define avr32_elf_hash_entry(ent) ((struct elf_avr32_link_hash_entry *)(ent))
1.443 -+
1.444 -+struct elf_avr32_link_hash_table
1.445 -+{
1.446 -+ struct elf_link_hash_table root;
1.447 -+
1.448 -+ /* Shortcuts to get to dynamic linker sections. */
1.449 -+ asection *sgot;
1.450 -+ asection *srelgot;
1.451 -+ asection *sstub;
1.452 -+
1.453 -+ /* We use a variation of Pigeonhole Sort to sort the GOT. After the
1.454 -+ initial refcounts have been determined, we initialize
1.455 -+ nr_got_holes to the highest refcount ever seen and allocate an
1.456 -+ array of nr_got_holes entries for got_hole. Each GOT entry is
1.457 -+ then stored in this array at the index given by its refcount.
1.458 -+
1.459 -+ When a GOT entry has its refcount decremented during relaxation,
1.460 -+ it is moved to a lower index in the got_hole array.
1.461 -+ */
1.462 -+ struct got_entry **got_hole;
1.463 -+ int nr_got_holes;
1.464 -+
1.465 -+ /* Dynamic relocations to local symbols. Only used when linking a
1.466 -+ shared library and -Bsymbolic is not given. */
1.467 -+ unsigned int local_dynamic_relocs;
1.468 -+
1.469 -+ bfd_boolean relocations_analyzed;
1.470 -+ bfd_boolean symbols_adjusted;
1.471 -+ bfd_boolean repeat_pass;
1.472 -+ bfd_boolean direct_data_refs;
1.473 -+ unsigned int relax_iteration;
1.474 -+ unsigned int relax_pass;
1.475 -+};
1.476 -+#define avr32_elf_hash_table(p) \
1.477 -+ ((struct elf_avr32_link_hash_table *)((p)->hash))
1.478 -+
1.479 -+static struct bfd_hash_entry *
1.480 -+avr32_elf_link_hash_newfunc(struct bfd_hash_entry *entry,
1.481 -+ struct bfd_hash_table *table,
1.482 -+ const char *string)
1.483 -+{
1.484 -+ struct elf_avr32_link_hash_entry *ret = avr32_elf_hash_entry(entry);
1.485 -+
1.486 -+ /* Allocate the structure if it hasn't already been allocated by a
1.487 -+ subclass */
1.488 -+ if (ret == NULL)
1.489 -+ ret = (struct elf_avr32_link_hash_entry *)
1.490 -+ bfd_hash_allocate(table, sizeof(struct elf_avr32_link_hash_entry));
1.491 -+
1.492 -+ if (ret == NULL)
1.493 -+ return NULL;
1.494 -+
1.495 -+ memset(ret, 0, sizeof(struct elf_avr32_link_hash_entry));
1.496 -+
1.497 -+ /* Give the superclass a chance */
1.498 -+ ret = (struct elf_avr32_link_hash_entry *)
1.499 -+ _bfd_elf_link_hash_newfunc((struct bfd_hash_entry *)ret, table, string);
1.500 -+
1.501 -+ return (struct bfd_hash_entry *)ret;
1.502 -+}
1.503 -+
1.504 -+/* Copy data from an indirect symbol to its direct symbol, hiding the
1.505 -+ old indirect symbol. Process additional relocation information.
1.506 -+ Also called for weakdefs, in which case we just let
1.507 -+ _bfd_elf_link_hash_copy_indirect copy the flags for us. */
1.508 -+
1.509 -+static void
1.510 -+avr32_elf_copy_indirect_symbol(struct bfd_link_info *info,
1.511 -+ struct elf_link_hash_entry *dir,
1.512 -+ struct elf_link_hash_entry *ind)
1.513 -+{
1.514 -+ struct elf_avr32_link_hash_entry *edir, *eind;
1.515 -+
1.516 -+ _bfd_elf_link_hash_copy_indirect (info, dir, ind);
1.517 -+
1.518 -+ if (ind->root.type != bfd_link_hash_indirect)
1.519 -+ return;
1.520 -+
1.521 -+ edir = (struct elf_avr32_link_hash_entry *)dir;
1.522 -+ eind = (struct elf_avr32_link_hash_entry *)ind;
1.523 -+
1.524 -+ edir->possibly_dynamic_relocs += eind->possibly_dynamic_relocs;
1.525 -+ edir->no_fn_stub = edir->no_fn_stub || eind->no_fn_stub;
1.526 -+}
1.527 -+
1.528 -+static struct bfd_link_hash_table *
1.529 -+avr32_elf_link_hash_table_create(bfd *abfd)
1.530 -+{
1.531 -+ struct elf_avr32_link_hash_table *ret;
1.532 -+
1.533 -+ ret = bfd_zmalloc(sizeof(*ret));
1.534 -+ if (ret == NULL)
1.535 -+ return NULL;
1.536 -+
1.537 -+ if (! _bfd_elf_link_hash_table_init(&ret->root, abfd,
1.538 -+ avr32_elf_link_hash_newfunc,
1.539 -+ sizeof (struct elf_avr32_link_hash_entry)))
1.540 -+ {
1.541 -+ free(ret);
1.542 -+ return NULL;
1.543 -+ }
1.544 -+
1.545 -+ /* Prevent the BFD core from creating bogus got_entry pointers */
1.546 -+ ret->root.init_got_refcount.glist = NULL;
1.547 -+ ret->root.init_plt_refcount.glist = NULL;
1.548 -+ ret->root.init_got_offset.glist = NULL;
1.549 -+ ret->root.init_plt_offset.glist = NULL;
1.550 -+
1.551 -+ return &ret->root.root;
1.552 -+}
1.553 -+
1.554 -+
1.555 -+/* Initial analysis and creation of dynamic sections and symbols */
1.556 -+
1.557 -+static asection *
1.558 -+create_dynamic_section(bfd *dynobj, const char *name, flagword flags,
1.559 -+ unsigned int align_power);
1.560 -+static struct elf_link_hash_entry *
1.561 -+create_dynamic_symbol(bfd *dynobj, struct bfd_link_info *info,
1.562 -+ const char *name, asection *sec,
1.563 -+ bfd_vma offset);
1.564 -+static bfd_boolean
1.565 -+avr32_elf_create_got_section (bfd *dynobj, struct bfd_link_info *info);
1.566 -+static bfd_boolean
1.567 -+avr32_elf_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info);
1.568 -+static bfd_boolean
1.569 -+avr32_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec,
1.570 -+ const Elf_Internal_Rela *relocs);
1.571 -+static bfd_boolean
1.572 -+avr32_elf_adjust_dynamic_symbol(struct bfd_link_info *info,
1.573 -+ struct elf_link_hash_entry *h);
1.574 -+
1.575 -+static asection *
1.576 -+create_dynamic_section(bfd *dynobj, const char *name, flagword flags,
1.577 -+ unsigned int align_power)
1.578 -+{
1.579 -+ asection *sec;
1.580 -+
1.581 -+ sec = bfd_make_section(dynobj, name);
1.582 -+ if (!sec
1.583 -+ || !bfd_set_section_flags(dynobj, sec, flags)
1.584 -+ || !bfd_set_section_alignment(dynobj, sec, align_power))
1.585 -+ return NULL;
1.586 -+
1.587 -+ return sec;
1.588 -+}
1.589 -+
1.590 -+static struct elf_link_hash_entry *
1.591 -+create_dynamic_symbol(bfd *dynobj, struct bfd_link_info *info,
1.592 -+ const char *name, asection *sec,
1.593 -+ bfd_vma offset)
1.594 -+{
1.595 -+ struct bfd_link_hash_entry *bh = NULL;
1.596 -+ struct elf_link_hash_entry *h;
1.597 -+ const struct elf_backend_data *bed = get_elf_backend_data (dynobj);
1.598 -+
1.599 -+ if (!(_bfd_generic_link_add_one_symbol
1.600 -+ (info, dynobj, name, BSF_GLOBAL, sec, offset, NULL, FALSE,
1.601 -+ bed->collect, &bh)))
1.602 -+ return NULL;
1.603 -+
1.604 -+ h = (struct elf_link_hash_entry *)bh;
1.605 -+ h->def_regular = 1;
1.606 -+ h->type = STT_OBJECT;
1.607 -+ h->other = STV_HIDDEN;
1.608 -+
1.609 -+ return h;
1.610 -+}
1.611 -+
1.612 -+static bfd_boolean
1.613 -+avr32_elf_create_got_section (bfd *dynobj, struct bfd_link_info *info)
1.614 -+{
1.615 -+ struct elf_avr32_link_hash_table *htab;
1.616 -+ flagword flags;
1.617 -+ const struct elf_backend_data *bed = get_elf_backend_data (dynobj);
1.618 -+
1.619 -+ htab = avr32_elf_hash_table(info);
1.620 -+ flags = bed->dynamic_sec_flags;
1.621 -+
1.622 -+ if (htab->sgot)
1.623 -+ return TRUE;
1.624 -+
1.625 -+ htab->sgot = create_dynamic_section(dynobj, ".got", flags, 2);
1.626 -+ if (!htab->srelgot)
1.627 -+ htab->srelgot = create_dynamic_section(dynobj, ".rela.got",
1.628 -+ flags | SEC_READONLY, 2);
1.629 -+
1.630 -+ if (!htab->sgot || !htab->srelgot)
1.631 -+ return FALSE;
1.632 -+
1.633 -+ htab->root.hgot = create_dynamic_symbol(dynobj, info, "_GLOBAL_OFFSET_TABLE_",
1.634 -+ htab->sgot, 0);
1.635 -+ if (!htab->root.hgot)
1.636 -+ return FALSE;
1.637 -+
1.638 -+ /* Make room for the GOT header */
1.639 -+ htab->sgot->size += bed->got_header_size;
1.640 -+
1.641 -+ return TRUE;
1.642 -+}
1.643 -+
1.644 -+/* (1) Create all dynamic (i.e. linker generated) sections that we may
1.645 -+ need during the link */
1.646 -+
1.647 -+static bfd_boolean
1.648 -+avr32_elf_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info)
1.649 -+{
1.650 -+ struct elf_avr32_link_hash_table *htab;
1.651 -+ flagword flags;
1.652 -+ const struct elf_backend_data *bed = get_elf_backend_data (dynobj);
1.653 -+
1.654 -+ pr_debug("(1) create dynamic sections\n");
1.655 -+
1.656 -+ htab = avr32_elf_hash_table(info);
1.657 -+ flags = bed->dynamic_sec_flags;
1.658 -+
1.659 -+ if (!avr32_elf_create_got_section (dynobj, info))
1.660 -+ return FALSE;
1.661 -+
1.662 -+ if (!htab->sstub)
1.663 -+ htab->sstub = create_dynamic_section(dynobj, ".stub",
1.664 -+ flags | SEC_READONLY | SEC_CODE, 2);
1.665 -+
1.666 -+ if (!htab->sstub)
1.667 -+ return FALSE;
1.668 -+
1.669 -+ return TRUE;
1.670 -+}
1.671 -+
1.672 -+/* (2) Go through all the relocs and count any potential GOT- or
1.673 -+ PLT-references to each symbol */
1.674 -+
1.675 -+static bfd_boolean
1.676 -+avr32_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec,
1.677 -+ const Elf_Internal_Rela *relocs)
1.678 -+{
1.679 -+ Elf_Internal_Shdr *symtab_hdr;
1.680 -+ struct elf_avr32_link_hash_table *htab;
1.681 -+ struct elf_link_hash_entry **sym_hashes;
1.682 -+ const Elf_Internal_Rela *rel, *rel_end;
1.683 -+ struct got_entry **local_got_ents;
1.684 -+ struct got_entry *got;
1.685 -+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
1.686 -+ asection *sgot;
1.687 -+ bfd *dynobj;
1.688 -+
1.689 -+ pr_debug("(2) check relocs for %s:<%s> (size 0x%lx)\n",
1.690 -+ abfd->filename, sec->name, sec->size);
1.691 -+
1.692 -+ if (info->relocatable)
1.693 -+ return TRUE;
1.694 -+
1.695 -+ dynobj = elf_hash_table(info)->dynobj;
1.696 -+ symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
1.697 -+ sym_hashes = elf_sym_hashes(abfd);
1.698 -+ htab = avr32_elf_hash_table(info);
1.699 -+ local_got_ents = elf_local_got_ents(abfd);
1.700 -+ sgot = htab->sgot;
1.701 -+
1.702 -+ rel_end = relocs + sec->reloc_count;
1.703 -+ for (rel = relocs; rel < rel_end; rel++)
1.704 -+ {
1.705 -+ unsigned long r_symndx, r_type;
1.706 -+ struct elf_avr32_link_hash_entry *h;
1.707 -+
1.708 -+ r_symndx = ELF32_R_SYM(rel->r_info);
1.709 -+ r_type = ELF32_R_TYPE(rel->r_info);
1.710 -+
1.711 -+ /* Local symbols use local_got_ents, while others store the same
1.712 -+ information in the hash entry */
1.713 -+ if (r_symndx < symtab_hdr->sh_info)
1.714 -+ {
1.715 -+ pr_debug(" (2a) processing local symbol %lu\n", r_symndx);
1.716 -+ h = NULL;
1.717 -+ }
1.718 -+ else
1.719 -+ {
1.720 -+ h = (struct elf_avr32_link_hash_entry *)
1.721 -+ sym_hashes[r_symndx - symtab_hdr->sh_info];
1.722 -+ while (h->root.type == bfd_link_hash_indirect
1.723 -+ || h->root.type == bfd_link_hash_warning)
1.724 -+ h = (struct elf_avr32_link_hash_entry *)h->root.root.u.i.link;
1.725 -+ pr_debug(" (2a) processing symbol %s\n", h->root.root.root.string);
1.726 -+ }
1.727 -+
1.728 -+ /* Some relocs require special sections to be created. */
1.729 -+ switch (r_type)
1.730 -+ {
1.731 -+ case R_AVR32_GOT32:
1.732 -+ case R_AVR32_GOT16:
1.733 -+ case R_AVR32_GOT8:
1.734 -+ case R_AVR32_GOT21S:
1.735 -+ case R_AVR32_GOT18SW:
1.736 -+ case R_AVR32_GOT16S:
1.737 -+ case R_AVR32_GOT7UW:
1.738 -+ case R_AVR32_LDA_GOT:
1.739 -+ case R_AVR32_GOTCALL:
1.740 -+ if (rel->r_addend)
1.741 -+ {
1.742 -+ if (info->callbacks->reloc_dangerous
1.743 -+ (info, _("Non-zero addend on GOT-relative relocation"),
1.744 -+ abfd, sec, rel->r_offset) == FALSE)
1.745 -+ return FALSE;
1.746 -+ }
1.747 -+ /* fall through */
1.748 -+ case R_AVR32_GOTPC:
1.749 -+ if (dynobj == NULL)
1.750 -+ elf_hash_table(info)->dynobj = dynobj = abfd;
1.751 -+ if (sgot == NULL && !avr32_elf_create_got_section(dynobj, info))
1.752 -+ return FALSE;
1.753 -+ break;
1.754 -+ case R_AVR32_32:
1.755 -+ /* We may need to create .rela.dyn later on. */
1.756 -+ if (dynobj == NULL
1.757 -+ && (info->shared || h != NULL)
1.758 -+ && (sec->flags & SEC_ALLOC))
1.759 -+ elf_hash_table(info)->dynobj = dynobj = abfd;
1.760 -+ break;
1.761 -+ }
1.762 -+
1.763 -+ if (h != NULL && r_type != R_AVR32_GOT18SW)
1.764 -+ h->no_fn_stub = TRUE;
1.765 -+
1.766 -+ switch (r_type)
1.767 -+ {
1.768 -+ case R_AVR32_GOT32:
1.769 -+ case R_AVR32_GOT16:
1.770 -+ case R_AVR32_GOT8:
1.771 -+ case R_AVR32_GOT21S:
1.772 -+ case R_AVR32_GOT18SW:
1.773 -+ case R_AVR32_GOT16S:
1.774 -+ case R_AVR32_GOT7UW:
1.775 -+ case R_AVR32_LDA_GOT:
1.776 -+ case R_AVR32_GOTCALL:
1.777 -+ if (h != NULL)
1.778 -+ {
1.779 -+ got = h->root.got.glist;
1.780 -+ if (!got)
1.781 -+ {
1.782 -+ got = bfd_zalloc(abfd, sizeof(struct got_entry));
1.783 -+ if (!got)
1.784 -+ return FALSE;
1.785 -+ h->root.got.glist = got;
1.786 -+ }
1.787 -+ }
1.788 -+ else
1.789 -+ {
1.790 -+ if (!local_got_ents)
1.791 -+ {
1.792 -+ bfd_size_type size;
1.793 -+ bfd_size_type i;
1.794 -+ struct got_entry *tmp_entry;
1.795 -+
1.796 -+ size = symtab_hdr->sh_info;
1.797 -+ size *= sizeof(struct got_entry *) + sizeof(struct got_entry);
1.798 -+ local_got_ents = bfd_zalloc(abfd, size);
1.799 -+ if (!local_got_ents)
1.800 -+ return FALSE;
1.801 -+
1.802 -+ elf_local_got_ents(abfd) = local_got_ents;
1.803 -+
1.804 -+ tmp_entry = (struct got_entry *)(local_got_ents
1.805 -+ + symtab_hdr->sh_info);
1.806 -+ for (i = 0; i < symtab_hdr->sh_info; i++)
1.807 -+ local_got_ents[i] = &tmp_entry[i];
1.808 -+ }
1.809 -+
1.810 -+ got = local_got_ents[r_symndx];
1.811 -+ }
1.812 -+
1.813 -+ got->refcount++;
1.814 -+ if (got->refcount > htab->nr_got_holes)
1.815 -+ htab->nr_got_holes = got->refcount;
1.816 -+ break;
1.817 -+
1.818 -+ case R_AVR32_32:
1.819 -+ if ((info->shared || h != NULL)
1.820 -+ && (sec->flags & SEC_ALLOC))
1.821 -+ {
1.822 -+ if (htab->srelgot == NULL)
1.823 -+ {
1.824 -+ htab->srelgot = create_dynamic_section(dynobj, ".rela.got",
1.825 -+ bed->dynamic_sec_flags
1.826 -+ | SEC_READONLY, 2);
1.827 -+ if (htab->srelgot == NULL)
1.828 -+ return FALSE;
1.829 -+ }
1.830 -+
1.831 -+ if (sec->flags & SEC_READONLY
1.832 -+ && !h->readonly_reloc_sec)
1.833 -+ {
1.834 -+ h->readonly_reloc_sec = sec;
1.835 -+ h->readonly_reloc_offset = rel->r_offset;
1.836 -+ }
1.837 -+
1.838 -+ if (h != NULL)
1.839 -+ {
1.840 -+ pr_debug("Non-GOT reference to symbol %s\n",
1.841 -+ h->root.root.root.string);
1.842 -+ h->possibly_dynamic_relocs++;
1.843 -+ }
1.844 -+ else
1.845 -+ {
1.846 -+ pr_debug("Non-GOT reference to local symbol %lu\n",
1.847 -+ r_symndx);
1.848 -+ htab->local_dynamic_relocs++;
1.849 -+ }
1.850 -+ }
1.851 -+
1.852 -+ break;
1.853 -+
1.854 -+ /* TODO: GNU_VTINHERIT and GNU_VTENTRY */
1.855 -+ }
1.856 -+ }
1.857 -+
1.858 -+ return TRUE;
1.859 -+}
1.860 -+
1.861 -+/* (3) Adjust a symbol defined by a dynamic object and referenced by a
1.862 -+ regular object. The current definition is in some section of the
1.863 -+ dynamic object, but we're not including those sections. We have to
1.864 -+ change the definition to something the rest of the link can
1.865 -+ understand. */
1.866 -+
1.867 -+static bfd_boolean
1.868 -+avr32_elf_adjust_dynamic_symbol(struct bfd_link_info *info,
1.869 -+ struct elf_link_hash_entry *h)
1.870 -+{
1.871 -+ struct elf_avr32_link_hash_table *htab;
1.872 -+ struct elf_avr32_link_hash_entry *havr;
1.873 -+ bfd *dynobj;
1.874 -+
1.875 -+ pr_debug("(3) adjust dynamic symbol %s\n", h->root.root.string);
1.876 -+
1.877 -+ htab = avr32_elf_hash_table(info);
1.878 -+ havr = (struct elf_avr32_link_hash_entry *)h;
1.879 -+ dynobj = elf_hash_table(info)->dynobj;
1.880 -+
1.881 -+ /* Make sure we know what is going on here. */
1.882 -+ BFD_ASSERT (dynobj != NULL
1.883 -+ && (h->u.weakdef != NULL
1.884 -+ || (h->def_dynamic
1.885 -+ && h->ref_regular
1.886 -+ && !h->def_regular)));
1.887 -+
1.888 -+ /* We don't want dynamic relocations in read-only sections. */
1.889 -+ if (havr->readonly_reloc_sec)
1.890 -+ {
1.891 -+ if (info->callbacks->reloc_dangerous
1.892 -+ (info, _("dynamic relocation in read-only section"),
1.893 -+ havr->readonly_reloc_sec->owner, havr->readonly_reloc_sec,
1.894 -+ havr->readonly_reloc_offset) == FALSE)
1.895 -+ return FALSE;
1.896 -+ }
1.897 -+
1.898 -+ /* If this is a function, create a stub if possible and set the
1.899 -+ symbol to the stub location. */
1.900 -+ if (0 && !havr->no_fn_stub)
1.901 -+ {
1.902 -+ if (!h->def_regular)
1.903 -+ {
1.904 -+ asection *s = htab->sstub;
1.905 -+
1.906 -+ BFD_ASSERT(s != NULL);
1.907 -+
1.908 -+ h->root.u.def.section = s;
1.909 -+ h->root.u.def.value = s->size;
1.910 -+ h->plt.offset = s->size;
1.911 -+ s->size += AVR32_FUNCTION_STUB_SIZE;
1.912 -+
1.913 -+ return TRUE;
1.914 -+ }
1.915 -+ }
1.916 -+ else if (h->type == STT_FUNC)
1.917 -+ {
1.918 -+ /* This will set the entry for this symbol in the GOT to 0, and
1.919 -+ the dynamic linker will take care of this. */
1.920 -+ h->root.u.def.value = 0;
1.921 -+ return TRUE;
1.922 -+ }
1.923 -+
1.924 -+ /* If this is a weak symbol, and there is a real definition, the
1.925 -+ processor independent code will have arranged for us to see the
1.926 -+ real definition first, and we can just use the same value. */
1.927 -+ if (h->u.weakdef != NULL)
1.928 -+ {
1.929 -+ BFD_ASSERT(h->u.weakdef->root.type == bfd_link_hash_defined
1.930 -+ || h->u.weakdef->root.type == bfd_link_hash_defweak);
1.931 -+ h->root.u.def.section = h->u.weakdef->root.u.def.section;
1.932 -+ h->root.u.def.value = h->u.weakdef->root.u.def.value;
1.933 -+ return TRUE;
1.934 -+ }
1.935 -+
1.936 -+ /* This is a reference to a symbol defined by a dynamic object which
1.937 -+ is not a function. */
1.938 -+
1.939 -+ return TRUE;
1.940 -+}
1.941 -+
1.942 -+
1.943 -+/* Garbage-collection of unused sections */
1.944 -+
1.945 -+static asection *
1.946 -+avr32_elf_gc_mark_hook(asection *sec,
1.947 -+ struct bfd_link_info *info ATTRIBUTE_UNUSED,
1.948 -+ Elf_Internal_Rela *rel,
1.949 -+ struct elf_link_hash_entry *h,
1.950 -+ Elf_Internal_Sym *sym)
1.951 -+{
1.952 -+ if (h)
1.953 -+ {
1.954 -+ switch (ELF32_R_TYPE(rel->r_info))
1.955 -+ {
1.956 -+ /* TODO: VTINHERIT/VTENTRY */
1.957 -+ default:
1.958 -+ switch (h->root.type)
1.959 -+ {
1.960 -+ case bfd_link_hash_defined:
1.961 -+ case bfd_link_hash_defweak:
1.962 -+ return h->root.u.def.section;
1.963 -+
1.964 -+ case bfd_link_hash_common:
1.965 -+ return h->root.u.c.p->section;
1.966 -+
1.967 -+ default:
1.968 -+ break;
1.969 -+ }
1.970 -+ }
1.971 -+ }
1.972 -+ else
1.973 -+ return bfd_section_from_elf_index(sec->owner, sym->st_shndx);
1.974 -+
1.975 -+ return NULL;
1.976 -+}
1.977 -+
1.978 -+/* Update the GOT entry reference counts for the section being removed. */
1.979 -+static bfd_boolean
1.980 -+avr32_elf_gc_sweep_hook(bfd *abfd,
1.981 -+ struct bfd_link_info *info ATTRIBUTE_UNUSED,
1.982 -+ asection *sec,
1.983 -+ const Elf_Internal_Rela *relocs)
1.984 -+{
1.985 -+ Elf_Internal_Shdr *symtab_hdr;
1.986 -+ struct elf_avr32_link_hash_entry **sym_hashes;
1.987 -+ struct got_entry **local_got_ents;
1.988 -+ const Elf_Internal_Rela *rel, *relend;
1.989 -+
1.990 -+ if (!(sec->flags & SEC_ALLOC))
1.991 -+ return TRUE;
1.992 -+
1.993 -+ symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
1.994 -+ sym_hashes = (struct elf_avr32_link_hash_entry **)elf_sym_hashes(abfd);
1.995 -+ local_got_ents = elf_local_got_ents(abfd);
1.996 -+
1.997 -+ relend = relocs + sec->reloc_count;
1.998 -+ for (rel = relocs; rel < relend; rel++)
1.999 -+ {
1.1000 -+ unsigned long r_symndx;
1.1001 -+ unsigned int r_type;
1.1002 -+ struct elf_avr32_link_hash_entry *h = NULL;
1.1003 -+
1.1004 -+ r_symndx = ELF32_R_SYM(rel->r_info);
1.1005 -+ if (r_symndx >= symtab_hdr->sh_info)
1.1006 -+ {
1.1007 -+ h = sym_hashes[r_symndx - symtab_hdr->sh_info];
1.1008 -+ while (h->root.root.type == bfd_link_hash_indirect
1.1009 -+ || h->root.root.type == bfd_link_hash_warning)
1.1010 -+ h = (struct elf_avr32_link_hash_entry *)h->root.root.u.i.link;
1.1011 -+ }
1.1012 -+
1.1013 -+ r_type = ELF32_R_TYPE(rel->r_info);
1.1014 -+
1.1015 -+ switch (r_type)
1.1016 -+ {
1.1017 -+ case R_AVR32_GOT32:
1.1018 -+ case R_AVR32_GOT16:
1.1019 -+ case R_AVR32_GOT8:
1.1020 -+ case R_AVR32_GOT21S:
1.1021 -+ case R_AVR32_GOT18SW:
1.1022 -+ case R_AVR32_GOT16S:
1.1023 -+ case R_AVR32_GOT7UW:
1.1024 -+ case R_AVR32_LDA_GOT:
1.1025 -+ case R_AVR32_GOTCALL:
1.1026 -+ if (h)
1.1027 -+ h->root.got.glist->refcount--;
1.1028 -+ else
1.1029 -+ local_got_ents[r_symndx]->refcount--;
1.1030 -+ break;
1.1031 -+
1.1032 -+ case R_AVR32_32:
1.1033 -+ if (info->shared || h)
1.1034 -+ {
1.1035 -+ if (h)
1.1036 -+ h->possibly_dynamic_relocs--;
1.1037 -+ else
1.1038 -+ avr32_elf_hash_table(info)->local_dynamic_relocs--;
1.1039 -+ }
1.1040 -+
1.1041 -+ default:
1.1042 -+ break;
1.1043 -+ }
1.1044 -+ }
1.1045 -+
1.1046 -+ return TRUE;
1.1047 -+}
1.1048 -+
1.1049 -+/* Sizing and refcounting of dynamic sections */
1.1050 -+
1.1051 -+static void
1.1052 -+insert_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got);
1.1053 -+static void
1.1054 -+unref_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got);
1.1055 -+static void
1.1056 -+ref_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got);
1.1057 -+static bfd_boolean
1.1058 -+assign_got_offsets(struct elf_avr32_link_hash_table *htab);
1.1059 -+static bfd_boolean
1.1060 -+allocate_dynrelocs(struct elf_link_hash_entry *h, void *_info);
1.1061 -+static bfd_boolean
1.1062 -+avr32_elf_size_dynamic_sections (bfd *output_bfd,
1.1063 -+ struct bfd_link_info *info);
1.1064 -+
1.1065 -+static void
1.1066 -+insert_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got)
1.1067 -+{
1.1068 -+ /* Any entries with got_refcount > htab->nr_got_holes end up in the
1.1069 -+ * last pigeonhole without any sorting. We expect the number of such
1.1070 -+ * entries to be small, so it is very unlikely to affect
1.1071 -+ * performance. */
1.1072 -+ int entry = got->refcount;
1.1073 -+
1.1074 -+ if (entry > htab->nr_got_holes)
1.1075 -+ entry = htab->nr_got_holes;
1.1076 -+
1.1077 -+ got->pprev = &htab->got_hole[entry];
1.1078 -+ got->next = htab->got_hole[entry];
1.1079 -+
1.1080 -+ if (got->next)
1.1081 -+ got->next->pprev = &got->next;
1.1082 -+
1.1083 -+ htab->got_hole[entry] = got;
1.1084 -+}
1.1085 -+
1.1086 -+/* Decrement the refcount of a GOT entry and update its position in
1.1087 -+ the pigeonhole array. */
1.1088 -+static void
1.1089 -+unref_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got)
1.1090 -+{
1.1091 -+ BFD_ASSERT(got->refcount > 0);
1.1092 -+
1.1093 -+ if (got->next)
1.1094 -+ got->next->pprev = got->pprev;
1.1095 -+
1.1096 -+ *(got->pprev) = got->next;
1.1097 -+ got->refcount--;
1.1098 -+ insert_got_entry(htab, got);
1.1099 -+}
1.1100 -+
1.1101 -+static void
1.1102 -+ref_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got)
1.1103 -+{
1.1104 -+ if (got->next)
1.1105 -+ got->next->pprev = got->pprev;
1.1106 -+
1.1107 -+ *(got->pprev) = got->next;
1.1108 -+ got->refcount++;
1.1109 -+ insert_got_entry(htab, got);
1.1110 -+
1.1111 -+ BFD_ASSERT(got->refcount > 0);
1.1112 -+}
1.1113 -+
1.1114 -+/* Assign offsets to all GOT entries we intend to keep. The entries
1.1115 -+ that are referenced most often are placed at low offsets so that we
1.1116 -+ can use compact instructions as much as possible.
1.1117 -+
1.1118 -+ Returns TRUE if any offsets or the total size of the GOT changed. */
1.1119 -+
1.1120 -+static bfd_boolean
1.1121 -+assign_got_offsets(struct elf_avr32_link_hash_table *htab)
1.1122 -+{
1.1123 -+ struct got_entry *got;
1.1124 -+ bfd_size_type got_size = 0;
1.1125 -+ bfd_boolean changed = FALSE;
1.1126 -+ bfd_signed_vma offset;
1.1127 -+ int i;
1.1128 -+
1.1129 -+ /* The GOT header provides the address of the DYNAMIC segment, so
1.1130 -+ we need that even if the GOT is otherwise empty. */
1.1131 -+ if (htab->root.dynamic_sections_created)
1.1132 -+ got_size = AVR32_GOT_HEADER_SIZE;
1.1133 -+
1.1134 -+ for (i = htab->nr_got_holes; i > 0; i--)
1.1135 -+ {
1.1136 -+ got = htab->got_hole[i];
1.1137 -+ while (got)
1.1138 -+ {
1.1139 -+ if (got->refcount > 0)
1.1140 -+ {
1.1141 -+ offset = got_size;
1.1142 -+ if (got->offset != offset)
1.1143 -+ {
1.1144 -+ RDBG("GOT offset changed: %ld -> %ld\n",
1.1145 -+ got->offset, offset);
1.1146 -+ changed = TRUE;
1.1147 -+ }
1.1148 -+ got->offset = offset;
1.1149 -+ got_size += 4;
1.1150 -+ }
1.1151 -+ got = got->next;
1.1152 -+ }
1.1153 -+ }
1.1154 -+
1.1155 -+ if (htab->sgot->size != got_size)
1.1156 -+ {
1.1157 -+ RDBG("GOT size changed: %lu -> %lu\n", htab->sgot->size,
1.1158 -+ got_size);
1.1159 -+ changed = TRUE;
1.1160 -+ }
1.1161 -+ htab->sgot->size = got_size;
1.1162 -+
1.1163 -+ RDBG("assign_got_offsets: total size %lu (%s)\n",
1.1164 -+ got_size, changed ? "changed" : "no change");
1.1165 -+
1.1166 -+ return changed;
1.1167 -+}
1.1168 -+
1.1169 -+static bfd_boolean
1.1170 -+allocate_dynrelocs(struct elf_link_hash_entry *h, void *_info)
1.1171 -+{
1.1172 -+ struct bfd_link_info *info = _info;
1.1173 -+ struct elf_avr32_link_hash_table *htab;
1.1174 -+ struct elf_avr32_link_hash_entry *havr;
1.1175 -+ struct got_entry *got;
1.1176 -+
1.1177 -+ pr_debug(" (4b) allocate_dynrelocs: %s\n", h->root.root.string);
1.1178 -+
1.1179 -+ if (h->root.type == bfd_link_hash_indirect)
1.1180 -+ return TRUE;
1.1181 -+
1.1182 -+ if (h->root.type == bfd_link_hash_warning)
1.1183 -+ /* When warning symbols are created, they **replace** the "real"
1.1184 -+ entry in the hash table, thus we never get to see the real
1.1185 -+ symbol in a hash traversal. So look at it now. */
1.1186 -+ h = (struct elf_link_hash_entry *) h->root.u.i.link;
1.1187 -+
1.1188 -+ htab = avr32_elf_hash_table(info);
1.1189 -+ havr = (struct elf_avr32_link_hash_entry *)h;
1.1190 -+
1.1191 -+ got = h->got.glist;
1.1192 -+
1.1193 -+ /* If got is NULL, the symbol is never referenced through the GOT */
1.1194 -+ if (got && got->refcount > 0)
1.1195 -+ {
1.1196 -+ insert_got_entry(htab, got);
1.1197 -+
1.1198 -+ /* Shared libraries need relocs for all GOT entries unless the
1.1199 -+ symbol is forced local or -Bsymbolic is used. Others need
1.1200 -+ relocs for everything that is not guaranteed to be defined in
1.1201 -+ a regular object. */
1.1202 -+ if ((info->shared
1.1203 -+ && !info->symbolic
1.1204 -+ && h->dynindx != -1)
1.1205 -+ || (htab->root.dynamic_sections_created
1.1206 -+ && h->def_dynamic
1.1207 -+ && !h->def_regular))
1.1208 -+ htab->srelgot->size += sizeof(Elf32_External_Rela);
1.1209 -+ }
1.1210 -+
1.1211 -+ if (havr->possibly_dynamic_relocs
1.1212 -+ && (info->shared
1.1213 -+ || (elf_hash_table(info)->dynamic_sections_created
1.1214 -+ && h->def_dynamic
1.1215 -+ && !h->def_regular)))
1.1216 -+ {
1.1217 -+ pr_debug("Allocating %d dynamic reloc against symbol %s...\n",
1.1218 -+ havr->possibly_dynamic_relocs, h->root.root.string);
1.1219 -+ htab->srelgot->size += (havr->possibly_dynamic_relocs
1.1220 -+ * sizeof(Elf32_External_Rela));
1.1221 -+ }
1.1222 -+
1.1223 -+ return TRUE;
1.1224 -+}
1.1225 -+
1.1226 -+/* (4) Calculate the sizes of the linker-generated sections and
1.1227 -+ allocate memory for them. */
1.1228 -+
1.1229 -+static bfd_boolean
1.1230 -+avr32_elf_size_dynamic_sections (bfd *output_bfd,
1.1231 -+ struct bfd_link_info *info)
1.1232 -+{
1.1233 -+ struct elf_avr32_link_hash_table *htab;
1.1234 -+ bfd *dynobj;
1.1235 -+ asection *s;
1.1236 -+ bfd *ibfd;
1.1237 -+ bfd_boolean relocs;
1.1238 -+
1.1239 -+ pr_debug("(4) size dynamic sections\n");
1.1240 -+
1.1241 -+ htab = avr32_elf_hash_table(info);
1.1242 -+ dynobj = htab->root.dynobj;
1.1243 -+ BFD_ASSERT(dynobj != NULL);
1.1244 -+
1.1245 -+ if (htab->root.dynamic_sections_created)
1.1246 -+ {
1.1247 -+ /* Initialize the contents of the .interp section to the name of
1.1248 -+ the dynamic loader */
1.1249 -+ if (info->executable)
1.1250 -+ {
1.1251 -+ s = bfd_get_section_by_name(dynobj, ".interp");
1.1252 -+ BFD_ASSERT(s != NULL);
1.1253 -+ s->size = sizeof(ELF_DYNAMIC_INTERPRETER);
1.1254 -+ s->contents = (unsigned char *)ELF_DYNAMIC_INTERPRETER;
1.1255 -+ }
1.1256 -+ }
1.1257 -+
1.1258 -+ if (htab->nr_got_holes > 0)
1.1259 -+ {
1.1260 -+ /* Allocate holes for the pigeonhole sort algorithm */
1.1261 -+ pr_debug("Highest GOT refcount: %d\n", htab->nr_got_holes);
1.1262 -+
1.1263 -+ /* Limit the memory usage by clipping the number of pigeonholes
1.1264 -+ * at a predefined maximum. All entries with a higher refcount
1.1265 -+ * will end up in the last pigeonhole. */
1.1266 -+ if (htab->nr_got_holes >= MAX_NR_GOT_HOLES)
1.1267 -+ {
1.1268 -+ htab->nr_got_holes = MAX_NR_GOT_HOLES - 1;
1.1269 -+
1.1270 -+ pr_debug("Limiting maximum number of GOT pigeonholes to %u\n",
1.1271 -+ htab->nr_got_holes);
1.1272 -+ }
1.1273 -+ htab->got_hole = bfd_zalloc(output_bfd,
1.1274 -+ sizeof(struct got_entry *)
1.1275 -+ * (htab->nr_got_holes + 1));
1.1276 -+ if (!htab->got_hole)
1.1277 -+ return FALSE;
1.1278 -+
1.1279 -+ /* Set up .got offsets for local syms. */
1.1280 -+ for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next)
1.1281 -+ {
1.1282 -+ struct got_entry **local_got;
1.1283 -+ struct got_entry **end_local_got;
1.1284 -+ Elf_Internal_Shdr *symtab_hdr;
1.1285 -+ bfd_size_type locsymcount;
1.1286 -+
1.1287 -+ pr_debug(" (4a) processing file %s...\n", ibfd->filename);
1.1288 -+
1.1289 -+ BFD_ASSERT(bfd_get_flavour(ibfd) == bfd_target_elf_flavour);
1.1290 -+
1.1291 -+ local_got = elf_local_got_ents(ibfd);
1.1292 -+ if (!local_got)
1.1293 -+ continue;
1.1294 -+
1.1295 -+ symtab_hdr = &elf_tdata(ibfd)->symtab_hdr;
1.1296 -+ locsymcount = symtab_hdr->sh_info;
1.1297 -+ end_local_got = local_got + locsymcount;
1.1298 -+
1.1299 -+ for (; local_got < end_local_got; ++local_got)
1.1300 -+ insert_got_entry(htab, *local_got);
1.1301 -+ }
1.1302 -+ }
1.1303 -+
1.1304 -+ /* Allocate global sym .got entries and space for global sym
1.1305 -+ dynamic relocs */
1.1306 -+ elf_link_hash_traverse(&htab->root, allocate_dynrelocs, info);
1.1307 -+
1.1308 -+ /* Now that we have sorted the GOT entries, we are ready to
1.1309 -+ assign offsets and determine the initial size of the GOT. */
1.1310 -+ if (htab->sgot)
1.1311 -+ assign_got_offsets(htab);
1.1312 -+
1.1313 -+ /* Allocate space for local sym dynamic relocs */
1.1314 -+ BFD_ASSERT(htab->local_dynamic_relocs == 0 || info->shared);
1.1315 -+ if (htab->local_dynamic_relocs)
1.1316 -+ htab->srelgot->size += (htab->local_dynamic_relocs
1.1317 -+ * sizeof(Elf32_External_Rela));
1.1318 -+
1.1319 -+ /* We now have determined the sizes of the various dynamic
1.1320 -+ sections. Allocate memory for them. */
1.1321 -+ relocs = FALSE;
1.1322 -+ for (s = dynobj->sections; s; s = s->next)
1.1323 -+ {
1.1324 -+ if ((s->flags & SEC_LINKER_CREATED) == 0)
1.1325 -+ continue;
1.1326 -+
1.1327 -+ if (s == htab->sgot
1.1328 -+ || s == htab->sstub)
1.1329 -+ {
1.1330 -+ /* Strip this section if we don't need it */
1.1331 -+ }
1.1332 -+ else if (strncmp (bfd_get_section_name(dynobj, s), ".rela", 5) == 0)
1.1333 -+ {
1.1334 -+ if (s->size != 0)
1.1335 -+ relocs = TRUE;
1.1336 -+
1.1337 -+ s->reloc_count = 0;
1.1338 -+ }
1.1339 -+ else
1.1340 -+ {
1.1341 -+ /* It's not one of our sections */
1.1342 -+ continue;
1.1343 -+ }
1.1344 -+
1.1345 -+ if (s->size == 0)
1.1346 -+ {
1.1347 -+ /* Strip unneeded sections */
1.1348 -+ pr_debug("Stripping section %s from output...\n", s->name);
1.1349 -+ /* deleted function in 2.17
1.1350 -+ _bfd_strip_section_from_output(info, s);
1.1351 -+ */
1.1352 -+ continue;
1.1353 -+ }
1.1354 -+
1.1355 -+ s->contents = bfd_zalloc(dynobj, s->size);
1.1356 -+ if (s->contents == NULL)
1.1357 -+ return FALSE;
1.1358 -+ }
1.1359 -+
1.1360 -+ if (htab->root.dynamic_sections_created)
1.1361 -+ {
1.1362 -+ /* Add some entries to the .dynamic section. We fill in the
1.1363 -+ values later, in sh_elf_finish_dynamic_sections, but we
1.1364 -+ must add the entries now so that we get the correct size for
1.1365 -+ the .dynamic section. The DT_DEBUG entry is filled in by the
1.1366 -+ dynamic linker and used by the debugger. */
1.1367 -+#define add_dynamic_entry(TAG, VAL) _bfd_elf_add_dynamic_entry(info, TAG, VAL)
1.1368 -+
1.1369 -+ if (!add_dynamic_entry(DT_PLTGOT, 0))
1.1370 -+ return FALSE;
1.1371 -+ if (!add_dynamic_entry(DT_AVR32_GOTSZ, 0))
1.1372 -+ return FALSE;
1.1373 -+
1.1374 -+ if (info->executable)
1.1375 -+ {
1.1376 -+ if (!add_dynamic_entry(DT_DEBUG, 0))
1.1377 -+ return FALSE;
1.1378 -+ }
1.1379 -+ if (relocs)
1.1380 -+ {
1.1381 -+ if (!add_dynamic_entry(DT_RELA, 0)
1.1382 -+ || !add_dynamic_entry(DT_RELASZ, 0)
1.1383 -+ || !add_dynamic_entry(DT_RELAENT,
1.1384 -+ sizeof(Elf32_External_Rela)))
1.1385 -+ return FALSE;
1.1386 -+ }
1.1387 -+ }
1.1388 -+#undef add_dynamic_entry
1.1389 -+
1.1390 -+ return TRUE;
1.1391 -+}
1.1392 -+
1.1393 -+
1.1394 -+/* Access to internal relocations, section contents and symbols.
1.1395 -+ (stolen from the xtensa port) */
1.1396 -+
1.1397 -+static Elf_Internal_Rela *
1.1398 -+retrieve_internal_relocs (bfd *abfd, asection *sec, bfd_boolean keep_memory);
1.1399 -+static void
1.1400 -+pin_internal_relocs (asection *sec, Elf_Internal_Rela *internal_relocs);
1.1401 -+static void
1.1402 -+release_internal_relocs (asection *sec, Elf_Internal_Rela *internal_relocs);
1.1403 -+static bfd_byte *
1.1404 -+retrieve_contents (bfd *abfd, asection *sec, bfd_boolean keep_memory);
1.1405 -+/*
1.1406 -+static void
1.1407 -+pin_contents (asection *sec, bfd_byte *contents);
1.1408 -+*/
1.1409 -+static void
1.1410 -+release_contents (asection *sec, bfd_byte *contents);
1.1411 -+static Elf_Internal_Sym *
1.1412 -+retrieve_local_syms (bfd *input_bfd, bfd_boolean keep_memory);
1.1413 -+/*
1.1414 -+static void
1.1415 -+pin_local_syms (bfd *input_bfd, Elf_Internal_Sym *isymbuf);
1.1416 -+*/
1.1417 -+static void
1.1418 -+release_local_syms (bfd *input_bfd, Elf_Internal_Sym *isymbuf);
1.1419 -+
1.1420 -+/* During relaxation, we need to modify relocations, section contents,
1.1421 -+ and symbol definitions, and we need to keep the original values from
1.1422 -+ being reloaded from the input files, i.e., we need to "pin" the
1.1423 -+ modified values in memory. We also want to continue to observe the
1.1424 -+ setting of the "keep-memory" flag. The following functions wrap the
1.1425 -+ standard BFD functions to take care of this for us. */
1.1426 -+
1.1427 -+static Elf_Internal_Rela *
1.1428 -+retrieve_internal_relocs (bfd *abfd, asection *sec, bfd_boolean keep_memory)
1.1429 -+{
1.1430 -+ /* _bfd_elf_link_read_relocs knows about caching, so no need for us
1.1431 -+ to be clever here. */
1.1432 -+ return _bfd_elf_link_read_relocs(abfd, sec, NULL, NULL, keep_memory);
1.1433 -+}
1.1434 -+
1.1435 -+static void
1.1436 -+pin_internal_relocs (asection *sec, Elf_Internal_Rela *internal_relocs)
1.1437 -+{
1.1438 -+ elf_section_data (sec)->relocs = internal_relocs;
1.1439 -+}
1.1440 -+
1.1441 -+static void
1.1442 -+release_internal_relocs (asection *sec, Elf_Internal_Rela *internal_relocs)
1.1443 -+{
1.1444 -+ if (internal_relocs
1.1445 -+ && elf_section_data (sec)->relocs != internal_relocs)
1.1446 -+ free (internal_relocs);
1.1447 -+}
1.1448 -+
1.1449 -+static bfd_byte *
1.1450 -+retrieve_contents (bfd *abfd, asection *sec, bfd_boolean keep_memory)
1.1451 -+{
1.1452 -+ bfd_byte *contents;
1.1453 -+ bfd_size_type sec_size;
1.1454 -+
1.1455 -+ sec_size = bfd_get_section_limit (abfd, sec);
1.1456 -+ contents = elf_section_data (sec)->this_hdr.contents;
1.1457 -+
1.1458 -+ if (contents == NULL && sec_size != 0)
1.1459 -+ {
1.1460 -+ if (!bfd_malloc_and_get_section (abfd, sec, &contents))
1.1461 -+ {
1.1462 -+ if (contents)
1.1463 -+ free (contents);
1.1464 -+ return NULL;
1.1465 -+ }
1.1466 -+ if (keep_memory)
1.1467 -+ elf_section_data (sec)->this_hdr.contents = contents;
1.1468 -+ }
1.1469 -+ return contents;
1.1470 -+}
1.1471 -+
1.1472 -+/*
1.1473 -+static void
1.1474 -+pin_contents (asection *sec, bfd_byte *contents)
1.1475 -+{
1.1476 -+ elf_section_data (sec)->this_hdr.contents = contents;
1.1477 -+}
1.1478 -+*/
1.1479 -+static void
1.1480 -+release_contents (asection *sec, bfd_byte *contents)
1.1481 -+{
1.1482 -+ if (contents && elf_section_data (sec)->this_hdr.contents != contents)
1.1483 -+ free (contents);
1.1484 -+}
1.1485 -+
1.1486 -+static Elf_Internal_Sym *
1.1487 -+retrieve_local_syms (bfd *input_bfd, bfd_boolean keep_memory)
1.1488 -+{
1.1489 -+ Elf_Internal_Shdr *symtab_hdr;
1.1490 -+ Elf_Internal_Sym *isymbuf;
1.1491 -+ size_t locsymcount;
1.1492 -+
1.1493 -+ symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
1.1494 -+ locsymcount = symtab_hdr->sh_info;
1.1495 -+
1.1496 -+ isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
1.1497 -+ if (isymbuf == NULL && locsymcount != 0)
1.1498 -+ {
1.1499 -+ isymbuf = bfd_elf_get_elf_syms (input_bfd, symtab_hdr, locsymcount, 0,
1.1500 -+ NULL, NULL, NULL);
1.1501 -+ if (isymbuf && keep_memory)
1.1502 -+ symtab_hdr->contents = (unsigned char *) isymbuf;
1.1503 -+ }
1.1504 -+
1.1505 -+ return isymbuf;
1.1506 -+}
1.1507 -+
1.1508 -+/*
1.1509 -+static void
1.1510 -+pin_local_syms (bfd *input_bfd, Elf_Internal_Sym *isymbuf)
1.1511 -+{
1.1512 -+ elf_tdata (input_bfd)->symtab_hdr.contents = (unsigned char *)isymbuf;
1.1513 -+}
1.1514 -+
1.1515 -+*/
1.1516 -+static void
1.1517 -+release_local_syms (bfd *input_bfd, Elf_Internal_Sym *isymbuf)
1.1518 -+{
1.1519 -+ if (isymbuf && (elf_tdata (input_bfd)->symtab_hdr.contents
1.1520 -+ != (unsigned char *)isymbuf))
1.1521 -+ free (isymbuf);
1.1522 -+}
1.1523 -+
1.1524 -+/* Data structures used during relaxation. */
1.1525 -+
1.1526 -+enum relax_state_id {
1.1527 -+ RS_ERROR = -1,
1.1528 -+ RS_NONE = 0,
1.1529 -+ RS_ALIGN,
1.1530 -+ RS_CPENT,
1.1531 -+ RS_PIC_CALL,
1.1532 -+ RS_PIC_MCALL,
1.1533 -+ RS_PIC_RCALL2,
1.1534 -+ RS_PIC_RCALL1,
1.1535 -+ RS_PIC_LDA,
1.1536 -+ RS_PIC_LDW4,
1.1537 -+ RS_PIC_LDW3,
1.1538 -+ RS_PIC_SUB5,
1.1539 -+ RS_NOPIC_MCALL,
1.1540 -+ RS_NOPIC_RCALL2,
1.1541 -+ RS_NOPIC_RCALL1,
1.1542 -+ RS_NOPIC_LDW4,
1.1543 -+ RS_NOPIC_LDDPC,
1.1544 -+ RS_NOPIC_SUB5,
1.1545 -+ RS_NOPIC_MOV2,
1.1546 -+ RS_NOPIC_MOV1,
1.1547 -+ RS_RCALL2,
1.1548 -+ RS_RCALL1,
1.1549 -+ RS_BRC2,
1.1550 -+ RS_BRC1,
1.1551 -+ RS_BRAL,
1.1552 -+ RS_RJMP,
1.1553 -+ RS_MAX,
1.1554 -+};
1.1555 -+
1.1556 -+enum reference_type {
1.1557 -+ REF_ABSOLUTE,
1.1558 -+ REF_PCREL,
1.1559 -+ REF_CPOOL,
1.1560 -+ REF_GOT,
1.1561 -+};
1.1562 -+
1.1563 -+struct relax_state
1.1564 -+{
1.1565 -+ const char *name;
1.1566 -+ enum relax_state_id id;
1.1567 -+ enum relax_state_id direct;
1.1568 -+ enum relax_state_id next;
1.1569 -+ enum relax_state_id prev;
1.1570 -+
1.1571 -+ enum reference_type reftype;
1.1572 -+
1.1573 -+ unsigned int r_type;
1.1574 -+
1.1575 -+ bfd_vma opcode;
1.1576 -+ bfd_vma opcode_mask;
1.1577 -+
1.1578 -+ bfd_signed_vma range_min;
1.1579 -+ bfd_signed_vma range_max;
1.1580 -+
1.1581 -+ bfd_size_type size;
1.1582 -+};
1.1583 -+
1.1584 -+/*
1.1585 -+ * This is for relocs that
1.1586 -+ * a) has an addend or is of type R_AVR32_DIFF32, and
1.1587 -+ * b) references a different section than it's in, and
1.1588 -+ * c) references a section that is relaxable
1.1589 -+ *
1.1590 -+ * as well as relocs that references the constant pool, in which case
1.1591 -+ * the add_frag member points to the frag containing the constant pool
1.1592 -+ * entry.
1.1593 -+ *
1.1594 -+ * Such relocs must be fixed up whenever we delete any code. Sections
1.1595 -+ * that don't have any relocs with all of the above properties don't
1.1596 -+ * have any additional reloc data, but sections that do will have
1.1597 -+ * additional data for all its relocs.
1.1598 -+ */
1.1599 -+struct avr32_reloc_data
1.1600 -+{
1.1601 -+ struct fragment *add_frag;
1.1602 -+ struct fragment *sub_frag;
1.1603 -+};
1.1604 -+
1.1605 -+/*
1.1606 -+ * A 'fragment' is a relaxable entity, that is, code may be added or
1.1607 -+ * deleted at the end of a fragment. When this happens, all subsequent
1.1608 -+ * fragments in the list will have their offsets updated.
1.1609 -+ */
1.1610 -+struct fragment
1.1611 -+{
1.1612 -+ enum relax_state_id state;
1.1613 -+ enum relax_state_id initial_state;
1.1614 -+
1.1615 -+ Elf_Internal_Rela *rela;
1.1616 -+ bfd_size_type size;
1.1617 -+ bfd_vma offset;
1.1618 -+ int size_adjust;
1.1619 -+ int offset_adjust;
1.1620 -+ bfd_boolean has_grown;
1.1621 -+
1.1622 -+ /* Only used by constant pool entries. When this drops to zero, the
1.1623 -+ frag is discarded (i.e. size_adjust is set to -4.) */
1.1624 -+ int refcount;
1.1625 -+};
1.1626 -+
1.1627 -+struct avr32_relax_data
1.1628 -+{
1.1629 -+ unsigned int frag_count;
1.1630 -+ struct fragment *frag;
1.1631 -+ struct avr32_reloc_data *reloc_data;
1.1632 -+
1.1633 -+ /* TRUE if this section has one or more relaxable relocations */
1.1634 -+ bfd_boolean is_relaxable;
1.1635 -+ unsigned int iteration;
1.1636 -+};
1.1637 -+
1.1638 -+struct avr32_section_data
1.1639 -+{
1.1640 -+ struct bfd_elf_section_data elf;
1.1641 -+ struct avr32_relax_data relax_data;
1.1642 -+};
1.1643 -+
1.1644 -+/* Relax state definitions */
1.1645 -+
1.1646 -+#define PIC_MOV2_OPCODE 0xe0600000
1.1647 -+#define PIC_MOV2_MASK 0xe1e00000
1.1648 -+#define PIC_MOV2_RANGE_MIN (-1048576 * 4)
1.1649 -+#define PIC_MOV2_RANGE_MAX (1048575 * 4)
1.1650 -+#define PIC_MCALL_OPCODE 0xf0160000
1.1651 -+#define PIC_MCALL_MASK 0xffff0000
1.1652 -+#define PIC_MCALL_RANGE_MIN (-131072)
1.1653 -+#define PIC_MCALL_RANGE_MAX (131068)
1.1654 -+#define RCALL2_OPCODE 0xe0a00000
1.1655 -+#define RCALL2_MASK 0xe1ef0000
1.1656 -+#define RCALL2_RANGE_MIN (-2097152)
1.1657 -+#define RCALL2_RANGE_MAX (2097150)
1.1658 -+#define RCALL1_OPCODE 0xc00c0000
1.1659 -+#define RCALL1_MASK 0xf00c0000
1.1660 -+#define RCALL1_RANGE_MIN (-1024)
1.1661 -+#define RCALL1_RANGE_MAX (1022)
1.1662 -+#define PIC_LDW4_OPCODE 0xecf00000
1.1663 -+#define PIC_LDW4_MASK 0xfff00000
1.1664 -+#define PIC_LDW4_RANGE_MIN (-32768)
1.1665 -+#define PIC_LDW4_RANGE_MAX (32767)
1.1666 -+#define PIC_LDW3_OPCODE 0x6c000000
1.1667 -+#define PIC_LDW3_MASK 0xfe000000
1.1668 -+#define PIC_LDW3_RANGE_MIN (0)
1.1669 -+#define PIC_LDW3_RANGE_MAX (124)
1.1670 -+#define SUB5_PC_OPCODE 0xfec00000
1.1671 -+#define SUB5_PC_MASK 0xfff00000
1.1672 -+#define SUB5_PC_RANGE_MIN (-32768)
1.1673 -+#define SUB5_PC_RANGE_MAX (32767)
1.1674 -+#define NOPIC_MCALL_OPCODE 0xf01f0000
1.1675 -+#define NOPIC_MCALL_MASK 0xffff0000
1.1676 -+#define NOPIC_MCALL_RANGE_MIN PIC_MCALL_RANGE_MIN
1.1677 -+#define NOPIC_MCALL_RANGE_MAX PIC_MCALL_RANGE_MAX
1.1678 -+#define NOPIC_LDW4_OPCODE 0xfef00000
1.1679 -+#define NOPIC_LDW4_MASK 0xfff00000
1.1680 -+#define NOPIC_LDW4_RANGE_MIN PIC_LDW4_RANGE_MIN
1.1681 -+#define NOPIC_LDW4_RANGE_MAX PIC_LDW4_RANGE_MAX
1.1682 -+#define LDDPC_OPCODE 0x48000000
1.1683 -+#define LDDPC_MASK 0xf8000000
1.1684 -+#define LDDPC_RANGE_MIN 0
1.1685 -+#define LDDPC_RANGE_MAX 508
1.1686 -+
1.1687 -+#define NOPIC_MOV2_OPCODE 0xe0600000
1.1688 -+#define NOPIC_MOV2_MASK 0xe1e00000
1.1689 -+#define NOPIC_MOV2_RANGE_MIN (-1048576)
1.1690 -+#define NOPIC_MOV2_RANGE_MAX (1048575)
1.1691 -+#define NOPIC_MOV1_OPCODE 0x30000000
1.1692 -+#define NOPIC_MOV1_MASK 0xf0000000
1.1693 -+#define NOPIC_MOV1_RANGE_MIN (-128)
1.1694 -+#define NOPIC_MOV1_RANGE_MAX (127)
1.1695 -+
1.1696 -+/* Only brc2 variants with cond[3] == 0 is considered, since the
1.1697 -+ others are not relaxable. bral is a special case and is handled
1.1698 -+ separately. */
1.1699 -+#define BRC2_OPCODE 0xe0800000
1.1700 -+#define BRC2_MASK 0xe1e80000
1.1701 -+#define BRC2_RANGE_MIN (-2097152)
1.1702 -+#define BRC2_RANGE_MAX (2097150)
1.1703 -+#define BRC1_OPCODE 0xc0000000
1.1704 -+#define BRC1_MASK 0xf0080000
1.1705 -+#define BRC1_RANGE_MIN (-256)
1.1706 -+#define BRC1_RANGE_MAX (254)
1.1707 -+#define BRAL_OPCODE 0xe08f0000
1.1708 -+#define BRAL_MASK 0xe1ef0000
1.1709 -+#define BRAL_RANGE_MIN BRC2_RANGE_MIN
1.1710 -+#define BRAL_RANGE_MAX BRC2_RANGE_MAX
1.1711 -+#define RJMP_OPCODE 0xc0080000
1.1712 -+#define RJMP_MASK 0xf00c0000
1.1713 -+#define RJMP_RANGE_MIN (-1024)
1.1714 -+#define RJMP_RANGE_MAX (1022)
1.1715 -+
1.1716 -+/* Define a relax state using the GOT */
1.1717 -+#define RG(id, dir, next, prev, r_type, opc, size) \
1.1718 -+ { "RS_"#id, RS_##id, RS_##dir, RS_##next, RS_##prev, REF_GOT, \
1.1719 -+ R_AVR32_##r_type, opc##_OPCODE, opc##_MASK, \
1.1720 -+ opc##_RANGE_MIN, opc##_RANGE_MAX, size }
1.1721 -+/* Define a relax state using the Constant Pool */
1.1722 -+#define RC(id, dir, next, prev, r_type, opc, size) \
1.1723 -+ { "RS_"#id, RS_##id, RS_##dir, RS_##next, RS_##prev, REF_CPOOL, \
1.1724 -+ R_AVR32_##r_type, opc##_OPCODE, opc##_MASK, \
1.1725 -+ opc##_RANGE_MIN, opc##_RANGE_MAX, size }
1.1726 -+
1.1727 -+/* Define a relax state using pc-relative direct reference */
1.1728 -+#define RP(id, dir, next, prev, r_type, opc, size) \
1.1729 -+ { "RS_"#id, RS_##id, RS_##dir, RS_##next, RS_##prev, REF_PCREL, \
1.1730 -+ R_AVR32_##r_type, opc##_OPCODE, opc##_MASK, \
1.1731 -+ opc##_RANGE_MIN, opc##_RANGE_MAX, size }
1.1732 -+
1.1733 -+/* Define a relax state using non-pc-relative direct reference */
1.1734 -+#define RD(id, dir, next, prev, r_type, opc, size) \
1.1735 -+ { "RS_"#id, RS_##id, RS_##dir, RS_##next, RS_##prev, REF_ABSOLUTE, \
1.1736 -+ R_AVR32_##r_type, opc##_OPCODE, opc##_MASK, \
1.1737 -+ opc##_RANGE_MIN, opc##_RANGE_MAX, size }
1.1738 -+
1.1739 -+/* Define a relax state that will be handled specially */
1.1740 -+#define RS(id, r_type, size) \
1.1741 -+ { "RS_"#id, RS_##id, RS_NONE, RS_NONE, RS_NONE, REF_ABSOLUTE, \
1.1742 -+ R_AVR32_##r_type, 0, 0, 0, 0, size }
1.1743 -+
1.1744 -+const struct relax_state relax_state[RS_MAX] = {
1.1745 -+ RS(NONE, NONE, 0),
1.1746 -+ RS(ALIGN, ALIGN, 0),
1.1747 -+ RS(CPENT, 32_CPENT, 4),
1.1748 -+
1.1749 -+ RG(PIC_CALL, PIC_RCALL1, PIC_MCALL, NONE, GOTCALL, PIC_MOV2, 10),
1.1750 -+ RG(PIC_MCALL, PIC_RCALL1, NONE, PIC_CALL, GOT18SW, PIC_MCALL, 4),
1.1751 -+ RP(PIC_RCALL2, NONE, PIC_RCALL1, PIC_MCALL, 22H_PCREL, RCALL2, 4),
1.1752 -+ RP(PIC_RCALL1, NONE, NONE, PIC_RCALL2, 11H_PCREL, RCALL1, 2),
1.1753 -+
1.1754 -+ RG(PIC_LDA, PIC_SUB5, PIC_LDW4, NONE, LDA_GOT, PIC_MOV2, 8),
1.1755 -+ RG(PIC_LDW4, PIC_SUB5, PIC_LDW3, PIC_LDA, GOT16S, PIC_LDW4, 4),
1.1756 -+ RG(PIC_LDW3, PIC_SUB5, NONE, PIC_LDW4, GOT7UW, PIC_LDW3, 2),
1.1757 -+ RP(PIC_SUB5, NONE, NONE, PIC_LDW3, 16N_PCREL, SUB5_PC, 4),
1.1758 -+
1.1759 -+ RC(NOPIC_MCALL, NOPIC_RCALL1, NONE, NONE, CPCALL, NOPIC_MCALL, 4),
1.1760 -+ RP(NOPIC_RCALL2, NONE, NOPIC_RCALL1, NOPIC_MCALL, 22H_PCREL, RCALL2, 4),
1.1761 -+ RP(NOPIC_RCALL1, NONE, NONE, NOPIC_RCALL2, 11H_PCREL, RCALL1, 2),
1.1762 -+
1.1763 -+ RC(NOPIC_LDW4, NOPIC_MOV1, NOPIC_LDDPC, NONE, 16_CP, NOPIC_LDW4, 4),
1.1764 -+ RC(NOPIC_LDDPC, NOPIC_MOV1, NONE, NOPIC_LDW4, 9W_CP, LDDPC, 2),
1.1765 -+ RP(NOPIC_SUB5, NOPIC_MOV1, NONE, NOPIC_LDDPC, 16N_PCREL, SUB5_PC, 4),
1.1766 -+ RD(NOPIC_MOV2, NONE, NOPIC_MOV1, NOPIC_SUB5, 21S, NOPIC_MOV2, 4),
1.1767 -+ RD(NOPIC_MOV1, NONE, NONE, NOPIC_MOV2, 8S, NOPIC_MOV1, 2),
1.1768 -+
1.1769 -+ RP(RCALL2, NONE, RCALL1, NONE, 22H_PCREL, RCALL2, 4),
1.1770 -+ RP(RCALL1, NONE, NONE, RCALL2, 11H_PCREL, RCALL1, 2),
1.1771 -+ RP(BRC2, NONE, BRC1, NONE, 22H_PCREL, BRC2, 4),
1.1772 -+ RP(BRC1, NONE, NONE, BRC2, 9H_PCREL, BRC1, 2),
1.1773 -+ RP(BRAL, NONE, RJMP, NONE, 22H_PCREL, BRAL, 4),
1.1774 -+ RP(RJMP, NONE, NONE, BRAL, 11H_PCREL, RJMP, 2),
1.1775 -+};
1.1776 -+
1.1777 -+static bfd_boolean
1.1778 -+avr32_elf_new_section_hook(bfd *abfd, asection *sec)
1.1779 -+{
1.1780 -+ struct avr32_section_data *sdata;
1.1781 -+
1.1782 -+ sdata = bfd_zalloc(abfd, sizeof(struct avr32_section_data));
1.1783 -+ if (!sdata)
1.1784 -+ return FALSE;
1.1785 -+
1.1786 -+ sec->used_by_bfd = sdata;
1.1787 -+ return _bfd_elf_new_section_hook(abfd, sec);
1.1788 -+}
1.1789 -+
1.1790 -+static struct avr32_relax_data *
1.1791 -+avr32_relax_data(asection *sec)
1.1792 -+{
1.1793 -+ struct avr32_section_data *sdata;
1.1794 -+
1.1795 -+ BFD_ASSERT(sec->used_by_bfd);
1.1796 -+
1.1797 -+ sdata = (struct avr32_section_data *)elf_section_data(sec);
1.1798 -+ return &sdata->relax_data;
1.1799 -+}
1.1800 -+
1.1801 -+/* Link-time relaxation */
1.1802 -+
1.1803 -+static bfd_boolean
1.1804 -+avr32_elf_relax_section(bfd *abfd, asection *sec,
1.1805 -+ struct bfd_link_info *info, bfd_boolean *again);
1.1806 -+
1.1807 -+enum relax_pass_id {
1.1808 -+ RELAX_PASS_SIZE_FRAGS,
1.1809 -+ RELAX_PASS_MOVE_DATA,
1.1810 -+};
1.1811 -+
1.1812 -+/* Stolen from the xtensa port */
1.1813 -+static int
1.1814 -+internal_reloc_compare (const void *ap, const void *bp)
1.1815 -+{
1.1816 -+ const Elf_Internal_Rela *a = (const Elf_Internal_Rela *) ap;
1.1817 -+ const Elf_Internal_Rela *b = (const Elf_Internal_Rela *) bp;
1.1818 -+
1.1819 -+ if (a->r_offset != b->r_offset)
1.1820 -+ return (a->r_offset - b->r_offset);
1.1821 -+
1.1822 -+ /* We don't need to sort on these criteria for correctness,
1.1823 -+ but enforcing a more strict ordering prevents unstable qsort
1.1824 -+ from behaving differently with different implementations.
1.1825 -+ Without the code below we get correct but different results
1.1826 -+ on Solaris 2.7 and 2.8. We would like to always produce the
1.1827 -+ same results no matter the host. */
1.1828 -+
1.1829 -+ if (a->r_info != b->r_info)
1.1830 -+ return (a->r_info - b->r_info);
1.1831 -+
1.1832 -+ return (a->r_addend - b->r_addend);
1.1833 -+}
1.1834 -+
1.1835 -+static enum relax_state_id
1.1836 -+get_pcrel22_relax_state(bfd *abfd, asection *sec, struct bfd_link_info *info,
1.1837 -+ const Elf_Internal_Rela *rela)
1.1838 -+{
1.1839 -+ bfd_byte *contents;
1.1840 -+ bfd_vma insn;
1.1841 -+ enum relax_state_id rs = RS_NONE;
1.1842 -+
1.1843 -+ contents = retrieve_contents(abfd, sec, info->keep_memory);
1.1844 -+ if (!contents)
1.1845 -+ return RS_ERROR;
1.1846 -+
1.1847 -+ insn = bfd_get_32(abfd, contents + rela->r_offset);
1.1848 -+ if ((insn & RCALL2_MASK) == RCALL2_OPCODE)
1.1849 -+ rs = RS_RCALL2;
1.1850 -+ else if ((insn & BRAL_MASK) == BRAL_OPCODE)
1.1851 -+ /* Optimizing bral -> rjmp gets us into all kinds of
1.1852 -+ trouble with jump tables. Better not do it. */
1.1853 -+ rs = RS_NONE;
1.1854 -+ else if ((insn & BRC2_MASK) == BRC2_OPCODE)
1.1855 -+ rs = RS_BRC2;
1.1856 -+
1.1857 -+ release_contents(sec, contents);
1.1858 -+
1.1859 -+ return rs;
1.1860 -+}
1.1861 -+
1.1862 -+static enum relax_state_id
1.1863 -+get_initial_relax_state(bfd *abfd, asection *sec, struct bfd_link_info *info,
1.1864 -+ const Elf_Internal_Rela *rela)
1.1865 -+{
1.1866 -+ switch (ELF_R_TYPE(rela->r_info))
1.1867 -+ {
1.1868 -+ case R_AVR32_GOTCALL:
1.1869 -+ return RS_PIC_CALL;
1.1870 -+ case R_AVR32_GOT18SW:
1.1871 -+ return RS_PIC_MCALL;
1.1872 -+ case R_AVR32_LDA_GOT:
1.1873 -+ return RS_PIC_LDA;
1.1874 -+ case R_AVR32_GOT16S:
1.1875 -+ return RS_PIC_LDW4;
1.1876 -+ case R_AVR32_CPCALL:
1.1877 -+ return RS_NOPIC_MCALL;
1.1878 -+ case R_AVR32_16_CP:
1.1879 -+ return RS_NOPIC_LDW4;
1.1880 -+ case R_AVR32_9W_CP:
1.1881 -+ return RS_NOPIC_LDDPC;
1.1882 -+ case R_AVR32_ALIGN:
1.1883 -+ return RS_ALIGN;
1.1884 -+ case R_AVR32_32_CPENT:
1.1885 -+ return RS_CPENT;
1.1886 -+ case R_AVR32_22H_PCREL:
1.1887 -+ return get_pcrel22_relax_state(abfd, sec, info, rela);
1.1888 -+ case R_AVR32_9H_PCREL:
1.1889 -+ return RS_BRC1;
1.1890 -+ default:
1.1891 -+ return RS_NONE;
1.1892 -+ }
1.1893 -+}
1.1894 -+
1.1895 -+static bfd_boolean
1.1896 -+reloc_is_cpool_ref(const Elf_Internal_Rela *rela)
1.1897 -+{
1.1898 -+ switch (ELF_R_TYPE(rela->r_info))
1.1899 -+ {
1.1900 -+ case R_AVR32_CPCALL:
1.1901 -+ case R_AVR32_16_CP:
1.1902 -+ case R_AVR32_9W_CP:
1.1903 -+ return TRUE;
1.1904 -+ default:
1.1905 -+ return FALSE;
1.1906 -+ }
1.1907 -+}
1.1908 -+
1.1909 -+static struct fragment *
1.1910 -+new_frag(bfd *abfd ATTRIBUTE_UNUSED, asection *sec,
1.1911 -+ struct avr32_relax_data *rd, enum relax_state_id state,
1.1912 -+ Elf_Internal_Rela *rela)
1.1913 -+{
1.1914 -+ struct fragment *frag;
1.1915 -+ bfd_size_type r_size;
1.1916 -+ bfd_vma r_offset;
1.1917 -+ unsigned int i = rd->frag_count;
1.1918 -+
1.1919 -+ BFD_ASSERT(state >= RS_NONE && state < RS_MAX);
1.1920 -+
1.1921 -+ rd->frag_count++;
1.1922 -+ frag = bfd_realloc(rd->frag, sizeof(struct fragment) * rd->frag_count);
1.1923 -+ if (!frag)
1.1924 -+ return NULL;
1.1925 -+ rd->frag = frag;
1.1926 -+
1.1927 -+ frag += i;
1.1928 -+ memset(frag, 0, sizeof(struct fragment));
1.1929 -+
1.1930 -+ if (state == RS_ALIGN)
1.1931 -+ r_size = (((rela->r_offset + (1 << rela->r_addend) - 1)
1.1932 -+ & ~((1 << rela->r_addend) - 1)) - rela->r_offset);
1.1933 -+ else
1.1934 -+ r_size = relax_state[state].size;
1.1935 -+
1.1936 -+ if (rela)
1.1937 -+ r_offset = rela->r_offset;
1.1938 -+ else
1.1939 -+ r_offset = sec->size;
1.1940 -+
1.1941 -+ if (i == 0)
1.1942 -+ {
1.1943 -+ frag->offset = 0;
1.1944 -+ frag->size = r_offset + r_size;
1.1945 -+ }
1.1946 -+ else
1.1947 -+ {
1.1948 -+ frag->offset = rd->frag[i - 1].offset + rd->frag[i - 1].size;
1.1949 -+ frag->size = r_offset + r_size - frag->offset;
1.1950 -+ }
1.1951 -+
1.1952 -+ if (state != RS_CPENT)
1.1953 -+ /* Make sure we don't discard this frag */
1.1954 -+ frag->refcount = 1;
1.1955 -+
1.1956 -+ frag->initial_state = frag->state = state;
1.1957 -+ frag->rela = rela;
1.1958 -+
1.1959 -+ return frag;
1.1960 -+}
1.1961 -+
1.1962 -+static struct fragment *
1.1963 -+find_frag(asection *sec, bfd_vma offset)
1.1964 -+{
1.1965 -+ struct fragment *first, *last;
1.1966 -+ struct avr32_relax_data *rd = avr32_relax_data(sec);
1.1967 -+
1.1968 -+ if (rd->frag_count == 0)
1.1969 -+ return NULL;
1.1970 -+
1.1971 -+ first = &rd->frag[0];
1.1972 -+ last = &rd->frag[rd->frag_count - 1];
1.1973 -+
1.1974 -+ /* This may be a reloc referencing the end of a section. The last
1.1975 -+ frag will never have a reloc associated with it, so its size will
1.1976 -+ never change, thus the offset adjustment of the last frag will
1.1977 -+ always be the same as the offset adjustment of the end of the
1.1978 -+ section. */
1.1979 -+ if (offset == sec->size)
1.1980 -+ {
1.1981 -+ BFD_ASSERT(last->offset + last->size == sec->size);
1.1982 -+ BFD_ASSERT(!last->rela);
1.1983 -+ return last;
1.1984 -+ }
1.1985 -+
1.1986 -+ while (first <= last)
1.1987 -+ {
1.1988 -+ struct fragment *mid;
1.1989 -+
1.1990 -+ mid = (last - first) / 2 + first;
1.1991 -+ if ((mid->offset + mid->size) <= offset)
1.1992 -+ first = mid + 1;
1.1993 -+ else if (mid->offset > offset)
1.1994 -+ last = mid - 1;
1.1995 -+ else
1.1996 -+ return mid;
1.1997 -+ }
1.1998 -+
1.1999 -+ return NULL;
1.2000 -+}
1.2001 -+
1.2002 -+/* Look through all relocs in a section and determine if any relocs
1.2003 -+ may be affected by relaxation in other sections. If so, allocate
1.2004 -+ an array of additional relocation data which links the affected
1.2005 -+ relocations to the frag(s) where the relaxation may occur.
1.2006 -+
1.2007 -+ This function also links cpool references to cpool entries and
1.2008 -+ increments the refcount of the latter when this happens. */
1.2009 -+
1.2010 -+static bfd_boolean
1.2011 -+allocate_reloc_data(bfd *abfd, asection *sec, Elf_Internal_Rela *relocs,
1.2012 -+ struct bfd_link_info *info)
1.2013 -+{
1.2014 -+ Elf_Internal_Shdr *symtab_hdr;
1.2015 -+ Elf_Internal_Sym *isymbuf = NULL;
1.2016 -+ struct avr32_relax_data *rd;
1.2017 -+ unsigned int i;
1.2018 -+ bfd_boolean ret = FALSE;
1.2019 -+
1.2020 -+ symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
1.2021 -+ rd = avr32_relax_data(sec);
1.2022 -+
1.2023 -+ RDBG("%s<%s>: allocate_reloc_data\n", abfd->filename, sec->name);
1.2024 -+
1.2025 -+ for (i = 0; i < sec->reloc_count; i++)
1.2026 -+ {
1.2027 -+ Elf_Internal_Rela *rel = &relocs[i];
1.2028 -+ asection *sym_sec;
1.2029 -+ unsigned long r_symndx;
1.2030 -+ bfd_vma sym_value;
1.2031 -+
1.2032 -+ if (!rel->r_addend && ELF_R_TYPE(rel->r_info) != R_AVR32_DIFF32
1.2033 -+ && !reloc_is_cpool_ref(rel))
1.2034 -+ continue;
1.2035 -+
1.2036 -+ r_symndx = ELF_R_SYM(rel->r_info);
1.2037 -+
1.2038 -+ if (r_symndx < symtab_hdr->sh_info)
1.2039 -+ {
1.2040 -+ Elf_Internal_Sym *isym;
1.2041 -+
1.2042 -+ if (!isymbuf)
1.2043 -+ isymbuf = retrieve_local_syms(abfd, info->keep_memory);
1.2044 -+ if (!isymbuf)
1.2045 -+ return FALSE;
1.2046 -+
1.2047 -+ isym = &isymbuf[r_symndx];
1.2048 -+ sym_sec = bfd_section_from_elf_index(abfd, isym->st_shndx);
1.2049 -+ sym_value = isym->st_value;
1.2050 -+ }
1.2051 -+ else
1.2052 -+ {
1.2053 -+ struct elf_link_hash_entry *h;
1.2054 -+
1.2055 -+ h = elf_sym_hashes(abfd)[r_symndx - symtab_hdr->sh_info];
1.2056 -+
1.2057 -+ while (h->root.type == bfd_link_hash_indirect
1.2058 -+ || h->root.type == bfd_link_hash_warning)
1.2059 -+ h = (struct elf_link_hash_entry *)h->root.u.i.link;
1.2060 -+
1.2061 -+ if (h->root.type != bfd_link_hash_defined
1.2062 -+ && h->root.type != bfd_link_hash_defweak)
1.2063 -+ continue;
1.2064 -+
1.2065 -+ sym_sec = h->root.u.def.section;
1.2066 -+ sym_value = h->root.u.def.value;
1.2067 -+ }
1.2068 -+
1.2069 -+ if (sym_sec && avr32_relax_data(sym_sec)->is_relaxable)
1.2070 -+ {
1.2071 -+ bfd_size_type size;
1.2072 -+ struct fragment *frag;
1.2073 -+
1.2074 -+ if (!rd->reloc_data)
1.2075 -+ {
1.2076 -+ size = sizeof(struct avr32_reloc_data) * sec->reloc_count;
1.2077 -+ rd->reloc_data = bfd_zalloc(abfd, size);
1.2078 -+ if (!rd->reloc_data)
1.2079 -+ goto out;
1.2080 -+ }
1.2081 -+
1.2082 -+ RDBG("[%3d] 0x%04lx: target: 0x%lx + 0x%lx",
1.2083 -+ i, rel->r_offset, sym_value, rel->r_addend);
1.2084 -+
1.2085 -+ frag = find_frag(sym_sec, sym_value + rel->r_addend);
1.2086 -+ BFD_ASSERT(frag);
1.2087 -+ rd->reloc_data[i].add_frag = frag;
1.2088 -+
1.2089 -+ RDBG(" -> %s<%s>:%04lx\n", sym_sec->owner->filename, sym_sec->name,
1.2090 -+ frag->rela ? frag->rela->r_offset : sym_sec->size);
1.2091 -+
1.2092 -+ if (reloc_is_cpool_ref(rel))
1.2093 -+ {
1.2094 -+ BFD_ASSERT(ELF_R_TYPE(frag->rela->r_info) == R_AVR32_32_CPENT);
1.2095 -+ frag->refcount++;
1.2096 -+ }
1.2097 -+
1.2098 -+ if (ELF_R_TYPE(rel->r_info) == R_AVR32_DIFF32)
1.2099 -+ {
1.2100 -+ bfd_byte *contents;
1.2101 -+ bfd_signed_vma diff;
1.2102 -+
1.2103 -+ contents = retrieve_contents(abfd, sec, info->keep_memory);
1.2104 -+ if (!contents)
1.2105 -+ goto out;
1.2106 -+
1.2107 -+ diff = bfd_get_signed_32(abfd, contents + rel->r_offset);
1.2108 -+ frag = find_frag(sym_sec, sym_value + rel->r_addend + diff);
1.2109 -+ BFD_ASSERT(frag);
1.2110 -+ rd->reloc_data[i].sub_frag = frag;
1.2111 -+
1.2112 -+ release_contents(sec, contents);
1.2113 -+ }
1.2114 -+ }
1.2115 -+ }
1.2116 -+
1.2117 -+ ret = TRUE;
1.2118 -+
1.2119 -+ out:
1.2120 -+ release_local_syms(abfd, isymbuf);
1.2121 -+ return ret;
1.2122 -+}
1.2123 -+
1.2124 -+static bfd_boolean
1.2125 -+global_sym_set_frag(struct elf_avr32_link_hash_entry *havr,
1.2126 -+ struct bfd_link_info *info ATTRIBUTE_UNUSED)
1.2127 -+{
1.2128 -+ struct fragment *frag;
1.2129 -+ asection *sec;
1.2130 -+
1.2131 -+ if (havr->root.root.type != bfd_link_hash_defined
1.2132 -+ && havr->root.root.type != bfd_link_hash_defweak)
1.2133 -+ return TRUE;
1.2134 -+
1.2135 -+ sec = havr->root.root.u.def.section;
1.2136 -+ if (bfd_is_const_section(sec)
1.2137 -+ || !avr32_relax_data(sec)->is_relaxable)
1.2138 -+ return TRUE;
1.2139 -+
1.2140 -+ frag = find_frag(sec, havr->root.root.u.def.value);
1.2141 -+ if (!frag)
1.2142 -+ {
1.2143 -+ unsigned int i;
1.2144 -+ struct avr32_relax_data *rd = avr32_relax_data(sec);
1.2145 -+
1.2146 -+ RDBG("In %s: No frag for %s <%s+%lu> (limit %lu)\n",
1.2147 -+ sec->owner->filename, havr->root.root.root.string,
1.2148 -+ sec->name, havr->root.root.u.def.value, sec->size);
1.2149 -+ for (i = 0; i < rd->frag_count; i++)
1.2150 -+ RDBG(" %8lu - %8lu\n", rd->frag[i].offset,
1.2151 -+ rd->frag[i].offset + rd->frag[i].size);
1.2152 -+ }
1.2153 -+ BFD_ASSERT(frag);
1.2154 -+
1.2155 -+ havr->sym_frag = frag;
1.2156 -+ return TRUE;
1.2157 -+}
1.2158 -+
1.2159 -+static bfd_boolean
1.2160 -+analyze_relocations(struct bfd_link_info *info)
1.2161 -+{
1.2162 -+ bfd *abfd;
1.2163 -+ asection *sec;
1.2164 -+
1.2165 -+ /* Divide all relaxable sections into fragments */
1.2166 -+ for (abfd = info->input_bfds; abfd; abfd = abfd->link_next)
1.2167 -+ {
1.2168 -+ if (!(elf_elfheader(abfd)->e_flags & EF_AVR32_LINKRELAX))
1.2169 -+ {
1.2170 -+ if (!(*info->callbacks->warning)
1.2171 -+ (info, _("input is not relaxable"), NULL, abfd, NULL, 0))
1.2172 -+ return FALSE;
1.2173 -+ continue;
1.2174 -+ }
1.2175 -+
1.2176 -+ for (sec = abfd->sections; sec; sec = sec->next)
1.2177 -+ {
1.2178 -+ struct avr32_relax_data *rd;
1.2179 -+ struct fragment *frag;
1.2180 -+ Elf_Internal_Rela *relocs;
1.2181 -+ unsigned int i;
1.2182 -+ bfd_boolean ret = TRUE;
1.2183 -+
1.2184 -+ if (!(sec->flags & SEC_RELOC) || sec->reloc_count == 0)
1.2185 -+ continue;
1.2186 -+
1.2187 -+ rd = avr32_relax_data(sec);
1.2188 -+
1.2189 -+ relocs = retrieve_internal_relocs(abfd, sec, info->keep_memory);
1.2190 -+ if (!relocs)
1.2191 -+ return FALSE;
1.2192 -+
1.2193 -+ qsort(relocs, sec->reloc_count, sizeof(Elf_Internal_Rela),
1.2194 -+ internal_reloc_compare);
1.2195 -+
1.2196 -+ for (i = 0; i < sec->reloc_count; i++)
1.2197 -+ {
1.2198 -+ enum relax_state_id state;
1.2199 -+
1.2200 -+ ret = FALSE;
1.2201 -+ state = get_initial_relax_state(abfd, sec, info, &relocs[i]);
1.2202 -+ if (state == RS_ERROR)
1.2203 -+ break;
1.2204 -+
1.2205 -+ if (state)
1.2206 -+ {
1.2207 -+ frag = new_frag(abfd, sec, rd, state, &relocs[i]);
1.2208 -+ if (!frag)
1.2209 -+ break;
1.2210 -+
1.2211 -+ pin_internal_relocs(sec, relocs);
1.2212 -+ rd->is_relaxable = TRUE;
1.2213 -+ }
1.2214 -+
1.2215 -+ ret = TRUE;
1.2216 -+ }
1.2217 -+
1.2218 -+ release_internal_relocs(sec, relocs);
1.2219 -+ if (!ret)
1.2220 -+ return ret;
1.2221 -+
1.2222 -+ if (rd->is_relaxable)
1.2223 -+ {
1.2224 -+ frag = new_frag(abfd, sec, rd, RS_NONE, NULL);
1.2225 -+ if (!frag)
1.2226 -+ return FALSE;
1.2227 -+ }
1.2228 -+ }
1.2229 -+ }
1.2230 -+
1.2231 -+ /* Link each global symbol to the fragment where it's defined. */
1.2232 -+ elf_link_hash_traverse(elf_hash_table(info), global_sym_set_frag, info);
1.2233 -+
1.2234 -+ /* Do the same for local symbols. */
1.2235 -+ for (abfd = info->input_bfds; abfd; abfd = abfd->link_next)
1.2236 -+ {
1.2237 -+ Elf_Internal_Sym *isymbuf, *isym;
1.2238 -+ struct fragment **local_sym_frag;
1.2239 -+ unsigned int i, sym_count;
1.2240 -+
1.2241 -+ sym_count = elf_tdata(abfd)->symtab_hdr.sh_info;
1.2242 -+ if (sym_count == 0)
1.2243 -+ continue;
1.2244 -+
1.2245 -+ local_sym_frag = bfd_zalloc(abfd, sym_count * sizeof(struct fragment *));
1.2246 -+ if (!local_sym_frag)
1.2247 -+ return FALSE;
1.2248 -+ elf_tdata(abfd)->local_sym_frag = local_sym_frag;
1.2249 -+
1.2250 -+ isymbuf = retrieve_local_syms(abfd, info->keep_memory);
1.2251 -+ if (!isymbuf)
1.2252 -+ return FALSE;
1.2253 -+
1.2254 -+ for (i = 0; i < sym_count; i++)
1.2255 -+ {
1.2256 -+ struct avr32_relax_data *rd;
1.2257 -+ struct fragment *frag;
1.2258 -+ asection *sec;
1.2259 -+
1.2260 -+ isym = &isymbuf[i];
1.2261 -+
1.2262 -+ sec = bfd_section_from_elf_index(abfd, isym->st_shndx);
1.2263 -+ if (!sec)
1.2264 -+ continue;
1.2265 -+
1.2266 -+ rd = avr32_relax_data(sec);
1.2267 -+ if (!rd->is_relaxable)
1.2268 -+ continue;
1.2269 -+
1.2270 -+ frag = find_frag(sec, isym->st_value);
1.2271 -+ BFD_ASSERT(frag);
1.2272 -+
1.2273 -+ local_sym_frag[i] = frag;
1.2274 -+ }
1.2275 -+
1.2276 -+ release_local_syms(abfd, isymbuf);
1.2277 -+ }
1.2278 -+
1.2279 -+ /* And again for relocs with addends and constant pool references */
1.2280 -+ for (abfd = info->input_bfds; abfd; abfd = abfd->link_next)
1.2281 -+ for (sec = abfd->sections; sec; sec = sec->next)
1.2282 -+ {
1.2283 -+ Elf_Internal_Rela *relocs;
1.2284 -+ bfd_boolean ret;
1.2285 -+
1.2286 -+ if (!(sec->flags & SEC_RELOC) || sec->reloc_count == 0)
1.2287 -+ continue;
1.2288 -+
1.2289 -+ relocs = retrieve_internal_relocs(abfd, sec, info->keep_memory);
1.2290 -+ if (!relocs)
1.2291 -+ return FALSE;
1.2292 -+
1.2293 -+ ret = allocate_reloc_data(abfd, sec, relocs, info);
1.2294 -+
1.2295 -+ release_internal_relocs(sec, relocs);
1.2296 -+ if (ret == FALSE)
1.2297 -+ return ret;
1.2298 -+ }
1.2299 -+
1.2300 -+ return TRUE;
1.2301 -+}
1.2302 -+
1.2303 -+static bfd_boolean
1.2304 -+rs_is_good_enough(const struct relax_state *rs, struct fragment *frag,
1.2305 -+ bfd_vma symval, bfd_vma addr, struct got_entry *got,
1.2306 -+ struct avr32_reloc_data *ind_data,
1.2307 -+ bfd_signed_vma offset_adjust)
1.2308 -+{
1.2309 -+ bfd_signed_vma target = 0;
1.2310 -+
1.2311 -+ switch (rs->reftype)
1.2312 -+ {
1.2313 -+ case REF_ABSOLUTE:
1.2314 -+ target = symval;
1.2315 -+ break;
1.2316 -+ case REF_PCREL:
1.2317 -+ target = symval - addr;
1.2318 -+ break;
1.2319 -+ case REF_CPOOL:
1.2320 -+ /* cpool frags are always in the same section and always after
1.2321 -+ all frags referring to it. So it's always correct to add in
1.2322 -+ offset_adjust here. */
1.2323 -+ target = (ind_data->add_frag->offset + ind_data->add_frag->offset_adjust
1.2324 -+ + offset_adjust - frag->offset - frag->offset_adjust);
1.2325 -+ break;
1.2326 -+ case REF_GOT:
1.2327 -+ target = got->offset;
1.2328 -+ break;
1.2329 -+ default:
1.2330 -+ abort();
1.2331 -+ }
1.2332 -+
1.2333 -+ if (target >= rs->range_min && target <= rs->range_max)
1.2334 -+ return TRUE;
1.2335 -+ else
1.2336 -+ return FALSE;
1.2337 -+}
1.2338 -+
1.2339 -+static bfd_boolean
1.2340 -+avr32_size_frags(bfd *abfd, asection *sec, struct bfd_link_info *info)
1.2341 -+{
1.2342 -+ struct elf_avr32_link_hash_table *htab;
1.2343 -+ struct avr32_relax_data *rd;
1.2344 -+ Elf_Internal_Shdr *symtab_hdr;
1.2345 -+ Elf_Internal_Rela *relocs = NULL;
1.2346 -+ Elf_Internal_Sym *isymbuf = NULL;
1.2347 -+ struct got_entry **local_got_ents;
1.2348 -+ struct fragment **local_sym_frag;
1.2349 -+ bfd_boolean ret = FALSE;
1.2350 -+ bfd_signed_vma delta = 0;
1.2351 -+ unsigned int i;
1.2352 -+
1.2353 -+ htab = avr32_elf_hash_table(info);
1.2354 -+ rd = avr32_relax_data(sec);
1.2355 -+
1.2356 -+ if (sec == htab->sgot)
1.2357 -+ {
1.2358 -+ RDBG("Relaxing GOT section (vma: 0x%lx)\n",
1.2359 -+ sec->output_section->vma + sec->output_offset);
1.2360 -+ if (assign_got_offsets(htab))
1.2361 -+ htab->repeat_pass = TRUE;
1.2362 -+ return TRUE;
1.2363 -+ }
1.2364 -+
1.2365 -+ if (!rd->is_relaxable)
1.2366 -+ return TRUE;
1.2367 -+
1.2368 -+ if (!sec->rawsize)
1.2369 -+ sec->rawsize = sec->size;
1.2370 -+
1.2371 -+ symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
1.2372 -+ relocs = retrieve_internal_relocs(abfd, sec, info->keep_memory);
1.2373 -+ if (!relocs)
1.2374 -+ goto out;
1.2375 -+
1.2376 -+ isymbuf = retrieve_local_syms(abfd, info->keep_memory);
1.2377 -+ if (!isymbuf)
1.2378 -+ goto out;
1.2379 -+
1.2380 -+ local_got_ents = elf_local_got_ents(abfd);
1.2381 -+ local_sym_frag = elf_tdata(abfd)->local_sym_frag;
1.2382 -+
1.2383 -+ RDBG("size_frags: %s<%s>\n vma: 0x%08lx, size: 0x%08lx\n",
1.2384 -+ abfd->filename, sec->name,
1.2385 -+ sec->output_section->vma + sec->output_offset, sec->size);
1.2386 -+
1.2387 -+ for (i = 0; i < rd->frag_count; i++)
1.2388 -+ {
1.2389 -+ struct fragment *frag = &rd->frag[i];
1.2390 -+ struct avr32_reloc_data *r_data = NULL, *ind_data = NULL;
1.2391 -+ const struct relax_state *state, *next_state;
1.2392 -+ struct fragment *target_frag = NULL;
1.2393 -+ asection *sym_sec = NULL;
1.2394 -+ Elf_Internal_Rela *rela;
1.2395 -+ struct got_entry *got;
1.2396 -+ bfd_vma symval, r_offset, addend, addr;
1.2397 -+ bfd_signed_vma size_adjust = 0, distance;
1.2398 -+ unsigned long r_symndx;
1.2399 -+ bfd_boolean defined = TRUE, dynamic = FALSE;
1.2400 -+ unsigned char sym_type;
1.2401 -+
1.2402 -+ frag->offset_adjust += delta;
1.2403 -+ state = next_state = &relax_state[frag->state];
1.2404 -+ rela = frag->rela;
1.2405 -+
1.2406 -+ BFD_ASSERT(state->id == frag->state);
1.2407 -+
1.2408 -+ RDBG(" 0x%04lx%c%d: %s [size %ld]", rela ? rela->r_offset : sec->rawsize,
1.2409 -+ (frag->offset_adjust < 0)?'-':'+',
1.2410 -+ abs(frag->offset_adjust), state->name, state->size);
1.2411 -+
1.2412 -+ if (!rela)
1.2413 -+ {
1.2414 -+ RDBG(": no reloc, ignoring\n");
1.2415 -+ continue;
1.2416 -+ }
1.2417 -+
1.2418 -+ BFD_ASSERT((unsigned int)(rela - relocs) < sec->reloc_count);
1.2419 -+ BFD_ASSERT(state != RS_NONE);
1.2420 -+
1.2421 -+ r_offset = rela->r_offset + frag->offset_adjust;
1.2422 -+ addr = sec->output_section->vma + sec->output_offset + r_offset;
1.2423 -+
1.2424 -+ switch (frag->state)
1.2425 -+ {
1.2426 -+ case RS_ALIGN:
1.2427 -+ size_adjust = ((addr + (1 << rela->r_addend) - 1)
1.2428 -+ & ~((1 << rela->r_addend) - 1));
1.2429 -+ size_adjust -= (sec->output_section->vma + sec->output_offset
1.2430 -+ + frag->offset + frag->offset_adjust
1.2431 -+ + frag->size + frag->size_adjust);
1.2432 -+
1.2433 -+ RDBG(": adjusting size %lu -> %lu\n", frag->size + frag->size_adjust,
1.2434 -+ frag->size + frag->size_adjust + size_adjust);
1.2435 -+ break;
1.2436 -+
1.2437 -+ case RS_CPENT:
1.2438 -+ if (frag->refcount == 0 && frag->size_adjust == 0)
1.2439 -+ {
1.2440 -+ RDBG(": discarding frag\n");
1.2441 -+ size_adjust = -4;
1.2442 -+ }
1.2443 -+ else if (frag->refcount > 0 && frag->size_adjust < 0)
1.2444 -+ {
1.2445 -+ RDBG(": un-discarding frag\n");
1.2446 -+ size_adjust = 4;
1.2447 -+ }
1.2448 -+ break;
1.2449 -+
1.2450 -+ default:
1.2451 -+ if (rd->reloc_data)
1.2452 -+ r_data = &rd->reloc_data[frag->rela - relocs];
1.2453 -+
1.2454 -+ /* If this is a cpool reference, we want the symbol that the
1.2455 -+ cpool entry refers to, not the symbol for the cpool entry
1.2456 -+ itself, as we already know what frag it's in. */
1.2457 -+ if (relax_state[frag->initial_state].reftype == REF_CPOOL)
1.2458 -+ {
1.2459 -+ Elf_Internal_Rela *irela = r_data->add_frag->rela;
1.2460 -+
1.2461 -+ r_symndx = ELF_R_SYM(irela->r_info);
1.2462 -+ addend = irela->r_addend;
1.2463 -+
1.2464 -+ /* The constant pool must be in the same section as the
1.2465 -+ reloc referring to it. */
1.2466 -+ BFD_ASSERT((unsigned long)(irela - relocs) < sec->reloc_count);
1.2467 -+
1.2468 -+ ind_data = r_data;
1.2469 -+ r_data = &rd->reloc_data[irela - relocs];
1.2470 -+ }
1.2471 -+ else
1.2472 -+ {
1.2473 -+ r_symndx = ELF_R_SYM(rela->r_info);
1.2474 -+ addend = rela->r_addend;
1.2475 -+ }
1.2476 -+
1.2477 -+ /* Get the value of the symbol referred to by the reloc. */
1.2478 -+ if (r_symndx < symtab_hdr->sh_info)
1.2479 -+ {
1.2480 -+ Elf_Internal_Sym *isym;
1.2481 -+
1.2482 -+ isym = isymbuf + r_symndx;
1.2483 -+ symval = 0;
1.2484 -+
1.2485 -+ RDBG(" local sym %lu: ", r_symndx);
1.2486 -+
1.2487 -+ if (isym->st_shndx == SHN_UNDEF)
1.2488 -+ defined = FALSE;
1.2489 -+ else if (isym->st_shndx == SHN_ABS)
1.2490 -+ sym_sec = bfd_abs_section_ptr;
1.2491 -+ else if (isym->st_shndx == SHN_COMMON)
1.2492 -+ sym_sec = bfd_com_section_ptr;
1.2493 -+ else
1.2494 -+ sym_sec = bfd_section_from_elf_index(abfd, isym->st_shndx);
1.2495 -+
1.2496 -+ symval = isym->st_value;
1.2497 -+ sym_type = ELF_ST_TYPE(isym->st_info);
1.2498 -+ target_frag = local_sym_frag[r_symndx];
1.2499 -+
1.2500 -+ if (local_got_ents)
1.2501 -+ got = local_got_ents[r_symndx];
1.2502 -+ else
1.2503 -+ got = NULL;
1.2504 -+ }
1.2505 -+ else
1.2506 -+ {
1.2507 -+ /* Global symbol */
1.2508 -+ unsigned long index;
1.2509 -+ struct elf_link_hash_entry *h;
1.2510 -+ struct elf_avr32_link_hash_entry *havr;
1.2511 -+
1.2512 -+ index = r_symndx - symtab_hdr->sh_info;
1.2513 -+ h = elf_sym_hashes(abfd)[index];
1.2514 -+ BFD_ASSERT(h != NULL);
1.2515 -+
1.2516 -+ while (h->root.type == bfd_link_hash_indirect
1.2517 -+ || h->root.type == bfd_link_hash_warning)
1.2518 -+ h = (struct elf_link_hash_entry *)h->root.u.i.link;
1.2519 -+
1.2520 -+ havr = (struct elf_avr32_link_hash_entry *)h;
1.2521 -+ got = h->got.glist;
1.2522 -+
1.2523 -+ symval = 0;
1.2524 -+
1.2525 -+ RDBG(" %s: ", h->root.root.string);
1.2526 -+
1.2527 -+ if (h->root.type != bfd_link_hash_defined
1.2528 -+ && h->root.type != bfd_link_hash_defweak)
1.2529 -+ {
1.2530 -+ RDBG("(undef)");
1.2531 -+ defined = FALSE;
1.2532 -+ }
1.2533 -+ else if ((info->shared && !info->symbolic && h->dynindx != -1)
1.2534 -+ || (htab->root.dynamic_sections_created
1.2535 -+ && h->def_dynamic && !h->def_regular))
1.2536 -+ {
1.2537 -+ RDBG("(dynamic)");
1.2538 -+ dynamic = TRUE;
1.2539 -+ sym_sec = h->root.u.def.section;
1.2540 -+ }
1.2541 -+ else
1.2542 -+ {
1.2543 -+ sym_sec = h->root.u.def.section;
1.2544 -+ symval = h->root.u.def.value;
1.2545 -+ target_frag = havr->sym_frag;
1.2546 -+ }
1.2547 -+
1.2548 -+ sym_type = h->type;
1.2549 -+ }
1.2550 -+
1.2551 -+ /* Thanks to elf32-ppc for this one. */
1.2552 -+ if (sym_sec && sym_sec->sec_info_type == ELF_INFO_TYPE_MERGE)
1.2553 -+ {
1.2554 -+ /* At this stage in linking, no SEC_MERGE symbol has been
1.2555 -+ adjusted, so all references to such symbols need to be
1.2556 -+ passed through _bfd_merged_section_offset. (Later, in
1.2557 -+ relocate_section, all SEC_MERGE symbols *except* for
1.2558 -+ section symbols have been adjusted.)
1.2559 -+
1.2560 -+ SEC_MERGE sections are not relaxed by us, as they
1.2561 -+ shouldn't contain any code. */
1.2562 -+
1.2563 -+ BFD_ASSERT(!target_frag && !(r_data && r_data->add_frag));
1.2564 -+
1.2565 -+ /* gas may reduce relocations against symbols in SEC_MERGE
1.2566 -+ sections to a relocation against the section symbol when
1.2567 -+ the original addend was zero. When the reloc is against
1.2568 -+ a section symbol we should include the addend in the
1.2569 -+ offset passed to _bfd_merged_section_offset, since the
1.2570 -+ location of interest is the original symbol. On the
1.2571 -+ other hand, an access to "sym+addend" where "sym" is not
1.2572 -+ a section symbol should not include the addend; Such an
1.2573 -+ access is presumed to be an offset from "sym"; The
1.2574 -+ location of interest is just "sym". */
1.2575 -+ RDBG("\n MERGE: %s: 0x%lx+0x%lx+0x%lx -> ",
1.2576 -+ (sym_type == STT_SECTION)?"section":"not section",
1.2577 -+ sym_sec->output_section->vma + sym_sec->output_offset,
1.2578 -+ symval, addend);
1.2579 -+
1.2580 -+ if (sym_type == STT_SECTION)
1.2581 -+ symval += addend;
1.2582 -+
1.2583 -+ symval = (_bfd_merged_section_offset
1.2584 -+ (abfd, &sym_sec,
1.2585 -+ elf_section_data(sym_sec)->sec_info, symval));
1.2586 -+
1.2587 -+ if (sym_type != STT_SECTION)
1.2588 -+ symval += addend;
1.2589 -+ }
1.2590 -+ else
1.2591 -+ symval += addend;
1.2592 -+
1.2593 -+ if (defined && !dynamic)
1.2594 -+ {
1.2595 -+ RDBG("0x%lx+0x%lx",
1.2596 -+ sym_sec->output_section->vma + sym_sec->output_offset,
1.2597 -+ symval);
1.2598 -+ symval += sym_sec->output_section->vma + sym_sec->output_offset;
1.2599 -+ }
1.2600 -+
1.2601 -+ if (r_data && r_data->add_frag)
1.2602 -+ /* If the add_frag pointer is set, it means that this reloc
1.2603 -+ has an addend that may be affected by relaxation. */
1.2604 -+ target_frag = r_data->add_frag;
1.2605 -+
1.2606 -+ if (target_frag)
1.2607 -+ {
1.2608 -+ symval += target_frag->offset_adjust;
1.2609 -+
1.2610 -+ /* If target_frag comes after this frag in the same
1.2611 -+ section, we should assume that it will be moved by
1.2612 -+ the same amount we are. */
1.2613 -+ if ((target_frag - rd->frag) < (int)rd->frag_count
1.2614 -+ && target_frag > frag)
1.2615 -+ symval += delta;
1.2616 -+ }
1.2617 -+
1.2618 -+ distance = symval - addr;
1.2619 -+
1.2620 -+ /* First, try to make a direct reference. If the symbol is
1.2621 -+ dynamic or undefined, we must take care not to change its
1.2622 -+ reference type, that is, we can't make it direct.
1.2623 -+
1.2624 -+ Also, it seems like some sections may actually be resized
1.2625 -+ after the relaxation code is done, so we can't really
1.2626 -+ trust that our "distance" is correct. There's really no
1.2627 -+ easy solution to this problem, so we'll just disallow
1.2628 -+ direct references to SEC_DATA sections.
1.2629 -+
1.2630 -+ Oh, and .bss isn't actually SEC_DATA, so we disallow
1.2631 -+ !SEC_HAS_CONTENTS as well. */
1.2632 -+ if (!dynamic && defined
1.2633 -+ && (htab->direct_data_refs
1.2634 -+ || (!(sym_sec->flags & SEC_DATA)
1.2635 -+ && (sym_sec->flags & SEC_HAS_CONTENTS)))
1.2636 -+ && next_state->direct)
1.2637 -+ {
1.2638 -+ next_state = &relax_state[next_state->direct];
1.2639 -+ RDBG(" D-> %s", next_state->name);
1.2640 -+ }
1.2641 -+
1.2642 -+ /* Iterate backwards until we find a state that fits. */
1.2643 -+ while (next_state->prev
1.2644 -+ && !rs_is_good_enough(next_state, frag, symval, addr,
1.2645 -+ got, ind_data, delta))
1.2646 -+ {
1.2647 -+ next_state = &relax_state[next_state->prev];
1.2648 -+ RDBG(" P-> %s", next_state->name);
1.2649 -+ }
1.2650 -+
1.2651 -+ /* Then try to find the best possible state. */
1.2652 -+ while (next_state->next)
1.2653 -+ {
1.2654 -+ const struct relax_state *candidate;
1.2655 -+
1.2656 -+ candidate = &relax_state[next_state->next];
1.2657 -+ if (!rs_is_good_enough(candidate, frag, symval, addr, got,
1.2658 -+ ind_data, delta))
1.2659 -+ break;
1.2660 -+
1.2661 -+ next_state = candidate;
1.2662 -+ RDBG(" N-> %s", next_state->name);
1.2663 -+ }
1.2664 -+
1.2665 -+ RDBG(" [size %ld]\n", next_state->size);
1.2666 -+
1.2667 -+ BFD_ASSERT(next_state->id);
1.2668 -+ BFD_ASSERT(!dynamic || next_state->reftype == REF_GOT);
1.2669 -+
1.2670 -+ size_adjust = next_state->size - state->size;
1.2671 -+
1.2672 -+ /* There's a theoretical possibility that shrinking one frag
1.2673 -+ may cause another to grow, which may cause the first one to
1.2674 -+ grow as well, and we're back where we started. Avoid this
1.2675 -+ scenario by disallowing a frag that has grown to ever
1.2676 -+ shrink again. */
1.2677 -+ if (state->reftype == REF_GOT && next_state->reftype != REF_GOT)
1.2678 -+ {
1.2679 -+ if (frag->has_grown)
1.2680 -+ next_state = state;
1.2681 -+ else
1.2682 -+ unref_got_entry(htab, got);
1.2683 -+ }
1.2684 -+ else if (state->reftype != REF_GOT && next_state->reftype == REF_GOT)
1.2685 -+ {
1.2686 -+ ref_got_entry(htab, got);
1.2687 -+ frag->has_grown = TRUE;
1.2688 -+ }
1.2689 -+ else if (state->reftype == REF_CPOOL
1.2690 -+ && next_state->reftype != REF_CPOOL)
1.2691 -+ {
1.2692 -+ if (frag->has_grown)
1.2693 -+ next_state = state;
1.2694 -+ else
1.2695 -+ ind_data->add_frag->refcount--;
1.2696 -+ }
1.2697 -+ else if (state->reftype != REF_CPOOL
1.2698 -+ && next_state->reftype == REF_CPOOL)
1.2699 -+ {
1.2700 -+ ind_data->add_frag->refcount++;
1.2701 -+ frag->has_grown = TRUE;
1.2702 -+ }
1.2703 -+ else
1.2704 -+ {
1.2705 -+ if (frag->has_grown && size_adjust < 0)
1.2706 -+ next_state = state;
1.2707 -+ else if (size_adjust > 0)
1.2708 -+ frag->has_grown = TRUE;
1.2709 -+ }
1.2710 -+
1.2711 -+ size_adjust = next_state->size - state->size;
1.2712 -+ frag->state = next_state->id;
1.2713 -+
1.2714 -+ break;
1.2715 -+ }
1.2716 -+
1.2717 -+ if (size_adjust)
1.2718 -+ htab->repeat_pass = TRUE;
1.2719 -+
1.2720 -+ frag->size_adjust += size_adjust;
1.2721 -+ sec->size += size_adjust;
1.2722 -+ delta += size_adjust;
1.2723 -+
1.2724 -+ BFD_ASSERT((frag->offset + frag->offset_adjust
1.2725 -+ + frag->size + frag->size_adjust)
1.2726 -+ == (frag[1].offset + frag[1].offset_adjust + delta));
1.2727 -+ }
1.2728 -+
1.2729 -+ ret = TRUE;
1.2730 -+
1.2731 -+ out:
1.2732 -+ release_local_syms(abfd, isymbuf);
1.2733 -+ release_internal_relocs(sec, relocs);
1.2734 -+ return ret;
1.2735 -+}
1.2736 -+
1.2737 -+static bfd_boolean
1.2738 -+adjust_global_symbol(struct elf_avr32_link_hash_entry *havr,
1.2739 -+ struct bfd_link_info *info ATTRIBUTE_UNUSED)
1.2740 -+{
1.2741 -+ struct elf_link_hash_entry *h = &havr->root;
1.2742 -+
1.2743 -+ if (havr->sym_frag && (h->root.type == bfd_link_hash_defined
1.2744 -+ || h->root.type == bfd_link_hash_defweak))
1.2745 -+ {
1.2746 -+ RDBG("adjust_global_symbol: %s 0x%08lx -> 0x%08lx\n",
1.2747 -+ h->root.root.string, h->root.u.def.value,
1.2748 -+ h->root.u.def.value + havr->sym_frag->offset_adjust);
1.2749 -+ h->root.u.def.value += havr->sym_frag->offset_adjust;
1.2750 -+ }
1.2751 -+ return TRUE;
1.2752 -+}
1.2753 -+
1.2754 -+static bfd_boolean
1.2755 -+adjust_syms(struct bfd_link_info *info)
1.2756 -+{
1.2757 -+ struct elf_avr32_link_hash_table *htab;
1.2758 -+ bfd *abfd;
1.2759 -+
1.2760 -+ htab = avr32_elf_hash_table(info);
1.2761 -+ elf_link_hash_traverse(&htab->root, adjust_global_symbol, info);
1.2762 -+
1.2763 -+ for (abfd = info->input_bfds; abfd; abfd = abfd->link_next)
1.2764 -+ {
1.2765 -+ Elf_Internal_Sym *isymbuf;
1.2766 -+ struct fragment **local_sym_frag, *frag;
1.2767 -+ unsigned int i, sym_count;
1.2768 -+
1.2769 -+ sym_count = elf_tdata(abfd)->symtab_hdr.sh_info;
1.2770 -+ if (sym_count == 0)
1.2771 -+ continue;
1.2772 -+
1.2773 -+ isymbuf = retrieve_local_syms(abfd, info->keep_memory);
1.2774 -+ if (!isymbuf)
1.2775 -+ return FALSE;
1.2776 -+
1.2777 -+ local_sym_frag = elf_tdata(abfd)->local_sym_frag;
1.2778 -+
1.2779 -+ for (i = 0; i < sym_count; i++)
1.2780 -+ {
1.2781 -+ frag = local_sym_frag[i];
1.2782 -+ if (frag)
1.2783 -+ {
1.2784 -+ RDBG("adjust_local_symbol: %s[%u] 0x%08lx -> 0x%08lx\n",
1.2785 -+ abfd->filename, i, isymbuf[i].st_value,
1.2786 -+ isymbuf[i].st_value + frag->offset_adjust);
1.2787 -+ isymbuf[i].st_value += frag->offset_adjust;
1.2788 -+ }
1.2789 -+ }
1.2790 -+
1.2791 -+ release_local_syms(abfd, isymbuf);
1.2792 -+ }
1.2793 -+
1.2794 -+ htab->symbols_adjusted = TRUE;
1.2795 -+ return TRUE;
1.2796 -+}
1.2797 -+
1.2798 -+static bfd_boolean
1.2799 -+adjust_relocs(bfd *abfd, asection *sec, struct bfd_link_info *info)
1.2800 -+{
1.2801 -+ struct avr32_relax_data *rd;
1.2802 -+ Elf_Internal_Rela *relocs;
1.2803 -+ Elf_Internal_Shdr *symtab_hdr;
1.2804 -+ unsigned int i;
1.2805 -+ bfd_boolean ret = FALSE;
1.2806 -+
1.2807 -+ rd = avr32_relax_data(sec);
1.2808 -+ if (!rd->reloc_data)
1.2809 -+ return TRUE;
1.2810 -+
1.2811 -+ RDBG("adjust_relocs: %s<%s> (count: %u)\n", abfd->filename, sec->name,
1.2812 -+ sec->reloc_count);
1.2813 -+
1.2814 -+ relocs = retrieve_internal_relocs(abfd, sec, info->keep_memory);
1.2815 -+ if (!relocs)
1.2816 -+ return FALSE;
1.2817 -+
1.2818 -+ symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
1.2819 -+
1.2820 -+ for (i = 0; i < sec->reloc_count; i++)
1.2821 -+ {
1.2822 -+ Elf_Internal_Rela *rela = &relocs[i];
1.2823 -+ struct avr32_reloc_data *r_data = &rd->reloc_data[i];
1.2824 -+ struct fragment *sym_frag;
1.2825 -+ unsigned long r_symndx;
1.2826 -+
1.2827 -+ if (r_data->add_frag)
1.2828 -+ {
1.2829 -+ r_symndx = ELF_R_SYM(rela->r_info);
1.2830 -+
1.2831 -+ if (r_symndx < symtab_hdr->sh_info)
1.2832 -+ sym_frag = elf_tdata(abfd)->local_sym_frag[r_symndx];
1.2833 -+ else
1.2834 -+ {
1.2835 -+ struct elf_link_hash_entry *h;
1.2836 -+
1.2837 -+ h = elf_sym_hashes(abfd)[r_symndx - symtab_hdr->sh_info];
1.2838 -+
1.2839 -+ while (h->root.type == bfd_link_hash_indirect
1.2840 -+ || h->root.type == bfd_link_hash_warning)
1.2841 -+ h = (struct elf_link_hash_entry *)h->root.u.i.link;
1.2842 -+
1.2843 -+ BFD_ASSERT(h->root.type == bfd_link_hash_defined
1.2844 -+ || h->root.type == bfd_link_hash_defweak);
1.2845 -+
1.2846 -+ sym_frag = ((struct elf_avr32_link_hash_entry *)h)->sym_frag;
1.2847 -+ }
1.2848 -+
1.2849 -+ RDBG(" addend: 0x%08lx -> 0x%08lx\n",
1.2850 -+ rela->r_addend,
1.2851 -+ rela->r_addend + r_data->add_frag->offset_adjust
1.2852 -+ - (sym_frag ? sym_frag->offset_adjust : 0));
1.2853 -+
1.2854 -+ /* If this is against a section symbol, we won't find any
1.2855 -+ sym_frag, so we'll just adjust the addend. */
1.2856 -+ rela->r_addend += r_data->add_frag->offset_adjust;
1.2857 -+ if (sym_frag)
1.2858 -+ rela->r_addend -= sym_frag->offset_adjust;
1.2859 -+
1.2860 -+ if (r_data->sub_frag)
1.2861 -+ {
1.2862 -+ bfd_byte *contents;
1.2863 -+ bfd_signed_vma diff;
1.2864 -+
1.2865 -+ contents = retrieve_contents(abfd, sec, info->keep_memory);
1.2866 -+ if (!contents)
1.2867 -+ goto out;
1.2868 -+
1.2869 -+ /* I realize now that sub_frag is misnamed. It's
1.2870 -+ actually add_frag which is subtracted in this
1.2871 -+ case... */
1.2872 -+ diff = bfd_get_signed_32(abfd, contents + rela->r_offset);
1.2873 -+ diff += (r_data->sub_frag->offset_adjust
1.2874 -+ - r_data->add_frag->offset_adjust);
1.2875 -+ bfd_put_32(abfd, diff, contents + rela->r_offset);
1.2876 -+
1.2877 -+ RDBG(" 0x%lx: DIFF32 updated: 0x%lx\n", rela->r_offset, diff);
1.2878 -+
1.2879 -+ release_contents(sec, contents);
1.2880 -+ }
1.2881 -+ }
1.2882 -+ else
1.2883 -+ BFD_ASSERT(!r_data->sub_frag);
1.2884 -+ }
1.2885 -+
1.2886 -+ ret = TRUE;
1.2887 -+
1.2888 -+ out:
1.2889 -+ release_internal_relocs(sec, relocs);
1.2890 -+ return ret;
1.2891 -+}
1.2892 -+
1.2893 -+static bfd_boolean
1.2894 -+avr32_move_data(bfd *abfd, asection *sec, struct bfd_link_info *info)
1.2895 -+{
1.2896 -+ struct elf_avr32_link_hash_table *htab;
1.2897 -+ struct avr32_relax_data *rd;
1.2898 -+ struct fragment *frag, *fragend;
1.2899 -+ Elf_Internal_Rela *relocs = NULL;
1.2900 -+ bfd_byte *contents = NULL;
1.2901 -+ unsigned int i;
1.2902 -+ bfd_boolean ret = FALSE;
1.2903 -+
1.2904 -+ htab = avr32_elf_hash_table(info);
1.2905 -+ rd = avr32_relax_data(sec);
1.2906 -+
1.2907 -+ if (!htab->symbols_adjusted)
1.2908 -+ if (!adjust_syms(info))
1.2909 -+ return FALSE;
1.2910 -+
1.2911 -+ if (rd->is_relaxable)
1.2912 -+ {
1.2913 -+ /* Resize the section first, so that we can be sure that enough
1.2914 -+ memory is allocated in case the section has grown. */
1.2915 -+ if (sec->size > sec->rawsize
1.2916 -+ && elf_section_data(sec)->this_hdr.contents)
1.2917 -+ {
1.2918 -+ /* We must not use cached data if the section has grown. */
1.2919 -+ free(elf_section_data(sec)->this_hdr.contents);
1.2920 -+ elf_section_data(sec)->this_hdr.contents = NULL;
1.2921 -+ }
1.2922 -+
1.2923 -+ relocs = retrieve_internal_relocs(abfd, sec, info->keep_memory);
1.2924 -+ if (!relocs)
1.2925 -+ goto out;
1.2926 -+ contents = retrieve_contents(abfd, sec, info->keep_memory);
1.2927 -+ if (!contents)
1.2928 -+ goto out;
1.2929 -+
1.2930 -+ fragend = rd->frag + rd->frag_count;
1.2931 -+
1.2932 -+ RDBG("move_data: %s<%s>: relocs=%p, contents=%p\n",
1.2933 -+ abfd->filename, sec->name, relocs, contents);
1.2934 -+
1.2935 -+ /* First, move the data into place. We must take care to move
1.2936 -+ frags in the right order so that we don't accidentally
1.2937 -+ overwrite parts of the next frag. */
1.2938 -+ for (frag = rd->frag; frag < fragend; frag++)
1.2939 -+ {
1.2940 -+ RDBG(" 0x%08lx%c0x%x: size 0x%lx%c0x%x\n",
1.2941 -+ frag->offset, frag->offset_adjust >= 0 ? '+' : '-',
1.2942 -+ abs(frag->offset_adjust),
1.2943 -+ frag->size, frag->size_adjust >= 0 ? '+' : '-',
1.2944 -+ abs(frag->size_adjust));
1.2945 -+ if (frag->offset_adjust > 0)
1.2946 -+ {
1.2947 -+ struct fragment *prev = frag - 1;
1.2948 -+ struct fragment *last;
1.2949 -+
1.2950 -+ for (last = frag; last < fragend && last->offset_adjust > 0;
1.2951 -+ last++) ;
1.2952 -+
1.2953 -+ if (last == fragend)
1.2954 -+ last--;
1.2955 -+
1.2956 -+ for (frag = last; frag != prev; frag--)
1.2957 -+ {
1.2958 -+ if (frag->offset_adjust
1.2959 -+ && frag->size + frag->size_adjust > 0)
1.2960 -+ {
1.2961 -+ RDBG("memmove 0x%lx -> 0x%lx (size %lu)\n",
1.2962 -+ frag->offset, frag->offset + frag->offset_adjust,
1.2963 -+ frag->size + frag->size_adjust);
1.2964 -+ memmove(contents + frag->offset + frag->offset_adjust,
1.2965 -+ contents + frag->offset,
1.2966 -+ frag->size + frag->size_adjust);
1.2967 -+ }
1.2968 -+ }
1.2969 -+ frag = last;
1.2970 -+ }
1.2971 -+ else if (frag->offset_adjust && frag->size + frag->size_adjust > 0)
1.2972 -+ {
1.2973 -+ RDBG("memmove 0x%lx -> 0x%lx (size %lu)\n",
1.2974 -+ frag->offset, frag->offset + frag->offset_adjust,
1.2975 -+ frag->size + frag->size_adjust);
1.2976 -+ memmove(contents + frag->offset + frag->offset_adjust,
1.2977 -+ contents + frag->offset,
1.2978 -+ frag->size + frag->size_adjust);
1.2979 -+ }
1.2980 -+ }
1.2981 -+
1.2982 -+ i = 0;
1.2983 -+
1.2984 -+ for (frag = rd->frag; frag < fragend; frag++)
1.2985 -+ {
1.2986 -+ const struct relax_state *state, *istate;
1.2987 -+ struct avr32_reloc_data *r_data = NULL;
1.2988 -+
1.2989 -+ istate = &relax_state[frag->initial_state];
1.2990 -+ state = &relax_state[frag->state];
1.2991 -+
1.2992 -+ if (rd->reloc_data)
1.2993 -+ r_data = &rd->reloc_data[frag->rela - relocs];
1.2994 -+
1.2995 -+ BFD_ASSERT((long)(frag->size + frag->size_adjust) >= 0);
1.2996 -+ BFD_ASSERT(state->reftype != REF_CPOOL
1.2997 -+ || r_data->add_frag->refcount > 0);
1.2998 -+
1.2999 -+ if (istate->reftype == REF_CPOOL && state->reftype != REF_CPOOL)
1.3000 -+ {
1.3001 -+ struct fragment *ifrag;
1.3002 -+
1.3003 -+ /* An indirect reference through the cpool has been
1.3004 -+ converted to a direct reference. We must update the
1.3005 -+ reloc to point to the symbol itself instead of the
1.3006 -+ constant pool entry. The reloc type will be updated
1.3007 -+ later. */
1.3008 -+ ifrag = r_data->add_frag;
1.3009 -+ frag->rela->r_info = ifrag->rela->r_info;
1.3010 -+ frag->rela->r_addend = ifrag->rela->r_addend;
1.3011 -+
1.3012 -+ /* Copy the reloc data so the addend will be adjusted
1.3013 -+ correctly later. */
1.3014 -+ *r_data = rd->reloc_data[ifrag->rela - relocs];
1.3015 -+ }
1.3016 -+
1.3017 -+ /* Move all relocs covered by this frag. */
1.3018 -+ if (frag->rela)
1.3019 -+ BFD_ASSERT(&relocs[i] <= frag->rela);
1.3020 -+ else
1.3021 -+ BFD_ASSERT((frag + 1) == fragend && frag->state == RS_NONE);
1.3022 -+
1.3023 -+ if (frag == rd->frag)
1.3024 -+ BFD_ASSERT(i == 0);
1.3025 -+ else
1.3026 -+ BFD_ASSERT(&relocs[i] > frag[-1].rela);
1.3027 -+
1.3028 -+ /* If non-null, frag->rela is the last relocation in the
1.3029 -+ fragment. frag->rela can only be null in the last
1.3030 -+ fragment, so in that case, we'll just do the rest. */
1.3031 -+ for (; (i < sec->reloc_count
1.3032 -+ && (!frag->rela || &relocs[i] <= frag->rela)); i++)
1.3033 -+ {
1.3034 -+ RDBG("[%4u] r_offset 0x%08lx -> 0x%08lx\n", i, relocs[i].r_offset,
1.3035 -+ relocs[i].r_offset + frag->offset_adjust);
1.3036 -+ relocs[i].r_offset += frag->offset_adjust;
1.3037 -+ }
1.3038 -+
1.3039 -+ if (frag->refcount == 0)
1.3040 -+ {
1.3041 -+ /* If this frag is to be discarded, make sure we won't
1.3042 -+ relocate it later on. */
1.3043 -+ BFD_ASSERT(frag->state == RS_CPENT);
1.3044 -+ frag->rela->r_info = ELF_R_INFO(ELF_R_SYM(frag->rela->r_info),
1.3045 -+ R_AVR32_NONE);
1.3046 -+ }
1.3047 -+ else if (frag->state == RS_ALIGN)
1.3048 -+ {
1.3049 -+ bfd_vma addr, addr_end;
1.3050 -+
1.3051 -+ addr = frag->rela->r_offset;
1.3052 -+ addr_end = (frag->offset + frag->offset_adjust
1.3053 -+ + frag->size + frag->size_adjust);
1.3054 -+
1.3055 -+ /* If the section is executable, insert NOPs.
1.3056 -+ Otherwise, insert zeroes. */
1.3057 -+ if (sec->flags & SEC_CODE)
1.3058 -+ {
1.3059 -+ if (addr & 1)
1.3060 -+ {
1.3061 -+ bfd_put_8(abfd, 0, contents + addr);
1.3062 -+ addr++;
1.3063 -+ }
1.3064 -+
1.3065 -+ BFD_ASSERT(!((addr_end - addr) & 1));
1.3066 -+
1.3067 -+ while (addr < addr_end)
1.3068 -+ {
1.3069 -+ bfd_put_16(abfd, NOP_OPCODE, contents + addr);
1.3070 -+ addr += 2;
1.3071 -+ }
1.3072 -+ }
1.3073 -+ else
1.3074 -+ memset(contents + addr, 0, addr_end - addr);
1.3075 -+ }
1.3076 -+ else if (state->opcode_mask)
1.3077 -+ {
1.3078 -+ bfd_vma insn;
1.3079 -+
1.3080 -+ /* Update the opcode and the relocation type unless it's a
1.3081 -+ "special" relax state (i.e. RS_NONE, RS_ALIGN or
1.3082 -+ RS_CPENT.), in which case the opcode mask is zero. */
1.3083 -+ insn = bfd_get_32(abfd, contents + frag->rela->r_offset);
1.3084 -+ insn &= ~state->opcode_mask;
1.3085 -+ insn |= state->opcode;
1.3086 -+ RDBG(" 0x%lx: inserting insn %08lx\n",
1.3087 -+ frag->rela->r_offset, insn);
1.3088 -+ bfd_put_32(abfd, insn, contents + frag->rela->r_offset);
1.3089 -+
1.3090 -+ frag->rela->r_info = ELF_R_INFO(ELF_R_SYM(frag->rela->r_info),
1.3091 -+ state->r_type);
1.3092 -+ }
1.3093 -+
1.3094 -+ if ((frag + 1) == fragend)
1.3095 -+ BFD_ASSERT((frag->offset + frag->size + frag->offset_adjust
1.3096 -+ + frag->size_adjust) == sec->size);
1.3097 -+ else
1.3098 -+ BFD_ASSERT((frag->offset + frag->size + frag->offset_adjust
1.3099 -+ + frag->size_adjust)
1.3100 -+ == (frag[1].offset + frag[1].offset_adjust));
1.3101 -+ }
1.3102 -+ }
1.3103 -+
1.3104 -+ /* Adjust reloc addends and DIFF32 differences */
1.3105 -+ if (!adjust_relocs(abfd, sec, info))
1.3106 -+ return FALSE;
1.3107 -+
1.3108 -+ ret = TRUE;
1.3109 -+
1.3110 -+ out:
1.3111 -+ release_contents(sec, contents);
1.3112 -+ release_internal_relocs(sec, relocs);
1.3113 -+ return ret;
1.3114 -+}
1.3115 -+
1.3116 -+static bfd_boolean
1.3117 -+avr32_elf_relax_section(bfd *abfd, asection *sec,
1.3118 -+ struct bfd_link_info *info, bfd_boolean *again)
1.3119 -+{
1.3120 -+ struct elf_avr32_link_hash_table *htab;
1.3121 -+ struct avr32_relax_data *rd;
1.3122 -+
1.3123 -+ *again = FALSE;
1.3124 -+ if (info->relocatable)
1.3125 -+ return TRUE;
1.3126 -+
1.3127 -+ htab = avr32_elf_hash_table(info);
1.3128 -+ if ((!(sec->flags & SEC_RELOC) || sec->reloc_count == 0)
1.3129 -+ && sec != htab->sgot)
1.3130 -+ return TRUE;
1.3131 -+
1.3132 -+ if (!htab->relocations_analyzed)
1.3133 -+ {
1.3134 -+ if (!analyze_relocations(info))
1.3135 -+ return FALSE;
1.3136 -+ htab->relocations_analyzed = TRUE;
1.3137 -+ }
1.3138 -+
1.3139 -+ rd = avr32_relax_data(sec);
1.3140 -+
1.3141 -+ if (rd->iteration != htab->relax_iteration)
1.3142 -+ {
1.3143 -+ if (!htab->repeat_pass)
1.3144 -+ htab->relax_pass++;
1.3145 -+ htab->relax_iteration++;
1.3146 -+ htab->repeat_pass = FALSE;
1.3147 -+ }
1.3148 -+
1.3149 -+ rd->iteration++;
1.3150 -+
1.3151 -+ switch (htab->relax_pass)
1.3152 -+ {
1.3153 -+ case RELAX_PASS_SIZE_FRAGS:
1.3154 -+ if (!avr32_size_frags(abfd, sec, info))
1.3155 -+ return FALSE;
1.3156 -+ *again = TRUE;
1.3157 -+ break;
1.3158 -+ case RELAX_PASS_MOVE_DATA:
1.3159 -+ if (!avr32_move_data(abfd, sec, info))
1.3160 -+ return FALSE;
1.3161 -+ break;
1.3162 -+ }
1.3163 -+
1.3164 -+ return TRUE;
1.3165 -+}
1.3166 -+
1.3167 -+
1.3168 -+/* Relocation */
1.3169 -+
1.3170 -+static bfd_reloc_status_type
1.3171 -+avr32_check_reloc_value(asection *sec, Elf_Internal_Rela *rela,
1.3172 -+ bfd_signed_vma relocation, reloc_howto_type *howto);
1.3173 -+static bfd_reloc_status_type
1.3174 -+avr32_final_link_relocate(reloc_howto_type *howto, bfd *input_bfd,
1.3175 -+ asection *input_section, bfd_byte *contents,
1.3176 -+ Elf_Internal_Rela *rel, bfd_vma value);
1.3177 -+static bfd_boolean
1.3178 -+avr32_elf_relocate_section(bfd *output_bfd, struct bfd_link_info *info,
1.3179 -+ bfd *input_bfd, asection *input_section,
1.3180 -+ bfd_byte *contents, Elf_Internal_Rela *relocs,
1.3181 -+ Elf_Internal_Sym *local_syms,
1.3182 -+ asection **local_sections);
1.3183 -+
1.3184 -+
1.3185 -+#define symbol_address(symbol) \
1.3186 -+ symbol->value + symbol->section->output_section->vma \
1.3187 -+ + symbol->section->output_offset
1.3188 -+
1.3189 -+#define avr32_elf_insert_field(size, field, abfd, reloc_entry, data) \
1.3190 -+ do \
1.3191 -+ { \
1.3192 -+ unsigned long x; \
1.3193 -+ x = bfd_get_##size (abfd, data + reloc_entry->address); \
1.3194 -+ x &= ~reloc_entry->howto->dst_mask; \
1.3195 -+ x |= field & reloc_entry->howto->dst_mask; \
1.3196 -+ bfd_put_##size (abfd, (bfd_vma) x, data + reloc_entry->address); \
1.3197 -+ } \
1.3198 -+ while(0)
1.3199 -+
1.3200 -+static bfd_reloc_status_type
1.3201 -+avr32_check_reloc_value(asection *sec ATTRIBUTE_UNUSED,
1.3202 -+ Elf_Internal_Rela *rela ATTRIBUTE_UNUSED,
1.3203 -+ bfd_signed_vma relocation,
1.3204 -+ reloc_howto_type *howto)
1.3205 -+{
1.3206 -+ bfd_vma reloc_u;
1.3207 -+
1.3208 -+ /* We take "complain_overflow_dont" to mean "don't complain on
1.3209 -+ alignment either". This way, we don't have to special-case
1.3210 -+ R_AVR32_HI16 */
1.3211 -+ if (howto->complain_on_overflow == complain_overflow_dont)
1.3212 -+ return bfd_reloc_ok;
1.3213 -+
1.3214 -+ /* Check if the value is correctly aligned */
1.3215 -+ if (relocation & ((1 << howto->rightshift) - 1))
1.3216 -+ {
1.3217 -+ RDBG("misaligned: %s<%s+%lx>: %s: 0x%lx (align %u)\n",
1.3218 -+ sec->owner->filename, sec->name, rela->r_offset,
1.3219 -+ howto->name, relocation, howto->rightshift);
1.3220 -+ return bfd_reloc_overflow;
1.3221 -+ }
1.3222 -+
1.3223 -+ /* Now, get rid of the unnecessary bits */
1.3224 -+ relocation >>= howto->rightshift;
1.3225 -+ reloc_u = (bfd_vma)relocation;
1.3226 -+
1.3227 -+ switch (howto->complain_on_overflow)
1.3228 -+ {
1.3229 -+ case complain_overflow_unsigned:
1.3230 -+ case complain_overflow_bitfield:
1.3231 -+ if (reloc_u > (unsigned long)((1 << howto->bitsize) - 1))
1.3232 -+ {
1.3233 -+ RDBG("unsigned overflow: %s<%s+%lx>: %s: 0x%lx (size %u)\n",
1.3234 -+ sec->owner->filename, sec->name, rela->r_offset,
1.3235 -+ howto->name, reloc_u, howto->bitsize);
1.3236 -+ RDBG("reloc vma: 0x%lx\n",
1.3237 -+ sec->output_section->vma + sec->output_offset + rela->r_offset);
1.3238 -+
1.3239 -+ return bfd_reloc_overflow;
1.3240 -+ }
1.3241 -+ break;
1.3242 -+ case complain_overflow_signed:
1.3243 -+ if (relocation > (1 << (howto->bitsize - 1)) - 1)
1.3244 -+ {
1.3245 -+ RDBG("signed overflow: %s<%s+%lx>: %s: 0x%lx (size %u)\n",
1.3246 -+ sec->owner->filename, sec->name, rela->r_offset,
1.3247 -+ howto->name, reloc_u, howto->bitsize);
1.3248 -+ RDBG("reloc vma: 0x%lx\n",
1.3249 -+ sec->output_section->vma + sec->output_offset + rela->r_offset);
1.3250 -+
1.3251 -+ return bfd_reloc_overflow;
1.3252 -+ }
1.3253 -+ if (relocation < -(1 << (howto->bitsize - 1)))
1.3254 -+ {
1.3255 -+ RDBG("signed overflow: %s<%s+%lx>: %s: -0x%lx (size %u)\n",
1.3256 -+ sec->owner->filename, sec->name, rela->r_offset,
1.3257 -+ howto->name, -relocation, howto->bitsize);
1.3258 -+ RDBG("reloc vma: 0x%lx\n",
1.3259 -+ sec->output_section->vma + sec->output_offset + rela->r_offset);
1.3260 -+
1.3261 -+ return bfd_reloc_overflow;
1.3262 -+ }
1.3263 -+ break;
1.3264 -+ default:
1.3265 -+ abort();
1.3266 -+ }
1.3267 -+
1.3268 -+ return bfd_reloc_ok;
1.3269 -+}
1.3270 -+
1.3271 -+
1.3272 -+static bfd_reloc_status_type
1.3273 -+avr32_final_link_relocate(reloc_howto_type *howto,
1.3274 -+ bfd *input_bfd,
1.3275 -+ asection *input_section,
1.3276 -+ bfd_byte *contents,
1.3277 -+ Elf_Internal_Rela *rel,
1.3278 -+ bfd_vma value)
1.3279 -+{
1.3280 -+ bfd_vma field;
1.3281 -+ bfd_vma relocation;
1.3282 -+ bfd_reloc_status_type status;
1.3283 -+ bfd_byte *p = contents + rel->r_offset;
1.3284 -+ unsigned long x;
1.3285 -+
1.3286 -+ pr_debug(" (6b) final link relocate\n");
1.3287 -+
1.3288 -+ /* Sanity check the address */
1.3289 -+ if (rel->r_offset > input_section->size)
1.3290 -+ {
1.3291 -+ (*_bfd_error_handler)
1.3292 -+ ("%B: %A+0x%lx: offset out of range (section size: 0x%lx)",
1.3293 -+ input_bfd, input_section, rel->r_offset, input_section->size);
1.3294 -+ return bfd_reloc_outofrange;
1.3295 -+ }
1.3296 -+
1.3297 -+ relocation = value + rel->r_addend;
1.3298 -+
1.3299 -+ if (howto->pc_relative)
1.3300 -+ {
1.3301 -+ bfd_vma addr;
1.3302 -+
1.3303 -+ addr = input_section->output_section->vma
1.3304 -+ + input_section->output_offset + rel->r_offset;
1.3305 -+ addr &= ~0UL << howto->rightshift;
1.3306 -+ relocation -= addr;
1.3307 -+ }
1.3308 -+
1.3309 -+ switch (ELF32_R_TYPE(rel->r_info))
1.3310 -+ {
1.3311 -+ case R_AVR32_16N_PCREL:
1.3312 -+ /* sub reg, pc, . - (sym + addend) */
1.3313 -+ relocation = -relocation;
1.3314 -+ break;
1.3315 -+ }
1.3316 -+
1.3317 -+ status = avr32_check_reloc_value(input_section, rel, relocation, howto);
1.3318 -+
1.3319 -+ relocation >>= howto->rightshift;
1.3320 -+ if (howto->bitsize == 21)
1.3321 -+ field = (relocation & 0xffff)
1.3322 -+ | ((relocation & 0x10000) << 4)
1.3323 -+ | ((relocation & 0x1e0000) << 8);
1.3324 -+ else if (howto->bitsize == 12)
1.3325 -+ field = (relocation & 0xff) | ((relocation & 0xf00) << 4);
1.3326 -+ else if (howto->bitsize == 10)
1.3327 -+ field = ((relocation & 0xff) << 4)
1.3328 -+ | ((relocation & 0x300) >> 8);
1.3329 -+ else
1.3330 -+ field = relocation << howto->bitpos;
1.3331 -+
1.3332 -+ switch (howto->size)
1.3333 -+ {
1.3334 -+ case 0:
1.3335 -+ x = bfd_get_8 (input_bfd, p);
1.3336 -+ x &= ~howto->dst_mask;
1.3337 -+ x |= field & howto->dst_mask;
1.3338 -+ bfd_put_8 (input_bfd, (bfd_vma) x, p);
1.3339 -+ break;
1.3340 -+ case 1:
1.3341 -+ x = bfd_get_16 (input_bfd, p);
1.3342 -+ x &= ~howto->dst_mask;
1.3343 -+ x |= field & howto->dst_mask;
1.3344 -+ bfd_put_16 (input_bfd, (bfd_vma) x, p);
1.3345 -+ break;
1.3346 -+ case 2:
1.3347 -+ x = bfd_get_32 (input_bfd, p);
1.3348 -+ x &= ~howto->dst_mask;
1.3349 -+ x |= field & howto->dst_mask;
1.3350 -+ bfd_put_32 (input_bfd, (bfd_vma) x, p);
1.3351 -+ break;
1.3352 -+ default:
1.3353 -+ abort();
1.3354 -+ }
1.3355 -+
1.3356 -+ return status;
1.3357 -+}
1.3358 -+
1.3359 -+/* (6) Apply relocations to the normal (non-dynamic) sections */
1.3360 -+
1.3361 -+static bfd_boolean
1.3362 -+avr32_elf_relocate_section(bfd *output_bfd, struct bfd_link_info *info,
1.3363 -+ bfd *input_bfd, asection *input_section,
1.3364 -+ bfd_byte *contents, Elf_Internal_Rela *relocs,
1.3365 -+ Elf_Internal_Sym *local_syms,
1.3366 -+ asection **local_sections)
1.3367 -+{
1.3368 -+ struct elf_avr32_link_hash_table *htab;
1.3369 -+ Elf_Internal_Shdr *symtab_hdr;
1.3370 -+ Elf_Internal_Rela *rel, *relend;
1.3371 -+ struct elf_link_hash_entry **sym_hashes;
1.3372 -+ struct got_entry **local_got_ents;
1.3373 -+ asection *sgot;
1.3374 -+ asection *srelgot;
1.3375 -+
1.3376 -+ pr_debug("(6) relocate section %s:<%s> (size 0x%lx)\n",
1.3377 -+ input_bfd->filename, input_section->name, input_section->size);
1.3378 -+
1.3379 -+ /* If we're doing a partial link, we don't have to do anything since
1.3380 -+ we're using RELA relocations */
1.3381 -+ if (info->relocatable)
1.3382 -+ return TRUE;
1.3383 -+
1.3384 -+ htab = avr32_elf_hash_table(info);
1.3385 -+ symtab_hdr = &elf_tdata(input_bfd)->symtab_hdr;
1.3386 -+ sym_hashes = elf_sym_hashes(input_bfd);
1.3387 -+ local_got_ents = elf_local_got_ents(input_bfd);
1.3388 -+ sgot = htab->sgot;
1.3389 -+ srelgot = htab->srelgot;
1.3390 -+
1.3391 -+ relend = relocs + input_section->reloc_count;
1.3392 -+ for (rel = relocs; rel < relend; rel++)
1.3393 -+ {
1.3394 -+ unsigned long r_type, r_symndx;
1.3395 -+ reloc_howto_type *howto;
1.3396 -+ Elf_Internal_Sym *sym = NULL;
1.3397 -+ struct elf_link_hash_entry *h = NULL;
1.3398 -+ asection *sec = NULL;
1.3399 -+ bfd_vma value;
1.3400 -+ bfd_vma offset;
1.3401 -+ bfd_reloc_status_type status;
1.3402 -+
1.3403 -+ r_type = ELF32_R_TYPE(rel->r_info);
1.3404 -+ r_symndx = ELF32_R_SYM(rel->r_info);
1.3405 -+
1.3406 -+ if (r_type == R_AVR32_NONE
1.3407 -+ || r_type == R_AVR32_ALIGN
1.3408 -+ || r_type == R_AVR32_DIFF32
1.3409 -+ || r_type == R_AVR32_DIFF16
1.3410 -+ || r_type == R_AVR32_DIFF8)
1.3411 -+ continue;
1.3412 -+
1.3413 -+ /* Sanity check */
1.3414 -+ if (r_type > R_AVR32_max)
1.3415 -+ {
1.3416 -+ bfd_set_error(bfd_error_bad_value);
1.3417 -+ return FALSE;
1.3418 -+ }
1.3419 -+
1.3420 -+ howto = &elf_avr32_howto_table[r_type];
1.3421 -+
1.3422 -+ if (r_symndx < symtab_hdr->sh_info)
1.3423 -+ {
1.3424 -+ sym = local_syms + r_symndx;
1.3425 -+ sec = local_sections[r_symndx];
1.3426 -+
1.3427 -+ pr_debug(" (6a) processing %s against local symbol %lu\n",
1.3428 -+ howto->name, r_symndx);
1.3429 -+
1.3430 -+ /* The following function changes rel->r_addend behind our back. */
1.3431 -+ value = _bfd_elf_rela_local_sym(output_bfd, sym, &sec, rel);
1.3432 -+ pr_debug(" => value: %lx, addend: %lx\n", value, rel->r_addend);
1.3433 -+ }
1.3434 -+ else
1.3435 -+ {
1.3436 -+ if (sym_hashes == NULL)
1.3437 -+ return FALSE;
1.3438 -+
1.3439 -+ h = sym_hashes[r_symndx - symtab_hdr->sh_info];
1.3440 -+ while (h->root.type == bfd_link_hash_indirect
1.3441 -+ || h->root.type == bfd_link_hash_warning)
1.3442 -+ h = (struct elf_link_hash_entry *)h->root.u.i.link;
1.3443 -+
1.3444 -+ pr_debug(" (6a) processing %s against symbol %s\n",
1.3445 -+ howto->name, h->root.root.string);
1.3446 -+
1.3447 -+ if (h->root.type == bfd_link_hash_defined
1.3448 -+ || h->root.type == bfd_link_hash_defweak)
1.3449 -+ {
1.3450 -+ bfd_boolean dyn;
1.3451 -+
1.3452 -+ dyn = htab->root.dynamic_sections_created;
1.3453 -+ sec = h->root.u.def.section;
1.3454 -+
1.3455 -+ if (sec->output_section)
1.3456 -+ value = (h->root.u.def.value
1.3457 -+ + sec->output_section->vma
1.3458 -+ + sec->output_offset);
1.3459 -+ else
1.3460 -+ value = h->root.u.def.value;
1.3461 -+ }
1.3462 -+ else if (h->root.type == bfd_link_hash_undefweak)
1.3463 -+ value = 0;
1.3464 -+ else if (info->unresolved_syms_in_objects == RM_IGNORE
1.3465 -+ && ELF_ST_VISIBILITY(h->other) == STV_DEFAULT)
1.3466 -+ value = 0;
1.3467 -+ else
1.3468 -+ {
1.3469 -+ bfd_boolean err;
1.3470 -+ err = (info->unresolved_syms_in_objects == RM_GENERATE_ERROR
1.3471 -+ || ELF_ST_VISIBILITY(h->other) != STV_DEFAULT);
1.3472 -+ if (!info->callbacks->undefined_symbol
1.3473 -+ (info, h->root.root.string, input_bfd,
1.3474 -+ input_section, rel->r_offset, err))
1.3475 -+ return FALSE;
1.3476 -+ value = 0;
1.3477 -+ }
1.3478 -+
1.3479 -+ pr_debug(" => value: %lx, addend: %lx\n", value, rel->r_addend);
1.3480 -+ }
1.3481 -+
1.3482 -+ switch (r_type)
1.3483 -+ {
1.3484 -+ case R_AVR32_GOT32:
1.3485 -+ case R_AVR32_GOT16:
1.3486 -+ case R_AVR32_GOT8:
1.3487 -+ case R_AVR32_GOT21S:
1.3488 -+ case R_AVR32_GOT18SW:
1.3489 -+ case R_AVR32_GOT16S:
1.3490 -+ case R_AVR32_GOT7UW:
1.3491 -+ case R_AVR32_LDA_GOT:
1.3492 -+ case R_AVR32_GOTCALL:
1.3493 -+ BFD_ASSERT(sgot != NULL);
1.3494 -+
1.3495 -+ if (h != NULL)
1.3496 -+ {
1.3497 -+ BFD_ASSERT(h->got.glist->refcount > 0);
1.3498 -+ offset = h->got.glist->offset;
1.3499 -+
1.3500 -+ BFD_ASSERT(offset < sgot->size);
1.3501 -+ if (!elf_hash_table(info)->dynamic_sections_created
1.3502 -+ || (h->def_regular
1.3503 -+ && (!info->shared
1.3504 -+ || info->symbolic
1.3505 -+ || h->dynindx == -1)))
1.3506 -+ {
1.3507 -+ /* This is actually a static link, or it is a
1.3508 -+ -Bsymbolic link and the symbol is defined
1.3509 -+ locally, or the symbol was forced to be local. */
1.3510 -+ bfd_put_32(output_bfd, value, sgot->contents + offset);
1.3511 -+ }
1.3512 -+ }
1.3513 -+ else
1.3514 -+ {
1.3515 -+ BFD_ASSERT(local_got_ents &&
1.3516 -+ local_got_ents[r_symndx]->refcount > 0);
1.3517 -+ offset = local_got_ents[r_symndx]->offset;
1.3518 -+
1.3519 -+ /* Local GOT entries don't have relocs. If this is a
1.3520 -+ shared library, the dynamic linker will add the load
1.3521 -+ address to the initial value at startup. */
1.3522 -+ BFD_ASSERT(offset < sgot->size);
1.3523 -+ pr_debug("Initializing GOT entry at offset %lu: 0x%lx\n",
1.3524 -+ offset, value);
1.3525 -+ bfd_put_32 (output_bfd, value, sgot->contents + offset);
1.3526 -+ }
1.3527 -+
1.3528 -+ value = sgot->output_offset + offset;
1.3529 -+ pr_debug("GOT reference: New value %lx\n", value);
1.3530 -+ break;
1.3531 -+
1.3532 -+ case R_AVR32_GOTPC:
1.3533 -+ /* This relocation type is for constant pool entries used in
1.3534 -+ the calculation "Rd = PC - (PC - GOT)", where the
1.3535 -+ constant pool supplies the constant (PC - GOT)
1.3536 -+ offset. The symbol value + addend indicates where the
1.3537 -+ value of PC is taken. */
1.3538 -+ value -= sgot->output_section->vma;
1.3539 -+ break;
1.3540 -+
1.3541 -+ case R_AVR32_32_PCREL:
1.3542 -+ /* We must adjust r_offset to account for discarded data in
1.3543 -+ the .eh_frame section. This is probably not the right
1.3544 -+ way to do this, since AFAICS all other architectures do
1.3545 -+ it some other way. I just can't figure out how... */
1.3546 -+ {
1.3547 -+ bfd_vma r_offset;
1.3548 -+
1.3549 -+ r_offset = _bfd_elf_section_offset(output_bfd, info,
1.3550 -+ input_section,
1.3551 -+ rel->r_offset);
1.3552 -+ if (r_offset == (bfd_vma)-1
1.3553 -+ || r_offset == (bfd_vma)-2)
1.3554 -+ continue;
1.3555 -+ rel->r_offset = r_offset;
1.3556 -+ }
1.3557 -+ break;
1.3558 -+
1.3559 -+ case R_AVR32_32:
1.3560 -+ /* We need to emit a run-time relocation in the following cases:
1.3561 -+ - we're creating a shared library
1.3562 -+ - the symbol is not defined in any regular objects
1.3563 -+
1.3564 -+ Of course, sections that aren't going to be part of the
1.3565 -+ run-time image will not get any relocs, and undefined
1.3566 -+ symbols won't have any either (only weak undefined
1.3567 -+ symbols should get this far). */
1.3568 -+ if ((info->shared
1.3569 -+ || (elf_hash_table(info)->dynamic_sections_created
1.3570 -+ && h != NULL
1.3571 -+ && h->def_dynamic
1.3572 -+ && !h->def_regular))
1.3573 -+ && r_symndx != 0
1.3574 -+ && (input_section->flags & SEC_ALLOC))
1.3575 -+ {
1.3576 -+ Elf_Internal_Rela outrel;
1.3577 -+ bfd_byte *loc;
1.3578 -+ bfd_boolean skip, relocate;
1.3579 -+ struct elf_avr32_link_hash_entry *avrh;
1.3580 -+
1.3581 -+ pr_debug("Going to generate dynamic reloc...\n");
1.3582 -+
1.3583 -+ skip = FALSE;
1.3584 -+ relocate = FALSE;
1.3585 -+
1.3586 -+ outrel.r_offset = _bfd_elf_section_offset(output_bfd, info,
1.3587 -+ input_section,
1.3588 -+ rel->r_offset);
1.3589 -+ if (outrel.r_offset == (bfd_vma)-1)
1.3590 -+ skip = TRUE;
1.3591 -+ else if (outrel.r_offset == (bfd_vma)-2)
1.3592 -+ skip = TRUE, relocate = TRUE;
1.3593 -+
1.3594 -+ outrel.r_offset += (input_section->output_section->vma
1.3595 -+ + input_section->output_offset);
1.3596 -+
1.3597 -+ pr_debug(" ... offset %lx, dynindx %ld\n",
1.3598 -+ outrel.r_offset, h ? h->dynindx : -1);
1.3599 -+
1.3600 -+ if (skip)
1.3601 -+ memset(&outrel, 0, sizeof(outrel));
1.3602 -+ else
1.3603 -+ {
1.3604 -+ avrh = (struct elf_avr32_link_hash_entry *)h;
1.3605 -+ /* h->dynindx may be -1 if this symbol was marked to
1.3606 -+ become local. */
1.3607 -+ if (h == NULL
1.3608 -+ || ((info->symbolic || h->dynindx == -1)
1.3609 -+ && h->def_regular))
1.3610 -+ {
1.3611 -+ relocate = TRUE;
1.3612 -+ outrel.r_info = ELF32_R_INFO(0, R_AVR32_RELATIVE);
1.3613 -+ outrel.r_addend = value + rel->r_addend;
1.3614 -+ pr_debug(" ... R_AVR32_RELATIVE\n");
1.3615 -+ }
1.3616 -+ else
1.3617 -+ {
1.3618 -+ BFD_ASSERT(h->dynindx != -1);
1.3619 -+ relocate = TRUE;
1.3620 -+ outrel.r_info = ELF32_R_INFO(h->dynindx, R_AVR32_GLOB_DAT);
1.3621 -+ outrel.r_addend = rel->r_addend;
1.3622 -+ pr_debug(" ... R_AVR32_GLOB_DAT\n");
1.3623 -+ }
1.3624 -+ }
1.3625 -+
1.3626 -+ pr_debug("srelgot reloc_count: %d, size %lu\n",
1.3627 -+ srelgot->reloc_count, srelgot->size);
1.3628 -+
1.3629 -+ loc = srelgot->contents;
1.3630 -+ loc += srelgot->reloc_count++ * sizeof(Elf32_External_Rela);
1.3631 -+ bfd_elf32_swap_reloca_out(output_bfd, &outrel, loc);
1.3632 -+
1.3633 -+ BFD_ASSERT(srelgot->reloc_count * sizeof(Elf32_External_Rela)
1.3634 -+ <= srelgot->size);
1.3635 -+
1.3636 -+ if (!relocate)
1.3637 -+ continue;
1.3638 -+ }
1.3639 -+ break;
1.3640 -+ }
1.3641 -+
1.3642 -+ status = avr32_final_link_relocate(howto, input_bfd, input_section,
1.3643 -+ contents, rel, value);
1.3644 -+
1.3645 -+ switch (status)
1.3646 -+ {
1.3647 -+ case bfd_reloc_ok:
1.3648 -+ break;
1.3649 -+
1.3650 -+ case bfd_reloc_overflow:
1.3651 -+ {
1.3652 -+ const char *name;
1.3653 -+
1.3654 -+ if (h != NULL)
1.3655 -+ name = h->root.root.string;
1.3656 -+ else
1.3657 -+ {
1.3658 -+ name = bfd_elf_string_from_elf_section(input_bfd,
1.3659 -+ symtab_hdr->sh_link,
1.3660 -+ sym->st_name);
1.3661 -+ if (name == NULL)
1.3662 -+ return FALSE;
1.3663 -+ if (*name == '\0')
1.3664 -+ name = bfd_section_name(input_bfd, sec);
1.3665 -+ }
1.3666 -+ if (!((*info->callbacks->reloc_overflow)
1.3667 -+ (info, (h ? &h->root : NULL), name, howto->name,
1.3668 -+ rel->r_addend, input_bfd, input_section, rel->r_offset)))
1.3669 -+ return FALSE;
1.3670 -+ }
1.3671 -+ break;
1.3672 -+
1.3673 -+ case bfd_reloc_outofrange:
1.3674 -+ default:
1.3675 -+ abort();
1.3676 -+ }
1.3677 -+ }
1.3678 -+
1.3679 -+ return TRUE;
1.3680 -+}
1.3681 -+
1.3682 -+
1.3683 -+/* Additional processing of dynamic sections after relocation */
1.3684 -+
1.3685 -+static bfd_boolean
1.3686 -+avr32_elf_finish_dynamic_symbol(bfd *output_bfd, struct bfd_link_info *info,
1.3687 -+ struct elf_link_hash_entry *h,
1.3688 -+ Elf_Internal_Sym *sym);
1.3689 -+static bfd_boolean
1.3690 -+avr32_elf_finish_dynamic_sections(bfd *output_bfd, struct bfd_link_info *info);
1.3691 -+
1.3692 -+
1.3693 -+/* (7) Initialize the contents of a dynamic symbol and/or emit
1.3694 -+ relocations for it */
1.3695 -+
1.3696 -+static bfd_boolean
1.3697 -+avr32_elf_finish_dynamic_symbol(bfd *output_bfd, struct bfd_link_info *info,
1.3698 -+ struct elf_link_hash_entry *h,
1.3699 -+ Elf_Internal_Sym *sym)
1.3700 -+{
1.3701 -+ struct elf_avr32_link_hash_table *htab;
1.3702 -+ struct got_entry *got;
1.3703 -+
1.3704 -+ pr_debug("(7) finish dynamic symbol: %s\n", h->root.root.string);
1.3705 -+
1.3706 -+ htab = avr32_elf_hash_table(info);
1.3707 -+ got = h->got.glist;
1.3708 -+
1.3709 -+ if (got && got->refcount > 0)
1.3710 -+ {
1.3711 -+ asection *sgot;
1.3712 -+ asection *srelgot;
1.3713 -+ Elf_Internal_Rela rel;
1.3714 -+ bfd_byte *loc;
1.3715 -+
1.3716 -+ /* This symbol has an entry in the GOT. Set it up. */
1.3717 -+ sgot = htab->sgot;
1.3718 -+ srelgot = htab->srelgot;
1.3719 -+ BFD_ASSERT(sgot && srelgot);
1.3720 -+
1.3721 -+ rel.r_offset = (sgot->output_section->vma
1.3722 -+ + sgot->output_offset
1.3723 -+ + got->offset);
1.3724 -+
1.3725 -+ /* If this is a static link, or it is a -Bsymbolic link and the
1.3726 -+ symbol is defined locally or was forced to be local because
1.3727 -+ of a version file, we just want to emit a RELATIVE reloc. The
1.3728 -+ entry in the global offset table will already have been
1.3729 -+ initialized in the relocate_section function. */
1.3730 -+ if ((info->shared
1.3731 -+ && !info->symbolic
1.3732 -+ && h->dynindx != -1)
1.3733 -+ || (htab->root.dynamic_sections_created
1.3734 -+ && h->def_dynamic
1.3735 -+ && !h->def_regular))
1.3736 -+ {
1.3737 -+ bfd_put_32(output_bfd, 0, sgot->contents + got->offset);
1.3738 -+ rel.r_info = ELF32_R_INFO(h->dynindx, R_AVR32_GLOB_DAT);
1.3739 -+ rel.r_addend = 0;
1.3740 -+
1.3741 -+ pr_debug("GOT reloc R_AVR32_GLOB_DAT, dynindx: %ld\n", h->dynindx);
1.3742 -+ pr_debug(" srelgot reloc_count: %d, size: %lu\n",
1.3743 -+ srelgot->reloc_count, srelgot->size);
1.3744 -+
1.3745 -+ loc = (srelgot->contents
1.3746 -+ + srelgot->reloc_count++ * sizeof(Elf32_External_Rela));
1.3747 -+ bfd_elf32_swap_reloca_out(output_bfd, &rel, loc);
1.3748 -+
1.3749 -+ BFD_ASSERT(srelgot->reloc_count * sizeof(Elf32_External_Rela)
1.3750 -+ <= srelgot->size);
1.3751 -+ }
1.3752 -+ }
1.3753 -+
1.3754 -+ /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute */
1.3755 -+ if (strcmp(h->root.root.string, "_DYNAMIC") == 0
1.3756 -+ || strcmp(h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
1.3757 -+ sym->st_shndx = SHN_ABS;
1.3758 -+
1.3759 -+ return TRUE;
1.3760 -+}
1.3761 -+
1.3762 -+/* (8) Do any remaining initialization of the dynamic sections */
1.3763 -+
1.3764 -+static bfd_boolean
1.3765 -+avr32_elf_finish_dynamic_sections(bfd *output_bfd, struct bfd_link_info *info)
1.3766 -+{
1.3767 -+ struct elf_avr32_link_hash_table *htab;
1.3768 -+ asection *sgot, *sdyn;
1.3769 -+
1.3770 -+ pr_debug("(8) finish dynamic sections\n");
1.3771 -+
1.3772 -+ htab = avr32_elf_hash_table(info);
1.3773 -+ sgot = htab->sgot;
1.3774 -+ sdyn = bfd_get_section_by_name(htab->root.dynobj, ".dynamic");
1.3775 -+
1.3776 -+ if (htab->root.dynamic_sections_created)
1.3777 -+ {
1.3778 -+ Elf32_External_Dyn *dyncon, *dynconend;
1.3779 -+
1.3780 -+ BFD_ASSERT(sdyn && sgot && sgot->size >= AVR32_GOT_HEADER_SIZE);
1.3781 -+
1.3782 -+ dyncon = (Elf32_External_Dyn *)sdyn->contents;
1.3783 -+ dynconend = (Elf32_External_Dyn *)(sdyn->contents + sdyn->size);
1.3784 -+ for (; dyncon < dynconend; dyncon++)
1.3785 -+ {
1.3786 -+ Elf_Internal_Dyn dyn;
1.3787 -+ asection *s;
1.3788 -+
1.3789 -+ bfd_elf32_swap_dyn_in(htab->root.dynobj, dyncon, &dyn);
1.3790 -+
1.3791 -+ switch (dyn.d_tag)
1.3792 -+ {
1.3793 -+ default:
1.3794 -+ break;
1.3795 -+
1.3796 -+ case DT_PLTGOT:
1.3797 -+ s = sgot->output_section;
1.3798 -+ BFD_ASSERT(s != NULL);
1.3799 -+ dyn.d_un.d_ptr = s->vma;
1.3800 -+ bfd_elf32_swap_dyn_out(output_bfd, &dyn, dyncon);
1.3801 -+ break;
1.3802 -+
1.3803 -+ case DT_AVR32_GOTSZ:
1.3804 -+ s = sgot->output_section;
1.3805 -+ BFD_ASSERT(s != NULL);
1.3806 -+ dyn.d_un.d_val = s->size;
1.3807 -+ bfd_elf32_swap_dyn_out(output_bfd, &dyn, dyncon);
1.3808 -+ break;
1.3809 -+ }
1.3810 -+ }
1.3811 -+
1.3812 -+ /* Fill in the first two entries in the global offset table */
1.3813 -+ bfd_put_32(output_bfd,
1.3814 -+ sdyn->output_section->vma + sdyn->output_offset,
1.3815 -+ sgot->contents);
1.3816 -+
1.3817 -+ /* The runtime linker will fill this one in with the address of
1.3818 -+ the run-time link map */
1.3819 -+ bfd_put_32(output_bfd, 0, sgot->contents + 4);
1.3820 -+ }
1.3821 -+
1.3822 -+ if (sgot)
1.3823 -+ elf_section_data(sgot->output_section)->this_hdr.sh_entsize = 4;
1.3824 -+
1.3825 -+ return TRUE;
1.3826 -+}
1.3827 -+
1.3828 -+
1.3829 -+/* AVR32-specific private ELF data */
1.3830 -+
1.3831 -+static bfd_boolean
1.3832 -+avr32_elf_set_private_flags(bfd *abfd, flagword flags);
1.3833 -+static bfd_boolean
1.3834 -+avr32_elf_copy_private_bfd_data(bfd *ibfd, bfd *obfd);
1.3835 -+static bfd_boolean
1.3836 -+avr32_elf_merge_private_bfd_data(bfd *ibfd, bfd *obfd);
1.3837 -+static bfd_boolean
1.3838 -+avr32_elf_print_private_bfd_data(bfd *abfd, void *ptr);
1.3839 -+
1.3840 -+static bfd_boolean
1.3841 -+avr32_elf_set_private_flags(bfd *abfd, flagword flags)
1.3842 -+{
1.3843 -+ elf_elfheader(abfd)->e_flags = flags;
1.3844 -+ elf_flags_init(abfd) = TRUE;
1.3845 -+
1.3846 -+ return TRUE;
1.3847 -+}
1.3848 -+
1.3849 -+/* Copy backend specific data from one object module to another. */
1.3850 -+
1.3851 -+static bfd_boolean
1.3852 -+avr32_elf_copy_private_bfd_data(bfd *ibfd, bfd *obfd)
1.3853 -+{
1.3854 -+ elf_elfheader(obfd)->e_flags = elf_elfheader(ibfd)->e_flags;
1.3855 -+ return TRUE;
1.3856 -+}
1.3857 -+
1.3858 -+/* Merge backend specific data from an object file to the output
1.3859 -+ object file when linking. */
1.3860 -+
1.3861 -+static bfd_boolean
1.3862 -+avr32_elf_merge_private_bfd_data(bfd *ibfd, bfd *obfd)
1.3863 -+{
1.3864 -+ flagword out_flags, in_flags;
1.3865 -+
1.3866 -+ pr_debug("(0) merge_private_bfd_data: %s -> %s\n",
1.3867 -+ ibfd->filename, obfd->filename);
1.3868 -+
1.3869 -+ in_flags = elf_elfheader(ibfd)->e_flags;
1.3870 -+ out_flags = elf_elfheader(obfd)->e_flags;
1.3871 -+
1.3872 -+ if (elf_flags_init(obfd))
1.3873 -+ {
1.3874 -+ /* If one of the inputs are non-PIC, the output must be
1.3875 -+ considered non-PIC. The same applies to linkrelax. */
1.3876 -+ if (!(in_flags & EF_AVR32_PIC))
1.3877 -+ out_flags &= ~EF_AVR32_PIC;
1.3878 -+ if (!(in_flags & EF_AVR32_LINKRELAX))
1.3879 -+ out_flags &= ~EF_AVR32_LINKRELAX;
1.3880 -+ }
1.3881 -+ else
1.3882 -+ {
1.3883 -+ elf_flags_init(obfd) = TRUE;
1.3884 -+ out_flags = in_flags;
1.3885 -+ }
1.3886 -+
1.3887 -+ elf_elfheader(obfd)->e_flags = out_flags;
1.3888 -+
1.3889 -+ return TRUE;
1.3890 -+}
1.3891 -+
1.3892 -+static bfd_boolean
1.3893 -+avr32_elf_print_private_bfd_data(bfd *abfd, void *ptr)
1.3894 -+{
1.3895 -+ FILE *file = (FILE *)ptr;
1.3896 -+ unsigned long flags;
1.3897 -+
1.3898 -+ BFD_ASSERT(abfd != NULL && ptr != NULL);
1.3899 -+
1.3900 -+ _bfd_elf_print_private_bfd_data(abfd, ptr);
1.3901 -+
1.3902 -+ flags = elf_elfheader(abfd)->e_flags;
1.3903 -+
1.3904 -+ fprintf(file, _("private flags = %lx:"), elf_elfheader(abfd)->e_flags);
1.3905 -+
1.3906 -+ if (flags & EF_AVR32_PIC)
1.3907 -+ fprintf(file, " [PIC]");
1.3908 -+ if (flags & EF_AVR32_LINKRELAX)
1.3909 -+ fprintf(file, " [linker relaxable]");
1.3910 -+
1.3911 -+ flags &= ~(EF_AVR32_PIC | EF_AVR32_LINKRELAX);
1.3912 -+
1.3913 -+ if (flags)
1.3914 -+ fprintf(file, _("<Unrecognized flag bits set>"));
1.3915 -+
1.3916 -+ fputc('\n', file);
1.3917 -+
1.3918 -+ return TRUE;
1.3919 -+}
1.3920 -+
1.3921 -+/* Set avr32-specific linker options. */
1.3922 -+void bfd_elf32_avr32_set_options(struct bfd_link_info *info,
1.3923 -+ int direct_data_refs)
1.3924 -+{
1.3925 -+ struct elf_avr32_link_hash_table *htab;
1.3926 -+
1.3927 -+ htab = avr32_elf_hash_table (info);
1.3928 -+ htab->direct_data_refs = !!direct_data_refs;
1.3929 -+}
1.3930 -+
1.3931 -+
1.3932 -+
1.3933 -+/* Understanding core dumps */
1.3934 -+
1.3935 -+static bfd_boolean
1.3936 -+avr32_elf_grok_prstatus(bfd *abfd, Elf_Internal_Note *note);
1.3937 -+static bfd_boolean
1.3938 -+avr32_elf_grok_psinfo(bfd *abfd, Elf_Internal_Note *note);
1.3939 -+
1.3940 -+static bfd_boolean
1.3941 -+avr32_elf_grok_prstatus(bfd *abfd, Elf_Internal_Note *note)
1.3942 -+{
1.3943 -+ /* Linux/AVR32B elf_prstatus */
1.3944 -+ if (note->descsz != 148)
1.3945 -+ return FALSE;
1.3946 -+
1.3947 -+ /* pr_cursig */
1.3948 -+ elf_tdata(abfd)->core_signal = bfd_get_16(abfd, note->descdata + 12);
1.3949 -+
1.3950 -+ /* pr_pid */
1.3951 -+ elf_tdata(abfd)->core_pid = bfd_get_32(abfd, note->descdata + 24);
1.3952 -+
1.3953 -+ /* Make a ".reg/999" section for pr_reg. The size is for 16
1.3954 -+ general-purpose registers, SR and r12_orig (18 * 4 = 72). */
1.3955 -+ return _bfd_elfcore_make_pseudosection(abfd, ".reg", 72,
1.3956 -+ note->descpos + 72);
1.3957 -+}
1.3958 -+
1.3959 -+static bfd_boolean
1.3960 -+avr32_elf_grok_psinfo(bfd *abfd, Elf_Internal_Note *note)
1.3961 -+{
1.3962 -+ /* Linux/AVR32B elf_prpsinfo */
1.3963 -+ if (note->descsz != 128)
1.3964 -+ return FALSE;
1.3965 -+
1.3966 -+ elf_tdata(abfd)->core_program
1.3967 -+ = _bfd_elfcore_strndup(abfd, note->descdata + 32, 16);
1.3968 -+ elf_tdata(abfd)->core_command
1.3969 -+ = _bfd_elfcore_strndup(abfd, note->descdata + 48, 80);
1.3970 -+
1.3971 -+ /* Note that for some reason, a spurious space is tacked
1.3972 -+ onto the end of the args in some (at least one anyway)
1.3973 -+ implementations, so strip it off if it exists. */
1.3974 -+
1.3975 -+ {
1.3976 -+ char *command = elf_tdata (abfd)->core_command;
1.3977 -+ int n = strlen (command);
1.3978 -+
1.3979 -+ if (0 < n && command[n - 1] == ' ')
1.3980 -+ command[n - 1] = '\0';
1.3981 -+ }
1.3982 -+
1.3983 -+ return TRUE;
1.3984 -+}
1.3985 -+
1.3986 -+
1.3987 -+#define ELF_ARCH bfd_arch_avr32
1.3988 -+#define ELF_MACHINE_CODE EM_AVR32
1.3989 -+#define ELF_MAXPAGESIZE 0x1000
1.3990 -+
1.3991 -+#define TARGET_BIG_SYM bfd_elf32_avr32_vec
1.3992 -+#define TARGET_BIG_NAME "elf32-avr32"
1.3993 -+
1.3994 -+#define elf_backend_grok_prstatus avr32_elf_grok_prstatus
1.3995 -+#define elf_backend_grok_psinfo avr32_elf_grok_psinfo
1.3996 -+
1.3997 -+/* Only RELA relocations are used */
1.3998 -+#define elf_backend_may_use_rel_p 0
1.3999 -+#define elf_backend_may_use_rela_p 1
1.4000 -+#define elf_backend_default_use_rela_p 1
1.4001 -+#define elf_backend_rela_normal 1
1.4002 -+#define elf_info_to_howto_rel NULL
1.4003 -+#define elf_info_to_howto avr32_info_to_howto
1.4004 -+
1.4005 -+#define bfd_elf32_bfd_copy_private_bfd_data avr32_elf_copy_private_bfd_data
1.4006 -+#define bfd_elf32_bfd_merge_private_bfd_data avr32_elf_merge_private_bfd_data
1.4007 -+#define bfd_elf32_bfd_set_private_flags avr32_elf_set_private_flags
1.4008 -+#define bfd_elf32_bfd_print_private_bfd_data avr32_elf_print_private_bfd_data
1.4009 -+#define bfd_elf32_new_section_hook avr32_elf_new_section_hook
1.4010 -+
1.4011 -+#define elf_backend_gc_mark_hook avr32_elf_gc_mark_hook
1.4012 -+#define elf_backend_gc_sweep_hook avr32_elf_gc_sweep_hook
1.4013 -+#define elf_backend_relocate_section avr32_elf_relocate_section
1.4014 -+#define elf_backend_copy_indirect_symbol avr32_elf_copy_indirect_symbol
1.4015 -+#define elf_backend_create_dynamic_sections avr32_elf_create_dynamic_sections
1.4016 -+#define bfd_elf32_bfd_link_hash_table_create avr32_elf_link_hash_table_create
1.4017 -+#define elf_backend_adjust_dynamic_symbol avr32_elf_adjust_dynamic_symbol
1.4018 -+#define elf_backend_size_dynamic_sections avr32_elf_size_dynamic_sections
1.4019 -+#define elf_backend_finish_dynamic_symbol avr32_elf_finish_dynamic_symbol
1.4020 -+#define elf_backend_finish_dynamic_sections avr32_elf_finish_dynamic_sections
1.4021 -+
1.4022 -+#define bfd_elf32_bfd_relax_section avr32_elf_relax_section
1.4023 -+
1.4024 -+/* Find out which symbols need an entry in .got. */
1.4025 -+#define elf_backend_check_relocs avr32_check_relocs
1.4026 -+#define elf_backend_can_refcount 1
1.4027 -+#define elf_backend_can_gc_sections 1
1.4028 -+#define elf_backend_plt_readonly 1
1.4029 -+#define elf_backend_plt_not_loaded 1
1.4030 -+#define elf_backend_want_plt_sym 0
1.4031 -+#define elf_backend_plt_alignment 2
1.4032 -+#define elf_backend_want_dynbss 0
1.4033 -+#define elf_backend_want_got_plt 0
1.4034 -+#define elf_backend_want_got_sym 1
1.4035 -+#define elf_backend_got_header_size AVR32_GOT_HEADER_SIZE
1.4036 -+
1.4037 -+#include "elf32-target.h"
1.4038 ---- /dev/null
1.4039 -+++ b/bfd/elf32-avr32.h
1.4040 -@@ -0,0 +1,23 @@
1.4041 -+/* AVR32-specific support for 32-bit ELF.
1.4042 -+ Copyright 2007 Atmel Corporation.
1.4043 -+
1.4044 -+ Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
1.4045 -+
1.4046 -+ This file is part of BFD, the Binary File Descriptor library.
1.4047 -+
1.4048 -+ This program is free software; you can redistribute it and/or modify
1.4049 -+ it under the terms of the GNU General Public License as published by
1.4050 -+ the Free Software Foundation; either version 2 of the License, or
1.4051 -+ (at your option) any later version.
1.4052 -+
1.4053 -+ This program is distributed in the hope that it will be useful,
1.4054 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1.4055 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1.4056 -+ GNU General Public License for more details.
1.4057 -+
1.4058 -+ You should have received a copy of the GNU General Public License
1.4059 -+ along with this program; if not, write to the Free Software
1.4060 -+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
1.4061 -+
1.4062 -+void bfd_elf32_avr32_set_options(struct bfd_link_info *info,
1.4063 -+ int direct_data_refs);
1.4064 ---- a/bfd/elf-bfd.h
1.4065 -+++ b/bfd/elf-bfd.h
1.4066 -@@ -1400,6 +1400,10 @@ struct elf_obj_tdata
1.4067 - find_nearest_line. */
1.4068 - struct mips_elf_find_line *find_line_info;
1.4069 -
1.4070 -+ /* Used by AVR32 ELF relaxation code. Contains an array of pointers
1.4071 -+ for each local symbol to the fragment where it is defined. */
1.4072 -+ struct fragment **local_sym_frag;
1.4073 -+
1.4074 - /* A place to stash dwarf1 info for this bfd. */
1.4075 - struct dwarf1_debug *dwarf1_find_line_info;
1.4076 -
1.4077 ---- a/bfd/Makefile.am
1.4078 -+++ b/bfd/Makefile.am
1.4079 -@@ -63,6 +63,7 @@ ALL_MACHINES = \
1.4080 - cpu-arc.lo \
1.4081 - cpu-arm.lo \
1.4082 - cpu-avr.lo \
1.4083 -+ cpu-avr32.lo \
1.4084 - cpu-bfin.lo \
1.4085 - cpu-cr16.lo \
1.4086 - cpu-cr16c.lo \
1.4087 -@@ -243,6 +244,7 @@ BFD32_BACKENDS = \
1.4088 - elf32-arc.lo \
1.4089 - elf32-arm.lo \
1.4090 - elf32-avr.lo \
1.4091 -+ elf32-avr32.lo \
1.4092 - elf32-bfin.lo \
1.4093 - elf32-cr16.lo \
1.4094 - elf32-cr16c.lo \
1.4095 -@@ -1328,6 +1330,10 @@ elf32-cr16.lo: elf32-cr16.c $(INCDIR)/fi
1.4096 - $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \
1.4097 - $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
1.4098 - $(INCDIR)/elf/cr16.h $(INCDIR)/elf/reloc-macros.h elf32-target.h
1.4099 -+elf32-avr32.lo: elf32-avr32.c $(INCDIR)/filenames.h elf-bfd.h \
1.4100 -+ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
1.4101 -+ $(INCDIR)/bfdlink.h $(INCDIR)/elf/avr32.h $(INCDIR)/elf/reloc-macros.h \
1.4102 -+ elf32-target.h
1.4103 - elf32-cr16c.lo: elf32-cr16c.c $(INCDIR)/filenames.h \
1.4104 - $(INCDIR)/hashtab.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/cr16c.h \
1.4105 - $(INCDIR)/elf/reloc-macros.h elf-bfd.h $(INCDIR)/elf/common.h \
1.4106 ---- a/bfd/reloc.c
1.4107 -+++ b/bfd/reloc.c
1.4108 -@@ -3948,6 +3948,131 @@ ENUMDOC
1.4109 - instructions
1.4110 -
1.4111 - ENUM
1.4112 -+ BFD_RELOC_AVR32_DIFF32
1.4113 -+ENUMX
1.4114 -+ BFD_RELOC_AVR32_DIFF16
1.4115 -+ENUMX
1.4116 -+ BFD_RELOC_AVR32_DIFF8
1.4117 -+ENUMDOC
1.4118 -+ Difference between two labels: L2 - L1. The value of L1 is encoded
1.4119 -+ as sym + addend, while the initial difference after assembly is
1.4120 -+ inserted into the object file by the assembler.
1.4121 -+ENUM
1.4122 -+ BFD_RELOC_AVR32_GOT32
1.4123 -+ENUMX
1.4124 -+ BFD_RELOC_AVR32_GOT16
1.4125 -+ENUMX
1.4126 -+ BFD_RELOC_AVR32_GOT8
1.4127 -+ENUMDOC
1.4128 -+ Reference to a symbol through the Global Offset Table. The linker
1.4129 -+ will allocate an entry for symbol in the GOT and insert the offset
1.4130 -+ of this entry as the relocation value.
1.4131 -+ENUM
1.4132 -+ BFD_RELOC_AVR32_21S
1.4133 -+ENUMX
1.4134 -+ BFD_RELOC_AVR32_16U
1.4135 -+ENUMX
1.4136 -+ BFD_RELOC_AVR32_16S
1.4137 -+ENUMX
1.4138 -+ BFD_RELOC_AVR32_SUB5
1.4139 -+ENUMX
1.4140 -+ BFD_RELOC_AVR32_8S_EXT
1.4141 -+ENUMX
1.4142 -+ BFD_RELOC_AVR32_8S
1.4143 -+ENUMX
1.4144 -+ BFD_RELOC_AVR32_15S
1.4145 -+ENUMDOC
1.4146 -+ Normal (non-pc-relative) code relocations. Alignment and signedness
1.4147 -+ is indicated by the suffixes. S means signed, U means unsigned. W
1.4148 -+ means word-aligned, H means halfword-aligned, neither means
1.4149 -+ byte-aligned (no alignment.) SUB5 is the same relocation as 16S.
1.4150 -+ENUM
1.4151 -+ BFD_RELOC_AVR32_22H_PCREL
1.4152 -+ENUMX
1.4153 -+ BFD_RELOC_AVR32_18W_PCREL
1.4154 -+ENUMX
1.4155 -+ BFD_RELOC_AVR32_16B_PCREL
1.4156 -+ENUMX
1.4157 -+ BFD_RELOC_AVR32_16N_PCREL
1.4158 -+ENUMX
1.4159 -+ BFD_RELOC_AVR32_14UW_PCREL
1.4160 -+ENUMX
1.4161 -+ BFD_RELOC_AVR32_11H_PCREL
1.4162 -+ENUMX
1.4163 -+ BFD_RELOC_AVR32_10UW_PCREL
1.4164 -+ENUMX
1.4165 -+ BFD_RELOC_AVR32_9H_PCREL
1.4166 -+ENUMX
1.4167 -+ BFD_RELOC_AVR32_9UW_PCREL
1.4168 -+ENUMDOC
1.4169 -+ PC-relative relocations are signed if neither 'U' nor 'S' is
1.4170 -+ specified. However, we explicitly tack on a 'B' to indicate no
1.4171 -+ alignment, to avoid confusion with data relocs. All of these resolve
1.4172 -+ to sym + addend - offset, except the one with 'N' (negated) suffix.
1.4173 -+ This particular one resolves to offset - sym - addend.
1.4174 -+ENUM
1.4175 -+ BFD_RELOC_AVR32_GOTPC
1.4176 -+ENUMDOC
1.4177 -+ Subtract the link-time address of the GOT from (symbol + addend)
1.4178 -+ and insert the result.
1.4179 -+ENUM
1.4180 -+ BFD_RELOC_AVR32_GOTCALL
1.4181 -+ENUMX
1.4182 -+ BFD_RELOC_AVR32_LDA_GOT
1.4183 -+ENUMX
1.4184 -+ BFD_RELOC_AVR32_GOT21S
1.4185 -+ENUMX
1.4186 -+ BFD_RELOC_AVR32_GOT18SW
1.4187 -+ENUMX
1.4188 -+ BFD_RELOC_AVR32_GOT16S
1.4189 -+ENUMDOC
1.4190 -+ Reference to a symbol through the GOT. The linker will allocate an
1.4191 -+ entry for symbol in the GOT and insert the offset of this entry as
1.4192 -+ the relocation value. addend must be zero. As usual, 'S' means
1.4193 -+ signed, 'W' means word-aligned, etc.
1.4194 -+ENUM
1.4195 -+ BFD_RELOC_AVR32_32_CPENT
1.4196 -+ENUMDOC
1.4197 -+ 32-bit constant pool entry. I don't think 8- and 16-bit entries make
1.4198 -+ a whole lot of sense.
1.4199 -+ENUM
1.4200 -+ BFD_RELOC_AVR32_CPCALL
1.4201 -+ENUMX
1.4202 -+ BFD_RELOC_AVR32_16_CP
1.4203 -+ENUMX
1.4204 -+ BFD_RELOC_AVR32_9W_CP
1.4205 -+ENUMDOC
1.4206 -+ Constant pool references. Some of these relocations are signed,
1.4207 -+ others are unsigned. It doesn't really matter, since the constant
1.4208 -+ pool always comes after the code that references it.
1.4209 -+ENUM
1.4210 -+ BFD_RELOC_AVR32_ALIGN
1.4211 -+ENUMDOC
1.4212 -+ sym must be the absolute symbol. The addend specifies the alignment
1.4213 -+ order, e.g. if addend is 2, the linker must add padding so that the
1.4214 -+ next address is aligned to a 4-byte boundary.
1.4215 -+ENUM
1.4216 -+ BFD_RELOC_AVR32_14UW
1.4217 -+ENUMX
1.4218 -+ BFD_RELOC_AVR32_10UW
1.4219 -+ENUMX
1.4220 -+ BFD_RELOC_AVR32_10SW
1.4221 -+ENUMX
1.4222 -+ BFD_RELOC_AVR32_STHH_W
1.4223 -+ENUMX
1.4224 -+ BFD_RELOC_AVR32_7UW
1.4225 -+ENUMX
1.4226 -+ BFD_RELOC_AVR32_6S
1.4227 -+ENUMX
1.4228 -+ BFD_RELOC_AVR32_6UW
1.4229 -+ENUMX
1.4230 -+ BFD_RELOC_AVR32_4UH
1.4231 -+ENUMX
1.4232 -+ BFD_RELOC_AVR32_3U
1.4233 -+ENUMDOC
1.4234 -+ Code relocations that will never make it to the output file.
1.4235 -+
1.4236 -+ENUM
1.4237 - BFD_RELOC_390_12
1.4238 - ENUMDOC
1.4239 - Direct 12 bit.
1.4240 ---- a/bfd/targets.c
1.4241 -+++ b/bfd/targets.c
1.4242 -@@ -564,6 +564,7 @@ extern const bfd_target bfd_efi_app_ia32
1.4243 - extern const bfd_target bfd_efi_app_x86_64_vec;
1.4244 - extern const bfd_target bfd_efi_app_ia64_vec;
1.4245 - extern const bfd_target bfd_elf32_avr_vec;
1.4246 -+extern const bfd_target bfd_elf32_avr32_vec;
1.4247 - extern const bfd_target bfd_elf32_bfin_vec;
1.4248 - extern const bfd_target bfd_elf32_bfinfdpic_vec;
1.4249 - extern const bfd_target bfd_elf32_big_generic_vec;
1.4250 -@@ -884,6 +885,7 @@ static const bfd_target * const _bfd_tar
1.4251 - &bfd_efi_app_ia64_vec,
1.4252 - #endif
1.4253 - &bfd_elf32_avr_vec,
1.4254 -+ &bfd_elf32_avr32_vec,
1.4255 - &bfd_elf32_bfin_vec,
1.4256 - &bfd_elf32_bfinfdpic_vec,
1.4257 -
1.4258 ---- a/binutils/Makefile.am
1.4259 -+++ b/binutils/Makefile.am
1.4260 -@@ -577,7 +577,7 @@ readelf.o: readelf.c sysdep.h $(INCDIR)/
1.4261 - $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h bucomm.h dwarf.h \
1.4262 - $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
1.4263 - $(INCDIR)/elf/h8.h $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/alpha.h \
1.4264 -- $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h $(INCDIR)/elf/avr.h \
1.4265 -+ $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h $(INCDIR)/elf/avr.h $(INCDIR)/elf/avr32.h\
1.4266 - $(INCDIR)/elf/bfin.h $(INCDIR)/elf/cris.h $(INCDIR)/elf/crx.h \
1.4267 - $(INCDIR)/elf/d10v.h $(INCDIR)/elf/d30v.h $(INCDIR)/elf/dlx.h \
1.4268 - $(INCDIR)/elf/fr30.h $(INCDIR)/elf/frv.h $(INCDIR)/elf/hppa.h \
1.4269 ---- a/binutils/readelf.c
1.4270 -+++ b/binutils/readelf.c
1.4271 -@@ -21,7 +21,7 @@
1.4272 - along with this program; if not, write to the Free Software
1.4273 - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
1.4274 - 02110-1301, USA. */
1.4275 --
1.4276 -+
1.4277 - /* The difference between readelf and objdump:
1.4278 -
1.4279 - Both programs are capable of displaying the contents of ELF format files,
1.4280 -@@ -40,7 +40,7 @@
1.4281 - There is also the case that readelf can provide more information about an
1.4282 - ELF file than is provided by objdump. In particular it can display DWARF
1.4283 - debugging information which (at the moment) objdump cannot. */
1.4284 --
1.4285 -+
1.4286 - #include "sysdep.h"
1.4287 - #include <assert.h>
1.4288 - #include <sys/stat.h>
1.4289 -@@ -109,6 +109,7 @@
1.4290 - #include "elf/arc.h"
1.4291 - #include "elf/arm.h"
1.4292 - #include "elf/avr.h"
1.4293 -+#include "elf/avr32.h"
1.4294 - #include "elf/bfin.h"
1.4295 - #include "elf/cr16.h"
1.4296 - #include "elf/cris.h"
1.4297 -@@ -303,7 +304,7 @@ static void (*byte_put) (unsigned char *
1.4298 - #define streq(a,b) (strcmp ((a), (b)) == 0)
1.4299 - #define strneq(a,b,n) (strncmp ((a), (b), (n)) == 0)
1.4300 - #define const_strneq(a,b) (strncmp ((a), (b), sizeof (b) - 1) == 0)
1.4301 --
1.4302 -+
1.4303 - static void *
1.4304 - get_data (void *var, FILE *file, long offset, size_t size, size_t nmemb,
1.4305 - const char *reason)
1.4306 -@@ -614,6 +615,7 @@ guess_is_rela (unsigned long e_machine)
1.4307 - case EM_ALPHA:
1.4308 - case EM_ALTERA_NIOS2:
1.4309 - case EM_AVR:
1.4310 -+ case EM_AVR32:
1.4311 - case EM_AVR_OLD:
1.4312 - case EM_BLACKFIN:
1.4313 - case EM_CR16:
1.4314 -@@ -1006,6 +1008,10 @@ dump_relocations (FILE *file,
1.4315 - rtype = elf_avr_reloc_type (type);
1.4316 - break;
1.4317 -
1.4318 -+ case EM_AVR32:
1.4319 -+ rtype = elf_avr32_reloc_type (type);
1.4320 -+ break;
1.4321 -+
1.4322 - case EM_OLD_SPARCV9:
1.4323 - case EM_SPARC32PLUS:
1.4324 - case EM_SPARCV9:
1.4325 -@@ -1763,6 +1769,7 @@ get_machine_name (unsigned e_machine)
1.4326 - case EM_VAX: return "Digital VAX";
1.4327 - case EM_AVR_OLD:
1.4328 - case EM_AVR: return "Atmel AVR 8-bit microcontroller";
1.4329 -+ case EM_AVR32: return "Atmel AVR32";
1.4330 - case EM_CRIS: return "Axis Communications 32-bit embedded processor";
1.4331 - case EM_JAVELIN: return "Infineon Technologies 32-bit embedded cpu";
1.4332 - case EM_FIREPATH: return "Element 14 64-bit DSP processor";
1.4333 ---- a/gas/as.c
1.4334 -+++ b/gas/as.c
1.4335 -@@ -441,10 +441,10 @@ parse_args (int * pargc, char *** pargv)
1.4336 - the end of the preceeding line so that it is simpler to
1.4337 - selectively add and remove lines from this list. */
1.4338 - {"alternate", no_argument, NULL, OPTION_ALTERNATE}
1.4339 -- /* The entry for "a" is here to prevent getopt_long_only() from
1.4340 -- considering that -a is an abbreviation for --alternate. This is
1.4341 -- necessary because -a=<FILE> is a valid switch but getopt would
1.4342 -- normally reject it since --alternate does not take an argument. */
1.4343 -+ /* The next two entries are here to prevent getopt_long_only() from
1.4344 -+ considering that -a or -al is an abbreviation for --alternate.
1.4345 -+ This is necessary because -a=<FILE> is a valid switch but getopt
1.4346 -+ would normally reject it since --alternate does not take an argument. */
1.4347 - ,{"a", optional_argument, NULL, 'a'}
1.4348 - /* Handle -al=<FILE>. */
1.4349 - ,{"al", optional_argument, NULL, OPTION_AL}
1.4350 -@@ -803,8 +803,15 @@ This program has absolutely no warranty.
1.4351 - case 'a':
1.4352 - if (optarg)
1.4353 - {
1.4354 -- if (optarg != old_argv[optind] && optarg[-1] == '=')
1.4355 -- --optarg;
1.4356 -+ /* If optarg is part of the -a switch and not a separate argument
1.4357 -+ in its own right, then scan backwards to the just after the -a.
1.4358 -+ This means skipping over both '=' and 'l' which might have been
1.4359 -+ taken to be part of the -a switch itself. */
1.4360 -+ if (optarg != old_argv[optind])
1.4361 -+ {
1.4362 -+ while (optarg[-1] == '=' || optarg[-1] == 'l')
1.4363 -+ --optarg;
1.4364 -+ }
1.4365 -
1.4366 - if (md_parse_option (optc, optarg) != 0)
1.4367 - break;
1.4368 -@@ -1234,7 +1241,7 @@ main (int argc, char ** argv)
1.4369 - keep_it = 0;
1.4370 -
1.4371 - if (!keep_it)
1.4372 -- unlink_if_ordinary (out_file_name);
1.4373 -+ unlink (out_file_name);
1.4374 -
1.4375 - input_scrub_end ();
1.4376 -
1.4377 ---- /dev/null
1.4378 -+++ b/gas/config/tc-avr32.c
1.4379 -@@ -0,0 +1,4806 @@
1.4380 -+/* Assembler implementation for AVR32.
1.4381 -+ Copyright 2003-2006 Atmel Corporation.
1.4382 -+
1.4383 -+ Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
1.4384 -+
1.4385 -+ This file is part of GAS, the GNU Assembler.
1.4386 -+
1.4387 -+ GAS is free software; you can redistribute it and/or modify it
1.4388 -+ under the terms of the GNU General Public License as published by
1.4389 -+ the Free Software Foundation; either version 2, or (at your option)
1.4390 -+ any later version.
1.4391 -+
1.4392 -+ GAS is distributed in the hope that it will be useful, but WITHOUT
1.4393 -+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
1.4394 -+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
1.4395 -+ License for more details.
1.4396 -+
1.4397 -+ You should have received a copy of the GNU General Public License
1.4398 -+ along with GAS; see the file COPYING. If not, write to the Free
1.4399 -+ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
1.4400 -+ 02111-1307, USA. */
1.4401 -+
1.4402 -+#include <stdio.h>
1.4403 -+#include "as.h"
1.4404 -+#include "safe-ctype.h"
1.4405 -+#include "subsegs.h"
1.4406 -+#include "symcat.h"
1.4407 -+#include "opcodes/avr32-opc.h"
1.4408 -+#include "opcodes/avr32-asm.h"
1.4409 -+#include "elf/avr32.h"
1.4410 -+#include "dwarf2dbg.h"
1.4411 -+
1.4412 -+#define xDEBUG
1.4413 -+#define xOPC_CONSISTENCY_CHECK
1.4414 -+
1.4415 -+#ifdef DEBUG
1.4416 -+# define pr_debug(fmt, args...) fprintf(stderr, fmt, ##args)
1.4417 -+#else
1.4418 -+# define pr_debug(fmt, args...)
1.4419 -+#endif
1.4420 -+
1.4421 -+/* 3 MSB of instruction word indicate group. Group 7 -> extended */
1.4422 -+#define AVR32_COMPACT_P(opcode) ((opcode[0] & 0xe0) != 0xe0)
1.4423 -+
1.4424 -+#define streq(a, b) (strcmp(a, b) == 0)
1.4425 -+#define skip_whitespace(str) do { while(*(str) == ' ') ++(str); } while(0)
1.4426 -+
1.4427 -+/* Flags given on the command line */
1.4428 -+static int avr32_pic = FALSE;
1.4429 -+int linkrelax = FALSE;
1.4430 -+int avr32_iarcompat = FALSE;
1.4431 -+
1.4432 -+/* This array holds the chars that always start a comment. */
1.4433 -+const char comment_chars[] = "#";
1.4434 -+
1.4435 -+/* This array holds the chars that only start a comment at the
1.4436 -+ beginning of a line. We must include '#' here because the compiler
1.4437 -+ may produce #APP and #NO_APP in its output. */
1.4438 -+const char line_comment_chars[] = "#";
1.4439 -+
1.4440 -+/* These may be used instead of newline (same as ';' in C). */
1.4441 -+const char line_separator_chars[] = ";";
1.4442 -+
1.4443 -+/* Chars that can be used to separate mantissa from exponent in
1.4444 -+ floating point numbers. */
1.4445 -+const char EXP_CHARS[] = "eE";
1.4446 -+
1.4447 -+/* Chars that mean this number is a floating point constant. */
1.4448 -+const char FLT_CHARS[] = "dD";
1.4449 -+
1.4450 -+/* Pre-defined "_GLOBAL_OFFSET_TABLE_" */
1.4451 -+symbolS *GOT_symbol;
1.4452 -+
1.4453 -+static struct hash_control *avr32_mnemonic_htab;
1.4454 -+
1.4455 -+struct avr32_ifield_data
1.4456 -+{
1.4457 -+ bfd_vma value;
1.4458 -+ /* FIXME: Get rid of align_order and complain. complain is never
1.4459 -+ used, align_order is used in one place. Try to use the relax
1.4460 -+ table instead. */
1.4461 -+ unsigned int align_order;
1.4462 -+};
1.4463 -+
1.4464 -+struct avr32_insn
1.4465 -+{
1.4466 -+ const struct avr32_syntax *syntax;
1.4467 -+ expressionS immediate;
1.4468 -+ int pcrel;
1.4469 -+ int force_extended;
1.4470 -+ unsigned int next_slot;
1.4471 -+ bfd_reloc_code_real_type r_type;
1.4472 -+ struct avr32_ifield_data field_value[AVR32_MAX_FIELDS];
1.4473 -+};
1.4474 -+
1.4475 -+static struct avr32_insn current_insn;
1.4476 -+
1.4477 -+/* The target specific pseudo-ops we support. */
1.4478 -+static void s_rseg (int);
1.4479 -+static void s_cpool(int);
1.4480 -+
1.4481 -+const pseudo_typeS md_pseudo_table[] =
1.4482 -+{
1.4483 -+ /* Make sure that .word is 32 bits */
1.4484 -+ { "word", cons, 4 },
1.4485 -+ { "file", (void (*) PARAMS ((int))) dwarf2_directive_file, 0 },
1.4486 -+ { "loc", dwarf2_directive_loc, 0 },
1.4487 -+
1.4488 -+ /* .lcomm requires an explicit alignment parameter */
1.4489 -+ { "lcomm", s_lcomm, 1 },
1.4490 -+
1.4491 -+ /* AVR32-specific pseudo-ops */
1.4492 -+ { "cpool", s_cpool, 0},
1.4493 -+
1.4494 -+ /* IAR compatible pseudo-ops */
1.4495 -+ { "program", s_ignore, 0 },
1.4496 -+ { "public", s_globl, 0 },
1.4497 -+ { "extern", s_ignore, 0 },
1.4498 -+ { "module", s_ignore, 0 },
1.4499 -+ { "rseg", s_rseg, 0 },
1.4500 -+ { "dc8", cons, 1 },
1.4501 -+ { "dc16", cons, 2 },
1.4502 -+ { "dc32", cons, 4 },
1.4503 -+
1.4504 -+ { NULL, NULL, 0 }
1.4505 -+};
1.4506 -+
1.4507 -+/* Questionable stuff starts here */
1.4508 -+
1.4509 -+enum avr32_opinfo {
1.4510 -+ AVR32_OPINFO_NONE = BFD_RELOC_NONE,
1.4511 -+ AVR32_OPINFO_GOT,
1.4512 -+ AVR32_OPINFO_TLSGD,
1.4513 -+ AVR32_OPINFO_HI,
1.4514 -+ AVR32_OPINFO_LO,
1.4515 -+};
1.4516 -+
1.4517 -+enum avr32_arch {
1.4518 -+ ARCH_TYPE_AP,
1.4519 -+ ARCH_TYPE_UCR1,
1.4520 -+ ARCH_TYPE_UCR2,
1.4521 -+};
1.4522 -+
1.4523 -+struct arch_type_s
1.4524 -+{
1.4525 -+ /* Architecture name */
1.4526 -+ char *name;
1.4527 -+ /* Instruction Set Architecture Flags */
1.4528 -+ unsigned long isa_flags;
1.4529 -+};
1.4530 -+
1.4531 -+struct part_type_s
1.4532 -+{
1.4533 -+ /* Part name */
1.4534 -+ char *name;
1.4535 -+ /* Architecture type */
1.4536 -+ unsigned int arch;
1.4537 -+};
1.4538 -+
1.4539 -+static struct arch_type_s arch_types[] =
1.4540 -+{
1.4541 -+ {"ap", AVR32_V1 | AVR32_SIMD | AVR32_DSP | AVR32_PICO},
1.4542 -+ {"ucr1", AVR32_V1 | AVR32_DSP | AVR32_RMW},
1.4543 -+ {"ucr2", AVR32_V1 | AVR32_V2 | AVR32_DSP | AVR32_RMW},
1.4544 -+ {"all-insn", AVR32_V1 | AVR32_V2 | AVR32_SIMD | AVR32_DSP | AVR32_RMW | AVR32_FP | AVR32_PICO},
1.4545 -+ {NULL, 0}
1.4546 -+};
1.4547 -+
1.4548 -+static struct part_type_s part_types[] = {
1.4549 -+ {"ap7000", ARCH_TYPE_AP},
1.4550 -+ {"ap7001", ARCH_TYPE_AP},
1.4551 -+ {"ap7002", ARCH_TYPE_AP},
1.4552 -+ {"ap7200", ARCH_TYPE_AP},
1.4553 -+ {"uc3a0128", ARCH_TYPE_UCR2},
1.4554 -+ {"uc3a0256", ARCH_TYPE_UCR2},
1.4555 -+ {"uc3a0512es", ARCH_TYPE_UCR1},
1.4556 -+ {"uc3a0512", ARCH_TYPE_UCR2},
1.4557 -+ {"uc3a1128", ARCH_TYPE_UCR2},
1.4558 -+ {"uc3a1256es", ARCH_TYPE_UCR1},
1.4559 -+ {"uc3a1256", ARCH_TYPE_UCR2},
1.4560 -+ {"uc3a1512es", ARCH_TYPE_UCR1},
1.4561 -+ {"uc3a1512", ARCH_TYPE_UCR2},
1.4562 -+ {"uc3a364", ARCH_TYPE_UCR2},
1.4563 -+ {"uc3a364s", ARCH_TYPE_UCR2},
1.4564 -+ {"uc3a3128", ARCH_TYPE_UCR2},
1.4565 -+ {"uc3a3128s", ARCH_TYPE_UCR2},
1.4566 -+ {"uc3a3256", ARCH_TYPE_UCR2},
1.4567 -+ {"uc3a3256s", ARCH_TYPE_UCR2},
1.4568 -+ {"uc3b064", ARCH_TYPE_UCR1},
1.4569 -+ {"uc3b0128", ARCH_TYPE_UCR1},
1.4570 -+ {"uc3b0256es", ARCH_TYPE_UCR1},
1.4571 -+ {"uc3b0256", ARCH_TYPE_UCR1},
1.4572 -+ {"uc3b164", ARCH_TYPE_UCR1},
1.4573 -+ {"uc3b1128", ARCH_TYPE_UCR1},
1.4574 -+ {"uc3b1256es", ARCH_TYPE_UCR1},
1.4575 -+ {"uc3b1256", ARCH_TYPE_UCR1},
1.4576 -+ {NULL, 0}
1.4577 -+};
1.4578 -+
1.4579 -+/* Current architecture type. */
1.4580 -+static struct arch_type_s default_arch = {"all-insn", AVR32_V1 | AVR32_V2 | AVR32_SIMD | AVR32_DSP | AVR32_RMW | AVR32_FP | AVR32_PICO };
1.4581 -+static struct arch_type_s *avr32_arch = &default_arch;
1.4582 -+
1.4583 -+/* Display nicely formatted list of known part- and architecture names. */
1.4584 -+
1.4585 -+static void
1.4586 -+show_arch_list (FILE *stream)
1.4587 -+{
1.4588 -+ int i, x;
1.4589 -+
1.4590 -+ fprintf (stream, _("Known architecture names:"));
1.4591 -+ x = 1000;
1.4592 -+
1.4593 -+ for (i = 0; arch_types[i].name; i++)
1.4594 -+ {
1.4595 -+ int len = strlen (arch_types[i].name);
1.4596 -+
1.4597 -+ x += len + 1;
1.4598 -+
1.4599 -+ if (x < 75)
1.4600 -+ fprintf (stream, " %s", arch_types[i].name);
1.4601 -+ else
1.4602 -+ {
1.4603 -+ fprintf (stream, "\n %s", arch_types[i].name);
1.4604 -+ x = len + 2;
1.4605 -+ }
1.4606 -+ }
1.4607 -+
1.4608 -+ fprintf (stream, "\n");
1.4609 -+}
1.4610 -+
1.4611 -+static void
1.4612 -+show_part_list (FILE *stream)
1.4613 -+{
1.4614 -+ int i, x;
1.4615 -+
1.4616 -+ fprintf (stream, _("Known part names:"));
1.4617 -+ x = 1000;
1.4618 -+
1.4619 -+ for (i = 0; part_types[i].name; i++)
1.4620 -+ {
1.4621 -+ int len = strlen(part_types[i].name);
1.4622 -+
1.4623 -+ x += len + 1;
1.4624 -+
1.4625 -+ if (x < 75)
1.4626 -+ fprintf (stream, " %s", part_types[i].name);
1.4627 -+ else
1.4628 -+ {
1.4629 -+ fprintf(stream, "\n %s", part_types[i].name);
1.4630 -+ x = len + 2;
1.4631 -+ }
1.4632 -+ }
1.4633 -+
1.4634 -+ fprintf (stream, "\n");
1.4635 -+}
1.4636 -+
1.4637 -+const char *md_shortopts = "";
1.4638 -+struct option md_longopts[] =
1.4639 -+{
1.4640 -+#define OPTION_ARCH (OPTION_MD_BASE)
1.4641 -+#define OPTION_PART (OPTION_ARCH + 1)
1.4642 -+#define OPTION_IAR (OPTION_PART + 1)
1.4643 -+#define OPTION_PIC (OPTION_IAR + 1)
1.4644 -+#define OPTION_NOPIC (OPTION_PIC + 1)
1.4645 -+#define OPTION_LINKRELAX (OPTION_NOPIC + 1)
1.4646 -+#define OPTION_NOLINKRELAX (OPTION_LINKRELAX + 1)
1.4647 -+#define OPTION_DIRECT_DATA_REFS (OPTION_NOLINKRELAX + 1)
1.4648 -+ {"march", required_argument, NULL, OPTION_ARCH},
1.4649 -+ {"mpart", required_argument, NULL, OPTION_PART},
1.4650 -+ {"iar", no_argument, NULL, OPTION_IAR},
1.4651 -+ {"pic", no_argument, NULL, OPTION_PIC},
1.4652 -+ {"no-pic", no_argument, NULL, OPTION_NOPIC},
1.4653 -+ {"linkrelax", no_argument, NULL, OPTION_LINKRELAX},
1.4654 -+ {"no-linkrelax", no_argument, NULL, OPTION_NOLINKRELAX},
1.4655 -+ /* deprecated alias for -mpart=xxx */
1.4656 -+ {"mcpu", required_argument, NULL, OPTION_PART},
1.4657 -+ {NULL, no_argument, NULL, 0}
1.4658 -+};
1.4659 -+
1.4660 -+size_t md_longopts_size = sizeof (md_longopts);
1.4661 -+
1.4662 -+void
1.4663 -+md_show_usage (FILE *stream)
1.4664 -+{
1.4665 -+ fprintf (stream, _("\
1.4666 -+AVR32 options:\n\
1.4667 -+ -march=[arch-name] Select cpu architecture. [Default `all-insn']\n\
1.4668 -+ -mpart=[part-name] Select specific part. [Default `none']\n\
1.4669 -+ --pic Produce Position-Independent Code\n\
1.4670 -+ --no-pic Don't produce Position-Independent Code\n\
1.4671 -+ --linkrelax Produce output suitable for linker relaxing\n\
1.4672 -+ --no-linkrelax Don't produce output suitable for linker relaxing\n"));
1.4673 -+ show_arch_list(stream);
1.4674 -+}
1.4675 -+
1.4676 -+int
1.4677 -+md_parse_option (int c, char *arg ATTRIBUTE_UNUSED)
1.4678 -+{
1.4679 -+ switch (c)
1.4680 -+ {
1.4681 -+ case OPTION_ARCH:
1.4682 -+ {
1.4683 -+ int i;
1.4684 -+ char *s = alloca (strlen (arg) + 1);
1.4685 -+
1.4686 -+ {
1.4687 -+ char *t = s;
1.4688 -+ char *arg1 = arg;
1.4689 -+
1.4690 -+ do
1.4691 -+ *t = TOLOWER (*arg1++);
1.4692 -+ while (*t++);
1.4693 -+ }
1.4694 -+
1.4695 -+ /* Add backward compability */
1.4696 -+ if (strcmp ("uc", s)== 0)
1.4697 -+ {
1.4698 -+ as_warn("Deprecated arch `%s' specified. "
1.4699 -+ "Please use '-march=ucr1' instead. "
1.4700 -+ "Converting to arch 'ucr1'\n",
1.4701 -+ s);
1.4702 -+ s="ucr1";
1.4703 -+ }
1.4704 -+
1.4705 -+ for (i = 0; arch_types[i].name; ++i)
1.4706 -+ if (strcmp (arch_types[i].name, s) == 0)
1.4707 -+ break;
1.4708 -+
1.4709 -+ if (!arch_types[i].name)
1.4710 -+ {
1.4711 -+ show_arch_list (stderr);
1.4712 -+ as_fatal (_("unknown architecture: %s\n"), arg);
1.4713 -+ }
1.4714 -+
1.4715 -+ avr32_arch = &arch_types[i];
1.4716 -+ break;
1.4717 -+ }
1.4718 -+ case OPTION_PART:
1.4719 -+ {
1.4720 -+ int i;
1.4721 -+ char *s = alloca (strlen (arg) + 1);
1.4722 -+ char *t = s;
1.4723 -+ char *p = arg;
1.4724 -+
1.4725 -+ /* If arch type has already been set, don't bother.
1.4726 -+ -march= always overrides -mpart= */
1.4727 -+ if (avr32_arch != &default_arch)
1.4728 -+ break;
1.4729 -+
1.4730 -+ do
1.4731 -+ *t = TOLOWER (*p++);
1.4732 -+ while (*t++);
1.4733 -+
1.4734 -+ for (i = 0; part_types[i].name; ++i)
1.4735 -+ if (strcmp (part_types[i].name, s) == 0)
1.4736 -+ break;
1.4737 -+
1.4738 -+ if (!part_types[i].name)
1.4739 -+ {
1.4740 -+ show_part_list (stderr);
1.4741 -+ as_fatal (_("unknown part: %s\n"), arg);
1.4742 -+ }
1.4743 -+
1.4744 -+ avr32_arch = &arch_types[part_types[i].arch];
1.4745 -+ break;
1.4746 -+ }
1.4747 -+ case OPTION_IAR:
1.4748 -+ avr32_iarcompat = 1;
1.4749 -+ break;
1.4750 -+ case OPTION_PIC:
1.4751 -+ avr32_pic = 1;
1.4752 -+ break;
1.4753 -+ case OPTION_NOPIC:
1.4754 -+ avr32_pic = 0;
1.4755 -+ break;
1.4756 -+ case OPTION_LINKRELAX:
1.4757 -+ linkrelax = 1;
1.4758 -+ break;
1.4759 -+ case OPTION_NOLINKRELAX:
1.4760 -+ linkrelax = 0;
1.4761 -+ break;
1.4762 -+ default:
1.4763 -+ return 0;
1.4764 -+ }
1.4765 -+ return 1;
1.4766 -+}
1.4767 -+
1.4768 -+/* Can't use symbol_new here, so have to create a symbol and then at
1.4769 -+ a later date assign it a value. Thats what these functions do.
1.4770 -+
1.4771 -+ Shamelessly stolen from ARM. */
1.4772 -+
1.4773 -+static void
1.4774 -+symbol_locate (symbolS * symbolP,
1.4775 -+ const char * name, /* It is copied, the caller can modify. */
1.4776 -+ segT segment, /* Segment identifier (SEG_<something>). */
1.4777 -+ valueT valu, /* Symbol value. */
1.4778 -+ fragS * frag) /* Associated fragment. */
1.4779 -+{
1.4780 -+ unsigned int name_length;
1.4781 -+ char * preserved_copy_of_name;
1.4782 -+
1.4783 -+ name_length = strlen (name) + 1; /* +1 for \0. */
1.4784 -+ obstack_grow (¬es, name, name_length);
1.4785 -+ preserved_copy_of_name = obstack_finish (¬es);
1.4786 -+#ifdef STRIP_UNDERSCORE
1.4787 -+ if (preserved_copy_of_name[0] == '_')
1.4788 -+ preserved_copy_of_name++;
1.4789 -+#endif
1.4790 -+
1.4791 -+#ifdef tc_canonicalize_symbol_name
1.4792 -+ preserved_copy_of_name =
1.4793 -+ tc_canonicalize_symbol_name (preserved_copy_of_name);
1.4794 -+#endif
1.4795 -+
1.4796 -+ S_SET_NAME (symbolP, preserved_copy_of_name);
1.4797 -+
1.4798 -+ S_SET_SEGMENT (symbolP, segment);
1.4799 -+ S_SET_VALUE (symbolP, valu);
1.4800 -+ symbol_clear_list_pointers (symbolP);
1.4801 -+
1.4802 -+ symbol_set_frag (symbolP, frag);
1.4803 -+
1.4804 -+ /* Link to end of symbol chain. */
1.4805 -+ {
1.4806 -+ extern int symbol_table_frozen;
1.4807 -+
1.4808 -+ if (symbol_table_frozen)
1.4809 -+ abort ();
1.4810 -+ }
1.4811 -+
1.4812 -+ symbol_append (symbolP, symbol_lastP, & symbol_rootP, & symbol_lastP);
1.4813 -+
1.4814 -+ obj_symbol_new_hook (symbolP);
1.4815 -+
1.4816 -+#ifdef tc_symbol_new_hook
1.4817 -+ tc_symbol_new_hook (symbolP);
1.4818 -+#endif
1.4819 -+
1.4820 -+#ifdef DEBUG_SYMS
1.4821 -+ verify_symbol_chain (symbol_rootP, symbol_lastP);
1.4822 -+#endif /* DEBUG_SYMS */
1.4823 -+}
1.4824 -+
1.4825 -+struct cpool_entry
1.4826 -+{
1.4827 -+ int refcount;
1.4828 -+ offsetT offset;
1.4829 -+ expressionS exp;
1.4830 -+};
1.4831 -+
1.4832 -+struct cpool
1.4833 -+{
1.4834 -+ struct cpool *next;
1.4835 -+ int used;
1.4836 -+ struct cpool_entry *literals;
1.4837 -+ unsigned int padding;
1.4838 -+ unsigned int next_free_entry;
1.4839 -+ unsigned int id;
1.4840 -+ symbolS *symbol;
1.4841 -+ segT section;
1.4842 -+ subsegT sub_section;
1.4843 -+};
1.4844 -+
1.4845 -+struct cpool *cpool_list = NULL;
1.4846 -+
1.4847 -+static struct cpool *
1.4848 -+find_cpool(segT section, subsegT sub_section)
1.4849 -+{
1.4850 -+ struct cpool *pool;
1.4851 -+
1.4852 -+ for (pool = cpool_list; pool != NULL; pool = pool->next)
1.4853 -+ {
1.4854 -+ if (!pool->used
1.4855 -+ && pool->section == section
1.4856 -+ && pool->sub_section == sub_section)
1.4857 -+ break;
1.4858 -+ }
1.4859 -+
1.4860 -+ return pool;
1.4861 -+}
1.4862 -+
1.4863 -+static struct cpool *
1.4864 -+find_or_make_cpool(segT section, subsegT sub_section)
1.4865 -+{
1.4866 -+ static unsigned int next_cpool_id = 0;
1.4867 -+ struct cpool *pool;
1.4868 -+
1.4869 -+ pool = find_cpool(section, sub_section);
1.4870 -+
1.4871 -+ if (!pool)
1.4872 -+ {
1.4873 -+ pool = xmalloc(sizeof(*pool));
1.4874 -+ if (!pool)
1.4875 -+ return NULL;
1.4876 -+
1.4877 -+ pool->used = 0;
1.4878 -+ pool->literals = NULL;
1.4879 -+ pool->padding = 0;
1.4880 -+ pool->next_free_entry = 0;
1.4881 -+ pool->section = section;
1.4882 -+ pool->sub_section = sub_section;
1.4883 -+ pool->next = cpool_list;
1.4884 -+ pool->symbol = NULL;
1.4885 -+
1.4886 -+ cpool_list = pool;
1.4887 -+ }
1.4888 -+
1.4889 -+ /* NULL symbol means that the pool is new or has just been emptied. */
1.4890 -+ if (!pool->symbol)
1.4891 -+ {
1.4892 -+ pool->symbol = symbol_create(FAKE_LABEL_NAME, undefined_section,
1.4893 -+ 0, &zero_address_frag);
1.4894 -+ pool->id = next_cpool_id++;
1.4895 -+ }
1.4896 -+
1.4897 -+ return pool;
1.4898 -+}
1.4899 -+
1.4900 -+static struct cpool *
1.4901 -+add_to_cpool(expressionS *exp, unsigned int *index, int ref)
1.4902 -+{
1.4903 -+ struct cpool *pool;
1.4904 -+ unsigned int entry;
1.4905 -+
1.4906 -+ pool = find_or_make_cpool(now_seg, now_subseg);
1.4907 -+
1.4908 -+ /* Check if this constant is already in the pool. */
1.4909 -+ for (entry = 0; entry < pool->next_free_entry; entry++)
1.4910 -+ {
1.4911 -+ if ((pool->literals[entry].exp.X_op == exp->X_op)
1.4912 -+ && (exp->X_op == O_constant)
1.4913 -+ && (pool->literals[entry].exp.X_add_number
1.4914 -+ == exp->X_add_number)
1.4915 -+ && (pool->literals[entry].exp.X_unsigned
1.4916 -+ == exp->X_unsigned))
1.4917 -+ break;
1.4918 -+
1.4919 -+ if ((pool->literals[entry].exp.X_op == exp->X_op)
1.4920 -+ && (exp->X_op == O_symbol)
1.4921 -+ && (pool->literals[entry].exp.X_add_number
1.4922 -+ == exp->X_add_number)
1.4923 -+ && (pool->literals[entry].exp.X_add_symbol
1.4924 -+ == exp->X_add_symbol)
1.4925 -+ && (pool->literals[entry].exp.X_op_symbol
1.4926 -+ == exp->X_op_symbol))
1.4927 -+ break;
1.4928 -+ }
1.4929 -+
1.4930 -+ /* Create an entry if we didn't find a match */
1.4931 -+ if (entry == pool->next_free_entry)
1.4932 -+ {
1.4933 -+ pool->literals = xrealloc(pool->literals,
1.4934 -+ sizeof(struct cpool_entry) * (entry + 1));
1.4935 -+ pool->literals[entry].exp = *exp;
1.4936 -+ pool->literals[entry].refcount = 0;
1.4937 -+ pool->next_free_entry++;
1.4938 -+ }
1.4939 -+
1.4940 -+ if (index)
1.4941 -+ *index = entry;
1.4942 -+ if (ref)
1.4943 -+ pool->literals[entry].refcount++;
1.4944 -+
1.4945 -+ return pool;
1.4946 -+}
1.4947 -+
1.4948 -+struct avr32_operand
1.4949 -+{
1.4950 -+ int id;
1.4951 -+ int is_signed;
1.4952 -+ int is_pcrel;
1.4953 -+ int align_order;
1.4954 -+ int (*match)(char *str);
1.4955 -+ void (*parse)(const struct avr32_operand *op, char *str, int opindex);
1.4956 -+};
1.4957 -+
1.4958 -+static int
1.4959 -+match_anything(char *str ATTRIBUTE_UNUSED)
1.4960 -+{
1.4961 -+ return 1;
1.4962 -+}
1.4963 -+
1.4964 -+static int
1.4965 -+match_intreg(char *str)
1.4966 -+{
1.4967 -+ int regid, ret = 1;
1.4968 -+
1.4969 -+ regid = avr32_parse_intreg(str);
1.4970 -+ if (regid < 0)
1.4971 -+ ret = 0;
1.4972 -+
1.4973 -+ pr_debug("match_intreg: `%s': %d\n", str, ret);
1.4974 -+
1.4975 -+ return ret;
1.4976 -+}
1.4977 -+
1.4978 -+static int
1.4979 -+match_intreg_predec(char *str)
1.4980 -+{
1.4981 -+ int regid;
1.4982 -+
1.4983 -+ if (str[0] != '-' || str[1] != '-')
1.4984 -+ return 0;
1.4985 -+
1.4986 -+ regid = avr32_parse_intreg(str + 2);
1.4987 -+ if (regid < 0)
1.4988 -+ return 0;
1.4989 -+
1.4990 -+ return 1;
1.4991 -+}
1.4992 -+
1.4993 -+static int
1.4994 -+match_intreg_postinc(char *str)
1.4995 -+{
1.4996 -+ int regid, ret = 1;
1.4997 -+ char *p, c;
1.4998 -+
1.4999 -+ for (p = str; *p; p++)
1.5000 -+ if (*p == '+')
1.5001 -+ break;
1.5002 -+
1.5003 -+ if (p[0] != '+' || p[1] != '+')
1.5004 -+ return 0;
1.5005 -+
1.5006 -+ c = *p, *p = 0;
1.5007 -+ regid = avr32_parse_intreg(str);
1.5008 -+ if (regid < 0)
1.5009 -+ ret = 0;
1.5010 -+
1.5011 -+ *p = c;
1.5012 -+ return ret;
1.5013 -+}
1.5014 -+
1.5015 -+static int
1.5016 -+match_intreg_lsl(char *str)
1.5017 -+{
1.5018 -+ int regid, ret = 1;
1.5019 -+ char *p, c;
1.5020 -+
1.5021 -+ for (p = str; *p; p++)
1.5022 -+ if (*p == '<')
1.5023 -+ break;
1.5024 -+
1.5025 -+ if (p[0] && p[1] != '<')
1.5026 -+ return 0;
1.5027 -+
1.5028 -+ c = *p, *p = 0;
1.5029 -+ regid = avr32_parse_intreg(str);
1.5030 -+ if (regid < 0)
1.5031 -+ ret = 0;
1.5032 -+
1.5033 -+ *p = c;
1.5034 -+ return ret;
1.5035 -+}
1.5036 -+
1.5037 -+static int
1.5038 -+match_intreg_lsr(char *str)
1.5039 -+{
1.5040 -+ int regid, ret = 1;
1.5041 -+ char *p, c;
1.5042 -+
1.5043 -+ for (p = str; *p; p++)
1.5044 -+ if (*p == '>')
1.5045 -+ break;
1.5046 -+
1.5047 -+ if (p[0] && p[1] != '>')
1.5048 -+ return 0;
1.5049 -+
1.5050 -+ c = *p, *p = 0;
1.5051 -+
1.5052 -+ regid = avr32_parse_intreg(str);
1.5053 -+ if (regid < 0)
1.5054 -+ ret = 0;
1.5055 -+
1.5056 -+ *p = c;
1.5057 -+ return ret;
1.5058 -+}
1.5059 -+
1.5060 -+static int
1.5061 -+match_intreg_part(char *str)
1.5062 -+{
1.5063 -+ int regid, ret = 1;
1.5064 -+ char *p, c;
1.5065 -+
1.5066 -+ for (p = str; *p; p++)
1.5067 -+ if (*p == ':')
1.5068 -+ break;
1.5069 -+
1.5070 -+ if (p[0] != ':' || !ISPRINT(p[1]) || p[2] != '\0')
1.5071 -+ return 0;
1.5072 -+
1.5073 -+ c = *p, *p = 0;
1.5074 -+ regid = avr32_parse_intreg(str);
1.5075 -+ if (regid < 0)
1.5076 -+ ret = 0;
1.5077 -+
1.5078 -+ *p = c;
1.5079 -+
1.5080 -+ return ret;
1.5081 -+}
1.5082 -+
1.5083 -+#define match_intreg_disp match_anything
1.5084 -+
1.5085 -+static int
1.5086 -+match_intreg_index(char *str)
1.5087 -+{
1.5088 -+ int regid, ret = 1;
1.5089 -+ char *p, *end, c;
1.5090 -+
1.5091 -+ for (p = str; *p; p++)
1.5092 -+ if (*p == '[')
1.5093 -+ break;
1.5094 -+
1.5095 -+ /* don't allow empty displacement here (it makes no sense) */
1.5096 -+ if (p[0] != '[')
1.5097 -+ return 0;
1.5098 -+
1.5099 -+ for (end = p + 1; *end; end++) ;
1.5100 -+ if (*(--end) != ']')
1.5101 -+ return 0;
1.5102 -+
1.5103 -+ c = *end, *end = 0;
1.5104 -+ if (!match_intreg_lsl(p + 1))
1.5105 -+ ret = 0;
1.5106 -+ *end = c;
1.5107 -+
1.5108 -+ if (ret)
1.5109 -+ {
1.5110 -+ c = *p, *p = 0;
1.5111 -+ regid = avr32_parse_intreg(str);
1.5112 -+ if (regid < 0)
1.5113 -+ ret = 0;
1.5114 -+ *p = c;
1.5115 -+ }
1.5116 -+
1.5117 -+ return ret;
1.5118 -+}
1.5119 -+
1.5120 -+static int
1.5121 -+match_intreg_xindex(char *str)
1.5122 -+{
1.5123 -+ int regid, ret = 1;
1.5124 -+ char *p, *end, c;
1.5125 -+
1.5126 -+ for (p = str; *p; p++)
1.5127 -+ if (*p == '[')
1.5128 -+ break;
1.5129 -+
1.5130 -+ /* empty displacement makes no sense here either */
1.5131 -+ if (p[0] != '[')
1.5132 -+ return 0;
1.5133 -+
1.5134 -+ for (end = p + 1; *end; end++)
1.5135 -+ if (*end == '<')
1.5136 -+ break;
1.5137 -+
1.5138 -+ if (!streq(end, "<<2]"))
1.5139 -+ return 0;
1.5140 -+
1.5141 -+ c = *end, *end = 0;
1.5142 -+ if (!match_intreg_part(p + 1))
1.5143 -+ ret = 0;
1.5144 -+ *end = c;
1.5145 -+
1.5146 -+ if (ret)
1.5147 -+ {
1.5148 -+ c = *p, *p = 0;
1.5149 -+ regid = avr32_parse_intreg(str);
1.5150 -+ if (regid < 0)
1.5151 -+ ret = 0;
1.5152 -+ *p = c;
1.5153 -+ }
1.5154 -+
1.5155 -+ return ret;
1.5156 -+}
1.5157 -+
1.5158 -+/* The PC_UDISP_W operator may show up as a label or as a pc[disp]
1.5159 -+ expression. So there's no point in attempting to match this... */
1.5160 -+#define match_pc_disp match_anything
1.5161 -+
1.5162 -+static int
1.5163 -+match_sp(char *str)
1.5164 -+{
1.5165 -+ /* SP in any form will do */
1.5166 -+ return avr32_parse_intreg(str) == AVR32_REG_SP;
1.5167 -+}
1.5168 -+
1.5169 -+static int
1.5170 -+match_sp_disp(char *str)
1.5171 -+{
1.5172 -+ int regid, ret = 1;
1.5173 -+ char *p, c;
1.5174 -+
1.5175 -+ for (p = str; *p; p++)
1.5176 -+ if (*p == '[')
1.5177 -+ break;
1.5178 -+
1.5179 -+ /* allow empty displacement, meaning zero */
1.5180 -+ if (p[0] == '[')
1.5181 -+ {
1.5182 -+ char *end;
1.5183 -+ for (end = p + 1; *end; end++) ;
1.5184 -+ if (end[-1] != ']')
1.5185 -+ return 0;
1.5186 -+ }
1.5187 -+
1.5188 -+ c = *p, *p = 0;
1.5189 -+ regid = avr32_parse_intreg(str);
1.5190 -+ if (regid != AVR32_REG_SP)
1.5191 -+ ret = 0;
1.5192 -+
1.5193 -+ *p = c;
1.5194 -+ return ret;
1.5195 -+}
1.5196 -+
1.5197 -+static int
1.5198 -+match_cpno(char *str)
1.5199 -+{
1.5200 -+ if (strncasecmp(str, "cp", 2) != 0)
1.5201 -+ return 0;
1.5202 -+ return 1;
1.5203 -+}
1.5204 -+
1.5205 -+static int
1.5206 -+match_cpreg(char *str)
1.5207 -+{
1.5208 -+ if (strncasecmp(str, "cr", 2) != 0)
1.5209 -+ return 0;
1.5210 -+ return 1;
1.5211 -+}
1.5212 -+
1.5213 -+/* We allow complex expressions, and register names may show up as
1.5214 -+ symbols. Just make sure immediate expressions are always matched
1.5215 -+ last. */
1.5216 -+#define match_const match_anything
1.5217 -+#define match_jmplabel match_anything
1.5218 -+#define match_number match_anything
1.5219 -+
1.5220 -+/* Mnemonics that take reglists never accept anything else */
1.5221 -+#define match_reglist8 match_anything
1.5222 -+#define match_reglist9 match_anything
1.5223 -+#define match_reglist16 match_anything
1.5224 -+#define match_reglist_ldm match_anything
1.5225 -+#define match_reglist_cp8 match_anything
1.5226 -+#define match_reglist_cpd8 match_anything
1.5227 -+
1.5228 -+/* Ditto for retval, jospinc and mcall */
1.5229 -+#define match_retval match_anything
1.5230 -+#define match_jospinc match_anything
1.5231 -+#define match_mcall match_anything
1.5232 -+
1.5233 -+/* COH is used to select between two different syntaxes */
1.5234 -+static int
1.5235 -+match_coh(char *str)
1.5236 -+{
1.5237 -+ return strcasecmp(str, "coh") == 0;
1.5238 -+}
1.5239 -+
1.5240 -+static int
1.5241 -+match_fpreg(char *str)
1.5242 -+{
1.5243 -+ unsigned long regid;
1.5244 -+ char *endptr;
1.5245 -+
1.5246 -+ if ((str[0] != 'f' && str[0] != 'F')
1.5247 -+ || (str[1] != 'r' && str[1] != 'R'))
1.5248 -+ return 0;
1.5249 -+
1.5250 -+ str += 2;
1.5251 -+ regid = strtoul(str, &endptr, 10);
1.5252 -+ if (!*str || *endptr)
1.5253 -+ return 0;
1.5254 -+
1.5255 -+ return 1;
1.5256 -+}
1.5257 -+
1.5258 -+static int
1.5259 -+match_picoreg(char *str)
1.5260 -+{
1.5261 -+ int regid;
1.5262 -+
1.5263 -+ regid = avr32_parse_picoreg(str);
1.5264 -+ if (regid < 0)
1.5265 -+ return 0;
1.5266 -+ return 1;
1.5267 -+}
1.5268 -+
1.5269 -+#define match_pico_reglist_w match_anything
1.5270 -+#define match_pico_reglist_d match_anything
1.5271 -+
1.5272 -+static int
1.5273 -+match_pico_in(char *str)
1.5274 -+{
1.5275 -+ unsigned long regid;
1.5276 -+ char *end;
1.5277 -+
1.5278 -+ if (strncasecmp(str, "in", 2) != 0)
1.5279 -+ return 0;
1.5280 -+
1.5281 -+ str += 2;
1.5282 -+ regid = strtoul(str, &end, 10);
1.5283 -+ if (!*str || *end)
1.5284 -+ return 0;
1.5285 -+
1.5286 -+ return 1;
1.5287 -+}
1.5288 -+
1.5289 -+static int
1.5290 -+match_pico_out0(char *str)
1.5291 -+{
1.5292 -+ if (strcasecmp(str, "out0") != 0)
1.5293 -+ return 0;
1.5294 -+ return 1;
1.5295 -+}
1.5296 -+
1.5297 -+static int
1.5298 -+match_pico_out1(char *str)
1.5299 -+{
1.5300 -+ if (strcasecmp(str, "out1") != 0)
1.5301 -+ return 0;
1.5302 -+ return 1;
1.5303 -+}
1.5304 -+
1.5305 -+static int
1.5306 -+match_pico_out2(char *str)
1.5307 -+{
1.5308 -+ if (strcasecmp(str, "out2") != 0)
1.5309 -+ return 0;
1.5310 -+ return 1;
1.5311 -+}
1.5312 -+
1.5313 -+static int
1.5314 -+match_pico_out3(char *str)
1.5315 -+{
1.5316 -+ if (strcasecmp(str, "out3") != 0)
1.5317 -+ return 0;
1.5318 -+ return 1;
1.5319 -+}
1.5320 -+
1.5321 -+static void parse_nothing(const struct avr32_operand *op ATTRIBUTE_UNUSED,
1.5322 -+ char *str ATTRIBUTE_UNUSED,
1.5323 -+ int opindex ATTRIBUTE_UNUSED)
1.5324 -+{
1.5325 -+ /* Do nothing (this is used for "match-only" operands like COH) */
1.5326 -+}
1.5327 -+
1.5328 -+static void
1.5329 -+parse_const(const struct avr32_operand *op, char *str,
1.5330 -+ int opindex ATTRIBUTE_UNUSED)
1.5331 -+{
1.5332 -+ expressionS *exp = ¤t_insn.immediate;
1.5333 -+ expressionS *sym_exp;
1.5334 -+ int slot;
1.5335 -+ char *save;
1.5336 -+
1.5337 -+ pr_debug("parse_const: `%s' (signed: %d, pcrel: %d, align: %d)\n",
1.5338 -+ str, op->is_signed, op->is_pcrel, op->align_order);
1.5339 -+
1.5340 -+ save = input_line_pointer;
1.5341 -+ input_line_pointer = str;
1.5342 -+
1.5343 -+ expression(exp);
1.5344 -+
1.5345 -+ slot = current_insn.next_slot++;
1.5346 -+ current_insn.field_value[slot].align_order = op->align_order;
1.5347 -+ current_insn.pcrel = op->is_pcrel;
1.5348 -+
1.5349 -+ switch (exp->X_op)
1.5350 -+ {
1.5351 -+ case O_illegal:
1.5352 -+ as_bad(_("illegal operand"));
1.5353 -+ break;
1.5354 -+ case O_absent:
1.5355 -+ as_bad(_("missing operand"));
1.5356 -+ break;
1.5357 -+ case O_constant:
1.5358 -+ pr_debug(" -> constant: %ld\n", (long)exp->X_add_number);
1.5359 -+ current_insn.field_value[slot].value = exp->X_add_number;
1.5360 -+ break;
1.5361 -+ case O_uminus:
1.5362 -+ pr_debug(" -> uminus\n");
1.5363 -+ sym_exp = symbol_get_value_expression(exp->X_add_symbol);
1.5364 -+ switch (sym_exp->X_op) {
1.5365 -+ case O_subtract:
1.5366 -+ pr_debug(" -> subtract: switching operands\n");
1.5367 -+ exp->X_op_symbol = sym_exp->X_add_symbol;
1.5368 -+ exp->X_add_symbol = sym_exp->X_op_symbol;
1.5369 -+ exp->X_op = O_subtract;
1.5370 -+ /* TODO: Remove the old X_add_symbol */
1.5371 -+ break;
1.5372 -+ default:
1.5373 -+ as_bad(_("Expression too complex\n"));
1.5374 -+ break;
1.5375 -+ }
1.5376 -+ break;
1.5377 -+#if 0
1.5378 -+ case O_subtract:
1.5379 -+ /* Any expression subtracting a symbol from the current section
1.5380 -+ can be made PC-relative by adding the right offset. */
1.5381 -+ if (S_GET_SEGMENT(exp->X_op_symbol) == now_seg)
1.5382 -+ current_insn.pcrel = TRUE;
1.5383 -+ pr_debug(" -> subtract: pcrel? %s\n",
1.5384 -+ current_insn.pcrel ? "yes" : "no");
1.5385 -+ /* fall through */
1.5386 -+#endif
1.5387 -+ default:
1.5388 -+ pr_debug(" -> (%p <%d> %p + %d)\n",
1.5389 -+ exp->X_add_symbol, exp->X_op, exp->X_op_symbol,
1.5390 -+ exp->X_add_number);
1.5391 -+ current_insn.field_value[slot].value = 0;
1.5392 -+ break;
1.5393 -+ }
1.5394 -+
1.5395 -+ input_line_pointer = save;
1.5396 -+}
1.5397 -+
1.5398 -+static void
1.5399 -+parse_jmplabel(const struct avr32_operand *op, char *str,
1.5400 -+ int opindex ATTRIBUTE_UNUSED)
1.5401 -+{
1.5402 -+ expressionS *exp = ¤t_insn.immediate;
1.5403 -+ int slot;
1.5404 -+ char *save;
1.5405 -+
1.5406 -+ pr_debug("parse_jmplabel: `%s' (signed: %d, pcrel: %d, align: %d)\n",
1.5407 -+ str, op->is_signed, op->is_pcrel, op->align_order);
1.5408 -+
1.5409 -+ save = input_line_pointer;
1.5410 -+ input_line_pointer = str;
1.5411 -+
1.5412 -+ expression(exp);
1.5413 -+
1.5414 -+ slot = current_insn.next_slot++;
1.5415 -+ current_insn.field_value[slot].align_order = op->align_order;
1.5416 -+ current_insn.pcrel = TRUE;
1.5417 -+
1.5418 -+ switch (exp->X_op)
1.5419 -+ {
1.5420 -+ case O_illegal:
1.5421 -+ as_bad(_("illegal operand"));
1.5422 -+ break;
1.5423 -+ case O_absent:
1.5424 -+ as_bad(_("missing operand"));
1.5425 -+ break;
1.5426 -+ case O_constant:
1.5427 -+ pr_debug(" -> constant: %ld\n", (long)exp->X_add_number);
1.5428 -+ current_insn.field_value[slot].value = exp->X_add_number;
1.5429 -+ current_insn.pcrel = 0;
1.5430 -+ break;
1.5431 -+ default:
1.5432 -+ pr_debug(" -> (%p <%d> %p + %d)\n",
1.5433 -+ exp->X_add_symbol, exp->X_op, exp->X_op_symbol,
1.5434 -+ exp->X_add_number);
1.5435 -+ current_insn.field_value[slot].value = 0;
1.5436 -+ break;
1.5437 -+ }
1.5438 -+
1.5439 -+ input_line_pointer = save;
1.5440 -+}
1.5441 -+
1.5442 -+static void
1.5443 -+parse_intreg(const struct avr32_operand *op ATTRIBUTE_UNUSED,
1.5444 -+ char *str, int opindex ATTRIBUTE_UNUSED)
1.5445 -+{
1.5446 -+ int regid, slot;
1.5447 -+
1.5448 -+ pr_debug("parse_intreg: `%s'\n", str);
1.5449 -+
1.5450 -+ regid = avr32_parse_intreg(str);
1.5451 -+ assert(regid >= 0);
1.5452 -+
1.5453 -+ slot = current_insn.next_slot++;
1.5454 -+ current_insn.field_value[slot].value = regid;
1.5455 -+ current_insn.field_value[slot].align_order = op->align_order;
1.5456 -+}
1.5457 -+
1.5458 -+static void
1.5459 -+parse_intreg_predec(const struct avr32_operand *op, char *str, int opindex)
1.5460 -+{
1.5461 -+ parse_intreg(op, str + 2, opindex);
1.5462 -+}
1.5463 -+
1.5464 -+static void
1.5465 -+parse_intreg_postinc(const struct avr32_operand *op, char *str, int opindex)
1.5466 -+{
1.5467 -+ char *p, c;
1.5468 -+
1.5469 -+ pr_debug("parse_intreg_postinc: `%s'\n", str);
1.5470 -+
1.5471 -+ for (p = str; *p != '+'; p++) ;
1.5472 -+
1.5473 -+ c = *p, *p = 0;
1.5474 -+ parse_intreg(op, str, opindex);
1.5475 -+ *p = c;
1.5476 -+}
1.5477 -+
1.5478 -+static void
1.5479 -+parse_intreg_shift(const struct avr32_operand *op ATTRIBUTE_UNUSED,
1.5480 -+ char *str, int opindex ATTRIBUTE_UNUSED)
1.5481 -+{
1.5482 -+ int regid, slot, shift = 0;
1.5483 -+ char *p, c;
1.5484 -+ char shiftop;
1.5485 -+
1.5486 -+ pr_debug("parse Ry<<sa: `%s'\n", str);
1.5487 -+
1.5488 -+ for (p = str; *p; p++)
1.5489 -+ if (*p == '<' || *p == '>')
1.5490 -+ break;
1.5491 -+
1.5492 -+ shiftop = *p;
1.5493 -+
1.5494 -+ c = *p, *p = 0;
1.5495 -+ regid = avr32_parse_intreg(str);
1.5496 -+ assert(regid >= 0);
1.5497 -+ *p = c;
1.5498 -+
1.5499 -+ if (c)
1.5500 -+ {
1.5501 -+ if (p[0] != shiftop || p[1] != shiftop)
1.5502 -+ as_bad(_("expected shift operator in `%s'"), p);
1.5503 -+ else
1.5504 -+ {
1.5505 -+ expressionS exp;
1.5506 -+ char *saved;
1.5507 -+
1.5508 -+ saved = input_line_pointer;
1.5509 -+ input_line_pointer = p + 2;
1.5510 -+ expression(&exp);
1.5511 -+ input_line_pointer = saved;
1.5512 -+
1.5513 -+ if (exp.X_op != O_constant)
1.5514 -+ as_bad(_("shift amount must be a numeric constant"));
1.5515 -+ else
1.5516 -+ shift = exp.X_add_number;
1.5517 -+ }
1.5518 -+ }
1.5519 -+
1.5520 -+ slot = current_insn.next_slot++;
1.5521 -+ current_insn.field_value[slot].value = regid;
1.5522 -+ slot = current_insn.next_slot++;
1.5523 -+ current_insn.field_value[slot].value = shift;
1.5524 -+}
1.5525 -+
1.5526 -+/* The match() function selected the right opcode, so it doesn't
1.5527 -+ matter which way we shift any more. */
1.5528 -+#define parse_intreg_lsl parse_intreg_shift
1.5529 -+#define parse_intreg_lsr parse_intreg_shift
1.5530 -+
1.5531 -+static void
1.5532 -+parse_intreg_part(const struct avr32_operand *op, char *str,
1.5533 -+ int opindex ATTRIBUTE_UNUSED)
1.5534 -+{
1.5535 -+ static const char bparts[] = { 'b', 'l', 'u', 't' };
1.5536 -+ static const char hparts[] = { 'b', 't' };
1.5537 -+ unsigned int slot, sel;
1.5538 -+ int regid;
1.5539 -+ char *p, c;
1.5540 -+
1.5541 -+ pr_debug("parse reg:part `%s'\n", str);
1.5542 -+
1.5543 -+ for (p = str; *p; p++)
1.5544 -+ if (*p == ':')
1.5545 -+ break;
1.5546 -+
1.5547 -+ c = *p, *p = 0;
1.5548 -+ regid = avr32_parse_intreg(str);
1.5549 -+ assert(regid >= 0);
1.5550 -+ *p = c;
1.5551 -+
1.5552 -+ assert(c == ':');
1.5553 -+
1.5554 -+ if (op->align_order)
1.5555 -+ {
1.5556 -+ for (sel = 0; sel < sizeof(hparts); sel++)
1.5557 -+ if (TOLOWER(p[1]) == hparts[sel])
1.5558 -+ break;
1.5559 -+
1.5560 -+ if (sel >= sizeof(hparts))
1.5561 -+ {
1.5562 -+ as_bad(_("invalid halfword selector `%c' (must be either b or t)"),
1.5563 -+ p[1]);
1.5564 -+ sel = 0;
1.5565 -+ }
1.5566 -+ }
1.5567 -+ else
1.5568 -+ {
1.5569 -+ for (sel = 0; sel < sizeof(bparts); sel++)
1.5570 -+ if (TOLOWER(p[1]) == bparts[sel])
1.5571 -+ break;
1.5572 -+
1.5573 -+ if (sel >= sizeof(bparts))
1.5574 -+ {
1.5575 -+ as_bad(_("invalid byte selector `%c' (must be one of b,l,u,t)"),
1.5576 -+ p[1]);
1.5577 -+ sel = 0;
1.5578 -+ }
1.5579 -+ }
1.5580 -+
1.5581 -+ slot = current_insn.next_slot++;
1.5582 -+ current_insn.field_value[slot].value = regid;
1.5583 -+ slot = current_insn.next_slot++;
1.5584 -+ current_insn.field_value[slot].value = sel;
1.5585 -+}
1.5586 -+
1.5587 -+/* This is the parser for "Rp[displacement]" expressions. In addition
1.5588 -+ to the "official" syntax, we accept a label as a replacement for
1.5589 -+ the register expression. This syntax implies Rp=PC and the
1.5590 -+ displacement is the pc-relative distance to the label. */
1.5591 -+static void
1.5592 -+parse_intreg_disp(const struct avr32_operand *op, char *str, int opindex)
1.5593 -+{
1.5594 -+ expressionS *exp = ¤t_insn.immediate;
1.5595 -+ int slot, regid;
1.5596 -+ char *save, *p, c;
1.5597 -+
1.5598 -+ pr_debug("parse_intreg_disp: `%s' (signed: %d, pcrel: %d, align: %d)\n",
1.5599 -+ str, op->is_signed, op->is_pcrel, op->align_order);
1.5600 -+
1.5601 -+ for (p = str; *p; p++)
1.5602 -+ if (*p == '[')
1.5603 -+ break;
1.5604 -+
1.5605 -+ slot = current_insn.next_slot++;
1.5606 -+
1.5607 -+ /* First, check if we have a valid register either before '[' or as
1.5608 -+ the sole expression. If so, we use the Rp[disp] syntax. */
1.5609 -+ c = *p, *p = 0;
1.5610 -+ regid = avr32_parse_intreg(str);
1.5611 -+ *p = c;
1.5612 -+
1.5613 -+ if (regid >= 0)
1.5614 -+ {
1.5615 -+ current_insn.field_value[slot].value = regid;
1.5616 -+
1.5617 -+ slot = current_insn.next_slot++;
1.5618 -+ current_insn.field_value[slot].align_order = op->align_order;
1.5619 -+
1.5620 -+ if (c == '[')
1.5621 -+ {
1.5622 -+ save = input_line_pointer;
1.5623 -+ input_line_pointer = p + 1;
1.5624 -+
1.5625 -+ expression(exp);
1.5626 -+
1.5627 -+ if (*input_line_pointer != ']')
1.5628 -+ as_bad(_("junk after displacement expression"));
1.5629 -+
1.5630 -+ input_line_pointer = save;
1.5631 -+
1.5632 -+ switch (exp->X_op)
1.5633 -+ {
1.5634 -+ case O_illegal:
1.5635 -+ as_bad(_("illegal displacement expression"));
1.5636 -+ break;
1.5637 -+ case O_absent:
1.5638 -+ as_bad(_("missing displacement expression"));
1.5639 -+ break;
1.5640 -+ case O_constant:
1.5641 -+ pr_debug(" -> constant: %ld\n", exp->X_add_number);
1.5642 -+ current_insn.field_value[slot].value = exp->X_add_number;
1.5643 -+ break;
1.5644 -+#if 0
1.5645 -+ case O_subtract:
1.5646 -+ if (S_GET_SEGMENT(exp->X_op_symbol) == now_seg)
1.5647 -+ current_insn.pcrel = TRUE;
1.5648 -+ pr_debug(" -> subtract: pcrel? %s\n",
1.5649 -+ current_insn.pcrel ? "yes" : "no");
1.5650 -+ /* fall through */
1.5651 -+#endif
1.5652 -+ default:
1.5653 -+ pr_debug(" -> (%p <%d> %p + %d)\n",
1.5654 -+ exp->X_add_symbol, exp->X_op, exp->X_op_symbol,
1.5655 -+ exp->X_add_number);
1.5656 -+ current_insn.field_value[slot].value = 0;
1.5657 -+ }
1.5658 -+ }
1.5659 -+ else
1.5660 -+ {
1.5661 -+ exp->X_op = O_constant;
1.5662 -+ exp->X_add_number = 0;
1.5663 -+ current_insn.field_value[slot].value = 0;
1.5664 -+ }
1.5665 -+ }
1.5666 -+ else
1.5667 -+ {
1.5668 -+ /* Didn't find a valid register. Try parsing it as a label. */
1.5669 -+ current_insn.field_value[slot].value = AVR32_REG_PC;
1.5670 -+ parse_jmplabel(op, str, opindex);
1.5671 -+ }
1.5672 -+}
1.5673 -+
1.5674 -+static void
1.5675 -+parse_intreg_index(const struct avr32_operand *op ATTRIBUTE_UNUSED,
1.5676 -+ char *str, int opindex ATTRIBUTE_UNUSED)
1.5677 -+{
1.5678 -+ int slot, regid;
1.5679 -+ char *p, *end, c;
1.5680 -+
1.5681 -+ for (p = str; *p; p++)
1.5682 -+ if (*p == '[')
1.5683 -+ break;
1.5684 -+
1.5685 -+ assert(*p);
1.5686 -+
1.5687 -+ c = *p, *p = 0;
1.5688 -+ regid = avr32_parse_intreg(str);
1.5689 -+ assert(regid >= 0);
1.5690 -+ *p = c;
1.5691 -+
1.5692 -+ slot = current_insn.next_slot++;
1.5693 -+ current_insn.field_value[slot].value = regid;
1.5694 -+
1.5695 -+ p++;
1.5696 -+ for (end = p; *end; end++)
1.5697 -+ if (*end == ']' || *end == '<')
1.5698 -+ break;
1.5699 -+
1.5700 -+ assert(*end);
1.5701 -+
1.5702 -+ c = *end, *end = 0;
1.5703 -+ regid = avr32_parse_intreg(p);
1.5704 -+ assert(regid >= 0);
1.5705 -+ *end = c;
1.5706 -+
1.5707 -+ slot = current_insn.next_slot++;
1.5708 -+ current_insn.field_value[slot].value = regid;
1.5709 -+
1.5710 -+ slot = current_insn.next_slot++;
1.5711 -+ current_insn.field_value[slot].value = 0;
1.5712 -+
1.5713 -+ if (*end == '<')
1.5714 -+ {
1.5715 -+ expressionS exp;
1.5716 -+ char *save;
1.5717 -+
1.5718 -+ p = end + 2;
1.5719 -+ for (end = p; *end; end++)
1.5720 -+ if (*end == ']')
1.5721 -+ break;
1.5722 -+
1.5723 -+ assert(*end == ']');
1.5724 -+
1.5725 -+ c = *end, *end = 0;
1.5726 -+ save = input_line_pointer;
1.5727 -+ input_line_pointer = p;
1.5728 -+ expression(&exp);
1.5729 -+
1.5730 -+ if (*input_line_pointer)
1.5731 -+ as_bad(_("junk after shift expression"));
1.5732 -+
1.5733 -+ *end = c;
1.5734 -+ input_line_pointer = save;
1.5735 -+
1.5736 -+ if (exp.X_op == O_constant)
1.5737 -+ current_insn.field_value[slot].value = exp.X_add_number;
1.5738 -+ else
1.5739 -+ as_bad(_("shift expression too complex"));
1.5740 -+ }
1.5741 -+}
1.5742 -+
1.5743 -+static void
1.5744 -+parse_intreg_xindex(const struct avr32_operand *op, char *str, int opindex)
1.5745 -+{
1.5746 -+ int slot, regid;
1.5747 -+ char *p, *end, c;
1.5748 -+
1.5749 -+ for (p = str; *p; p++)
1.5750 -+ if (*p == '[')
1.5751 -+ break;
1.5752 -+
1.5753 -+ assert(*p);
1.5754 -+
1.5755 -+ c = *p, *p = 0;
1.5756 -+ regid = avr32_parse_intreg(str);
1.5757 -+ assert(regid >= 0);
1.5758 -+ *p = c;
1.5759 -+
1.5760 -+ slot = current_insn.next_slot++;
1.5761 -+ current_insn.field_value[slot].value = regid;
1.5762 -+
1.5763 -+ p++;
1.5764 -+ for (end = p; *end; end++)
1.5765 -+ if (*end == '<')
1.5766 -+ break;
1.5767 -+
1.5768 -+ assert(*end);
1.5769 -+
1.5770 -+ c = *end, *end = 0;
1.5771 -+ parse_intreg_part(op, p, opindex);
1.5772 -+ *end = c;
1.5773 -+}
1.5774 -+
1.5775 -+static void
1.5776 -+parse_pc_disp(const struct avr32_operand *op, char *str, int opindex)
1.5777 -+{
1.5778 -+ char *p, c;
1.5779 -+
1.5780 -+ for (p = str; *p; p++)
1.5781 -+ if (*p == '[')
1.5782 -+ break;
1.5783 -+
1.5784 -+ /* The lddpc instruction comes in two different syntax variants:
1.5785 -+ lddpc reg, expression
1.5786 -+ lddpc reg, pc[disp]
1.5787 -+ If the operand contains a '[', we use the second form. */
1.5788 -+ if (*p)
1.5789 -+ {
1.5790 -+ int regid;
1.5791 -+
1.5792 -+ c = *p, *p = 0;
1.5793 -+ regid = avr32_parse_intreg(str);
1.5794 -+ *p = c;
1.5795 -+ if (regid == AVR32_REG_PC)
1.5796 -+ {
1.5797 -+ char *end;
1.5798 -+
1.5799 -+ for (end = ++p; *end; end++) ;
1.5800 -+ if (*(--end) != ']')
1.5801 -+ as_bad(_("unrecognized form of instruction: `%s'"), str);
1.5802 -+ else
1.5803 -+ {
1.5804 -+ c = *end, *end = 0;
1.5805 -+ parse_const(op, p, opindex);
1.5806 -+ *end = c;
1.5807 -+ current_insn.pcrel = 0;
1.5808 -+ }
1.5809 -+ }
1.5810 -+ else
1.5811 -+ as_bad(_("unrecognized form of instruction: `%s'"), str);
1.5812 -+ }
1.5813 -+ else
1.5814 -+ {
1.5815 -+ parse_jmplabel(op, str, opindex);
1.5816 -+ }
1.5817 -+}
1.5818 -+
1.5819 -+static void parse_sp(const struct avr32_operand *op ATTRIBUTE_UNUSED,
1.5820 -+ char *str ATTRIBUTE_UNUSED,
1.5821 -+ int opindex ATTRIBUTE_UNUSED)
1.5822 -+{
1.5823 -+ int slot;
1.5824 -+
1.5825 -+ slot = current_insn.next_slot++;
1.5826 -+ current_insn.field_value[slot].value = AVR32_REG_SP;
1.5827 -+}
1.5828 -+
1.5829 -+static void
1.5830 -+parse_sp_disp(const struct avr32_operand *op, char *str, int opindex)
1.5831 -+{
1.5832 -+ char *p, c;
1.5833 -+
1.5834 -+ for (; *str; str++)
1.5835 -+ if (*str == '[')
1.5836 -+ break;
1.5837 -+
1.5838 -+ assert(*str);
1.5839 -+
1.5840 -+ for (p = ++str; *p; p++)
1.5841 -+ if (*p == ']')
1.5842 -+ break;
1.5843 -+
1.5844 -+ c = *p, *p = 0;
1.5845 -+ parse_const(op, str, opindex);
1.5846 -+ *p = c;
1.5847 -+}
1.5848 -+
1.5849 -+static void
1.5850 -+parse_cpno(const struct avr32_operand *op ATTRIBUTE_UNUSED, char *str,
1.5851 -+ int opindex ATTRIBUTE_UNUSED)
1.5852 -+{
1.5853 -+ int slot;
1.5854 -+
1.5855 -+ str += 2;
1.5856 -+ if (*str == '#')
1.5857 -+ str++;
1.5858 -+ if (*str < '0' || *str > '7' || str[1])
1.5859 -+ as_bad(_("invalid coprocessor `%s'"), str);
1.5860 -+
1.5861 -+ slot = current_insn.next_slot++;
1.5862 -+ current_insn.field_value[slot].value = *str - '0';
1.5863 -+}
1.5864 -+
1.5865 -+static void
1.5866 -+parse_cpreg(const struct avr32_operand *op, char *str,
1.5867 -+ int opindex ATTRIBUTE_UNUSED)
1.5868 -+{
1.5869 -+ unsigned int crid;
1.5870 -+ int slot;
1.5871 -+ char *endptr;
1.5872 -+
1.5873 -+ str += 2;
1.5874 -+ crid = strtoul(str, &endptr, 10);
1.5875 -+ if (*endptr || crid > 15 || crid & ((1 << op->align_order) - 1))
1.5876 -+ as_bad(_("invalid coprocessor register `%s'"), str);
1.5877 -+
1.5878 -+ crid >>= op->align_order;
1.5879 -+
1.5880 -+ slot = current_insn.next_slot++;
1.5881 -+ current_insn.field_value[slot].value = crid;
1.5882 -+}
1.5883 -+
1.5884 -+static void
1.5885 -+parse_number(const struct avr32_operand *op, char *str,
1.5886 -+ int opindex ATTRIBUTE_UNUSED)
1.5887 -+{
1.5888 -+ expressionS exp;
1.5889 -+ int slot;
1.5890 -+ char *save;
1.5891 -+
1.5892 -+ save = input_line_pointer;
1.5893 -+ input_line_pointer = str;
1.5894 -+ expression(&exp);
1.5895 -+ input_line_pointer = save;
1.5896 -+
1.5897 -+ slot = current_insn.next_slot++;
1.5898 -+ current_insn.field_value[slot].align_order = op->align_order;
1.5899 -+
1.5900 -+ if (exp.X_op == O_constant)
1.5901 -+ current_insn.field_value[slot].value = exp.X_add_number;
1.5902 -+ else
1.5903 -+ as_bad(_("invalid numeric expression `%s'"), str);
1.5904 -+}
1.5905 -+
1.5906 -+static void
1.5907 -+parse_reglist8(const struct avr32_operand *op ATTRIBUTE_UNUSED,
1.5908 -+ char *str, int opindex ATTRIBUTE_UNUSED)
1.5909 -+{
1.5910 -+ unsigned long regmask;
1.5911 -+ unsigned long value = 0;
1.5912 -+ int slot;
1.5913 -+ char *tail;
1.5914 -+
1.5915 -+ regmask = avr32_parse_reglist(str, &tail);
1.5916 -+ if (*tail)
1.5917 -+ as_bad(_("invalid register list `%s'"), str);
1.5918 -+ else
1.5919 -+ {
1.5920 -+ if (avr32_make_regmask8(regmask, &value))
1.5921 -+ as_bad(_("register list `%s' doesn't fit"), str);
1.5922 -+ }
1.5923 -+
1.5924 -+ slot = current_insn.next_slot++;
1.5925 -+ current_insn.field_value[slot].value = value;
1.5926 -+}
1.5927 -+
1.5928 -+static int
1.5929 -+parse_reglist_tail(char *str, unsigned long regmask)
1.5930 -+{
1.5931 -+ expressionS exp;
1.5932 -+ char *save, *p, c;
1.5933 -+ int regid;
1.5934 -+
1.5935 -+ for (p = str + 1; *p; p++)
1.5936 -+ if (*p == '=')
1.5937 -+ break;
1.5938 -+
1.5939 -+ if (!*p)
1.5940 -+ {
1.5941 -+ as_bad(_("invalid register list `%s'"), str);
1.5942 -+ return -2;
1.5943 -+ }
1.5944 -+
1.5945 -+ c = *p, *p = 0;
1.5946 -+ regid = avr32_parse_intreg(str);
1.5947 -+ *p = c;
1.5948 -+
1.5949 -+ if (regid != 12)
1.5950 -+ {
1.5951 -+ as_bad(_("invalid register list `%s'"), str);
1.5952 -+ return -2;
1.5953 -+ }
1.5954 -+
1.5955 -+ /* If we have an assignment, we must pop PC and we must _not_
1.5956 -+ pop LR or R12 */
1.5957 -+ if (!(regmask & (1 << AVR32_REG_PC)))
1.5958 -+ {
1.5959 -+ as_bad(_("return value specified for non-return instruction"));
1.5960 -+ return -2;
1.5961 -+ }
1.5962 -+ else if (regmask & ((1 << AVR32_REG_R12) | (1 << AVR32_REG_LR)))
1.5963 -+ {
1.5964 -+ as_bad(_("can't pop LR or R12 when specifying return value"));
1.5965 -+ return -2;
1.5966 -+ }
1.5967 -+
1.5968 -+ save = input_line_pointer;
1.5969 -+ input_line_pointer = p + 1;
1.5970 -+ expression(&exp);
1.5971 -+ input_line_pointer = save;
1.5972 -+
1.5973 -+ if (exp.X_op != O_constant
1.5974 -+ || exp.X_add_number < -1
1.5975 -+ || exp.X_add_number > 1)
1.5976 -+ {
1.5977 -+ as_bad(_("invalid return value `%s'"), str);
1.5978 -+ return -2;
1.5979 -+ }
1.5980 -+
1.5981 -+ return exp.X_add_number;
1.5982 -+}
1.5983 -+
1.5984 -+static void
1.5985 -+parse_reglist9(const struct avr32_operand *op ATTRIBUTE_UNUSED,
1.5986 -+ char *str, int opindex ATTRIBUTE_UNUSED)
1.5987 -+{
1.5988 -+ unsigned long regmask;
1.5989 -+ unsigned long value = 0, kbit = 0;
1.5990 -+ int slot;
1.5991 -+ char *tail;
1.5992 -+
1.5993 -+ regmask = avr32_parse_reglist(str, &tail);
1.5994 -+ /* printf("parsed reglist16: %04lx, tail: `%s'\n", regmask, tail); */
1.5995 -+ if (*tail)
1.5996 -+ {
1.5997 -+ int retval;
1.5998 -+
1.5999 -+ retval = parse_reglist_tail(tail, regmask);
1.6000 -+
1.6001 -+ switch (retval)
1.6002 -+ {
1.6003 -+ case -1:
1.6004 -+ regmask |= 1 << AVR32_REG_LR;
1.6005 -+ break;
1.6006 -+ case 0:
1.6007 -+ break;
1.6008 -+ case 1:
1.6009 -+ regmask |= 1 << AVR32_REG_R12;
1.6010 -+ break;
1.6011 -+ default:
1.6012 -+ break;
1.6013 -+ }
1.6014 -+
1.6015 -+ kbit = 1;
1.6016 -+ }
1.6017 -+
1.6018 -+ if (avr32_make_regmask8(regmask, &value))
1.6019 -+ as_bad(_("register list `%s' doesn't fit"), str);
1.6020 -+
1.6021 -+
1.6022 -+ slot = current_insn.next_slot++;
1.6023 -+ current_insn.field_value[slot].value = (value << 1) | kbit;
1.6024 -+}
1.6025 -+
1.6026 -+static void
1.6027 -+parse_reglist16(const struct avr32_operand *op ATTRIBUTE_UNUSED,
1.6028 -+ char *str, int opindex ATTRIBUTE_UNUSED)
1.6029 -+{
1.6030 -+ unsigned long regmask;
1.6031 -+ int slot;
1.6032 -+ char *tail;
1.6033 -+
1.6034 -+ regmask = avr32_parse_reglist(str, &tail);
1.6035 -+ if (*tail)
1.6036 -+ as_bad(_("invalid register list `%s'"), str);
1.6037 -+
1.6038 -+ slot = current_insn.next_slot++;
1.6039 -+ current_insn.field_value[slot].value = regmask;
1.6040 -+}
1.6041 -+
1.6042 -+static void
1.6043 -+parse_reglist_ldm(const struct avr32_operand *op ATTRIBUTE_UNUSED,
1.6044 -+ char *str, int opindex ATTRIBUTE_UNUSED)
1.6045 -+{
1.6046 -+ unsigned long regmask;
1.6047 -+ int slot, rp, w_bit = 0;
1.6048 -+ char *tail, *p, c;
1.6049 -+
1.6050 -+ for (p = str; *p && *p != ','; p++)
1.6051 -+ if (*p == '+')
1.6052 -+ break;
1.6053 -+
1.6054 -+ c = *p, *p = 0;
1.6055 -+ rp = avr32_parse_intreg(str);
1.6056 -+ *p = c;
1.6057 -+ if (rp < 0)
1.6058 -+ {
1.6059 -+ as_bad(_("invalid destination register in `%s'"), str);
1.6060 -+ return;
1.6061 -+ }
1.6062 -+
1.6063 -+ if (p[0] == '+' && p[1] == '+')
1.6064 -+ {
1.6065 -+ w_bit = 1;
1.6066 -+ p += 2;
1.6067 -+ }
1.6068 -+
1.6069 -+ if (*p != ',')
1.6070 -+ {
1.6071 -+ as_bad(_("expected `,' after destination register in `%s'"), str);
1.6072 -+ return;
1.6073 -+ }
1.6074 -+
1.6075 -+ str = p + 1;
1.6076 -+ regmask = avr32_parse_reglist(str, &tail);
1.6077 -+ if (*tail)
1.6078 -+ {
1.6079 -+ int retval;
1.6080 -+
1.6081 -+ if (rp != AVR32_REG_SP)
1.6082 -+ {
1.6083 -+ as_bad(_("junk at end of line: `%s'"), tail);
1.6084 -+ return;
1.6085 -+ }
1.6086 -+
1.6087 -+ rp = AVR32_REG_PC;
1.6088 -+
1.6089 -+ retval = parse_reglist_tail(tail, regmask);
1.6090 -+
1.6091 -+ switch (retval)
1.6092 -+ {
1.6093 -+ case -1:
1.6094 -+ regmask |= 1 << AVR32_REG_LR;
1.6095 -+ break;
1.6096 -+ case 0:
1.6097 -+ break;
1.6098 -+ case 1:
1.6099 -+ regmask |= 1 << AVR32_REG_R12;
1.6100 -+ break;
1.6101 -+ default:
1.6102 -+ return;
1.6103 -+ }
1.6104 -+ }
1.6105 -+
1.6106 -+ slot = current_insn.next_slot++;
1.6107 -+ current_insn.field_value[slot].value = rp;
1.6108 -+ slot = current_insn.next_slot++;
1.6109 -+ current_insn.field_value[slot].value = w_bit;
1.6110 -+ slot = current_insn.next_slot++;
1.6111 -+ current_insn.field_value[slot].value = regmask;
1.6112 -+}
1.6113 -+
1.6114 -+static void
1.6115 -+parse_reglist_cp8(const struct avr32_operand *op ATTRIBUTE_UNUSED,
1.6116 -+ char *str, int opindex ATTRIBUTE_UNUSED)
1.6117 -+{
1.6118 -+ unsigned long regmask;
1.6119 -+ int slot, h_bit = 0;
1.6120 -+ char *tail;
1.6121 -+
1.6122 -+ regmask = avr32_parse_cpreglist(str, &tail);
1.6123 -+ if (*tail)
1.6124 -+ as_bad(_("junk at end of line: `%s'"), tail);
1.6125 -+ else if (regmask & 0xffUL)
1.6126 -+ {
1.6127 -+ if (regmask & 0xff00UL)
1.6128 -+ as_bad(_("register list `%s' doesn't fit"), str);
1.6129 -+ regmask &= 0xff;
1.6130 -+ }
1.6131 -+ else if (regmask & 0xff00UL)
1.6132 -+ {
1.6133 -+ regmask >>= 8;
1.6134 -+ h_bit = 1;
1.6135 -+ }
1.6136 -+ else
1.6137 -+ as_warn(_("register list is empty"));
1.6138 -+
1.6139 -+ slot = current_insn.next_slot++;
1.6140 -+ current_insn.field_value[slot].value = regmask;
1.6141 -+ slot = current_insn.next_slot++;
1.6142 -+ current_insn.field_value[slot].value = h_bit;
1.6143 -+}
1.6144 -+
1.6145 -+static void
1.6146 -+parse_reglist_cpd8(const struct avr32_operand *op ATTRIBUTE_UNUSED,
1.6147 -+ char *str, int opindex ATTRIBUTE_UNUSED)
1.6148 -+{
1.6149 -+ unsigned long regmask, regmask_d = 0;
1.6150 -+ int slot, i;
1.6151 -+ char *tail;
1.6152 -+
1.6153 -+ regmask = avr32_parse_cpreglist(str, &tail);
1.6154 -+ if (*tail)
1.6155 -+ as_bad(_("junk at end of line: `%s'"), tail);
1.6156 -+
1.6157 -+ for (i = 0; i < 8; i++)
1.6158 -+ {
1.6159 -+ if (regmask & 1)
1.6160 -+ {
1.6161 -+ if (!(regmask & 2))
1.6162 -+ {
1.6163 -+ as_bad(_("register list `%s' doesn't fit"), str);
1.6164 -+ break;
1.6165 -+ }
1.6166 -+ regmask_d |= 1 << i;
1.6167 -+ }
1.6168 -+ else if (regmask & 2)
1.6169 -+ {
1.6170 -+ as_bad(_("register list `%s' doesn't fit"), str);
1.6171 -+ break;
1.6172 -+ }
1.6173 -+
1.6174 -+ regmask >>= 2;
1.6175 -+ }
1.6176 -+
1.6177 -+ slot = current_insn.next_slot++;
1.6178 -+ current_insn.field_value[slot].value = regmask_d;
1.6179 -+}
1.6180 -+
1.6181 -+static void
1.6182 -+parse_retval(const struct avr32_operand *op ATTRIBUTE_UNUSED,
1.6183 -+ char *str, int opindex ATTRIBUTE_UNUSED)
1.6184 -+{
1.6185 -+ int regid, slot;
1.6186 -+
1.6187 -+ regid = avr32_parse_intreg(str);
1.6188 -+ if (regid < 0)
1.6189 -+ {
1.6190 -+ expressionS exp;
1.6191 -+ char *save;
1.6192 -+
1.6193 -+ regid = 0;
1.6194 -+
1.6195 -+ save = input_line_pointer;
1.6196 -+ input_line_pointer = str;
1.6197 -+ expression(&exp);
1.6198 -+ input_line_pointer = save;
1.6199 -+
1.6200 -+ if (exp.X_op != O_constant)
1.6201 -+ as_bad(_("invalid return value `%s'"), str);
1.6202 -+ else
1.6203 -+ switch (exp.X_add_number)
1.6204 -+ {
1.6205 -+ case -1:
1.6206 -+ regid = AVR32_REG_LR;
1.6207 -+ break;
1.6208 -+ case 0:
1.6209 -+ regid = AVR32_REG_SP;
1.6210 -+ break;
1.6211 -+ case 1:
1.6212 -+ regid = AVR32_REG_PC;
1.6213 -+ break;
1.6214 -+ default:
1.6215 -+ as_bad(_("invalid return value `%s'"), str);
1.6216 -+ break;
1.6217 -+ }
1.6218 -+ }
1.6219 -+
1.6220 -+ slot = current_insn.next_slot++;
1.6221 -+ current_insn.field_value[slot].value = regid;
1.6222 -+}
1.6223 -+
1.6224 -+#define parse_mcall parse_intreg_disp
1.6225 -+
1.6226 -+static void
1.6227 -+parse_jospinc(const struct avr32_operand *op ATTRIBUTE_UNUSED,
1.6228 -+ char *str, int opindex ATTRIBUTE_UNUSED)
1.6229 -+{
1.6230 -+ expressionS exp;
1.6231 -+ int slot;
1.6232 -+ char *save;
1.6233 -+
1.6234 -+ save = input_line_pointer;
1.6235 -+ input_line_pointer = str;
1.6236 -+ expression(&exp);
1.6237 -+ input_line_pointer = save;
1.6238 -+
1.6239 -+ slot = current_insn.next_slot++;
1.6240 -+
1.6241 -+ if (exp.X_op == O_constant)
1.6242 -+ {
1.6243 -+ if (exp.X_add_number > 0)
1.6244 -+ exp.X_add_number--;
1.6245 -+ current_insn.field_value[slot].value = exp.X_add_number;
1.6246 -+ }
1.6247 -+ else
1.6248 -+ as_bad(_("invalid numeric expression `%s'"), str);
1.6249 -+}
1.6250 -+
1.6251 -+#define parse_coh parse_nothing
1.6252 -+
1.6253 -+static void
1.6254 -+parse_fpreg(const struct avr32_operand *op,
1.6255 -+ char *str, int opindex ATTRIBUTE_UNUSED)
1.6256 -+{
1.6257 -+ unsigned long regid;
1.6258 -+ int slot;
1.6259 -+
1.6260 -+ regid = strtoul(str + 2, NULL, 10);
1.6261 -+
1.6262 -+ if ((regid >= 16) || (regid & ((1 << op->align_order) - 1)))
1.6263 -+ as_bad(_("invalid floating-point register `%s'"), str);
1.6264 -+
1.6265 -+ slot = current_insn.next_slot++;
1.6266 -+ current_insn.field_value[slot].value = regid;
1.6267 -+ current_insn.field_value[slot].align_order = op->align_order;
1.6268 -+}
1.6269 -+
1.6270 -+static void
1.6271 -+parse_picoreg(const struct avr32_operand *op,
1.6272 -+ char *str, int opindex ATTRIBUTE_UNUSED)
1.6273 -+{
1.6274 -+ unsigned long regid;
1.6275 -+ int slot;
1.6276 -+
1.6277 -+ regid = avr32_parse_picoreg(str);
1.6278 -+ if (regid & ((1 << op->align_order) - 1))
1.6279 -+ as_bad(_("invalid double-word PiCo register `%s'"), str);
1.6280 -+
1.6281 -+ slot = current_insn.next_slot++;
1.6282 -+ current_insn.field_value[slot].value = regid;
1.6283 -+ current_insn.field_value[slot].align_order = op->align_order;
1.6284 -+}
1.6285 -+
1.6286 -+static void
1.6287 -+parse_pico_reglist_w(const struct avr32_operand *op ATTRIBUTE_UNUSED,
1.6288 -+ char *str, int opindex ATTRIBUTE_UNUSED)
1.6289 -+{
1.6290 -+ unsigned long regmask;
1.6291 -+ int slot, h_bit = 0;
1.6292 -+ char *tail;
1.6293 -+
1.6294 -+ regmask = avr32_parse_pico_reglist(str, &tail);
1.6295 -+ if (*tail)
1.6296 -+ as_bad(_("junk at end of line: `%s'"), tail);
1.6297 -+
1.6298 -+ if (regmask & 0x00ffUL)
1.6299 -+ {
1.6300 -+ if (regmask & 0xff00UL)
1.6301 -+ as_bad(_("register list `%s' doesn't fit"), str);
1.6302 -+ regmask &= 0x00ffUL;
1.6303 -+ }
1.6304 -+ else if (regmask & 0xff00UL)
1.6305 -+ {
1.6306 -+ regmask >>= 8;
1.6307 -+ h_bit = 1;
1.6308 -+ }
1.6309 -+ else
1.6310 -+ as_warn(_("register list is empty"));
1.6311 -+
1.6312 -+ slot = current_insn.next_slot++;
1.6313 -+ current_insn.field_value[slot].value = regmask;
1.6314 -+ slot = current_insn.next_slot++;
1.6315 -+ current_insn.field_value[slot].value = h_bit;
1.6316 -+}
1.6317 -+
1.6318 -+static void
1.6319 -+parse_pico_reglist_d(const struct avr32_operand *op ATTRIBUTE_UNUSED,
1.6320 -+ char *str, int opindex ATTRIBUTE_UNUSED)
1.6321 -+{
1.6322 -+ unsigned long regmask, regmask_d = 0;
1.6323 -+ int slot, i;
1.6324 -+ char *tail;
1.6325 -+
1.6326 -+ regmask = avr32_parse_pico_reglist(str, &tail);
1.6327 -+ if (*tail)
1.6328 -+ as_bad(_("junk at end of line: `%s'"), tail);
1.6329 -+
1.6330 -+ for (i = 0; i < 8; i++)
1.6331 -+ {
1.6332 -+ if (regmask & 1)
1.6333 -+ {
1.6334 -+ if (!(regmask & 2))
1.6335 -+ {
1.6336 -+ as_bad(_("register list `%s' doesn't fit"), str);
1.6337 -+ break;
1.6338 -+ }
1.6339 -+ regmask_d |= 1 << i;
1.6340 -+ }
1.6341 -+ else if (regmask & 2)
1.6342 -+ {
1.6343 -+ as_bad(_("register list `%s' doesn't fit"), str);
1.6344 -+ break;
1.6345 -+ }
1.6346 -+
1.6347 -+ regmask >>= 2;
1.6348 -+ }
1.6349 -+
1.6350 -+ slot = current_insn.next_slot++;
1.6351 -+ current_insn.field_value[slot].value = regmask_d;
1.6352 -+}
1.6353 -+
1.6354 -+static void
1.6355 -+parse_pico_in(const struct avr32_operand *op ATTRIBUTE_UNUSED,
1.6356 -+ char *str, int opindex ATTRIBUTE_UNUSED)
1.6357 -+{
1.6358 -+ unsigned long regid;
1.6359 -+ int slot;
1.6360 -+
1.6361 -+ regid = strtoul(str + 2, NULL, 10);
1.6362 -+
1.6363 -+ if (regid >= 12)
1.6364 -+ as_bad(_("invalid PiCo IN register `%s'"), str);
1.6365 -+
1.6366 -+ slot = current_insn.next_slot++;
1.6367 -+ current_insn.field_value[slot].value = regid;
1.6368 -+ current_insn.field_value[slot].align_order = 0;
1.6369 -+}
1.6370 -+
1.6371 -+#define parse_pico_out0 parse_nothing
1.6372 -+#define parse_pico_out1 parse_nothing
1.6373 -+#define parse_pico_out2 parse_nothing
1.6374 -+#define parse_pico_out3 parse_nothing
1.6375 -+
1.6376 -+#define OP(name, sgn, pcrel, align, func) \
1.6377 -+ { AVR32_OPERAND_##name, sgn, pcrel, align, match_##func, parse_##func }
1.6378 -+
1.6379 -+struct avr32_operand avr32_operand_table[] = {
1.6380 -+ OP(INTREG, 0, 0, 0, intreg),
1.6381 -+ OP(INTREG_PREDEC, 0, 0, 0, intreg_predec),
1.6382 -+ OP(INTREG_POSTINC, 0, 0, 0, intreg_postinc),
1.6383 -+ OP(INTREG_LSL, 0, 0, 0, intreg_lsl),
1.6384 -+ OP(INTREG_LSR, 0, 0, 0, intreg_lsr),
1.6385 -+ OP(INTREG_BSEL, 0, 0, 0, intreg_part),
1.6386 -+ OP(INTREG_HSEL, 0, 0, 1, intreg_part),
1.6387 -+ OP(INTREG_SDISP, 1, 0, 0, intreg_disp),
1.6388 -+ OP(INTREG_SDISP_H, 1, 0, 1, intreg_disp),
1.6389 -+ OP(INTREG_SDISP_W, 1, 0, 2, intreg_disp),
1.6390 -+ OP(INTREG_UDISP, 0, 0, 0, intreg_disp),
1.6391 -+ OP(INTREG_UDISP_H, 0, 0, 1, intreg_disp),
1.6392 -+ OP(INTREG_UDISP_W, 0, 0, 2, intreg_disp),
1.6393 -+ OP(INTREG_INDEX, 0, 0, 0, intreg_index),
1.6394 -+ OP(INTREG_XINDEX, 0, 0, 0, intreg_xindex),
1.6395 -+ OP(DWREG, 0, 0, 1, intreg),
1.6396 -+ OP(PC_UDISP_W, 0, 1, 2, pc_disp),
1.6397 -+ OP(SP, 0, 0, 0, sp),
1.6398 -+ OP(SP_UDISP_W, 0, 0, 2, sp_disp),
1.6399 -+ OP(CPNO, 0, 0, 0, cpno),
1.6400 -+ OP(CPREG, 0, 0, 0, cpreg),
1.6401 -+ OP(CPREG_D, 0, 0, 1, cpreg),
1.6402 -+ OP(UNSIGNED_CONST, 0, 0, 0, const),
1.6403 -+ OP(UNSIGNED_CONST_W, 0, 0, 2, const),
1.6404 -+ OP(SIGNED_CONST, 1, 0, 0, const),
1.6405 -+ OP(SIGNED_CONST_W, 1, 0, 2, const),
1.6406 -+ OP(JMPLABEL, 1, 1, 1, jmplabel),
1.6407 -+ OP(UNSIGNED_NUMBER, 0, 0, 0, number),
1.6408 -+ OP(UNSIGNED_NUMBER_W, 0, 0, 2, number),
1.6409 -+ OP(REGLIST8, 0, 0, 0, reglist8),
1.6410 -+ OP(REGLIST9, 0, 0, 0, reglist9),
1.6411 -+ OP(REGLIST16, 0, 0, 0, reglist16),
1.6412 -+ OP(REGLIST_LDM, 0, 0, 0, reglist_ldm),
1.6413 -+ OP(REGLIST_CP8, 0, 0, 0, reglist_cp8),
1.6414 -+ OP(REGLIST_CPD8, 0, 0, 0, reglist_cpd8),
1.6415 -+ OP(RETVAL, 0, 0, 0, retval),
1.6416 -+ OP(MCALL, 1, 0, 2, mcall),
1.6417 -+ OP(JOSPINC, 0, 0, 0, jospinc),
1.6418 -+ OP(COH, 0, 0, 0, coh),
1.6419 -+ OP(FPREG_S, 0, 0, 0, fpreg),
1.6420 -+ OP(FPREG_D, 0, 0, 1, fpreg),
1.6421 -+ OP(PICO_REG_W, 0, 0, 0, picoreg),
1.6422 -+ OP(PICO_REG_D, 0, 0, 1, picoreg),
1.6423 -+ OP(PICO_REGLIST_W, 0, 0, 0, pico_reglist_w),
1.6424 -+ OP(PICO_REGLIST_D, 0, 0, 0, pico_reglist_d),
1.6425 -+ OP(PICO_IN, 0, 0, 0, pico_in),
1.6426 -+ OP(PICO_OUT0, 0, 0, 0, pico_out0),
1.6427 -+ OP(PICO_OUT1, 0, 0, 0, pico_out1),
1.6428 -+ OP(PICO_OUT2, 0, 0, 0, pico_out2),
1.6429 -+ OP(PICO_OUT3, 0, 0, 0, pico_out3),
1.6430 -+};
1.6431 -+
1.6432 -+symbolS *
1.6433 -+md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
1.6434 -+{
1.6435 -+ pr_debug("md_undefined_symbol: %s\n", name);
1.6436 -+ return 0;
1.6437 -+}
1.6438 -+
1.6439 -+struct avr32_relax_type
1.6440 -+{
1.6441 -+ long lower_bound;
1.6442 -+ long upper_bound;
1.6443 -+ unsigned char align;
1.6444 -+ unsigned char length;
1.6445 -+ signed short next;
1.6446 -+};
1.6447 -+
1.6448 -+#define EMPTY { 0, 0, 0, 0, -1 }
1.6449 -+#define C(lower, upper, align, next) \
1.6450 -+ { (lower), (upper), (align), 2, AVR32_OPC_##next }
1.6451 -+#define E(lower, upper, align) \
1.6452 -+ { (lower), (upper), (align), 4, -1 }
1.6453 -+
1.6454 -+static const struct avr32_relax_type avr32_relax_table[] =
1.6455 -+ {
1.6456 -+ /* 0 */
1.6457 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6458 -+ EMPTY, EMPTY, EMPTY,
1.6459 -+ E(0, 65535, 0), E(0, 65535, 0), E(0, 65535, 0), E(0, 65535, 0),
1.6460 -+ EMPTY,
1.6461 -+ /* 16 */
1.6462 -+ EMPTY, EMPTY, EMPTY, EMPTY,
1.6463 -+
1.6464 -+ C(-256, 254, 1, BREQ2), C(-256, 254, 1, BRNE2),
1.6465 -+ C(-256, 254, 1, BRCC2), C(-256, 254, 1, BRCS2),
1.6466 -+ C(-256, 254, 1, BRGE2), C(-256, 254, 1, BRLT2),
1.6467 -+ C(-256, 254, 1, BRMI2), C(-256, 254, 1, BRPL2),
1.6468 -+ E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
1.6469 -+ E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
1.6470 -+ /* 32 */
1.6471 -+ E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
1.6472 -+ E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
1.6473 -+ E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
1.6474 -+ E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
1.6475 -+ E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
1.6476 -+ E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
1.6477 -+
1.6478 -+ EMPTY, EMPTY, EMPTY, EMPTY,
1.6479 -+ /* 48 */
1.6480 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6481 -+ EMPTY, EMPTY, EMPTY,
1.6482 -+
1.6483 -+ C(-32, 31, 0, CP_W3), E(-1048576, 1048575, 0),
1.6484 -+
1.6485 -+ EMPTY, EMPTY, EMPTY,
1.6486 -+ /* 64: csrfcz */
1.6487 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6488 -+ E(0, 65535, 0), E(0, 65535, 0),
1.6489 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6490 -+ E(-32768, 32767, 0),
1.6491 -+ /* 80: LD_SB2 */
1.6492 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6493 -+
1.6494 -+ C(0, 7, 0, LD_UB4), E(-32768, 32767, 0),
1.6495 -+
1.6496 -+ EMPTY,
1.6497 -+ EMPTY, EMPTY,
1.6498 -+
1.6499 -+ C(0, 14, 1, LD_SH4), E(-32768, 32767, 0),
1.6500 -+
1.6501 -+ EMPTY, EMPTY, EMPTY,
1.6502 -+
1.6503 -+ C(0, 14, 1, LD_UH4),
1.6504 -+
1.6505 -+ /* 96: LD_UH4 */
1.6506 -+ E(-32768, 32767, 0),
1.6507 -+
1.6508 -+ EMPTY, EMPTY, EMPTY, EMPTY,
1.6509 -+
1.6510 -+ C(0, 124, 2, LD_W4), E(-32768, 32767, 0),
1.6511 -+
1.6512 -+ E(0, 1020, 2), /* LDC_D1 */
1.6513 -+ EMPTY, EMPTY,
1.6514 -+ E(0, 1020, 2), /* LDC_W1 */
1.6515 -+ EMPTY, EMPTY,
1.6516 -+ E(0, 16380, 2), /* LDC0_D */
1.6517 -+ E(0, 16380, 2), /* LDC0_W */
1.6518 -+ EMPTY,
1.6519 -+
1.6520 -+ /* 112: LDCM_D_PU */
1.6521 -+ EMPTY, EMPTY, EMPTY,
1.6522 -+
1.6523 -+ C(0, 508, 2, LDDPC_EXT), E(-32768, 32767, 0),
1.6524 -+
1.6525 -+ EMPTY,EMPTY, EMPTY,
1.6526 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6527 -+
1.6528 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6529 -+ /* 134: MACHH_W */
1.6530 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6531 -+ E(-131072, 131068, 2), /* MCALL */
1.6532 -+ E(0, 1020, 2), /* MFDR */
1.6533 -+ E(0, 1020, 2), /* MFSR */
1.6534 -+ EMPTY, EMPTY,
1.6535 -+
1.6536 -+ C(-128, 127, 0, MOV2), E(-1048576, 1048575, 0),
1.6537 -+
1.6538 -+ EMPTY, EMPTY, EMPTY,
1.6539 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6540 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6541 -+
1.6542 -+ E(-128, 127, 0), /* MOVEQ2 */
1.6543 -+ E(-128, 127, 0), /* MOVNE2 */
1.6544 -+ E(-128, 127, 0), /* MOVCC2 */
1.6545 -+ E(-128, 127, 0), /* 166: MOVCS2 */
1.6546 -+ E(-128, 127, 0), /* MOVGE2 */
1.6547 -+ E(-128, 127, 0), /* MOVLT2 */
1.6548 -+ E(-128, 127, 0), /* MOVMI2 */
1.6549 -+ E(-128, 127, 0), /* MOVPL2 */
1.6550 -+ E(-128, 127, 0), /* MOVLS2 */
1.6551 -+ E(-128, 127, 0), /* MOVGT2 */
1.6552 -+ E(-128, 127, 0), /* MOVLE2 */
1.6553 -+ E(-128, 127, 0), /* MOVHI2 */
1.6554 -+ E(-128, 127, 0), /* MOVVS2 */
1.6555 -+ E(-128, 127, 0), /* MOVVC2 */
1.6556 -+ E(-128, 127, 0), /* MOVQS2 */
1.6557 -+ E(-128, 127, 0), /* MOVAL2 */
1.6558 -+
1.6559 -+ E(0, 1020, 2), /* MTDR */
1.6560 -+ E(0, 1020, 2), /* MTSR */
1.6561 -+ EMPTY,
1.6562 -+ EMPTY,
1.6563 -+ E(-128, 127, 0), /* MUL3 */
1.6564 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6565 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6566 -+ /* 198: MVCR_W */
1.6567 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6568 -+ E(0, 65535, 0), E(0, 65535, 0),
1.6569 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6570 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6571 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6572 -+ /* 230: PASR_H */
1.6573 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6574 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6575 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6576 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6577 -+ /* 262: PUNPCKSB_H */
1.6578 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6579 -+
1.6580 -+ C(-1024, 1022, 1, RCALL2), E(-2097152, 2097150, 1),
1.6581 -+
1.6582 -+ EMPTY,
1.6583 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6584 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6585 -+ EMPTY, EMPTY, EMPTY,
1.6586 -+
1.6587 -+ C(-1024, 1022, 1, BRAL),
1.6588 -+
1.6589 -+ EMPTY, EMPTY, EMPTY,
1.6590 -+ E(-128, 127, 0), /* RSUB2 */
1.6591 -+ /* 294: SATADD_H */
1.6592 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6593 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6594 -+ E(0, 255, 0), /* SLEEP */
1.6595 -+ EMPTY, EMPTY,
1.6596 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6597 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6598 -+ /* 326: ST_B2 */
1.6599 -+ EMPTY, EMPTY,
1.6600 -+ C(0, 7, 0, ST_B4), E(-32768, 32767, 0),
1.6601 -+ EMPTY, EMPTY, EMPTY, EMPTY,
1.6602 -+ E(-32768, 32767, 0),
1.6603 -+ EMPTY, EMPTY, EMPTY,
1.6604 -+ C(0, 14, 1, ST_H4), E(-32768, 32767, 0),
1.6605 -+ EMPTY, EMPTY,
1.6606 -+ EMPTY,
1.6607 -+ C(0, 60, 2, ST_W4), E(-32768, 32767, 0),
1.6608 -+ E(0, 1020, 2), /* STC_D1 */
1.6609 -+ EMPTY, EMPTY,
1.6610 -+ E(0, 1020, 2), /* STC_W1 */
1.6611 -+ EMPTY, EMPTY,
1.6612 -+ E(0, 16380, 2), /* STC0_D */
1.6613 -+ E(0, 16380, 2), /* STC0_W */
1.6614 -+
1.6615 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6616 -+ /* 358: STDSP */
1.6617 -+ EMPTY, EMPTY,
1.6618 -+ E(0, 1020, 2), /* STHH_W1 */
1.6619 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6620 -+ EMPTY, EMPTY, EMPTY,
1.6621 -+ E(-32768, 32767, 0),
1.6622 -+ C(-512, 508, 2, SUB4),
1.6623 -+ C(-128, 127, 0, SUB4), E(-1048576, 1048576, 0),
1.6624 -+ /* SUB{cond} */
1.6625 -+ E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
1.6626 -+ E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
1.6627 -+ E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
1.6628 -+ E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
1.6629 -+ /* SUBF{cond} */
1.6630 -+ E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
1.6631 -+ E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
1.6632 -+ E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
1.6633 -+ E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
1.6634 -+ EMPTY,
1.6635 -+
1.6636 -+ /* 406: SWAP_B */
1.6637 -+ EMPTY, EMPTY, EMPTY,
1.6638 -+ E(0, 255, 0), /* SYNC */
1.6639 -+ EMPTY, EMPTY, EMPTY, EMPTY,
1.6640 -+ /* 414: TST */
1.6641 -+ EMPTY, EMPTY, E(-65536, 65535, 2), E(-65536, 65535, 2), E(-65536, 65535, 2), EMPTY, EMPTY, EMPTY,
1.6642 -+ /* 422: RSUB{cond} */
1.6643 -+ E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
1.6644 -+ E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
1.6645 -+ E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
1.6646 -+ E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
1.6647 -+ /* 436: ADD{cond} */
1.6648 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6649 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6650 -+ /* 454: SUB{cond} */
1.6651 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6652 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6653 -+ /* 472: AND{cond} */
1.6654 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6655 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6656 -+ /* 486: OR{cond} */
1.6657 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6658 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6659 -+ /* 502: EOR{cond} */
1.6660 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6661 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6662 -+ /* 518: LD.w{cond} */
1.6663 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6664 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6665 -+ /* 534: LD.sh{cond} */
1.6666 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6667 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6668 -+ /* 550: LD.uh{cond} */
1.6669 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6670 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6671 -+ /* 566: LD.sb{cond} */
1.6672 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6673 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6674 -+ /* 582: LD.ub{cond} */
1.6675 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6676 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6677 -+ /* 596: ST.w{cond} */
1.6678 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6679 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6680 -+ /* 614: ST.h{cond} */
1.6681 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6682 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6683 -+ /* 630: ST.b{cond} */
1.6684 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6685 -+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
1.6686 -+ /* 646: movh */
1.6687 -+ E(0, 65535, 0)
1.6688 -+ };
1.6689 -+
1.6690 -+#undef E
1.6691 -+#undef C
1.6692 -+#undef EMPTY
1.6693 -+
1.6694 -+#define AVR32_RS_NONE (-1)
1.6695 -+
1.6696 -+#define avr32_rs_size(state) (avr32_relax_table[(state)].length)
1.6697 -+#define avr32_rs_align(state) (avr32_relax_table[(state)].align)
1.6698 -+#define relax_more(state) (avr32_relax_table[(state)].next)
1.6699 -+
1.6700 -+#define opc_initial_substate(opc) ((opc)->id)
1.6701 -+
1.6702 -+static int need_relax(int subtype, offsetT distance)
1.6703 -+{
1.6704 -+ offsetT upper_bound, lower_bound;
1.6705 -+
1.6706 -+ upper_bound = avr32_relax_table[subtype].upper_bound;
1.6707 -+ lower_bound = avr32_relax_table[subtype].lower_bound;
1.6708 -+
1.6709 -+ if (distance & ((1 << avr32_rs_align(subtype)) - 1))
1.6710 -+ return 1;
1.6711 -+ if ((distance > upper_bound) || (distance < lower_bound))
1.6712 -+ return 1;
1.6713 -+
1.6714 -+ return 0;
1.6715 -+}
1.6716 -+
1.6717 -+enum {
1.6718 -+ LDA_SUBTYPE_MOV1,
1.6719 -+ LDA_SUBTYPE_MOV2,
1.6720 -+ LDA_SUBTYPE_SUB,
1.6721 -+ LDA_SUBTYPE_LDDPC,
1.6722 -+ LDA_SUBTYPE_LDW,
1.6723 -+ LDA_SUBTYPE_GOTLOAD,
1.6724 -+ LDA_SUBTYPE_GOTLOAD_LARGE,
1.6725 -+};
1.6726 -+
1.6727 -+enum {
1.6728 -+ CALL_SUBTYPE_RCALL1,
1.6729 -+ CALL_SUBTYPE_RCALL2,
1.6730 -+ CALL_SUBTYPE_MCALL_CP,
1.6731 -+ CALL_SUBTYPE_MCALL_GOT,
1.6732 -+ CALL_SUBTYPE_MCALL_LARGE,
1.6733 -+};
1.6734 -+
1.6735 -+#define LDA_INITIAL_SIZE (avr32_pic ? 4 : 2)
1.6736 -+#define CALL_INITIAL_SIZE 2
1.6737 -+
1.6738 -+#define need_reloc(sym, seg, pcrel) \
1.6739 -+ (!(S_IS_DEFINED(sym) \
1.6740 -+ && ((pcrel && S_GET_SEGMENT(sym) == seg) \
1.6741 -+ || (!pcrel && S_GET_SEGMENT(sym) == absolute_section))) \
1.6742 -+ || S_FORCE_RELOC(sym, 1))
1.6743 -+
1.6744 -+/* Return an initial guess of the length by which a fragment must grow to
1.6745 -+ hold a branch to reach its destination.
1.6746 -+ Also updates fr_type/fr_subtype as necessary.
1.6747 -+
1.6748 -+ Called just before doing relaxation.
1.6749 -+ Any symbol that is now undefined will not become defined.
1.6750 -+ The guess for fr_var is ACTUALLY the growth beyond fr_fix.
1.6751 -+ Whatever we do to grow fr_fix or fr_var contributes to our returned value.
1.6752 -+ Although it may not be explicit in the frag, pretend fr_var starts with a
1.6753 -+ 0 value. */
1.6754 -+
1.6755 -+static int
1.6756 -+avr32_default_estimate_size_before_relax (fragS *fragP, segT segment)
1.6757 -+{
1.6758 -+ int growth = 0;
1.6759 -+
1.6760 -+ assert(fragP);
1.6761 -+ assert(fragP->fr_symbol);
1.6762 -+
1.6763 -+ if (fragP->tc_frag_data.force_extended
1.6764 -+ || need_reloc(fragP->fr_symbol, segment, fragP->tc_frag_data.pcrel))
1.6765 -+ {
1.6766 -+ int largest_state = fragP->fr_subtype;
1.6767 -+ while (relax_more(largest_state) != AVR32_RS_NONE)
1.6768 -+ largest_state = relax_more(largest_state);
1.6769 -+ growth = avr32_rs_size(largest_state) - fragP->fr_var;
1.6770 -+ }
1.6771 -+ else
1.6772 -+ {
1.6773 -+ growth = avr32_rs_size(fragP->fr_subtype) - fragP->fr_var;
1.6774 -+ }
1.6775 -+
1.6776 -+ pr_debug("%s:%d: md_estimate_size_before_relax: %d\n",
1.6777 -+ fragP->fr_file, fragP->fr_line, growth);
1.6778 -+
1.6779 -+ return growth;
1.6780 -+}
1.6781 -+
1.6782 -+static int
1.6783 -+avr32_lda_estimate_size_before_relax(fragS *fragP, segT segment ATTRIBUTE_UNUSED)
1.6784 -+{
1.6785 -+ return fragP->fr_var - LDA_INITIAL_SIZE;
1.6786 -+}
1.6787 -+
1.6788 -+static int
1.6789 -+avr32_call_estimate_size_before_relax(fragS *fragP, segT segment ATTRIBUTE_UNUSED)
1.6790 -+{
1.6791 -+ return fragP->fr_var - CALL_INITIAL_SIZE;
1.6792 -+}
1.6793 -+
1.6794 -+static int
1.6795 -+avr32_cpool_estimate_size_before_relax(fragS *fragP,
1.6796 -+ segT segment ATTRIBUTE_UNUSED)
1.6797 -+{
1.6798 -+ return fragP->fr_var;
1.6799 -+}
1.6800 -+
1.6801 -+/* This macro may be defined to relax a frag. GAS will call this with the
1.6802 -+ * segment, the frag, and the change in size of all previous frags;
1.6803 -+ * md_relax_frag should return the change in size of the frag. */
1.6804 -+static long
1.6805 -+avr32_default_relax_frag (segT segment, fragS *fragP, long stretch)
1.6806 -+{
1.6807 -+ int state, next_state;
1.6808 -+ symbolS *symbolP; /* The target symbol */
1.6809 -+ long growth = 0;
1.6810 -+
1.6811 -+ state = next_state = fragP->fr_subtype;
1.6812 -+
1.6813 -+ symbolP = fragP->fr_symbol;
1.6814 -+
1.6815 -+ if (fragP->tc_frag_data.force_extended
1.6816 -+ || need_reloc(symbolP, segment, fragP->tc_frag_data.pcrel))
1.6817 -+ {
1.6818 -+ /* Symbol must be resolved by the linker. Emit the largest
1.6819 -+ possible opcode. */
1.6820 -+ while (relax_more(next_state) != AVR32_RS_NONE)
1.6821 -+ next_state = relax_more(next_state);
1.6822 -+ }
1.6823 -+ else
1.6824 -+ {
1.6825 -+ addressT address; /* The address of fragP */
1.6826 -+ addressT target; /* The address of the target symbol */
1.6827 -+ offsetT distance; /* The distance between the insn and the symbol */
1.6828 -+ fragS *sym_frag;
1.6829 -+
1.6830 -+ address = fragP->fr_address;
1.6831 -+ target = fragP->fr_offset;
1.6832 -+ symbolP = fragP->fr_symbol;
1.6833 -+ sym_frag = symbol_get_frag(symbolP);
1.6834 -+
1.6835 -+ address += fragP->fr_fix - fragP->fr_var;
1.6836 -+ target += S_GET_VALUE(symbolP);
1.6837 -+
1.6838 -+ if (stretch != 0
1.6839 -+ && sym_frag->relax_marker != fragP->relax_marker
1.6840 -+ && S_GET_SEGMENT(symbolP) == segment)
1.6841 -+ /* if it was correctly aligned before, make sure it stays aligned */
1.6842 -+ target += stretch & (~0UL << avr32_rs_align(state));
1.6843 -+
1.6844 -+ if (fragP->tc_frag_data.pcrel)
1.6845 -+ distance = target - (address & (~0UL << avr32_rs_align(state)));
1.6846 -+ else
1.6847 -+ distance = target;
1.6848 -+
1.6849 -+ pr_debug("%s:%d: relax more? 0x%x - 0x%x = 0x%x (%d), align %d\n",
1.6850 -+ fragP->fr_file, fragP->fr_line, target, address,
1.6851 -+ distance, distance, avr32_rs_align(state));
1.6852 -+
1.6853 -+ if (need_relax(state, distance))
1.6854 -+ {
1.6855 -+ if (relax_more(state) != AVR32_RS_NONE)
1.6856 -+ next_state = relax_more(state);
1.6857 -+ pr_debug("%s:%d: relax more %d -> %d (%d - %d, align %d)\n",
1.6858 -+ fragP->fr_file, fragP->fr_line, state, next_state,
1.6859 -+ target, address, avr32_rs_align(state));
1.6860 -+ }
1.6861 -+ }
1.6862 -+
1.6863 -+ growth = avr32_rs_size(next_state) - avr32_rs_size(state);
1.6864 -+ fragP->fr_subtype = next_state;
1.6865 -+
1.6866 -+ pr_debug("%s:%d: md_relax_frag: growth=%d, subtype=%d, opc=0x%08lx\n",
1.6867 -+ fragP->fr_file, fragP->fr_line, growth, fragP->fr_subtype,
1.6868 -+ avr32_opc_table[next_state].value);
1.6869 -+
1.6870 -+ return growth;
1.6871 -+}
1.6872 -+
1.6873 -+static long
1.6874 -+avr32_lda_relax_frag(segT segment, fragS *fragP, long stretch)
1.6875 -+{
1.6876 -+ struct cpool *pool= NULL;
1.6877 -+ unsigned int entry = 0;
1.6878 -+ addressT address, target;
1.6879 -+ offsetT distance;
1.6880 -+ symbolS *symbolP;
1.6881 -+ fragS *sym_frag;
1.6882 -+ long old_size, new_size;
1.6883 -+
1.6884 -+ symbolP = fragP->fr_symbol;
1.6885 -+ old_size = fragP->fr_var;
1.6886 -+ if (!avr32_pic)
1.6887 -+ {
1.6888 -+ pool = fragP->tc_frag_data.pool;
1.6889 -+ entry = fragP->tc_frag_data.pool_entry;
1.6890 -+ }
1.6891 -+
1.6892 -+ address = fragP->fr_address;
1.6893 -+ address += fragP->fr_fix - LDA_INITIAL_SIZE;
1.6894 -+
1.6895 -+ if (!S_IS_DEFINED(symbolP) || S_FORCE_RELOC(symbolP, 1))
1.6896 -+ goto relax_max;
1.6897 -+
1.6898 -+ target = fragP->fr_offset;
1.6899 -+ sym_frag = symbol_get_frag(symbolP);
1.6900 -+ target += S_GET_VALUE(symbolP);
1.6901 -+
1.6902 -+ if (sym_frag->relax_marker != fragP->relax_marker
1.6903 -+ && S_GET_SEGMENT(symbolP) == segment)
1.6904 -+ target += stretch;
1.6905 -+
1.6906 -+ distance = target - address;
1.6907 -+
1.6908 -+ pr_debug("lda_relax_frag: target: %d, address: %d, var: %d\n",
1.6909 -+ target, address, fragP->fr_var);
1.6910 -+
1.6911 -+ if (!avr32_pic && S_GET_SEGMENT(symbolP) == absolute_section
1.6912 -+ && target <= 127 && (offsetT)target >= -128)
1.6913 -+ {
1.6914 -+ if (fragP->fr_subtype == LDA_SUBTYPE_LDDPC
1.6915 -+ || fragP->fr_subtype == LDA_SUBTYPE_LDW)
1.6916 -+ pool->literals[entry].refcount--;
1.6917 -+ new_size = 2;
1.6918 -+ fragP->fr_subtype = LDA_SUBTYPE_MOV1;
1.6919 -+ }
1.6920 -+ else if (!avr32_pic && S_GET_SEGMENT(symbolP) == absolute_section
1.6921 -+ && target <= 1048575 && (offsetT)target >= -1048576)
1.6922 -+ {
1.6923 -+ if (fragP->fr_subtype == LDA_SUBTYPE_LDDPC
1.6924 -+ || fragP->fr_subtype == LDA_SUBTYPE_LDW)
1.6925 -+ pool->literals[entry].refcount--;
1.6926 -+ new_size = 4;
1.6927 -+ fragP->fr_subtype = LDA_SUBTYPE_MOV2;
1.6928 -+ }
1.6929 -+ else if (!linkrelax && S_GET_SEGMENT(symbolP) == segment
1.6930 -+ /* the field will be negated, so this is really -(-32768)
1.6931 -+ and -(32767) */
1.6932 -+ && distance <= 32768 && distance >= -32767)
1.6933 -+ {
1.6934 -+ if (!avr32_pic
1.6935 -+ && (fragP->fr_subtype == LDA_SUBTYPE_LDDPC
1.6936 -+ || fragP->fr_subtype == LDA_SUBTYPE_LDW))
1.6937 -+ pool->literals[entry].refcount--;
1.6938 -+ new_size = 4;
1.6939 -+ fragP->fr_subtype = LDA_SUBTYPE_SUB;
1.6940 -+ }
1.6941 -+ else
1.6942 -+ {
1.6943 -+ relax_max:
1.6944 -+ if (avr32_pic)
1.6945 -+ {
1.6946 -+ if (linkrelax)
1.6947 -+ {
1.6948 -+ new_size = 8;
1.6949 -+ fragP->fr_subtype = LDA_SUBTYPE_GOTLOAD_LARGE;
1.6950 -+ }
1.6951 -+ else
1.6952 -+ {
1.6953 -+ new_size = 4;
1.6954 -+ fragP->fr_subtype = LDA_SUBTYPE_GOTLOAD;
1.6955 -+ }
1.6956 -+ }
1.6957 -+ else
1.6958 -+ {
1.6959 -+ if (fragP->fr_subtype != LDA_SUBTYPE_LDDPC
1.6960 -+ && fragP->fr_subtype != LDA_SUBTYPE_LDW)
1.6961 -+ pool->literals[entry].refcount++;
1.6962 -+
1.6963 -+ sym_frag = symbol_get_frag(pool->symbol);
1.6964 -+ target = (sym_frag->fr_address + sym_frag->fr_fix
1.6965 -+ + pool->padding + pool->literals[entry].offset);
1.6966 -+
1.6967 -+ pr_debug("cpool sym address: 0x%lx\n",
1.6968 -+ sym_frag->fr_address + sym_frag->fr_fix);
1.6969 -+
1.6970 -+ know(pool->section == segment);
1.6971 -+
1.6972 -+ if (sym_frag->relax_marker != fragP->relax_marker)
1.6973 -+ target += stretch;
1.6974 -+
1.6975 -+ distance = target - address;
1.6976 -+ if (distance <= 508 && distance >= 0)
1.6977 -+ {
1.6978 -+ new_size = 2;
1.6979 -+ fragP->fr_subtype = LDA_SUBTYPE_LDDPC;
1.6980 -+ }
1.6981 -+ else
1.6982 -+ {
1.6983 -+ new_size = 4;
1.6984 -+ fragP->fr_subtype = LDA_SUBTYPE_LDW;
1.6985 -+ }
1.6986 -+
1.6987 -+ pr_debug("lda_relax_frag (cpool): target=0x%lx, address=0x%lx, refcount=%d\n",
1.6988 -+ target, address, pool->literals[entry].refcount);
1.6989 -+ }
1.6990 -+ }
1.6991 -+
1.6992 -+ fragP->fr_var = new_size;
1.6993 -+
1.6994 -+ pr_debug("%s:%d: lda: relax pass done. subtype: %d, growth: %ld\n",
1.6995 -+ fragP->fr_file, fragP->fr_line,
1.6996 -+ fragP->fr_subtype, new_size - old_size);
1.6997 -+
1.6998 -+ return new_size - old_size;
1.6999 -+}
1.7000 -+
1.7001 -+static long
1.7002 -+avr32_call_relax_frag(segT segment, fragS *fragP, long stretch)
1.7003 -+{
1.7004 -+ struct cpool *pool = NULL;
1.7005 -+ unsigned int entry = 0;
1.7006 -+ addressT address, target;
1.7007 -+ offsetT distance;
1.7008 -+ symbolS *symbolP;
1.7009 -+ fragS *sym_frag;
1.7010 -+ long old_size, new_size;
1.7011 -+
1.7012 -+ symbolP = fragP->fr_symbol;
1.7013 -+ old_size = fragP->fr_var;
1.7014 -+ if (!avr32_pic)
1.7015 -+ {
1.7016 -+ pool = fragP->tc_frag_data.pool;
1.7017 -+ entry = fragP->tc_frag_data.pool_entry;
1.7018 -+ }
1.7019 -+
1.7020 -+ address = fragP->fr_address;
1.7021 -+ address += fragP->fr_fix - CALL_INITIAL_SIZE;
1.7022 -+
1.7023 -+ if (need_reloc(symbolP, segment, 1))
1.7024 -+ {
1.7025 -+ pr_debug("call: must emit reloc\n");
1.7026 -+ goto relax_max;
1.7027 -+ }
1.7028 -+
1.7029 -+ target = fragP->fr_offset;
1.7030 -+ sym_frag = symbol_get_frag(symbolP);
1.7031 -+ target += S_GET_VALUE(symbolP);
1.7032 -+
1.7033 -+ if (sym_frag->relax_marker != fragP->relax_marker
1.7034 -+ && S_GET_SEGMENT(symbolP) == segment)
1.7035 -+ target += stretch;
1.7036 -+
1.7037 -+ distance = target - address;
1.7038 -+
1.7039 -+ if (distance <= 1022 && distance >= -1024)
1.7040 -+ {
1.7041 -+ pr_debug("call: distance is %d, emitting short rcall\n", distance);
1.7042 -+ if (!avr32_pic && fragP->fr_subtype == CALL_SUBTYPE_MCALL_CP)
1.7043 -+ pool->literals[entry].refcount--;
1.7044 -+ new_size = 2;
1.7045 -+ fragP->fr_subtype = CALL_SUBTYPE_RCALL1;
1.7046 -+ }
1.7047 -+ else if (distance <= 2097150 && distance >= -2097152)
1.7048 -+ {
1.7049 -+ pr_debug("call: distance is %d, emitting long rcall\n", distance);
1.7050 -+ if (!avr32_pic && fragP->fr_subtype == CALL_SUBTYPE_MCALL_CP)
1.7051 -+ pool->literals[entry].refcount--;
1.7052 -+ new_size = 4;
1.7053 -+ fragP->fr_subtype = CALL_SUBTYPE_RCALL2;
1.7054 -+ }
1.7055 -+ else
1.7056 -+ {
1.7057 -+ pr_debug("call: distance %d too far, emitting something big\n", distance);
1.7058 -+
1.7059 -+ relax_max:
1.7060 -+ if (avr32_pic)
1.7061 -+ {
1.7062 -+ if (linkrelax)
1.7063 -+ {
1.7064 -+ new_size = 10;
1.7065 -+ fragP->fr_subtype = CALL_SUBTYPE_MCALL_LARGE;
1.7066 -+ }
1.7067 -+ else
1.7068 -+ {
1.7069 -+ new_size = 4;
1.7070 -+ fragP->fr_subtype = CALL_SUBTYPE_MCALL_GOT;
1.7071 -+ }
1.7072 -+ }
1.7073 -+ else
1.7074 -+ {
1.7075 -+ if (fragP->fr_subtype != CALL_SUBTYPE_MCALL_CP)
1.7076 -+ pool->literals[entry].refcount++;
1.7077 -+
1.7078 -+ new_size = 4;
1.7079 -+ fragP->fr_subtype = CALL_SUBTYPE_MCALL_CP;
1.7080 -+ }
1.7081 -+ }
1.7082 -+
1.7083 -+ fragP->fr_var = new_size;
1.7084 -+
1.7085 -+ pr_debug("%s:%d: call: relax pass done, growth: %d, fr_var: %d\n",
1.7086 -+ fragP->fr_file, fragP->fr_line,
1.7087 -+ new_size - old_size, fragP->fr_var);
1.7088 -+
1.7089 -+ return new_size - old_size;
1.7090 -+}
1.7091 -+
1.7092 -+static long
1.7093 -+avr32_cpool_relax_frag(segT segment ATTRIBUTE_UNUSED,
1.7094 -+ fragS *fragP,
1.7095 -+ long stretch ATTRIBUTE_UNUSED)
1.7096 -+{
1.7097 -+ struct cpool *pool;
1.7098 -+ addressT address;
1.7099 -+ long old_size, new_size;
1.7100 -+ unsigned int entry;
1.7101 -+
1.7102 -+ pool = fragP->tc_frag_data.pool;
1.7103 -+ address = fragP->fr_address + fragP->fr_fix;
1.7104 -+ old_size = fragP->fr_var;
1.7105 -+ new_size = 0;
1.7106 -+
1.7107 -+ for (entry = 0; entry < pool->next_free_entry; entry++)
1.7108 -+ {
1.7109 -+ if (pool->literals[entry].refcount > 0)
1.7110 -+ {
1.7111 -+ pool->literals[entry].offset = new_size;
1.7112 -+ new_size += 4;
1.7113 -+ }
1.7114 -+ }
1.7115 -+
1.7116 -+ fragP->fr_var = new_size;
1.7117 -+
1.7118 -+ return new_size - old_size;
1.7119 -+}
1.7120 -+
1.7121 -+/* *fragP has been relaxed to its final size, and now needs to have
1.7122 -+ the bytes inside it modified to conform to the new size.
1.7123 -+
1.7124 -+ Called after relaxation is finished.
1.7125 -+ fragP->fr_type == rs_machine_dependent.
1.7126 -+ fragP->fr_subtype is the subtype of what the address relaxed to. */
1.7127 -+
1.7128 -+static void
1.7129 -+avr32_default_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
1.7130 -+ segT segment ATTRIBUTE_UNUSED,
1.7131 -+ fragS *fragP)
1.7132 -+{
1.7133 -+ const struct avr32_opcode *opc;
1.7134 -+ const struct avr32_ifield *ifield;
1.7135 -+ bfd_reloc_code_real_type r_type;
1.7136 -+ symbolS *symbolP;
1.7137 -+ fixS *fixP;
1.7138 -+ bfd_vma value;
1.7139 -+ int subtype;
1.7140 -+
1.7141 -+ opc = &avr32_opc_table[fragP->fr_subtype];
1.7142 -+ ifield = opc->fields[opc->var_field];
1.7143 -+ symbolP = fragP->fr_symbol;
1.7144 -+ subtype = fragP->fr_subtype;
1.7145 -+ r_type = opc->reloc_type;
1.7146 -+
1.7147 -+ /* Clear the opcode bits and the bits belonging to the relaxed
1.7148 -+ field. We assume all other fields stay the same. */
1.7149 -+ value = bfd_getb32(fragP->fr_opcode);
1.7150 -+ value &= ~(opc->mask | ifield->mask);
1.7151 -+
1.7152 -+ /* Insert the new opcode */
1.7153 -+ value |= opc->value;
1.7154 -+ bfd_putb32(value, fragP->fr_opcode);
1.7155 -+
1.7156 -+ fragP->fr_fix += opc->size - fragP->fr_var;
1.7157 -+
1.7158 -+ if (fragP->tc_frag_data.reloc_info != AVR32_OPINFO_NONE)
1.7159 -+ {
1.7160 -+ switch (fragP->tc_frag_data.reloc_info)
1.7161 -+ {
1.7162 -+ case AVR32_OPINFO_HI:
1.7163 -+ r_type = BFD_RELOC_HI16;
1.7164 -+ break;
1.7165 -+ case AVR32_OPINFO_LO:
1.7166 -+ r_type = BFD_RELOC_LO16;
1.7167 -+ break;
1.7168 -+ case AVR32_OPINFO_GOT:
1.7169 -+ switch (r_type)
1.7170 -+ {
1.7171 -+ case BFD_RELOC_AVR32_18W_PCREL:
1.7172 -+ r_type = BFD_RELOC_AVR32_GOT18SW;
1.7173 -+ break;
1.7174 -+ case BFD_RELOC_AVR32_16S:
1.7175 -+ r_type = BFD_RELOC_AVR32_GOT16S;
1.7176 -+ break;
1.7177 -+ default:
1.7178 -+ BAD_CASE(r_type);
1.7179 -+ break;
1.7180 -+ }
1.7181 -+ break;
1.7182 -+ default:
1.7183 -+ BAD_CASE(fragP->tc_frag_data.reloc_info);
1.7184 -+ break;
1.7185 -+ }
1.7186 -+ }
1.7187 -+
1.7188 -+ pr_debug("%s:%d: convert_frag: new %s fixup\n",
1.7189 -+ fragP->fr_file, fragP->fr_line,
1.7190 -+ bfd_get_reloc_code_name(r_type));
1.7191 -+
1.7192 -+#if 1
1.7193 -+ fixP = fix_new_exp(fragP, fragP->fr_fix - opc->size, opc->size,
1.7194 -+ &fragP->tc_frag_data.exp,
1.7195 -+ fragP->tc_frag_data.pcrel, r_type);
1.7196 -+#else
1.7197 -+ fixP = fix_new(fragP, fragP->fr_fix - opc->size, opc->size, symbolP,
1.7198 -+ fragP->fr_offset, fragP->tc_frag_data.pcrel, r_type);
1.7199 -+#endif
1.7200 -+
1.7201 -+ /* Revert fix_new brain damage. "dot_value" is the value of PC at
1.7202 -+ the point of the fixup, relative to the frag address. fix_new()
1.7203 -+ and friends think they are only being called during the assembly
1.7204 -+ pass, not during relaxation or similar, so fx_dot_value, fx_file
1.7205 -+ and fx_line are all initialized to the wrong value. But we don't
1.7206 -+ know the size of the fixup until now, so we really can't live up
1.7207 -+ to the assumptions these functions make about the target. What
1.7208 -+ do these functions think the "where" and "frag" argument mean
1.7209 -+ anyway? */
1.7210 -+ fixP->fx_dot_value = fragP->fr_fix - opc->size;
1.7211 -+ fixP->fx_file = fragP->fr_file;
1.7212 -+ fixP->fx_line = fragP->fr_line;
1.7213 -+
1.7214 -+ fixP->tc_fix_data.ifield = ifield;
1.7215 -+ fixP->tc_fix_data.align = avr32_rs_align(subtype);
1.7216 -+ fixP->tc_fix_data.min = avr32_relax_table[subtype].lower_bound;
1.7217 -+ fixP->tc_fix_data.max = avr32_relax_table[subtype].upper_bound;
1.7218 -+}
1.7219 -+
1.7220 -+static void
1.7221 -+avr32_lda_convert_frag(bfd *abfd ATTRIBUTE_UNUSED,
1.7222 -+ segT segment ATTRIBUTE_UNUSED,
1.7223 -+ fragS *fragP)
1.7224 -+{
1.7225 -+ const struct avr32_opcode *opc;
1.7226 -+ const struct avr32_ifield *ifield;
1.7227 -+ bfd_reloc_code_real_type r_type;
1.7228 -+ expressionS exp;
1.7229 -+ struct cpool *pool;
1.7230 -+ fixS *fixP;
1.7231 -+ bfd_vma value;
1.7232 -+ int regid, pcrel = 0, align = 0;
1.7233 -+ char *p;
1.7234 -+
1.7235 -+ r_type = BFD_RELOC_NONE;
1.7236 -+ regid = fragP->tc_frag_data.reloc_info;
1.7237 -+ p = fragP->fr_opcode;
1.7238 -+ exp.X_add_symbol = fragP->fr_symbol;
1.7239 -+ exp.X_add_number = fragP->fr_offset;
1.7240 -+ exp.X_op = O_symbol;
1.7241 -+
1.7242 -+ pr_debug("%s:%d: lda_convert_frag, subtype: %d, fix: %d, var: %d, regid: %d\n",
1.7243 -+ fragP->fr_file, fragP->fr_line,
1.7244 -+ fragP->fr_subtype, fragP->fr_fix, fragP->fr_var, regid);
1.7245 -+
1.7246 -+ switch (fragP->fr_subtype)
1.7247 -+ {
1.7248 -+ case LDA_SUBTYPE_MOV1:
1.7249 -+ opc = &avr32_opc_table[AVR32_OPC_MOV1];
1.7250 -+ opc->fields[0]->insert(opc->fields[0], p, regid);
1.7251 -+ ifield = opc->fields[1];
1.7252 -+ r_type = opc->reloc_type;
1.7253 -+ break;
1.7254 -+ case LDA_SUBTYPE_MOV2:
1.7255 -+ opc = &avr32_opc_table[AVR32_OPC_MOV2];
1.7256 -+ opc->fields[0]->insert(opc->fields[0], p, regid);
1.7257 -+ ifield = opc->fields[1];
1.7258 -+ r_type = opc->reloc_type;
1.7259 -+ break;
1.7260 -+ case LDA_SUBTYPE_SUB:
1.7261 -+ opc = &avr32_opc_table[AVR32_OPC_SUB5];
1.7262 -+ opc->fields[0]->insert(opc->fields[0], p, regid);
1.7263 -+ opc->fields[1]->insert(opc->fields[1], p, AVR32_REG_PC);
1.7264 -+ ifield = opc->fields[2];
1.7265 -+ r_type = BFD_RELOC_AVR32_16N_PCREL;
1.7266 -+
1.7267 -+ /* Pretend that SUB5 isn't a "negated" pcrel expression for now.
1.7268 -+ We'll have to fix it up later when we know whether to
1.7269 -+ generate a reloc for it (in which case the linker will negate
1.7270 -+ it, so we shouldn't). */
1.7271 -+ pcrel = 1;
1.7272 -+ break;
1.7273 -+ case LDA_SUBTYPE_LDDPC:
1.7274 -+ opc = &avr32_opc_table[AVR32_OPC_LDDPC];
1.7275 -+ align = 2;
1.7276 -+ r_type = BFD_RELOC_AVR32_9W_CP;
1.7277 -+ goto cpool_common;
1.7278 -+ case LDA_SUBTYPE_LDW:
1.7279 -+ opc = &avr32_opc_table[AVR32_OPC_LDDPC_EXT];
1.7280 -+ r_type = BFD_RELOC_AVR32_16_CP;
1.7281 -+ cpool_common:
1.7282 -+ opc->fields[0]->insert(opc->fields[0], p, regid);
1.7283 -+ ifield = opc->fields[1];
1.7284 -+ pool = fragP->tc_frag_data.pool;
1.7285 -+ exp.X_add_symbol = pool->symbol;
1.7286 -+ exp.X_add_number = pool->literals[fragP->tc_frag_data.pool_entry].offset;
1.7287 -+ pcrel = 1;
1.7288 -+ break;
1.7289 -+ case LDA_SUBTYPE_GOTLOAD_LARGE:
1.7290 -+ /* ld.w Rd, r6[Rd << 2] (last) */
1.7291 -+ opc = &avr32_opc_table[AVR32_OPC_LD_W5];
1.7292 -+ bfd_putb32(opc->value, p + 4);
1.7293 -+ opc->fields[0]->insert(opc->fields[0], p + 4, regid);
1.7294 -+ opc->fields[1]->insert(opc->fields[1], p + 4, 6);
1.7295 -+ opc->fields[2]->insert(opc->fields[2], p + 4, regid);
1.7296 -+ opc->fields[3]->insert(opc->fields[3], p + 4, 2);
1.7297 -+
1.7298 -+ /* mov Rd, (got_offset / 4) */
1.7299 -+ opc = &avr32_opc_table[AVR32_OPC_MOV2];
1.7300 -+ opc->fields[0]->insert(opc->fields[0], p, regid);
1.7301 -+ ifield = opc->fields[1];
1.7302 -+ r_type = BFD_RELOC_AVR32_LDA_GOT;
1.7303 -+ break;
1.7304 -+ case LDA_SUBTYPE_GOTLOAD:
1.7305 -+ opc = &avr32_opc_table[AVR32_OPC_LD_W4];
1.7306 -+ opc->fields[0]->insert(opc->fields[0], p, regid);
1.7307 -+ opc->fields[1]->insert(opc->fields[1], p, 6);
1.7308 -+ ifield = opc->fields[2];
1.7309 -+ if (r_type == BFD_RELOC_NONE)
1.7310 -+ r_type = BFD_RELOC_AVR32_GOT16S;
1.7311 -+ break;
1.7312 -+ default:
1.7313 -+ BAD_CASE(fragP->fr_subtype);
1.7314 -+ }
1.7315 -+
1.7316 -+ value = bfd_getb32(p);
1.7317 -+ value &= ~(opc->mask | ifield->mask);
1.7318 -+ value |= opc->value;
1.7319 -+ bfd_putb32(value, p);
1.7320 -+
1.7321 -+ fragP->fr_fix += fragP->fr_var - LDA_INITIAL_SIZE;
1.7322 -+
1.7323 -+ if (fragP->fr_next
1.7324 -+ && ((offsetT)(fragP->fr_next->fr_address - fragP->fr_address)
1.7325 -+ != fragP->fr_fix))
1.7326 -+ {
1.7327 -+ fprintf(stderr, "LDA frag: fr_fix is wrong! fragP->fr_var = %ld, r_type = %s\n",
1.7328 -+ fragP->fr_var, bfd_get_reloc_code_name(r_type));
1.7329 -+ abort();
1.7330 -+ }
1.7331 -+
1.7332 -+ fixP = fix_new_exp(fragP, fragP->fr_fix - fragP->fr_var, fragP->fr_var,
1.7333 -+ &exp, pcrel, r_type);
1.7334 -+
1.7335 -+ /* Revert fix_new brain damage. "dot_value" is the value of PC at
1.7336 -+ the point of the fixup, relative to the frag address. fix_new()
1.7337 -+ and friends think they are only being called during the assembly
1.7338 -+ pass, not during relaxation or similar, so fx_dot_value, fx_file
1.7339 -+ and fx_line are all initialized to the wrong value. But we don't
1.7340 -+ know the size of the fixup until now, so we really can't live up
1.7341 -+ to the assumptions these functions make about the target. What
1.7342 -+ do these functions think the "where" and "frag" argument mean
1.7343 -+ anyway? */
1.7344 -+ fixP->fx_dot_value = fragP->fr_fix - opc->size;
1.7345 -+ fixP->fx_file = fragP->fr_file;
1.7346 -+ fixP->fx_line = fragP->fr_line;
1.7347 -+
1.7348 -+ fixP->tc_fix_data.ifield = ifield;
1.7349 -+ fixP->tc_fix_data.align = align;
1.7350 -+ /* these are only used if the fixup can actually be resolved */
1.7351 -+ fixP->tc_fix_data.min = -32768;
1.7352 -+ fixP->tc_fix_data.max = 32767;
1.7353 -+}
1.7354 -+
1.7355 -+static void
1.7356 -+avr32_call_convert_frag(bfd *abfd ATTRIBUTE_UNUSED,
1.7357 -+ segT segment ATTRIBUTE_UNUSED,
1.7358 -+ fragS *fragP)
1.7359 -+{
1.7360 -+ const struct avr32_opcode *opc = NULL;
1.7361 -+ const struct avr32_ifield *ifield;
1.7362 -+ bfd_reloc_code_real_type r_type;
1.7363 -+ symbolS *symbol;
1.7364 -+ offsetT offset;
1.7365 -+ fixS *fixP;
1.7366 -+ bfd_vma value;
1.7367 -+ int pcrel = 0, align = 0;
1.7368 -+ char *p;
1.7369 -+
1.7370 -+ symbol = fragP->fr_symbol;
1.7371 -+ offset = fragP->fr_offset;
1.7372 -+ r_type = BFD_RELOC_NONE;
1.7373 -+ p = fragP->fr_opcode;
1.7374 -+
1.7375 -+ pr_debug("%s:%d: call_convert_frag, subtype: %d, fix: %d, var: %d\n",
1.7376 -+ fragP->fr_file, fragP->fr_line,
1.7377 -+ fragP->fr_subtype, fragP->fr_fix, fragP->fr_var);
1.7378 -+
1.7379 -+ switch (fragP->fr_subtype)
1.7380 -+ {
1.7381 -+ case CALL_SUBTYPE_RCALL1:
1.7382 -+ opc = &avr32_opc_table[AVR32_OPC_RCALL1];
1.7383 -+ /* fall through */
1.7384 -+ case CALL_SUBTYPE_RCALL2:
1.7385 -+ if (!opc)
1.7386 -+ opc = &avr32_opc_table[AVR32_OPC_RCALL2];
1.7387 -+ ifield = opc->fields[0];
1.7388 -+ r_type = opc->reloc_type;
1.7389 -+ pcrel = 1;
1.7390 -+ align = 1;
1.7391 -+ break;
1.7392 -+ case CALL_SUBTYPE_MCALL_CP:
1.7393 -+ opc = &avr32_opc_table[AVR32_OPC_MCALL];
1.7394 -+ opc->fields[0]->insert(opc->fields[0], p, AVR32_REG_PC);
1.7395 -+ ifield = opc->fields[1];
1.7396 -+ r_type = BFD_RELOC_AVR32_CPCALL;
1.7397 -+ symbol = fragP->tc_frag_data.pool->symbol;
1.7398 -+ offset = fragP->tc_frag_data.pool->literals[fragP->tc_frag_data.pool_entry].offset;
1.7399 -+ assert(fragP->tc_frag_data.pool->literals[fragP->tc_frag_data.pool_entry].refcount > 0);
1.7400 -+ pcrel = 1;
1.7401 -+ align = 2;
1.7402 -+ break;
1.7403 -+ case CALL_SUBTYPE_MCALL_GOT:
1.7404 -+ opc = &avr32_opc_table[AVR32_OPC_MCALL];
1.7405 -+ opc->fields[0]->insert(opc->fields[0], p, 6);
1.7406 -+ ifield = opc->fields[1];
1.7407 -+ r_type = BFD_RELOC_AVR32_GOT18SW;
1.7408 -+ break;
1.7409 -+ case CALL_SUBTYPE_MCALL_LARGE:
1.7410 -+ assert(fragP->fr_var == 10);
1.7411 -+ /* ld.w lr, r6[lr << 2] */
1.7412 -+ opc = &avr32_opc_table[AVR32_OPC_LD_W5];
1.7413 -+ bfd_putb32(opc->value, p + 4);
1.7414 -+ opc->fields[0]->insert(opc->fields[0], p + 4, AVR32_REG_LR);
1.7415 -+ opc->fields[1]->insert(opc->fields[1], p + 4, 6);
1.7416 -+ opc->fields[2]->insert(opc->fields[2], p + 4, AVR32_REG_LR);
1.7417 -+ opc->fields[3]->insert(opc->fields[3], p + 4, 2);
1.7418 -+
1.7419 -+ /* icall lr */
1.7420 -+ opc = &avr32_opc_table[AVR32_OPC_ICALL];
1.7421 -+ bfd_putb16(opc->value >> 16, p + 8);
1.7422 -+ opc->fields[0]->insert(opc->fields[0], p + 8, AVR32_REG_LR);
1.7423 -+
1.7424 -+ /* mov lr, (got_offset / 4) */
1.7425 -+ opc = &avr32_opc_table[AVR32_OPC_MOV2];
1.7426 -+ opc->fields[0]->insert(opc->fields[0], p, AVR32_REG_LR);
1.7427 -+ ifield = opc->fields[1];
1.7428 -+ r_type = BFD_RELOC_AVR32_GOTCALL;
1.7429 -+ break;
1.7430 -+ default:
1.7431 -+ BAD_CASE(fragP->fr_subtype);
1.7432 -+ }
1.7433 -+
1.7434 -+ /* Insert the opcode and clear the variable ifield */
1.7435 -+ value = bfd_getb32(p);
1.7436 -+ value &= ~(opc->mask | ifield->mask);
1.7437 -+ value |= opc->value;
1.7438 -+ bfd_putb32(value, p);
1.7439 -+
1.7440 -+ fragP->fr_fix += fragP->fr_var - CALL_INITIAL_SIZE;
1.7441 -+
1.7442 -+ if (fragP->fr_next
1.7443 -+ && ((offsetT)(fragP->fr_next->fr_address - fragP->fr_address)
1.7444 -+ != fragP->fr_fix))
1.7445 -+ {
1.7446 -+ fprintf(stderr, "%s:%d: fr_fix %lu is wrong! fr_var=%lu, r_type=%s\n",
1.7447 -+ fragP->fr_file, fragP->fr_line,
1.7448 -+ fragP->fr_fix, fragP->fr_var, bfd_get_reloc_code_name(r_type));
1.7449 -+ fprintf(stderr, "fr_fix should be %ld. next frag is %s:%d\n",
1.7450 -+ (offsetT)(fragP->fr_next->fr_address - fragP->fr_address),
1.7451 -+ fragP->fr_next->fr_file, fragP->fr_next->fr_line);
1.7452 -+ }
1.7453 -+
1.7454 -+ fixP = fix_new(fragP, fragP->fr_fix - fragP->fr_var, fragP->fr_var,
1.7455 -+ symbol, offset, pcrel, r_type);
1.7456 -+
1.7457 -+ /* Revert fix_new brain damage. "dot_value" is the value of PC at
1.7458 -+ the point of the fixup, relative to the frag address. fix_new()
1.7459 -+ and friends think they are only being called during the assembly
1.7460 -+ pass, not during relaxation or similar, so fx_dot_value, fx_file
1.7461 -+ and fx_line are all initialized to the wrong value. But we don't
1.7462 -+ know the size of the fixup until now, so we really can't live up
1.7463 -+ to the assumptions these functions make about the target. What
1.7464 -+ do these functions think the "where" and "frag" argument mean
1.7465 -+ anyway? */
1.7466 -+ fixP->fx_dot_value = fragP->fr_fix - opc->size;
1.7467 -+ fixP->fx_file = fragP->fr_file;
1.7468 -+ fixP->fx_line = fragP->fr_line;
1.7469 -+
1.7470 -+ fixP->tc_fix_data.ifield = ifield;
1.7471 -+ fixP->tc_fix_data.align = align;
1.7472 -+ /* these are only used if the fixup can actually be resolved */
1.7473 -+ fixP->tc_fix_data.min = -2097152;
1.7474 -+ fixP->tc_fix_data.max = 2097150;
1.7475 -+}
1.7476 -+
1.7477 -+static void
1.7478 -+avr32_cpool_convert_frag(bfd *abfd ATTRIBUTE_UNUSED,
1.7479 -+ segT segment ATTRIBUTE_UNUSED,
1.7480 -+ fragS *fragP)
1.7481 -+{
1.7482 -+ struct cpool *pool;
1.7483 -+ addressT address;
1.7484 -+ unsigned int entry;
1.7485 -+ char *p;
1.7486 -+ char sym_name[20];
1.7487 -+
1.7488 -+ /* Did we get rid of the frag altogether? */
1.7489 -+ if (!fragP->fr_var)
1.7490 -+ return;
1.7491 -+
1.7492 -+ pool = fragP->tc_frag_data.pool;
1.7493 -+ address = fragP->fr_address + fragP->fr_fix;
1.7494 -+ p = fragP->fr_literal + fragP->fr_fix;
1.7495 -+
1.7496 -+ sprintf(sym_name, "$$cp_\002%x", pool->id);
1.7497 -+ symbol_locate(pool->symbol, sym_name, pool->section, fragP->fr_fix, fragP);
1.7498 -+ symbol_table_insert(pool->symbol);
1.7499 -+
1.7500 -+ for (entry = 0; entry < pool->next_free_entry; entry++)
1.7501 -+ {
1.7502 -+ if (pool->literals[entry].refcount > 0)
1.7503 -+ {
1.7504 -+ fix_new_exp(fragP, fragP->fr_fix, 4, &pool->literals[entry].exp,
1.7505 -+ FALSE, BFD_RELOC_AVR32_32_CPENT);
1.7506 -+ fragP->fr_fix += 4;
1.7507 -+ }
1.7508 -+ }
1.7509 -+}
1.7510 -+
1.7511 -+static struct avr32_relaxer avr32_default_relaxer = {
1.7512 -+ .estimate_size = avr32_default_estimate_size_before_relax,
1.7513 -+ .relax_frag = avr32_default_relax_frag,
1.7514 -+ .convert_frag = avr32_default_convert_frag,
1.7515 -+};
1.7516 -+static struct avr32_relaxer avr32_lda_relaxer = {
1.7517 -+ .estimate_size = avr32_lda_estimate_size_before_relax,
1.7518 -+ .relax_frag = avr32_lda_relax_frag,
1.7519 -+ .convert_frag = avr32_lda_convert_frag,
1.7520 -+};
1.7521 -+static struct avr32_relaxer avr32_call_relaxer = {
1.7522 -+ .estimate_size = avr32_call_estimate_size_before_relax,
1.7523 -+ .relax_frag = avr32_call_relax_frag,
1.7524 -+ .convert_frag = avr32_call_convert_frag,
1.7525 -+};
1.7526 -+static struct avr32_relaxer avr32_cpool_relaxer = {
1.7527 -+ .estimate_size = avr32_cpool_estimate_size_before_relax,
1.7528 -+ .relax_frag = avr32_cpool_relax_frag,
1.7529 -+ .convert_frag = avr32_cpool_convert_frag,
1.7530 -+};
1.7531 -+
1.7532 -+static void s_cpool(int arg ATTRIBUTE_UNUSED)
1.7533 -+{
1.7534 -+ struct cpool *pool;
1.7535 -+ unsigned int max_size;
1.7536 -+ char *buf;
1.7537 -+
1.7538 -+ pool = find_cpool(now_seg, now_subseg);
1.7539 -+ if (!pool || !pool->symbol || pool->next_free_entry == 0)
1.7540 -+ return;
1.7541 -+
1.7542 -+ /* Make sure the constant pool is properly aligned */
1.7543 -+ frag_align_code(2, 0);
1.7544 -+ if (bfd_get_section_alignment(stdoutput, pool->section) < 2)
1.7545 -+ bfd_set_section_alignment(stdoutput, pool->section, 2);
1.7546 -+
1.7547 -+ /* Assume none of the entries are discarded, and that we need the
1.7548 -+ maximum amount of alignment. But we're not going to allocate
1.7549 -+ anything up front. */
1.7550 -+ max_size = pool->next_free_entry * 4 + 2;
1.7551 -+ frag_grow(max_size);
1.7552 -+ buf = frag_more(0);
1.7553 -+
1.7554 -+ frag_now->tc_frag_data.relaxer = &avr32_cpool_relaxer;
1.7555 -+ frag_now->tc_frag_data.pool = pool;
1.7556 -+
1.7557 -+ symbol_set_frag(pool->symbol, frag_now);
1.7558 -+
1.7559 -+ /* Assume zero initial size, allowing other relaxers to be
1.7560 -+ optimistic about things. */
1.7561 -+ frag_var(rs_machine_dependent, max_size, 0,
1.7562 -+ 0, pool->symbol, 0, NULL);
1.7563 -+
1.7564 -+ /* Mark the pool as empty. */
1.7565 -+ pool->used = 1;
1.7566 -+}
1.7567 -+
1.7568 -+/* The location from which a PC relative jump should be calculated,
1.7569 -+ given a PC relative reloc. */
1.7570 -+
1.7571 -+long
1.7572 -+md_pcrel_from_section (fixS *fixP, segT sec)
1.7573 -+{
1.7574 -+ pr_debug("pcrel_from_section, fx_offset = %d\n", fixP->fx_offset);
1.7575 -+
1.7576 -+ if (fixP->fx_addsy != NULL
1.7577 -+ && (! S_IS_DEFINED (fixP->fx_addsy)
1.7578 -+ || S_GET_SEGMENT (fixP->fx_addsy) != sec
1.7579 -+ || S_FORCE_RELOC(fixP->fx_addsy, 1)))
1.7580 -+ {
1.7581 -+ pr_debug("Unknown pcrel symbol: %s\n", S_GET_NAME(fixP->fx_addsy));
1.7582 -+
1.7583 -+ /* The symbol is undefined (or is defined but not in this section).
1.7584 -+ Let the linker figure it out. */
1.7585 -+ return 0;
1.7586 -+ }
1.7587 -+
1.7588 -+ pr_debug("pcrel from %x + %x, symbol: %s (%x)\n",
1.7589 -+ fixP->fx_frag->fr_address, fixP->fx_where,
1.7590 -+ fixP->fx_addsy?S_GET_NAME(fixP->fx_addsy):"(null)",
1.7591 -+ fixP->fx_addsy?S_GET_VALUE(fixP->fx_addsy):0);
1.7592 -+
1.7593 -+ return ((fixP->fx_frag->fr_address + fixP->fx_where)
1.7594 -+ & (~0UL << fixP->tc_fix_data.align));
1.7595 -+}
1.7596 -+
1.7597 -+valueT
1.7598 -+md_section_align (segT segment, valueT size)
1.7599 -+{
1.7600 -+ int align = bfd_get_section_alignment (stdoutput, segment);
1.7601 -+ return ((size + (1 << align) - 1) & (-1 << align));
1.7602 -+}
1.7603 -+
1.7604 -+static int syntax_matches(const struct avr32_syntax *syntax,
1.7605 -+ char *str)
1.7606 -+{
1.7607 -+ int i;
1.7608 -+
1.7609 -+ pr_debug("syntax %d matches `%s'?\n", syntax->id, str);
1.7610 -+
1.7611 -+ if (syntax->nr_operands < 0)
1.7612 -+ {
1.7613 -+ struct avr32_operand *op;
1.7614 -+ int optype;
1.7615 -+
1.7616 -+ for (i = 0; i < (-syntax->nr_operands - 1); i++)
1.7617 -+ {
1.7618 -+ char *p;
1.7619 -+ char c;
1.7620 -+
1.7621 -+ optype = syntax->operand[i];
1.7622 -+ assert(optype < AVR32_NR_OPERANDS);
1.7623 -+ op = &avr32_operand_table[optype];
1.7624 -+
1.7625 -+ for (p = str; *p; p++)
1.7626 -+ if (*p == ',')
1.7627 -+ break;
1.7628 -+
1.7629 -+ if (p == str)
1.7630 -+ return 0;
1.7631 -+
1.7632 -+ c = *p;
1.7633 -+ *p = 0;
1.7634 -+
1.7635 -+ if (!op->match(str))
1.7636 -+ {
1.7637 -+ *p = c;
1.7638 -+ return 0;
1.7639 -+ }
1.7640 -+
1.7641 -+ str = p;
1.7642 -+ *p = c;
1.7643 -+ if (c)
1.7644 -+ str++;
1.7645 -+ }
1.7646 -+
1.7647 -+ optype = syntax->operand[i];
1.7648 -+ assert(optype < AVR32_NR_OPERANDS);
1.7649 -+ op = &avr32_operand_table[optype];
1.7650 -+
1.7651 -+ if (!op->match(str))
1.7652 -+ return 0;
1.7653 -+ return 1;
1.7654 -+ }
1.7655 -+
1.7656 -+ for (i = 0; i < syntax->nr_operands; i++)
1.7657 -+ {
1.7658 -+ struct avr32_operand *op;
1.7659 -+ int optype = syntax->operand[i];
1.7660 -+ char *p;
1.7661 -+ char c;
1.7662 -+
1.7663 -+ assert(optype < AVR32_NR_OPERANDS);
1.7664 -+ op = &avr32_operand_table[optype];
1.7665 -+
1.7666 -+ for (p = str; *p; p++)
1.7667 -+ if (*p == ',')
1.7668 -+ break;
1.7669 -+
1.7670 -+ if (p == str)
1.7671 -+ return 0;
1.7672 -+
1.7673 -+ c = *p;
1.7674 -+ *p = 0;
1.7675 -+
1.7676 -+ if (!op->match(str))
1.7677 -+ {
1.7678 -+ *p = c;
1.7679 -+ return 0;
1.7680 -+ }
1.7681 -+
1.7682 -+ str = p;
1.7683 -+ *p = c;
1.7684 -+ if (c)
1.7685 -+ str++;
1.7686 -+ }
1.7687 -+
1.7688 -+ if (*str == '\0')
1.7689 -+ return 1;
1.7690 -+
1.7691 -+ if ((*str == 'e' || *str == 'E') && !str[1])
1.7692 -+ return 1;
1.7693 -+
1.7694 -+ return 0;
1.7695 -+}
1.7696 -+
1.7697 -+static int parse_operands(char *str)
1.7698 -+{
1.7699 -+ int i;
1.7700 -+
1.7701 -+ if (current_insn.syntax->nr_operands < 0)
1.7702 -+ {
1.7703 -+ int optype;
1.7704 -+ struct avr32_operand *op;
1.7705 -+
1.7706 -+ for (i = 0; i < (-current_insn.syntax->nr_operands - 1); i++)
1.7707 -+ {
1.7708 -+ char *p;
1.7709 -+ char c;
1.7710 -+
1.7711 -+ optype = current_insn.syntax->operand[i];
1.7712 -+ op = &avr32_operand_table[optype];
1.7713 -+
1.7714 -+ for (p = str; *p; p++)
1.7715 -+ if (*p == ',')
1.7716 -+ break;
1.7717 -+
1.7718 -+ assert(p != str);
1.7719 -+
1.7720 -+ c = *p, *p = 0;
1.7721 -+ op->parse(op, str, i);
1.7722 -+ *p = c;
1.7723 -+
1.7724 -+ str = p;
1.7725 -+ if (c) str++;
1.7726 -+ }
1.7727 -+
1.7728 -+ /* give the rest of the line to the last operand */
1.7729 -+ optype = current_insn.syntax->operand[i];
1.7730 -+ op = &avr32_operand_table[optype];
1.7731 -+ op->parse(op, str, i);
1.7732 -+ }
1.7733 -+ else
1.7734 -+ {
1.7735 -+ for (i = 0; i < current_insn.syntax->nr_operands; i++)
1.7736 -+ {
1.7737 -+ int optype = current_insn.syntax->operand[i];
1.7738 -+ struct avr32_operand *op = &avr32_operand_table[optype];
1.7739 -+ char *p;
1.7740 -+ char c;
1.7741 -+
1.7742 -+ skip_whitespace(str);
1.7743 -+
1.7744 -+ for (p = str; *p; p++)
1.7745 -+ if (*p == ',')
1.7746 -+ break;
1.7747 -+
1.7748 -+ assert(p != str);
1.7749 -+
1.7750 -+ c = *p, *p = 0;
1.7751 -+ op->parse(op, str, i);
1.7752 -+ *p = c;
1.7753 -+
1.7754 -+ str = p;
1.7755 -+ if (c) str++;
1.7756 -+ }
1.7757 -+
1.7758 -+ if (*str == 'E' || *str == 'e')
1.7759 -+ current_insn.force_extended = 1;
1.7760 -+ }
1.7761 -+
1.7762 -+ return 0;
1.7763 -+}
1.7764 -+
1.7765 -+static const char *
1.7766 -+finish_insn(const struct avr32_opcode *opc)
1.7767 -+{
1.7768 -+ expressionS *exp = ¤t_insn.immediate;
1.7769 -+ unsigned int i;
1.7770 -+ int will_relax = 0;
1.7771 -+ char *buf;
1.7772 -+
1.7773 -+ assert(current_insn.next_slot == opc->nr_fields);
1.7774 -+
1.7775 -+ pr_debug("%s:%d: finish_insn: trying opcode %d\n",
1.7776 -+ frag_now->fr_file, frag_now->fr_line, opc->id);
1.7777 -+
1.7778 -+ /* Go through the relaxation stage for all instructions that can
1.7779 -+ possibly take a symbolic immediate. The relax code will take
1.7780 -+ care of range checking and alignment. */
1.7781 -+ if (opc->var_field != -1)
1.7782 -+ {
1.7783 -+ int substate, largest_substate;
1.7784 -+ symbolS *sym;
1.7785 -+ offsetT off;
1.7786 -+
1.7787 -+ will_relax = 1;
1.7788 -+ substate = largest_substate = opc_initial_substate(opc);
1.7789 -+
1.7790 -+ while (relax_more(largest_substate) != AVR32_RS_NONE)
1.7791 -+ largest_substate = relax_more(largest_substate);
1.7792 -+
1.7793 -+ pr_debug("will relax. initial substate: %d (size %d), largest substate: %d (size %d)\n",
1.7794 -+ substate, avr32_rs_size(substate),
1.7795 -+ largest_substate, avr32_rs_size(largest_substate));
1.7796 -+
1.7797 -+ /* make sure we have enough room for the largest possible opcode */
1.7798 -+ frag_grow(avr32_rs_size(largest_substate));
1.7799 -+ buf = frag_more(opc->size);
1.7800 -+
1.7801 -+ dwarf2_emit_insn(opc->size);
1.7802 -+
1.7803 -+ frag_now->tc_frag_data.reloc_info = AVR32_OPINFO_NONE;
1.7804 -+ frag_now->tc_frag_data.pcrel = current_insn.pcrel;
1.7805 -+ frag_now->tc_frag_data.force_extended = current_insn.force_extended;
1.7806 -+ frag_now->tc_frag_data.relaxer = &avr32_default_relaxer;
1.7807 -+
1.7808 -+ if (exp->X_op == O_hi)
1.7809 -+ {
1.7810 -+ frag_now->tc_frag_data.reloc_info = AVR32_OPINFO_HI;
1.7811 -+ exp->X_op = exp->X_md;
1.7812 -+ }
1.7813 -+ else if (exp->X_op == O_lo)
1.7814 -+ {
1.7815 -+ frag_now->tc_frag_data.reloc_info = AVR32_OPINFO_LO;
1.7816 -+ exp->X_op = exp->X_md;
1.7817 -+ }
1.7818 -+ else if (exp->X_op == O_got)
1.7819 -+ {
1.7820 -+ frag_now->tc_frag_data.reloc_info = AVR32_OPINFO_GOT;
1.7821 -+ exp->X_op = O_symbol;
1.7822 -+ }
1.7823 -+
1.7824 -+#if 0
1.7825 -+ if ((opc->reloc_type == BFD_RELOC_AVR32_SUB5)
1.7826 -+ && exp->X_op == O_subtract)
1.7827 -+ {
1.7828 -+ symbolS *tmp;
1.7829 -+ tmp = exp->X_add_symbol;
1.7830 -+ exp->X_add_symbol = exp->X_op_symbol;
1.7831 -+ exp->X_op_symbol = tmp;
1.7832 -+ }
1.7833 -+#endif
1.7834 -+
1.7835 -+ frag_now->tc_frag_data.exp = current_insn.immediate;
1.7836 -+
1.7837 -+ sym = exp->X_add_symbol;
1.7838 -+ off = exp->X_add_number;
1.7839 -+ if (exp->X_op != O_symbol)
1.7840 -+ {
1.7841 -+ sym = make_expr_symbol(exp);
1.7842 -+ off = 0;
1.7843 -+ }
1.7844 -+
1.7845 -+ frag_var(rs_machine_dependent,
1.7846 -+ avr32_rs_size(largest_substate) - opc->size,
1.7847 -+ opc->size,
1.7848 -+ substate, sym, off, buf);
1.7849 -+ }
1.7850 -+ else
1.7851 -+ {
1.7852 -+ assert(avr32_rs_size(opc_initial_substate(opc)) == 0);
1.7853 -+
1.7854 -+ /* Make sure we always have room for another whole word, as the ifield
1.7855 -+ inserters can only write words. */
1.7856 -+ frag_grow(4);
1.7857 -+ buf = frag_more(opc->size);
1.7858 -+ dwarf2_emit_insn(opc->size);
1.7859 -+ }
1.7860 -+
1.7861 -+ assert(!(opc->value & ~opc->mask));
1.7862 -+
1.7863 -+ pr_debug("inserting opcode: 0x%lx\n", opc->value);
1.7864 -+ bfd_putb32(opc->value, buf);
1.7865 -+
1.7866 -+ for (i = 0; i < opc->nr_fields; i++)
1.7867 -+ {
1.7868 -+ const struct avr32_ifield *f = opc->fields[i];
1.7869 -+ const struct avr32_ifield_data *fd = ¤t_insn.field_value[i];
1.7870 -+
1.7871 -+ pr_debug("inserting field: 0x%lx & 0x%lx\n",
1.7872 -+ fd->value >> fd->align_order, f->mask);
1.7873 -+
1.7874 -+ f->insert(f, buf, fd->value >> fd->align_order);
1.7875 -+ }
1.7876 -+
1.7877 -+ assert(will_relax || !current_insn.immediate.X_add_symbol);
1.7878 -+ return NULL;
1.7879 -+}
1.7880 -+
1.7881 -+static const char *
1.7882 -+finish_alias(const struct avr32_alias *alias)
1.7883 -+{
1.7884 -+ const struct avr32_opcode *opc;
1.7885 -+ struct {
1.7886 -+ unsigned long value;
1.7887 -+ unsigned long align;
1.7888 -+ } mapped_operand[AVR32_MAX_OPERANDS];
1.7889 -+ unsigned int i;
1.7890 -+
1.7891 -+ opc = alias->opc;
1.7892 -+
1.7893 -+ /* Remap the operands from the alias to the real opcode */
1.7894 -+ for (i = 0; i < opc->nr_fields; i++)
1.7895 -+ {
1.7896 -+ if (alias->operand_map[i].is_opindex)
1.7897 -+ {
1.7898 -+ struct avr32_ifield_data *fd;
1.7899 -+ fd = ¤t_insn.field_value[alias->operand_map[i].value];
1.7900 -+ mapped_operand[i].value = fd->value;
1.7901 -+ mapped_operand[i].align = fd->align_order;
1.7902 -+ }
1.7903 -+ else
1.7904 -+ {
1.7905 -+ mapped_operand[i].value = alias->operand_map[i].value;
1.7906 -+ mapped_operand[i].align = 0;
1.7907 -+ }
1.7908 -+ }
1.7909 -+
1.7910 -+ for (i = 0; i < opc->nr_fields; i++)
1.7911 -+ {
1.7912 -+ current_insn.field_value[i].value = mapped_operand[i].value;
1.7913 -+ if (opc->id == AVR32_OPC_COP)
1.7914 -+ current_insn.field_value[i].align_order = 0;
1.7915 -+ else
1.7916 -+ current_insn.field_value[i].align_order
1.7917 -+ = mapped_operand[i].align;
1.7918 -+ }
1.7919 -+
1.7920 -+ current_insn.next_slot = opc->nr_fields;
1.7921 -+
1.7922 -+ return finish_insn(opc);
1.7923 -+}
1.7924 -+
1.7925 -+static const char *
1.7926 -+finish_lda(const struct avr32_syntax *syntax ATTRIBUTE_UNUSED)
1.7927 -+{
1.7928 -+ expressionS *exp = ¤t_insn.immediate;
1.7929 -+ relax_substateT initial_subtype;
1.7930 -+ symbolS *sym;
1.7931 -+ offsetT off;
1.7932 -+ int initial_size, max_size;
1.7933 -+ char *buf;
1.7934 -+
1.7935 -+ initial_size = LDA_INITIAL_SIZE;
1.7936 -+
1.7937 -+ if (avr32_pic)
1.7938 -+ {
1.7939 -+ initial_subtype = LDA_SUBTYPE_SUB;
1.7940 -+ if (linkrelax)
1.7941 -+ max_size = 8;
1.7942 -+ else
1.7943 -+ max_size = 4;
1.7944 -+ }
1.7945 -+ else
1.7946 -+ {
1.7947 -+ initial_subtype = LDA_SUBTYPE_MOV1;
1.7948 -+ max_size = 4;
1.7949 -+ }
1.7950 -+
1.7951 -+ frag_grow(max_size);
1.7952 -+ buf = frag_more(initial_size);
1.7953 -+ dwarf2_emit_insn(initial_size);
1.7954 -+
1.7955 -+ if (exp->X_op == O_symbol)
1.7956 -+ {
1.7957 -+ sym = exp->X_add_symbol;
1.7958 -+ off = exp->X_add_number;
1.7959 -+ }
1.7960 -+ else
1.7961 -+ {
1.7962 -+ sym = make_expr_symbol(exp);
1.7963 -+ off = 0;
1.7964 -+ }
1.7965 -+
1.7966 -+ frag_now->tc_frag_data.reloc_info = current_insn.field_value[0].value;
1.7967 -+ frag_now->tc_frag_data.relaxer = &avr32_lda_relaxer;
1.7968 -+
1.7969 -+ if (!avr32_pic)
1.7970 -+ {
1.7971 -+ /* The relaxer will bump the refcount if necessary */
1.7972 -+ frag_now->tc_frag_data.pool
1.7973 -+ = add_to_cpool(exp, &frag_now->tc_frag_data.pool_entry, 0);
1.7974 -+ }
1.7975 -+
1.7976 -+ frag_var(rs_machine_dependent, max_size - initial_size,
1.7977 -+ initial_size, initial_subtype, sym, off, buf);
1.7978 -+
1.7979 -+ return NULL;
1.7980 -+}
1.7981 -+
1.7982 -+static const char *
1.7983 -+finish_call(const struct avr32_syntax *syntax ATTRIBUTE_UNUSED)
1.7984 -+{
1.7985 -+ expressionS *exp = ¤t_insn.immediate;
1.7986 -+ symbolS *sym;
1.7987 -+ offsetT off;
1.7988 -+ int initial_size, max_size;
1.7989 -+ char *buf;
1.7990 -+
1.7991 -+ initial_size = CALL_INITIAL_SIZE;
1.7992 -+
1.7993 -+ if (avr32_pic)
1.7994 -+ {
1.7995 -+ if (linkrelax)
1.7996 -+ max_size = 10;
1.7997 -+ else
1.7998 -+ max_size = 4;
1.7999 -+ }
1.8000 -+ else
1.8001 -+ max_size = 4;
1.8002 -+
1.8003 -+ frag_grow(max_size);
1.8004 -+ buf = frag_more(initial_size);
1.8005 -+ dwarf2_emit_insn(initial_size);
1.8006 -+
1.8007 -+ frag_now->tc_frag_data.relaxer = &avr32_call_relaxer;
1.8008 -+
1.8009 -+ if (exp->X_op == O_symbol)
1.8010 -+ {
1.8011 -+ sym = exp->X_add_symbol;
1.8012 -+ off = exp->X_add_number;
1.8013 -+ }
1.8014 -+ else
1.8015 -+ {
1.8016 -+ sym = make_expr_symbol(exp);
1.8017 -+ off = 0;
1.8018 -+ }
1.8019 -+
1.8020 -+ if (!avr32_pic)
1.8021 -+ {
1.8022 -+ /* The relaxer will bump the refcount if necessary */
1.8023 -+ frag_now->tc_frag_data.pool
1.8024 -+ = add_to_cpool(exp, &frag_now->tc_frag_data.pool_entry, 0);
1.8025 -+ }
1.8026 -+
1.8027 -+ frag_var(rs_machine_dependent, max_size - initial_size,
1.8028 -+ initial_size, CALL_SUBTYPE_RCALL1, sym, off, buf);
1.8029 -+
1.8030 -+ return NULL;
1.8031 -+}
1.8032 -+
1.8033 -+void
1.8034 -+md_begin (void)
1.8035 -+{
1.8036 -+ unsigned long flags = 0;
1.8037 -+ int i;
1.8038 -+
1.8039 -+ avr32_mnemonic_htab = hash_new();
1.8040 -+
1.8041 -+ if (!avr32_mnemonic_htab)
1.8042 -+ as_fatal(_("virtual memory exhausted"));
1.8043 -+
1.8044 -+ for (i = 0; i < AVR32_NR_MNEMONICS; i++)
1.8045 -+ {
1.8046 -+ hash_insert(avr32_mnemonic_htab, avr32_mnemonic_table[i].name,
1.8047 -+ (void *)&avr32_mnemonic_table[i]);
1.8048 -+ }
1.8049 -+
1.8050 -+ if (linkrelax)
1.8051 -+ flags |= EF_AVR32_LINKRELAX;
1.8052 -+ if (avr32_pic)
1.8053 -+ flags |= EF_AVR32_PIC;
1.8054 -+
1.8055 -+ bfd_set_private_flags(stdoutput, flags);
1.8056 -+
1.8057 -+#ifdef OPC_CONSISTENCY_CHECK
1.8058 -+ if (sizeof(avr32_operand_table)/sizeof(avr32_operand_table[0])
1.8059 -+ < AVR32_NR_OPERANDS)
1.8060 -+ as_fatal(_("operand table is incomplete"));
1.8061 -+
1.8062 -+ for (i = 0; i < AVR32_NR_OPERANDS; i++)
1.8063 -+ if (avr32_operand_table[i].id != i)
1.8064 -+ as_fatal(_("operand table inconsistency found at index %d\n"), i);
1.8065 -+ pr_debug("%d operands verified\n", AVR32_NR_OPERANDS);
1.8066 -+
1.8067 -+ for (i = 0; i < AVR32_NR_IFIELDS; i++)
1.8068 -+ if (avr32_ifield_table[i].id != i)
1.8069 -+ as_fatal(_("ifield table inconsistency found at index %d\n"), i);
1.8070 -+ pr_debug("%d instruction fields verified\n", AVR32_NR_IFIELDS);
1.8071 -+
1.8072 -+ for (i = 0; i < AVR32_NR_OPCODES; i++)
1.8073 -+ {
1.8074 -+ if (avr32_opc_table[i].id != i)
1.8075 -+ as_fatal(_("opcode table inconsistency found at index %d\n"), i);
1.8076 -+ if ((avr32_opc_table[i].var_field == -1
1.8077 -+ && avr32_relax_table[i].length != 0)
1.8078 -+ || (avr32_opc_table[i].var_field != -1
1.8079 -+ && avr32_relax_table[i].length == 0))
1.8080 -+ as_fatal(_("relax table inconsistency found at index %d\n"), i);
1.8081 -+ }
1.8082 -+ pr_debug("%d opcodes verified\n", AVR32_NR_OPCODES);
1.8083 -+
1.8084 -+ for (i = 0; i < AVR32_NR_SYNTAX; i++)
1.8085 -+ if (avr32_syntax_table[i].id != i)
1.8086 -+ as_fatal(_("syntax table inconsistency found at index %d\n"), i);
1.8087 -+ pr_debug("%d syntax variants verified\n", AVR32_NR_SYNTAX);
1.8088 -+
1.8089 -+ for (i = 0; i < AVR32_NR_ALIAS; i++)
1.8090 -+ if (avr32_alias_table[i].id != i)
1.8091 -+ as_fatal(_("alias table inconsistency found at index %d\n"), i);
1.8092 -+ pr_debug("%d aliases verified\n", AVR32_NR_ALIAS);
1.8093 -+
1.8094 -+ for (i = 0; i < AVR32_NR_MNEMONICS; i++)
1.8095 -+ if (avr32_mnemonic_table[i].id != i)
1.8096 -+ as_fatal(_("mnemonic table inconsistency found at index %d\n"), i);
1.8097 -+ pr_debug("%d mnemonics verified\n", AVR32_NR_MNEMONICS);
1.8098 -+#endif
1.8099 -+}
1.8100 -+
1.8101 -+void
1.8102 -+md_assemble (char *str)
1.8103 -+{
1.8104 -+ struct avr32_mnemonic *mnemonic;
1.8105 -+ char *p, c;
1.8106 -+
1.8107 -+ memset(¤t_insn, 0, sizeof(current_insn));
1.8108 -+ current_insn.immediate.X_op = O_constant;
1.8109 -+
1.8110 -+ skip_whitespace(str);
1.8111 -+ for (p = str; *p; p++)
1.8112 -+ if (*p == ' ')
1.8113 -+ break;
1.8114 -+ c = *p;
1.8115 -+ *p = 0;
1.8116 -+
1.8117 -+ mnemonic = hash_find(avr32_mnemonic_htab, str);
1.8118 -+ *p = c;
1.8119 -+ if (c) p++;
1.8120 -+
1.8121 -+ if (mnemonic)
1.8122 -+ {
1.8123 -+ const struct avr32_syntax *syntax;
1.8124 -+
1.8125 -+ for (syntax = mnemonic->syntax; syntax; syntax = syntax->next)
1.8126 -+ {
1.8127 -+ const char *errmsg = NULL;
1.8128 -+
1.8129 -+ if (syntax_matches(syntax, p))
1.8130 -+ {
1.8131 -+ if (!(syntax->isa_flags & avr32_arch->isa_flags))
1.8132 -+ {
1.8133 -+ as_bad(_("Selected architecture `%s' does not support `%s'"),
1.8134 -+ avr32_arch->name, str);
1.8135 -+ return;
1.8136 -+ }
1.8137 -+
1.8138 -+ current_insn.syntax = syntax;
1.8139 -+ parse_operands(p);
1.8140 -+
1.8141 -+ switch (syntax->type)
1.8142 -+ {
1.8143 -+ case AVR32_PARSER_NORMAL:
1.8144 -+ errmsg = finish_insn(syntax->u.opc);
1.8145 -+ break;
1.8146 -+ case AVR32_PARSER_ALIAS:
1.8147 -+ errmsg = finish_alias(syntax->u.alias);
1.8148 -+ break;
1.8149 -+ case AVR32_PARSER_LDA:
1.8150 -+ errmsg = finish_lda(syntax);
1.8151 -+ break;
1.8152 -+ case AVR32_PARSER_CALL:
1.8153 -+ errmsg = finish_call(syntax);
1.8154 -+ break;
1.8155 -+ default:
1.8156 -+ BAD_CASE(syntax->type);
1.8157 -+ break;
1.8158 -+ }
1.8159 -+
1.8160 -+ if (errmsg)
1.8161 -+ as_bad("%s in `%s'", errmsg, str);
1.8162 -+
1.8163 -+ return;
1.8164 -+ }
1.8165 -+ }
1.8166 -+
1.8167 -+ as_bad(_("unrecognized form of instruction: `%s'"), str);
1.8168 -+ }
1.8169 -+ else
1.8170 -+ as_bad(_("unrecognized instruction `%s'"), str);
1.8171 -+}
1.8172 -+
1.8173 -+void avr32_cleanup(void)
1.8174 -+{
1.8175 -+ struct cpool *pool;
1.8176 -+
1.8177 -+ /* Emit any constant pools that haven't been explicitly flushed with
1.8178 -+ a .cpool directive. */
1.8179 -+ for (pool = cpool_list; pool; pool = pool->next)
1.8180 -+ {
1.8181 -+ subseg_set(pool->section, pool->sub_section);
1.8182 -+ s_cpool(0);
1.8183 -+ }
1.8184 -+}
1.8185 -+
1.8186 -+/* Handle any PIC-related operands in data allocation pseudo-ops */
1.8187 -+void
1.8188 -+avr32_cons_fix_new (fragS *frag, int off, int size, expressionS *exp)
1.8189 -+{
1.8190 -+ bfd_reloc_code_real_type r_type = BFD_RELOC_UNUSED;
1.8191 -+ int pcrel = 0;
1.8192 -+
1.8193 -+ pr_debug("%s:%u: cons_fix_new, add_sym: %s, op_sym: %s, op: %d, add_num: %d\n",
1.8194 -+ frag->fr_file, frag->fr_line,
1.8195 -+ exp->X_add_symbol?S_GET_NAME(exp->X_add_symbol):"(none)",
1.8196 -+ exp->X_op_symbol?S_GET_NAME(exp->X_op_symbol):"(none)",
1.8197 -+ exp->X_op, exp->X_add_number);
1.8198 -+
1.8199 -+ if (exp->X_op == O_subtract && exp->X_op_symbol)
1.8200 -+ {
1.8201 -+ if (exp->X_op_symbol == GOT_symbol)
1.8202 -+ {
1.8203 -+ if (size != 4)
1.8204 -+ goto bad_size;
1.8205 -+ r_type = BFD_RELOC_AVR32_GOTPC;
1.8206 -+ exp->X_op = O_symbol;
1.8207 -+ exp->X_op_symbol = NULL;
1.8208 -+ }
1.8209 -+ }
1.8210 -+ else if (exp->X_op == O_got)
1.8211 -+ {
1.8212 -+ switch (size)
1.8213 -+ {
1.8214 -+ case 1:
1.8215 -+ r_type = BFD_RELOC_AVR32_GOT8;
1.8216 -+ break;
1.8217 -+ case 2:
1.8218 -+ r_type = BFD_RELOC_AVR32_GOT16;
1.8219 -+ break;
1.8220 -+ case 4:
1.8221 -+ r_type = BFD_RELOC_AVR32_GOT32;
1.8222 -+ break;
1.8223 -+ default:
1.8224 -+ goto bad_size;
1.8225 -+ }
1.8226 -+
1.8227 -+ exp->X_op = O_symbol;
1.8228 -+ }
1.8229 -+
1.8230 -+ if (r_type == BFD_RELOC_UNUSED)
1.8231 -+ switch (size)
1.8232 -+ {
1.8233 -+ case 1:
1.8234 -+ r_type = BFD_RELOC_8;
1.8235 -+ break;
1.8236 -+ case 2:
1.8237 -+ r_type = BFD_RELOC_16;
1.8238 -+ break;
1.8239 -+ case 4:
1.8240 -+ r_type = BFD_RELOC_32;
1.8241 -+ break;
1.8242 -+ default:
1.8243 -+ goto bad_size;
1.8244 -+ }
1.8245 -+ else if (size != 4)
1.8246 -+ {
1.8247 -+ bad_size:
1.8248 -+ as_bad(_("unsupported BFD relocation size %u"), size);
1.8249 -+ r_type = BFD_RELOC_UNUSED;
1.8250 -+ }
1.8251 -+
1.8252 -+ fix_new_exp (frag, off, size, exp, pcrel, r_type);
1.8253 -+}
1.8254 -+
1.8255 -+static void
1.8256 -+avr32_frob_section(bfd *abfd ATTRIBUTE_UNUSED, segT sec,
1.8257 -+ void *ignore ATTRIBUTE_UNUSED)
1.8258 -+{
1.8259 -+ segment_info_type *seginfo;
1.8260 -+ fixS *fix;
1.8261 -+
1.8262 -+ seginfo = seg_info(sec);
1.8263 -+ if (!seginfo)
1.8264 -+ return;
1.8265 -+
1.8266 -+ for (fix = seginfo->fix_root; fix; fix = fix->fx_next)
1.8267 -+ {
1.8268 -+ if (fix->fx_done)
1.8269 -+ continue;
1.8270 -+
1.8271 -+ if (fix->fx_r_type == BFD_RELOC_AVR32_SUB5
1.8272 -+ && fix->fx_addsy && fix->fx_subsy)
1.8273 -+ {
1.8274 -+ if (S_GET_SEGMENT(fix->fx_addsy) != S_GET_SEGMENT(fix->fx_subsy)
1.8275 -+ || linkrelax)
1.8276 -+ {
1.8277 -+ symbolS *tmp;
1.8278 -+#ifdef DEBUG
1.8279 -+ fprintf(stderr, "Swapping symbols in fixup:\n");
1.8280 -+ print_fixup(fix);
1.8281 -+#endif
1.8282 -+ tmp = fix->fx_addsy;
1.8283 -+ fix->fx_addsy = fix->fx_subsy;
1.8284 -+ fix->fx_subsy = tmp;
1.8285 -+ fix->fx_offset = -fix->fx_offset;
1.8286 -+ }
1.8287 -+ }
1.8288 -+ }
1.8289 -+}
1.8290 -+
1.8291 -+/* We need to look for SUB5 instructions with expressions that will be
1.8292 -+ made PC-relative and switch fx_addsy with fx_subsy. This has to be
1.8293 -+ done before adjustment or the wrong symbol might be adjusted.
1.8294 -+
1.8295 -+ This applies to fixups that are a result of expressions like -(sym
1.8296 -+ - .) and that will make it all the way to md_apply_fix3(). LDA
1.8297 -+ does the right thing in convert_frag, so we must not convert
1.8298 -+ those. */
1.8299 -+void
1.8300 -+avr32_frob_file(void)
1.8301 -+{
1.8302 -+ /* if (1 || !linkrelax)
1.8303 -+ return; */
1.8304 -+
1.8305 -+ bfd_map_over_sections(stdoutput, avr32_frob_section, NULL);
1.8306 -+}
1.8307 -+
1.8308 -+static bfd_boolean
1.8309 -+convert_to_diff_reloc(fixS *fixP)
1.8310 -+{
1.8311 -+ switch (fixP->fx_r_type)
1.8312 -+ {
1.8313 -+ case BFD_RELOC_32:
1.8314 -+ fixP->fx_r_type = BFD_RELOC_AVR32_DIFF32;
1.8315 -+ break;
1.8316 -+ case BFD_RELOC_16:
1.8317 -+ fixP->fx_r_type = BFD_RELOC_AVR32_DIFF16;
1.8318 -+ break;
1.8319 -+ case BFD_RELOC_8:
1.8320 -+ fixP->fx_r_type = BFD_RELOC_AVR32_DIFF8;
1.8321 -+ break;
1.8322 -+ default:
1.8323 -+ return FALSE;
1.8324 -+ }
1.8325 -+
1.8326 -+ return TRUE;
1.8327 -+}
1.8328 -+
1.8329 -+/* Simplify a fixup. If possible, the fixup is reduced to a single
1.8330 -+ constant which is written to the output file. Otherwise, a
1.8331 -+ relocation is generated so that the linker can take care of the
1.8332 -+ rest.
1.8333 -+
1.8334 -+ ELF relocations have certain constraints: They can only take a
1.8335 -+ single symbol and a single addend. This means that for difference
1.8336 -+ expressions, we _must_ get rid of the fx_subsy symbol somehow.
1.8337 -+
1.8338 -+ The difference between two labels in the same section can be
1.8339 -+ calculated directly unless 'linkrelax' is set, or a relocation is
1.8340 -+ forced. If so, we must emit a R_AVR32_DIFFxx relocation. If there
1.8341 -+ are addends involved at this point, we must be especially careful
1.8342 -+ as the relocation must point exactly to the symbol being
1.8343 -+ subtracted.
1.8344 -+
1.8345 -+ When subtracting a symbol defined in the same section as the fixup,
1.8346 -+ we might be able to convert it to a PC-relative expression, unless
1.8347 -+ linkrelax is set. If this is the case, there's no way we can make
1.8348 -+ sure that the difference between the fixup and fx_subsy stays
1.8349 -+ constant. So for now, we're just going to disallow that.
1.8350 -+ */
1.8351 -+void
1.8352 -+avr32_process_fixup(fixS *fixP, segT this_segment)
1.8353 -+{
1.8354 -+ segT add_symbol_segment = absolute_section;
1.8355 -+ segT sub_symbol_segment = absolute_section;
1.8356 -+ symbolS *fx_addsy, *fx_subsy;
1.8357 -+ offsetT value = 0, fx_offset;
1.8358 -+ bfd_boolean apply = FALSE;
1.8359 -+
1.8360 -+ assert(this_segment != absolute_section);
1.8361 -+
1.8362 -+ if (fixP->fx_r_type >= BFD_RELOC_UNUSED)
1.8363 -+ {
1.8364 -+ as_bad_where(fixP->fx_file, fixP->fx_line,
1.8365 -+ _("Bad relocation type %d\n"), fixP->fx_r_type);
1.8366 -+ return;
1.8367 -+ }
1.8368 -+
1.8369 -+ /* BFD_RELOC_AVR32_SUB5 fixups have been swapped by avr32_frob_section() */
1.8370 -+ fx_addsy = fixP->fx_addsy;
1.8371 -+ fx_subsy = fixP->fx_subsy;
1.8372 -+ fx_offset = fixP->fx_offset;
1.8373 -+
1.8374 -+ if (fx_addsy)
1.8375 -+ add_symbol_segment = S_GET_SEGMENT(fx_addsy);
1.8376 -+
1.8377 -+ if (fx_subsy)
1.8378 -+ {
1.8379 -+ resolve_symbol_value(fx_subsy);
1.8380 -+ sub_symbol_segment = S_GET_SEGMENT(fx_subsy);
1.8381 -+
1.8382 -+ if (sub_symbol_segment == this_segment
1.8383 -+ && (!linkrelax
1.8384 -+ || S_GET_VALUE(fx_subsy) == (fixP->fx_frag->fr_address
1.8385 -+ + fixP->fx_where)))
1.8386 -+ {
1.8387 -+ fixP->fx_pcrel = TRUE;
1.8388 -+ fx_offset += (fixP->fx_frag->fr_address + fixP->fx_where
1.8389 -+ - S_GET_VALUE(fx_subsy));
1.8390 -+ fx_subsy = NULL;
1.8391 -+ }
1.8392 -+ else if (sub_symbol_segment == absolute_section)
1.8393 -+ {
1.8394 -+ /* The symbol is really a constant. */
1.8395 -+ fx_offset -= S_GET_VALUE(fx_subsy);
1.8396 -+ fx_subsy = NULL;
1.8397 -+ }
1.8398 -+ else if (SEG_NORMAL(add_symbol_segment)
1.8399 -+ && sub_symbol_segment == add_symbol_segment
1.8400 -+ && (!linkrelax || convert_to_diff_reloc(fixP)))
1.8401 -+ {
1.8402 -+ /* Difference between two labels in the same section. */
1.8403 -+ if (linkrelax)
1.8404 -+ {
1.8405 -+ /* convert_to_diff() has ensured that the reloc type is
1.8406 -+ either DIFF32, DIFF16 or DIFF8. */
1.8407 -+ value = (S_GET_VALUE(fx_addsy) + fixP->fx_offset
1.8408 -+ - S_GET_VALUE(fx_subsy));
1.8409 -+
1.8410 -+ /* Try to convert it to a section symbol if possible */
1.8411 -+ if (!S_FORCE_RELOC(fx_addsy, 1)
1.8412 -+ && !(sub_symbol_segment->flags & SEC_THREAD_LOCAL))
1.8413 -+ {
1.8414 -+ fx_offset = S_GET_VALUE(fx_subsy);
1.8415 -+ fx_addsy = section_symbol(sub_symbol_segment);
1.8416 -+ }
1.8417 -+ else
1.8418 -+ {
1.8419 -+ fx_addsy = fx_subsy;
1.8420 -+ fx_offset = 0;
1.8421 -+ }
1.8422 -+
1.8423 -+ fx_subsy = NULL;
1.8424 -+ apply = TRUE;
1.8425 -+ }
1.8426 -+ else
1.8427 -+ {
1.8428 -+ fx_offset += S_GET_VALUE(fx_addsy);
1.8429 -+ fx_offset -= S_GET_VALUE(fx_subsy);
1.8430 -+ fx_addsy = NULL;
1.8431 -+ fx_subsy = NULL;
1.8432 -+ }
1.8433 -+ }
1.8434 -+ else
1.8435 -+ {
1.8436 -+ as_bad_where(fixP->fx_file, fixP->fx_line,
1.8437 -+ _("can't resolve `%s' {%s section} - `%s' {%s section}"),
1.8438 -+ fx_addsy ? S_GET_NAME (fx_addsy) : "0",
1.8439 -+ segment_name (add_symbol_segment),
1.8440 -+ S_GET_NAME (fx_subsy),
1.8441 -+ segment_name (sub_symbol_segment));
1.8442 -+ return;
1.8443 -+ }
1.8444 -+ }
1.8445 -+
1.8446 -+ if (fx_addsy && !TC_FORCE_RELOCATION(fixP))
1.8447 -+ {
1.8448 -+ if (add_symbol_segment == this_segment
1.8449 -+ && fixP->fx_pcrel)
1.8450 -+ {
1.8451 -+ value += S_GET_VALUE(fx_addsy);
1.8452 -+ value -= md_pcrel_from_section(fixP, this_segment);
1.8453 -+ fx_addsy = NULL;
1.8454 -+ fixP->fx_pcrel = FALSE;
1.8455 -+ }
1.8456 -+ else if (add_symbol_segment == absolute_section)
1.8457 -+ {
1.8458 -+ fx_offset += S_GET_VALUE(fixP->fx_addsy);
1.8459 -+ fx_addsy = NULL;
1.8460 -+ }
1.8461 -+ }
1.8462 -+
1.8463 -+ if (!fx_addsy)
1.8464 -+ fixP->fx_done = TRUE;
1.8465 -+
1.8466 -+ if (fixP->fx_pcrel)
1.8467 -+ {
1.8468 -+ if (fx_addsy != NULL
1.8469 -+ && S_IS_DEFINED(fx_addsy)
1.8470 -+ && S_GET_SEGMENT(fx_addsy) != this_segment)
1.8471 -+ value += md_pcrel_from_section(fixP, this_segment);
1.8472 -+
1.8473 -+ switch (fixP->fx_r_type)
1.8474 -+ {
1.8475 -+ case BFD_RELOC_32:
1.8476 -+ fixP->fx_r_type = BFD_RELOC_32_PCREL;
1.8477 -+ break;
1.8478 -+ case BFD_RELOC_16:
1.8479 -+ fixP->fx_r_type = BFD_RELOC_16_PCREL;
1.8480 -+ break;
1.8481 -+ case BFD_RELOC_8:
1.8482 -+ fixP->fx_r_type = BFD_RELOC_8_PCREL;
1.8483 -+ break;
1.8484 -+ case BFD_RELOC_AVR32_SUB5:
1.8485 -+ fixP->fx_r_type = BFD_RELOC_AVR32_16N_PCREL;
1.8486 -+ break;
1.8487 -+ case BFD_RELOC_AVR32_16S:
1.8488 -+ fixP->fx_r_type = BFD_RELOC_AVR32_16B_PCREL;
1.8489 -+ break;
1.8490 -+ case BFD_RELOC_AVR32_14UW:
1.8491 -+ fixP->fx_r_type = BFD_RELOC_AVR32_14UW_PCREL;
1.8492 -+ break;
1.8493 -+ case BFD_RELOC_AVR32_10UW:
1.8494 -+ fixP->fx_r_type = BFD_RELOC_AVR32_10UW_PCREL;
1.8495 -+ break;
1.8496 -+ default:
1.8497 -+ /* Should have been taken care of already */
1.8498 -+ break;
1.8499 -+ }
1.8500 -+ }
1.8501 -+
1.8502 -+ if (fixP->fx_done || apply)
1.8503 -+ {
1.8504 -+ const struct avr32_ifield *ifield;
1.8505 -+ char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
1.8506 -+
1.8507 -+ if (fixP->fx_done)
1.8508 -+ value += fx_offset;
1.8509 -+
1.8510 -+ /* For hosts with longs bigger than 32-bits make sure that the top
1.8511 -+ bits of a 32-bit negative value read in by the parser are set,
1.8512 -+ so that the correct comparisons are made. */
1.8513 -+ if (value & 0x80000000)
1.8514 -+ value |= (-1L << 31);
1.8515 -+
1.8516 -+ switch (fixP->fx_r_type)
1.8517 -+ {
1.8518 -+ case BFD_RELOC_32:
1.8519 -+ case BFD_RELOC_16:
1.8520 -+ case BFD_RELOC_8:
1.8521 -+ case BFD_RELOC_AVR32_DIFF32:
1.8522 -+ case BFD_RELOC_AVR32_DIFF16:
1.8523 -+ case BFD_RELOC_AVR32_DIFF8:
1.8524 -+ md_number_to_chars(buf, value, fixP->fx_size);
1.8525 -+ break;
1.8526 -+ case BFD_RELOC_HI16:
1.8527 -+ value >>= 16;
1.8528 -+ case BFD_RELOC_LO16:
1.8529 -+ value &= 0xffff;
1.8530 -+ md_number_to_chars(buf + 2, value, 2);
1.8531 -+ break;
1.8532 -+ case BFD_RELOC_AVR32_16N_PCREL:
1.8533 -+ value = -value;
1.8534 -+ /* fall through */
1.8535 -+ case BFD_RELOC_AVR32_22H_PCREL:
1.8536 -+ case BFD_RELOC_AVR32_18W_PCREL:
1.8537 -+ case BFD_RELOC_AVR32_16B_PCREL:
1.8538 -+ case BFD_RELOC_AVR32_11H_PCREL:
1.8539 -+ case BFD_RELOC_AVR32_9H_PCREL:
1.8540 -+ case BFD_RELOC_AVR32_9UW_PCREL:
1.8541 -+ case BFD_RELOC_AVR32_3U:
1.8542 -+ case BFD_RELOC_AVR32_4UH:
1.8543 -+ case BFD_RELOC_AVR32_6UW:
1.8544 -+ case BFD_RELOC_AVR32_6S:
1.8545 -+ case BFD_RELOC_AVR32_7UW:
1.8546 -+ case BFD_RELOC_AVR32_8S_EXT:
1.8547 -+ case BFD_RELOC_AVR32_8S:
1.8548 -+ case BFD_RELOC_AVR32_10UW:
1.8549 -+ case BFD_RELOC_AVR32_10SW:
1.8550 -+ case BFD_RELOC_AVR32_STHH_W:
1.8551 -+ case BFD_RELOC_AVR32_14UW:
1.8552 -+ case BFD_RELOC_AVR32_16S:
1.8553 -+ case BFD_RELOC_AVR32_16U:
1.8554 -+ case BFD_RELOC_AVR32_21S:
1.8555 -+ case BFD_RELOC_AVR32_SUB5:
1.8556 -+ case BFD_RELOC_AVR32_CPCALL:
1.8557 -+ case BFD_RELOC_AVR32_16_CP:
1.8558 -+ case BFD_RELOC_AVR32_9W_CP:
1.8559 -+ case BFD_RELOC_AVR32_15S:
1.8560 -+ ifield = fixP->tc_fix_data.ifield;
1.8561 -+ pr_debug("insert field: %ld <= %ld <= %ld (align %u)\n",
1.8562 -+ fixP->tc_fix_data.min, value, fixP->tc_fix_data.max,
1.8563 -+ fixP->tc_fix_data.align);
1.8564 -+ if (value < fixP->tc_fix_data.min || value > fixP->tc_fix_data.max)
1.8565 -+ as_bad_where(fixP->fx_file, fixP->fx_line,
1.8566 -+ _("operand out of range (%ld not between %ld and %ld)"),
1.8567 -+ value, fixP->tc_fix_data.min, fixP->tc_fix_data.max);
1.8568 -+ if (value & ((1 << fixP->tc_fix_data.align) - 1))
1.8569 -+ as_bad_where(fixP->fx_file, fixP->fx_line,
1.8570 -+ _("misaligned operand (required alignment: %d)"),
1.8571 -+ 1 << fixP->tc_fix_data.align);
1.8572 -+ ifield->insert(ifield, buf, value >> fixP->tc_fix_data.align);
1.8573 -+ break;
1.8574 -+ case BFD_RELOC_AVR32_ALIGN:
1.8575 -+ /* Nothing to do */
1.8576 -+ fixP->fx_done = FALSE;
1.8577 -+ break;
1.8578 -+ default:
1.8579 -+ as_fatal("reloc type %s not handled\n",
1.8580 -+ bfd_get_reloc_code_name(fixP->fx_r_type));
1.8581 -+ }
1.8582 -+ }
1.8583 -+
1.8584 -+ fixP->fx_addsy = fx_addsy;
1.8585 -+ fixP->fx_subsy = fx_subsy;
1.8586 -+ fixP->fx_offset = fx_offset;
1.8587 -+
1.8588 -+ if (!fixP->fx_done)
1.8589 -+ {
1.8590 -+ if (!fixP->fx_addsy)
1.8591 -+ fixP->fx_addsy = abs_section_sym;
1.8592 -+
1.8593 -+ symbol_mark_used_in_reloc(fixP->fx_addsy);
1.8594 -+ if (fixP->fx_subsy)
1.8595 -+ abort();
1.8596 -+ }
1.8597 -+}
1.8598 -+
1.8599 -+#if 0
1.8600 -+void
1.8601 -+md_apply_fix3 (fixS *fixP, valueT *valP, segT seg)
1.8602 -+{
1.8603 -+ const struct avr32_ifield *ifield;
1.8604 -+ offsetT value = *valP;
1.8605 -+ char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
1.8606 -+ bfd_boolean apply;
1.8607 -+
1.8608 -+ pr_debug("%s:%u: apply_fix3: r_type=%d value=%lx offset=%lx\n",
1.8609 -+ fixP->fx_file, fixP->fx_line, fixP->fx_r_type, *valP,
1.8610 -+ fixP->fx_offset);
1.8611 -+
1.8612 -+ if (fixP->fx_r_type >= BFD_RELOC_UNUSED)
1.8613 -+ {
1.8614 -+ as_bad_where(fixP->fx_file, fixP->fx_line,
1.8615 -+ _("Bad relocation type %d\n"), fixP->fx_r_type);
1.8616 -+ return;
1.8617 -+ }
1.8618 -+
1.8619 -+ if (!fixP->fx_addsy && !fixP->fx_subsy)
1.8620 -+ fixP->fx_done = 1;
1.8621 -+
1.8622 -+ if (fixP->fx_pcrel)
1.8623 -+ {
1.8624 -+ if (fixP->fx_addsy != NULL
1.8625 -+ && S_IS_DEFINED(fixP->fx_addsy)
1.8626 -+ && S_GET_SEGMENT(fixP->fx_addsy) != seg)
1.8627 -+ value += md_pcrel_from_section(fixP, seg);
1.8628 -+
1.8629 -+ switch (fixP->fx_r_type)
1.8630 -+ {
1.8631 -+ case BFD_RELOC_32:
1.8632 -+ fixP->fx_r_type = BFD_RELOC_32_PCREL;
1.8633 -+ break;
1.8634 -+ case BFD_RELOC_16:
1.8635 -+ case BFD_RELOC_8:
1.8636 -+ as_bad_where (fixP->fx_file, fixP->fx_line,
1.8637 -+ _("8- and 16-bit PC-relative relocations not supported"));
1.8638 -+ break;
1.8639 -+ case BFD_RELOC_AVR32_SUB5:
1.8640 -+ fixP->fx_r_type = BFD_RELOC_AVR32_PCREL_SUB5;
1.8641 -+ break;
1.8642 -+ case BFD_RELOC_AVR32_16S:
1.8643 -+ fixP->fx_r_type = BFD_RELOC_AVR32_16_PCREL;
1.8644 -+ break;
1.8645 -+ default:
1.8646 -+ /* Should have been taken care of already */
1.8647 -+ break;
1.8648 -+ }
1.8649 -+ }
1.8650 -+
1.8651 -+ if (fixP->fx_r_type == BFD_RELOC_32
1.8652 -+ && fixP->fx_subsy)
1.8653 -+ {
1.8654 -+ fixP->fx_r_type = BFD_RELOC_AVR32_DIFF32;
1.8655 -+
1.8656 -+ /* Offsets are only allowed if it's a result of adjusting a
1.8657 -+ local symbol into a section-relative offset.
1.8658 -+ tc_fix_adjustable() should prevent any adjustment if there
1.8659 -+ was an offset involved before. */
1.8660 -+ if (fixP->fx_offset && !symbol_section_p(fixP->fx_addsy))
1.8661 -+ as_bad_where(fixP->fx_file, fixP->fx_line,
1.8662 -+ _("cannot represent symbol difference with an offset"));
1.8663 -+
1.8664 -+ value = (S_GET_VALUE(fixP->fx_addsy) + fixP->fx_offset
1.8665 -+ - S_GET_VALUE(fixP->fx_subsy));
1.8666 -+
1.8667 -+ /* The difference before any relaxing takes place is written
1.8668 -+ out, and the DIFF32 reloc identifies the address of the first
1.8669 -+ symbol (i.e. the on that's subtracted.) */
1.8670 -+ *valP = value;
1.8671 -+ fixP->fx_offset -= value;
1.8672 -+ fixP->fx_subsy = NULL;
1.8673 -+
1.8674 -+ md_number_to_chars(buf, value, fixP->fx_size);
1.8675 -+ }
1.8676 -+
1.8677 -+ if (fixP->fx_done)
1.8678 -+ {
1.8679 -+ switch (fixP->fx_r_type)
1.8680 -+ {
1.8681 -+ case BFD_RELOC_8:
1.8682 -+ case BFD_RELOC_16:
1.8683 -+ case BFD_RELOC_32:
1.8684 -+ md_number_to_chars(buf, value, fixP->fx_size);
1.8685 -+ break;
1.8686 -+ case BFD_RELOC_HI16:
1.8687 -+ value >>= 16;
1.8688 -+ case BFD_RELOC_LO16:
1.8689 -+ value &= 0xffff;
1.8690 -+ *valP = value;
1.8691 -+ md_number_to_chars(buf + 2, value, 2);
1.8692 -+ break;
1.8693 -+ case BFD_RELOC_AVR32_PCREL_SUB5:
1.8694 -+ value = -value;
1.8695 -+ /* fall through */
1.8696 -+ case BFD_RELOC_AVR32_9_PCREL:
1.8697 -+ case BFD_RELOC_AVR32_11_PCREL:
1.8698 -+ case BFD_RELOC_AVR32_16_PCREL:
1.8699 -+ case BFD_RELOC_AVR32_18_PCREL:
1.8700 -+ case BFD_RELOC_AVR32_22_PCREL:
1.8701 -+ case BFD_RELOC_AVR32_3U:
1.8702 -+ case BFD_RELOC_AVR32_4UH:
1.8703 -+ case BFD_RELOC_AVR32_6UW:
1.8704 -+ case BFD_RELOC_AVR32_6S:
1.8705 -+ case BFD_RELOC_AVR32_7UW:
1.8706 -+ case BFD_RELOC_AVR32_8S:
1.8707 -+ case BFD_RELOC_AVR32_10UW:
1.8708 -+ case BFD_RELOC_AVR32_10SW:
1.8709 -+ case BFD_RELOC_AVR32_14UW:
1.8710 -+ case BFD_RELOC_AVR32_16S:
1.8711 -+ case BFD_RELOC_AVR32_16U:
1.8712 -+ case BFD_RELOC_AVR32_21S:
1.8713 -+ case BFD_RELOC_AVR32_BRC1:
1.8714 -+ case BFD_RELOC_AVR32_SUB5:
1.8715 -+ case BFD_RELOC_AVR32_CPCALL:
1.8716 -+ case BFD_RELOC_AVR32_16_CP:
1.8717 -+ case BFD_RELOC_AVR32_9_CP:
1.8718 -+ case BFD_RELOC_AVR32_15S:
1.8719 -+ ifield = fixP->tc_fix_data.ifield;
1.8720 -+ pr_debug("insert field: %ld <= %ld <= %ld (align %u)\n",
1.8721 -+ fixP->tc_fix_data.min, value, fixP->tc_fix_data.max,
1.8722 -+ fixP->tc_fix_data.align);
1.8723 -+ if (value < fixP->tc_fix_data.min || value > fixP->tc_fix_data.max)
1.8724 -+ as_bad_where(fixP->fx_file, fixP->fx_line,
1.8725 -+ _("operand out of range (%ld not between %ld and %ld)"),
1.8726 -+ value, fixP->tc_fix_data.min, fixP->tc_fix_data.max);
1.8727 -+ if (value & ((1 << fixP->tc_fix_data.align) - 1))
1.8728 -+ as_bad_where(fixP->fx_file, fixP->fx_line,
1.8729 -+ _("misaligned operand (required alignment: %d)"),
1.8730 -+ 1 << fixP->tc_fix_data.align);
1.8731 -+ ifield->insert(ifield, buf, value >> fixP->tc_fix_data.align);
1.8732 -+ break;
1.8733 -+ case BFD_RELOC_AVR32_ALIGN:
1.8734 -+ /* Nothing to do */
1.8735 -+ fixP->fx_done = FALSE;
1.8736 -+ break;
1.8737 -+ default:
1.8738 -+ as_fatal("reloc type %s not handled\n",
1.8739 -+ bfd_get_reloc_code_name(fixP->fx_r_type));
1.8740 -+ }
1.8741 -+ }
1.8742 -+}
1.8743 -+#endif
1.8744 -+
1.8745 -+arelent *
1.8746 -+tc_gen_reloc (asection *section ATTRIBUTE_UNUSED,
1.8747 -+ fixS *fixp)
1.8748 -+{
1.8749 -+ arelent *reloc;
1.8750 -+ bfd_reloc_code_real_type code;
1.8751 -+
1.8752 -+ reloc = xmalloc (sizeof (arelent));
1.8753 -+
1.8754 -+ reloc->sym_ptr_ptr = xmalloc (sizeof (asymbol *));
1.8755 -+ *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
1.8756 -+ reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
1.8757 -+ reloc->addend = fixp->fx_offset;
1.8758 -+ code = fixp->fx_r_type;
1.8759 -+
1.8760 -+ reloc->howto = bfd_reloc_type_lookup (stdoutput, code);
1.8761 -+
1.8762 -+ if (reloc->howto == NULL)
1.8763 -+ {
1.8764 -+ as_bad_where (fixp->fx_file, fixp->fx_line,
1.8765 -+ _("cannot represent relocation %s in this object file format"),
1.8766 -+ bfd_get_reloc_code_name (code));
1.8767 -+ return NULL;
1.8768 -+ }
1.8769 -+
1.8770 -+ return reloc;
1.8771 -+}
1.8772 -+
1.8773 -+bfd_boolean
1.8774 -+avr32_force_reloc(fixS *fixP)
1.8775 -+{
1.8776 -+ if (linkrelax && fixP->fx_addsy
1.8777 -+ && !(S_GET_SEGMENT(fixP->fx_addsy)->flags & SEC_DEBUGGING)
1.8778 -+ && S_GET_SEGMENT(fixP->fx_addsy) != absolute_section)
1.8779 -+ {
1.8780 -+ pr_debug(stderr, "force reloc: addsy=%p, r_type=%d, sec=%s\n",
1.8781 -+ fixP->fx_addsy, fixP->fx_r_type, S_GET_SEGMENT(fixP->fx_addsy)->name);
1.8782 -+ return 1;
1.8783 -+ }
1.8784 -+
1.8785 -+ return generic_force_reloc(fixP);
1.8786 -+}
1.8787 -+
1.8788 -+bfd_boolean
1.8789 -+avr32_fix_adjustable(fixS *fixP)
1.8790 -+{
1.8791 -+ switch (fixP->fx_r_type)
1.8792 -+ {
1.8793 -+ /* GOT relocations can't have addends since BFD treats all
1.8794 -+ references to a given symbol the same. This means that we
1.8795 -+ must avoid section-relative references to local symbols when
1.8796 -+ dealing with these kinds of relocs */
1.8797 -+ case BFD_RELOC_AVR32_GOT32:
1.8798 -+ case BFD_RELOC_AVR32_GOT16:
1.8799 -+ case BFD_RELOC_AVR32_GOT8:
1.8800 -+ case BFD_RELOC_AVR32_GOT21S:
1.8801 -+ case BFD_RELOC_AVR32_GOT18SW:
1.8802 -+ case BFD_RELOC_AVR32_GOT16S:
1.8803 -+ case BFD_RELOC_AVR32_LDA_GOT:
1.8804 -+ case BFD_RELOC_AVR32_GOTCALL:
1.8805 -+ pr_debug("fix not adjustable\n");
1.8806 -+ return 0;
1.8807 -+
1.8808 -+ default:
1.8809 -+ break;
1.8810 -+ }
1.8811 -+
1.8812 -+ return 1;
1.8813 -+}
1.8814 -+
1.8815 -+/* When we want the linker to be able to relax the code, we need to
1.8816 -+ output a reloc for every .align directive requesting an alignment
1.8817 -+ to a four byte boundary or larger. If we don't do this, the linker
1.8818 -+ can't guarantee that the alignment is actually maintained in the
1.8819 -+ linker output.
1.8820 -+
1.8821 -+ TODO: Might as well insert proper NOPs while we're at it... */
1.8822 -+void
1.8823 -+avr32_handle_align(fragS *frag)
1.8824 -+{
1.8825 -+ if (linkrelax
1.8826 -+ && frag->fr_type == rs_align_code
1.8827 -+ && frag->fr_address + frag->fr_fix > 0
1.8828 -+ && frag->fr_offset > 0)
1.8829 -+ {
1.8830 -+ /* The alignment order (fr_offset) is stored in the addend. */
1.8831 -+ fix_new(frag, frag->fr_fix, 2, &abs_symbol, frag->fr_offset,
1.8832 -+ FALSE, BFD_RELOC_AVR32_ALIGN);
1.8833 -+ }
1.8834 -+}
1.8835 -+
1.8836 -+/* Relax_align. Advance location counter to next address that has 'alignment'
1.8837 -+ lowest order bits all 0s, return size of adjustment made. */
1.8838 -+relax_addressT
1.8839 -+avr32_relax_align(segT segment ATTRIBUTE_UNUSED,
1.8840 -+ fragS *fragP,
1.8841 -+ relax_addressT address)
1.8842 -+{
1.8843 -+ relax_addressT mask;
1.8844 -+ relax_addressT new_address;
1.8845 -+ int alignment;
1.8846 -+
1.8847 -+ alignment = fragP->fr_offset;
1.8848 -+ mask = ~((~0) << alignment);
1.8849 -+ new_address = (address + mask) & (~mask);
1.8850 -+
1.8851 -+ return new_address - address;
1.8852 -+}
1.8853 -+
1.8854 -+/* Turn a string in input_line_pointer into a floating point constant
1.8855 -+ of type type, and store the appropriate bytes in *litP. The number
1.8856 -+ of LITTLENUMS emitted is stored in *sizeP . An error message is
1.8857 -+ returned, or NULL on OK. */
1.8858 -+
1.8859 -+/* Equal to MAX_PRECISION in atof-ieee.c */
1.8860 -+#define MAX_LITTLENUMS 6
1.8861 -+
1.8862 -+char *
1.8863 -+md_atof (type, litP, sizeP)
1.8864 -+char type;
1.8865 -+char * litP;
1.8866 -+int * sizeP;
1.8867 -+{
1.8868 -+ int i;
1.8869 -+ int prec;
1.8870 -+ LITTLENUM_TYPE words [MAX_LITTLENUMS];
1.8871 -+ char * t;
1.8872 -+
1.8873 -+ switch (type)
1.8874 -+ {
1.8875 -+ case 'f':
1.8876 -+ case 'F':
1.8877 -+ case 's':
1.8878 -+ case 'S':
1.8879 -+ prec = 2;
1.8880 -+ break;
1.8881 -+
1.8882 -+ case 'd':
1.8883 -+ case 'D':
1.8884 -+ case 'r':
1.8885 -+ case 'R':
1.8886 -+ prec = 4;
1.8887 -+ break;
1.8888 -+
1.8889 -+ /* FIXME: Some targets allow other format chars for bigger sizes here. */
1.8890 -+
1.8891 -+ default:
1.8892 -+ * sizeP = 0;
1.8893 -+ return _("Bad call to md_atof()");
1.8894 -+ }
1.8895 -+
1.8896 -+ t = atof_ieee (input_line_pointer, type, words);
1.8897 -+ if (t)
1.8898 -+ input_line_pointer = t;
1.8899 -+ * sizeP = prec * sizeof (LITTLENUM_TYPE);
1.8900 -+
1.8901 -+ for (i = 0; i < prec; i++)
1.8902 -+ {
1.8903 -+ md_number_to_chars (litP, (valueT) words[i],
1.8904 -+ sizeof (LITTLENUM_TYPE));
1.8905 -+ litP += sizeof (LITTLENUM_TYPE);
1.8906 -+ }
1.8907 -+
1.8908 -+ return 0;
1.8909 -+}
1.8910 -+
1.8911 -+static char *avr32_end_of_match(char *cont, char *what)
1.8912 -+{
1.8913 -+ int len = strlen (what);
1.8914 -+
1.8915 -+ if (! is_part_of_name (cont[len])
1.8916 -+ && strncasecmp (cont, what, len) == 0)
1.8917 -+ return cont + len;
1.8918 -+
1.8919 -+ return NULL;
1.8920 -+}
1.8921 -+
1.8922 -+int
1.8923 -+avr32_parse_name (char const *name, expressionS *exp, char *nextchar)
1.8924 -+{
1.8925 -+ char *next = input_line_pointer;
1.8926 -+ char *next_end;
1.8927 -+
1.8928 -+ pr_debug("parse_name: %s, nextchar=%c (%02x)\n", name, *nextchar, *nextchar);
1.8929 -+
1.8930 -+ if (*nextchar == '(')
1.8931 -+ {
1.8932 -+ if (strcasecmp(name, "hi") == 0)
1.8933 -+ {
1.8934 -+ *next = *nextchar;
1.8935 -+
1.8936 -+ expression(exp);
1.8937 -+
1.8938 -+ if (exp->X_op == O_constant)
1.8939 -+ {
1.8940 -+ pr_debug(" -> constant hi(0x%08lx) -> 0x%04lx\n",
1.8941 -+ exp->X_add_number, exp->X_add_number >> 16);
1.8942 -+ exp->X_add_number = (exp->X_add_number >> 16) & 0xffff;
1.8943 -+ }
1.8944 -+ else
1.8945 -+ {
1.8946 -+ exp->X_md = exp->X_op;
1.8947 -+ exp->X_op = O_hi;
1.8948 -+ }
1.8949 -+
1.8950 -+ return 1;
1.8951 -+ }
1.8952 -+ else if (strcasecmp(name, "lo") == 0)
1.8953 -+ {
1.8954 -+ *next = *nextchar;
1.8955 -+
1.8956 -+ expression(exp);
1.8957 -+
1.8958 -+ if (exp->X_op == O_constant)
1.8959 -+ exp->X_add_number &= 0xffff;
1.8960 -+ else
1.8961 -+ {
1.8962 -+ exp->X_md = exp->X_op;
1.8963 -+ exp->X_op = O_lo;
1.8964 -+ }
1.8965 -+
1.8966 -+ return 1;
1.8967 -+ }
1.8968 -+ }
1.8969 -+ else if (*nextchar == '@')
1.8970 -+ {
1.8971 -+ exp->X_md = exp->X_op;
1.8972 -+
1.8973 -+ if ((next_end = avr32_end_of_match (next + 1, "got")))
1.8974 -+ exp->X_op = O_got;
1.8975 -+ else if ((next_end = avr32_end_of_match (next + 1, "tlsgd")))
1.8976 -+ exp->X_op = O_tlsgd;
1.8977 -+ /* Add more as needed */
1.8978 -+ else
1.8979 -+ {
1.8980 -+ char c;
1.8981 -+ input_line_pointer++;
1.8982 -+ c = get_symbol_end();
1.8983 -+ as_bad (_("unknown relocation override `%s'"), next + 1);
1.8984 -+ *input_line_pointer = c;
1.8985 -+ input_line_pointer = next;
1.8986 -+ return 0;
1.8987 -+ }
1.8988 -+
1.8989 -+ exp->X_op_symbol = NULL;
1.8990 -+ exp->X_add_symbol = symbol_find_or_make (name);
1.8991 -+ exp->X_add_number = 0;
1.8992 -+
1.8993 -+ *input_line_pointer = *nextchar;
1.8994 -+ input_line_pointer = next_end;
1.8995 -+ *nextchar = *input_line_pointer;
1.8996 -+ *input_line_pointer = '\0';
1.8997 -+ return 1;
1.8998 -+ }
1.8999 -+ else if (strcmp (name, "_GLOBAL_OFFSET_TABLE_") == 0)
1.9000 -+ {
1.9001 -+ if (!GOT_symbol)
1.9002 -+ GOT_symbol = symbol_find_or_make(name);
1.9003 -+
1.9004 -+ exp->X_add_symbol = GOT_symbol;
1.9005 -+ exp->X_op = O_symbol;
1.9006 -+ exp->X_add_number = 0;
1.9007 -+ return 1;
1.9008 -+ }
1.9009 -+
1.9010 -+ return 0;
1.9011 -+}
1.9012 -+
1.9013 -+static void
1.9014 -+s_rseg (int value ATTRIBUTE_UNUSED)
1.9015 -+{
1.9016 -+ /* Syntax: RSEG segment_name [:type] [NOROOT|ROOT] [(align)]
1.9017 -+ * Defaults:
1.9018 -+ * - type: undocumented ("typically CODE or DATA")
1.9019 -+ * - ROOT
1.9020 -+ * - align: 1 for code, 0 for others
1.9021 -+ *
1.9022 -+ * TODO: NOROOT is ignored. If gas supports discardable segments, it should
1.9023 -+ * be implemented.
1.9024 -+ */
1.9025 -+ char *name, *end;
1.9026 -+ int length, type, attr;
1.9027 -+ int align = 0;
1.9028 -+
1.9029 -+ SKIP_WHITESPACE();
1.9030 -+
1.9031 -+ end = input_line_pointer;
1.9032 -+ while (0 == strchr ("\n\t;:( ", *end))
1.9033 -+ end++;
1.9034 -+ if (end == input_line_pointer)
1.9035 -+ {
1.9036 -+ as_warn (_("missing name"));
1.9037 -+ ignore_rest_of_line();
1.9038 -+ return;
1.9039 -+ }
1.9040 -+
1.9041 -+ name = xmalloc (end - input_line_pointer + 1);
1.9042 -+ memcpy (name, input_line_pointer, end - input_line_pointer);
1.9043 -+ name[end - input_line_pointer] = '\0';
1.9044 -+ input_line_pointer = end;
1.9045 -+
1.9046 -+ SKIP_WHITESPACE();
1.9047 -+
1.9048 -+ type = SHT_NULL;
1.9049 -+ attr = 0;
1.9050 -+
1.9051 -+ if (*input_line_pointer == ':')
1.9052 -+ {
1.9053 -+ /* Skip the colon */
1.9054 -+ ++input_line_pointer;
1.9055 -+ SKIP_WHITESPACE();
1.9056 -+
1.9057 -+ /* Possible options at this point:
1.9058 -+ * - flag (ROOT or NOROOT)
1.9059 -+ * - a segment type
1.9060 -+ */
1.9061 -+ end = input_line_pointer;
1.9062 -+ while (0 == strchr ("\n\t;:( ", *end))
1.9063 -+ end++;
1.9064 -+ length = end - input_line_pointer;
1.9065 -+ if (((length == 4) && (0 == strncasecmp( input_line_pointer, "ROOT", 4))) ||
1.9066 -+ ((length == 6) && (0 == strncasecmp( input_line_pointer, "NOROOT", 6))))
1.9067 -+ {
1.9068 -+ /* Ignore ROOT/NOROOT */
1.9069 -+ input_line_pointer = end;
1.9070 -+ }
1.9071 -+ else
1.9072 -+ {
1.9073 -+ /* Must be a segment type */
1.9074 -+ switch (*input_line_pointer)
1.9075 -+ {
1.9076 -+ case 'C':
1.9077 -+ case 'c':
1.9078 -+ if ((length == 4) &&
1.9079 -+ (0 == strncasecmp (input_line_pointer, "CODE", 4)))
1.9080 -+ {
1.9081 -+ attr |= SHF_ALLOC | SHF_EXECINSTR;
1.9082 -+ type = SHT_PROGBITS;
1.9083 -+ align = 1;
1.9084 -+ break;
1.9085 -+ }
1.9086 -+ if ((length == 5) &&
1.9087 -+ (0 == strncasecmp (input_line_pointer, "CONST", 5)))
1.9088 -+ {
1.9089 -+ attr |= SHF_ALLOC;
1.9090 -+ type = SHT_PROGBITS;
1.9091 -+ break;
1.9092 -+ }
1.9093 -+ goto de_fault;
1.9094 -+
1.9095 -+ case 'D':
1.9096 -+ case 'd':
1.9097 -+ if ((length == 4) &&
1.9098 -+ (0 == strncasecmp (input_line_pointer, "DATA", 4)))
1.9099 -+ {
1.9100 -+ attr |= SHF_ALLOC | SHF_WRITE;
1.9101 -+ type = SHT_PROGBITS;
1.9102 -+ break;
1.9103 -+ }
1.9104 -+ goto de_fault;
1.9105 -+
1.9106 -+ /* TODO: Add FAR*, HUGE*, IDATA and NEAR* if necessary */
1.9107 -+
1.9108 -+ case 'U':
1.9109 -+ case 'u':
1.9110 -+ if ((length == 7) &&
1.9111 -+ (0 == strncasecmp (input_line_pointer, "UNTYPED", 7)))
1.9112 -+ break;
1.9113 -+ goto de_fault;
1.9114 -+
1.9115 -+ /* TODO: Add XDATA and ZPAGE if necessary */
1.9116 -+
1.9117 -+ de_fault:
1.9118 -+ default:
1.9119 -+ as_warn (_("unrecognized segment type"));
1.9120 -+ }
1.9121 -+
1.9122 -+ input_line_pointer = end;
1.9123 -+ SKIP_WHITESPACE();
1.9124 -+
1.9125 -+ if (*input_line_pointer == ':')
1.9126 -+ {
1.9127 -+ /* ROOT/NOROOT */
1.9128 -+ ++input_line_pointer;
1.9129 -+ SKIP_WHITESPACE();
1.9130 -+
1.9131 -+ end = input_line_pointer;
1.9132 -+ while (0 == strchr ("\n\t;:( ", *end))
1.9133 -+ end++;
1.9134 -+ length = end - input_line_pointer;
1.9135 -+ if (! ((length == 4) &&
1.9136 -+ (0 == strncasecmp( input_line_pointer, "ROOT", 4))) &&
1.9137 -+ ! ((length == 6) &&
1.9138 -+ (0 == strncasecmp( input_line_pointer, "NOROOT", 6))))
1.9139 -+ {
1.9140 -+ as_warn (_("unrecognized segment flag"));
1.9141 -+ }
1.9142 -+
1.9143 -+ input_line_pointer = end;
1.9144 -+ SKIP_WHITESPACE();
1.9145 -+ }
1.9146 -+ }
1.9147 -+ }
1.9148 -+
1.9149 -+ if (*input_line_pointer == '(')
1.9150 -+ {
1.9151 -+ align = get_absolute_expression ();
1.9152 -+ }
1.9153 -+
1.9154 -+ demand_empty_rest_of_line();
1.9155 -+
1.9156 -+ obj_elf_change_section (name, type, attr, 0, NULL, 0, 0);
1.9157 -+#ifdef AVR32_DEBUG
1.9158 -+ fprintf( stderr, "RSEG: Changed section to %s, type: 0x%x, attr: 0x%x\n",
1.9159 -+ name, type, attr );
1.9160 -+ fprintf( stderr, "RSEG: Aligning to 2**%d\n", align );
1.9161 -+#endif
1.9162 -+
1.9163 -+ if (align > 15)
1.9164 -+ {
1.9165 -+ align = 15;
1.9166 -+ as_warn (_("alignment too large: %u assumed"), align);
1.9167 -+ }
1.9168 -+
1.9169 -+ /* Hope not, that is */
1.9170 -+ assert (now_seg != absolute_section);
1.9171 -+
1.9172 -+ /* Only make a frag if we HAVE to... */
1.9173 -+ if (align != 0 && !need_pass_2)
1.9174 -+ {
1.9175 -+ if (subseg_text_p (now_seg))
1.9176 -+ frag_align_code (align, 0);
1.9177 -+ else
1.9178 -+ frag_align (align, 0, 0);
1.9179 -+ }
1.9180 -+
1.9181 -+ record_alignment (now_seg, align - OCTETS_PER_BYTE_POWER);
1.9182 -+}
1.9183 -+
1.9184 -+/* vim: syntax=c sw=2
1.9185 -+ */
1.9186 ---- /dev/null
1.9187 -+++ b/gas/config/tc-avr32.h
1.9188 -@@ -0,0 +1,325 @@
1.9189 -+/* Assembler definitions for AVR32.
1.9190 -+ Copyright 2003-2006 Atmel Corporation.
1.9191 -+
1.9192 -+ Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
1.9193 -+
1.9194 -+ This file is part of GAS, the GNU Assembler.
1.9195 -+
1.9196 -+ GAS is free software; you can redistribute it and/or modify it
1.9197 -+ under the terms of the GNU General Public License as published by
1.9198 -+ the Free Software Foundation; either version 2, or (at your option)
1.9199 -+ any later version.
1.9200 -+
1.9201 -+ GAS is distributed in the hope that it will be useful, but WITHOUT
1.9202 -+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
1.9203 -+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
1.9204 -+ License for more details.
1.9205 -+
1.9206 -+ You should have received a copy of the GNU General Public License
1.9207 -+ along with GAS; see the file COPYING. If not, write to the Free
1.9208 -+ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
1.9209 -+ 02111-1307, USA. */
1.9210 -+
1.9211 -+#if 0
1.9212 -+#define DEBUG
1.9213 -+#define DEBUG1
1.9214 -+#define DEBUG2
1.9215 -+#define DEBUG3
1.9216 -+#define DEBUG4
1.9217 -+#define DEBUG5
1.9218 -+#endif
1.9219 -+
1.9220 -+/* Are we trying to be compatible with the IAR assembler? (--iar) */
1.9221 -+extern int avr32_iarcompat;
1.9222 -+
1.9223 -+/* By convention, you should define this macro in the `.h' file. For
1.9224 -+ example, `tc-m68k.h' defines `TC_M68K'. You might have to use this
1.9225 -+ if it is necessary to add CPU specific code to the object format
1.9226 -+ file. */
1.9227 -+#define TC_AVR32
1.9228 -+
1.9229 -+/* This macro is the BFD target name to use when creating the output
1.9230 -+ file. This will normally depend upon the `OBJ_FMT' macro. */
1.9231 -+#define TARGET_FORMAT "elf32-avr32"
1.9232 -+
1.9233 -+/* This macro is the BFD architecture to pass to `bfd_set_arch_mach'. */
1.9234 -+#define TARGET_ARCH bfd_arch_avr32
1.9235 -+
1.9236 -+/* This macro is the BFD machine number to pass to
1.9237 -+ `bfd_set_arch_mach'. If it is not defined, GAS will use 0. */
1.9238 -+#define TARGET_MACH 0
1.9239 -+
1.9240 -+/* UNDOCUMENTED: Allow //-style comments */
1.9241 -+#define DOUBLESLASH_LINE_COMMENTS
1.9242 -+
1.9243 -+/* You should define this macro to be non-zero if the target is big
1.9244 -+ endian, and zero if the target is little endian. */
1.9245 -+#define TARGET_BYTES_BIG_ENDIAN 1
1.9246 -+
1.9247 -+/* FIXME: It seems that GAS only expects a one-byte opcode...
1.9248 -+ #define NOP_OPCODE 0xd703 */
1.9249 -+
1.9250 -+/* If you define this macro, GAS will warn about the use of
1.9251 -+ nonstandard escape sequences in a string. */
1.9252 -+#undef ONLY_STANDARD_ESCAPES
1.9253 -+
1.9254 -+#define DWARF2_FORMAT() dwarf2_format_32bit
1.9255 -+
1.9256 -+/* Instructions are either 2 or 4 bytes long */
1.9257 -+/* #define DWARF2_LINE_MIN_INSN_LENGTH 2 */
1.9258 -+
1.9259 -+/* GAS will call this function for any expression that can not be
1.9260 -+ recognized. When the function is called, `input_line_pointer'
1.9261 -+ will point to the start of the expression. */
1.9262 -+#define md_operand(x)
1.9263 -+
1.9264 -+#define md_parse_name(name, expr, mode, c) avr32_parse_name(name, expr, c)
1.9265 -+extern int avr32_parse_name(const char *, struct expressionS *, char *);
1.9266 -+
1.9267 -+/* You may define this macro to generate a fixup for a data
1.9268 -+ allocation pseudo-op. */
1.9269 -+#define TC_CONS_FIX_NEW(FRAG, OFF, LEN, EXP) \
1.9270 -+ avr32_cons_fix_new(FRAG, OFF, LEN, EXP)
1.9271 -+void avr32_cons_fix_new (fragS *, int, int, expressionS *);
1.9272 -+
1.9273 -+/* `extsym - .' expressions can be emitted using PC-relative relocs */
1.9274 -+#define DIFF_EXPR_OK
1.9275 -+
1.9276 -+/* This is used to construct expressions out of @gotoff, etc. The
1.9277 -+ relocation type is stored in X_md */
1.9278 -+#define O_got O_md1
1.9279 -+#define O_hi O_md2
1.9280 -+#define O_lo O_md3
1.9281 -+#define O_tlsgd O_md4
1.9282 -+
1.9283 -+/* You may define this macro to parse an expression used in a data
1.9284 -+ allocation pseudo-op such as `.word'. You can use this to
1.9285 -+ recognize relocation directives that may appear in such directives. */
1.9286 -+/* #define TC_PARSE_CONS_EXPRESSION(EXPR,N) avr_parse_cons_expression (EXPR,N)
1.9287 -+ void avr_parse_cons_expression (expressionS *exp, int nbytes); */
1.9288 -+
1.9289 -+/* This should just call either `number_to_chars_bigendian' or
1.9290 -+ `number_to_chars_littleendian', whichever is appropriate. On
1.9291 -+ targets like the MIPS which support options to change the
1.9292 -+ endianness, which function to call is a runtime decision. On
1.9293 -+ other targets, `md_number_to_chars' can be a simple macro. */
1.9294 -+#define md_number_to_chars number_to_chars_bigendian
1.9295 -+
1.9296 -+/* `md_short_jump_size'
1.9297 -+ `md_long_jump_size'
1.9298 -+ `md_create_short_jump'
1.9299 -+ `md_create_long_jump'
1.9300 -+ If `WORKING_DOT_WORD' is defined, GAS will not do broken word
1.9301 -+ processing (*note Broken words::.). Otherwise, you should set
1.9302 -+ `md_short_jump_size' to the size of a short jump (a jump that is
1.9303 -+ just long enough to jump around a long jmp) and
1.9304 -+ `md_long_jump_size' to the size of a long jump (a jump that can go
1.9305 -+ anywhere in the function), You should define
1.9306 -+ `md_create_short_jump' to create a short jump around a long jump,
1.9307 -+ and define `md_create_long_jump' to create a long jump. */
1.9308 -+#define WORKING_DOT_WORD
1.9309 -+
1.9310 -+/* If you define this macro, it means that `tc_gen_reloc' may return
1.9311 -+ multiple relocation entries for a single fixup. In this case, the
1.9312 -+ return value of `tc_gen_reloc' is a pointer to a null terminated
1.9313 -+ array. */
1.9314 -+#undef RELOC_EXPANSION_POSSIBLE
1.9315 -+
1.9316 -+/* If you define this macro, GAS will not require pseudo-ops to start with a .
1.9317 -+ character. */
1.9318 -+#define NO_PSEUDO_DOT (avr32_iarcompat)
1.9319 -+
1.9320 -+/* The IAR assembler uses $ as the location counter. Unfortunately, we
1.9321 -+ can't make this dependent on avr32_iarcompat... */
1.9322 -+#define DOLLAR_DOT
1.9323 -+
1.9324 -+/* Values passed to md_apply_fix3 don't include the symbol value. */
1.9325 -+#define MD_APPLY_SYM_VALUE(FIX) 0
1.9326 -+
1.9327 -+/* The number of bytes to put into a word in a listing. This affects
1.9328 -+ the way the bytes are clumped together in the listing. For
1.9329 -+ example, a value of 2 might print `1234 5678' where a value of 1
1.9330 -+ would print `12 34 56 78'. The default value is 4. */
1.9331 -+#define LISTING_WORD_SIZE 4
1.9332 -+
1.9333 -+/* extern const struct relax_type md_relax_table[];
1.9334 -+#define TC_GENERIC_RELAX_TABLE md_relax_table */
1.9335 -+
1.9336 -+/*
1.9337 -+ An `.lcomm' directive with no explicit alignment parameter will use
1.9338 -+ this macro to set P2VAR to the alignment that a request for SIZE
1.9339 -+ bytes will have. The alignment is expressed as a power of two. If
1.9340 -+ no alignment should take place, the macro definition should do
1.9341 -+ nothing. Some targets define a `.bss' directive that is also
1.9342 -+ affected by this macro. The default definition will set P2VAR to
1.9343 -+ the truncated power of two of sizes up to eight bytes.
1.9344 -+
1.9345 -+ We want doublewords to be word-aligned, so we're going to modify the
1.9346 -+ default definition a tiny bit.
1.9347 -+*/
1.9348 -+#define TC_IMPLICIT_LCOMM_ALIGNMENT(SIZE, P2VAR) \
1.9349 -+ do \
1.9350 -+ { \
1.9351 -+ if ((SIZE) >= 4) \
1.9352 -+ (P2VAR) = 2; \
1.9353 -+ else if ((SIZE) >= 2) \
1.9354 -+ (P2VAR) = 1; \
1.9355 -+ else \
1.9356 -+ (P2VAR) = 0; \
1.9357 -+ } \
1.9358 -+ while (0)
1.9359 -+
1.9360 -+/* When relaxing, we need to generate relocations for alignment
1.9361 -+ directives. */
1.9362 -+#define HANDLE_ALIGN(frag) avr32_handle_align(frag)
1.9363 -+extern void avr32_handle_align(fragS *);
1.9364 -+
1.9365 -+/* See internals doc for explanation. Oh wait...
1.9366 -+ Now, can you guess where "alignment" comes from? ;-) */
1.9367 -+#define MAX_MEM_FOR_RS_ALIGN_CODE ((1 << alignment) - 1)
1.9368 -+
1.9369 -+/* We need to stop gas from reducing certain expressions (e.g. GOT
1.9370 -+ references) */
1.9371 -+#define tc_fix_adjustable(fix) avr32_fix_adjustable(fix)
1.9372 -+extern bfd_boolean avr32_fix_adjustable(struct fix *);
1.9373 -+
1.9374 -+/* The linker needs to be passed a little more information when relaxing. */
1.9375 -+#define TC_FORCE_RELOCATION(fix) avr32_force_reloc(fix)
1.9376 -+extern bfd_boolean avr32_force_reloc(struct fix *);
1.9377 -+
1.9378 -+/* I'm tired of working around all the madness in fixup_segment().
1.9379 -+ This hook will do basically the same things as the generic code,
1.9380 -+ and then it will "goto" right past it. */
1.9381 -+#define TC_VALIDATE_FIX(FIX, SEG, SKIP) \
1.9382 -+ do \
1.9383 -+ { \
1.9384 -+ avr32_process_fixup(FIX, SEG); \
1.9385 -+ if (!(FIX)->fx_done) \
1.9386 -+ ++seg_reloc_count; \
1.9387 -+ goto SKIP; \
1.9388 -+ } \
1.9389 -+ while (0)
1.9390 -+extern void avr32_process_fixup(struct fix *fixP, segT this_segment);
1.9391 -+
1.9392 -+/* Positive values of TC_FX_SIZE_SLACK allow a target to define
1.9393 -+ fixups that far past the end of a frag. Having such fixups
1.9394 -+ is of course most most likely a bug in setting fx_size correctly.
1.9395 -+ A negative value disables the fixup check entirely, which is
1.9396 -+ appropriate for something like the Renesas / SuperH SH_COUNT
1.9397 -+ reloc. */
1.9398 -+/* This target is buggy, and sets fix size too large. */
1.9399 -+#define TC_FX_SIZE_SLACK(FIX) -1
1.9400 -+
1.9401 -+/* We don't want the gas core to make any assumptions about our way of
1.9402 -+ doing linkrelaxing. */
1.9403 -+#define TC_LINKRELAX_FIXUP(SEG) 0
1.9404 -+
1.9405 -+/* ... but we do want it to insert lots of padding. */
1.9406 -+#define LINKER_RELAXING_SHRINKS_ONLY
1.9407 -+
1.9408 -+/* Better do it ourselves, really... */
1.9409 -+#define TC_RELAX_ALIGN(SEG, FRAG, ADDR) avr32_relax_align(SEG, FRAG, ADDR)
1.9410 -+extern relax_addressT
1.9411 -+avr32_relax_align(segT segment, fragS *fragP, relax_addressT address);
1.9412 -+
1.9413 -+/* Use line number format that is amenable to linker relaxation. */
1.9414 -+#define DWARF2_USE_FIXED_ADVANCE_PC (linkrelax != 0)
1.9415 -+
1.9416 -+/* This is called by write_object_file() just before symbols are
1.9417 -+ attempted converted into section symbols. */
1.9418 -+#define tc_frob_file_before_adjust() avr32_frob_file()
1.9419 -+extern void avr32_frob_file(void);
1.9420 -+
1.9421 -+/* If you define this macro, GAS will call it at the end of each input
1.9422 -+ file. */
1.9423 -+#define md_cleanup() avr32_cleanup()
1.9424 -+extern void avr32_cleanup(void);
1.9425 -+
1.9426 -+/* There's an AVR32-specific hack in operand() which creates O_md
1.9427 -+ expressions when encountering HWRD or LWRD. We need to generate
1.9428 -+ proper relocs for them */
1.9429 -+/* #define md_cgen_record_fixup_exp avr32_cgen_record_fixup_exp */
1.9430 -+
1.9431 -+/* I needed to add an extra hook in gas_cgen_finish_insn() for
1.9432 -+ conversion of O_md* operands because md_cgen_record_fixup_exp()
1.9433 -+ isn't called for relaxable insns */
1.9434 -+/* #define md_cgen_convert_expr(exp, opinfo) avr32_cgen_convert_expr(exp, opinfo)
1.9435 -+ int avr32_cgen_convert_expr(expressionS *, int); */
1.9436 -+
1.9437 -+/* #define tc_gen_reloc gas_cgen_tc_gen_reloc */
1.9438 -+
1.9439 -+/* If you define this macro, it should return the position from which
1.9440 -+ the PC relative adjustment for a PC relative fixup should be
1.9441 -+ made. On many processors, the base of a PC relative instruction is
1.9442 -+ the next instruction, so this macro would return the length of an
1.9443 -+ instruction, plus the address of the PC relative fixup. The latter
1.9444 -+ can be calculated as fixp->fx_where + fixp->fx_frag->fr_address. */
1.9445 -+extern long md_pcrel_from_section (struct fix *, segT);
1.9446 -+#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
1.9447 -+
1.9448 -+#define LOCAL_LABEL(name) (name[0] == '.' && (name[1] == 'L'))
1.9449 -+#define LOCAL_LABELS_FB 1
1.9450 -+
1.9451 -+struct avr32_relaxer
1.9452 -+{
1.9453 -+ int (*estimate_size)(fragS *, segT);
1.9454 -+ long (*relax_frag)(segT, fragS *, long);
1.9455 -+ void (*convert_frag)(bfd *, segT, fragS *);
1.9456 -+};
1.9457 -+
1.9458 -+/* AVR32 has quite complex instruction coding, which means we need
1.9459 -+ * lots of information in order to do the right thing during relaxing
1.9460 -+ * (basically, we need to be able to reconstruct a whole new opcode if
1.9461 -+ * necessary) */
1.9462 -+#define TC_FRAG_TYPE struct avr32_frag_data
1.9463 -+
1.9464 -+struct cpool;
1.9465 -+
1.9466 -+struct avr32_frag_data
1.9467 -+{
1.9468 -+ /* TODO: Maybe add an expression object here so that we can use
1.9469 -+ fix_new_exp() in md_convert_frag? We may have to decide
1.9470 -+ pcrel-ness in md_estimate_size_before_relax() as well...or we
1.9471 -+ might do it when parsing. Doing it while parsing may fail
1.9472 -+ because the sub_symbol is undefined then... */
1.9473 -+ int pcrel;
1.9474 -+ int force_extended;
1.9475 -+ int reloc_info;
1.9476 -+ struct avr32_relaxer *relaxer;
1.9477 -+ expressionS exp;
1.9478 -+
1.9479 -+ /* Points to associated constant pool, for use by LDA and CALL in
1.9480 -+ non-pic mode, and when relaxing the .cpool directive */
1.9481 -+ struct cpool *pool;
1.9482 -+ unsigned int pool_entry;
1.9483 -+};
1.9484 -+
1.9485 -+/* We will have to initialize the fields explicitly when needed */
1.9486 -+#define TC_FRAG_INIT(fragP)
1.9487 -+
1.9488 -+#define md_estimate_size_before_relax(fragP, segT) \
1.9489 -+ ((fragP)->tc_frag_data.relaxer->estimate_size(fragP, segT))
1.9490 -+#define md_relax_frag(segment, fragP, stretch) \
1.9491 -+ ((fragP)->tc_frag_data.relaxer->relax_frag(segment, fragP, stretch))
1.9492 -+#define md_convert_frag(abfd, segment, fragP) \
1.9493 -+ ((fragP)->tc_frag_data.relaxer->convert_frag(abfd, segment, fragP))
1.9494 -+
1.9495 -+#define TC_FIX_TYPE struct avr32_fix_data
1.9496 -+
1.9497 -+struct avr32_fix_data
1.9498 -+{
1.9499 -+ const struct avr32_ifield *ifield;
1.9500 -+ unsigned int align;
1.9501 -+ long min;
1.9502 -+ long max;
1.9503 -+};
1.9504 -+
1.9505 -+#define TC_INIT_FIX_DATA(fixP) \
1.9506 -+ do \
1.9507 -+ { \
1.9508 -+ (fixP)->tc_fix_data.ifield = NULL; \
1.9509 -+ (fixP)->tc_fix_data.align = 0; \
1.9510 -+ (fixP)->tc_fix_data.min = 0; \
1.9511 -+ (fixP)->tc_fix_data.max = 0; \
1.9512 -+ } \
1.9513 -+ while (0)
1.9514 ---- a/gas/configure.tgt
1.9515 -+++ b/gas/configure.tgt
1.9516 -@@ -33,6 +33,7 @@ case ${cpu} in
1.9517 - am33_2.0) cpu_type=mn10300 endian=little ;;
1.9518 - arm*be|arm*b) cpu_type=arm endian=big ;;
1.9519 - arm*) cpu_type=arm endian=little ;;
1.9520 -+ avr32*) cpu_type=avr32 endian=big ;;
1.9521 - bfin*) cpu_type=bfin endian=little ;;
1.9522 - c4x*) cpu_type=tic4x ;;
1.9523 - cr16*) cpu_type=cr16 endian=little ;;
1.9524 -@@ -129,6 +130,9 @@ case ${generic_target} in
1.9525 - bfin-*elf) fmt=elf ;;
1.9526 - cr16-*-elf*) fmt=elf ;;
1.9527 -
1.9528 -+ avr32-*-linux*) fmt=elf em=linux bfd_gas=yes ;;
1.9529 -+ avr32*) fmt=elf bfd_gas=yes ;;
1.9530 -+
1.9531 - cris-*-linux-* | crisv32-*-linux-*)
1.9532 - fmt=multi em=linux ;;
1.9533 - cris-*-* | crisv32-*-*) fmt=multi ;;
1.9534 ---- a/gas/doc/all.texi
1.9535 -+++ b/gas/doc/all.texi
1.9536 -@@ -30,6 +30,7 @@
1.9537 - @set ARC
1.9538 - @set ARM
1.9539 - @set AVR
1.9540 -+@set AVR32
1.9541 - @set BFIN
1.9542 - @set CR16
1.9543 - @set CRIS
1.9544 ---- a/gas/doc/as.texinfo
1.9545 -+++ b/gas/doc/as.texinfo
1.9546 -@@ -6353,6 +6353,9 @@ subject, see the hardware manufacturer's
1.9547 - @ifset AVR
1.9548 - * AVR-Dependent:: AVR Dependent Features
1.9549 - @end ifset
1.9550 -+@ifset AVR32
1.9551 -+* AVR32-Dependent:: AVR32 Dependent Features
1.9552 -+@end ifset
1.9553 - @ifset BFIN
1.9554 - * BFIN-Dependent:: BFIN Dependent Features
1.9555 - @end ifset
1.9556 -@@ -6476,6 +6479,10 @@ subject, see the hardware manufacturer's
1.9557 - @include c-avr.texi
1.9558 - @end ifset
1.9559 -
1.9560 -+@ifset AVR32
1.9561 -+@include c-avr32.texi
1.9562 -+@end ifset
1.9563 -+
1.9564 - @ifset BFIN
1.9565 - @include c-bfin.texi
1.9566 - @end ifset
1.9567 ---- /dev/null
1.9568 -+++ b/gas/doc/c-avr32.texi
1.9569 -@@ -0,0 +1,247 @@
1.9570 -+@c Copyright 2005, 2006
1.9571 -+@c Atmel Corporation
1.9572 -+@c This is part of the GAS manual.
1.9573 -+@c For copying conditions, see the file as.texinfo.
1.9574 -+
1.9575 -+@ifset GENERIC
1.9576 -+@page
1.9577 -+@node AVR32-Dependent
1.9578 -+@chapter AVR32 Dependent Features
1.9579 -+@end ifset
1.9580 -+
1.9581 -+@ifclear GENERIC
1.9582 -+@node Machine Dependencies
1.9583 -+@chapter AVR32 Dependent Features
1.9584 -+@end ifclear
1.9585 -+
1.9586 -+@cindex AVR32 support
1.9587 -+@menu
1.9588 -+* AVR32 Options:: Options
1.9589 -+* AVR32 Syntax:: Syntax
1.9590 -+* AVR32 Directives:: Directives
1.9591 -+* AVR32 Opcodes:: Opcodes
1.9592 -+@end menu
1.9593 -+
1.9594 -+@node AVR32 Options
1.9595 -+@section Options
1.9596 -+@cindex AVR32 options
1.9597 -+@cindex options for AVR32
1.9598 -+
1.9599 -+There are currently no AVR32-specific options. However, the following
1.9600 -+options are planned:
1.9601 -+
1.9602 -+@table @code
1.9603 -+
1.9604 -+@cindex @code{--pic} command line option, AVR32
1.9605 -+@cindex PIC code generation for AVR32
1.9606 -+@item --pic
1.9607 -+This option specifies that the output of the assembler should be marked
1.9608 -+as position-independent code (PIC). It will also ensure that
1.9609 -+pseudo-instructions that deal with address calculation are output as
1.9610 -+PIC, and that all absolute address references in the code are marked as
1.9611 -+such.
1.9612 -+
1.9613 -+@cindex @code{--linkrelax} command line option, AVR32
1.9614 -+@item --linkrelax
1.9615 -+This option specifies that the output of the assembler should be marked
1.9616 -+as linker-relaxable. It will also ensure that all PC-relative operands
1.9617 -+that may change during linker relaxation get appropriate relocations.
1.9618 -+
1.9619 -+@end table
1.9620 -+
1.9621 -+
1.9622 -+@node AVR32 Syntax
1.9623 -+@section Syntax
1.9624 -+@menu
1.9625 -+* AVR32-Chars:: Special Characters
1.9626 -+* AVR32-Symrefs:: Symbol references
1.9627 -+@end menu
1.9628 -+
1.9629 -+@node AVR32-Chars
1.9630 -+@subsection Special Characters
1.9631 -+
1.9632 -+@cindex line comment character, AVR32
1.9633 -+@cindex AVR32 line comment character
1.9634 -+The presence of a @samp{//} on a line indicates the start of a comment
1.9635 -+that extends to the end of the current line. If a @samp{#} appears as
1.9636 -+the first character of a line, the whole line is treated as a comment.
1.9637 -+
1.9638 -+@cindex line separator, AVR32
1.9639 -+@cindex statement separator, AVR32
1.9640 -+@cindex AVR32 line separator
1.9641 -+The @samp{;} character can be used instead of a newline to separate
1.9642 -+statements.
1.9643 -+
1.9644 -+@node AVR32-Symrefs
1.9645 -+@subsection Symbol references
1.9646 -+
1.9647 -+The absolute value of a symbol can be obtained by simply naming the
1.9648 -+symbol. However, as AVR32 symbols have 32-bit values, most symbols have
1.9649 -+values that are outside the range of any instructions.
1.9650 -+
1.9651 -+Instructions that take a PC-relative offset, e.g. @code{lddpc} or
1.9652 -+@code{rcall}, can also reference a symbol by simply naming the symbol
1.9653 -+(no explicit calculations necessary). In this case, the assembler or
1.9654 -+linker subtracts the address of the instruction from the symbol's value
1.9655 -+and inserts the result into the instruction. Note that even though an
1.9656 -+overflow is less likely to happen for a relative reference than for an
1.9657 -+absolute reference, the assembler or linker will generate an error if
1.9658 -+the referenced symbol is too far away from the current location.
1.9659 -+
1.9660 -+Relative references can be used for data as well. For example:
1.9661 -+
1.9662 -+@smallexample
1.9663 -+ lddpc r0, 2f
1.9664 -+1: add r0, pc
1.9665 -+ ...
1.9666 -+ .align 2
1.9667 -+2: .int @var{some_symbol} - 1b
1.9668 -+@end smallexample
1.9669 -+
1.9670 -+Here, r0 will end up with the run-time address of @var{some_symbol} even
1.9671 -+if the program was loaded at a different address than it was linked
1.9672 -+(position-independent code).
1.9673 -+
1.9674 -+@subsubsection Symbol modifiers
1.9675 -+
1.9676 -+@table @code
1.9677 -+
1.9678 -+@item @code{hi(@var{symbol})}
1.9679 -+Evaluates to the value of the symbol shifted right 16 bits. This will
1.9680 -+work even if @var{symbol} is defined in a different module.
1.9681 -+
1.9682 -+@item @code{lo(@var{symbol})}
1.9683 -+Evaluates to the low 16 bits of the symbol's value. This will work even
1.9684 -+if @var{symbol} is defined in a different module.
1.9685 -+
1.9686 -+@item @code{@var{symbol}@@got}
1.9687 -+Create a GOT entry for @var{symbol} and return the offset of that entry
1.9688 -+relative to the GOT base.
1.9689 -+
1.9690 -+@end table
1.9691 -+
1.9692 -+
1.9693 -+@node AVR32 Directives
1.9694 -+@section Directives
1.9695 -+@cindex machine directives, AVR32
1.9696 -+@cindex AVR32 directives
1.9697 -+
1.9698 -+@table @code
1.9699 -+
1.9700 -+@cindex @code{.cpool} directive, AVR32
1.9701 -+@item .cpool
1.9702 -+This directive causes the current contents of the constant pool to be
1.9703 -+dumped into the current section at the current location (aligned to a
1.9704 -+word boundary). @code{GAS} maintains a separate constant pool for each
1.9705 -+section and each sub-section. The @code{.cpool} directive will only
1.9706 -+affect the constant pool of the current section and sub-section. At the
1.9707 -+end of assembly, all remaining, non-empty constant pools will
1.9708 -+automatically be dumped.
1.9709 -+
1.9710 -+@end table
1.9711 -+
1.9712 -+
1.9713 -+@node AVR32 Opcodes
1.9714 -+@section Opcodes
1.9715 -+@cindex AVR32 opcodes
1.9716 -+@cindex opcodes for AVR32
1.9717 -+
1.9718 -+@code{@value{AS}} implements all the standard AVR32 opcodes. It also
1.9719 -+implements several pseudo-opcodes, which are recommended to use wherever
1.9720 -+possible because they give the tool chain better freedom to generate
1.9721 -+optimal code.
1.9722 -+
1.9723 -+@table @code
1.9724 -+
1.9725 -+@cindex @code{LDA.W reg, symbol} pseudo op, AVR32
1.9726 -+@item LDA.W
1.9727 -+@smallexample
1.9728 -+ lda.w @var{reg}, @var{symbol}
1.9729 -+@end smallexample
1.9730 -+
1.9731 -+This instruction will load the address of @var{symbol} into
1.9732 -+@var{reg}. The instruction will evaluate to one of the following,
1.9733 -+depending on the relative distance to the symbol, the relative distance
1.9734 -+to the constant pool and whether the @code{--pic} option has been
1.9735 -+specified. If the @code{--pic} option has not been specified, the
1.9736 -+alternatives are as follows:
1.9737 -+@smallexample
1.9738 -+ /* @var{symbol} evaluates to a small enough value */
1.9739 -+ mov @var{reg}, @var{symbol}
1.9740 -+
1.9741 -+ /* (. - @var{symbol}) evaluates to a small enough value */
1.9742 -+ sub @var{reg}, pc, . - @var{symbol}
1.9743 -+
1.9744 -+ /* Constant pool is close enough */
1.9745 -+ lddpc @var{reg}, @var{cpent}
1.9746 -+ ...
1.9747 -+@var{cpent}:
1.9748 -+ .long @var{symbol}
1.9749 -+
1.9750 -+ /* Otherwise (not implemented yet, probably not necessary) */
1.9751 -+ mov @var{reg}, lo(@var{symbol})
1.9752 -+ orh @var{reg}, hi(@var{symbol})
1.9753 -+@end smallexample
1.9754 -+
1.9755 -+If the @code{--pic} option has been specified, the alternatives are as
1.9756 -+follows:
1.9757 -+@smallexample
1.9758 -+ /* (. - @var{symbol}) evaluates to a small enough value */
1.9759 -+ sub @var{reg}, pc, . - @var{symbol}
1.9760 -+
1.9761 -+ /* If @code{--linkrelax} not specified */
1.9762 -+ ld.w @var{reg}, r6[@var{symbol}@@got]
1.9763 -+
1.9764 -+ /* Otherwise */
1.9765 -+ mov @var{reg}, @var{symbol}@@got / 4
1.9766 -+ ld.w @var{reg}, r6[@var{reg} << 2]
1.9767 -+@end smallexample
1.9768 -+
1.9769 -+If @var{symbol} is not defined in the same file and section as the
1.9770 -+@code{LDA.W} instruction, the most pessimistic alternative of the
1.9771 -+above is selected. The linker may convert it back into the most
1.9772 -+optimal alternative when the final value of all symbols is known.
1.9773 -+
1.9774 -+@cindex @code{CALL symbol} pseudo op, AVR32
1.9775 -+@item CALL
1.9776 -+@smallexample
1.9777 -+ call @var{symbol}
1.9778 -+@end smallexample
1.9779 -+
1.9780 -+This instruction will insert code to call the subroutine identified by
1.9781 -+@var{symbol}. It will evaluate to one of the following, depending on
1.9782 -+the relative distance to the symbol as well as the @code{--linkrelax}
1.9783 -+and @code{--pic} command-line options.
1.9784 -+
1.9785 -+If @var{symbol} is defined in the same section and input file, and the
1.9786 -+distance is small enough, an @code{rcall} instruction is inserted:
1.9787 -+@smallexample
1.9788 -+ rcall @var{symbol}
1.9789 -+@end smallexample
1.9790 -+
1.9791 -+Otherwise, if the @code{--pic} option has not been specified:
1.9792 -+@smallexample
1.9793 -+ mcall @var{cpent}
1.9794 -+ ...
1.9795 -+@var{cpent}:
1.9796 -+ .long @var{symbol}
1.9797 -+@end smallexample
1.9798 -+
1.9799 -+Finally, if nothing else fits and the @code{--pic} option has been
1.9800 -+specified, the assembler will indirect the call through the Global
1.9801 -+Offset Table:
1.9802 -+@smallexample
1.9803 -+ /* If @code{--linkrelax} not specified */
1.9804 -+ mcall r6[@var{symbol}@@got]
1.9805 -+
1.9806 -+ /* If @code{--linkrelax} specified */
1.9807 -+ mov lr, @var{symbol}@@got / 4
1.9808 -+ ld.w lr, r6[lr << 2]
1.9809 -+ icall lr
1.9810 -+@end smallexample
1.9811 -+
1.9812 -+The linker, after determining the final value of @var{symbol}, may
1.9813 -+convert any of these into more optimal alternatives. This includes
1.9814 -+deleting any superfluous constant pool- and GOT-entries.
1.9815 -+
1.9816 -+@end table
1.9817 ---- a/gas/doc/Makefile.am
1.9818 -+++ b/gas/doc/Makefile.am
1.9819 -@@ -33,6 +33,7 @@ CPU_DOCS = \
1.9820 - c-arc.texi \
1.9821 - c-arm.texi \
1.9822 - c-avr.texi \
1.9823 -+ c-avr32.texi \
1.9824 - c-bfin.texi \
1.9825 - c-cr16.texi \
1.9826 - c-d10v.texi \
1.9827 ---- a/gas/Makefile.am
1.9828 -+++ b/gas/Makefile.am
1.9829 -@@ -47,6 +47,7 @@ CPU_TYPES = \
1.9830 - arc \
1.9831 - arm \
1.9832 - avr \
1.9833 -+ avr32 \
1.9834 - bfin \
1.9835 - cr16 \
1.9836 - cris \
1.9837 -@@ -241,6 +242,7 @@ TARGET_CPU_CFILES = \
1.9838 - config/tc-arc.c \
1.9839 - config/tc-arm.c \
1.9840 - config/tc-avr.c \
1.9841 -+ config/tc-avr32.c \
1.9842 - config/tc-bfin.c \
1.9843 - config/tc-cr16.c \
1.9844 - config/tc-cris.c \
1.9845 -@@ -296,6 +298,7 @@ TARGET_CPU_HFILES = \
1.9846 - config/tc-arc.h \
1.9847 - config/tc-arm.h \
1.9848 - config/tc-avr.h \
1.9849 -+ config/tc-avr32.h \
1.9850 - config/tc-bfin.h \
1.9851 - config/tc-cr16.h \
1.9852 - config/tc-cris.h \
1.9853 -@@ -1050,6 +1053,11 @@ DEPTC_avr_elf = $(srcdir)/config/obj-elf
1.9854 - $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr.h dwarf2dbg.h \
1.9855 - $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
1.9856 - $(INCDIR)/opcode/avr.h
1.9857 -+DEPTC_avr32_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \
1.9858 -+ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
1.9859 -+ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr32.h \
1.9860 -+ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
1.9861 -+ $(srcdir)/../opcodes/avr32-opc.h $(srcdir)/../opcodes/avr32-asm.h
1.9862 - DEPTC_bfin_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
1.9863 - $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
1.9864 - $(INCDIR)/bfdlink.h $(srcdir)/config/tc-bfin.h dwarf2dbg.h \
1.9865 -@@ -1487,6 +1495,11 @@ DEPOBJ_avr_elf = $(srcdir)/config/obj-el
1.9866 - $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr.h dwarf2dbg.h \
1.9867 - $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
1.9868 - $(INCDIR)/obstack.h struc-symbol.h dwarf2dbg.h $(INCDIR)/aout/aout64.h
1.9869 -+DEPOBJ_avr32_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \
1.9870 -+ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
1.9871 -+ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr32.h \
1.9872 -+ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
1.9873 -+ struc-symbol.h dwarf2dbg.h
1.9874 - DEPOBJ_bfin_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
1.9875 - $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
1.9876 - $(INCDIR)/bfdlink.h $(srcdir)/config/tc-bfin.h dwarf2dbg.h \
1.9877 -@@ -1858,6 +1871,9 @@ DEP_cr16_elf = $(srcdir)/config/obj-elf.
1.9878 - $(INCDIR)/bfdlink.h $(srcdir)/config/tc-cr16.h dwarf2dbg.h \
1.9879 - $(srcdir)/config/obj-coff.h $(INCDIR)/coff/internal.h \
1.9880 - $(BFDDIR)/libcoff.h
1.9881 -+DEP_avr32_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \
1.9882 -+ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
1.9883 -+ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr32.h
1.9884 - DEP_cris_aout = $(srcdir)/config/obj-aout.h $(srcdir)/config/tc-cris.h \
1.9885 - $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h
1.9886 - DEP_cris_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
1.9887 ---- /dev/null
1.9888 -+++ b/gas/testsuite/gas/avr32/aliases.d
1.9889 -@@ -0,0 +1,19 @@
1.9890 -+#as:
1.9891 -+#objdump: -dr
1.9892 -+#name: aliases
1.9893 -+
1.9894 -+.*: +file format .*
1.9895 -+
1.9896 -+Disassembly of section \.text:
1.9897 -+
1.9898 -+00000000 <ld_nodisp>:
1.9899 -+ 0: 19 80 [ \t]+ld\.ub r0,r12\[0x0\]
1.9900 -+ 2: f9 20 00 00[ \t]+ld\.sb r0,r12\[0\]
1.9901 -+ 6: 98 80 [ \t]+ld\.uh r0,r12\[0x0\]
1.9902 -+ 8: 98 00 [ \t]+ld\.sh r0,r12\[0x0\]
1.9903 -+ a: 78 00 [ \t]+ld\.w r0,r12\[0x0\]
1.9904 -+
1.9905 -+0000000c <st_nodisp>:
1.9906 -+ c: b8 80 [ \t]+st\.b r12\[0x0\],r0
1.9907 -+ e: b8 00 [ \t]+st\.h r12\[0x0\],r0
1.9908 -+ 10: 99 00 [ \t]+st\.w r12\[0x0\],r0
1.9909 ---- /dev/null
1.9910 -+++ b/gas/testsuite/gas/avr32/aliases.s
1.9911 -@@ -0,0 +1,14 @@
1.9912 -+ .text
1.9913 -+ .global ld_nodisp
1.9914 -+ld_nodisp:
1.9915 -+ ld.ub r0, r12
1.9916 -+ ld.sb r0, r12
1.9917 -+ ld.uh r0, r12
1.9918 -+ ld.sh r0, r12
1.9919 -+ ld.w r0, r12
1.9920 -+
1.9921 -+ .global st_nodisp
1.9922 -+st_nodisp:
1.9923 -+ st.b r12, r0
1.9924 -+ st.h r12, r0
1.9925 -+ st.w r12, r0
1.9926 ---- /dev/null
1.9927 -+++ b/gas/testsuite/gas/avr32/allinsn.d
1.9928 -@@ -0,0 +1,2987 @@
1.9929 -+#as:
1.9930 -+#objdump: -dr
1.9931 -+#name: allinsn
1.9932 -+
1.9933 -+.*: +file format .*
1.9934 -+
1.9935 -+Disassembly of section \.text:
1.9936 -+
1.9937 -+[0-9a-f]* <ld_d5>:
1.9938 -+ *[0-9a-f]*: fe 0f 02 3e ld\.d lr,pc\[pc<<0x3\]
1.9939 -+ *[0-9a-f]*: e0 00 02 00 ld\.d r0,r0\[r0\]
1.9940 -+ *[0-9a-f]*: ea 05 02 26 ld\.d r6,r5\[r5<<0x2\]
1.9941 -+ *[0-9a-f]*: e8 04 02 14 ld\.d r4,r4\[r4<<0x1\]
1.9942 -+ *[0-9a-f]*: fc 0e 02 1e ld\.d lr,lr\[lr<<0x1\]
1.9943 -+ *[0-9a-f]*: e6 0d 02 2a ld\.d r10,r3\[sp<<0x2\]
1.9944 -+ *[0-9a-f]*: f4 06 02 28 ld\.d r8,r10\[r6<<0x2\]
1.9945 -+ *[0-9a-f]*: ee 09 02 02 ld\.d r2,r7\[r9\]
1.9946 -+
1.9947 -+[0-9a-f]* <ld_w5>:
1.9948 -+ *[0-9a-f]*: fe 0f 03 0f ld\.w pc,pc\[pc\]
1.9949 -+ *[0-9a-f]*: f8 0c 03 3c ld\.w r12,r12\[r12<<0x3\]
1.9950 -+ *[0-9a-f]*: ea 05 03 25 ld\.w r5,r5\[r5<<0x2\]
1.9951 -+ *[0-9a-f]*: e8 04 03 14 ld\.w r4,r4\[r4<<0x1\]
1.9952 -+ *[0-9a-f]*: fc 0e 03 1e ld\.w lr,lr\[lr<<0x1\]
1.9953 -+ *[0-9a-f]*: f2 09 03 02 ld\.w r2,r9\[r9\]
1.9954 -+ *[0-9a-f]*: e4 06 03 0b ld\.w r11,r2\[r6\]
1.9955 -+ *[0-9a-f]*: e4 0d 03 30 ld\.w r0,r2\[sp<<0x3\]
1.9956 -+
1.9957 -+[0-9a-f]* <ld_sh5>:
1.9958 -+ *[0-9a-f]*: fe 0f 04 0f ld\.sh pc,pc\[pc\]
1.9959 -+ *[0-9a-f]*: f8 0c 04 3c ld\.sh r12,r12\[r12<<0x3\]
1.9960 -+ *[0-9a-f]*: ea 05 04 25 ld\.sh r5,r5\[r5<<0x2\]
1.9961 -+ *[0-9a-f]*: e8 04 04 14 ld\.sh r4,r4\[r4<<0x1\]
1.9962 -+ *[0-9a-f]*: fc 0e 04 1e ld\.sh lr,lr\[lr<<0x1\]
1.9963 -+ *[0-9a-f]*: e0 0f 04 2b ld\.sh r11,r0\[pc<<0x2\]
1.9964 -+ *[0-9a-f]*: fa 06 04 2a ld\.sh r10,sp\[r6<<0x2\]
1.9965 -+ *[0-9a-f]*: e4 02 04 0c ld\.sh r12,r2\[r2\]
1.9966 -+
1.9967 -+[0-9a-f]* <ld_uh5>:
1.9968 -+ *[0-9a-f]*: fe 0f 05 0f ld\.uh pc,pc\[pc\]
1.9969 -+ *[0-9a-f]*: f8 0c 05 3c ld\.uh r12,r12\[r12<<0x3\]
1.9970 -+ *[0-9a-f]*: ea 05 05 25 ld\.uh r5,r5\[r5<<0x2\]
1.9971 -+ *[0-9a-f]*: e8 04 05 14 ld\.uh r4,r4\[r4<<0x1\]
1.9972 -+ *[0-9a-f]*: fc 0e 05 1e ld\.uh lr,lr\[lr<<0x1\]
1.9973 -+ *[0-9a-f]*: fe 0e 05 38 ld\.uh r8,pc\[lr<<0x3\]
1.9974 -+ *[0-9a-f]*: e2 0f 05 16 ld\.uh r6,r1\[pc<<0x1\]
1.9975 -+ *[0-9a-f]*: fc 0d 05 16 ld\.uh r6,lr\[sp<<0x1\]
1.9976 -+
1.9977 -+[0-9a-f]* <ld_sb2>:
1.9978 -+ *[0-9a-f]*: fe 0f 06 0f ld\.sb pc,pc\[pc\]
1.9979 -+ *[0-9a-f]*: f8 0c 06 3c ld\.sb r12,r12\[r12<<0x3\]
1.9980 -+ *[0-9a-f]*: ea 05 06 25 ld\.sb r5,r5\[r5<<0x2\]
1.9981 -+ *[0-9a-f]*: e8 04 06 14 ld\.sb r4,r4\[r4<<0x1\]
1.9982 -+ *[0-9a-f]*: fc 0e 06 1e ld\.sb lr,lr\[lr<<0x1\]
1.9983 -+ *[0-9a-f]*: e2 0f 06 39 ld\.sb r9,r1\[pc<<0x3\]
1.9984 -+ *[0-9a-f]*: e6 0b 06 10 ld\.sb r0,r3\[r11<<0x1\]
1.9985 -+ *[0-9a-f]*: ea 05 06 1a ld\.sb r10,r5\[r5<<0x1\]
1.9986 -+
1.9987 -+[0-9a-f]* <ld_ub5>:
1.9988 -+ *[0-9a-f]*: fe 0f 07 0f ld\.ub pc,pc\[pc\]
1.9989 -+ *[0-9a-f]*: f8 0c 07 3c ld\.ub r12,r12\[r12<<0x3\]
1.9990 -+ *[0-9a-f]*: ea 05 07 25 ld\.ub r5,r5\[r5<<0x2\]
1.9991 -+ *[0-9a-f]*: e8 04 07 14 ld\.ub r4,r4\[r4<<0x1\]
1.9992 -+ *[0-9a-f]*: fc 0e 07 1e ld\.ub lr,lr\[lr<<0x1\]
1.9993 -+ *[0-9a-f]*: f8 07 07 36 ld\.ub r6,r12\[r7<<0x3\]
1.9994 -+ *[0-9a-f]*: ec 0c 07 02 ld\.ub r2,r6\[r12\]
1.9995 -+ *[0-9a-f]*: ee 0b 07 10 ld\.ub r0,r7\[r11<<0x1\]
1.9996 -+
1.9997 -+[0-9a-f]* <st_d5>:
1.9998 -+ *[0-9a-f]*: fe 0f 08 0e st\.d pc\[pc\],lr
1.9999 -+ *[0-9a-f]*: f8 0c 08 3c st\.d r12\[r12<<0x3\],r12
1.10000 -+ *[0-9a-f]*: ea 05 08 26 st\.d r5\[r5<<0x2\],r6
1.10001 -+ *[0-9a-f]*: e8 04 08 14 st\.d r4\[r4<<0x1\],r4
1.10002 -+ *[0-9a-f]*: fc 0e 08 1e st\.d lr\[lr<<0x1\],lr
1.10003 -+ *[0-9a-f]*: e2 09 08 14 st\.d r1\[r9<<0x1\],r4
1.10004 -+ *[0-9a-f]*: f4 02 08 14 st\.d r10\[r2<<0x1\],r4
1.10005 -+ *[0-9a-f]*: f8 06 08 0e st\.d r12\[r6\],lr
1.10006 -+
1.10007 -+[0-9a-f]* <st_w5>:
1.10008 -+ *[0-9a-f]*: fe 0f 09 0f st\.w pc\[pc\],pc
1.10009 -+ *[0-9a-f]*: f8 0c 09 3c st\.w r12\[r12<<0x3\],r12
1.10010 -+ *[0-9a-f]*: ea 05 09 25 st\.w r5\[r5<<0x2\],r5
1.10011 -+ *[0-9a-f]*: e8 04 09 14 st\.w r4\[r4<<0x1\],r4
1.10012 -+ *[0-9a-f]*: fc 0e 09 1e st\.w lr\[lr<<0x1\],lr
1.10013 -+ *[0-9a-f]*: e2 0a 09 03 st\.w r1\[r10\],r3
1.10014 -+ *[0-9a-f]*: e0 0a 09 19 st\.w r0\[r10<<0x1\],r9
1.10015 -+ *[0-9a-f]*: e8 05 09 3f st\.w r4\[r5<<0x3\],pc
1.10016 -+
1.10017 -+[0-9a-f]* <st_h5>:
1.10018 -+ *[0-9a-f]*: fe 0f 0a 0f st\.h pc\[pc\],pc
1.10019 -+ *[0-9a-f]*: f8 0c 0a 3c st\.h r12\[r12<<0x3\],r12
1.10020 -+ *[0-9a-f]*: ea 05 0a 25 st\.h r5\[r5<<0x2\],r5
1.10021 -+ *[0-9a-f]*: e8 04 0a 14 st\.h r4\[r4<<0x1\],r4
1.10022 -+ *[0-9a-f]*: fc 0e 0a 1e st\.h lr\[lr<<0x1\],lr
1.10023 -+ *[0-9a-f]*: e4 09 0a 0b st\.h r2\[r9\],r11
1.10024 -+ *[0-9a-f]*: ea 01 0a 2c st\.h r5\[r1<<0x2\],r12
1.10025 -+ *[0-9a-f]*: fe 08 0a 23 st\.h pc\[r8<<0x2\],r3
1.10026 -+
1.10027 -+[0-9a-f]* <st_b5>:
1.10028 -+ *[0-9a-f]*: fe 0f 0b 0f st\.b pc\[pc\],pc
1.10029 -+ *[0-9a-f]*: f8 0c 0b 3c st\.b r12\[r12<<0x3\],r12
1.10030 -+ *[0-9a-f]*: ea 05 0b 25 st\.b r5\[r5<<0x2\],r5
1.10031 -+ *[0-9a-f]*: e8 04 0b 14 st\.b r4\[r4<<0x1\],r4
1.10032 -+ *[0-9a-f]*: fc 0e 0b 1e st\.b lr\[lr<<0x1\],lr
1.10033 -+ *[0-9a-f]*: e2 08 0b 16 st\.b r1\[r8<<0x1\],r6
1.10034 -+ *[0-9a-f]*: fc 0e 0b 31 st\.b lr\[lr<<0x3\],r1
1.10035 -+ *[0-9a-f]*: ea 00 0b 2f st\.b r5\[r0<<0x2\],pc
1.10036 -+
1.10037 -+[0-9a-f]* <divs>:
1.10038 -+ *[0-9a-f]*: fe 0f 0c 0f divs pc,pc,pc
1.10039 -+ *[0-9a-f]*: f8 0c 0c 0c divs r12,r12,r12
1.10040 -+ *[0-9a-f]*: ea 05 0c 05 divs r5,r5,r5
1.10041 -+ *[0-9a-f]*: e8 04 0c 04 divs r4,r4,r4
1.10042 -+ *[0-9a-f]*: fc 0e 0c 0e divs lr,lr,lr
1.10043 -+ *[0-9a-f]*: fe 0f 0c 03 divs r3,pc,pc
1.10044 -+ *[0-9a-f]*: f8 02 0c 09 divs r9,r12,r2
1.10045 -+ *[0-9a-f]*: e8 01 0c 07 divs r7,r4,r1
1.10046 -+
1.10047 -+[0-9a-f]* <add1>:
1.10048 -+ *[0-9a-f]*: 1e 0f add pc,pc
1.10049 -+ *[0-9a-f]*: 18 0c add r12,r12
1.10050 -+ *[0-9a-f]*: 0a 05 add r5,r5
1.10051 -+ *[0-9a-f]*: 08 04 add r4,r4
1.10052 -+ *[0-9a-f]*: 1c 0e add lr,lr
1.10053 -+ *[0-9a-f]*: 12 0c add r12,r9
1.10054 -+ *[0-9a-f]*: 06 06 add r6,r3
1.10055 -+ *[0-9a-f]*: 18 0a add r10,r12
1.10056 -+
1.10057 -+[0-9a-f]* <sub1>:
1.10058 -+ *[0-9a-f]*: 1e 1f sub pc,pc
1.10059 -+ *[0-9a-f]*: 18 1c sub r12,r12
1.10060 -+ *[0-9a-f]*: 0a 15 sub r5,r5
1.10061 -+ *[0-9a-f]*: 08 14 sub r4,r4
1.10062 -+ *[0-9a-f]*: 1c 1e sub lr,lr
1.10063 -+ *[0-9a-f]*: 0c 1e sub lr,r6
1.10064 -+ *[0-9a-f]*: 1a 10 sub r0,sp
1.10065 -+ *[0-9a-f]*: 18 16 sub r6,r12
1.10066 -+
1.10067 -+[0-9a-f]* <rsub1>:
1.10068 -+ *[0-9a-f]*: 1e 2f rsub pc,pc
1.10069 -+ *[0-9a-f]*: 18 2c rsub r12,r12
1.10070 -+ *[0-9a-f]*: 0a 25 rsub r5,r5
1.10071 -+ *[0-9a-f]*: 08 24 rsub r4,r4
1.10072 -+ *[0-9a-f]*: 1c 2e rsub lr,lr
1.10073 -+ *[0-9a-f]*: 1a 2b rsub r11,sp
1.10074 -+ *[0-9a-f]*: 08 27 rsub r7,r4
1.10075 -+ *[0-9a-f]*: 02 29 rsub r9,r1
1.10076 -+
1.10077 -+[0-9a-f]* <cp1>:
1.10078 -+ *[0-9a-f]*: 1e 3f cp\.w pc,pc
1.10079 -+ *[0-9a-f]*: 18 3c cp\.w r12,r12
1.10080 -+ *[0-9a-f]*: 0a 35 cp\.w r5,r5
1.10081 -+ *[0-9a-f]*: 08 34 cp\.w r4,r4
1.10082 -+ *[0-9a-f]*: 1c 3e cp\.w lr,lr
1.10083 -+ *[0-9a-f]*: 04 36 cp\.w r6,r2
1.10084 -+ *[0-9a-f]*: 12 30 cp\.w r0,r9
1.10085 -+ *[0-9a-f]*: 1a 33 cp\.w r3,sp
1.10086 -+
1.10087 -+[0-9a-f]* <or1>:
1.10088 -+ *[0-9a-f]*: 1e 4f or pc,pc
1.10089 -+ *[0-9a-f]*: 18 4c or r12,r12
1.10090 -+ *[0-9a-f]*: 0a 45 or r5,r5
1.10091 -+ *[0-9a-f]*: 08 44 or r4,r4
1.10092 -+ *[0-9a-f]*: 1c 4e or lr,lr
1.10093 -+ *[0-9a-f]*: 12 44 or r4,r9
1.10094 -+ *[0-9a-f]*: 08 4b or r11,r4
1.10095 -+ *[0-9a-f]*: 00 44 or r4,r0
1.10096 -+
1.10097 -+[0-9a-f]* <eor1>:
1.10098 -+ *[0-9a-f]*: 1e 5f eor pc,pc
1.10099 -+ *[0-9a-f]*: 18 5c eor r12,r12
1.10100 -+ *[0-9a-f]*: 0a 55 eor r5,r5
1.10101 -+ *[0-9a-f]*: 08 54 eor r4,r4
1.10102 -+ *[0-9a-f]*: 1c 5e eor lr,lr
1.10103 -+ *[0-9a-f]*: 16 5c eor r12,r11
1.10104 -+ *[0-9a-f]*: 02 50 eor r0,r1
1.10105 -+ *[0-9a-f]*: 1e 55 eor r5,pc
1.10106 -+
1.10107 -+[0-9a-f]* <and1>:
1.10108 -+ *[0-9a-f]*: 1e 6f and pc,pc
1.10109 -+ *[0-9a-f]*: 18 6c and r12,r12
1.10110 -+ *[0-9a-f]*: 0a 65 and r5,r5
1.10111 -+ *[0-9a-f]*: 08 64 and r4,r4
1.10112 -+ *[0-9a-f]*: 1c 6e and lr,lr
1.10113 -+ *[0-9a-f]*: 02 68 and r8,r1
1.10114 -+ *[0-9a-f]*: 1a 60 and r0,sp
1.10115 -+ *[0-9a-f]*: 0a 6a and r10,r5
1.10116 -+
1.10117 -+[0-9a-f]* <tst>:
1.10118 -+ *[0-9a-f]*: 1e 7f tst pc,pc
1.10119 -+ *[0-9a-f]*: 18 7c tst r12,r12
1.10120 -+ *[0-9a-f]*: 0a 75 tst r5,r5
1.10121 -+ *[0-9a-f]*: 08 74 tst r4,r4
1.10122 -+ *[0-9a-f]*: 1c 7e tst lr,lr
1.10123 -+ *[0-9a-f]*: 18 70 tst r0,r12
1.10124 -+ *[0-9a-f]*: 0c 7a tst r10,r6
1.10125 -+ *[0-9a-f]*: 08 7d tst sp,r4
1.10126 -+
1.10127 -+[0-9a-f]* <andn>:
1.10128 -+ *[0-9a-f]*: 1e 8f andn pc,pc
1.10129 -+ *[0-9a-f]*: 18 8c andn r12,r12
1.10130 -+ *[0-9a-f]*: 0a 85 andn r5,r5
1.10131 -+ *[0-9a-f]*: 08 84 andn r4,r4
1.10132 -+ *[0-9a-f]*: 1c 8e andn lr,lr
1.10133 -+ *[0-9a-f]*: 18 89 andn r9,r12
1.10134 -+ *[0-9a-f]*: 1a 8b andn r11,sp
1.10135 -+ *[0-9a-f]*: 0a 8c andn r12,r5
1.10136 -+
1.10137 -+[0-9a-f]* <mov3>:
1.10138 -+ *[0-9a-f]*: 1e 9f mov pc,pc
1.10139 -+ *[0-9a-f]*: 18 9c mov r12,r12
1.10140 -+ *[0-9a-f]*: 0a 95 mov r5,r5
1.10141 -+ *[0-9a-f]*: 08 94 mov r4,r4
1.10142 -+ *[0-9a-f]*: 1c 9e mov lr,lr
1.10143 -+ *[0-9a-f]*: 12 95 mov r5,r9
1.10144 -+ *[0-9a-f]*: 16 9b mov r11,r11
1.10145 -+ *[0-9a-f]*: 1c 92 mov r2,lr
1.10146 -+
1.10147 -+[0-9a-f]* <st_w1>:
1.10148 -+ *[0-9a-f]*: 1e af st\.w pc\+\+,pc
1.10149 -+ *[0-9a-f]*: 18 ac st\.w r12\+\+,r12
1.10150 -+ *[0-9a-f]*: 0a a5 st\.w r5\+\+,r5
1.10151 -+ *[0-9a-f]*: 08 a4 st\.w r4\+\+,r4
1.10152 -+ *[0-9a-f]*: 1c ae st\.w lr\+\+,lr
1.10153 -+ *[0-9a-f]*: 02 ab st\.w r1\+\+,r11
1.10154 -+ *[0-9a-f]*: 1a a0 st\.w sp\+\+,r0
1.10155 -+ *[0-9a-f]*: 1a a1 st\.w sp\+\+,r1
1.10156 -+
1.10157 -+[0-9a-f]* <st_h1>:
1.10158 -+ *[0-9a-f]*: 1e bf st\.h pc\+\+,pc
1.10159 -+ *[0-9a-f]*: 18 bc st\.h r12\+\+,r12
1.10160 -+ *[0-9a-f]*: 0a b5 st\.h r5\+\+,r5
1.10161 -+ *[0-9a-f]*: 08 b4 st\.h r4\+\+,r4
1.10162 -+ *[0-9a-f]*: 1c be st\.h lr\+\+,lr
1.10163 -+ *[0-9a-f]*: 18 bd st\.h r12\+\+,sp
1.10164 -+ *[0-9a-f]*: 0e be st\.h r7\+\+,lr
1.10165 -+ *[0-9a-f]*: 0e b4 st\.h r7\+\+,r4
1.10166 -+
1.10167 -+[0-9a-f]* <st_b1>:
1.10168 -+ *[0-9a-f]*: 1e cf st\.b pc\+\+,pc
1.10169 -+ *[0-9a-f]*: 18 cc st\.b r12\+\+,r12
1.10170 -+ *[0-9a-f]*: 0a c5 st\.b r5\+\+,r5
1.10171 -+ *[0-9a-f]*: 08 c4 st\.b r4\+\+,r4
1.10172 -+ *[0-9a-f]*: 1c ce st\.b lr\+\+,lr
1.10173 -+ *[0-9a-f]*: 12 cd st\.b r9\+\+,sp
1.10174 -+ *[0-9a-f]*: 02 cd st\.b r1\+\+,sp
1.10175 -+ *[0-9a-f]*: 00 c4 st\.b r0\+\+,r4
1.10176 -+
1.10177 -+[0-9a-f]* <st_w2>:
1.10178 -+ *[0-9a-f]*: 1e df st\.w --pc,pc
1.10179 -+ *[0-9a-f]*: 18 dc st\.w --r12,r12
1.10180 -+ *[0-9a-f]*: 0a d5 st\.w --r5,r5
1.10181 -+ *[0-9a-f]*: 08 d4 st\.w --r4,r4
1.10182 -+ *[0-9a-f]*: 1c de st\.w --lr,lr
1.10183 -+ *[0-9a-f]*: 02 d7 st\.w --r1,r7
1.10184 -+ *[0-9a-f]*: 06 d9 st\.w --r3,r9
1.10185 -+ *[0-9a-f]*: 0a d5 st\.w --r5,r5
1.10186 -+
1.10187 -+[0-9a-f]* <st_h2>:
1.10188 -+ *[0-9a-f]*: 1e ef st\.h --pc,pc
1.10189 -+ *[0-9a-f]*: 18 ec st\.h --r12,r12
1.10190 -+ *[0-9a-f]*: 0a e5 st\.h --r5,r5
1.10191 -+ *[0-9a-f]*: 08 e4 st\.h --r4,r4
1.10192 -+ *[0-9a-f]*: 1c ee st\.h --lr,lr
1.10193 -+ *[0-9a-f]*: 0a e7 st\.h --r5,r7
1.10194 -+ *[0-9a-f]*: 10 e8 st\.h --r8,r8
1.10195 -+ *[0-9a-f]*: 0e e2 st\.h --r7,r2
1.10196 -+
1.10197 -+[0-9a-f]* <st_b2>:
1.10198 -+ *[0-9a-f]*: 1e ff st\.b --pc,pc
1.10199 -+ *[0-9a-f]*: 18 fc st\.b --r12,r12
1.10200 -+ *[0-9a-f]*: 0a f5 st\.b --r5,r5
1.10201 -+ *[0-9a-f]*: 08 f4 st\.b --r4,r4
1.10202 -+ *[0-9a-f]*: 1c fe st\.b --lr,lr
1.10203 -+ *[0-9a-f]*: 1a fd st\.b --sp,sp
1.10204 -+ *[0-9a-f]*: 1a fb st\.b --sp,r11
1.10205 -+ *[0-9a-f]*: 08 f5 st\.b --r4,r5
1.10206 -+
1.10207 -+[0-9a-f]* <ld_w1>:
1.10208 -+ *[0-9a-f]*: 1f 0f ld\.w pc,pc\+\+
1.10209 -+ *[0-9a-f]*: 19 0c ld\.w r12,r12\+\+
1.10210 -+ *[0-9a-f]*: 0b 05 ld\.w r5,r5\+\+
1.10211 -+ *[0-9a-f]*: 09 04 ld\.w r4,r4\+\+
1.10212 -+ *[0-9a-f]*: 1d 0e ld\.w lr,lr\+\+
1.10213 -+ *[0-9a-f]*: 0f 03 ld\.w r3,r7\+\+
1.10214 -+ *[0-9a-f]*: 1d 03 ld\.w r3,lr\+\+
1.10215 -+ *[0-9a-f]*: 0b 0c ld\.w r12,r5\+\+
1.10216 -+
1.10217 -+[0-9a-f]* <ld_sh1>:
1.10218 -+ *[0-9a-f]*: 1f 1f ld\.sh pc,pc\+\+
1.10219 -+ *[0-9a-f]*: 19 1c ld\.sh r12,r12\+\+
1.10220 -+ *[0-9a-f]*: 0b 15 ld\.sh r5,r5\+\+
1.10221 -+ *[0-9a-f]*: 09 14 ld\.sh r4,r4\+\+
1.10222 -+ *[0-9a-f]*: 1d 1e ld\.sh lr,lr\+\+
1.10223 -+ *[0-9a-f]*: 05 1b ld\.sh r11,r2\+\+
1.10224 -+ *[0-9a-f]*: 11 12 ld\.sh r2,r8\+\+
1.10225 -+ *[0-9a-f]*: 0d 17 ld\.sh r7,r6\+\+
1.10226 -+
1.10227 -+[0-9a-f]* <ld_uh1>:
1.10228 -+ *[0-9a-f]*: 1f 2f ld\.uh pc,pc\+\+
1.10229 -+ *[0-9a-f]*: 19 2c ld\.uh r12,r12\+\+
1.10230 -+ *[0-9a-f]*: 0b 25 ld\.uh r5,r5\+\+
1.10231 -+ *[0-9a-f]*: 09 24 ld\.uh r4,r4\+\+
1.10232 -+ *[0-9a-f]*: 1d 2e ld\.uh lr,lr\+\+
1.10233 -+ *[0-9a-f]*: 0f 26 ld\.uh r6,r7\+\+
1.10234 -+ *[0-9a-f]*: 17 2a ld\.uh r10,r11\+\+
1.10235 -+ *[0-9a-f]*: 09 2e ld\.uh lr,r4\+\+
1.10236 -+
1.10237 -+[0-9a-f]* <ld_ub1>:
1.10238 -+ *[0-9a-f]*: 1f 3f ld\.ub pc,pc\+\+
1.10239 -+ *[0-9a-f]*: 19 3c ld\.ub r12,r12\+\+
1.10240 -+ *[0-9a-f]*: 0b 35 ld\.ub r5,r5\+\+
1.10241 -+ *[0-9a-f]*: 09 34 ld\.ub r4,r4\+\+
1.10242 -+ *[0-9a-f]*: 1d 3e ld\.ub lr,lr\+\+
1.10243 -+ *[0-9a-f]*: 1d 38 ld\.ub r8,lr\+\+
1.10244 -+ *[0-9a-f]*: 19 3c ld\.ub r12,r12\+\+
1.10245 -+ *[0-9a-f]*: 15 3b ld\.ub r11,r10\+\+
1.10246 -+
1.10247 -+[0-9a-f]* <ld_w2>:
1.10248 -+ *[0-9a-f]*: 1f 4f ld\.w pc,--pc
1.10249 -+ *[0-9a-f]*: 19 4c ld\.w r12,--r12
1.10250 -+ *[0-9a-f]*: 0b 45 ld\.w r5,--r5
1.10251 -+ *[0-9a-f]*: 09 44 ld\.w r4,--r4
1.10252 -+ *[0-9a-f]*: 1d 4e ld\.w lr,--lr
1.10253 -+ *[0-9a-f]*: 1d 4a ld\.w r10,--lr
1.10254 -+ *[0-9a-f]*: 13 4c ld\.w r12,--r9
1.10255 -+ *[0-9a-f]*: 0b 46 ld\.w r6,--r5
1.10256 -+
1.10257 -+[0-9a-f]* <ld_sh2>:
1.10258 -+ *[0-9a-f]*: 1f 5f ld\.sh pc,--pc
1.10259 -+ *[0-9a-f]*: 19 5c ld\.sh r12,--r12
1.10260 -+ *[0-9a-f]*: 0b 55 ld\.sh r5,--r5
1.10261 -+ *[0-9a-f]*: 09 54 ld\.sh r4,--r4
1.10262 -+ *[0-9a-f]*: 1d 5e ld\.sh lr,--lr
1.10263 -+ *[0-9a-f]*: 15 5f ld\.sh pc,--r10
1.10264 -+ *[0-9a-f]*: 07 56 ld\.sh r6,--r3
1.10265 -+ *[0-9a-f]*: 0d 54 ld\.sh r4,--r6
1.10266 -+
1.10267 -+[0-9a-f]* <ld_uh2>:
1.10268 -+ *[0-9a-f]*: 1f 6f ld\.uh pc,--pc
1.10269 -+ *[0-9a-f]*: 19 6c ld\.uh r12,--r12
1.10270 -+ *[0-9a-f]*: 0b 65 ld\.uh r5,--r5
1.10271 -+ *[0-9a-f]*: 09 64 ld\.uh r4,--r4
1.10272 -+ *[0-9a-f]*: 1d 6e ld\.uh lr,--lr
1.10273 -+ *[0-9a-f]*: 05 63 ld\.uh r3,--r2
1.10274 -+ *[0-9a-f]*: 01 61 ld\.uh r1,--r0
1.10275 -+ *[0-9a-f]*: 13 62 ld\.uh r2,--r9
1.10276 -+
1.10277 -+[0-9a-f]* <ld_ub2>:
1.10278 -+ *[0-9a-f]*: 1f 7f ld\.ub pc,--pc
1.10279 -+ *[0-9a-f]*: 19 7c ld\.ub r12,--r12
1.10280 -+ *[0-9a-f]*: 0b 75 ld\.ub r5,--r5
1.10281 -+ *[0-9a-f]*: 09 74 ld\.ub r4,--r4
1.10282 -+ *[0-9a-f]*: 1d 7e ld\.ub lr,--lr
1.10283 -+ *[0-9a-f]*: 03 71 ld\.ub r1,--r1
1.10284 -+ *[0-9a-f]*: 0d 70 ld\.ub r0,--r6
1.10285 -+ *[0-9a-f]*: 0f 72 ld\.ub r2,--r7
1.10286 -+
1.10287 -+[0-9a-f]* <ld_ub3>:
1.10288 -+ *[0-9a-f]*: 1f 8f ld\.ub pc,pc\[0x0\]
1.10289 -+ *[0-9a-f]*: 19 fc ld\.ub r12,r12\[0x7\]
1.10290 -+ *[0-9a-f]*: 0b c5 ld\.ub r5,r5\[0x4\]
1.10291 -+ *[0-9a-f]*: 09 b4 ld\.ub r4,r4\[0x3\]
1.10292 -+ *[0-9a-f]*: 1d 9e ld\.ub lr,lr\[0x1\]
1.10293 -+ *[0-9a-f]*: 13 e6 ld\.ub r6,r9\[0x6\]
1.10294 -+ *[0-9a-f]*: 1d c2 ld\.ub r2,lr\[0x4\]
1.10295 -+ *[0-9a-f]*: 11 81 ld\.ub r1,r8\[0x0\]
1.10296 -+
1.10297 -+[0-9a-f]* <sub3_sp>:
1.10298 -+ *[0-9a-f]*: 20 0d sub sp,0
1.10299 -+ *[0-9a-f]*: 2f fd sub sp,-4
1.10300 -+ *[0-9a-f]*: 28 0d sub sp,-512
1.10301 -+ *[0-9a-f]*: 27 fd sub sp,508
1.10302 -+ *[0-9a-f]*: 20 1d sub sp,4
1.10303 -+ *[0-9a-f]*: 20 bd sub sp,44
1.10304 -+ *[0-9a-f]*: 20 2d sub sp,8
1.10305 -+ *[0-9a-f]*: 25 7d sub sp,348
1.10306 -+
1.10307 -+[0-9a-f]* <sub3>:
1.10308 -+ *[0-9a-f]*: 20 0f sub pc,0
1.10309 -+ *[0-9a-f]*: 2f fc sub r12,-1
1.10310 -+ *[0-9a-f]*: 28 05 sub r5,-128
1.10311 -+ *[0-9a-f]*: 27 f4 sub r4,127
1.10312 -+ *[0-9a-f]*: 20 1e sub lr,1
1.10313 -+ *[0-9a-f]*: 2d 76 sub r6,-41
1.10314 -+ *[0-9a-f]*: 22 54 sub r4,37
1.10315 -+ *[0-9a-f]*: 23 8c sub r12,56
1.10316 -+
1.10317 -+[0-9a-f]* <mov1>:
1.10318 -+ *[0-9a-f]*: 30 0f mov pc,0
1.10319 -+ *[0-9a-f]*: 3f fc mov r12,-1
1.10320 -+ *[0-9a-f]*: 38 05 mov r5,-128
1.10321 -+ *[0-9a-f]*: 37 f4 mov r4,127
1.10322 -+ *[0-9a-f]*: 30 1e mov lr,1
1.10323 -+ *[0-9a-f]*: 30 ef mov pc,14
1.10324 -+ *[0-9a-f]*: 39 c6 mov r6,-100
1.10325 -+ *[0-9a-f]*: 38 6e mov lr,-122
1.10326 -+
1.10327 -+[0-9a-f]* <lddsp>:
1.10328 -+ *[0-9a-f]*: 40 0f lddsp pc,sp\[0x0\]
1.10329 -+ *[0-9a-f]*: 47 fc lddsp r12,sp\[0x1fc\]
1.10330 -+ *[0-9a-f]*: 44 05 lddsp r5,sp\[0x100\]
1.10331 -+ *[0-9a-f]*: 43 f4 lddsp r4,sp\[0xfc\]
1.10332 -+ *[0-9a-f]*: 40 1e lddsp lr,sp\[0x4\]
1.10333 -+ *[0-9a-f]*: 44 0e lddsp lr,sp\[0x100\]
1.10334 -+ *[0-9a-f]*: 40 5c lddsp r12,sp\[0x14\]
1.10335 -+ *[0-9a-f]*: 47 69 lddsp r9,sp\[0x1d8\]
1.10336 -+
1.10337 -+[0-9a-f]* <lddpc>:
1.10338 -+ *[0-9a-f]*: 48 0f lddpc pc,[0-9a-f]* <.*>
1.10339 -+ *[0-9a-f]*: 4f f0 lddpc r0,[0-9a-f]* <.*>
1.10340 -+ *[0-9a-f]*: 4c 08 lddpc r8,[0-9a-f]* <.*>
1.10341 -+ *[0-9a-f]*: 4b f7 lddpc r7,[0-9a-f]* <.*>
1.10342 -+ *[0-9a-f]*: 48 1e lddpc lr,[0-9a-f]* <.*>
1.10343 -+ *[0-9a-f]*: 4f 6d lddpc sp,[0-9a-f]* <.*>
1.10344 -+ *[0-9a-f]*: 49 e6 lddpc r6,[0-9a-f]* <.*>
1.10345 -+ *[0-9a-f]*: 48 7b lddpc r11,[0-9a-f]* <.*>
1.10346 -+
1.10347 -+[0-9a-f]* <stdsp>:
1.10348 -+ *[0-9a-f]*: 50 0f stdsp sp\[0x0\],pc
1.10349 -+ *[0-9a-f]*: 57 fc stdsp sp\[0x1fc\],r12
1.10350 -+ *[0-9a-f]*: 54 05 stdsp sp\[0x100\],r5
1.10351 -+ *[0-9a-f]*: 53 f4 stdsp sp\[0xfc\],r4
1.10352 -+ *[0-9a-f]*: 50 1e stdsp sp\[0x4\],lr
1.10353 -+ *[0-9a-f]*: 54 cf stdsp sp\[0x130\],pc
1.10354 -+ *[0-9a-f]*: 54 00 stdsp sp\[0x100\],r0
1.10355 -+ *[0-9a-f]*: 55 45 stdsp sp\[0x150\],r5
1.10356 -+
1.10357 -+[0-9a-f]* <cp2>:
1.10358 -+ *[0-9a-f]*: 58 0f cp.w pc,0
1.10359 -+ *[0-9a-f]*: 5b fc cp.w r12,-1
1.10360 -+ *[0-9a-f]*: 5a 05 cp.w r5,-32
1.10361 -+ *[0-9a-f]*: 59 f4 cp.w r4,31
1.10362 -+ *[0-9a-f]*: 58 1e cp.w lr,1
1.10363 -+ *[0-9a-f]*: 58 38 cp.w r8,3
1.10364 -+ *[0-9a-f]*: 59 0e cp.w lr,16
1.10365 -+ *[0-9a-f]*: 5a 67 cp.w r7,-26
1.10366 -+
1.10367 -+[0-9a-f]* <acr>:
1.10368 -+ *[0-9a-f]*: 5c 0f acr pc
1.10369 -+ *[0-9a-f]*: 5c 0c acr r12
1.10370 -+ *[0-9a-f]*: 5c 05 acr r5
1.10371 -+ *[0-9a-f]*: 5c 04 acr r4
1.10372 -+ *[0-9a-f]*: 5c 0e acr lr
1.10373 -+ *[0-9a-f]*: 5c 02 acr r2
1.10374 -+ *[0-9a-f]*: 5c 0c acr r12
1.10375 -+ *[0-9a-f]*: 5c 0f acr pc
1.10376 -+
1.10377 -+[0-9a-f]* <scr>:
1.10378 -+ *[0-9a-f]*: 5c 1f scr pc
1.10379 -+ *[0-9a-f]*: 5c 1c scr r12
1.10380 -+ *[0-9a-f]*: 5c 15 scr r5
1.10381 -+ *[0-9a-f]*: 5c 14 scr r4
1.10382 -+ *[0-9a-f]*: 5c 1e scr lr
1.10383 -+ *[0-9a-f]*: 5c 1f scr pc
1.10384 -+ *[0-9a-f]*: 5c 16 scr r6
1.10385 -+ *[0-9a-f]*: 5c 11 scr r1
1.10386 -+
1.10387 -+[0-9a-f]* <cpc0>:
1.10388 -+ *[0-9a-f]*: 5c 2f cpc pc
1.10389 -+ *[0-9a-f]*: 5c 2c cpc r12
1.10390 -+ *[0-9a-f]*: 5c 25 cpc r5
1.10391 -+ *[0-9a-f]*: 5c 24 cpc r4
1.10392 -+ *[0-9a-f]*: 5c 2e cpc lr
1.10393 -+ *[0-9a-f]*: 5c 2f cpc pc
1.10394 -+ *[0-9a-f]*: 5c 24 cpc r4
1.10395 -+ *[0-9a-f]*: 5c 29 cpc r9
1.10396 -+
1.10397 -+[0-9a-f]* <neg>:
1.10398 -+ *[0-9a-f]*: 5c 3f neg pc
1.10399 -+ *[0-9a-f]*: 5c 3c neg r12
1.10400 -+ *[0-9a-f]*: 5c 35 neg r5
1.10401 -+ *[0-9a-f]*: 5c 34 neg r4
1.10402 -+ *[0-9a-f]*: 5c 3e neg lr
1.10403 -+ *[0-9a-f]*: 5c 37 neg r7
1.10404 -+ *[0-9a-f]*: 5c 31 neg r1
1.10405 -+ *[0-9a-f]*: 5c 39 neg r9
1.10406 -+
1.10407 -+[0-9a-f]* <abs>:
1.10408 -+ *[0-9a-f]*: 5c 4f abs pc
1.10409 -+ *[0-9a-f]*: 5c 4c abs r12
1.10410 -+ *[0-9a-f]*: 5c 45 abs r5
1.10411 -+ *[0-9a-f]*: 5c 44 abs r4
1.10412 -+ *[0-9a-f]*: 5c 4e abs lr
1.10413 -+ *[0-9a-f]*: 5c 46 abs r6
1.10414 -+ *[0-9a-f]*: 5c 46 abs r6
1.10415 -+ *[0-9a-f]*: 5c 44 abs r4
1.10416 -+
1.10417 -+[0-9a-f]* <castu_b>:
1.10418 -+ *[0-9a-f]*: 5c 5f castu\.b pc
1.10419 -+ *[0-9a-f]*: 5c 5c castu\.b r12
1.10420 -+ *[0-9a-f]*: 5c 55 castu\.b r5
1.10421 -+ *[0-9a-f]*: 5c 54 castu\.b r4
1.10422 -+ *[0-9a-f]*: 5c 5e castu\.b lr
1.10423 -+ *[0-9a-f]*: 5c 57 castu\.b r7
1.10424 -+ *[0-9a-f]*: 5c 5d castu\.b sp
1.10425 -+ *[0-9a-f]*: 5c 59 castu\.b r9
1.10426 -+
1.10427 -+[0-9a-f]* <casts_b>:
1.10428 -+ *[0-9a-f]*: 5c 6f casts\.b pc
1.10429 -+ *[0-9a-f]*: 5c 6c casts\.b r12
1.10430 -+ *[0-9a-f]*: 5c 65 casts\.b r5
1.10431 -+ *[0-9a-f]*: 5c 64 casts\.b r4
1.10432 -+ *[0-9a-f]*: 5c 6e casts\.b lr
1.10433 -+ *[0-9a-f]*: 5c 6b casts\.b r11
1.10434 -+ *[0-9a-f]*: 5c 61 casts\.b r1
1.10435 -+ *[0-9a-f]*: 5c 6a casts\.b r10
1.10436 -+
1.10437 -+[0-9a-f]* <castu_h>:
1.10438 -+ *[0-9a-f]*: 5c 7f castu\.h pc
1.10439 -+ *[0-9a-f]*: 5c 7c castu\.h r12
1.10440 -+ *[0-9a-f]*: 5c 75 castu\.h r5
1.10441 -+ *[0-9a-f]*: 5c 74 castu\.h r4
1.10442 -+ *[0-9a-f]*: 5c 7e castu\.h lr
1.10443 -+ *[0-9a-f]*: 5c 7a castu\.h r10
1.10444 -+ *[0-9a-f]*: 5c 7b castu\.h r11
1.10445 -+ *[0-9a-f]*: 5c 71 castu\.h r1
1.10446 -+
1.10447 -+[0-9a-f]* <casts_h>:
1.10448 -+ *[0-9a-f]*: 5c 8f casts\.h pc
1.10449 -+ *[0-9a-f]*: 5c 8c casts\.h r12
1.10450 -+ *[0-9a-f]*: 5c 85 casts\.h r5
1.10451 -+ *[0-9a-f]*: 5c 84 casts\.h r4
1.10452 -+ *[0-9a-f]*: 5c 8e casts\.h lr
1.10453 -+ *[0-9a-f]*: 5c 80 casts\.h r0
1.10454 -+ *[0-9a-f]*: 5c 85 casts\.h r5
1.10455 -+ *[0-9a-f]*: 5c 89 casts\.h r9
1.10456 -+
1.10457 -+[0-9a-f]* <brev>:
1.10458 -+ *[0-9a-f]*: 5c 9f brev pc
1.10459 -+ *[0-9a-f]*: 5c 9c brev r12
1.10460 -+ *[0-9a-f]*: 5c 95 brev r5
1.10461 -+ *[0-9a-f]*: 5c 94 brev r4
1.10462 -+ *[0-9a-f]*: 5c 9e brev lr
1.10463 -+ *[0-9a-f]*: 5c 95 brev r5
1.10464 -+ *[0-9a-f]*: 5c 9a brev r10
1.10465 -+ *[0-9a-f]*: 5c 98 brev r8
1.10466 -+
1.10467 -+[0-9a-f]* <swap_h>:
1.10468 -+ *[0-9a-f]*: 5c af swap\.h pc
1.10469 -+ *[0-9a-f]*: 5c ac swap\.h r12
1.10470 -+ *[0-9a-f]*: 5c a5 swap\.h r5
1.10471 -+ *[0-9a-f]*: 5c a4 swap\.h r4
1.10472 -+ *[0-9a-f]*: 5c ae swap\.h lr
1.10473 -+ *[0-9a-f]*: 5c a7 swap\.h r7
1.10474 -+ *[0-9a-f]*: 5c a0 swap\.h r0
1.10475 -+ *[0-9a-f]*: 5c a8 swap\.h r8
1.10476 -+
1.10477 -+[0-9a-f]* <swap_b>:
1.10478 -+ *[0-9a-f]*: 5c bf swap\.b pc
1.10479 -+ *[0-9a-f]*: 5c bc swap\.b r12
1.10480 -+ *[0-9a-f]*: 5c b5 swap\.b r5
1.10481 -+ *[0-9a-f]*: 5c b4 swap\.b r4
1.10482 -+ *[0-9a-f]*: 5c be swap\.b lr
1.10483 -+ *[0-9a-f]*: 5c ba swap\.b r10
1.10484 -+ *[0-9a-f]*: 5c bc swap\.b r12
1.10485 -+ *[0-9a-f]*: 5c b1 swap\.b r1
1.10486 -+
1.10487 -+[0-9a-f]* <swap_bh>:
1.10488 -+ *[0-9a-f]*: 5c cf swap\.bh pc
1.10489 -+ *[0-9a-f]*: 5c cc swap\.bh r12
1.10490 -+ *[0-9a-f]*: 5c c5 swap\.bh r5
1.10491 -+ *[0-9a-f]*: 5c c4 swap\.bh r4
1.10492 -+ *[0-9a-f]*: 5c ce swap\.bh lr
1.10493 -+ *[0-9a-f]*: 5c c9 swap\.bh r9
1.10494 -+ *[0-9a-f]*: 5c c4 swap\.bh r4
1.10495 -+ *[0-9a-f]*: 5c c1 swap\.bh r1
1.10496 -+
1.10497 -+[0-9a-f]* <One_s_compliment>:
1.10498 -+ *[0-9a-f]*: 5c df com pc
1.10499 -+ *[0-9a-f]*: 5c dc com r12
1.10500 -+ *[0-9a-f]*: 5c d5 com r5
1.10501 -+ *[0-9a-f]*: 5c d4 com r4
1.10502 -+ *[0-9a-f]*: 5c de com lr
1.10503 -+ *[0-9a-f]*: 5c d2 com r2
1.10504 -+ *[0-9a-f]*: 5c d2 com r2
1.10505 -+ *[0-9a-f]*: 5c d7 com r7
1.10506 -+
1.10507 -+[0-9a-f]* <tnbz>:
1.10508 -+ *[0-9a-f]*: 5c ef tnbz pc
1.10509 -+ *[0-9a-f]*: 5c ec tnbz r12
1.10510 -+ *[0-9a-f]*: 5c e5 tnbz r5
1.10511 -+ *[0-9a-f]*: 5c e4 tnbz r4
1.10512 -+ *[0-9a-f]*: 5c ee tnbz lr
1.10513 -+ *[0-9a-f]*: 5c e8 tnbz r8
1.10514 -+ *[0-9a-f]*: 5c ec tnbz r12
1.10515 -+ *[0-9a-f]*: 5c ef tnbz pc
1.10516 -+
1.10517 -+[0-9a-f]* <rol>:
1.10518 -+ *[0-9a-f]*: 5c ff rol pc
1.10519 -+ *[0-9a-f]*: 5c fc rol r12
1.10520 -+ *[0-9a-f]*: 5c f5 rol r5
1.10521 -+ *[0-9a-f]*: 5c f4 rol r4
1.10522 -+ *[0-9a-f]*: 5c fe rol lr
1.10523 -+ *[0-9a-f]*: 5c fa rol r10
1.10524 -+ *[0-9a-f]*: 5c f9 rol r9
1.10525 -+ *[0-9a-f]*: 5c f5 rol r5
1.10526 -+
1.10527 -+[0-9a-f]* <ror>:
1.10528 -+ *[0-9a-f]*: 5d 0f ror pc
1.10529 -+ *[0-9a-f]*: 5d 0c ror r12
1.10530 -+ *[0-9a-f]*: 5d 05 ror r5
1.10531 -+ *[0-9a-f]*: 5d 04 ror r4
1.10532 -+ *[0-9a-f]*: 5d 0e ror lr
1.10533 -+ *[0-9a-f]*: 5d 08 ror r8
1.10534 -+ *[0-9a-f]*: 5d 04 ror r4
1.10535 -+ *[0-9a-f]*: 5d 07 ror r7
1.10536 -+
1.10537 -+[0-9a-f]* <icall>:
1.10538 -+ *[0-9a-f]*: 5d 1f icall pc
1.10539 -+ *[0-9a-f]*: 5d 1c icall r12
1.10540 -+ *[0-9a-f]*: 5d 15 icall r5
1.10541 -+ *[0-9a-f]*: 5d 14 icall r4
1.10542 -+ *[0-9a-f]*: 5d 1e icall lr
1.10543 -+ *[0-9a-f]*: 5d 13 icall r3
1.10544 -+ *[0-9a-f]*: 5d 11 icall r1
1.10545 -+ *[0-9a-f]*: 5d 13 icall r3
1.10546 -+
1.10547 -+[0-9a-f]* <mustr>:
1.10548 -+ *[0-9a-f]*: 5d 2f mustr pc
1.10549 -+ *[0-9a-f]*: 5d 2c mustr r12
1.10550 -+ *[0-9a-f]*: 5d 25 mustr r5
1.10551 -+ *[0-9a-f]*: 5d 24 mustr r4
1.10552 -+ *[0-9a-f]*: 5d 2e mustr lr
1.10553 -+ *[0-9a-f]*: 5d 21 mustr r1
1.10554 -+ *[0-9a-f]*: 5d 24 mustr r4
1.10555 -+ *[0-9a-f]*: 5d 2c mustr r12
1.10556 -+
1.10557 -+[0-9a-f]* <musfr>:
1.10558 -+ *[0-9a-f]*: 5d 3f musfr pc
1.10559 -+ *[0-9a-f]*: 5d 3c musfr r12
1.10560 -+ *[0-9a-f]*: 5d 35 musfr r5
1.10561 -+ *[0-9a-f]*: 5d 34 musfr r4
1.10562 -+ *[0-9a-f]*: 5d 3e musfr lr
1.10563 -+ *[0-9a-f]*: 5d 3b musfr r11
1.10564 -+ *[0-9a-f]*: 5d 3c musfr r12
1.10565 -+ *[0-9a-f]*: 5d 32 musfr r2
1.10566 -+
1.10567 -+[0-9a-f]* <ret_cond>:
1.10568 -+ *[0-9a-f]*: 5e 0f reteq 1
1.10569 -+ *[0-9a-f]*: 5e fc retal r12
1.10570 -+ *[0-9a-f]*: 5e 85 retls r5
1.10571 -+ *[0-9a-f]*: 5e 74 retpl r4
1.10572 -+ *[0-9a-f]*: 5e 1e retne -1
1.10573 -+ *[0-9a-f]*: 5e 90 retgt r0
1.10574 -+ *[0-9a-f]*: 5e 9c retgt r12
1.10575 -+ *[0-9a-f]*: 5e 4a retge r10
1.10576 -+
1.10577 -+[0-9a-f]* <sr_cond>:
1.10578 -+ *[0-9a-f]*: 5f 0f sreq pc
1.10579 -+ *[0-9a-f]*: 5f fc sral r12
1.10580 -+ *[0-9a-f]*: 5f 85 srls r5
1.10581 -+ *[0-9a-f]*: 5f 74 srpl r4
1.10582 -+ *[0-9a-f]*: 5f 1e srne lr
1.10583 -+ *[0-9a-f]*: 5f 50 srlt r0
1.10584 -+ *[0-9a-f]*: 5f fd sral sp
1.10585 -+ *[0-9a-f]*: 5f 49 srge r9
1.10586 -+
1.10587 -+[0-9a-f]* <ld_w3>:
1.10588 -+ *[0-9a-f]*: 7e 0f ld\.w pc,pc\[0x0\]
1.10589 -+ *[0-9a-f]*: 79 fc ld\.w r12,r12\[0x7c\]
1.10590 -+ *[0-9a-f]*: 6b 05 ld\.w r5,r5\[0x40\]
1.10591 -+ *[0-9a-f]*: 68 f4 ld\.w r4,r4\[0x3c\]
1.10592 -+ *[0-9a-f]*: 7c 1e ld\.w lr,lr\[0x4\]
1.10593 -+ *[0-9a-f]*: 64 dd ld\.w sp,r2\[0x34\]
1.10594 -+ *[0-9a-f]*: 62 29 ld\.w r9,r1\[0x8\]
1.10595 -+ *[0-9a-f]*: 7a f5 ld\.w r5,sp\[0x3c\]
1.10596 -+
1.10597 -+[0-9a-f]* <ld_sh3>:
1.10598 -+ *[0-9a-f]*: 9e 0f ld\.sh pc,pc\[0x0\]
1.10599 -+ *[0-9a-f]*: 98 7c ld\.sh r12,r12\[0xe\]
1.10600 -+ *[0-9a-f]*: 8a 45 ld\.sh r5,r5\[0x8\]
1.10601 -+ *[0-9a-f]*: 88 34 ld\.sh r4,r4\[0x6\]
1.10602 -+ *[0-9a-f]*: 9c 1e ld\.sh lr,lr\[0x2\]
1.10603 -+ *[0-9a-f]*: 84 44 ld\.sh r4,r2\[0x8\]
1.10604 -+ *[0-9a-f]*: 9c 5d ld\.sh sp,lr\[0xa\]
1.10605 -+ *[0-9a-f]*: 96 12 ld\.sh r2,r11\[0x2\]
1.10606 -+
1.10607 -+[0-9a-f]* <ld_uh3>:
1.10608 -+ *[0-9a-f]*: 9e 8f ld\.uh pc,pc\[0x0\]
1.10609 -+ *[0-9a-f]*: 98 fc ld\.uh r12,r12\[0xe\]
1.10610 -+ *[0-9a-f]*: 8a c5 ld\.uh r5,r5\[0x8\]
1.10611 -+ *[0-9a-f]*: 88 b4 ld\.uh r4,r4\[0x6\]
1.10612 -+ *[0-9a-f]*: 9c 9e ld\.uh lr,lr\[0x2\]
1.10613 -+ *[0-9a-f]*: 80 da ld\.uh r10,r0\[0xa\]
1.10614 -+ *[0-9a-f]*: 96 c8 ld\.uh r8,r11\[0x8\]
1.10615 -+ *[0-9a-f]*: 84 ea ld\.uh r10,r2\[0xc\]
1.10616 -+
1.10617 -+[0-9a-f]* <st_w3>:
1.10618 -+ *[0-9a-f]*: 9f 0f st\.w pc\[0x0\],pc
1.10619 -+ *[0-9a-f]*: 99 fc st\.w r12\[0x3c\],r12
1.10620 -+ *[0-9a-f]*: 8b 85 st\.w r5\[0x20\],r5
1.10621 -+ *[0-9a-f]*: 89 74 st\.w r4\[0x1c\],r4
1.10622 -+ *[0-9a-f]*: 9d 1e st\.w lr\[0x4\],lr
1.10623 -+ *[0-9a-f]*: 8f bb st\.w r7\[0x2c\],r11
1.10624 -+ *[0-9a-f]*: 85 66 st\.w r2\[0x18\],r6
1.10625 -+ *[0-9a-f]*: 89 39 st\.w r4\[0xc\],r9
1.10626 -+
1.10627 -+[0-9a-f]* <st_h3>:
1.10628 -+ *[0-9a-f]*: be 0f st\.h pc\[0x0\],pc
1.10629 -+ *[0-9a-f]*: b8 7c st\.h r12\[0xe\],r12
1.10630 -+ *[0-9a-f]*: aa 45 st\.h r5\[0x8\],r5
1.10631 -+ *[0-9a-f]*: a8 34 st\.h r4\[0x6\],r4
1.10632 -+ *[0-9a-f]*: bc 1e st\.h lr\[0x2\],lr
1.10633 -+ *[0-9a-f]*: bc 5c st\.h lr\[0xa\],r12
1.10634 -+ *[0-9a-f]*: ac 20 st\.h r6\[0x4\],r0
1.10635 -+ *[0-9a-f]*: aa 6d st\.h r5\[0xc\],sp
1.10636 -+
1.10637 -+[0-9a-f]* <st_b3>:
1.10638 -+ *[0-9a-f]*: be 8f st\.b pc\[0x0\],pc
1.10639 -+ *[0-9a-f]*: b8 fc st\.b r12\[0x7\],r12
1.10640 -+ *[0-9a-f]*: aa c5 st\.b r5\[0x4\],r5
1.10641 -+ *[0-9a-f]*: a8 b4 st\.b r4\[0x3\],r4
1.10642 -+ *[0-9a-f]*: bc 9e st\.b lr\[0x1\],lr
1.10643 -+ *[0-9a-f]*: b8 e9 st\.b r12\[0x6\],r9
1.10644 -+ *[0-9a-f]*: a4 be st\.b r2\[0x3\],lr
1.10645 -+ *[0-9a-f]*: a2 bb st\.b r1\[0x3\],r11
1.10646 -+
1.10647 -+[0-9a-f]* <ldd>:
1.10648 -+ *[0-9a-f]*: bf 00 ld\.d r0,pc
1.10649 -+ *[0-9a-f]*: b9 0e ld\.d lr,r12
1.10650 -+ *[0-9a-f]*: ab 08 ld\.d r8,r5
1.10651 -+ *[0-9a-f]*: a9 06 ld\.d r6,r4
1.10652 -+ *[0-9a-f]*: bd 02 ld\.d r2,lr
1.10653 -+ *[0-9a-f]*: af 0e ld\.d lr,r7
1.10654 -+ *[0-9a-f]*: a9 04 ld\.d r4,r4
1.10655 -+ *[0-9a-f]*: bf 0e ld\.d lr,pc
1.10656 -+
1.10657 -+[0-9a-f]* <ldd_postinc>:
1.10658 -+ *[0-9a-f]*: bf 01 ld\.d r0,pc\+\+
1.10659 -+ *[0-9a-f]*: b9 0f ld\.d lr,r12\+\+
1.10660 -+ *[0-9a-f]*: ab 09 ld\.d r8,r5\+\+
1.10661 -+ *[0-9a-f]*: a9 07 ld\.d r6,r4\+\+
1.10662 -+ *[0-9a-f]*: bd 03 ld\.d r2,lr\+\+
1.10663 -+ *[0-9a-f]*: ab 0f ld\.d lr,r5\+\+
1.10664 -+ *[0-9a-f]*: b7 0d ld\.d r12,r11\+\+
1.10665 -+ *[0-9a-f]*: b9 03 ld\.d r2,r12\+\+
1.10666 -+
1.10667 -+[0-9a-f]* <ldd_predec>:
1.10668 -+ *[0-9a-f]*: bf 10 ld\.d r0,--pc
1.10669 -+ *[0-9a-f]*: b9 1e ld\.d lr,--r12
1.10670 -+ *[0-9a-f]*: ab 18 ld\.d r8,--r5
1.10671 -+ *[0-9a-f]*: a9 16 ld\.d r6,--r4
1.10672 -+ *[0-9a-f]*: bd 12 ld\.d r2,--lr
1.10673 -+ *[0-9a-f]*: a1 18 ld\.d r8,--r0
1.10674 -+ *[0-9a-f]*: bf 1a ld\.d r10,--pc
1.10675 -+ *[0-9a-f]*: a9 12 ld\.d r2,--r4
1.10676 -+
1.10677 -+[0-9a-f]* <std>:
1.10678 -+ *[0-9a-f]*: bf 11 st\.d pc,r0
1.10679 -+ *[0-9a-f]*: b9 1f st\.d r12,lr
1.10680 -+ *[0-9a-f]*: ab 19 st\.d r5,r8
1.10681 -+ *[0-9a-f]*: a9 17 st\.d r4,r6
1.10682 -+ *[0-9a-f]*: bd 13 st\.d lr,r2
1.10683 -+ *[0-9a-f]*: a1 1d st\.d r0,r12
1.10684 -+ *[0-9a-f]*: bb 15 st\.d sp,r4
1.10685 -+ *[0-9a-f]*: b9 1d st\.d r12,r12
1.10686 -+
1.10687 -+[0-9a-f]* <std_postinc>:
1.10688 -+ *[0-9a-f]*: bf 20 st\.d pc\+\+,r0
1.10689 -+ *[0-9a-f]*: b9 2e st\.d r12\+\+,lr
1.10690 -+ *[0-9a-f]*: ab 28 st\.d r5\+\+,r8
1.10691 -+ *[0-9a-f]*: a9 26 st\.d r4\+\+,r6
1.10692 -+ *[0-9a-f]*: bd 22 st\.d lr\+\+,r2
1.10693 -+ *[0-9a-f]*: bb 26 st\.d sp\+\+,r6
1.10694 -+ *[0-9a-f]*: b5 26 st\.d r10\+\+,r6
1.10695 -+ *[0-9a-f]*: af 22 st\.d r7\+\+,r2
1.10696 -+
1.10697 -+[0-9a-f]* <std_predec>:
1.10698 -+ *[0-9a-f]*: bf 21 st\.d --pc,r0
1.10699 -+ *[0-9a-f]*: b9 2f st\.d --r12,lr
1.10700 -+ *[0-9a-f]*: ab 29 st\.d --r5,r8
1.10701 -+ *[0-9a-f]*: a9 27 st\.d --r4,r6
1.10702 -+ *[0-9a-f]*: bd 23 st\.d --lr,r2
1.10703 -+ *[0-9a-f]*: a7 27 st\.d --r3,r6
1.10704 -+ *[0-9a-f]*: bd 23 st\.d --lr,r2
1.10705 -+ *[0-9a-f]*: a1 25 st\.d --r0,r4
1.10706 -+
1.10707 -+[0-9a-f]* <mul>:
1.10708 -+ *[0-9a-f]*: bf 3f mul pc,pc
1.10709 -+ *[0-9a-f]*: b9 3c mul r12,r12
1.10710 -+ *[0-9a-f]*: ab 35 mul r5,r5
1.10711 -+ *[0-9a-f]*: a9 34 mul r4,r4
1.10712 -+ *[0-9a-f]*: bd 3e mul lr,lr
1.10713 -+ *[0-9a-f]*: bd 3a mul r10,lr
1.10714 -+ *[0-9a-f]*: b1 30 mul r0,r8
1.10715 -+ *[0-9a-f]*: ab 38 mul r8,r5
1.10716 -+
1.10717 -+[0-9a-f]* <asr_imm5>:
1.10718 -+ *[0-9a-f]*: a1 4f asr pc,0x0
1.10719 -+ *[0-9a-f]*: bf 5c asr r12,0x1f
1.10720 -+ *[0-9a-f]*: b1 45 asr r5,0x10
1.10721 -+ *[0-9a-f]*: af 54 asr r4,0xf
1.10722 -+ *[0-9a-f]*: a1 5e asr lr,0x1
1.10723 -+ *[0-9a-f]*: b7 56 asr r6,0x17
1.10724 -+ *[0-9a-f]*: b3 46 asr r6,0x12
1.10725 -+ *[0-9a-f]*: a9 45 asr r5,0x8
1.10726 -+
1.10727 -+[0-9a-f]* <lsl_imm5>:
1.10728 -+ *[0-9a-f]*: a1 6f lsl pc,0x0
1.10729 -+ *[0-9a-f]*: bf 7c lsl r12,0x1f
1.10730 -+ *[0-9a-f]*: b1 65 lsl r5,0x10
1.10731 -+ *[0-9a-f]*: af 74 lsl r4,0xf
1.10732 -+ *[0-9a-f]*: a1 7e lsl lr,0x1
1.10733 -+ *[0-9a-f]*: ad 7c lsl r12,0xd
1.10734 -+ *[0-9a-f]*: b1 66 lsl r6,0x10
1.10735 -+ *[0-9a-f]*: b9 71 lsl r1,0x19
1.10736 -+
1.10737 -+[0-9a-f]* <lsr_imm5>:
1.10738 -+ *[0-9a-f]*: a1 8f lsr pc,0x0
1.10739 -+ *[0-9a-f]*: bf 9c lsr r12,0x1f
1.10740 -+ *[0-9a-f]*: b1 85 lsr r5,0x10
1.10741 -+ *[0-9a-f]*: af 94 lsr r4,0xf
1.10742 -+ *[0-9a-f]*: a1 9e lsr lr,0x1
1.10743 -+ *[0-9a-f]*: a1 90 lsr r0,0x1
1.10744 -+ *[0-9a-f]*: ab 88 lsr r8,0xa
1.10745 -+ *[0-9a-f]*: bb 87 lsr r7,0x1a
1.10746 -+
1.10747 -+[0-9a-f]* <sbr>:
1.10748 -+ *[0-9a-f]*: a1 af sbr pc,0x0
1.10749 -+ *[0-9a-f]*: bf bc sbr r12,0x1f
1.10750 -+ *[0-9a-f]*: b1 a5 sbr r5,0x10
1.10751 -+ *[0-9a-f]*: af b4 sbr r4,0xf
1.10752 -+ *[0-9a-f]*: a1 be sbr lr,0x1
1.10753 -+ *[0-9a-f]*: bf b8 sbr r8,0x1f
1.10754 -+ *[0-9a-f]*: b7 a6 sbr r6,0x16
1.10755 -+ *[0-9a-f]*: b7 b1 sbr r1,0x17
1.10756 -+
1.10757 -+[0-9a-f]* <cbr>:
1.10758 -+ *[0-9a-f]*: a1 cf cbr pc,0x0
1.10759 -+ *[0-9a-f]*: bf dc cbr r12,0x1f
1.10760 -+ *[0-9a-f]*: b1 c5 cbr r5,0x10
1.10761 -+ *[0-9a-f]*: af d4 cbr r4,0xf
1.10762 -+ *[0-9a-f]*: a1 de cbr lr,0x1
1.10763 -+ *[0-9a-f]*: ab cc cbr r12,0xa
1.10764 -+ *[0-9a-f]*: b7 c7 cbr r7,0x16
1.10765 -+ *[0-9a-f]*: a9 d8 cbr r8,0x9
1.10766 -+
1.10767 -+[0-9a-f]* <brc1>:
1.10768 -+ *[0-9a-f]*: c0 00 breq [0-9a-f]* <.*>
1.10769 -+ *[0-9a-f]*: cf f7 brpl [0-9a-f]* <.*>
1.10770 -+ *[0-9a-f]*: c8 04 brge [0-9a-f]* <.*>
1.10771 -+ *[0-9a-f]*: c7 f3 brcs [0-9a-f]* <.*>
1.10772 -+ *[0-9a-f]*: c0 11 brne [0-9a-f]* <.*>
1.10773 -+ *[0-9a-f]*: c7 33 brcs [0-9a-f]* <.*>
1.10774 -+ *[0-9a-f]*: cf 70 breq [0-9a-f]* <.*>
1.10775 -+ *[0-9a-f]*: c0 60 breq [0-9a-f]* <.*>
1.10776 -+
1.10777 -+[0-9a-f]* <rjmp>:
1.10778 -+ *[0-9a-f]*: c0 08 rjmp [0-9a-f]* <.*>
1.10779 -+ *[0-9a-f]*: cf fb rjmp [0-9a-f]* <.*>
1.10780 -+ *[0-9a-f]*: c0 0a rjmp [0-9a-f]* <.*>
1.10781 -+ *[0-9a-f]*: cf f9 rjmp [0-9a-f]* <.*>
1.10782 -+ *[0-9a-f]*: c0 18 rjmp [0-9a-f]* <.*>
1.10783 -+ *[0-9a-f]*: c1 fa rjmp [0-9a-f]* <.*>
1.10784 -+ *[0-9a-f]*: c0 78 rjmp [0-9a-f]* <.*>
1.10785 -+ *[0-9a-f]*: cf ea rjmp [0-9a-f]* <.*>
1.10786 -+
1.10787 -+[0-9a-f]* <rcall1>:
1.10788 -+ *[0-9a-f]*: c0 0c rcall [0-9a-f]* <.*>
1.10789 -+ *[0-9a-f]*: cf ff rcall [0-9a-f]* <.*>
1.10790 -+ *[0-9a-f]*: c0 0e rcall [0-9a-f]* <.*>
1.10791 -+ *[0-9a-f]*: cf fd rcall [0-9a-f]* <.*>
1.10792 -+ *[0-9a-f]*: c0 1c rcall [0-9a-f]* <.*>
1.10793 -+ *[0-9a-f]*: c6 cc rcall [0-9a-f]* <.*>
1.10794 -+ *[0-9a-f]*: cf 7e rcall [0-9a-f]* <.*>
1.10795 -+ *[0-9a-f]*: c1 ae rcall [0-9a-f]* <.*>
1.10796 -+
1.10797 -+[0-9a-f]* <acall>:
1.10798 -+ *[0-9a-f]*: d0 00 acall 0x0
1.10799 -+ *[0-9a-f]*: df f0 acall 0x3fc
1.10800 -+ *[0-9a-f]*: d8 00 acall 0x200
1.10801 -+ *[0-9a-f]*: d7 f0 acall 0x1fc
1.10802 -+ *[0-9a-f]*: d0 10 acall 0x4
1.10803 -+ *[0-9a-f]*: d5 90 acall 0x164
1.10804 -+ *[0-9a-f]*: d4 c0 acall 0x130
1.10805 -+ *[0-9a-f]*: d2 b0 acall 0xac
1.10806 -+
1.10807 -+[0-9a-f]* <scall>:
1.10808 -+ *[0-9a-f]*: d7 33 scall
1.10809 -+ *[0-9a-f]*: d7 33 scall
1.10810 -+ *[0-9a-f]*: d7 33 scall
1.10811 -+ *[0-9a-f]*: d7 33 scall
1.10812 -+ *[0-9a-f]*: d7 33 scall
1.10813 -+ *[0-9a-f]*: d7 33 scall
1.10814 -+ *[0-9a-f]*: d7 33 scall
1.10815 -+ *[0-9a-f]*: d7 33 scall
1.10816 -+
1.10817 -+[0-9a-f]* <popm>:
1.10818 -+ *[0-9a-f]*: d8 02 popm pc
1.10819 -+ *[0-9a-f]*: dd fa popm r0-r11,pc,r12=-1
1.10820 -+ *[0-9a-f]*: d4 02 popm lr
1.10821 -+ *[0-9a-f]*: db fa popm r0-r11,pc,r12=1
1.10822 -+ *[0-9a-f]*: d0 12 popm r0-r3
1.10823 -+ *[0-9a-f]*: d8 e2 popm r4-r10,pc
1.10824 -+ *[0-9a-f]*: d9 1a popm r0-r3,r11,pc,r12=0
1.10825 -+ *[0-9a-f]*: d7 b2 popm r0-r7,r10-r12,lr
1.10826 -+
1.10827 -+[0-9a-f]* <pushm>:
1.10828 -+ *[0-9a-f]*: d8 01 pushm pc
1.10829 -+ *[0-9a-f]*: df f1 pushm r0-r12,lr-pc
1.10830 -+ *[0-9a-f]*: d8 01 pushm pc
1.10831 -+ *[0-9a-f]*: d7 f1 pushm r0-r12,lr
1.10832 -+ *[0-9a-f]*: d0 11 pushm r0-r3
1.10833 -+ *[0-9a-f]*: dc c1 pushm r8-r10,lr-pc
1.10834 -+ *[0-9a-f]*: d0 91 pushm r0-r3,r10
1.10835 -+ *[0-9a-f]*: d2 41 pushm r8-r9,r12
1.10836 -+
1.10837 -+[0-9a-f]* <popm_n>:
1.10838 -+.*
1.10839 -+.*
1.10840 -+.*
1.10841 -+.*
1.10842 -+.*
1.10843 -+.*
1.10844 -+.*
1.10845 -+.*
1.10846 -+
1.10847 -+[0-9a-f]* <pushm_n>:
1.10848 -+.*
1.10849 -+.*
1.10850 -+.*
1.10851 -+.*
1.10852 -+.*
1.10853 -+.*
1.10854 -+.*
1.10855 -+.*
1.10856 -+
1.10857 -+[0-9a-f]* <csrfcz>:
1.10858 -+ *[0-9a-f]*: d0 03 csrfcz 0x0
1.10859 -+ *[0-9a-f]*: d1 f3 csrfcz 0x1f
1.10860 -+ *[0-9a-f]*: d1 03 csrfcz 0x10
1.10861 -+ *[0-9a-f]*: d0 f3 csrfcz 0xf
1.10862 -+ *[0-9a-f]*: d0 13 csrfcz 0x1
1.10863 -+ *[0-9a-f]*: d0 53 csrfcz 0x5
1.10864 -+ *[0-9a-f]*: d0 d3 csrfcz 0xd
1.10865 -+ *[0-9a-f]*: d1 73 csrfcz 0x17
1.10866 -+
1.10867 -+[0-9a-f]* <ssrf>:
1.10868 -+ *[0-9a-f]*: d2 03 ssrf 0x0
1.10869 -+ *[0-9a-f]*: d3 f3 ssrf 0x1f
1.10870 -+ *[0-9a-f]*: d3 03 ssrf 0x10
1.10871 -+ *[0-9a-f]*: d2 f3 ssrf 0xf
1.10872 -+ *[0-9a-f]*: d2 13 ssrf 0x1
1.10873 -+ *[0-9a-f]*: d3 d3 ssrf 0x1d
1.10874 -+ *[0-9a-f]*: d2 d3 ssrf 0xd
1.10875 -+ *[0-9a-f]*: d2 d3 ssrf 0xd
1.10876 -+
1.10877 -+[0-9a-f]* <csrf>:
1.10878 -+ *[0-9a-f]*: d4 03 csrf 0x0
1.10879 -+ *[0-9a-f]*: d5 f3 csrf 0x1f
1.10880 -+ *[0-9a-f]*: d5 03 csrf 0x10
1.10881 -+ *[0-9a-f]*: d4 f3 csrf 0xf
1.10882 -+ *[0-9a-f]*: d4 13 csrf 0x1
1.10883 -+ *[0-9a-f]*: d4 a3 csrf 0xa
1.10884 -+ *[0-9a-f]*: d4 f3 csrf 0xf
1.10885 -+ *[0-9a-f]*: d4 b3 csrf 0xb
1.10886 -+
1.10887 -+[0-9a-f]* <rete>:
1.10888 -+ *[0-9a-f]*: d6 03 rete
1.10889 -+
1.10890 -+[0-9a-f]* <rets>:
1.10891 -+ *[0-9a-f]*: d6 13 rets
1.10892 -+
1.10893 -+[0-9a-f]* <retd>:
1.10894 -+ *[0-9a-f]*: d6 23 retd
1.10895 -+
1.10896 -+[0-9a-f]* <retj>:
1.10897 -+ *[0-9a-f]*: d6 33 retj
1.10898 -+
1.10899 -+[0-9a-f]* <tlbr>:
1.10900 -+ *[0-9a-f]*: d6 43 tlbr
1.10901 -+
1.10902 -+[0-9a-f]* <tlbs>:
1.10903 -+ *[0-9a-f]*: d6 53 tlbs
1.10904 -+
1.10905 -+[0-9a-f]* <tlbw>:
1.10906 -+ *[0-9a-f]*: d6 63 tlbw
1.10907 -+
1.10908 -+[0-9a-f]* <breakpoint>:
1.10909 -+ *[0-9a-f]*: d6 73 breakpoint
1.10910 -+
1.10911 -+[0-9a-f]* <incjosp>:
1.10912 -+ *[0-9a-f]*: d6 83 incjosp 1
1.10913 -+ *[0-9a-f]*: d6 93 incjosp 2
1.10914 -+ *[0-9a-f]*: d6 a3 incjosp 3
1.10915 -+ *[0-9a-f]*: d6 b3 incjosp 4
1.10916 -+ *[0-9a-f]*: d6 c3 incjosp -4
1.10917 -+ *[0-9a-f]*: d6 d3 incjosp -3
1.10918 -+ *[0-9a-f]*: d6 e3 incjosp -2
1.10919 -+ *[0-9a-f]*: d6 f3 incjosp -1
1.10920 -+
1.10921 -+[0-9a-f]* <nop>:
1.10922 -+ *[0-9a-f]*: d7 03 nop
1.10923 -+
1.10924 -+[0-9a-f]* <popjc>:
1.10925 -+ *[0-9a-f]*: d7 13 popjc
1.10926 -+
1.10927 -+[0-9a-f]* <pushjc>:
1.10928 -+ *[0-9a-f]*: d7 23 pushjc
1.10929 -+
1.10930 -+[0-9a-f]* <add2>:
1.10931 -+ *[0-9a-f]*: fe 0f 00 0f add pc,pc,pc
1.10932 -+ *[0-9a-f]*: f8 0c 00 3c add r12,r12,r12<<0x3
1.10933 -+ *[0-9a-f]*: ea 05 00 25 add r5,r5,r5<<0x2
1.10934 -+ *[0-9a-f]*: e8 04 00 14 add r4,r4,r4<<0x1
1.10935 -+ *[0-9a-f]*: fc 0e 00 1e add lr,lr,lr<<0x1
1.10936 -+ *[0-9a-f]*: f8 00 00 10 add r0,r12,r0<<0x1
1.10937 -+ *[0-9a-f]*: f8 04 00 09 add r9,r12,r4
1.10938 -+ *[0-9a-f]*: f8 07 00 2c add r12,r12,r7<<0x2
1.10939 -+
1.10940 -+[0-9a-f]* <sub2>:
1.10941 -+ *[0-9a-f]*: fe 0f 01 0f sub pc,pc,pc
1.10942 -+ *[0-9a-f]*: f8 0c 01 3c sub r12,r12,r12<<0x3
1.10943 -+ *[0-9a-f]*: ea 05 01 25 sub r5,r5,r5<<0x2
1.10944 -+ *[0-9a-f]*: e8 04 01 14 sub r4,r4,r4<<0x1
1.10945 -+ *[0-9a-f]*: fc 0e 01 1e sub lr,lr,lr<<0x1
1.10946 -+ *[0-9a-f]*: e6 04 01 0d sub sp,r3,r4
1.10947 -+ *[0-9a-f]*: ee 03 01 03 sub r3,r7,r3
1.10948 -+ *[0-9a-f]*: f4 0d 01 1d sub sp,r10,sp<<0x1
1.10949 -+
1.10950 -+[0-9a-f]* <divu>:
1.10951 -+ *[0-9a-f]*: fe 0f 0d 0f divu pc,pc,pc
1.10952 -+ *[0-9a-f]*: f8 0c 0d 0c divu r12,r12,r12
1.10953 -+ *[0-9a-f]*: ea 05 0d 05 divu r5,r5,r5
1.10954 -+ *[0-9a-f]*: e8 04 0d 04 divu r4,r4,r4
1.10955 -+ *[0-9a-f]*: fc 0e 0d 0e divu lr,lr,lr
1.10956 -+ *[0-9a-f]*: e8 0f 0d 0d divu sp,r4,pc
1.10957 -+ *[0-9a-f]*: ea 0d 0d 05 divu r5,r5,sp
1.10958 -+ *[0-9a-f]*: fa 00 0d 0a divu r10,sp,r0
1.10959 -+
1.10960 -+[0-9a-f]* <addhh_w>:
1.10961 -+ *[0-9a-f]*: fe 0f 0e 0f addhh\.w pc,pc:b,pc:b
1.10962 -+ *[0-9a-f]*: f8 0c 0e 3c addhh\.w r12,r12:t,r12:t
1.10963 -+ *[0-9a-f]*: ea 05 0e 35 addhh\.w r5,r5:t,r5:t
1.10964 -+ *[0-9a-f]*: e8 04 0e 04 addhh\.w r4,r4:b,r4:b
1.10965 -+ *[0-9a-f]*: fc 0e 0e 3e addhh\.w lr,lr:t,lr:t
1.10966 -+ *[0-9a-f]*: e0 03 0e 00 addhh\.w r0,r0:b,r3:b
1.10967 -+ *[0-9a-f]*: f8 07 0e 2e addhh\.w lr,r12:t,r7:b
1.10968 -+ *[0-9a-f]*: f4 02 0e 23 addhh\.w r3,r10:t,r2:b
1.10969 -+
1.10970 -+[0-9a-f]* <subhh_w>:
1.10971 -+ *[0-9a-f]*: fe 0f 0f 0f subhh\.w pc,pc:b,pc:b
1.10972 -+ *[0-9a-f]*: f8 0c 0f 3c subhh\.w r12,r12:t,r12:t
1.10973 -+ *[0-9a-f]*: ea 05 0f 35 subhh\.w r5,r5:t,r5:t
1.10974 -+ *[0-9a-f]*: e8 04 0f 04 subhh\.w r4,r4:b,r4:b
1.10975 -+ *[0-9a-f]*: fc 0e 0f 3e subhh\.w lr,lr:t,lr:t
1.10976 -+ *[0-9a-f]*: e2 07 0f 2a subhh\.w r10,r1:t,r7:b
1.10977 -+ *[0-9a-f]*: f4 0e 0f 3f subhh\.w pc,r10:t,lr:t
1.10978 -+ *[0-9a-f]*: e0 0c 0f 23 subhh\.w r3,r0:t,r12:b
1.10979 -+
1.10980 -+[0-9a-f]* <adc>:
1.10981 -+ *[0-9a-f]*: fe 0f 00 4f adc pc,pc,pc
1.10982 -+ *[0-9a-f]*: f8 0c 00 4c adc r12,r12,r12
1.10983 -+ *[0-9a-f]*: ea 05 00 45 adc r5,r5,r5
1.10984 -+ *[0-9a-f]*: e8 04 00 44 adc r4,r4,r4
1.10985 -+ *[0-9a-f]*: fc 0e 00 4e adc lr,lr,lr
1.10986 -+ *[0-9a-f]*: e0 07 00 44 adc r4,r0,r7
1.10987 -+ *[0-9a-f]*: e8 03 00 4d adc sp,r4,r3
1.10988 -+ *[0-9a-f]*: f8 00 00 42 adc r2,r12,r0
1.10989 -+
1.10990 -+[0-9a-f]* <sbc>:
1.10991 -+ *[0-9a-f]*: fe 0f 01 4f sbc pc,pc,pc
1.10992 -+ *[0-9a-f]*: f8 0c 01 4c sbc r12,r12,r12
1.10993 -+ *[0-9a-f]*: ea 05 01 45 sbc r5,r5,r5
1.10994 -+ *[0-9a-f]*: e8 04 01 44 sbc r4,r4,r4
1.10995 -+ *[0-9a-f]*: fc 0e 01 4e sbc lr,lr,lr
1.10996 -+ *[0-9a-f]*: ee 09 01 46 sbc r6,r7,r9
1.10997 -+ *[0-9a-f]*: f0 05 01 40 sbc r0,r8,r5
1.10998 -+ *[0-9a-f]*: e0 04 01 41 sbc r1,r0,r4
1.10999 -+
1.11000 -+[0-9a-f]* <mul_2>:
1.11001 -+ *[0-9a-f]*: fe 0f 02 4f mul pc,pc,pc
1.11002 -+ *[0-9a-f]*: f8 0c 02 4c mul r12,r12,r12
1.11003 -+ *[0-9a-f]*: ea 05 02 45 mul r5,r5,r5
1.11004 -+ *[0-9a-f]*: e8 04 02 44 mul r4,r4,r4
1.11005 -+ *[0-9a-f]*: fc 0e 02 4e mul lr,lr,lr
1.11006 -+ *[0-9a-f]*: e0 00 02 4f mul pc,r0,r0
1.11007 -+ *[0-9a-f]*: fe 0e 02 48 mul r8,pc,lr
1.11008 -+ *[0-9a-f]*: f8 0f 02 44 mul r4,r12,pc
1.11009 -+
1.11010 -+[0-9a-f]* <mac>:
1.11011 -+ *[0-9a-f]*: fe 0f 03 4f mac pc,pc,pc
1.11012 -+ *[0-9a-f]*: f8 0c 03 4c mac r12,r12,r12
1.11013 -+ *[0-9a-f]*: ea 05 03 45 mac r5,r5,r5
1.11014 -+ *[0-9a-f]*: e8 04 03 44 mac r4,r4,r4
1.11015 -+ *[0-9a-f]*: fc 0e 03 4e mac lr,lr,lr
1.11016 -+ *[0-9a-f]*: e8 00 03 4a mac r10,r4,r0
1.11017 -+ *[0-9a-f]*: fc 00 03 47 mac r7,lr,r0
1.11018 -+ *[0-9a-f]*: f2 0c 03 42 mac r2,r9,r12
1.11019 -+
1.11020 -+[0-9a-f]* <mulsd>:
1.11021 -+ *[0-9a-f]*: fe 0f 04 4f muls\.d pc,pc,pc
1.11022 -+ *[0-9a-f]*: f8 0c 04 4c muls\.d r12,r12,r12
1.11023 -+ *[0-9a-f]*: ea 05 04 45 muls\.d r5,r5,r5
1.11024 -+ *[0-9a-f]*: e8 04 04 44 muls\.d r4,r4,r4
1.11025 -+ *[0-9a-f]*: fc 0e 04 4e muls\.d lr,lr,lr
1.11026 -+ *[0-9a-f]*: f0 0e 04 42 muls\.d r2,r8,lr
1.11027 -+ *[0-9a-f]*: e0 0b 04 44 muls\.d r4,r0,r11
1.11028 -+ *[0-9a-f]*: fc 06 04 45 muls\.d r5,lr,r6
1.11029 -+
1.11030 -+[0-9a-f]* <macsd>:
1.11031 -+ *[0-9a-f]*: fe 0f 05 40 macs\.d r0,pc,pc
1.11032 -+ *[0-9a-f]*: f8 0c 05 4e macs\.d lr,r12,r12
1.11033 -+ *[0-9a-f]*: ea 05 05 48 macs\.d r8,r5,r5
1.11034 -+ *[0-9a-f]*: e8 04 05 46 macs\.d r6,r4,r4
1.11035 -+ *[0-9a-f]*: fc 0e 05 42 macs\.d r2,lr,lr
1.11036 -+ *[0-9a-f]*: e2 09 05 48 macs\.d r8,r1,r9
1.11037 -+ *[0-9a-f]*: f0 08 05 4e macs\.d lr,r8,r8
1.11038 -+ *[0-9a-f]*: e6 0c 05 44 macs\.d r4,r3,r12
1.11039 -+
1.11040 -+[0-9a-f]* <mulud>:
1.11041 -+ *[0-9a-f]*: fe 0f 06 40 mulu\.d r0,pc,pc
1.11042 -+ *[0-9a-f]*: f8 0c 06 4e mulu\.d lr,r12,r12
1.11043 -+ *[0-9a-f]*: ea 05 06 48 mulu\.d r8,r5,r5
1.11044 -+ *[0-9a-f]*: e8 04 06 46 mulu\.d r6,r4,r4
1.11045 -+ *[0-9a-f]*: fc 0e 06 42 mulu\.d r2,lr,lr
1.11046 -+ *[0-9a-f]*: ea 00 06 46 mulu\.d r6,r5,r0
1.11047 -+ *[0-9a-f]*: ec 01 06 44 mulu\.d r4,r6,r1
1.11048 -+ *[0-9a-f]*: f0 02 06 48 mulu\.d r8,r8,r2
1.11049 -+
1.11050 -+[0-9a-f]* <macud>:
1.11051 -+ *[0-9a-f]*: fe 0f 07 40 macu\.d r0,pc,pc
1.11052 -+ *[0-9a-f]*: f8 0c 07 4e macu\.d lr,r12,r12
1.11053 -+ *[0-9a-f]*: ea 05 07 48 macu\.d r8,r5,r5
1.11054 -+ *[0-9a-f]*: e8 04 07 46 macu\.d r6,r4,r4
1.11055 -+ *[0-9a-f]*: fc 0e 07 42 macu\.d r2,lr,lr
1.11056 -+ *[0-9a-f]*: fa 0b 07 46 macu\.d r6,sp,r11
1.11057 -+ *[0-9a-f]*: e8 08 07 42 macu\.d r2,r4,r8
1.11058 -+ *[0-9a-f]*: f4 09 07 46 macu\.d r6,r10,r9
1.11059 -+
1.11060 -+[0-9a-f]* <asr_1>:
1.11061 -+ *[0-9a-f]*: fe 0f 08 4f asr pc,pc,pc
1.11062 -+ *[0-9a-f]*: f8 0c 08 4c asr r12,r12,r12
1.11063 -+ *[0-9a-f]*: ea 05 08 45 asr r5,r5,r5
1.11064 -+ *[0-9a-f]*: e8 04 08 44 asr r4,r4,r4
1.11065 -+ *[0-9a-f]*: fc 0e 08 4e asr lr,lr,lr
1.11066 -+ *[0-9a-f]*: ec 0f 08 4f asr pc,r6,pc
1.11067 -+ *[0-9a-f]*: ec 0c 08 40 asr r0,r6,r12
1.11068 -+ *[0-9a-f]*: fa 00 08 44 asr r4,sp,r0
1.11069 -+
1.11070 -+[0-9a-f]* <lsl_1>:
1.11071 -+ *[0-9a-f]*: fe 0f 09 4f lsl pc,pc,pc
1.11072 -+ *[0-9a-f]*: f8 0c 09 4c lsl r12,r12,r12
1.11073 -+ *[0-9a-f]*: ea 05 09 45 lsl r5,r5,r5
1.11074 -+ *[0-9a-f]*: e8 04 09 44 lsl r4,r4,r4
1.11075 -+ *[0-9a-f]*: fc 0e 09 4e lsl lr,lr,lr
1.11076 -+ *[0-9a-f]*: ea 0e 09 4e lsl lr,r5,lr
1.11077 -+ *[0-9a-f]*: fe 03 09 45 lsl r5,pc,r3
1.11078 -+ *[0-9a-f]*: fe 09 09 41 lsl r1,pc,r9
1.11079 -+
1.11080 -+[0-9a-f]* <lsr_1>:
1.11081 -+ *[0-9a-f]*: fe 0f 0a 4f lsr pc,pc,pc
1.11082 -+ *[0-9a-f]*: f8 0c 0a 4c lsr r12,r12,r12
1.11083 -+ *[0-9a-f]*: ea 05 0a 45 lsr r5,r5,r5
1.11084 -+ *[0-9a-f]*: e8 04 0a 44 lsr r4,r4,r4
1.11085 -+ *[0-9a-f]*: fc 0e 0a 4e lsr lr,lr,lr
1.11086 -+ *[0-9a-f]*: e8 01 0a 42 lsr r2,r4,r1
1.11087 -+ *[0-9a-f]*: e2 06 0a 45 lsr r5,r1,r6
1.11088 -+ *[0-9a-f]*: ec 07 0a 4d lsr sp,r6,r7
1.11089 -+
1.11090 -+[0-9a-f]* <xchg>:
1.11091 -+ *[0-9a-f]*: fe 0f 0b 4f xchg pc,pc,pc
1.11092 -+ *[0-9a-f]*: f8 0c 0b 4c xchg r12,r12,r12
1.11093 -+ *[0-9a-f]*: ea 05 0b 45 xchg r5,r5,r5
1.11094 -+ *[0-9a-f]*: e8 04 0b 44 xchg r4,r4,r4
1.11095 -+ *[0-9a-f]*: fc 0e 0b 4e xchg lr,lr,lr
1.11096 -+ *[0-9a-f]*: e8 0d 0b 4e xchg lr,r4,sp
1.11097 -+ *[0-9a-f]*: ea 0c 0b 41 xchg r1,r5,r12
1.11098 -+ *[0-9a-f]*: f8 00 0b 4e xchg lr,r12,r0
1.11099 -+
1.11100 -+[0-9a-f]* <max>:
1.11101 -+ *[0-9a-f]*: fe 0f 0c 4f max pc,pc,pc
1.11102 -+ *[0-9a-f]*: f8 0c 0c 4c max r12,r12,r12
1.11103 -+ *[0-9a-f]*: ea 05 0c 45 max r5,r5,r5
1.11104 -+ *[0-9a-f]*: e8 04 0c 44 max r4,r4,r4
1.11105 -+ *[0-9a-f]*: fc 0e 0c 4e max lr,lr,lr
1.11106 -+ *[0-9a-f]*: e4 0d 0c 4e max lr,r2,sp
1.11107 -+ *[0-9a-f]*: f4 09 0c 44 max r4,r10,r9
1.11108 -+ *[0-9a-f]*: f2 0e 0c 4e max lr,r9,lr
1.11109 -+
1.11110 -+[0-9a-f]* <min>:
1.11111 -+ *[0-9a-f]*: fe 0f 0d 4f min pc,pc,pc
1.11112 -+ *[0-9a-f]*: f8 0c 0d 4c min r12,r12,r12
1.11113 -+ *[0-9a-f]*: ea 05 0d 45 min r5,r5,r5
1.11114 -+ *[0-9a-f]*: e8 04 0d 44 min r4,r4,r4
1.11115 -+ *[0-9a-f]*: fc 0e 0d 4e min lr,lr,lr
1.11116 -+ *[0-9a-f]*: ee 08 0d 49 min r9,r7,r8
1.11117 -+ *[0-9a-f]*: ea 05 0d 4d min sp,r5,r5
1.11118 -+ *[0-9a-f]*: e2 04 0d 44 min r4,r1,r4
1.11119 -+
1.11120 -+[0-9a-f]* <addabs>:
1.11121 -+ *[0-9a-f]*: fe 0f 0e 4f addabs pc,pc,pc
1.11122 -+ *[0-9a-f]*: f8 0c 0e 4c addabs r12,r12,r12
1.11123 -+ *[0-9a-f]*: ea 05 0e 45 addabs r5,r5,r5
1.11124 -+ *[0-9a-f]*: e8 04 0e 44 addabs r4,r4,r4
1.11125 -+ *[0-9a-f]*: fc 0e 0e 4e addabs lr,lr,lr
1.11126 -+ *[0-9a-f]*: f4 00 0e 47 addabs r7,r10,r0
1.11127 -+ *[0-9a-f]*: f2 07 0e 49 addabs r9,r9,r7
1.11128 -+ *[0-9a-f]*: f0 0c 0e 42 addabs r2,r8,r12
1.11129 -+
1.11130 -+[0-9a-f]* <mulnhh_w>:
1.11131 -+ *[0-9a-f]*: fe 0f 01 8f mulnhh\.w pc,pc:b,pc:b
1.11132 -+ *[0-9a-f]*: f8 0c 01 bc mulnhh\.w r12,r12:t,r12:t
1.11133 -+ *[0-9a-f]*: ea 05 01 b5 mulnhh\.w r5,r5:t,r5:t
1.11134 -+ *[0-9a-f]*: e8 04 01 84 mulnhh\.w r4,r4:b,r4:b
1.11135 -+ *[0-9a-f]*: fc 0e 01 be mulnhh\.w lr,lr:t,lr:t
1.11136 -+ *[0-9a-f]*: fa 09 01 ab mulnhh\.w r11,sp:t,r9:b
1.11137 -+ *[0-9a-f]*: e8 0e 01 9d mulnhh\.w sp,r4:b,lr:t
1.11138 -+ *[0-9a-f]*: e4 0b 01 ac mulnhh\.w r12,r2:t,r11:b
1.11139 -+
1.11140 -+[0-9a-f]* <mulnwh_d>:
1.11141 -+ *[0-9a-f]*: fe 0f 02 80 mulnwh\.d r0,pc,pc:b
1.11142 -+ *[0-9a-f]*: f8 0c 02 9e mulnwh\.d lr,r12,r12:t
1.11143 -+ *[0-9a-f]*: ea 05 02 98 mulnwh\.d r8,r5,r5:t
1.11144 -+ *[0-9a-f]*: e8 04 02 86 mulnwh\.d r6,r4,r4:b
1.11145 -+ *[0-9a-f]*: fc 0e 02 92 mulnwh\.d r2,lr,lr:t
1.11146 -+ *[0-9a-f]*: e6 02 02 9e mulnwh\.d lr,r3,r2:t
1.11147 -+ *[0-9a-f]*: ea 09 02 84 mulnwh\.d r4,r5,r9:b
1.11148 -+ *[0-9a-f]*: e8 04 02 9c mulnwh\.d r12,r4,r4:t
1.11149 -+
1.11150 -+[0-9a-f]* <machh_w>:
1.11151 -+ *[0-9a-f]*: fe 0f 04 8f machh\.w pc,pc:b,pc:b
1.11152 -+ *[0-9a-f]*: f8 0c 04 bc machh\.w r12,r12:t,r12:t
1.11153 -+ *[0-9a-f]*: ea 05 04 b5 machh\.w r5,r5:t,r5:t
1.11154 -+ *[0-9a-f]*: e8 04 04 84 machh\.w r4,r4:b,r4:b
1.11155 -+ *[0-9a-f]*: fc 0e 04 be machh\.w lr,lr:t,lr:t
1.11156 -+ *[0-9a-f]*: ea 01 04 9e machh\.w lr,r5:b,r1:t
1.11157 -+ *[0-9a-f]*: ec 07 04 89 machh\.w r9,r6:b,r7:b
1.11158 -+ *[0-9a-f]*: fc 0c 04 a5 machh\.w r5,lr:t,r12:b
1.11159 -+
1.11160 -+[0-9a-f]* <machh_d>:
1.11161 -+ *[0-9a-f]*: fe 0f 05 80 machh\.d r0,pc:b,pc:b
1.11162 -+ *[0-9a-f]*: f8 0c 05 be machh\.d lr,r12:t,r12:t
1.11163 -+ *[0-9a-f]*: ea 05 05 b8 machh\.d r8,r5:t,r5:t
1.11164 -+ *[0-9a-f]*: e8 04 05 86 machh\.d r6,r4:b,r4:b
1.11165 -+ *[0-9a-f]*: fc 0e 05 b2 machh\.d r2,lr:t,lr:t
1.11166 -+ *[0-9a-f]*: e0 08 05 8a machh\.d r10,r0:b,r8:b
1.11167 -+ *[0-9a-f]*: e8 05 05 9e machh\.d lr,r4:b,r5:t
1.11168 -+ *[0-9a-f]*: e0 04 05 98 machh\.d r8,r0:b,r4:t
1.11169 -+
1.11170 -+[0-9a-f]* <macsathh_w>:
1.11171 -+ *[0-9a-f]*: fe 0f 06 8f macsathh\.w pc,pc:b,pc:b
1.11172 -+ *[0-9a-f]*: f8 0c 06 bc macsathh\.w r12,r12:t,r12:t
1.11173 -+ *[0-9a-f]*: ea 05 06 b5 macsathh\.w r5,r5:t,r5:t
1.11174 -+ *[0-9a-f]*: e8 04 06 84 macsathh\.w r4,r4:b,r4:b
1.11175 -+ *[0-9a-f]*: fc 0e 06 be macsathh\.w lr,lr:t,lr:t
1.11176 -+ *[0-9a-f]*: ee 0f 06 b7 macsathh\.w r7,r7:t,pc:t
1.11177 -+ *[0-9a-f]*: e4 04 06 a4 macsathh\.w r4,r2:t,r4:b
1.11178 -+ *[0-9a-f]*: f0 03 06 b4 macsathh\.w r4,r8:t,r3:t
1.11179 -+
1.11180 -+[0-9a-f]* <mulhh_w>:
1.11181 -+ *[0-9a-f]*: fe 0f 07 8f mulhh\.w pc,pc:b,pc:b
1.11182 -+ *[0-9a-f]*: f8 0c 07 bc mulhh\.w r12,r12:t,r12:t
1.11183 -+ *[0-9a-f]*: ea 05 07 b5 mulhh\.w r5,r5:t,r5:t
1.11184 -+ *[0-9a-f]*: e8 04 07 84 mulhh\.w r4,r4:b,r4:b
1.11185 -+ *[0-9a-f]*: fc 0e 07 be mulhh\.w lr,lr:t,lr:t
1.11186 -+ *[0-9a-f]*: e8 09 07 a7 mulhh\.w r7,r4:t,r9:b
1.11187 -+ *[0-9a-f]*: e6 07 07 bf mulhh\.w pc,r3:t,r7:t
1.11188 -+ *[0-9a-f]*: e8 09 07 9f mulhh\.w pc,r4:b,r9:t
1.11189 -+
1.11190 -+[0-9a-f]* <mulsathh_h>:
1.11191 -+ *[0-9a-f]*: fe 0f 08 8f mulsathh\.h pc,pc:b,pc:b
1.11192 -+ *[0-9a-f]*: f8 0c 08 bc mulsathh\.h r12,r12:t,r12:t
1.11193 -+ *[0-9a-f]*: ea 05 08 b5 mulsathh\.h r5,r5:t,r5:t
1.11194 -+ *[0-9a-f]*: e8 04 08 84 mulsathh\.h r4,r4:b,r4:b
1.11195 -+ *[0-9a-f]*: fc 0e 08 be mulsathh\.h lr,lr:t,lr:t
1.11196 -+ *[0-9a-f]*: e2 0d 08 83 mulsathh\.h r3,r1:b,sp:b
1.11197 -+ *[0-9a-f]*: fc 0b 08 ab mulsathh\.h r11,lr:t,r11:b
1.11198 -+ *[0-9a-f]*: f0 0b 08 98 mulsathh\.h r8,r8:b,r11:t
1.11199 -+
1.11200 -+[0-9a-f]* <mulsathh_w>:
1.11201 -+ *[0-9a-f]*: fe 0f 09 8f mulsathh\.w pc,pc:b,pc:b
1.11202 -+ *[0-9a-f]*: f8 0c 09 bc mulsathh\.w r12,r12:t,r12:t
1.11203 -+ *[0-9a-f]*: ea 05 09 b5 mulsathh\.w r5,r5:t,r5:t
1.11204 -+ *[0-9a-f]*: e8 04 09 84 mulsathh\.w r4,r4:b,r4:b
1.11205 -+ *[0-9a-f]*: fc 0e 09 be mulsathh\.w lr,lr:t,lr:t
1.11206 -+ *[0-9a-f]*: f6 06 09 ae mulsathh\.w lr,r11:t,r6:b
1.11207 -+ *[0-9a-f]*: ec 07 09 96 mulsathh\.w r6,r6:b,r7:t
1.11208 -+ *[0-9a-f]*: e4 03 09 8a mulsathh\.w r10,r2:b,r3:b
1.11209 -+
1.11210 -+[0-9a-f]* <mulsatrndhh_h>:
1.11211 -+ *[0-9a-f]*: fe 0f 0a 8f mulsatrndhh\.h pc,pc:b,pc:b
1.11212 -+ *[0-9a-f]*: f8 0c 0a bc mulsatrndhh\.h r12,r12:t,r12:t
1.11213 -+ *[0-9a-f]*: ea 05 0a b5 mulsatrndhh\.h r5,r5:t,r5:t
1.11214 -+ *[0-9a-f]*: e8 04 0a 84 mulsatrndhh\.h r4,r4:b,r4:b
1.11215 -+ *[0-9a-f]*: fc 0e 0a be mulsatrndhh\.h lr,lr:t,lr:t
1.11216 -+ *[0-9a-f]*: ec 09 0a 8b mulsatrndhh\.h r11,r6:b,r9:b
1.11217 -+ *[0-9a-f]*: e6 08 0a 9b mulsatrndhh\.h r11,r3:b,r8:t
1.11218 -+ *[0-9a-f]*: fa 07 0a b5 mulsatrndhh\.h r5,sp:t,r7:t
1.11219 -+
1.11220 -+[0-9a-f]* <mulsatrndwh_w>:
1.11221 -+ *[0-9a-f]*: fe 0f 0b 8f mulsatrndwh\.w pc,pc,pc:b
1.11222 -+ *[0-9a-f]*: f8 0c 0b 9c mulsatrndwh\.w r12,r12,r12:t
1.11223 -+ *[0-9a-f]*: ea 05 0b 95 mulsatrndwh\.w r5,r5,r5:t
1.11224 -+ *[0-9a-f]*: e8 04 0b 84 mulsatrndwh\.w r4,r4,r4:b
1.11225 -+ *[0-9a-f]*: fc 0e 0b 9e mulsatrndwh\.w lr,lr,lr:t
1.11226 -+ *[0-9a-f]*: f8 00 0b 85 mulsatrndwh\.w r5,r12,r0:b
1.11227 -+ *[0-9a-f]*: f4 0f 0b 87 mulsatrndwh\.w r7,r10,pc:b
1.11228 -+ *[0-9a-f]*: f0 05 0b 9a mulsatrndwh\.w r10,r8,r5:t
1.11229 -+
1.11230 -+[0-9a-f]* <macwh_d>:
1.11231 -+ *[0-9a-f]*: fe 0f 0c 80 macwh\.d r0,pc,pc:b
1.11232 -+ *[0-9a-f]*: f8 0c 0c 9e macwh\.d lr,r12,r12:t
1.11233 -+ *[0-9a-f]*: ea 05 0c 98 macwh\.d r8,r5,r5:t
1.11234 -+ *[0-9a-f]*: e8 04 0c 86 macwh\.d r6,r4,r4:b
1.11235 -+ *[0-9a-f]*: fc 0e 0c 92 macwh\.d r2,lr,lr:t
1.11236 -+ *[0-9a-f]*: f4 0c 0c 94 macwh\.d r4,r10,r12:t
1.11237 -+ *[0-9a-f]*: ee 0d 0c 84 macwh\.d r4,r7,sp:b
1.11238 -+ *[0-9a-f]*: f2 0b 0c 8e macwh\.d lr,r9,r11:b
1.11239 -+
1.11240 -+[0-9a-f]* <mulwh_d>:
1.11241 -+ *[0-9a-f]*: fe 0f 0d 80 mulwh\.d r0,pc,pc:b
1.11242 -+ *[0-9a-f]*: f8 0c 0d 9e mulwh\.d lr,r12,r12:t
1.11243 -+ *[0-9a-f]*: ea 05 0d 98 mulwh\.d r8,r5,r5:t
1.11244 -+ *[0-9a-f]*: e8 04 0d 86 mulwh\.d r6,r4,r4:b
1.11245 -+ *[0-9a-f]*: fc 0e 0d 92 mulwh\.d r2,lr,lr:t
1.11246 -+ *[0-9a-f]*: ea 01 0d 8c mulwh\.d r12,r5,r1:b
1.11247 -+ *[0-9a-f]*: e2 03 0d 90 mulwh\.d r0,r1,r3:t
1.11248 -+ *[0-9a-f]*: f2 02 0d 80 mulwh\.d r0,r9,r2:b
1.11249 -+
1.11250 -+[0-9a-f]* <mulsatwh_w>:
1.11251 -+ *[0-9a-f]*: fe 0f 0e 8f mulsatwh\.w pc,pc,pc:b
1.11252 -+ *[0-9a-f]*: f8 0c 0e 9c mulsatwh\.w r12,r12,r12:t
1.11253 -+ *[0-9a-f]*: ea 05 0e 95 mulsatwh\.w r5,r5,r5:t
1.11254 -+ *[0-9a-f]*: e8 04 0e 84 mulsatwh\.w r4,r4,r4:b
1.11255 -+ *[0-9a-f]*: fc 0e 0e 9e mulsatwh\.w lr,lr,lr:t
1.11256 -+ *[0-9a-f]*: fe 0a 0e 9b mulsatwh\.w r11,pc,r10:t
1.11257 -+ *[0-9a-f]*: f8 09 0e 9d mulsatwh\.w sp,r12,r9:t
1.11258 -+ *[0-9a-f]*: e6 02 0e 90 mulsatwh\.w r0,r3,r2:t
1.11259 -+
1.11260 -+[0-9a-f]* <ldw7>:
1.11261 -+ *[0-9a-f]*: fe 0f 0f 8f ld\.w pc,pc\[pc:b<<2\]
1.11262 -+ *[0-9a-f]*: f8 0c 0f bc ld\.w r12,r12\[r12:t<<2\]
1.11263 -+ *[0-9a-f]*: ea 05 0f a5 ld\.w r5,r5\[r5:u<<2\]
1.11264 -+ *[0-9a-f]*: e8 04 0f 94 ld\.w r4,r4\[r4:l<<2\]
1.11265 -+ *[0-9a-f]*: fc 0e 0f 9e ld\.w lr,lr\[lr:l<<2\]
1.11266 -+ *[0-9a-f]*: f4 06 0f 99 ld\.w r9,r10\[r6:l<<2\]
1.11267 -+ *[0-9a-f]*: f4 0a 0f 82 ld\.w r2,r10\[r10:b<<2\]
1.11268 -+ *[0-9a-f]*: ea 0f 0f 8b ld\.w r11,r5\[pc:b<<2\]
1.11269 -+
1.11270 -+[0-9a-f]* <satadd_w>:
1.11271 -+ *[0-9a-f]*: fe 0f 00 cf satadd\.w pc,pc,pc
1.11272 -+ *[0-9a-f]*: f8 0c 00 cc satadd\.w r12,r12,r12
1.11273 -+ *[0-9a-f]*: ea 05 00 c5 satadd\.w r5,r5,r5
1.11274 -+ *[0-9a-f]*: e8 04 00 c4 satadd\.w r4,r4,r4
1.11275 -+ *[0-9a-f]*: fc 0e 00 ce satadd\.w lr,lr,lr
1.11276 -+ *[0-9a-f]*: f0 0b 00 c4 satadd\.w r4,r8,r11
1.11277 -+ *[0-9a-f]*: f8 06 00 c3 satadd\.w r3,r12,r6
1.11278 -+ *[0-9a-f]*: fc 09 00 c3 satadd\.w r3,lr,r9
1.11279 -+
1.11280 -+[0-9a-f]* <satsub_w1>:
1.11281 -+ *[0-9a-f]*: fe 0f 01 cf satsub\.w pc,pc,pc
1.11282 -+ *[0-9a-f]*: f8 0c 01 cc satsub\.w r12,r12,r12
1.11283 -+ *[0-9a-f]*: ea 05 01 c5 satsub\.w r5,r5,r5
1.11284 -+ *[0-9a-f]*: e8 04 01 c4 satsub\.w r4,r4,r4
1.11285 -+ *[0-9a-f]*: fc 0e 01 ce satsub\.w lr,lr,lr
1.11286 -+ *[0-9a-f]*: fa 00 01 c8 satsub\.w r8,sp,r0
1.11287 -+ *[0-9a-f]*: f0 04 01 c9 satsub\.w r9,r8,r4
1.11288 -+ *[0-9a-f]*: fc 02 01 cf satsub\.w pc,lr,r2
1.11289 -+
1.11290 -+[0-9a-f]* <satadd_h>:
1.11291 -+ *[0-9a-f]*: fe 0f 02 cf satadd\.h pc,pc,pc
1.11292 -+ *[0-9a-f]*: f8 0c 02 cc satadd\.h r12,r12,r12
1.11293 -+ *[0-9a-f]*: ea 05 02 c5 satadd\.h r5,r5,r5
1.11294 -+ *[0-9a-f]*: e8 04 02 c4 satadd\.h r4,r4,r4
1.11295 -+ *[0-9a-f]*: fc 0e 02 ce satadd\.h lr,lr,lr
1.11296 -+ *[0-9a-f]*: e6 09 02 c7 satadd\.h r7,r3,r9
1.11297 -+ *[0-9a-f]*: e0 02 02 c1 satadd\.h r1,r0,r2
1.11298 -+ *[0-9a-f]*: e8 0e 02 c1 satadd\.h r1,r4,lr
1.11299 -+
1.11300 -+[0-9a-f]* <satsub_h>:
1.11301 -+ *[0-9a-f]*: fe 0f 03 cf satsub\.h pc,pc,pc
1.11302 -+ *[0-9a-f]*: f8 0c 03 cc satsub\.h r12,r12,r12
1.11303 -+ *[0-9a-f]*: ea 05 03 c5 satsub\.h r5,r5,r5
1.11304 -+ *[0-9a-f]*: e8 04 03 c4 satsub\.h r4,r4,r4
1.11305 -+ *[0-9a-f]*: fc 0e 03 ce satsub\.h lr,lr,lr
1.11306 -+ *[0-9a-f]*: fc 03 03 ce satsub\.h lr,lr,r3
1.11307 -+ *[0-9a-f]*: ec 05 03 cb satsub\.h r11,r6,r5
1.11308 -+ *[0-9a-f]*: fa 00 03 c3 satsub\.h r3,sp,r0
1.11309 -+
1.11310 -+[0-9a-f]* <mul3>:
1.11311 -+ *[0-9a-f]*: fe 0f 10 00 mul pc,pc,0
1.11312 -+ *[0-9a-f]*: f8 0c 10 ff mul r12,r12,-1
1.11313 -+ *[0-9a-f]*: ea 05 10 80 mul r5,r5,-128
1.11314 -+ *[0-9a-f]*: e8 04 10 7f mul r4,r4,127
1.11315 -+ *[0-9a-f]*: fc 0e 10 01 mul lr,lr,1
1.11316 -+ *[0-9a-f]*: e4 0c 10 f9 mul r12,r2,-7
1.11317 -+ *[0-9a-f]*: fe 01 10 5f mul r1,pc,95
1.11318 -+ *[0-9a-f]*: ec 04 10 13 mul r4,r6,19
1.11319 -+
1.11320 -+[0-9a-f]* <rsub2>:
1.11321 -+ *[0-9a-f]*: fe 0f 11 00 rsub pc,pc,0
1.11322 -+ *[0-9a-f]*: f8 0c 11 ff rsub r12,r12,-1
1.11323 -+ *[0-9a-f]*: ea 05 11 80 rsub r5,r5,-128
1.11324 -+ *[0-9a-f]*: e8 04 11 7f rsub r4,r4,127
1.11325 -+ *[0-9a-f]*: fc 0e 11 01 rsub lr,lr,1
1.11326 -+ *[0-9a-f]*: fc 09 11 60 rsub r9,lr,96
1.11327 -+ *[0-9a-f]*: e2 0b 11 38 rsub r11,r1,56
1.11328 -+ *[0-9a-f]*: ee 00 11 a9 rsub r0,r7,-87
1.11329 -+
1.11330 -+[0-9a-f]* <clz>:
1.11331 -+ *[0-9a-f]*: fe 0f 12 00 clz pc,pc
1.11332 -+ *[0-9a-f]*: f8 0c 12 00 clz r12,r12
1.11333 -+ *[0-9a-f]*: ea 05 12 00 clz r5,r5
1.11334 -+ *[0-9a-f]*: e8 04 12 00 clz r4,r4
1.11335 -+ *[0-9a-f]*: fc 0e 12 00 clz lr,lr
1.11336 -+ *[0-9a-f]*: e6 02 12 00 clz r2,r3
1.11337 -+ *[0-9a-f]*: f6 05 12 00 clz r5,r11
1.11338 -+ *[0-9a-f]*: e6 0f 12 00 clz pc,r3
1.11339 -+
1.11340 -+[0-9a-f]* <cpc1>:
1.11341 -+ *[0-9a-f]*: fe 0f 13 00 cpc pc,pc
1.11342 -+ *[0-9a-f]*: f8 0c 13 00 cpc r12,r12
1.11343 -+ *[0-9a-f]*: ea 05 13 00 cpc r5,r5
1.11344 -+ *[0-9a-f]*: e8 04 13 00 cpc r4,r4
1.11345 -+ *[0-9a-f]*: fc 0e 13 00 cpc lr,lr
1.11346 -+ *[0-9a-f]*: e8 0f 13 00 cpc pc,r4
1.11347 -+ *[0-9a-f]*: f2 05 13 00 cpc r5,r9
1.11348 -+ *[0-9a-f]*: ee 06 13 00 cpc r6,r7
1.11349 -+
1.11350 -+[0-9a-f]* <asr3>:
1.11351 -+ *[0-9a-f]*: fe 0f 14 00 asr pc,pc,0x0
1.11352 -+ *[0-9a-f]*: f8 0c 14 1f asr r12,r12,0x1f
1.11353 -+ *[0-9a-f]*: ea 05 14 10 asr r5,r5,0x10
1.11354 -+ *[0-9a-f]*: e8 04 14 0f asr r4,r4,0xf
1.11355 -+ *[0-9a-f]*: fc 0e 14 01 asr lr,lr,0x1
1.11356 -+ *[0-9a-f]*: f6 04 14 13 asr r4,r11,0x13
1.11357 -+ *[0-9a-f]*: fe 0d 14 1a asr sp,pc,0x1a
1.11358 -+ *[0-9a-f]*: fa 0b 14 08 asr r11,sp,0x8
1.11359 -+
1.11360 -+[0-9a-f]* <lsl3>:
1.11361 -+ *[0-9a-f]*: fe 0f 15 00 lsl pc,pc,0x0
1.11362 -+ *[0-9a-f]*: f8 0c 15 1f lsl r12,r12,0x1f
1.11363 -+ *[0-9a-f]*: ea 05 15 10 lsl r5,r5,0x10
1.11364 -+ *[0-9a-f]*: e8 04 15 0f lsl r4,r4,0xf
1.11365 -+ *[0-9a-f]*: fc 0e 15 01 lsl lr,lr,0x1
1.11366 -+ *[0-9a-f]*: f4 08 15 11 lsl r8,r10,0x11
1.11367 -+ *[0-9a-f]*: fc 02 15 03 lsl r2,lr,0x3
1.11368 -+ *[0-9a-f]*: f6 0e 15 0e lsl lr,r11,0xe
1.11369 -+
1.11370 -+[0-9a-f]* <lsr3>:
1.11371 -+ *[0-9a-f]*: fe 0f 16 00 lsr pc,pc,0x0
1.11372 -+ *[0-9a-f]*: f8 0c 16 1f lsr r12,r12,0x1f
1.11373 -+ *[0-9a-f]*: ea 05 16 10 lsr r5,r5,0x10
1.11374 -+ *[0-9a-f]*: e8 04 16 0f lsr r4,r4,0xf
1.11375 -+ *[0-9a-f]*: fc 0e 16 01 lsr lr,lr,0x1
1.11376 -+ *[0-9a-f]*: e6 04 16 1f lsr r4,r3,0x1f
1.11377 -+ *[0-9a-f]*: f2 0f 16 0e lsr pc,r9,0xe
1.11378 -+ *[0-9a-f]*: e0 03 16 06 lsr r3,r0,0x6
1.11379 -+
1.11380 -+[0-9a-f]* <movc1>:
1.11381 -+ *[0-9a-f]*: fe 0f 17 00 moveq pc,pc
1.11382 -+ *[0-9a-f]*: f8 0c 17 f0 moval r12,r12
1.11383 -+ *[0-9a-f]*: ea 05 17 80 movls r5,r5
1.11384 -+ *[0-9a-f]*: e8 04 17 70 movpl r4,r4
1.11385 -+ *[0-9a-f]*: fc 0e 17 10 movne lr,lr
1.11386 -+ *[0-9a-f]*: f6 0f 17 10 movne pc,r11
1.11387 -+ *[0-9a-f]*: e4 0a 17 60 movmi r10,r2
1.11388 -+ *[0-9a-f]*: f8 08 17 80 movls r8,r12
1.11389 -+
1.11390 -+[0-9a-f]* <padd_h>:
1.11391 -+ *[0-9a-f]*: fe 0f 20 0f padd\.h pc,pc,pc
1.11392 -+ *[0-9a-f]*: f8 0c 20 0c padd\.h r12,r12,r12
1.11393 -+ *[0-9a-f]*: ea 05 20 05 padd\.h r5,r5,r5
1.11394 -+ *[0-9a-f]*: e8 04 20 04 padd\.h r4,r4,r4
1.11395 -+ *[0-9a-f]*: fc 0e 20 0e padd\.h lr,lr,lr
1.11396 -+ *[0-9a-f]*: e4 07 20 08 padd\.h r8,r2,r7
1.11397 -+ *[0-9a-f]*: e0 03 20 00 padd\.h r0,r0,r3
1.11398 -+ *[0-9a-f]*: f6 06 20 0d padd\.h sp,r11,r6
1.11399 -+
1.11400 -+[0-9a-f]* <psub_h>:
1.11401 -+ *[0-9a-f]*: fe 0f 20 1f psub\.h pc,pc,pc
1.11402 -+ *[0-9a-f]*: f8 0c 20 1c psub\.h r12,r12,r12
1.11403 -+ *[0-9a-f]*: ea 05 20 15 psub\.h r5,r5,r5
1.11404 -+ *[0-9a-f]*: e8 04 20 14 psub\.h r4,r4,r4
1.11405 -+ *[0-9a-f]*: fc 0e 20 1e psub\.h lr,lr,lr
1.11406 -+ *[0-9a-f]*: ec 08 20 1e psub\.h lr,r6,r8
1.11407 -+ *[0-9a-f]*: e2 0d 20 10 psub\.h r0,r1,sp
1.11408 -+ *[0-9a-f]*: fe 0d 20 1f psub\.h pc,pc,sp
1.11409 -+
1.11410 -+[0-9a-f]* <paddx_h>:
1.11411 -+ *[0-9a-f]*: fe 0f 20 2f paddx\.h pc,pc,pc
1.11412 -+ *[0-9a-f]*: f8 0c 20 2c paddx\.h r12,r12,r12
1.11413 -+ *[0-9a-f]*: ea 05 20 25 paddx\.h r5,r5,r5
1.11414 -+ *[0-9a-f]*: e8 04 20 24 paddx\.h r4,r4,r4
1.11415 -+ *[0-9a-f]*: fc 0e 20 2e paddx\.h lr,lr,lr
1.11416 -+ *[0-9a-f]*: fe 01 20 2f paddx\.h pc,pc,r1
1.11417 -+ *[0-9a-f]*: e8 05 20 2a paddx\.h r10,r4,r5
1.11418 -+ *[0-9a-f]*: fe 02 20 25 paddx\.h r5,pc,r2
1.11419 -+
1.11420 -+[0-9a-f]* <psubx_h>:
1.11421 -+ *[0-9a-f]*: fe 0f 20 3f psubx\.h pc,pc,pc
1.11422 -+ *[0-9a-f]*: f8 0c 20 3c psubx\.h r12,r12,r12
1.11423 -+ *[0-9a-f]*: ea 05 20 35 psubx\.h r5,r5,r5
1.11424 -+ *[0-9a-f]*: e8 04 20 34 psubx\.h r4,r4,r4
1.11425 -+ *[0-9a-f]*: fc 0e 20 3e psubx\.h lr,lr,lr
1.11426 -+ *[0-9a-f]*: f8 05 20 35 psubx\.h r5,r12,r5
1.11427 -+ *[0-9a-f]*: f0 03 20 33 psubx\.h r3,r8,r3
1.11428 -+ *[0-9a-f]*: e4 03 20 35 psubx\.h r5,r2,r3
1.11429 -+
1.11430 -+[0-9a-f]* <padds_sh>:
1.11431 -+ *[0-9a-f]*: fe 0f 20 4f padds\.sh pc,pc,pc
1.11432 -+ *[0-9a-f]*: f8 0c 20 4c padds\.sh r12,r12,r12
1.11433 -+ *[0-9a-f]*: ea 05 20 45 padds\.sh r5,r5,r5
1.11434 -+ *[0-9a-f]*: e8 04 20 44 padds\.sh r4,r4,r4
1.11435 -+ *[0-9a-f]*: fc 0e 20 4e padds\.sh lr,lr,lr
1.11436 -+ *[0-9a-f]*: fc 02 20 49 padds\.sh r9,lr,r2
1.11437 -+ *[0-9a-f]*: f0 01 20 46 padds\.sh r6,r8,r1
1.11438 -+ *[0-9a-f]*: e8 0a 20 46 padds\.sh r6,r4,r10
1.11439 -+
1.11440 -+[0-9a-f]* <psubs_sh>:
1.11441 -+ *[0-9a-f]*: fe 0f 20 5f psubs\.sh pc,pc,pc
1.11442 -+ *[0-9a-f]*: f8 0c 20 5c psubs\.sh r12,r12,r12
1.11443 -+ *[0-9a-f]*: ea 05 20 55 psubs\.sh r5,r5,r5
1.11444 -+ *[0-9a-f]*: e8 04 20 54 psubs\.sh r4,r4,r4
1.11445 -+ *[0-9a-f]*: fc 0e 20 5e psubs\.sh lr,lr,lr
1.11446 -+ *[0-9a-f]*: fc 0b 20 56 psubs\.sh r6,lr,r11
1.11447 -+ *[0-9a-f]*: f8 04 20 52 psubs\.sh r2,r12,r4
1.11448 -+ *[0-9a-f]*: f2 00 20 50 psubs\.sh r0,r9,r0
1.11449 -+
1.11450 -+[0-9a-f]* <paddxs_sh>:
1.11451 -+ *[0-9a-f]*: fe 0f 20 6f paddxs\.sh pc,pc,pc
1.11452 -+ *[0-9a-f]*: f8 0c 20 6c paddxs\.sh r12,r12,r12
1.11453 -+ *[0-9a-f]*: ea 05 20 65 paddxs\.sh r5,r5,r5
1.11454 -+ *[0-9a-f]*: e8 04 20 64 paddxs\.sh r4,r4,r4
1.11455 -+ *[0-9a-f]*: fc 0e 20 6e paddxs\.sh lr,lr,lr
1.11456 -+ *[0-9a-f]*: e6 09 20 60 paddxs\.sh r0,r3,r9
1.11457 -+ *[0-9a-f]*: f4 0b 20 6f paddxs\.sh pc,r10,r11
1.11458 -+ *[0-9a-f]*: f4 0f 20 6f paddxs\.sh pc,r10,pc
1.11459 -+
1.11460 -+[0-9a-f]* <psubxs_sh>:
1.11461 -+ *[0-9a-f]*: fe 0f 20 7f psubxs\.sh pc,pc,pc
1.11462 -+ *[0-9a-f]*: f8 0c 20 7c psubxs\.sh r12,r12,r12
1.11463 -+ *[0-9a-f]*: ea 05 20 75 psubxs\.sh r5,r5,r5
1.11464 -+ *[0-9a-f]*: e8 04 20 74 psubxs\.sh r4,r4,r4
1.11465 -+ *[0-9a-f]*: fc 0e 20 7e psubxs\.sh lr,lr,lr
1.11466 -+ *[0-9a-f]*: e8 04 20 77 psubxs\.sh r7,r4,r4
1.11467 -+ *[0-9a-f]*: f0 03 20 77 psubxs\.sh r7,r8,r3
1.11468 -+ *[0-9a-f]*: ec 05 20 7f psubxs\.sh pc,r6,r5
1.11469 -+
1.11470 -+[0-9a-f]* <padds_uh>:
1.11471 -+ *[0-9a-f]*: fe 0f 20 8f padds\.uh pc,pc,pc
1.11472 -+ *[0-9a-f]*: f8 0c 20 8c padds\.uh r12,r12,r12
1.11473 -+ *[0-9a-f]*: ea 05 20 85 padds\.uh r5,r5,r5
1.11474 -+ *[0-9a-f]*: e8 04 20 84 padds\.uh r4,r4,r4
1.11475 -+ *[0-9a-f]*: fc 0e 20 8e padds\.uh lr,lr,lr
1.11476 -+ *[0-9a-f]*: f6 07 20 8c padds\.uh r12,r11,r7
1.11477 -+ *[0-9a-f]*: f0 0e 20 87 padds\.uh r7,r8,lr
1.11478 -+ *[0-9a-f]*: f2 07 20 86 padds\.uh r6,r9,r7
1.11479 -+
1.11480 -+[0-9a-f]* <psubs_uh>:
1.11481 -+ *[0-9a-f]*: fe 0f 20 9f psubs\.uh pc,pc,pc
1.11482 -+ *[0-9a-f]*: f8 0c 20 9c psubs\.uh r12,r12,r12
1.11483 -+ *[0-9a-f]*: ea 05 20 95 psubs\.uh r5,r5,r5
1.11484 -+ *[0-9a-f]*: e8 04 20 94 psubs\.uh r4,r4,r4
1.11485 -+ *[0-9a-f]*: fc 0e 20 9e psubs\.uh lr,lr,lr
1.11486 -+ *[0-9a-f]*: f4 06 20 9e psubs\.uh lr,r10,r6
1.11487 -+ *[0-9a-f]*: e4 0f 20 9d psubs\.uh sp,r2,pc
1.11488 -+ *[0-9a-f]*: f2 02 20 92 psubs\.uh r2,r9,r2
1.11489 -+
1.11490 -+[0-9a-f]* <paddxs_uh>:
1.11491 -+ *[0-9a-f]*: fe 0f 20 af paddxs\.uh pc,pc,pc
1.11492 -+ *[0-9a-f]*: f8 0c 20 ac paddxs\.uh r12,r12,r12
1.11493 -+ *[0-9a-f]*: ea 05 20 a5 paddxs\.uh r5,r5,r5
1.11494 -+ *[0-9a-f]*: e8 04 20 a4 paddxs\.uh r4,r4,r4
1.11495 -+ *[0-9a-f]*: fc 0e 20 ae paddxs\.uh lr,lr,lr
1.11496 -+ *[0-9a-f]*: f2 05 20 a7 paddxs\.uh r7,r9,r5
1.11497 -+ *[0-9a-f]*: e2 04 20 a9 paddxs\.uh r9,r1,r4
1.11498 -+ *[0-9a-f]*: e4 03 20 a5 paddxs\.uh r5,r2,r3
1.11499 -+
1.11500 -+[0-9a-f]* <psubxs_uh>:
1.11501 -+ *[0-9a-f]*: fe 0f 20 bf psubxs\.uh pc,pc,pc
1.11502 -+ *[0-9a-f]*: f8 0c 20 bc psubxs\.uh r12,r12,r12
1.11503 -+ *[0-9a-f]*: ea 05 20 b5 psubxs\.uh r5,r5,r5
1.11504 -+ *[0-9a-f]*: e8 04 20 b4 psubxs\.uh r4,r4,r4
1.11505 -+ *[0-9a-f]*: fc 0e 20 be psubxs\.uh lr,lr,lr
1.11506 -+ *[0-9a-f]*: ea 0d 20 bd psubxs\.uh sp,r5,sp
1.11507 -+ *[0-9a-f]*: ec 06 20 bd psubxs\.uh sp,r6,r6
1.11508 -+ *[0-9a-f]*: f6 08 20 b3 psubxs\.uh r3,r11,r8
1.11509 -+
1.11510 -+[0-9a-f]* <paddh_sh>:
1.11511 -+ *[0-9a-f]*: fe 0f 20 cf paddh\.sh pc,pc,pc
1.11512 -+ *[0-9a-f]*: f8 0c 20 cc paddh\.sh r12,r12,r12
1.11513 -+ *[0-9a-f]*: ea 05 20 c5 paddh\.sh r5,r5,r5
1.11514 -+ *[0-9a-f]*: e8 04 20 c4 paddh\.sh r4,r4,r4
1.11515 -+ *[0-9a-f]*: fc 0e 20 ce paddh\.sh lr,lr,lr
1.11516 -+ *[0-9a-f]*: fa 03 20 cc paddh\.sh r12,sp,r3
1.11517 -+ *[0-9a-f]*: ea 03 20 cf paddh\.sh pc,r5,r3
1.11518 -+ *[0-9a-f]*: f0 0d 20 c8 paddh\.sh r8,r8,sp
1.11519 -+
1.11520 -+[0-9a-f]* <psubh_sh>:
1.11521 -+ *[0-9a-f]*: fe 0f 20 df psubh\.sh pc,pc,pc
1.11522 -+ *[0-9a-f]*: f8 0c 20 dc psubh\.sh r12,r12,r12
1.11523 -+ *[0-9a-f]*: ea 05 20 d5 psubh\.sh r5,r5,r5
1.11524 -+ *[0-9a-f]*: e8 04 20 d4 psubh\.sh r4,r4,r4
1.11525 -+ *[0-9a-f]*: fc 0e 20 de psubh\.sh lr,lr,lr
1.11526 -+ *[0-9a-f]*: ea 08 20 d1 psubh\.sh r1,r5,r8
1.11527 -+ *[0-9a-f]*: e6 06 20 d7 psubh\.sh r7,r3,r6
1.11528 -+ *[0-9a-f]*: e6 03 20 d4 psubh\.sh r4,r3,r3
1.11529 -+
1.11530 -+[0-9a-f]* <paddxh_sh>:
1.11531 -+ *[0-9a-f]*: fe 0f 20 ef paddxh\.sh pc,pc,pc
1.11532 -+ *[0-9a-f]*: f8 0c 20 ec paddxh\.sh r12,r12,r12
1.11533 -+ *[0-9a-f]*: ea 05 20 e5 paddxh\.sh r5,r5,r5
1.11534 -+ *[0-9a-f]*: e8 04 20 e4 paddxh\.sh r4,r4,r4
1.11535 -+ *[0-9a-f]*: fc 0e 20 ee paddxh\.sh lr,lr,lr
1.11536 -+ *[0-9a-f]*: e0 04 20 e6 paddxh\.sh r6,r0,r4
1.11537 -+ *[0-9a-f]*: f0 09 20 e9 paddxh\.sh r9,r8,r9
1.11538 -+ *[0-9a-f]*: e0 0d 20 e3 paddxh\.sh r3,r0,sp
1.11539 -+
1.11540 -+[0-9a-f]* <psubxh_sh>:
1.11541 -+ *[0-9a-f]*: fe 0f 20 ff psubxh\.sh pc,pc,pc
1.11542 -+ *[0-9a-f]*: f8 0c 20 fc psubxh\.sh r12,r12,r12
1.11543 -+ *[0-9a-f]*: ea 05 20 f5 psubxh\.sh r5,r5,r5
1.11544 -+ *[0-9a-f]*: e8 04 20 f4 psubxh\.sh r4,r4,r4
1.11545 -+ *[0-9a-f]*: fc 0e 20 fe psubxh\.sh lr,lr,lr
1.11546 -+ *[0-9a-f]*: fe 0c 20 f4 psubxh\.sh r4,pc,r12
1.11547 -+ *[0-9a-f]*: e8 06 20 f8 psubxh\.sh r8,r4,r6
1.11548 -+ *[0-9a-f]*: f2 04 20 fc psubxh\.sh r12,r9,r4
1.11549 -+
1.11550 -+[0-9a-f]* <paddsub_h>:
1.11551 -+ *[0-9a-f]*: fe 0f 21 0f paddsub\.h pc,pc:b,pc:b
1.11552 -+ *[0-9a-f]*: f8 0c 21 3c paddsub\.h r12,r12:t,r12:t
1.11553 -+ *[0-9a-f]*: ea 05 21 35 paddsub\.h r5,r5:t,r5:t
1.11554 -+ *[0-9a-f]*: e8 04 21 04 paddsub\.h r4,r4:b,r4:b
1.11555 -+ *[0-9a-f]*: fc 0e 21 3e paddsub\.h lr,lr:t,lr:t
1.11556 -+ *[0-9a-f]*: e4 0e 21 25 paddsub\.h r5,r2:t,lr:b
1.11557 -+ *[0-9a-f]*: e2 08 21 07 paddsub\.h r7,r1:b,r8:b
1.11558 -+ *[0-9a-f]*: f4 05 21 36 paddsub\.h r6,r10:t,r5:t
1.11559 -+
1.11560 -+[0-9a-f]* <psubadd_h>:
1.11561 -+ *[0-9a-f]*: fe 0f 21 4f psubadd\.h pc,pc:b,pc:b
1.11562 -+ *[0-9a-f]*: f8 0c 21 7c psubadd\.h r12,r12:t,r12:t
1.11563 -+ *[0-9a-f]*: ea 05 21 75 psubadd\.h r5,r5:t,r5:t
1.11564 -+ *[0-9a-f]*: e8 04 21 44 psubadd\.h r4,r4:b,r4:b
1.11565 -+ *[0-9a-f]*: fc 0e 21 7e psubadd\.h lr,lr:t,lr:t
1.11566 -+ *[0-9a-f]*: f6 08 21 79 psubadd\.h r9,r11:t,r8:t
1.11567 -+ *[0-9a-f]*: ee 0e 21 7a psubadd\.h r10,r7:t,lr:t
1.11568 -+ *[0-9a-f]*: fe 0f 21 66 psubadd\.h r6,pc:t,pc:b
1.11569 -+
1.11570 -+[0-9a-f]* <paddsubs_sh>:
1.11571 -+ *[0-9a-f]*: fe 0f 21 8f paddsubs\.sh pc,pc:b,pc:b
1.11572 -+ *[0-9a-f]*: f8 0c 21 bc paddsubs\.sh r12,r12:t,r12:t
1.11573 -+ *[0-9a-f]*: ea 05 21 b5 paddsubs\.sh r5,r5:t,r5:t
1.11574 -+ *[0-9a-f]*: e8 04 21 84 paddsubs\.sh r4,r4:b,r4:b
1.11575 -+ *[0-9a-f]*: fc 0e 21 be paddsubs\.sh lr,lr:t,lr:t
1.11576 -+ *[0-9a-f]*: fc 00 21 a0 paddsubs\.sh r0,lr:t,r0:b
1.11577 -+ *[0-9a-f]*: e4 04 21 b9 paddsubs\.sh r9,r2:t,r4:t
1.11578 -+ *[0-9a-f]*: f2 0d 21 bc paddsubs\.sh r12,r9:t,sp:t
1.11579 -+
1.11580 -+[0-9a-f]* <psubadds_sh>:
1.11581 -+ *[0-9a-f]*: fe 0f 21 cf psubadds\.sh pc,pc:b,pc:b
1.11582 -+ *[0-9a-f]*: f8 0c 21 fc psubadds\.sh r12,r12:t,r12:t
1.11583 -+ *[0-9a-f]*: ea 05 21 f5 psubadds\.sh r5,r5:t,r5:t
1.11584 -+ *[0-9a-f]*: e8 04 21 c4 psubadds\.sh r4,r4:b,r4:b
1.11585 -+ *[0-9a-f]*: fc 0e 21 fe psubadds\.sh lr,lr:t,lr:t
1.11586 -+ *[0-9a-f]*: fc 01 21 df psubadds\.sh pc,lr:b,r1:t
1.11587 -+ *[0-9a-f]*: e6 0c 21 cb psubadds\.sh r11,r3:b,r12:b
1.11588 -+ *[0-9a-f]*: e4 08 21 fa psubadds\.sh r10,r2:t,r8:t
1.11589 -+
1.11590 -+[0-9a-f]* <paddsubs_uh>:
1.11591 -+ *[0-9a-f]*: fe 0f 22 0f paddsubs\.uh pc,pc:b,pc:b
1.11592 -+ *[0-9a-f]*: f8 0c 22 3c paddsubs\.uh r12,r12:t,r12:t
1.11593 -+ *[0-9a-f]*: ea 05 22 35 paddsubs\.uh r5,r5:t,r5:t
1.11594 -+ *[0-9a-f]*: e8 04 22 04 paddsubs\.uh r4,r4:b,r4:b
1.11595 -+ *[0-9a-f]*: fc 0e 22 3e paddsubs\.uh lr,lr:t,lr:t
1.11596 -+ *[0-9a-f]*: e4 03 22 09 paddsubs\.uh r9,r2:b,r3:b
1.11597 -+ *[0-9a-f]*: fa 07 22 1d paddsubs\.uh sp,sp:b,r7:t
1.11598 -+ *[0-9a-f]*: e0 0a 22 1e paddsubs\.uh lr,r0:b,r10:t
1.11599 -+
1.11600 -+[0-9a-f]* <psubadds_uh>:
1.11601 -+ *[0-9a-f]*: fe 0f 22 4f psubadds\.uh pc,pc:b,pc:b
1.11602 -+ *[0-9a-f]*: f8 0c 22 7c psubadds\.uh r12,r12:t,r12:t
1.11603 -+ *[0-9a-f]*: ea 05 22 75 psubadds\.uh r5,r5:t,r5:t
1.11604 -+ *[0-9a-f]*: e8 04 22 44 psubadds\.uh r4,r4:b,r4:b
1.11605 -+ *[0-9a-f]*: fc 0e 22 7e psubadds\.uh lr,lr:t,lr:t
1.11606 -+ *[0-9a-f]*: f2 0f 22 7c psubadds\.uh r12,r9:t,pc:t
1.11607 -+ *[0-9a-f]*: ec 08 22 48 psubadds\.uh r8,r6:b,r8:b
1.11608 -+ *[0-9a-f]*: f0 04 22 48 psubadds\.uh r8,r8:b,r4:b
1.11609 -+
1.11610 -+[0-9a-f]* <paddsubh_sh>:
1.11611 -+ *[0-9a-f]*: fe 0f 22 8f paddsubh\.sh pc,pc:b,pc:b
1.11612 -+ *[0-9a-f]*: f8 0c 22 bc paddsubh\.sh r12,r12:t,r12:t
1.11613 -+ *[0-9a-f]*: ea 05 22 b5 paddsubh\.sh r5,r5:t,r5:t
1.11614 -+ *[0-9a-f]*: e8 04 22 84 paddsubh\.sh r4,r4:b,r4:b
1.11615 -+ *[0-9a-f]*: fc 0e 22 be paddsubh\.sh lr,lr:t,lr:t
1.11616 -+ *[0-9a-f]*: f2 09 22 a8 paddsubh\.sh r8,r9:t,r9:b
1.11617 -+ *[0-9a-f]*: fa 01 22 b0 paddsubh\.sh r0,sp:t,r1:t
1.11618 -+ *[0-9a-f]*: e2 00 22 93 paddsubh\.sh r3,r1:b,r0:t
1.11619 -+
1.11620 -+[0-9a-f]* <psubaddh_sh>:
1.11621 -+ *[0-9a-f]*: fe 0f 22 cf psubaddh\.sh pc,pc:b,pc:b
1.11622 -+ *[0-9a-f]*: f8 0c 22 fc psubaddh\.sh r12,r12:t,r12:t
1.11623 -+ *[0-9a-f]*: ea 05 22 f5 psubaddh\.sh r5,r5:t,r5:t
1.11624 -+ *[0-9a-f]*: e8 04 22 c4 psubaddh\.sh r4,r4:b,r4:b
1.11625 -+ *[0-9a-f]*: fc 0e 22 fe psubaddh\.sh lr,lr:t,lr:t
1.11626 -+ *[0-9a-f]*: e6 0a 22 e7 psubaddh\.sh r7,r3:t,r10:b
1.11627 -+ *[0-9a-f]*: e4 01 22 f7 psubaddh\.sh r7,r2:t,r1:t
1.11628 -+ *[0-9a-f]*: e6 06 22 cb psubaddh\.sh r11,r3:b,r6:b
1.11629 -+
1.11630 -+[0-9a-f]* <padd_b>:
1.11631 -+ *[0-9a-f]*: fe 0f 23 0f padd\.b pc,pc,pc
1.11632 -+ *[0-9a-f]*: f8 0c 23 0c padd\.b r12,r12,r12
1.11633 -+ *[0-9a-f]*: ea 05 23 05 padd\.b r5,r5,r5
1.11634 -+ *[0-9a-f]*: e8 04 23 04 padd\.b r4,r4,r4
1.11635 -+ *[0-9a-f]*: fc 0e 23 0e padd\.b lr,lr,lr
1.11636 -+ *[0-9a-f]*: ec 0f 23 02 padd\.b r2,r6,pc
1.11637 -+ *[0-9a-f]*: f2 0c 23 08 padd\.b r8,r9,r12
1.11638 -+ *[0-9a-f]*: f8 03 23 05 padd\.b r5,r12,r3
1.11639 -+
1.11640 -+[0-9a-f]* <psub_b>:
1.11641 -+ *[0-9a-f]*: fe 0f 23 1f psub\.b pc,pc,pc
1.11642 -+ *[0-9a-f]*: f8 0c 23 1c psub\.b r12,r12,r12
1.11643 -+ *[0-9a-f]*: ea 05 23 15 psub\.b r5,r5,r5
1.11644 -+ *[0-9a-f]*: e8 04 23 14 psub\.b r4,r4,r4
1.11645 -+ *[0-9a-f]*: fc 0e 23 1e psub\.b lr,lr,lr
1.11646 -+ *[0-9a-f]*: f8 0f 23 10 psub\.b r0,r12,pc
1.11647 -+ *[0-9a-f]*: fa 0a 23 17 psub\.b r7,sp,r10
1.11648 -+ *[0-9a-f]*: fa 0c 23 15 psub\.b r5,sp,r12
1.11649 -+
1.11650 -+[0-9a-f]* <padds_sb>:
1.11651 -+ *[0-9a-f]*: fe 0f 23 2f padds\.sb pc,pc,pc
1.11652 -+ *[0-9a-f]*: f8 0c 23 2c padds\.sb r12,r12,r12
1.11653 -+ *[0-9a-f]*: ea 05 23 25 padds\.sb r5,r5,r5
1.11654 -+ *[0-9a-f]*: e8 04 23 24 padds\.sb r4,r4,r4
1.11655 -+ *[0-9a-f]*: fc 0e 23 2e padds\.sb lr,lr,lr
1.11656 -+ *[0-9a-f]*: f6 04 23 2d padds\.sb sp,r11,r4
1.11657 -+ *[0-9a-f]*: f4 0b 23 2b padds\.sb r11,r10,r11
1.11658 -+ *[0-9a-f]*: f8 06 23 25 padds\.sb r5,r12,r6
1.11659 -+
1.11660 -+[0-9a-f]* <psubs_sb>:
1.11661 -+ *[0-9a-f]*: fe 0f 23 3f psubs\.sb pc,pc,pc
1.11662 -+ *[0-9a-f]*: f8 0c 23 3c psubs\.sb r12,r12,r12
1.11663 -+ *[0-9a-f]*: ea 05 23 35 psubs\.sb r5,r5,r5
1.11664 -+ *[0-9a-f]*: e8 04 23 34 psubs\.sb r4,r4,r4
1.11665 -+ *[0-9a-f]*: fc 0e 23 3e psubs\.sb lr,lr,lr
1.11666 -+ *[0-9a-f]*: ec 08 23 37 psubs\.sb r7,r6,r8
1.11667 -+ *[0-9a-f]*: f4 09 23 3c psubs\.sb r12,r10,r9
1.11668 -+ *[0-9a-f]*: f6 00 23 3f psubs\.sb pc,r11,r0
1.11669 -+
1.11670 -+[0-9a-f]* <padds_ub>:
1.11671 -+ *[0-9a-f]*: fe 0f 23 4f padds\.ub pc,pc,pc
1.11672 -+ *[0-9a-f]*: f8 0c 23 4c padds\.ub r12,r12,r12
1.11673 -+ *[0-9a-f]*: ea 05 23 45 padds\.ub r5,r5,r5
1.11674 -+ *[0-9a-f]*: e8 04 23 44 padds\.ub r4,r4,r4
1.11675 -+ *[0-9a-f]*: fc 0e 23 4e padds\.ub lr,lr,lr
1.11676 -+ *[0-9a-f]*: e4 0b 23 43 padds\.ub r3,r2,r11
1.11677 -+ *[0-9a-f]*: f0 01 23 4a padds\.ub r10,r8,r1
1.11678 -+ *[0-9a-f]*: f0 0a 23 4b padds\.ub r11,r8,r10
1.11679 -+
1.11680 -+[0-9a-f]* <psubs_ub>:
1.11681 -+ *[0-9a-f]*: fe 0f 23 5f psubs\.ub pc,pc,pc
1.11682 -+ *[0-9a-f]*: f8 0c 23 5c psubs\.ub r12,r12,r12
1.11683 -+ *[0-9a-f]*: ea 05 23 55 psubs\.ub r5,r5,r5
1.11684 -+ *[0-9a-f]*: e8 04 23 54 psubs\.ub r4,r4,r4
1.11685 -+ *[0-9a-f]*: fc 0e 23 5e psubs\.ub lr,lr,lr
1.11686 -+ *[0-9a-f]*: e4 07 23 50 psubs\.ub r0,r2,r7
1.11687 -+ *[0-9a-f]*: ea 03 23 5e psubs\.ub lr,r5,r3
1.11688 -+ *[0-9a-f]*: ee 09 23 56 psubs\.ub r6,r7,r9
1.11689 -+
1.11690 -+[0-9a-f]* <paddh_ub>:
1.11691 -+ *[0-9a-f]*: fe 0f 23 6f paddh\.ub pc,pc,pc
1.11692 -+ *[0-9a-f]*: f8 0c 23 6c paddh\.ub r12,r12,r12
1.11693 -+ *[0-9a-f]*: ea 05 23 65 paddh\.ub r5,r5,r5
1.11694 -+ *[0-9a-f]*: e8 04 23 64 paddh\.ub r4,r4,r4
1.11695 -+ *[0-9a-f]*: fc 0e 23 6e paddh\.ub lr,lr,lr
1.11696 -+ *[0-9a-f]*: e2 00 23 6e paddh\.ub lr,r1,r0
1.11697 -+ *[0-9a-f]*: ee 07 23 62 paddh\.ub r2,r7,r7
1.11698 -+ *[0-9a-f]*: e2 02 23 62 paddh\.ub r2,r1,r2
1.11699 -+
1.11700 -+[0-9a-f]* <psubh_ub>:
1.11701 -+ *[0-9a-f]*: fe 0f 23 7f psubh\.ub pc,pc,pc
1.11702 -+ *[0-9a-f]*: f8 0c 23 7c psubh\.ub r12,r12,r12
1.11703 -+ *[0-9a-f]*: ea 05 23 75 psubh\.ub r5,r5,r5
1.11704 -+ *[0-9a-f]*: e8 04 23 74 psubh\.ub r4,r4,r4
1.11705 -+ *[0-9a-f]*: fc 0e 23 7e psubh\.ub lr,lr,lr
1.11706 -+ *[0-9a-f]*: e2 06 23 70 psubh\.ub r0,r1,r6
1.11707 -+ *[0-9a-f]*: fc 0a 23 74 psubh\.ub r4,lr,r10
1.11708 -+ *[0-9a-f]*: f0 01 23 79 psubh\.ub r9,r8,r1
1.11709 -+
1.11710 -+[0-9a-f]* <pmax_ub>:
1.11711 -+ *[0-9a-f]*: fe 0f 23 8f pmax\.ub pc,pc,pc
1.11712 -+ *[0-9a-f]*: f8 0c 23 8c pmax\.ub r12,r12,r12
1.11713 -+ *[0-9a-f]*: ea 05 23 85 pmax\.ub r5,r5,r5
1.11714 -+ *[0-9a-f]*: e8 04 23 84 pmax\.ub r4,r4,r4
1.11715 -+ *[0-9a-f]*: fc 0e 23 8e pmax\.ub lr,lr,lr
1.11716 -+ *[0-9a-f]*: e4 0b 23 8f pmax\.ub pc,r2,r11
1.11717 -+ *[0-9a-f]*: e2 01 23 8c pmax\.ub r12,r1,r1
1.11718 -+ *[0-9a-f]*: e4 00 23 85 pmax\.ub r5,r2,r0
1.11719 -+
1.11720 -+[0-9a-f]* <pmax_sh>:
1.11721 -+ *[0-9a-f]*: fe 0f 23 9f pmax\.sh pc,pc,pc
1.11722 -+ *[0-9a-f]*: f8 0c 23 9c pmax\.sh r12,r12,r12
1.11723 -+ *[0-9a-f]*: ea 05 23 95 pmax\.sh r5,r5,r5
1.11724 -+ *[0-9a-f]*: e8 04 23 94 pmax\.sh r4,r4,r4
1.11725 -+ *[0-9a-f]*: fc 0e 23 9e pmax\.sh lr,lr,lr
1.11726 -+ *[0-9a-f]*: ec 0c 23 9e pmax\.sh lr,r6,r12
1.11727 -+ *[0-9a-f]*: fe 05 23 92 pmax\.sh r2,pc,r5
1.11728 -+ *[0-9a-f]*: e4 07 23 9f pmax\.sh pc,r2,r7
1.11729 -+
1.11730 -+[0-9a-f]* <pmin_ub>:
1.11731 -+ *[0-9a-f]*: fe 0f 23 af pmin\.ub pc,pc,pc
1.11732 -+ *[0-9a-f]*: f8 0c 23 ac pmin\.ub r12,r12,r12
1.11733 -+ *[0-9a-f]*: ea 05 23 a5 pmin\.ub r5,r5,r5
1.11734 -+ *[0-9a-f]*: e8 04 23 a4 pmin\.ub r4,r4,r4
1.11735 -+ *[0-9a-f]*: fc 0e 23 ae pmin\.ub lr,lr,lr
1.11736 -+ *[0-9a-f]*: e2 05 23 a8 pmin\.ub r8,r1,r5
1.11737 -+ *[0-9a-f]*: f0 03 23 a1 pmin\.ub r1,r8,r3
1.11738 -+ *[0-9a-f]*: e4 07 23 a0 pmin\.ub r0,r2,r7
1.11739 -+
1.11740 -+[0-9a-f]* <pmin_sh>:
1.11741 -+ *[0-9a-f]*: fe 0f 23 bf pmin\.sh pc,pc,pc
1.11742 -+ *[0-9a-f]*: f8 0c 23 bc pmin\.sh r12,r12,r12
1.11743 -+ *[0-9a-f]*: ea 05 23 b5 pmin\.sh r5,r5,r5
1.11744 -+ *[0-9a-f]*: e8 04 23 b4 pmin\.sh r4,r4,r4
1.11745 -+ *[0-9a-f]*: fc 0e 23 be pmin\.sh lr,lr,lr
1.11746 -+ *[0-9a-f]*: e8 0a 23 b8 pmin\.sh r8,r4,r10
1.11747 -+ *[0-9a-f]*: f4 0c 23 be pmin\.sh lr,r10,r12
1.11748 -+ *[0-9a-f]*: ec 02 23 b2 pmin\.sh r2,r6,r2
1.11749 -+
1.11750 -+[0-9a-f]* <pavg_ub>:
1.11751 -+ *[0-9a-f]*: fe 0f 23 cf pavg\.ub pc,pc,pc
1.11752 -+ *[0-9a-f]*: f8 0c 23 cc pavg\.ub r12,r12,r12
1.11753 -+ *[0-9a-f]*: ea 05 23 c5 pavg\.ub r5,r5,r5
1.11754 -+ *[0-9a-f]*: e8 04 23 c4 pavg\.ub r4,r4,r4
1.11755 -+ *[0-9a-f]*: fc 0e 23 ce pavg\.ub lr,lr,lr
1.11756 -+ *[0-9a-f]*: e2 06 23 c0 pavg\.ub r0,r1,r6
1.11757 -+ *[0-9a-f]*: e6 06 23 c8 pavg\.ub r8,r3,r6
1.11758 -+ *[0-9a-f]*: f8 0a 23 cf pavg\.ub pc,r12,r10
1.11759 -+
1.11760 -+[0-9a-f]* <pavg_sh>:
1.11761 -+ *[0-9a-f]*: fe 0f 23 df pavg\.sh pc,pc,pc
1.11762 -+ *[0-9a-f]*: f8 0c 23 dc pavg\.sh r12,r12,r12
1.11763 -+ *[0-9a-f]*: ea 05 23 d5 pavg\.sh r5,r5,r5
1.11764 -+ *[0-9a-f]*: e8 04 23 d4 pavg\.sh r4,r4,r4
1.11765 -+ *[0-9a-f]*: fc 0e 23 de pavg\.sh lr,lr,lr
1.11766 -+ *[0-9a-f]*: fe 0d 23 d9 pavg\.sh r9,pc,sp
1.11767 -+ *[0-9a-f]*: fa 03 23 df pavg\.sh pc,sp,r3
1.11768 -+ *[0-9a-f]*: e2 09 23 d6 pavg\.sh r6,r1,r9
1.11769 -+
1.11770 -+[0-9a-f]* <pabs_sb>:
1.11771 -+ *[0-9a-f]*: e0 0f 23 ef pabs\.sb pc,pc
1.11772 -+ *[0-9a-f]*: e0 0c 23 ec pabs\.sb r12,r12
1.11773 -+ *[0-9a-f]*: e0 05 23 e5 pabs\.sb r5,r5
1.11774 -+ *[0-9a-f]*: e0 04 23 e4 pabs\.sb r4,r4
1.11775 -+ *[0-9a-f]*: e0 0e 23 ee pabs\.sb lr,lr
1.11776 -+ *[0-9a-f]*: e0 06 23 eb pabs\.sb r11,r6
1.11777 -+ *[0-9a-f]*: e0 09 23 ee pabs\.sb lr,r9
1.11778 -+ *[0-9a-f]*: e0 07 23 ed pabs\.sb sp,r7
1.11779 -+
1.11780 -+[0-9a-f]* <pabs_sh>:
1.11781 -+ *[0-9a-f]*: e0 0f 23 ff pabs\.sh pc,pc
1.11782 -+ *[0-9a-f]*: e0 0c 23 fc pabs\.sh r12,r12
1.11783 -+ *[0-9a-f]*: e0 05 23 f5 pabs\.sh r5,r5
1.11784 -+ *[0-9a-f]*: e0 04 23 f4 pabs\.sh r4,r4
1.11785 -+ *[0-9a-f]*: e0 0e 23 fe pabs\.sh lr,lr
1.11786 -+ *[0-9a-f]*: e0 03 23 ff pabs\.sh pc,r3
1.11787 -+ *[0-9a-f]*: e0 07 23 f5 pabs\.sh r5,r7
1.11788 -+ *[0-9a-f]*: e0 00 23 f4 pabs\.sh r4,r0
1.11789 -+
1.11790 -+[0-9a-f]* <psad>:
1.11791 -+ *[0-9a-f]*: fe 0f 24 0f psad pc,pc,pc
1.11792 -+ *[0-9a-f]*: f8 0c 24 0c psad r12,r12,r12
1.11793 -+ *[0-9a-f]*: ea 05 24 05 psad r5,r5,r5
1.11794 -+ *[0-9a-f]*: e8 04 24 04 psad r4,r4,r4
1.11795 -+ *[0-9a-f]*: fc 0e 24 0e psad lr,lr,lr
1.11796 -+ *[0-9a-f]*: f6 0b 24 09 psad r9,r11,r11
1.11797 -+ *[0-9a-f]*: e8 0d 24 0e psad lr,r4,sp
1.11798 -+ *[0-9a-f]*: e8 05 24 0e psad lr,r4,r5
1.11799 -+
1.11800 -+[0-9a-f]* <pasr_b>:
1.11801 -+ *[0-9a-f]*: fe 00 24 1f pasr\.b pc,pc,0x0
1.11802 -+ *[0-9a-f]*: f8 07 24 1c pasr\.b r12,r12,0x7
1.11803 -+ *[0-9a-f]*: ea 04 24 15 pasr\.b r5,r5,0x4
1.11804 -+ *[0-9a-f]*: e8 03 24 14 pasr\.b r4,r4,0x3
1.11805 -+ *[0-9a-f]*: fc 01 24 1e pasr\.b lr,lr,0x1
1.11806 -+ *[0-9a-f]*: ee 01 24 1f pasr\.b pc,r7,0x1
1.11807 -+ *[0-9a-f]*: fc 06 24 1d pasr\.b sp,lr,0x6
1.11808 -+ *[0-9a-f]*: e6 02 24 1d pasr\.b sp,r3,0x2
1.11809 -+
1.11810 -+[0-9a-f]* <plsl_b>:
1.11811 -+ *[0-9a-f]*: fe 00 24 2f plsl\.b pc,pc,0x0
1.11812 -+ *[0-9a-f]*: f8 07 24 2c plsl\.b r12,r12,0x7
1.11813 -+ *[0-9a-f]*: ea 04 24 25 plsl\.b r5,r5,0x4
1.11814 -+ *[0-9a-f]*: e8 03 24 24 plsl\.b r4,r4,0x3
1.11815 -+ *[0-9a-f]*: fc 01 24 2e plsl\.b lr,lr,0x1
1.11816 -+ *[0-9a-f]*: f6 04 24 22 plsl\.b r2,r11,0x4
1.11817 -+ *[0-9a-f]*: ea 07 24 28 plsl\.b r8,r5,0x7
1.11818 -+ *[0-9a-f]*: e0 02 24 2f plsl\.b pc,r0,0x2
1.11819 -+
1.11820 -+[0-9a-f]* <plsr_b>:
1.11821 -+ *[0-9a-f]*: fe 00 24 3f plsr\.b pc,pc,0x0
1.11822 -+ *[0-9a-f]*: f8 07 24 3c plsr\.b r12,r12,0x7
1.11823 -+ *[0-9a-f]*: ea 04 24 35 plsr\.b r5,r5,0x4
1.11824 -+ *[0-9a-f]*: e8 03 24 34 plsr\.b r4,r4,0x3
1.11825 -+ *[0-9a-f]*: fc 01 24 3e plsr\.b lr,lr,0x1
1.11826 -+ *[0-9a-f]*: e2 02 24 3c plsr\.b r12,r1,0x2
1.11827 -+ *[0-9a-f]*: fe 07 24 36 plsr\.b r6,pc,0x7
1.11828 -+ *[0-9a-f]*: f6 02 24 3c plsr\.b r12,r11,0x2
1.11829 -+
1.11830 -+[0-9a-f]* <pasr_h>:
1.11831 -+ *[0-9a-f]*: fe 00 24 4f pasr\.h pc,pc,0x0
1.11832 -+ *[0-9a-f]*: f8 0f 24 4c pasr\.h r12,r12,0xf
1.11833 -+ *[0-9a-f]*: ea 08 24 45 pasr\.h r5,r5,0x8
1.11834 -+ *[0-9a-f]*: e8 07 24 44 pasr\.h r4,r4,0x7
1.11835 -+ *[0-9a-f]*: fc 01 24 4e pasr\.h lr,lr,0x1
1.11836 -+ *[0-9a-f]*: f6 0a 24 40 pasr\.h r0,r11,0xa
1.11837 -+ *[0-9a-f]*: ec 08 24 44 pasr\.h r4,r6,0x8
1.11838 -+ *[0-9a-f]*: e4 04 24 46 pasr\.h r6,r2,0x4
1.11839 -+
1.11840 -+[0-9a-f]* <plsl_h>:
1.11841 -+ *[0-9a-f]*: fe 00 24 5f plsl\.h pc,pc,0x0
1.11842 -+ *[0-9a-f]*: f8 0f 24 5c plsl\.h r12,r12,0xf
1.11843 -+ *[0-9a-f]*: ea 08 24 55 plsl\.h r5,r5,0x8
1.11844 -+ *[0-9a-f]*: e8 07 24 54 plsl\.h r4,r4,0x7
1.11845 -+ *[0-9a-f]*: fc 01 24 5e plsl\.h lr,lr,0x1
1.11846 -+ *[0-9a-f]*: f4 09 24 55 plsl\.h r5,r10,0x9
1.11847 -+ *[0-9a-f]*: fc 08 24 5d plsl\.h sp,lr,0x8
1.11848 -+ *[0-9a-f]*: fc 07 24 50 plsl\.h r0,lr,0x7
1.11849 -+
1.11850 -+[0-9a-f]* <plsr_h>:
1.11851 -+ *[0-9a-f]*: fe 00 24 6f plsr\.h pc,pc,0x0
1.11852 -+ *[0-9a-f]*: f8 0f 24 6c plsr\.h r12,r12,0xf
1.11853 -+ *[0-9a-f]*: ea 08 24 65 plsr\.h r5,r5,0x8
1.11854 -+ *[0-9a-f]*: e8 07 24 64 plsr\.h r4,r4,0x7
1.11855 -+ *[0-9a-f]*: fc 01 24 6e plsr\.h lr,lr,0x1
1.11856 -+ *[0-9a-f]*: e0 0f 24 6b plsr\.h r11,r0,0xf
1.11857 -+ *[0-9a-f]*: e6 03 24 6e plsr\.h lr,r3,0x3
1.11858 -+ *[0-9a-f]*: fc 0a 24 68 plsr\.h r8,lr,0xa
1.11859 -+
1.11860 -+[0-9a-f]* <packw_sh>:
1.11861 -+ *[0-9a-f]*: fe 0f 24 7f packw\.sh pc,pc,pc
1.11862 -+ *[0-9a-f]*: f8 0c 24 7c packw\.sh r12,r12,r12
1.11863 -+ *[0-9a-f]*: ea 05 24 75 packw\.sh r5,r5,r5
1.11864 -+ *[0-9a-f]*: e8 04 24 74 packw\.sh r4,r4,r4
1.11865 -+ *[0-9a-f]*: fc 0e 24 7e packw\.sh lr,lr,lr
1.11866 -+ *[0-9a-f]*: f6 0a 24 7d packw\.sh sp,r11,r10
1.11867 -+ *[0-9a-f]*: e4 0c 24 78 packw\.sh r8,r2,r12
1.11868 -+ *[0-9a-f]*: e2 05 24 78 packw\.sh r8,r1,r5
1.11869 -+
1.11870 -+[0-9a-f]* <punpckub_h>:
1.11871 -+ *[0-9a-f]*: fe 00 24 8f punpckub\.h pc,pc:b
1.11872 -+ *[0-9a-f]*: f8 00 24 9c punpckub\.h r12,r12:t
1.11873 -+ *[0-9a-f]*: ea 00 24 95 punpckub\.h r5,r5:t
1.11874 -+ *[0-9a-f]*: e8 00 24 84 punpckub\.h r4,r4:b
1.11875 -+ *[0-9a-f]*: fc 00 24 9e punpckub\.h lr,lr:t
1.11876 -+ *[0-9a-f]*: e2 00 24 96 punpckub\.h r6,r1:t
1.11877 -+ *[0-9a-f]*: ea 00 24 8e punpckub\.h lr,r5:b
1.11878 -+ *[0-9a-f]*: e4 00 24 9e punpckub\.h lr,r2:t
1.11879 -+
1.11880 -+[0-9a-f]* <punpcksb_h>:
1.11881 -+ *[0-9a-f]*: fe 00 24 af punpcksb\.h pc,pc:b
1.11882 -+ *[0-9a-f]*: f8 00 24 bc punpcksb\.h r12,r12:t
1.11883 -+ *[0-9a-f]*: ea 00 24 b5 punpcksb\.h r5,r5:t
1.11884 -+ *[0-9a-f]*: e8 00 24 a4 punpcksb\.h r4,r4:b
1.11885 -+ *[0-9a-f]*: fc 00 24 be punpcksb\.h lr,lr:t
1.11886 -+ *[0-9a-f]*: ee 00 24 b4 punpcksb\.h r4,r7:t
1.11887 -+ *[0-9a-f]*: fc 00 24 a6 punpcksb\.h r6,lr:b
1.11888 -+ *[0-9a-f]*: f8 00 24 bc punpcksb\.h r12,r12:t
1.11889 -+
1.11890 -+[0-9a-f]* <packsh_ub>:
1.11891 -+ *[0-9a-f]*: fe 0f 24 cf packsh\.ub pc,pc,pc
1.11892 -+ *[0-9a-f]*: f8 0c 24 cc packsh\.ub r12,r12,r12
1.11893 -+ *[0-9a-f]*: ea 05 24 c5 packsh\.ub r5,r5,r5
1.11894 -+ *[0-9a-f]*: e8 04 24 c4 packsh\.ub r4,r4,r4
1.11895 -+ *[0-9a-f]*: fc 0e 24 ce packsh\.ub lr,lr,lr
1.11896 -+ *[0-9a-f]*: ec 03 24 c3 packsh\.ub r3,r6,r3
1.11897 -+ *[0-9a-f]*: e0 03 24 c8 packsh\.ub r8,r0,r3
1.11898 -+ *[0-9a-f]*: e6 0e 24 c9 packsh\.ub r9,r3,lr
1.11899 -+
1.11900 -+[0-9a-f]* <packsh_sb>:
1.11901 -+ *[0-9a-f]*: fe 0f 24 df packsh\.sb pc,pc,pc
1.11902 -+ *[0-9a-f]*: f8 0c 24 dc packsh\.sb r12,r12,r12
1.11903 -+ *[0-9a-f]*: ea 05 24 d5 packsh\.sb r5,r5,r5
1.11904 -+ *[0-9a-f]*: e8 04 24 d4 packsh\.sb r4,r4,r4
1.11905 -+ *[0-9a-f]*: fc 0e 24 de packsh\.sb lr,lr,lr
1.11906 -+ *[0-9a-f]*: f0 01 24 d6 packsh\.sb r6,r8,r1
1.11907 -+ *[0-9a-f]*: f2 08 24 de packsh\.sb lr,r9,r8
1.11908 -+ *[0-9a-f]*: ec 06 24 dd packsh\.sb sp,r6,r6
1.11909 -+
1.11910 -+[0-9a-f]* <andl>:
1.11911 -+ *[0-9a-f]*: e0 1f 00 00 andl pc,0x0
1.11912 -+ *[0-9a-f]*: e0 1c ff ff andl r12,0xffff
1.11913 -+ *[0-9a-f]*: e0 15 80 00 andl r5,0x8000
1.11914 -+ *[0-9a-f]*: e0 14 7f ff andl r4,0x7fff
1.11915 -+ *[0-9a-f]*: e0 1e 00 01 andl lr,0x1
1.11916 -+ *[0-9a-f]*: e0 1f 5a 58 andl pc,0x5a58
1.11917 -+ *[0-9a-f]*: e0 18 b8 9e andl r8,0xb89e
1.11918 -+ *[0-9a-f]*: e0 17 35 97 andl r7,0x3597
1.11919 -+
1.11920 -+[0-9a-f]* <andl_coh>:
1.11921 -+ *[0-9a-f]*: e2 1f 00 00 andl pc,0x0,COH
1.11922 -+ *[0-9a-f]*: e2 1c ff ff andl r12,0xffff,COH
1.11923 -+ *[0-9a-f]*: e2 15 80 00 andl r5,0x8000,COH
1.11924 -+ *[0-9a-f]*: e2 14 7f ff andl r4,0x7fff,COH
1.11925 -+ *[0-9a-f]*: e2 1e 00 01 andl lr,0x1,COH
1.11926 -+ *[0-9a-f]*: e2 16 58 e1 andl r6,0x58e1,COH
1.11927 -+ *[0-9a-f]*: e2 10 9e cd andl r0,0x9ecd,COH
1.11928 -+ *[0-9a-f]*: e2 14 bd c4 andl r4,0xbdc4,COH
1.11929 -+
1.11930 -+[0-9a-f]* <andh>:
1.11931 -+ *[0-9a-f]*: e4 1f 00 00 andh pc,0x0
1.11932 -+ *[0-9a-f]*: e4 1c ff ff andh r12,0xffff
1.11933 -+ *[0-9a-f]*: e4 15 80 00 andh r5,0x8000
1.11934 -+ *[0-9a-f]*: e4 14 7f ff andh r4,0x7fff
1.11935 -+ *[0-9a-f]*: e4 1e 00 01 andh lr,0x1
1.11936 -+ *[0-9a-f]*: e4 1c cc 58 andh r12,0xcc58
1.11937 -+ *[0-9a-f]*: e4 13 21 e3 andh r3,0x21e3
1.11938 -+ *[0-9a-f]*: e4 12 a7 eb andh r2,0xa7eb
1.11939 -+
1.11940 -+[0-9a-f]* <andh_coh>:
1.11941 -+ *[0-9a-f]*: e6 1f 00 00 andh pc,0x0,COH
1.11942 -+ *[0-9a-f]*: e6 1c ff ff andh r12,0xffff,COH
1.11943 -+ *[0-9a-f]*: e6 15 80 00 andh r5,0x8000,COH
1.11944 -+ *[0-9a-f]*: e6 14 7f ff andh r4,0x7fff,COH
1.11945 -+ *[0-9a-f]*: e6 1e 00 01 andh lr,0x1,COH
1.11946 -+ *[0-9a-f]*: e6 1b 86 0d andh r11,0x860d,COH
1.11947 -+ *[0-9a-f]*: e6 18 ce f6 andh r8,0xcef6,COH
1.11948 -+ *[0-9a-f]*: e6 1a 5c 83 andh r10,0x5c83,COH
1.11949 -+
1.11950 -+[0-9a-f]* <orl>:
1.11951 -+ *[0-9a-f]*: e8 1f 00 00 orl pc,0x0
1.11952 -+ *[0-9a-f]*: e8 1c ff ff orl r12,0xffff
1.11953 -+ *[0-9a-f]*: e8 15 80 00 orl r5,0x8000
1.11954 -+ *[0-9a-f]*: e8 14 7f ff orl r4,0x7fff
1.11955 -+ *[0-9a-f]*: e8 1e 00 01 orl lr,0x1
1.11956 -+ *[0-9a-f]*: e8 1d 41 7e orl sp,0x417e
1.11957 -+ *[0-9a-f]*: e8 10 52 bd orl r0,0x52bd
1.11958 -+ *[0-9a-f]*: e8 1f ac 47 orl pc,0xac47
1.11959 -+
1.11960 -+[0-9a-f]* <orh>:
1.11961 -+ *[0-9a-f]*: ea 1f 00 00 orh pc,0x0
1.11962 -+ *[0-9a-f]*: ea 1c ff ff orh r12,0xffff
1.11963 -+ *[0-9a-f]*: ea 15 80 00 orh r5,0x8000
1.11964 -+ *[0-9a-f]*: ea 14 7f ff orh r4,0x7fff
1.11965 -+ *[0-9a-f]*: ea 1e 00 01 orh lr,0x1
1.11966 -+ *[0-9a-f]*: ea 18 6e 7d orh r8,0x6e7d
1.11967 -+ *[0-9a-f]*: ea 1c 77 1c orh r12,0x771c
1.11968 -+ *[0-9a-f]*: ea 11 ea 1a orh r1,0xea1a
1.11969 -+
1.11970 -+[0-9a-f]* <eorl>:
1.11971 -+ *[0-9a-f]*: ec 1f 00 00 eorl pc,0x0
1.11972 -+ *[0-9a-f]*: ec 1c ff ff eorl r12,0xffff
1.11973 -+ *[0-9a-f]*: ec 15 80 00 eorl r5,0x8000
1.11974 -+ *[0-9a-f]*: ec 14 7f ff eorl r4,0x7fff
1.11975 -+ *[0-9a-f]*: ec 1e 00 01 eorl lr,0x1
1.11976 -+ *[0-9a-f]*: ec 14 c7 b9 eorl r4,0xc7b9
1.11977 -+ *[0-9a-f]*: ec 16 fb dd eorl r6,0xfbdd
1.11978 -+ *[0-9a-f]*: ec 11 51 b1 eorl r1,0x51b1
1.11979 -+
1.11980 -+[0-9a-f]* <eorh>:
1.11981 -+ *[0-9a-f]*: ee 1f 00 00 eorh pc,0x0
1.11982 -+ *[0-9a-f]*: ee 1c ff ff eorh r12,0xffff
1.11983 -+ *[0-9a-f]*: ee 15 80 00 eorh r5,0x8000
1.11984 -+ *[0-9a-f]*: ee 14 7f ff eorh r4,0x7fff
1.11985 -+ *[0-9a-f]*: ee 1e 00 01 eorh lr,0x1
1.11986 -+ *[0-9a-f]*: ee 10 2d d4 eorh r0,0x2dd4
1.11987 -+ *[0-9a-f]*: ee 1a 94 b5 eorh r10,0x94b5
1.11988 -+ *[0-9a-f]*: ee 19 df 2a eorh r9,0xdf2a
1.11989 -+
1.11990 -+[0-9a-f]* <mcall>:
1.11991 -+ *[0-9a-f]*: f0 1f 00 00 mcall [0-9a-f]* <.*>
1.11992 -+ *[0-9a-f]*: f0 1c ff ff mcall r12\[-4\]
1.11993 -+ *[0-9a-f]*: f0 15 80 00 mcall r5\[-131072\]
1.11994 -+ *[0-9a-f]*: f0 14 7f ff mcall r4\[131068\]
1.11995 -+ *[0-9a-f]*: f0 1e 00 01 mcall lr\[4\]
1.11996 -+ *[0-9a-f]*: f0 1d 3b bf mcall sp\[61180\]
1.11997 -+ *[0-9a-f]*: f0 14 dd d2 mcall r4\[-35000\]
1.11998 -+ *[0-9a-f]*: f0 10 09 b1 mcall r0\[9924\]
1.11999 -+
1.12000 -+[0-9a-f]* <pref>:
1.12001 -+ *[0-9a-f]*: f2 1f 00 00 pref pc\[0\]
1.12002 -+ *[0-9a-f]*: f2 1c ff ff pref r12\[-1\]
1.12003 -+ *[0-9a-f]*: f2 15 80 00 pref r5\[-32768\]
1.12004 -+ *[0-9a-f]*: f2 14 7f ff pref r4\[32767\]
1.12005 -+ *[0-9a-f]*: f2 1e 00 01 pref lr\[1\]
1.12006 -+ *[0-9a-f]*: f2 17 1e 44 pref r7\[7748\]
1.12007 -+ *[0-9a-f]*: f2 17 e1 ed pref r7\[-7699\]
1.12008 -+ *[0-9a-f]*: f2 12 9a dc pref r2\[-25892\]
1.12009 -+
1.12010 -+[0-9a-f]* <cache>:
1.12011 -+ *[0-9a-f]*: f4 1f 00 00 cache pc\[0\],0x0
1.12012 -+ *[0-9a-f]*: f4 1c ff ff cache r12\[-1\],0x1f
1.12013 -+ *[0-9a-f]*: f4 15 84 00 cache r5\[-1024\],0x10
1.12014 -+ *[0-9a-f]*: f4 14 7b ff cache r4\[1023\],0xf
1.12015 -+ *[0-9a-f]*: f4 1e 08 01 cache lr\[1\],0x1
1.12016 -+ *[0-9a-f]*: f4 13 8c 3c cache r3\[-964\],0x11
1.12017 -+ *[0-9a-f]*: f4 14 b6 89 cache r4\[-375\],0x16
1.12018 -+ *[0-9a-f]*: f4 13 8c 88 cache r3\[-888\],0x11
1.12019 -+
1.12020 -+[0-9a-f]* <sub4>:
1.12021 -+ *[0-9a-f]*: 20 0f sub pc,0
1.12022 -+ *[0-9a-f]*: 2f fc sub r12,-1
1.12023 -+ *[0-9a-f]*: f0 25 00 00 sub r5,-1048576
1.12024 -+ *[0-9a-f]*: ee 34 ff ff sub r4,1048575
1.12025 -+ *[0-9a-f]*: 20 1e sub lr,1
1.12026 -+ *[0-9a-f]*: f6 22 8d 6c sub r2,-619156
1.12027 -+ *[0-9a-f]*: e6 3e 0a cd sub lr,461517
1.12028 -+ *[0-9a-f]*: fc 38 2d 25 sub r8,-185051
1.12029 -+
1.12030 -+[0-9a-f]* <cp3>:
1.12031 -+ *[0-9a-f]*: 58 0f cp.w pc,0
1.12032 -+ *[0-9a-f]*: 5b fc cp.w r12,-1
1.12033 -+ *[0-9a-f]*: f0 45 00 00 cp.w r5,-1048576
1.12034 -+ *[0-9a-f]*: ee 54 ff ff cp.w r4,1048575
1.12035 -+ *[0-9a-f]*: 58 1e cp.w lr,1
1.12036 -+ *[0-9a-f]*: e0 51 e4 ae cp.w r1,124078
1.12037 -+ *[0-9a-f]*: fa 40 37 e3 cp.w r0,-378909
1.12038 -+ *[0-9a-f]*: fc 44 4a 14 cp.w r4,-243180
1.12039 -+
1.12040 -+[0-9a-f]* <mov2>:
1.12041 -+ *[0-9a-f]*: 30 0f mov pc,0
1.12042 -+ *[0-9a-f]*: 3f fc mov r12,-1
1.12043 -+ *[0-9a-f]*: f0 65 00 00 mov r5,-1048576
1.12044 -+ *[0-9a-f]*: ee 74 ff ff mov r4,1048575
1.12045 -+ *[0-9a-f]*: 30 1e mov lr,1
1.12046 -+ *[0-9a-f]*: fa 75 29 a3 mov r5,-317021
1.12047 -+ *[0-9a-f]*: f4 6d 91 94 mov sp,-749164
1.12048 -+ *[0-9a-f]*: ee 65 58 93 mov r5,940179
1.12049 -+
1.12050 -+[0-9a-f]* <brc2>:
1.12051 -+ *[0-9a-f]*: c0 00 breq [0-9a-f]* <.*>
1.12052 -+ *[0-9a-f]*: fe 9f ff ff bral [0-9a-f]* <.*>
1.12053 -+ *[0-9a-f]*: f0 88 00 00 brls [0-9a-f]* <.*>
1.12054 -+ *[0-9a-f]*: ee 97 ff ff brpl [0-9a-f]* <.*>
1.12055 -+ *[0-9a-f]*: c0 11 brne [0-9a-f]* <.*>
1.12056 -+ *[0-9a-f]*: f2 8b 4a 4d brhi [0-9a-f]* <.*>
1.12057 -+ *[0-9a-f]*: ea 8e 14 cc brqs [0-9a-f]* <.*>
1.12058 -+ *[0-9a-f]*: fa 98 98 33 brls [0-9a-f]* <.*>
1.12059 -+
1.12060 -+[0-9a-f]* <rcall2>:
1.12061 -+ *[0-9a-f]*: c0 0c rcall [0-9a-f]* <.*>
1.12062 -+ *[0-9a-f]*: cf ff rcall [0-9a-f]* <.*>
1.12063 -+ *[0-9a-f]*: f0 a0 00 00 rcall [0-9a-f]* <.*>
1.12064 -+ *[0-9a-f]*: ee b0 ff ff rcall [0-9a-f]* <.*>
1.12065 -+ *[0-9a-f]*: c0 1c rcall [0-9a-f]* <.*>
1.12066 -+ *[0-9a-f]*: e2 b0 ca 5a rcall [0-9a-f]* <.*>
1.12067 -+ *[0-9a-f]*: e8 a0 47 52 rcall [0-9a-f]* <.*>
1.12068 -+ *[0-9a-f]*: fe b0 fd ef rcall [0-9a-f]* <.*>
1.12069 -+
1.12070 -+[0-9a-f]* <sub5>:
1.12071 -+ *[0-9a-f]*: fe cf 00 00 sub pc,pc,0
1.12072 -+ *[0-9a-f]*: f8 cc ff ff sub r12,r12,-1
1.12073 -+ *[0-9a-f]*: ea c5 80 00 sub r5,r5,-32768
1.12074 -+ *[0-9a-f]*: e8 c4 7f ff sub r4,r4,32767
1.12075 -+ *[0-9a-f]*: fc ce 00 01 sub lr,lr,1
1.12076 -+ *[0-9a-f]*: fe cf ce 38 sub pc,pc,-12744
1.12077 -+ *[0-9a-f]*: ee c7 95 1b sub r7,r7,-27365
1.12078 -+ *[0-9a-f]*: f2 c2 bc 32 sub r2,r9,-17358
1.12079 -+
1.12080 -+[0-9a-f]* <satsub_w2>:
1.12081 -+ *[0-9a-f]*: fe df 00 00 satsub\.w pc,pc,0
1.12082 -+ *[0-9a-f]*: f8 dc ff ff satsub\.w r12,r12,-1
1.12083 -+ *[0-9a-f]*: ea d5 80 00 satsub\.w r5,r5,-32768
1.12084 -+ *[0-9a-f]*: e8 d4 7f ff satsub\.w r4,r4,32767
1.12085 -+ *[0-9a-f]*: fc de 00 01 satsub\.w lr,lr,1
1.12086 -+ *[0-9a-f]*: fc d2 f8 29 satsub\.w r2,lr,-2007
1.12087 -+ *[0-9a-f]*: f8 d7 fc f0 satsub\.w r7,r12,-784
1.12088 -+ *[0-9a-f]*: ee d4 5a 8c satsub\.w r4,r7,23180
1.12089 -+
1.12090 -+[0-9a-f]* <ld_d4>:
1.12091 -+ *[0-9a-f]*: fe e0 00 00 ld\.d r0,pc\[0\]
1.12092 -+ *[0-9a-f]*: f8 ee ff ff ld\.d lr,r12\[-1\]
1.12093 -+ *[0-9a-f]*: ea e8 80 00 ld\.d r8,r5\[-32768\]
1.12094 -+ *[0-9a-f]*: e8 e6 7f ff ld\.d r6,r4\[32767\]
1.12095 -+ *[0-9a-f]*: fc e2 00 01 ld\.d r2,lr\[1\]
1.12096 -+ *[0-9a-f]*: f6 ee 39 c0 ld\.d lr,r11\[14784\]
1.12097 -+ *[0-9a-f]*: f2 e6 b6 27 ld\.d r6,r9\[-18905\]
1.12098 -+ *[0-9a-f]*: e6 e2 e7 2d ld\.d r2,r3\[-6355\]
1.12099 -+
1.12100 -+[0-9a-f]* <ld_w4>:
1.12101 -+ *[0-9a-f]*: 7e 0f ld\.w pc,pc\[0x0\]
1.12102 -+ *[0-9a-f]*: f8 fc ff ff ld\.w r12,r12\[-1\]
1.12103 -+ *[0-9a-f]*: ea f5 80 00 ld\.w r5,r5\[-32768\]
1.12104 -+ *[0-9a-f]*: e8 f4 7f ff ld\.w r4,r4\[32767\]
1.12105 -+ *[0-9a-f]*: fc fe 00 01 ld\.w lr,lr\[1\]
1.12106 -+ *[0-9a-f]*: f8 f0 a9 8b ld\.w r0,r12\[-22133\]
1.12107 -+ *[0-9a-f]*: fe fd af d7 ld\.w sp,pc\[-20521\]
1.12108 -+ *[0-9a-f]*: d7 03 nop
1.12109 -+
1.12110 -+[0-9a-f]* <ld_sh4>:
1.12111 -+ *[0-9a-f]*: 9e 0f ld\.sh pc,pc\[0x0\]
1.12112 -+ *[0-9a-f]*: f9 0c ff ff ld\.sh r12,r12\[-1\]
1.12113 -+ *[0-9a-f]*: eb 05 80 00 ld\.sh r5,r5\[-32768\]
1.12114 -+ *[0-9a-f]*: e9 04 7f ff ld\.sh r4,r4\[32767\]
1.12115 -+ *[0-9a-f]*: fd 0e 00 01 ld\.sh lr,lr\[1\]
1.12116 -+ *[0-9a-f]*: f5 06 78 d2 ld\.sh r6,r10\[30930\]
1.12117 -+ *[0-9a-f]*: f5 06 55 d5 ld\.sh r6,r10\[21973\]
1.12118 -+ *[0-9a-f]*: d7 03 nop
1.12119 -+
1.12120 -+[0-9a-f]* <ld_uh4>:
1.12121 -+ *[0-9a-f]*: 9e 8f ld\.uh pc,pc\[0x0\]
1.12122 -+ *[0-9a-f]*: f9 1c ff ff ld\.uh r12,r12\[-1\]
1.12123 -+ *[0-9a-f]*: eb 15 80 00 ld\.uh r5,r5\[-32768\]
1.12124 -+ *[0-9a-f]*: e9 14 7f ff ld\.uh r4,r4\[32767\]
1.12125 -+ *[0-9a-f]*: fd 1e 00 01 ld\.uh lr,lr\[1\]
1.12126 -+ *[0-9a-f]*: f3 11 cb d6 ld\.uh r1,r9\[-13354\]
1.12127 -+ *[0-9a-f]*: f7 1e 53 59 ld\.uh lr,r11\[21337\]
1.12128 -+ *[0-9a-f]*: d7 03 nop
1.12129 -+
1.12130 -+[0-9a-f]* <ld_sb1>:
1.12131 -+ *[0-9a-f]*: ff 2f 00 00 ld\.sb pc,pc\[0\]
1.12132 -+ *[0-9a-f]*: f9 2c ff ff ld\.sb r12,r12\[-1\]
1.12133 -+ *[0-9a-f]*: eb 25 80 00 ld\.sb r5,r5\[-32768\]
1.12134 -+ *[0-9a-f]*: e9 24 7f ff ld\.sb r4,r4\[32767\]
1.12135 -+ *[0-9a-f]*: fd 2e 00 01 ld\.sb lr,lr\[1\]
1.12136 -+ *[0-9a-f]*: fb 27 90 09 ld\.sb r7,sp\[-28663\]
1.12137 -+ *[0-9a-f]*: e3 22 e9 09 ld\.sb r2,r1\[-5879\]
1.12138 -+ *[0-9a-f]*: e7 2c 49 2e ld\.sb r12,r3\[18734\]
1.12139 -+
1.12140 -+[0-9a-f]* <ld_ub4>:
1.12141 -+ *[0-9a-f]*: 1f 8f ld\.ub pc,pc\[0x0\]
1.12142 -+ *[0-9a-f]*: f9 3c ff ff ld\.ub r12,r12\[-1\]
1.12143 -+ *[0-9a-f]*: eb 35 80 00 ld\.ub r5,r5\[-32768\]
1.12144 -+ *[0-9a-f]*: e9 34 7f ff ld\.ub r4,r4\[32767\]
1.12145 -+ *[0-9a-f]*: 1d 9e ld\.ub lr,lr\[0x1\]
1.12146 -+ *[0-9a-f]*: e9 3f 20 55 ld\.ub pc,r4\[8277\]
1.12147 -+ *[0-9a-f]*: f9 35 4a e4 ld\.ub r5,r12\[19172\]
1.12148 -+ *[0-9a-f]*: fd 3a 66 eb ld\.ub r10,lr\[26347\]
1.12149 -+
1.12150 -+[0-9a-f]* <st_d4>:
1.12151 -+ *[0-9a-f]*: fe e1 00 00 st\.d pc\[0\],r0
1.12152 -+ *[0-9a-f]*: f8 ef ff ff st\.d r12\[-1\],lr
1.12153 -+ *[0-9a-f]*: ea e9 80 00 st\.d r5\[-32768\],r8
1.12154 -+ *[0-9a-f]*: e8 e7 7f ff st\.d r4\[32767\],r6
1.12155 -+ *[0-9a-f]*: fc e3 00 01 st\.d lr\[1\],r2
1.12156 -+ *[0-9a-f]*: ea eb 33 90 st\.d r5\[13200\],r10
1.12157 -+ *[0-9a-f]*: ea eb 24 88 st\.d r5\[9352\],r10
1.12158 -+ *[0-9a-f]*: ea e5 7e 75 st\.d r5\[32373\],r4
1.12159 -+
1.12160 -+[0-9a-f]* <st_w4>:
1.12161 -+ *[0-9a-f]*: 9f 0f st\.w pc\[0x0\],pc
1.12162 -+ *[0-9a-f]*: f9 4c ff ff st\.w r12\[-1\],r12
1.12163 -+ *[0-9a-f]*: eb 45 80 00 st\.w r5\[-32768\],r5
1.12164 -+ *[0-9a-f]*: e9 44 7f ff st\.w r4\[32767\],r4
1.12165 -+ *[0-9a-f]*: fd 4e 00 01 st\.w lr\[1\],lr
1.12166 -+ *[0-9a-f]*: fb 47 17 f8 st\.w sp\[6136\],r7
1.12167 -+ *[0-9a-f]*: ed 4c 69 cf st\.w r6\[27087\],r12
1.12168 -+ *[0-9a-f]*: d7 03 nop
1.12169 -+
1.12170 -+[0-9a-f]* <st_h4>:
1.12171 -+ *[0-9a-f]*: be 0f st\.h pc\[0x0\],pc
1.12172 -+ *[0-9a-f]*: f9 5c ff ff st\.h r12\[-1\],r12
1.12173 -+ *[0-9a-f]*: eb 55 80 00 st\.h r5\[-32768\],r5
1.12174 -+ *[0-9a-f]*: e9 54 7f ff st\.h r4\[32767\],r4
1.12175 -+ *[0-9a-f]*: fd 5e 00 01 st\.h lr\[1\],lr
1.12176 -+ *[0-9a-f]*: e9 57 d9 16 st\.h r4\[-9962\],r7
1.12177 -+ *[0-9a-f]*: f3 53 c0 86 st\.h r9\[-16250\],r3
1.12178 -+ *[0-9a-f]*: d7 03 nop
1.12179 -+
1.12180 -+[0-9a-f]* <st_b4>:
1.12181 -+ *[0-9a-f]*: be 8f st\.b pc\[0x0\],pc
1.12182 -+ *[0-9a-f]*: f9 6c ff ff st\.b r12\[-1\],r12
1.12183 -+ *[0-9a-f]*: eb 65 80 00 st\.b r5\[-32768\],r5
1.12184 -+ *[0-9a-f]*: e9 64 7f ff st\.b r4\[32767\],r4
1.12185 -+ *[0-9a-f]*: bc 9e st\.b lr\[0x1\],lr
1.12186 -+ *[0-9a-f]*: f9 66 75 96 st\.b r12\[30102\],r6
1.12187 -+ *[0-9a-f]*: eb 61 71 31 st\.b r5\[28977\],r1
1.12188 -+ *[0-9a-f]*: e1 61 15 5e st\.b r0\[5470\],r1
1.12189 -+
1.12190 -+[0-9a-f]* <mfsr>:
1.12191 -+ *[0-9a-f]*: e1 bf 00 00 mfsr pc,0x0
1.12192 -+ *[0-9a-f]*: e1 bc 00 ff mfsr r12,0x3fc
1.12193 -+ *[0-9a-f]*: e1 b5 00 80 mfsr r5,0x200
1.12194 -+ *[0-9a-f]*: e1 b4 00 7f mfsr r4,0x1fc
1.12195 -+ *[0-9a-f]*: e1 be 00 01 mfsr lr,0x4
1.12196 -+ *[0-9a-f]*: e1 b2 00 ae mfsr r2,0x2b8
1.12197 -+ *[0-9a-f]*: e1 b4 00 41 mfsr r4,0x104
1.12198 -+ *[0-9a-f]*: e1 ba 00 fe mfsr r10,0x3f8
1.12199 -+
1.12200 -+[0-9a-f]* <mtsr>:
1.12201 -+ *[0-9a-f]*: e3 bf 00 00 mtsr 0x0,pc
1.12202 -+ *[0-9a-f]*: e3 bc 00 ff mtsr 0x3fc,r12
1.12203 -+ *[0-9a-f]*: e3 b5 00 80 mtsr 0x200,r5
1.12204 -+ *[0-9a-f]*: e3 b4 00 7f mtsr 0x1fc,r4
1.12205 -+ *[0-9a-f]*: e3 be 00 01 mtsr 0x4,lr
1.12206 -+ *[0-9a-f]*: e3 ba 00 38 mtsr 0xe0,r10
1.12207 -+ *[0-9a-f]*: e3 bc 00 d1 mtsr 0x344,r12
1.12208 -+ *[0-9a-f]*: e3 b9 00 4c mtsr 0x130,r9
1.12209 -+
1.12210 -+[0-9a-f]* <mfdr>:
1.12211 -+ *[0-9a-f]*: e5 bf 00 00 mfdr pc,0x0
1.12212 -+ *[0-9a-f]*: e5 bc 00 ff mfdr r12,0x3fc
1.12213 -+ *[0-9a-f]*: e5 b5 00 80 mfdr r5,0x200
1.12214 -+ *[0-9a-f]*: e5 b4 00 7f mfdr r4,0x1fc
1.12215 -+ *[0-9a-f]*: e5 be 00 01 mfdr lr,0x4
1.12216 -+ *[0-9a-f]*: e5 b6 00 e9 mfdr r6,0x3a4
1.12217 -+ *[0-9a-f]*: e5 b5 00 09 mfdr r5,0x24
1.12218 -+ *[0-9a-f]*: e5 b9 00 4b mfdr r9,0x12c
1.12219 -+
1.12220 -+[0-9a-f]* <mtdr>:
1.12221 -+ *[0-9a-f]*: e7 bf 00 00 mtdr 0x0,pc
1.12222 -+ *[0-9a-f]*: e7 bc 00 ff mtdr 0x3fc,r12
1.12223 -+ *[0-9a-f]*: e7 b5 00 80 mtdr 0x200,r5
1.12224 -+ *[0-9a-f]*: e7 b4 00 7f mtdr 0x1fc,r4
1.12225 -+ *[0-9a-f]*: e7 be 00 01 mtdr 0x4,lr
1.12226 -+ *[0-9a-f]*: e7 b8 00 2d mtdr 0xb4,r8
1.12227 -+ *[0-9a-f]*: e7 ba 00 b4 mtdr 0x2d0,r10
1.12228 -+ *[0-9a-f]*: e7 be 00 66 mtdr 0x198,lr
1.12229 -+
1.12230 -+[0-9a-f]* <sleep>:
1.12231 -+ *[0-9a-f]*: e9 b0 00 00 sleep 0x0
1.12232 -+ *[0-9a-f]*: e9 b0 00 ff sleep 0xff
1.12233 -+ *[0-9a-f]*: e9 b0 00 80 sleep 0x80
1.12234 -+ *[0-9a-f]*: e9 b0 00 7f sleep 0x7f
1.12235 -+ *[0-9a-f]*: e9 b0 00 01 sleep 0x1
1.12236 -+ *[0-9a-f]*: e9 b0 00 fe sleep 0xfe
1.12237 -+ *[0-9a-f]*: e9 b0 00 0f sleep 0xf
1.12238 -+ *[0-9a-f]*: e9 b0 00 2b sleep 0x2b
1.12239 -+
1.12240 -+[0-9a-f]* <sync>:
1.12241 -+ *[0-9a-f]*: eb b0 00 00 sync 0x0
1.12242 -+ *[0-9a-f]*: eb b0 00 ff sync 0xff
1.12243 -+ *[0-9a-f]*: eb b0 00 80 sync 0x80
1.12244 -+ *[0-9a-f]*: eb b0 00 7f sync 0x7f
1.12245 -+ *[0-9a-f]*: eb b0 00 01 sync 0x1
1.12246 -+ *[0-9a-f]*: eb b0 00 a6 sync 0xa6
1.12247 -+ *[0-9a-f]*: eb b0 00 e6 sync 0xe6
1.12248 -+ *[0-9a-f]*: eb b0 00 b4 sync 0xb4
1.12249 -+
1.12250 -+[0-9a-f]* <bld>:
1.12251 -+ *[0-9a-f]*: ed bf 00 00 bld pc,0x0
1.12252 -+ *[0-9a-f]*: ed bc 00 1f bld r12,0x1f
1.12253 -+ *[0-9a-f]*: ed b5 00 10 bld r5,0x10
1.12254 -+ *[0-9a-f]*: ed b4 00 0f bld r4,0xf
1.12255 -+ *[0-9a-f]*: ed be 00 01 bld lr,0x1
1.12256 -+ *[0-9a-f]*: ed b9 00 0f bld r9,0xf
1.12257 -+ *[0-9a-f]*: ed b0 00 04 bld r0,0x4
1.12258 -+ *[0-9a-f]*: ed be 00 1a bld lr,0x1a
1.12259 -+
1.12260 -+[0-9a-f]* <bst>:
1.12261 -+ *[0-9a-f]*: ef bf 00 00 bst pc,0x0
1.12262 -+ *[0-9a-f]*: ef bc 00 1f bst r12,0x1f
1.12263 -+ *[0-9a-f]*: ef b5 00 10 bst r5,0x10
1.12264 -+ *[0-9a-f]*: ef b4 00 0f bst r4,0xf
1.12265 -+ *[0-9a-f]*: ef be 00 01 bst lr,0x1
1.12266 -+ *[0-9a-f]*: ef ba 00 1c bst r10,0x1c
1.12267 -+ *[0-9a-f]*: ef b0 00 03 bst r0,0x3
1.12268 -+ *[0-9a-f]*: ef bd 00 02 bst sp,0x2
1.12269 -+
1.12270 -+[0-9a-f]* <sats>:
1.12271 -+ *[0-9a-f]*: f1 bf 00 00 sats pc,0x0
1.12272 -+ *[0-9a-f]*: f1 bc 03 ff sats r12>>0x1f,0x1f
1.12273 -+ *[0-9a-f]*: f1 b5 02 10 sats r5>>0x10,0x10
1.12274 -+ *[0-9a-f]*: f1 b4 01 ef sats r4>>0xf,0xf
1.12275 -+ *[0-9a-f]*: f1 be 00 21 sats lr>>0x1,0x1
1.12276 -+ *[0-9a-f]*: f1 ba 02 63 sats r10>>0x3,0x13
1.12277 -+ *[0-9a-f]*: f1 ba 03 42 sats r10>>0x2,0x1a
1.12278 -+ *[0-9a-f]*: f1 b1 00 34 sats r1>>0x14,0x1
1.12279 -+
1.12280 -+[0-9a-f]* <satu>:
1.12281 -+ *[0-9a-f]*: f1 bf 04 00 satu pc,0x0
1.12282 -+ *[0-9a-f]*: f1 bc 07 ff satu r12>>0x1f,0x1f
1.12283 -+ *[0-9a-f]*: f1 b5 06 10 satu r5>>0x10,0x10
1.12284 -+ *[0-9a-f]*: f1 b4 05 ef satu r4>>0xf,0xf
1.12285 -+ *[0-9a-f]*: f1 be 04 21 satu lr>>0x1,0x1
1.12286 -+ *[0-9a-f]*: f1 bf 04 e5 satu pc>>0x5,0x7
1.12287 -+ *[0-9a-f]*: f1 b7 04 a5 satu r7>>0x5,0x5
1.12288 -+ *[0-9a-f]*: f1 b2 06 7a satu r2>>0x1a,0x13
1.12289 -+
1.12290 -+[0-9a-f]* <satrnds>:
1.12291 -+ *[0-9a-f]*: f3 bf 00 00 satrnds pc,0x0
1.12292 -+ *[0-9a-f]*: f3 bc 03 ff satrnds r12>>0x1f,0x1f
1.12293 -+ *[0-9a-f]*: f3 b5 02 10 satrnds r5>>0x10,0x10
1.12294 -+ *[0-9a-f]*: f3 b4 01 ef satrnds r4>>0xf,0xf
1.12295 -+ *[0-9a-f]*: f3 be 00 21 satrnds lr>>0x1,0x1
1.12296 -+ *[0-9a-f]*: f3 b0 02 75 satrnds r0>>0x15,0x13
1.12297 -+ *[0-9a-f]*: f3 bd 00 40 satrnds sp,0x2
1.12298 -+ *[0-9a-f]*: f3 b7 03 a6 satrnds r7>>0x6,0x1d
1.12299 -+
1.12300 -+[0-9a-f]* <satrndu>:
1.12301 -+ *[0-9a-f]*: f3 bf 04 00 satrndu pc,0x0
1.12302 -+ *[0-9a-f]*: f3 bc 07 ff satrndu r12>>0x1f,0x1f
1.12303 -+ *[0-9a-f]*: f3 b5 06 10 satrndu r5>>0x10,0x10
1.12304 -+ *[0-9a-f]*: f3 b4 05 ef satrndu r4>>0xf,0xf
1.12305 -+ *[0-9a-f]*: f3 be 04 21 satrndu lr>>0x1,0x1
1.12306 -+ *[0-9a-f]*: f3 bc 07 40 satrndu r12,0x1a
1.12307 -+ *[0-9a-f]*: f3 b4 04 75 satrndu r4>>0x15,0x3
1.12308 -+ *[0-9a-f]*: f3 ba 06 03 satrndu r10>>0x3,0x10
1.12309 -+
1.12310 -+[0-9a-f]* <subfc>:
1.12311 -+ *[0-9a-f]*: f5 bf 00 00 subfeq pc,0
1.12312 -+ *[0-9a-f]*: f5 bc 0f ff subfal r12,-1
1.12313 -+ *[0-9a-f]*: f5 b5 08 80 subfls r5,-128
1.12314 -+ *[0-9a-f]*: f5 b4 07 7f subfpl r4,127
1.12315 -+ *[0-9a-f]*: f5 be 01 01 subfne lr,1
1.12316 -+ *[0-9a-f]*: f5 ba 08 08 subfls r10,8
1.12317 -+ *[0-9a-f]*: f5 bb 0d 63 subfvc r11,99
1.12318 -+ *[0-9a-f]*: f5 b2 0c 49 subfvs r2,73
1.12319 -+
1.12320 -+[0-9a-f]* <subc>:
1.12321 -+ *[0-9a-f]*: f7 bf 00 00 subeq pc,0
1.12322 -+ *[0-9a-f]*: f7 bc 0f ff subal r12,-1
1.12323 -+ *[0-9a-f]*: f7 b5 08 80 subls r5,-128
1.12324 -+ *[0-9a-f]*: f7 b4 07 7f subpl r4,127
1.12325 -+ *[0-9a-f]*: f7 be 01 01 subne lr,1
1.12326 -+ *[0-9a-f]*: f7 bc 08 76 subls r12,118
1.12327 -+ *[0-9a-f]*: f7 be 0d f4 subvc lr,-12
1.12328 -+ *[0-9a-f]*: f7 b4 06 f3 submi r4,-13
1.12329 -+
1.12330 -+[0-9a-f]* <movc2>:
1.12331 -+ *[0-9a-f]*: f9 bf 00 00 moveq pc,0
1.12332 -+ *[0-9a-f]*: f9 bc 0f ff moval r12,-1
1.12333 -+ *[0-9a-f]*: f9 b5 08 80 movls r5,-128
1.12334 -+ *[0-9a-f]*: f9 b4 07 7f movpl r4,127
1.12335 -+ *[0-9a-f]*: f9 be 01 01 movne lr,1
1.12336 -+ *[0-9a-f]*: f9 b3 05 86 movlt r3,-122
1.12337 -+ *[0-9a-f]*: f9 b8 0d 02 movvc r8,2
1.12338 -+ *[0-9a-f]*: f9 b7 01 91 movne r7,-111
1.12339 -+
1.12340 -+[0-9a-f]* <cp_b>:
1.12341 -+ *[0-9a-f]*: e0 0f 18 00 cp\.b pc,r0
1.12342 -+ *[0-9a-f]*: fe 00 18 00 cp\.b r0,pc
1.12343 -+ *[0-9a-f]*: f0 07 18 00 cp\.b r7,r8
1.12344 -+ *[0-9a-f]*: ee 08 18 00 cp\.b r8,r7
1.12345 -+
1.12346 -+[0-9a-f]* <cp_h>:
1.12347 -+ *[0-9a-f]*: e0 0f 19 00 cp\.h pc,r0
1.12348 -+ *[0-9a-f]*: fe 00 19 00 cp\.h r0,pc
1.12349 -+ *[0-9a-f]*: f0 07 19 00 cp\.h r7,r8
1.12350 -+ *[0-9a-f]*: ee 08 19 00 cp\.h r8,r7
1.12351 -+
1.12352 -+[0-9a-f]* <ldm>:
1.12353 -+ *[0-9a-f]*: e1 cf 00 7e ldm pc,r1-r6
1.12354 -+ *[0-9a-f]*: e1 cc ff ff ldm r12,r0-pc
1.12355 -+ *[0-9a-f]*: e1 c5 80 00 ldm r5,pc
1.12356 -+ *[0-9a-f]*: e1 c4 7f ff ldm r4,r0-lr
1.12357 -+ *[0-9a-f]*: e1 ce 00 01 ldm lr,r0
1.12358 -+ *[0-9a-f]*: e1 c9 40 22 ldm r9,r1,r5,lr
1.12359 -+ *[0-9a-f]*: e1 cb 81 ec ldm r11,r2-r3,r5-r8,pc
1.12360 -+ *[0-9a-f]*: e1 c6 a2 09 ldm r6,r0,r3,r9,sp,pc
1.12361 -+
1.12362 -+[0-9a-f]* <ldm_pu>:
1.12363 -+ *[0-9a-f]*: e3 cf 03 c0 ldm pc\+\+,r6-r9
1.12364 -+ *[0-9a-f]*: e3 cc ff ff ldm r12\+\+,r0-pc
1.12365 -+ *[0-9a-f]*: e3 c5 80 00 ldm r5\+\+,pc
1.12366 -+ *[0-9a-f]*: e3 c4 7f ff ldm r4\+\+,r0-lr
1.12367 -+ *[0-9a-f]*: e3 ce 00 01 ldm lr\+\+,r0
1.12368 -+ *[0-9a-f]*: e3 cc d5 38 ldm r12\+\+,r3-r5,r8,r10,r12,lr-pc
1.12369 -+ *[0-9a-f]*: e3 ca c0 74 ldm r10\+\+,r2,r4-r6,lr-pc
1.12370 -+ *[0-9a-f]*: e3 c6 7e 1a ldm r6\+\+,r1,r3-r4,r9-lr
1.12371 -+
1.12372 -+[0-9a-f]* <ldmts>:
1.12373 -+ *[0-9a-f]*: e5 cf 01 80 ldmts pc,r7-r8
1.12374 -+ *[0-9a-f]*: e5 cc ff ff ldmts r12,r0-pc
1.12375 -+ *[0-9a-f]*: e5 c5 80 00 ldmts r5,pc
1.12376 -+ *[0-9a-f]*: e5 c4 7f ff ldmts r4,r0-lr
1.12377 -+ *[0-9a-f]*: e5 ce 00 01 ldmts lr,r0
1.12378 -+ *[0-9a-f]*: e5 c0 18 06 ldmts r0,r1-r2,r11-r12
1.12379 -+ *[0-9a-f]*: e5 ce 61 97 ldmts lr,r0-r2,r4,r7-r8,sp-lr
1.12380 -+ *[0-9a-f]*: e5 cc c2 3b ldmts r12,r0-r1,r3-r5,r9,lr-pc
1.12381 -+
1.12382 -+[0-9a-f]* <ldmts_pu>:
1.12383 -+ *[0-9a-f]*: e7 cf 02 00 ldmts pc\+\+,r9
1.12384 -+ *[0-9a-f]*: e7 cc ff ff ldmts r12\+\+,r0-pc
1.12385 -+ *[0-9a-f]*: e7 c5 80 00 ldmts r5\+\+,pc
1.12386 -+ *[0-9a-f]*: e7 c4 7f ff ldmts r4\+\+,r0-lr
1.12387 -+ *[0-9a-f]*: e7 ce 00 01 ldmts lr\+\+,r0
1.12388 -+ *[0-9a-f]*: e7 cd 0a bd ldmts sp\+\+,r0,r2-r5,r7,r9,r11
1.12389 -+ *[0-9a-f]*: e7 c5 0c 8e ldmts r5\+\+,r1-r3,r7,r10-r11
1.12390 -+ *[0-9a-f]*: e7 c8 a1 9c ldmts r8\+\+,r2-r4,r7-r8,sp,pc
1.12391 -+
1.12392 -+[0-9a-f]* <stm>:
1.12393 -+ *[0-9a-f]*: e9 cf 00 80 stm pc,r7
1.12394 -+ *[0-9a-f]*: e9 cc ff ff stm r12,r0-pc
1.12395 -+ *[0-9a-f]*: e9 c5 80 00 stm r5,pc
1.12396 -+ *[0-9a-f]*: e9 c4 7f ff stm r4,r0-lr
1.12397 -+ *[0-9a-f]*: e9 ce 00 01 stm lr,r0
1.12398 -+ *[0-9a-f]*: e9 cd 49 2c stm sp,r2-r3,r5,r8,r11,lr
1.12399 -+ *[0-9a-f]*: e9 c4 4c 5f stm r4,r0-r4,r6,r10-r11,lr
1.12400 -+ *[0-9a-f]*: e9 c9 f2 22 stm r9,r1,r5,r9,r12-pc
1.12401 -+
1.12402 -+[0-9a-f]* <stm_pu>:
1.12403 -+ *[0-9a-f]*: eb cf 00 70 stm --pc,r4-r6
1.12404 -+ *[0-9a-f]*: eb cc ff ff stm --r12,r0-pc
1.12405 -+ *[0-9a-f]*: eb c5 80 00 stm --r5,pc
1.12406 -+ *[0-9a-f]*: eb c4 7f ff stm --r4,r0-lr
1.12407 -+ *[0-9a-f]*: eb ce 00 01 stm --lr,r0
1.12408 -+ *[0-9a-f]*: eb cb fb f1 stm --r11,r0,r4-r9,r11-pc
1.12409 -+ *[0-9a-f]*: eb cb 56 09 stm --r11,r0,r3,r9-r10,r12,lr
1.12410 -+ *[0-9a-f]*: eb c6 63 04 stm --r6,r2,r8-r9,sp-lr
1.12411 -+
1.12412 -+[0-9a-f]* <stmts>:
1.12413 -+ *[0-9a-f]*: ed cf 01 00 stmts pc,r8
1.12414 -+ *[0-9a-f]*: ed cc ff ff stmts r12,r0-pc
1.12415 -+ *[0-9a-f]*: ed c5 80 00 stmts r5,pc
1.12416 -+ *[0-9a-f]*: ed c4 7f ff stmts r4,r0-lr
1.12417 -+ *[0-9a-f]*: ed ce 00 01 stmts lr,r0
1.12418 -+ *[0-9a-f]*: ed c1 c6 5b stmts r1,r0-r1,r3-r4,r6,r9-r10,lr-pc
1.12419 -+ *[0-9a-f]*: ed c3 1d c1 stmts r3,r0,r6-r8,r10-r12
1.12420 -+ *[0-9a-f]*: ed cb d6 d1 stmts r11,r0,r4,r6-r7,r9-r10,r12,lr-pc
1.12421 -+
1.12422 -+[0-9a-f]* <stmts_pu>:
1.12423 -+ *[0-9a-f]*: ef cf 01 c0 stmts --pc,r6-r8
1.12424 -+ *[0-9a-f]*: ef cc ff ff stmts --r12,r0-pc
1.12425 -+ *[0-9a-f]*: ef c5 80 00 stmts --r5,pc
1.12426 -+ *[0-9a-f]*: ef c4 7f ff stmts --r4,r0-lr
1.12427 -+ *[0-9a-f]*: ef ce 00 01 stmts --lr,r0
1.12428 -+ *[0-9a-f]*: ef c2 36 19 stmts --r2,r0,r3-r4,r9-r10,r12-sp
1.12429 -+ *[0-9a-f]*: ef c3 c0 03 stmts --r3,r0-r1,lr-pc
1.12430 -+ *[0-9a-f]*: ef c0 44 7d stmts --r0,r0,r2-r6,r10,lr
1.12431 -+
1.12432 -+[0-9a-f]* <ldins_h>:
1.12433 -+ *[0-9a-f]*: ff df 00 00 ldins\.h pc:b,pc\[0\]
1.12434 -+ *[0-9a-f]*: f9 dc 1f ff ldins\.h r12:t,r12\[-2\]
1.12435 -+ *[0-9a-f]*: eb d5 18 00 ldins\.h r5:t,r5\[-4096\]
1.12436 -+ *[0-9a-f]*: e9 d4 07 ff ldins\.h r4:b,r4\[4094\]
1.12437 -+ *[0-9a-f]*: fd de 10 01 ldins\.h lr:t,lr\[2\]
1.12438 -+ *[0-9a-f]*: fd d0 13 c5 ldins\.h r0:t,lr\[1930\]
1.12439 -+ *[0-9a-f]*: ef d3 0e f5 ldins\.h r3:b,r7\[-534\]
1.12440 -+ *[0-9a-f]*: f9 d2 0b 9a ldins\.h r2:b,r12\[-2252\]
1.12441 -+
1.12442 -+[0-9a-f]* <ldins_b>:
1.12443 -+ *[0-9a-f]*: ff df 40 00 ldins\.b pc:b,pc\[0\]
1.12444 -+ *[0-9a-f]*: f9 dc 7f ff ldins\.b r12:t,r12\[-1\]
1.12445 -+ *[0-9a-f]*: eb d5 68 00 ldins\.b r5:u,r5\[-2048\]
1.12446 -+ *[0-9a-f]*: e9 d4 57 ff ldins\.b r4:l,r4\[2047\]
1.12447 -+ *[0-9a-f]*: fd de 50 01 ldins\.b lr:l,lr\[1\]
1.12448 -+ *[0-9a-f]*: e9 d6 7d 6a ldins\.b r6:t,r4\[-662\]
1.12449 -+ *[0-9a-f]*: e3 d5 4f 69 ldins\.b r5:b,r1\[-151\]
1.12450 -+ *[0-9a-f]*: f7 da 78 7d ldins\.b r10:t,r11\[-1923\]
1.12451 -+
1.12452 -+[0-9a-f]* <ldswp_sh>:
1.12453 -+ *[0-9a-f]*: ff df 20 00 ldswp\.sh pc,pc\[0\]
1.12454 -+ *[0-9a-f]*: f9 dc 2f ff ldswp\.sh r12,r12\[-2\]
1.12455 -+ *[0-9a-f]*: eb d5 28 00 ldswp\.sh r5,r5\[-4096\]
1.12456 -+ *[0-9a-f]*: e9 d4 27 ff ldswp\.sh r4,r4\[4094\]
1.12457 -+ *[0-9a-f]*: fd de 20 01 ldswp\.sh lr,lr\[2\]
1.12458 -+ *[0-9a-f]*: f5 d9 27 84 ldswp\.sh r9,r10\[3848\]
1.12459 -+ *[0-9a-f]*: f9 d4 2c 04 ldswp\.sh r4,r12\[-2040\]
1.12460 -+ *[0-9a-f]*: e5 da 26 08 ldswp\.sh r10,r2\[3088\]
1.12461 -+
1.12462 -+[0-9a-f]* <ldswp_uh>:
1.12463 -+ *[0-9a-f]*: ff df 30 00 ldswp\.uh pc,pc\[0\]
1.12464 -+ *[0-9a-f]*: f9 dc 3f ff ldswp\.uh r12,r12\[-2\]
1.12465 -+ *[0-9a-f]*: eb d5 38 00 ldswp\.uh r5,r5\[-4096\]
1.12466 -+ *[0-9a-f]*: e9 d4 37 ff ldswp\.uh r4,r4\[4094\]
1.12467 -+ *[0-9a-f]*: fd de 30 01 ldswp\.uh lr,lr\[2\]
1.12468 -+ *[0-9a-f]*: f3 d4 37 46 ldswp\.uh r4,r9\[3724\]
1.12469 -+ *[0-9a-f]*: fb de 3c bc ldswp\.uh lr,sp\[-1672\]
1.12470 -+ *[0-9a-f]*: f9 d8 38 7d ldswp\.uh r8,r12\[-3846\]
1.12471 -+
1.12472 -+[0-9a-f]* <ldswp_w>:
1.12473 -+ *[0-9a-f]*: ff df 80 00 ldswp\.w pc,pc\[0\]
1.12474 -+ *[0-9a-f]*: f9 dc 8f ff ldswp\.w r12,r12\[-4\]
1.12475 -+ *[0-9a-f]*: eb d5 88 00 ldswp\.w r5,r5\[-8192\]
1.12476 -+ *[0-9a-f]*: e9 d4 87 ff ldswp\.w r4,r4\[8188\]
1.12477 -+ *[0-9a-f]*: fd de 80 01 ldswp\.w lr,lr\[4\]
1.12478 -+ *[0-9a-f]*: ef dd 81 d1 ldswp\.w sp,r7\[1860\]
1.12479 -+ *[0-9a-f]*: eb df 8c c1 ldswp\.w pc,r5\[-3324\]
1.12480 -+ *[0-9a-f]*: f5 dc 8c c8 ldswp\.w r12,r10\[-3296\]
1.12481 -+
1.12482 -+[0-9a-f]* <stswp_h>:
1.12483 -+ *[0-9a-f]*: ff df 90 00 stswp\.h pc\[0\],pc
1.12484 -+ *[0-9a-f]*: f9 dc 9f ff stswp\.h r12\[-2\],r12
1.12485 -+ *[0-9a-f]*: eb d5 98 00 stswp\.h r5\[-4096\],r5
1.12486 -+ *[0-9a-f]*: e9 d4 97 ff stswp\.h r4\[4094\],r4
1.12487 -+ *[0-9a-f]*: fd de 90 01 stswp\.h lr\[2\],lr
1.12488 -+ *[0-9a-f]*: ef da 90 20 stswp\.h r7\[64\],r10
1.12489 -+ *[0-9a-f]*: f5 d2 95 e8 stswp\.h r10\[3024\],r2
1.12490 -+ *[0-9a-f]*: e1 da 9b 74 stswp\.h r0\[-2328\],r10
1.12491 -+
1.12492 -+[0-9a-f]* <stswp_w>:
1.12493 -+ *[0-9a-f]*: ff df a0 00 stswp\.w pc\[0\],pc
1.12494 -+ *[0-9a-f]*: f9 dc af ff stswp\.w r12\[-4\],r12
1.12495 -+ *[0-9a-f]*: eb d5 a8 00 stswp\.w r5\[-8192\],r5
1.12496 -+ *[0-9a-f]*: e9 d4 a7 ff stswp\.w r4\[8188\],r4
1.12497 -+ *[0-9a-f]*: fd de a0 01 stswp\.w lr\[4\],lr
1.12498 -+ *[0-9a-f]*: ff d8 a1 21 stswp\.w pc\[1156\],r8
1.12499 -+ *[0-9a-f]*: fb da a7 ce stswp\.w sp\[7992\],r10
1.12500 -+ *[0-9a-f]*: f1 d5 ae db stswp\.w r8\[-1172\],r5
1.12501 -+
1.12502 -+[0-9a-f]* <and2>:
1.12503 -+ *[0-9a-f]*: ff ef 00 0f and pc,pc,pc
1.12504 -+ *[0-9a-f]*: f9 ec 01 fc and r12,r12,r12<<0x1f
1.12505 -+ *[0-9a-f]*: eb e5 01 05 and r5,r5,r5<<0x10
1.12506 -+ *[0-9a-f]*: e9 e4 00 f4 and r4,r4,r4<<0xf
1.12507 -+ *[0-9a-f]*: fd ee 00 1e and lr,lr,lr<<0x1
1.12508 -+ *[0-9a-f]*: e5 e1 00 1a and r10,r2,r1<<0x1
1.12509 -+ *[0-9a-f]*: f1 eb 01 bc and r12,r8,r11<<0x1b
1.12510 -+ *[0-9a-f]*: ef e0 00 3a and r10,r7,r0<<0x3
1.12511 -+
1.12512 -+[0-9a-f]* <and3>:
1.12513 -+ *[0-9a-f]*: ff ef 02 0f and pc,pc,pc
1.12514 -+ *[0-9a-f]*: f9 ec 03 fc and r12,r12,r12>>0x1f
1.12515 -+ *[0-9a-f]*: eb e5 03 05 and r5,r5,r5>>0x10
1.12516 -+ *[0-9a-f]*: e9 e4 02 f4 and r4,r4,r4>>0xf
1.12517 -+ *[0-9a-f]*: fd ee 02 1e and lr,lr,lr>>0x1
1.12518 -+ *[0-9a-f]*: f1 e7 03 1c and r12,r8,r7>>0x11
1.12519 -+ *[0-9a-f]*: e9 e9 03 4f and pc,r4,r9>>0x14
1.12520 -+ *[0-9a-f]*: f3 ea 02 ca and r10,r9,r10>>0xc
1.12521 -+
1.12522 -+[0-9a-f]* <or2>:
1.12523 -+ *[0-9a-f]*: ff ef 10 0f or pc,pc,pc
1.12524 -+ *[0-9a-f]*: f9 ec 11 fc or r12,r12,r12<<0x1f
1.12525 -+ *[0-9a-f]*: eb e5 11 05 or r5,r5,r5<<0x10
1.12526 -+ *[0-9a-f]*: e9 e4 10 f4 or r4,r4,r4<<0xf
1.12527 -+ *[0-9a-f]*: fd ee 10 1e or lr,lr,lr<<0x1
1.12528 -+ *[0-9a-f]*: fb eb 11 d8 or r8,sp,r11<<0x1d
1.12529 -+ *[0-9a-f]*: f3 e2 11 cf or pc,r9,r2<<0x1c
1.12530 -+ *[0-9a-f]*: e3 e2 10 35 or r5,r1,r2<<0x3
1.12531 -+
1.12532 -+[0-9a-f]* <or3>:
1.12533 -+ *[0-9a-f]*: ff ef 12 0f or pc,pc,pc
1.12534 -+ *[0-9a-f]*: f9 ec 13 fc or r12,r12,r12>>0x1f
1.12535 -+ *[0-9a-f]*: eb e5 13 05 or r5,r5,r5>>0x10
1.12536 -+ *[0-9a-f]*: e9 e4 12 f4 or r4,r4,r4>>0xf
1.12537 -+ *[0-9a-f]*: fd ee 12 1e or lr,lr,lr>>0x1
1.12538 -+ *[0-9a-f]*: fb ed 12 21 or r1,sp,sp>>0x2
1.12539 -+ *[0-9a-f]*: e3 e1 13 d0 or r0,r1,r1>>0x1d
1.12540 -+ *[0-9a-f]*: f9 e8 12 84 or r4,r12,r8>>0x8
1.12541 -+
1.12542 -+[0-9a-f]* <eor2>:
1.12543 -+ *[0-9a-f]*: ff ef 20 0f eor pc,pc,pc
1.12544 -+ *[0-9a-f]*: f9 ec 21 fc eor r12,r12,r12<<0x1f
1.12545 -+ *[0-9a-f]*: eb e5 21 05 eor r5,r5,r5<<0x10
1.12546 -+ *[0-9a-f]*: e9 e4 20 f4 eor r4,r4,r4<<0xf
1.12547 -+ *[0-9a-f]*: fd ee 20 1e eor lr,lr,lr<<0x1
1.12548 -+ *[0-9a-f]*: f3 e4 20 ba eor r10,r9,r4<<0xb
1.12549 -+ *[0-9a-f]*: e1 e1 21 f4 eor r4,r0,r1<<0x1f
1.12550 -+ *[0-9a-f]*: e5 ec 20 d6 eor r6,r2,r12<<0xd
1.12551 -+
1.12552 -+[0-9a-f]* <eor3>:
1.12553 -+ *[0-9a-f]*: ff ef 22 0f eor pc,pc,pc
1.12554 -+ *[0-9a-f]*: f9 ec 23 fc eor r12,r12,r12>>0x1f
1.12555 -+ *[0-9a-f]*: eb e5 23 05 eor r5,r5,r5>>0x10
1.12556 -+ *[0-9a-f]*: e9 e4 22 f4 eor r4,r4,r4>>0xf
1.12557 -+ *[0-9a-f]*: fd ee 22 1e eor lr,lr,lr>>0x1
1.12558 -+ *[0-9a-f]*: eb e5 23 65 eor r5,r5,r5>>0x16
1.12559 -+ *[0-9a-f]*: e3 ee 22 3a eor r10,r1,lr>>0x3
1.12560 -+ *[0-9a-f]*: fd ed 23 a7 eor r7,lr,sp>>0x1a
1.12561 -+
1.12562 -+[0-9a-f]* <sthh_w2>:
1.12563 -+ *[0-9a-f]*: ff ef 8f 0f sthh\.w pc\[pc\],pc:b,pc:b
1.12564 -+ *[0-9a-f]*: f9 ec bc 3c sthh\.w r12\[r12<<0x3\],r12:t,r12:t
1.12565 -+ *[0-9a-f]*: eb e5 b5 25 sthh\.w r5\[r5<<0x2\],r5:t,r5:t
1.12566 -+ *[0-9a-f]*: e9 e4 84 14 sthh\.w r4\[r4<<0x1\],r4:b,r4:b
1.12567 -+ *[0-9a-f]*: fd ee be 1e sthh\.w lr\[lr<<0x1\],lr:t,lr:t
1.12568 -+ *[0-9a-f]*: e3 ec b6 3d sthh\.w sp\[r6<<0x3\],r1:t,r12:t
1.12569 -+ *[0-9a-f]*: f3 e9 b6 06 sthh\.w r6\[r6\],r9:t,r9:t
1.12570 -+ *[0-9a-f]*: e1 eb 93 0a sthh\.w r10\[r3\],r0:b,r11:t
1.12571 -+
1.12572 -+[0-9a-f]* <sthh_w1>:
1.12573 -+ *[0-9a-f]*: ff ef c0 0f sthh\.w pc\[0x0\],pc:b,pc:b
1.12574 -+ *[0-9a-f]*: f9 ec ff fc sthh\.w r12\[0x3fc\],r12:t,r12:t
1.12575 -+ *[0-9a-f]*: eb e5 f8 05 sthh\.w r5\[0x200\],r5:t,r5:t
1.12576 -+ *[0-9a-f]*: e9 e4 c7 f4 sthh\.w r4\[0x1fc\],r4:b,r4:b
1.12577 -+ *[0-9a-f]*: fd ee f0 1e sthh\.w lr\[0x4\],lr:t,lr:t
1.12578 -+ *[0-9a-f]*: f3 e0 e6 54 sthh\.w r4\[0x194\],r9:t,r0:b
1.12579 -+ *[0-9a-f]*: e5 ea e5 78 sthh\.w r8\[0x15c\],r2:t,r10:b
1.12580 -+ *[0-9a-f]*: f3 e2 c2 bd sthh\.w sp\[0xac\],r9:b,r2:b
1.12581 -+
1.12582 -+[0-9a-f]* <cop>:
1.12583 -+ *[0-9a-f]*: e1 a0 00 00 cop cp0,cr0,cr0,cr0,0x0
1.12584 -+ *[0-9a-f]*: e7 af ff ff cop cp7,cr15,cr15,cr15,0x7f
1.12585 -+ *[0-9a-f]*: e3 a8 75 55 cop cp3,cr5,cr5,cr5,0x31
1.12586 -+ *[0-9a-f]*: e3 a8 44 44 cop cp2,cr4,cr4,cr4,0x30
1.12587 -+ *[0-9a-f]*: e5 ad a8 37 cop cp5,cr8,cr3,cr7,0x5a
1.12588 -+
1.12589 -+[0-9a-f]* <ldc_w1>:
1.12590 -+ *[0-9a-f]*: e9 a0 00 00 ldc\.w cp0,cr0,r0\[0x0\]
1.12591 -+ *[0-9a-f]*: e9 af ef ff ldc\.w cp7,cr15,pc\[0x3fc\]
1.12592 -+ *[0-9a-f]*: e9 a5 65 80 ldc\.w cp3,cr5,r5\[0x200\]
1.12593 -+ *[0-9a-f]*: e9 a4 44 7f ldc\.w cp2,cr4,r4\[0x1fc\]
1.12594 -+ *[0-9a-f]*: e9 ad 89 24 ldc\.w cp4,cr9,sp\[0x90\]
1.12595 -+
1.12596 -+[0-9a-f]* <ldc_w2>:
1.12597 -+ *[0-9a-f]*: ef a0 00 40 ldc\.w cp0,cr0,--r0
1.12598 -+ *[0-9a-f]*: ef af ef 40 ldc\.w cp7,cr15,--pc
1.12599 -+ *[0-9a-f]*: ef a5 65 40 ldc\.w cp3,cr5,--r5
1.12600 -+ *[0-9a-f]*: ef a4 44 40 ldc\.w cp2,cr4,--r4
1.12601 -+ *[0-9a-f]*: ef ad 89 40 ldc\.w cp4,cr9,--sp
1.12602 -+
1.12603 -+[0-9a-f]* <ldc_w3>:
1.12604 -+ *[0-9a-f]*: ef a0 10 00 ldc\.w cp0,cr0,r0\[r0\]
1.12605 -+ *[0-9a-f]*: ef af ff 3f ldc\.w cp7,cr15,pc\[pc<<0x3\]
1.12606 -+ *[0-9a-f]*: ef a5 75 24 ldc\.w cp3,cr5,r5\[r4<<0x2\]
1.12607 -+ *[0-9a-f]*: ef a4 54 13 ldc\.w cp2,cr4,r4\[r3<<0x1\]
1.12608 -+ *[0-9a-f]*: ef ad 99 0c ldc\.w cp4,cr9,sp\[r12\]
1.12609 -+
1.12610 -+[0-9a-f]* <ldc_d1>:
1.12611 -+ *[0-9a-f]*: e9 a0 10 00 ldc\.d cp0,cr0,r0\[0x0\]
1.12612 -+ *[0-9a-f]*: e9 af fe ff ldc\.d cp7,cr14,pc\[0x3fc\]
1.12613 -+ *[0-9a-f]*: e9 a5 76 80 ldc\.d cp3,cr6,r5\[0x200\]
1.12614 -+ *[0-9a-f]*: e9 a4 54 7f ldc\.d cp2,cr4,r4\[0x1fc\]
1.12615 -+ *[0-9a-f]*: e9 ad 98 24 ldc\.d cp4,cr8,sp\[0x90\]
1.12616 -+
1.12617 -+[0-9a-f]* <ldc_d2>:
1.12618 -+ *[0-9a-f]*: ef a0 00 50 ldc\.d cp0,cr0,--r0
1.12619 -+ *[0-9a-f]*: ef af ee 50 ldc\.d cp7,cr14,--pc
1.12620 -+ *[0-9a-f]*: ef a5 66 50 ldc\.d cp3,cr6,--r5
1.12621 -+ *[0-9a-f]*: ef a4 44 50 ldc\.d cp2,cr4,--r4
1.12622 -+ *[0-9a-f]*: ef ad 88 50 ldc\.d cp4,cr8,--sp
1.12623 -+
1.12624 -+[0-9a-f]* <ldc_d3>:
1.12625 -+ *[0-9a-f]*: ef a0 10 40 ldc\.d cp0,cr0,r0\[r0\]
1.12626 -+ *[0-9a-f]*: ef af fe 7f ldc\.d cp7,cr14,pc\[pc<<0x3\]
1.12627 -+ *[0-9a-f]*: ef a5 76 64 ldc\.d cp3,cr6,r5\[r4<<0x2\]
1.12628 -+ *[0-9a-f]*: ef a4 54 53 ldc\.d cp2,cr4,r4\[r3<<0x1\]
1.12629 -+ *[0-9a-f]*: ef ad 98 4c ldc\.d cp4,cr8,sp\[r12\]
1.12630 -+
1.12631 -+[0-9a-f]* <stc_w1>:
1.12632 -+ *[0-9a-f]*: eb a0 00 00 stc\.w cp0,r0\[0x0\],cr0
1.12633 -+ *[0-9a-f]*: eb af ef ff stc\.w cp7,pc\[0x3fc\],cr15
1.12634 -+ *[0-9a-f]*: eb a5 65 80 stc\.w cp3,r5\[0x200\],cr5
1.12635 -+ *[0-9a-f]*: eb a4 44 7f stc\.w cp2,r4\[0x1fc\],cr4
1.12636 -+ *[0-9a-f]*: eb ad 89 24 stc\.w cp4,sp\[0x90\],cr9
1.12637 -+
1.12638 -+[0-9a-f]* <stc_w2>:
1.12639 -+ *[0-9a-f]*: ef a0 00 60 stc\.w cp0,r0\+\+,cr0
1.12640 -+ *[0-9a-f]*: ef af ef 60 stc\.w cp7,pc\+\+,cr15
1.12641 -+ *[0-9a-f]*: ef a5 65 60 stc\.w cp3,r5\+\+,cr5
1.12642 -+ *[0-9a-f]*: ef a4 44 60 stc\.w cp2,r4\+\+,cr4
1.12643 -+ *[0-9a-f]*: ef ad 89 60 stc\.w cp4,sp\+\+,cr9
1.12644 -+
1.12645 -+[0-9a-f]* <stc_w3>:
1.12646 -+ *[0-9a-f]*: ef a0 10 80 stc\.w cp0,r0\[r0\],cr0
1.12647 -+ *[0-9a-f]*: ef af ff bf stc\.w cp7,pc\[pc<<0x3\],cr15
1.12648 -+ *[0-9a-f]*: ef a5 75 a4 stc\.w cp3,r5\[r4<<0x2\],cr5
1.12649 -+ *[0-9a-f]*: ef a4 54 93 stc\.w cp2,r4\[r3<<0x1\],cr4
1.12650 -+ *[0-9a-f]*: ef ad 99 8c stc\.w cp4,sp\[r12\],cr9
1.12651 -+
1.12652 -+[0-9a-f]* <stc_d1>:
1.12653 -+ *[0-9a-f]*: eb a0 10 00 stc\.d cp0,r0\[0x0\],cr0
1.12654 -+ *[0-9a-f]*: eb af fe ff stc\.d cp7,pc\[0x3fc\],cr14
1.12655 -+ *[0-9a-f]*: eb a5 76 80 stc\.d cp3,r5\[0x200\],cr6
1.12656 -+ *[0-9a-f]*: eb a4 54 7f stc\.d cp2,r4\[0x1fc\],cr4
1.12657 -+ *[0-9a-f]*: eb ad 98 24 stc\.d cp4,sp\[0x90\],cr8
1.12658 -+
1.12659 -+[0-9a-f]* <stc_d2>:
1.12660 -+ *[0-9a-f]*: ef a0 00 70 stc\.d cp0,r0\+\+,cr0
1.12661 -+ *[0-9a-f]*: ef af ee 70 stc\.d cp7,pc\+\+,cr14
1.12662 -+ *[0-9a-f]*: ef a5 66 70 stc\.d cp3,r5\+\+,cr6
1.12663 -+ *[0-9a-f]*: ef a4 44 70 stc\.d cp2,r4\+\+,cr4
1.12664 -+ *[0-9a-f]*: ef ad 88 70 stc\.d cp4,sp\+\+,cr8
1.12665 -+
1.12666 -+[0-9a-f]* <stc_d3>:
1.12667 -+ *[0-9a-f]*: ef a0 10 c0 stc\.d cp0,r0\[r0\],cr0
1.12668 -+ *[0-9a-f]*: ef af fe ff stc\.d cp7,pc\[pc<<0x3\],cr14
1.12669 -+ *[0-9a-f]*: ef a5 76 e4 stc\.d cp3,r5\[r4<<0x2\],cr6
1.12670 -+ *[0-9a-f]*: ef a4 54 d3 stc\.d cp2,r4\[r3<<0x1\],cr4
1.12671 -+ *[0-9a-f]*: ef ad 98 cc stc\.d cp4,sp\[r12\],cr8
1.12672 -+
1.12673 -+[0-9a-f]* <ldc0_w>:
1.12674 -+ *[0-9a-f]*: f1 a0 00 00 ldc0\.w cr0,r0\[0x0\]
1.12675 -+ *[0-9a-f]*: f1 af ff ff ldc0\.w cr15,pc\[0x3ffc\]
1.12676 -+ *[0-9a-f]*: f1 a5 85 00 ldc0\.w cr5,r5\[0x2000\]
1.12677 -+ *[0-9a-f]*: f1 a4 74 ff ldc0\.w cr4,r4\[0x1ffc\]
1.12678 -+ *[0-9a-f]*: f1 ad 09 93 ldc0\.w cr9,sp\[0x24c\]
1.12679 -+
1.12680 -+[0-9a-f]* <ldc0_d>:
1.12681 -+ *[0-9a-f]*: f3 a0 00 00 ldc0\.d cr0,r0\[0x0\]
1.12682 -+ *[0-9a-f]*: f3 af fe ff ldc0\.d cr14,pc\[0x3ffc\]
1.12683 -+ *[0-9a-f]*: f3 a5 86 00 ldc0\.d cr6,r5\[0x2000\]
1.12684 -+ *[0-9a-f]*: f3 a4 74 ff ldc0\.d cr4,r4\[0x1ffc\]
1.12685 -+ *[0-9a-f]*: f3 ad 08 93 ldc0\.d cr8,sp\[0x24c\]
1.12686 -+
1.12687 -+[0-9a-f]* <stc0_w>:
1.12688 -+ *[0-9a-f]*: f5 a0 00 00 stc0\.w r0\[0x0\],cr0
1.12689 -+ *[0-9a-f]*: f5 af ff ff stc0\.w pc\[0x3ffc\],cr15
1.12690 -+ *[0-9a-f]*: f5 a5 85 00 stc0\.w r5\[0x2000\],cr5
1.12691 -+ *[0-9a-f]*: f5 a4 74 ff stc0\.w r4\[0x1ffc\],cr4
1.12692 -+ *[0-9a-f]*: f5 ad 09 93 stc0\.w sp\[0x24c\],cr9
1.12693 -+
1.12694 -+[0-9a-f]* <stc0_d>:
1.12695 -+ *[0-9a-f]*: f7 a0 00 00 stc0\.d r0\[0x0\],cr0
1.12696 -+ *[0-9a-f]*: f7 af fe ff stc0\.d pc\[0x3ffc\],cr14
1.12697 -+ *[0-9a-f]*: f7 a5 86 00 stc0\.d r5\[0x2000\],cr6
1.12698 -+ *[0-9a-f]*: f7 a4 74 ff stc0\.d r4\[0x1ffc\],cr4
1.12699 -+ *[0-9a-f]*: f7 ad 08 93 stc0\.d sp\[0x24c\],cr8
1.12700 -+
1.12701 -+[0-9a-f]* <memc>:
1.12702 -+ *[0-9a-f]*: f6 10 00 00 memc 0,0x0
1.12703 -+ *[0-9a-f]*: f6 1f ff ff memc -4,0x1f
1.12704 -+ *[0-9a-f]*: f6 18 40 00 memc -65536,0x10
1.12705 -+ *[0-9a-f]*: f6 17 bf ff memc 65532,0xf
1.12706 -+
1.12707 -+[0-9a-f]* <mems>:
1.12708 -+ *[0-9a-f]*: f8 10 00 00 mems 0,0x0
1.12709 -+ *[0-9a-f]*: f8 1f ff ff mems -4,0x1f
1.12710 -+ *[0-9a-f]*: f8 18 40 00 mems -65536,0x10
1.12711 -+ *[0-9a-f]*: f8 17 bf ff mems 65532,0xf
1.12712 -+
1.12713 -+[0-9a-f]* <memt>:
1.12714 -+ *[0-9a-f]*: fa 10 00 00 memt 0,0x0
1.12715 -+ *[0-9a-f]*: fa 1f ff ff memt -4,0x1f
1.12716 -+ *[0-9a-f]*: fa 18 40 00 memt -65536,0x10
1.12717 -+ *[0-9a-f]*: fa 17 bf ff memt 65532,0xf
1.12718 -+
1.12719 -+[0-9a-f]* <stcond>:
1.12720 -+ *[0-9a-f]*: e1 70 00 00 stcond r0\[0\],r0
1.12721 -+ *[0-9a-f]*: ff 7f ff ff stcond pc\[-1\],pc
1.12722 -+ *[0-9a-f]*: f1 77 80 00 stcond r8\[-32768\],r7
1.12723 -+ *[0-9a-f]*: ef 78 7f ff stcond r7\[32767\],r8
1.12724 -+ *[0-9a-f]*: eb 7a 12 34 stcond r5\[4660\],r10
1.12725 -+
1.12726 -+[0-9a-f]* <ldcm_w>:
1.12727 -+ *[0-9a-f]*: ed af 00 ff ldcm\.w cp0,pc,cr0-cr7
1.12728 -+ *[0-9a-f]*: ed a0 e0 01 ldcm\.w cp7,r0,cr0
1.12729 -+ *[0-9a-f]*: ed a4 90 7f ldcm\.w cp4,r4\+\+,cr0-cr6
1.12730 -+ *[0-9a-f]*: ed a7 60 80 ldcm\.w cp3,r7,cr7
1.12731 -+ *[0-9a-f]*: ed ac 30 72 ldcm\.w cp1,r12\+\+,cr1,cr4-cr6
1.12732 -+ *[0-9a-f]*: ed af 01 ff ldcm\.w cp0,pc,cr8-cr15
1.12733 -+ *[0-9a-f]*: ed a0 e1 01 ldcm\.w cp7,r0,cr8
1.12734 -+ *[0-9a-f]*: ed a4 91 7f ldcm\.w cp4,r4\+\+,cr8-cr14
1.12735 -+ *[0-9a-f]*: ed a7 61 80 ldcm\.w cp3,r7,cr15
1.12736 -+ *[0-9a-f]*: ed ac 31 72 ldcm\.w cp1,r12\+\+,cr9,cr12-cr14
1.12737 -+
1.12738 -+[0-9a-f]* <ldcm_d>:
1.12739 -+ *[0-9a-f]*: ed af 04 ff ldcm\.d cp0,pc,cr0-cr15
1.12740 -+ *[0-9a-f]*: ed a0 e4 01 ldcm\.d cp7,r0,cr0-cr1
1.12741 -+ *[0-9a-f]*: ed a4 94 7f ldcm\.d cp4,r4\+\+,cr0-cr13
1.12742 -+ *[0-9a-f]*: ed a7 64 80 ldcm\.d cp3,r7,cr14-cr15
1.12743 -+ *[0-9a-f]*: ed ac 54 93 ldcm\.d cp2,r12\+\+,cr0-cr3,cr8-cr9,cr14-cr15
1.12744 -+
1.12745 -+[0-9a-f]* <stcm_w>:
1.12746 -+ *[0-9a-f]*: ed af 02 ff stcm\.w cp0,pc,cr0-cr7
1.12747 -+ *[0-9a-f]*: ed a0 e2 01 stcm\.w cp7,r0,cr0
1.12748 -+ *[0-9a-f]*: ed a4 92 7f stcm\.w cp4,--r4,cr0-cr6
1.12749 -+ *[0-9a-f]*: ed a7 62 80 stcm\.w cp3,r7,cr7
1.12750 -+ *[0-9a-f]*: ed ac 32 72 stcm\.w cp1,--r12,cr1,cr4-cr6
1.12751 -+ *[0-9a-f]*: ed af 03 ff stcm\.w cp0,pc,cr8-cr15
1.12752 -+ *[0-9a-f]*: ed a0 e3 01 stcm\.w cp7,r0,cr8
1.12753 -+ *[0-9a-f]*: ed a4 93 7f stcm\.w cp4,--r4,cr8-cr14
1.12754 -+ *[0-9a-f]*: ed a7 63 80 stcm\.w cp3,r7,cr15
1.12755 -+ *[0-9a-f]*: ed ac 33 72 stcm\.w cp1,--r12,cr9,cr12-cr14
1.12756 -+
1.12757 -+[0-9a-f]* <stcm_d>:
1.12758 -+ *[0-9a-f]*: ed af 05 ff stcm\.d cp0,pc,cr0-cr15
1.12759 -+ *[0-9a-f]*: ed a0 e5 01 stcm\.d cp7,r0,cr0-cr1
1.12760 -+ *[0-9a-f]*: ed a4 95 7f stcm\.d cp4,--r4,cr0-cr13
1.12761 -+ *[0-9a-f]*: ed a7 65 80 stcm\.d cp3,r7,cr14-cr15
1.12762 -+ *[0-9a-f]*: ed ac 55 93 stcm\.d cp2,--r12,cr0-cr3,cr8-cr9,cr14-cr15
1.12763 -+
1.12764 -+[0-9a-f]* <mvcr_w>:
1.12765 -+ *[0-9a-f]*: ef af ef 00 mvcr\.w cp7,pc,cr15
1.12766 -+ *[0-9a-f]*: ef a0 00 00 mvcr\.w cp0,r0,cr0
1.12767 -+ *[0-9a-f]*: ef af 0f 00 mvcr\.w cp0,pc,cr15
1.12768 -+ *[0-9a-f]*: ef a0 ef 00 mvcr\.w cp7,r0,cr15
1.12769 -+ *[0-9a-f]*: ef af e0 00 mvcr\.w cp7,pc,cr0
1.12770 -+ *[0-9a-f]*: ef a7 88 00 mvcr\.w cp4,r7,cr8
1.12771 -+ *[0-9a-f]*: ef a8 67 00 mvcr\.w cp3,r8,cr7
1.12772 -+
1.12773 -+[0-9a-f]* <mvcr_d>:
1.12774 -+ *[0-9a-f]*: ef ae ee 10 mvcr\.d cp7,lr,cr14
1.12775 -+ *[0-9a-f]*: ef a0 00 10 mvcr\.d cp0,r0,cr0
1.12776 -+ *[0-9a-f]*: ef ae 0e 10 mvcr\.d cp0,lr,cr14
1.12777 -+ *[0-9a-f]*: ef a0 ee 10 mvcr\.d cp7,r0,cr14
1.12778 -+ *[0-9a-f]*: ef ae e0 10 mvcr\.d cp7,lr,cr0
1.12779 -+ *[0-9a-f]*: ef a6 88 10 mvcr\.d cp4,r6,cr8
1.12780 -+ *[0-9a-f]*: ef a8 66 10 mvcr\.d cp3,r8,cr6
1.12781 -+
1.12782 -+[0-9a-f]* <mvrc_w>:
1.12783 -+ *[0-9a-f]*: ef af ef 20 mvrc\.w cp7,cr15,pc
1.12784 -+ *[0-9a-f]*: ef a0 00 20 mvrc\.w cp0,cr0,r0
1.12785 -+ *[0-9a-f]*: ef af 0f 20 mvrc\.w cp0,cr15,pc
1.12786 -+ *[0-9a-f]*: ef a0 ef 20 mvrc\.w cp7,cr15,r0
1.12787 -+ *[0-9a-f]*: ef af e0 20 mvrc\.w cp7,cr0,pc
1.12788 -+ *[0-9a-f]*: ef a7 88 20 mvrc\.w cp4,cr8,r7
1.12789 -+ *[0-9a-f]*: ef a8 67 20 mvrc\.w cp3,cr7,r8
1.12790 -+
1.12791 -+[0-9a-f]* <mvrc_d>:
1.12792 -+ *[0-9a-f]*: ef ae ee 30 mvrc\.d cp7,cr14,lr
1.12793 -+ *[0-9a-f]*: ef a0 00 30 mvrc\.d cp0,cr0,r0
1.12794 -+ *[0-9a-f]*: ef ae 0e 30 mvrc\.d cp0,cr14,lr
1.12795 -+ *[0-9a-f]*: ef a0 ee 30 mvrc\.d cp7,cr14,r0
1.12796 -+ *[0-9a-f]*: ef ae e0 30 mvrc\.d cp7,cr0,lr
1.12797 -+ *[0-9a-f]*: ef a6 88 30 mvrc\.d cp4,cr8,r6
1.12798 -+ *[0-9a-f]*: ef a8 66 30 mvrc\.d cp3,cr6,r8
1.12799 -+
1.12800 -+[0-9a-f]* <bfexts>:
1.12801 -+ *[0-9a-f]*: ff df b3 ff bfexts pc,pc,0x1f,0x1f
1.12802 -+ *[0-9a-f]*: e1 d0 b0 00 bfexts r0,r0,0x0,0x0
1.12803 -+ *[0-9a-f]*: e1 df b3 ff bfexts r0,pc,0x1f,0x1f
1.12804 -+ *[0-9a-f]*: ff d0 b3 ff bfexts pc,r0,0x1f,0x1f
1.12805 -+ *[0-9a-f]*: ff df b0 1f bfexts pc,pc,0x0,0x1f
1.12806 -+ *[0-9a-f]*: ff df b3 e0 bfexts pc,pc,0x1f,0x0
1.12807 -+ *[0-9a-f]*: ef d8 b1 f0 bfexts r7,r8,0xf,0x10
1.12808 -+ *[0-9a-f]*: f1 d7 b2 0f bfexts r8,r7,0x10,0xf
1.12809 -+
1.12810 -+[0-9a-f]* <bfextu>:
1.12811 -+ *[0-9a-f]*: ff df c3 ff bfextu pc,pc,0x1f,0x1f
1.12812 -+ *[0-9a-f]*: e1 d0 c0 00 bfextu r0,r0,0x0,0x0
1.12813 -+ *[0-9a-f]*: e1 df c3 ff bfextu r0,pc,0x1f,0x1f
1.12814 -+ *[0-9a-f]*: ff d0 c3 ff bfextu pc,r0,0x1f,0x1f
1.12815 -+ *[0-9a-f]*: ff df c0 1f bfextu pc,pc,0x0,0x1f
1.12816 -+ *[0-9a-f]*: ff df c3 e0 bfextu pc,pc,0x1f,0x0
1.12817 -+ *[0-9a-f]*: ef d8 c1 f0 bfextu r7,r8,0xf,0x10
1.12818 -+ *[0-9a-f]*: f1 d7 c2 0f bfextu r8,r7,0x10,0xf
1.12819 -+
1.12820 -+[0-9a-f]* <bfins>:
1.12821 -+ *[0-9a-f]*: ff df d3 ff bfins pc,pc,0x1f,0x1f
1.12822 -+ *[0-9a-f]*: e1 d0 d0 00 bfins r0,r0,0x0,0x0
1.12823 -+ *[0-9a-f]*: e1 df d3 ff bfins r0,pc,0x1f,0x1f
1.12824 -+ *[0-9a-f]*: ff d0 d3 ff bfins pc,r0,0x1f,0x1f
1.12825 -+ *[0-9a-f]*: ff df d0 1f bfins pc,pc,0x0,0x1f
1.12826 -+ *[0-9a-f]*: ff df d3 e0 bfins pc,pc,0x1f,0x0
1.12827 -+ *[0-9a-f]*: ef d8 d1 f0 bfins r7,r8,0xf,0x10
1.12828 -+ *[0-9a-f]*: f1 d7 d2 0f bfins r8,r7,0x10,0xf
1.12829 -+
1.12830 -+[0-9a-f]* <rsubc>:
1.12831 -+ *[0-9a-f]*: fb bf 00 00 rsubeq pc,0
1.12832 -+ *[0-9a-f]*: fb bc 0f ff rsubal r12,-1
1.12833 -+ *[0-9a-f]*: fb b5 08 80 rsubls r5,-128
1.12834 -+ *[0-9a-f]*: fb b4 07 7f rsubpl r4,127
1.12835 -+ *[0-9a-f]*: fb be 01 01 rsubne lr,1
1.12836 -+ *[0-9a-f]*: fb bc 08 76 rsubls r12,118
1.12837 -+ *[0-9a-f]*: fb be 0d f4 rsubvc lr,-12
1.12838 -+ *[0-9a-f]*: fb b4 06 f3 rsubmi r4,-13
1.12839 -+
1.12840 -+[0-9a-f]* <addc>:
1.12841 -+ *[0-9a-f]*: ff df e0 0f addeq pc,pc,pc
1.12842 -+ *[0-9a-f]*: f9 dc ef 0c addal r12,r12,r12
1.12843 -+ *[0-9a-f]*: eb d5 e8 05 addls r5,r5,r5
1.12844 -+ *[0-9a-f]*: e9 d4 e7 04 addpl r4,r4,r4
1.12845 -+ *[0-9a-f]*: fd de e1 0e addne lr,lr,lr
1.12846 -+ *[0-9a-f]*: e5 d1 e8 0a addls r10,r2,r1
1.12847 -+ *[0-9a-f]*: f1 db ed 0c addvc r12,r8,r11
1.12848 -+ *[0-9a-f]*: ef d0 e6 0a addmi r10,r7,r0
1.12849 -+
1.12850 -+[0-9a-f]* <subc2>:
1.12851 -+ *[0-9a-f]*: ff df e0 1f subeq pc,pc,pc
1.12852 -+ *[0-9a-f]*: f9 dc ef 1c subal r12,r12,r12
1.12853 -+ *[0-9a-f]*: eb d5 e8 15 subls r5,r5,r5
1.12854 -+ *[0-9a-f]*: e9 d4 e7 14 subpl r4,r4,r4
1.12855 -+ *[0-9a-f]*: fd de e1 1e subne lr,lr,lr
1.12856 -+ *[0-9a-f]*: e5 d1 e8 1a subls r10,r2,r1
1.12857 -+ *[0-9a-f]*: f1 db ed 1c subvc r12,r8,r11
1.12858 -+ *[0-9a-f]*: ef d0 e6 1a submi r10,r7,r0
1.12859 -+
1.12860 -+[0-9a-f]* <andc>:
1.12861 -+ *[0-9a-f]*: ff df e0 2f andeq pc,pc,pc
1.12862 -+ *[0-9a-f]*: f9 dc ef 2c andal r12,r12,r12
1.12863 -+ *[0-9a-f]*: eb d5 e8 25 andls r5,r5,r5
1.12864 -+ *[0-9a-f]*: e9 d4 e7 24 andpl r4,r4,r4
1.12865 -+ *[0-9a-f]*: fd de e1 2e andne lr,lr,lr
1.12866 -+ *[0-9a-f]*: e5 d1 e8 2a andls r10,r2,r1
1.12867 -+ *[0-9a-f]*: f1 db ed 2c andvc r12,r8,r11
1.12868 -+ *[0-9a-f]*: ef d0 e6 2a andmi r10,r7,r0
1.12869 -+
1.12870 -+[0-9a-f]* <orc>:
1.12871 -+ *[0-9a-f]*: ff df e0 3f oreq pc,pc,pc
1.12872 -+ *[0-9a-f]*: f9 dc ef 3c oral r12,r12,r12
1.12873 -+ *[0-9a-f]*: eb d5 e8 35 orls r5,r5,r5
1.12874 -+ *[0-9a-f]*: e9 d4 e7 34 orpl r4,r4,r4
1.12875 -+ *[0-9a-f]*: fd de e1 3e orne lr,lr,lr
1.12876 -+ *[0-9a-f]*: e5 d1 e8 3a orls r10,r2,r1
1.12877 -+ *[0-9a-f]*: f1 db ed 3c orvc r12,r8,r11
1.12878 -+ *[0-9a-f]*: ef d0 e6 3a ormi r10,r7,r0
1.12879 -+
1.12880 -+[0-9a-f]* <eorc>:
1.12881 -+ *[0-9a-f]*: ff df e0 4f eoreq pc,pc,pc
1.12882 -+ *[0-9a-f]*: f9 dc ef 4c eoral r12,r12,r12
1.12883 -+ *[0-9a-f]*: eb d5 e8 45 eorls r5,r5,r5
1.12884 -+ *[0-9a-f]*: e9 d4 e7 44 eorpl r4,r4,r4
1.12885 -+ *[0-9a-f]*: fd de e1 4e eorne lr,lr,lr
1.12886 -+ *[0-9a-f]*: e5 d1 e8 4a eorls r10,r2,r1
1.12887 -+ *[0-9a-f]*: f1 db ed 4c eorvc r12,r8,r11
1.12888 -+ *[0-9a-f]*: ef d0 e6 4a eormi r10,r7,r0
1.12889 -+
1.12890 -+[0-9a-f]* <ldcond>:
1.12891 -+ *[0-9a-f]*: ff ff 01 ff ld.weq pc,pc[0x7fc]
1.12892 -+ *[0-9a-f]*: f9 fc f3 ff ld.shal r12,r12[0x3fe]
1.12893 -+ *[0-9a-f]*: eb f5 84 00 ld.shls r5,r5[0x0]
1.12894 -+ *[0-9a-f]*: e9 f4 79 ff ld.ubpl r4,r4[0x1ff]
1.12895 -+ *[0-9a-f]*: fd fe 16 00 ld.sbne lr,lr[0x0]
1.12896 -+ *[0-9a-f]*: e5 fa 80 00 ld.wls r10,r2[0x0]
1.12897 -+ *[0-9a-f]*: f1 fc d3 ff ld.shvc r12,r8[0x3fe]
1.12898 -+ *[0-9a-f]*: ef fa 68 01 ld.ubmi r10,r7[0x1]
1.12899 -+
1.12900 -+[0-9a-f]* <stcond2>:
1.12901 -+ *[0-9a-f]*: ff ff 0b ff st.weq pc[0x7fc],pc
1.12902 -+ *[0-9a-f]*: f9 fc fd ff st.hal r12[0x3fe],r12
1.12903 -+ *[0-9a-f]*: eb f5 8c 00 st.hls r5[0x0],r5
1.12904 -+ *[0-9a-f]*: e9 f4 7f ff st.bpl r4[0x1ff],r4
1.12905 -+ *[0-9a-f]*: fd fe 1e 00 st.bne lr[0x0],lr
1.12906 -+ *[0-9a-f]*: e5 fa 8a 00 st.wls r2[0x0],r10
1.12907 -+ *[0-9a-f]*: f1 fc dd ff st.hvc r8[0x3fe],r12
1.12908 -+ *[0-9a-f]*: ef fa 6e 01 st.bmi r7[0x1],r10
1.12909 -+
1.12910 -+[0-9a-f]* <movh>:
1.12911 -+ *[0-9a-f]*: fc 1f ff ff movh pc,0xffff
1.12912 -+ *[0-9a-f]*: fc 10 00 00 movh r0,0x0
1.12913 -+ *[0-9a-f]*: fc 15 00 01 movh r5,0x1
1.12914 -+ *[0-9a-f]*: fc 1c 7f ff movh r12,0x7fff
1.12915 -+
1.12916 ---- /dev/null
1.12917 -+++ b/gas/testsuite/gas/avr32/allinsn.exp
1.12918 -@@ -0,0 +1,5 @@
1.12919 -+# AVR32 assembler testsuite. -*- Tcl -*-
1.12920 -+
1.12921 -+if [istarget avr32-*-*] {
1.12922 -+ run_dump_test "allinsn"
1.12923 -+}
1.12924 ---- /dev/null
1.12925 -+++ b/gas/testsuite/gas/avr32/allinsn.s
1.12926 -@@ -0,0 +1,3330 @@
1.12927 -+ .data
1.12928 -+foodata: .word 42
1.12929 -+ .text
1.12930 -+footext:
1.12931 -+ .text
1.12932 -+ .global ld_d5
1.12933 -+ld_d5:
1.12934 -+ ld.d lr,pc[pc<<3]
1.12935 -+ ld.d r0,r0[r0<<0]
1.12936 -+ ld.d r6,r5[r5<<2]
1.12937 -+ ld.d r4,r4[r4<<1]
1.12938 -+ ld.d lr,lr[lr<<1]
1.12939 -+ ld.d r10,r3[sp<<2]
1.12940 -+ ld.d r8,r10[r6<<2]
1.12941 -+ ld.d r2,r7[r9<<0]
1.12942 -+ .text
1.12943 -+ .global ld_w5
1.12944 -+ld_w5:
1.12945 -+ ld.w pc,pc[pc<<0]
1.12946 -+ ld.w r12,r12[r12<<3]
1.12947 -+ ld.w r5,r5[r5<<2]
1.12948 -+ ld.w r4,r4[r4<<1]
1.12949 -+ ld.w lr,lr[lr<<1]
1.12950 -+ ld.w r2,r9[r9<<0]
1.12951 -+ ld.w r11,r2[r6<<0]
1.12952 -+ ld.w r0,r2[sp<<3]
1.12953 -+ .text
1.12954 -+ .global ld_sh5
1.12955 -+ld_sh5:
1.12956 -+ ld.sh pc,pc[pc<<0]
1.12957 -+ ld.sh r12,r12[r12<<3]
1.12958 -+ ld.sh r5,r5[r5<<2]
1.12959 -+ ld.sh r4,r4[r4<<1]
1.12960 -+ ld.sh lr,lr[lr<<1]
1.12961 -+ ld.sh r11,r0[pc<<2]
1.12962 -+ ld.sh r10,sp[r6<<2]
1.12963 -+ ld.sh r12,r2[r2<<0]
1.12964 -+ .text
1.12965 -+ .global ld_uh5
1.12966 -+ld_uh5:
1.12967 -+ ld.uh pc,pc[pc<<0]
1.12968 -+ ld.uh r12,r12[r12<<3]
1.12969 -+ ld.uh r5,r5[r5<<2]
1.12970 -+ ld.uh r4,r4[r4<<1]
1.12971 -+ ld.uh lr,lr[lr<<1]
1.12972 -+ ld.uh r8,pc[lr<<3]
1.12973 -+ ld.uh r6,r1[pc<<1]
1.12974 -+ ld.uh r6,lr[sp<<1]
1.12975 -+ .text
1.12976 -+ .global ld_sb2
1.12977 -+ld_sb2:
1.12978 -+ ld.sb pc,pc[pc<<0]
1.12979 -+ ld.sb r12,r12[r12<<3]
1.12980 -+ ld.sb r5,r5[r5<<2]
1.12981 -+ ld.sb r4,r4[r4<<1]
1.12982 -+ ld.sb lr,lr[lr<<1]
1.12983 -+ ld.sb r9,r1[pc<<3]
1.12984 -+ ld.sb r0,r3[r11<<1]
1.12985 -+ ld.sb r10,r5[r5<<1]
1.12986 -+ .text
1.12987 -+ .global ld_ub5
1.12988 -+ld_ub5:
1.12989 -+ ld.ub pc,pc[pc<<0]
1.12990 -+ ld.ub r12,r12[r12<<3]
1.12991 -+ ld.ub r5,r5[r5<<2]
1.12992 -+ ld.ub r4,r4[r4<<1]
1.12993 -+ ld.ub lr,lr[lr<<1]
1.12994 -+ ld.ub r6,r12[r7<<3]
1.12995 -+ ld.ub r2,r6[r12<<0]
1.12996 -+ ld.ub r0,r7[r11<<1]
1.12997 -+ .text
1.12998 -+ .global st_d5
1.12999 -+st_d5:
1.13000 -+ st.d pc[pc<<0],r14
1.13001 -+ st.d r12[r12<<3],r12
1.13002 -+ st.d r5[r5<<2],r6
1.13003 -+ st.d r4[r4<<1],r4
1.13004 -+ st.d lr[lr<<1],lr
1.13005 -+ st.d r1[r9<<1],r4
1.13006 -+ st.d r10[r2<<1],r4
1.13007 -+ st.d r12[r6<<0],lr
1.13008 -+ .text
1.13009 -+ .global st_w5
1.13010 -+st_w5:
1.13011 -+ st.w pc[pc<<0],pc
1.13012 -+ st.w r12[r12<<3],r12
1.13013 -+ st.w r5[r5<<2],r5
1.13014 -+ st.w r4[r4<<1],r4
1.13015 -+ st.w lr[lr<<1],lr
1.13016 -+ st.w r1[r10<<0],r3
1.13017 -+ st.w r0[r10<<1],r9
1.13018 -+ st.w r4[r5<<3],pc
1.13019 -+ .text
1.13020 -+ .global st_h5
1.13021 -+st_h5:
1.13022 -+ st.h pc[pc<<0],pc
1.13023 -+ st.h r12[r12<<3],r12
1.13024 -+ st.h r5[r5<<2],r5
1.13025 -+ st.h r4[r4<<1],r4
1.13026 -+ st.h lr[lr<<1],lr
1.13027 -+ st.h r2[r9<<0],r11
1.13028 -+ st.h r5[r1<<2],r12
1.13029 -+ st.h pc[r8<<2],r3
1.13030 -+ .text
1.13031 -+ .global st_b5
1.13032 -+st_b5:
1.13033 -+ st.b pc[pc<<0],pc
1.13034 -+ st.b r12[r12<<3],r12
1.13035 -+ st.b r5[r5<<2],r5
1.13036 -+ st.b r4[r4<<1],r4
1.13037 -+ st.b lr[lr<<1],lr
1.13038 -+ st.b r1[r8<<1],r6
1.13039 -+ st.b lr[lr<<3],r1
1.13040 -+ st.b r5[r0<<2],pc
1.13041 -+ .text
1.13042 -+ .global divs
1.13043 -+divs:
1.13044 -+ divs pc,pc,pc
1.13045 -+ divs r12,r12,r12
1.13046 -+ divs r5,r5,r5
1.13047 -+ divs r4,r4,r4
1.13048 -+ divs lr,lr,lr
1.13049 -+ divs r3,pc,pc
1.13050 -+ divs r9,r12,r2
1.13051 -+ divs r7,r4,r1
1.13052 -+ .text
1.13053 -+ .global add1
1.13054 -+add1:
1.13055 -+ add pc,pc
1.13056 -+ add r12,r12
1.13057 -+ add r5,r5
1.13058 -+ add r4,r4
1.13059 -+ add lr,lr
1.13060 -+ add r12,r9
1.13061 -+ add r6,r3
1.13062 -+ add r10,r12
1.13063 -+ .text
1.13064 -+ .global sub1
1.13065 -+sub1:
1.13066 -+ sub pc,pc
1.13067 -+ sub r12,r12
1.13068 -+ sub r5,r5
1.13069 -+ sub r4,r4
1.13070 -+ sub lr,lr
1.13071 -+ sub lr,r6
1.13072 -+ sub r0,sp
1.13073 -+ sub r6,r12
1.13074 -+ .text
1.13075 -+ .global rsub1
1.13076 -+rsub1:
1.13077 -+ rsub pc,pc
1.13078 -+ rsub r12,r12
1.13079 -+ rsub r5,r5
1.13080 -+ rsub r4,r4
1.13081 -+ rsub lr,lr
1.13082 -+ rsub r11,sp
1.13083 -+ rsub r7,r4
1.13084 -+ rsub r9,r1
1.13085 -+ .text
1.13086 -+ .global cp1
1.13087 -+cp1:
1.13088 -+ cp pc,pc
1.13089 -+ cp r12,r12
1.13090 -+ cp r5,r5
1.13091 -+ cp r4,r4
1.13092 -+ cp lr,lr
1.13093 -+ cp r6,r2
1.13094 -+ cp r0,r9
1.13095 -+ cp r3,sp
1.13096 -+ .text
1.13097 -+ .global or1
1.13098 -+or1:
1.13099 -+ or pc,pc
1.13100 -+ or r12,r12
1.13101 -+ or r5,r5
1.13102 -+ or r4,r4
1.13103 -+ or lr,lr
1.13104 -+ or r4,r9
1.13105 -+ or r11,r4
1.13106 -+ or r4,r0
1.13107 -+ .text
1.13108 -+ .global eor1
1.13109 -+eor1:
1.13110 -+ eor pc,pc
1.13111 -+ eor r12,r12
1.13112 -+ eor r5,r5
1.13113 -+ eor r4,r4
1.13114 -+ eor lr,lr
1.13115 -+ eor r12,r11
1.13116 -+ eor r0,r1
1.13117 -+ eor r5,pc
1.13118 -+ .text
1.13119 -+ .global and1
1.13120 -+and1:
1.13121 -+ and pc,pc
1.13122 -+ and r12,r12
1.13123 -+ and r5,r5
1.13124 -+ and r4,r4
1.13125 -+ and lr,lr
1.13126 -+ and r8,r1
1.13127 -+ and r0,sp
1.13128 -+ and r10,r5
1.13129 -+ .text
1.13130 -+ .global tst
1.13131 -+tst:
1.13132 -+ tst pc,pc
1.13133 -+ tst r12,r12
1.13134 -+ tst r5,r5
1.13135 -+ tst r4,r4
1.13136 -+ tst lr,lr
1.13137 -+ tst r0,r12
1.13138 -+ tst r10,r6
1.13139 -+ tst sp,r4
1.13140 -+ .text
1.13141 -+ .global andn
1.13142 -+andn:
1.13143 -+ andn pc,pc
1.13144 -+ andn r12,r12
1.13145 -+ andn r5,r5
1.13146 -+ andn r4,r4
1.13147 -+ andn lr,lr
1.13148 -+ andn r9,r12
1.13149 -+ andn r11,sp
1.13150 -+ andn r12,r5
1.13151 -+ .text
1.13152 -+ .global mov3
1.13153 -+mov3:
1.13154 -+ mov pc,pc
1.13155 -+ mov r12,r12
1.13156 -+ mov r5,r5
1.13157 -+ mov r4,r4
1.13158 -+ mov lr,lr
1.13159 -+ mov r5,r9
1.13160 -+ mov r11,r11
1.13161 -+ mov r2,lr
1.13162 -+ .text
1.13163 -+ .global st_w1
1.13164 -+st_w1:
1.13165 -+ st.w pc++,pc
1.13166 -+ st.w r12++,r12
1.13167 -+ st.w r5++,r5
1.13168 -+ st.w r4++,r4
1.13169 -+ st.w lr++,lr
1.13170 -+ st.w r1++,r11
1.13171 -+ st.w sp++,r0
1.13172 -+ st.w sp++,r1
1.13173 -+ .text
1.13174 -+ .global st_h1
1.13175 -+st_h1:
1.13176 -+ st.h pc++,pc
1.13177 -+ st.h r12++,r12
1.13178 -+ st.h r5++,r5
1.13179 -+ st.h r4++,r4
1.13180 -+ st.h lr++,lr
1.13181 -+ st.h r12++,sp
1.13182 -+ st.h r7++,lr
1.13183 -+ st.h r7++,r4
1.13184 -+ .text
1.13185 -+ .global st_b1
1.13186 -+st_b1:
1.13187 -+ st.b pc++,pc
1.13188 -+ st.b r12++,r12
1.13189 -+ st.b r5++,r5
1.13190 -+ st.b r4++,r4
1.13191 -+ st.b lr++,lr
1.13192 -+ st.b r9++,sp
1.13193 -+ st.b r1++,sp
1.13194 -+ st.b r0++,r4
1.13195 -+ .text
1.13196 -+ .global st_w2
1.13197 -+st_w2:
1.13198 -+ st.w --pc,pc
1.13199 -+ st.w --r12,r12
1.13200 -+ st.w --r5,r5
1.13201 -+ st.w --r4,r4
1.13202 -+ st.w --lr,lr
1.13203 -+ st.w --r1,r7
1.13204 -+ st.w --r3,r9
1.13205 -+ st.w --r5,r5
1.13206 -+ .text
1.13207 -+ .global st_h2
1.13208 -+st_h2:
1.13209 -+ st.h --pc,pc
1.13210 -+ st.h --r12,r12
1.13211 -+ st.h --r5,r5
1.13212 -+ st.h --r4,r4
1.13213 -+ st.h --lr,lr
1.13214 -+ st.h --r5,r7
1.13215 -+ st.h --r8,r8
1.13216 -+ st.h --r7,r2
1.13217 -+ .text
1.13218 -+ .global st_b2
1.13219 -+st_b2:
1.13220 -+ st.b --pc,pc
1.13221 -+ st.b --r12,r12
1.13222 -+ st.b --r5,r5
1.13223 -+ st.b --r4,r4
1.13224 -+ st.b --lr,lr
1.13225 -+ st.b --sp,sp
1.13226 -+ st.b --sp,r11
1.13227 -+ st.b --r4,r5
1.13228 -+ .text
1.13229 -+ .global ld_w1
1.13230 -+ld_w1:
1.13231 -+ ld.w pc,pc++
1.13232 -+ ld.w r12,r12++
1.13233 -+ ld.w r5,r5++
1.13234 -+ ld.w r4,r4++
1.13235 -+ ld.w lr,lr++
1.13236 -+ ld.w r3,r7++
1.13237 -+ ld.w r3,lr++
1.13238 -+ ld.w r12,r5++
1.13239 -+ .text
1.13240 -+ .global ld_sh1
1.13241 -+ld_sh1:
1.13242 -+ ld.sh pc,pc++
1.13243 -+ ld.sh r12,r12++
1.13244 -+ ld.sh r5,r5++
1.13245 -+ ld.sh r4,r4++
1.13246 -+ ld.sh lr,lr++
1.13247 -+ ld.sh r11,r2++
1.13248 -+ ld.sh r2,r8++
1.13249 -+ ld.sh r7,r6++
1.13250 -+ .text
1.13251 -+ .global ld_uh1
1.13252 -+ld_uh1:
1.13253 -+ ld.uh pc,pc++
1.13254 -+ ld.uh r12,r12++
1.13255 -+ ld.uh r5,r5++
1.13256 -+ ld.uh r4,r4++
1.13257 -+ ld.uh lr,lr++
1.13258 -+ ld.uh r6,r7++
1.13259 -+ ld.uh r10,r11++
1.13260 -+ ld.uh lr,r4++
1.13261 -+ .text
1.13262 -+ .global ld_ub1
1.13263 -+ld_ub1:
1.13264 -+ ld.ub pc,pc++
1.13265 -+ ld.ub r12,r12++
1.13266 -+ ld.ub r5,r5++
1.13267 -+ ld.ub r4,r4++
1.13268 -+ ld.ub lr,lr++
1.13269 -+ ld.ub r8,lr++
1.13270 -+ ld.ub r12,r12++
1.13271 -+ ld.ub r11,r10++
1.13272 -+ .text
1.13273 -+ .global ld_w2
1.13274 -+ld_w2:
1.13275 -+ ld.w pc,--pc
1.13276 -+ ld.w r12,--r12
1.13277 -+ ld.w r5,--r5
1.13278 -+ ld.w r4,--r4
1.13279 -+ ld.w lr,--lr
1.13280 -+ ld.w r10,--lr
1.13281 -+ ld.w r12,--r9
1.13282 -+ ld.w r6,--r5
1.13283 -+ .text
1.13284 -+ .global ld_sh2
1.13285 -+ld_sh2:
1.13286 -+ ld.sh pc,--pc
1.13287 -+ ld.sh r12,--r12
1.13288 -+ ld.sh r5,--r5
1.13289 -+ ld.sh r4,--r4
1.13290 -+ ld.sh lr,--lr
1.13291 -+ ld.sh pc,--r10
1.13292 -+ ld.sh r6,--r3
1.13293 -+ ld.sh r4,--r6
1.13294 -+ .text
1.13295 -+ .global ld_uh2
1.13296 -+ld_uh2:
1.13297 -+ ld.uh pc,--pc
1.13298 -+ ld.uh r12,--r12
1.13299 -+ ld.uh r5,--r5
1.13300 -+ ld.uh r4,--r4
1.13301 -+ ld.uh lr,--lr
1.13302 -+ ld.uh r3,--r2
1.13303 -+ ld.uh r1,--r0
1.13304 -+ ld.uh r2,--r9
1.13305 -+ .text
1.13306 -+ .global ld_ub2
1.13307 -+ld_ub2:
1.13308 -+ ld.ub pc,--pc
1.13309 -+ ld.ub r12,--r12
1.13310 -+ ld.ub r5,--r5
1.13311 -+ ld.ub r4,--r4
1.13312 -+ ld.ub lr,--lr
1.13313 -+ ld.ub r1,--r1
1.13314 -+ ld.ub r0,--r6
1.13315 -+ ld.ub r2,--r7
1.13316 -+ .text
1.13317 -+ .global ld_ub3
1.13318 -+ld_ub3:
1.13319 -+ ld.ub pc,pc[0]
1.13320 -+ ld.ub r12,r12[7]
1.13321 -+ ld.ub r5,r5[4]
1.13322 -+ ld.ub r4,r4[3]
1.13323 -+ ld.ub lr,lr[1]
1.13324 -+ ld.ub r6,r9[6]
1.13325 -+ ld.ub r2,lr[4]
1.13326 -+ ld.ub r1,r8[0]
1.13327 -+ .text
1.13328 -+ .global sub3_sp
1.13329 -+sub3_sp:
1.13330 -+ sub sp,0
1.13331 -+ sub sp,-4
1.13332 -+ sub sp,-512
1.13333 -+ sub sp,508
1.13334 -+ sub sp,4
1.13335 -+ sub sp,44
1.13336 -+ sub sp,8
1.13337 -+ sub sp,348
1.13338 -+ .text
1.13339 -+ .global sub3
1.13340 -+sub3:
1.13341 -+ sub pc,0
1.13342 -+ sub r12,-1
1.13343 -+ sub r5,-128
1.13344 -+ sub r4,127
1.13345 -+ sub lr,1
1.13346 -+ sub r6,-41
1.13347 -+ sub r4,37
1.13348 -+ sub r12,56
1.13349 -+ .text
1.13350 -+ .global mov1
1.13351 -+mov1:
1.13352 -+ mov pc,0
1.13353 -+ mov r12,-1
1.13354 -+ mov r5,-128
1.13355 -+ mov r4,127
1.13356 -+ mov lr,1
1.13357 -+ mov pc,14
1.13358 -+ mov r6,-100
1.13359 -+ mov lr,-122
1.13360 -+ .text
1.13361 -+ .global lddsp
1.13362 -+lddsp:
1.13363 -+ lddsp pc,sp[0]
1.13364 -+ lddsp r12,sp[508]
1.13365 -+ lddsp r5,sp[256]
1.13366 -+ lddsp r4,sp[252]
1.13367 -+ lddsp lr,sp[4]
1.13368 -+ lddsp lr,sp[256]
1.13369 -+ lddsp r12,sp[20]
1.13370 -+ lddsp r9,sp[472]
1.13371 -+ .text
1.13372 -+ .global lddpc
1.13373 -+lddpc:
1.13374 -+ lddpc pc,pc[0]
1.13375 -+ lddpc r0,pc[508]
1.13376 -+ lddpc r8,pc[256]
1.13377 -+ lddpc r7,pc[252]
1.13378 -+ lddpc lr,pc[4]
1.13379 -+ lddpc sp,pc[472]
1.13380 -+ lddpc r6,pc[120]
1.13381 -+ lddpc r11,pc[28]
1.13382 -+ .text
1.13383 -+ .global stdsp
1.13384 -+stdsp:
1.13385 -+ stdsp sp[0],pc
1.13386 -+ stdsp sp[508],r12
1.13387 -+ stdsp sp[256],r5
1.13388 -+ stdsp sp[252],r4
1.13389 -+ stdsp sp[4],lr
1.13390 -+ stdsp sp[304],pc
1.13391 -+ stdsp sp[256],r0
1.13392 -+ stdsp sp[336],r5
1.13393 -+ .text
1.13394 -+ .global cp2
1.13395 -+cp2:
1.13396 -+ cp pc,0
1.13397 -+ cp r12,-1
1.13398 -+ cp r5,-32
1.13399 -+ cp r4,31
1.13400 -+ cp lr,1
1.13401 -+ cp r8,3
1.13402 -+ cp lr,16
1.13403 -+ cp r7,-26
1.13404 -+ .text
1.13405 -+ .global acr
1.13406 -+acr:
1.13407 -+ acr pc
1.13408 -+ acr r12
1.13409 -+ acr r5
1.13410 -+ acr r4
1.13411 -+ acr lr
1.13412 -+ acr r2
1.13413 -+ acr r12
1.13414 -+ acr pc
1.13415 -+ .text
1.13416 -+ .global scr
1.13417 -+scr:
1.13418 -+ scr pc
1.13419 -+ scr r12
1.13420 -+ scr r5
1.13421 -+ scr r4
1.13422 -+ scr lr
1.13423 -+ scr pc
1.13424 -+ scr r6
1.13425 -+ scr r1
1.13426 -+ .text
1.13427 -+ .global cpc0
1.13428 -+cpc0:
1.13429 -+ cpc pc
1.13430 -+ cpc r12
1.13431 -+ cpc r5
1.13432 -+ cpc r4
1.13433 -+ cpc lr
1.13434 -+ cpc pc
1.13435 -+ cpc r4
1.13436 -+ cpc r9
1.13437 -+ .text
1.13438 -+ .global neg
1.13439 -+neg:
1.13440 -+ neg pc
1.13441 -+ neg r12
1.13442 -+ neg r5
1.13443 -+ neg r4
1.13444 -+ neg lr
1.13445 -+ neg r7
1.13446 -+ neg r1
1.13447 -+ neg r9
1.13448 -+ .text
1.13449 -+ .global abs
1.13450 -+abs:
1.13451 -+ abs pc
1.13452 -+ abs r12
1.13453 -+ abs r5
1.13454 -+ abs r4
1.13455 -+ abs lr
1.13456 -+ abs r6
1.13457 -+ abs r6
1.13458 -+ abs r4
1.13459 -+ .text
1.13460 -+ .global castu_b
1.13461 -+castu_b:
1.13462 -+ castu.b pc
1.13463 -+ castu.b r12
1.13464 -+ castu.b r5
1.13465 -+ castu.b r4
1.13466 -+ castu.b lr
1.13467 -+ castu.b r7
1.13468 -+ castu.b sp
1.13469 -+ castu.b r9
1.13470 -+ .text
1.13471 -+ .global casts_b
1.13472 -+casts_b:
1.13473 -+ casts.b pc
1.13474 -+ casts.b r12
1.13475 -+ casts.b r5
1.13476 -+ casts.b r4
1.13477 -+ casts.b lr
1.13478 -+ casts.b r11
1.13479 -+ casts.b r1
1.13480 -+ casts.b r10
1.13481 -+ .text
1.13482 -+ .global castu_h
1.13483 -+castu_h:
1.13484 -+ castu.h pc
1.13485 -+ castu.h r12
1.13486 -+ castu.h r5
1.13487 -+ castu.h r4
1.13488 -+ castu.h lr
1.13489 -+ castu.h r10
1.13490 -+ castu.h r11
1.13491 -+ castu.h r1
1.13492 -+ .text
1.13493 -+ .global casts_h
1.13494 -+casts_h:
1.13495 -+ casts.h pc
1.13496 -+ casts.h r12
1.13497 -+ casts.h r5
1.13498 -+ casts.h r4
1.13499 -+ casts.h lr
1.13500 -+ casts.h r0
1.13501 -+ casts.h r5
1.13502 -+ casts.h r9
1.13503 -+ .text
1.13504 -+ .global brev
1.13505 -+brev:
1.13506 -+ brev pc
1.13507 -+ brev r12
1.13508 -+ brev r5
1.13509 -+ brev r4
1.13510 -+ brev lr
1.13511 -+ brev r5
1.13512 -+ brev r10
1.13513 -+ brev r8
1.13514 -+ .text
1.13515 -+ .global swap_h
1.13516 -+swap_h:
1.13517 -+ swap.h pc
1.13518 -+ swap.h r12
1.13519 -+ swap.h r5
1.13520 -+ swap.h r4
1.13521 -+ swap.h lr
1.13522 -+ swap.h r7
1.13523 -+ swap.h r0
1.13524 -+ swap.h r8
1.13525 -+ .text
1.13526 -+ .global swap_b
1.13527 -+swap_b:
1.13528 -+ swap.b pc
1.13529 -+ swap.b r12
1.13530 -+ swap.b r5
1.13531 -+ swap.b r4
1.13532 -+ swap.b lr
1.13533 -+ swap.b r10
1.13534 -+ swap.b r12
1.13535 -+ swap.b r1
1.13536 -+ .text
1.13537 -+ .global swap_bh
1.13538 -+swap_bh:
1.13539 -+ swap.bh pc
1.13540 -+ swap.bh r12
1.13541 -+ swap.bh r5
1.13542 -+ swap.bh r4
1.13543 -+ swap.bh lr
1.13544 -+ swap.bh r9
1.13545 -+ swap.bh r4
1.13546 -+ swap.bh r1
1.13547 -+ .text
1.13548 -+ .global One_s_compliment
1.13549 -+One_s_compliment:
1.13550 -+ com pc
1.13551 -+ com r12
1.13552 -+ com r5
1.13553 -+ com r4
1.13554 -+ com lr
1.13555 -+ com r2
1.13556 -+ com r2
1.13557 -+ com r7
1.13558 -+ .text
1.13559 -+ .global tnbz
1.13560 -+tnbz:
1.13561 -+ tnbz pc
1.13562 -+ tnbz r12
1.13563 -+ tnbz r5
1.13564 -+ tnbz r4
1.13565 -+ tnbz lr
1.13566 -+ tnbz r8
1.13567 -+ tnbz r12
1.13568 -+ tnbz pc
1.13569 -+ .text
1.13570 -+ .global rol
1.13571 -+rol:
1.13572 -+ rol pc
1.13573 -+ rol r12
1.13574 -+ rol r5
1.13575 -+ rol r4
1.13576 -+ rol lr
1.13577 -+ rol r10
1.13578 -+ rol r9
1.13579 -+ rol r5
1.13580 -+ .text
1.13581 -+ .global ror
1.13582 -+ror:
1.13583 -+ ror pc
1.13584 -+ ror r12
1.13585 -+ ror r5
1.13586 -+ ror r4
1.13587 -+ ror lr
1.13588 -+ ror r8
1.13589 -+ ror r4
1.13590 -+ ror r7
1.13591 -+ .text
1.13592 -+ .global icall
1.13593 -+icall:
1.13594 -+ icall pc
1.13595 -+ icall r12
1.13596 -+ icall r5
1.13597 -+ icall r4
1.13598 -+ icall lr
1.13599 -+ icall r3
1.13600 -+ icall r1
1.13601 -+ icall r3
1.13602 -+ .text
1.13603 -+ .global mustr
1.13604 -+mustr:
1.13605 -+ mustr pc
1.13606 -+ mustr r12
1.13607 -+ mustr r5
1.13608 -+ mustr r4
1.13609 -+ mustr lr
1.13610 -+ mustr r1
1.13611 -+ mustr r4
1.13612 -+ mustr r12
1.13613 -+ .text
1.13614 -+ .global musfr
1.13615 -+musfr:
1.13616 -+ musfr pc
1.13617 -+ musfr r12
1.13618 -+ musfr r5
1.13619 -+ musfr r4
1.13620 -+ musfr lr
1.13621 -+ musfr r11
1.13622 -+ musfr r12
1.13623 -+ musfr r2
1.13624 -+ .text
1.13625 -+ .global ret_cond
1.13626 -+ret_cond:
1.13627 -+ reteq pc
1.13628 -+ retal r12
1.13629 -+ retls r5
1.13630 -+ retpl r4
1.13631 -+ retne lr
1.13632 -+ retgt r0
1.13633 -+ retgt r12
1.13634 -+ retge r10
1.13635 -+ .text
1.13636 -+ .global sr_cond
1.13637 -+sr_cond:
1.13638 -+ sreq pc
1.13639 -+ sral r12
1.13640 -+ srls r5
1.13641 -+ srpl r4
1.13642 -+ srne lr
1.13643 -+ srlt r0
1.13644 -+ sral sp
1.13645 -+ srge r9
1.13646 -+ .text
1.13647 -+ .global ld_w3
1.13648 -+ld_w3:
1.13649 -+ ld.w pc,pc[0]
1.13650 -+ ld.w r12,r12[124]
1.13651 -+ ld.w r5,r5[64]
1.13652 -+ ld.w r4,r4[60]
1.13653 -+ ld.w lr,lr[4]
1.13654 -+ ld.w sp,r2[52]
1.13655 -+ ld.w r9,r1[8]
1.13656 -+ ld.w r5,sp[60]
1.13657 -+ .text
1.13658 -+ .global ld_sh3
1.13659 -+ld_sh3:
1.13660 -+ ld.sh pc,pc[0]
1.13661 -+ ld.sh r12,r12[14]
1.13662 -+ ld.sh r5,r5[8]
1.13663 -+ ld.sh r4,r4[6]
1.13664 -+ ld.sh lr,lr[2]
1.13665 -+ ld.sh r4,r2[8]
1.13666 -+ ld.sh sp,lr[10]
1.13667 -+ ld.sh r2,r11[2]
1.13668 -+ .text
1.13669 -+ .global ld_uh3
1.13670 -+ld_uh3:
1.13671 -+ ld.uh pc,pc[0]
1.13672 -+ ld.uh r12,r12[14]
1.13673 -+ ld.uh r5,r5[8]
1.13674 -+ ld.uh r4,r4[6]
1.13675 -+ ld.uh lr,lr[2]
1.13676 -+ ld.uh r10,r0[10]
1.13677 -+ ld.uh r8,r11[8]
1.13678 -+ ld.uh r10,r2[12]
1.13679 -+ .text
1.13680 -+ .global st_w3
1.13681 -+st_w3:
1.13682 -+ st.w pc[0],pc
1.13683 -+ st.w r12[60],r12
1.13684 -+ st.w r5[32],r5
1.13685 -+ st.w r4[28],r4
1.13686 -+ st.w lr[4],lr
1.13687 -+ st.w r7[44],r11
1.13688 -+ st.w r2[24],r6
1.13689 -+ st.w r4[12],r9
1.13690 -+ .text
1.13691 -+ .global st_h3
1.13692 -+st_h3:
1.13693 -+ st.h pc[0],pc
1.13694 -+ st.h r12[14],r12
1.13695 -+ st.h r5[8],r5
1.13696 -+ st.h r4[6],r4
1.13697 -+ st.h lr[2],lr
1.13698 -+ st.h lr[10],r12
1.13699 -+ st.h r6[4],r0
1.13700 -+ st.h r5[12],sp
1.13701 -+ .text
1.13702 -+ .global st_b3
1.13703 -+st_b3:
1.13704 -+ st.b pc[0],pc
1.13705 -+ st.b r12[7],r12
1.13706 -+ st.b r5[4],r5
1.13707 -+ st.b r4[3],r4
1.13708 -+ st.b lr[1],lr
1.13709 -+ st.b r12[6],r9
1.13710 -+ st.b r2[3],lr
1.13711 -+ st.b r1[3],r11
1.13712 -+ .text
1.13713 -+ .global ldd
1.13714 -+ldd:
1.13715 -+ ld.d r0,pc
1.13716 -+ ld.d r14,r12
1.13717 -+ ld.d r8,r5
1.13718 -+ ld.d r6,r4
1.13719 -+ ld.d r2,lr
1.13720 -+ ld.d r14,r7
1.13721 -+ ld.d r4,r4
1.13722 -+ ld.d r14,pc
1.13723 -+ .text
1.13724 -+ .global ldd_postinc
1.13725 -+ldd_postinc:
1.13726 -+ ld.d r0,pc++
1.13727 -+ ld.d r14,r12++
1.13728 -+ ld.d r8,r5++
1.13729 -+ ld.d r6,r4++
1.13730 -+ ld.d r2,lr++
1.13731 -+ ld.d r14,r5++
1.13732 -+ ld.d r12,r11++
1.13733 -+ ld.d r2,r12++
1.13734 -+ .text
1.13735 -+ .global ldd_predec
1.13736 -+ldd_predec:
1.13737 -+ ld.d r0,--pc
1.13738 -+ ld.d r14,--r12
1.13739 -+ ld.d r8,--r5
1.13740 -+ ld.d r6,--r4
1.13741 -+ ld.d r2,--lr
1.13742 -+ ld.d r8,--r0
1.13743 -+ ld.d r10,--pc
1.13744 -+ ld.d r2,--r4
1.13745 -+ .text
1.13746 -+ .global std
1.13747 -+std:
1.13748 -+ st.d pc,r0
1.13749 -+ st.d r12,r14
1.13750 -+ st.d r5,r8
1.13751 -+ st.d r4,r6
1.13752 -+ st.d lr,r2
1.13753 -+ st.d r0,r12
1.13754 -+ st.d sp,r4
1.13755 -+ st.d r12,r12
1.13756 -+ .text
1.13757 -+ .global std_postinc
1.13758 -+std_postinc:
1.13759 -+ st.d pc++,r0
1.13760 -+ st.d r12++,r14
1.13761 -+ st.d r5++,r8
1.13762 -+ st.d r4++,r6
1.13763 -+ st.d lr++,r2
1.13764 -+ st.d sp++,r6
1.13765 -+ st.d r10++,r6
1.13766 -+ st.d r7++,r2
1.13767 -+ .text
1.13768 -+ .global std_predec
1.13769 -+std_predec:
1.13770 -+ st.d --pc,r0
1.13771 -+ st.d --r12,r14
1.13772 -+ st.d --r5,r8
1.13773 -+ st.d --r4,r6
1.13774 -+ st.d --lr,r2
1.13775 -+ st.d --r3,r6
1.13776 -+ st.d --lr,r2
1.13777 -+ st.d --r0,r4
1.13778 -+ .text
1.13779 -+ .global mul
1.13780 -+mul:
1.13781 -+ mul pc,pc
1.13782 -+ mul r12,r12
1.13783 -+ mul r5,r5
1.13784 -+ mul r4,r4
1.13785 -+ mul lr,lr
1.13786 -+ mul r10,lr
1.13787 -+ mul r0,r8
1.13788 -+ mul r8,r5
1.13789 -+ .text
1.13790 -+ .global asr_imm5
1.13791 -+asr_imm5:
1.13792 -+ asr pc,0
1.13793 -+ asr r12,31
1.13794 -+ asr r5,16
1.13795 -+ asr r4,15
1.13796 -+ asr lr,1
1.13797 -+ asr r6,23
1.13798 -+ asr r6,18
1.13799 -+ asr r5,8
1.13800 -+ .text
1.13801 -+ .global lsl_imm5
1.13802 -+lsl_imm5:
1.13803 -+ lsl pc,0
1.13804 -+ lsl r12,31
1.13805 -+ lsl r5,16
1.13806 -+ lsl r4,15
1.13807 -+ lsl lr,1
1.13808 -+ lsl r12,13
1.13809 -+ lsl r6,16
1.13810 -+ lsl r1,25
1.13811 -+ .text
1.13812 -+ .global lsr_imm5
1.13813 -+lsr_imm5:
1.13814 -+ lsr pc,0
1.13815 -+ lsr r12,31
1.13816 -+ lsr r5,16
1.13817 -+ lsr r4,15
1.13818 -+ lsr lr,1
1.13819 -+ lsr r0,1
1.13820 -+ lsr r8,10
1.13821 -+ lsr r7,26
1.13822 -+ .text
1.13823 -+ .global sbr
1.13824 -+sbr:
1.13825 -+ sbr pc,0
1.13826 -+ sbr r12,31
1.13827 -+ sbr r5,16
1.13828 -+ sbr r4,15
1.13829 -+ sbr lr,1
1.13830 -+ sbr r8,31
1.13831 -+ sbr r6,22
1.13832 -+ sbr r1,23
1.13833 -+ .text
1.13834 -+ .global cbr
1.13835 -+cbr:
1.13836 -+ cbr pc,0
1.13837 -+ cbr r12,31
1.13838 -+ cbr r5,16
1.13839 -+ cbr r4,15
1.13840 -+ cbr lr,1
1.13841 -+ cbr r12,10
1.13842 -+ cbr r7,22
1.13843 -+ cbr r8,9
1.13844 -+ .text
1.13845 -+ .global brc1
1.13846 -+brc1:
1.13847 -+ breq 0
1.13848 -+ brpl -2
1.13849 -+ brge -256
1.13850 -+ brcs 254
1.13851 -+ brne 2
1.13852 -+ brcs 230
1.13853 -+ breq -18
1.13854 -+ breq 12
1.13855 -+ .text
1.13856 -+ .global rjmp
1.13857 -+rjmp:
1.13858 -+ rjmp 0
1.13859 -+ rjmp -2
1.13860 -+ rjmp -1024
1.13861 -+ rjmp 1022
1.13862 -+ rjmp 2
1.13863 -+ rjmp -962
1.13864 -+ rjmp 14
1.13865 -+ rjmp -516
1.13866 -+ .text
1.13867 -+ .global rcall1
1.13868 -+rcall1:
1.13869 -+ rcall 0
1.13870 -+ rcall -2
1.13871 -+ rcall -1024
1.13872 -+ rcall 1022
1.13873 -+ rcall 2
1.13874 -+ rcall 216
1.13875 -+ rcall -530
1.13876 -+ rcall -972
1.13877 -+ .text
1.13878 -+ .global acall
1.13879 -+acall:
1.13880 -+ acall 0
1.13881 -+ acall 1020
1.13882 -+ acall 512
1.13883 -+ acall 508
1.13884 -+ acall 4
1.13885 -+ acall 356
1.13886 -+ acall 304
1.13887 -+ acall 172
1.13888 -+ .text
1.13889 -+ .global scall
1.13890 -+scall:
1.13891 -+ scall
1.13892 -+ scall
1.13893 -+ scall
1.13894 -+ scall
1.13895 -+ scall
1.13896 -+ scall
1.13897 -+ scall
1.13898 -+ scall
1.13899 -+ .text
1.13900 -+ .global popm
1.13901 -+popm:
1.13902 -+ /* popm with no argument fails currently */
1.13903 -+ popm pc
1.13904 -+ popm r0-r11,pc,r12=-1
1.13905 -+ popm lr
1.13906 -+ popm r0-r11,pc,r12=1
1.13907 -+ popm r0-r3
1.13908 -+ popm r4-r10,pc
1.13909 -+ popm r0-r3,r11,pc,r12=0
1.13910 -+ popm r0-r7,r10-r12,lr
1.13911 -+ .text
1.13912 -+ .global pushm
1.13913 -+pushm:
1.13914 -+ pushm pc
1.13915 -+ pushm r0-r12,lr,pc
1.13916 -+ pushm pc
1.13917 -+ pushm r0-r12,lr
1.13918 -+ pushm r0-r3
1.13919 -+ pushm r8-r10,lr,pc
1.13920 -+ pushm r0-r3,r10
1.13921 -+ pushm r8-r9,r12
1.13922 -+ .text
1.13923 -+ .global popm_n
1.13924 -+popm_n:
1.13925 -+ popm pc
1.13926 -+ popm r0-r11,pc,r12=-1
1.13927 -+ popm lr
1.13928 -+ popm r0-r11,pc,r12=1
1.13929 -+ popm r0-r3
1.13930 -+ popm r4-r10,pc
1.13931 -+ popm r0-r3,r11,pc,r12=0
1.13932 -+ popm r0-r7,r10-r12,lr
1.13933 -+ .text
1.13934 -+ .global pushm_n
1.13935 -+pushm_n:
1.13936 -+ pushm pc
1.13937 -+ pushm r0-r12,lr,pc
1.13938 -+ pushm pc
1.13939 -+ pushm r0-r12,lr
1.13940 -+ pushm r0-r3
1.13941 -+ pushm r8-r10,lr,pc
1.13942 -+ pushm r0-r3,r10
1.13943 -+ pushm r8-r9,r12
1.13944 -+ .text
1.13945 -+ .global csrfcz
1.13946 -+csrfcz:
1.13947 -+ csrfcz 0
1.13948 -+ csrfcz 31
1.13949 -+ csrfcz 16
1.13950 -+ csrfcz 15
1.13951 -+ csrfcz 1
1.13952 -+ csrfcz 5
1.13953 -+ csrfcz 13
1.13954 -+ csrfcz 23
1.13955 -+ .text
1.13956 -+ .global ssrf
1.13957 -+ssrf:
1.13958 -+ ssrf 0
1.13959 -+ ssrf 31
1.13960 -+ ssrf 16
1.13961 -+ ssrf 15
1.13962 -+ ssrf 1
1.13963 -+ ssrf 29
1.13964 -+ ssrf 13
1.13965 -+ ssrf 13
1.13966 -+ .text
1.13967 -+ .global csrf
1.13968 -+csrf:
1.13969 -+ csrf 0
1.13970 -+ csrf 31
1.13971 -+ csrf 16
1.13972 -+ csrf 15
1.13973 -+ csrf 1
1.13974 -+ csrf 10
1.13975 -+ csrf 15
1.13976 -+ csrf 11
1.13977 -+ .text
1.13978 -+ .global rete
1.13979 -+rete:
1.13980 -+ rete
1.13981 -+ .text
1.13982 -+ .global rets
1.13983 -+rets:
1.13984 -+ rets
1.13985 -+ .text
1.13986 -+ .global retd
1.13987 -+retd:
1.13988 -+ retd
1.13989 -+ .text
1.13990 -+ .global retj
1.13991 -+retj:
1.13992 -+ retj
1.13993 -+ .text
1.13994 -+ .global tlbr
1.13995 -+tlbr:
1.13996 -+ tlbr
1.13997 -+ .text
1.13998 -+ .global tlbs
1.13999 -+tlbs:
1.14000 -+ tlbs
1.14001 -+ .text
1.14002 -+ .global tlbw
1.14003 -+tlbw:
1.14004 -+ tlbw
1.14005 -+ .text
1.14006 -+ .global breakpoint
1.14007 -+breakpoint:
1.14008 -+ breakpoint
1.14009 -+ .text
1.14010 -+ .global incjosp
1.14011 -+incjosp:
1.14012 -+ incjosp 1
1.14013 -+ incjosp 2
1.14014 -+ incjosp 3
1.14015 -+ incjosp 4
1.14016 -+ incjosp -4
1.14017 -+ incjosp -3
1.14018 -+ incjosp -2
1.14019 -+ incjosp -1
1.14020 -+ .text
1.14021 -+ .global nop
1.14022 -+nop:
1.14023 -+ nop
1.14024 -+ .text
1.14025 -+ .global popjc
1.14026 -+popjc:
1.14027 -+ popjc
1.14028 -+ .text
1.14029 -+ .global pushjc
1.14030 -+pushjc:
1.14031 -+ pushjc
1.14032 -+ .text
1.14033 -+ .global add2
1.14034 -+add2:
1.14035 -+ add pc,pc,pc<<0
1.14036 -+ add r12,r12,r12<<3
1.14037 -+ add r5,r5,r5<<2
1.14038 -+ add r4,r4,r4<<1
1.14039 -+ add lr,lr,lr<<1
1.14040 -+ add r0,r12,r0<<1
1.14041 -+ add r9,r12,r4<<0
1.14042 -+ add r12,r12,r7<<2
1.14043 -+ .text
1.14044 -+ .global sub2
1.14045 -+sub2:
1.14046 -+ sub pc,pc,pc<<0
1.14047 -+ sub r12,r12,r12<<3
1.14048 -+ sub r5,r5,r5<<2
1.14049 -+ sub r4,r4,r4<<1
1.14050 -+ sub lr,lr,lr<<1
1.14051 -+ sub sp,r3,r4<<0
1.14052 -+ sub r3,r7,r3<<0
1.14053 -+ sub sp,r10,sp<<1
1.14054 -+ .text
1.14055 -+ .global divu
1.14056 -+divu:
1.14057 -+ divu pc,pc,pc
1.14058 -+ divu r12,r12,r12
1.14059 -+ divu r5,r5,r5
1.14060 -+ divu r4,r4,r4
1.14061 -+ divu lr,lr,lr
1.14062 -+ divu sp,r4,pc
1.14063 -+ divu r5,r5,sp
1.14064 -+ divu r10,sp,r0
1.14065 -+ .text
1.14066 -+ .global addhh_w
1.14067 -+addhh_w:
1.14068 -+ addhh.w pc,pc:b,pc:b
1.14069 -+ addhh.w r12,r12:t,r12:t
1.14070 -+ addhh.w r5,r5:t,r5:t
1.14071 -+ addhh.w r4,r4:b,r4:b
1.14072 -+ addhh.w lr,lr:t,lr:t
1.14073 -+ addhh.w r0,r0:b,r3:b
1.14074 -+ addhh.w lr,r12:t,r7:b
1.14075 -+ addhh.w r3,r10:t,r2:b
1.14076 -+ .text
1.14077 -+ .global subhh_w
1.14078 -+subhh_w:
1.14079 -+ subhh.w pc,pc:b,pc:b
1.14080 -+ subhh.w r12,r12:t,r12:t
1.14081 -+ subhh.w r5,r5:t,r5:t
1.14082 -+ subhh.w r4,r4:b,r4:b
1.14083 -+ subhh.w lr,lr:t,lr:t
1.14084 -+ subhh.w r10,r1:t,r7:b
1.14085 -+ subhh.w pc,r10:t,lr:t
1.14086 -+ subhh.w r3,r0:t,r12:b
1.14087 -+ .text
1.14088 -+ .global adc
1.14089 -+adc:
1.14090 -+ adc pc,pc,pc
1.14091 -+ adc r12,r12,r12
1.14092 -+ adc r5,r5,r5
1.14093 -+ adc r4,r4,r4
1.14094 -+ adc lr,lr,lr
1.14095 -+ adc r4,r0,r7
1.14096 -+ adc sp,r4,r3
1.14097 -+ adc r2,r12,r0
1.14098 -+ .text
1.14099 -+ .global sbc
1.14100 -+sbc:
1.14101 -+ sbc pc,pc,pc
1.14102 -+ sbc r12,r12,r12
1.14103 -+ sbc r5,r5,r5
1.14104 -+ sbc r4,r4,r4
1.14105 -+ sbc lr,lr,lr
1.14106 -+ sbc r6,r7,r9
1.14107 -+ sbc r0,r8,r5
1.14108 -+ sbc r1,r0,r4
1.14109 -+ .text
1.14110 -+ .global mul_2
1.14111 -+mul_2:
1.14112 -+ mul pc,pc,pc
1.14113 -+ mul r12,r12,r12
1.14114 -+ mul r5,r5,r5
1.14115 -+ mul r4,r4,r4
1.14116 -+ mul lr,lr,lr
1.14117 -+ mul pc,r0,r0
1.14118 -+ mul r8,pc,lr
1.14119 -+ mul r4,r12,pc
1.14120 -+ .text
1.14121 -+ .global mac
1.14122 -+mac:
1.14123 -+ mac pc,pc,pc
1.14124 -+ mac r12,r12,r12
1.14125 -+ mac r5,r5,r5
1.14126 -+ mac r4,r4,r4
1.14127 -+ mac lr,lr,lr
1.14128 -+ mac r10,r4,r0
1.14129 -+ mac r7,lr,r0
1.14130 -+ mac r2,r9,r12
1.14131 -+ .text
1.14132 -+ .global mulsd
1.14133 -+mulsd:
1.14134 -+ muls.d pc,pc,pc
1.14135 -+ muls.d r12,r12,r12
1.14136 -+ muls.d r5,r5,r5
1.14137 -+ muls.d r4,r4,r4
1.14138 -+ muls.d lr,lr,lr
1.14139 -+ muls.d r2,r8,lr
1.14140 -+ muls.d r4,r0,r11
1.14141 -+ muls.d r5,lr,r6
1.14142 -+ .text
1.14143 -+ .global macsd
1.14144 -+macsd:
1.14145 -+ macs.d r0,pc,pc
1.14146 -+ macs.d r14,r12,r12
1.14147 -+ macs.d r8,r5,r5
1.14148 -+ macs.d r6,r4,r4
1.14149 -+ macs.d r2,lr,lr
1.14150 -+ macs.d r8,r1,r9
1.14151 -+ macs.d r14,r8,r8
1.14152 -+ macs.d r4,r3,r12
1.14153 -+ .text
1.14154 -+ .global mulud
1.14155 -+mulud:
1.14156 -+ mulu.d r0,pc,pc
1.14157 -+ mulu.d r14,r12,r12
1.14158 -+ mulu.d r8,r5,r5
1.14159 -+ mulu.d r6,r4,r4
1.14160 -+ mulu.d r2,lr,lr
1.14161 -+ mulu.d r6,r5,r0
1.14162 -+ mulu.d r4,r6,r1
1.14163 -+ mulu.d r8,r8,r2
1.14164 -+ .text
1.14165 -+ .global macud
1.14166 -+macud:
1.14167 -+ macu.d r0,pc,pc
1.14168 -+ macu.d r14,r12,r12
1.14169 -+ macu.d r8,r5,r5
1.14170 -+ macu.d r6,r4,r4
1.14171 -+ macu.d r2,lr,lr
1.14172 -+ macu.d r6,sp,r11
1.14173 -+ macu.d r2,r4,r8
1.14174 -+ macu.d r6,r10,r9
1.14175 -+ .text
1.14176 -+ .global asr_1
1.14177 -+asr_1:
1.14178 -+ asr pc,pc,pc
1.14179 -+ asr r12,r12,r12
1.14180 -+ asr r5,r5,r5
1.14181 -+ asr r4,r4,r4
1.14182 -+ asr lr,lr,lr
1.14183 -+ asr pc,r6,pc
1.14184 -+ asr r0,r6,r12
1.14185 -+ asr r4,sp,r0
1.14186 -+ .text
1.14187 -+ .global lsl_1
1.14188 -+lsl_1:
1.14189 -+ lsl pc,pc,pc
1.14190 -+ lsl r12,r12,r12
1.14191 -+ lsl r5,r5,r5
1.14192 -+ lsl r4,r4,r4
1.14193 -+ lsl lr,lr,lr
1.14194 -+ lsl lr,r5,lr
1.14195 -+ lsl r5,pc,r3
1.14196 -+ lsl r1,pc,r9
1.14197 -+ .text
1.14198 -+ .global lsr_1
1.14199 -+lsr_1:
1.14200 -+ lsr pc,pc,pc
1.14201 -+ lsr r12,r12,r12
1.14202 -+ lsr r5,r5,r5
1.14203 -+ lsr r4,r4,r4
1.14204 -+ lsr lr,lr,lr
1.14205 -+ lsr r2,r4,r1
1.14206 -+ lsr r5,r1,r6
1.14207 -+ lsr sp,r6,r7
1.14208 -+ .text
1.14209 -+ .global xchg
1.14210 -+xchg:
1.14211 -+ xchg pc,pc,pc
1.14212 -+ xchg r12,r12,r12
1.14213 -+ xchg r5,r5,r5
1.14214 -+ xchg r4,r4,r4
1.14215 -+ xchg lr,lr,lr
1.14216 -+ xchg lr,r4,sp
1.14217 -+ xchg r1,r5,r12
1.14218 -+ xchg lr,r12,r0
1.14219 -+ .text
1.14220 -+ .global max
1.14221 -+max:
1.14222 -+ max pc,pc,pc
1.14223 -+ max r12,r12,r12
1.14224 -+ max r5,r5,r5
1.14225 -+ max r4,r4,r4
1.14226 -+ max lr,lr,lr
1.14227 -+ max lr,r2,sp
1.14228 -+ max r4,r10,r9
1.14229 -+ max lr,r9,lr
1.14230 -+ .text
1.14231 -+ .global min
1.14232 -+min:
1.14233 -+ min pc,pc,pc
1.14234 -+ min r12,r12,r12
1.14235 -+ min r5,r5,r5
1.14236 -+ min r4,r4,r4
1.14237 -+ min lr,lr,lr
1.14238 -+ min r9,r7,r8
1.14239 -+ min sp,r5,r5
1.14240 -+ min r4,r1,r4
1.14241 -+ .text
1.14242 -+ .global addabs
1.14243 -+addabs:
1.14244 -+ addabs pc,pc,pc
1.14245 -+ addabs r12,r12,r12
1.14246 -+ addabs r5,r5,r5
1.14247 -+ addabs r4,r4,r4
1.14248 -+ addabs lr,lr,lr
1.14249 -+ addabs r7,r10,r0
1.14250 -+ addabs r9,r9,r7
1.14251 -+ addabs r2,r8,r12
1.14252 -+ .text
1.14253 -+ .global mulnhh_w
1.14254 -+mulnhh_w:
1.14255 -+ mulnhh.w pc,pc:b,pc:b
1.14256 -+ mulnhh.w r12,r12:t,r12:t
1.14257 -+ mulnhh.w r5,r5:t,r5:t
1.14258 -+ mulnhh.w r4,r4:b,r4:b
1.14259 -+ mulnhh.w lr,lr:t,lr:t
1.14260 -+ mulnhh.w r11,sp:t,r9:b
1.14261 -+ mulnhh.w sp,r4:b,lr:t
1.14262 -+ mulnhh.w r12,r2:t,r11:b
1.14263 -+ .text
1.14264 -+ .global mulnwh_d
1.14265 -+mulnwh_d:
1.14266 -+ mulnwh.d r0,pc,pc:b
1.14267 -+ mulnwh.d r14,r12,r12:t
1.14268 -+ mulnwh.d r8,r5,r5:t
1.14269 -+ mulnwh.d r6,r4,r4:b
1.14270 -+ mulnwh.d r2,lr,lr:t
1.14271 -+ mulnwh.d r14,r3,r2:t
1.14272 -+ mulnwh.d r4,r5,r9:b
1.14273 -+ mulnwh.d r12,r4,r4:t
1.14274 -+ .text
1.14275 -+ .global machh_w
1.14276 -+machh_w:
1.14277 -+ machh.w pc,pc:b,pc:b
1.14278 -+ machh.w r12,r12:t,r12:t
1.14279 -+ machh.w r5,r5:t,r5:t
1.14280 -+ machh.w r4,r4:b,r4:b
1.14281 -+ machh.w lr,lr:t,lr:t
1.14282 -+ machh.w lr,r5:b,r1:t
1.14283 -+ machh.w r9,r6:b,r7:b
1.14284 -+ machh.w r5,lr:t,r12:b
1.14285 -+ .text
1.14286 -+ .global machh_d
1.14287 -+machh_d:
1.14288 -+ machh.d r0,pc:b,pc:b
1.14289 -+ machh.d r14,r12:t,r12:t
1.14290 -+ machh.d r8,r5:t,r5:t
1.14291 -+ machh.d r6,r4:b,r4:b
1.14292 -+ machh.d r2,lr:t,lr:t
1.14293 -+ machh.d r10,r0:b,r8:b
1.14294 -+ machh.d r14,r4:b,r5:t
1.14295 -+ machh.d r8,r0:b,r4:t
1.14296 -+ .text
1.14297 -+ .global macsathh_w
1.14298 -+macsathh_w:
1.14299 -+ macsathh.w pc,pc:b,pc:b
1.14300 -+ macsathh.w r12,r12:t,r12:t
1.14301 -+ macsathh.w r5,r5:t,r5:t
1.14302 -+ macsathh.w r4,r4:b,r4:b
1.14303 -+ macsathh.w lr,lr:t,lr:t
1.14304 -+ macsathh.w r7,r7:t,pc:t
1.14305 -+ macsathh.w r4,r2:t,r4:b
1.14306 -+ macsathh.w r4,r8:t,r3:t
1.14307 -+ .text
1.14308 -+ .global mulhh_w
1.14309 -+mulhh_w:
1.14310 -+ mulhh.w pc,pc:b,pc:b
1.14311 -+ mulhh.w r12,r12:t,r12:t
1.14312 -+ mulhh.w r5,r5:t,r5:t
1.14313 -+ mulhh.w r4,r4:b,r4:b
1.14314 -+ mulhh.w lr,lr:t,lr:t
1.14315 -+ mulhh.w r7,r4:t,r9:b
1.14316 -+ mulhh.w pc,r3:t,r7:t
1.14317 -+ mulhh.w pc,r4:b,r9:t
1.14318 -+ .text
1.14319 -+ .global mulsathh_h
1.14320 -+mulsathh_h:
1.14321 -+ mulsathh.h pc,pc:b,pc:b
1.14322 -+ mulsathh.h r12,r12:t,r12:t
1.14323 -+ mulsathh.h r5,r5:t,r5:t
1.14324 -+ mulsathh.h r4,r4:b,r4:b
1.14325 -+ mulsathh.h lr,lr:t,lr:t
1.14326 -+ mulsathh.h r3,r1:b,sp:b
1.14327 -+ mulsathh.h r11,lr:t,r11:b
1.14328 -+ mulsathh.h r8,r8:b,r11:t
1.14329 -+ .text
1.14330 -+ .global mulsathh_w
1.14331 -+mulsathh_w:
1.14332 -+ mulsathh.w pc,pc:b,pc:b
1.14333 -+ mulsathh.w r12,r12:t,r12:t
1.14334 -+ mulsathh.w r5,r5:t,r5:t
1.14335 -+ mulsathh.w r4,r4:b,r4:b
1.14336 -+ mulsathh.w lr,lr:t,lr:t
1.14337 -+ mulsathh.w lr,r11:t,r6:b
1.14338 -+ mulsathh.w r6,r6:b,r7:t
1.14339 -+ mulsathh.w r10,r2:b,r3:b
1.14340 -+ .text
1.14341 -+ .global mulsatrndhh_h
1.14342 -+mulsatrndhh_h:
1.14343 -+ mulsatrndhh.h pc,pc:b,pc:b
1.14344 -+ mulsatrndhh.h r12,r12:t,r12:t
1.14345 -+ mulsatrndhh.h r5,r5:t,r5:t
1.14346 -+ mulsatrndhh.h r4,r4:b,r4:b
1.14347 -+ mulsatrndhh.h lr,lr:t,lr:t
1.14348 -+ mulsatrndhh.h r11,r6:b,r9:b
1.14349 -+ mulsatrndhh.h r11,r3:b,r8:t
1.14350 -+ mulsatrndhh.h r5,sp:t,r7:t
1.14351 -+ .text
1.14352 -+ .global mulsatrndwh_w
1.14353 -+mulsatrndwh_w:
1.14354 -+ mulsatrndwh.w pc,pc,pc:b
1.14355 -+ mulsatrndwh.w r12,r12,r12:t
1.14356 -+ mulsatrndwh.w r5,r5,r5:t
1.14357 -+ mulsatrndwh.w r4,r4,r4:b
1.14358 -+ mulsatrndwh.w lr,lr,lr:t
1.14359 -+ mulsatrndwh.w r5,r12,r0:b
1.14360 -+ mulsatrndwh.w r7,r10,pc:b
1.14361 -+ mulsatrndwh.w r10,r8,r5:t
1.14362 -+ .text
1.14363 -+ .global macwh_d
1.14364 -+macwh_d:
1.14365 -+ macwh.d r0,pc,pc:b
1.14366 -+ macwh.d r14,r12,r12:t
1.14367 -+ macwh.d r8,r5,r5:t
1.14368 -+ macwh.d r6,r4,r4:b
1.14369 -+ macwh.d r2,lr,lr:t
1.14370 -+ macwh.d r4,r10,r12:t
1.14371 -+ macwh.d r4,r7,sp:b
1.14372 -+ macwh.d r14,r9,r11:b
1.14373 -+ .text
1.14374 -+ .global mulwh_d
1.14375 -+mulwh_d:
1.14376 -+ mulwh.d r0,pc,pc:b
1.14377 -+ mulwh.d r14,r12,r12:t
1.14378 -+ mulwh.d r8,r5,r5:t
1.14379 -+ mulwh.d r6,r4,r4:b
1.14380 -+ mulwh.d r2,lr,lr:t
1.14381 -+ mulwh.d r12,r5,r1:b
1.14382 -+ mulwh.d r0,r1,r3:t
1.14383 -+ mulwh.d r0,r9,r2:b
1.14384 -+ .text
1.14385 -+ .global mulsatwh_w
1.14386 -+mulsatwh_w:
1.14387 -+ mulsatwh.w pc,pc,pc:b
1.14388 -+ mulsatwh.w r12,r12,r12:t
1.14389 -+ mulsatwh.w r5,r5,r5:t
1.14390 -+ mulsatwh.w r4,r4,r4:b
1.14391 -+ mulsatwh.w lr,lr,lr:t
1.14392 -+ mulsatwh.w r11,pc,r10:t
1.14393 -+ mulsatwh.w sp,r12,r9:t
1.14394 -+ mulsatwh.w r0,r3,r2:t
1.14395 -+ .text
1.14396 -+ .global ldw7
1.14397 -+ldw7:
1.14398 -+ ld.w pc,pc[pc:b<<2]
1.14399 -+ ld.w r12,r12[r12:t<<2]
1.14400 -+ ld.w r5,r5[r5:u<<2]
1.14401 -+ ld.w r4,r4[r4:l<<2]
1.14402 -+ ld.w lr,lr[lr:l<<2]
1.14403 -+ ld.w r9,r10[r6:l<<2]
1.14404 -+ ld.w r2,r10[r10:b<<2]
1.14405 -+ ld.w r11,r5[pc:b<<2]
1.14406 -+ .text
1.14407 -+ .global satadd_w
1.14408 -+satadd_w:
1.14409 -+ satadd.w pc,pc,pc
1.14410 -+ satadd.w r12,r12,r12
1.14411 -+ satadd.w r5,r5,r5
1.14412 -+ satadd.w r4,r4,r4
1.14413 -+ satadd.w lr,lr,lr
1.14414 -+ satadd.w r4,r8,r11
1.14415 -+ satadd.w r3,r12,r6
1.14416 -+ satadd.w r3,lr,r9
1.14417 -+ .text
1.14418 -+ .global satsub_w1
1.14419 -+satsub_w1:
1.14420 -+ satsub.w pc,pc,pc
1.14421 -+ satsub.w r12,r12,r12
1.14422 -+ satsub.w r5,r5,r5
1.14423 -+ satsub.w r4,r4,r4
1.14424 -+ satsub.w lr,lr,lr
1.14425 -+ satsub.w r8,sp,r0
1.14426 -+ satsub.w r9,r8,r4
1.14427 -+ satsub.w pc,lr,r2
1.14428 -+ .text
1.14429 -+ .global satadd_h
1.14430 -+satadd_h:
1.14431 -+ satadd.h pc,pc,pc
1.14432 -+ satadd.h r12,r12,r12
1.14433 -+ satadd.h r5,r5,r5
1.14434 -+ satadd.h r4,r4,r4
1.14435 -+ satadd.h lr,lr,lr
1.14436 -+ satadd.h r7,r3,r9
1.14437 -+ satadd.h r1,r0,r2
1.14438 -+ satadd.h r1,r4,lr
1.14439 -+ .text
1.14440 -+ .global satsub_h
1.14441 -+satsub_h:
1.14442 -+ satsub.h pc,pc,pc
1.14443 -+ satsub.h r12,r12,r12
1.14444 -+ satsub.h r5,r5,r5
1.14445 -+ satsub.h r4,r4,r4
1.14446 -+ satsub.h lr,lr,lr
1.14447 -+ satsub.h lr,lr,r3
1.14448 -+ satsub.h r11,r6,r5
1.14449 -+ satsub.h r3,sp,r0
1.14450 -+ .text
1.14451 -+ .global mul3
1.14452 -+mul3:
1.14453 -+ mul pc,pc,0
1.14454 -+ mul r12,r12,-1
1.14455 -+ mul r5,r5,-128
1.14456 -+ mul r4,r4,127
1.14457 -+ mul lr,lr,1
1.14458 -+ mul r12,r2,-7
1.14459 -+ mul r1,pc,95
1.14460 -+ mul r4,r6,19
1.14461 -+ .text
1.14462 -+ .global rsub2
1.14463 -+rsub2:
1.14464 -+ rsub pc,pc,0
1.14465 -+ rsub r12,r12,-1
1.14466 -+ rsub r5,r5,-128
1.14467 -+ rsub r4,r4,127
1.14468 -+ rsub lr,lr,1
1.14469 -+ rsub r9,lr,96
1.14470 -+ rsub r11,r1,56
1.14471 -+ rsub r0,r7,-87
1.14472 -+ .text
1.14473 -+ .global clz
1.14474 -+clz:
1.14475 -+ clz pc,pc
1.14476 -+ clz r12,r12
1.14477 -+ clz r5,r5
1.14478 -+ clz r4,r4
1.14479 -+ clz lr,lr
1.14480 -+ clz r2,r3
1.14481 -+ clz r5,r11
1.14482 -+ clz pc,r3
1.14483 -+ .text
1.14484 -+ .global cpc1
1.14485 -+cpc1:
1.14486 -+ cpc pc,pc
1.14487 -+ cpc r12,r12
1.14488 -+ cpc r5,r5
1.14489 -+ cpc r4,r4
1.14490 -+ cpc lr,lr
1.14491 -+ cpc pc,r4
1.14492 -+ cpc r5,r9
1.14493 -+ cpc r6,r7
1.14494 -+ .text
1.14495 -+ .global asr3
1.14496 -+asr3:
1.14497 -+ asr pc,pc,0
1.14498 -+ asr r12,r12,31
1.14499 -+ asr r5,r5,16
1.14500 -+ asr r4,r4,15
1.14501 -+ asr lr,lr,1
1.14502 -+ asr r4,r11,19
1.14503 -+ asr sp,pc,26
1.14504 -+ asr r11,sp,8
1.14505 -+ .text
1.14506 -+ .global lsl3
1.14507 -+lsl3:
1.14508 -+ lsl pc,pc,0
1.14509 -+ lsl r12,r12,31
1.14510 -+ lsl r5,r5,16
1.14511 -+ lsl r4,r4,15
1.14512 -+ lsl lr,lr,1
1.14513 -+ lsl r8,r10,17
1.14514 -+ lsl r2,lr,3
1.14515 -+ lsl lr,r11,14
1.14516 -+ .text
1.14517 -+ .global lsr3
1.14518 -+lsr3:
1.14519 -+ lsr pc,pc,0
1.14520 -+ lsr r12,r12,31
1.14521 -+ lsr r5,r5,16
1.14522 -+ lsr r4,r4,15
1.14523 -+ lsr lr,lr,1
1.14524 -+ lsr r4,r3,31
1.14525 -+ lsr pc,r9,14
1.14526 -+ lsr r3,r0,6
1.14527 -+/* .text
1.14528 -+ .global extract_b
1.14529 -+extract_b:
1.14530 -+ extract.b pc,pc:b
1.14531 -+ extract.b r12,r12:t
1.14532 -+ extract.b r5,r5:u
1.14533 -+ extract.b r4,r4:l
1.14534 -+ extract.b lr,lr:l
1.14535 -+ extract.b r2,r5:l
1.14536 -+ extract.b r12,r3:l
1.14537 -+ extract.b sp,r3:l
1.14538 -+ .text
1.14539 -+ .global insert_b
1.14540 -+insert_b:
1.14541 -+ insert.b pc:b,pc
1.14542 -+ insert.b r12:t,r12
1.14543 -+ insert.b r5:u,r5
1.14544 -+ insert.b r4:l,r4
1.14545 -+ insert.b lr:l,lr
1.14546 -+ insert.b r12:u,r3
1.14547 -+ insert.b r10:l,lr
1.14548 -+ insert.b r11:l,r12
1.14549 -+ .text
1.14550 -+ .global extract_h
1.14551 -+extract_h:
1.14552 -+ extract.h pc,pc:b
1.14553 -+ extract.h r12,r12:t
1.14554 -+ extract.h r5,r5:t
1.14555 -+ extract.h r4,r4:b
1.14556 -+ extract.h lr,lr:t
1.14557 -+ extract.h r11,lr:b
1.14558 -+ extract.h r10,r0:b
1.14559 -+ extract.h r11,r12:b
1.14560 -+ .text
1.14561 -+ .global insert_h
1.14562 -+insert_h:
1.14563 -+ insert.h pc:b,pc
1.14564 -+ insert.h r12:t,r12
1.14565 -+ insert.h r5:t,r5
1.14566 -+ insert.h r4:b,r4
1.14567 -+ insert.h lr:t,lr
1.14568 -+ insert.h r12:t,r11
1.14569 -+ insert.h r7:b,r6
1.14570 -+ insert.h r1:t,r11 */
1.14571 -+ .text
1.14572 -+ .global movc1
1.14573 -+movc1:
1.14574 -+ moveq pc,pc
1.14575 -+ moval r12,r12
1.14576 -+ movls r5,r5
1.14577 -+ movpl r4,r4
1.14578 -+ movne lr,lr
1.14579 -+ movne pc,r11
1.14580 -+ movmi r10,r2
1.14581 -+ movls r8,r12
1.14582 -+ .text
1.14583 -+ .global padd_h
1.14584 -+padd_h:
1.14585 -+ padd.h pc,pc,pc
1.14586 -+ padd.h r12,r12,r12
1.14587 -+ padd.h r5,r5,r5
1.14588 -+ padd.h r4,r4,r4
1.14589 -+ padd.h lr,lr,lr
1.14590 -+ padd.h r8,r2,r7
1.14591 -+ padd.h r0,r0,r3
1.14592 -+ padd.h sp,r11,r6
1.14593 -+ .text
1.14594 -+ .global psub_h
1.14595 -+psub_h:
1.14596 -+ psub.h pc,pc,pc
1.14597 -+ psub.h r12,r12,r12
1.14598 -+ psub.h r5,r5,r5
1.14599 -+ psub.h r4,r4,r4
1.14600 -+ psub.h lr,lr,lr
1.14601 -+ psub.h lr,r6,r8
1.14602 -+ psub.h r0,r1,sp
1.14603 -+ psub.h pc,pc,sp
1.14604 -+ .text
1.14605 -+ .global paddx_h
1.14606 -+paddx_h:
1.14607 -+ paddx.h pc,pc,pc
1.14608 -+ paddx.h r12,r12,r12
1.14609 -+ paddx.h r5,r5,r5
1.14610 -+ paddx.h r4,r4,r4
1.14611 -+ paddx.h lr,lr,lr
1.14612 -+ paddx.h pc,pc,r1
1.14613 -+ paddx.h r10,r4,r5
1.14614 -+ paddx.h r5,pc,r2
1.14615 -+ .text
1.14616 -+ .global psubx_h
1.14617 -+psubx_h:
1.14618 -+ psubx.h pc,pc,pc
1.14619 -+ psubx.h r12,r12,r12
1.14620 -+ psubx.h r5,r5,r5
1.14621 -+ psubx.h r4,r4,r4
1.14622 -+ psubx.h lr,lr,lr
1.14623 -+ psubx.h r5,r12,r5
1.14624 -+ psubx.h r3,r8,r3
1.14625 -+ psubx.h r5,r2,r3
1.14626 -+ .text
1.14627 -+ .global padds_sh
1.14628 -+padds_sh:
1.14629 -+ padds.sh pc,pc,pc
1.14630 -+ padds.sh r12,r12,r12
1.14631 -+ padds.sh r5,r5,r5
1.14632 -+ padds.sh r4,r4,r4
1.14633 -+ padds.sh lr,lr,lr
1.14634 -+ padds.sh r9,lr,r2
1.14635 -+ padds.sh r6,r8,r1
1.14636 -+ padds.sh r6,r4,r10
1.14637 -+ .text
1.14638 -+ .global psubs_sh
1.14639 -+psubs_sh:
1.14640 -+ psubs.sh pc,pc,pc
1.14641 -+ psubs.sh r12,r12,r12
1.14642 -+ psubs.sh r5,r5,r5
1.14643 -+ psubs.sh r4,r4,r4
1.14644 -+ psubs.sh lr,lr,lr
1.14645 -+ psubs.sh r6,lr,r11
1.14646 -+ psubs.sh r2,r12,r4
1.14647 -+ psubs.sh r0,r9,r0
1.14648 -+ .text
1.14649 -+ .global paddxs_sh
1.14650 -+paddxs_sh:
1.14651 -+ paddxs.sh pc,pc,pc
1.14652 -+ paddxs.sh r12,r12,r12
1.14653 -+ paddxs.sh r5,r5,r5
1.14654 -+ paddxs.sh r4,r4,r4
1.14655 -+ paddxs.sh lr,lr,lr
1.14656 -+ paddxs.sh r0,r3,r9
1.14657 -+ paddxs.sh pc,r10,r11
1.14658 -+ paddxs.sh pc,r10,pc
1.14659 -+ .text
1.14660 -+ .global psubxs_sh
1.14661 -+psubxs_sh:
1.14662 -+ psubxs.sh pc,pc,pc
1.14663 -+ psubxs.sh r12,r12,r12
1.14664 -+ psubxs.sh r5,r5,r5
1.14665 -+ psubxs.sh r4,r4,r4
1.14666 -+ psubxs.sh lr,lr,lr
1.14667 -+ psubxs.sh r7,r4,r4
1.14668 -+ psubxs.sh r7,r8,r3
1.14669 -+ psubxs.sh pc,r6,r5
1.14670 -+ .text
1.14671 -+ .global padds_uh
1.14672 -+padds_uh:
1.14673 -+ padds.uh pc,pc,pc
1.14674 -+ padds.uh r12,r12,r12
1.14675 -+ padds.uh r5,r5,r5
1.14676 -+ padds.uh r4,r4,r4
1.14677 -+ padds.uh lr,lr,lr
1.14678 -+ padds.uh r12,r11,r7
1.14679 -+ padds.uh r7,r8,lr
1.14680 -+ padds.uh r6,r9,r7
1.14681 -+ .text
1.14682 -+ .global psubs_uh
1.14683 -+psubs_uh:
1.14684 -+ psubs.uh pc,pc,pc
1.14685 -+ psubs.uh r12,r12,r12
1.14686 -+ psubs.uh r5,r5,r5
1.14687 -+ psubs.uh r4,r4,r4
1.14688 -+ psubs.uh lr,lr,lr
1.14689 -+ psubs.uh lr,r10,r6
1.14690 -+ psubs.uh sp,r2,pc
1.14691 -+ psubs.uh r2,r9,r2
1.14692 -+ .text
1.14693 -+ .global paddxs_uh
1.14694 -+paddxs_uh:
1.14695 -+ paddxs.uh pc,pc,pc
1.14696 -+ paddxs.uh r12,r12,r12
1.14697 -+ paddxs.uh r5,r5,r5
1.14698 -+ paddxs.uh r4,r4,r4
1.14699 -+ paddxs.uh lr,lr,lr
1.14700 -+ paddxs.uh r7,r9,r5
1.14701 -+ paddxs.uh r9,r1,r4
1.14702 -+ paddxs.uh r5,r2,r3
1.14703 -+ .text
1.14704 -+ .global psubxs_uh
1.14705 -+psubxs_uh:
1.14706 -+ psubxs.uh pc,pc,pc
1.14707 -+ psubxs.uh r12,r12,r12
1.14708 -+ psubxs.uh r5,r5,r5
1.14709 -+ psubxs.uh r4,r4,r4
1.14710 -+ psubxs.uh lr,lr,lr
1.14711 -+ psubxs.uh sp,r5,sp
1.14712 -+ psubxs.uh sp,r6,r6
1.14713 -+ psubxs.uh r3,r11,r8
1.14714 -+ .text
1.14715 -+ .global paddh_sh
1.14716 -+paddh_sh:
1.14717 -+ paddh.sh pc,pc,pc
1.14718 -+ paddh.sh r12,r12,r12
1.14719 -+ paddh.sh r5,r5,r5
1.14720 -+ paddh.sh r4,r4,r4
1.14721 -+ paddh.sh lr,lr,lr
1.14722 -+ paddh.sh r12,sp,r3
1.14723 -+ paddh.sh pc,r5,r3
1.14724 -+ paddh.sh r8,r8,sp
1.14725 -+ .text
1.14726 -+ .global psubh_sh
1.14727 -+psubh_sh:
1.14728 -+ psubh.sh pc,pc,pc
1.14729 -+ psubh.sh r12,r12,r12
1.14730 -+ psubh.sh r5,r5,r5
1.14731 -+ psubh.sh r4,r4,r4
1.14732 -+ psubh.sh lr,lr,lr
1.14733 -+ psubh.sh r1,r5,r8
1.14734 -+ psubh.sh r7,r3,r6
1.14735 -+ psubh.sh r4,r3,r3
1.14736 -+ .text
1.14737 -+ .global paddxh_sh
1.14738 -+paddxh_sh:
1.14739 -+ paddxh.sh pc,pc,pc
1.14740 -+ paddxh.sh r12,r12,r12
1.14741 -+ paddxh.sh r5,r5,r5
1.14742 -+ paddxh.sh r4,r4,r4
1.14743 -+ paddxh.sh lr,lr,lr
1.14744 -+ paddxh.sh r6,r0,r4
1.14745 -+ paddxh.sh r9,r8,r9
1.14746 -+ paddxh.sh r3,r0,sp
1.14747 -+ .text
1.14748 -+ .global psubxh_sh
1.14749 -+psubxh_sh:
1.14750 -+ psubxh.sh pc,pc,pc
1.14751 -+ psubxh.sh r12,r12,r12
1.14752 -+ psubxh.sh r5,r5,r5
1.14753 -+ psubxh.sh r4,r4,r4
1.14754 -+ psubxh.sh lr,lr,lr
1.14755 -+ psubxh.sh r4,pc,r12
1.14756 -+ psubxh.sh r8,r4,r6
1.14757 -+ psubxh.sh r12,r9,r4
1.14758 -+ .text
1.14759 -+ .global paddsub_h
1.14760 -+paddsub_h:
1.14761 -+ paddsub.h pc,pc:b,pc:b
1.14762 -+ paddsub.h r12,r12:t,r12:t
1.14763 -+ paddsub.h r5,r5:t,r5:t
1.14764 -+ paddsub.h r4,r4:b,r4:b
1.14765 -+ paddsub.h lr,lr:t,lr:t
1.14766 -+ paddsub.h r5,r2:t,lr:b
1.14767 -+ paddsub.h r7,r1:b,r8:b
1.14768 -+ paddsub.h r6,r10:t,r5:t
1.14769 -+ .text
1.14770 -+ .global psubadd_h
1.14771 -+psubadd_h:
1.14772 -+ psubadd.h pc,pc:b,pc:b
1.14773 -+ psubadd.h r12,r12:t,r12:t
1.14774 -+ psubadd.h r5,r5:t,r5:t
1.14775 -+ psubadd.h r4,r4:b,r4:b
1.14776 -+ psubadd.h lr,lr:t,lr:t
1.14777 -+ psubadd.h r9,r11:t,r8:t
1.14778 -+ psubadd.h r10,r7:t,lr:t
1.14779 -+ psubadd.h r6,pc:t,pc:b
1.14780 -+ .text
1.14781 -+ .global paddsubs_sh
1.14782 -+paddsubs_sh:
1.14783 -+ paddsubs.sh pc,pc:b,pc:b
1.14784 -+ paddsubs.sh r12,r12:t,r12:t
1.14785 -+ paddsubs.sh r5,r5:t,r5:t
1.14786 -+ paddsubs.sh r4,r4:b,r4:b
1.14787 -+ paddsubs.sh lr,lr:t,lr:t
1.14788 -+ paddsubs.sh r0,lr:t,r0:b
1.14789 -+ paddsubs.sh r9,r2:t,r4:t
1.14790 -+ paddsubs.sh r12,r9:t,sp:t
1.14791 -+ .text
1.14792 -+ .global psubadds_sh
1.14793 -+psubadds_sh:
1.14794 -+ psubadds.sh pc,pc:b,pc:b
1.14795 -+ psubadds.sh r12,r12:t,r12:t
1.14796 -+ psubadds.sh r5,r5:t,r5:t
1.14797 -+ psubadds.sh r4,r4:b,r4:b
1.14798 -+ psubadds.sh lr,lr:t,lr:t
1.14799 -+ psubadds.sh pc,lr:b,r1:t
1.14800 -+ psubadds.sh r11,r3:b,r12:b
1.14801 -+ psubadds.sh r10,r2:t,r8:t
1.14802 -+ .text
1.14803 -+ .global paddsubs_uh
1.14804 -+paddsubs_uh:
1.14805 -+ paddsubs.uh pc,pc:b,pc:b
1.14806 -+ paddsubs.uh r12,r12:t,r12:t
1.14807 -+ paddsubs.uh r5,r5:t,r5:t
1.14808 -+ paddsubs.uh r4,r4:b,r4:b
1.14809 -+ paddsubs.uh lr,lr:t,lr:t
1.14810 -+ paddsubs.uh r9,r2:b,r3:b
1.14811 -+ paddsubs.uh sp,sp:b,r7:t
1.14812 -+ paddsubs.uh lr,r0:b,r10:t
1.14813 -+ .text
1.14814 -+ .global psubadds_uh
1.14815 -+psubadds_uh:
1.14816 -+ psubadds.uh pc,pc:b,pc:b
1.14817 -+ psubadds.uh r12,r12:t,r12:t
1.14818 -+ psubadds.uh r5,r5:t,r5:t
1.14819 -+ psubadds.uh r4,r4:b,r4:b
1.14820 -+ psubadds.uh lr,lr:t,lr:t
1.14821 -+ psubadds.uh r12,r9:t,pc:t
1.14822 -+ psubadds.uh r8,r6:b,r8:b
1.14823 -+ psubadds.uh r8,r8:b,r4:b
1.14824 -+ .text
1.14825 -+ .global paddsubh_sh
1.14826 -+paddsubh_sh:
1.14827 -+ paddsubh.sh pc,pc:b,pc:b
1.14828 -+ paddsubh.sh r12,r12:t,r12:t
1.14829 -+ paddsubh.sh r5,r5:t,r5:t
1.14830 -+ paddsubh.sh r4,r4:b,r4:b
1.14831 -+ paddsubh.sh lr,lr:t,lr:t
1.14832 -+ paddsubh.sh r8,r9:t,r9:b
1.14833 -+ paddsubh.sh r0,sp:t,r1:t
1.14834 -+ paddsubh.sh r3,r1:b,r0:t
1.14835 -+ .text
1.14836 -+ .global psubaddh_sh
1.14837 -+psubaddh_sh:
1.14838 -+ psubaddh.sh pc,pc:b,pc:b
1.14839 -+ psubaddh.sh r12,r12:t,r12:t
1.14840 -+ psubaddh.sh r5,r5:t,r5:t
1.14841 -+ psubaddh.sh r4,r4:b,r4:b
1.14842 -+ psubaddh.sh lr,lr:t,lr:t
1.14843 -+ psubaddh.sh r7,r3:t,r10:b
1.14844 -+ psubaddh.sh r7,r2:t,r1:t
1.14845 -+ psubaddh.sh r11,r3:b,r6:b
1.14846 -+ .text
1.14847 -+ .global padd_b
1.14848 -+padd_b:
1.14849 -+ padd.b pc,pc,pc
1.14850 -+ padd.b r12,r12,r12
1.14851 -+ padd.b r5,r5,r5
1.14852 -+ padd.b r4,r4,r4
1.14853 -+ padd.b lr,lr,lr
1.14854 -+ padd.b r2,r6,pc
1.14855 -+ padd.b r8,r9,r12
1.14856 -+ padd.b r5,r12,r3
1.14857 -+ .text
1.14858 -+ .global psub_b
1.14859 -+psub_b:
1.14860 -+ psub.b pc,pc,pc
1.14861 -+ psub.b r12,r12,r12
1.14862 -+ psub.b r5,r5,r5
1.14863 -+ psub.b r4,r4,r4
1.14864 -+ psub.b lr,lr,lr
1.14865 -+ psub.b r0,r12,pc
1.14866 -+ psub.b r7,sp,r10
1.14867 -+ psub.b r5,sp,r12
1.14868 -+ .text
1.14869 -+ .global padds_sb
1.14870 -+padds_sb:
1.14871 -+ padds.sb pc,pc,pc
1.14872 -+ padds.sb r12,r12,r12
1.14873 -+ padds.sb r5,r5,r5
1.14874 -+ padds.sb r4,r4,r4
1.14875 -+ padds.sb lr,lr,lr
1.14876 -+ padds.sb sp,r11,r4
1.14877 -+ padds.sb r11,r10,r11
1.14878 -+ padds.sb r5,r12,r6
1.14879 -+ .text
1.14880 -+ .global psubs_sb
1.14881 -+psubs_sb:
1.14882 -+ psubs.sb pc,pc,pc
1.14883 -+ psubs.sb r12,r12,r12
1.14884 -+ psubs.sb r5,r5,r5
1.14885 -+ psubs.sb r4,r4,r4
1.14886 -+ psubs.sb lr,lr,lr
1.14887 -+ psubs.sb r7,r6,r8
1.14888 -+ psubs.sb r12,r10,r9
1.14889 -+ psubs.sb pc,r11,r0
1.14890 -+ .text
1.14891 -+ .global padds_ub
1.14892 -+padds_ub:
1.14893 -+ padds.ub pc,pc,pc
1.14894 -+ padds.ub r12,r12,r12
1.14895 -+ padds.ub r5,r5,r5
1.14896 -+ padds.ub r4,r4,r4
1.14897 -+ padds.ub lr,lr,lr
1.14898 -+ padds.ub r3,r2,r11
1.14899 -+ padds.ub r10,r8,r1
1.14900 -+ padds.ub r11,r8,r10
1.14901 -+ .text
1.14902 -+ .global psubs_ub
1.14903 -+psubs_ub:
1.14904 -+ psubs.ub pc,pc,pc
1.14905 -+ psubs.ub r12,r12,r12
1.14906 -+ psubs.ub r5,r5,r5
1.14907 -+ psubs.ub r4,r4,r4
1.14908 -+ psubs.ub lr,lr,lr
1.14909 -+ psubs.ub r0,r2,r7
1.14910 -+ psubs.ub lr,r5,r3
1.14911 -+ psubs.ub r6,r7,r9
1.14912 -+ .text
1.14913 -+ .global paddh_ub
1.14914 -+paddh_ub:
1.14915 -+ paddh.ub pc,pc,pc
1.14916 -+ paddh.ub r12,r12,r12
1.14917 -+ paddh.ub r5,r5,r5
1.14918 -+ paddh.ub r4,r4,r4
1.14919 -+ paddh.ub lr,lr,lr
1.14920 -+ paddh.ub lr,r1,r0
1.14921 -+ paddh.ub r2,r7,r7
1.14922 -+ paddh.ub r2,r1,r2
1.14923 -+ .text
1.14924 -+ .global psubh_ub
1.14925 -+psubh_ub:
1.14926 -+ psubh.ub pc,pc,pc
1.14927 -+ psubh.ub r12,r12,r12
1.14928 -+ psubh.ub r5,r5,r5
1.14929 -+ psubh.ub r4,r4,r4
1.14930 -+ psubh.ub lr,lr,lr
1.14931 -+ psubh.ub r0,r1,r6
1.14932 -+ psubh.ub r4,lr,r10
1.14933 -+ psubh.ub r9,r8,r1
1.14934 -+ .text
1.14935 -+ .global pmax_ub
1.14936 -+pmax_ub:
1.14937 -+ pmax.ub pc,pc,pc
1.14938 -+ pmax.ub r12,r12,r12
1.14939 -+ pmax.ub r5,r5,r5
1.14940 -+ pmax.ub r4,r4,r4
1.14941 -+ pmax.ub lr,lr,lr
1.14942 -+ pmax.ub pc,r2,r11
1.14943 -+ pmax.ub r12,r1,r1
1.14944 -+ pmax.ub r5,r2,r0
1.14945 -+ .text
1.14946 -+ .global pmax_sh
1.14947 -+pmax_sh:
1.14948 -+ pmax.sh pc,pc,pc
1.14949 -+ pmax.sh r12,r12,r12
1.14950 -+ pmax.sh r5,r5,r5
1.14951 -+ pmax.sh r4,r4,r4
1.14952 -+ pmax.sh lr,lr,lr
1.14953 -+ pmax.sh lr,r6,r12
1.14954 -+ pmax.sh r2,pc,r5
1.14955 -+ pmax.sh pc,r2,r7
1.14956 -+ .text
1.14957 -+ .global pmin_ub
1.14958 -+pmin_ub:
1.14959 -+ pmin.ub pc,pc,pc
1.14960 -+ pmin.ub r12,r12,r12
1.14961 -+ pmin.ub r5,r5,r5
1.14962 -+ pmin.ub r4,r4,r4
1.14963 -+ pmin.ub lr,lr,lr
1.14964 -+ pmin.ub r8,r1,r5
1.14965 -+ pmin.ub r1,r8,r3
1.14966 -+ pmin.ub r0,r2,r7
1.14967 -+ .text
1.14968 -+ .global pmin_sh
1.14969 -+pmin_sh:
1.14970 -+ pmin.sh pc,pc,pc
1.14971 -+ pmin.sh r12,r12,r12
1.14972 -+ pmin.sh r5,r5,r5
1.14973 -+ pmin.sh r4,r4,r4
1.14974 -+ pmin.sh lr,lr,lr
1.14975 -+ pmin.sh r8,r4,r10
1.14976 -+ pmin.sh lr,r10,r12
1.14977 -+ pmin.sh r2,r6,r2
1.14978 -+ .text
1.14979 -+ .global pavg_ub
1.14980 -+pavg_ub:
1.14981 -+ pavg.ub pc,pc,pc
1.14982 -+ pavg.ub r12,r12,r12
1.14983 -+ pavg.ub r5,r5,r5
1.14984 -+ pavg.ub r4,r4,r4
1.14985 -+ pavg.ub lr,lr,lr
1.14986 -+ pavg.ub r0,r1,r6
1.14987 -+ pavg.ub r8,r3,r6
1.14988 -+ pavg.ub pc,r12,r10
1.14989 -+ .text
1.14990 -+ .global pavg_sh
1.14991 -+pavg_sh:
1.14992 -+ pavg.sh pc,pc,pc
1.14993 -+ pavg.sh r12,r12,r12
1.14994 -+ pavg.sh r5,r5,r5
1.14995 -+ pavg.sh r4,r4,r4
1.14996 -+ pavg.sh lr,lr,lr
1.14997 -+ pavg.sh r9,pc,sp
1.14998 -+ pavg.sh pc,sp,r3
1.14999 -+ pavg.sh r6,r1,r9
1.15000 -+ .text
1.15001 -+ .global pabs_sb
1.15002 -+pabs_sb:
1.15003 -+ pabs.sb pc,pc
1.15004 -+ pabs.sb r12,r12
1.15005 -+ pabs.sb r5,r5
1.15006 -+ pabs.sb r4,r4
1.15007 -+ pabs.sb lr,lr
1.15008 -+ pabs.sb r11,r6
1.15009 -+ pabs.sb lr,r9
1.15010 -+ pabs.sb sp,r7
1.15011 -+ .text
1.15012 -+ .global pabs_sh
1.15013 -+pabs_sh:
1.15014 -+ pabs.sh pc,pc
1.15015 -+ pabs.sh r12,r12
1.15016 -+ pabs.sh r5,r5
1.15017 -+ pabs.sh r4,r4
1.15018 -+ pabs.sh lr,lr
1.15019 -+ pabs.sh pc,r3
1.15020 -+ pabs.sh r5,r7
1.15021 -+ pabs.sh r4,r0
1.15022 -+ .text
1.15023 -+ .global psad
1.15024 -+psad:
1.15025 -+ psad pc,pc,pc
1.15026 -+ psad r12,r12,r12
1.15027 -+ psad r5,r5,r5
1.15028 -+ psad r4,r4,r4
1.15029 -+ psad lr,lr,lr
1.15030 -+ psad r9,r11,r11
1.15031 -+ psad lr,r4,sp
1.15032 -+ psad lr,r4,r5
1.15033 -+ .text
1.15034 -+ .global pasr_b
1.15035 -+pasr_b:
1.15036 -+ pasr.b pc,pc,0
1.15037 -+ pasr.b r12,r12,7
1.15038 -+ pasr.b r5,r5,4
1.15039 -+ pasr.b r4,r4,3
1.15040 -+ pasr.b lr,lr,1
1.15041 -+ pasr.b pc,r7,1
1.15042 -+ pasr.b sp,lr,6
1.15043 -+ pasr.b sp,r3,2
1.15044 -+ .text
1.15045 -+ .global plsl_b
1.15046 -+plsl_b:
1.15047 -+ plsl.b pc,pc,0
1.15048 -+ plsl.b r12,r12,7
1.15049 -+ plsl.b r5,r5,4
1.15050 -+ plsl.b r4,r4,3
1.15051 -+ plsl.b lr,lr,1
1.15052 -+ plsl.b r2,r11,4
1.15053 -+ plsl.b r8,r5,7
1.15054 -+ plsl.b pc,r0,2
1.15055 -+ .text
1.15056 -+ .global plsr_b
1.15057 -+plsr_b:
1.15058 -+ plsr.b pc,pc,0
1.15059 -+ plsr.b r12,r12,7
1.15060 -+ plsr.b r5,r5,4
1.15061 -+ plsr.b r4,r4,3
1.15062 -+ plsr.b lr,lr,1
1.15063 -+ plsr.b r12,r1,2
1.15064 -+ plsr.b r6,pc,7
1.15065 -+ plsr.b r12,r11,2
1.15066 -+ .text
1.15067 -+ .global pasr_h
1.15068 -+pasr_h:
1.15069 -+ pasr.h pc,pc,0
1.15070 -+ pasr.h r12,r12,15
1.15071 -+ pasr.h r5,r5,8
1.15072 -+ pasr.h r4,r4,7
1.15073 -+ pasr.h lr,lr,1
1.15074 -+ pasr.h r0,r11,10
1.15075 -+ pasr.h r4,r6,8
1.15076 -+ pasr.h r6,r2,4
1.15077 -+ .text
1.15078 -+ .global plsl_h
1.15079 -+plsl_h:
1.15080 -+ plsl.h pc,pc,0
1.15081 -+ plsl.h r12,r12,15
1.15082 -+ plsl.h r5,r5,8
1.15083 -+ plsl.h r4,r4,7
1.15084 -+ plsl.h lr,lr,1
1.15085 -+ plsl.h r5,r10,9
1.15086 -+ plsl.h sp,lr,8
1.15087 -+ plsl.h r0,lr,7
1.15088 -+ .text
1.15089 -+ .global plsr_h
1.15090 -+plsr_h:
1.15091 -+ plsr.h pc,pc,0
1.15092 -+ plsr.h r12,r12,15
1.15093 -+ plsr.h r5,r5,8
1.15094 -+ plsr.h r4,r4,7
1.15095 -+ plsr.h lr,lr,1
1.15096 -+ plsr.h r11,r0,15
1.15097 -+ plsr.h lr,r3,3
1.15098 -+ plsr.h r8,lr,10
1.15099 -+ .text
1.15100 -+ .global packw_sh
1.15101 -+packw_sh:
1.15102 -+ packw.sh pc,pc,pc
1.15103 -+ packw.sh r12,r12,r12
1.15104 -+ packw.sh r5,r5,r5
1.15105 -+ packw.sh r4,r4,r4
1.15106 -+ packw.sh lr,lr,lr
1.15107 -+ packw.sh sp,r11,r10
1.15108 -+ packw.sh r8,r2,r12
1.15109 -+ packw.sh r8,r1,r5
1.15110 -+ .text
1.15111 -+ .global punpckub_h
1.15112 -+punpckub_h:
1.15113 -+ punpckub.h pc,pc:b
1.15114 -+ punpckub.h r12,r12:t
1.15115 -+ punpckub.h r5,r5:t
1.15116 -+ punpckub.h r4,r4:b
1.15117 -+ punpckub.h lr,lr:t
1.15118 -+ punpckub.h r6,r1:t
1.15119 -+ punpckub.h lr,r5:b
1.15120 -+ punpckub.h lr,r2:t
1.15121 -+ .text
1.15122 -+ .global punpcksb_h
1.15123 -+punpcksb_h:
1.15124 -+ punpcksb.h pc,pc:b
1.15125 -+ punpcksb.h r12,r12:t
1.15126 -+ punpcksb.h r5,r5:t
1.15127 -+ punpcksb.h r4,r4:b
1.15128 -+ punpcksb.h lr,lr:t
1.15129 -+ punpcksb.h r4,r7:t
1.15130 -+ punpcksb.h r6,lr:b
1.15131 -+ punpcksb.h r12,r12:t
1.15132 -+ .text
1.15133 -+ .global packsh_ub
1.15134 -+packsh_ub:
1.15135 -+ packsh.ub pc,pc,pc
1.15136 -+ packsh.ub r12,r12,r12
1.15137 -+ packsh.ub r5,r5,r5
1.15138 -+ packsh.ub r4,r4,r4
1.15139 -+ packsh.ub lr,lr,lr
1.15140 -+ packsh.ub r3,r6,r3
1.15141 -+ packsh.ub r8,r0,r3
1.15142 -+ packsh.ub r9,r3,lr
1.15143 -+ .text
1.15144 -+ .global packsh_sb
1.15145 -+packsh_sb:
1.15146 -+ packsh.sb pc,pc,pc
1.15147 -+ packsh.sb r12,r12,r12
1.15148 -+ packsh.sb r5,r5,r5
1.15149 -+ packsh.sb r4,r4,r4
1.15150 -+ packsh.sb lr,lr,lr
1.15151 -+ packsh.sb r6,r8,r1
1.15152 -+ packsh.sb lr,r9,r8
1.15153 -+ packsh.sb sp,r6,r6
1.15154 -+ .text
1.15155 -+ .global andl
1.15156 -+andl:
1.15157 -+ andl pc,0
1.15158 -+ andl r12,65535
1.15159 -+ andl r5,32768
1.15160 -+ andl r4,32767
1.15161 -+ andl lr,1
1.15162 -+ andl pc,23128
1.15163 -+ andl r8,47262
1.15164 -+ andl r7,13719
1.15165 -+ .text
1.15166 -+ .global andl_coh
1.15167 -+andl_coh:
1.15168 -+ andl pc,0,COH
1.15169 -+ andl r12,65535,COH
1.15170 -+ andl r5,32768,COH
1.15171 -+ andl r4,32767,COH
1.15172 -+ andl lr,1,COH
1.15173 -+ andl r6,22753,COH
1.15174 -+ andl r0,40653,COH
1.15175 -+ andl r4,48580,COH
1.15176 -+ .text
1.15177 -+ .global andh
1.15178 -+andh:
1.15179 -+ andh pc,0
1.15180 -+ andh r12,65535
1.15181 -+ andh r5,32768
1.15182 -+ andh r4,32767
1.15183 -+ andh lr,1
1.15184 -+ andh r12,52312
1.15185 -+ andh r3,8675
1.15186 -+ andh r2,42987
1.15187 -+ .text
1.15188 -+ .global andh_coh
1.15189 -+andh_coh:
1.15190 -+ andh pc,0,COH
1.15191 -+ andh r12,65535,COH
1.15192 -+ andh r5,32768,COH
1.15193 -+ andh r4,32767,COH
1.15194 -+ andh lr,1,COH
1.15195 -+ andh r11,34317,COH
1.15196 -+ andh r8,52982,COH
1.15197 -+ andh r10,23683,COH
1.15198 -+ .text
1.15199 -+ .global orl
1.15200 -+orl:
1.15201 -+ orl pc,0
1.15202 -+ orl r12,65535
1.15203 -+ orl r5,32768
1.15204 -+ orl r4,32767
1.15205 -+ orl lr,1
1.15206 -+ orl sp,16766
1.15207 -+ orl r0,21181
1.15208 -+ orl pc,44103
1.15209 -+ .text
1.15210 -+ .global orh
1.15211 -+orh:
1.15212 -+ orh pc,0
1.15213 -+ orh r12,65535
1.15214 -+ orh r5,32768
1.15215 -+ orh r4,32767
1.15216 -+ orh lr,1
1.15217 -+ orh r8,28285
1.15218 -+ orh r12,30492
1.15219 -+ orh r1,59930
1.15220 -+ .text
1.15221 -+ .global eorl
1.15222 -+eorl:
1.15223 -+ eorl pc,0
1.15224 -+ eorl r12,65535
1.15225 -+ eorl r5,32768
1.15226 -+ eorl r4,32767
1.15227 -+ eorl lr,1
1.15228 -+ eorl r4,51129
1.15229 -+ eorl r6,64477
1.15230 -+ eorl r1,20913
1.15231 -+ .text
1.15232 -+ .global eorh
1.15233 -+eorh:
1.15234 -+ eorh pc,0
1.15235 -+ eorh r12,65535
1.15236 -+ eorh r5,32768
1.15237 -+ eorh r4,32767
1.15238 -+ eorh lr,1
1.15239 -+ eorh r0,11732
1.15240 -+ eorh r10,38069
1.15241 -+ eorh r9,57130
1.15242 -+ .text
1.15243 -+ .global mcall
1.15244 -+mcall:
1.15245 -+ mcall pc[0]
1.15246 -+ mcall r12[-4]
1.15247 -+ mcall r5[-131072]
1.15248 -+ mcall r4[131068]
1.15249 -+ mcall lr[4]
1.15250 -+ mcall sp[61180]
1.15251 -+ mcall r4[-35000]
1.15252 -+ mcall r0[9924]
1.15253 -+ .text
1.15254 -+ .global pref
1.15255 -+pref:
1.15256 -+ pref pc[0]
1.15257 -+ pref r12[-1]
1.15258 -+ pref r5[-32768]
1.15259 -+ pref r4[32767]
1.15260 -+ pref lr[1]
1.15261 -+ pref r7[7748]
1.15262 -+ pref r7[-7699]
1.15263 -+ pref r2[-25892]
1.15264 -+ .text
1.15265 -+ .global cache
1.15266 -+cache:
1.15267 -+ cache pc[0],0
1.15268 -+ cache r12[-1],31
1.15269 -+ cache r5[-1024],16
1.15270 -+ cache r4[1023],15
1.15271 -+ cache lr[1],1
1.15272 -+ cache r3[-964],17
1.15273 -+ cache r4[-375],22
1.15274 -+ cache r3[-888],17
1.15275 -+ .text
1.15276 -+ .global sub4
1.15277 -+sub4:
1.15278 -+ sub pc,0
1.15279 -+ sub r12,-1
1.15280 -+ sub r5,-1048576
1.15281 -+ sub r4,1048575
1.15282 -+ sub lr,1
1.15283 -+ sub r2,-619156
1.15284 -+ sub lr,461517
1.15285 -+ sub r8,-185051
1.15286 -+ .text
1.15287 -+ .global cp3
1.15288 -+cp3:
1.15289 -+ cp pc,0
1.15290 -+ cp r12,-1
1.15291 -+ cp r5,-1048576
1.15292 -+ cp r4,1048575
1.15293 -+ cp lr,1
1.15294 -+ cp r1,124078
1.15295 -+ cp r0,-378909
1.15296 -+ cp r4,-243180
1.15297 -+ .text
1.15298 -+ .global mov2
1.15299 -+mov2:
1.15300 -+ mov pc,0
1.15301 -+ mov r12,-1
1.15302 -+ mov r5,-1048576
1.15303 -+ mov r4,1048575
1.15304 -+ mov lr,1
1.15305 -+ mov r5,-317021
1.15306 -+ mov sp,-749164
1.15307 -+ mov r5,940179
1.15308 -+ .text
1.15309 -+ .global brc2
1.15310 -+brc2:
1.15311 -+ breq 0
1.15312 -+ bral -2
1.15313 -+ brls -2097152
1.15314 -+ brpl 2097150
1.15315 -+ brne 2
1.15316 -+ brhi -1796966
1.15317 -+ brqs 1321368
1.15318 -+ brls -577434
1.15319 -+ .text
1.15320 -+ .global rcall2
1.15321 -+rcall2:
1.15322 -+ rcall 0
1.15323 -+ rcall -2
1.15324 -+ rcall -2097152
1.15325 -+ rcall 2097150
1.15326 -+ rcall 2
1.15327 -+ rcall 496820
1.15328 -+ rcall 1085092
1.15329 -+ rcall -1058
1.15330 -+ .text
1.15331 -+ .global sub5
1.15332 -+sub5:
1.15333 -+ sub pc,pc,0
1.15334 -+ sub r12,r12,-1
1.15335 -+ sub r5,r5,-32768
1.15336 -+ sub r4,r4,32767
1.15337 -+ sub lr,lr,1
1.15338 -+ sub pc,pc,-12744
1.15339 -+ sub r7,r7,-27365
1.15340 -+ sub r2,r9,-17358
1.15341 -+ .text
1.15342 -+ .global satsub_w2
1.15343 -+satsub_w2:
1.15344 -+ satsub.w pc,pc,0
1.15345 -+ satsub.w r12,r12,-1
1.15346 -+ satsub.w r5,r5,-32768
1.15347 -+ satsub.w r4,r4,32767
1.15348 -+ satsub.w lr,lr,1
1.15349 -+ satsub.w r2,lr,-2007
1.15350 -+ satsub.w r7,r12,-784
1.15351 -+ satsub.w r4,r7,23180
1.15352 -+ .text
1.15353 -+ .global ld_d4
1.15354 -+ld_d4:
1.15355 -+ ld.d r0,pc[0]
1.15356 -+ ld.d r14,r12[-1]
1.15357 -+ ld.d r8,r5[-32768]
1.15358 -+ ld.d r6,r4[32767]
1.15359 -+ ld.d r2,lr[1]
1.15360 -+ ld.d r14,r11[14784]
1.15361 -+ ld.d r6,r9[-18905]
1.15362 -+ ld.d r2,r3[-6355]
1.15363 -+ .text
1.15364 -+ .global ld_w4
1.15365 -+ld_w4:
1.15366 -+ ld.w pc,pc[0]
1.15367 -+ ld.w r12,r12[-1]
1.15368 -+ ld.w r5,r5[-32768]
1.15369 -+ ld.w r4,r4[32767]
1.15370 -+ ld.w lr,lr[1]
1.15371 -+ ld.w r0,r12[-22133]
1.15372 -+ ld.w sp,pc[-20521]
1.15373 -+ /* ld.w r3,r5[29035] */
1.15374 -+ nop
1.15375 -+ .text
1.15376 -+ .global ld_sh4
1.15377 -+ld_sh4:
1.15378 -+ ld.sh pc,pc[0]
1.15379 -+ ld.sh r12,r12[-1]
1.15380 -+ ld.sh r5,r5[-32768]
1.15381 -+ ld.sh r4,r4[32767]
1.15382 -+ ld.sh lr,lr[1]
1.15383 -+ ld.sh r6,r10[30930]
1.15384 -+ ld.sh r6,r10[21973]
1.15385 -+ /* ld.sh r11,r10[-2058] */
1.15386 -+ nop
1.15387 -+ .text
1.15388 -+ .global ld_uh4
1.15389 -+ld_uh4:
1.15390 -+ ld.uh pc,pc[0]
1.15391 -+ ld.uh r12,r12[-1]
1.15392 -+ ld.uh r5,r5[-32768]
1.15393 -+ ld.uh r4,r4[32767]
1.15394 -+ ld.uh lr,lr[1]
1.15395 -+ ld.uh r1,r9[-13354]
1.15396 -+ ld.uh lr,r11[21337]
1.15397 -+ /* ld.uh r2,lr[-25370] */
1.15398 -+ nop
1.15399 -+ .text
1.15400 -+ .global ld_sb1
1.15401 -+ld_sb1:
1.15402 -+ ld.sb pc,pc[0]
1.15403 -+ ld.sb r12,r12[-1]
1.15404 -+ ld.sb r5,r5[-32768]
1.15405 -+ ld.sb r4,r4[32767]
1.15406 -+ ld.sb lr,lr[1]
1.15407 -+ ld.sb r7,sp[-28663]
1.15408 -+ ld.sb r2,r1[-5879]
1.15409 -+ ld.sb r12,r3[18734]
1.15410 -+ .text
1.15411 -+ .global ld_ub4
1.15412 -+ld_ub4:
1.15413 -+ ld.ub pc,pc[0]
1.15414 -+ ld.ub r12,r12[-1]
1.15415 -+ ld.ub r5,r5[-32768]
1.15416 -+ ld.ub r4,r4[32767]
1.15417 -+ ld.ub lr,lr[1]
1.15418 -+ ld.ub pc,r4[8277]
1.15419 -+ ld.ub r5,r12[19172]
1.15420 -+ ld.ub r10,lr[26347]
1.15421 -+ .text
1.15422 -+ .global st_d4
1.15423 -+st_d4:
1.15424 -+ st.d pc[0],r0
1.15425 -+ st.d r12[-1],r14
1.15426 -+ st.d r5[-32768],r8
1.15427 -+ st.d r4[32767],r6
1.15428 -+ st.d lr[1],r2
1.15429 -+ st.d r5[13200],r10
1.15430 -+ st.d r5[9352],r10
1.15431 -+ st.d r5[32373],r4
1.15432 -+ .text
1.15433 -+ .global st_w4
1.15434 -+st_w4:
1.15435 -+ st.w pc[0],pc
1.15436 -+ st.w r12[-1],r12
1.15437 -+ st.w r5[-32768],r5
1.15438 -+ st.w r4[32767],r4
1.15439 -+ st.w lr[1],lr
1.15440 -+ st.w sp[6136],r7
1.15441 -+ st.w r6[27087],r12
1.15442 -+ /* st.w r3[20143],r7 */
1.15443 -+ nop
1.15444 -+ .text
1.15445 -+ .global st_h4
1.15446 -+st_h4:
1.15447 -+ st.h pc[0],pc
1.15448 -+ st.h r12[-1],r12
1.15449 -+ st.h r5[-32768],r5
1.15450 -+ st.h r4[32767],r4
1.15451 -+ st.h lr[1],lr
1.15452 -+ st.h r4[-9962],r7
1.15453 -+ st.h r9[-16250],r3
1.15454 -+ /* st.h r8[-28810],r7 */
1.15455 -+ nop
1.15456 -+ .text
1.15457 -+ .global st_b4
1.15458 -+st_b4:
1.15459 -+ st.b pc[0],pc
1.15460 -+ st.b r12[-1],r12
1.15461 -+ st.b r5[-32768],r5
1.15462 -+ st.b r4[32767],r4
1.15463 -+ st.b lr[1],lr
1.15464 -+ st.b r12[30102],r6
1.15465 -+ st.b r5[28977],r1
1.15466 -+ st.b r0[5470],r1
1.15467 -+ .text
1.15468 -+ .global mfsr
1.15469 -+mfsr:
1.15470 -+ mfsr pc,0
1.15471 -+ mfsr r12,1020
1.15472 -+ mfsr r5,512
1.15473 -+ mfsr r4,508
1.15474 -+ mfsr lr,4
1.15475 -+ mfsr r2,696
1.15476 -+ mfsr r4,260
1.15477 -+ mfsr r10,1016
1.15478 -+ .text
1.15479 -+ .global mtsr
1.15480 -+mtsr:
1.15481 -+ mtsr 0,pc
1.15482 -+ mtsr 1020,r12
1.15483 -+ mtsr 512,r5
1.15484 -+ mtsr 508,r4
1.15485 -+ mtsr 4,lr
1.15486 -+ mtsr 224,r10
1.15487 -+ mtsr 836,r12
1.15488 -+ mtsr 304,r9
1.15489 -+ .text
1.15490 -+ .global mfdr
1.15491 -+mfdr:
1.15492 -+ mfdr pc,0
1.15493 -+ mfdr r12,1020
1.15494 -+ mfdr r5,512
1.15495 -+ mfdr r4,508
1.15496 -+ mfdr lr,4
1.15497 -+ mfdr r6,932
1.15498 -+ mfdr r5,36
1.15499 -+ mfdr r9,300
1.15500 -+ .text
1.15501 -+ .global mtdr
1.15502 -+mtdr:
1.15503 -+ mtdr 0,pc
1.15504 -+ mtdr 1020,r12
1.15505 -+ mtdr 512,r5
1.15506 -+ mtdr 508,r4
1.15507 -+ mtdr 4,lr
1.15508 -+ mtdr 180,r8
1.15509 -+ mtdr 720,r10
1.15510 -+ mtdr 408,lr
1.15511 -+ .text
1.15512 -+ .global sleep
1.15513 -+sleep:
1.15514 -+ sleep 0
1.15515 -+ sleep 255
1.15516 -+ sleep 128
1.15517 -+ sleep 127
1.15518 -+ sleep 1
1.15519 -+ sleep 254
1.15520 -+ sleep 15
1.15521 -+ sleep 43
1.15522 -+ .text
1.15523 -+ .global sync
1.15524 -+sync:
1.15525 -+ sync 0
1.15526 -+ sync 255
1.15527 -+ sync 128
1.15528 -+ sync 127
1.15529 -+ sync 1
1.15530 -+ sync 166
1.15531 -+ sync 230
1.15532 -+ sync 180
1.15533 -+ .text
1.15534 -+ .global bld
1.15535 -+bld:
1.15536 -+ bld pc,0
1.15537 -+ bld r12,31
1.15538 -+ bld r5,16
1.15539 -+ bld r4,15
1.15540 -+ bld lr,1
1.15541 -+ bld r9,15
1.15542 -+ bld r0,4
1.15543 -+ bld lr,26
1.15544 -+ .text
1.15545 -+ .global bst
1.15546 -+bst:
1.15547 -+ bst pc,0
1.15548 -+ bst r12,31
1.15549 -+ bst r5,16
1.15550 -+ bst r4,15
1.15551 -+ bst lr,1
1.15552 -+ bst r10,28
1.15553 -+ bst r0,3
1.15554 -+ bst sp,2
1.15555 -+ .text
1.15556 -+ .global sats
1.15557 -+sats:
1.15558 -+ sats pc>>0,0
1.15559 -+ sats r12>>31,31
1.15560 -+ sats r5>>16,16
1.15561 -+ sats r4>>15,15
1.15562 -+ sats lr>>1,1
1.15563 -+ sats r10>>3,19
1.15564 -+ sats r10>>2,26
1.15565 -+ sats r1>>20,1
1.15566 -+ .text
1.15567 -+ .global satu
1.15568 -+satu:
1.15569 -+ satu pc>>0,0
1.15570 -+ satu r12>>31,31
1.15571 -+ satu r5>>16,16
1.15572 -+ satu r4>>15,15
1.15573 -+ satu lr>>1,1
1.15574 -+ satu pc>>5,7
1.15575 -+ satu r7>>5,5
1.15576 -+ satu r2>>26,19
1.15577 -+ .text
1.15578 -+ .global satrnds
1.15579 -+satrnds:
1.15580 -+ satrnds pc>>0,0
1.15581 -+ satrnds r12>>31,31
1.15582 -+ satrnds r5>>16,16
1.15583 -+ satrnds r4>>15,15
1.15584 -+ satrnds lr>>1,1
1.15585 -+ satrnds r0>>21,19
1.15586 -+ satrnds sp>>0,2
1.15587 -+ satrnds r7>>6,29
1.15588 -+ .text
1.15589 -+ .global satrndu
1.15590 -+satrndu:
1.15591 -+ satrndu pc>>0,0
1.15592 -+ satrndu r12>>31,31
1.15593 -+ satrndu r5>>16,16
1.15594 -+ satrndu r4>>15,15
1.15595 -+ satrndu lr>>1,1
1.15596 -+ satrndu r12>>0,26
1.15597 -+ satrndu r4>>21,3
1.15598 -+ satrndu r10>>3,16
1.15599 -+ .text
1.15600 -+ .global subfc
1.15601 -+subfc:
1.15602 -+ subfeq pc,0
1.15603 -+ subfal r12,-1
1.15604 -+ subfls r5,-128
1.15605 -+ subfpl r4,127
1.15606 -+ subfne lr,1
1.15607 -+ subfls r10,8
1.15608 -+ subfvc r11,99
1.15609 -+ subfvs r2,73
1.15610 -+ .text
1.15611 -+ .global subc
1.15612 -+subc:
1.15613 -+ subeq pc,0
1.15614 -+ subal r12,-1
1.15615 -+ subls r5,-128
1.15616 -+ subpl r4,127
1.15617 -+ subne lr,1
1.15618 -+ subls r12,118
1.15619 -+ subvc lr,-12
1.15620 -+ submi r4,-13
1.15621 -+ .text
1.15622 -+ .global movc2
1.15623 -+movc2:
1.15624 -+ moveq pc,0
1.15625 -+ moval r12,-1
1.15626 -+ movls r5,-128
1.15627 -+ movpl r4,127
1.15628 -+ movne lr,1
1.15629 -+ movlt r3,-122
1.15630 -+ movvc r8,2
1.15631 -+ movne r7,-111
1.15632 -+ .text
1.15633 -+ .global cp_b
1.15634 -+cp_b:
1.15635 -+ cp.b pc,r0
1.15636 -+ cp.b r0,pc
1.15637 -+ cp.b r7,r8
1.15638 -+ cp.b r8,r7
1.15639 -+ .text
1.15640 -+ .global cp_h
1.15641 -+cp_h:
1.15642 -+ cp.h pc,r0
1.15643 -+ cp.h r0,pc
1.15644 -+ cp.h r7,r8
1.15645 -+ cp.h r8,r7
1.15646 -+ .text
1.15647 -+ .global ldm
1.15648 -+ldm:
1.15649 -+ ldm pc,r1-r6
1.15650 -+ ldm r12,r0-r15
1.15651 -+ ldm r5,r15
1.15652 -+ ldm r4,r0-r14
1.15653 -+ ldm lr,r0
1.15654 -+ ldm r9,r1,r5,r14
1.15655 -+ ldm r11,r2-r3,r5-r8,r15
1.15656 -+ ldm r6,r0,r3,r9,r13,r15
1.15657 -+ .text
1.15658 -+ .global ldm_pu
1.15659 -+ldm_pu:
1.15660 -+ ldm pc++,r6-r9
1.15661 -+ ldm r12++,r0-r15
1.15662 -+ ldm r5++,r15
1.15663 -+ ldm r4++,r0-r14
1.15664 -+ ldm lr++,r0
1.15665 -+ ldm r12++,r3-r5,r8,r10,r12,r14-r15
1.15666 -+ ldm r10++,r2,r4-r6,r14-r15
1.15667 -+ ldm r6++,r1,r3-r4,r9-r14
1.15668 -+ .text
1.15669 -+ .global ldmts
1.15670 -+ldmts:
1.15671 -+ ldmts pc,r7-r8
1.15672 -+ ldmts r12,r0-r15
1.15673 -+ ldmts r5,r15
1.15674 -+ ldmts r4,r0-r14
1.15675 -+ ldmts lr,r0
1.15676 -+ ldmts r0,r1-r2,r11-r12
1.15677 -+ ldmts lr,r0-r2,r4,r7-r8,r13-r14
1.15678 -+ ldmts r12,r0-r1,r3-r5,r9,r14-r15
1.15679 -+ .text
1.15680 -+ .global ldmts_pu
1.15681 -+ldmts_pu:
1.15682 -+ ldmts pc++,r9
1.15683 -+ ldmts r12++,r0-r15
1.15684 -+ ldmts r5++,r15
1.15685 -+ ldmts r4++,r0-r14
1.15686 -+ ldmts lr++,r0
1.15687 -+ ldmts sp++,r0,r2-r5,r7,r9,r11
1.15688 -+ ldmts r5++,r1-r3,r7,r10-r11
1.15689 -+ ldmts r8++,r2-r4,r7-r8,r13,r15
1.15690 -+ .text
1.15691 -+ .global stm
1.15692 -+stm:
1.15693 -+ stm pc,r7
1.15694 -+ stm r12,r0-r15
1.15695 -+ stm r5,r15
1.15696 -+ stm r4,r0-r14
1.15697 -+ stm lr,r0
1.15698 -+ stm sp,r2-r3,r5,r8,r11,r14
1.15699 -+ stm r4,r0-r4,r6,r10-r11,r14
1.15700 -+ stm r9,r1,r5,r9,r12-r15
1.15701 -+ .text
1.15702 -+ .global stm_pu
1.15703 -+stm_pu:
1.15704 -+ stm --pc,r4-r6
1.15705 -+ stm --r12,r0-r15
1.15706 -+ stm --r5,r15
1.15707 -+ stm --r4,r0-r14
1.15708 -+ stm --lr,r0
1.15709 -+ stm --r11,r0,r4-r9,r11-r15
1.15710 -+ stm --r11,r0,r3,r9-r10,r12,r14
1.15711 -+ stm --r6,r2,r8-r9,r13-r14
1.15712 -+ .text
1.15713 -+ .global stmts
1.15714 -+stmts:
1.15715 -+ stmts pc,r8
1.15716 -+ stmts r12,r0-r15
1.15717 -+ stmts r5,r15
1.15718 -+ stmts r4,r0-r14
1.15719 -+ stmts lr,r0
1.15720 -+ stmts r1,r0-r1,r3-r4,r6,r9-r10,r14-r15
1.15721 -+ stmts r3,r0,r6-r8,r10-r12
1.15722 -+ stmts r11,r0,r4,r6-r7,r9-r10,r12,r14-r15
1.15723 -+ .text
1.15724 -+ .global stmts_pu
1.15725 -+stmts_pu:
1.15726 -+ stmts --pc,r6-r8
1.15727 -+ stmts --r12,r0-r15
1.15728 -+ stmts --r5,r15
1.15729 -+ stmts --r4,r0-r14
1.15730 -+ stmts --lr,r0
1.15731 -+ stmts --r2,r0,r3-r4,r9-r10,r12-r13
1.15732 -+ stmts --r3,r0-r1,r14-r15
1.15733 -+ stmts --r0,r0,r2-r6,r10,r14
1.15734 -+ .text
1.15735 -+ .global ldins_h
1.15736 -+ldins_h:
1.15737 -+ ldins.h pc:b,pc[0]
1.15738 -+ ldins.h r12:t,r12[-2]
1.15739 -+ ldins.h r5:t,r5[-4096]
1.15740 -+ ldins.h r4:b,r4[4094]
1.15741 -+ ldins.h lr:t,lr[2]
1.15742 -+ ldins.h r0:t,lr[1930]
1.15743 -+ ldins.h r3:b,r7[-534]
1.15744 -+ ldins.h r2:b,r12[-2252]
1.15745 -+ .text
1.15746 -+ .global ldins_b
1.15747 -+ldins_b:
1.15748 -+ ldins.b pc:b,pc[0]
1.15749 -+ ldins.b r12:t,r12[-1]
1.15750 -+ ldins.b r5:u,r5[-2048]
1.15751 -+ ldins.b r4:l,r4[2047]
1.15752 -+ ldins.b lr:l,lr[1]
1.15753 -+ ldins.b r6:t,r4[-662]
1.15754 -+ ldins.b r5:b,r1[-151]
1.15755 -+ ldins.b r10:t,r11[-1923]
1.15756 -+ .text
1.15757 -+ .global ldswp_sh
1.15758 -+ldswp_sh:
1.15759 -+ ldswp.sh pc,pc[0]
1.15760 -+ ldswp.sh r12,r12[-2]
1.15761 -+ ldswp.sh r5,r5[-4096]
1.15762 -+ ldswp.sh r4,r4[4094]
1.15763 -+ ldswp.sh lr,lr[2]
1.15764 -+ ldswp.sh r9,r10[3848]
1.15765 -+ ldswp.sh r4,r12[-2040]
1.15766 -+ ldswp.sh r10,r2[3088]
1.15767 -+ .text
1.15768 -+ .global ldswp_uh
1.15769 -+ldswp_uh:
1.15770 -+ ldswp.uh pc,pc[0]
1.15771 -+ ldswp.uh r12,r12[-2]
1.15772 -+ ldswp.uh r5,r5[-4096]
1.15773 -+ ldswp.uh r4,r4[4094]
1.15774 -+ ldswp.uh lr,lr[2]
1.15775 -+ ldswp.uh r4,r9[3724]
1.15776 -+ ldswp.uh lr,sp[-1672]
1.15777 -+ ldswp.uh r8,r12[-3846]
1.15778 -+ .text
1.15779 -+ .global ldswp_w
1.15780 -+ldswp_w:
1.15781 -+ ldswp.w pc,pc[0]
1.15782 -+ ldswp.w r12,r12[-4]
1.15783 -+ ldswp.w r5,r5[-8192]
1.15784 -+ ldswp.w r4,r4[8188]
1.15785 -+ ldswp.w lr,lr[4]
1.15786 -+ ldswp.w sp,r7[1860]
1.15787 -+ ldswp.w pc,r5[-3324]
1.15788 -+ ldswp.w r12,r10[-3296]
1.15789 -+ .text
1.15790 -+ .global stswp_h
1.15791 -+stswp_h:
1.15792 -+ stswp.h pc[0],pc
1.15793 -+ stswp.h r12[-2],r12
1.15794 -+ stswp.h r5[-4096],r5
1.15795 -+ stswp.h r4[4094],r4
1.15796 -+ stswp.h lr[2],lr
1.15797 -+ stswp.h r7[64],r10
1.15798 -+ stswp.h r10[3024],r2
1.15799 -+ stswp.h r0[-2328],r10
1.15800 -+ .text
1.15801 -+ .global stswp_w
1.15802 -+stswp_w:
1.15803 -+ stswp.w pc[0],pc
1.15804 -+ stswp.w r12[-4],r12
1.15805 -+ stswp.w r5[-8192],r5
1.15806 -+ stswp.w r4[8188],r4
1.15807 -+ stswp.w lr[4],lr
1.15808 -+ stswp.w pc[1156],r8
1.15809 -+ stswp.w sp[7992],r10
1.15810 -+ stswp.w r8[-1172],r5
1.15811 -+ .text
1.15812 -+ .global and2
1.15813 -+and2:
1.15814 -+ and pc,pc,pc<<0
1.15815 -+ and r12,r12,r12<<31
1.15816 -+ and r5,r5,r5<<16
1.15817 -+ and r4,r4,r4<<15
1.15818 -+ and lr,lr,lr<<1
1.15819 -+ and r10,r2,r1<<1
1.15820 -+ and r12,r8,r11<<27
1.15821 -+ and r10,r7,r0<<3
1.15822 -+ .text
1.15823 -+ .global and3
1.15824 -+and3:
1.15825 -+ and pc,pc,pc>>0
1.15826 -+ and r12,r12,r12>>31
1.15827 -+ and r5,r5,r5>>16
1.15828 -+ and r4,r4,r4>>15
1.15829 -+ and lr,lr,lr>>1
1.15830 -+ and r12,r8,r7>>17
1.15831 -+ and pc,r4,r9>>20
1.15832 -+ and r10,r9,r10>>12
1.15833 -+ .text
1.15834 -+ .global or2
1.15835 -+or2:
1.15836 -+ or pc,pc,pc<<0
1.15837 -+ or r12,r12,r12<<31
1.15838 -+ or r5,r5,r5<<16
1.15839 -+ or r4,r4,r4<<15
1.15840 -+ or lr,lr,lr<<1
1.15841 -+ or r8,sp,r11<<29
1.15842 -+ or pc,r9,r2<<28
1.15843 -+ or r5,r1,r2<<3
1.15844 -+ .text
1.15845 -+ .global or3
1.15846 -+or3:
1.15847 -+ or pc,pc,pc>>0
1.15848 -+ or r12,r12,r12>>31
1.15849 -+ or r5,r5,r5>>16
1.15850 -+ or r4,r4,r4>>15
1.15851 -+ or lr,lr,lr>>1
1.15852 -+ or r1,sp,sp>>2
1.15853 -+ or r0,r1,r1>>29
1.15854 -+ or r4,r12,r8>>8
1.15855 -+ .text
1.15856 -+ .global eor2
1.15857 -+eor2:
1.15858 -+ eor pc,pc,pc<<0
1.15859 -+ eor r12,r12,r12<<31
1.15860 -+ eor r5,r5,r5<<16
1.15861 -+ eor r4,r4,r4<<15
1.15862 -+ eor lr,lr,lr<<1
1.15863 -+ eor r10,r9,r4<<11
1.15864 -+ eor r4,r0,r1<<31
1.15865 -+ eor r6,r2,r12<<13
1.15866 -+ .text
1.15867 -+ .global eor3
1.15868 -+eor3:
1.15869 -+ eor pc,pc,pc>>0
1.15870 -+ eor r12,r12,r12>>31
1.15871 -+ eor r5,r5,r5>>16
1.15872 -+ eor r4,r4,r4>>15
1.15873 -+ eor lr,lr,lr>>1
1.15874 -+ eor r5,r5,r5>>22
1.15875 -+ eor r10,r1,lr>>3
1.15876 -+ eor r7,lr,sp>>26
1.15877 -+ .text
1.15878 -+ .global sthh_w2
1.15879 -+sthh_w2:
1.15880 -+ sthh.w pc[pc<<0],pc:b,pc:b
1.15881 -+ sthh.w r12[r12<<3],r12:t,r12:t
1.15882 -+ sthh.w r5[r5<<2],r5:t,r5:t
1.15883 -+ sthh.w r4[r4<<1],r4:b,r4:b
1.15884 -+ sthh.w lr[lr<<1],lr:t,lr:t
1.15885 -+ sthh.w sp[r6<<3],r1:t,r12:t
1.15886 -+ sthh.w r6[r6<<0],r9:t,r9:t
1.15887 -+ sthh.w r10[r3<<0],r0:b,r11:t
1.15888 -+ .text
1.15889 -+ .global sthh_w1
1.15890 -+sthh_w1:
1.15891 -+ sthh.w pc[0],pc:b,pc:b
1.15892 -+ sthh.w r12[1020],r12:t,r12:t
1.15893 -+ sthh.w r5[512],r5:t,r5:t
1.15894 -+ sthh.w r4[508],r4:b,r4:b
1.15895 -+ sthh.w lr[4],lr:t,lr:t
1.15896 -+ sthh.w r4[404],r9:t,r0:b
1.15897 -+ sthh.w r8[348],r2:t,r10:b
1.15898 -+ sthh.w sp[172],r9:b,r2:b
1.15899 -+ .text
1.15900 -+ .global cop
1.15901 -+cop:
1.15902 -+ cop cp0,cr0,cr0,cr0,0
1.15903 -+ cop cp7,cr15,cr15,cr15,0x7f
1.15904 -+ cop cp3,cr5,cr5,cr5,0x31
1.15905 -+ cop cp2,cr4,cr4,cr4,0x30
1.15906 -+ cop cp5,cr8,cr3,cr7,0x5a
1.15907 -+ .text
1.15908 -+ .global ldc_w1
1.15909 -+ldc_w1:
1.15910 -+ ldc.w cp0,cr0,r0[0]
1.15911 -+ ldc.w cp7,cr15,pc[255<<2]
1.15912 -+ ldc.w cp3,cr5,r5[128<<2]
1.15913 -+ ldc.w cp2,cr4,r4[127<<2]
1.15914 -+ ldc.w cp4,cr9,r13[36<<2]
1.15915 -+ .text
1.15916 -+ .global ldc_w2
1.15917 -+ldc_w2:
1.15918 -+ ldc.w cp0,cr0,--r0
1.15919 -+ ldc.w cp7,cr15,--pc
1.15920 -+ ldc.w cp3,cr5,--r5
1.15921 -+ ldc.w cp2,cr4,--r4
1.15922 -+ ldc.w cp4,cr9,--r13
1.15923 -+ .text
1.15924 -+ .global ldc_w3
1.15925 -+ldc_w3:
1.15926 -+ ldc.w cp0,cr0,r0[r0]
1.15927 -+ ldc.w cp7,cr15,pc[pc<<3]
1.15928 -+ ldc.w cp3,cr5,r5[r4<<2]
1.15929 -+ ldc.w cp2,cr4,r4[r3<<1]
1.15930 -+ ldc.w cp4,cr9,r13[r12<<0]
1.15931 -+ .text
1.15932 -+ .global ldc_d1
1.15933 -+ldc_d1:
1.15934 -+ ldc.d cp0,cr0,r0[0]
1.15935 -+ ldc.d cp7,cr14,pc[255<<2]
1.15936 -+ ldc.d cp3,cr6,r5[128<<2]
1.15937 -+ ldc.d cp2,cr4,r4[127<<2]
1.15938 -+ ldc.d cp4,cr8,r13[36<<2]
1.15939 -+ .text
1.15940 -+ .global ldc_d2
1.15941 -+ldc_d2:
1.15942 -+ ldc.d cp0,cr0,--r0
1.15943 -+ ldc.d cp7,cr14,--pc
1.15944 -+ ldc.d cp3,cr6,--r5
1.15945 -+ ldc.d cp2,cr4,--r4
1.15946 -+ ldc.d cp4,cr8,--r13
1.15947 -+ .text
1.15948 -+ .global ldc_d3
1.15949 -+ldc_d3:
1.15950 -+ ldc.d cp0,cr0,r0[r0]
1.15951 -+ ldc.d cp7,cr14,pc[pc<<3]
1.15952 -+ ldc.d cp3,cr6,r5[r4<<2]
1.15953 -+ ldc.d cp2,cr4,r4[r3<<1]
1.15954 -+ ldc.d cp4,cr8,r13[r12<<0]
1.15955 -+ .text
1.15956 -+ .global stc_w1
1.15957 -+stc_w1:
1.15958 -+ stc.w cp0,r0[0],cr0
1.15959 -+ stc.w cp7,pc[255<<2],cr15
1.15960 -+ stc.w cp3,r5[128<<2],cr5
1.15961 -+ stc.w cp2,r4[127<<2],cr4
1.15962 -+ stc.w cp4,r13[36<<2],cr9
1.15963 -+ .text
1.15964 -+ .global stc_w2
1.15965 -+stc_w2:
1.15966 -+ stc.w cp0,r0++,cr0
1.15967 -+ stc.w cp7,pc++,cr15
1.15968 -+ stc.w cp3,r5++,cr5
1.15969 -+ stc.w cp2,r4++,cr4
1.15970 -+ stc.w cp4,r13++,cr9
1.15971 -+ .text
1.15972 -+ .global stc_w3
1.15973 -+stc_w3:
1.15974 -+ stc.w cp0,r0[r0],cr0
1.15975 -+ stc.w cp7,pc[pc<<3],cr15
1.15976 -+ stc.w cp3,r5[r4<<2],cr5
1.15977 -+ stc.w cp2,r4[r3<<1],cr4
1.15978 -+ stc.w cp4,r13[r12<<0],cr9
1.15979 -+ .text
1.15980 -+ .global stc_d1
1.15981 -+stc_d1:
1.15982 -+ stc.d cp0,r0[0],cr0
1.15983 -+ stc.d cp7,pc[255<<2],cr14
1.15984 -+ stc.d cp3,r5[128<<2],cr6
1.15985 -+ stc.d cp2,r4[127<<2],cr4
1.15986 -+ stc.d cp4,r13[36<<2],cr8
1.15987 -+ .text
1.15988 -+ .global stc_d2
1.15989 -+stc_d2:
1.15990 -+ stc.d cp0,r0++,cr0
1.15991 -+ stc.d cp7,pc++,cr14
1.15992 -+ stc.d cp3,r5++,cr6
1.15993 -+ stc.d cp2,r4++,cr4
1.15994 -+ stc.d cp4,r13++,cr8
1.15995 -+ .text
1.15996 -+ .global stc_d3
1.15997 -+stc_d3:
1.15998 -+ stc.d cp0,r0[r0],cr0
1.15999 -+ stc.d cp7,pc[pc<<3],cr14
1.16000 -+ stc.d cp3,r5[r4<<2],cr6
1.16001 -+ stc.d cp2,r4[r3<<1],cr4
1.16002 -+ stc.d cp4,r13[r12<<0],cr8
1.16003 -+ .text
1.16004 -+ .global ldc0_w
1.16005 -+ldc0_w:
1.16006 -+ ldc0.w cr0,r0[0]
1.16007 -+ ldc0.w cr15,pc[4095<<2]
1.16008 -+ ldc0.w cr5,r5[2048<<2]
1.16009 -+ ldc0.w cr4,r4[2047<<2]
1.16010 -+ ldc0.w cr9,r13[147<<2]
1.16011 -+ .text
1.16012 -+ .global ldc0_d
1.16013 -+ldc0_d:
1.16014 -+ ldc0.d cr0,r0[0]
1.16015 -+ ldc0.d cr14,pc[4095<<2]
1.16016 -+ ldc0.d cr6,r5[2048<<2]
1.16017 -+ ldc0.d cr4,r4[2047<<2]
1.16018 -+ ldc0.d cr8,r13[147<<2]
1.16019 -+ .text
1.16020 -+ .global stc0_w
1.16021 -+stc0_w:
1.16022 -+ stc0.w r0[0],cr0
1.16023 -+ stc0.w pc[4095<<2],cr15
1.16024 -+ stc0.w r5[2048<<2],cr5
1.16025 -+ stc0.w r4[2047<<2],cr4
1.16026 -+ stc0.w r13[147<<2],cr9
1.16027 -+ .text
1.16028 -+ .global stc0_d
1.16029 -+stc0_d:
1.16030 -+ stc0.d r0[0],cr0
1.16031 -+ stc0.d pc[4095<<2],cr14
1.16032 -+ stc0.d r5[2048<<2],cr6
1.16033 -+ stc0.d r4[2047<<2],cr4
1.16034 -+ stc0.d r13[147<<2],cr8
1.16035 -+ .text
1.16036 -+ .global memc
1.16037 -+memc:
1.16038 -+ memc 0, 0
1.16039 -+ memc -4, 31
1.16040 -+ memc -65536, 16
1.16041 -+ memc 65532, 15
1.16042 -+ .text
1.16043 -+ .global mems
1.16044 -+mems:
1.16045 -+ mems 0, 0
1.16046 -+ mems -4, 31
1.16047 -+ mems -65536, 16
1.16048 -+ mems 65532, 15
1.16049 -+ .text
1.16050 -+ .global memt
1.16051 -+memt:
1.16052 -+ memt 0, 0
1.16053 -+ memt -4, 31
1.16054 -+ memt -65536, 16
1.16055 -+ memt 65532, 15
1.16056 -+
1.16057 -+ .text
1.16058 -+ .global stcond
1.16059 -+stcond:
1.16060 -+ stcond r0[0], r0
1.16061 -+ stcond pc[-1], pc
1.16062 -+ stcond r8[-32768], r7
1.16063 -+ stcond r7[32767], r8
1.16064 -+ stcond r5[0x1234], r10
1.16065 -+
1.16066 -+ldcm_w:
1.16067 -+ ldcm.w cp0,pc,cr0-cr7
1.16068 -+ ldcm.w cp7,r0,cr0
1.16069 -+ ldcm.w cp4,r4++,cr0-cr6
1.16070 -+ ldcm.w cp3,r7,cr7
1.16071 -+ ldcm.w cp1,r12++,cr1,cr4-cr6
1.16072 -+ ldcm.w cp0,pc,cr8-cr15
1.16073 -+ ldcm.w cp7,r0,cr8
1.16074 -+ ldcm.w cp4,r4++,cr8-cr14
1.16075 -+ ldcm.w cp3,r7,cr15
1.16076 -+ ldcm.w cp1,r12++,cr9,cr12-cr14
1.16077 -+
1.16078 -+ldcm_d:
1.16079 -+ ldcm.d cp0,pc,cr0-cr15
1.16080 -+ ldcm.d cp7,r0,cr0,cr1
1.16081 -+ ldcm.d cp4,r4++,cr0-cr13
1.16082 -+ ldcm.d cp3,r7,cr14-cr15
1.16083 -+ ldcm.d cp2,r12++,cr0-cr3,cr8-cr9,cr14-cr15
1.16084 -+
1.16085 -+stcm_w:
1.16086 -+ stcm.w cp0,pc,cr0-cr7
1.16087 -+ stcm.w cp7,r0,cr0
1.16088 -+ stcm.w cp4,--r4,cr0-cr6
1.16089 -+ stcm.w cp3,r7,cr7
1.16090 -+ stcm.w cp1,--r12,cr1,cr4-cr6
1.16091 -+ stcm.w cp0,pc,cr8-cr15
1.16092 -+ stcm.w cp7,r0,cr8
1.16093 -+ stcm.w cp4,--r4,cr8-cr14
1.16094 -+ stcm.w cp3,r7,cr15
1.16095 -+ stcm.w cp1,--r12,cr9,cr12-cr14
1.16096 -+
1.16097 -+stcm_d:
1.16098 -+ stcm.d cp0,pc,cr0-cr15
1.16099 -+ stcm.d cp7,r0,cr0,cr1
1.16100 -+ stcm.d cp4,--r4,cr0-cr13
1.16101 -+ stcm.d cp3,r7,cr14-cr15
1.16102 -+ stcm.d cp2,--r12,cr0-cr3,cr8-cr9,cr14-cr15
1.16103 -+
1.16104 -+mvcr_w:
1.16105 -+ mvcr.w cp7,pc,cr15
1.16106 -+ mvcr.w cp0,r0,cr0
1.16107 -+ mvcr.w cp0,pc,cr15
1.16108 -+ mvcr.w cp7,r0,cr15
1.16109 -+ mvcr.w cp7,pc,cr0
1.16110 -+ mvcr.w cp4,r7,cr8
1.16111 -+ mvcr.w cp3,r8,cr7
1.16112 -+
1.16113 -+mvcr_d:
1.16114 -+ mvcr.d cp7,lr,cr14
1.16115 -+ mvcr.d cp0,r0,cr0
1.16116 -+ mvcr.d cp0,lr,cr14
1.16117 -+ mvcr.d cp7,r0,cr14
1.16118 -+ mvcr.d cp7,lr,cr0
1.16119 -+ mvcr.d cp4,r6,cr8
1.16120 -+ mvcr.d cp3,r8,cr6
1.16121 -+
1.16122 -+mvrc_w:
1.16123 -+ mvrc.w cp7,cr15,pc
1.16124 -+ mvrc.w cp0,cr0,r0
1.16125 -+ mvrc.w cp0,cr15,pc
1.16126 -+ mvrc.w cp7,cr15,r0
1.16127 -+ mvrc.w cp7,cr0,pc
1.16128 -+ mvrc.w cp4,cr8,r7
1.16129 -+ mvrc.w cp3,cr7,r8
1.16130 -+
1.16131 -+mvrc_d:
1.16132 -+ mvrc.d cp7,cr14,lr
1.16133 -+ mvrc.d cp0,cr0,r0
1.16134 -+ mvrc.d cp0,cr14,lr
1.16135 -+ mvrc.d cp7,cr14,r0
1.16136 -+ mvrc.d cp7,cr0,lr
1.16137 -+ mvrc.d cp4,cr8,r6
1.16138 -+ mvrc.d cp3,cr6,r8
1.16139 -+
1.16140 -+bfexts:
1.16141 -+ bfexts pc,pc,31,31
1.16142 -+ bfexts r0,r0,0,0
1.16143 -+ bfexts r0,pc,31,31
1.16144 -+ bfexts pc,r0,31,31
1.16145 -+ bfexts pc,pc,0,31
1.16146 -+ bfexts pc,pc,31,0
1.16147 -+ bfexts r7,r8,15,16
1.16148 -+ bfexts r8,r7,16,15
1.16149 -+
1.16150 -+bfextu:
1.16151 -+ bfextu pc,pc,31,31
1.16152 -+ bfextu r0,r0,0,0
1.16153 -+ bfextu r0,pc,31,31
1.16154 -+ bfextu pc,r0,31,31
1.16155 -+ bfextu pc,pc,0,31
1.16156 -+ bfextu pc,pc,31,0
1.16157 -+ bfextu r7,r8,15,16
1.16158 -+ bfextu r8,r7,16,15
1.16159 -+
1.16160 -+bfins:
1.16161 -+ bfins pc,pc,31,31
1.16162 -+ bfins r0,r0,0,0
1.16163 -+ bfins r0,pc,31,31
1.16164 -+ bfins pc,r0,31,31
1.16165 -+ bfins pc,pc,0,31
1.16166 -+ bfins pc,pc,31,0
1.16167 -+ bfins r7,r8,15,16
1.16168 -+ bfins r8,r7,16,15
1.16169 -+
1.16170 -+rsubc:
1.16171 -+ rsubeq pc,0
1.16172 -+ rsubal r12,-1
1.16173 -+ rsubls r5,-128
1.16174 -+ rsubpl r4,127
1.16175 -+ rsubne lr,1
1.16176 -+ rsubls r12,118
1.16177 -+ rsubvc lr,-12
1.16178 -+ rsubmi r4,-13
1.16179 -+
1.16180 -+addc:
1.16181 -+ addeq pc,pc,pc
1.16182 -+ addal r12,r12,r12
1.16183 -+ addls r5,r5,r5
1.16184 -+ addpl r4,r4,r4
1.16185 -+ addne lr,lr,lr
1.16186 -+ addls r10,r2,r1
1.16187 -+ addvc r12,r8,r11
1.16188 -+ addmi r10,r7,r0
1.16189 -+
1.16190 -+subc2:
1.16191 -+ subeq pc,pc,pc
1.16192 -+ subal r12,r12,r12
1.16193 -+ subls r5,r5,r5
1.16194 -+ subpl r4,r4,r4
1.16195 -+ subne lr,lr,lr
1.16196 -+ subls r10,r2,r1
1.16197 -+ subvc r12,r8,r11
1.16198 -+ submi r10,r7,r0
1.16199 -+
1.16200 -+andc:
1.16201 -+ andeq pc,pc,pc
1.16202 -+ andal r12,r12,r12
1.16203 -+ andls r5,r5,r5
1.16204 -+ andpl r4,r4,r4
1.16205 -+ andne lr,lr,lr
1.16206 -+ andls r10,r2,r1
1.16207 -+ andvc r12,r8,r11
1.16208 -+ andmi r10,r7,r0
1.16209 -+
1.16210 -+orc:
1.16211 -+ oreq pc,pc,pc
1.16212 -+ oral r12,r12,r12
1.16213 -+ orls r5,r5,r5
1.16214 -+ orpl r4,r4,r4
1.16215 -+ orne lr,lr,lr
1.16216 -+ orls r10,r2,r1
1.16217 -+ orvc r12,r8,r11
1.16218 -+ ormi r10,r7,r0
1.16219 -+
1.16220 -+eorc:
1.16221 -+ eoreq pc,pc,pc
1.16222 -+ eoral r12,r12,r12
1.16223 -+ eorls r5,r5,r5
1.16224 -+ eorpl r4,r4,r4
1.16225 -+ eorne lr,lr,lr
1.16226 -+ eorls r10,r2,r1
1.16227 -+ eorvc r12,r8,r11
1.16228 -+ eormi r10,r7,r0
1.16229 -+
1.16230 -+ldcond:
1.16231 -+ ld.weq pc,pc[2044]
1.16232 -+ ld.shal r12,r12[1022]
1.16233 -+ ld.uhls r5,r5[0]
1.16234 -+ ld.ubpl r4,r4[511]
1.16235 -+ ld.sbne lr,lr[0]
1.16236 -+ ld.wls r10,r2[0]
1.16237 -+ ld.shvc r12,r8[0x3fe]
1.16238 -+ ld.ubmi r10,r7[1]
1.16239 -+
1.16240 -+stcond2:
1.16241 -+ st.weq pc[2044],pc
1.16242 -+ st.hal r12[1022],r12
1.16243 -+ st.hls r5[0],r5
1.16244 -+ st.bpl r4[511],r4
1.16245 -+ st.bne lr[0],lr
1.16246 -+ st.wls r2[0],r10
1.16247 -+ st.hvc r8[0x3fe],r12
1.16248 -+ st.bmi r7[1],r10
1.16249 -+
1.16250 -+movh:
1.16251 -+ movh pc, 65535
1.16252 -+ movh r0, 0
1.16253 -+ movh r5, 1
1.16254 -+ movh r12, 32767
1.16255 -+
1.16256 -+
1.16257 ---- /dev/null
1.16258 -+++ b/gas/testsuite/gas/avr32/avr32.exp
1.16259 -@@ -0,0 +1,23 @@
1.16260 -+# AVR32 assembler testsuite. -*- Tcl -*-
1.16261 -+
1.16262 -+if [istarget avr32-*-*] {
1.16263 -+ run_dump_test "hwrd-lwrd"
1.16264 -+ run_dump_test "pcrel"
1.16265 -+ run_dump_test "aliases"
1.16266 -+ run_dump_test "dwarf2"
1.16267 -+ run_dump_test "pic_reloc"
1.16268 -+ run_dump_test "fpinsn"
1.16269 -+ run_dump_test "pico"
1.16270 -+ run_dump_test "lda_pic"
1.16271 -+ run_dump_test "lda_pic_linkrelax"
1.16272 -+ run_dump_test "lda_nopic"
1.16273 -+ run_dump_test "lda_nopic_linkrelax"
1.16274 -+ run_dump_test "call_pic"
1.16275 -+ run_dump_test "call_pic_linkrelax"
1.16276 -+ run_dump_test "call_nopic"
1.16277 -+ run_dump_test "call_nopic_linkrelax"
1.16278 -+ run_dump_test "jmptable"
1.16279 -+ run_dump_test "jmptable_linkrelax"
1.16280 -+ run_dump_test "symdiff"
1.16281 -+ run_dump_test "symdiff_linkrelax"
1.16282 -+}
1.16283 ---- /dev/null
1.16284 -+++ b/gas/testsuite/gas/avr32/call_nopic.d
1.16285 -@@ -0,0 +1,36 @@
1.16286 -+#source: call.s
1.16287 -+#as:
1.16288 -+#objdump: -dr
1.16289 -+#name: call_nopic
1.16290 -+
1.16291 -+.*: +file format .*
1.16292 -+
1.16293 -+Disassembly of section \.text:
1.16294 -+
1.16295 -+00000000 <call_test>:
1.16296 -+ 0: d7 03 nop
1.16297 -+
1.16298 -+00000002 <toofar_negative>:
1.16299 -+ \.\.\.
1.16300 -+ 1ffffe: 00 00 add r0,r0
1.16301 -+ 200000: f0 a0 00 00 rcall 0 <call_test>
1.16302 -+ 200004: f0 1f 00 0c mcall 200034 <toofar_negative\+0x200032>
1.16303 -+ 200008: f0 1f 00 0c mcall 200038 <toofar_negative\+0x200036>
1.16304 -+ 20000c: f0 1f 00 0c mcall 20003c <toofar_negative\+0x20003a>
1.16305 -+ 200010: f0 1f 00 0c mcall 200040 <toofar_negative\+0x20003e>
1.16306 -+ \.\.\.
1.16307 -+ 200030: ee b0 ff ff rcall 40002e <far_positive>
1.16308 -+ \.\.\.
1.16309 -+ 200034: R_AVR32_32_CPENT \.text\+0x2
1.16310 -+ 200038: R_AVR32_32_CPENT \.text\.init
1.16311 -+ 20003c: R_AVR32_32_CPENT undefined
1.16312 -+ 200040: R_AVR32_32_CPENT \.text\+0x40002c
1.16313 -+
1.16314 -+0040002c <toofar_positive>:
1.16315 -+ 40002c: d7 03 nop
1.16316 -+0040002e <far_positive>:
1.16317 -+ 40002e: d7 03 nop
1.16318 -+Disassembly of section \.text\.init:
1.16319 -+
1.16320 -+00000000 <different_section>:
1.16321 -+ 0: e2 c0 00 00 sub r0,r1,0
1.16322 ---- /dev/null
1.16323 -+++ b/gas/testsuite/gas/avr32/call_nopic_linkrelax.d
1.16324 -@@ -0,0 +1,43 @@
1.16325 -+#source: call.s
1.16326 -+#as: --linkrelax
1.16327 -+#objdump: -dr
1.16328 -+#name: call_nopic_linkrelax
1.16329 -+
1.16330 -+.*: +file format .*
1.16331 -+
1.16332 -+Disassembly of section \.text:
1.16333 -+
1.16334 -+00000000 <call_test>:
1.16335 -+ 0: d7 03 nop
1.16336 -+
1.16337 -+00000002 <toofar_negative>:
1.16338 -+ \.\.\.
1.16339 -+ 1ffffe: 00 00 add r0,r0
1.16340 -+ 200000: e0 a0 00 00 rcall 200000 <toofar_negative\+0x1ffffe>
1.16341 -+ 200000: R_AVR32_22H_PCREL \.text
1.16342 -+ 200004: f0 1f 00 00 mcall 200004 <toofar_negative\+0x200002>
1.16343 -+ 200004: R_AVR32_CPCALL \.text\+0x200034
1.16344 -+ 200008: f0 1f 00 00 mcall 200008 <toofar_negative\+0x200006>
1.16345 -+ 200008: R_AVR32_CPCALL \.text\+0x200038
1.16346 -+ 20000c: f0 1f 00 00 mcall 20000c <toofar_negative\+0x20000a>
1.16347 -+ 20000c: R_AVR32_CPCALL \.text\+0x20003c
1.16348 -+ 200010: f0 1f 00 00 mcall 200010 <toofar_negative\+0x20000e>
1.16349 -+ 200010: R_AVR32_CPCALL \.text\+0x200040
1.16350 -+ \.\.\.
1.16351 -+ 200030: e0 a0 00 00 rcall 200030 <toofar_negative\+0x20002e>
1.16352 -+ 200030: R_AVR32_22H_PCREL \.text\+0x40002e
1.16353 -+ \.\.\.
1.16354 -+ 200034: R_AVR32_ALIGN \*ABS\*\+0x2
1.16355 -+ 200034: R_AVR32_32_CPENT \.text\+0x2
1.16356 -+ 200038: R_AVR32_32_CPENT \.text\.init
1.16357 -+ 20003c: R_AVR32_32_CPENT undefined
1.16358 -+ 200040: R_AVR32_32_CPENT \.text\+0x40002c
1.16359 -+
1.16360 -+0040002c <toofar_positive>:
1.16361 -+ 40002c: d7 03 nop
1.16362 -+0040002e <far_positive>:
1.16363 -+ 40002e: d7 03 nop
1.16364 -+Disassembly of section \.text\.init:
1.16365 -+
1.16366 -+00000000 <different_section>:
1.16367 -+ 0: e2 c0 00 00 sub r0,r1,0
1.16368 ---- /dev/null
1.16369 -+++ b/gas/testsuite/gas/avr32/call_pic.d
1.16370 -@@ -0,0 +1,36 @@
1.16371 -+#source: call.s
1.16372 -+#as: --pic
1.16373 -+#objdump: -dr
1.16374 -+#name: call_pic
1.16375 -+
1.16376 -+.*: +file format .*
1.16377 -+
1.16378 -+Disassembly of section \.text:
1.16379 -+
1.16380 -+00000000 <call_test>:
1.16381 -+ 0: d7 03 nop
1.16382 -+
1.16383 -+00000002 <toofar_negative>:
1.16384 -+ \.\.\.
1.16385 -+ 1ffffe: 00 00 add r0,r0
1.16386 -+ 200000: f0 a0 00 00 rcall 0 <call_test>
1.16387 -+ 200004: f0 16 00 00 mcall r6\[0\]
1.16388 -+ 200004: R_AVR32_GOT18SW toofar_negative
1.16389 -+ 200008: f0 16 00 00 mcall r6\[0\]
1.16390 -+ 200008: R_AVR32_GOT18SW different_section
1.16391 -+ 20000c: f0 16 00 00 mcall r6\[0\]
1.16392 -+ 20000c: R_AVR32_GOT18SW undefined
1.16393 -+ 200010: f0 16 00 00 mcall r6\[0\]
1.16394 -+ 200010: R_AVR32_GOT18SW toofar_positive
1.16395 -+ \.\.\.
1.16396 -+ 200030: ee b0 ff ff rcall 40002e <far_positive>
1.16397 -+ \.\.\.
1.16398 -+
1.16399 -+0040002c <toofar_positive>:
1.16400 -+ 40002c: d7 03 nop
1.16401 -+0040002e <far_positive>:
1.16402 -+ 40002e: d7 03 nop
1.16403 -+Disassembly of section \.text\.init:
1.16404 -+
1.16405 -+00000000 <different_section>:
1.16406 -+ 0: e2 c0 00 00 sub r0,r1,0
1.16407 ---- /dev/null
1.16408 -+++ b/gas/testsuite/gas/avr32/call_pic_linkrelax.d
1.16409 -@@ -0,0 +1,47 @@
1.16410 -+#source: call.s
1.16411 -+#as: --pic --linkrelax
1.16412 -+#objdump: -dr
1.16413 -+#name: call_pic_linkrelax
1.16414 -+
1.16415 -+.*: +file format .*
1.16416 -+
1.16417 -+Disassembly of section \.text:
1.16418 -+
1.16419 -+00000000 <call_test>:
1.16420 -+ 0: d7 03 nop
1.16421 -+
1.16422 -+00000002 <toofar_negative>:
1.16423 -+ \.\.\.
1.16424 -+ 1ffffe: 00 00 add r0,r0
1.16425 -+ 200000: e0 a0 00 00 rcall 200000 <toofar_negative\+0x1ffffe>
1.16426 -+ 200000: R_AVR32_22H_PCREL \.text
1.16427 -+ 200004: e0 6e 00 00 mov lr,0
1.16428 -+ 200004: R_AVR32_GOTCALL toofar_negative
1.16429 -+ 200008: ec 0e 03 2e ld\.w lr,r6\[lr<<0x2\]
1.16430 -+ 20000c: 5d 1e icall lr
1.16431 -+ 20000e: e0 6e 00 00 mov lr,0
1.16432 -+ 20000e: R_AVR32_GOTCALL different_section
1.16433 -+ 200012: ec 0e 03 2e ld\.w lr,r6\[lr<<0x2\]
1.16434 -+ 200016: 5d 1e icall lr
1.16435 -+ 200018: e0 6e 00 00 mov lr,0
1.16436 -+ 200018: R_AVR32_GOTCALL undefined
1.16437 -+ 20001c: ec 0e 03 2e ld\.w lr,r6\[lr<<0x2\]
1.16438 -+ 200020: 5d 1e icall lr
1.16439 -+ 200022: e0 6e 00 00 mov lr,0
1.16440 -+ 200022: R_AVR32_GOTCALL toofar_positive
1.16441 -+ 200026: ec 0e 03 2e ld\.w lr,r6\[lr<<0x2\]
1.16442 -+ 20002a: 5d 1e icall lr
1.16443 -+ 20002c: 00 00 add r0,r0
1.16444 -+ 20002e: 00 00 add r0,r0
1.16445 -+ 200030: e0 a0 00 00 rcall 200030 <toofar_negative\+0x20002e>
1.16446 -+ 200030: R_AVR32_22H_PCREL \.text\+0x40002e
1.16447 -+ \.\.\.
1.16448 -+
1.16449 -+0040002c <toofar_positive>:
1.16450 -+ 40002c: d7 03 nop
1.16451 -+0040002e <far_positive>:
1.16452 -+ 40002e: d7 03 nop
1.16453 -+Disassembly of section \.text\.init:
1.16454 -+
1.16455 -+00000000 <different_section>:
1.16456 -+ 0: e2 c0 00 00 sub r0,r1,0
1.16457 ---- /dev/null
1.16458 -+++ b/gas/testsuite/gas/avr32/call.s
1.16459 -@@ -0,0 +1,30 @@
1.16460 -+
1.16461 -+ .text
1.16462 -+ .global call_test
1.16463 -+call_test:
1.16464 -+far_negative:
1.16465 -+ nop
1.16466 -+toofar_negative:
1.16467 -+
1.16468 -+ .org 0x200000
1.16469 -+
1.16470 -+ call far_negative
1.16471 -+ call toofar_negative
1.16472 -+ call different_section
1.16473 -+ call undefined
1.16474 -+ call toofar_positive
1.16475 -+ .org 0x200030
1.16476 -+ call far_positive
1.16477 -+
1.16478 -+ .cpool
1.16479 -+
1.16480 -+ .org 0x40002c
1.16481 -+
1.16482 -+toofar_positive:
1.16483 -+ nop
1.16484 -+far_positive:
1.16485 -+ nop
1.16486 -+
1.16487 -+ .section .text.init,"ax",@progbits
1.16488 -+different_section:
1.16489 -+ sub r0, r1, 0
1.16490 ---- /dev/null
1.16491 -+++ b/gas/testsuite/gas/avr32/dwarf2.d
1.16492 -@@ -0,0 +1,42 @@
1.16493 -+#readelf: -wl
1.16494 -+#name: dwarf2
1.16495 -+#source: dwarf2.s
1.16496 -+
1.16497 -+Dump of debug contents of section \.debug_line:
1.16498 -+
1.16499 -+ Length: 53
1.16500 -+ DWARF Version: 2
1.16501 -+ Prologue Length: 26
1.16502 -+ Minimum Instruction Length: 1
1.16503 -+ Initial value of 'is_stmt': 1
1.16504 -+ Line Base: -5
1.16505 -+ Line Range: 14
1.16506 -+ Opcode Base: 10
1.16507 -+ \(Pointer size: 4\)
1.16508 -+
1.16509 -+ Opcodes:
1.16510 -+ Opcode 1 has 0 args
1.16511 -+ Opcode 2 has 1 args
1.16512 -+ Opcode 3 has 1 args
1.16513 -+ Opcode 4 has 1 args
1.16514 -+ Opcode 5 has 1 args
1.16515 -+ Opcode 6 has 0 args
1.16516 -+ Opcode 7 has 0 args
1.16517 -+ Opcode 8 has 0 args
1.16518 -+ Opcode 9 has 1 args
1.16519 -+
1.16520 -+ The Directory Table is empty\.
1.16521 -+
1.16522 -+ The File Name Table:
1.16523 -+ Entry Dir Time Size Name
1.16524 -+ 1 0 0 0 main\.c
1.16525 -+
1.16526 -+ Line Number Statements:
1.16527 -+ Extended opcode 2: set Address to 0x0
1.16528 -+ Advance Line by 87 to 88
1.16529 -+ Copy
1.16530 -+ Advance Line by 23 to 111
1.16531 -+ Special opcode .*: advance Address by 4 to 0x4 and Line by 0 to 111
1.16532 -+ Special opcode .*: advance Address by 10 to 0xe and Line by 1 to 112
1.16533 -+ Advance PC by 530 to 220
1.16534 -+ Extended opcode 1: End of Sequence
1.16535 ---- /dev/null
1.16536 -+++ b/gas/testsuite/gas/avr32/dwarf2.s
1.16537 -@@ -0,0 +1,67 @@
1.16538 -+# Source file used to test DWARF2 information for AVR32.
1.16539 -+
1.16540 -+ .file "main.c"
1.16541 -+
1.16542 -+ .section .debug_abbrev,"",@progbits
1.16543 -+.Ldebug_abbrev0:
1.16544 -+ .section .debug_info,"",@progbits
1.16545 -+.Ldebug_info0:
1.16546 -+ .section .debug_line,"",@progbits
1.16547 -+.Ldebug_line0:
1.16548 -+
1.16549 -+ .text
1.16550 -+ .align 1
1.16551 -+ .globl main
1.16552 -+ .type main, @function
1.16553 -+.Ltext0:
1.16554 -+main:
1.16555 -+ .file 1 "main.c"
1.16556 -+ .loc 1 88 0
1.16557 -+ pushm r0-r7,lr
1.16558 -+ sub sp, 4
1.16559 -+ .loc 1 111 0
1.16560 -+ lddpc r12, .LC1
1.16561 -+ lddpc r7, .LC1
1.16562 -+ icall r7
1.16563 -+ .loc 1 112 0
1.16564 -+ lddpc r6, .LC4
1.16565 -+
1.16566 -+ .align 2
1.16567 -+.LC4: .int 0
1.16568 -+
1.16569 -+ .fill 256, 2, 0
1.16570 -+
1.16571 -+ .align 2
1.16572 -+.LC1:
1.16573 -+ .int 0
1.16574 -+.LC2:
1.16575 -+ .int 0
1.16576 -+.LC3:
1.16577 -+ .int 0
1.16578 -+ .size main, . - main
1.16579 -+
1.16580 -+.Letext0:
1.16581 -+
1.16582 -+ .section .debug_info
1.16583 -+ .int .Ledebug_info0 - .Ldebug_info0 // size
1.16584 -+ .short 2 // version
1.16585 -+ .int .Ldebug_abbrev0 // abbrev offset
1.16586 -+ .byte 4 // bytes per addr
1.16587 -+
1.16588 -+ .uleb128 1 // abbrev 1
1.16589 -+ .int .Ldebug_line0 // DW_AT_stmt_list
1.16590 -+ .int .Letext0 // DW_AT_high_pc
1.16591 -+ .int .Ltext0 // DW_AT_low_pc
1.16592 -+
1.16593 -+.Ledebug_info0:
1.16594 -+
1.16595 -+ .section .debug_abbrev
1.16596 -+ .uleb128 0x01
1.16597 -+ .uleb128 0x11 // DW_TAG_compile_unit
1.16598 -+ .byte 0 // DW_CHILDREN_no
1.16599 -+ .uleb128 0x10, 0x6 // DW_AT_stmt_list
1.16600 -+ .uleb128 0x12, 0x1 // DW_AT_high_pc
1.16601 -+ .uleb128 0x11, 0x1 // DW_AT_low_pc
1.16602 -+ .uleb128 0, 0
1.16603 -+
1.16604 -+ .byte 0
1.16605 ---- /dev/null
1.16606 -+++ b/gas/testsuite/gas/avr32/fpinsn.d
1.16607 -@@ -0,0 +1,271 @@
1.16608 -+#as:
1.16609 -+#objdump: -dr
1.16610 -+#name: fpinsn
1.16611 -+
1.16612 -+.*: +file format .*
1.16613 -+
1.16614 -+Disassembly of section \.text:
1.16615 -+
1.16616 -+[0-9a-f]* <fadd_s>:
1.16617 -+ *[0-9a-f]*: e1 a2 0f ff cop cp0,cr15,cr15,cr15,0x4
1.16618 -+ *[0-9a-f]*: e1 a2 00 00 cop cp0,cr0,cr0,cr0,0x4
1.16619 -+ *[0-9a-f]*: e1 a2 00 ff cop cp0,cr0,cr15,cr15,0x4
1.16620 -+ *[0-9a-f]*: e1 a2 0f 0f cop cp0,cr15,cr0,cr15,0x4
1.16621 -+ *[0-9a-f]*: e1 a2 0f f0 cop cp0,cr15,cr15,cr0,0x4
1.16622 -+ *[0-9a-f]*: e1 a2 07 88 cop cp0,cr7,cr8,cr8,0x4
1.16623 -+ *[0-9a-f]*: e1 a2 08 78 cop cp0,cr8,cr7,cr8,0x4
1.16624 -+ *[0-9a-f]*: e1 a2 08 87 cop cp0,cr8,cr8,cr7,0x4
1.16625 -+
1.16626 -+[0-9a-f]* <fsub_s>:
1.16627 -+ *[0-9a-f]*: e1 a2 1f ff cop cp0,cr15,cr15,cr15,0x5
1.16628 -+ *[0-9a-f]*: e1 a2 10 00 cop cp0,cr0,cr0,cr0,0x5
1.16629 -+ *[0-9a-f]*: e1 a2 10 ff cop cp0,cr0,cr15,cr15,0x5
1.16630 -+ *[0-9a-f]*: e1 a2 1f 0f cop cp0,cr15,cr0,cr15,0x5
1.16631 -+ *[0-9a-f]*: e1 a2 1f f0 cop cp0,cr15,cr15,cr0,0x5
1.16632 -+ *[0-9a-f]*: e1 a2 17 88 cop cp0,cr7,cr8,cr8,0x5
1.16633 -+ *[0-9a-f]*: e1 a2 18 78 cop cp0,cr8,cr7,cr8,0x5
1.16634 -+ *[0-9a-f]*: e1 a2 18 87 cop cp0,cr8,cr8,cr7,0x5
1.16635 -+
1.16636 -+[0-9a-f]* <fmac_s>:
1.16637 -+ *[0-9a-f]*: e1 a0 0f ff cop cp0,cr15,cr15,cr15,0x0
1.16638 -+ *[0-9a-f]*: e1 a0 00 00 cop cp0,cr0,cr0,cr0,0x0
1.16639 -+ *[0-9a-f]*: e1 a0 00 ff cop cp0,cr0,cr15,cr15,0x0
1.16640 -+ *[0-9a-f]*: e1 a0 0f 0f cop cp0,cr15,cr0,cr15,0x0
1.16641 -+ *[0-9a-f]*: e1 a0 0f f0 cop cp0,cr15,cr15,cr0,0x0
1.16642 -+ *[0-9a-f]*: e1 a0 07 88 cop cp0,cr7,cr8,cr8,0x0
1.16643 -+ *[0-9a-f]*: e1 a0 08 78 cop cp0,cr8,cr7,cr8,0x0
1.16644 -+ *[0-9a-f]*: e1 a0 08 87 cop cp0,cr8,cr8,cr7,0x0
1.16645 -+
1.16646 -+[0-9a-f]* <fnmac_s>:
1.16647 -+ *[0-9a-f]*: e1 a0 1f ff cop cp0,cr15,cr15,cr15,0x1
1.16648 -+ *[0-9a-f]*: e1 a0 10 00 cop cp0,cr0,cr0,cr0,0x1
1.16649 -+ *[0-9a-f]*: e1 a0 10 ff cop cp0,cr0,cr15,cr15,0x1
1.16650 -+ *[0-9a-f]*: e1 a0 1f 0f cop cp0,cr15,cr0,cr15,0x1
1.16651 -+ *[0-9a-f]*: e1 a0 1f f0 cop cp0,cr15,cr15,cr0,0x1
1.16652 -+ *[0-9a-f]*: e1 a0 17 88 cop cp0,cr7,cr8,cr8,0x1
1.16653 -+ *[0-9a-f]*: e1 a0 18 78 cop cp0,cr8,cr7,cr8,0x1
1.16654 -+ *[0-9a-f]*: e1 a0 18 87 cop cp0,cr8,cr8,cr7,0x1
1.16655 -+
1.16656 -+[0-9a-f]* <fmsc_s>:
1.16657 -+ *[0-9a-f]*: e1 a1 0f ff cop cp0,cr15,cr15,cr15,0x2
1.16658 -+ *[0-9a-f]*: e1 a1 00 00 cop cp0,cr0,cr0,cr0,0x2
1.16659 -+ *[0-9a-f]*: e1 a1 00 ff cop cp0,cr0,cr15,cr15,0x2
1.16660 -+ *[0-9a-f]*: e1 a1 0f 0f cop cp0,cr15,cr0,cr15,0x2
1.16661 -+ *[0-9a-f]*: e1 a1 0f f0 cop cp0,cr15,cr15,cr0,0x2
1.16662 -+ *[0-9a-f]*: e1 a1 07 88 cop cp0,cr7,cr8,cr8,0x2
1.16663 -+ *[0-9a-f]*: e1 a1 08 78 cop cp0,cr8,cr7,cr8,0x2
1.16664 -+ *[0-9a-f]*: e1 a1 08 87 cop cp0,cr8,cr8,cr7,0x2
1.16665 -+
1.16666 -+[0-9a-f]* <fnmsc_s>:
1.16667 -+ *[0-9a-f]*: e1 a1 1f ff cop cp0,cr15,cr15,cr15,0x3
1.16668 -+ *[0-9a-f]*: e1 a1 10 00 cop cp0,cr0,cr0,cr0,0x3
1.16669 -+ *[0-9a-f]*: e1 a1 10 ff cop cp0,cr0,cr15,cr15,0x3
1.16670 -+ *[0-9a-f]*: e1 a1 1f 0f cop cp0,cr15,cr0,cr15,0x3
1.16671 -+ *[0-9a-f]*: e1 a1 1f f0 cop cp0,cr15,cr15,cr0,0x3
1.16672 -+ *[0-9a-f]*: e1 a1 17 88 cop cp0,cr7,cr8,cr8,0x3
1.16673 -+ *[0-9a-f]*: e1 a1 18 78 cop cp0,cr8,cr7,cr8,0x3
1.16674 -+ *[0-9a-f]*: e1 a1 18 87 cop cp0,cr8,cr8,cr7,0x3
1.16675 -+
1.16676 -+[0-9a-f]* <fmul_s>:
1.16677 -+ *[0-9a-f]*: e1 a3 0f ff cop cp0,cr15,cr15,cr15,0x6
1.16678 -+ *[0-9a-f]*: e1 a3 00 00 cop cp0,cr0,cr0,cr0,0x6
1.16679 -+ *[0-9a-f]*: e1 a3 00 ff cop cp0,cr0,cr15,cr15,0x6
1.16680 -+ *[0-9a-f]*: e1 a3 0f 0f cop cp0,cr15,cr0,cr15,0x6
1.16681 -+ *[0-9a-f]*: e1 a3 0f f0 cop cp0,cr15,cr15,cr0,0x6
1.16682 -+ *[0-9a-f]*: e1 a3 07 88 cop cp0,cr7,cr8,cr8,0x6
1.16683 -+ *[0-9a-f]*: e1 a3 08 78 cop cp0,cr8,cr7,cr8,0x6
1.16684 -+ *[0-9a-f]*: e1 a3 08 87 cop cp0,cr8,cr8,cr7,0x6
1.16685 -+
1.16686 -+[0-9a-f]* <fnmul_s>:
1.16687 -+ *[0-9a-f]*: e1 a3 1f ff cop cp0,cr15,cr15,cr15,0x7
1.16688 -+ *[0-9a-f]*: e1 a3 10 00 cop cp0,cr0,cr0,cr0,0x7
1.16689 -+ *[0-9a-f]*: e1 a3 10 ff cop cp0,cr0,cr15,cr15,0x7
1.16690 -+ *[0-9a-f]*: e1 a3 1f 0f cop cp0,cr15,cr0,cr15,0x7
1.16691 -+ *[0-9a-f]*: e1 a3 1f f0 cop cp0,cr15,cr15,cr0,0x7
1.16692 -+ *[0-9a-f]*: e1 a3 17 88 cop cp0,cr7,cr8,cr8,0x7
1.16693 -+ *[0-9a-f]*: e1 a3 18 78 cop cp0,cr8,cr7,cr8,0x7
1.16694 -+ *[0-9a-f]*: e1 a3 18 87 cop cp0,cr8,cr8,cr7,0x7
1.16695 -+
1.16696 -+[0-9a-f]* <fneg_s>:
1.16697 -+ *[0-9a-f]*: e1 a4 0f f0 cop cp0,cr15,cr15,cr0,0x8
1.16698 -+ *[0-9a-f]*: e1 a4 00 00 cop cp0,cr0,cr0,cr0,0x8
1.16699 -+ *[0-9a-f]*: e1 a4 00 f0 cop cp0,cr0,cr15,cr0,0x8
1.16700 -+ *[0-9a-f]*: e1 a4 0f 00 cop cp0,cr15,cr0,cr0,0x8
1.16701 -+ *[0-9a-f]*: e1 a4 07 80 cop cp0,cr7,cr8,cr0,0x8
1.16702 -+ *[0-9a-f]*: e1 a4 08 70 cop cp0,cr8,cr7,cr0,0x8
1.16703 -+
1.16704 -+[0-9a-f]* <fabs_s>:
1.16705 -+ *[0-9a-f]*: e1 a4 1f f0 cop cp0,cr15,cr15,cr0,0x9
1.16706 -+ *[0-9a-f]*: e1 a4 10 00 cop cp0,cr0,cr0,cr0,0x9
1.16707 -+ *[0-9a-f]*: e1 a4 10 f0 cop cp0,cr0,cr15,cr0,0x9
1.16708 -+ *[0-9a-f]*: e1 a4 1f 00 cop cp0,cr15,cr0,cr0,0x9
1.16709 -+ *[0-9a-f]*: e1 a4 17 80 cop cp0,cr7,cr8,cr0,0x9
1.16710 -+ *[0-9a-f]*: e1 a4 18 70 cop cp0,cr8,cr7,cr0,0x9
1.16711 -+
1.16712 -+[0-9a-f]* <fcmp_s>:
1.16713 -+ *[0-9a-f]*: e1 a6 10 ff cop cp0,cr0,cr15,cr15,0xd
1.16714 -+ *[0-9a-f]*: e1 a6 10 00 cop cp0,cr0,cr0,cr0,0xd
1.16715 -+ *[0-9a-f]*: e1 a6 10 0f cop cp0,cr0,cr0,cr15,0xd
1.16716 -+ *[0-9a-f]*: e1 a6 10 f0 cop cp0,cr0,cr15,cr0,0xd
1.16717 -+ *[0-9a-f]*: e1 a6 10 78 cop cp0,cr0,cr7,cr8,0xd
1.16718 -+ *[0-9a-f]*: e1 a6 10 87 cop cp0,cr0,cr8,cr7,0xd
1.16719 -+
1.16720 -+[0-9a-f]* <fadd_d>:
1.16721 -+ *[0-9a-f]*: e5 a2 0e ee cop cp0,cr14,cr14,cr14,0x44
1.16722 -+ *[0-9a-f]*: e5 a2 00 00 cop cp0,cr0,cr0,cr0,0x44
1.16723 -+ *[0-9a-f]*: e5 a2 00 ee cop cp0,cr0,cr14,cr14,0x44
1.16724 -+ *[0-9a-f]*: e5 a2 0e 0e cop cp0,cr14,cr0,cr14,0x44
1.16725 -+ *[0-9a-f]*: e5 a2 0e e0 cop cp0,cr14,cr14,cr0,0x44
1.16726 -+ *[0-9a-f]*: e5 a2 06 88 cop cp0,cr6,cr8,cr8,0x44
1.16727 -+ *[0-9a-f]*: e5 a2 08 68 cop cp0,cr8,cr6,cr8,0x44
1.16728 -+ *[0-9a-f]*: e5 a2 08 86 cop cp0,cr8,cr8,cr6,0x44
1.16729 -+
1.16730 -+[0-9a-f]* <fsub_d>:
1.16731 -+ *[0-9a-f]*: e5 a2 1e ee cop cp0,cr14,cr14,cr14,0x45
1.16732 -+ *[0-9a-f]*: e5 a2 10 00 cop cp0,cr0,cr0,cr0,0x45
1.16733 -+ *[0-9a-f]*: e5 a2 10 ee cop cp0,cr0,cr14,cr14,0x45
1.16734 -+ *[0-9a-f]*: e5 a2 1e 0e cop cp0,cr14,cr0,cr14,0x45
1.16735 -+ *[0-9a-f]*: e5 a2 1e e0 cop cp0,cr14,cr14,cr0,0x45
1.16736 -+ *[0-9a-f]*: e5 a2 16 88 cop cp0,cr6,cr8,cr8,0x45
1.16737 -+ *[0-9a-f]*: e5 a2 18 68 cop cp0,cr8,cr6,cr8,0x45
1.16738 -+ *[0-9a-f]*: e5 a2 18 86 cop cp0,cr8,cr8,cr6,0x45
1.16739 -+
1.16740 -+[0-9a-f]* <fmac_d>:
1.16741 -+ *[0-9a-f]*: e5 a0 0e ee cop cp0,cr14,cr14,cr14,0x40
1.16742 -+ *[0-9a-f]*: e5 a0 00 00 cop cp0,cr0,cr0,cr0,0x40
1.16743 -+ *[0-9a-f]*: e5 a0 00 ee cop cp0,cr0,cr14,cr14,0x40
1.16744 -+ *[0-9a-f]*: e5 a0 0e 0e cop cp0,cr14,cr0,cr14,0x40
1.16745 -+ *[0-9a-f]*: e5 a0 0e e0 cop cp0,cr14,cr14,cr0,0x40
1.16746 -+ *[0-9a-f]*: e5 a0 06 88 cop cp0,cr6,cr8,cr8,0x40
1.16747 -+ *[0-9a-f]*: e5 a0 08 68 cop cp0,cr8,cr6,cr8,0x40
1.16748 -+ *[0-9a-f]*: e5 a0 08 86 cop cp0,cr8,cr8,cr6,0x40
1.16749 -+
1.16750 -+[0-9a-f]* <fnmac_d>:
1.16751 -+ *[0-9a-f]*: e5 a0 1e ee cop cp0,cr14,cr14,cr14,0x41
1.16752 -+ *[0-9a-f]*: e5 a0 10 00 cop cp0,cr0,cr0,cr0,0x41
1.16753 -+ *[0-9a-f]*: e5 a0 10 ee cop cp0,cr0,cr14,cr14,0x41
1.16754 -+ *[0-9a-f]*: e5 a0 1e 0e cop cp0,cr14,cr0,cr14,0x41
1.16755 -+ *[0-9a-f]*: e5 a0 1e e0 cop cp0,cr14,cr14,cr0,0x41
1.16756 -+ *[0-9a-f]*: e5 a0 16 88 cop cp0,cr6,cr8,cr8,0x41
1.16757 -+ *[0-9a-f]*: e5 a0 18 68 cop cp0,cr8,cr6,cr8,0x41
1.16758 -+ *[0-9a-f]*: e5 a0 18 86 cop cp0,cr8,cr8,cr6,0x41
1.16759 -+
1.16760 -+[0-9a-f]* <fmsc_d>:
1.16761 -+ *[0-9a-f]*: e5 a1 0e ee cop cp0,cr14,cr14,cr14,0x42
1.16762 -+ *[0-9a-f]*: e5 a1 00 00 cop cp0,cr0,cr0,cr0,0x42
1.16763 -+ *[0-9a-f]*: e5 a1 00 ee cop cp0,cr0,cr14,cr14,0x42
1.16764 -+ *[0-9a-f]*: e5 a1 0e 0e cop cp0,cr14,cr0,cr14,0x42
1.16765 -+ *[0-9a-f]*: e5 a1 0e e0 cop cp0,cr14,cr14,cr0,0x42
1.16766 -+ *[0-9a-f]*: e5 a1 06 88 cop cp0,cr6,cr8,cr8,0x42
1.16767 -+ *[0-9a-f]*: e5 a1 08 68 cop cp0,cr8,cr6,cr8,0x42
1.16768 -+ *[0-9a-f]*: e5 a1 08 86 cop cp0,cr8,cr8,cr6,0x42
1.16769 -+
1.16770 -+[0-9a-f]* <fnmsc_d>:
1.16771 -+ *[0-9a-f]*: e5 a1 1e ee cop cp0,cr14,cr14,cr14,0x43
1.16772 -+ *[0-9a-f]*: e5 a1 10 00 cop cp0,cr0,cr0,cr0,0x43
1.16773 -+ *[0-9a-f]*: e5 a1 10 ee cop cp0,cr0,cr14,cr14,0x43
1.16774 -+ *[0-9a-f]*: e5 a1 1e 0e cop cp0,cr14,cr0,cr14,0x43
1.16775 -+ *[0-9a-f]*: e5 a1 1e e0 cop cp0,cr14,cr14,cr0,0x43
1.16776 -+ *[0-9a-f]*: e5 a1 16 88 cop cp0,cr6,cr8,cr8,0x43
1.16777 -+ *[0-9a-f]*: e5 a1 18 68 cop cp0,cr8,cr6,cr8,0x43
1.16778 -+ *[0-9a-f]*: e5 a1 18 86 cop cp0,cr8,cr8,cr6,0x43
1.16779 -+
1.16780 -+[0-9a-f]* <fmul_d>:
1.16781 -+ *[0-9a-f]*: e5 a3 0e ee cop cp0,cr14,cr14,cr14,0x46
1.16782 -+ *[0-9a-f]*: e5 a3 00 00 cop cp0,cr0,cr0,cr0,0x46
1.16783 -+ *[0-9a-f]*: e5 a3 00 ee cop cp0,cr0,cr14,cr14,0x46
1.16784 -+ *[0-9a-f]*: e5 a3 0e 0e cop cp0,cr14,cr0,cr14,0x46
1.16785 -+ *[0-9a-f]*: e5 a3 0e e0 cop cp0,cr14,cr14,cr0,0x46
1.16786 -+ *[0-9a-f]*: e5 a3 06 88 cop cp0,cr6,cr8,cr8,0x46
1.16787 -+ *[0-9a-f]*: e5 a3 08 68 cop cp0,cr8,cr6,cr8,0x46
1.16788 -+ *[0-9a-f]*: e5 a3 08 86 cop cp0,cr8,cr8,cr6,0x46
1.16789 -+
1.16790 -+[0-9a-f]* <fnmul_d>:
1.16791 -+ *[0-9a-f]*: e5 a3 1e ee cop cp0,cr14,cr14,cr14,0x47
1.16792 -+ *[0-9a-f]*: e5 a3 10 00 cop cp0,cr0,cr0,cr0,0x47
1.16793 -+ *[0-9a-f]*: e5 a3 10 ee cop cp0,cr0,cr14,cr14,0x47
1.16794 -+ *[0-9a-f]*: e5 a3 1e 0e cop cp0,cr14,cr0,cr14,0x47
1.16795 -+ *[0-9a-f]*: e5 a3 1e e0 cop cp0,cr14,cr14,cr0,0x47
1.16796 -+ *[0-9a-f]*: e5 a3 16 88 cop cp0,cr6,cr8,cr8,0x47
1.16797 -+ *[0-9a-f]*: e5 a3 18 68 cop cp0,cr8,cr6,cr8,0x47
1.16798 -+ *[0-9a-f]*: e5 a3 18 86 cop cp0,cr8,cr8,cr6,0x47
1.16799 -+
1.16800 -+[0-9a-f]* <fneg_d>:
1.16801 -+ *[0-9a-f]*: e5 a4 0e e0 cop cp0,cr14,cr14,cr0,0x48
1.16802 -+ *[0-9a-f]*: e5 a4 00 00 cop cp0,cr0,cr0,cr0,0x48
1.16803 -+ *[0-9a-f]*: e5 a4 00 e0 cop cp0,cr0,cr14,cr0,0x48
1.16804 -+ *[0-9a-f]*: e5 a4 0e 00 cop cp0,cr14,cr0,cr0,0x48
1.16805 -+ *[0-9a-f]*: e5 a4 06 80 cop cp0,cr6,cr8,cr0,0x48
1.16806 -+ *[0-9a-f]*: e5 a4 08 60 cop cp0,cr8,cr6,cr0,0x48
1.16807 -+
1.16808 -+[0-9a-f]* <fabs_d>:
1.16809 -+ *[0-9a-f]*: e5 a4 1e e0 cop cp0,cr14,cr14,cr0,0x49
1.16810 -+ *[0-9a-f]*: e5 a4 10 00 cop cp0,cr0,cr0,cr0,0x49
1.16811 -+ *[0-9a-f]*: e5 a4 10 e0 cop cp0,cr0,cr14,cr0,0x49
1.16812 -+ *[0-9a-f]*: e5 a4 1e 00 cop cp0,cr14,cr0,cr0,0x49
1.16813 -+ *[0-9a-f]*: e5 a4 16 80 cop cp0,cr6,cr8,cr0,0x49
1.16814 -+ *[0-9a-f]*: e5 a4 18 60 cop cp0,cr8,cr6,cr0,0x49
1.16815 -+
1.16816 -+[0-9a-f]* <fcmp_d>:
1.16817 -+ *[0-9a-f]*: e5 a6 10 ee cop cp0,cr0,cr14,cr14,0x4d
1.16818 -+ *[0-9a-f]*: e5 a6 10 00 cop cp0,cr0,cr0,cr0,0x4d
1.16819 -+ *[0-9a-f]*: e5 a6 10 0e cop cp0,cr0,cr0,cr14,0x4d
1.16820 -+ *[0-9a-f]*: e5 a6 10 e0 cop cp0,cr0,cr14,cr0,0x4d
1.16821 -+ *[0-9a-f]*: e5 a6 10 68 cop cp0,cr0,cr6,cr8,0x4d
1.16822 -+ *[0-9a-f]*: e5 a6 10 86 cop cp0,cr0,cr8,cr6,0x4d
1.16823 -+
1.16824 -+[0-9a-f]* <fmov_s>:
1.16825 -+ *[0-9a-f]*: e1 a5 0f f0 cop cp0,cr15,cr15,cr0,0xa
1.16826 -+ *[0-9a-f]*: e1 a5 00 00 cop cp0,cr0,cr0,cr0,0xa
1.16827 -+ *[0-9a-f]*: e1 a5 0f 00 cop cp0,cr15,cr0,cr0,0xa
1.16828 -+ *[0-9a-f]*: e1 a5 00 f0 cop cp0,cr0,cr15,cr0,0xa
1.16829 -+ *[0-9a-f]*: e1 a5 08 70 cop cp0,cr8,cr7,cr0,0xa
1.16830 -+ *[0-9a-f]*: e1 a5 07 80 cop cp0,cr7,cr8,cr0,0xa
1.16831 -+ *[0-9a-f]*: ef af 0f 00 mvcr.w cp0,pc,cr15
1.16832 -+ *[0-9a-f]*: ef a0 00 00 mvcr.w cp0,r0,cr0
1.16833 -+ *[0-9a-f]*: ef af 00 00 mvcr.w cp0,pc,cr0
1.16834 -+ *[0-9a-f]*: ef a0 0f 00 mvcr.w cp0,r0,cr15
1.16835 -+ *[0-9a-f]*: ef a8 07 00 mvcr.w cp0,r8,cr7
1.16836 -+ *[0-9a-f]*: ef a7 08 00 mvcr.w cp0,r7,cr8
1.16837 -+ *[0-9a-f]*: ef af 0f 20 mvrc.w cp0,cr15,pc
1.16838 -+ *[0-9a-f]*: ef a0 00 20 mvrc.w cp0,cr0,r0
1.16839 -+ *[0-9a-f]*: ef a0 0f 20 mvrc.w cp0,cr15,r0
1.16840 -+ *[0-9a-f]*: ef af 00 20 mvrc.w cp0,cr0,pc
1.16841 -+ *[0-9a-f]*: ef a7 08 20 mvrc.w cp0,cr8,r7
1.16842 -+ *[0-9a-f]*: ef a8 07 20 mvrc.w cp0,cr7,r8
1.16843 -+
1.16844 -+[0-9a-f]* <fmov_d>:
1.16845 -+ *[0-9a-f]*: e5 a5 0e e0 cop cp0,cr14,cr14,cr0,0x4a
1.16846 -+ *[0-9a-f]*: e5 a5 00 00 cop cp0,cr0,cr0,cr0,0x4a
1.16847 -+ *[0-9a-f]*: e5 a5 0e 00 cop cp0,cr14,cr0,cr0,0x4a
1.16848 -+ *[0-9a-f]*: e5 a5 00 e0 cop cp0,cr0,cr14,cr0,0x4a
1.16849 -+ *[0-9a-f]*: e5 a5 08 60 cop cp0,cr8,cr6,cr0,0x4a
1.16850 -+ *[0-9a-f]*: e5 a5 06 80 cop cp0,cr6,cr8,cr0,0x4a
1.16851 -+ *[0-9a-f]*: ef ae 0e 10 mvcr.d cp0,lr,cr14
1.16852 -+ *[0-9a-f]*: ef a0 00 10 mvcr.d cp0,r0,cr0
1.16853 -+ *[0-9a-f]*: ef ae 00 10 mvcr.d cp0,lr,cr0
1.16854 -+ *[0-9a-f]*: ef a0 0e 10 mvcr.d cp0,r0,cr14
1.16855 -+ *[0-9a-f]*: ef a8 06 10 mvcr.d cp0,r8,cr6
1.16856 -+ *[0-9a-f]*: ef a6 08 10 mvcr.d cp0,r6,cr8
1.16857 -+ *[0-9a-f]*: ef ae 0e 30 mvrc.d cp0,cr14,lr
1.16858 -+ *[0-9a-f]*: ef a0 00 30 mvrc.d cp0,cr0,r0
1.16859 -+ *[0-9a-f]*: ef a0 0e 30 mvrc.d cp0,cr14,r0
1.16860 -+ *[0-9a-f]*: ef ae 00 30 mvrc.d cp0,cr0,lr
1.16861 -+ *[0-9a-f]*: ef a6 08 30 mvrc.d cp0,cr8,r6
1.16862 -+ *[0-9a-f]*: ef a8 06 30 mvrc.d cp0,cr6,r8
1.16863 -+
1.16864 -+[0-9a-f]* <fcasts_d>:
1.16865 -+ *[0-9a-f]*: e1 a7 1f e0 cop cp0,cr15,cr14,cr0,0xf
1.16866 -+ *[0-9a-f]*: e1 a7 10 00 cop cp0,cr0,cr0,cr0,0xf
1.16867 -+ *[0-9a-f]*: e1 a7 1f 00 cop cp0,cr15,cr0,cr0,0xf
1.16868 -+ *[0-9a-f]*: e1 a7 10 e0 cop cp0,cr0,cr14,cr0,0xf
1.16869 -+ *[0-9a-f]*: e1 a7 18 60 cop cp0,cr8,cr6,cr0,0xf
1.16870 -+ *[0-9a-f]*: e1 a7 17 80 cop cp0,cr7,cr8,cr0,0xf
1.16871 -+
1.16872 -+[0-9a-f]* <fcastd_s>:
1.16873 -+ *[0-9a-f]*: e1 a8 0e f0 cop cp0,cr14,cr15,cr0,0x10
1.16874 -+ *[0-9a-f]*: e1 a8 00 00 cop cp0,cr0,cr0,cr0,0x10
1.16875 -+ *[0-9a-f]*: e1 a8 0e 00 cop cp0,cr14,cr0,cr0,0x10
1.16876 -+ *[0-9a-f]*: e1 a8 00 f0 cop cp0,cr0,cr15,cr0,0x10
1.16877 -+ *[0-9a-f]*: e1 a8 08 70 cop cp0,cr8,cr7,cr0,0x10
1.16878 -+ *[0-9a-f]*: e1 a8 06 80 cop cp0,cr6,cr8,cr0,0x10
1.16879 ---- /dev/null
1.16880 -+++ b/gas/testsuite/gas/avr32/fpinsn.s
1.16881 -@@ -0,0 +1,266 @@
1.16882 -+
1.16883 -+ .text
1.16884 -+ .global fadd_s
1.16885 -+fadd_s:
1.16886 -+ fadd.s fr15, fr15, fr15
1.16887 -+ fadd.s fr0, fr0, fr0
1.16888 -+ fadd.s fr0, fr15, fr15
1.16889 -+ fadd.s fr15, fr0, fr15
1.16890 -+ fadd.s fr15, fr15, fr0
1.16891 -+ fadd.s fr7, fr8, fr8
1.16892 -+ fadd.s fr8, fr7, fr8
1.16893 -+ fadd.s fr8, fr8, fr7
1.16894 -+ .global fsub_s
1.16895 -+fsub_s:
1.16896 -+ fsub.s fr15, fr15, fr15
1.16897 -+ fsub.s fr0, fr0, fr0
1.16898 -+ fsub.s fr0, fr15, fr15
1.16899 -+ fsub.s fr15, fr0, fr15
1.16900 -+ fsub.s fr15, fr15, fr0
1.16901 -+ fsub.s fr7, fr8, fr8
1.16902 -+ fsub.s fr8, fr7, fr8
1.16903 -+ fsub.s fr8, fr8, fr7
1.16904 -+ .global fmac_s
1.16905 -+fmac_s:
1.16906 -+ fmac.s fr15, fr15, fr15
1.16907 -+ fmac.s fr0, fr0, fr0
1.16908 -+ fmac.s fr0, fr15, fr15
1.16909 -+ fmac.s fr15, fr0, fr15
1.16910 -+ fmac.s fr15, fr15, fr0
1.16911 -+ fmac.s fr7, fr8, fr8
1.16912 -+ fmac.s fr8, fr7, fr8
1.16913 -+ fmac.s fr8, fr8, fr7
1.16914 -+ .global fnmac_s
1.16915 -+fnmac_s:
1.16916 -+ fnmac.s fr15, fr15, fr15
1.16917 -+ fnmac.s fr0, fr0, fr0
1.16918 -+ fnmac.s fr0, fr15, fr15
1.16919 -+ fnmac.s fr15, fr0, fr15
1.16920 -+ fnmac.s fr15, fr15, fr0
1.16921 -+ fnmac.s fr7, fr8, fr8
1.16922 -+ fnmac.s fr8, fr7, fr8
1.16923 -+ fnmac.s fr8, fr8, fr7
1.16924 -+ .global fmsc_s
1.16925 -+fmsc_s:
1.16926 -+ fmsc.s fr15, fr15, fr15
1.16927 -+ fmsc.s fr0, fr0, fr0
1.16928 -+ fmsc.s fr0, fr15, fr15
1.16929 -+ fmsc.s fr15, fr0, fr15
1.16930 -+ fmsc.s fr15, fr15, fr0
1.16931 -+ fmsc.s fr7, fr8, fr8
1.16932 -+ fmsc.s fr8, fr7, fr8
1.16933 -+ fmsc.s fr8, fr8, fr7
1.16934 -+ .global fnmsc_s
1.16935 -+fnmsc_s:
1.16936 -+ fnmsc.s fr15, fr15, fr15
1.16937 -+ fnmsc.s fr0, fr0, fr0
1.16938 -+ fnmsc.s fr0, fr15, fr15
1.16939 -+ fnmsc.s fr15, fr0, fr15
1.16940 -+ fnmsc.s fr15, fr15, fr0
1.16941 -+ fnmsc.s fr7, fr8, fr8
1.16942 -+ fnmsc.s fr8, fr7, fr8
1.16943 -+ fnmsc.s fr8, fr8, fr7
1.16944 -+ .global fmul_s
1.16945 -+fmul_s:
1.16946 -+ fmul.s fr15, fr15, fr15
1.16947 -+ fmul.s fr0, fr0, fr0
1.16948 -+ fmul.s fr0, fr15, fr15
1.16949 -+ fmul.s fr15, fr0, fr15
1.16950 -+ fmul.s fr15, fr15, fr0
1.16951 -+ fmul.s fr7, fr8, fr8
1.16952 -+ fmul.s fr8, fr7, fr8
1.16953 -+ fmul.s fr8, fr8, fr7
1.16954 -+ .global fnmul_s
1.16955 -+fnmul_s:
1.16956 -+ fnmul.s fr15, fr15, fr15
1.16957 -+ fnmul.s fr0, fr0, fr0
1.16958 -+ fnmul.s fr0, fr15, fr15
1.16959 -+ fnmul.s fr15, fr0, fr15
1.16960 -+ fnmul.s fr15, fr15, fr0
1.16961 -+ fnmul.s fr7, fr8, fr8
1.16962 -+ fnmul.s fr8, fr7, fr8
1.16963 -+ fnmul.s fr8, fr8, fr7
1.16964 -+ .global fneg_s
1.16965 -+fneg_s:
1.16966 -+ fneg.s fr15, fr15
1.16967 -+ fneg.s fr0, fr0
1.16968 -+ fneg.s fr0, fr15
1.16969 -+ fneg.s fr15, fr0
1.16970 -+ fneg.s fr7, fr8
1.16971 -+ fneg.s fr8, fr7
1.16972 -+ .global fabs_s
1.16973 -+fabs_s:
1.16974 -+ fabs.s fr15, fr15
1.16975 -+ fabs.s fr0, fr0
1.16976 -+ fabs.s fr0, fr15
1.16977 -+ fabs.s fr15, fr0
1.16978 -+ fabs.s fr7, fr8
1.16979 -+ fabs.s fr8, fr7
1.16980 -+ .global fcmp_s
1.16981 -+fcmp_s:
1.16982 -+ fcmp.s fr15, fr15
1.16983 -+ fcmp.s fr0, fr0
1.16984 -+ fcmp.s fr0, fr15
1.16985 -+ fcmp.s fr15, fr0
1.16986 -+ fcmp.s fr7, fr8
1.16987 -+ fcmp.s fr8, fr7
1.16988 -+ .global fadd_d
1.16989 -+fadd_d:
1.16990 -+ fadd.d fr14, fr14, fr14
1.16991 -+ fadd.d fr0, fr0, fr0
1.16992 -+ fadd.d fr0, fr14, fr14
1.16993 -+ fadd.d fr14, fr0, fr14
1.16994 -+ fadd.d fr14, fr14, fr0
1.16995 -+ fadd.d fr6, fr8, fr8
1.16996 -+ fadd.d fr8, fr6, fr8
1.16997 -+ fadd.d fr8, fr8, fr6
1.16998 -+ .global fsub_d
1.16999 -+fsub_d:
1.17000 -+ fsub.d fr14, fr14, fr14
1.17001 -+ fsub.d fr0, fr0, fr0
1.17002 -+ fsub.d fr0, fr14, fr14
1.17003 -+ fsub.d fr14, fr0, fr14
1.17004 -+ fsub.d fr14, fr14, fr0
1.17005 -+ fsub.d fr6, fr8, fr8
1.17006 -+ fsub.d fr8, fr6, fr8
1.17007 -+ fsub.d fr8, fr8, fr6
1.17008 -+ .global fmac_d
1.17009 -+fmac_d:
1.17010 -+ fmac.d fr14, fr14, fr14
1.17011 -+ fmac.d fr0, fr0, fr0
1.17012 -+ fmac.d fr0, fr14, fr14
1.17013 -+ fmac.d fr14, fr0, fr14
1.17014 -+ fmac.d fr14, fr14, fr0
1.17015 -+ fmac.d fr6, fr8, fr8
1.17016 -+ fmac.d fr8, fr6, fr8
1.17017 -+ fmac.d fr8, fr8, fr6
1.17018 -+ .global fnmac_d
1.17019 -+fnmac_d:
1.17020 -+ fnmac.d fr14, fr14, fr14
1.17021 -+ fnmac.d fr0, fr0, fr0
1.17022 -+ fnmac.d fr0, fr14, fr14
1.17023 -+ fnmac.d fr14, fr0, fr14
1.17024 -+ fnmac.d fr14, fr14, fr0
1.17025 -+ fnmac.d fr6, fr8, fr8
1.17026 -+ fnmac.d fr8, fr6, fr8
1.17027 -+ fnmac.d fr8, fr8, fr6
1.17028 -+ .global fmsc_d
1.17029 -+fmsc_d:
1.17030 -+ fmsc.d fr14, fr14, fr14
1.17031 -+ fmsc.d fr0, fr0, fr0
1.17032 -+ fmsc.d fr0, fr14, fr14
1.17033 -+ fmsc.d fr14, fr0, fr14
1.17034 -+ fmsc.d fr14, fr14, fr0
1.17035 -+ fmsc.d fr6, fr8, fr8
1.17036 -+ fmsc.d fr8, fr6, fr8
1.17037 -+ fmsc.d fr8, fr8, fr6
1.17038 -+ .global fnmsc_d
1.17039 -+fnmsc_d:
1.17040 -+ fnmsc.d fr14, fr14, fr14
1.17041 -+ fnmsc.d fr0, fr0, fr0
1.17042 -+ fnmsc.d fr0, fr14, fr14
1.17043 -+ fnmsc.d fr14, fr0, fr14
1.17044 -+ fnmsc.d fr14, fr14, fr0
1.17045 -+ fnmsc.d fr6, fr8, fr8
1.17046 -+ fnmsc.d fr8, fr6, fr8
1.17047 -+ fnmsc.d fr8, fr8, fr6
1.17048 -+ .global fmul_d
1.17049 -+fmul_d:
1.17050 -+ fmul.d fr14, fr14, fr14
1.17051 -+ fmul.d fr0, fr0, fr0
1.17052 -+ fmul.d fr0, fr14, fr14
1.17053 -+ fmul.d fr14, fr0, fr14
1.17054 -+ fmul.d fr14, fr14, fr0
1.17055 -+ fmul.d fr6, fr8, fr8
1.17056 -+ fmul.d fr8, fr6, fr8
1.17057 -+ fmul.d fr8, fr8, fr6
1.17058 -+ .global fnmul_d
1.17059 -+fnmul_d:
1.17060 -+ fnmul.d fr14, fr14, fr14
1.17061 -+ fnmul.d fr0, fr0, fr0
1.17062 -+ fnmul.d fr0, fr14, fr14
1.17063 -+ fnmul.d fr14, fr0, fr14
1.17064 -+ fnmul.d fr14, fr14, fr0
1.17065 -+ fnmul.d fr6, fr8, fr8
1.17066 -+ fnmul.d fr8, fr6, fr8
1.17067 -+ fnmul.d fr8, fr8, fr6
1.17068 -+ .global fneg_d
1.17069 -+fneg_d:
1.17070 -+ fneg.d fr14, fr14
1.17071 -+ fneg.d fr0, fr0
1.17072 -+ fneg.d fr0, fr14
1.17073 -+ fneg.d fr14, fr0
1.17074 -+ fneg.d fr6, fr8
1.17075 -+ fneg.d fr8, fr6
1.17076 -+ .global fabs_d
1.17077 -+fabs_d:
1.17078 -+ fabs.d fr14, fr14
1.17079 -+ fabs.d fr0, fr0
1.17080 -+ fabs.d fr0, fr14
1.17081 -+ fabs.d fr14, fr0
1.17082 -+ fabs.d fr6, fr8
1.17083 -+ fabs.d fr8, fr6
1.17084 -+ .global fcmp_d
1.17085 -+fcmp_d:
1.17086 -+ fcmp.d fr14, fr14
1.17087 -+ fcmp.d fr0, fr0
1.17088 -+ fcmp.d fr0, fr14
1.17089 -+ fcmp.d fr14, fr0
1.17090 -+ fcmp.d fr6, fr8
1.17091 -+ fcmp.d fr8, fr6
1.17092 -+ .global fmov_s
1.17093 -+fmov_s:
1.17094 -+ fmov.s fr15, fr15
1.17095 -+ fmov.s fr0, fr0
1.17096 -+ fmov.s fr15, fr0
1.17097 -+ fmov.s fr0, fr15
1.17098 -+ fmov.s fr8, fr7
1.17099 -+ fmov.s fr7, fr8
1.17100 -+ fmov.s pc, fr15
1.17101 -+ fmov.s r0, fr0
1.17102 -+ fmov.s pc, fr0
1.17103 -+ fmov.s r0, fr15
1.17104 -+ fmov.s r8, fr7
1.17105 -+ fmov.s r7, fr8
1.17106 -+ fmov.s fr15, pc
1.17107 -+ fmov.s fr0, r0
1.17108 -+ fmov.s fr15, r0
1.17109 -+ fmov.s fr0, pc
1.17110 -+ fmov.s fr8, r7
1.17111 -+ fmov.s fr7, r8
1.17112 -+ .global fmov_d
1.17113 -+fmov_d:
1.17114 -+ fmov.d fr14, fr14
1.17115 -+ fmov.d fr0, fr0
1.17116 -+ fmov.d fr14, fr0
1.17117 -+ fmov.d fr0, fr14
1.17118 -+ fmov.d fr8, fr6
1.17119 -+ fmov.d fr6, fr8
1.17120 -+ fmov.d lr, fr14
1.17121 -+ fmov.d r0, fr0
1.17122 -+ fmov.d lr, fr0
1.17123 -+ fmov.d r0, fr14
1.17124 -+ fmov.d r8, fr6
1.17125 -+ fmov.d r6, fr8
1.17126 -+ fmov.d fr14, lr
1.17127 -+ fmov.d fr0, r0
1.17128 -+ fmov.d fr14, r0
1.17129 -+ fmov.d fr0, lr
1.17130 -+ fmov.d fr8, r6
1.17131 -+ fmov.d fr6, r8
1.17132 -+ .global fcasts_d
1.17133 -+fcasts_d:
1.17134 -+ fcasts.d fr15, fr14
1.17135 -+ fcasts.d fr0, fr0
1.17136 -+ fcasts.d fr15, fr0
1.17137 -+ fcasts.d fr0, fr14
1.17138 -+ fcasts.d fr8, fr6
1.17139 -+ fcasts.d fr7, fr8
1.17140 -+ .global fcastd_s
1.17141 -+fcastd_s:
1.17142 -+ fcastd.s fr14, fr15
1.17143 -+ fcastd.s fr0, fr0
1.17144 -+ fcastd.s fr14, fr0
1.17145 -+ fcastd.s fr0, fr15
1.17146 -+ fcastd.s fr8, fr7
1.17147 -+ fcastd.s fr6, fr8
1.17148 ---- /dev/null
1.17149 -+++ b/gas/testsuite/gas/avr32/hwrd-lwrd.d
1.17150 -@@ -0,0 +1,47 @@
1.17151 -+#as:
1.17152 -+#objdump: -dr
1.17153 -+#name: hwrd-lwrd
1.17154 -+
1.17155 -+.*: +file format .*
1.17156 -+
1.17157 -+Disassembly of section \.text:
1.17158 -+
1.17159 -+00000000 <test_hwrd>:
1.17160 -+ 0: e0 60 87 65 mov r0,34661
1.17161 -+ 4: e0 60 12 34 mov r0,4660
1.17162 -+ 8: e0 60 00 00 mov r0,0
1.17163 -+ 8: R_AVR32_HI16 \.text\+0x60
1.17164 -+ c: e0 60 00 00 mov r0,0
1.17165 -+ c: R_AVR32_HI16 extsym1
1.17166 -+ 10: ea 10 87 65 orh r0,0x8765
1.17167 -+ 14: ea 10 12 34 orh r0,0x1234
1.17168 -+ 18: ea 10 00 00 orh r0,0x0
1.17169 -+ 18: R_AVR32_HI16 \.text\+0x60
1.17170 -+ 1c: ea 10 00 00 orh r0,0x0
1.17171 -+ 1c: R_AVR32_HI16 extsym1
1.17172 -+ 20: e4 10 87 65 andh r0,0x8765
1.17173 -+ 24: e4 10 12 34 andh r0,0x1234
1.17174 -+ 28: e4 10 00 00 andh r0,0x0
1.17175 -+ 28: R_AVR32_HI16 \.text\+0x60
1.17176 -+ 2c: e4 10 00 00 andh r0,0x0
1.17177 -+ 2c: R_AVR32_HI16 extsym1
1.17178 -+
1.17179 -+00000030 <test_lwrd>:
1.17180 -+ 30: e0 60 43 21 mov r0,17185
1.17181 -+ 34: e0 60 56 78 mov r0,22136
1.17182 -+ 38: e0 60 00 00 mov r0,0
1.17183 -+ 38: R_AVR32_LO16 \.text\+0x60
1.17184 -+ 3c: e0 60 00 00 mov r0,0
1.17185 -+ 3c: R_AVR32_LO16 extsym1
1.17186 -+ 40: e8 10 43 21 orl r0,0x4321
1.17187 -+ 44: e8 10 56 78 orl r0,0x5678
1.17188 -+ 48: e8 10 00 00 orl r0,0x0
1.17189 -+ 48: R_AVR32_LO16 \.text\+0x60
1.17190 -+ 4c: e8 10 00 00 orl r0,0x0
1.17191 -+ 4c: R_AVR32_LO16 extsym1
1.17192 -+ 50: e0 10 43 21 andl r0,0x4321
1.17193 -+ 54: e0 10 56 78 andl r0,0x5678
1.17194 -+ 58: e0 10 00 00 andl r0,0x0
1.17195 -+ 58: R_AVR32_LO16 \.text\+0x60
1.17196 -+ 5c: e0 10 00 00 andl r0,0x0
1.17197 -+ 5c: R_AVR32_LO16 extsym1
1.17198 ---- /dev/null
1.17199 -+++ b/gas/testsuite/gas/avr32/hwrd-lwrd.s
1.17200 -@@ -0,0 +1,39 @@
1.17201 -+
1.17202 -+ .equ sym1, 0x12345678
1.17203 -+
1.17204 -+ .text
1.17205 -+ .global test_hwrd
1.17206 -+test_hwrd:
1.17207 -+ mov r0, hi(0x87654321)
1.17208 -+ mov r0, hi(sym1)
1.17209 -+ mov r0, hi(sym2)
1.17210 -+ mov r0, hi(extsym1)
1.17211 -+
1.17212 -+ orh r0, hi(0x87654321)
1.17213 -+ orh r0, hi(sym1)
1.17214 -+ orh r0, hi(sym2)
1.17215 -+ orh r0, hi(extsym1)
1.17216 -+
1.17217 -+ andh r0, hi(0x87654321)
1.17218 -+ andh r0, hi(sym1)
1.17219 -+ andh r0, hi(sym2)
1.17220 -+ andh r0, hi(extsym1)
1.17221 -+
1.17222 -+ .global test_lwrd
1.17223 -+test_lwrd:
1.17224 -+ mov r0, lo(0x87654321)
1.17225 -+ mov r0, lo(sym1)
1.17226 -+ mov r0, lo(sym2)
1.17227 -+ mov r0, lo(extsym1)
1.17228 -+
1.17229 -+ orl r0, lo(0x87654321)
1.17230 -+ orl r0, lo(sym1)
1.17231 -+ orl r0, lo(sym2)
1.17232 -+ orl r0, lo(extsym1)
1.17233 -+
1.17234 -+ andl r0, lo(0x87654321)
1.17235 -+ andl r0, lo(sym1)
1.17236 -+ andl r0, lo(sym2)
1.17237 -+ andl r0, lo(extsym1)
1.17238 -+
1.17239 -+sym2:
1.17240 ---- /dev/null
1.17241 -+++ b/gas/testsuite/gas/avr32/jmptable.d
1.17242 -@@ -0,0 +1,20 @@
1.17243 -+#source: jmptable.s
1.17244 -+#as:
1.17245 -+#objdump: -dr
1.17246 -+#name: jmptable
1.17247 -+
1.17248 -+.*: +file format .*
1.17249 -+
1.17250 -+Disassembly of section \.text:
1.17251 -+
1.17252 -+00000000 <jmptable_test>:
1.17253 -+ 0: fe c8 ff f4 sub r8,pc,-12
1.17254 -+ 4: f0 00 00 2f add pc,r8,r0<<0x2
1.17255 -+ 8: d7 03 nop
1.17256 -+ a: 00 00 add r0,r0
1.17257 -+ c: c0 38 rjmp 12 <jmptable_test\+0x12>
1.17258 -+ e: c0 38 rjmp 14 <jmptable_test\+0x14>
1.17259 -+ 10: c0 38 rjmp 16 <jmptable_test\+0x16>
1.17260 -+ 12: d7 03 nop
1.17261 -+ 14: d7 03 nop
1.17262 -+ 16: d7 03 nop
1.17263 ---- /dev/null
1.17264 -+++ b/gas/testsuite/gas/avr32/jmptable_linkrelax.d
1.17265 -@@ -0,0 +1,25 @@
1.17266 -+#source: jmptable.s
1.17267 -+#as: --linkrelax
1.17268 -+#objdump: -dr
1.17269 -+#name: jmptable_linkrelax
1.17270 -+
1.17271 -+.*: +file format .*
1.17272 -+
1.17273 -+Disassembly of section \.text:
1.17274 -+
1.17275 -+00000000 <jmptable_test>:
1.17276 -+ 0: fe c8 00 00 sub r8,pc,0
1.17277 -+ 0: R_AVR32_16N_PCREL \.text\+0xc
1.17278 -+ 4: f0 00 00 2f add pc,r8,r0<<0x2
1.17279 -+ 8: d7 03 nop
1.17280 -+ a: 00 00 add r0,r0
1.17281 -+ a: R_AVR32_ALIGN \*ABS\*\+0x2
1.17282 -+ c: c0 08 rjmp c <jmptable_test\+0xc>
1.17283 -+ c: R_AVR32_11H_PCREL \.text\+0x12
1.17284 -+ e: c0 08 rjmp e <jmptable_test\+0xe>
1.17285 -+ e: R_AVR32_11H_PCREL \.text\+0x14
1.17286 -+ 10: c0 08 rjmp 10 <jmptable_test\+0x10>
1.17287 -+ 10: R_AVR32_11H_PCREL \.text\+0x16
1.17288 -+ 12: d7 03 nop
1.17289 -+ 14: d7 03 nop
1.17290 -+ 16: d7 03 nop
1.17291 ---- /dev/null
1.17292 -+++ b/gas/testsuite/gas/avr32/jmptable.s
1.17293 -@@ -0,0 +1,14 @@
1.17294 -+
1.17295 -+ .text
1.17296 -+ .global jmptable_test
1.17297 -+jmptable_test:
1.17298 -+ sub r8, pc, -(.L1 - .)
1.17299 -+ add pc, r8, r0 << 2
1.17300 -+ nop
1.17301 -+ .align 2
1.17302 -+.L1: rjmp 1f
1.17303 -+ rjmp 2f
1.17304 -+ rjmp 3f
1.17305 -+1: nop
1.17306 -+2: nop
1.17307 -+3: nop
1.17308 ---- /dev/null
1.17309 -+++ b/gas/testsuite/gas/avr32/lda_nopic.d
1.17310 -@@ -0,0 +1,32 @@
1.17311 -+#source: lda.s
1.17312 -+#as:
1.17313 -+#objdump: -dr
1.17314 -+#name: lda_nopic
1.17315 -+
1.17316 -+.*: +file format .*
1.17317 -+
1.17318 -+Disassembly of section \.text:
1.17319 -+
1.17320 -+00000000 <lda_test>:
1.17321 -+ 0: f2 c8 00 00 sub r8,r9,0
1.17322 -+
1.17323 -+00000004 <far_negative>:
1.17324 -+ 4: f6 ca 00 00 sub r10,r11,0
1.17325 -+ ...
1.17326 -+ 8000: fe c0 7f fc sub r0,pc,32764
1.17327 -+ 8004: 48 31 lddpc r1,8010 <far_negative\+0x800c>
1.17328 -+ 8006: 48 42 lddpc r2,8014 <far_negative\+0x8010>
1.17329 -+ 8008: 48 43 lddpc r3,8018 <far_negative\+0x8014>
1.17330 -+ 800a: 48 54 lddpc r4,801c <far_negative\+0x8018>
1.17331 -+ 800c: fe c5 80 04 sub r5,pc,-32764
1.17332 -+ ...
1.17333 -+ 8010: R_AVR32_32_CPENT \.text
1.17334 -+ 8014: R_AVR32_32_CPENT \.data
1.17335 -+ 8018: R_AVR32_32_CPENT undefined
1.17336 -+ 801c: R_AVR32_32_CPENT \.text\+0x1001c
1.17337 -+
1.17338 -+00010008 <far_positive>:
1.17339 -+ 10008: fa cc 00 00 sub r12,sp,0
1.17340 -+ ...
1.17341 -+0001001c <toofar_positive>:
1.17342 -+ 1001c: fe ce 00 00 sub lr,pc,0
1.17343 ---- /dev/null
1.17344 -+++ b/gas/testsuite/gas/avr32/lda_nopic_linkrelax.d
1.17345 -@@ -0,0 +1,41 @@
1.17346 -+#source: lda.s
1.17347 -+#as: --linkrelax
1.17348 -+#objdump: -dr
1.17349 -+#name: lda_nopic_linkrelax
1.17350 -+
1.17351 -+.*: +file format .*
1.17352 -+
1.17353 -+Disassembly of section \.text:
1.17354 -+
1.17355 -+00000000 <lda_test>:
1.17356 -+ 0: f2 c8 00 00 sub r8,r9,0
1.17357 -+
1.17358 -+00000004 <far_negative>:
1.17359 -+ 4: f6 ca 00 00 sub r10,r11,0
1.17360 -+ \.\.\.
1.17361 -+ 8000: 48 00 lddpc r0,8000 <far_negative\+0x7ffc>
1.17362 -+ 8000: R_AVR32_9W_CP \.text\+0x800c
1.17363 -+ 8002: 48 01 lddpc r1,8000 <far_negative\+0x7ffc>
1.17364 -+ 8002: R_AVR32_9W_CP \.text\+0x8010
1.17365 -+ 8004: 48 02 lddpc r2,8004 <far_negative\+0x8000>
1.17366 -+ 8004: R_AVR32_9W_CP \.text\+0x8014
1.17367 -+ 8006: 48 03 lddpc r3,8004 <far_negative\+0x8000>
1.17368 -+ 8006: R_AVR32_9W_CP \.text\+0x8018
1.17369 -+ 8008: 48 04 lddpc r4,8008 <far_negative\+0x8004>
1.17370 -+ 8008: R_AVR32_9W_CP \.text\+0x801c
1.17371 -+ 800a: 48 05 lddpc r5,8008 <far_negative\+0x8004>
1.17372 -+ 800a: R_AVR32_9W_CP \.text\+0x8020
1.17373 -+ \.\.\.
1.17374 -+ 800c: R_AVR32_ALIGN \*ABS\*\+0x2
1.17375 -+ 800c: R_AVR32_32_CPENT \.text\+0x4
1.17376 -+ 8010: R_AVR32_32_CPENT \.text
1.17377 -+ 8014: R_AVR32_32_CPENT \.data
1.17378 -+ 8018: R_AVR32_32_CPENT undefined
1.17379 -+ 801c: R_AVR32_32_CPENT \.text\+0x10020
1.17380 -+ 8020: R_AVR32_32_CPENT \.text\+0x1000c
1.17381 -+
1.17382 -+0001000c <far_positive>:
1.17383 -+ 1000c: fa cc 00 00 sub r12,sp,0
1.17384 -+ \.\.\.
1.17385 -+00010020 <toofar_positive>:
1.17386 -+ 10020: fe ce 00 00 sub lr,pc,0
1.17387 ---- /dev/null
1.17388 -+++ b/gas/testsuite/gas/avr32/lda_pic.d
1.17389 -@@ -0,0 +1,32 @@
1.17390 -+#source: lda.s
1.17391 -+#as: --pic
1.17392 -+#objdump: -dr
1.17393 -+#name: lda_pic
1.17394 -+
1.17395 -+.*: +file format .*
1.17396 -+
1.17397 -+Disassembly of section \.text:
1.17398 -+
1.17399 -+00000000 <lda_test>:
1.17400 -+ 0: f2 c8 00 00 sub r8,r9,0
1.17401 -+
1.17402 -+00000004 <far_negative>:
1.17403 -+ 4: f6 ca 00 00 sub r10,r11,0
1.17404 -+ ...
1.17405 -+ 8000: fe c0 7f fc sub r0,pc,32764
1.17406 -+ 8004: ec f1 00 00 ld.w r1,r6\[0\]
1.17407 -+ 8004: R_AVR32_GOT16S toofar_negative
1.17408 -+ 8008: ec f2 00 00 ld.w r2,r6\[0\]
1.17409 -+ 8008: R_AVR32_GOT16S different_section
1.17410 -+ 800c: ec f3 00 00 ld.w r3,r6\[0\]
1.17411 -+ 800c: R_AVR32_GOT16S undefined
1.17412 -+ 8010: ec f4 00 00 ld.w r4,r6\[0\]
1.17413 -+ 8010: R_AVR32_GOT16S toofar_positive
1.17414 -+ 8014: fe c5 80 14 sub r5,pc,-32748
1.17415 -+ ...
1.17416 -+
1.17417 -+00010000 <far_positive>:
1.17418 -+ 10000: fa cc 00 00 sub r12,sp,0
1.17419 -+ ...
1.17420 -+00010014 <toofar_positive>:
1.17421 -+ 10014: fe ce 00 00 sub lr,pc,0
1.17422 ---- /dev/null
1.17423 -+++ b/gas/testsuite/gas/avr32/lda_pic_linkrelax.d
1.17424 -@@ -0,0 +1,40 @@
1.17425 -+#source: lda.s
1.17426 -+#as: --pic --linkrelax
1.17427 -+#objdump: -dr
1.17428 -+#name: lda_pic_linkrelax
1.17429 -+
1.17430 -+.*: +file format .*
1.17431 -+
1.17432 -+Disassembly of section \.text:
1.17433 -+
1.17434 -+00000000 <lda_test>:
1.17435 -+ 0: f2 c8 00 00 sub r8,r9,0
1.17436 -+
1.17437 -+00000004 <far_negative>:
1.17438 -+ 4: f6 ca 00 00 sub r10,r11,0
1.17439 -+ ...
1.17440 -+ 8000: e0 60 00 00 mov r0,0
1.17441 -+ 8000: R_AVR32_LDA_GOT far_negative
1.17442 -+ 8004: ec 00 03 20 ld\.w r0,r6\[r0<<0x2\]
1.17443 -+ 8008: e0 61 00 00 mov r1,0
1.17444 -+ 8008: R_AVR32_LDA_GOT toofar_negative
1.17445 -+ 800c: ec 01 03 21 ld\.w r1,r6\[r1<<0x2\]
1.17446 -+ 8010: e0 62 00 00 mov r2,0
1.17447 -+ 8010: R_AVR32_LDA_GOT different_section
1.17448 -+ 8014: ec 02 03 22 ld\.w r2,r6\[r2<<0x2\]
1.17449 -+ 8018: e0 63 00 00 mov r3,0
1.17450 -+ 8018: R_AVR32_LDA_GOT undefined
1.17451 -+ 801c: ec 03 03 23 ld\.w r3,r6\[r3<<0x2\]
1.17452 -+ 8020: e0 64 00 00 mov r4,0
1.17453 -+ 8020: R_AVR32_LDA_GOT toofar_positive
1.17454 -+ 8024: ec 04 03 24 ld\.w r4,r6\[r4<<0x2\]
1.17455 -+ 8028: e0 65 00 00 mov r5,0
1.17456 -+ 8028: R_AVR32_LDA_GOT far_positive
1.17457 -+ 802c: ec 05 03 25 ld\.w r5,r6\[r5<<0x2\]
1.17458 -+ ...
1.17459 -+
1.17460 -+00010018 <far_positive>:
1.17461 -+ 10018: fa cc 00 00 sub r12,sp,0
1.17462 -+ ...
1.17463 -+0001002c <toofar_positive>:
1.17464 -+ 1002c: fe ce 00 00 sub lr,pc,0
1.17465 ---- /dev/null
1.17466 -+++ b/gas/testsuite/gas/avr32/lda.s
1.17467 -@@ -0,0 +1,30 @@
1.17468 -+
1.17469 -+ .text
1.17470 -+ .global lda_test
1.17471 -+lda_test:
1.17472 -+toofar_negative:
1.17473 -+ sub r8, r9, 0
1.17474 -+far_negative:
1.17475 -+ sub r10, r11, 0
1.17476 -+
1.17477 -+ .fill 32760, 1, 0x00
1.17478 -+
1.17479 -+ lda.w r0, far_negative
1.17480 -+ lda.w r1, toofar_negative
1.17481 -+ lda.w r2, different_section
1.17482 -+ lda.w r3, undefined
1.17483 -+ lda.w r4, toofar_positive
1.17484 -+ lda.w r5, far_positive
1.17485 -+
1.17486 -+ .cpool
1.17487 -+
1.17488 -+ .fill 32744, 1, 0x00
1.17489 -+far_positive:
1.17490 -+ sub r12, sp, 0
1.17491 -+ .fill 16, 1, 0x00
1.17492 -+toofar_positive:
1.17493 -+ sub lr, pc, 0
1.17494 -+
1.17495 -+ .data
1.17496 -+different_section:
1.17497 -+ .long 0x12345678
1.17498 ---- /dev/null
1.17499 -+++ b/gas/testsuite/gas/avr32/pcrel.d
1.17500 -@@ -0,0 +1,64 @@
1.17501 -+#as:
1.17502 -+#objdump: -dr
1.17503 -+#name: pcrel
1.17504 -+
1.17505 -+.*: +file format .*
1.17506 -+
1.17507 -+Disassembly of section \.text:
1.17508 -+
1.17509 -+00000000 <test_rjmp>:
1.17510 -+ 0: d7 03 nop
1.17511 -+ 2: c0 28 rjmp 6 <test_rjmp\+0x6>
1.17512 -+ 4: d7 03 nop
1.17513 -+ 6: e0 8f 00 00 bral 6 <test_rjmp\+0x6>
1.17514 -+ 6: R_AVR32_22H_PCREL extsym10
1.17515 -+
1.17516 -+0000000a <test_rcall>:
1.17517 -+ a: d7 03 nop
1.17518 -+0000000c <test_rcall2>:
1.17519 -+ c: c0 2c rcall 10 <test_rcall2\+0x4>
1.17520 -+ e: d7 03 nop
1.17521 -+ 10: e0 a0 00 00 rcall 10 <test_rcall2\+0x4>
1.17522 -+ 10: R_AVR32_22H_PCREL extsym21
1.17523 -+
1.17524 -+00000014 <test_branch>:
1.17525 -+ 14: c0 31 brne 1a <test_branch\+0x6>
1.17526 -+ 16: e0 8f 00 00 bral 16 <test_branch\+0x2>
1.17527 -+ 16: R_AVR32_22H_PCREL test_branch
1.17528 -+ 1a: e0 80 00 00 breq 1a <test_branch\+0x6>
1.17529 -+ 1a: R_AVR32_22H_PCREL extsym21
1.17530 -+
1.17531 -+0000001e <test_lddpc>:
1.17532 -+ 1e: 48 30 lddpc r0,28 <sym1>
1.17533 -+ 20: 48 20 lddpc r0,28 <sym1>
1.17534 -+ 22: fe f0 00 00 ld.w r0,pc\[0\]
1.17535 -+ 22: R_AVR32_16B_PCREL extsym16
1.17536 -+ \.\.\.
1.17537 -+
1.17538 -+00000028 <sym1>:
1.17539 -+ 28: d7 03 nop
1.17540 -+ 2a: d7 03 nop
1.17541 -+
1.17542 -+0000002c <test_local>:
1.17543 -+ 2c: 48 20 lddpc r0,34 <test_local\+0x8>
1.17544 -+ 2e: 48 30 lddpc r0,38 <test_local\+0xc>
1.17545 -+ 30: 48 20 lddpc r0,38 <test_local\+0xc>
1.17546 -+ 32: 00 00 add r0,r0
1.17547 -+ 34: d7 03 nop
1.17548 -+ 36: d7 03 nop
1.17549 -+ 38: d7 03 nop
1.17550 -+ 3a: d7 03 nop
1.17551 -+
1.17552 -+Disassembly of section \.text\.init:
1.17553 -+
1.17554 -+00000000 <test_inter_section>:
1.17555 -+ 0: e0 a0 .. .. rcall [0-9a-f]+ <.*>
1.17556 -+ 0: R_AVR32_22H_PCREL test_rcall
1.17557 -+ 4: d7 03 nop
1.17558 -+ 6: e0 a0 .. .. rcall [0-9a-f]+ <.*>
1.17559 -+ 6: R_AVR32_22H_PCREL test_rcall
1.17560 -+ a: e0 a0 .. .. rcall [0-9a-z]+ <.*>
1.17561 -+ a: R_AVR32_22H_PCREL \.text\+0xc
1.17562 -+ e: d7 03 nop
1.17563 -+ 10: e0 a0 .. .. rcall [0-9a-f]+ <.*>
1.17564 -+ 10: R_AVR32_22H_PCREL \.text\+0xc
1.17565 ---- /dev/null
1.17566 -+++ b/gas/testsuite/gas/avr32/pcrel.s
1.17567 -@@ -0,0 +1,57 @@
1.17568 -+
1.17569 -+ .text
1.17570 -+ .global test_rjmp
1.17571 -+test_rjmp:
1.17572 -+ nop
1.17573 -+ rjmp 0f
1.17574 -+ nop
1.17575 -+0: rjmp extsym10
1.17576 -+
1.17577 -+ .global test_rcall
1.17578 -+test_rcall:
1.17579 -+ nop
1.17580 -+test_rcall2:
1.17581 -+ rcall 0f
1.17582 -+ nop
1.17583 -+0: rcall extsym21
1.17584 -+
1.17585 -+ .global test_branch
1.17586 -+test_branch:
1.17587 -+ brne 0f
1.17588 -+ /* This will generate a reloc since test_branch is global */
1.17589 -+ bral test_branch
1.17590 -+0: breq extsym21
1.17591 -+
1.17592 -+ .global test_lddpc
1.17593 -+test_lddpc:
1.17594 -+ lddpc r0,sym1
1.17595 -+ lddpc r0,sym1
1.17596 -+ lddpc r0,extsym16
1.17597 -+
1.17598 -+ .align 2
1.17599 -+sym1: nop
1.17600 -+ nop
1.17601 -+
1.17602 -+ .global test_local
1.17603 -+test_local:
1.17604 -+ lddpc r0, .LC1
1.17605 -+ lddpc r0, .LC2
1.17606 -+ lddpc r0, .LC1 + 0x4
1.17607 -+
1.17608 -+ .align 2
1.17609 -+.LC1:
1.17610 -+ nop
1.17611 -+ nop
1.17612 -+.LC2:
1.17613 -+ nop
1.17614 -+ nop
1.17615 -+
1.17616 -+ .section .text.init,"ax"
1.17617 -+ .global test_inter_section
1.17618 -+test_inter_section:
1.17619 -+ rcall test_rcall
1.17620 -+ nop
1.17621 -+ rcall test_rcall
1.17622 -+ rcall test_rcall2
1.17623 -+ nop
1.17624 -+ rcall test_rcall2
1.17625 ---- /dev/null
1.17626 -+++ b/gas/testsuite/gas/avr32/pico.d
1.17627 -@@ -0,0 +1,149 @@
1.17628 -+#as:
1.17629 -+#objdump: -dr
1.17630 -+#name: pico
1.17631 -+
1.17632 -+.*: +file format .*
1.17633 -+
1.17634 -+Disassembly of section \.text:
1.17635 -+
1.17636 -+[0-9a-f]* <picosvmac>:
1.17637 -+ *[0-9a-f]*: e1 a6 20 00 cop cp1,cr0,cr0,cr0,0xc
1.17638 -+ *[0-9a-f]*: e1 a7 2b bb cop cp1,cr11,cr11,cr11,0xe
1.17639 -+ *[0-9a-f]*: e1 a6 3a 05 cop cp1,cr10,cr0,cr5,0xd
1.17640 -+ *[0-9a-f]*: e1 a7 36 90 cop cp1,cr6,cr9,cr0,0xf
1.17641 -+
1.17642 -+[0-9a-f]* <picosvmul>:
1.17643 -+ *[0-9a-f]*: e1 a4 20 00 cop cp1,cr0,cr0,cr0,0x8
1.17644 -+ *[0-9a-f]*: e1 a5 2b bb cop cp1,cr11,cr11,cr11,0xa
1.17645 -+ *[0-9a-f]*: e1 a4 3a 05 cop cp1,cr10,cr0,cr5,0x9
1.17646 -+ *[0-9a-f]*: e1 a5 36 90 cop cp1,cr6,cr9,cr0,0xb
1.17647 -+
1.17648 -+[0-9a-f]* <picovmac>:
1.17649 -+ *[0-9a-f]*: e1 a2 20 00 cop cp1,cr0,cr0,cr0,0x4
1.17650 -+ *[0-9a-f]*: e1 a3 2b bb cop cp1,cr11,cr11,cr11,0x6
1.17651 -+ *[0-9a-f]*: e1 a2 3a 05 cop cp1,cr10,cr0,cr5,0x5
1.17652 -+ *[0-9a-f]*: e1 a3 36 90 cop cp1,cr6,cr9,cr0,0x7
1.17653 -+
1.17654 -+[0-9a-f]* <picovmul>:
1.17655 -+ *[0-9a-f]*: e1 a0 20 00 cop cp1,cr0,cr0,cr0,0x0
1.17656 -+ *[0-9a-f]*: e1 a1 2b bb cop cp1,cr11,cr11,cr11,0x2
1.17657 -+ *[0-9a-f]*: e1 a0 3a 05 cop cp1,cr10,cr0,cr5,0x1
1.17658 -+ *[0-9a-f]*: e1 a1 36 90 cop cp1,cr6,cr9,cr0,0x3
1.17659 -+
1.17660 -+[0-9a-f]* <picold_d>:
1.17661 -+ *[0-9a-f]*: e9 af 3e ff ldc\.d cp1,cr14,pc\[0x3fc\]
1.17662 -+ *[0-9a-f]*: e9 a0 30 ff ldc\.d cp1,cr0,r0\[0x3fc\]
1.17663 -+ *[0-9a-f]*: e9 a0 30 00 ldc\.d cp1,cr0,r0\[0x0\]
1.17664 -+ *[0-9a-f]*: ef a8 26 50 ldc\.d cp1,cr6,--r8
1.17665 -+ *[0-9a-f]*: ef a7 28 50 ldc\.d cp1,cr8,--r7
1.17666 -+ *[0-9a-f]*: ef aa 32 65 ldc\.d cp1,cr2,r10\[r5<<0x2\]
1.17667 -+ *[0-9a-f]*: ef a3 3c 46 ldc\.d cp1,cr12,r3\[r6\]
1.17668 -+
1.17669 -+[0-9a-f]* <picold_w>:
1.17670 -+ *[0-9a-f]*: e9 af 2f ff ldc\.w cp1,cr15,pc\[0x3fc\]
1.17671 -+ *[0-9a-f]*: e9 a0 20 ff ldc\.w cp1,cr0,r0\[0x3fc\]
1.17672 -+ *[0-9a-f]*: e9 a0 20 00 ldc\.w cp1,cr0,r0\[0x0\]
1.17673 -+ *[0-9a-f]*: ef a8 27 40 ldc\.w cp1,cr7,--r8
1.17674 -+ *[0-9a-f]*: ef a7 28 40 ldc\.w cp1,cr8,--r7
1.17675 -+ *[0-9a-f]*: ef aa 31 25 ldc\.w cp1,cr1,r10\[r5<<0x2\]
1.17676 -+ *[0-9a-f]*: ef a3 3d 06 ldc\.w cp1,cr13,r3\[r6\]
1.17677 -+
1.17678 -+[0-9a-f]* <picoldm_d>:
1.17679 -+ *[0-9a-f]*: ed af 24 ff ldcm\.d cp1,pc,cr0-cr15
1.17680 -+ *[0-9a-f]*: ed a0 24 01 ldcm\.d cp1,r0,cr0-cr1
1.17681 -+ *[0-9a-f]*: ed a7 24 80 ldcm\.d cp1,r7,cr14-cr15
1.17682 -+ *[0-9a-f]*: ed a8 24 7f ldcm\.d cp1,r8,cr0-cr13
1.17683 -+
1.17684 -+[0-9a-f]* <picoldm_d_pu>:
1.17685 -+ *[0-9a-f]*: ed af 34 ff ldcm\.d cp1,pc\+\+,cr0-cr15
1.17686 -+ *[0-9a-f]*: ed a0 34 01 ldcm\.d cp1,r0\+\+,cr0-cr1
1.17687 -+ *[0-9a-f]*: ed a7 34 80 ldcm\.d cp1,r7\+\+,cr14-cr15
1.17688 -+ *[0-9a-f]*: ed a8 34 7f ldcm\.d cp1,r8\+\+,cr0-cr13
1.17689 -+
1.17690 -+[0-9a-f]* <picoldm_w>:
1.17691 -+ *[0-9a-f]*: ed af 20 ff ldcm\.w cp1,pc,cr0-cr7
1.17692 -+ *[0-9a-f]*: ed a0 20 01 ldcm\.w cp1,r0,cr0
1.17693 -+ *[0-9a-f]*: ed a7 20 80 ldcm\.w cp1,r7,cr7
1.17694 -+ *[0-9a-f]*: ed a8 20 7f ldcm\.w cp1,r8,cr0-cr6
1.17695 -+ *[0-9a-f]*: ed af 21 ff ldcm\.w cp1,pc,cr8-cr15
1.17696 -+ *[0-9a-f]*: ed a0 21 01 ldcm\.w cp1,r0,cr8
1.17697 -+ *[0-9a-f]*: ed a7 21 80 ldcm\.w cp1,r7,cr15
1.17698 -+ *[0-9a-f]*: ed a8 21 7f ldcm\.w cp1,r8,cr8-cr14
1.17699 -+
1.17700 -+[0-9a-f]* <picoldm_w_pu>:
1.17701 -+ *[0-9a-f]*: ed af 30 ff ldcm\.w cp1,pc\+\+,cr0-cr7
1.17702 -+ *[0-9a-f]*: ed a0 30 01 ldcm\.w cp1,r0\+\+,cr0
1.17703 -+ *[0-9a-f]*: ed a7 30 80 ldcm\.w cp1,r7\+\+,cr7
1.17704 -+ *[0-9a-f]*: ed a8 30 7f ldcm\.w cp1,r8\+\+,cr0-cr6
1.17705 -+ *[0-9a-f]*: ed af 31 ff ldcm\.w cp1,pc\+\+,cr8-cr15
1.17706 -+ *[0-9a-f]*: ed a0 31 01 ldcm\.w cp1,r0\+\+,cr8
1.17707 -+ *[0-9a-f]*: ed a7 31 80 ldcm\.w cp1,r7\+\+,cr15
1.17708 -+ *[0-9a-f]*: ed a8 31 7f ldcm\.w cp1,r8\+\+,cr8-cr14
1.17709 -+
1.17710 -+[0-9a-f]* <picomv_d>:
1.17711 -+ *[0-9a-f]*: ef ae 2e 30 mvrc\.d cp1,cr14,lr
1.17712 -+ *[0-9a-f]*: ef a0 20 30 mvrc\.d cp1,cr0,r0
1.17713 -+ *[0-9a-f]*: ef a8 26 30 mvrc\.d cp1,cr6,r8
1.17714 -+ *[0-9a-f]*: ef a6 28 30 mvrc\.d cp1,cr8,r6
1.17715 -+ *[0-9a-f]*: ef ae 2e 10 mvcr\.d cp1,lr,cr14
1.17716 -+ *[0-9a-f]*: ef a0 20 10 mvcr\.d cp1,r0,cr0
1.17717 -+ *[0-9a-f]*: ef a8 26 10 mvcr\.d cp1,r8,cr6
1.17718 -+ *[0-9a-f]*: ef a6 28 10 mvcr\.d cp1,r6,cr8
1.17719 -+
1.17720 -+[0-9a-f]* <picomv_w>:
1.17721 -+ *[0-9a-f]*: ef af 2f 20 mvrc\.w cp1,cr15,pc
1.17722 -+ *[0-9a-f]*: ef a0 20 20 mvrc\.w cp1,cr0,r0
1.17723 -+ *[0-9a-f]*: ef a8 27 20 mvrc\.w cp1,cr7,r8
1.17724 -+ *[0-9a-f]*: ef a7 28 20 mvrc\.w cp1,cr8,r7
1.17725 -+ *[0-9a-f]*: ef af 2f 00 mvcr\.w cp1,pc,cr15
1.17726 -+ *[0-9a-f]*: ef a0 20 00 mvcr\.w cp1,r0,cr0
1.17727 -+ *[0-9a-f]*: ef a8 27 00 mvcr\.w cp1,r8,cr7
1.17728 -+ *[0-9a-f]*: ef a7 28 00 mvcr\.w cp1,r7,cr8
1.17729 -+
1.17730 -+[0-9a-f]* <picost_d>:
1.17731 -+ *[0-9a-f]*: eb af 3e ff stc\.d cp1,pc\[0x3fc\],cr14
1.17732 -+ *[0-9a-f]*: eb a0 30 00 stc\.d cp1,r0\[0x0\],cr0
1.17733 -+ *[0-9a-f]*: ef a8 26 70 stc\.d cp1,r8\+\+,cr6
1.17734 -+ *[0-9a-f]*: ef a7 28 70 stc\.d cp1,r7\+\+,cr8
1.17735 -+ *[0-9a-f]*: ef aa 32 e5 stc\.d cp1,r10\[r5<<0x2\],cr2
1.17736 -+ *[0-9a-f]*: ef a3 3c c6 stc\.d cp1,r3\[r6\],cr12
1.17737 -+
1.17738 -+[0-9a-f]* <picost_w>:
1.17739 -+ *[0-9a-f]*: eb af 2f ff stc\.w cp1,pc\[0x3fc\],cr15
1.17740 -+ *[0-9a-f]*: eb a0 20 00 stc\.w cp1,r0\[0x0\],cr0
1.17741 -+ *[0-9a-f]*: ef a8 27 60 stc\.w cp1,r8\+\+,cr7
1.17742 -+ *[0-9a-f]*: ef a7 28 60 stc\.w cp1,r7\+\+,cr8
1.17743 -+ *[0-9a-f]*: ef aa 31 a5 stc\.w cp1,r10\[r5<<0x2\],cr1
1.17744 -+ *[0-9a-f]*: ef a3 3d 86 stc\.w cp1,r3\[r6\],cr13
1.17745 -+
1.17746 -+[0-9a-f]* <picostm_d>:
1.17747 -+ *[0-9a-f]*: ed af 25 ff stcm\.d cp1,pc,cr0-cr15
1.17748 -+ *[0-9a-f]*: ed a0 25 01 stcm\.d cp1,r0,cr0-cr1
1.17749 -+ *[0-9a-f]*: ed a7 25 80 stcm\.d cp1,r7,cr14-cr15
1.17750 -+ *[0-9a-f]*: ed a8 25 7f stcm\.d cp1,r8,cr0-cr13
1.17751 -+
1.17752 -+[0-9a-f]* <picostm_d_pu>:
1.17753 -+ *[0-9a-f]*: ed af 35 ff stcm\.d cp1,--pc,cr0-cr15
1.17754 -+ *[0-9a-f]*: ed a0 35 01 stcm\.d cp1,--r0,cr0-cr1
1.17755 -+ *[0-9a-f]*: ed a7 35 80 stcm\.d cp1,--r7,cr14-cr15
1.17756 -+ *[0-9a-f]*: ed a8 35 7f stcm\.d cp1,--r8,cr0-cr13
1.17757 -+
1.17758 -+[0-9a-f]* <picostm_w>:
1.17759 -+ *[0-9a-f]*: ed af 22 ff stcm\.w cp1,pc,cr0-cr7
1.17760 -+ *[0-9a-f]*: ed a0 22 01 stcm\.w cp1,r0,cr0
1.17761 -+ *[0-9a-f]*: ed a7 22 80 stcm\.w cp1,r7,cr7
1.17762 -+ *[0-9a-f]*: ed a8 22 7f stcm\.w cp1,r8,cr0-cr6
1.17763 -+ *[0-9a-f]*: ed af 23 ff stcm\.w cp1,pc,cr8-cr15
1.17764 -+ *[0-9a-f]*: ed a0 23 01 stcm\.w cp1,r0,cr8
1.17765 -+ *[0-9a-f]*: ed a7 23 80 stcm\.w cp1,r7,cr15
1.17766 -+ *[0-9a-f]*: ed a8 23 7f stcm\.w cp1,r8,cr8-cr14
1.17767 -+
1.17768 -+[0-9a-f]* <picostm_w_pu>:
1.17769 -+ *[0-9a-f]*: ed af 32 ff stcm\.w cp1,--pc,cr0-cr7
1.17770 -+ *[0-9a-f]*: ed a0 32 01 stcm\.w cp1,--r0,cr0
1.17771 -+ *[0-9a-f]*: ed a7 32 80 stcm\.w cp1,--r7,cr7
1.17772 -+ *[0-9a-f]*: ed a8 32 7f stcm\.w cp1,--r8,cr0-cr6
1.17773 -+ *[0-9a-f]*: ed af 33 ff stcm\.w cp1,--pc,cr8-cr15
1.17774 -+ *[0-9a-f]*: ed a0 33 01 stcm\.w cp1,--r0,cr8
1.17775 -+ *[0-9a-f]*: ed a7 33 80 stcm\.w cp1,--r7,cr15
1.17776 -+ *[0-9a-f]*: ed a8 33 7f stcm\.w cp1,--r8,cr8-cr14
1.17777 ---- /dev/null
1.17778 -+++ b/gas/testsuite/gas/avr32/pico.s
1.17779 -@@ -0,0 +1,144 @@
1.17780 -+
1.17781 -+ .text
1.17782 -+ .global picosvmac
1.17783 -+picosvmac:
1.17784 -+ picosvmac out0, in0, in0, in0
1.17785 -+ picosvmac out2, in11, in11, in11
1.17786 -+ picosvmac out1, in10, in0, in5
1.17787 -+ picosvmac out3, in6, in9, in0
1.17788 -+ .global picosvmul
1.17789 -+picosvmul:
1.17790 -+ picosvmul out0, in0, in0, in0
1.17791 -+ picosvmul out2, in11, in11, in11
1.17792 -+ picosvmul out1, in10, in0, in5
1.17793 -+ picosvmul out3, in6, in9, in0
1.17794 -+ .global picovmac
1.17795 -+picovmac:
1.17796 -+ picovmac out0, in0, in0, in0
1.17797 -+ picovmac out2, in11, in11, in11
1.17798 -+ picovmac out1, in10, in0, in5
1.17799 -+ picovmac out3, in6, in9, in0
1.17800 -+ .global picovmul
1.17801 -+picovmul:
1.17802 -+ picovmul out0, in0, in0, in0
1.17803 -+ picovmul out2, in11, in11, in11
1.17804 -+ picovmul out1, in10, in0, in5
1.17805 -+ picovmul out3, in6, in9, in0
1.17806 -+ .global picold_d
1.17807 -+picold_d:
1.17808 -+ picold.d vmu2_out, pc[1020]
1.17809 -+ picold.d inpix2, r0[1020]
1.17810 -+ picold.d inpix2, r0[0]
1.17811 -+ picold.d coeff0_a, --r8
1.17812 -+ picold.d coeff1_a, --r7
1.17813 -+ picold.d inpix0, r10[r5 << 2]
1.17814 -+ picold.d vmu0_out, r3[r6 << 0]
1.17815 -+ .global picold_w
1.17816 -+picold_w:
1.17817 -+ picold.w config, pc[1020]
1.17818 -+ picold.w inpix2, r0[1020]
1.17819 -+ picold.w inpix2, r0[0]
1.17820 -+ picold.w coeff0_b, --r8
1.17821 -+ picold.w coeff1_a, --r7
1.17822 -+ picold.w inpix1, r10[r5 << 2]
1.17823 -+ picold.w vmu1_out, r3[r6 << 0]
1.17824 -+ .global picoldm_d
1.17825 -+picoldm_d:
1.17826 -+ picoldm.d pc, inpix2-config
1.17827 -+ picoldm.d r0, inpix2, inpix1
1.17828 -+ picoldm.d r7, vmu2_out, config
1.17829 -+ picoldm.d r8, inpix2-vmu1_out
1.17830 -+ .global picoldm_d_pu
1.17831 -+picoldm_d_pu:
1.17832 -+ picoldm.d pc++, inpix2, inpix1, inpix0, outpix2, outpix1, outpix0, coeff0_a, coeff0_b, coeff1_a, coeff1_b, coeff2_a, coeff2_b, vmu0_out, vmu1_out, vmu2_out, config
1.17833 -+ picoldm.d r0++, inpix2, inpix1
1.17834 -+ picoldm.d r7++, vmu2_out, config
1.17835 -+ picoldm.d r8++, inpix2, inpix1, inpix0, outpix2, outpix1, outpix0, coeff0_a, coeff0_b, coeff1_a, coeff1_b, coeff2_a, coeff2_b, vmu0_out, vmu1_out
1.17836 -+ .global picoldm_w
1.17837 -+picoldm_w:
1.17838 -+ picoldm.w pc, inpix2-coeff0_b
1.17839 -+ picoldm.w r0, inpix2
1.17840 -+ picoldm.w r7, coeff0_b
1.17841 -+ picoldm.w r8, inpix2-coeff0_a
1.17842 -+ picoldm.w pc, coeff1_a-config
1.17843 -+ picoldm.w r0, coeff1_a
1.17844 -+ picoldm.w r7, config
1.17845 -+ picoldm.w r8, coeff1_a-vmu2_out
1.17846 -+ .global picoldm_w_pu
1.17847 -+picoldm_w_pu:
1.17848 -+ picoldm.w pc++, inpix2-coeff0_b
1.17849 -+ picoldm.w r0++, inpix2
1.17850 -+ picoldm.w r7++, coeff0_b
1.17851 -+ picoldm.w r8++, inpix2-coeff0_a
1.17852 -+ picoldm.w pc++, coeff1_a-config
1.17853 -+ picoldm.w r0++, coeff1_a
1.17854 -+ picoldm.w r7++, config
1.17855 -+ picoldm.w r8++, coeff1_a-vmu2_out
1.17856 -+ .global picomv_d
1.17857 -+picomv_d:
1.17858 -+ picomv.d vmu2_out, lr
1.17859 -+ picomv.d inpix2, r0
1.17860 -+ picomv.d coeff0_a, r8
1.17861 -+ picomv.d coeff1_a, r6
1.17862 -+ picomv.d pc, vmu2_out
1.17863 -+ picomv.d r0, inpix2
1.17864 -+ picomv.d r8, coeff0_a
1.17865 -+ picomv.d r6, coeff1_a
1.17866 -+ .global picomv_w
1.17867 -+picomv_w:
1.17868 -+ picomv.w config, pc
1.17869 -+ picomv.w inpix2, r0
1.17870 -+ picomv.w coeff0_b, r8
1.17871 -+ picomv.w coeff1_a, r7
1.17872 -+ picomv.w pc, config
1.17873 -+ picomv.w r0, inpix2
1.17874 -+ picomv.w r8, coeff0_b
1.17875 -+ picomv.w r7, coeff1_a
1.17876 -+ .global picost_d
1.17877 -+picost_d:
1.17878 -+ picost.d pc[1020], vmu2_out
1.17879 -+ picost.d r0[0], inpix2
1.17880 -+ picost.d r8++, coeff0_a
1.17881 -+ picost.d r7++, coeff1_a
1.17882 -+ picost.d r10[r5 << 2], inpix0
1.17883 -+ picost.d r3[r6 << 0], vmu0_out
1.17884 -+ .global picost_w
1.17885 -+picost_w:
1.17886 -+ picost.w pc[1020], config
1.17887 -+ picost.w r0[0], inpix2
1.17888 -+ picost.w r8++, coeff0_b
1.17889 -+ picost.w r7++, coeff1_a
1.17890 -+ picost.w r10[r5 << 2], inpix1
1.17891 -+ picost.w r3[r6 << 0], vmu1_out
1.17892 -+ .global picostm_d
1.17893 -+picostm_d:
1.17894 -+ picostm.d pc, inpix2-config
1.17895 -+ picostm.d r0, inpix2, inpix1
1.17896 -+ picostm.d r7, vmu2_out, config
1.17897 -+ picostm.d r8, inpix2-vmu1_out
1.17898 -+ .global picostm_d_pu
1.17899 -+picostm_d_pu:
1.17900 -+ picostm.d --pc, inpix2, inpix1, inpix0, outpix2, outpix1, outpix0, coeff0_a, coeff0_b, coeff1_a, coeff1_b, coeff2_a, coeff2_b, vmu0_out, vmu1_out, vmu2_out, config
1.17901 -+ picostm.d --r0, inpix2, inpix1
1.17902 -+ picostm.d --r7, vmu2_out, config
1.17903 -+ picostm.d --r8, inpix2, inpix1, inpix0, outpix2, outpix1, outpix0, coeff0_a, coeff0_b, coeff1_a, coeff1_b, coeff2_a, coeff2_b, vmu0_out, vmu1_out
1.17904 -+ .global picostm_w
1.17905 -+picostm_w:
1.17906 -+ picostm.w pc, inpix2-coeff0_b
1.17907 -+ picostm.w r0, inpix2
1.17908 -+ picostm.w r7, coeff0_b
1.17909 -+ picostm.w r8, inpix2-coeff0_a
1.17910 -+ picostm.w pc, coeff1_a-config
1.17911 -+ picostm.w r0, coeff1_a
1.17912 -+ picostm.w r7, config
1.17913 -+ picostm.w r8, coeff1_a-vmu2_out
1.17914 -+ .global picostm_w_pu
1.17915 -+picostm_w_pu:
1.17916 -+ picostm.w --pc, inpix2-coeff0_b
1.17917 -+ picostm.w --r0, inpix2
1.17918 -+ picostm.w --r7, coeff0_b
1.17919 -+ picostm.w --r8, inpix2-coeff0_a
1.17920 -+ picostm.w --pc, coeff1_a-config
1.17921 -+ picostm.w --r0, coeff1_a
1.17922 -+ picostm.w --r7, config
1.17923 -+ picostm.w --r8, coeff1_a-vmu2_out
1.17924 ---- /dev/null
1.17925 -+++ b/gas/testsuite/gas/avr32/pic_reloc.d
1.17926 -@@ -0,0 +1,27 @@
1.17927 -+#as:
1.17928 -+#objdump: -dr
1.17929 -+#name: pic_reloc
1.17930 -+
1.17931 -+.*: +file format .*
1.17932 -+
1.17933 -+Disassembly of section \.text:
1.17934 -+
1.17935 -+00000000 <mcall_got>:
1.17936 -+ 0: f0 16 00 00 mcall r6\[0\]
1.17937 -+ 0: R_AVR32_GOT18SW extfunc
1.17938 -+ 4: f0 16 00 00 mcall r6\[0\]
1.17939 -+ 4: R_AVR32_GOT18SW \.L1
1.17940 -+ 8: f0 16 00 00 mcall r6\[0\]
1.17941 -+ 8: R_AVR32_GOT18SW \.L2
1.17942 -+ c: f0 16 00 00 mcall r6\[0\]
1.17943 -+ c: R_AVR32_GOT18SW mcall_got
1.17944 -+
1.17945 -+00000010 <ldw_got>:
1.17946 -+ 10: ec f0 00 00 ld.w r0,r6\[0\]
1.17947 -+ 10: R_AVR32_GOT16S extvar
1.17948 -+ 14: ec f0 00 00 ld.w r0,r6\[0\]
1.17949 -+ 14: R_AVR32_GOT16S \.L3
1.17950 -+ 18: ec f0 00 00 ld.w r0,r6\[0\]
1.17951 -+ 18: R_AVR32_GOT16S \.L4
1.17952 -+ 1c: ec f0 00 00 ld.w r0,r6\[0\]
1.17953 -+ 1c: R_AVR32_GOT16S ldw_got
1.17954 ---- /dev/null
1.17955 -+++ b/gas/testsuite/gas/avr32/pic_reloc.s
1.17956 -@@ -0,0 +1,18 @@
1.17957 -+
1.17958 -+ .text
1.17959 -+ .global mcall_got
1.17960 -+mcall_got:
1.17961 -+.L1:
1.17962 -+ mcall r6[extfunc@got]
1.17963 -+ mcall r6[.L1@got]
1.17964 -+ mcall r6[.L2@got]
1.17965 -+ mcall r6[mcall_got@got]
1.17966 -+.L2:
1.17967 -+
1.17968 -+ .global ldw_got
1.17969 -+ldw_got:
1.17970 -+.L3: ld.w r0,r6[extvar@got]
1.17971 -+ ld.w r0,r6[.L3@got]
1.17972 -+ ld.w r0,r6[.L4@got]
1.17973 -+ ld.w r0,r6[ldw_got@got]
1.17974 -+.L4:
1.17975 ---- /dev/null
1.17976 -+++ b/gas/testsuite/gas/avr32/symdiff.d
1.17977 -@@ -0,0 +1,24 @@
1.17978 -+#source: symdiff.s
1.17979 -+#as:
1.17980 -+#objdump: -dr
1.17981 -+#name: symdiff
1.17982 -+
1.17983 -+.*: +file format .*
1.17984 -+
1.17985 -+Disassembly of section \.text:
1.17986 -+
1.17987 -+00000000 <diff32>:
1.17988 -+ 0: 00 00 add r0,r0
1.17989 -+ 2: 00 04 add r4,r0
1.17990 -+
1.17991 -+00000004 <diff16>:
1.17992 -+ 4: 00 04 add r4,r0
1.17993 -+
1.17994 -+00000006 <diff8>:
1.17995 -+ 6: 04 00 add r0,r2
1.17996 -+
1.17997 -+00000008 <symdiff_test>:
1.17998 -+ 8: d7 03 nop
1.17999 -+ a: d7 03 nop
1.18000 -+ c: d7 03 nop
1.18001 -+ e: d7 03 nop
1.18002 ---- /dev/null
1.18003 -+++ b/gas/testsuite/gas/avr32/symdiff_linkrelax.d
1.18004 -@@ -0,0 +1,28 @@
1.18005 -+#source: symdiff.s
1.18006 -+#as: --linkrelax
1.18007 -+#objdump: -dr
1.18008 -+#name: symdiff_linkrelax
1.18009 -+
1.18010 -+.*: +file format .*
1.18011 -+
1.18012 -+Disassembly of section \.text:
1.18013 -+
1.18014 -+00000000 <diff32>:
1.18015 -+ 0: 00 00 add r0,r0
1.18016 -+ 0: R_AVR32_DIFF32 \.text\+0xa
1.18017 -+ 2: 00 04 add r4,r0
1.18018 -+
1.18019 -+00000004 <diff16>:
1.18020 -+ 4: 00 04 add r4,r0
1.18021 -+ 4: R_AVR32_DIFF16 \.text\+0xa
1.18022 -+
1.18023 -+00000006 <diff8>:
1.18024 -+ 6: 04 00 add r0,r2
1.18025 -+ 6: R_AVR32_DIFF8 \.text\+0xa
1.18026 -+ 7: R_AVR32_ALIGN \*ABS\*\+0x1
1.18027 -+
1.18028 -+00000008 <symdiff_test>:
1.18029 -+ 8: d7 03 nop
1.18030 -+ a: d7 03 nop
1.18031 -+ c: d7 03 nop
1.18032 -+ e: d7 03 nop
1.18033 ---- /dev/null
1.18034 -+++ b/gas/testsuite/gas/avr32/symdiff.s
1.18035 -@@ -0,0 +1,19 @@
1.18036 -+
1.18037 -+ .text
1.18038 -+ .global diff32
1.18039 -+diff32:
1.18040 -+ .long .L2 - .L1
1.18041 -+ .global diff16
1.18042 -+diff16:
1.18043 -+ .short .L2 - .L1
1.18044 -+ .global diff8
1.18045 -+diff8:
1.18046 -+ .byte .L2 - .L1
1.18047 -+
1.18048 -+ .global symdiff_test
1.18049 -+ .align 1
1.18050 -+symdiff_test:
1.18051 -+ nop
1.18052 -+.L1: nop
1.18053 -+ nop
1.18054 -+.L2: nop
1.18055 ---- a/gas/write.c
1.18056 -+++ b/gas/write.c
1.18057 -@@ -1955,6 +1955,10 @@ relax_frag (segT segment, fragS *fragP,
1.18058 -
1.18059 - #endif /* defined (TC_GENERIC_RELAX_TABLE) */
1.18060 -
1.18061 -+#ifdef TC_RELAX_ALIGN
1.18062 -+#define RELAX_ALIGN(SEG, FRAG, ADDR) TC_RELAX_ALIGN(SEG, FRAG, ADDR)
1.18063 -+#else
1.18064 -+#define RELAX_ALIGN(SEG, FRAG, ADDR) relax_align(ADDR, (FRAG)->fr_offset)
1.18065 - /* Relax_align. Advance location counter to next address that has 'alignment'
1.18066 - lowest order bits all 0s, return size of adjustment made. */
1.18067 - static relax_addressT
1.18068 -@@ -1974,6 +1978,7 @@ relax_align (register relax_addressT add
1.18069 - #endif
1.18070 - return (new_address - address);
1.18071 - }
1.18072 -+#endif
1.18073 -
1.18074 - /* Now we have a segment, not a crowd of sub-segments, we can make
1.18075 - fr_address values.
1.18076 -@@ -2017,7 +2022,7 @@ relax_segment (struct frag *segment_frag
1.18077 - case rs_align_code:
1.18078 - case rs_align_test:
1.18079 - {
1.18080 -- addressT offset = relax_align (address, (int) fragP->fr_offset);
1.18081 -+ addressT offset = RELAX_ALIGN(segment, fragP, address);
1.18082 -
1.18083 - if (fragP->fr_subtype != 0 && offset > fragP->fr_subtype)
1.18084 - offset = 0;
1.18085 -@@ -2218,10 +2223,10 @@ relax_segment (struct frag *segment_frag
1.18086 - {
1.18087 - addressT oldoff, newoff;
1.18088 -
1.18089 -- oldoff = relax_align (was_address + fragP->fr_fix,
1.18090 -- (int) offset);
1.18091 -- newoff = relax_align (address + fragP->fr_fix,
1.18092 -- (int) offset);
1.18093 -+ oldoff = RELAX_ALIGN (segment, fragP,
1.18094 -+ was_address + fragP->fr_fix);
1.18095 -+ newoff = RELAX_ALIGN (segment, fragP,
1.18096 -+ address + fragP->fr_fix);
1.18097 -
1.18098 - if (fragP->fr_subtype != 0)
1.18099 - {
1.18100 ---- a/include/dis-asm.h
1.18101 -+++ b/include/dis-asm.h
1.18102 -@@ -204,13 +204,14 @@ typedef struct disassemble_info
1.18103 -
1.18104 - } disassemble_info;
1.18105 -
1.18106 --
1.18107 -+
1.18108 - /* Standard disassemblers. Disassemble one instruction at the given
1.18109 - target address. Return number of octets processed. */
1.18110 - typedef int (*disassembler_ftype) (bfd_vma, disassemble_info *);
1.18111 -
1.18112 - extern int print_insn_alpha (bfd_vma, disassemble_info *);
1.18113 - extern int print_insn_avr (bfd_vma, disassemble_info *);
1.18114 -+extern int print_insn_avr32 (bfd_vma, disassemble_info *);
1.18115 - extern int print_insn_bfin (bfd_vma, disassemble_info *);
1.18116 - extern int print_insn_big_arm (bfd_vma, disassemble_info *);
1.18117 - extern int print_insn_big_mips (bfd_vma, disassemble_info *);
1.18118 -@@ -242,7 +243,7 @@ extern int print_insn_little_arm (bfd_vm
1.18119 - extern int print_insn_little_mips (bfd_vma, disassemble_info *);
1.18120 - extern int print_insn_little_or32 (bfd_vma, disassemble_info *);
1.18121 - extern int print_insn_little_powerpc (bfd_vma, disassemble_info *);
1.18122 --extern int print_insn_little_score (bfd_vma, disassemble_info *);
1.18123 -+extern int print_insn_little_score (bfd_vma, disassemble_info *);
1.18124 - extern int print_insn_m32c (bfd_vma, disassemble_info *);
1.18125 - extern int print_insn_m32r (bfd_vma, disassemble_info *);
1.18126 - extern int print_insn_m68hc11 (bfd_vma, disassemble_info *);
1.18127 -@@ -290,7 +291,9 @@ extern void print_i386_disassembler_opti
1.18128 - extern void print_mips_disassembler_options (FILE *);
1.18129 - extern void print_ppc_disassembler_options (FILE *);
1.18130 - extern void print_arm_disassembler_options (FILE *);
1.18131 -+extern void print_avr32_disassembler_options (FILE *);
1.18132 - extern void parse_arm_disassembler_option (char *);
1.18133 -+extern void parse_avr32_disassembler_option (char *);
1.18134 - extern int get_arm_regname_num_options (void);
1.18135 - extern int set_arm_regname_option (int);
1.18136 - extern int get_arm_regnames (int, const char **, const char **, const char *const **);
1.18137 -@@ -306,7 +309,7 @@ extern void disassemble_init_for_target
1.18138 - /* Document any target specific options available from the disassembler. */
1.18139 - extern void disassembler_usage (FILE *);
1.18140 -
1.18141 --
1.18142 -+
1.18143 - /* This block of definitions is for particular callers who read instructions
1.18144 - into a buffer before calling the instruction decoder. */
1.18145 -
1.18146 ---- /dev/null
1.18147 -+++ b/include/elf/avr32.h
1.18148 -@@ -0,0 +1,98 @@
1.18149 -+/* AVR32 ELF support for BFD.
1.18150 -+ Copyright 2003-2006 Atmel Corporation.
1.18151 -+
1.18152 -+ Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
1.18153 -+
1.18154 -+ This file is part of BFD, the Binary File Descriptor library.
1.18155 -+
1.18156 -+ This program is free software; you can redistribute it and/or
1.18157 -+ modify it under the terms of the GNU General Public License as
1.18158 -+ published by the Free Software Foundation; either version 2 of the
1.18159 -+ License, or (at your option) any later version.
1.18160 -+
1.18161 -+ This program is distributed in the hope that it will be useful, but
1.18162 -+ WITHOUT ANY WARRANTY; without even the implied warranty of
1.18163 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.18164 -+ General Public License for more details.
1.18165 -+
1.18166 -+ You should have received a copy of the GNU General Public License
1.18167 -+ along with this program; if not, write to the Free Software
1.18168 -+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1.18169 -+ 02111-1307, USA. */
1.18170 -+
1.18171 -+#include "elf/reloc-macros.h"
1.18172 -+
1.18173 -+/* CPU-specific flags for the ELF header e_flags field */
1.18174 -+#define EF_AVR32_LINKRELAX 0x01
1.18175 -+#define EF_AVR32_PIC 0x02
1.18176 -+
1.18177 -+START_RELOC_NUMBERS (elf_avr32_reloc_type)
1.18178 -+ RELOC_NUMBER (R_AVR32_NONE, 0)
1.18179 -+
1.18180 -+ /* Data Relocations */
1.18181 -+ RELOC_NUMBER (R_AVR32_32, 1)
1.18182 -+ RELOC_NUMBER (R_AVR32_16, 2)
1.18183 -+ RELOC_NUMBER (R_AVR32_8, 3)
1.18184 -+ RELOC_NUMBER (R_AVR32_32_PCREL, 4)
1.18185 -+ RELOC_NUMBER (R_AVR32_16_PCREL, 5)
1.18186 -+ RELOC_NUMBER (R_AVR32_8_PCREL, 6)
1.18187 -+ RELOC_NUMBER (R_AVR32_DIFF32, 7)
1.18188 -+ RELOC_NUMBER (R_AVR32_DIFF16, 8)
1.18189 -+ RELOC_NUMBER (R_AVR32_DIFF8, 9)
1.18190 -+ RELOC_NUMBER (R_AVR32_GOT32, 10)
1.18191 -+ RELOC_NUMBER (R_AVR32_GOT16, 11)
1.18192 -+ RELOC_NUMBER (R_AVR32_GOT8, 12)
1.18193 -+
1.18194 -+ /* Normal Code Relocations */
1.18195 -+ RELOC_NUMBER (R_AVR32_21S, 13)
1.18196 -+ RELOC_NUMBER (R_AVR32_16U, 14)
1.18197 -+ RELOC_NUMBER (R_AVR32_16S, 15)
1.18198 -+ RELOC_NUMBER (R_AVR32_8S, 16)
1.18199 -+ RELOC_NUMBER (R_AVR32_8S_EXT, 17)
1.18200 -+
1.18201 -+ /* PC-Relative Code Relocations */
1.18202 -+ RELOC_NUMBER (R_AVR32_22H_PCREL, 18)
1.18203 -+ RELOC_NUMBER (R_AVR32_18W_PCREL, 19)
1.18204 -+ RELOC_NUMBER (R_AVR32_16B_PCREL, 20)
1.18205 -+ RELOC_NUMBER (R_AVR32_16N_PCREL, 21)
1.18206 -+ RELOC_NUMBER (R_AVR32_14UW_PCREL, 22)
1.18207 -+ RELOC_NUMBER (R_AVR32_11H_PCREL, 23)
1.18208 -+ RELOC_NUMBER (R_AVR32_10UW_PCREL, 24)
1.18209 -+ RELOC_NUMBER (R_AVR32_9H_PCREL, 25)
1.18210 -+ RELOC_NUMBER (R_AVR32_9UW_PCREL, 26)
1.18211 -+
1.18212 -+ /* Special Code Relocations */
1.18213 -+ RELOC_NUMBER (R_AVR32_HI16, 27)
1.18214 -+ RELOC_NUMBER (R_AVR32_LO16, 28)
1.18215 -+
1.18216 -+ /* PIC Relocations */
1.18217 -+ RELOC_NUMBER (R_AVR32_GOTPC, 29)
1.18218 -+ RELOC_NUMBER (R_AVR32_GOTCALL, 30)
1.18219 -+ RELOC_NUMBER (R_AVR32_LDA_GOT, 31)
1.18220 -+ RELOC_NUMBER (R_AVR32_GOT21S, 32)
1.18221 -+ RELOC_NUMBER (R_AVR32_GOT18SW, 33)
1.18222 -+ RELOC_NUMBER (R_AVR32_GOT16S, 34)
1.18223 -+ RELOC_NUMBER (R_AVR32_GOT7UW, 35)
1.18224 -+
1.18225 -+ /* Constant Pool Relocations */
1.18226 -+ RELOC_NUMBER (R_AVR32_32_CPENT, 36)
1.18227 -+ RELOC_NUMBER (R_AVR32_CPCALL, 37)
1.18228 -+ RELOC_NUMBER (R_AVR32_16_CP, 38)
1.18229 -+ RELOC_NUMBER (R_AVR32_9W_CP, 39)
1.18230 -+
1.18231 -+ /* Dynamic Relocations */
1.18232 -+ RELOC_NUMBER (R_AVR32_RELATIVE, 40)
1.18233 -+ RELOC_NUMBER (R_AVR32_GLOB_DAT, 41)
1.18234 -+ RELOC_NUMBER (R_AVR32_JMP_SLOT, 42)
1.18235 -+
1.18236 -+ /* Linkrelax Information */
1.18237 -+ RELOC_NUMBER (R_AVR32_ALIGN, 43)
1.18238 -+
1.18239 -+ RELOC_NUMBER (R_AVR32_15S, 44)
1.18240 -+
1.18241 -+END_RELOC_NUMBERS (R_AVR32_max)
1.18242 -+
1.18243 -+/* Processor specific dynamic array tags. */
1.18244 -+
1.18245 -+/* The total size in bytes of the Global Offset Table */
1.18246 -+#define DT_AVR32_GOTSZ 0x70000001
1.18247 ---- a/include/elf/common.h
1.18248 -+++ b/include/elf/common.h
1.18249 -@@ -259,6 +259,9 @@
1.18250 - /* V850 backend magic number. Written in the absense of an ABI. */
1.18251 - #define EM_CYGNUS_V850 0x9080
1.18252 -
1.18253 -+/* AVR32 magic number, picked by IAR Systems. */
1.18254 -+#define EM_AVR32 0x18ad
1.18255 -+
1.18256 - /* old S/390 backend magic number. Written in the absence of an ABI. */
1.18257 - #define EM_S390_OLD 0xa390
1.18258 -
1.18259 ---- a/ld/configdoc.texi
1.18260 -+++ b/ld/configdoc.texi
1.18261 -@@ -7,6 +7,7 @@
1.18262 - @set H8300
1.18263 - @set HPPA
1.18264 - @set I960
1.18265 -+@set AVR32
1.18266 - @set M68HC11
1.18267 - @set MMIX
1.18268 - @set MSP430
1.18269 ---- a/ld/configure.tgt
1.18270 -+++ b/ld/configure.tgt
1.18271 -@@ -109,6 +109,9 @@ xscale-*-elf) targ_emul=armelf
1.18272 - avr-*-*) targ_emul=avr2
1.18273 - targ_extra_emuls="avr1 avr3 avr4 avr5 avr6"
1.18274 - ;;
1.18275 -+avr32-*-none) targ_emul=avr32elf_ap7000
1.18276 -+ targ_extra_emuls="avr32elf_ap7001 avr32elf_ap7002 avr32elf_ap7200 avr32elf_uc3a0128 avr32elf_uc3a0256 avr32elf_uc3a0512 avr32elf_uc3a0512es avr32elf_uc3a1128 avr32elf_uc3a1256 avr32elf_uc3a1512es avr32elf_uc3a1512 avr32elf_uc3a364 avr32elf_uc3a364s avr32elf_uc3a3128 avr32elf_uc3a3128s avr32elf_uc3a3256 avr32elf_uc3a3256s avr32elf_uc3b064 avr32elf_uc3b0128 avr32elf_uc3b0256es avr32elf_uc3b0256 avr32elf_uc3b164 avr32elf_uc3b1128 avr32elf_uc3b1256es avr32elf_uc3b1256" ;;
1.18277 -+avr32-*-linux*) targ_emul=avr32linux ;;
1.18278 - bfin-*-elf) targ_emul=elf32bfin;
1.18279 - targ_extra_emuls="elf32bfinfd"
1.18280 - targ_extra_libpath=$targ_extra_emuls
1.18281 ---- /dev/null
1.18282 -+++ b/ld/emulparams/avr32elf.sh
1.18283 -@@ -0,0 +1,163 @@
1.18284 -+# This script is called from ld/genscript.sh
1.18285 -+# There is a difference on how 'bash' and POSIX handles
1.18286 -+# the '.' (source) command in a script.
1.18287 -+# genscript.sh calls this script with argument ${EMULATION_NAME}
1.18288 -+# but that will fail on POSIX compilant shells like 'sh' or 'dash'
1.18289 -+# therefor I use the variable directly instead of $1
1.18290 -+EMULATION=${EMULATION_NAME}
1.18291 -+SCRIPT_NAME=elf_xip
1.18292 -+TEMPLATE_NAME=elf32
1.18293 -+EXTRA_EM_FILE=avr32elf
1.18294 -+OUTPUT_FORMAT="elf32-avr32"
1.18295 -+ARCH=avr32
1.18296 -+MAXPAGESIZE=4096
1.18297 -+ENTRY=_start
1.18298 -+EMBEDDED=yes
1.18299 -+NO_SMALL_DATA=yes
1.18300 -+NOP=0xd703d703
1.18301 -+
1.18302 -+DATA_SEGMENT_ALIGN=8
1.18303 -+BSS_ALIGNMENT=8
1.18304 -+
1.18305 -+RO_LMA_REGION="FLASH"
1.18306 -+RO_VMA_REGION="FLASH"
1.18307 -+RW_LMA_REGION="FLASH"
1.18308 -+RW_VMA_REGION="CPUSRAM"
1.18309 -+
1.18310 -+STACK_SIZE=0x1000
1.18311 -+STACK_ADDR="ORIGIN(CPUSRAM) + LENGTH(CPUSRAM) - ${STACK_SIZE}"
1.18312 -+
1.18313 -+DATA_SEGMENT_END="__heap_start__ = ALIGN(8);
1.18314 -+ . = ${STACK_ADDR};
1.18315 -+ __heap_end__ = .;"
1.18316 -+
1.18317 -+case "$EMULATION" in
1.18318 -+avr32elf_ap*)
1.18319 -+ MACHINE=ap
1.18320 -+ INITIAL_READONLY_SECTIONS=".reset : { *(.reset) } >FLASH AT>FLASH
1.18321 -+ . = . & 0x9fffffff;"
1.18322 -+ TEXT_START_ADDR=0xa0000000
1.18323 -+ case "$EMULATION" in
1.18324 -+ avr32elf_ap700[0-2])
1.18325 -+ MEMORY="MEMORY
1.18326 -+ {
1.18327 -+ FLASH (rxai) : ORIGIN = 0x00000000, LENGTH = 64M
1.18328 -+ CPUSRAM (rwxa) : ORIGIN = 0x24000000, LENGTH = 32K
1.18329 -+ }"
1.18330 -+ ;;
1.18331 -+ avr32elf_ap7200)
1.18332 -+ MEMORY="MEMORY
1.18333 -+ {
1.18334 -+ FLASH (rxai) : ORIGIN = 0x00000000, LENGTH = 64M
1.18335 -+ CPUSRAM (rwxa) : ORIGIN = 0x08000000, LENGTH = 64K
1.18336 -+ }"
1.18337 -+ ;;
1.18338 -+ esac
1.18339 -+ ;;
1.18340 -+
1.18341 -+avr32elf_uc3*)
1.18342 -+ MACHINE=uc
1.18343 -+ INITIAL_READONLY_SECTIONS=".reset : { *(.reset) } >FLASH AT>FLASH"
1.18344 -+ TEXT_START_ADDR=0x80000000
1.18345 -+ OTHER_SECTIONS=".userpage : { *(.userpage .userpage.*) } >USERPAGE AT>USERPAGE
1.18346 -+ .factorypage : { *(.factorypage .factorypage.*) } >FACTORYPAGE AT>FACTORYPAGE"
1.18347 -+
1.18348 -+ case "$EMULATION" in
1.18349 -+ avr32elf_uc3a[01]512*)
1.18350 -+ MEMORY="MEMORY
1.18351 -+ {
1.18352 -+ FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 512K
1.18353 -+ CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 64K
1.18354 -+ USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
1.18355 -+ FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
1.18356 -+ }"
1.18357 -+ ;;
1.18358 -+
1.18359 -+ avr32elf_uc3a[01]256)
1.18360 -+ MEMORY="MEMORY
1.18361 -+ {
1.18362 -+ FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 256K
1.18363 -+ CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 64K
1.18364 -+ USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
1.18365 -+ FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
1.18366 -+ }"
1.18367 -+ ;;
1.18368 -+
1.18369 -+ avr32elf_uc3b[01]256*)
1.18370 -+ MEMORY="MEMORY
1.18371 -+ {
1.18372 -+ FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 256K
1.18373 -+ CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 32K
1.18374 -+ USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
1.18375 -+ FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
1.18376 -+ }"
1.18377 -+ ;;
1.18378 -+
1.18379 -+ avr32elf_uc3[ab][01]128)
1.18380 -+ MEMORY="MEMORY
1.18381 -+ {
1.18382 -+ FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 128K
1.18383 -+ CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 32K
1.18384 -+ USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
1.18385 -+ FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
1.18386 -+ }"
1.18387 -+ ;;
1.18388 -+
1.18389 -+ avr32elf_uc3b[01]64)
1.18390 -+ MEMORY="MEMORY
1.18391 -+ {
1.18392 -+ FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 64K
1.18393 -+ CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 16K
1.18394 -+ USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
1.18395 -+ FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
1.18396 -+ }"
1.18397 -+ ;;
1.18398 -+
1.18399 -+ avr32elf_uc3a3256*)
1.18400 -+ MEMORY="MEMORY
1.18401 -+ {
1.18402 -+ FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 256K
1.18403 -+ CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 64K
1.18404 -+ HSBSRAM (wxa!ri) : ORIGIN = 0xFF000000, LENGTH = 64K
1.18405 -+ USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
1.18406 -+ FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
1.18407 -+ }"
1.18408 -+ OTHER_SECTIONS ="${OTHER_SECTIONS}
1.18409 -+ .hsbsram : { *(.hsbsram .hsbsram.*) } >HSBSRAM AT>FLASH :FLASH
1.18410 -+"
1.18411 -+
1.18412 -+ ;;
1.18413 -+
1.18414 -+ avr32elf_uc3a3128*)
1.18415 -+ MEMORY="MEMORY
1.18416 -+ {
1.18417 -+ FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 128K
1.18418 -+ CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 64K
1.18419 -+ HSBSRAM (wxa!ri) : ORIGIN = 0xFF000000, LENGTH = 64K
1.18420 -+ USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
1.18421 -+ FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
1.18422 -+ }"
1.18423 -+ OTHER_SECTIONS ="${OTHER_SECTIONS}
1.18424 -+ .hsbsram : { *(.hsbsram .hsbsram.*) } >HSBSRAM AT>FLASH :FLASH
1.18425 -+"
1.18426 -+ ;;
1.18427 -+
1.18428 -+ avr32elf_uc3a364*)
1.18429 -+ MEMORY="MEMORY
1.18430 -+ {
1.18431 -+ FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 64K
1.18432 -+ CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 64K
1.18433 -+ HSBSRAM (wxa!ri) : ORIGIN = 0xFF000000, LENGTH = 64K
1.18434 -+ USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
1.18435 -+ FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
1.18436 -+ }"
1.18437 -+ OTHER_SECTIONS ="${OTHER_SECTIONS}
1.18438 -+ .hsbsram : { *(.hsbsram .hsbsram.*) } >HSBSRAM AT>FLASH :FLASH
1.18439 -+"
1.18440 -+ ;;
1.18441 -+
1.18442 -+
1.18443 -+ esac
1.18444 -+ ;;
1.18445 -+
1.18446 -+esac
1.18447 ---- /dev/null
1.18448 -+++ b/ld/emulparams/avr32linux.sh
1.18449 -@@ -0,0 +1,14 @@
1.18450 -+ARCH=avr32
1.18451 -+SCRIPT_NAME=elf
1.18452 -+TEMPLATE_NAME=elf32
1.18453 -+EXTRA_EM_FILE=avr32elf
1.18454 -+OUTPUT_FORMAT="elf32-avr32"
1.18455 -+GENERATE_SHLIB_SCRIPT=yes
1.18456 -+MAXPAGESIZE=0x1000
1.18457 -+TEXT_START_ADDR=0x00001000
1.18458 -+NOP=0xd703d703
1.18459 -+
1.18460 -+# This appears to place the GOT before the data section, which is
1.18461 -+# essential for uClinux. We don't use those .s* sections on AVR32
1.18462 -+# anyway, so it shouldn't hurt for regular Linux either...
1.18463 -+NO_SMALL_DATA=yes
1.18464 ---- /dev/null
1.18465 -+++ b/ld/emultempl/avr32elf.em
1.18466 -@@ -0,0 +1,133 @@
1.18467 -+# This shell script emits a C file. -*- C -*-
1.18468 -+# Copyright (C) 2007 Atmel Corporation
1.18469 -+#
1.18470 -+# This file is part of GLD, the Gnu Linker.
1.18471 -+#
1.18472 -+# This program is free software; you can redistribute it and/or modify
1.18473 -+# it under the terms of the GNU General Public License as published by
1.18474 -+# the Free Software Foundation; either version 2 of the License, or
1.18475 -+# (at your option) any later version.
1.18476 -+#
1.18477 -+# This program is distributed in the hope that it will be useful,
1.18478 -+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1.18479 -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1.18480 -+# GNU General Public License for more details.
1.18481 -+#
1.18482 -+# You should have received a copy of the GNU General Public License
1.18483 -+# along with this program; if not, write to the Free Software
1.18484 -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
1.18485 -+#
1.18486 -+
1.18487 -+# This file is sourced from elf32.em, and defines extra avr32-elf
1.18488 -+# specific routines.
1.18489 -+#
1.18490 -+
1.18491 -+# Generate linker script for writable rodata
1.18492 -+LD_FLAG=rodata-writable
1.18493 -+DATA_ALIGNMENT=${DATA_ALIGNMENT_}
1.18494 -+RELOCATING=" "
1.18495 -+WRITABLE_RODATA=" "
1.18496 -+( echo "/* Linker script for writable rodata */"
1.18497 -+ . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
1.18498 -+ . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
1.18499 -+) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xwr
1.18500 -+
1.18501 -+
1.18502 -+cat >> e${EMULATION_NAME}.c <<EOF
1.18503 -+
1.18504 -+#include "libbfd.h"
1.18505 -+#include "elf32-avr32.h"
1.18506 -+
1.18507 -+/* Whether to allow direct references (sub or mov) to SEC_DATA and
1.18508 -+ !SEC_CONTENTS sections when optimizing. Not enabled by default
1.18509 -+ since it might cause link errors. */
1.18510 -+static int direct_data_refs = 0;
1.18511 -+
1.18512 -+static void avr32_elf_after_open (void)
1.18513 -+{
1.18514 -+ bfd_elf32_avr32_set_options (&link_info, direct_data_refs);
1.18515 -+ gld${EMULATION_NAME}_after_open ();
1.18516 -+}
1.18517 -+
1.18518 -+static int rodata_writable = 0;
1.18519 -+
1.18520 -+static char * gld${EMULATION_NAME}_get_script (int *isfile);
1.18521 -+
1.18522 -+static char * avr32_elf_get_script (int *isfile)
1.18523 -+{
1.18524 -+ if ( rodata_writable )
1.18525 -+ {
1.18526 -+EOF
1.18527 -+if test -n "$COMPILE_IN"
1.18528 -+then
1.18529 -+# Scripts compiled in.
1.18530 -+
1.18531 -+# sed commands to quote an ld script as a C string.
1.18532 -+sc="-f stringify.sed"
1.18533 -+
1.18534 -+cat >>e${EMULATION_NAME}.c <<EOF
1.18535 -+ *isfile = 0;
1.18536 -+ return
1.18537 -+EOF
1.18538 -+sed $sc ldscripts/${EMULATION_NAME}.xwr >> e${EMULATION_NAME}.c
1.18539 -+echo ';' >> e${EMULATION_NAME}.c
1.18540 -+else
1.18541 -+# Scripts read from the filesystem.
1.18542 -+
1.18543 -+cat >>e${EMULATION_NAME}.c <<EOF
1.18544 -+ *isfile = 1;
1.18545 -+ return "ldscripts/${EMULATION_NAME}.xwr";
1.18546 -+EOF
1.18547 -+fi
1.18548 -+
1.18549 -+cat >>e${EMULATION_NAME}.c <<EOF
1.18550 -+ }
1.18551 -+ return gld${EMULATION_NAME}_get_script (isfile);
1.18552 -+}
1.18553 -+
1.18554 -+
1.18555 -+EOF
1.18556 -+
1.18557 -+# Define some shell vars to insert bits of code into the standard elf
1.18558 -+# parse_args and list_options functions.
1.18559 -+#
1.18560 -+PARSE_AND_LIST_PROLOGUE='
1.18561 -+#define OPTION_DIRECT_DATA 300
1.18562 -+#define OPTION_NO_DIRECT_DATA 301
1.18563 -+#define OPTION_RODATA_WRITABLE 302
1.18564 -+#define OPTION_NO_RODATA_WRITABLE 303
1.18565 -+'
1.18566 -+
1.18567 -+PARSE_AND_LIST_LONGOPTS='
1.18568 -+ { "direct-data", no_argument, NULL, OPTION_DIRECT_DATA },
1.18569 -+ { "no-direct-data", no_argument, NULL, OPTION_NO_DIRECT_DATA },
1.18570 -+ { "rodata-writable", no_argument, NULL, OPTION_RODATA_WRITABLE },
1.18571 -+ { "no-rodata-writable", no_argument, NULL, OPTION_NO_RODATA_WRITABLE },
1.18572 -+'
1.18573 -+
1.18574 -+PARSE_AND_LIST_OPTIONS='
1.18575 -+ fprintf (file, _(" --direct-data\t\tAllow direct data references when optimizing\n"));
1.18576 -+ fprintf (file, _(" --no-direct-data\tDo not allow direct data references when optimizing\n"));
1.18577 -+ fprintf (file, _(" --rodata-writable\tPut read-only data in writable data section\n"));
1.18578 -+ fprintf (file, _(" --no-rodata-writable\tDo not put read-only data in writable data section\n"));
1.18579 -+'
1.18580 -+
1.18581 -+PARSE_AND_LIST_ARGS_CASES='
1.18582 -+ case OPTION_DIRECT_DATA:
1.18583 -+ direct_data_refs = 1;
1.18584 -+ break;
1.18585 -+ case OPTION_NO_DIRECT_DATA:
1.18586 -+ direct_data_refs = 0;
1.18587 -+ break;
1.18588 -+ case OPTION_RODATA_WRITABLE:
1.18589 -+ rodata_writable = 1;
1.18590 -+ break;
1.18591 -+ case OPTION_NO_RODATA_WRITABLE:
1.18592 -+ rodata_writable = 0;
1.18593 -+ break;
1.18594 -+'
1.18595 -+
1.18596 -+# Replace some of the standard ELF functions with our own versions.
1.18597 -+#
1.18598 -+LDEMUL_AFTER_OPEN=avr32_elf_after_open
1.18599 -+LDEMUL_GET_SCRIPT=avr32_elf_get_script
1.18600 ---- a/ld/ld.info
1.18601 -+++ b/ld/ld.info
1.18602 -@@ -4347,6 +4347,8 @@ not listed.
1.18603 -
1.18604 - * ARM:: `ld' and the ARM family
1.18605 -
1.18606 -+* AVR32:: `ld' and AVR32 processors
1.18607 -+
1.18608 - * HPPA ELF32:: `ld' and HPPA 32-bit ELF
1.18609 -
1.18610 - * MMIX:: `ld' and MMIX
1.18611 -@@ -4487,7 +4489,7 @@ PIC. This avoids problems on uClinux ta
1.18612 - used to generate relocatable binaries.
1.18613 -
1.18614 -
1.18615 --File: ld.info, Node: ARM, Next: HPPA ELF32, Prev: i960, Up: Machine Dependent
1.18616 -+File: ld.info, Node: ARM, Next: AV32, Prev: i960, Up: Machine Dependent
1.18617 -
1.18618 - 4.4 `ld' and the ARM family
1.18619 - ===========================
1.18620 -@@ -4588,7 +4590,31 @@ enumeration values fitted into the small
1.18621 - diagnosed.
1.18622 -
1.18623 -
1.18624 --File: ld.info, Node: HPPA ELF32, Next: MMIX, Prev: ARM, Up: Machine Dependent
1.18625 -+File: ld.info, Node: AVR32, Next: HPPA ELF32, Prev: ARM, Up: Machine Dependent
1.18626 -+
1.18627 -+4.4 `ld' and AVR32 processors
1.18628 -+=============================
1.18629 -+
1.18630 -+`--direct-data'
1.18631 -+
1.18632 -+`--no-direct-data'
1.18633 -+ Taking the address of a symbol can often be done by using a direct
1.18634 -+ `mov' or pc-relative `sub' instruction, which is faster than using
1.18635 -+ a PC- or GOT-relative load, especially on the uC3 processors.
1.18636 -+ However, this does not always work when dealing with symbols in
1.18637 -+ the `.data' section so this optimization is disabled by default.
1.18638 -+
1.18639 -+ Specifying `--direct-data' will enable this optimization. Note
1.18640 -+ that this may cause `relocation truncated to fit' errors for
1.18641 -+ certain large programs. If this happens, the optimization can be
1.18642 -+ turned off by specifying `--no-direct-data'.
1.18643 -+
1.18644 -+ All known issues with direct data optimizations are detected at
1.18645 -+ link time, so if the linker doesn't complain, the result should
1.18646 -+ run just fine.
1.18647 -+
1.18648 -+
1.18649 -+File: ld.info, Node: HPPA ELF32, Next: MMIX, Prev: AVR32, Up: Machine Dependent
1.18650 -
1.18651 - 4.5 `ld' and HPPA 32-bit ELF Support
1.18652 - ====================================
1.18653 -@@ -6336,6 +6362,7 @@ LD Index
1.18654 - * --no-check-sections: Options. (line 765)
1.18655 - * --no-define-common: Options. (line 787)
1.18656 - * --no-demangle: Options. (line 816)
1.18657 -+* --no-direct-data: AVR32. (line 6)
1.18658 - * --no-dotsyms: PowerPC64 ELF64. (line 33)
1.18659 - * --no-enum-size-warning: ARM. (line 94)
1.18660 - * --no-gc-sections: Options. (line 848)
1.18661 -@@ -6534,6 +6561,7 @@ LD Index
1.18662 - * AT(LMA): Output Section LMA. (line 6)
1.18663 - * AT>LMA_REGION: Output Section LMA. (line 6)
1.18664 - * automatic data imports: WIN32. (line 170)
1.18665 -+* AVR32 options: AVR32. (line 6)
1.18666 - * back end: BFD. (line 6)
1.18667 - * BASE (MRI): MRI. (line 54)
1.18668 - * BE8: ARM. (line 23)
1.18669 -@@ -7018,6 +7046,7 @@ Node: H8/300183897
1.18670 - Node: i960185522
1.18671 - Node: M68HC11/68HC12187207
1.18672 - Node: ARM188910
1.18673 -+Node: AVR32182578
1.18674 - Node: HPPA ELF32193760
1.18675 - Node: MMIX195383
1.18676 - Node: MSP430196600
1.18677 ---- a/ld/ld.texinfo
1.18678 -+++ b/ld/ld.texinfo
1.18679 -@@ -21,6 +21,7 @@
1.18680 - @set UsesEnvVars
1.18681 - @set GENERIC
1.18682 - @set ARM
1.18683 -+@set AVR32
1.18684 - @set H8300
1.18685 - @set HPPA
1.18686 - @set I960
1.18687 -@@ -139,6 +140,9 @@ section entitled ``GNU Free Documentatio
1.18688 - @ifset ARM
1.18689 - * ARM:: ld and the ARM family
1.18690 - @end ifset
1.18691 -+@ifset AVR32
1.18692 -+* AVR32:: ld and AVR32 processors
1.18693 -+@end ifset
1.18694 - @ifset HPPA
1.18695 - * HPPA ELF32:: ld and HPPA 32-bit ELF
1.18696 - @end ifset
1.18697 -@@ -5248,6 +5252,9 @@ functionality are not listed.
1.18698 - @ifset ARM
1.18699 - * ARM:: @command{ld} and the ARM family
1.18700 - @end ifset
1.18701 -+@ifset AVR32
1.18702 -+* AVR32:: @command{ld} and AVR32 processors
1.18703 -+@end ifset
1.18704 - @ifset HPPA
1.18705 - * HPPA ELF32:: @command{ld} and HPPA 32-bit ELF
1.18706 - @end ifset
1.18707 -@@ -5589,6 +5596,52 @@ not be diagnosed.
1.18708 - @end ifclear
1.18709 - @end ifset
1.18710 -
1.18711 -+@ifset AVR32
1.18712 -+@ifclear GENERIC
1.18713 -+@raisesections
1.18714 -+@end ifclear
1.18715 -+
1.18716 -+@node AVR32
1.18717 -+@section @command{ld} and AVR32 processors
1.18718 -+@cindex AVR32 options
1.18719 -+@table @option
1.18720 -+@kindex --direct-data
1.18721 -+@kindex --no-direct-data
1.18722 -+@item --direct-data
1.18723 -+@item --no-direct-data
1.18724 -+Taking the address of a symbol can often be done by using a direct
1.18725 -+@code{mov} or pc-relative @code{sub} instruction, which is faster than
1.18726 -+using a PC- or GOT-relative load, especially on the uC3
1.18727 -+processors. However, this does not always work when dealing with
1.18728 -+symbols in the @code{.data} section so this optimization is disabled
1.18729 -+by default.
1.18730 -+
1.18731 -+Specifying @option{--direct-data} will enable this optimization. Note
1.18732 -+that this may cause @samp{relocation truncated to fit} errors for
1.18733 -+certain large programs. If this happens, the optimization can be
1.18734 -+turned off by specifying @option{--no-direct-data}.
1.18735 -+
1.18736 -+All known issues with direct data optimizations are detected at link
1.18737 -+time, so if the linker doesn't complain, the result should run just
1.18738 -+fine.
1.18739 -+
1.18740 -+@kindex --rodata-writable
1.18741 -+@kindex --no-rodata-writable
1.18742 -+@item --rodata-writable
1.18743 -+@item --no-rodata-writable
1.18744 -+Using the @option{--rodata-writable} options will cause the linker
1.18745 -+to try and use a linker script where read-only data will be placed
1.18746 -+in the same section as writable data. This can give great performance
1.18747 -+gain on cacheless processors where read-only data normally is placed in
1.18748 -+flash, and writable data is placed in internal sram. This will however
1.18749 -+come at the expence of a larger memory footprint.
1.18750 -+@end table
1.18751 -+
1.18752 -+@ifclear GENERIC
1.18753 -+@lowersections
1.18754 -+@end ifclear
1.18755 -+@end ifset
1.18756 -+
1.18757 - @ifset HPPA
1.18758 - @ifclear GENERIC
1.18759 - @raisesections
1.18760 ---- a/ld/Makefile.am
1.18761 -+++ b/ld/Makefile.am
1.18762 -@@ -137,7 +137,34 @@ ALL_EMULATIONS = \
1.18763 - eavr3.o \
1.18764 - eavr4.o \
1.18765 - eavr5.o \
1.18766 -- eavr6.o \
1.18767 -+ eavr6.o \
1.18768 -+ eavr32elf_ap7000.o \
1.18769 -+ eavr32elf_ap7001.o \
1.18770 -+ eavr32elf_ap7002.o \
1.18771 -+ eavr32elf_ap7200.o \
1.18772 -+ eavr32elf_uc3a0128.o \
1.18773 -+ eavr32elf_uc3a0256.o \
1.18774 -+ eavr32elf_uc3a0512.o \
1.18775 -+ eavr32elf_uc3a0512es.o \
1.18776 -+ eavr32elf_uc3a1128.o \
1.18777 -+ eavr32elf_uc3a1256.o \
1.18778 -+ eavr32elf_uc3a1512es.o \
1.18779 -+ eavr32elf_uc3a1512.o \
1.18780 -+ eavr32elf_uc3a364.o \
1.18781 -+ eavr32elf_uc3a364s.o \
1.18782 -+ eavr32elf_uc3a3128.o \
1.18783 -+ eavr32elf_uc3a3128s.o \
1.18784 -+ eavr32elf_uc3a3256.o \
1.18785 -+ eavr32elf_uc3a3256s.o \
1.18786 -+ eavr32elf_uc3b064.o \
1.18787 -+ eavr32elf_uc3b0128.o \
1.18788 -+ eavr32elf_uc3b0256es.o \
1.18789 -+ eavr32elf_uc3b0256.o \
1.18790 -+ eavr32elf_uc3b164.o \
1.18791 -+ eavr32elf_uc3b1128.o \
1.18792 -+ eavr32elf_uc3b1256es.o \
1.18793 -+ eavr32elf_uc3b1256.o \
1.18794 -+ eavr32linux.o \
1.18795 - ecoff_i860.o \
1.18796 - ecoff_sparc.o \
1.18797 - eelf32_spu.o \
1.18798 -@@ -622,6 +649,114 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
1.18799 - $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
1.18800 - ${GEN_DEPENDS}
1.18801 - ${GENSCRIPTS} avr6 "$(tdir_avr2)"
1.18802 -+eavr32elf_ap7000.c: $(srcdir)/emulparams/avr32elf.sh \
1.18803 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18804 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18805 -+ ${GENSCRIPTS} avr32elf_ap7000 "$(tdir_avr32)" avr32elf
1.18806 -+eavr32elf_ap7001.c: $(srcdir)/emulparams/avr32elf.sh \
1.18807 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18808 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18809 -+ ${GENSCRIPTS} avr32elf_ap7001 "$(tdir_avr32)" avr32elf
1.18810 -+eavr32elf_ap7002.c: $(srcdir)/emulparams/avr32elf.sh \
1.18811 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18812 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18813 -+ ${GENSCRIPTS} avr32elf_ap7002 "$(tdir_avr32)" avr32elf
1.18814 -+eavr32elf_ap7200.c: $(srcdir)/emulparams/avr32elf.sh \
1.18815 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18816 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18817 -+ ${GENSCRIPTS} avr32elf_ap7200 "$(tdir_avr32)" avr32elf
1.18818 -+eavr32elf_uc3a0128.c: $(srcdir)/emulparams/avr32elf.sh \
1.18819 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18820 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18821 -+ ${GENSCRIPTS} avr32elf_uc3a0128 "$(tdir_avr32)" avr32elf
1.18822 -+eavr32elf_uc3a0256.c: $(srcdir)/emulparams/avr32elf.sh \
1.18823 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18824 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18825 -+ ${GENSCRIPTS} avr32elf_uc3a0256 "$(tdir_avr32)" avr32elf
1.18826 -+eavr32elf_uc3a0512.c: $(srcdir)/emulparams/avr32elf.sh \
1.18827 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18828 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18829 -+ ${GENSCRIPTS} avr32elf_uc3a0512 "$(tdir_avr32)" avr32elf
1.18830 -+eavr32elf_uc3a0512es.c: $(srcdir)/emulparams/avr32elf.sh \
1.18831 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18832 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18833 -+ ${GENSCRIPTS} avr32elf_uc3a0512es "$(tdir_avr32)" avr32elf
1.18834 -+eavr32elf_uc3a1128.c: $(srcdir)/emulparams/avr32elf.sh \
1.18835 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18836 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18837 -+ ${GENSCRIPTS} avr32elf_uc3a1128 "$(tdir_avr32)" avr32elf
1.18838 -+eavr32elf_uc3a1256.c: $(srcdir)/emulparams/avr32elf.sh \
1.18839 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18840 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18841 -+ ${GENSCRIPTS} avr32elf_uc3a1256 "$(tdir_avr32)" avr32elf
1.18842 -+eavr32elf_uc3a1512.c: $(srcdir)/emulparams/avr32elf.sh \
1.18843 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18844 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18845 -+ ${GENSCRIPTS} avr32elf_uc3a1512 "$(tdir_avr32)" avr32elf
1.18846 -+eavr32elf_uc3a1512es.c: $(srcdir)/emulparams/avr32elf.sh \
1.18847 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18848 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18849 -+ ${GENSCRIPTS} avr32elf_uc3a1512es "$(tdir_avr32)" avr32elf
1.18850 -+eavr32elf_uc3a364.c: $(srcdir)/emulparams/avr32elf.sh \
1.18851 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18852 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18853 -+ ${GENSCRIPTS} avr32elf_uc3a364 "$(tdir_avr32)" avr32elf
1.18854 -+eavr32elf_uc3a364s.c: $(srcdir)/emulparams/avr32elf.sh \
1.18855 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18856 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18857 -+ ${GENSCRIPTS} avr32elf_uc3a364s "$(tdir_avr32)" avr32elf
1.18858 -+eavr32elf_uc3a3128.c: $(srcdir)/emulparams/avr32elf.sh \
1.18859 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18860 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18861 -+ ${GENSCRIPTS} avr32elf_uc3a3128 "$(tdir_avr32)" avr32elf
1.18862 -+eavr32elf_uc3a3128s.c: $(srcdir)/emulparams/avr32elf.sh \
1.18863 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18864 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18865 -+ ${GENSCRIPTS} avr32elf_uc3a3128s "$(tdir_avr32)" avr32elf
1.18866 -+eavr32elf_uc3a3256.c: $(srcdir)/emulparams/avr32elf.sh \
1.18867 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18868 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18869 -+ ${GENSCRIPTS} avr32elf_uc3a3256 "$(tdir_avr32)" avr32elf
1.18870 -+eavr32elf_uc3a3256s.c: $(srcdir)/emulparams/avr32elf.sh \
1.18871 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18872 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18873 -+ ${GENSCRIPTS} avr32elf_uc3a3256s "$(tdir_avr32)" avr32elf
1.18874 -+eavr32elf_uc3b064.c: $(srcdir)/emulparams/avr32elf.sh \
1.18875 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18876 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18877 -+ ${GENSCRIPTS} avr32elf_uc3b064 "$(tdir_avr32)" avr32elf
1.18878 -+eavr32elf_uc3b0128.c: $(srcdir)/emulparams/avr32elf.sh \
1.18879 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18880 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18881 -+ ${GENSCRIPTS} avr32elf_uc3b0128 "$(tdir_avr32)" avr32elf
1.18882 -+eavr32elf_uc3b0256.c: $(srcdir)/emulparams/avr32elf.sh \
1.18883 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18884 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18885 -+ ${GENSCRIPTS} avr32elf_uc3b0256 "$(tdir_avr32)" avr32elf
1.18886 -+eavr32elf_uc3b0256es.c: $(srcdir)/emulparams/avr32elf.sh \
1.18887 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18888 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18889 -+ ${GENSCRIPTS} avr32elf_uc3b0256es "$(tdir_avr32)" avr32elf
1.18890 -+eavr32elf_uc3b164.c: $(srcdir)/emulparams/avr32elf.sh \
1.18891 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18892 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18893 -+ ${GENSCRIPTS} avr32elf_uc3b164 "$(tdir_avr32)" avr32elf
1.18894 -+eavr32elf_uc3b1128.c: $(srcdir)/emulparams/avr32elf.sh \
1.18895 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18896 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18897 -+ ${GENSCRIPTS} avr32elf_uc3b1128 "$(tdir_avr32)" avr32elf
1.18898 -+eavr32elf_uc3b1256.c: $(srcdir)/emulparams/avr32elf.sh \
1.18899 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18900 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18901 -+ ${GENSCRIPTS} avr32elf_uc3b1256 "$(tdir_avr32)" avr32elf
1.18902 -+eavr32elf_uc3b1256es.c: $(srcdir)/emulparams/avr32elf.sh \
1.18903 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18904 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.18905 -+ ${GENSCRIPTS} avr32elf_uc3b1256es "$(tdir_avr32)" avr32elf
1.18906 -+eavr32linux.c: $(srcdir)/emulparams/avr32linux.sh \
1.18907 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.18908 -+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
1.18909 -+ ${GENSCRIPTS} avr32linux "$(tdir_avr32)"
1.18910 - ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \
1.18911 - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS}
1.18912 - ${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)"
1.18913 -@@ -1877,7 +2012,9 @@ install-exec-local: ld-new$(EXEEXT)
1.18914 - || $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT); \
1.18915 - fi
1.18916 -
1.18917 --install-data-local:
1.18918 -+# We want install to imply install-info as per GNU standards, despite the
1.18919 -+# cygnus option.
1.18920 -+install-data-local: install-info
1.18921 - $(mkinstalldirs) $(DESTDIR)$(scriptdir)/ldscripts
1.18922 - for f in ldscripts/*; do \
1.18923 - $(INSTALL_DATA) $$f $(DESTDIR)$(scriptdir)/$$f ; \
1.18924 ---- /dev/null
1.18925 -+++ b/ld/scripttempl/elf_xip.sc
1.18926 -@@ -0,0 +1,456 @@
1.18927 -+#
1.18928 -+# Unusual variables checked by this code:
1.18929 -+# NOP - four byte opcode for no-op (defaults to 0)
1.18930 -+# NO_SMALL_DATA - no .sbss/.sbss2/.sdata/.sdata2 sections if not
1.18931 -+# empty.
1.18932 -+# SMALL_DATA_CTOR - .ctors contains small data.
1.18933 -+# SMALL_DATA_DTOR - .dtors contains small data.
1.18934 -+# DATA_ADDR - if end-of-text-plus-one-page isn't right for data start
1.18935 -+# INITIAL_READONLY_SECTIONS - at start of text segment
1.18936 -+# OTHER_READONLY_SECTIONS - other than .text .init .rodata ...
1.18937 -+# (e.g., .PARISC.milli)
1.18938 -+# OTHER_TEXT_SECTIONS - these get put in .text when relocating
1.18939 -+# OTHER_READWRITE_SECTIONS - other than .data .bss .ctors .sdata ...
1.18940 -+# (e.g., .PARISC.global)
1.18941 -+# OTHER_RELRO_SECTIONS - other than .data.rel.ro ...
1.18942 -+# (e.g. PPC32 .fixup, .got[12])
1.18943 -+# OTHER_BSS_SECTIONS - other than .bss .sbss ...
1.18944 -+# OTHER_SECTIONS - at the end
1.18945 -+# EXECUTABLE_SYMBOLS - symbols that must be defined for an
1.18946 -+# executable (e.g., _DYNAMIC_LINK)
1.18947 -+# TEXT_START_ADDR - the first byte of the text segment, after any
1.18948 -+# headers.
1.18949 -+# TEXT_BASE_ADDRESS - the first byte of the text segment.
1.18950 -+# TEXT_START_SYMBOLS - symbols that appear at the start of the
1.18951 -+# .text section.
1.18952 -+# DATA_START_SYMBOLS - symbols that appear at the start of the
1.18953 -+# .data section.
1.18954 -+# OTHER_GOT_SYMBOLS - symbols defined just before .got.
1.18955 -+# OTHER_GOT_SECTIONS - sections just after .got.
1.18956 -+# OTHER_SDATA_SECTIONS - sections just after .sdata.
1.18957 -+# OTHER_BSS_SYMBOLS - symbols that appear at the start of the
1.18958 -+# .bss section besides __bss_start.
1.18959 -+# DATA_PLT - .plt should be in data segment, not text segment.
1.18960 -+# PLT_BEFORE_GOT - .plt just before .got when .plt is in data segement.
1.18961 -+# BSS_PLT - .plt should be in bss segment
1.18962 -+# TEXT_DYNAMIC - .dynamic in text segment, not data segment.
1.18963 -+# EMBEDDED - whether this is for an embedded system.
1.18964 -+# SHLIB_TEXT_START_ADDR - if set, add to SIZEOF_HEADERS to set
1.18965 -+# start address of shared library.
1.18966 -+# INPUT_FILES - INPUT command of files to always include
1.18967 -+# WRITABLE_RODATA - if set, the .rodata section should be writable
1.18968 -+# INIT_START, INIT_END - statements just before and just after
1.18969 -+# combination of .init sections.
1.18970 -+# FINI_START, FINI_END - statements just before and just after
1.18971 -+# combination of .fini sections.
1.18972 -+# STACK_ADDR - start of a .stack section.
1.18973 -+# OTHER_END_SYMBOLS - symbols to place right at the end of the script.
1.18974 -+# SEPARATE_GOTPLT - if set, .got.plt should be separate output section,
1.18975 -+# so that .got can be in the RELRO area. It should be set to
1.18976 -+# the number of bytes in the beginning of .got.plt which can be
1.18977 -+# in the RELRO area as well.
1.18978 -+#
1.18979 -+# When adding sections, do note that the names of some sections are used
1.18980 -+# when specifying the start address of the next.
1.18981 -+#
1.18982 -+
1.18983 -+# Many sections come in three flavours. There is the 'real' section,
1.18984 -+# like ".data". Then there are the per-procedure or per-variable
1.18985 -+# sections, generated by -ffunction-sections and -fdata-sections in GCC,
1.18986 -+# and useful for --gc-sections, which for a variable "foo" might be
1.18987 -+# ".data.foo". Then there are the linkonce sections, for which the linker
1.18988 -+# eliminates duplicates, which are named like ".gnu.linkonce.d.foo".
1.18989 -+# The exact correspondences are:
1.18990 -+#
1.18991 -+# Section Linkonce section
1.18992 -+# .text .gnu.linkonce.t.foo
1.18993 -+# .rodata .gnu.linkonce.r.foo
1.18994 -+# .data .gnu.linkonce.d.foo
1.18995 -+# .bss .gnu.linkonce.b.foo
1.18996 -+# .sdata .gnu.linkonce.s.foo
1.18997 -+# .sbss .gnu.linkonce.sb.foo
1.18998 -+# .sdata2 .gnu.linkonce.s2.foo
1.18999 -+# .sbss2 .gnu.linkonce.sb2.foo
1.19000 -+# .debug_info .gnu.linkonce.wi.foo
1.19001 -+# .tdata .gnu.linkonce.td.foo
1.19002 -+# .tbss .gnu.linkonce.tb.foo
1.19003 -+#
1.19004 -+# Each of these can also have corresponding .rel.* and .rela.* sections.
1.19005 -+
1.19006 -+test -z "$ENTRY" && ENTRY=_start
1.19007 -+test -z "${BIG_OUTPUT_FORMAT}" && BIG_OUTPUT_FORMAT=${OUTPUT_FORMAT}
1.19008 -+test -z "${LITTLE_OUTPUT_FORMAT}" && LITTLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
1.19009 -+if [ -z "$MACHINE" ]; then OUTPUT_ARCH=${ARCH}; else OUTPUT_ARCH=${ARCH}:${MACHINE}; fi
1.19010 -+test -z "${ELFSIZE}" && ELFSIZE=32
1.19011 -+test -z "${ALIGNMENT}" && ALIGNMENT="${ELFSIZE} / 8"
1.19012 -+test "$LD_FLAG" = "N" && DATA_ADDR=.
1.19013 -+test -n "$CREATE_SHLIB$CREATE_PIE" && test -n "$SHLIB_DATA_ADDR" && COMMONPAGESIZE=""
1.19014 -+test -z "$CREATE_SHLIB$CREATE_PIE" && test -n "$DATA_ADDR" && COMMONPAGESIZE=""
1.19015 -+test -n "$RELRO_NOW" && unset SEPARATE_GOTPLT
1.19016 -+if test -n "$RELOCATING"; then
1.19017 -+ RO_REGION="${RO_VMA_REGION+ >}${RO_VMA_REGION}${RO_LMA_REGION+ AT>}${RO_LMA_REGION}"
1.19018 -+ RW_REGION="${RW_VMA_REGION+ >}${RW_VMA_REGION}${RW_LMA_REGION+ AT>}${RW_LMA_REGION}"
1.19019 -+else
1.19020 -+ RO_REGION=""
1.19021 -+ RW_REGION=""
1.19022 -+fi
1.19023 -+INTERP=".interp ${RELOCATING-0} : { *(.interp) }${RO_REGION}"
1.19024 -+PLT=".plt ${RELOCATING-0} : { *(.plt) }"
1.19025 -+if test -z "$GOT"; then
1.19026 -+ if test -z "$SEPARATE_GOTPLT"; then
1.19027 -+ GOT=".got ${RELOCATING-0} : { *(.got.plt) *(.got) }"
1.19028 -+ else
1.19029 -+ GOT=".got ${RELOCATING-0} : { *(.got) }"
1.19030 -+ GOTPLT="${RELOCATING+${DATA_SEGMENT_RELRO_GOTPLT_END}}
1.19031 -+ .got.plt ${RELOCATING-0} : { *(.got.plt) }"
1.19032 -+ fi
1.19033 -+fi
1.19034 -+DALIGN=".dalign : { . = ALIGN(${DATA_SEGMENT_ALIGN}); PROVIDE(_data_lma = .); }${RO_REGION}"
1.19035 -+BALIGN=".balign : { . = ALIGN(${BSS_ALIGNMENT}); _edata = .; }${RW_REGION}"
1.19036 -+DYNAMIC=".dynamic ${RELOCATING-0} : { *(.dynamic) }"
1.19037 -+RODATA=".rodata ${RELOCATING-0} : { *(.rodata${RELOCATING+ .rodata.* .gnu.linkonce.r.*}) }"
1.19038 -+DATARELRO=".data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) }${RW_REGION}"
1.19039 -+STACKNOTE="/DISCARD/ : { *(.note.GNU-stack) }"
1.19040 -+if test -z "${NO_SMALL_DATA}"; then
1.19041 -+ SBSS=".sbss ${RELOCATING-0} :
1.19042 -+ {
1.19043 -+ ${RELOCATING+PROVIDE (__sbss_start = .);}
1.19044 -+ ${RELOCATING+PROVIDE (___sbss_start = .);}
1.19045 -+ ${CREATE_SHLIB+*(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)}
1.19046 -+ *(.dynsbss)
1.19047 -+ *(.sbss${RELOCATING+ .sbss.* .gnu.linkonce.sb.*})
1.19048 -+ *(.scommon)
1.19049 -+ ${RELOCATING+PROVIDE (__sbss_end = .);}
1.19050 -+ ${RELOCATING+PROVIDE (___sbss_end = .);}
1.19051 -+ }${RW_REGION}"
1.19052 -+ SBSS2=".sbss2 ${RELOCATING-0} : { *(.sbss2${RELOCATING+ .sbss2.* .gnu.linkonce.sb2.*}) }${RW_REGION}"
1.19053 -+ SDATA="/* We want the small data sections together, so single-instruction offsets
1.19054 -+ can access them all, and initialized data all before uninitialized, so
1.19055 -+ we can shorten the on-disk segment size. */
1.19056 -+ .sdata ${RELOCATING-0} :
1.19057 -+ {
1.19058 -+ ${RELOCATING+${SDATA_START_SYMBOLS}}
1.19059 -+ ${CREATE_SHLIB+*(.sdata2 .sdata2.* .gnu.linkonce.s2.*)}
1.19060 -+ *(.sdata${RELOCATING+ .sdata.* .gnu.linkonce.s.*})
1.19061 -+ }${RW_REGION}"
1.19062 -+ SDATA2=".sdata2 ${RELOCATING-0} : { *(.sdata2${RELOCATING+ .sdata2.* .gnu.linkonce.s2.*}) }${RW_REGION}"
1.19063 -+ REL_SDATA=".rel.sdata ${RELOCATING-0} : { *(.rel.sdata${RELOCATING+ .rel.sdata.* .rel.gnu.linkonce.s.*}) }${RO_REGION}
1.19064 -+ .rela.sdata ${RELOCATING-0} : { *(.rela.sdata${RELOCATING+ .rela.sdata.* .rela.gnu.linkonce.s.*}) }"
1.19065 -+ REL_SBSS=".rel.sbss ${RELOCATING-0} : { *(.rel.sbss${RELOCATING+ .rel.sbss.* .rel.gnu.linkonce.sb.*}) }${RO_REGION}
1.19066 -+ .rela.sbss ${RELOCATING-0} : { *(.rela.sbss${RELOCATING+ .rela.sbss.* .rela.gnu.linkonce.sb.*}) }${RO_REGION}"
1.19067 -+ REL_SDATA2=".rel.sdata2 ${RELOCATING-0} : { *(.rel.sdata2${RELOCATING+ .rel.sdata2.* .rel.gnu.linkonce.s2.*}) }${RO_REGION}
1.19068 -+ .rela.sdata2 ${RELOCATING-0} : { *(.rela.sdata2${RELOCATING+ .rela.sdata2.* .rela.gnu.linkonce.s2.*}) }${RO_REGION}"
1.19069 -+ REL_SBSS2=".rel.sbss2 ${RELOCATING-0} : { *(.rel.sbss2${RELOCATING+ .rel.sbss2.* .rel.gnu.linkonce.sb2.*}) }${RO_REGION}
1.19070 -+ .rela.sbss2 ${RELOCATING-0} : { *(.rela.sbss2${RELOCATING+ .rela.sbss2.* .rela.gnu.linkonce.sb2.*}) }${RO_REGION}"
1.19071 -+else
1.19072 -+ NO_SMALL_DATA=" "
1.19073 -+fi
1.19074 -+test -n "$SEPARATE_GOTPLT" && SEPARATE_GOTPLT=" "
1.19075 -+CTOR=".ctors ${CONSTRUCTING-0} :
1.19076 -+ {
1.19077 -+ ${CONSTRUCTING+${CTOR_START}}
1.19078 -+ /* gcc uses crtbegin.o to find the start of
1.19079 -+ the constructors, so we make sure it is
1.19080 -+ first. Because this is a wildcard, it
1.19081 -+ doesn't matter if the user does not
1.19082 -+ actually link against crtbegin.o; the
1.19083 -+ linker won't look for a file to match a
1.19084 -+ wildcard. The wildcard also means that it
1.19085 -+ doesn't matter which directory crtbegin.o
1.19086 -+ is in. */
1.19087 -+
1.19088 -+ KEEP (*crtbegin*.o(.ctors))
1.19089 -+
1.19090 -+ /* We don't want to include the .ctor section from
1.19091 -+ from the crtend.o file until after the sorted ctors.
1.19092 -+ The .ctor section from the crtend file contains the
1.19093 -+ end of ctors marker and it must be last */
1.19094 -+
1.19095 -+ KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .ctors))
1.19096 -+ KEEP (*(SORT(.ctors.*)))
1.19097 -+ KEEP (*(.ctors))
1.19098 -+ ${CONSTRUCTING+${CTOR_END}}
1.19099 -+ }"
1.19100 -+DTOR=".dtors ${CONSTRUCTING-0} :
1.19101 -+ {
1.19102 -+ ${CONSTRUCTING+${DTOR_START}}
1.19103 -+ KEEP (*crtbegin*.o(.dtors))
1.19104 -+ KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors))
1.19105 -+ KEEP (*(SORT(.dtors.*)))
1.19106 -+ KEEP (*(.dtors))
1.19107 -+ ${CONSTRUCTING+${DTOR_END}}
1.19108 -+ }"
1.19109 -+STACK=".stack ${RELOCATING-0}${RELOCATING+${STACK_ADDR}} :
1.19110 -+ {
1.19111 -+ ${RELOCATING+_stack = .;}
1.19112 -+ *(.stack)
1.19113 -+ ${RELOCATING+${STACK_SIZE+. = ${STACK_SIZE};}}
1.19114 -+ ${RELOCATING+_estack = .;}
1.19115 -+ }${RW_REGION}"
1.19116 -+
1.19117 -+# if this is for an embedded system, don't add SIZEOF_HEADERS.
1.19118 -+if [ -z "$EMBEDDED" ]; then
1.19119 -+ test -z "${TEXT_BASE_ADDRESS}" && TEXT_BASE_ADDRESS="${TEXT_START_ADDR} + SIZEOF_HEADERS"
1.19120 -+else
1.19121 -+ test -z "${TEXT_BASE_ADDRESS}" && TEXT_BASE_ADDRESS="${TEXT_START_ADDR}"
1.19122 -+fi
1.19123 -+
1.19124 -+cat <<EOF
1.19125 -+OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}",
1.19126 -+ "${LITTLE_OUTPUT_FORMAT}")
1.19127 -+OUTPUT_ARCH(${OUTPUT_ARCH})
1.19128 -+ENTRY(${ENTRY})
1.19129 -+
1.19130 -+${RELOCATING+${LIB_SEARCH_DIRS}}
1.19131 -+${RELOCATING+/* Do we need any of these for elf?
1.19132 -+ __DYNAMIC = 0; ${STACKZERO+${STACKZERO}} ${SHLIB_PATH+${SHLIB_PATH}} */}
1.19133 -+${RELOCATING+${EXECUTABLE_SYMBOLS}}
1.19134 -+${RELOCATING+${INPUT_FILES}}
1.19135 -+${RELOCATING- /* For some reason, the Solaris linker makes bad executables
1.19136 -+ if gld -r is used and the intermediate file has sections starting
1.19137 -+ at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld
1.19138 -+ bug. But for now assigning the zero vmas works. */}
1.19139 -+
1.19140 -+${RELOCATING+${MEMORY}}
1.19141 -+
1.19142 -+SECTIONS
1.19143 -+{
1.19144 -+ /* Read-only sections, merged into text segment: */
1.19145 -+ ${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+PROVIDE (__executable_start = ${TEXT_START_ADDR}); . = ${TEXT_BASE_ADDRESS};}}}
1.19146 -+ ${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_TEXT_START_ADDR:-0} + SIZEOF_HEADERS;}}
1.19147 -+ ${CREATE_PIE+${RELOCATING+. = ${SHLIB_TEXT_START_ADDR:-0} + SIZEOF_HEADERS;}}
1.19148 -+ ${CREATE_SHLIB-${INTERP}}
1.19149 -+ ${INITIAL_READONLY_SECTIONS}
1.19150 -+ ${TEXT_DYNAMIC+${DYNAMIC}${RO_REGION}}
1.19151 -+ .hash ${RELOCATING-0} : { *(.hash) }${RO_REGION}
1.19152 -+ .dynsym ${RELOCATING-0} : { *(.dynsym) }${RO_REGION}
1.19153 -+ .dynstr ${RELOCATING-0} : { *(.dynstr) }${RO_REGION}
1.19154 -+ .gnu.version ${RELOCATING-0} : { *(.gnu.version) }${RO_REGION}
1.19155 -+ .gnu.version_d ${RELOCATING-0}: { *(.gnu.version_d) }${RO_REGION}
1.19156 -+ .gnu.version_r ${RELOCATING-0}: { *(.gnu.version_r) }${RO_REGION}
1.19157 -+
1.19158 -+EOF
1.19159 -+if [ "x$COMBRELOC" = x ]; then
1.19160 -+ COMBRELOCCAT=cat
1.19161 -+else
1.19162 -+ COMBRELOCCAT="cat > $COMBRELOC"
1.19163 -+fi
1.19164 -+eval $COMBRELOCCAT <<EOF
1.19165 -+ .rel.init ${RELOCATING-0} : { *(.rel.init) }${RO_REGION}
1.19166 -+ .rela.init ${RELOCATING-0} : { *(.rela.init) }${RO_REGION}
1.19167 -+ .rel.text ${RELOCATING-0} : { *(.rel.text${RELOCATING+ .rel.text.* .rel.gnu.linkonce.t.*}) }${RO_REGION}
1.19168 -+ .rela.text ${RELOCATING-0} : { *(.rela.text${RELOCATING+ .rela.text.* .rela.gnu.linkonce.t.*}) }${RO_REGION}
1.19169 -+ .rel.fini ${RELOCATING-0} : { *(.rel.fini) }${RO_REGION}
1.19170 -+ .rela.fini ${RELOCATING-0} : { *(.rela.fini) }${RO_REGION}
1.19171 -+ .rel.rodata ${RELOCATING-0} : { *(.rel.rodata${RELOCATING+ .rel.rodata.* .rel.gnu.linkonce.r.*}) }${RO_REGION}
1.19172 -+ .rela.rodata ${RELOCATING-0} : { *(.rela.rodata${RELOCATING+ .rela.rodata.* .rela.gnu.linkonce.r.*}) }${RO_REGION}
1.19173 -+ ${OTHER_READONLY_RELOC_SECTIONS}
1.19174 -+ .rel.data.rel.ro ${RELOCATING-0} : { *(.rel.data.rel.ro${RELOCATING+*}) }${RO_REGION}
1.19175 -+ .rela.data.rel.ro ${RELOCATING-0} : { *(.rel.data.rel.ro${RELOCATING+*}) }${RO_REGION}
1.19176 -+ .rel.data ${RELOCATING-0} : { *(.rel.data${RELOCATING+ .rel.data.* .rel.gnu.linkonce.d.*}) }${RO_REGION}
1.19177 -+ .rela.data ${RELOCATING-0} : { *(.rela.data${RELOCATING+ .rela.data.* .rela.gnu.linkonce.d.*}) }${RO_REGION}
1.19178 -+ .rel.tdata ${RELOCATING-0} : { *(.rel.tdata${RELOCATING+ .rel.tdata.* .rel.gnu.linkonce.td.*}) }${RO_REGION}
1.19179 -+ .rela.tdata ${RELOCATING-0} : { *(.rela.tdata${RELOCATING+ .rela.tdata.* .rela.gnu.linkonce.td.*}) }${RO_REGION}
1.19180 -+ .rel.tbss ${RELOCATING-0} : { *(.rel.tbss${RELOCATING+ .rel.tbss.* .rel.gnu.linkonce.tb.*}) }${RO_REGION}
1.19181 -+ .rela.tbss ${RELOCATING-0} : { *(.rela.tbss${RELOCATING+ .rela.tbss.* .rela.gnu.linkonce.tb.*}) }${RO_REGION}
1.19182 -+ .rel.ctors ${RELOCATING-0} : { *(.rel.ctors) }${RO_REGION}
1.19183 -+ .rela.ctors ${RELOCATING-0} : { *(.rela.ctors) }${RO_REGION}
1.19184 -+ .rel.dtors ${RELOCATING-0} : { *(.rel.dtors) }${RO_REGION}
1.19185 -+ .rela.dtors ${RELOCATING-0} : { *(.rela.dtors) }${RO_REGION}
1.19186 -+ .rel.got ${RELOCATING-0} : { *(.rel.got) }${RO_REGION}
1.19187 -+ .rela.got ${RELOCATING-0} : { *(.rela.got) }${RO_REGION}
1.19188 -+ ${OTHER_GOT_RELOC_SECTIONS}
1.19189 -+ ${REL_SDATA}
1.19190 -+ ${REL_SBSS}
1.19191 -+ ${REL_SDATA2}
1.19192 -+ ${REL_SBSS2}
1.19193 -+ .rel.bss ${RELOCATING-0} : { *(.rel.bss${RELOCATING+ .rel.bss.* .rel.gnu.linkonce.b.*}) }${RO_REGION}
1.19194 -+ .rela.bss ${RELOCATING-0} : { *(.rela.bss${RELOCATING+ .rela.bss.* .rela.gnu.linkonce.b.*}) }${RO_REGION}
1.19195 -+EOF
1.19196 -+if [ -n "$COMBRELOC" ]; then
1.19197 -+cat <<EOF
1.19198 -+ .rel.dyn ${RELOCATING-0} :
1.19199 -+ {
1.19200 -+EOF
1.19201 -+sed -e '/^[ ]*[{}][ ]*$/d;/:[ ]*$/d;/\.rela\./d;s/^.*: { *\(.*\)}$/ \1/' $COMBRELOC
1.19202 -+cat <<EOF
1.19203 -+ }${RO_REGION}
1.19204 -+ .rela.dyn ${RELOCATING-0} :
1.19205 -+ {
1.19206 -+EOF
1.19207 -+sed -e '/^[ ]*[{}][ ]*$/d;/:[ ]*$/d;/\.rel\./d;s/^.*: { *\(.*\)}/ \1/' $COMBRELOC
1.19208 -+cat <<EOF
1.19209 -+ }${RO_REGION}
1.19210 -+EOF
1.19211 -+fi
1.19212 -+cat <<EOF
1.19213 -+ .rel.plt ${RELOCATING-0} : { *(.rel.plt) }${RO_REGION}
1.19214 -+ .rela.plt ${RELOCATING-0} : { *(.rela.plt) }${RO_REGION}
1.19215 -+ ${OTHER_PLT_RELOC_SECTIONS}
1.19216 -+
1.19217 -+ .init ${RELOCATING-0} :
1.19218 -+ {
1.19219 -+ ${RELOCATING+${INIT_START}}
1.19220 -+ KEEP (*(.init))
1.19221 -+ ${RELOCATING+${INIT_END}}
1.19222 -+ }${RO_REGION} =${NOP-0}
1.19223 -+
1.19224 -+ ${DATA_PLT-${BSS_PLT-${PLT}${RO_REGION}}}
1.19225 -+ .text ${RELOCATING-0} :
1.19226 -+ {
1.19227 -+ ${RELOCATING+${TEXT_START_SYMBOLS}}
1.19228 -+ *(.text .stub${RELOCATING+ .text.* .gnu.linkonce.t.*})
1.19229 -+ KEEP (*(.text.*personality*))
1.19230 -+ /* .gnu.warning sections are handled specially by elf32.em. */
1.19231 -+ *(.gnu.warning)
1.19232 -+ ${RELOCATING+${OTHER_TEXT_SECTIONS}}
1.19233 -+ }${RO_REGION} =${NOP-0}
1.19234 -+ .fini ${RELOCATING-0} :
1.19235 -+ {
1.19236 -+ ${RELOCATING+${FINI_START}}
1.19237 -+ KEEP (*(.fini))
1.19238 -+ ${RELOCATING+${FINI_END}}
1.19239 -+ }${RO_REGION} =${NOP-0}
1.19240 -+ ${RELOCATING+PROVIDE (__etext = .);}
1.19241 -+ ${RELOCATING+PROVIDE (_etext = .);}
1.19242 -+ ${RELOCATING+PROVIDE (etext = .);}
1.19243 -+ ${WRITABLE_RODATA-${RODATA}${RO_REGION}}
1.19244 -+ .rodata1 ${RELOCATING-0} : { *(.rodata1) }${RO_REGION}
1.19245 -+ ${CREATE_SHLIB-${SDATA2}}
1.19246 -+ ${CREATE_SHLIB-${SBSS2}}
1.19247 -+ ${OTHER_READONLY_SECTIONS}
1.19248 -+ .eh_frame_hdr : { *(.eh_frame_hdr) }${RO_REGION}
1.19249 -+ .eh_frame ${RELOCATING-0} : ONLY_IF_RO { KEEP (*(.eh_frame)) }${RO_REGION}
1.19250 -+ .gcc_except_table ${RELOCATING-0} : ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }${RO_REGION}
1.19251 -+
1.19252 -+ ${RELOCATING+${DALIGN}}
1.19253 -+ ${RELOCATING+PROVIDE (_data = ORIGIN(${RW_VMA_REGION}));}
1.19254 -+ . = ORIGIN(${RW_VMA_REGION});
1.19255 -+ /* Exception handling */
1.19256 -+ .eh_frame ${RELOCATING-0} : ONLY_IF_RW { KEEP (*(.eh_frame)) }${RW_REGION}
1.19257 -+ .gcc_except_table ${RELOCATING-0} : ONLY_IF_RW { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }${RW_REGION}
1.19258 -+
1.19259 -+ /* Thread Local Storage sections */
1.19260 -+ .tdata ${RELOCATING-0} : { *(.tdata${RELOCATING+ .tdata.* .gnu.linkonce.td.*}) }${RW_REGION}
1.19261 -+ .tbss ${RELOCATING-0} : { *(.tbss${RELOCATING+ .tbss.* .gnu.linkonce.tb.*})${RELOCATING+ *(.tcommon)} }${RW_REGION}
1.19262 -+
1.19263 -+ /* Ensure the __preinit_array_start label is properly aligned. We
1.19264 -+ could instead move the label definition inside the section, but
1.19265 -+ the linker would then create the section even if it turns out to
1.19266 -+ be empty, which isn't pretty. */
1.19267 -+ ${RELOCATING+${CREATE_SHLIB-PROVIDE (__preinit_array_start = ALIGN(${ALIGNMENT}));}}
1.19268 -+ .preinit_array ${RELOCATING-0} : { KEEP (*(.preinit_array)) }${RW_REGION}
1.19269 -+ ${RELOCATING+${CREATE_SHLIB-PROVIDE (__preinit_array_end = .);}}
1.19270 -+
1.19271 -+ ${RELOCATING+${CREATE_SHLIB-PROVIDE (__init_array_start = .);}}
1.19272 -+ .init_array ${RELOCATING-0} : { KEEP (*(.init_array)) }${RW_REGION}
1.19273 -+ ${RELOCATING+${CREATE_SHLIB-PROVIDE (__init_array_end = .);}}
1.19274 -+
1.19275 -+ ${RELOCATING+${CREATE_SHLIB-PROVIDE (__fini_array_start = .);}}
1.19276 -+ .fini_array ${RELOCATING-0} : { KEEP (*(.fini_array)) }${RW_REGION}
1.19277 -+ ${RELOCATING+${CREATE_SHLIB-PROVIDE (__fini_array_end = .);}}
1.19278 -+
1.19279 -+ ${SMALL_DATA_CTOR-${RELOCATING+${CTOR}${RW_REGION}}}
1.19280 -+ ${SMALL_DATA_DTOR-${RELOCATING+${DTOR}${RW_REGION}}}
1.19281 -+ .jcr ${RELOCATING-0} : { KEEP (*(.jcr)) }${RW_REGION}
1.19282 -+
1.19283 -+ ${RELOCATING+${DATARELRO}}
1.19284 -+ ${OTHER_RELRO_SECTIONS}
1.19285 -+ ${TEXT_DYNAMIC-${DYNAMIC}${RW_REGION}}
1.19286 -+ ${NO_SMALL_DATA+${RELRO_NOW+${GOT}${RW_REGION}}}
1.19287 -+ ${NO_SMALL_DATA+${RELRO_NOW-${SEPARATE_GOTPLT+${GOT}${RW_REGION}}}}
1.19288 -+ ${NO_SMALL_DATA+${RELRO_NOW-${SEPARATE_GOTPLT+${GOTPLT}${RW_REGION}}}}
1.19289 -+ ${RELOCATING+${DATA_SEGMENT_RELRO_END}}
1.19290 -+ ${NO_SMALL_DATA+${RELRO_NOW-${SEPARATE_GOTPLT-${GOT}${RW_REGION}}}}
1.19291 -+
1.19292 -+ ${DATA_PLT+${PLT_BEFORE_GOT-${PLT}${RW_REGION}}}
1.19293 -+
1.19294 -+ .data ${RELOCATING-0} :
1.19295 -+ {
1.19296 -+ ${RELOCATING+${DATA_START_SYMBOLS}}
1.19297 -+ *(.data${RELOCATING+ .data.* .gnu.linkonce.d.*})
1.19298 -+ KEEP (*(.gnu.linkonce.d.*personality*))
1.19299 -+ ${CONSTRUCTING+SORT(CONSTRUCTORS)}
1.19300 -+ }${RW_REGION}
1.19301 -+ .data1 ${RELOCATING-0} : { *(.data1) }${RW_REGION}
1.19302 -+ ${WRITABLE_RODATA+${RODATA}${RW_REGION}}
1.19303 -+ ${OTHER_READWRITE_SECTIONS}
1.19304 -+ ${SMALL_DATA_CTOR+${RELOCATING+${CTOR}${RW_REGION}}}
1.19305 -+ ${SMALL_DATA_DTOR+${RELOCATING+${DTOR}${RW_REGION}}}
1.19306 -+ ${DATA_PLT+${PLT_BEFORE_GOT+${PLT}${RW_REGION}}}
1.19307 -+ ${RELOCATING+${OTHER_GOT_SYMBOLS}}
1.19308 -+ ${NO_SMALL_DATA-${GOT}${RW_REGION}}
1.19309 -+ ${OTHER_GOT_SECTIONS}
1.19310 -+ ${SDATA}
1.19311 -+ ${OTHER_SDATA_SECTIONS}
1.19312 -+ ${RELOCATING+${BALIGN}}
1.19313 -+ ${RELOCATING+_edata = .;}
1.19314 -+ ${RELOCATING+PROVIDE (edata = .);}
1.19315 -+ ${RELOCATING+__bss_start = .;}
1.19316 -+ ${RELOCATING+${OTHER_BSS_SYMBOLS}}
1.19317 -+ ${SBSS}
1.19318 -+ ${BSS_PLT+${PLT}${RW_REGION}}
1.19319 -+ .bss ${RELOCATING-0} :
1.19320 -+ {
1.19321 -+ *(.dynbss)
1.19322 -+ *(.bss${RELOCATING+ .bss.* .gnu.linkonce.b.*})
1.19323 -+ *(COMMON)
1.19324 -+ /* Align here to ensure that the .bss section occupies space up to
1.19325 -+ _end. Align after .bss to ensure correct alignment even if the
1.19326 -+ .bss section disappears because there are no input sections. */
1.19327 -+ ${RELOCATING+. = ALIGN(${BSS_ALIGNMENT});}
1.19328 -+ }${RW_REGION}
1.19329 -+ ${OTHER_BSS_SECTIONS}
1.19330 -+ ${RELOCATING+. = ALIGN(${BSS_ALIGNMENT});}
1.19331 -+ ${RELOCATING+_end = .;}
1.19332 -+ ${RELOCATING+${OTHER_BSS_END_SYMBOLS}}
1.19333 -+ ${RELOCATING+PROVIDE (end = .);}
1.19334 -+ ${RELOCATING+${DATA_SEGMENT_END}}
1.19335 -+
1.19336 -+ /* Stabs debugging sections. */
1.19337 -+ .stab 0 : { *(.stab) }
1.19338 -+ .stabstr 0 : { *(.stabstr) }
1.19339 -+ .stab.excl 0 : { *(.stab.excl) }
1.19340 -+ .stab.exclstr 0 : { *(.stab.exclstr) }
1.19341 -+ .stab.index 0 : { *(.stab.index) }
1.19342 -+ .stab.indexstr 0 : { *(.stab.indexstr) }
1.19343 -+
1.19344 -+ .comment 0 : { *(.comment) }
1.19345 -+
1.19346 -+ /* DWARF debug sections.
1.19347 -+ Symbols in the DWARF debugging sections are relative to the beginning
1.19348 -+ of the section so we begin them at 0. */
1.19349 -+
1.19350 -+ /* DWARF 1 */
1.19351 -+ .debug 0 : { *(.debug) }
1.19352 -+ .line 0 : { *(.line) }
1.19353 -+
1.19354 -+ /* GNU DWARF 1 extensions */
1.19355 -+ .debug_srcinfo 0 : { *(.debug_srcinfo) }
1.19356 -+ .debug_sfnames 0 : { *(.debug_sfnames) }
1.19357 -+
1.19358 -+ /* DWARF 1.1 and DWARF 2 */
1.19359 -+ .debug_aranges 0 : { *(.debug_aranges) }
1.19360 -+ .debug_pubnames 0 : { *(.debug_pubnames) }
1.19361 -+
1.19362 -+ /* DWARF 2 */
1.19363 -+ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
1.19364 -+ .debug_abbrev 0 : { *(.debug_abbrev) }
1.19365 -+ .debug_line 0 : { *(.debug_line) }
1.19366 -+ .debug_frame 0 : { *(.debug_frame) }
1.19367 -+ .debug_str 0 : { *(.debug_str) }
1.19368 -+ .debug_loc 0 : { *(.debug_loc) }
1.19369 -+ .debug_macinfo 0 : { *(.debug_macinfo) }
1.19370 -+
1.19371 -+ /* SGI/MIPS DWARF 2 extensions */
1.19372 -+ .debug_weaknames 0 : { *(.debug_weaknames) }
1.19373 -+ .debug_funcnames 0 : { *(.debug_funcnames) }
1.19374 -+ .debug_typenames 0 : { *(.debug_typenames) }
1.19375 -+ .debug_varnames 0 : { *(.debug_varnames) }
1.19376 -+
1.19377 -+ ${STACK_ADDR+${STACK}}
1.19378 -+ ${OTHER_SECTIONS}
1.19379 -+ ${RELOCATING+${OTHER_END_SYMBOLS}}
1.19380 -+ ${RELOCATING+${STACKNOTE}}
1.19381 -+}
1.19382 -+EOF
1.19383 ---- /dev/null
1.19384 -+++ b/ld/testsuite/ld-avr32/avr32.exp
1.19385 -@@ -0,0 +1,25 @@
1.19386 -+# Expect script for AVR32 ELF linker tests.
1.19387 -+# Copyright 2004-2006 Atmel Corporation.
1.19388 -+#
1.19389 -+# This file is free software; you can redistribute it and/or modify
1.19390 -+# it under the terms of the GNU General Public License as published by
1.19391 -+# the Free Software Foundation; either version 2 of the License, or
1.19392 -+# (at your option) any later version.
1.19393 -+#
1.19394 -+# This program is distributed in the hope that it will be useful,
1.19395 -+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1.19396 -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1.19397 -+# GNU General Public License for more details.
1.19398 -+#
1.19399 -+# You should have received a copy of the GNU General Public License
1.19400 -+# along with this program; if not, write to the Free Software
1.19401 -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
1.19402 -+#
1.19403 -+# Written by Haavard Skinnemoen (hskinnemoen@atmel.com)
1.19404 -+#
1.19405 -+
1.19406 -+if ![istarget avr32-*-*] {
1.19407 -+ return
1.19408 -+}
1.19409 -+
1.19410 -+run_dump_test "pcrel"
1.19411 ---- /dev/null
1.19412 -+++ b/ld/testsuite/ld-avr32/pcrel.d
1.19413 -@@ -0,0 +1,74 @@
1.19414 -+#name: AVR32 ELF PC-relative external relocs
1.19415 -+#source: symbols.s
1.19416 -+#source: ../../../gas/testsuite/gas/avr32/pcrel.s
1.19417 -+#ld: -T $srcdir/$subdir/pcrel.ld
1.19418 -+#objdump: -d
1.19419 -+
1.19420 -+.*: file format elf.*avr32.*
1.19421 -+
1.19422 -+Disassembly of section .text:
1.19423 -+
1.19424 -+a0000000 <_start>:
1.19425 -+a0000000: d7 03 nop
1.19426 -+a0000002: d7 03 nop
1.19427 -+
1.19428 -+a0000004 <test_rjmp>:
1.19429 -+a0000004: d7 03 nop
1.19430 -+a0000006: c0 28 rjmp a000000a <test_rjmp\+0x6>
1.19431 -+a0000008: d7 03 nop
1.19432 -+a000000a: e0 8f 01 fb bral a0000400 <extsym10>
1.19433 -+
1.19434 -+a000000e <test_rcall>:
1.19435 -+a000000e: d7 03 nop
1.19436 -+a0000010 <test_rcall2>:
1.19437 -+a0000010: c0 2c rcall a0000014 <test_rcall2\+0x4>
1.19438 -+a0000012: d7 03 nop
1.19439 -+a0000014: ee b0 ff f6 rcall a0200000 <extsym21>
1.19440 -+
1.19441 -+a0000018 <test_branch>:
1.19442 -+a0000018: c0 31 brne a000001e <test_branch\+0x6>
1.19443 -+a000001a: fe 9f ff ff bral a0000018 <test_branch>
1.19444 -+a000001e: ee 90 ff f1 breq a0200000 <extsym21>
1.19445 -+
1.19446 -+a0000022 <test_lddpc>:
1.19447 -+a0000022: 48 30 lddpc r0,a000002c <sym1>
1.19448 -+a0000024: 48 20 lddpc r0,a000002c <sym1>
1.19449 -+a0000026: fe f0 7f da ld.w r0,pc\[32730\]
1.19450 -+ ...
1.19451 -+
1.19452 -+a000002c <sym1>:
1.19453 -+a000002c: d7 03 nop
1.19454 -+a000002e: d7 03 nop
1.19455 -+
1.19456 -+a0000030 <test_local>:
1.19457 -+a0000030: 48 20 lddpc r0,a0000038 <test_local\+0x8>
1.19458 -+a0000032: 48 30 lddpc r0,a000003c <test_local\+0xc>
1.19459 -+a0000034: 48 20 lddpc r0,a000003c <test_local\+0xc>
1.19460 -+a0000036: 00 00 add r0,r0
1.19461 -+a0000038: d7 03 nop
1.19462 -+a000003a: d7 03 nop
1.19463 -+a000003c: d7 03 nop
1.19464 -+a000003e: d7 03 nop
1.19465 -+
1.19466 -+Disassembly of section \.text\.init:
1.19467 -+a0000040 <test_inter_section>:
1.19468 -+a0000040: fe b0 ff e7 rcall a000000e <test_rcall>
1.19469 -+a0000044: d7 03 nop
1.19470 -+a0000046: fe b0 ff e4 rcall a000000e <test_rcall>
1.19471 -+a000004a: fe b0 ff e3 rcall a0000010 <test_rcall2>
1.19472 -+a000004e: d7 03 nop
1.19473 -+a0000050: fe b0 ff e0 rcall a0000010 <test_rcall2>
1.19474 -+
1.19475 -+Disassembly of section \.text\.pcrel10:
1.19476 -+
1.19477 -+a0000400 <extsym10>:
1.19478 -+a0000400: d7 03 nop
1.19479 -+
1.19480 -+Disassembly of section \.text\.pcrel16:
1.19481 -+
1.19482 -+a0008000 <extsym16>:
1.19483 -+a0008000: d7 03 nop
1.19484 -+
1.19485 -+Disassembly of section \.text\.pcrel21:
1.19486 -+a0200000 <extsym21>:
1.19487 -+a0200000: d7 03 nop
1.19488 ---- /dev/null
1.19489 -+++ b/ld/testsuite/ld-avr32/pcrel.ld
1.19490 -@@ -0,0 +1,23 @@
1.19491 -+ENTRY(_start)
1.19492 -+SECTIONS
1.19493 -+{
1.19494 -+ .text 0xa0000000:
1.19495 -+ {
1.19496 -+ *(.text)
1.19497 -+ }
1.19498 -+
1.19499 -+ .text.pcrel10 0xa0000400:
1.19500 -+ {
1.19501 -+ *(.text.pcrel10)
1.19502 -+ }
1.19503 -+
1.19504 -+ .text.pcrel16 0xa0008000:
1.19505 -+ {
1.19506 -+ *(.text.pcrel16)
1.19507 -+ }
1.19508 -+
1.19509 -+ .text.pcrel21 0xa0200000:
1.19510 -+ {
1.19511 -+ *(.text.pcrel21)
1.19512 -+ }
1.19513 -+}
1.19514 ---- /dev/null
1.19515 -+++ b/ld/testsuite/ld-avr32/symbols.s
1.19516 -@@ -0,0 +1,20 @@
1.19517 -+ .text
1.19518 -+ .global _start
1.19519 -+_start:
1.19520 -+ nop
1.19521 -+ nop
1.19522 -+
1.19523 -+ .section .text.pcrel10,"ax"
1.19524 -+ .global extsym10
1.19525 -+extsym10:
1.19526 -+ nop
1.19527 -+
1.19528 -+ .section .text.pcrel16,"ax"
1.19529 -+ .global extsym16
1.19530 -+extsym16:
1.19531 -+ nop
1.19532 -+
1.19533 -+ .section .text.pcrel21,"ax"
1.19534 -+ .global extsym21
1.19535 -+extsym21:
1.19536 -+ nop
1.19537 ---- /dev/null
1.19538 -+++ b/opcodes/avr32-asm.c
1.19539 -@@ -0,0 +1,264 @@
1.19540 -+/* Assembler interface for AVR32.
1.19541 -+ Copyright 2005, 2006 Atmel Corporation.
1.19542 -+
1.19543 -+ Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
1.19544 -+
1.19545 -+ This file is part of libopcodes.
1.19546 -+
1.19547 -+ This program is free software; you can redistribute it and/or
1.19548 -+ modify it under the terms of the GNU General Public License as
1.19549 -+ published by the Free Software Foundation; either version 2 of the
1.19550 -+ License, or (at your option) any later version.
1.19551 -+
1.19552 -+ This program is distributed in the hope that it will be useful, but
1.19553 -+ WITHOUT ANY WARRANTY; without even the implied warranty of
1.19554 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.19555 -+ General Public License for more details.
1.19556 -+
1.19557 -+ You should have received a copy of the GNU General Public License
1.19558 -+ along with this program; if not, write to the Free Software
1.19559 -+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1.19560 -+ 02111-1307, USA. */
1.19561 -+
1.19562 -+#include <string.h>
1.19563 -+
1.19564 -+#include "avr32-opc.h"
1.19565 -+#include "avr32-asm.h"
1.19566 -+
1.19567 -+/* Structure for a register hash table entry. */
1.19568 -+struct reg_entry
1.19569 -+{
1.19570 -+ const char *name;
1.19571 -+ int number;
1.19572 -+};
1.19573 -+
1.19574 -+/* Integer Registers. */
1.19575 -+static const struct reg_entry reg_table[] =
1.19576 -+ {
1.19577 -+ /* Primary names (used by the disassembler) */
1.19578 -+ { "r0", 0 }, { "r1", 1 }, { "r2", 2 }, { "r3", 3 },
1.19579 -+ { "r4", 4 }, { "r5", 5 }, { "r6", 6 }, { "r7", 7 },
1.19580 -+ { "r8", 8 }, { "r9", 9 }, { "r10", 10 }, { "r11", 11 },
1.19581 -+ { "r12", 12 }, { "sp", 13 }, { "lr", 14 }, { "pc", 15 },
1.19582 -+ /* Alternatives to sp, lr and pc. */
1.19583 -+ { "r13", 13 }, { "r14", 14 }, { "r15", 15 },
1.19584 -+ };
1.19585 -+#define AVR32_NR_INTREGS (sizeof(reg_table)/sizeof(reg_table[0]))
1.19586 -+
1.19587 -+/* Coprocessor Registers. */
1.19588 -+static const struct reg_entry cr_table[] =
1.19589 -+ {
1.19590 -+ { "cr0", 0 }, { "cr1", 1 }, { "cr2", 2 }, { "cr3", 3 },
1.19591 -+ { "cr4", 4 }, { "cr5", 5 }, { "cr6", 6 }, { "cr7", 7 },
1.19592 -+ { "cr8", 8 }, { "cr9", 9 }, { "cr10", 10 }, { "cr11", 11 },
1.19593 -+ { "cr12", 12 }, { "cr13", 13 }, { "cr14", 14 }, { "cr15", 15 },
1.19594 -+ };
1.19595 -+#define AVR32_NR_CPREGS (sizeof(cr_table)/sizeof(cr_table[0]))
1.19596 -+
1.19597 -+/* Floating-point Registers. */
1.19598 -+static const struct reg_entry fr_table[] =
1.19599 -+ {
1.19600 -+ { "fr0", 0 }, { "fr1", 1 }, { "fr2", 2 }, { "fr3", 3 },
1.19601 -+ { "fr4", 4 }, { "fr5", 5 }, { "fr6", 6 }, { "fr7", 7 },
1.19602 -+ { "fr8", 8 }, { "fr9", 9 }, { "fr10", 10 }, { "fr11", 11 },
1.19603 -+ { "fr12", 12 }, { "fr13", 13 }, { "fr14", 14 }, { "fr15", 15 },
1.19604 -+ };
1.19605 -+#define AVR32_NR_FPREGS (sizeof(fr_table)/sizeof(fr_table[0]))
1.19606 -+
1.19607 -+/* PiCo Registers. */
1.19608 -+static const struct reg_entry pico_table[] =
1.19609 -+ {
1.19610 -+ { "inpix2", 0 }, { "inpix1", 1 }, { "inpix0", 2 },
1.19611 -+ { "outpix2", 3 }, { "outpix1", 4 }, { "outpix0", 5 },
1.19612 -+ { "coeff0_a", 6 }, { "coeff0_b", 7 }, { "coeff1_a", 8 },
1.19613 -+ { "coeff1_b", 9 }, { "coeff2_a", 10 }, { "coeff2_b", 11 },
1.19614 -+ { "vmu0_out", 12 }, { "vmu1_out", 13 }, { "vmu2_out", 14 },
1.19615 -+ { "config", 15 },
1.19616 -+ };
1.19617 -+#define AVR32_NR_PICOREGS (sizeof(pico_table)/sizeof(pico_table[0]))
1.19618 -+
1.19619 -+int
1.19620 -+avr32_parse_intreg(const char *str)
1.19621 -+{
1.19622 -+ unsigned int i;
1.19623 -+
1.19624 -+ for (i = 0; i < AVR32_NR_INTREGS; i++)
1.19625 -+ {
1.19626 -+ if (strcasecmp(reg_table[i].name, str) == 0)
1.19627 -+ return reg_table[i].number;
1.19628 -+ }
1.19629 -+
1.19630 -+ return -1;
1.19631 -+}
1.19632 -+
1.19633 -+int
1.19634 -+avr32_parse_cpreg(const char *str)
1.19635 -+{
1.19636 -+ unsigned int i;
1.19637 -+
1.19638 -+ for (i = 0; i < AVR32_NR_CPREGS; i++)
1.19639 -+ {
1.19640 -+ if (strcasecmp(cr_table[i].name, str) == 0)
1.19641 -+ return cr_table[i].number;
1.19642 -+ }
1.19643 -+
1.19644 -+ return -1;
1.19645 -+}
1.19646 -+
1.19647 -+int avr32_parse_fpreg(const char *str)
1.19648 -+{
1.19649 -+ unsigned int i;
1.19650 -+
1.19651 -+ for (i = 0; i < AVR32_NR_FPREGS; i++)
1.19652 -+ {
1.19653 -+ if (strcasecmp(fr_table[i].name, str) == 0)
1.19654 -+ return fr_table[i].number;
1.19655 -+ }
1.19656 -+
1.19657 -+ return -1;
1.19658 -+}
1.19659 -+
1.19660 -+int avr32_parse_picoreg(const char *str)
1.19661 -+{
1.19662 -+ unsigned int i;
1.19663 -+
1.19664 -+ for (i = 0; i < AVR32_NR_PICOREGS; i++)
1.19665 -+ {
1.19666 -+ if (strcasecmp(pico_table[i].name, str) == 0)
1.19667 -+ return pico_table[i].number;
1.19668 -+ }
1.19669 -+
1.19670 -+ return -1;
1.19671 -+}
1.19672 -+
1.19673 -+static unsigned long
1.19674 -+parse_reglist(char *str, char **endptr, int (*parse_reg)(const char *))
1.19675 -+{
1.19676 -+ int reg_from, reg_to;
1.19677 -+ unsigned long result = 0;
1.19678 -+ char *p1, *p2, c;
1.19679 -+
1.19680 -+ while (*str)
1.19681 -+ {
1.19682 -+ for (p1 = str; *p1; p1++)
1.19683 -+ if (*p1 == ',' || *p1 == '-')
1.19684 -+ break;
1.19685 -+
1.19686 -+ c = *p1, *p1 = 0;
1.19687 -+ reg_from = parse_reg(str);
1.19688 -+ *p1 = c;
1.19689 -+
1.19690 -+ if (reg_from < 0)
1.19691 -+ break;
1.19692 -+
1.19693 -+ if (*p1 == '-')
1.19694 -+ {
1.19695 -+ for (p2 = ++p1; *p2; p2++)
1.19696 -+ if (*p2 == ',')
1.19697 -+ break;
1.19698 -+
1.19699 -+ c = *p2, *p2 = 0;
1.19700 -+ /* printf("going to parse reg_to from `%s'\n", p1); */
1.19701 -+ reg_to = parse_reg(p1);
1.19702 -+ *p2 = c;
1.19703 -+
1.19704 -+ if (reg_to < 0)
1.19705 -+ break;
1.19706 -+
1.19707 -+ while (reg_from <= reg_to)
1.19708 -+ result |= (1 << reg_from++);
1.19709 -+ p1 = p2;
1.19710 -+ }
1.19711 -+ else
1.19712 -+ result |= (1 << reg_from);
1.19713 -+
1.19714 -+ str = p1;
1.19715 -+ if (*str) ++str;
1.19716 -+ }
1.19717 -+
1.19718 -+ if (endptr)
1.19719 -+ *endptr = str;
1.19720 -+
1.19721 -+ return result;
1.19722 -+}
1.19723 -+
1.19724 -+unsigned long
1.19725 -+avr32_parse_reglist(char *str, char **endptr)
1.19726 -+{
1.19727 -+ return parse_reglist(str, endptr, avr32_parse_intreg);
1.19728 -+}
1.19729 -+
1.19730 -+unsigned long
1.19731 -+avr32_parse_cpreglist(char *str, char **endptr)
1.19732 -+{
1.19733 -+ return parse_reglist(str, endptr, avr32_parse_cpreg);
1.19734 -+}
1.19735 -+
1.19736 -+unsigned long
1.19737 -+avr32_parse_pico_reglist(char *str, char **endptr)
1.19738 -+{
1.19739 -+ return parse_reglist(str, endptr, avr32_parse_picoreg);
1.19740 -+}
1.19741 -+
1.19742 -+int
1.19743 -+avr32_make_regmask8(unsigned long regmask16, unsigned long *regmask8)
1.19744 -+{
1.19745 -+ unsigned long result = 0;
1.19746 -+
1.19747 -+ /* printf("convert regmask16 0x%04lx\n", regmask16); */
1.19748 -+
1.19749 -+ if (regmask16 & 0xf)
1.19750 -+ {
1.19751 -+ if ((regmask16 & 0xf) == 0xf)
1.19752 -+ result |= 1 << 0;
1.19753 -+ else
1.19754 -+ return -1;
1.19755 -+ }
1.19756 -+ if (regmask16 & 0xf0)
1.19757 -+ {
1.19758 -+ if ((regmask16 & 0xf0) == 0xf0)
1.19759 -+ result |= 1 << 1;
1.19760 -+ else
1.19761 -+ return -1;
1.19762 -+ }
1.19763 -+ if (regmask16 & 0x300)
1.19764 -+ {
1.19765 -+ if ((regmask16 & 0x300) == 0x300)
1.19766 -+ result |= 1 << 2;
1.19767 -+ else
1.19768 -+ return -1;
1.19769 -+ }
1.19770 -+ if (regmask16 & (1 << 13))
1.19771 -+ return -1;
1.19772 -+
1.19773 -+ if (regmask16 & (1 << 10))
1.19774 -+ result |= 1 << 3;
1.19775 -+ if (regmask16 & (1 << 11))
1.19776 -+ result |= 1 << 4;
1.19777 -+ if (regmask16 & (1 << 12))
1.19778 -+ result |= 1 << 5;
1.19779 -+ if (regmask16 & (1 << 14))
1.19780 -+ result |= 1 << 6;
1.19781 -+ if (regmask16 & (1 << 15))
1.19782 -+ result |= 1 << 7;
1.19783 -+
1.19784 -+ *regmask8 = result;
1.19785 -+
1.19786 -+ return 0;
1.19787 -+}
1.19788 -+
1.19789 -+#if 0
1.19790 -+struct reg_map
1.19791 -+{
1.19792 -+ const struct reg_entry *names;
1.19793 -+ int nr_regs;
1.19794 -+ struct hash_control *htab;
1.19795 -+ const char *errmsg;
1.19796 -+};
1.19797 -+
1.19798 -+struct reg_map all_reg_maps[] =
1.19799 -+ {
1.19800 -+ { reg_table, AVR32_NR_INTREGS, NULL, N_("integral register expected") },
1.19801 -+ { cr_table, AVR32_NR_CPREGS, NULL, N_("coprocessor register expected") },
1.19802 -+ };
1.19803 -+#endif
1.19804 ---- /dev/null
1.19805 -+++ b/opcodes/avr32-asm.h
1.19806 -@@ -0,0 +1,42 @@
1.19807 -+/* Assembler interface for AVR32.
1.19808 -+ Copyright 2005, 2006 Atmel Corporation.
1.19809 -+
1.19810 -+ Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
1.19811 -+
1.19812 -+ This file is part of libopcodes.
1.19813 -+
1.19814 -+ This program is free software; you can redistribute it and/or
1.19815 -+ modify it under the terms of the GNU General Public License as
1.19816 -+ published by the Free Software Foundation; either version 2 of the
1.19817 -+ License, or (at your option) any later version.
1.19818 -+
1.19819 -+ This program is distributed in the hope that it will be useful, but
1.19820 -+ WITHOUT ANY WARRANTY; without even the implied warranty of
1.19821 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.19822 -+ General Public License for more details.
1.19823 -+
1.19824 -+ You should have received a copy of the GNU General Public License
1.19825 -+ along with this program; if not, write to the Free Software
1.19826 -+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1.19827 -+ 02111-1307, USA. */
1.19828 -+#ifndef __OPCODES_AVR32_ASM_H
1.19829 -+#define __OPCODES_AVR32_ASM_H
1.19830 -+
1.19831 -+extern int
1.19832 -+avr32_parse_intreg(const char *str);
1.19833 -+extern int
1.19834 -+avr32_parse_cpreg(const char *str);
1.19835 -+extern int
1.19836 -+avr32_parse_fpreg(const char *str);
1.19837 -+extern int
1.19838 -+avr32_parse_picoreg(const char *str);
1.19839 -+extern unsigned long
1.19840 -+avr32_parse_reglist(char *str, char **endptr);
1.19841 -+extern unsigned long
1.19842 -+avr32_parse_cpreglist(char *str, char **endptr);
1.19843 -+extern unsigned long
1.19844 -+avr32_parse_pico_reglist(char *str, char **endptr);
1.19845 -+extern int
1.19846 -+avr32_make_regmask8(unsigned long regmask16, unsigned long *regmask8);
1.19847 -+
1.19848 -+#endif /* __OPCODES_AVR32_ASM_H */
1.19849 ---- /dev/null
1.19850 -+++ b/opcodes/avr32-dis.c
1.19851 -@@ -0,0 +1,891 @@
1.19852 -+/* Print AVR32 instructions for GDB and objdump.
1.19853 -+ Copyright 2005, 2006 Atmel Corporation.
1.19854 -+
1.19855 -+ Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
1.19856 -+
1.19857 -+ This file is part of libopcodes.
1.19858 -+
1.19859 -+ This program is free software; you can redistribute it and/or
1.19860 -+ modify it under the terms of the GNU General Public License as
1.19861 -+ published by the Free Software Foundation; either version 2 of the
1.19862 -+ License, or (at your option) any later version.
1.19863 -+
1.19864 -+ This program is distributed in the hope that it will be useful, but
1.19865 -+ WITHOUT ANY WARRANTY; without even the implied warranty of
1.19866 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.19867 -+ General Public License for more details.
1.19868 -+
1.19869 -+ You should have received a copy of the GNU General Public License
1.19870 -+ along with this program; if not, write to the Free Software
1.19871 -+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1.19872 -+ 02111-1307, USA. */
1.19873 -+
1.19874 -+#include "sysdep.h"
1.19875 -+#include "dis-asm.h"
1.19876 -+#include "avr32-opc.h"
1.19877 -+#include "opintl.h"
1.19878 -+#include "safe-ctype.h"
1.19879 -+
1.19880 -+/* TODO: Share this with -asm */
1.19881 -+
1.19882 -+/* Structure for a register hash table entry. */
1.19883 -+struct reg_entry
1.19884 -+{
1.19885 -+ const char *name;
1.19886 -+ int number;
1.19887 -+};
1.19888 -+
1.19889 -+#ifndef strneq
1.19890 -+#define strneq(a,b,n) (strncmp ((a), (b), (n)) == 0)
1.19891 -+#endif
1.19892 -+
1.19893 -+
1.19894 -+static const struct reg_entry reg_table[] =
1.19895 -+ {
1.19896 -+ /* Primary names (used by the disassembler) */
1.19897 -+ { "r0", 0 }, { "r1", 1 }, { "r2", 2 }, { "r3", 3 },
1.19898 -+ { "r4", 4 }, { "r5", 5 }, { "r6", 6 }, { "r7", 7 },
1.19899 -+ { "r8", 8 }, { "r9", 9 }, { "r10", 10 }, { "r11", 11 },
1.19900 -+ { "r12", 12 }, { "sp", 13 }, { "lr", 14 }, { "pc", 15 },
1.19901 -+ /* Alternatives to sp, lr and pc. */
1.19902 -+ { "r13", 13 }, { "r14", 14 }, { "r15", 15 },
1.19903 -+ };
1.19904 -+#define AVR32_NR_INTREGS (sizeof(reg_table)/sizeof(reg_table[0]))
1.19905 -+
1.19906 -+/* Coprocessor Registers. */
1.19907 -+static const struct reg_entry cr_table[] =
1.19908 -+ {
1.19909 -+ { "cr0", 0 }, { "cr1", 1 }, { "cr2", 2 }, { "cr3", 3 },
1.19910 -+ { "cr4", 4 }, { "cr5", 5 }, { "cr6", 6 }, { "cr7", 7 },
1.19911 -+ { "cr8", 8 }, { "cr9", 9 }, { "cr10", 10 }, { "cr11", 11 },
1.19912 -+ { "cr12", 12 }, { "cr13", 13 }, { "cr14", 14 }, { "cr15", 15 },
1.19913 -+ };
1.19914 -+#define AVR32_NR_CPREGS (sizeof(cr_table)/sizeof(cr_table[0]))
1.19915 -+
1.19916 -+static const char bparts[4] = { 'b', 'l', 'u', 't' };
1.19917 -+static bfd_vma current_pc;
1.19918 -+
1.19919 -+struct avr32_field_value
1.19920 -+{
1.19921 -+ const struct avr32_ifield *ifield;
1.19922 -+ unsigned long value;
1.19923 -+};
1.19924 -+
1.19925 -+struct avr32_operand
1.19926 -+{
1.19927 -+ int id;
1.19928 -+ int is_pcrel;
1.19929 -+ int align_order;
1.19930 -+ int (*print)(struct avr32_operand *op, struct disassemble_info *info,
1.19931 -+ struct avr32_field_value *ifields);
1.19932 -+};
1.19933 -+
1.19934 -+static signed long
1.19935 -+get_signed_value(const struct avr32_field_value *fv)
1.19936 -+{
1.19937 -+ signed long value = fv->value;
1.19938 -+
1.19939 -+ if (fv->value & (1 << (fv->ifield->bitsize - 1)))
1.19940 -+ value |= (~0UL << fv->ifield->bitsize);
1.19941 -+
1.19942 -+ return value;
1.19943 -+}
1.19944 -+
1.19945 -+static void
1.19946 -+print_reglist_range(unsigned int first, unsigned int last,
1.19947 -+ const struct reg_entry *reg_names,
1.19948 -+ int need_comma,
1.19949 -+ struct disassemble_info *info)
1.19950 -+{
1.19951 -+ if (need_comma)
1.19952 -+ info->fprintf_func(info->stream, ",");
1.19953 -+
1.19954 -+ if (first == last)
1.19955 -+ info->fprintf_func(info->stream, "%s",
1.19956 -+ reg_names[first].name);
1.19957 -+ else
1.19958 -+ info->fprintf_func(info->stream, "%s-%s",
1.19959 -+ reg_names[first].name, reg_names[last].name);
1.19960 -+}
1.19961 -+
1.19962 -+static int
1.19963 -+print_intreg(struct avr32_operand *op,
1.19964 -+ struct disassemble_info *info,
1.19965 -+ struct avr32_field_value *ifields)
1.19966 -+{
1.19967 -+ unsigned long regid = ifields[0].value << op->align_order;
1.19968 -+
1.19969 -+ info->fprintf_func(info->stream, "%s",
1.19970 -+ reg_table[regid].name);
1.19971 -+ return 1;
1.19972 -+}
1.19973 -+
1.19974 -+static int
1.19975 -+print_intreg_predec(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.19976 -+ struct disassemble_info *info,
1.19977 -+ struct avr32_field_value *ifields)
1.19978 -+{
1.19979 -+ info->fprintf_func(info->stream, "--%s",
1.19980 -+ reg_table[ifields[0].value].name);
1.19981 -+ return 1;
1.19982 -+}
1.19983 -+
1.19984 -+static int
1.19985 -+print_intreg_postinc(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.19986 -+ struct disassemble_info *info,
1.19987 -+ struct avr32_field_value *ifields)
1.19988 -+{
1.19989 -+ info->fprintf_func(info->stream, "%s++",
1.19990 -+ reg_table[ifields[0].value].name);
1.19991 -+ return 1;
1.19992 -+}
1.19993 -+
1.19994 -+static int
1.19995 -+print_intreg_lsl(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.19996 -+ struct disassemble_info *info,
1.19997 -+ struct avr32_field_value *ifields)
1.19998 -+{
1.19999 -+ const char *rp = reg_table[ifields[0].value].name;
1.20000 -+ unsigned long sa = ifields[1].value;
1.20001 -+
1.20002 -+ if (sa)
1.20003 -+ info->fprintf_func(info->stream, "%s<<0x%lx", rp, sa);
1.20004 -+ else
1.20005 -+ info->fprintf_func(info->stream, "%s", rp);
1.20006 -+
1.20007 -+ return 2;
1.20008 -+}
1.20009 -+
1.20010 -+static int
1.20011 -+print_intreg_lsr(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.20012 -+ struct disassemble_info *info,
1.20013 -+ struct avr32_field_value *ifields)
1.20014 -+{
1.20015 -+ const char *rp = reg_table[ifields[0].value].name;
1.20016 -+ unsigned long sa = ifields[1].value;
1.20017 -+
1.20018 -+ if (sa)
1.20019 -+ info->fprintf_func(info->stream, "%s>>0x%lx", rp, sa);
1.20020 -+ else
1.20021 -+ info->fprintf_func(info->stream, "%s", rp);
1.20022 -+
1.20023 -+ return 2;
1.20024 -+}
1.20025 -+
1.20026 -+static int
1.20027 -+print_intreg_bpart(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.20028 -+ struct disassemble_info *info,
1.20029 -+ struct avr32_field_value *ifields)
1.20030 -+{
1.20031 -+ info->fprintf_func(info->stream, "%s:%c",
1.20032 -+ reg_table[ifields[0].value].name,
1.20033 -+ bparts[ifields[1].value]);
1.20034 -+ return 2;
1.20035 -+}
1.20036 -+
1.20037 -+static int
1.20038 -+print_intreg_hpart(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.20039 -+ struct disassemble_info *info,
1.20040 -+ struct avr32_field_value *ifields)
1.20041 -+{
1.20042 -+ info->fprintf_func(info->stream, "%s:%c",
1.20043 -+ reg_table[ifields[0].value].name,
1.20044 -+ ifields[1].value ? 't' : 'b');
1.20045 -+ return 2;
1.20046 -+}
1.20047 -+
1.20048 -+static int
1.20049 -+print_intreg_sdisp(struct avr32_operand *op,
1.20050 -+ struct disassemble_info *info,
1.20051 -+ struct avr32_field_value *ifields)
1.20052 -+{
1.20053 -+ signed long disp;
1.20054 -+
1.20055 -+ disp = get_signed_value(&ifields[1]) << op->align_order;
1.20056 -+
1.20057 -+ info->fprintf_func(info->stream, "%s[%ld]",
1.20058 -+ reg_table[ifields[0].value].name, disp);
1.20059 -+ return 2;
1.20060 -+}
1.20061 -+
1.20062 -+static int
1.20063 -+print_intreg_udisp(struct avr32_operand *op,
1.20064 -+ struct disassemble_info *info,
1.20065 -+ struct avr32_field_value *ifields)
1.20066 -+{
1.20067 -+ info->fprintf_func(info->stream, "%s[0x%lx]",
1.20068 -+ reg_table[ifields[0].value].name,
1.20069 -+ ifields[1].value << op->align_order);
1.20070 -+ return 2;
1.20071 -+}
1.20072 -+
1.20073 -+static int
1.20074 -+print_intreg_index(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.20075 -+ struct disassemble_info *info,
1.20076 -+ struct avr32_field_value *ifields)
1.20077 -+{
1.20078 -+ const char *rb, *ri;
1.20079 -+ unsigned long sa = ifields[2].value;
1.20080 -+
1.20081 -+ rb = reg_table[ifields[0].value].name;
1.20082 -+ ri = reg_table[ifields[1].value].name;
1.20083 -+
1.20084 -+ if (sa)
1.20085 -+ info->fprintf_func(info->stream, "%s[%s<<0x%lx]", rb, ri, sa);
1.20086 -+ else
1.20087 -+ info->fprintf_func(info->stream, "%s[%s]", rb, ri);
1.20088 -+
1.20089 -+ return 3;
1.20090 -+}
1.20091 -+
1.20092 -+static int
1.20093 -+print_intreg_xindex(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.20094 -+ struct disassemble_info *info,
1.20095 -+ struct avr32_field_value *ifields)
1.20096 -+{
1.20097 -+ info->fprintf_func(info->stream, "%s[%s:%c<<2]",
1.20098 -+ reg_table[ifields[0].value].name,
1.20099 -+ reg_table[ifields[1].value].name,
1.20100 -+ bparts[ifields[2].value]);
1.20101 -+ return 3;
1.20102 -+}
1.20103 -+
1.20104 -+static int
1.20105 -+print_jmplabel(struct avr32_operand *op,
1.20106 -+ struct disassemble_info *info,
1.20107 -+ struct avr32_field_value *ifields)
1.20108 -+{
1.20109 -+ bfd_vma address, offset;
1.20110 -+
1.20111 -+ offset = get_signed_value(ifields) << op->align_order;
1.20112 -+ address = (current_pc & (~0UL << op->align_order)) + offset;
1.20113 -+
1.20114 -+ info->print_address_func(address, info);
1.20115 -+
1.20116 -+ return 1;
1.20117 -+}
1.20118 -+
1.20119 -+static int
1.20120 -+print_pc_disp(struct avr32_operand *op,
1.20121 -+ struct disassemble_info *info,
1.20122 -+ struct avr32_field_value *ifields)
1.20123 -+{
1.20124 -+ bfd_vma address, offset;
1.20125 -+
1.20126 -+ offset = ifields[0].value << op->align_order;
1.20127 -+ address = (current_pc & (~0UL << op->align_order)) + offset;
1.20128 -+
1.20129 -+ info->print_address_func(address, info);
1.20130 -+
1.20131 -+ return 1;
1.20132 -+}
1.20133 -+
1.20134 -+static int
1.20135 -+print_sp(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.20136 -+ struct disassemble_info *info,
1.20137 -+ struct avr32_field_value *ifields ATTRIBUTE_UNUSED)
1.20138 -+{
1.20139 -+ info->fprintf_func(info->stream, "sp");
1.20140 -+ return 1;
1.20141 -+}
1.20142 -+
1.20143 -+static int
1.20144 -+print_sp_disp(struct avr32_operand *op,
1.20145 -+ struct disassemble_info *info,
1.20146 -+ struct avr32_field_value *ifields)
1.20147 -+{
1.20148 -+ info->fprintf_func(info->stream, "sp[0x%lx]",
1.20149 -+ ifields[0].value << op->align_order);
1.20150 -+ return 1;
1.20151 -+}
1.20152 -+
1.20153 -+static int
1.20154 -+print_cpno(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.20155 -+ struct disassemble_info *info,
1.20156 -+ struct avr32_field_value *ifields)
1.20157 -+{
1.20158 -+ info->fprintf_func(info->stream, "cp%lu", ifields[0].value);
1.20159 -+ return 1;
1.20160 -+}
1.20161 -+
1.20162 -+static int
1.20163 -+print_cpreg(struct avr32_operand *op,
1.20164 -+ struct disassemble_info *info,
1.20165 -+ struct avr32_field_value *ifields)
1.20166 -+{
1.20167 -+ info->fprintf_func(info->stream, "cr%lu",
1.20168 -+ ifields[0].value << op->align_order);
1.20169 -+ return 1;
1.20170 -+}
1.20171 -+
1.20172 -+static int
1.20173 -+print_uconst(struct avr32_operand *op,
1.20174 -+ struct disassemble_info *info,
1.20175 -+ struct avr32_field_value *ifields)
1.20176 -+{
1.20177 -+ info->fprintf_func(info->stream, "0x%lx",
1.20178 -+ ifields[0].value << op->align_order);
1.20179 -+ return 1;
1.20180 -+}
1.20181 -+
1.20182 -+static int
1.20183 -+print_sconst(struct avr32_operand *op,
1.20184 -+ struct disassemble_info *info,
1.20185 -+ struct avr32_field_value *ifields)
1.20186 -+{
1.20187 -+ info->fprintf_func(info->stream, "%ld",
1.20188 -+ get_signed_value(ifields) << op->align_order);
1.20189 -+ return 1;
1.20190 -+}
1.20191 -+
1.20192 -+static int
1.20193 -+print_reglist8_head(unsigned long regmask, int *commap,
1.20194 -+ struct disassemble_info *info)
1.20195 -+{
1.20196 -+ int first = -1, last, i = 0;
1.20197 -+ int need_comma = 0;
1.20198 -+
1.20199 -+ while (i < 12)
1.20200 -+ {
1.20201 -+ if (first == -1 && (regmask & 1))
1.20202 -+ {
1.20203 -+ first = i;
1.20204 -+ }
1.20205 -+ else if (first != -1 && !(regmask & 1))
1.20206 -+ {
1.20207 -+ last = i - 1;
1.20208 -+
1.20209 -+ print_reglist_range(first, last, reg_table, need_comma, info);
1.20210 -+ need_comma = 1;
1.20211 -+ first = -1;
1.20212 -+ }
1.20213 -+
1.20214 -+ if (i < 8)
1.20215 -+ i += 4;
1.20216 -+ else if (i < 10)
1.20217 -+ i += 2;
1.20218 -+ else
1.20219 -+ i++;
1.20220 -+ regmask >>= 1;
1.20221 -+ }
1.20222 -+
1.20223 -+ *commap = need_comma;
1.20224 -+ return first;
1.20225 -+}
1.20226 -+
1.20227 -+static void
1.20228 -+print_reglist8_tail(unsigned long regmask, int first, int need_comma,
1.20229 -+ struct disassemble_info *info)
1.20230 -+{
1.20231 -+ int last = 11;
1.20232 -+
1.20233 -+ if (regmask & 0x20)
1.20234 -+ {
1.20235 -+ if (first == -1)
1.20236 -+ first = 12;
1.20237 -+ last = 12;
1.20238 -+ }
1.20239 -+
1.20240 -+ if (first != -1)
1.20241 -+ {
1.20242 -+ print_reglist_range(first, last, reg_table, need_comma, info);
1.20243 -+ need_comma = 1;
1.20244 -+ first = -1;
1.20245 -+ }
1.20246 -+
1.20247 -+ if (regmask & 0x40)
1.20248 -+ {
1.20249 -+ if (first == -1)
1.20250 -+ first = 14;
1.20251 -+ last = 14;
1.20252 -+ }
1.20253 -+
1.20254 -+ if (regmask & 0x80)
1.20255 -+ {
1.20256 -+ if (first == -1)
1.20257 -+ first = 15;
1.20258 -+ last = 15;
1.20259 -+ }
1.20260 -+
1.20261 -+ if (first != -1)
1.20262 -+ print_reglist_range(first, last, reg_table, need_comma, info);
1.20263 -+}
1.20264 -+
1.20265 -+static int
1.20266 -+print_reglist8(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.20267 -+ struct disassemble_info *info,
1.20268 -+ struct avr32_field_value *ifields)
1.20269 -+{
1.20270 -+ unsigned long regmask = ifields[0].value;
1.20271 -+ int first, need_comma;
1.20272 -+
1.20273 -+ first = print_reglist8_head(regmask, &need_comma, info);
1.20274 -+ print_reglist8_tail(regmask, first, need_comma, info);
1.20275 -+
1.20276 -+ return 1;
1.20277 -+}
1.20278 -+
1.20279 -+static int
1.20280 -+print_reglist9(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.20281 -+ struct disassemble_info *info,
1.20282 -+ struct avr32_field_value *ifields)
1.20283 -+{
1.20284 -+ unsigned long regmask = ifields[0].value >> 1;
1.20285 -+ int first, last, need_comma;
1.20286 -+
1.20287 -+ first = print_reglist8_head(regmask, &need_comma, info);
1.20288 -+
1.20289 -+ if ((ifields[0].value & 0x101) == 0x101)
1.20290 -+ {
1.20291 -+ if (first != -1)
1.20292 -+ {
1.20293 -+ last = 11;
1.20294 -+
1.20295 -+ print_reglist_range(first, last, reg_table, need_comma, info);
1.20296 -+ need_comma = 1;
1.20297 -+ first = -1;
1.20298 -+ }
1.20299 -+
1.20300 -+ print_reglist_range(15, 15, reg_table, need_comma, info);
1.20301 -+
1.20302 -+ regmask >>= 5;
1.20303 -+
1.20304 -+ if ((regmask & 3) == 0)
1.20305 -+ info->fprintf_func(info->stream, ",r12=0");
1.20306 -+ else if ((regmask & 3) == 1)
1.20307 -+ info->fprintf_func(info->stream, ",r12=1");
1.20308 -+ else
1.20309 -+ info->fprintf_func(info->stream, ",r12=-1");
1.20310 -+ }
1.20311 -+ else
1.20312 -+ print_reglist8_tail(regmask, first, need_comma, info);
1.20313 -+
1.20314 -+ return 1;
1.20315 -+}
1.20316 -+
1.20317 -+static int
1.20318 -+print_reglist16(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.20319 -+ struct disassemble_info *info,
1.20320 -+ struct avr32_field_value *ifields)
1.20321 -+{
1.20322 -+ unsigned long regmask = ifields[0].value;
1.20323 -+ unsigned int i = 0, first, last;
1.20324 -+ int need_comma = 0;
1.20325 -+
1.20326 -+ while (i < 16)
1.20327 -+ {
1.20328 -+ if (regmask & 1)
1.20329 -+ {
1.20330 -+ first = i;
1.20331 -+ while (i < 16)
1.20332 -+ {
1.20333 -+ i++;
1.20334 -+ regmask >>= 1;
1.20335 -+ if (!(regmask & 1))
1.20336 -+ break;
1.20337 -+ }
1.20338 -+ last = i - 1;
1.20339 -+ print_reglist_range(first, last, reg_table, need_comma, info);
1.20340 -+ need_comma = 1;
1.20341 -+ }
1.20342 -+ else
1.20343 -+ {
1.20344 -+ i++;
1.20345 -+ regmask >>= 1;
1.20346 -+ }
1.20347 -+ }
1.20348 -+
1.20349 -+ return 1;
1.20350 -+}
1.20351 -+
1.20352 -+static int
1.20353 -+print_reglist_ldm(struct avr32_operand *op,
1.20354 -+ struct disassemble_info *info,
1.20355 -+ struct avr32_field_value *ifields)
1.20356 -+{
1.20357 -+ int rp, w_bit;
1.20358 -+ int i, first, last;
1.20359 -+ unsigned long regmask;
1.20360 -+
1.20361 -+ rp = ifields[0].value;
1.20362 -+ w_bit = ifields[1].value;
1.20363 -+ regmask = ifields[2].value;
1.20364 -+
1.20365 -+ if (regmask & (1 << AVR32_REG_PC) && rp == AVR32_REG_PC)
1.20366 -+ {
1.20367 -+ if (w_bit)
1.20368 -+ info->fprintf_func(info->stream, "sp++");
1.20369 -+ else
1.20370 -+ info->fprintf_func(info->stream, "sp");
1.20371 -+
1.20372 -+ for (i = 0; i < 12; )
1.20373 -+ {
1.20374 -+ if (regmask & (1 << i))
1.20375 -+ {
1.20376 -+ first = i;
1.20377 -+ while (i < 12)
1.20378 -+ {
1.20379 -+ i++;
1.20380 -+ if (!(regmask & (1 << i)))
1.20381 -+ break;
1.20382 -+ }
1.20383 -+ last = i - 1;
1.20384 -+ print_reglist_range(first, last, reg_table, 1, info);
1.20385 -+ }
1.20386 -+ else
1.20387 -+ i++;
1.20388 -+ }
1.20389 -+
1.20390 -+ info->fprintf_func(info->stream, ",pc");
1.20391 -+ if (regmask & (1 << AVR32_REG_LR))
1.20392 -+ info->fprintf_func(info->stream, ",r12=-1");
1.20393 -+ else if (regmask & (1 << AVR32_REG_R12))
1.20394 -+ info->fprintf_func(info->stream, ",r12=1");
1.20395 -+ else
1.20396 -+ info->fprintf_func(info->stream, ",r12=0");
1.20397 -+ }
1.20398 -+ else
1.20399 -+ {
1.20400 -+ if (w_bit)
1.20401 -+ info->fprintf_func(info->stream, "%s++,", reg_table[rp].name);
1.20402 -+ else
1.20403 -+ info->fprintf_func(info->stream, "%s,", reg_table[rp].name);
1.20404 -+
1.20405 -+ print_reglist16(op, info, ifields + 2);
1.20406 -+ }
1.20407 -+
1.20408 -+ return 3;
1.20409 -+}
1.20410 -+
1.20411 -+static int
1.20412 -+print_reglist_cp8(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.20413 -+ struct disassemble_info *info,
1.20414 -+ struct avr32_field_value *ifields)
1.20415 -+{
1.20416 -+ unsigned long regmask = ifields[0].value;
1.20417 -+ unsigned int i = 0, first, last, offset = 0;
1.20418 -+ int need_comma = 0;
1.20419 -+
1.20420 -+ if (ifields[1].value)
1.20421 -+ offset = 8;
1.20422 -+
1.20423 -+ while (i < 8)
1.20424 -+ {
1.20425 -+ if (regmask & 1)
1.20426 -+ {
1.20427 -+ first = i;
1.20428 -+ while (i < 8)
1.20429 -+ {
1.20430 -+ i++;
1.20431 -+ regmask >>= 1;
1.20432 -+ if (!(regmask & 1))
1.20433 -+ break;
1.20434 -+ }
1.20435 -+ last = i - 1;
1.20436 -+ print_reglist_range(offset + first, offset + last,
1.20437 -+ cr_table, need_comma, info);
1.20438 -+ need_comma = 1;
1.20439 -+ }
1.20440 -+ else
1.20441 -+ {
1.20442 -+ i++;
1.20443 -+ regmask >>= 1;
1.20444 -+ }
1.20445 -+ }
1.20446 -+
1.20447 -+ return 2;
1.20448 -+}
1.20449 -+
1.20450 -+static int
1.20451 -+print_reglist_cpd8(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.20452 -+ struct disassemble_info *info,
1.20453 -+ struct avr32_field_value *ifields)
1.20454 -+{
1.20455 -+ unsigned long regmask = ifields[0].value;
1.20456 -+ unsigned int i = 0, first, last;
1.20457 -+ int need_comma = 0;
1.20458 -+
1.20459 -+ while (i < 8)
1.20460 -+ {
1.20461 -+ if (regmask & 1)
1.20462 -+ {
1.20463 -+ first = 2 * i;
1.20464 -+ while (i < 8)
1.20465 -+ {
1.20466 -+ i++;
1.20467 -+ regmask >>= 1;
1.20468 -+ if (!(regmask & 1))
1.20469 -+ break;
1.20470 -+ }
1.20471 -+ last = 2 * (i - 1) + 1;
1.20472 -+ print_reglist_range(first, last, cr_table, need_comma, info);
1.20473 -+ need_comma = 1;
1.20474 -+ }
1.20475 -+ else
1.20476 -+ {
1.20477 -+ i++;
1.20478 -+ regmask >>= 1;
1.20479 -+ }
1.20480 -+ }
1.20481 -+
1.20482 -+ return 1;
1.20483 -+}
1.20484 -+
1.20485 -+static int
1.20486 -+print_retval(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.20487 -+ struct disassemble_info *info,
1.20488 -+ struct avr32_field_value *ifields)
1.20489 -+{
1.20490 -+ unsigned long regid = ifields[0].value;
1.20491 -+ const char *retval;
1.20492 -+
1.20493 -+ if (regid < AVR32_REG_SP)
1.20494 -+ retval = reg_table[regid].name;
1.20495 -+ else if (regid == AVR32_REG_SP)
1.20496 -+ retval = "0";
1.20497 -+ else if (regid == AVR32_REG_LR)
1.20498 -+ retval = "-1";
1.20499 -+ else
1.20500 -+ retval = "1";
1.20501 -+
1.20502 -+ info->fprintf_func(info->stream, "%s", retval);
1.20503 -+
1.20504 -+ return 1;
1.20505 -+}
1.20506 -+
1.20507 -+static int
1.20508 -+print_mcall(struct avr32_operand *op,
1.20509 -+ struct disassemble_info *info,
1.20510 -+ struct avr32_field_value *ifields)
1.20511 -+{
1.20512 -+ unsigned long regid = ifields[0].value;
1.20513 -+
1.20514 -+ if (regid == AVR32_REG_PC)
1.20515 -+ print_jmplabel(op, info, ifields + 1);
1.20516 -+ else
1.20517 -+ print_intreg_sdisp(op, info, ifields);
1.20518 -+
1.20519 -+ return 2;
1.20520 -+}
1.20521 -+
1.20522 -+static int
1.20523 -+print_jospinc(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.20524 -+ struct disassemble_info *info,
1.20525 -+ struct avr32_field_value *ifields)
1.20526 -+{
1.20527 -+ signed long value = ifields[0].value;
1.20528 -+
1.20529 -+ if (value >= 4)
1.20530 -+ value -= 8;
1.20531 -+ else
1.20532 -+ value += 1;
1.20533 -+
1.20534 -+ info->fprintf_func(info->stream, "%ld", value);
1.20535 -+
1.20536 -+ return 1;
1.20537 -+}
1.20538 -+
1.20539 -+static int
1.20540 -+print_coh(struct avr32_operand *op ATTRIBUTE_UNUSED,
1.20541 -+ struct disassemble_info *info,
1.20542 -+ struct avr32_field_value *ifields ATTRIBUTE_UNUSED)
1.20543 -+{
1.20544 -+ info->fprintf_func(info->stream, "COH");
1.20545 -+ return 0;
1.20546 -+}
1.20547 -+
1.20548 -+#define OP(name, sgn, pcrel, align, func) \
1.20549 -+ { AVR32_OPERAND_##name, pcrel, align, print_##func }
1.20550 -+
1.20551 -+struct avr32_operand operand[AVR32_NR_OPERANDS] =
1.20552 -+ {
1.20553 -+ OP(INTREG, 0, 0, 0, intreg),
1.20554 -+ OP(INTREG_PREDEC, 0, 0, 0, intreg_predec),
1.20555 -+ OP(INTREG_POSTINC, 0, 0, 0, intreg_postinc),
1.20556 -+ OP(INTREG_LSL, 0, 0, 0, intreg_lsl),
1.20557 -+ OP(INTREG_LSR, 0, 0, 0, intreg_lsr),
1.20558 -+ OP(INTREG_BSEL, 0, 0, 0, intreg_bpart),
1.20559 -+ OP(INTREG_HSEL, 0, 0, 1, intreg_hpart),
1.20560 -+ OP(INTREG_SDISP, 1, 0, 0, intreg_sdisp),
1.20561 -+ OP(INTREG_SDISP_H, 1, 0, 1, intreg_sdisp),
1.20562 -+ OP(INTREG_SDISP_W, 1, 0, 2, intreg_sdisp),
1.20563 -+ OP(INTREG_UDISP, 0, 0, 0, intreg_udisp),
1.20564 -+ OP(INTREG_UDISP_H, 0, 0, 1, intreg_udisp),
1.20565 -+ OP(INTREG_UDISP_W, 0, 0, 2, intreg_udisp),
1.20566 -+ OP(INTREG_INDEX, 0, 0, 0, intreg_index),
1.20567 -+ OP(INTREG_XINDEX, 0, 0, 0, intreg_xindex),
1.20568 -+ OP(DWREG, 0, 0, 1, intreg),
1.20569 -+ OP(PC_UDISP_W, 0, 1, 2, pc_disp),
1.20570 -+ OP(SP, 0, 0, 0, sp),
1.20571 -+ OP(SP_UDISP_W, 0, 0, 2, sp_disp),
1.20572 -+ OP(CPNO, 0, 0, 0, cpno),
1.20573 -+ OP(CPREG, 0, 0, 0, cpreg),
1.20574 -+ OP(CPREG_D, 0, 0, 1, cpreg),
1.20575 -+ OP(UNSIGNED_CONST, 0, 0, 0, uconst),
1.20576 -+ OP(UNSIGNED_CONST_W, 0, 0, 2, uconst),
1.20577 -+ OP(SIGNED_CONST, 1, 0, 0, sconst),
1.20578 -+ OP(SIGNED_CONST_W, 1, 0, 2, sconst),
1.20579 -+ OP(JMPLABEL, 1, 1, 1, jmplabel),
1.20580 -+ OP(UNSIGNED_NUMBER, 0, 0, 0, uconst),
1.20581 -+ OP(UNSIGNED_NUMBER_W, 0, 0, 2, uconst),
1.20582 -+ OP(REGLIST8, 0, 0, 0, reglist8),
1.20583 -+ OP(REGLIST9, 0, 0, 0, reglist9),
1.20584 -+ OP(REGLIST16, 0, 0, 0, reglist16),
1.20585 -+ OP(REGLIST_LDM, 0, 0, 0, reglist_ldm),
1.20586 -+ OP(REGLIST_CP8, 0, 0, 0, reglist_cp8),
1.20587 -+ OP(REGLIST_CPD8, 0, 0, 0, reglist_cpd8),
1.20588 -+ OP(RETVAL, 0, 0, 0, retval),
1.20589 -+ OP(MCALL, 1, 0, 2, mcall),
1.20590 -+ OP(JOSPINC, 0, 0, 0, jospinc),
1.20591 -+ OP(COH, 0, 0, 0, coh),
1.20592 -+ };
1.20593 -+
1.20594 -+static void
1.20595 -+print_opcode(bfd_vma insn_word, const struct avr32_opcode *opc,
1.20596 -+ bfd_vma pc, struct disassemble_info *info)
1.20597 -+{
1.20598 -+ const struct avr32_syntax *syntax = opc->syntax;
1.20599 -+ struct avr32_field_value fields[AVR32_MAX_FIELDS];
1.20600 -+ unsigned int i, next_field = 0, nr_operands;
1.20601 -+
1.20602 -+ for (i = 0; i < opc->nr_fields; i++)
1.20603 -+ {
1.20604 -+ opc->fields[i]->extract(opc->fields[i], &insn_word, &fields[i].value);
1.20605 -+ fields[i].ifield = opc->fields[i];
1.20606 -+ }
1.20607 -+
1.20608 -+ current_pc = pc;
1.20609 -+ info->fprintf_func(info->stream, "%s", syntax->mnemonic->name);
1.20610 -+
1.20611 -+ if (syntax->nr_operands < 0)
1.20612 -+ nr_operands = (unsigned int) -syntax->nr_operands;
1.20613 -+ else
1.20614 -+ nr_operands = (unsigned int) syntax->nr_operands;
1.20615 -+
1.20616 -+ for (i = 0; i < nr_operands; i++)
1.20617 -+ {
1.20618 -+ struct avr32_operand *op = &operand[syntax->operand[i]];
1.20619 -+
1.20620 -+ if (i)
1.20621 -+ info->fprintf_func(info->stream, ",");
1.20622 -+ else
1.20623 -+ info->fprintf_func(info->stream, "\t");
1.20624 -+ next_field += op->print(op, info, &fields[next_field]);
1.20625 -+ }
1.20626 -+}
1.20627 -+
1.20628 -+static const struct avr32_opcode *
1.20629 -+find_opcode(bfd_vma insn_word)
1.20630 -+{
1.20631 -+ int i;
1.20632 -+
1.20633 -+ for (i = 0; i < AVR32_NR_OPCODES; i++)
1.20634 -+ {
1.20635 -+ const struct avr32_opcode *opc = &avr32_opc_table[i];
1.20636 -+
1.20637 -+ if ((insn_word & opc->mask) == opc->value)
1.20638 -+ return opc;
1.20639 -+ }
1.20640 -+
1.20641 -+ return NULL;
1.20642 -+}
1.20643 -+
1.20644 -+static int
1.20645 -+read_insn_word(bfd_vma pc, bfd_vma *valuep,
1.20646 -+ struct disassemble_info *info)
1.20647 -+{
1.20648 -+ bfd_byte b[4];
1.20649 -+ int status;
1.20650 -+
1.20651 -+ status = info->read_memory_func(pc, b, 4, info);
1.20652 -+ if (status)
1.20653 -+ {
1.20654 -+ status = info->read_memory_func(pc, b, 2, info);
1.20655 -+ if (status)
1.20656 -+ {
1.20657 -+ info->memory_error_func(status, pc, info);
1.20658 -+ return -1;
1.20659 -+ }
1.20660 -+ b[3] = b[2] = 0;
1.20661 -+ }
1.20662 -+
1.20663 -+ *valuep = (b[0] << 24) | (b[1] << 16) | (b[2] << 8) | b[3];
1.20664 -+ return 0;
1.20665 -+}
1.20666 -+
1.20667 -+/* Parse an individual disassembler option. */
1.20668 -+
1.20669 -+void
1.20670 -+parse_avr32_disassembler_option (option)
1.20671 -+ char * option;
1.20672 -+{
1.20673 -+ if (option == NULL)
1.20674 -+ return;
1.20675 -+
1.20676 -+ /* XXX - should break 'option' at following delimiter. */
1.20677 -+ fprintf (stderr, _("Unrecognised disassembler option: %s\n"), option);
1.20678 -+
1.20679 -+ return;
1.20680 -+}
1.20681 -+
1.20682 -+/* Parse the string of disassembler options, spliting it at whitespaces
1.20683 -+ or commas. (Whitespace separators supported for backwards compatibility). */
1.20684 -+
1.20685 -+static void
1.20686 -+parse_disassembler_options (char *options)
1.20687 -+{
1.20688 -+ if (options == NULL)
1.20689 -+ return;
1.20690 -+
1.20691 -+ while (*options)
1.20692 -+ {
1.20693 -+ parse_avr32_disassembler_option (options);
1.20694 -+
1.20695 -+ /* Skip forward to next seperator. */
1.20696 -+ while ((*options) && (! ISSPACE (*options)) && (*options != ','))
1.20697 -+ ++ options;
1.20698 -+ /* Skip forward past seperators. */
1.20699 -+ while (ISSPACE (*options) || (*options == ','))
1.20700 -+ ++ options;
1.20701 -+ }
1.20702 -+}
1.20703 -+
1.20704 -+int
1.20705 -+print_insn_avr32(bfd_vma pc, struct disassemble_info *info)
1.20706 -+{
1.20707 -+ bfd_vma insn_word;
1.20708 -+ const struct avr32_opcode *opc;
1.20709 -+
1.20710 -+ if (info->disassembler_options)
1.20711 -+ {
1.20712 -+ parse_disassembler_options (info->disassembler_options);
1.20713 -+
1.20714 -+ /* To avoid repeated parsing of these options, we remove them here. */
1.20715 -+ info->disassembler_options = NULL;
1.20716 -+ }
1.20717 -+
1.20718 -+ info->bytes_per_chunk = 1;
1.20719 -+ info->display_endian = BFD_ENDIAN_BIG;
1.20720 -+
1.20721 -+ if (read_insn_word(pc, &insn_word, info))
1.20722 -+ return -1;
1.20723 -+
1.20724 -+ opc = find_opcode(insn_word);
1.20725 -+ if (opc)
1.20726 -+ {
1.20727 -+ print_opcode(insn_word, opc, pc, info);
1.20728 -+ return opc->size;
1.20729 -+ }
1.20730 -+ else
1.20731 -+ {
1.20732 -+ info->fprintf_func(info->stream, _("*unknown*"));
1.20733 -+ return 2;
1.20734 -+ }
1.20735 -+
1.20736 -+}
1.20737 -+
1.20738 -+void
1.20739 -+print_avr32_disassembler_options (FILE *stream ATTRIBUTE_UNUSED)
1.20740 -+{
1.20741 -+
1.20742 -+}
1.20743 ---- /dev/null
1.20744 -+++ b/opcodes/avr32-opc.c
1.20745 -@@ -0,0 +1,6932 @@
1.20746 -+/* Opcode tables for AVR32.
1.20747 -+ Copyright 2005, 2006 Atmel Corporation.
1.20748 -+
1.20749 -+ Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
1.20750 -+
1.20751 -+ This file is part of libopcodes.
1.20752 -+
1.20753 -+ This program is free software; you can redistribute it and/or
1.20754 -+ modify it under the terms of the GNU General Public License as
1.20755 -+ published by the Free Software Foundation; either version 2 of the
1.20756 -+ License, or (at your option) any later version.
1.20757 -+
1.20758 -+ This program is distributed in the hope that it will be useful, but
1.20759 -+ WITHOUT ANY WARRANTY; without even the implied warranty of
1.20760 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.20761 -+ General Public License for more details.
1.20762 -+
1.20763 -+ You should have received a copy of the GNU General Public License
1.20764 -+ along with this program; if not, write to the Free Software
1.20765 -+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1.20766 -+ 02111-1307, USA. */
1.20767 -+
1.20768 -+#include <stdlib.h>
1.20769 -+#include <assert.h>
1.20770 -+
1.20771 -+#include "avr32-opc.h"
1.20772 -+
1.20773 -+#define PICO_CPNO 1
1.20774 -+
1.20775 -+void
1.20776 -+avr32_insert_simple(const struct avr32_ifield *field,
1.20777 -+ void *buf, unsigned long value)
1.20778 -+{
1.20779 -+ bfd_vma word;
1.20780 -+
1.20781 -+ word = bfd_getb32(buf);
1.20782 -+ word &= ~field->mask;
1.20783 -+ word |= (value << field->shift) & field->mask;
1.20784 -+ bfd_putb32(word, buf);
1.20785 -+}
1.20786 -+
1.20787 -+void
1.20788 -+avr32_insert_bit5c(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
1.20789 -+ void *buf, unsigned long value)
1.20790 -+{
1.20791 -+ char *opcode = buf;
1.20792 -+
1.20793 -+ opcode[0] = (opcode[0] & 0xe1) | (value & 0x1e);
1.20794 -+ opcode[1] = (opcode[1] & 0xef) | ((value & 1) << 4);
1.20795 -+}
1.20796 -+
1.20797 -+void
1.20798 -+avr32_insert_k10(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
1.20799 -+ void *buf, unsigned long value)
1.20800 -+{
1.20801 -+ char *opcode = buf;
1.20802 -+
1.20803 -+ opcode[0] = (opcode[0] & 0xf0) | ((value & 0xf0) >> 4);
1.20804 -+ opcode[1] = ((opcode[1] & 0x0c) | ((value & 0x0f) << 4)
1.20805 -+ | ((value & 0x300) >> 8));
1.20806 -+}
1.20807 -+
1.20808 -+
1.20809 -+void
1.20810 -+avr32_insert_k21(const struct avr32_ifield *field,
1.20811 -+ void *buf, unsigned long value)
1.20812 -+{
1.20813 -+ bfd_vma word;
1.20814 -+ bfd_vma k21;
1.20815 -+
1.20816 -+ word = bfd_getb32(buf);
1.20817 -+ word &= ~field->mask;
1.20818 -+ k21 = ((value & 0xffff) | ((value & 0x10000) << 4)
1.20819 -+ | ((value & 0x1e0000) << 8));
1.20820 -+ assert(!(k21 & ~field->mask));
1.20821 -+ word |= k21;
1.20822 -+ bfd_putb32(word, buf);
1.20823 -+}
1.20824 -+
1.20825 -+void
1.20826 -+avr32_insert_cpop(const struct avr32_ifield *field,
1.20827 -+ void *buf, unsigned long value)
1.20828 -+{
1.20829 -+ bfd_vma word;
1.20830 -+
1.20831 -+ word = bfd_getb32(buf);
1.20832 -+ word &= ~field->mask;
1.20833 -+ word |= (((value & 0x1e) << 15) | ((value & 0x60) << 20)
1.20834 -+ | ((value & 0x01) << 12));
1.20835 -+ bfd_putb32(word, buf);
1.20836 -+}
1.20837 -+
1.20838 -+void
1.20839 -+avr32_insert_k12cp(const struct avr32_ifield *field,
1.20840 -+ void *buf, unsigned long value)
1.20841 -+{
1.20842 -+ bfd_vma word;
1.20843 -+
1.20844 -+ word = bfd_getb32(buf);
1.20845 -+ word &= ~field->mask;
1.20846 -+ word |= ((value & 0xf00) << 4) | (value & 0xff);
1.20847 -+ bfd_putb32(word, buf);
1.20848 -+}
1.20849 -+
1.20850 -+void avr32_extract_simple(const struct avr32_ifield *field,
1.20851 -+ void *buf, unsigned long *value)
1.20852 -+{
1.20853 -+ /* XXX: The disassembler has done any necessary byteswapping already */
1.20854 -+ bfd_vma word = *(bfd_vma *)buf;
1.20855 -+
1.20856 -+ *value = (word & field->mask) >> field->shift;
1.20857 -+}
1.20858 -+
1.20859 -+void avr32_extract_bit5c(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
1.20860 -+ void *buf, unsigned long *value)
1.20861 -+{
1.20862 -+ bfd_vma word = *(bfd_vma *)buf;
1.20863 -+
1.20864 -+ *value = ((word >> 20) & 1) | ((word >> 24) & 0x1e);
1.20865 -+}
1.20866 -+
1.20867 -+void avr32_extract_k10(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
1.20868 -+ void *buf, unsigned long *value)
1.20869 -+{
1.20870 -+ bfd_vma word = *(bfd_vma *)buf;
1.20871 -+
1.20872 -+ *value = ((word >> 8) & 0x300) | ((word >> 20) & 0xff);
1.20873 -+}
1.20874 -+
1.20875 -+void avr32_extract_k21(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
1.20876 -+ void *buf, unsigned long *value)
1.20877 -+{
1.20878 -+ bfd_vma word = *(bfd_vma *)buf;
1.20879 -+
1.20880 -+ *value = ((word & 0xffff) | ((word >> 4) & 0x10000)
1.20881 -+ | ((word >> 8) & 0x1e0000));
1.20882 -+}
1.20883 -+
1.20884 -+void avr32_extract_cpop(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
1.20885 -+ void *buf, unsigned long *value)
1.20886 -+{
1.20887 -+ bfd_vma word = *(bfd_vma *)buf;
1.20888 -+
1.20889 -+ *value = (((word >> 12) & 1) | ((word >> 15) & 0x1e)
1.20890 -+ | ((word >> 20) & 0x60));
1.20891 -+}
1.20892 -+
1.20893 -+void avr32_extract_k12cp(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
1.20894 -+ void *buf, unsigned long *value)
1.20895 -+{
1.20896 -+ bfd_vma word = *(bfd_vma *)buf;
1.20897 -+
1.20898 -+ *value = ((word >> 4) & 0xf00) | (word & 0xff);
1.20899 -+}
1.20900 -+
1.20901 -+
1.20902 -+#define IFLD(id, bitsz, shift, mask, func) \
1.20903 -+ { AVR32_IFIELD_##id, bitsz, shift, mask, \
1.20904 -+ avr32_insert_##func, avr32_extract_##func }
1.20905 -+
1.20906 -+const struct avr32_ifield avr32_ifield_table[] =
1.20907 -+ {
1.20908 -+ IFLD(RX, 4, 25, 0x1e000000, simple),
1.20909 -+ IFLD(RY, 4, 16, 0x000f0000, simple),
1.20910 -+ IFLD(COND4C, 4, 20, 0x00f00000, simple),
1.20911 -+ IFLD(K8C, 8, 20, 0x0ff00000, simple),
1.20912 -+ IFLD(K7C, 7, 20, 0x07f00000, simple),
1.20913 -+ IFLD(K5C, 5, 20, 0x01f00000, simple),
1.20914 -+ IFLD(K3, 3, 20, 0x00700000, simple),
1.20915 -+ IFLD(RY_DW, 3, 17, 0x000e0000, simple),
1.20916 -+ IFLD(COND4E, 4, 8, 0x00000f00, simple),
1.20917 -+ IFLD(K8E, 8, 0, 0x000000ff, simple),
1.20918 -+ IFLD(BIT5C, 5, 20, 0x1e100000, bit5c),
1.20919 -+ IFLD(COND3, 3, 16, 0x00070000, simple),
1.20920 -+ IFLD(K10, 10, 16, 0x0ff30000, k10),
1.20921 -+ IFLD(POPM, 9, 19, 0x0ff80000, simple),
1.20922 -+ IFLD(K2, 2, 4, 0x00000030, simple),
1.20923 -+ IFLD(RD_E, 4, 0, 0x0000000f, simple),
1.20924 -+ IFLD(RD_DW, 3, 1, 0x0000000e, simple),
1.20925 -+ IFLD(X, 1, 5, 0x00000020, simple),
1.20926 -+ IFLD(Y, 1, 4, 0x00000010, simple),
1.20927 -+ IFLD(X2, 1, 13, 0x00002000, simple),
1.20928 -+ IFLD(Y2, 1, 12, 0x00001000, simple),
1.20929 -+ IFLD(K5E, 5, 0, 0x0000001f, simple),
1.20930 -+ IFLD(PART2, 2, 0, 0x00000003, simple),
1.20931 -+ IFLD(PART1, 1, 0, 0x00000001, simple),
1.20932 -+ IFLD(K16, 16, 0, 0x0000ffff, simple),
1.20933 -+ IFLD(CACHEOP, 5, 11, 0x0000f800, simple),
1.20934 -+ IFLD(K11, 11, 0, 0x000007ff, simple),
1.20935 -+ IFLD(K21, 21, 0, 0x1e10ffff, k21),
1.20936 -+ IFLD(CPOP, 7, 12, 0x060f1000, cpop),
1.20937 -+ IFLD(CPNO, 3, 13, 0x0000e000, simple),
1.20938 -+ IFLD(CRD_RI, 4, 8, 0x00000f00, simple),
1.20939 -+ IFLD(CRX, 4, 4, 0x000000f0, simple),
1.20940 -+ IFLD(CRY, 4, 0, 0x0000000f, simple),
1.20941 -+ IFLD(K7E, 7, 0, 0x0000007f, simple),
1.20942 -+ IFLD(CRD_DW, 3, 9, 0x00000e00, simple),
1.20943 -+ IFLD(PART1_K12, 1, 12, 0x00001000, simple),
1.20944 -+ IFLD(PART2_K12, 2, 12, 0x00003000, simple),
1.20945 -+ IFLD(K12, 12, 0, 0x00000fff, simple),
1.20946 -+ IFLD(S5, 5, 5, 0x000003e0, simple),
1.20947 -+ IFLD(K5E2, 5, 4, 0x000001f0, simple),
1.20948 -+ IFLD(K4, 4, 20, 0x00f00000, simple),
1.20949 -+ IFLD(COND4E2, 4, 4, 0x000000f0, simple),
1.20950 -+ IFLD(K8E2, 8, 4, 0x00000ff0, simple),
1.20951 -+ IFLD(K6, 6, 20, 0x03f00000, simple),
1.20952 -+ IFLD(MEM15, 15, 0, 0x00007fff, simple),
1.20953 -+ IFLD(MEMB5, 5, 15, 0x000f8000, simple),
1.20954 -+ IFLD(W, 1, 25, 0x02000000, simple),
1.20955 -+ /* Coprocessor Multiple High/Low */
1.20956 -+ IFLD(CM_HL, 1, 8, 0x00000100, simple),
1.20957 -+ IFLD(K12CP, 12 ,0, 0x0000f0ff, k12cp),
1.20958 -+ IFLD(K9E, 9 ,0, 0x000001ff, simple),
1.20959 -+ };
1.20960 -+#undef IFLD
1.20961 -+
1.20962 -+
1.20963 -+struct avr32_opcode avr32_opc_table[] =
1.20964 -+ {
1.20965 -+ {
1.20966 -+ AVR32_OPC_ABS, 2, 0x5c400000, 0xfff00000,
1.20967 -+ &avr32_syntax_table[AVR32_SYNTAX_ABS],
1.20968 -+ BFD_RELOC_UNUSED, 1, -1,
1.20969 -+ {
1.20970 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.20971 -+ }
1.20972 -+ },
1.20973 -+ {
1.20974 -+ AVR32_OPC_ACALL, 2, 0xd0000000, 0xf00f0000,
1.20975 -+ &avr32_syntax_table[AVR32_SYNTAX_ACALL],
1.20976 -+ BFD_RELOC_UNUSED, 1, -1,
1.20977 -+ {
1.20978 -+ &avr32_ifield_table[AVR32_IFIELD_K8C],
1.20979 -+ },
1.20980 -+ },
1.20981 -+ {
1.20982 -+ AVR32_OPC_ACR, 2, 0x5c000000, 0xfff00000,
1.20983 -+ &avr32_syntax_table[AVR32_SYNTAX_ACR],
1.20984 -+ BFD_RELOC_UNUSED, 1, -1,
1.20985 -+ {
1.20986 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.20987 -+ },
1.20988 -+ },
1.20989 -+ {
1.20990 -+ AVR32_OPC_ADC, 4, 0xe0000040, 0xe1f0fff0,
1.20991 -+ &avr32_syntax_table[AVR32_SYNTAX_ADC],
1.20992 -+ BFD_RELOC_UNUSED, 3, -1,
1.20993 -+ {
1.20994 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.20995 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.20996 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.20997 -+ },
1.20998 -+ },
1.20999 -+ {
1.21000 -+ AVR32_OPC_ADD1, 2, 0x00000000, 0xe1f00000,
1.21001 -+ &avr32_syntax_table[AVR32_SYNTAX_ADD1],
1.21002 -+ BFD_RELOC_UNUSED, 2, -1,
1.21003 -+ {
1.21004 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21005 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21006 -+ },
1.21007 -+ },
1.21008 -+ {
1.21009 -+ AVR32_OPC_ADD2, 4, 0xe0000000, 0xe1f0ffc0,
1.21010 -+ &avr32_syntax_table[AVR32_SYNTAX_ADD2],
1.21011 -+ BFD_RELOC_UNUSED, 4, -1,
1.21012 -+ {
1.21013 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21014 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21015 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21016 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.21017 -+ },
1.21018 -+ },
1.21019 -+ {
1.21020 -+ AVR32_OPC_ADDABS, 4, 0xe0000e40, 0xe1f0fff0,
1.21021 -+ &avr32_syntax_table[AVR32_SYNTAX_ADDABS],
1.21022 -+ BFD_RELOC_UNUSED, 3, -1,
1.21023 -+ {
1.21024 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21025 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21026 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21027 -+ },
1.21028 -+ },
1.21029 -+ {
1.21030 -+ AVR32_OPC_ADDHH_W, 4, 0xe0000e00, 0xe1f0ffc0,
1.21031 -+ &avr32_syntax_table[AVR32_SYNTAX_ADDHH_W],
1.21032 -+ BFD_RELOC_UNUSED, 5, -1,
1.21033 -+ {
1.21034 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21035 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21036 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.21037 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21038 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.21039 -+ },
1.21040 -+ },
1.21041 -+ {
1.21042 -+ AVR32_OPC_AND1, 2, 0x00600000, 0xe1f00000,
1.21043 -+ &avr32_syntax_table[AVR32_SYNTAX_AND1],
1.21044 -+ BFD_RELOC_UNUSED, 2, -1,
1.21045 -+ {
1.21046 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21047 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21048 -+ },
1.21049 -+ },
1.21050 -+ {
1.21051 -+ AVR32_OPC_AND2, 4, 0xe1e00000, 0xe1f0fe00,
1.21052 -+ &avr32_syntax_table[AVR32_SYNTAX_AND2],
1.21053 -+ BFD_RELOC_UNUSED, 4, -1,
1.21054 -+ {
1.21055 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21056 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21057 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21058 -+ &avr32_ifield_table[AVR32_IFIELD_K5E2],
1.21059 -+ },
1.21060 -+ },
1.21061 -+ {
1.21062 -+ AVR32_OPC_AND3, 4, 0xe1e00200, 0xe1f0fe00,
1.21063 -+ &avr32_syntax_table[AVR32_SYNTAX_AND3],
1.21064 -+ BFD_RELOC_UNUSED, 4, -1,
1.21065 -+ {
1.21066 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21067 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21068 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21069 -+ &avr32_ifield_table[AVR32_IFIELD_K5E2],
1.21070 -+ },
1.21071 -+ },
1.21072 -+ {
1.21073 -+ AVR32_OPC_ANDH, 4, 0xe4100000, 0xfff00000,
1.21074 -+ &avr32_syntax_table[AVR32_SYNTAX_ANDH],
1.21075 -+ BFD_RELOC_AVR32_16U, 2, 1,
1.21076 -+ {
1.21077 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21078 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.21079 -+ },
1.21080 -+ },
1.21081 -+ {
1.21082 -+ AVR32_OPC_ANDH_COH, 4, 0xe6100000, 0xfff00000,
1.21083 -+ &avr32_syntax_table[AVR32_SYNTAX_ANDH_COH],
1.21084 -+ BFD_RELOC_AVR32_16U, 2, 1,
1.21085 -+ {
1.21086 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21087 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.21088 -+ },
1.21089 -+ },
1.21090 -+ {
1.21091 -+ AVR32_OPC_ANDL, 4, 0xe0100000, 0xfff00000,
1.21092 -+ &avr32_syntax_table[AVR32_SYNTAX_ANDL],
1.21093 -+ BFD_RELOC_AVR32_16U, 2, 1,
1.21094 -+ {
1.21095 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21096 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.21097 -+ },
1.21098 -+ },
1.21099 -+ {
1.21100 -+ AVR32_OPC_ANDL_COH, 4, 0xe2100000, 0xfff00000,
1.21101 -+ &avr32_syntax_table[AVR32_SYNTAX_ANDL_COH],
1.21102 -+ BFD_RELOC_AVR32_16U, 2, 1,
1.21103 -+ {
1.21104 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21105 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.21106 -+ },
1.21107 -+ },
1.21108 -+ {
1.21109 -+ AVR32_OPC_ANDN, 2, 0x00800000, 0xe1f00000,
1.21110 -+ &avr32_syntax_table[AVR32_SYNTAX_ANDN],
1.21111 -+ BFD_RELOC_UNUSED, 2, -1,
1.21112 -+ {
1.21113 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21114 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21115 -+ },
1.21116 -+ },
1.21117 -+ {
1.21118 -+ AVR32_OPC_ASR1, 4, 0xe0000840, 0xe1f0fff0,
1.21119 -+ &avr32_syntax_table[AVR32_SYNTAX_ASR1],
1.21120 -+ BFD_RELOC_UNUSED, 3, -1,
1.21121 -+ {
1.21122 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21123 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21124 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21125 -+ },
1.21126 -+ },
1.21127 -+ {
1.21128 -+ AVR32_OPC_ASR3, 4, 0xe0001400, 0xe1f0ffe0,
1.21129 -+ &avr32_syntax_table[AVR32_SYNTAX_ASR3],
1.21130 -+ BFD_RELOC_UNUSED, 3, -1,
1.21131 -+ {
1.21132 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21133 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21134 -+ &avr32_ifield_table[AVR32_IFIELD_K5E],
1.21135 -+ },
1.21136 -+ },
1.21137 -+ {
1.21138 -+ AVR32_OPC_ASR2, 2, 0xa1400000, 0xe1e00000,
1.21139 -+ &avr32_syntax_table[AVR32_SYNTAX_ASR2],
1.21140 -+ BFD_RELOC_UNUSED, 2, -1,
1.21141 -+ {
1.21142 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21143 -+ &avr32_ifield_table[AVR32_IFIELD_BIT5C],
1.21144 -+ },
1.21145 -+ },
1.21146 -+ {
1.21147 -+ AVR32_OPC_BLD, 4, 0xedb00000, 0xfff0ffe0,
1.21148 -+ &avr32_syntax_table[AVR32_SYNTAX_BLD],
1.21149 -+ BFD_RELOC_UNUSED, 2, -1,
1.21150 -+ {
1.21151 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21152 -+ &avr32_ifield_table[AVR32_IFIELD_K5E],
1.21153 -+ },
1.21154 -+ },
1.21155 -+ {
1.21156 -+ AVR32_OPC_BREQ1, 2, 0xc0000000, 0xf00f0000,
1.21157 -+ &avr32_syntax_table[AVR32_SYNTAX_BREQ1],
1.21158 -+ BFD_RELOC_AVR32_9H_PCREL, 1, 0,
1.21159 -+ {
1.21160 -+ &avr32_ifield_table[AVR32_IFIELD_K8C],
1.21161 -+ },
1.21162 -+ },
1.21163 -+ {
1.21164 -+ AVR32_OPC_BRNE1, 2, 0xc0010000, 0xf00f0000,
1.21165 -+ &avr32_syntax_table[AVR32_SYNTAX_BRNE1],
1.21166 -+ BFD_RELOC_AVR32_9H_PCREL, 1, 0,
1.21167 -+ {
1.21168 -+ &avr32_ifield_table[AVR32_IFIELD_K8C],
1.21169 -+ },
1.21170 -+ },
1.21171 -+ {
1.21172 -+ AVR32_OPC_BRCC1, 2, 0xc0020000, 0xf00f0000,
1.21173 -+ &avr32_syntax_table[AVR32_SYNTAX_BRCC1],
1.21174 -+ BFD_RELOC_AVR32_9H_PCREL, 1, 0,
1.21175 -+ {
1.21176 -+ &avr32_ifield_table[AVR32_IFIELD_K8C],
1.21177 -+ },
1.21178 -+ },
1.21179 -+ {
1.21180 -+ AVR32_OPC_BRCS1, 2, 0xc0030000, 0xf00f0000,
1.21181 -+ &avr32_syntax_table[AVR32_SYNTAX_BRCS1],
1.21182 -+ BFD_RELOC_AVR32_9H_PCREL, 1, 0,
1.21183 -+ {
1.21184 -+ &avr32_ifield_table[AVR32_IFIELD_K8C],
1.21185 -+ },
1.21186 -+ },
1.21187 -+ {
1.21188 -+ AVR32_OPC_BRGE1, 2, 0xc0040000, 0xf00f0000,
1.21189 -+ &avr32_syntax_table[AVR32_SYNTAX_BRGE1],
1.21190 -+ BFD_RELOC_AVR32_9H_PCREL, 1, 0,
1.21191 -+ {
1.21192 -+ &avr32_ifield_table[AVR32_IFIELD_K8C],
1.21193 -+ },
1.21194 -+ },
1.21195 -+ {
1.21196 -+ AVR32_OPC_BRLT1, 2, 0xc0050000, 0xf00f0000,
1.21197 -+ &avr32_syntax_table[AVR32_SYNTAX_BRLT1],
1.21198 -+ BFD_RELOC_AVR32_9H_PCREL, 1, 0,
1.21199 -+ {
1.21200 -+ &avr32_ifield_table[AVR32_IFIELD_K8C],
1.21201 -+ },
1.21202 -+ },
1.21203 -+ {
1.21204 -+ AVR32_OPC_BRMI1, 2, 0xc0060000, 0xf00f0000,
1.21205 -+ &avr32_syntax_table[AVR32_SYNTAX_BRMI1],
1.21206 -+ BFD_RELOC_AVR32_9H_PCREL, 1, 0,
1.21207 -+ {
1.21208 -+ &avr32_ifield_table[AVR32_IFIELD_K8C],
1.21209 -+ },
1.21210 -+ },
1.21211 -+ {
1.21212 -+ AVR32_OPC_BRPL1, 2, 0xc0070000, 0xf00f0000,
1.21213 -+ &avr32_syntax_table[AVR32_SYNTAX_BRPL1],
1.21214 -+ BFD_RELOC_AVR32_9H_PCREL, 1, 0,
1.21215 -+ {
1.21216 -+ &avr32_ifield_table[AVR32_IFIELD_K8C],
1.21217 -+ },
1.21218 -+ },
1.21219 -+ {
1.21220 -+ AVR32_OPC_BREQ2, 4, 0xe0800000, 0xe1ef0000,
1.21221 -+ &avr32_syntax_table[AVR32_SYNTAX_BREQ2],
1.21222 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.21223 -+ {
1.21224 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21225 -+ },
1.21226 -+ },
1.21227 -+ {
1.21228 -+ AVR32_OPC_BRNE2, 4, 0xe0810000, 0xe1ef0000,
1.21229 -+ &avr32_syntax_table[AVR32_SYNTAX_BRNE2],
1.21230 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.21231 -+ {
1.21232 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21233 -+ },
1.21234 -+ },
1.21235 -+ {
1.21236 -+ AVR32_OPC_BRCC2, 4, 0xe0820000, 0xe1ef0000,
1.21237 -+ &avr32_syntax_table[AVR32_SYNTAX_BRHS2],
1.21238 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.21239 -+ {
1.21240 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21241 -+ },
1.21242 -+ },
1.21243 -+ {
1.21244 -+ AVR32_OPC_BRCS2, 4, 0xe0830000, 0xe1ef0000,
1.21245 -+ &avr32_syntax_table[AVR32_SYNTAX_BRLO2],
1.21246 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.21247 -+ {
1.21248 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21249 -+ },
1.21250 -+ },
1.21251 -+ {
1.21252 -+ AVR32_OPC_BRGE2, 4, 0xe0840000, 0xe1ef0000,
1.21253 -+ &avr32_syntax_table[AVR32_SYNTAX_BRGE2],
1.21254 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.21255 -+ {
1.21256 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21257 -+ },
1.21258 -+ },
1.21259 -+ {
1.21260 -+ AVR32_OPC_BRLT2, 4, 0xe0850000, 0xe1ef0000,
1.21261 -+ &avr32_syntax_table[AVR32_SYNTAX_BRLT2],
1.21262 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.21263 -+ {
1.21264 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21265 -+ },
1.21266 -+ },
1.21267 -+ {
1.21268 -+ AVR32_OPC_BRMI2, 4, 0xe0860000, 0xe1ef0000,
1.21269 -+ &avr32_syntax_table[AVR32_SYNTAX_BRMI2],
1.21270 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.21271 -+ {
1.21272 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21273 -+ },
1.21274 -+ },
1.21275 -+ {
1.21276 -+ AVR32_OPC_BRPL2, 4, 0xe0870000, 0xe1ef0000,
1.21277 -+ &avr32_syntax_table[AVR32_SYNTAX_BRPL2],
1.21278 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.21279 -+ {
1.21280 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21281 -+ },
1.21282 -+ },
1.21283 -+ {
1.21284 -+ AVR32_OPC_BRLS, 4, 0xe0880000, 0xe1ef0000,
1.21285 -+ &avr32_syntax_table[AVR32_SYNTAX_BRLS],
1.21286 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.21287 -+ {
1.21288 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21289 -+ },
1.21290 -+ },
1.21291 -+ {
1.21292 -+ AVR32_OPC_BRGT, 4, 0xe0890000, 0xe1ef0000,
1.21293 -+ &avr32_syntax_table[AVR32_SYNTAX_BRGT],
1.21294 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.21295 -+ {
1.21296 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21297 -+ },
1.21298 -+ },
1.21299 -+ {
1.21300 -+ AVR32_OPC_BRLE, 4, 0xe08a0000, 0xe1ef0000,
1.21301 -+ &avr32_syntax_table[AVR32_SYNTAX_BRLE],
1.21302 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.21303 -+ {
1.21304 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21305 -+ },
1.21306 -+ },
1.21307 -+ {
1.21308 -+ AVR32_OPC_BRHI, 4, 0xe08b0000, 0xe1ef0000,
1.21309 -+ &avr32_syntax_table[AVR32_SYNTAX_BRHI],
1.21310 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.21311 -+ {
1.21312 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21313 -+ },
1.21314 -+ },
1.21315 -+ {
1.21316 -+ AVR32_OPC_BRVS, 4, 0xe08c0000, 0xe1ef0000,
1.21317 -+ &avr32_syntax_table[AVR32_SYNTAX_BRVS],
1.21318 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.21319 -+ {
1.21320 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21321 -+ },
1.21322 -+ },
1.21323 -+ {
1.21324 -+ AVR32_OPC_BRVC, 4, 0xe08d0000, 0xe1ef0000,
1.21325 -+ &avr32_syntax_table[AVR32_SYNTAX_BRVC],
1.21326 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.21327 -+ {
1.21328 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21329 -+ },
1.21330 -+ },
1.21331 -+ {
1.21332 -+ AVR32_OPC_BRQS, 4, 0xe08e0000, 0xe1ef0000,
1.21333 -+ &avr32_syntax_table[AVR32_SYNTAX_BRQS],
1.21334 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.21335 -+ {
1.21336 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21337 -+ },
1.21338 -+ },
1.21339 -+ {
1.21340 -+ AVR32_OPC_BRAL, 4, 0xe08f0000, 0xe1ef0000,
1.21341 -+ &avr32_syntax_table[AVR32_SYNTAX_BRAL],
1.21342 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.21343 -+ {
1.21344 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21345 -+ },
1.21346 -+ },
1.21347 -+ {
1.21348 -+ AVR32_OPC_BREAKPOINT, 2, 0xd6730000, 0xffff0000,
1.21349 -+ &avr32_syntax_table[AVR32_SYNTAX_BREAKPOINT],
1.21350 -+ BFD_RELOC_UNUSED, 0, -1, { NULL },
1.21351 -+ },
1.21352 -+ {
1.21353 -+ AVR32_OPC_BREV, 2, 0x5c900000, 0xfff00000,
1.21354 -+ &avr32_syntax_table[AVR32_SYNTAX_BREV],
1.21355 -+ BFD_RELOC_UNUSED, 1, -1,
1.21356 -+ {
1.21357 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21358 -+ },
1.21359 -+ },
1.21360 -+ {
1.21361 -+ AVR32_OPC_BST, 4, 0xefb00000, 0xfff0ffe0,
1.21362 -+ &avr32_syntax_table[AVR32_SYNTAX_BST],
1.21363 -+ BFD_RELOC_UNUSED, 2, -1,
1.21364 -+ {
1.21365 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21366 -+ &avr32_ifield_table[AVR32_IFIELD_K5E],
1.21367 -+ },
1.21368 -+ },
1.21369 -+ {
1.21370 -+ AVR32_OPC_CACHE, 4, 0xf4100000, 0xfff00000,
1.21371 -+ &avr32_syntax_table[AVR32_SYNTAX_CACHE],
1.21372 -+ BFD_RELOC_UNUSED, 3, -1,
1.21373 -+ {
1.21374 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21375 -+ &avr32_ifield_table[AVR32_IFIELD_K11],
1.21376 -+ &avr32_ifield_table[AVR32_IFIELD_CACHEOP],
1.21377 -+ },
1.21378 -+ },
1.21379 -+ {
1.21380 -+ AVR32_OPC_CASTS_B, 2, 0x5c600000, 0xfff00000,
1.21381 -+ &avr32_syntax_table[AVR32_SYNTAX_CASTS_B],
1.21382 -+ BFD_RELOC_UNUSED, 1, -1,
1.21383 -+ {
1.21384 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21385 -+ },
1.21386 -+ },
1.21387 -+ {
1.21388 -+ AVR32_OPC_CASTS_H, 2, 0x5c800000, 0xfff00000,
1.21389 -+ &avr32_syntax_table[AVR32_SYNTAX_CASTS_H],
1.21390 -+ BFD_RELOC_UNUSED, 1, -1,
1.21391 -+ {
1.21392 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21393 -+ },
1.21394 -+ },
1.21395 -+ {
1.21396 -+ AVR32_OPC_CASTU_B, 2, 0x5c500000, 0xfff00000,
1.21397 -+ &avr32_syntax_table[AVR32_SYNTAX_CASTU_B],
1.21398 -+ BFD_RELOC_UNUSED, 1, -1,
1.21399 -+ {
1.21400 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21401 -+ },
1.21402 -+ },
1.21403 -+ {
1.21404 -+ AVR32_OPC_CASTU_H, 2, 0x5c700000, 0xfff00000,
1.21405 -+ &avr32_syntax_table[AVR32_SYNTAX_CASTU_H],
1.21406 -+ BFD_RELOC_UNUSED, 1, -1,
1.21407 -+ {
1.21408 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21409 -+ },
1.21410 -+ },
1.21411 -+ {
1.21412 -+ AVR32_OPC_CBR, 2, 0xa1c00000, 0xe1e00000,
1.21413 -+ &avr32_syntax_table[AVR32_SYNTAX_CBR],
1.21414 -+ BFD_RELOC_UNUSED, 2, -1,
1.21415 -+ {
1.21416 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21417 -+ &avr32_ifield_table[AVR32_IFIELD_BIT5C],
1.21418 -+ },
1.21419 -+ },
1.21420 -+ {
1.21421 -+ AVR32_OPC_CLZ, 4, 0xe0001200, 0xe1f0ffff,
1.21422 -+ &avr32_syntax_table[AVR32_SYNTAX_CLZ],
1.21423 -+ BFD_RELOC_UNUSED, 2, -1,
1.21424 -+ {
1.21425 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21426 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21427 -+ },
1.21428 -+ },
1.21429 -+ {
1.21430 -+ AVR32_OPC_COM, 2, 0x5cd00000, 0xfff00000,
1.21431 -+ &avr32_syntax_table[AVR32_SYNTAX_COM],
1.21432 -+ BFD_RELOC_UNUSED, 1, -1,
1.21433 -+ {
1.21434 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21435 -+ },
1.21436 -+ },
1.21437 -+ {
1.21438 -+ AVR32_OPC_COP, 4, 0xe1a00000, 0xf9f00000,
1.21439 -+ &avr32_syntax_table[AVR32_SYNTAX_COP],
1.21440 -+ BFD_RELOC_UNUSED, 5, -1,
1.21441 -+ {
1.21442 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.21443 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_RI],
1.21444 -+ &avr32_ifield_table[AVR32_IFIELD_CRX],
1.21445 -+ &avr32_ifield_table[AVR32_IFIELD_CRY],
1.21446 -+ &avr32_ifield_table[AVR32_IFIELD_CPOP],
1.21447 -+ },
1.21448 -+ },
1.21449 -+ {
1.21450 -+ AVR32_OPC_CP_B, 4, 0xe0001800, 0xe1f0ffff,
1.21451 -+ &avr32_syntax_table[AVR32_SYNTAX_CP_B],
1.21452 -+ BFD_RELOC_UNUSED, 2, -1,
1.21453 -+ {
1.21454 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21455 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21456 -+ },
1.21457 -+ },
1.21458 -+ {
1.21459 -+ AVR32_OPC_CP_H, 4, 0xe0001900, 0xe1f0ffff,
1.21460 -+ &avr32_syntax_table[AVR32_SYNTAX_CP_H],
1.21461 -+ BFD_RELOC_UNUSED, 2, -1,
1.21462 -+ {
1.21463 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21464 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21465 -+ },
1.21466 -+ },
1.21467 -+ {
1.21468 -+ AVR32_OPC_CP_W1, 2, 0x00300000, 0xe1f00000,
1.21469 -+ &avr32_syntax_table[AVR32_SYNTAX_CP_W1],
1.21470 -+ BFD_RELOC_UNUSED, 2, -1,
1.21471 -+ {
1.21472 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21473 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21474 -+ },
1.21475 -+ },
1.21476 -+ {
1.21477 -+ AVR32_OPC_CP_W2, 2, 0x58000000, 0xfc000000,
1.21478 -+ &avr32_syntax_table[AVR32_SYNTAX_CP_W2],
1.21479 -+ BFD_RELOC_AVR32_6S, 2, 1,
1.21480 -+ {
1.21481 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21482 -+ &avr32_ifield_table[AVR32_IFIELD_K6],
1.21483 -+ },
1.21484 -+ },
1.21485 -+ {
1.21486 -+ AVR32_OPC_CP_W3, 4, 0xe0400000, 0xe1e00000,
1.21487 -+ &avr32_syntax_table[AVR32_SYNTAX_CP_W3],
1.21488 -+ BFD_RELOC_AVR32_21S, 2, 1,
1.21489 -+ {
1.21490 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21491 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.21492 -+ },
1.21493 -+ },
1.21494 -+ {
1.21495 -+ AVR32_OPC_CPC1, 4, 0xe0001300, 0xe1f0ffff,
1.21496 -+ &avr32_syntax_table[AVR32_SYNTAX_CPC1],
1.21497 -+ BFD_RELOC_UNUSED, 2, -1,
1.21498 -+ {
1.21499 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21500 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21501 -+ },
1.21502 -+ },
1.21503 -+ {
1.21504 -+ AVR32_OPC_CPC2, 2, 0x5c200000, 0xfff00000,
1.21505 -+ &avr32_syntax_table[AVR32_SYNTAX_CPC2],
1.21506 -+ BFD_RELOC_UNUSED, 1, -1,
1.21507 -+ {
1.21508 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21509 -+ },
1.21510 -+ },
1.21511 -+ {
1.21512 -+ AVR32_OPC_CSRF, 2, 0xd4030000, 0xfe0f0000,
1.21513 -+ &avr32_syntax_table[AVR32_SYNTAX_CSRF],
1.21514 -+ BFD_RELOC_UNUSED, 1, -1,
1.21515 -+ {
1.21516 -+ &avr32_ifield_table[AVR32_IFIELD_K5C],
1.21517 -+ },
1.21518 -+ },
1.21519 -+ {
1.21520 -+ AVR32_OPC_CSRFCZ, 2, 0xd0030000, 0xfe0f0000,
1.21521 -+ &avr32_syntax_table[AVR32_SYNTAX_CSRFCZ],
1.21522 -+ BFD_RELOC_UNUSED, 1, -1,
1.21523 -+ {
1.21524 -+ &avr32_ifield_table[AVR32_IFIELD_K5C],
1.21525 -+ },
1.21526 -+ },
1.21527 -+ {
1.21528 -+ AVR32_OPC_DIVS, 4, 0xe0000c00, 0xe1f0ffc0,
1.21529 -+ &avr32_syntax_table[AVR32_SYNTAX_DIVS],
1.21530 -+ BFD_RELOC_UNUSED, 3, -1,
1.21531 -+ {
1.21532 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21533 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21534 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21535 -+ },
1.21536 -+ },
1.21537 -+ {
1.21538 -+ AVR32_OPC_DIVU, 4, 0xe0000d00, 0xe1f0ffc0,
1.21539 -+ &avr32_syntax_table[AVR32_SYNTAX_DIVU],
1.21540 -+ BFD_RELOC_UNUSED, 3, -1,
1.21541 -+ {
1.21542 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21543 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21544 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21545 -+ },
1.21546 -+ },
1.21547 -+ {
1.21548 -+ AVR32_OPC_EOR1, 2, 0x00500000, 0xe1f00000,
1.21549 -+ &avr32_syntax_table[AVR32_SYNTAX_EOR1],
1.21550 -+ BFD_RELOC_UNUSED, 2, -1,
1.21551 -+ {
1.21552 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21553 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21554 -+ },
1.21555 -+ },
1.21556 -+ {
1.21557 -+ AVR32_OPC_EOR2, 4, 0xe1e02000, 0xe1f0fe00,
1.21558 -+ &avr32_syntax_table[AVR32_SYNTAX_EOR2],
1.21559 -+ BFD_RELOC_UNUSED, 4, -1,
1.21560 -+ {
1.21561 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21562 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21563 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21564 -+ &avr32_ifield_table[AVR32_IFIELD_K5E2],
1.21565 -+ }
1.21566 -+ },
1.21567 -+ {
1.21568 -+ AVR32_OPC_EOR3, 4, 0xe1e02200, 0xe1f0fe00,
1.21569 -+ &avr32_syntax_table[AVR32_SYNTAX_EOR3],
1.21570 -+ BFD_RELOC_UNUSED, 4, -1,
1.21571 -+ {
1.21572 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21573 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21574 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21575 -+ &avr32_ifield_table[AVR32_IFIELD_K5E2],
1.21576 -+ }
1.21577 -+ },
1.21578 -+ {
1.21579 -+ AVR32_OPC_EORL, 4, 0xec100000, 0xfff00000,
1.21580 -+ &avr32_syntax_table[AVR32_SYNTAX_EORL],
1.21581 -+ BFD_RELOC_AVR32_16U, 2, 1,
1.21582 -+ {
1.21583 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21584 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.21585 -+ },
1.21586 -+ },
1.21587 -+ {
1.21588 -+ AVR32_OPC_EORH, 4, 0xee100000, 0xfff00000,
1.21589 -+ &avr32_syntax_table[AVR32_SYNTAX_EORH],
1.21590 -+ BFD_RELOC_AVR32_16U, 2, 1,
1.21591 -+ {
1.21592 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21593 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.21594 -+ },
1.21595 -+ },
1.21596 -+ {
1.21597 -+ AVR32_OPC_FRS, 2, 0xd7430000, 0xffff0000,
1.21598 -+ &avr32_syntax_table[AVR32_SYNTAX_FRS],
1.21599 -+ BFD_RELOC_UNUSED, 0, -1, { NULL },
1.21600 -+ },
1.21601 -+ {
1.21602 -+ AVR32_OPC_ICALL, 2, 0x5d100000, 0xfff00000,
1.21603 -+ &avr32_syntax_table[AVR32_SYNTAX_ICALL],
1.21604 -+ BFD_RELOC_UNUSED, 1, -1,
1.21605 -+ {
1.21606 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21607 -+ },
1.21608 -+ },
1.21609 -+ {
1.21610 -+ AVR32_OPC_INCJOSP, 2, 0xd6830000, 0xff8f0000,
1.21611 -+ &avr32_syntax_table[AVR32_SYNTAX_INCJOSP],
1.21612 -+ BFD_RELOC_UNUSED, 1, -1,
1.21613 -+ {
1.21614 -+ &avr32_ifield_table[AVR32_IFIELD_K3],
1.21615 -+ },
1.21616 -+ },
1.21617 -+ {
1.21618 -+ AVR32_OPC_LD_D1, 2, 0xa1010000, 0xe1f10000,
1.21619 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_D1],
1.21620 -+ BFD_RELOC_UNUSED, 2, -1,
1.21621 -+ {
1.21622 -+ &avr32_ifield_table[AVR32_IFIELD_RY_DW],
1.21623 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21624 -+ },
1.21625 -+ },
1.21626 -+ {
1.21627 -+ AVR32_OPC_LD_D2, 2, 0xa1100000, 0xe1f10000,
1.21628 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_D2],
1.21629 -+ BFD_RELOC_UNUSED, 2, -1,
1.21630 -+ {
1.21631 -+ &avr32_ifield_table[AVR32_IFIELD_RY_DW],
1.21632 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21633 -+ },
1.21634 -+ },
1.21635 -+ {
1.21636 -+ AVR32_OPC_LD_D3, 2, 0xa1000000, 0xe1f10000,
1.21637 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_D3],
1.21638 -+ BFD_RELOC_UNUSED, 2, -1,
1.21639 -+ {
1.21640 -+ &avr32_ifield_table[AVR32_IFIELD_RY_DW],
1.21641 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21642 -+ },
1.21643 -+ },
1.21644 -+ {
1.21645 -+ AVR32_OPC_LD_D5, 4, 0xe0000200, 0xe1f0ffc1,
1.21646 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_D5],
1.21647 -+ BFD_RELOC_UNUSED, 4, -1,
1.21648 -+ {
1.21649 -+ &avr32_ifield_table[AVR32_IFIELD_RD_DW],
1.21650 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21651 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21652 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.21653 -+ },
1.21654 -+ },
1.21655 -+ {
1.21656 -+ AVR32_OPC_LD_D4, 4, 0xe0e00000, 0xe1f10000,
1.21657 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_D4],
1.21658 -+ BFD_RELOC_AVR32_16S, 3, 2,
1.21659 -+ {
1.21660 -+ &avr32_ifield_table[AVR32_IFIELD_RY_DW],
1.21661 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21662 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.21663 -+ },
1.21664 -+ },
1.21665 -+ {
1.21666 -+ AVR32_OPC_LD_SB2, 4, 0xe0000600, 0xe1f0ffc0,
1.21667 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_SB2],
1.21668 -+ BFD_RELOC_UNUSED, 4, -1,
1.21669 -+ {
1.21670 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21671 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21672 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21673 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.21674 -+ },
1.21675 -+ },
1.21676 -+ {
1.21677 -+ AVR32_OPC_LD_SB1, 4, 0xe1200000, 0xe1f00000,
1.21678 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_SB1],
1.21679 -+ BFD_RELOC_AVR32_16S, 3, -1,
1.21680 -+ {
1.21681 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21682 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21683 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.21684 -+ },
1.21685 -+ },
1.21686 -+ {
1.21687 -+ AVR32_OPC_LD_UB1, 2, 0x01300000, 0xe1f00000,
1.21688 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_UB1],
1.21689 -+ BFD_RELOC_UNUSED, 2, -1,
1.21690 -+ {
1.21691 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21692 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21693 -+ },
1.21694 -+ },
1.21695 -+ {
1.21696 -+ AVR32_OPC_LD_UB2, 2, 0x01700000, 0xe1f00000,
1.21697 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_UB2],
1.21698 -+ BFD_RELOC_UNUSED, 2, -1,
1.21699 -+ {
1.21700 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21701 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21702 -+ },
1.21703 -+ },
1.21704 -+ {
1.21705 -+ AVR32_OPC_LD_UB5, 4, 0xe0000700, 0xe1f0ffc0,
1.21706 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_UB5],
1.21707 -+ BFD_RELOC_UNUSED, 4, -1,
1.21708 -+ {
1.21709 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21710 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21711 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21712 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.21713 -+ },
1.21714 -+ },
1.21715 -+ {
1.21716 -+ AVR32_OPC_LD_UB3, 2, 0x01800000, 0xe1800000,
1.21717 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_UB3],
1.21718 -+ BFD_RELOC_AVR32_3U, 3, 2,
1.21719 -+ {
1.21720 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21721 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21722 -+ &avr32_ifield_table[AVR32_IFIELD_K3],
1.21723 -+ },
1.21724 -+ },
1.21725 -+ {
1.21726 -+ AVR32_OPC_LD_UB4, 4, 0xe1300000, 0xe1f00000,
1.21727 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_UB4],
1.21728 -+ BFD_RELOC_AVR32_16S, 3, 2,
1.21729 -+ {
1.21730 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21731 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21732 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.21733 -+ },
1.21734 -+ },
1.21735 -+ {
1.21736 -+ AVR32_OPC_LD_SH1, 2, 0x01100000, 0xe1f00000,
1.21737 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_SH1],
1.21738 -+ BFD_RELOC_UNUSED, 2, -1,
1.21739 -+ {
1.21740 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21741 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21742 -+ },
1.21743 -+ },
1.21744 -+ {
1.21745 -+ AVR32_OPC_LD_SH2, 2, 0x01500000, 0xe1f00000,
1.21746 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_SH2],
1.21747 -+ BFD_RELOC_UNUSED, 2, -1,
1.21748 -+ {
1.21749 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21750 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21751 -+ },
1.21752 -+ },
1.21753 -+ {
1.21754 -+ AVR32_OPC_LD_SH5, 4, 0xe0000400, 0xe1f0ffc0,
1.21755 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_SH5],
1.21756 -+ BFD_RELOC_UNUSED, 4, -1,
1.21757 -+ {
1.21758 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21759 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21760 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21761 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.21762 -+ },
1.21763 -+ },
1.21764 -+ {
1.21765 -+ AVR32_OPC_LD_SH3, 2, 0x80000000, 0xe1800000,
1.21766 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_SH3],
1.21767 -+ BFD_RELOC_AVR32_4UH, 3, 2,
1.21768 -+ {
1.21769 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21770 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21771 -+ &avr32_ifield_table[AVR32_IFIELD_K3],
1.21772 -+ },
1.21773 -+ },
1.21774 -+ {
1.21775 -+ AVR32_OPC_LD_SH4, 4, 0xe1000000, 0xe1f00000,
1.21776 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_SH4],
1.21777 -+ BFD_RELOC_AVR32_16S, 3, 2,
1.21778 -+ {
1.21779 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21780 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21781 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.21782 -+ },
1.21783 -+ },
1.21784 -+ {
1.21785 -+ AVR32_OPC_LD_UH1, 2, 0x01200000, 0xe1f00000,
1.21786 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_UH1],
1.21787 -+ BFD_RELOC_UNUSED, 2, -1,
1.21788 -+ {
1.21789 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21790 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21791 -+ },
1.21792 -+ },
1.21793 -+ {
1.21794 -+ AVR32_OPC_LD_UH2, 2, 0x01600000, 0xe1f00000,
1.21795 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_UH2],
1.21796 -+ BFD_RELOC_UNUSED, 2, -1,
1.21797 -+ {
1.21798 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21799 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21800 -+ },
1.21801 -+ },
1.21802 -+ {
1.21803 -+ AVR32_OPC_LD_UH5, 4, 0xe0000500, 0xe1f0ffc0,
1.21804 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_UH5],
1.21805 -+ BFD_RELOC_UNUSED, 4, -1,
1.21806 -+ {
1.21807 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21808 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21809 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21810 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.21811 -+ },
1.21812 -+ },
1.21813 -+ {
1.21814 -+ AVR32_OPC_LD_UH3, 2, 0x80800000, 0xe1800000,
1.21815 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_UH3],
1.21816 -+ BFD_RELOC_AVR32_4UH, 3, 2,
1.21817 -+ {
1.21818 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21819 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21820 -+ &avr32_ifield_table[AVR32_IFIELD_K3],
1.21821 -+ },
1.21822 -+ },
1.21823 -+ {
1.21824 -+ AVR32_OPC_LD_UH4, 4, 0xe1100000, 0xe1f00000,
1.21825 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_UH4],
1.21826 -+ BFD_RELOC_AVR32_16S, 3, 2,
1.21827 -+ {
1.21828 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21829 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21830 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.21831 -+ },
1.21832 -+ },
1.21833 -+ {
1.21834 -+ AVR32_OPC_LD_W1, 2, 0x01000000, 0xe1f00000,
1.21835 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_W1],
1.21836 -+ BFD_RELOC_UNUSED, 2, -1,
1.21837 -+ {
1.21838 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21839 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21840 -+ },
1.21841 -+ },
1.21842 -+ {
1.21843 -+ AVR32_OPC_LD_W2, 2, 0x01400000, 0xe1f00000,
1.21844 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_W2],
1.21845 -+ BFD_RELOC_UNUSED, 2, -1,
1.21846 -+ {
1.21847 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21848 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21849 -+ },
1.21850 -+ },
1.21851 -+ {
1.21852 -+ AVR32_OPC_LD_W5, 4, 0xe0000300, 0xe1f0ffc0,
1.21853 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_W5],
1.21854 -+ BFD_RELOC_UNUSED, 4, -1,
1.21855 -+ {
1.21856 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21857 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21858 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21859 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.21860 -+ },
1.21861 -+ },
1.21862 -+ {
1.21863 -+ AVR32_OPC_LD_W6, 4, 0xe0000f80, 0xe1f0ffc0,
1.21864 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_W6],
1.21865 -+ BFD_RELOC_UNUSED, 4, -1,
1.21866 -+ {
1.21867 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21868 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21869 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21870 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.21871 -+ },
1.21872 -+ },
1.21873 -+ {
1.21874 -+ AVR32_OPC_LD_W3, 2, 0x60000000, 0xe0000000,
1.21875 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_W3],
1.21876 -+ BFD_RELOC_AVR32_7UW, 3, 2,
1.21877 -+ {
1.21878 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21879 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21880 -+ &avr32_ifield_table[AVR32_IFIELD_K5C],
1.21881 -+ },
1.21882 -+ },
1.21883 -+ {
1.21884 -+ AVR32_OPC_LD_W4, 4, 0xe0f00000, 0xe1f00000,
1.21885 -+ &avr32_syntax_table[AVR32_SYNTAX_LD_W4],
1.21886 -+ BFD_RELOC_AVR32_16S, 3, 2,
1.21887 -+ {
1.21888 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21889 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.21890 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.21891 -+ },
1.21892 -+ },
1.21893 -+ {
1.21894 -+ AVR32_OPC_LDC_D1, 4, 0xe9a01000, 0xfff01100,
1.21895 -+ &avr32_syntax_table[AVR32_SYNTAX_LDC_D1],
1.21896 -+ BFD_RELOC_AVR32_10UW, 4, 3,
1.21897 -+ {
1.21898 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.21899 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_DW],
1.21900 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21901 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.21902 -+ },
1.21903 -+ },
1.21904 -+ {
1.21905 -+ AVR32_OPC_LDC_D2, 4, 0xefa00050, 0xfff011ff,
1.21906 -+ &avr32_syntax_table[AVR32_SYNTAX_LDC_D2],
1.21907 -+ BFD_RELOC_UNUSED, 3, -1,
1.21908 -+ {
1.21909 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.21910 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_DW],
1.21911 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21912 -+ },
1.21913 -+ },
1.21914 -+ {
1.21915 -+ AVR32_OPC_LDC_D3, 4, 0xefa01040, 0xfff011c0,
1.21916 -+ &avr32_syntax_table[AVR32_SYNTAX_LDC_D3],
1.21917 -+ BFD_RELOC_UNUSED, 5, -1,
1.21918 -+ {
1.21919 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.21920 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_DW],
1.21921 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21922 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21923 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.21924 -+ },
1.21925 -+ },
1.21926 -+ {
1.21927 -+ AVR32_OPC_LDC_W1, 4, 0xe9a00000, 0xfff01000,
1.21928 -+ &avr32_syntax_table[AVR32_SYNTAX_LDC_W1],
1.21929 -+ BFD_RELOC_AVR32_10UW, 4, 3,
1.21930 -+ {
1.21931 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.21932 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_RI],
1.21933 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21934 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.21935 -+ },
1.21936 -+ },
1.21937 -+ {
1.21938 -+ AVR32_OPC_LDC_W2, 4, 0xefa00040, 0xfff010ff,
1.21939 -+ &avr32_syntax_table[AVR32_SYNTAX_LDC_W2],
1.21940 -+ BFD_RELOC_UNUSED, 3, -1,
1.21941 -+ {
1.21942 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.21943 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_RI],
1.21944 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21945 -+ },
1.21946 -+ },
1.21947 -+ {
1.21948 -+ AVR32_OPC_LDC_W3, 4, 0xefa01000, 0xfff010c0,
1.21949 -+ &avr32_syntax_table[AVR32_SYNTAX_LDC_W3],
1.21950 -+ BFD_RELOC_UNUSED, 5, -1,
1.21951 -+ {
1.21952 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.21953 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_RI],
1.21954 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21955 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.21956 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.21957 -+ },
1.21958 -+ },
1.21959 -+ {
1.21960 -+ AVR32_OPC_LDC0_D, 4, 0xf3a00000, 0xfff00100,
1.21961 -+ &avr32_syntax_table[AVR32_SYNTAX_LDC0_D],
1.21962 -+ BFD_RELOC_AVR32_14UW, 3, 2,
1.21963 -+ {
1.21964 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_DW],
1.21965 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21966 -+ &avr32_ifield_table[AVR32_IFIELD_K12CP],
1.21967 -+ },
1.21968 -+ },
1.21969 -+ {
1.21970 -+ AVR32_OPC_LDC0_W, 4, 0xf1a00000, 0xfff00000,
1.21971 -+ &avr32_syntax_table[AVR32_SYNTAX_LDC0_W],
1.21972 -+ BFD_RELOC_AVR32_14UW, 3, 2,
1.21973 -+ {
1.21974 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_RI],
1.21975 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21976 -+ &avr32_ifield_table[AVR32_IFIELD_K12CP],
1.21977 -+ },
1.21978 -+ },
1.21979 -+ {
1.21980 -+ AVR32_OPC_LDCM_D, 4, 0xeda00400, 0xfff01f00,
1.21981 -+ &avr32_syntax_table[AVR32_SYNTAX_LDCM_D],
1.21982 -+ BFD_RELOC_UNUSED, 3, -1,
1.21983 -+ {
1.21984 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.21985 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21986 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.21987 -+ },
1.21988 -+ },
1.21989 -+ {
1.21990 -+ AVR32_OPC_LDCM_D_PU, 4, 0xeda01400, 0xfff01f00,
1.21991 -+ &avr32_syntax_table[AVR32_SYNTAX_LDCM_D_PU],
1.21992 -+ BFD_RELOC_UNUSED, 3, -1,
1.21993 -+ {
1.21994 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.21995 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.21996 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.21997 -+ },
1.21998 -+ },
1.21999 -+ {
1.22000 -+ AVR32_OPC_LDCM_W, 4, 0xeda00000, 0xfff01e00,
1.22001 -+ &avr32_syntax_table[AVR32_SYNTAX_LDCM_W],
1.22002 -+ BFD_RELOC_UNUSED, 4, -1,
1.22003 -+ {
1.22004 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.22005 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22006 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22007 -+ &avr32_ifield_table[AVR32_IFIELD_CM_HL],
1.22008 -+ },
1.22009 -+ },
1.22010 -+ {
1.22011 -+ AVR32_OPC_LDCM_W_PU, 4, 0xeda01000, 0xfff01e00,
1.22012 -+ &avr32_syntax_table[AVR32_SYNTAX_LDCM_W_PU],
1.22013 -+ BFD_RELOC_UNUSED, 4, -1,
1.22014 -+ {
1.22015 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.22016 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22017 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22018 -+ &avr32_ifield_table[AVR32_IFIELD_CM_HL],
1.22019 -+ },
1.22020 -+ },
1.22021 -+ {
1.22022 -+ AVR32_OPC_LDDPC, 2, 0x48000000, 0xf8000000,
1.22023 -+ &avr32_syntax_table[AVR32_SYNTAX_LDDPC],
1.22024 -+ BFD_RELOC_AVR32_9UW_PCREL, 2, 1,
1.22025 -+ {
1.22026 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22027 -+ &avr32_ifield_table[AVR32_IFIELD_K7C],
1.22028 -+ },
1.22029 -+ },
1.22030 -+ {
1.22031 -+ AVR32_OPC_LDDPC_EXT, 4, 0xfef00000, 0xfff00000,
1.22032 -+ &avr32_syntax_table[AVR32_SYNTAX_LDDPC_EXT],
1.22033 -+ BFD_RELOC_AVR32_16B_PCREL, 2, 1,
1.22034 -+ {
1.22035 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22036 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.22037 -+ },
1.22038 -+ },
1.22039 -+ {
1.22040 -+ AVR32_OPC_LDDSP, 2, 0x40000000, 0xf8000000,
1.22041 -+ &avr32_syntax_table[AVR32_SYNTAX_LDDSP],
1.22042 -+ BFD_RELOC_UNUSED, 2, -1,
1.22043 -+ {
1.22044 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22045 -+ &avr32_ifield_table[AVR32_IFIELD_K7C],
1.22046 -+ },
1.22047 -+ },
1.22048 -+ {
1.22049 -+ AVR32_OPC_LDINS_B, 4, 0xe1d04000, 0xe1f0c000,
1.22050 -+ &avr32_syntax_table[AVR32_SYNTAX_LDINS_B],
1.22051 -+ BFD_RELOC_UNUSED, 4, -1,
1.22052 -+ {
1.22053 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22054 -+ &avr32_ifield_table[AVR32_IFIELD_PART2_K12],
1.22055 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22056 -+ &avr32_ifield_table[AVR32_IFIELD_K12],
1.22057 -+ },
1.22058 -+ },
1.22059 -+ {
1.22060 -+ AVR32_OPC_LDINS_H, 4, 0xe1d00000, 0xe1f0e000,
1.22061 -+ &avr32_syntax_table[AVR32_SYNTAX_LDINS_H],
1.22062 -+ BFD_RELOC_UNUSED, 4, -1,
1.22063 -+ {
1.22064 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22065 -+ &avr32_ifield_table[AVR32_IFIELD_PART1_K12],
1.22066 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22067 -+ &avr32_ifield_table[AVR32_IFIELD_K12],
1.22068 -+ },
1.22069 -+ },
1.22070 -+ {
1.22071 -+ AVR32_OPC_LDM, 4, 0xe1c00000, 0xfdf00000,
1.22072 -+ &avr32_syntax_table[AVR32_SYNTAX_LDM],
1.22073 -+ BFD_RELOC_UNUSED, 3, -1,
1.22074 -+ {
1.22075 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22076 -+ &avr32_ifield_table[AVR32_IFIELD_W],
1.22077 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.22078 -+ },
1.22079 -+ },
1.22080 -+ {
1.22081 -+ AVR32_OPC_LDMTS, 4, 0xe5c00000, 0xfff00000,
1.22082 -+ &avr32_syntax_table[AVR32_SYNTAX_LDMTS],
1.22083 -+ BFD_RELOC_UNUSED, 2, -1,
1.22084 -+ {
1.22085 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22086 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.22087 -+ },
1.22088 -+ },
1.22089 -+ {
1.22090 -+ AVR32_OPC_LDMTS_PU, 4, 0xe7c00000, 0xfff00000,
1.22091 -+ &avr32_syntax_table[AVR32_SYNTAX_LDMTS_PU],
1.22092 -+ BFD_RELOC_UNUSED, 2, -1,
1.22093 -+ {
1.22094 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22095 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.22096 -+ },
1.22097 -+ },
1.22098 -+ {
1.22099 -+ AVR32_OPC_LDSWP_SH, 4, 0xe1d02000, 0xe1f0f000,
1.22100 -+ &avr32_syntax_table[AVR32_SYNTAX_LDSWP_SH],
1.22101 -+ BFD_RELOC_UNUSED, 3, -1,
1.22102 -+ {
1.22103 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22104 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22105 -+ &avr32_ifield_table[AVR32_IFIELD_K12],
1.22106 -+ },
1.22107 -+ },
1.22108 -+ {
1.22109 -+ AVR32_OPC_LDSWP_UH, 4, 0xe1d03000, 0xe1f0f000,
1.22110 -+ &avr32_syntax_table[AVR32_SYNTAX_LDSWP_UH],
1.22111 -+ BFD_RELOC_UNUSED, 3, -1,
1.22112 -+ {
1.22113 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22114 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22115 -+ &avr32_ifield_table[AVR32_IFIELD_K12],
1.22116 -+ },
1.22117 -+ },
1.22118 -+ {
1.22119 -+ AVR32_OPC_LDSWP_W, 4, 0xe1d08000, 0xe1f0f000,
1.22120 -+ &avr32_syntax_table[AVR32_SYNTAX_LDSWP_W],
1.22121 -+ BFD_RELOC_UNUSED, 3, -1,
1.22122 -+ {
1.22123 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22124 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22125 -+ &avr32_ifield_table[AVR32_IFIELD_K12],
1.22126 -+ },
1.22127 -+ },
1.22128 -+ {
1.22129 -+ AVR32_OPC_LSL1, 4, 0xe0000940, 0xe1f0fff0,
1.22130 -+ &avr32_syntax_table[AVR32_SYNTAX_LSL1],
1.22131 -+ BFD_RELOC_UNUSED, 3, -1,
1.22132 -+ {
1.22133 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22134 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22135 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22136 -+ },
1.22137 -+ },
1.22138 -+ {
1.22139 -+ AVR32_OPC_LSL3, 4, 0xe0001500, 0xe1f0ffe0,
1.22140 -+ &avr32_syntax_table[AVR32_SYNTAX_LSL3],
1.22141 -+ BFD_RELOC_UNUSED, 3, -1,
1.22142 -+ {
1.22143 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22144 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22145 -+ &avr32_ifield_table[AVR32_IFIELD_K5E],
1.22146 -+ },
1.22147 -+ },
1.22148 -+ {
1.22149 -+ AVR32_OPC_LSL2, 2, 0xa1600000, 0xe1e00000,
1.22150 -+ &avr32_syntax_table[AVR32_SYNTAX_LSL2],
1.22151 -+ BFD_RELOC_UNUSED, 2, -1,
1.22152 -+ {
1.22153 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22154 -+ &avr32_ifield_table[AVR32_IFIELD_BIT5C],
1.22155 -+ },
1.22156 -+ },
1.22157 -+ {
1.22158 -+ AVR32_OPC_LSR1, 4, 0xe0000a40, 0xe1f0fff0,
1.22159 -+ &avr32_syntax_table[AVR32_SYNTAX_LSR1],
1.22160 -+ BFD_RELOC_UNUSED, 3, -1,
1.22161 -+ {
1.22162 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22163 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22164 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22165 -+ },
1.22166 -+ },
1.22167 -+ {
1.22168 -+ AVR32_OPC_LSR3, 4, 0xe0001600, 0xe1f0ffe0,
1.22169 -+ &avr32_syntax_table[AVR32_SYNTAX_LSR3],
1.22170 -+ BFD_RELOC_UNUSED, 3, -1,
1.22171 -+ {
1.22172 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22173 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22174 -+ &avr32_ifield_table[AVR32_IFIELD_K5E],
1.22175 -+ },
1.22176 -+ },
1.22177 -+ {
1.22178 -+ AVR32_OPC_LSR2, 2, 0xa1800000, 0xe1e00000,
1.22179 -+ &avr32_syntax_table[AVR32_SYNTAX_LSR2],
1.22180 -+ BFD_RELOC_UNUSED, 2, -1,
1.22181 -+ {
1.22182 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22183 -+ &avr32_ifield_table[AVR32_IFIELD_BIT5C],
1.22184 -+ },
1.22185 -+ },
1.22186 -+ {
1.22187 -+ AVR32_OPC_MAC, 4, 0xe0000340, 0xe1f0fff0,
1.22188 -+ &avr32_syntax_table[AVR32_SYNTAX_MAC],
1.22189 -+ BFD_RELOC_UNUSED, 3, -1,
1.22190 -+ {
1.22191 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22192 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22193 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22194 -+ },
1.22195 -+ },
1.22196 -+ {
1.22197 -+ AVR32_OPC_MACHH_D, 4, 0xe0000580, 0xe1f0ffc1,
1.22198 -+ &avr32_syntax_table[AVR32_SYNTAX_MACHH_D],
1.22199 -+ BFD_RELOC_UNUSED, 5, -1,
1.22200 -+ {
1.22201 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22202 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22203 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.22204 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22205 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.22206 -+ },
1.22207 -+ },
1.22208 -+ {
1.22209 -+ AVR32_OPC_MACHH_W, 4, 0xe0000480, 0xe1f0ffc0,
1.22210 -+ &avr32_syntax_table[AVR32_SYNTAX_MACHH_W],
1.22211 -+ BFD_RELOC_UNUSED, 5, -1,
1.22212 -+ {
1.22213 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22214 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22215 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.22216 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22217 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.22218 -+ },
1.22219 -+ },
1.22220 -+ {
1.22221 -+ AVR32_OPC_MACS_D, 4, 0xe0000540, 0xe1f0fff1,
1.22222 -+ &avr32_syntax_table[AVR32_SYNTAX_MACS_D],
1.22223 -+ BFD_RELOC_UNUSED, 3, -1,
1.22224 -+ {
1.22225 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22226 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22227 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22228 -+ },
1.22229 -+ },
1.22230 -+ {
1.22231 -+ AVR32_OPC_MACSATHH_W, 4, 0xe0000680, 0xe1f0ffc0,
1.22232 -+ &avr32_syntax_table[AVR32_SYNTAX_MACSATHH_W],
1.22233 -+ BFD_RELOC_UNUSED, 5, -1,
1.22234 -+ {
1.22235 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22236 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22237 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.22238 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22239 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.22240 -+ },
1.22241 -+ },
1.22242 -+ {
1.22243 -+ AVR32_OPC_MACUD, 4, 0xe0000740, 0xe1f0fff1,
1.22244 -+ &avr32_syntax_table[AVR32_SYNTAX_MACUD],
1.22245 -+ BFD_RELOC_UNUSED, 3, -1,
1.22246 -+ {
1.22247 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22248 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22249 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22250 -+ },
1.22251 -+ },
1.22252 -+ {
1.22253 -+ AVR32_OPC_MACWH_D, 4, 0xe0000c80, 0xe1f0ffe1,
1.22254 -+ &avr32_syntax_table[AVR32_SYNTAX_MACWH_D],
1.22255 -+ BFD_RELOC_UNUSED, 4, -1,
1.22256 -+ {
1.22257 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22258 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22259 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22260 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.22261 -+ },
1.22262 -+ },
1.22263 -+ {
1.22264 -+ AVR32_OPC_MAX, 4, 0xe0000c40, 0xe1f0fff0,
1.22265 -+ &avr32_syntax_table[AVR32_SYNTAX_MAX],
1.22266 -+ BFD_RELOC_UNUSED, 3, -1,
1.22267 -+ {
1.22268 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22269 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22270 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22271 -+ },
1.22272 -+ },
1.22273 -+ {
1.22274 -+ AVR32_OPC_MCALL, 4, 0xf0100000, 0xfff00000,
1.22275 -+ &avr32_syntax_table[AVR32_SYNTAX_MCALL],
1.22276 -+ BFD_RELOC_AVR32_18W_PCREL, 2, 1,
1.22277 -+ {
1.22278 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22279 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.22280 -+ },
1.22281 -+ },
1.22282 -+ {
1.22283 -+ AVR32_OPC_MFDR, 4, 0xe5b00000, 0xfff0ff00,
1.22284 -+ &avr32_syntax_table[AVR32_SYNTAX_MFDR],
1.22285 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22286 -+ {
1.22287 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22288 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22289 -+ },
1.22290 -+ },
1.22291 -+ {
1.22292 -+ AVR32_OPC_MFSR, 4, 0xe1b00000, 0xfff0ff00,
1.22293 -+ &avr32_syntax_table[AVR32_SYNTAX_MFSR],
1.22294 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22295 -+ {
1.22296 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22297 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22298 -+ },
1.22299 -+ },
1.22300 -+ {
1.22301 -+ AVR32_OPC_MIN, 4, 0xe0000d40, 0xe1f0fff0,
1.22302 -+ &avr32_syntax_table[AVR32_SYNTAX_MIN],
1.22303 -+ BFD_RELOC_UNUSED, 3, -1,
1.22304 -+ {
1.22305 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22306 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22307 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22308 -+ },
1.22309 -+ },
1.22310 -+ {
1.22311 -+ AVR32_OPC_MOV3, 2, 0x00900000, 0xe1f00000,
1.22312 -+ &avr32_syntax_table[AVR32_SYNTAX_MOV3],
1.22313 -+ BFD_RELOC_NONE, 2, -1,
1.22314 -+ {
1.22315 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22316 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22317 -+ },
1.22318 -+ },
1.22319 -+ {
1.22320 -+ AVR32_OPC_MOV1, 2, 0x30000000, 0xf0000000,
1.22321 -+ &avr32_syntax_table[AVR32_SYNTAX_MOV1],
1.22322 -+ BFD_RELOC_AVR32_8S, 2, 1,
1.22323 -+ {
1.22324 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22325 -+ &avr32_ifield_table[AVR32_IFIELD_K8C],
1.22326 -+ },
1.22327 -+ },
1.22328 -+ {
1.22329 -+ AVR32_OPC_MOV2, 4, 0xe0600000, 0xe1e00000,
1.22330 -+ &avr32_syntax_table[AVR32_SYNTAX_MOV2],
1.22331 -+ BFD_RELOC_AVR32_21S, 2, 1,
1.22332 -+ {
1.22333 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22334 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.22335 -+ },
1.22336 -+ },
1.22337 -+ {
1.22338 -+ AVR32_OPC_MOVEQ1, 4, 0xe0001700, 0xe1f0ffff,
1.22339 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVEQ1],
1.22340 -+ BFD_RELOC_UNUSED, 2, -1,
1.22341 -+ {
1.22342 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22343 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22344 -+ },
1.22345 -+ },
1.22346 -+ {
1.22347 -+ AVR32_OPC_MOVNE1, 4, 0xe0001710, 0xe1f0ffff,
1.22348 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVNE1],
1.22349 -+ BFD_RELOC_UNUSED, 2, -1,
1.22350 -+ {
1.22351 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22352 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22353 -+ },
1.22354 -+ },
1.22355 -+ {
1.22356 -+ AVR32_OPC_MOVCC1, 4, 0xe0001720, 0xe1f0ffff,
1.22357 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVHS1],
1.22358 -+ BFD_RELOC_UNUSED, 2, -1,
1.22359 -+ {
1.22360 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22361 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22362 -+ },
1.22363 -+ },
1.22364 -+ {
1.22365 -+ AVR32_OPC_MOVCS1, 4, 0xe0001730, 0xe1f0ffff,
1.22366 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVLO1],
1.22367 -+ BFD_RELOC_UNUSED, 2, -1,
1.22368 -+ {
1.22369 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22370 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22371 -+ },
1.22372 -+ },
1.22373 -+ {
1.22374 -+ AVR32_OPC_MOVGE1, 4, 0xe0001740, 0xe1f0ffff,
1.22375 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVGE1],
1.22376 -+ BFD_RELOC_UNUSED, 2, -1,
1.22377 -+ {
1.22378 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22379 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22380 -+ },
1.22381 -+ },
1.22382 -+ {
1.22383 -+ AVR32_OPC_MOVLT1, 4, 0xe0001750, 0xe1f0ffff,
1.22384 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVLT1],
1.22385 -+ BFD_RELOC_UNUSED, 2, -1,
1.22386 -+ {
1.22387 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22388 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22389 -+ },
1.22390 -+ },
1.22391 -+ {
1.22392 -+ AVR32_OPC_MOVMI1, 4, 0xe0001760, 0xe1f0ffff,
1.22393 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVMI1],
1.22394 -+ BFD_RELOC_UNUSED, 2, -1,
1.22395 -+ {
1.22396 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22397 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22398 -+ },
1.22399 -+ },
1.22400 -+ {
1.22401 -+ AVR32_OPC_MOVPL1, 4, 0xe0001770, 0xe1f0ffff,
1.22402 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVPL1],
1.22403 -+ BFD_RELOC_UNUSED, 2, -1,
1.22404 -+ {
1.22405 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22406 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22407 -+ },
1.22408 -+ },
1.22409 -+ {
1.22410 -+ AVR32_OPC_MOVLS1, 4, 0xe0001780, 0xe1f0ffff,
1.22411 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVLS1],
1.22412 -+ BFD_RELOC_UNUSED, 2, -1,
1.22413 -+ {
1.22414 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22415 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22416 -+ },
1.22417 -+ },
1.22418 -+ {
1.22419 -+ AVR32_OPC_MOVGT1, 4, 0xe0001790, 0xe1f0ffff,
1.22420 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVGT1],
1.22421 -+ BFD_RELOC_UNUSED, 2, -1,
1.22422 -+ {
1.22423 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22424 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22425 -+ },
1.22426 -+ },
1.22427 -+ {
1.22428 -+ AVR32_OPC_MOVLE1, 4, 0xe00017a0, 0xe1f0ffff,
1.22429 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVLE1],
1.22430 -+ BFD_RELOC_UNUSED, 2, -1,
1.22431 -+ {
1.22432 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22433 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22434 -+ },
1.22435 -+ },
1.22436 -+ {
1.22437 -+ AVR32_OPC_MOVHI1, 4, 0xe00017b0, 0xe1f0ffff,
1.22438 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVHI1],
1.22439 -+ BFD_RELOC_UNUSED, 2, -1,
1.22440 -+ {
1.22441 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22442 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22443 -+ },
1.22444 -+ },
1.22445 -+ {
1.22446 -+ AVR32_OPC_MOVVS1, 4, 0xe00017c0, 0xe1f0ffff,
1.22447 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVVS1],
1.22448 -+ BFD_RELOC_UNUSED, 2, -1,
1.22449 -+ {
1.22450 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22451 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22452 -+ },
1.22453 -+ },
1.22454 -+ {
1.22455 -+ AVR32_OPC_MOVVC1, 4, 0xe00017d0, 0xe1f0ffff,
1.22456 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVVC1],
1.22457 -+ BFD_RELOC_UNUSED, 2, -1,
1.22458 -+ {
1.22459 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22460 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22461 -+ },
1.22462 -+ },
1.22463 -+ {
1.22464 -+ AVR32_OPC_MOVQS1, 4, 0xe00017e0, 0xe1f0ffff,
1.22465 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVQS1],
1.22466 -+ BFD_RELOC_UNUSED, 2, -1,
1.22467 -+ {
1.22468 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22469 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22470 -+ },
1.22471 -+ },
1.22472 -+ {
1.22473 -+ AVR32_OPC_MOVAL1, 4, 0xe00017f0, 0xe1f0ffff,
1.22474 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVAL1],
1.22475 -+ BFD_RELOC_UNUSED, 2, -1,
1.22476 -+ {
1.22477 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22478 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22479 -+ },
1.22480 -+ },
1.22481 -+ {
1.22482 -+ AVR32_OPC_MOVEQ2, 4, 0xf9b00000, 0xfff0ff00,
1.22483 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVEQ2],
1.22484 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22485 -+ {
1.22486 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22487 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22488 -+ },
1.22489 -+ },
1.22490 -+ {
1.22491 -+ AVR32_OPC_MOVNE2, 4, 0xf9b00100, 0xfff0ff00,
1.22492 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVNE2],
1.22493 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22494 -+ {
1.22495 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22496 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22497 -+ },
1.22498 -+ },
1.22499 -+ {
1.22500 -+ AVR32_OPC_MOVCC2, 4, 0xf9b00200, 0xfff0ff00,
1.22501 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVHS2],
1.22502 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22503 -+ {
1.22504 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22505 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22506 -+ },
1.22507 -+ },
1.22508 -+ {
1.22509 -+ AVR32_OPC_MOVCS2, 4, 0xf9b00300, 0xfff0ff00,
1.22510 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVLO2],
1.22511 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22512 -+ {
1.22513 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22514 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22515 -+ },
1.22516 -+ },
1.22517 -+ {
1.22518 -+ AVR32_OPC_MOVGE2, 4, 0xf9b00400, 0xfff0ff00,
1.22519 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVGE2],
1.22520 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22521 -+ {
1.22522 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22523 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22524 -+ },
1.22525 -+ },
1.22526 -+ {
1.22527 -+ AVR32_OPC_MOVLT2, 4, 0xf9b00500, 0xfff0ff00,
1.22528 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVLT2],
1.22529 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22530 -+ {
1.22531 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22532 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22533 -+ },
1.22534 -+ },
1.22535 -+ {
1.22536 -+ AVR32_OPC_MOVMI2, 4, 0xf9b00600, 0xfff0ff00,
1.22537 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVMI2],
1.22538 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22539 -+ {
1.22540 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22541 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22542 -+ },
1.22543 -+ },
1.22544 -+ {
1.22545 -+ AVR32_OPC_MOVPL2, 4, 0xf9b00700, 0xfff0ff00,
1.22546 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVPL2],
1.22547 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22548 -+ {
1.22549 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22550 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22551 -+ },
1.22552 -+ },
1.22553 -+ {
1.22554 -+ AVR32_OPC_MOVLS2, 4, 0xf9b00800, 0xfff0ff00,
1.22555 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVLS2],
1.22556 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22557 -+ {
1.22558 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22559 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22560 -+ },
1.22561 -+ },
1.22562 -+ {
1.22563 -+ AVR32_OPC_MOVGT2, 4, 0xf9b00900, 0xfff0ff00,
1.22564 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVGT2],
1.22565 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22566 -+ {
1.22567 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22568 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22569 -+ },
1.22570 -+ },
1.22571 -+ {
1.22572 -+ AVR32_OPC_MOVLE2, 4, 0xf9b00a00, 0xfff0ff00,
1.22573 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVLE2],
1.22574 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22575 -+ {
1.22576 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22577 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22578 -+ },
1.22579 -+ },
1.22580 -+ {
1.22581 -+ AVR32_OPC_MOVHI2, 4, 0xf9b00b00, 0xfff0ff00,
1.22582 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVHI2],
1.22583 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22584 -+ {
1.22585 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22586 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22587 -+ },
1.22588 -+ },
1.22589 -+ {
1.22590 -+ AVR32_OPC_MOVVS2, 4, 0xf9b00c00, 0xfff0ff00,
1.22591 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVVS2],
1.22592 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22593 -+ {
1.22594 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22595 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22596 -+ },
1.22597 -+ },
1.22598 -+ {
1.22599 -+ AVR32_OPC_MOVVC2, 4, 0xf9b00d00, 0xfff0ff00,
1.22600 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVVC2],
1.22601 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22602 -+ {
1.22603 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22604 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22605 -+ },
1.22606 -+ },
1.22607 -+ {
1.22608 -+ AVR32_OPC_MOVQS2, 4, 0xf9b00e00, 0xfff0ff00,
1.22609 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVQS2],
1.22610 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22611 -+ {
1.22612 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22613 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22614 -+ },
1.22615 -+ },
1.22616 -+ {
1.22617 -+ AVR32_OPC_MOVAL2, 4, 0xf9b00f00, 0xfff0ff00,
1.22618 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVAL2],
1.22619 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.22620 -+ {
1.22621 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22622 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22623 -+ },
1.22624 -+ },
1.22625 -+ {
1.22626 -+ AVR32_OPC_MTDR, 4, 0xe7b00000, 0xfff0ff00,
1.22627 -+ &avr32_syntax_table[AVR32_SYNTAX_MTDR],
1.22628 -+ BFD_RELOC_AVR32_8S_EXT, 2, 0,
1.22629 -+ {
1.22630 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22631 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22632 -+ },
1.22633 -+ },
1.22634 -+ {
1.22635 -+ AVR32_OPC_MTSR, 4, 0xe3b00000, 0xfff0ff00,
1.22636 -+ &avr32_syntax_table[AVR32_SYNTAX_MTSR],
1.22637 -+ BFD_RELOC_AVR32_8S_EXT, 2, 0,
1.22638 -+ {
1.22639 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22640 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22641 -+ },
1.22642 -+ },
1.22643 -+ {
1.22644 -+ AVR32_OPC_MUL1, 2, 0xa1300000, 0xe1f00000,
1.22645 -+ &avr32_syntax_table[AVR32_SYNTAX_MUL1],
1.22646 -+ BFD_RELOC_UNUSED, 2, -1,
1.22647 -+ {
1.22648 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22649 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22650 -+ },
1.22651 -+ },
1.22652 -+ {
1.22653 -+ AVR32_OPC_MUL2, 4, 0xe0000240, 0xe1f0fff0,
1.22654 -+ &avr32_syntax_table[AVR32_SYNTAX_MUL2],
1.22655 -+ BFD_RELOC_UNUSED, 3, -1,
1.22656 -+ {
1.22657 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22658 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22659 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22660 -+ },
1.22661 -+ },
1.22662 -+ {
1.22663 -+ AVR32_OPC_MUL3, 4, 0xe0001000, 0xe1f0ff00,
1.22664 -+ &avr32_syntax_table[AVR32_SYNTAX_MUL3],
1.22665 -+ BFD_RELOC_AVR32_8S_EXT, 3, 2,
1.22666 -+ {
1.22667 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22668 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22669 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.22670 -+ },
1.22671 -+ },
1.22672 -+ {
1.22673 -+ AVR32_OPC_MULHH_W, 4, 0xe0000780, 0xe1f0ffc0,
1.22674 -+ &avr32_syntax_table[AVR32_SYNTAX_MULHH_W],
1.22675 -+ BFD_RELOC_UNUSED, 5, -1,
1.22676 -+ {
1.22677 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22678 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22679 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.22680 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22681 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.22682 -+ },
1.22683 -+ },
1.22684 -+ {
1.22685 -+ AVR32_OPC_MULNHH_W, 4, 0xe0000180, 0xe1f0ffc0,
1.22686 -+ &avr32_syntax_table[AVR32_SYNTAX_MULNHH_W],
1.22687 -+ BFD_RELOC_UNUSED, 5, -1,
1.22688 -+ {
1.22689 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22690 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22691 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.22692 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22693 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.22694 -+ },
1.22695 -+ },
1.22696 -+ {
1.22697 -+ AVR32_OPC_MULNWH_D, 4, 0xe0000280, 0xe1f0ffe1,
1.22698 -+ &avr32_syntax_table[AVR32_SYNTAX_MULNWH_D],
1.22699 -+ BFD_RELOC_UNUSED, 4, -1,
1.22700 -+ {
1.22701 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22702 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22703 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22704 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.22705 -+ },
1.22706 -+ },
1.22707 -+ {
1.22708 -+ AVR32_OPC_MULSD, 4, 0xe0000440, 0xe1f0fff0,
1.22709 -+ &avr32_syntax_table[AVR32_SYNTAX_MULSD],
1.22710 -+ BFD_RELOC_UNUSED, 3, -1,
1.22711 -+ {
1.22712 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22713 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22714 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22715 -+ },
1.22716 -+ },
1.22717 -+ {
1.22718 -+ AVR32_OPC_MULSATHH_H, 4, 0xe0000880, 0xe1f0ffc0,
1.22719 -+ &avr32_syntax_table[AVR32_SYNTAX_MULSATHH_H],
1.22720 -+ BFD_RELOC_UNUSED, 5, -1,
1.22721 -+ {
1.22722 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22723 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22724 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.22725 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22726 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.22727 -+ },
1.22728 -+ },
1.22729 -+ {
1.22730 -+ AVR32_OPC_MULSATHH_W, 4, 0xe0000980, 0xe1f0ffc0,
1.22731 -+ &avr32_syntax_table[AVR32_SYNTAX_MULSATHH_W],
1.22732 -+ BFD_RELOC_UNUSED, 5, -1,
1.22733 -+ {
1.22734 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22735 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22736 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.22737 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22738 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.22739 -+ },
1.22740 -+ },
1.22741 -+ {
1.22742 -+ AVR32_OPC_MULSATRNDHH_H, 4, 0xe0000a80, 0xe1f0ffc0,
1.22743 -+ &avr32_syntax_table[AVR32_SYNTAX_MULSATRNDHH_H],
1.22744 -+ BFD_RELOC_UNUSED, 5, -1,
1.22745 -+ {
1.22746 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22747 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22748 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.22749 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22750 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.22751 -+ },
1.22752 -+ },
1.22753 -+ {
1.22754 -+ AVR32_OPC_MULSATRNDWH_W, 4, 0xe0000b80, 0xe1f0ffe0,
1.22755 -+ &avr32_syntax_table[AVR32_SYNTAX_MULSATRNDWH_W],
1.22756 -+ BFD_RELOC_UNUSED, 4, -1,
1.22757 -+ {
1.22758 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22759 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22760 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22761 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.22762 -+ },
1.22763 -+ },
1.22764 -+ {
1.22765 -+ AVR32_OPC_MULSATWH_W, 4, 0xe0000e80, 0xe1f0ffe0,
1.22766 -+ &avr32_syntax_table[AVR32_SYNTAX_MULSATWH_W],
1.22767 -+ BFD_RELOC_UNUSED, 4, -1,
1.22768 -+ {
1.22769 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22770 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22771 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22772 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.22773 -+ },
1.22774 -+ },
1.22775 -+ {
1.22776 -+ AVR32_OPC_MULU_D, 4, 0xe0000640, 0xe1f0fff1,
1.22777 -+ &avr32_syntax_table[AVR32_SYNTAX_MULU_D],
1.22778 -+ BFD_RELOC_UNUSED, 3, -1,
1.22779 -+ {
1.22780 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22781 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22782 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22783 -+ },
1.22784 -+ },
1.22785 -+ {
1.22786 -+ AVR32_OPC_MULWH_D, 4, 0xe0000d80, 0xe1f0ffe1,
1.22787 -+ &avr32_syntax_table[AVR32_SYNTAX_MULWH_D],
1.22788 -+ BFD_RELOC_UNUSED, 4, -1,
1.22789 -+ {
1.22790 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22791 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22792 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22793 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.22794 -+ },
1.22795 -+ },
1.22796 -+ {
1.22797 -+ AVR32_OPC_MUSFR, 2, 0x5d300000, 0xfff00000,
1.22798 -+ &avr32_syntax_table[AVR32_SYNTAX_MUSFR],
1.22799 -+ BFD_RELOC_UNUSED, 1, -1,
1.22800 -+ {
1.22801 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22802 -+ }
1.22803 -+ },
1.22804 -+ {
1.22805 -+ AVR32_OPC_MUSTR, 2, 0x5d200000, 0xfff00000,
1.22806 -+ &avr32_syntax_table[AVR32_SYNTAX_MUSTR],
1.22807 -+ BFD_RELOC_UNUSED, 1, -1,
1.22808 -+ {
1.22809 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22810 -+ }
1.22811 -+ },
1.22812 -+ {
1.22813 -+ AVR32_OPC_MVCR_D, 4, 0xefa00010, 0xfff111ff,
1.22814 -+ &avr32_syntax_table[AVR32_SYNTAX_MVCR_D],
1.22815 -+ BFD_RELOC_UNUSED, 3, -1,
1.22816 -+ {
1.22817 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.22818 -+ &avr32_ifield_table[AVR32_IFIELD_RY_DW],
1.22819 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_DW],
1.22820 -+ },
1.22821 -+ },
1.22822 -+ {
1.22823 -+ AVR32_OPC_MVCR_W, 4, 0xefa00000, 0xfff010ff,
1.22824 -+ &avr32_syntax_table[AVR32_SYNTAX_MVCR_W],
1.22825 -+ BFD_RELOC_UNUSED, 3, -1,
1.22826 -+ {
1.22827 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.22828 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22829 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_RI],
1.22830 -+ },
1.22831 -+ },
1.22832 -+ {
1.22833 -+ AVR32_OPC_MVRC_D, 4, 0xefa00030, 0xfff111ff,
1.22834 -+ &avr32_syntax_table[AVR32_SYNTAX_MVRC_D],
1.22835 -+ BFD_RELOC_UNUSED, 3, -1,
1.22836 -+ {
1.22837 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.22838 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_DW],
1.22839 -+ &avr32_ifield_table[AVR32_IFIELD_RY_DW],
1.22840 -+ },
1.22841 -+ },
1.22842 -+ {
1.22843 -+ AVR32_OPC_MVRC_W, 4, 0xefa00020, 0xfff010ff,
1.22844 -+ &avr32_syntax_table[AVR32_SYNTAX_MVRC_W],
1.22845 -+ BFD_RELOC_UNUSED, 3, -1,
1.22846 -+ {
1.22847 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.22848 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_RI],
1.22849 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22850 -+ },
1.22851 -+ },
1.22852 -+ {
1.22853 -+ AVR32_OPC_NEG, 2, 0x5c300000, 0xfff00000,
1.22854 -+ &avr32_syntax_table[AVR32_SYNTAX_NEG],
1.22855 -+ BFD_RELOC_UNUSED, 1, -1,
1.22856 -+ {
1.22857 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22858 -+ }
1.22859 -+ },
1.22860 -+ {
1.22861 -+ AVR32_OPC_NOP, 2, 0xd7030000, 0xffff0000,
1.22862 -+ &avr32_syntax_table[AVR32_SYNTAX_NOP],
1.22863 -+ BFD_RELOC_UNUSED, 0, -1, { NULL },
1.22864 -+ },
1.22865 -+ {
1.22866 -+ AVR32_OPC_OR1, 2, 0x00400000, 0xe1f00000,
1.22867 -+ &avr32_syntax_table[AVR32_SYNTAX_OR1],
1.22868 -+ BFD_RELOC_UNUSED, 2, -1,
1.22869 -+ {
1.22870 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22871 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22872 -+ },
1.22873 -+ },
1.22874 -+ {
1.22875 -+ AVR32_OPC_OR2, 4, 0xe1e01000, 0xe1f0fe00,
1.22876 -+ &avr32_syntax_table[AVR32_SYNTAX_OR2],
1.22877 -+ BFD_RELOC_UNUSED, 4, -1,
1.22878 -+ {
1.22879 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22880 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22881 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22882 -+ &avr32_ifield_table[AVR32_IFIELD_K5E2],
1.22883 -+ },
1.22884 -+ },
1.22885 -+ {
1.22886 -+ AVR32_OPC_OR3, 4, 0xe1e01200, 0xe1f0fe00,
1.22887 -+ &avr32_syntax_table[AVR32_SYNTAX_OR3],
1.22888 -+ BFD_RELOC_UNUSED, 4, -1,
1.22889 -+ {
1.22890 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22891 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22892 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22893 -+ &avr32_ifield_table[AVR32_IFIELD_K5E2],
1.22894 -+ },
1.22895 -+ },
1.22896 -+ {
1.22897 -+ AVR32_OPC_ORH, 4, 0xea100000, 0xfff00000,
1.22898 -+ &avr32_syntax_table[AVR32_SYNTAX_ORH],
1.22899 -+ BFD_RELOC_AVR32_16U, 2, 1,
1.22900 -+ {
1.22901 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22902 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.22903 -+ },
1.22904 -+ },
1.22905 -+ {
1.22906 -+ AVR32_OPC_ORL, 4, 0xe8100000, 0xfff00000,
1.22907 -+ &avr32_syntax_table[AVR32_SYNTAX_ORL],
1.22908 -+ BFD_RELOC_AVR32_16U, 2, 1,
1.22909 -+ {
1.22910 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22911 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.22912 -+ },
1.22913 -+ },
1.22914 -+ {
1.22915 -+ AVR32_OPC_PABS_SB, 4, 0xe00023e0, 0xfff0fff0,
1.22916 -+ &avr32_syntax_table[AVR32_SYNTAX_PABS_SB],
1.22917 -+ BFD_RELOC_UNUSED, 2, -1,
1.22918 -+ {
1.22919 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22920 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22921 -+ },
1.22922 -+ },
1.22923 -+ {
1.22924 -+ AVR32_OPC_PABS_SH, 4, 0xe00023f0, 0xfff0fff0,
1.22925 -+ &avr32_syntax_table[AVR32_SYNTAX_PABS_SH],
1.22926 -+ BFD_RELOC_UNUSED, 2, -1,
1.22927 -+ {
1.22928 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22929 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22930 -+ },
1.22931 -+ },
1.22932 -+ {
1.22933 -+ AVR32_OPC_PACKSH_SB, 4, 0xe00024d0, 0xe1f0fff0,
1.22934 -+ &avr32_syntax_table[AVR32_SYNTAX_PACKSH_SB],
1.22935 -+ BFD_RELOC_UNUSED, 3, -1,
1.22936 -+ {
1.22937 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22938 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22939 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22940 -+ },
1.22941 -+ },
1.22942 -+ {
1.22943 -+ AVR32_OPC_PACKSH_UB, 4, 0xe00024c0, 0xe1f0fff0,
1.22944 -+ &avr32_syntax_table[AVR32_SYNTAX_PACKSH_UB],
1.22945 -+ BFD_RELOC_UNUSED, 3, -1,
1.22946 -+ {
1.22947 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22948 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22949 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22950 -+ },
1.22951 -+ },
1.22952 -+ {
1.22953 -+ AVR32_OPC_PACKW_SH, 4, 0xe0002470, 0xe1f0fff0,
1.22954 -+ &avr32_syntax_table[AVR32_SYNTAX_PACKW_SH],
1.22955 -+ BFD_RELOC_UNUSED, 3, -1,
1.22956 -+ {
1.22957 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22958 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22959 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22960 -+ },
1.22961 -+ },
1.22962 -+ {
1.22963 -+ AVR32_OPC_PADD_B, 4, 0xe0002300, 0xe1f0fff0,
1.22964 -+ &avr32_syntax_table[AVR32_SYNTAX_PADD_B],
1.22965 -+ BFD_RELOC_UNUSED, 3, -1,
1.22966 -+ {
1.22967 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22968 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22969 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22970 -+ },
1.22971 -+ },
1.22972 -+ {
1.22973 -+ AVR32_OPC_PADD_H, 4, 0xe0002000, 0xe1f0fff0,
1.22974 -+ &avr32_syntax_table[AVR32_SYNTAX_PADD_H],
1.22975 -+ BFD_RELOC_UNUSED, 3, -1,
1.22976 -+ {
1.22977 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22978 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22979 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22980 -+ },
1.22981 -+ },
1.22982 -+ {
1.22983 -+ AVR32_OPC_PADDH_SH, 4, 0xe00020c0, 0xe1f0fff0,
1.22984 -+ &avr32_syntax_table[AVR32_SYNTAX_PADDH_SH],
1.22985 -+ BFD_RELOC_UNUSED, 3, -1,
1.22986 -+ {
1.22987 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22988 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22989 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.22990 -+ },
1.22991 -+ },
1.22992 -+ {
1.22993 -+ AVR32_OPC_PADDH_UB, 4, 0xe0002360, 0xe1f0fff0,
1.22994 -+ &avr32_syntax_table[AVR32_SYNTAX_PADDH_UB],
1.22995 -+ BFD_RELOC_UNUSED, 3, -1,
1.22996 -+ {
1.22997 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.22998 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.22999 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23000 -+ },
1.23001 -+ },
1.23002 -+ {
1.23003 -+ AVR32_OPC_PADDS_SB, 4, 0xe0002320, 0xe1f0fff0,
1.23004 -+ &avr32_syntax_table[AVR32_SYNTAX_PADDS_SB],
1.23005 -+ BFD_RELOC_UNUSED, 3, -1,
1.23006 -+ {
1.23007 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23008 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23009 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23010 -+ },
1.23011 -+ },
1.23012 -+ {
1.23013 -+ AVR32_OPC_PADDS_SH, 4, 0xe0002040, 0xe1f0fff0,
1.23014 -+ &avr32_syntax_table[AVR32_SYNTAX_PADDS_SH],
1.23015 -+ BFD_RELOC_UNUSED, 3, -1,
1.23016 -+ {
1.23017 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23018 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23019 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23020 -+ },
1.23021 -+ },
1.23022 -+ {
1.23023 -+ AVR32_OPC_PADDS_UB, 4, 0xe0002340, 0xe1f0fff0,
1.23024 -+ &avr32_syntax_table[AVR32_SYNTAX_PADDS_UB],
1.23025 -+ BFD_RELOC_UNUSED, 3, -1,
1.23026 -+ {
1.23027 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23028 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23029 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23030 -+ },
1.23031 -+ },
1.23032 -+ {
1.23033 -+ AVR32_OPC_PADDS_UH, 4, 0xe0002080, 0xe1f0fff0,
1.23034 -+ &avr32_syntax_table[AVR32_SYNTAX_PADDS_UH],
1.23035 -+ BFD_RELOC_UNUSED, 3, -1,
1.23036 -+ {
1.23037 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23038 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23039 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23040 -+ },
1.23041 -+ },
1.23042 -+ {
1.23043 -+ AVR32_OPC_PADDSUB_H, 4, 0xe0002100, 0xe1f0ffc0,
1.23044 -+ &avr32_syntax_table[AVR32_SYNTAX_PADDSUB_H],
1.23045 -+ BFD_RELOC_UNUSED, 5, -1,
1.23046 -+ {
1.23047 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23048 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23049 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.23050 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23051 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.23052 -+ },
1.23053 -+ },
1.23054 -+ {
1.23055 -+ AVR32_OPC_PADDSUBH_SH, 4, 0xe0002280, 0xe1f0ffc0,
1.23056 -+ &avr32_syntax_table[AVR32_SYNTAX_PADDSUBH_SH],
1.23057 -+ BFD_RELOC_UNUSED, 5, -1,
1.23058 -+ {
1.23059 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23060 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23061 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.23062 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23063 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.23064 -+ },
1.23065 -+ },
1.23066 -+ {
1.23067 -+ AVR32_OPC_PADDSUBS_SH, 4, 0xe0002180, 0xe1f0ffc0,
1.23068 -+ &avr32_syntax_table[AVR32_SYNTAX_PADDSUBS_SH],
1.23069 -+ BFD_RELOC_UNUSED, 5, -1,
1.23070 -+ {
1.23071 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23072 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23073 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.23074 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23075 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.23076 -+ },
1.23077 -+ },
1.23078 -+ {
1.23079 -+ AVR32_OPC_PADDSUBS_UH, 4, 0xe0002200, 0xe1f0ffc0,
1.23080 -+ &avr32_syntax_table[AVR32_SYNTAX_PADDSUBS_UH],
1.23081 -+ BFD_RELOC_UNUSED, 5, -1,
1.23082 -+ {
1.23083 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23084 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23085 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.23086 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23087 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.23088 -+ },
1.23089 -+ },
1.23090 -+ {
1.23091 -+ AVR32_OPC_PADDX_H, 4, 0xe0002020, 0xe1f0fff0,
1.23092 -+ &avr32_syntax_table[AVR32_SYNTAX_PADDX_H],
1.23093 -+ BFD_RELOC_UNUSED, 3, -1,
1.23094 -+ {
1.23095 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23096 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23097 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23098 -+ },
1.23099 -+ },
1.23100 -+ {
1.23101 -+ AVR32_OPC_PADDXH_SH, 4, 0xe00020e0, 0xe1f0fff0,
1.23102 -+ &avr32_syntax_table[AVR32_SYNTAX_PADDXH_SH],
1.23103 -+ BFD_RELOC_UNUSED, 3, -1,
1.23104 -+ {
1.23105 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23106 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23107 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23108 -+ },
1.23109 -+ },
1.23110 -+ {
1.23111 -+ AVR32_OPC_PADDXS_SH, 4, 0xe0002060, 0xe1f0fff0,
1.23112 -+ &avr32_syntax_table[AVR32_SYNTAX_PADDXS_SH],
1.23113 -+ BFD_RELOC_UNUSED, 3, -1,
1.23114 -+ {
1.23115 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23116 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23117 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23118 -+ },
1.23119 -+ },
1.23120 -+ {
1.23121 -+ AVR32_OPC_PADDXS_UH, 4, 0xe00020a0, 0xe1f0fff0,
1.23122 -+ &avr32_syntax_table[AVR32_SYNTAX_PADDXS_UH],
1.23123 -+ BFD_RELOC_UNUSED, 3, -1,
1.23124 -+ {
1.23125 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23126 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23127 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23128 -+ },
1.23129 -+ },
1.23130 -+ {
1.23131 -+ AVR32_OPC_PASR_B, 4, 0xe0002410, 0xe1f8fff0,
1.23132 -+ &avr32_syntax_table[AVR32_SYNTAX_PASR_B],
1.23133 -+ BFD_RELOC_UNUSED, 3, -1,
1.23134 -+ {
1.23135 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23136 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23137 -+ &avr32_ifield_table[AVR32_IFIELD_COND3],
1.23138 -+ },
1.23139 -+ },
1.23140 -+ {
1.23141 -+ AVR32_OPC_PASR_H, 4, 0xe0002440, 0xe1f0fff0,
1.23142 -+ &avr32_syntax_table[AVR32_SYNTAX_PASR_H],
1.23143 -+ BFD_RELOC_UNUSED, 3, -1,
1.23144 -+ {
1.23145 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23146 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23147 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23148 -+ },
1.23149 -+ },
1.23150 -+ {
1.23151 -+ AVR32_OPC_PAVG_SH, 4, 0xe00023d0, 0xe1f0fff0,
1.23152 -+ &avr32_syntax_table[AVR32_SYNTAX_PAVG_SH],
1.23153 -+ BFD_RELOC_UNUSED, 3, -1,
1.23154 -+ {
1.23155 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23156 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23157 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23158 -+ },
1.23159 -+ },
1.23160 -+ {
1.23161 -+ AVR32_OPC_PAVG_UB, 4, 0xe00023c0, 0xe1f0fff0,
1.23162 -+ &avr32_syntax_table[AVR32_SYNTAX_PAVG_UB],
1.23163 -+ BFD_RELOC_UNUSED, 3, -1,
1.23164 -+ {
1.23165 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23166 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23167 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23168 -+ },
1.23169 -+ },
1.23170 -+ {
1.23171 -+ AVR32_OPC_PLSL_B, 4, 0xe0002420, 0xe1f8fff0,
1.23172 -+ &avr32_syntax_table[AVR32_SYNTAX_PLSL_B],
1.23173 -+ BFD_RELOC_UNUSED, 3, -1,
1.23174 -+ {
1.23175 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23176 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23177 -+ &avr32_ifield_table[AVR32_IFIELD_COND3],
1.23178 -+ },
1.23179 -+ },
1.23180 -+ {
1.23181 -+ AVR32_OPC_PLSL_H, 4, 0xe0002450, 0xe1f0fff0,
1.23182 -+ &avr32_syntax_table[AVR32_SYNTAX_PLSL_H],
1.23183 -+ BFD_RELOC_UNUSED, 3, -1,
1.23184 -+ {
1.23185 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23186 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23187 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23188 -+ },
1.23189 -+ },
1.23190 -+ {
1.23191 -+ AVR32_OPC_PLSR_B, 4, 0xe0002430, 0xe1f8fff0,
1.23192 -+ &avr32_syntax_table[AVR32_SYNTAX_PLSR_B],
1.23193 -+ BFD_RELOC_UNUSED, 3, -1,
1.23194 -+ {
1.23195 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23196 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23197 -+ &avr32_ifield_table[AVR32_IFIELD_COND3],
1.23198 -+ },
1.23199 -+ },
1.23200 -+ {
1.23201 -+ AVR32_OPC_PLSR_H, 4, 0xe0002460, 0xe1f0fff0,
1.23202 -+ &avr32_syntax_table[AVR32_SYNTAX_PLSR_H],
1.23203 -+ BFD_RELOC_UNUSED, 3, -1,
1.23204 -+ {
1.23205 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23206 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23207 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23208 -+ },
1.23209 -+ },
1.23210 -+ {
1.23211 -+ AVR32_OPC_PMAX_SH, 4, 0xe0002390, 0xe1f0fff0,
1.23212 -+ &avr32_syntax_table[AVR32_SYNTAX_PMAX_SH],
1.23213 -+ BFD_RELOC_UNUSED, 3, -1,
1.23214 -+ {
1.23215 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23216 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23217 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23218 -+ },
1.23219 -+ },
1.23220 -+ {
1.23221 -+ AVR32_OPC_PMAX_UB, 4, 0xe0002380, 0xe1f0fff0,
1.23222 -+ &avr32_syntax_table[AVR32_SYNTAX_PMAX_UB],
1.23223 -+ BFD_RELOC_UNUSED, 3, -1,
1.23224 -+ {
1.23225 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23226 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23227 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23228 -+ },
1.23229 -+ },
1.23230 -+ {
1.23231 -+ AVR32_OPC_PMIN_SH, 4, 0xe00023b0, 0xe1f0fff0,
1.23232 -+ &avr32_syntax_table[AVR32_SYNTAX_PMIN_SH],
1.23233 -+ BFD_RELOC_UNUSED, 3, -1,
1.23234 -+ {
1.23235 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23236 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23237 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23238 -+ },
1.23239 -+ },
1.23240 -+ {
1.23241 -+ AVR32_OPC_PMIN_UB, 4, 0xe00023a0, 0xe1f0fff0,
1.23242 -+ &avr32_syntax_table[AVR32_SYNTAX_PMIN_UB],
1.23243 -+ BFD_RELOC_UNUSED, 3, -1,
1.23244 -+ {
1.23245 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23246 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23247 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23248 -+ },
1.23249 -+ },
1.23250 -+ {
1.23251 -+ AVR32_OPC_POPJC, 2, 0xd7130000, 0xffff0000,
1.23252 -+ &avr32_syntax_table[AVR32_SYNTAX_POPJC],
1.23253 -+ BFD_RELOC_UNUSED, 0, -1, { NULL },
1.23254 -+ },
1.23255 -+ {
1.23256 -+ AVR32_OPC_POPM, 2, 0xd0020000, 0xf0070000,
1.23257 -+ &avr32_syntax_table[AVR32_SYNTAX_POPM],
1.23258 -+ BFD_RELOC_UNUSED, 1, -1,
1.23259 -+ {
1.23260 -+ &avr32_ifield_table[AVR32_IFIELD_POPM],
1.23261 -+ },
1.23262 -+ },
1.23263 -+ {
1.23264 -+ AVR32_OPC_POPM_E, 4, 0xe3cd0000, 0xffff0000,
1.23265 -+ &avr32_syntax_table[AVR32_SYNTAX_POPM_E],
1.23266 -+ BFD_RELOC_UNUSED, 1, -1,
1.23267 -+ {
1.23268 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.23269 -+ },
1.23270 -+ },
1.23271 -+ {
1.23272 -+ AVR32_OPC_PREF, 4, 0xf2100000, 0xfff00000,
1.23273 -+ &avr32_syntax_table[AVR32_SYNTAX_PREF],
1.23274 -+ BFD_RELOC_AVR32_16S, 2, -1,
1.23275 -+ {
1.23276 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23277 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.23278 -+ },
1.23279 -+ },
1.23280 -+ {
1.23281 -+ AVR32_OPC_PSAD, 4, 0xe0002400, 0xe1f0fff0,
1.23282 -+ &avr32_syntax_table[AVR32_SYNTAX_PSAD],
1.23283 -+ BFD_RELOC_UNUSED, 3, -1,
1.23284 -+ {
1.23285 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23286 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23287 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23288 -+ },
1.23289 -+ },
1.23290 -+ {
1.23291 -+ AVR32_OPC_PSUB_B, 4, 0xe0002310, 0xe1f0fff0,
1.23292 -+ &avr32_syntax_table[AVR32_SYNTAX_PSUB_B],
1.23293 -+ BFD_RELOC_UNUSED, 3, -1,
1.23294 -+ {
1.23295 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23296 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23297 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23298 -+ },
1.23299 -+ },
1.23300 -+ {
1.23301 -+ AVR32_OPC_PSUB_H, 4, 0xe0002010, 0xe1f0fff0,
1.23302 -+ &avr32_syntax_table[AVR32_SYNTAX_PSUB_H],
1.23303 -+ BFD_RELOC_UNUSED, 3, -1,
1.23304 -+ {
1.23305 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23306 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23307 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23308 -+ },
1.23309 -+ },
1.23310 -+ {
1.23311 -+ AVR32_OPC_PSUBADD_H, 4, 0xe0002140, 0xe1f0ffc0,
1.23312 -+ &avr32_syntax_table[AVR32_SYNTAX_PSUBADD_H],
1.23313 -+ BFD_RELOC_UNUSED, 5, -1,
1.23314 -+ {
1.23315 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23316 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23317 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.23318 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23319 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.23320 -+ },
1.23321 -+ },
1.23322 -+ {
1.23323 -+ AVR32_OPC_PSUBADDH_SH, 4, 0xe00022c0, 0xe1f0ffc0,
1.23324 -+ &avr32_syntax_table[AVR32_SYNTAX_PSUBADDH_SH],
1.23325 -+ BFD_RELOC_UNUSED, 5, -1,
1.23326 -+ {
1.23327 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23328 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23329 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.23330 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23331 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.23332 -+ },
1.23333 -+ },
1.23334 -+ {
1.23335 -+ AVR32_OPC_PSUBADDS_SH, 4, 0xe00021c0, 0xe1f0ffc0,
1.23336 -+ &avr32_syntax_table[AVR32_SYNTAX_PSUBADDS_SH],
1.23337 -+ BFD_RELOC_UNUSED, 5, -1,
1.23338 -+ {
1.23339 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23340 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23341 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.23342 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23343 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.23344 -+ },
1.23345 -+ },
1.23346 -+ {
1.23347 -+ AVR32_OPC_PSUBADDS_UH, 4, 0xe0002240, 0xe1f0ffc0,
1.23348 -+ &avr32_syntax_table[AVR32_SYNTAX_PSUBADDS_UH],
1.23349 -+ BFD_RELOC_UNUSED, 5, -1,
1.23350 -+ {
1.23351 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23352 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23353 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.23354 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23355 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.23356 -+ },
1.23357 -+ },
1.23358 -+ {
1.23359 -+ AVR32_OPC_PSUBH_SH, 4, 0xe00020d0, 0xe1f0fff0,
1.23360 -+ &avr32_syntax_table[AVR32_SYNTAX_PSUBH_SH],
1.23361 -+ BFD_RELOC_UNUSED, 3, -1,
1.23362 -+ {
1.23363 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23364 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23365 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23366 -+ },
1.23367 -+ },
1.23368 -+ {
1.23369 -+ AVR32_OPC_PSUBH_UB, 4, 0xe0002370, 0xe1f0fff0,
1.23370 -+ &avr32_syntax_table[AVR32_SYNTAX_PSUBH_UB],
1.23371 -+ BFD_RELOC_UNUSED, 3, -1,
1.23372 -+ {
1.23373 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23374 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23375 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23376 -+ },
1.23377 -+ },
1.23378 -+ {
1.23379 -+ AVR32_OPC_PSUBS_SB, 4, 0xe0002330, 0xe1f0fff0,
1.23380 -+ &avr32_syntax_table[AVR32_SYNTAX_PSUBS_SB],
1.23381 -+ BFD_RELOC_UNUSED, 3, -1,
1.23382 -+ {
1.23383 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23384 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23385 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23386 -+ },
1.23387 -+ },
1.23388 -+ {
1.23389 -+ AVR32_OPC_PSUBS_SH, 4, 0xe0002050, 0xe1f0fff0,
1.23390 -+ &avr32_syntax_table[AVR32_SYNTAX_PSUBS_SH],
1.23391 -+ BFD_RELOC_UNUSED, 3, -1,
1.23392 -+ {
1.23393 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23394 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23395 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23396 -+ },
1.23397 -+ },
1.23398 -+ {
1.23399 -+ AVR32_OPC_PSUBS_UB, 4, 0xe0002350, 0xe1f0fff0,
1.23400 -+ &avr32_syntax_table[AVR32_SYNTAX_PSUBS_UB],
1.23401 -+ BFD_RELOC_UNUSED, 3, -1,
1.23402 -+ {
1.23403 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23404 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23405 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23406 -+ },
1.23407 -+ },
1.23408 -+ {
1.23409 -+ AVR32_OPC_PSUBS_UH, 4, 0xe0002090, 0xe1f0fff0,
1.23410 -+ &avr32_syntax_table[AVR32_SYNTAX_PSUBS_UH],
1.23411 -+ BFD_RELOC_UNUSED, 3, -1,
1.23412 -+ {
1.23413 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23414 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23415 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23416 -+ },
1.23417 -+ },
1.23418 -+ {
1.23419 -+ AVR32_OPC_PSUBX_H, 4, 0xe0002030, 0xe1f0fff0,
1.23420 -+ &avr32_syntax_table[AVR32_SYNTAX_PSUBX_H],
1.23421 -+ BFD_RELOC_UNUSED, 3, -1,
1.23422 -+ {
1.23423 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23424 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23425 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23426 -+ },
1.23427 -+ },
1.23428 -+ {
1.23429 -+ AVR32_OPC_PSUBXH_SH, 4, 0xe00020f0, 0xe1f0fff0,
1.23430 -+ &avr32_syntax_table[AVR32_SYNTAX_PSUBXH_SH],
1.23431 -+ BFD_RELOC_UNUSED, 3, -1,
1.23432 -+ {
1.23433 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23434 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23435 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23436 -+ },
1.23437 -+ },
1.23438 -+ {
1.23439 -+ AVR32_OPC_PSUBXS_SH, 4, 0xe0002070, 0xe1f0fff0,
1.23440 -+ &avr32_syntax_table[AVR32_SYNTAX_PSUBXS_SH],
1.23441 -+ BFD_RELOC_UNUSED, 3, -1,
1.23442 -+ {
1.23443 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23444 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23445 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23446 -+ },
1.23447 -+ },
1.23448 -+ {
1.23449 -+ AVR32_OPC_PSUBXS_UH, 4, 0xe00020b0, 0xe1f0fff0,
1.23450 -+ &avr32_syntax_table[AVR32_SYNTAX_PSUBXS_UH],
1.23451 -+ BFD_RELOC_UNUSED, 3, -1,
1.23452 -+ {
1.23453 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23454 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23455 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23456 -+ },
1.23457 -+ },
1.23458 -+ {
1.23459 -+ AVR32_OPC_PUNPCKSB_H, 4, 0xe00024a0, 0xe1ffffe0,
1.23460 -+ &avr32_syntax_table[AVR32_SYNTAX_PUNPCKSB_H],
1.23461 -+ BFD_RELOC_UNUSED, 3, -1,
1.23462 -+ {
1.23463 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23464 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23465 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.23466 -+ },
1.23467 -+ },
1.23468 -+ {
1.23469 -+ AVR32_OPC_PUNPCKUB_H, 4, 0xe0002480, 0xe1ffffe0,
1.23470 -+ &avr32_syntax_table[AVR32_SYNTAX_PUNPCKUB_H],
1.23471 -+ BFD_RELOC_UNUSED, 3, -1,
1.23472 -+ {
1.23473 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23474 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23475 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.23476 -+ },
1.23477 -+ },
1.23478 -+ {
1.23479 -+ AVR32_OPC_PUSHJC, 2, 0xd7230000, 0xffff0000,
1.23480 -+ &avr32_syntax_table[AVR32_SYNTAX_PUSHJC],
1.23481 -+ BFD_RELOC_UNUSED, 0, -1, { NULL },
1.23482 -+ },
1.23483 -+ {
1.23484 -+ AVR32_OPC_PUSHM, 2, 0xd0010000, 0xf00f0000,
1.23485 -+ &avr32_syntax_table[AVR32_SYNTAX_PUSHM],
1.23486 -+ BFD_RELOC_UNUSED, 1, -1,
1.23487 -+ {
1.23488 -+ &avr32_ifield_table[AVR32_IFIELD_K8C],
1.23489 -+ },
1.23490 -+ },
1.23491 -+ {
1.23492 -+ AVR32_OPC_PUSHM_E, 4, 0xebcd0000, 0xffff0000,
1.23493 -+ &avr32_syntax_table[AVR32_SYNTAX_PUSHM_E],
1.23494 -+ BFD_RELOC_UNUSED, 1, -1,
1.23495 -+ {
1.23496 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.23497 -+ },
1.23498 -+ },
1.23499 -+ {
1.23500 -+ AVR32_OPC_RCALL1, 2, 0xc00c0000, 0xf00c0000,
1.23501 -+ &avr32_syntax_table[AVR32_SYNTAX_RCALL1],
1.23502 -+ BFD_RELOC_AVR32_11H_PCREL, 1, 0,
1.23503 -+ {
1.23504 -+ &avr32_ifield_table[AVR32_IFIELD_K10],
1.23505 -+ },
1.23506 -+ },
1.23507 -+ {
1.23508 -+ AVR32_OPC_RCALL2, 4, 0xe0a00000, 0xe1ef0000,
1.23509 -+ &avr32_syntax_table[AVR32_SYNTAX_RCALL2],
1.23510 -+ BFD_RELOC_AVR32_22H_PCREL, 1, 0,
1.23511 -+ {
1.23512 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.23513 -+ },
1.23514 -+ },
1.23515 -+ {
1.23516 -+ AVR32_OPC_RETEQ, 2, 0x5e000000, 0xfff00000,
1.23517 -+ &avr32_syntax_table[AVR32_SYNTAX_RETEQ],
1.23518 -+ BFD_RELOC_NONE, 1, -1,
1.23519 -+ {
1.23520 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23521 -+ },
1.23522 -+ },
1.23523 -+ {
1.23524 -+ AVR32_OPC_RETNE, 2, 0x5e100000, 0xfff00000,
1.23525 -+ &avr32_syntax_table[AVR32_SYNTAX_RETNE],
1.23526 -+ BFD_RELOC_NONE, 1, -1,
1.23527 -+ {
1.23528 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23529 -+ },
1.23530 -+ },
1.23531 -+ {
1.23532 -+ AVR32_OPC_RETCC, 2, 0x5e200000, 0xfff00000,
1.23533 -+ &avr32_syntax_table[AVR32_SYNTAX_RETHS],
1.23534 -+ BFD_RELOC_NONE, 1, -1,
1.23535 -+ {
1.23536 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23537 -+ },
1.23538 -+ },
1.23539 -+ {
1.23540 -+ AVR32_OPC_RETCS, 2, 0x5e300000, 0xfff00000,
1.23541 -+ &avr32_syntax_table[AVR32_SYNTAX_RETLO],
1.23542 -+ BFD_RELOC_NONE, 1, -1,
1.23543 -+ {
1.23544 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23545 -+ },
1.23546 -+ },
1.23547 -+ {
1.23548 -+ AVR32_OPC_RETGE, 2, 0x5e400000, 0xfff00000,
1.23549 -+ &avr32_syntax_table[AVR32_SYNTAX_RETGE],
1.23550 -+ BFD_RELOC_NONE, 1, -1,
1.23551 -+ {
1.23552 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23553 -+ },
1.23554 -+ },
1.23555 -+ {
1.23556 -+ AVR32_OPC_RETLT, 2, 0x5e500000, 0xfff00000,
1.23557 -+ &avr32_syntax_table[AVR32_SYNTAX_RETLT],
1.23558 -+ BFD_RELOC_NONE, 1, -1,
1.23559 -+ {
1.23560 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23561 -+ },
1.23562 -+ },
1.23563 -+ {
1.23564 -+ AVR32_OPC_RETMI, 2, 0x5e600000, 0xfff00000,
1.23565 -+ &avr32_syntax_table[AVR32_SYNTAX_RETMI],
1.23566 -+ BFD_RELOC_NONE, 1, -1,
1.23567 -+ {
1.23568 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23569 -+ },
1.23570 -+ },
1.23571 -+ {
1.23572 -+ AVR32_OPC_RETPL, 2, 0x5e700000, 0xfff00000,
1.23573 -+ &avr32_syntax_table[AVR32_SYNTAX_RETPL],
1.23574 -+ BFD_RELOC_NONE, 1, -1,
1.23575 -+ {
1.23576 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23577 -+ },
1.23578 -+ },
1.23579 -+ {
1.23580 -+ AVR32_OPC_RETLS, 2, 0x5e800000, 0xfff00000,
1.23581 -+ &avr32_syntax_table[AVR32_SYNTAX_RETLS],
1.23582 -+ BFD_RELOC_NONE, 1, -1,
1.23583 -+ {
1.23584 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23585 -+ },
1.23586 -+ },
1.23587 -+ {
1.23588 -+ AVR32_OPC_RETGT, 2, 0x5e900000, 0xfff00000,
1.23589 -+ &avr32_syntax_table[AVR32_SYNTAX_RETGT],
1.23590 -+ BFD_RELOC_NONE, 1, -1,
1.23591 -+ {
1.23592 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23593 -+ },
1.23594 -+ },
1.23595 -+ {
1.23596 -+ AVR32_OPC_RETLE, 2, 0x5ea00000, 0xfff00000,
1.23597 -+ &avr32_syntax_table[AVR32_SYNTAX_RETLE],
1.23598 -+ BFD_RELOC_NONE, 1, -1,
1.23599 -+ {
1.23600 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23601 -+ },
1.23602 -+ },
1.23603 -+ {
1.23604 -+ AVR32_OPC_RETHI, 2, 0x5eb00000, 0xfff00000,
1.23605 -+ &avr32_syntax_table[AVR32_SYNTAX_RETHI],
1.23606 -+ BFD_RELOC_NONE, 1, -1,
1.23607 -+ {
1.23608 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23609 -+ },
1.23610 -+ },
1.23611 -+ {
1.23612 -+ AVR32_OPC_RETVS, 2, 0x5ec00000, 0xfff00000,
1.23613 -+ &avr32_syntax_table[AVR32_SYNTAX_RETVS],
1.23614 -+ BFD_RELOC_NONE, 1, -1,
1.23615 -+ {
1.23616 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23617 -+ },
1.23618 -+ },
1.23619 -+ {
1.23620 -+ AVR32_OPC_RETVC, 2, 0x5ed00000, 0xfff00000,
1.23621 -+ &avr32_syntax_table[AVR32_SYNTAX_RETVC],
1.23622 -+ BFD_RELOC_NONE, 1, -1,
1.23623 -+ {
1.23624 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23625 -+ },
1.23626 -+ },
1.23627 -+ {
1.23628 -+ AVR32_OPC_RETQS, 2, 0x5ee00000, 0xfff00000,
1.23629 -+ &avr32_syntax_table[AVR32_SYNTAX_RETQS],
1.23630 -+ BFD_RELOC_NONE, 1, -1,
1.23631 -+ {
1.23632 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23633 -+ },
1.23634 -+ },
1.23635 -+ {
1.23636 -+ AVR32_OPC_RETAL, 2, 0x5ef00000, 0xfff00000,
1.23637 -+ &avr32_syntax_table[AVR32_SYNTAX_RETAL],
1.23638 -+ BFD_RELOC_NONE, 1, -1,
1.23639 -+ {
1.23640 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23641 -+ },
1.23642 -+ },
1.23643 -+ {
1.23644 -+ AVR32_OPC_RETD, 2, 0xd6230000, 0xffff0000,
1.23645 -+ &avr32_syntax_table[AVR32_SYNTAX_RETD],
1.23646 -+ BFD_RELOC_NONE, 0, -1, { NULL },
1.23647 -+ },
1.23648 -+ {
1.23649 -+ AVR32_OPC_RETE, 2, 0xd6030000, 0xffff0000,
1.23650 -+ &avr32_syntax_table[AVR32_SYNTAX_RETE],
1.23651 -+ BFD_RELOC_NONE, 0, -1, { NULL },
1.23652 -+ },
1.23653 -+ {
1.23654 -+ AVR32_OPC_RETJ, 2, 0xd6330000, 0xffff0000,
1.23655 -+ &avr32_syntax_table[AVR32_SYNTAX_RETJ],
1.23656 -+ BFD_RELOC_NONE, 0, -1, { NULL },
1.23657 -+ },
1.23658 -+ {
1.23659 -+ AVR32_OPC_RETS, 2, 0xd6130000, 0xffff0000,
1.23660 -+ &avr32_syntax_table[AVR32_SYNTAX_RETS],
1.23661 -+ BFD_RELOC_NONE, 0, -1, { NULL },
1.23662 -+ },
1.23663 -+ {
1.23664 -+ AVR32_OPC_RJMP, 2, 0xc0080000, 0xf00c0000,
1.23665 -+ &avr32_syntax_table[AVR32_SYNTAX_RJMP],
1.23666 -+ BFD_RELOC_AVR32_11H_PCREL, 1, 0,
1.23667 -+ {
1.23668 -+ &avr32_ifield_table[AVR32_IFIELD_K10],
1.23669 -+ },
1.23670 -+ },
1.23671 -+ {
1.23672 -+ AVR32_OPC_ROL, 2, 0x5cf00000, 0xfff00000,
1.23673 -+ &avr32_syntax_table[AVR32_SYNTAX_ROL],
1.23674 -+ BFD_RELOC_UNUSED, 1, -1,
1.23675 -+ {
1.23676 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23677 -+ }
1.23678 -+ },
1.23679 -+ {
1.23680 -+ AVR32_OPC_ROR, 2, 0x5d000000, 0xfff00000,
1.23681 -+ &avr32_syntax_table[AVR32_SYNTAX_ROR],
1.23682 -+ BFD_RELOC_UNUSED, 1, -1,
1.23683 -+ {
1.23684 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23685 -+ }
1.23686 -+ },
1.23687 -+ {
1.23688 -+ AVR32_OPC_RSUB1, 2, 0x00200000, 0xe1f00000,
1.23689 -+ &avr32_syntax_table[AVR32_SYNTAX_RSUB1],
1.23690 -+ BFD_RELOC_UNUSED, 2, -1,
1.23691 -+ {
1.23692 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23693 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23694 -+ },
1.23695 -+ },
1.23696 -+ {
1.23697 -+ AVR32_OPC_RSUB2, 4, 0xe0001100, 0xe1f0ff00,
1.23698 -+ &avr32_syntax_table[AVR32_SYNTAX_RSUB2],
1.23699 -+ BFD_RELOC_AVR32_8S_EXT, 3, 2,
1.23700 -+ {
1.23701 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23702 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23703 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.23704 -+ },
1.23705 -+ },
1.23706 -+ {
1.23707 -+ AVR32_OPC_SATADD_H, 4, 0xe00002c0, 0xe1f0fff0,
1.23708 -+ &avr32_syntax_table[AVR32_SYNTAX_SATADD_H],
1.23709 -+ BFD_RELOC_UNUSED, 3, -1,
1.23710 -+ {
1.23711 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23712 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23713 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23714 -+ },
1.23715 -+ },
1.23716 -+ {
1.23717 -+ AVR32_OPC_SATADD_W, 4, 0xe00000c0, 0xe1f0fff0,
1.23718 -+ &avr32_syntax_table[AVR32_SYNTAX_SATADD_W],
1.23719 -+ BFD_RELOC_UNUSED, 3, -1,
1.23720 -+ {
1.23721 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23722 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23723 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23724 -+ },
1.23725 -+ },
1.23726 -+ {
1.23727 -+ AVR32_OPC_SATRNDS, 4, 0xf3b00000, 0xfff0fc00,
1.23728 -+ &avr32_syntax_table[AVR32_SYNTAX_SATRNDS],
1.23729 -+ BFD_RELOC_UNUSED, 3, -1,
1.23730 -+ {
1.23731 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23732 -+ &avr32_ifield_table[AVR32_IFIELD_K5E],
1.23733 -+ &avr32_ifield_table[AVR32_IFIELD_S5],
1.23734 -+ },
1.23735 -+ },
1.23736 -+ {
1.23737 -+ AVR32_OPC_SATRNDU, 4, 0xf3b00400, 0xfff0fc00,
1.23738 -+ &avr32_syntax_table[AVR32_SYNTAX_SATRNDU],
1.23739 -+ BFD_RELOC_UNUSED, 3, -1,
1.23740 -+ {
1.23741 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23742 -+ &avr32_ifield_table[AVR32_IFIELD_K5E],
1.23743 -+ &avr32_ifield_table[AVR32_IFIELD_S5],
1.23744 -+ },
1.23745 -+ },
1.23746 -+ {
1.23747 -+ AVR32_OPC_SATS, 4, 0xf1b00000, 0xfff0fc00,
1.23748 -+ &avr32_syntax_table[AVR32_SYNTAX_SATS],
1.23749 -+ BFD_RELOC_UNUSED, 3, -1,
1.23750 -+ {
1.23751 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23752 -+ &avr32_ifield_table[AVR32_IFIELD_K5E],
1.23753 -+ &avr32_ifield_table[AVR32_IFIELD_S5],
1.23754 -+ },
1.23755 -+ },
1.23756 -+ {
1.23757 -+ AVR32_OPC_SATSUB_H, 4, 0xe00003c0, 0xe1f0fff0,
1.23758 -+ &avr32_syntax_table[AVR32_SYNTAX_SATSUB_H],
1.23759 -+ BFD_RELOC_UNUSED, 3, -1,
1.23760 -+ {
1.23761 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23762 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23763 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23764 -+ },
1.23765 -+ },
1.23766 -+ {
1.23767 -+ AVR32_OPC_SATSUB_W1, 4, 0xe00001c0, 0xe1f0fff0,
1.23768 -+ &avr32_syntax_table[AVR32_SYNTAX_SATSUB_W1],
1.23769 -+ BFD_RELOC_UNUSED, 3, -1,
1.23770 -+ {
1.23771 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23772 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23773 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23774 -+ },
1.23775 -+ },
1.23776 -+ {
1.23777 -+ AVR32_OPC_SATSUB_W2, 4, 0xe0d00000, 0xe1f00000,
1.23778 -+ &avr32_syntax_table[AVR32_SYNTAX_SATSUB_W2],
1.23779 -+ BFD_RELOC_UNUSED, 3, -1,
1.23780 -+ {
1.23781 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23782 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23783 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.23784 -+ },
1.23785 -+ },
1.23786 -+ {
1.23787 -+ AVR32_OPC_SATU, 4, 0xf1b00400, 0xfff0fc00,
1.23788 -+ &avr32_syntax_table[AVR32_SYNTAX_SATU],
1.23789 -+ BFD_RELOC_UNUSED, 3, -1,
1.23790 -+ {
1.23791 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23792 -+ &avr32_ifield_table[AVR32_IFIELD_K5E],
1.23793 -+ &avr32_ifield_table[AVR32_IFIELD_S5],
1.23794 -+ },
1.23795 -+ },
1.23796 -+ {
1.23797 -+ AVR32_OPC_SBC, 4, 0xe0000140, 0xe1f0fff0,
1.23798 -+ &avr32_syntax_table[AVR32_SYNTAX_SBC],
1.23799 -+ BFD_RELOC_UNUSED, 3, -1,
1.23800 -+ {
1.23801 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23802 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23803 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23804 -+ },
1.23805 -+ },
1.23806 -+ {
1.23807 -+ AVR32_OPC_SBR, 2, 0xa1a00000, 0xe1e00000,
1.23808 -+ &avr32_syntax_table[AVR32_SYNTAX_SBR],
1.23809 -+ BFD_RELOC_UNUSED, 2, -1,
1.23810 -+ {
1.23811 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23812 -+ &avr32_ifield_table[AVR32_IFIELD_BIT5C],
1.23813 -+ },
1.23814 -+ },
1.23815 -+ {
1.23816 -+ AVR32_OPC_SCALL, 2, 0xd7330000, 0xffff0000,
1.23817 -+ &avr32_syntax_table[AVR32_SYNTAX_SCALL],
1.23818 -+ BFD_RELOC_UNUSED, 0, -1, { NULL },
1.23819 -+ },
1.23820 -+ {
1.23821 -+ AVR32_OPC_SCR, 2, 0x5c100000, 0xfff00000,
1.23822 -+ &avr32_syntax_table[AVR32_SYNTAX_SCR],
1.23823 -+ BFD_RELOC_UNUSED, 1, -1,
1.23824 -+ {
1.23825 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23826 -+ },
1.23827 -+ },
1.23828 -+ {
1.23829 -+ AVR32_OPC_SLEEP, 4, 0xe9b00000, 0xffffff00,
1.23830 -+ &avr32_syntax_table[AVR32_SYNTAX_SLEEP],
1.23831 -+ BFD_RELOC_AVR32_8S_EXT, 1, 0,
1.23832 -+ {
1.23833 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.23834 -+ },
1.23835 -+ },
1.23836 -+ {
1.23837 -+ AVR32_OPC_SREQ, 2, 0x5f000000, 0xfff00000,
1.23838 -+ &avr32_syntax_table[AVR32_SYNTAX_SREQ],
1.23839 -+ BFD_RELOC_UNUSED, 1, -1,
1.23840 -+ {
1.23841 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23842 -+ },
1.23843 -+ },
1.23844 -+ {
1.23845 -+ AVR32_OPC_SRNE, 2, 0x5f100000, 0xfff00000,
1.23846 -+ &avr32_syntax_table[AVR32_SYNTAX_SRNE],
1.23847 -+ BFD_RELOC_UNUSED, 1, -1,
1.23848 -+ {
1.23849 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23850 -+ },
1.23851 -+ },
1.23852 -+ {
1.23853 -+ AVR32_OPC_SRCC, 2, 0x5f200000, 0xfff00000,
1.23854 -+ &avr32_syntax_table[AVR32_SYNTAX_SRHS],
1.23855 -+ BFD_RELOC_UNUSED, 1, -1,
1.23856 -+ {
1.23857 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23858 -+ },
1.23859 -+ },
1.23860 -+ {
1.23861 -+ AVR32_OPC_SRCS, 2, 0x5f300000, 0xfff00000,
1.23862 -+ &avr32_syntax_table[AVR32_SYNTAX_SRLO],
1.23863 -+ BFD_RELOC_UNUSED, 1, -1,
1.23864 -+ {
1.23865 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23866 -+ },
1.23867 -+ },
1.23868 -+ {
1.23869 -+ AVR32_OPC_SRGE, 2, 0x5f400000, 0xfff00000,
1.23870 -+ &avr32_syntax_table[AVR32_SYNTAX_SRGE],
1.23871 -+ BFD_RELOC_UNUSED, 1, -1,
1.23872 -+ {
1.23873 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23874 -+ },
1.23875 -+ },
1.23876 -+ {
1.23877 -+ AVR32_OPC_SRLT, 2, 0x5f500000, 0xfff00000,
1.23878 -+ &avr32_syntax_table[AVR32_SYNTAX_SRLT],
1.23879 -+ BFD_RELOC_UNUSED, 1, -1,
1.23880 -+ {
1.23881 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23882 -+ },
1.23883 -+ },
1.23884 -+ {
1.23885 -+ AVR32_OPC_SRMI, 2, 0x5f600000, 0xfff00000,
1.23886 -+ &avr32_syntax_table[AVR32_SYNTAX_SRMI],
1.23887 -+ BFD_RELOC_UNUSED, 1, -1,
1.23888 -+ {
1.23889 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23890 -+ },
1.23891 -+ },
1.23892 -+ {
1.23893 -+ AVR32_OPC_SRPL, 2, 0x5f700000, 0xfff00000,
1.23894 -+ &avr32_syntax_table[AVR32_SYNTAX_SRPL],
1.23895 -+ BFD_RELOC_UNUSED, 1, -1,
1.23896 -+ {
1.23897 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23898 -+ },
1.23899 -+ },
1.23900 -+ {
1.23901 -+ AVR32_OPC_SRLS, 2, 0x5f800000, 0xfff00000,
1.23902 -+ &avr32_syntax_table[AVR32_SYNTAX_SRLS],
1.23903 -+ BFD_RELOC_UNUSED, 1, -1,
1.23904 -+ {
1.23905 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23906 -+ },
1.23907 -+ },
1.23908 -+ {
1.23909 -+ AVR32_OPC_SRGT, 2, 0x5f900000, 0xfff00000,
1.23910 -+ &avr32_syntax_table[AVR32_SYNTAX_SRGT],
1.23911 -+ BFD_RELOC_UNUSED, 1, -1,
1.23912 -+ {
1.23913 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23914 -+ },
1.23915 -+ },
1.23916 -+ {
1.23917 -+ AVR32_OPC_SRLE, 2, 0x5fa00000, 0xfff00000,
1.23918 -+ &avr32_syntax_table[AVR32_SYNTAX_SRLE],
1.23919 -+ BFD_RELOC_UNUSED, 1, -1,
1.23920 -+ {
1.23921 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23922 -+ },
1.23923 -+ },
1.23924 -+ {
1.23925 -+ AVR32_OPC_SRHI, 2, 0x5fb00000, 0xfff00000,
1.23926 -+ &avr32_syntax_table[AVR32_SYNTAX_SRHI],
1.23927 -+ BFD_RELOC_UNUSED, 1, -1,
1.23928 -+ {
1.23929 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23930 -+ },
1.23931 -+ },
1.23932 -+ {
1.23933 -+ AVR32_OPC_SRVS, 2, 0x5fc00000, 0xfff00000,
1.23934 -+ &avr32_syntax_table[AVR32_SYNTAX_SRVS],
1.23935 -+ BFD_RELOC_UNUSED, 1, -1,
1.23936 -+ {
1.23937 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23938 -+ },
1.23939 -+ },
1.23940 -+ {
1.23941 -+ AVR32_OPC_SRVC, 2, 0x5fd00000, 0xfff00000,
1.23942 -+ &avr32_syntax_table[AVR32_SYNTAX_SRVC],
1.23943 -+ BFD_RELOC_UNUSED, 1, -1,
1.23944 -+ {
1.23945 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23946 -+ },
1.23947 -+ },
1.23948 -+ {
1.23949 -+ AVR32_OPC_SRQS, 2, 0x5fe00000, 0xfff00000,
1.23950 -+ &avr32_syntax_table[AVR32_SYNTAX_SRQS],
1.23951 -+ BFD_RELOC_UNUSED, 1, -1,
1.23952 -+ {
1.23953 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23954 -+ },
1.23955 -+ },
1.23956 -+ {
1.23957 -+ AVR32_OPC_SRAL, 2, 0x5ff00000, 0xfff00000,
1.23958 -+ &avr32_syntax_table[AVR32_SYNTAX_SRAL],
1.23959 -+ BFD_RELOC_UNUSED, 1, -1,
1.23960 -+ {
1.23961 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23962 -+ },
1.23963 -+ },
1.23964 -+ {
1.23965 -+ AVR32_OPC_SSRF, 2, 0xd2030000, 0xfe0f0000,
1.23966 -+ &avr32_syntax_table[AVR32_SYNTAX_SSRF],
1.23967 -+ BFD_RELOC_UNUSED, 1, -1,
1.23968 -+ {
1.23969 -+ &avr32_ifield_table[AVR32_IFIELD_K5C],
1.23970 -+ },
1.23971 -+ },
1.23972 -+ {
1.23973 -+ AVR32_OPC_ST_B1, 2, 0x00c00000, 0xe1f00000,
1.23974 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_B1],
1.23975 -+ BFD_RELOC_UNUSED, 2, -1,
1.23976 -+ {
1.23977 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23978 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23979 -+ },
1.23980 -+ },
1.23981 -+ {
1.23982 -+ AVR32_OPC_ST_B2, 2, 0x00f00000, 0xe1f00000,
1.23983 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_B2],
1.23984 -+ BFD_RELOC_UNUSED, 2, -1,
1.23985 -+ {
1.23986 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23987 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23988 -+ },
1.23989 -+ },
1.23990 -+ {
1.23991 -+ AVR32_OPC_ST_B5, 4, 0xe0000b00, 0xe1f0ffc0,
1.23992 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_B5],
1.23993 -+ BFD_RELOC_UNUSED, 4, -1,
1.23994 -+ {
1.23995 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.23996 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.23997 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.23998 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.23999 -+ },
1.24000 -+ },
1.24001 -+ {
1.24002 -+ AVR32_OPC_ST_B3, 2, 0xa0800000, 0xe1800000,
1.24003 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_B3],
1.24004 -+ BFD_RELOC_AVR32_3U, 3, 1,
1.24005 -+ {
1.24006 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24007 -+ &avr32_ifield_table[AVR32_IFIELD_K3],
1.24008 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24009 -+ },
1.24010 -+ },
1.24011 -+ {
1.24012 -+ AVR32_OPC_ST_B4, 4, 0xe1600000, 0xe1f00000,
1.24013 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_B4],
1.24014 -+ BFD_RELOC_AVR32_16S, 3, 1,
1.24015 -+ {
1.24016 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24017 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.24018 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24019 -+ },
1.24020 -+ },
1.24021 -+ {
1.24022 -+ AVR32_OPC_ST_D1, 2, 0xa1200000, 0xe1f10000,
1.24023 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_D1],
1.24024 -+ BFD_RELOC_UNUSED, 2, -1,
1.24025 -+ {
1.24026 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24027 -+ &avr32_ifield_table[AVR32_IFIELD_RY_DW],
1.24028 -+ },
1.24029 -+ },
1.24030 -+ {
1.24031 -+ AVR32_OPC_ST_D2, 2, 0xa1210000, 0xe1f10000,
1.24032 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_D2],
1.24033 -+ BFD_RELOC_UNUSED, 2, -1,
1.24034 -+ {
1.24035 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24036 -+ &avr32_ifield_table[AVR32_IFIELD_RY_DW],
1.24037 -+ },
1.24038 -+ },
1.24039 -+ {
1.24040 -+ AVR32_OPC_ST_D3, 2, 0xa1110000, 0xe1f10000,
1.24041 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_D3],
1.24042 -+ BFD_RELOC_UNUSED, 2, -1,
1.24043 -+ {
1.24044 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24045 -+ &avr32_ifield_table[AVR32_IFIELD_RY_DW],
1.24046 -+ },
1.24047 -+ },
1.24048 -+ {
1.24049 -+ AVR32_OPC_ST_D5, 4, 0xe0000800, 0xe1f0ffc1,
1.24050 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_D5],
1.24051 -+ BFD_RELOC_UNUSED, 4, -1,
1.24052 -+ {
1.24053 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24054 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24055 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.24056 -+ &avr32_ifield_table[AVR32_IFIELD_RD_DW],
1.24057 -+ },
1.24058 -+ },
1.24059 -+ {
1.24060 -+ AVR32_OPC_ST_D4, 4, 0xe0e10000, 0xe1f10000,
1.24061 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_D4],
1.24062 -+ BFD_RELOC_AVR32_16S, 3, 1,
1.24063 -+ {
1.24064 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24065 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.24066 -+ &avr32_ifield_table[AVR32_IFIELD_RY_DW],
1.24067 -+ },
1.24068 -+ },
1.24069 -+ {
1.24070 -+ AVR32_OPC_ST_H1, 2, 0x00b00000, 0xe1f00000,
1.24071 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_H1],
1.24072 -+ BFD_RELOC_UNUSED, 2, -1,
1.24073 -+ {
1.24074 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24075 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24076 -+ },
1.24077 -+ },
1.24078 -+ {
1.24079 -+ AVR32_OPC_ST_H2, 2, 0x00e00000, 0xe1f00000,
1.24080 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_H2],
1.24081 -+ BFD_RELOC_UNUSED, 2, -1,
1.24082 -+ {
1.24083 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24084 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24085 -+ },
1.24086 -+ },
1.24087 -+ {
1.24088 -+ AVR32_OPC_ST_H5, 4, 0xe0000a00, 0xe1f0ffc0,
1.24089 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_H5],
1.24090 -+ BFD_RELOC_UNUSED, 4, -1,
1.24091 -+ {
1.24092 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24093 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24094 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.24095 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.24096 -+ },
1.24097 -+ },
1.24098 -+ {
1.24099 -+ AVR32_OPC_ST_H3, 2, 0xa0000000, 0xe1800000,
1.24100 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_H3],
1.24101 -+ BFD_RELOC_AVR32_4UH, 3, 1,
1.24102 -+ {
1.24103 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24104 -+ &avr32_ifield_table[AVR32_IFIELD_K3],
1.24105 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24106 -+ },
1.24107 -+ },
1.24108 -+ {
1.24109 -+ AVR32_OPC_ST_H4, 4, 0xe1500000, 0xe1f00000,
1.24110 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_H4],
1.24111 -+ BFD_RELOC_AVR32_16S, 3, 1,
1.24112 -+ {
1.24113 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24114 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.24115 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24116 -+ },
1.24117 -+ },
1.24118 -+ {
1.24119 -+ AVR32_OPC_ST_W1, 2, 0x00a00000, 0xe1f00000,
1.24120 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_W1],
1.24121 -+ BFD_RELOC_UNUSED, 2, -1,
1.24122 -+ {
1.24123 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24124 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24125 -+ },
1.24126 -+ },
1.24127 -+ {
1.24128 -+ AVR32_OPC_ST_W2, 2, 0x00d00000, 0xe1f00000,
1.24129 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_W2],
1.24130 -+ BFD_RELOC_UNUSED, 2, -1,
1.24131 -+ {
1.24132 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24133 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24134 -+ },
1.24135 -+ },
1.24136 -+ {
1.24137 -+ AVR32_OPC_ST_W5, 4, 0xe0000900, 0xe1f0ffc0,
1.24138 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_W5],
1.24139 -+ BFD_RELOC_UNUSED, 4, -1,
1.24140 -+ {
1.24141 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24142 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24143 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.24144 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.24145 -+ },
1.24146 -+ },
1.24147 -+ {
1.24148 -+ AVR32_OPC_ST_W3, 2, 0x81000000, 0xe1000000,
1.24149 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_W3],
1.24150 -+ BFD_RELOC_AVR32_6UW, 3, 1,
1.24151 -+ {
1.24152 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24153 -+ &avr32_ifield_table[AVR32_IFIELD_K4],
1.24154 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24155 -+ },
1.24156 -+ },
1.24157 -+ {
1.24158 -+ AVR32_OPC_ST_W4, 4, 0xe1400000, 0xe1f00000,
1.24159 -+ &avr32_syntax_table[AVR32_SYNTAX_ST_W4],
1.24160 -+ BFD_RELOC_AVR32_16S, 3, 1,
1.24161 -+ {
1.24162 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24163 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.24164 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24165 -+ },
1.24166 -+ },
1.24167 -+ {
1.24168 -+ AVR32_OPC_STC_D1, 4, 0xeba01000, 0xfff01100,
1.24169 -+ &avr32_syntax_table[AVR32_SYNTAX_STC_D1],
1.24170 -+ BFD_RELOC_AVR32_10UW, 4, 2,
1.24171 -+ {
1.24172 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.24173 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24174 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24175 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_DW],
1.24176 -+ },
1.24177 -+ },
1.24178 -+ {
1.24179 -+ AVR32_OPC_STC_D2, 4, 0xefa00070, 0xfff011f0,
1.24180 -+ &avr32_syntax_table[AVR32_SYNTAX_STC_D2],
1.24181 -+ BFD_RELOC_UNUSED, 3, -1,
1.24182 -+ {
1.24183 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.24184 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24185 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_DW],
1.24186 -+ },
1.24187 -+ },
1.24188 -+ {
1.24189 -+ AVR32_OPC_STC_D3, 4, 0xefa010c0, 0xfff011c0,
1.24190 -+ &avr32_syntax_table[AVR32_SYNTAX_STC_D3],
1.24191 -+ BFD_RELOC_UNUSED, 5, -1,
1.24192 -+ {
1.24193 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.24194 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24195 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.24196 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.24197 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_DW],
1.24198 -+ },
1.24199 -+ },
1.24200 -+ {
1.24201 -+ AVR32_OPC_STC_W1, 4, 0xeba00000, 0xfff01000,
1.24202 -+ &avr32_syntax_table[AVR32_SYNTAX_STC_W1],
1.24203 -+ BFD_RELOC_AVR32_10UW, 4, 2,
1.24204 -+ {
1.24205 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.24206 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24207 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24208 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_RI],
1.24209 -+ },
1.24210 -+ },
1.24211 -+ {
1.24212 -+ AVR32_OPC_STC_W2, 4, 0xefa00060, 0xfff010ff,
1.24213 -+ &avr32_syntax_table[AVR32_SYNTAX_STC_W2],
1.24214 -+ BFD_RELOC_UNUSED, 3, -1,
1.24215 -+ {
1.24216 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.24217 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24218 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_RI],
1.24219 -+ },
1.24220 -+ },
1.24221 -+ {
1.24222 -+ AVR32_OPC_STC_W3, 4, 0xefa01080, 0xfff010c0,
1.24223 -+ &avr32_syntax_table[AVR32_SYNTAX_STC_W3],
1.24224 -+ BFD_RELOC_UNUSED, 5, -1,
1.24225 -+ {
1.24226 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.24227 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24228 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.24229 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.24230 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_RI],
1.24231 -+ },
1.24232 -+ },
1.24233 -+ {
1.24234 -+ AVR32_OPC_STC0_D, 4, 0xf7a00000, 0xfff00100,
1.24235 -+ &avr32_syntax_table[AVR32_SYNTAX_STC0_D],
1.24236 -+ BFD_RELOC_AVR32_14UW, 3, 1,
1.24237 -+ {
1.24238 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24239 -+ &avr32_ifield_table[AVR32_IFIELD_K12CP],
1.24240 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_DW],
1.24241 -+ },
1.24242 -+ },
1.24243 -+ {
1.24244 -+ AVR32_OPC_STC0_W, 4, 0xf5a00000, 0xfff00000,
1.24245 -+ &avr32_syntax_table[AVR32_SYNTAX_STC0_W],
1.24246 -+ BFD_RELOC_AVR32_14UW, 3, 1,
1.24247 -+ {
1.24248 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24249 -+ &avr32_ifield_table[AVR32_IFIELD_K12CP],
1.24250 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_RI],
1.24251 -+ },
1.24252 -+ },
1.24253 -+ {
1.24254 -+ AVR32_OPC_STCM_D, 4, 0xeda00500, 0xfff01f00,
1.24255 -+ &avr32_syntax_table[AVR32_SYNTAX_STCM_D],
1.24256 -+ BFD_RELOC_UNUSED, 3, -1,
1.24257 -+ {
1.24258 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.24259 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24260 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24261 -+ },
1.24262 -+ },
1.24263 -+ {
1.24264 -+ AVR32_OPC_STCM_D_PU, 4, 0xeda01500, 0xfff01f00,
1.24265 -+ &avr32_syntax_table[AVR32_SYNTAX_STCM_D_PU],
1.24266 -+ BFD_RELOC_UNUSED, 3, -1,
1.24267 -+ {
1.24268 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.24269 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24270 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24271 -+ },
1.24272 -+ },
1.24273 -+ {
1.24274 -+ AVR32_OPC_STCM_W, 4, 0xeda00200, 0xfff01e00,
1.24275 -+ &avr32_syntax_table[AVR32_SYNTAX_STCM_W],
1.24276 -+ BFD_RELOC_UNUSED, 4, -1,
1.24277 -+ {
1.24278 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.24279 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24280 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24281 -+ &avr32_ifield_table[AVR32_IFIELD_CM_HL],
1.24282 -+ },
1.24283 -+ },
1.24284 -+ {
1.24285 -+ AVR32_OPC_STCM_W_PU, 4, 0xeda01200, 0xfff01e00,
1.24286 -+ &avr32_syntax_table[AVR32_SYNTAX_STCM_W_PU],
1.24287 -+ BFD_RELOC_UNUSED, 4, -1,
1.24288 -+ {
1.24289 -+ &avr32_ifield_table[AVR32_IFIELD_CPNO],
1.24290 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24291 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24292 -+ &avr32_ifield_table[AVR32_IFIELD_CM_HL],
1.24293 -+ },
1.24294 -+ },
1.24295 -+ {
1.24296 -+ AVR32_OPC_STCOND, 4, 0xe1700000, 0xe1f00000,
1.24297 -+ &avr32_syntax_table[AVR32_SYNTAX_STCOND],
1.24298 -+ BFD_RELOC_UNUSED, 3, -1,
1.24299 -+ {
1.24300 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24301 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.24302 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24303 -+ },
1.24304 -+ },
1.24305 -+ {
1.24306 -+ AVR32_OPC_STDSP, 2, 0x50000000, 0xf8000000,
1.24307 -+ &avr32_syntax_table[AVR32_SYNTAX_STDSP],
1.24308 -+ BFD_RELOC_UNUSED, 2, -1,
1.24309 -+ {
1.24310 -+ &avr32_ifield_table[AVR32_IFIELD_K7C],
1.24311 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24312 -+ },
1.24313 -+ },
1.24314 -+ {
1.24315 -+ AVR32_OPC_STHH_W2, 4, 0xe1e08000, 0xe1f0c0c0,
1.24316 -+ &avr32_syntax_table[AVR32_SYNTAX_STHH_W2],
1.24317 -+ BFD_RELOC_UNUSED, 7, -1,
1.24318 -+ {
1.24319 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.24320 -+ &avr32_ifield_table[AVR32_IFIELD_CRD_RI],
1.24321 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.24322 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24323 -+ &avr32_ifield_table[AVR32_IFIELD_X2],
1.24324 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24325 -+ &avr32_ifield_table[AVR32_IFIELD_Y2],
1.24326 -+ },
1.24327 -+ },
1.24328 -+ {
1.24329 -+ AVR32_OPC_STHH_W1, 4, 0xe1e0c000, 0xe1f0c000,
1.24330 -+ &avr32_syntax_table[AVR32_SYNTAX_STHH_W1],
1.24331 -+ BFD_RELOC_AVR32_STHH_W, 6, 1,
1.24332 -+ {
1.24333 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.24334 -+ &avr32_ifield_table[AVR32_IFIELD_K8E2],
1.24335 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24336 -+ &avr32_ifield_table[AVR32_IFIELD_X2],
1.24337 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24338 -+ &avr32_ifield_table[AVR32_IFIELD_Y2],
1.24339 -+ },
1.24340 -+ },
1.24341 -+ {
1.24342 -+ AVR32_OPC_STM, 4, 0xe9c00000, 0xfff00000,
1.24343 -+ &avr32_syntax_table[AVR32_SYNTAX_STM],
1.24344 -+ BFD_RELOC_UNUSED, 2, -1,
1.24345 -+ {
1.24346 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24347 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.24348 -+ },
1.24349 -+ },
1.24350 -+ {
1.24351 -+ AVR32_OPC_STM_PU, 4, 0xebc00000, 0xfff00000,
1.24352 -+ &avr32_syntax_table[AVR32_SYNTAX_STM_PU],
1.24353 -+ BFD_RELOC_UNUSED, 2, -1,
1.24354 -+ {
1.24355 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24356 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.24357 -+ },
1.24358 -+ },
1.24359 -+ {
1.24360 -+ AVR32_OPC_STMTS, 4, 0xedc00000, 0xfff00000,
1.24361 -+ &avr32_syntax_table[AVR32_SYNTAX_STMTS],
1.24362 -+ BFD_RELOC_UNUSED, 2, -1,
1.24363 -+ {
1.24364 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24365 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.24366 -+ },
1.24367 -+ },
1.24368 -+ {
1.24369 -+ AVR32_OPC_STMTS_PU, 4, 0xefc00000, 0xfff00000,
1.24370 -+ &avr32_syntax_table[AVR32_SYNTAX_STMTS_PU],
1.24371 -+ BFD_RELOC_UNUSED, 2, -1,
1.24372 -+ {
1.24373 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24374 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.24375 -+ },
1.24376 -+ },
1.24377 -+ {
1.24378 -+ AVR32_OPC_STSWP_H, 4, 0xe1d09000, 0xe1f0f000,
1.24379 -+ &avr32_syntax_table[AVR32_SYNTAX_STSWP_H],
1.24380 -+ BFD_RELOC_UNUSED, 3, -1,
1.24381 -+ {
1.24382 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24383 -+ &avr32_ifield_table[AVR32_IFIELD_K12],
1.24384 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24385 -+ },
1.24386 -+ },
1.24387 -+ {
1.24388 -+ AVR32_OPC_STSWP_W, 4, 0xe1d0a000, 0xe1f0f000,
1.24389 -+ &avr32_syntax_table[AVR32_SYNTAX_STSWP_W],
1.24390 -+ BFD_RELOC_UNUSED, 3, -1,
1.24391 -+ {
1.24392 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24393 -+ &avr32_ifield_table[AVR32_IFIELD_K12],
1.24394 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24395 -+ },
1.24396 -+ },
1.24397 -+ {
1.24398 -+ AVR32_OPC_SUB1, 2, 0x00100000, 0xe1f00000,
1.24399 -+ &avr32_syntax_table[AVR32_SYNTAX_SUB1],
1.24400 -+ BFD_RELOC_UNUSED, 2, -1,
1.24401 -+ {
1.24402 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24403 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24404 -+ },
1.24405 -+ },
1.24406 -+ {
1.24407 -+ AVR32_OPC_SUB2, 4, 0xe0000100, 0xe1f0ffc0,
1.24408 -+ &avr32_syntax_table[AVR32_SYNTAX_SUB2],
1.24409 -+ BFD_RELOC_UNUSED, 4, -1,
1.24410 -+ {
1.24411 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.24412 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24413 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24414 -+ &avr32_ifield_table[AVR32_IFIELD_K2],
1.24415 -+ },
1.24416 -+ },
1.24417 -+ {
1.24418 -+ AVR32_OPC_SUB5, 4, 0xe0c00000, 0xe1f00000,
1.24419 -+ &avr32_syntax_table[AVR32_SYNTAX_SUB5],
1.24420 -+ BFD_RELOC_AVR32_SUB5, 3, 2,
1.24421 -+ {
1.24422 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24423 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24424 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.24425 -+ },
1.24426 -+ },
1.24427 -+ {
1.24428 -+ AVR32_OPC_SUB3_SP, 2, 0x200d0000, 0xf00f0000,
1.24429 -+ &avr32_syntax_table[AVR32_SYNTAX_SUB3_SP],
1.24430 -+ BFD_RELOC_AVR32_10SW, 2, 1,
1.24431 -+ {
1.24432 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24433 -+ &avr32_ifield_table[AVR32_IFIELD_K8C],
1.24434 -+ },
1.24435 -+ },
1.24436 -+ {
1.24437 -+ AVR32_OPC_SUB3, 2, 0x20000000, 0xf0000000,
1.24438 -+ &avr32_syntax_table[AVR32_SYNTAX_SUB3],
1.24439 -+ BFD_RELOC_AVR32_8S, 2, 1,
1.24440 -+ {
1.24441 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24442 -+ &avr32_ifield_table[AVR32_IFIELD_K8C],
1.24443 -+ },
1.24444 -+ },
1.24445 -+ {
1.24446 -+ AVR32_OPC_SUB4, 4, 0xe0200000, 0xe1e00000,
1.24447 -+ &avr32_syntax_table[AVR32_SYNTAX_SUB4],
1.24448 -+ BFD_RELOC_AVR32_21S, 2, 1,
1.24449 -+ {
1.24450 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24451 -+ &avr32_ifield_table[AVR32_IFIELD_K21],
1.24452 -+ },
1.24453 -+ },
1.24454 -+ {
1.24455 -+ AVR32_OPC_SUBEQ, 4, 0xf7b00000, 0xfff0ff00,
1.24456 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBEQ],
1.24457 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24458 -+ {
1.24459 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24460 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24461 -+ },
1.24462 -+ },
1.24463 -+ {
1.24464 -+ AVR32_OPC_SUBNE, 4, 0xf7b00100, 0xfff0ff00,
1.24465 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBNE],
1.24466 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24467 -+ {
1.24468 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24469 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24470 -+ },
1.24471 -+ },
1.24472 -+ {
1.24473 -+ AVR32_OPC_SUBCC, 4, 0xf7b00200, 0xfff0ff00,
1.24474 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBHS],
1.24475 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24476 -+ {
1.24477 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24478 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24479 -+ },
1.24480 -+ },
1.24481 -+ {
1.24482 -+ AVR32_OPC_SUBCS, 4, 0xf7b00300, 0xfff0ff00,
1.24483 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBLO],
1.24484 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24485 -+ {
1.24486 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24487 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24488 -+ },
1.24489 -+ },
1.24490 -+ {
1.24491 -+ AVR32_OPC_SUBGE, 4, 0xf7b00400, 0xfff0ff00,
1.24492 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBGE],
1.24493 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24494 -+ {
1.24495 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24496 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24497 -+ },
1.24498 -+ },
1.24499 -+ {
1.24500 -+ AVR32_OPC_SUBLT, 4, 0xf7b00500, 0xfff0ff00,
1.24501 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBLT],
1.24502 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24503 -+ {
1.24504 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24505 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24506 -+ },
1.24507 -+ },
1.24508 -+ {
1.24509 -+ AVR32_OPC_SUBMI, 4, 0xf7b00600, 0xfff0ff00,
1.24510 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBMI],
1.24511 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24512 -+ {
1.24513 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24514 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24515 -+ },
1.24516 -+ },
1.24517 -+ {
1.24518 -+ AVR32_OPC_SUBPL, 4, 0xf7b00700, 0xfff0ff00,
1.24519 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBPL],
1.24520 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24521 -+ {
1.24522 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24523 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24524 -+ },
1.24525 -+ },
1.24526 -+ {
1.24527 -+ AVR32_OPC_SUBLS, 4, 0xf7b00800, 0xfff0ff00,
1.24528 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBLS],
1.24529 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24530 -+ {
1.24531 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24532 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24533 -+ },
1.24534 -+ },
1.24535 -+ {
1.24536 -+ AVR32_OPC_SUBGT, 4, 0xf7b00900, 0xfff0ff00,
1.24537 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBGT],
1.24538 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24539 -+ {
1.24540 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24541 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24542 -+ },
1.24543 -+ },
1.24544 -+ {
1.24545 -+ AVR32_OPC_SUBLE, 4, 0xf7b00a00, 0xfff0ff00,
1.24546 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBLE],
1.24547 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24548 -+ {
1.24549 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24550 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24551 -+ },
1.24552 -+ },
1.24553 -+ {
1.24554 -+ AVR32_OPC_SUBHI, 4, 0xf7b00b00, 0xfff0ff00,
1.24555 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBHI],
1.24556 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24557 -+ {
1.24558 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24559 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24560 -+ },
1.24561 -+ },
1.24562 -+ {
1.24563 -+ AVR32_OPC_SUBVS, 4, 0xf7b00c00, 0xfff0ff00,
1.24564 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBVS],
1.24565 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24566 -+ {
1.24567 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24568 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24569 -+ },
1.24570 -+ },
1.24571 -+ {
1.24572 -+ AVR32_OPC_SUBVC, 4, 0xf7b00d00, 0xfff0ff00,
1.24573 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBVC],
1.24574 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24575 -+ {
1.24576 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24577 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24578 -+ },
1.24579 -+ },
1.24580 -+ {
1.24581 -+ AVR32_OPC_SUBQS, 4, 0xf7b00e00, 0xfff0ff00,
1.24582 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBQS],
1.24583 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24584 -+ {
1.24585 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24586 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24587 -+ },
1.24588 -+ },
1.24589 -+ {
1.24590 -+ AVR32_OPC_SUBAL, 4, 0xf7b00f00, 0xfff0ff00,
1.24591 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBAL],
1.24592 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24593 -+ {
1.24594 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24595 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24596 -+ },
1.24597 -+ },
1.24598 -+ {
1.24599 -+ AVR32_OPC_SUBFEQ, 4, 0xf5b00000, 0xfff0ff00,
1.24600 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBFEQ],
1.24601 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24602 -+ {
1.24603 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24604 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24605 -+ },
1.24606 -+ },
1.24607 -+ {
1.24608 -+ AVR32_OPC_SUBFNE, 4, 0xf5b00100, 0xfff0ff00,
1.24609 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBFNE],
1.24610 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24611 -+ {
1.24612 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24613 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24614 -+ },
1.24615 -+ },
1.24616 -+ {
1.24617 -+ AVR32_OPC_SUBFCC, 4, 0xf5b00200, 0xfff0ff00,
1.24618 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBFHS],
1.24619 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24620 -+ {
1.24621 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24622 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24623 -+ },
1.24624 -+ },
1.24625 -+ {
1.24626 -+ AVR32_OPC_SUBFCS, 4, 0xf5b00300, 0xfff0ff00,
1.24627 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBFLO],
1.24628 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24629 -+ {
1.24630 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24631 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24632 -+ },
1.24633 -+ },
1.24634 -+ {
1.24635 -+ AVR32_OPC_SUBFGE, 4, 0xf5b00400, 0xfff0ff00,
1.24636 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBFGE],
1.24637 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24638 -+ {
1.24639 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24640 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24641 -+ },
1.24642 -+ },
1.24643 -+ {
1.24644 -+ AVR32_OPC_SUBFLT, 4, 0xf5b00500, 0xfff0ff00,
1.24645 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBFLT],
1.24646 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24647 -+ {
1.24648 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24649 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24650 -+ },
1.24651 -+ },
1.24652 -+ {
1.24653 -+ AVR32_OPC_SUBFMI, 4, 0xf5b00600, 0xfff0ff00,
1.24654 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBFMI],
1.24655 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24656 -+ {
1.24657 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24658 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24659 -+ },
1.24660 -+ },
1.24661 -+ {
1.24662 -+ AVR32_OPC_SUBFPL, 4, 0xf5b00700, 0xfff0ff00,
1.24663 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBFPL],
1.24664 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24665 -+ {
1.24666 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24667 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24668 -+ },
1.24669 -+ },
1.24670 -+ {
1.24671 -+ AVR32_OPC_SUBFLS, 4, 0xf5b00800, 0xfff0ff00,
1.24672 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBFLS],
1.24673 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24674 -+ {
1.24675 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24676 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24677 -+ },
1.24678 -+ },
1.24679 -+ {
1.24680 -+ AVR32_OPC_SUBFGT, 4, 0xf5b00900, 0xfff0ff00,
1.24681 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBFGT],
1.24682 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24683 -+ {
1.24684 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24685 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24686 -+ },
1.24687 -+ },
1.24688 -+ {
1.24689 -+ AVR32_OPC_SUBFLE, 4, 0xf5b00a00, 0xfff0ff00,
1.24690 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBFLE],
1.24691 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24692 -+ {
1.24693 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24694 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24695 -+ },
1.24696 -+ },
1.24697 -+ {
1.24698 -+ AVR32_OPC_SUBFHI, 4, 0xf5b00b00, 0xfff0ff00,
1.24699 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBFHI],
1.24700 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24701 -+ {
1.24702 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24703 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24704 -+ },
1.24705 -+ },
1.24706 -+ {
1.24707 -+ AVR32_OPC_SUBFVS, 4, 0xf5b00c00, 0xfff0ff00,
1.24708 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBFVS],
1.24709 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24710 -+ {
1.24711 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24712 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24713 -+ },
1.24714 -+ },
1.24715 -+ {
1.24716 -+ AVR32_OPC_SUBFVC, 4, 0xf5b00d00, 0xfff0ff00,
1.24717 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBFVC],
1.24718 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24719 -+ {
1.24720 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24721 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24722 -+ },
1.24723 -+ },
1.24724 -+ {
1.24725 -+ AVR32_OPC_SUBFQS, 4, 0xf5b00e00, 0xfff0ff00,
1.24726 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBFQS],
1.24727 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24728 -+ {
1.24729 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24730 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24731 -+ },
1.24732 -+ },
1.24733 -+ {
1.24734 -+ AVR32_OPC_SUBFAL, 4, 0xf5b00f00, 0xfff0ff00,
1.24735 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBFAL],
1.24736 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1,
1.24737 -+ {
1.24738 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24739 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24740 -+ },
1.24741 -+ },
1.24742 -+ {
1.24743 -+ AVR32_OPC_SUBHH_W, 4, 0xe0000f00, 0xe1f0ffc0,
1.24744 -+ &avr32_syntax_table[AVR32_SYNTAX_SUBHH_W],
1.24745 -+ BFD_RELOC_UNUSED, 5, -1,
1.24746 -+ {
1.24747 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.24748 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24749 -+ &avr32_ifield_table[AVR32_IFIELD_X],
1.24750 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24751 -+ &avr32_ifield_table[AVR32_IFIELD_Y],
1.24752 -+ },
1.24753 -+ },
1.24754 -+ {
1.24755 -+ AVR32_OPC_SWAP_B, 2, 0x5cb00000, 0xfff00000,
1.24756 -+ &avr32_syntax_table[AVR32_SYNTAX_SWAP_B],
1.24757 -+ BFD_RELOC_UNUSED, 1, -1,
1.24758 -+ {
1.24759 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24760 -+ }
1.24761 -+ },
1.24762 -+ {
1.24763 -+ AVR32_OPC_SWAP_BH, 2, 0x5cc00000, 0xfff00000,
1.24764 -+ &avr32_syntax_table[AVR32_SYNTAX_SWAP_BH],
1.24765 -+ BFD_RELOC_UNUSED, 1, -1,
1.24766 -+ {
1.24767 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24768 -+ }
1.24769 -+ },
1.24770 -+ {
1.24771 -+ AVR32_OPC_SWAP_H, 2, 0x5ca00000, 0xfff00000,
1.24772 -+ &avr32_syntax_table[AVR32_SYNTAX_SWAP_H],
1.24773 -+ BFD_RELOC_UNUSED, 1, -1,
1.24774 -+ {
1.24775 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24776 -+ }
1.24777 -+ },
1.24778 -+ {
1.24779 -+ AVR32_OPC_SYNC, 4, 0xebb00000, 0xffffff00,
1.24780 -+ &avr32_syntax_table[AVR32_SYNTAX_SYNC],
1.24781 -+ BFD_RELOC_AVR32_8S_EXT, 1, 0,
1.24782 -+ {
1.24783 -+ &avr32_ifield_table[AVR32_IFIELD_K8E],
1.24784 -+ }
1.24785 -+ },
1.24786 -+ {
1.24787 -+ AVR32_OPC_TLBR, 2, 0xd6430000, 0xffff0000,
1.24788 -+ &avr32_syntax_table[AVR32_SYNTAX_TLBR],
1.24789 -+ BFD_RELOC_UNUSED, 0, -1, { NULL },
1.24790 -+ },
1.24791 -+ {
1.24792 -+ AVR32_OPC_TLBS, 2, 0xd6530000, 0xffff0000,
1.24793 -+ &avr32_syntax_table[AVR32_SYNTAX_TLBS],
1.24794 -+ BFD_RELOC_UNUSED, 0, -1, { NULL },
1.24795 -+ },
1.24796 -+ {
1.24797 -+ AVR32_OPC_TLBW, 2, 0xd6630000, 0xffff0000,
1.24798 -+ &avr32_syntax_table[AVR32_SYNTAX_TLBW],
1.24799 -+ BFD_RELOC_UNUSED, 0, -1, { NULL },
1.24800 -+ },
1.24801 -+ {
1.24802 -+ AVR32_OPC_TNBZ, 2, 0x5ce00000, 0xfff00000,
1.24803 -+ &avr32_syntax_table[AVR32_SYNTAX_TNBZ],
1.24804 -+ BFD_RELOC_UNUSED, 1, -1,
1.24805 -+ {
1.24806 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24807 -+ }
1.24808 -+ },
1.24809 -+ {
1.24810 -+ AVR32_OPC_TST, 2, 0x00700000, 0xe1f00000,
1.24811 -+ &avr32_syntax_table[AVR32_SYNTAX_TST],
1.24812 -+ BFD_RELOC_UNUSED, 2, -1,
1.24813 -+ {
1.24814 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24815 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24816 -+ },
1.24817 -+ },
1.24818 -+ {
1.24819 -+ AVR32_OPC_XCHG, 4, 0xe0000b40, 0xe1f0fff0,
1.24820 -+ &avr32_syntax_table[AVR32_SYNTAX_XCHG],
1.24821 -+ BFD_RELOC_UNUSED, 3, -1,
1.24822 -+ {
1.24823 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E],
1.24824 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24825 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24826 -+ },
1.24827 -+ },
1.24828 -+ {
1.24829 -+ AVR32_OPC_MEMC, 4, 0xf6100000, 0xfff00000,
1.24830 -+ &avr32_syntax_table[AVR32_SYNTAX_MEMC],
1.24831 -+ BFD_RELOC_AVR32_15S, 2, 0,
1.24832 -+ {
1.24833 -+ &avr32_ifield_table[AVR32_IFIELD_MEM15],
1.24834 -+ &avr32_ifield_table[AVR32_IFIELD_MEMB5],
1.24835 -+ },
1.24836 -+ },
1.24837 -+ {
1.24838 -+ AVR32_OPC_MEMS, 4, 0xf8100000, 0xfff00000,
1.24839 -+ &avr32_syntax_table[AVR32_SYNTAX_MEMS],
1.24840 -+ BFD_RELOC_AVR32_15S, 2, 0,
1.24841 -+ {
1.24842 -+ &avr32_ifield_table[AVR32_IFIELD_MEM15],
1.24843 -+ &avr32_ifield_table[AVR32_IFIELD_MEMB5],
1.24844 -+ },
1.24845 -+ },
1.24846 -+ {
1.24847 -+ AVR32_OPC_MEMT, 4, 0xfa100000, 0xfff00000,
1.24848 -+ &avr32_syntax_table[AVR32_SYNTAX_MEMT],
1.24849 -+ BFD_RELOC_AVR32_15S, 2, 0,
1.24850 -+ {
1.24851 -+ &avr32_ifield_table[AVR32_IFIELD_MEM15],
1.24852 -+ &avr32_ifield_table[AVR32_IFIELD_MEMB5],
1.24853 -+ },
1.24854 -+ },
1.24855 -+ {
1.24856 -+ AVR32_OPC_BFEXTS, 4, 0xe1d0b000, 0xe1f0fc00,
1.24857 -+ &avr32_syntax_table[AVR32_SYNTAX_BFEXTS],
1.24858 -+ BFD_RELOC_UNUSED, 4, -1,
1.24859 -+ {
1.24860 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24861 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24862 -+ &avr32_ifield_table[AVR32_IFIELD_S5],
1.24863 -+ &avr32_ifield_table[AVR32_IFIELD_K5E],
1.24864 -+ },
1.24865 -+ },
1.24866 -+ {
1.24867 -+ AVR32_OPC_BFEXTU, 4, 0xe1d0c000, 0xe1f0fc00,
1.24868 -+ &avr32_syntax_table[AVR32_SYNTAX_BFEXTU],
1.24869 -+ BFD_RELOC_UNUSED, 4, -1,
1.24870 -+ {
1.24871 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24872 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24873 -+ &avr32_ifield_table[AVR32_IFIELD_S5],
1.24874 -+ &avr32_ifield_table[AVR32_IFIELD_K5E],
1.24875 -+ },
1.24876 -+ },
1.24877 -+ {
1.24878 -+ AVR32_OPC_BFINS, 4, 0xe1d0d000, 0xe1f0fc00,
1.24879 -+ &avr32_syntax_table[AVR32_SYNTAX_BFINS],
1.24880 -+ BFD_RELOC_UNUSED, 4, -1,
1.24881 -+ {
1.24882 -+ &avr32_ifield_table[AVR32_IFIELD_RX],
1.24883 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.24884 -+ &avr32_ifield_table[AVR32_IFIELD_S5],
1.24885 -+ &avr32_ifield_table[AVR32_IFIELD_K5E],
1.24886 -+ },
1.24887 -+ },
1.24888 -+#define AVR32_OPCODE_RSUBCOND(cond_name, cond_field) \
1.24889 -+ { \
1.24890 -+ AVR32_OPC_RSUB ## cond_name , 4, \
1.24891 -+ 0xfbb00000 | (cond_field << 8), 0xfff0ff00, \
1.24892 -+ &avr32_syntax_table[AVR32_SYNTAX_RSUB ## cond_name ], \
1.24893 -+ BFD_RELOC_AVR32_8S_EXT, 2, 1, \
1.24894 -+ { \
1.24895 -+ &avr32_ifield_table[AVR32_IFIELD_RY], \
1.24896 -+ &avr32_ifield_table[AVR32_IFIELD_K8E], \
1.24897 -+ }, \
1.24898 -+ },
1.24899 -+
1.24900 -+ AVR32_OPCODE_RSUBCOND (EQ, 0)
1.24901 -+ AVR32_OPCODE_RSUBCOND (NE, 1)
1.24902 -+ AVR32_OPCODE_RSUBCOND (CC, 2)
1.24903 -+ AVR32_OPCODE_RSUBCOND (CS, 3)
1.24904 -+ AVR32_OPCODE_RSUBCOND (GE, 4)
1.24905 -+ AVR32_OPCODE_RSUBCOND (LT, 5)
1.24906 -+ AVR32_OPCODE_RSUBCOND (MI, 6)
1.24907 -+ AVR32_OPCODE_RSUBCOND (PL, 7)
1.24908 -+ AVR32_OPCODE_RSUBCOND (LS, 8)
1.24909 -+ AVR32_OPCODE_RSUBCOND (GT, 9)
1.24910 -+ AVR32_OPCODE_RSUBCOND (LE, 10)
1.24911 -+ AVR32_OPCODE_RSUBCOND (HI, 11)
1.24912 -+ AVR32_OPCODE_RSUBCOND (VS, 12)
1.24913 -+ AVR32_OPCODE_RSUBCOND (VC, 13)
1.24914 -+ AVR32_OPCODE_RSUBCOND (QS, 14)
1.24915 -+ AVR32_OPCODE_RSUBCOND (AL, 15)
1.24916 -+
1.24917 -+#define AVR32_OPCODE_OP3_COND(op_name, op_field, cond_name, cond_field) \
1.24918 -+ { \
1.24919 -+ AVR32_OPC_ ## op_name ## cond_name , 4, \
1.24920 -+ 0xe1d0e000 | (cond_field << 8) | (op_field << 4), 0xe1f0fff0, \
1.24921 -+ &avr32_syntax_table[AVR32_SYNTAX_ ## op_name ## cond_name ], \
1.24922 -+ BFD_RELOC_UNUSED, 3, -1, \
1.24923 -+ { \
1.24924 -+ &avr32_ifield_table[AVR32_IFIELD_RD_E], \
1.24925 -+ &avr32_ifield_table[AVR32_IFIELD_RX], \
1.24926 -+ &avr32_ifield_table[AVR32_IFIELD_RY], \
1.24927 -+ }, \
1.24928 -+ },
1.24929 -+
1.24930 -+ AVR32_OPCODE_OP3_COND (ADD, 0, EQ, 0)
1.24931 -+ AVR32_OPCODE_OP3_COND (ADD, 0, NE, 1)
1.24932 -+ AVR32_OPCODE_OP3_COND (ADD, 0, CC, 2)
1.24933 -+ AVR32_OPCODE_OP3_COND (ADD, 0, CS, 3)
1.24934 -+ AVR32_OPCODE_OP3_COND (ADD, 0, GE, 4)
1.24935 -+ AVR32_OPCODE_OP3_COND (ADD, 0, LT, 5)
1.24936 -+ AVR32_OPCODE_OP3_COND (ADD, 0, MI, 6)
1.24937 -+ AVR32_OPCODE_OP3_COND (ADD, 0, PL, 7)
1.24938 -+ AVR32_OPCODE_OP3_COND (ADD, 0, LS, 8)
1.24939 -+ AVR32_OPCODE_OP3_COND (ADD, 0, GT, 9)
1.24940 -+ AVR32_OPCODE_OP3_COND (ADD, 0, LE, 10)
1.24941 -+ AVR32_OPCODE_OP3_COND (ADD, 0, HI, 11)
1.24942 -+ AVR32_OPCODE_OP3_COND (ADD, 0, VS, 12)
1.24943 -+ AVR32_OPCODE_OP3_COND (ADD, 0, VC, 13)
1.24944 -+ AVR32_OPCODE_OP3_COND (ADD, 0, QS, 14)
1.24945 -+ AVR32_OPCODE_OP3_COND (ADD, 0, AL, 15)
1.24946 -+
1.24947 -+ AVR32_OPCODE_OP3_COND (SUB2, 1, EQ, 0)
1.24948 -+ AVR32_OPCODE_OP3_COND (SUB2, 1, NE, 1)
1.24949 -+ AVR32_OPCODE_OP3_COND (SUB2, 1, CC, 2)
1.24950 -+ AVR32_OPCODE_OP3_COND (SUB2, 1, CS, 3)
1.24951 -+ AVR32_OPCODE_OP3_COND (SUB2, 1, GE, 4)
1.24952 -+ AVR32_OPCODE_OP3_COND (SUB2, 1, LT, 5)
1.24953 -+ AVR32_OPCODE_OP3_COND (SUB2, 1, MI, 6)
1.24954 -+ AVR32_OPCODE_OP3_COND (SUB2, 1, PL, 7)
1.24955 -+ AVR32_OPCODE_OP3_COND (SUB2, 1, LS, 8)
1.24956 -+ AVR32_OPCODE_OP3_COND (SUB2, 1, GT, 9)
1.24957 -+ AVR32_OPCODE_OP3_COND (SUB2, 1, LE, 10)
1.24958 -+ AVR32_OPCODE_OP3_COND (SUB2, 1, HI, 11)
1.24959 -+ AVR32_OPCODE_OP3_COND (SUB2, 1, VS, 12)
1.24960 -+ AVR32_OPCODE_OP3_COND (SUB2, 1, VC, 13)
1.24961 -+ AVR32_OPCODE_OP3_COND (SUB2, 1, QS, 14)
1.24962 -+ AVR32_OPCODE_OP3_COND (SUB2, 1, AL, 15)
1.24963 -+
1.24964 -+ AVR32_OPCODE_OP3_COND (AND, 2, EQ, 0)
1.24965 -+ AVR32_OPCODE_OP3_COND (AND, 2, NE, 1)
1.24966 -+ AVR32_OPCODE_OP3_COND (AND, 2, CC, 2)
1.24967 -+ AVR32_OPCODE_OP3_COND (AND, 2, CS, 3)
1.24968 -+ AVR32_OPCODE_OP3_COND (AND, 2, GE, 4)
1.24969 -+ AVR32_OPCODE_OP3_COND (AND, 2, LT, 5)
1.24970 -+ AVR32_OPCODE_OP3_COND (AND, 2, MI, 6)
1.24971 -+ AVR32_OPCODE_OP3_COND (AND, 2, PL, 7)
1.24972 -+ AVR32_OPCODE_OP3_COND (AND, 2, LS, 8)
1.24973 -+ AVR32_OPCODE_OP3_COND (AND, 2, GT, 9)
1.24974 -+ AVR32_OPCODE_OP3_COND (AND, 2, LE, 10)
1.24975 -+ AVR32_OPCODE_OP3_COND (AND, 2, HI, 11)
1.24976 -+ AVR32_OPCODE_OP3_COND (AND, 2, VS, 12)
1.24977 -+ AVR32_OPCODE_OP3_COND (AND, 2, VC, 13)
1.24978 -+ AVR32_OPCODE_OP3_COND (AND, 2, QS, 14)
1.24979 -+ AVR32_OPCODE_OP3_COND (AND, 2, AL, 15)
1.24980 -+
1.24981 -+ AVR32_OPCODE_OP3_COND (OR, 3, EQ, 0)
1.24982 -+ AVR32_OPCODE_OP3_COND (OR, 3, NE, 1)
1.24983 -+ AVR32_OPCODE_OP3_COND (OR, 3, CC, 2)
1.24984 -+ AVR32_OPCODE_OP3_COND (OR, 3, CS, 3)
1.24985 -+ AVR32_OPCODE_OP3_COND (OR, 3, GE, 4)
1.24986 -+ AVR32_OPCODE_OP3_COND (OR, 3, LT, 5)
1.24987 -+ AVR32_OPCODE_OP3_COND (OR, 3, MI, 6)
1.24988 -+ AVR32_OPCODE_OP3_COND (OR, 3, PL, 7)
1.24989 -+ AVR32_OPCODE_OP3_COND (OR, 3, LS, 8)
1.24990 -+ AVR32_OPCODE_OP3_COND (OR, 3, GT, 9)
1.24991 -+ AVR32_OPCODE_OP3_COND (OR, 3, LE, 10)
1.24992 -+ AVR32_OPCODE_OP3_COND (OR, 3, HI, 11)
1.24993 -+ AVR32_OPCODE_OP3_COND (OR, 3, VS, 12)
1.24994 -+ AVR32_OPCODE_OP3_COND (OR, 3, VC, 13)
1.24995 -+ AVR32_OPCODE_OP3_COND (OR, 3, QS, 14)
1.24996 -+ AVR32_OPCODE_OP3_COND (OR, 3, AL, 15)
1.24997 -+
1.24998 -+ AVR32_OPCODE_OP3_COND (EOR, 4, EQ, 0)
1.24999 -+ AVR32_OPCODE_OP3_COND (EOR, 4, NE, 1)
1.25000 -+ AVR32_OPCODE_OP3_COND (EOR, 4, CC, 2)
1.25001 -+ AVR32_OPCODE_OP3_COND (EOR, 4, CS, 3)
1.25002 -+ AVR32_OPCODE_OP3_COND (EOR, 4, GE, 4)
1.25003 -+ AVR32_OPCODE_OP3_COND (EOR, 4, LT, 5)
1.25004 -+ AVR32_OPCODE_OP3_COND (EOR, 4, MI, 6)
1.25005 -+ AVR32_OPCODE_OP3_COND (EOR, 4, PL, 7)
1.25006 -+ AVR32_OPCODE_OP3_COND (EOR, 4, LS, 8)
1.25007 -+ AVR32_OPCODE_OP3_COND (EOR, 4, GT, 9)
1.25008 -+ AVR32_OPCODE_OP3_COND (EOR, 4, LE, 10)
1.25009 -+ AVR32_OPCODE_OP3_COND (EOR, 4, HI, 11)
1.25010 -+ AVR32_OPCODE_OP3_COND (EOR, 4, VS, 12)
1.25011 -+ AVR32_OPCODE_OP3_COND (EOR, 4, VC, 13)
1.25012 -+ AVR32_OPCODE_OP3_COND (EOR, 4, QS, 14)
1.25013 -+ AVR32_OPCODE_OP3_COND (EOR, 4, AL, 15)
1.25014 -+
1.25015 -+#define AVR32_OPCODE_LD_COND(op_name, op_field, cond_name, cond_field) \
1.25016 -+ { \
1.25017 -+ AVR32_OPC_ ## op_name ## cond_name , 4, \
1.25018 -+ 0xe1f00000 | (cond_field << 12) | (op_field << 9), 0xe1f0fe00, \
1.25019 -+ &avr32_syntax_table[AVR32_SYNTAX_ ## op_name ## cond_name ], \
1.25020 -+ BFD_RELOC_UNUSED, 3, -1, \
1.25021 -+ { \
1.25022 -+ &avr32_ifield_table[AVR32_IFIELD_RY], \
1.25023 -+ &avr32_ifield_table[AVR32_IFIELD_RX], \
1.25024 -+ &avr32_ifield_table[AVR32_IFIELD_K9E], \
1.25025 -+ }, \
1.25026 -+ },
1.25027 -+
1.25028 -+#define AVR32_OPCODE_ST_COND(op_name, op_field, cond_name, cond_field) \
1.25029 -+ { \
1.25030 -+ AVR32_OPC_ ## op_name ## cond_name , 4, \
1.25031 -+ 0xe1f00000 | (cond_field << 12) | (op_field << 9), 0xe1f0fe00, \
1.25032 -+ &avr32_syntax_table[AVR32_SYNTAX_ ## op_name ## cond_name ], \
1.25033 -+ BFD_RELOC_UNUSED, 3, -1, \
1.25034 -+ { \
1.25035 -+ &avr32_ifield_table[AVR32_IFIELD_RX], \
1.25036 -+ &avr32_ifield_table[AVR32_IFIELD_K9E], \
1.25037 -+ &avr32_ifield_table[AVR32_IFIELD_RY], \
1.25038 -+ }, \
1.25039 -+ },
1.25040 -+
1.25041 -+ AVR32_OPCODE_LD_COND (LD_W, 0, EQ, 0)
1.25042 -+ AVR32_OPCODE_LD_COND (LD_W, 0, NE, 1)
1.25043 -+ AVR32_OPCODE_LD_COND (LD_W, 0, CC, 2)
1.25044 -+ AVR32_OPCODE_LD_COND (LD_W, 0, CS, 3)
1.25045 -+ AVR32_OPCODE_LD_COND (LD_W, 0, GE, 4)
1.25046 -+ AVR32_OPCODE_LD_COND (LD_W, 0, LT, 5)
1.25047 -+ AVR32_OPCODE_LD_COND (LD_W, 0, MI, 6)
1.25048 -+ AVR32_OPCODE_LD_COND (LD_W, 0, PL, 7)
1.25049 -+ AVR32_OPCODE_LD_COND (LD_W, 0, LS, 8)
1.25050 -+ AVR32_OPCODE_LD_COND (LD_W, 0, GT, 9)
1.25051 -+ AVR32_OPCODE_LD_COND (LD_W, 0, LE, 10)
1.25052 -+ AVR32_OPCODE_LD_COND (LD_W, 0, HI, 11)
1.25053 -+ AVR32_OPCODE_LD_COND (LD_W, 0, VS, 12)
1.25054 -+ AVR32_OPCODE_LD_COND (LD_W, 0, VC, 13)
1.25055 -+ AVR32_OPCODE_LD_COND (LD_W, 0, QS, 14)
1.25056 -+ AVR32_OPCODE_LD_COND (LD_W, 0, AL, 15)
1.25057 -+
1.25058 -+ AVR32_OPCODE_LD_COND (LD_SH, 1, EQ, 0)
1.25059 -+ AVR32_OPCODE_LD_COND (LD_SH, 1, NE, 1)
1.25060 -+ AVR32_OPCODE_LD_COND (LD_SH, 1, CC, 2)
1.25061 -+ AVR32_OPCODE_LD_COND (LD_SH, 1, CS, 3)
1.25062 -+ AVR32_OPCODE_LD_COND (LD_SH, 1, GE, 4)
1.25063 -+ AVR32_OPCODE_LD_COND (LD_SH, 1, LT, 5)
1.25064 -+ AVR32_OPCODE_LD_COND (LD_SH, 1, MI, 6)
1.25065 -+ AVR32_OPCODE_LD_COND (LD_SH, 1, PL, 7)
1.25066 -+ AVR32_OPCODE_LD_COND (LD_SH, 1, LS, 8)
1.25067 -+ AVR32_OPCODE_LD_COND (LD_SH, 1, GT, 9)
1.25068 -+ AVR32_OPCODE_LD_COND (LD_SH, 1, LE, 10)
1.25069 -+ AVR32_OPCODE_LD_COND (LD_SH, 1, HI, 11)
1.25070 -+ AVR32_OPCODE_LD_COND (LD_SH, 1, VS, 12)
1.25071 -+ AVR32_OPCODE_LD_COND (LD_SH, 1, VC, 13)
1.25072 -+ AVR32_OPCODE_LD_COND (LD_SH, 1, QS, 14)
1.25073 -+ AVR32_OPCODE_LD_COND (LD_SH, 1, AL, 15)
1.25074 -+
1.25075 -+ AVR32_OPCODE_LD_COND (LD_UH, 2, EQ, 0)
1.25076 -+ AVR32_OPCODE_LD_COND (LD_UH, 2, NE, 1)
1.25077 -+ AVR32_OPCODE_LD_COND (LD_UH, 2, CC, 2)
1.25078 -+ AVR32_OPCODE_LD_COND (LD_UH, 2, CS, 3)
1.25079 -+ AVR32_OPCODE_LD_COND (LD_UH, 2, GE, 4)
1.25080 -+ AVR32_OPCODE_LD_COND (LD_UH, 2, LT, 5)
1.25081 -+ AVR32_OPCODE_LD_COND (LD_UH, 2, MI, 6)
1.25082 -+ AVR32_OPCODE_LD_COND (LD_UH, 2, PL, 7)
1.25083 -+ AVR32_OPCODE_LD_COND (LD_SH, 2, LS, 8)
1.25084 -+ AVR32_OPCODE_LD_COND (LD_SH, 2, GT, 9)
1.25085 -+ AVR32_OPCODE_LD_COND (LD_SH, 2, LE, 10)
1.25086 -+ AVR32_OPCODE_LD_COND (LD_SH, 2, HI, 11)
1.25087 -+ AVR32_OPCODE_LD_COND (LD_SH, 2, VS, 12)
1.25088 -+ AVR32_OPCODE_LD_COND (LD_SH, 2, VC, 13)
1.25089 -+ AVR32_OPCODE_LD_COND (LD_SH, 2, QS, 14)
1.25090 -+ AVR32_OPCODE_LD_COND (LD_SH, 2, AL, 15)
1.25091 -+
1.25092 -+ AVR32_OPCODE_LD_COND (LD_SB, 3, EQ, 0)
1.25093 -+ AVR32_OPCODE_LD_COND (LD_SB, 3, NE, 1)
1.25094 -+ AVR32_OPCODE_LD_COND (LD_SB, 3, CC, 2)
1.25095 -+ AVR32_OPCODE_LD_COND (LD_SB, 3, CS, 3)
1.25096 -+ AVR32_OPCODE_LD_COND (LD_SB, 3, GE, 4)
1.25097 -+ AVR32_OPCODE_LD_COND (LD_SB, 3, LT, 5)
1.25098 -+ AVR32_OPCODE_LD_COND (LD_SB, 3, MI, 6)
1.25099 -+ AVR32_OPCODE_LD_COND (LD_SB, 3, PL, 7)
1.25100 -+ AVR32_OPCODE_LD_COND (LD_SB, 3, LS, 8)
1.25101 -+ AVR32_OPCODE_LD_COND (LD_SB, 3, GT, 9)
1.25102 -+ AVR32_OPCODE_LD_COND (LD_SB, 3, LE, 10)
1.25103 -+ AVR32_OPCODE_LD_COND (LD_SB, 3, HI, 11)
1.25104 -+ AVR32_OPCODE_LD_COND (LD_SB, 3, VS, 12)
1.25105 -+ AVR32_OPCODE_LD_COND (LD_SB, 3, VC, 13)
1.25106 -+ AVR32_OPCODE_LD_COND (LD_SB, 3, QS, 14)
1.25107 -+ AVR32_OPCODE_LD_COND (LD_SB, 3, AL, 15)
1.25108 -+
1.25109 -+ AVR32_OPCODE_LD_COND (LD_UB, 4, EQ, 0)
1.25110 -+ AVR32_OPCODE_LD_COND (LD_UB, 4, NE, 1)
1.25111 -+ AVR32_OPCODE_LD_COND (LD_UB, 4, CC, 2)
1.25112 -+ AVR32_OPCODE_LD_COND (LD_UB, 4, CS, 3)
1.25113 -+ AVR32_OPCODE_LD_COND (LD_UB, 4, GE, 4)
1.25114 -+ AVR32_OPCODE_LD_COND (LD_UB, 4, LT, 5)
1.25115 -+ AVR32_OPCODE_LD_COND (LD_UB, 4, MI, 6)
1.25116 -+ AVR32_OPCODE_LD_COND (LD_UB, 4, PL, 7)
1.25117 -+ AVR32_OPCODE_LD_COND (LD_UB, 4, LS, 8)
1.25118 -+ AVR32_OPCODE_LD_COND (LD_UB, 4, GT, 9)
1.25119 -+ AVR32_OPCODE_LD_COND (LD_UB, 4, LE, 10)
1.25120 -+ AVR32_OPCODE_LD_COND (LD_UB, 4, HI, 11)
1.25121 -+ AVR32_OPCODE_LD_COND (LD_UB, 4, VS, 12)
1.25122 -+ AVR32_OPCODE_LD_COND (LD_UB, 4, VC, 13)
1.25123 -+ AVR32_OPCODE_LD_COND (LD_UB, 4, QS, 14)
1.25124 -+ AVR32_OPCODE_LD_COND (LD_UB, 4, AL, 15)
1.25125 -+
1.25126 -+ AVR32_OPCODE_ST_COND (ST_W, 5, EQ, 0)
1.25127 -+ AVR32_OPCODE_ST_COND (ST_W, 5, NE, 1)
1.25128 -+ AVR32_OPCODE_ST_COND (ST_W, 5, CC, 2)
1.25129 -+ AVR32_OPCODE_ST_COND (ST_W, 5, CS, 3)
1.25130 -+ AVR32_OPCODE_ST_COND (ST_W, 5, GE, 4)
1.25131 -+ AVR32_OPCODE_ST_COND (ST_W, 5, LT, 5)
1.25132 -+ AVR32_OPCODE_ST_COND (ST_W, 5, MI, 6)
1.25133 -+ AVR32_OPCODE_ST_COND (ST_W, 5, PL, 7)
1.25134 -+ AVR32_OPCODE_ST_COND (ST_W, 5, LS, 8)
1.25135 -+ AVR32_OPCODE_ST_COND (ST_W, 5, GT, 9)
1.25136 -+ AVR32_OPCODE_ST_COND (ST_W, 5, LE, 10)
1.25137 -+ AVR32_OPCODE_ST_COND (ST_W, 5, HI, 11)
1.25138 -+ AVR32_OPCODE_ST_COND (ST_W, 5, VS, 12)
1.25139 -+ AVR32_OPCODE_ST_COND (ST_W, 5, VC, 13)
1.25140 -+ AVR32_OPCODE_ST_COND (ST_W, 5, QS, 14)
1.25141 -+ AVR32_OPCODE_ST_COND (ST_W, 5, AL, 15)
1.25142 -+
1.25143 -+ AVR32_OPCODE_ST_COND (ST_H, 6, EQ, 0)
1.25144 -+ AVR32_OPCODE_ST_COND (ST_H, 6, NE, 1)
1.25145 -+ AVR32_OPCODE_ST_COND (ST_H, 6, CC, 2)
1.25146 -+ AVR32_OPCODE_ST_COND (ST_H, 6, CS, 3)
1.25147 -+ AVR32_OPCODE_ST_COND (ST_H, 6, GE, 4)
1.25148 -+ AVR32_OPCODE_ST_COND (ST_H, 6, LT, 5)
1.25149 -+ AVR32_OPCODE_ST_COND (ST_H, 6, MI, 6)
1.25150 -+ AVR32_OPCODE_ST_COND (ST_H, 6, PL, 7)
1.25151 -+ AVR32_OPCODE_ST_COND (ST_H, 6, LS, 8)
1.25152 -+ AVR32_OPCODE_ST_COND (ST_H, 6, GT, 9)
1.25153 -+ AVR32_OPCODE_ST_COND (ST_H, 6, LE, 10)
1.25154 -+ AVR32_OPCODE_ST_COND (ST_H, 6, HI, 11)
1.25155 -+ AVR32_OPCODE_ST_COND (ST_H, 6, VS, 12)
1.25156 -+ AVR32_OPCODE_ST_COND (ST_H, 6, VC, 13)
1.25157 -+ AVR32_OPCODE_ST_COND (ST_H, 6, QS, 14)
1.25158 -+ AVR32_OPCODE_ST_COND (ST_H, 6, AL, 15)
1.25159 -+
1.25160 -+ AVR32_OPCODE_ST_COND (ST_B, 7, EQ, 0)
1.25161 -+ AVR32_OPCODE_ST_COND (ST_B, 7, NE, 1)
1.25162 -+ AVR32_OPCODE_ST_COND (ST_B, 7, CC, 2)
1.25163 -+ AVR32_OPCODE_ST_COND (ST_B, 7, CS, 3)
1.25164 -+ AVR32_OPCODE_ST_COND (ST_B, 7, GE, 4)
1.25165 -+ AVR32_OPCODE_ST_COND (ST_B, 7, LT, 5)
1.25166 -+ AVR32_OPCODE_ST_COND (ST_B, 7, MI, 6)
1.25167 -+ AVR32_OPCODE_ST_COND (ST_B, 7, PL, 7)
1.25168 -+ AVR32_OPCODE_ST_COND (ST_B, 7, LS, 8)
1.25169 -+ AVR32_OPCODE_ST_COND (ST_B, 7, GT, 9)
1.25170 -+ AVR32_OPCODE_ST_COND (ST_B, 7, LE, 10)
1.25171 -+ AVR32_OPCODE_ST_COND (ST_B, 7, HI, 11)
1.25172 -+ AVR32_OPCODE_ST_COND (ST_B, 7, VS, 12)
1.25173 -+ AVR32_OPCODE_ST_COND (ST_B, 7, VC, 13)
1.25174 -+ AVR32_OPCODE_ST_COND (ST_B, 7, QS, 14)
1.25175 -+ AVR32_OPCODE_ST_COND (ST_B, 7, AL, 15)
1.25176 -+
1.25177 -+ {
1.25178 -+ AVR32_OPC_MOVH, 4, 0xfc100000, 0xfff00000,
1.25179 -+ &avr32_syntax_table[AVR32_SYNTAX_MOVH],
1.25180 -+ BFD_RELOC_AVR32_16U, 2, 1,
1.25181 -+ {
1.25182 -+ &avr32_ifield_table[AVR32_IFIELD_RY],
1.25183 -+ &avr32_ifield_table[AVR32_IFIELD_K16],
1.25184 -+ },
1.25185 -+ },
1.25186 -+
1.25187 -+ };
1.25188 -+
1.25189 -+#define FPALIAS_DXY(name, opcode) \
1.25190 -+ { \
1.25191 -+ AVR32_ALIAS_##name##_S, \
1.25192 -+ &avr32_opc_table[AVR32_OPC_COP], \
1.25193 -+ { \
1.25194 -+ { 0, 0 }, \
1.25195 -+ { 1, 0 }, { 1, 1 }, { 1, 2 }, \
1.25196 -+ { 0, opcode }, \
1.25197 -+ }, \
1.25198 -+ }, { \
1.25199 -+ AVR32_ALIAS_##name##_D, \
1.25200 -+ &avr32_opc_table[AVR32_OPC_COP], \
1.25201 -+ { \
1.25202 -+ { 0, 0 }, \
1.25203 -+ { 1, 0 }, { 1, 1 }, { 1, 2 }, \
1.25204 -+ { 0, (opcode) | 0x40 }, \
1.25205 -+ }, \
1.25206 -+ }
1.25207 -+#define FPALIAS_DX(name, opcode) \
1.25208 -+ { \
1.25209 -+ AVR32_ALIAS_##name##_S, \
1.25210 -+ &avr32_opc_table[AVR32_OPC_COP], \
1.25211 -+ { \
1.25212 -+ { 0, 0 }, \
1.25213 -+ { 1, 0 }, { 1, 1 }, { 0, 0 }, \
1.25214 -+ { 0, opcode }, \
1.25215 -+ }, \
1.25216 -+ }, { \
1.25217 -+ AVR32_ALIAS_##name##_D, \
1.25218 -+ &avr32_opc_table[AVR32_OPC_COP], \
1.25219 -+ { \
1.25220 -+ { 0, 0 }, \
1.25221 -+ { 1, 0 }, { 1, 1 }, { 0, 0 }, \
1.25222 -+ { 0, (opcode) | 0x40 }, \
1.25223 -+ }, \
1.25224 -+ }
1.25225 -+#define FPALIAS_XY(name, opcode) \
1.25226 -+ { \
1.25227 -+ AVR32_ALIAS_##name##_S, \
1.25228 -+ &avr32_opc_table[AVR32_OPC_COP], \
1.25229 -+ { \
1.25230 -+ { 0, 0 }, \
1.25231 -+ { 0, 0 }, { 1, 0 }, { 1, 1 }, \
1.25232 -+ { 0, opcode }, \
1.25233 -+ }, \
1.25234 -+ }, { \
1.25235 -+ AVR32_ALIAS_##name##_D, \
1.25236 -+ &avr32_opc_table[AVR32_OPC_COP], \
1.25237 -+ { \
1.25238 -+ { 0, 0 }, \
1.25239 -+ { 0, 0 }, { 1, 0 }, { 1, 1 }, \
1.25240 -+ { 0, (opcode) | 0x40 }, \
1.25241 -+ }, \
1.25242 -+ }
1.25243 -+
1.25244 -+const struct avr32_alias avr32_alias_table[] =
1.25245 -+ {
1.25246 -+ FPALIAS_DXY(FMAC, 0x00),
1.25247 -+ FPALIAS_DXY(FNMAC, 0x01),
1.25248 -+ FPALIAS_DXY(FMSC, 0x02),
1.25249 -+ FPALIAS_DXY(FNMSC, 0x03),
1.25250 -+ FPALIAS_DXY(FADD, 0x04),
1.25251 -+ FPALIAS_DXY(FSUB, 0x05),
1.25252 -+ FPALIAS_DXY(FMUL, 0x06),
1.25253 -+ FPALIAS_DXY(FNMUL, 0x07),
1.25254 -+ FPALIAS_DX(FNEG, 0x08),
1.25255 -+ FPALIAS_DX(FABS, 0x09),
1.25256 -+ FPALIAS_XY(FCMP, 0x0d),
1.25257 -+ FPALIAS_DX(FMOV1, 0x0a),
1.25258 -+ {
1.25259 -+ AVR32_ALIAS_FMOV2_S,
1.25260 -+ &avr32_opc_table[AVR32_OPC_MVCR_W],
1.25261 -+ { { 0, 0 }, { 1, 0 }, { 1, 1 }, },
1.25262 -+ },
1.25263 -+ {
1.25264 -+ AVR32_ALIAS_FMOV2_D,
1.25265 -+ &avr32_opc_table[AVR32_OPC_MVCR_D],
1.25266 -+ { { 0, 0 }, { 1, 0 }, { 1, 1 }, },
1.25267 -+ },
1.25268 -+ {
1.25269 -+ AVR32_ALIAS_FMOV3_S,
1.25270 -+ &avr32_opc_table[AVR32_OPC_MVRC_W],
1.25271 -+ { { 0, 0 }, { 1, 0 }, { 1, 1 }, },
1.25272 -+ },
1.25273 -+ {
1.25274 -+ AVR32_ALIAS_FMOV3_D,
1.25275 -+ &avr32_opc_table[AVR32_OPC_MVRC_D],
1.25276 -+ { { 0, 0 }, { 1, 0 }, { 1, 1 }, },
1.25277 -+ },
1.25278 -+ {
1.25279 -+ AVR32_ALIAS_FCASTS_D,
1.25280 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25281 -+ {
1.25282 -+ { 0, 0 },
1.25283 -+ { 1, 0 }, { 1, 1 }, { 0, 0 },
1.25284 -+ { 0, 0x0f },
1.25285 -+ },
1.25286 -+ },
1.25287 -+ {
1.25288 -+ AVR32_ALIAS_FCASTD_S,
1.25289 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25290 -+ {
1.25291 -+ { 0, 0 },
1.25292 -+ { 1, 0 }, { 1, 1 }, { 0, 0 },
1.25293 -+ { 0, 0x10 },
1.25294 -+ },
1.25295 -+ },
1.25296 -+ {
1.25297 -+ AVR32_ALIAS_PICOSVMAC0,
1.25298 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25299 -+ {
1.25300 -+ { 0, PICO_CPNO },
1.25301 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25302 -+ { 0, 0x0c },
1.25303 -+ },
1.25304 -+ },
1.25305 -+ {
1.25306 -+ AVR32_ALIAS_PICOSVMAC1,
1.25307 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25308 -+ {
1.25309 -+ { 0, PICO_CPNO },
1.25310 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25311 -+ { 0, 0x0d },
1.25312 -+ },
1.25313 -+ },
1.25314 -+ {
1.25315 -+ AVR32_ALIAS_PICOSVMAC2,
1.25316 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25317 -+ {
1.25318 -+ { 0, PICO_CPNO },
1.25319 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25320 -+ { 0, 0x0e },
1.25321 -+ },
1.25322 -+ },
1.25323 -+ {
1.25324 -+ AVR32_ALIAS_PICOSVMAC3,
1.25325 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25326 -+ {
1.25327 -+ { 0, PICO_CPNO },
1.25328 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25329 -+ { 0, 0x0f },
1.25330 -+ },
1.25331 -+ },
1.25332 -+ {
1.25333 -+ AVR32_ALIAS_PICOSVMUL0,
1.25334 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25335 -+ {
1.25336 -+ { 0, PICO_CPNO },
1.25337 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25338 -+ { 0, 0x08 },
1.25339 -+ },
1.25340 -+ },
1.25341 -+ {
1.25342 -+ AVR32_ALIAS_PICOSVMUL1,
1.25343 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25344 -+ {
1.25345 -+ { 0, PICO_CPNO },
1.25346 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25347 -+ { 0, 0x09 },
1.25348 -+ },
1.25349 -+ },
1.25350 -+ {
1.25351 -+ AVR32_ALIAS_PICOSVMUL2,
1.25352 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25353 -+ {
1.25354 -+ { 0, PICO_CPNO },
1.25355 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25356 -+ { 0, 0x0a },
1.25357 -+ },
1.25358 -+ },
1.25359 -+ {
1.25360 -+ AVR32_ALIAS_PICOSVMUL3,
1.25361 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25362 -+ {
1.25363 -+ { 0, PICO_CPNO },
1.25364 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25365 -+ { 0, 0x0b },
1.25366 -+ },
1.25367 -+ },
1.25368 -+ {
1.25369 -+ AVR32_ALIAS_PICOVMAC0,
1.25370 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25371 -+ {
1.25372 -+ { 0, PICO_CPNO },
1.25373 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25374 -+ { 0, 0x04 },
1.25375 -+ },
1.25376 -+ },
1.25377 -+ {
1.25378 -+ AVR32_ALIAS_PICOVMAC1,
1.25379 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25380 -+ {
1.25381 -+ { 0, PICO_CPNO },
1.25382 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25383 -+ { 0, 0x05 },
1.25384 -+ },
1.25385 -+ },
1.25386 -+ {
1.25387 -+ AVR32_ALIAS_PICOVMAC2,
1.25388 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25389 -+ {
1.25390 -+ { 0, PICO_CPNO },
1.25391 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25392 -+ { 0, 0x06 },
1.25393 -+ },
1.25394 -+ },
1.25395 -+ {
1.25396 -+ AVR32_ALIAS_PICOVMAC3,
1.25397 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25398 -+ {
1.25399 -+ { 0, PICO_CPNO },
1.25400 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25401 -+ { 0, 0x07 },
1.25402 -+ },
1.25403 -+ },
1.25404 -+ {
1.25405 -+ AVR32_ALIAS_PICOVMUL0,
1.25406 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25407 -+ {
1.25408 -+ { 0, PICO_CPNO },
1.25409 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25410 -+ { 0, 0x00 },
1.25411 -+ },
1.25412 -+ },
1.25413 -+ {
1.25414 -+ AVR32_ALIAS_PICOVMUL1,
1.25415 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25416 -+ {
1.25417 -+ { 0, PICO_CPNO },
1.25418 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25419 -+ { 0, 0x01 },
1.25420 -+ },
1.25421 -+ },
1.25422 -+ {
1.25423 -+ AVR32_ALIAS_PICOVMUL2,
1.25424 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25425 -+ {
1.25426 -+ { 0, PICO_CPNO },
1.25427 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25428 -+ { 0, 0x02 },
1.25429 -+ },
1.25430 -+ },
1.25431 -+ {
1.25432 -+ AVR32_ALIAS_PICOVMUL3,
1.25433 -+ &avr32_opc_table[AVR32_OPC_COP],
1.25434 -+ {
1.25435 -+ { 0, PICO_CPNO },
1.25436 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25437 -+ { 0, 0x03 },
1.25438 -+ },
1.25439 -+ },
1.25440 -+ {
1.25441 -+ AVR32_ALIAS_PICOLD_D1,
1.25442 -+ &avr32_opc_table[AVR32_OPC_LDC_D1],
1.25443 -+ {
1.25444 -+ { 0, PICO_CPNO },
1.25445 -+ { 1, 0 }, { 1, 1 },
1.25446 -+ },
1.25447 -+ },
1.25448 -+ {
1.25449 -+ AVR32_ALIAS_PICOLD_D2,
1.25450 -+ &avr32_opc_table[AVR32_OPC_LDC_D2],
1.25451 -+ {
1.25452 -+ { 0, PICO_CPNO },
1.25453 -+ { 1, 0 }, { 1, 1 },
1.25454 -+ },
1.25455 -+ },
1.25456 -+ {
1.25457 -+ AVR32_ALIAS_PICOLD_D3,
1.25458 -+ &avr32_opc_table[AVR32_OPC_LDC_D3],
1.25459 -+ {
1.25460 -+ { 0, PICO_CPNO },
1.25461 -+ { 1, 0 }, { 1, 1 }, { 1, 2 }, { 1, 3 },
1.25462 -+ },
1.25463 -+ },
1.25464 -+ {
1.25465 -+ AVR32_ALIAS_PICOLD_W1,
1.25466 -+ &avr32_opc_table[AVR32_OPC_LDC_W1],
1.25467 -+ {
1.25468 -+ { 0, PICO_CPNO },
1.25469 -+ { 1, 0 }, { 1, 1 },
1.25470 -+ },
1.25471 -+ },
1.25472 -+ {
1.25473 -+ AVR32_ALIAS_PICOLD_W2,
1.25474 -+ &avr32_opc_table[AVR32_OPC_LDC_W2],
1.25475 -+ {
1.25476 -+ { 0, PICO_CPNO },
1.25477 -+ { 1, 0 }, { 1, 1 },
1.25478 -+ },
1.25479 -+ },
1.25480 -+ {
1.25481 -+ AVR32_ALIAS_PICOLD_W3,
1.25482 -+ &avr32_opc_table[AVR32_OPC_LDC_W3],
1.25483 -+ {
1.25484 -+ { 0, PICO_CPNO },
1.25485 -+ { 1, 0 }, { 1, 1 }, { 1, 2 }, { 1, 3 },
1.25486 -+ },
1.25487 -+ },
1.25488 -+ {
1.25489 -+ AVR32_ALIAS_PICOLDM_D,
1.25490 -+ &avr32_opc_table[AVR32_OPC_LDCM_D],
1.25491 -+ {
1.25492 -+ { 0, PICO_CPNO },
1.25493 -+ { 1, 0 }, { 1, 1 },
1.25494 -+ },
1.25495 -+ },
1.25496 -+ {
1.25497 -+ AVR32_ALIAS_PICOLDM_D_PU,
1.25498 -+ &avr32_opc_table[AVR32_OPC_LDCM_D_PU],
1.25499 -+ {
1.25500 -+ { 0, PICO_CPNO },
1.25501 -+ { 1, 0 }, { 1, 1 },
1.25502 -+ },
1.25503 -+ },
1.25504 -+ {
1.25505 -+ AVR32_ALIAS_PICOLDM_W,
1.25506 -+ &avr32_opc_table[AVR32_OPC_LDCM_W],
1.25507 -+ {
1.25508 -+ { 0, PICO_CPNO },
1.25509 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25510 -+ },
1.25511 -+ },
1.25512 -+ {
1.25513 -+ AVR32_ALIAS_PICOLDM_W_PU,
1.25514 -+ &avr32_opc_table[AVR32_OPC_LDCM_W_PU],
1.25515 -+ {
1.25516 -+ { 0, PICO_CPNO },
1.25517 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25518 -+ },
1.25519 -+ },
1.25520 -+ {
1.25521 -+ AVR32_ALIAS_PICOMV_D1,
1.25522 -+ &avr32_opc_table[AVR32_OPC_MVCR_D],
1.25523 -+ {
1.25524 -+ { 0, PICO_CPNO },
1.25525 -+ { 1, 0 }, { 1, 1 },
1.25526 -+ },
1.25527 -+ },
1.25528 -+ {
1.25529 -+ AVR32_ALIAS_PICOMV_D2,
1.25530 -+ &avr32_opc_table[AVR32_OPC_MVRC_D],
1.25531 -+ {
1.25532 -+ { 0, PICO_CPNO },
1.25533 -+ { 1, 0 }, { 1, 1 },
1.25534 -+ },
1.25535 -+ },
1.25536 -+ {
1.25537 -+ AVR32_ALIAS_PICOMV_W1,
1.25538 -+ &avr32_opc_table[AVR32_OPC_MVCR_W],
1.25539 -+ {
1.25540 -+ { 0, PICO_CPNO },
1.25541 -+ { 1, 0 }, { 1, 1 },
1.25542 -+ },
1.25543 -+ },
1.25544 -+ {
1.25545 -+ AVR32_ALIAS_PICOMV_W2,
1.25546 -+ &avr32_opc_table[AVR32_OPC_MVRC_W],
1.25547 -+ {
1.25548 -+ { 0, PICO_CPNO },
1.25549 -+ { 1, 0 }, { 1, 1 },
1.25550 -+ },
1.25551 -+ },
1.25552 -+ {
1.25553 -+ AVR32_ALIAS_PICOST_D1,
1.25554 -+ &avr32_opc_table[AVR32_OPC_STC_D1],
1.25555 -+ {
1.25556 -+ { 0, PICO_CPNO },
1.25557 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25558 -+ },
1.25559 -+ },
1.25560 -+ {
1.25561 -+ AVR32_ALIAS_PICOST_D2,
1.25562 -+ &avr32_opc_table[AVR32_OPC_STC_D2],
1.25563 -+ {
1.25564 -+ { 0, PICO_CPNO },
1.25565 -+ { 1, 0 }, { 1, 1 },
1.25566 -+ },
1.25567 -+ },
1.25568 -+ {
1.25569 -+ AVR32_ALIAS_PICOST_D3,
1.25570 -+ &avr32_opc_table[AVR32_OPC_STC_D3],
1.25571 -+ {
1.25572 -+ { 0, PICO_CPNO },
1.25573 -+ { 1, 0 }, { 1, 1 }, { 1, 2 }, { 1, 3 },
1.25574 -+ },
1.25575 -+ },
1.25576 -+ {
1.25577 -+ AVR32_ALIAS_PICOST_W1,
1.25578 -+ &avr32_opc_table[AVR32_OPC_STC_W1],
1.25579 -+ {
1.25580 -+ { 0, PICO_CPNO },
1.25581 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25582 -+ },
1.25583 -+ },
1.25584 -+ {
1.25585 -+ AVR32_ALIAS_PICOST_W2,
1.25586 -+ &avr32_opc_table[AVR32_OPC_STC_W2],
1.25587 -+ {
1.25588 -+ { 0, PICO_CPNO },
1.25589 -+ { 1, 0 }, { 1, 1 },
1.25590 -+ },
1.25591 -+ },
1.25592 -+ {
1.25593 -+ AVR32_ALIAS_PICOST_W3,
1.25594 -+ &avr32_opc_table[AVR32_OPC_STC_W3],
1.25595 -+ {
1.25596 -+ { 0, PICO_CPNO },
1.25597 -+ { 1, 0 }, { 1, 1 }, { 1, 2 }, { 1, 3 },
1.25598 -+ },
1.25599 -+ },
1.25600 -+ {
1.25601 -+ AVR32_ALIAS_PICOSTM_D,
1.25602 -+ &avr32_opc_table[AVR32_OPC_STCM_D],
1.25603 -+ {
1.25604 -+ { 0, PICO_CPNO },
1.25605 -+ { 1, 0 }, { 1, 1 },
1.25606 -+ },
1.25607 -+ },
1.25608 -+ {
1.25609 -+ AVR32_ALIAS_PICOSTM_D_PU,
1.25610 -+ &avr32_opc_table[AVR32_OPC_STCM_D_PU],
1.25611 -+ {
1.25612 -+ { 0, PICO_CPNO },
1.25613 -+ { 1, 0 }, { 1, 1 },
1.25614 -+ },
1.25615 -+ },
1.25616 -+ {
1.25617 -+ AVR32_ALIAS_PICOSTM_W,
1.25618 -+ &avr32_opc_table[AVR32_OPC_STCM_W],
1.25619 -+ {
1.25620 -+ { 0, PICO_CPNO },
1.25621 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25622 -+ },
1.25623 -+ },
1.25624 -+ {
1.25625 -+ AVR32_ALIAS_PICOSTM_W_PU,
1.25626 -+ &avr32_opc_table[AVR32_OPC_STCM_W_PU],
1.25627 -+ {
1.25628 -+ { 0, PICO_CPNO },
1.25629 -+ { 1, 0 }, { 1, 1 }, { 1, 2 },
1.25630 -+ },
1.25631 -+ },
1.25632 -+ };
1.25633 -+
1.25634 -+
1.25635 -+#define SYNTAX_NORMAL0(id, mne, opc, arch) \
1.25636 -+ { \
1.25637 -+ AVR32_SYNTAX_##id, arch, \
1.25638 -+ &avr32_mnemonic_table[AVR32_MNEMONIC_##mne], \
1.25639 -+ AVR32_PARSER_NORMAL, \
1.25640 -+ { &avr32_opc_table[AVR32_OPC_##opc], }, \
1.25641 -+ NULL, 0, { } \
1.25642 -+ }
1.25643 -+#define SYNTAX_NORMAL1(id, mne, opc, op0, arch) \
1.25644 -+ { \
1.25645 -+ AVR32_SYNTAX_##id, arch, \
1.25646 -+ &avr32_mnemonic_table[AVR32_MNEMONIC_##mne], \
1.25647 -+ AVR32_PARSER_NORMAL, \
1.25648 -+ { &avr32_opc_table[AVR32_OPC_##opc], }, \
1.25649 -+ NULL, 1, \
1.25650 -+ { \
1.25651 -+ AVR32_OPERAND_##op0, \
1.25652 -+ } \
1.25653 -+ }
1.25654 -+#define SYNTAX_NORMALM1(id, mne, opc, op0, arch) \
1.25655 -+ { \
1.25656 -+ AVR32_SYNTAX_##id, arch, \
1.25657 -+ &avr32_mnemonic_table[AVR32_MNEMONIC_##mne], \
1.25658 -+ AVR32_PARSER_NORMAL, \
1.25659 -+ { &avr32_opc_table[AVR32_OPC_##opc], }, \
1.25660 -+ NULL, -1, \
1.25661 -+ { \
1.25662 -+ AVR32_OPERAND_##op0, \
1.25663 -+ } \
1.25664 -+ }
1.25665 -+#define SYNTAX_NORMAL2(id, mne, opc, op0, op1, arch) \
1.25666 -+ { \
1.25667 -+ AVR32_SYNTAX_##id, arch, \
1.25668 -+ &avr32_mnemonic_table[AVR32_MNEMONIC_##mne], \
1.25669 -+ AVR32_PARSER_NORMAL, \
1.25670 -+ { &avr32_opc_table[AVR32_OPC_##opc], }, \
1.25671 -+ NULL, 2, \
1.25672 -+ { \
1.25673 -+ AVR32_OPERAND_##op0, AVR32_OPERAND_##op1, \
1.25674 -+ } \
1.25675 -+ }
1.25676 -+#define SYNTAX_NORMALM2(id, mne, opc, op0, op1, arch) \
1.25677 -+ { \
1.25678 -+ AVR32_SYNTAX_##id, arch, \
1.25679 -+ &avr32_mnemonic_table[AVR32_MNEMONIC_##mne], \
1.25680 -+ AVR32_PARSER_NORMAL, \
1.25681 -+ { &avr32_opc_table[AVR32_OPC_##opc], }, \
1.25682 -+ NULL, -2, \
1.25683 -+ { \
1.25684 -+ AVR32_OPERAND_##op0, AVR32_OPERAND_##op1, \
1.25685 -+ } \
1.25686 -+ }
1.25687 -+#define SYNTAX_NORMAL3(id, mne, opc, op0, op1, op2, arch) \
1.25688 -+ { \
1.25689 -+ AVR32_SYNTAX_##id, arch, \
1.25690 -+ &avr32_mnemonic_table[AVR32_MNEMONIC_##mne], \
1.25691 -+ AVR32_PARSER_NORMAL, \
1.25692 -+ { &avr32_opc_table[AVR32_OPC_##opc], }, \
1.25693 -+ NULL, 3, \
1.25694 -+ { \
1.25695 -+ AVR32_OPERAND_##op0, AVR32_OPERAND_##op1, \
1.25696 -+ AVR32_OPERAND_##op2, \
1.25697 -+ } \
1.25698 -+ }
1.25699 -+#define SYNTAX_NORMALM3(id, mne, opc, op0, op1, op2, arch) \
1.25700 -+ { \
1.25701 -+ AVR32_SYNTAX_##id, arch, \
1.25702 -+ &avr32_mnemonic_table[AVR32_MNEMONIC_##mne], \
1.25703 -+ AVR32_PARSER_NORMAL, \
1.25704 -+ { &avr32_opc_table[AVR32_OPC_##opc], }, \
1.25705 -+ NULL, -3, \
1.25706 -+ { \
1.25707 -+ AVR32_OPERAND_##op0, AVR32_OPERAND_##op1, \
1.25708 -+ AVR32_OPERAND_##op2, \
1.25709 -+ } \
1.25710 -+ }
1.25711 -+#define SYNTAX_NORMAL4(id, mne, opc, op0, op1, op2, op3, arch)\
1.25712 -+ { \
1.25713 -+ AVR32_SYNTAX_##id, arch, \
1.25714 -+ &avr32_mnemonic_table[AVR32_MNEMONIC_##mne], \
1.25715 -+ AVR32_PARSER_NORMAL, \
1.25716 -+ { &avr32_opc_table[AVR32_OPC_##opc], }, \
1.25717 -+ NULL, 4, \
1.25718 -+ { \
1.25719 -+ AVR32_OPERAND_##op0, AVR32_OPERAND_##op1, \
1.25720 -+ AVR32_OPERAND_##op2, AVR32_OPERAND_##op3, \
1.25721 -+ } \
1.25722 -+ }
1.25723 -+#define SYNTAX_NORMAL5(id, mne, opc, op0, op1, op2, op3, op4, arch) \
1.25724 -+ { \
1.25725 -+ AVR32_SYNTAX_##id, arch, \
1.25726 -+ &avr32_mnemonic_table[AVR32_MNEMONIC_##mne], \
1.25727 -+ AVR32_PARSER_NORMAL, \
1.25728 -+ { &avr32_opc_table[AVR32_OPC_##opc], }, \
1.25729 -+ NULL, 5, \
1.25730 -+ { \
1.25731 -+ AVR32_OPERAND_##op0, AVR32_OPERAND_##op1, \
1.25732 -+ AVR32_OPERAND_##op2, AVR32_OPERAND_##op3, \
1.25733 -+ AVR32_OPERAND_##op4, \
1.25734 -+ } \
1.25735 -+ }
1.25736 -+
1.25737 -+#define SYNTAX_NORMAL_C1(id, mne, opc, nxt, op0, arch) \
1.25738 -+ { \
1.25739 -+ AVR32_SYNTAX_##id, arch, \
1.25740 -+ &avr32_mnemonic_table[AVR32_MNEMONIC_##mne], \
1.25741 -+ AVR32_PARSER_NORMAL, \
1.25742 -+ { &avr32_opc_table[AVR32_OPC_##opc], }, \
1.25743 -+ &avr32_syntax_table[AVR32_SYNTAX_##nxt], 1, \
1.25744 -+ { \
1.25745 -+ AVR32_OPERAND_##op0, \
1.25746 -+ } \
1.25747 -+ }
1.25748 -+#define SYNTAX_NORMAL_CM1(id, mne, opc, nxt, op0, arch) \
1.25749 -+ { \
1.25750 -+ AVR32_SYNTAX_##id, arch, \
1.25751 -+ &avr32_mnemonic_table[AVR32_MNEMONIC_##mne], \
1.25752 -+ AVR32_PARSER_NORMAL, \
1.25753 -+ { &avr32_opc_table[AVR32_OPC_##opc], }, \
1.25754 -+ &avr32_syntax_table[AVR32_SYNTAX_##nxt], -1, \
1.25755 -+ { \
1.25756 -+ AVR32_OPERAND_##op0, \
1.25757 -+ } \
1.25758 -+ }
1.25759 -+#define SYNTAX_NORMAL_C2(id, mne, opc, nxt, op0, op1, arch) \
1.25760 -+ { \
1.25761 -+ AVR32_SYNTAX_##id, arch, \
1.25762 -+ &avr32_mnemonic_table[AVR32_MNEMONIC_##mne], \
1.25763 -+ AVR32_PARSER_NORMAL, \
1.25764 -+ { &avr32_opc_table[AVR32_OPC_##opc], }, \
1.25765 -+ &avr32_syntax_table[AVR32_SYNTAX_##nxt], 2, \
1.25766 -+ { \
1.25767 -+ AVR32_OPERAND_##op0, AVR32_OPERAND_##op1, \
1.25768 -+ } \
1.25769 -+ }
1.25770 -+#define SYNTAX_NORMAL_CM2(id, mne, opc, nxt, op0, op1, arch) \
1.25771 -+ { \
1.25772 -+ AVR32_SYNTAX_##id, arch, \
1.25773 -+ &avr32_mnemonic_table[AVR32_MNEMONIC_##mne], \
1.25774 -+ AVR32_PARSER_NORMAL, \
1.25775 -+ { &avr32_opc_table[AVR32_OPC_##opc], }, \
1.25776 -+ &avr32_syntax_table[AVR32_SYNTAX_##nxt], -2, \
1.25777 -+ { \
1.25778 -+ AVR32_OPERAND_##op0, AVR32_OPERAND_##op1, \
1.25779 -+ } \
1.25780 -+ }
1.25781 -+#define SYNTAX_NORMAL_C3(id, mne, opc, nxt, op0, op1, op2, arch) \
1.25782 -+ { \
1.25783 -+ AVR32_SYNTAX_##id, arch, \
1.25784 -+ &avr32_mnemonic_table[AVR32_MNEMONIC_##mne], \
1.25785 -+ AVR32_PARSER_NORMAL, \
1.25786 -+ { &avr32_opc_table[AVR32_OPC_##opc], }, \
1.25787 -+ &avr32_syntax_table[AVR32_SYNTAX_##nxt], 3, \
1.25788 -+ { \
1.25789 -+ AVR32_OPERAND_##op0, AVR32_OPERAND_##op1, \
1.25790 -+ AVR32_OPERAND_##op2, \
1.25791 -+ } \
1.25792 -+ }
1.25793 -+#define SYNTAX_NORMAL_CM3(id, mne, opc, nxt, op0, op1, op2, arch) \
1.25794 -+ { \
1.25795 -+ AVR32_SYNTAX_##id, arch, \
1.25796 -+ &avr32_mnemonic_table[AVR32_MNEMONIC_##mne], \
1.25797 -+ AVR32_PARSER_NORMAL, \
1.25798 -+ { &avr32_opc_table[AVR32_OPC_##opc], }, \
1.25799 -+ &avr32_syntax_table[AVR32_SYNTAX_##nxt], -3, \
1.25800 -+ { \
1.25801 -+ AVR32_OPERAND_##op0, AVR32_OPERAND_##op1, \
1.25802 -+ AVR32_OPERAND_##op2, \
1.25803 -+ } \
1.25804 -+ }
1.25805 -+
1.25806 -+#define SYNTAX_FP(name, nr_ops) \
1.25807 -+ { \
1.25808 -+ AVR32_SYNTAX_##name##_S, \
1.25809 -+ AVR32_FP, NULL, AVR32_PARSER_ALIAS, \
1.25810 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_##name##_S] }, \
1.25811 -+ NULL, nr_ops, \
1.25812 -+ { \
1.25813 -+ AVR32_OPERAND_FPREG_S, \
1.25814 -+ AVR32_OPERAND_FPREG_S, \
1.25815 -+ AVR32_OPERAND_FPREG_S, \
1.25816 -+ }, \
1.25817 -+ }, \
1.25818 -+ { \
1.25819 -+ AVR32_SYNTAX_##name##_D, \
1.25820 -+ AVR32_FP, NULL, AVR32_PARSER_ALIAS, \
1.25821 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_##name##_D] }, \
1.25822 -+ NULL, nr_ops, \
1.25823 -+ { \
1.25824 -+ AVR32_OPERAND_FPREG_D, \
1.25825 -+ AVR32_OPERAND_FPREG_D, \
1.25826 -+ AVR32_OPERAND_FPREG_D, \
1.25827 -+ }, \
1.25828 -+ }
1.25829 -+
1.25830 -+const struct avr32_syntax avr32_syntax_table[] =
1.25831 -+ {
1.25832 -+ SYNTAX_NORMAL1(ABS, ABS, ABS, INTREG, AVR32_V1),
1.25833 -+ SYNTAX_NORMAL1(ACALL, ACALL, ACALL, UNSIGNED_CONST_W, AVR32_V1),
1.25834 -+ SYNTAX_NORMAL1(ACR, ACR, ACR, INTREG,AVR32_V1),
1.25835 -+ SYNTAX_NORMAL3(ADC, ADC, ADC, INTREG, INTREG, INTREG, AVR32_V1),
1.25836 -+ SYNTAX_NORMAL_C2(ADD1, ADD, ADD1, ADD2, INTREG, INTREG, AVR32_V1),
1.25837 -+ SYNTAX_NORMAL3(ADD2, ADD, ADD2, INTREG, INTREG, INTREG_LSL, AVR32_V1),
1.25838 -+ SYNTAX_NORMAL3(ADDABS, ADDABS, ADDABS, INTREG, INTREG, INTREG, AVR32_V1),
1.25839 -+ SYNTAX_NORMAL3(ADDHH_W, ADDHH_W, ADDHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
1.25840 -+ SYNTAX_NORMAL_C2(AND1, AND, AND1, AND2, INTREG, INTREG, AVR32_V1),
1.25841 -+ SYNTAX_NORMAL_C3(AND2, AND, AND2, AND3, INTREG, INTREG, INTREG_LSL, AVR32_V1),
1.25842 -+ SYNTAX_NORMAL3(AND3, AND, AND3, INTREG, INTREG, INTREG_LSR, AVR32_V1),
1.25843 -+ SYNTAX_NORMAL_C2(ANDH, ANDH, ANDH, ANDH_COH, INTREG, UNSIGNED_CONST, AVR32_V1),
1.25844 -+ SYNTAX_NORMAL3(ANDH_COH, ANDH, ANDH_COH, INTREG, UNSIGNED_CONST, COH, AVR32_V1),
1.25845 -+ SYNTAX_NORMAL_C2(ANDL, ANDL, ANDL, ANDL_COH, INTREG, UNSIGNED_CONST, AVR32_V1),
1.25846 -+ SYNTAX_NORMAL3(ANDL_COH, ANDL, ANDL_COH, INTREG, UNSIGNED_CONST, COH, AVR32_V1),
1.25847 -+ SYNTAX_NORMAL2(ANDN, ANDN, ANDN, INTREG, INTREG, AVR32_V1),
1.25848 -+ SYNTAX_NORMAL_C3(ASR1, ASR, ASR1, ASR3, INTREG, INTREG, INTREG, AVR32_V1),
1.25849 -+ SYNTAX_NORMAL_C3(ASR3, ASR, ASR3, ASR2, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_V1),
1.25850 -+ SYNTAX_NORMAL2(ASR2, ASR, ASR2, INTREG, UNSIGNED_NUMBER, AVR32_V1),
1.25851 -+ SYNTAX_NORMAL4(BFEXTS, BFEXTS, BFEXTS, INTREG, INTREG, UNSIGNED_NUMBER, UNSIGNED_NUMBER, AVR32_V1),
1.25852 -+ SYNTAX_NORMAL4(BFEXTU, BFEXTU, BFEXTU, INTREG, INTREG, UNSIGNED_NUMBER, UNSIGNED_NUMBER, AVR32_V1),
1.25853 -+ SYNTAX_NORMAL4(BFINS, BFINS, BFINS, INTREG, INTREG, UNSIGNED_NUMBER, UNSIGNED_NUMBER, AVR32_V1),
1.25854 -+ SYNTAX_NORMAL2(BLD, BLD, BLD, INTREG, UNSIGNED_NUMBER, AVR32_V1),
1.25855 -+ SYNTAX_NORMAL_C1(BREQ1, BREQ, BREQ1, BREQ2, JMPLABEL, AVR32_V1),
1.25856 -+ SYNTAX_NORMAL_C1(BRNE1, BRNE, BRNE1, BRNE2, JMPLABEL, AVR32_V1),
1.25857 -+ SYNTAX_NORMAL_C1(BRCC1, BRCC, BRCC1, BRCC2, JMPLABEL, AVR32_V1),
1.25858 -+ SYNTAX_NORMAL_C1(BRCS1, BRCS, BRCS1, BRCS2, JMPLABEL, AVR32_V1),
1.25859 -+ SYNTAX_NORMAL_C1(BRGE1, BRGE, BRGE1, BRGE2, JMPLABEL, AVR32_V1),
1.25860 -+ SYNTAX_NORMAL_C1(BRLT1, BRLT, BRLT1, BRLT2, JMPLABEL, AVR32_V1),
1.25861 -+ SYNTAX_NORMAL_C1(BRMI1, BRMI, BRMI1, BRMI2, JMPLABEL, AVR32_V1),
1.25862 -+ SYNTAX_NORMAL_C1(BRPL1, BRPL, BRPL1, BRPL2, JMPLABEL, AVR32_V1),
1.25863 -+ SYNTAX_NORMAL_C1(BRHS1, BRHS, BRCC1, BRHS2, JMPLABEL, AVR32_V1),
1.25864 -+ SYNTAX_NORMAL_C1(BRLO1, BRLO, BRCS1, BRLO2, JMPLABEL, AVR32_V1),
1.25865 -+ SYNTAX_NORMAL1(BREQ2, BREQ, BREQ2, JMPLABEL, AVR32_V1),
1.25866 -+ SYNTAX_NORMAL1(BRNE2, BRNE, BRNE2, JMPLABEL, AVR32_V1),
1.25867 -+ SYNTAX_NORMAL1(BRCC2, BRCC, BRCC2, JMPLABEL, AVR32_V1),
1.25868 -+ SYNTAX_NORMAL1(BRCS2, BRCS, BRCS2, JMPLABEL, AVR32_V1),
1.25869 -+ SYNTAX_NORMAL1(BRGE2, BRGE, BRGE2, JMPLABEL, AVR32_V1),
1.25870 -+ SYNTAX_NORMAL1(BRLT2, BRLT, BRLT2, JMPLABEL, AVR32_V1),
1.25871 -+ SYNTAX_NORMAL1(BRMI2, BRMI, BRMI2, JMPLABEL, AVR32_V1),
1.25872 -+ SYNTAX_NORMAL1(BRPL2, BRPL, BRPL2, JMPLABEL, AVR32_V1),
1.25873 -+ SYNTAX_NORMAL1(BRLS, BRLS, BRLS, JMPLABEL, AVR32_V1),
1.25874 -+ SYNTAX_NORMAL1(BRGT, BRGT, BRGT, JMPLABEL, AVR32_V1),
1.25875 -+ SYNTAX_NORMAL1(BRLE, BRLE, BRLE, JMPLABEL, AVR32_V1),
1.25876 -+ SYNTAX_NORMAL1(BRHI, BRHI, BRHI, JMPLABEL, AVR32_V1),
1.25877 -+ SYNTAX_NORMAL1(BRVS, BRVS, BRVS, JMPLABEL, AVR32_V1),
1.25878 -+ SYNTAX_NORMAL1(BRVC, BRVC, BRVC, JMPLABEL, AVR32_V1),
1.25879 -+ SYNTAX_NORMAL1(BRQS, BRQS, BRQS, JMPLABEL, AVR32_V1),
1.25880 -+ SYNTAX_NORMAL1(BRAL, BRAL, BRAL, JMPLABEL, AVR32_V1),
1.25881 -+ SYNTAX_NORMAL1(BRHS2, BRHS, BRCC2, JMPLABEL, AVR32_V1),
1.25882 -+ SYNTAX_NORMAL1(BRLO2, BRLO, BRCS2, JMPLABEL, AVR32_V1),
1.25883 -+ SYNTAX_NORMAL0(BREAKPOINT, BREAKPOINT, BREAKPOINT, AVR32_V1),
1.25884 -+ SYNTAX_NORMAL1(BREV, BREV, BREV, INTREG, AVR32_V1),
1.25885 -+ SYNTAX_NORMAL2(BST, BST, BST, INTREG, UNSIGNED_NUMBER, AVR32_V1),
1.25886 -+ SYNTAX_NORMAL2(CACHE, CACHE, CACHE, INTREG_SDISP, UNSIGNED_NUMBER, AVR32_V1),
1.25887 -+ SYNTAX_NORMAL1(CASTS_B, CASTS_B, CASTS_B, INTREG, AVR32_V1),
1.25888 -+ SYNTAX_NORMAL1(CASTS_H, CASTS_H, CASTS_H, INTREG, AVR32_V1),
1.25889 -+ SYNTAX_NORMAL1(CASTU_B, CASTU_B, CASTU_B, INTREG, AVR32_V1),
1.25890 -+ SYNTAX_NORMAL1(CASTU_H, CASTU_H, CASTU_H, INTREG, AVR32_V1),
1.25891 -+ SYNTAX_NORMAL2(CBR, CBR, CBR, INTREG, UNSIGNED_NUMBER, AVR32_V1),
1.25892 -+ SYNTAX_NORMAL2(CLZ, CLZ, CLZ, INTREG, INTREG, AVR32_V1),
1.25893 -+ SYNTAX_NORMAL1(COM, COM, COM, INTREG, AVR32_V1),
1.25894 -+ SYNTAX_NORMAL5(COP, COP, COP, CPNO, CPREG, CPREG, CPREG, UNSIGNED_NUMBER, AVR32_V1),
1.25895 -+ SYNTAX_NORMAL2(CP_B, CP_B, CP_B, INTREG, INTREG, AVR32_V1),
1.25896 -+ SYNTAX_NORMAL2(CP_H, CP_H, CP_H, INTREG, INTREG, AVR32_V1),
1.25897 -+ SYNTAX_NORMAL_C2(CP_W1, CP_W, CP_W1, CP_W2, INTREG, INTREG, AVR32_V1),
1.25898 -+ SYNTAX_NORMAL_C2(CP_W2, CP_W, CP_W2, CP_W3, INTREG, SIGNED_CONST, AVR32_V1),
1.25899 -+ SYNTAX_NORMAL2(CP_W3, CP_W, CP_W3, INTREG, SIGNED_CONST, AVR32_V1),
1.25900 -+ SYNTAX_NORMAL_C2(CPC1, CPC, CPC1, CPC2, INTREG, INTREG, AVR32_V1),
1.25901 -+ SYNTAX_NORMAL1(CPC2, CPC, CPC2, INTREG, AVR32_V1),
1.25902 -+ SYNTAX_NORMAL1(CSRF, CSRF, CSRF, UNSIGNED_NUMBER, AVR32_V1),
1.25903 -+ SYNTAX_NORMAL1(CSRFCZ, CSRFCZ, CSRFCZ, UNSIGNED_NUMBER, AVR32_V1),
1.25904 -+ SYNTAX_NORMAL3(DIVS, DIVS, DIVS, INTREG, INTREG, INTREG, AVR32_V1),
1.25905 -+ SYNTAX_NORMAL3(DIVU, DIVU, DIVU, INTREG, INTREG, INTREG, AVR32_V1),
1.25906 -+ SYNTAX_NORMAL_C2(EOR1, EOR, EOR1, EOR2, INTREG, INTREG, AVR32_V1),
1.25907 -+ SYNTAX_NORMAL_C3(EOR2, EOR, EOR2, EOR3, INTREG, INTREG, INTREG_LSL, AVR32_V1),
1.25908 -+ SYNTAX_NORMAL3(EOR3, EOR, EOR3, INTREG, INTREG, INTREG_LSR, AVR32_V1),
1.25909 -+ SYNTAX_NORMAL2(EORL, EORL, EORL, INTREG, UNSIGNED_CONST, AVR32_V1),
1.25910 -+ SYNTAX_NORMAL2(EORH, EORH, EORH, INTREG, UNSIGNED_CONST, AVR32_V1),
1.25911 -+ SYNTAX_NORMAL0(FRS, FRS, FRS, AVR32_V1),
1.25912 -+ SYNTAX_NORMAL1(ICALL, ICALL, ICALL, INTREG, AVR32_V1),
1.25913 -+ SYNTAX_NORMAL1(INCJOSP, INCJOSP, INCJOSP, JOSPINC, AVR32_V1),
1.25914 -+ SYNTAX_NORMAL_C2(LD_D1, LD_D, LD_D1, LD_D2, DWREG, INTREG_POSTINC, AVR32_V1),
1.25915 -+ SYNTAX_NORMAL_C2(LD_D2, LD_D, LD_D2, LD_D3, DWREG, INTREG_PREDEC, AVR32_V1),
1.25916 -+ SYNTAX_NORMAL_C2(LD_D3, LD_D, LD_D3, LD_D5, DWREG, INTREG, AVR32_V1),
1.25917 -+ SYNTAX_NORMAL_C2(LD_D5, LD_D, LD_D5, LD_D4, DWREG, INTREG_INDEX, AVR32_V1),
1.25918 -+ SYNTAX_NORMAL2(LD_D4, LD_D, LD_D4, DWREG, INTREG_SDISP, AVR32_V1),
1.25919 -+ SYNTAX_NORMAL_C2(LD_SB2, LD_SB, LD_SB2, LD_SB1, INTREG, INTREG_INDEX, AVR32_V1),
1.25920 -+ SYNTAX_NORMAL2(LD_SB1, LD_SB, LD_SB1, INTREG, INTREG_SDISP, AVR32_V1),
1.25921 -+ SYNTAX_NORMAL_C2(LD_UB1, LD_UB, LD_UB1, LD_UB2, INTREG, INTREG_POSTINC, AVR32_V1),
1.25922 -+ SYNTAX_NORMAL_C2(LD_UB2, LD_UB, LD_UB2, LD_UB5, INTREG, INTREG_PREDEC, AVR32_V1),
1.25923 -+ SYNTAX_NORMAL_C2(LD_UB5, LD_UB, LD_UB5, LD_UB3, INTREG, INTREG_INDEX, AVR32_V1),
1.25924 -+ SYNTAX_NORMAL_C2(LD_UB3, LD_UB, LD_UB3, LD_UB4, INTREG, INTREG_UDISP, AVR32_V1),
1.25925 -+ SYNTAX_NORMAL2(LD_UB4, LD_UB, LD_UB4, INTREG, INTREG_SDISP, AVR32_V1),
1.25926 -+ SYNTAX_NORMAL_C2(LD_SH1, LD_SH, LD_SH1, LD_SH2, INTREG, INTREG_POSTINC, AVR32_V1),
1.25927 -+ SYNTAX_NORMAL_C2(LD_SH2, LD_SH, LD_SH2, LD_SH5, INTREG, INTREG_PREDEC, AVR32_V1),
1.25928 -+ SYNTAX_NORMAL_C2(LD_SH5, LD_SH, LD_SH5, LD_SH3, INTREG, INTREG_INDEX, AVR32_V1),
1.25929 -+ SYNTAX_NORMAL_C2(LD_SH3, LD_SH, LD_SH3, LD_SH4, INTREG, INTREG_UDISP_H, AVR32_V1),
1.25930 -+ SYNTAX_NORMAL2(LD_SH4, LD_SH, LD_SH4, INTREG, INTREG_SDISP, AVR32_V1),
1.25931 -+ SYNTAX_NORMAL_C2(LD_UH1, LD_UH, LD_UH1, LD_UH2, INTREG, INTREG_POSTINC, AVR32_V1),
1.25932 -+ SYNTAX_NORMAL_C2(LD_UH2, LD_UH, LD_UH2, LD_UH5, INTREG, INTREG_PREDEC, AVR32_V1),
1.25933 -+ SYNTAX_NORMAL_C2(LD_UH5, LD_UH, LD_UH5, LD_UH3, INTREG, INTREG_INDEX, AVR32_V1),
1.25934 -+ SYNTAX_NORMAL_C2(LD_UH3, LD_UH, LD_UH3, LD_UH4, INTREG, INTREG_UDISP_H, AVR32_V1),
1.25935 -+ SYNTAX_NORMAL2(LD_UH4, LD_UH, LD_UH4, INTREG, INTREG_SDISP, AVR32_V1),
1.25936 -+ SYNTAX_NORMAL_C2(LD_W1, LD_W, LD_W1, LD_W2, INTREG, INTREG_POSTINC, AVR32_V1),
1.25937 -+ SYNTAX_NORMAL_C2(LD_W2, LD_W, LD_W2, LD_W5, INTREG, INTREG_PREDEC, AVR32_V1),
1.25938 -+ SYNTAX_NORMAL_C2(LD_W5, LD_W, LD_W5, LD_W6, INTREG, INTREG_INDEX, AVR32_V1),
1.25939 -+ SYNTAX_NORMAL_C2(LD_W6, LD_W, LD_W6, LD_W3, INTREG, INTREG_XINDEX, AVR32_V1),
1.25940 -+ SYNTAX_NORMAL_C2(LD_W3, LD_W, LD_W3, LD_W4, INTREG, INTREG_UDISP_W, AVR32_V1),
1.25941 -+ SYNTAX_NORMAL2(LD_W4, LD_W, LD_W4, INTREG, INTREG_SDISP, AVR32_V1),
1.25942 -+ SYNTAX_NORMAL3(LDC_D1, LDC_D, LDC_D1, CPNO, CPREG_D, INTREG_UDISP_W, AVR32_V1),
1.25943 -+ SYNTAX_NORMAL_C3(LDC_D2, LDC_D, LDC_D2, LDC_D1, CPNO, CPREG_D, INTREG_PREDEC, AVR32_V1),
1.25944 -+ SYNTAX_NORMAL_C3(LDC_D3, LDC_D, LDC_D3, LDC_D2, CPNO, CPREG_D, INTREG_INDEX, AVR32_V1),
1.25945 -+ SYNTAX_NORMAL3(LDC_W1, LDC_W, LDC_W1, CPNO, CPREG, INTREG_UDISP_W, AVR32_V1),
1.25946 -+ SYNTAX_NORMAL_C3(LDC_W2, LDC_W, LDC_W2, LDC_W1, CPNO, CPREG, INTREG_PREDEC, AVR32_V1),
1.25947 -+ SYNTAX_NORMAL_C3(LDC_W3, LDC_W, LDC_W3, LDC_W2, CPNO, CPREG, INTREG_INDEX, AVR32_V1),
1.25948 -+ SYNTAX_NORMAL2(LDC0_D, LDC0_D, LDC0_D, CPREG_D, INTREG_UDISP_W, AVR32_V1),
1.25949 -+ SYNTAX_NORMAL2(LDC0_W, LDC0_W, LDC0_W, CPREG, INTREG_UDISP_W, AVR32_V1),
1.25950 -+ SYNTAX_NORMAL_CM3(LDCM_D, LDCM_D, LDCM_D, LDCM_D_PU, CPNO, INTREG, REGLIST_CPD8, AVR32_V1),
1.25951 -+ SYNTAX_NORMALM3(LDCM_D_PU, LDCM_D, LDCM_D_PU, CPNO, INTREG_POSTINC, REGLIST_CPD8, AVR32_V1),
1.25952 -+ SYNTAX_NORMAL_CM3(LDCM_W, LDCM_W, LDCM_W, LDCM_W_PU, CPNO, INTREG, REGLIST_CP8, AVR32_V1),
1.25953 -+ SYNTAX_NORMALM3(LDCM_W_PU, LDCM_W, LDCM_W_PU, CPNO, INTREG_POSTINC, REGLIST_CP8, AVR32_V1),
1.25954 -+ SYNTAX_NORMAL2(LDDPC, LDDPC, LDDPC, INTREG, PC_UDISP_W, AVR32_V1),
1.25955 -+ SYNTAX_NORMAL2(LDDPC_EXT, LDDPC, LDDPC_EXT, INTREG, SIGNED_CONST, AVR32_V1),
1.25956 -+ SYNTAX_NORMAL2(LDDSP, LDDSP, LDDSP, INTREG, SP_UDISP_W, AVR32_V1),
1.25957 -+ SYNTAX_NORMAL2(LDINS_B, LDINS_B, LDINS_B, INTREG_BSEL, INTREG_SDISP, AVR32_V1),
1.25958 -+ SYNTAX_NORMAL2(LDINS_H, LDINS_H, LDINS_H, INTREG_HSEL, INTREG_SDISP_H, AVR32_V1),
1.25959 -+ SYNTAX_NORMALM1(LDM, LDM, LDM, REGLIST_LDM, AVR32_V1),
1.25960 -+ SYNTAX_NORMAL_CM2(LDMTS, LDMTS, LDMTS, LDMTS_PU, INTREG, REGLIST16, AVR32_V1),
1.25961 -+ SYNTAX_NORMALM2(LDMTS_PU, LDMTS, LDMTS_PU, INTREG_POSTINC, REGLIST16, AVR32_V1),
1.25962 -+ SYNTAX_NORMAL2(LDSWP_SH, LDSWP_SH, LDSWP_SH, INTREG, INTREG_SDISP_H, AVR32_V1),
1.25963 -+ SYNTAX_NORMAL2(LDSWP_UH, LDSWP_UH, LDSWP_UH, INTREG, INTREG_SDISP_H, AVR32_V1),
1.25964 -+ SYNTAX_NORMAL2(LDSWP_W, LDSWP_W, LDSWP_W, INTREG, INTREG_SDISP_W, AVR32_V1),
1.25965 -+ SYNTAX_NORMAL_C3(LSL1, LSL, LSL1, LSL3, INTREG, INTREG, INTREG, AVR32_V1),
1.25966 -+ SYNTAX_NORMAL_C3(LSL3, LSL, LSL3, LSL2, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_V1),
1.25967 -+ SYNTAX_NORMAL2(LSL2, LSL, LSL2, INTREG, UNSIGNED_NUMBER, AVR32_V1),
1.25968 -+ SYNTAX_NORMAL_C3(LSR1, LSR, LSR1, LSR3, INTREG, INTREG, INTREG, AVR32_V1),
1.25969 -+ SYNTAX_NORMAL_C3(LSR3, LSR, LSR3, LSR2, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_V1),
1.25970 -+ SYNTAX_NORMAL2(LSR2, LSR, LSR2, INTREG, UNSIGNED_NUMBER, AVR32_V1),
1.25971 -+ SYNTAX_NORMAL3(MAC, MAC, MAC, INTREG, INTREG, INTREG, AVR32_V1),
1.25972 -+ SYNTAX_NORMAL3(MACHH_D, MACHH_D, MACHH_D, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
1.25973 -+ SYNTAX_NORMAL3(MACHH_W, MACHH_W, MACHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
1.25974 -+ SYNTAX_NORMAL3(MACS_D, MACS_D, MACS_D, INTREG, INTREG, INTREG, AVR32_V1),
1.25975 -+ SYNTAX_NORMAL3(MACSATHH_W, MACSATHH_W, MACSATHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
1.25976 -+ SYNTAX_NORMAL3(MACUD, MACU_D, MACUD, INTREG, INTREG, INTREG, AVR32_V1),
1.25977 -+ SYNTAX_NORMAL3(MACWH_D, MACWH_D, MACWH_D, INTREG, INTREG, INTREG_HSEL, AVR32_DSP),
1.25978 -+ SYNTAX_NORMAL3(MAX, MAX, MAX, INTREG, INTREG, INTREG, AVR32_V1),
1.25979 -+ SYNTAX_NORMAL1(MCALL, MCALL, MCALL, MCALL, AVR32_V1),
1.25980 -+ SYNTAX_NORMAL2(MFDR, MFDR, MFDR, INTREG, UNSIGNED_CONST_W, AVR32_V1),
1.25981 -+ SYNTAX_NORMAL2(MFSR, MFSR, MFSR, INTREG, UNSIGNED_CONST_W, AVR32_V1),
1.25982 -+ SYNTAX_NORMAL3(MIN, MIN, MIN, INTREG, INTREG, INTREG, AVR32_V1),
1.25983 -+ SYNTAX_NORMAL_C2(MOV3, MOV, MOV3, MOV1, INTREG, INTREG, AVR32_V1),
1.25984 -+ SYNTAX_NORMAL_C2(MOV1, MOV, MOV1, MOV2, INTREG, SIGNED_CONST, AVR32_V1),
1.25985 -+ SYNTAX_NORMAL2(MOV2, MOV, MOV2,INTREG, SIGNED_CONST, AVR32_V1),
1.25986 -+ SYNTAX_NORMAL_C2(MOVEQ1, MOVEQ, MOVEQ1, MOVEQ2, INTREG, INTREG, AVR32_V1),
1.25987 -+ SYNTAX_NORMAL_C2(MOVNE1, MOVNE, MOVNE1, MOVNE2, INTREG, INTREG, AVR32_V1),
1.25988 -+ SYNTAX_NORMAL_C2(MOVCC1, MOVCC, MOVCC1, MOVCC2, INTREG, INTREG, AVR32_V1),
1.25989 -+ SYNTAX_NORMAL_C2(MOVCS1, MOVCS, MOVCS1, MOVCS2, INTREG, INTREG, AVR32_V1),
1.25990 -+ SYNTAX_NORMAL_C2(MOVGE1, MOVGE, MOVGE1, MOVGE2, INTREG, INTREG, AVR32_V1),
1.25991 -+ SYNTAX_NORMAL_C2(MOVLT1, MOVLT, MOVLT1, MOVLT2, INTREG, INTREG, AVR32_V1),
1.25992 -+ SYNTAX_NORMAL_C2(MOVMI1, MOVMI, MOVMI1, MOVMI2, INTREG, INTREG, AVR32_V1),
1.25993 -+ SYNTAX_NORMAL_C2(MOVPL1, MOVPL, MOVPL1, MOVPL2, INTREG, INTREG, AVR32_V1),
1.25994 -+ SYNTAX_NORMAL_C2(MOVLS1, MOVLS, MOVLS1, MOVLS2, INTREG, INTREG, AVR32_V1),
1.25995 -+ SYNTAX_NORMAL_C2(MOVGT1, MOVGT, MOVGT1, MOVGT2, INTREG, INTREG, AVR32_V1),
1.25996 -+ SYNTAX_NORMAL_C2(MOVLE1, MOVLE, MOVLE1, MOVLE2, INTREG, INTREG, AVR32_V1),
1.25997 -+ SYNTAX_NORMAL_C2(MOVHI1, MOVHI, MOVHI1, MOVHI2, INTREG, INTREG, AVR32_V1),
1.25998 -+ SYNTAX_NORMAL_C2(MOVVS1, MOVVS, MOVVS1, MOVVS2, INTREG, INTREG, AVR32_V1),
1.25999 -+ SYNTAX_NORMAL_C2(MOVVC1, MOVVC, MOVVC1, MOVVC2, INTREG, INTREG, AVR32_V1),
1.26000 -+ SYNTAX_NORMAL_C2(MOVQS1, MOVQS, MOVQS1, MOVQS2, INTREG, INTREG, AVR32_V1),
1.26001 -+ SYNTAX_NORMAL_C2(MOVAL1, MOVAL, MOVAL1, MOVAL2, INTREG, INTREG, AVR32_V1),
1.26002 -+ SYNTAX_NORMAL_C2(MOVHS1, MOVHS, MOVCC1, MOVHS2, INTREG, INTREG, AVR32_V1),
1.26003 -+ SYNTAX_NORMAL_C2(MOVLO1, MOVLO, MOVCS1, MOVLO2, INTREG, INTREG, AVR32_V1),
1.26004 -+ SYNTAX_NORMAL2(MOVEQ2, MOVEQ, MOVEQ2, INTREG, SIGNED_CONST, AVR32_V1),
1.26005 -+ SYNTAX_NORMAL2(MOVNE2, MOVNE, MOVNE2, INTREG, SIGNED_CONST, AVR32_V1),
1.26006 -+ SYNTAX_NORMAL2(MOVCC2, MOVCC, MOVCC2, INTREG, SIGNED_CONST, AVR32_V1),
1.26007 -+ SYNTAX_NORMAL2(MOVCS2, MOVCS, MOVCS2, INTREG, SIGNED_CONST, AVR32_V1),
1.26008 -+ SYNTAX_NORMAL2(MOVGE2, MOVGE, MOVGE2, INTREG, SIGNED_CONST, AVR32_V1),
1.26009 -+ SYNTAX_NORMAL2(MOVLT2, MOVLT, MOVLT2, INTREG, SIGNED_CONST, AVR32_V1),
1.26010 -+ SYNTAX_NORMAL2(MOVMI2, MOVMI, MOVMI2, INTREG, SIGNED_CONST, AVR32_V1),
1.26011 -+ SYNTAX_NORMAL2(MOVPL2, MOVPL, MOVPL2, INTREG, SIGNED_CONST, AVR32_V1),
1.26012 -+ SYNTAX_NORMAL2(MOVLS2, MOVLS, MOVLS2, INTREG, SIGNED_CONST, AVR32_V1),
1.26013 -+ SYNTAX_NORMAL2(MOVGT2, MOVGT, MOVGT2, INTREG, SIGNED_CONST, AVR32_V1),
1.26014 -+ SYNTAX_NORMAL2(MOVLE2, MOVLE, MOVLE2, INTREG, SIGNED_CONST, AVR32_V1),
1.26015 -+ SYNTAX_NORMAL2(MOVHI2, MOVHI, MOVHI2, INTREG, SIGNED_CONST, AVR32_V1),
1.26016 -+ SYNTAX_NORMAL2(MOVVS2, MOVVS, MOVVS2, INTREG, SIGNED_CONST, AVR32_V1),
1.26017 -+ SYNTAX_NORMAL2(MOVVC2, MOVVC, MOVVC2, INTREG, SIGNED_CONST, AVR32_V1),
1.26018 -+ SYNTAX_NORMAL2(MOVQS2, MOVQS, MOVQS2, INTREG, SIGNED_CONST, AVR32_V1),
1.26019 -+ SYNTAX_NORMAL2(MOVAL2, MOVAL, MOVAL2, INTREG, SIGNED_CONST, AVR32_V1),
1.26020 -+ SYNTAX_NORMAL2(MOVHS2, MOVHS, MOVCC2, INTREG, SIGNED_CONST, AVR32_V1),
1.26021 -+ SYNTAX_NORMAL2(MOVLO2, MOVLO, MOVCS2, INTREG, SIGNED_CONST, AVR32_V1),
1.26022 -+ SYNTAX_NORMAL2(MTDR, MTDR, MTDR, UNSIGNED_CONST_W, INTREG, AVR32_V1),
1.26023 -+ SYNTAX_NORMAL2(MTSR, MTSR, MTSR, UNSIGNED_CONST_W, INTREG, AVR32_V1),
1.26024 -+ SYNTAX_NORMAL_C2(MUL1, MUL, MUL1, MUL2, INTREG, INTREG, AVR32_V1),
1.26025 -+ SYNTAX_NORMAL_C3(MUL2, MUL, MUL2, MUL3, INTREG, INTREG, INTREG, AVR32_V1),
1.26026 -+ SYNTAX_NORMAL3(MUL3, MUL, MUL3, INTREG, INTREG, SIGNED_CONST, AVR32_V1),
1.26027 -+ SYNTAX_NORMAL3(MULHH_W, MULHH_W, MULHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
1.26028 -+ SYNTAX_NORMAL3(MULNHH_W, MULNHH_W, MULNHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
1.26029 -+ SYNTAX_NORMAL3(MULNWH_D, MULNWH_D, MULNWH_D, INTREG, INTREG, INTREG_HSEL, AVR32_DSP),
1.26030 -+ SYNTAX_NORMAL3(MULSD, MULS_D, MULSD, INTREG, INTREG, INTREG, AVR32_V1),
1.26031 -+ SYNTAX_NORMAL3(MULSATHH_H, MULSATHH_H, MULSATHH_H, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
1.26032 -+ SYNTAX_NORMAL3(MULSATHH_W, MULSATHH_W, MULSATHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
1.26033 -+ SYNTAX_NORMAL3(MULSATRNDHH_H, MULSATRNDHH_H, MULSATRNDHH_H, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
1.26034 -+ SYNTAX_NORMAL3(MULSATRNDWH_W, MULSATRNDWH_W, MULSATRNDWH_W, INTREG, INTREG, INTREG_HSEL, AVR32_DSP),
1.26035 -+ SYNTAX_NORMAL3(MULSATWH_W, MULSATWH_W, MULSATWH_W, INTREG, INTREG, INTREG_HSEL, AVR32_DSP),
1.26036 -+ SYNTAX_NORMAL3(MULU_D, MULU_D, MULU_D, INTREG, INTREG, INTREG, AVR32_V1),
1.26037 -+ SYNTAX_NORMAL3(MULWH_D, MULWH_D, MULWH_D, INTREG, INTREG, INTREG_HSEL, AVR32_DSP),
1.26038 -+ SYNTAX_NORMAL1(MUSFR, MUSFR, MUSFR, INTREG, AVR32_V1),
1.26039 -+ SYNTAX_NORMAL1(MUSTR, MUSTR, MUSTR, INTREG, AVR32_V1),
1.26040 -+ SYNTAX_NORMAL3(MVCR_D, MVCR_D, MVCR_D, CPNO, DWREG, CPREG_D, AVR32_V1),
1.26041 -+ SYNTAX_NORMAL3(MVCR_W, MVCR_W, MVCR_W, CPNO, INTREG, CPREG, AVR32_V1),
1.26042 -+ SYNTAX_NORMAL3(MVRC_D, MVRC_D, MVRC_D, CPNO, CPREG_D, DWREG, AVR32_V1),
1.26043 -+ SYNTAX_NORMAL3(MVRC_W, MVRC_W, MVRC_W, CPNO, CPREG, INTREG, AVR32_V1),
1.26044 -+ SYNTAX_NORMAL1(NEG, NEG, NEG, INTREG, AVR32_V1),
1.26045 -+ SYNTAX_NORMAL0(NOP, NOP, NOP, AVR32_V1),
1.26046 -+ SYNTAX_NORMAL_C2(OR1, OR, OR1, OR2, INTREG, INTREG, AVR32_V1),
1.26047 -+ SYNTAX_NORMAL_C3(OR2, OR, OR2, OR3, INTREG, INTREG, INTREG_LSL, AVR32_V1),
1.26048 -+ SYNTAX_NORMAL3(OR3, OR, OR3, INTREG, INTREG, INTREG_LSR, AVR32_V1),
1.26049 -+ SYNTAX_NORMAL2(ORH, ORH, ORH, INTREG, UNSIGNED_CONST, AVR32_V1),
1.26050 -+ SYNTAX_NORMAL2(ORL, ORL, ORL, INTREG, UNSIGNED_CONST, AVR32_V1),
1.26051 -+ SYNTAX_NORMAL2(PABS_SB, PABS_SB, PABS_SB, INTREG, INTREG, AVR32_SIMD),
1.26052 -+ SYNTAX_NORMAL2(PABS_SH, PABS_SH, PABS_SH, INTREG, INTREG, AVR32_SIMD),
1.26053 -+ SYNTAX_NORMAL3(PACKSH_SB, PACKSH_SB, PACKSH_SB, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26054 -+ SYNTAX_NORMAL3(PACKSH_UB, PACKSH_UB, PACKSH_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26055 -+ SYNTAX_NORMAL3(PACKW_SH, PACKW_SH, PACKW_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26056 -+ SYNTAX_NORMAL3(PADD_B, PADD_B, PADD_B, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26057 -+ SYNTAX_NORMAL3(PADD_H, PADD_H, PADD_H, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26058 -+ SYNTAX_NORMAL3(PADDH_SH, PADDH_SH, PADDH_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26059 -+ SYNTAX_NORMAL3(PADDH_UB, PADDH_UB, PADDH_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26060 -+ SYNTAX_NORMAL3(PADDS_SB, PADDS_SB, PADDS_SB, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26061 -+ SYNTAX_NORMAL3(PADDS_SH, PADDS_SH, PADDS_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26062 -+ SYNTAX_NORMAL3(PADDS_UB, PADDS_UB, PADDS_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26063 -+ SYNTAX_NORMAL3(PADDS_UH, PADDS_UH, PADDS_UH, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26064 -+ SYNTAX_NORMAL3(PADDSUB_H, PADDSUB_H, PADDSUB_H, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
1.26065 -+ SYNTAX_NORMAL3(PADDSUBH_SH, PADDSUBH_SH, PADDSUBH_SH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
1.26066 -+ SYNTAX_NORMAL3(PADDSUBS_SH, PADDSUBS_SH, PADDSUBS_SH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
1.26067 -+ SYNTAX_NORMAL3(PADDSUBS_UH, PADDSUBS_UH, PADDSUBS_UH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
1.26068 -+ SYNTAX_NORMAL3(PADDX_H, PADDX_H, PADDX_H, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26069 -+ SYNTAX_NORMAL3(PADDXH_SH, PADDXH_SH, PADDXH_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26070 -+ SYNTAX_NORMAL3(PADDXS_SH, PADDXS_SH, PADDXS_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26071 -+ SYNTAX_NORMAL3(PADDXS_UH, PADDXS_UH, PADDXS_UH, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26072 -+ SYNTAX_NORMAL3(PASR_B, PASR_B, PASR_B, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
1.26073 -+ SYNTAX_NORMAL3(PASR_H, PASR_H, PASR_H, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
1.26074 -+ SYNTAX_NORMAL3(PAVG_SH, PAVG_SH, PAVG_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26075 -+ SYNTAX_NORMAL3(PAVG_UB, PAVG_UB, PAVG_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26076 -+ SYNTAX_NORMAL3(PLSL_B, PLSL_B, PLSL_B, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
1.26077 -+ SYNTAX_NORMAL3(PLSL_H, PLSL_H, PLSL_H, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
1.26078 -+ SYNTAX_NORMAL3(PLSR_B, PLSR_B, PLSR_B, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
1.26079 -+ SYNTAX_NORMAL3(PLSR_H, PLSR_H, PLSR_H, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
1.26080 -+ SYNTAX_NORMAL3(PMAX_SH, PMAX_SH, PMAX_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26081 -+ SYNTAX_NORMAL3(PMAX_UB, PMAX_UB, PMAX_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26082 -+ SYNTAX_NORMAL3(PMIN_SH, PMIN_SH, PMIN_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26083 -+ SYNTAX_NORMAL3(PMIN_UB, PMIN_UB, PMIN_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26084 -+ SYNTAX_NORMAL0(POPJC, POPJC, POPJC, AVR32_V1),
1.26085 -+ SYNTAX_NORMAL_CM1(POPM, POPM, POPM, POPM_E, REGLIST9, AVR32_V1),
1.26086 -+ SYNTAX_NORMALM1(POPM_E, POPM, POPM_E, REGLIST16, AVR32_V1),
1.26087 -+ SYNTAX_NORMAL1(PREF, PREF, PREF, INTREG_SDISP, AVR32_V1),
1.26088 -+ SYNTAX_NORMAL3(PSAD, PSAD, PSAD, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26089 -+ SYNTAX_NORMAL3(PSUB_B, PSUB_B, PSUB_B, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26090 -+ SYNTAX_NORMAL3(PSUB_H, PSUB_H, PSUB_H, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26091 -+ SYNTAX_NORMAL3(PSUBADD_H, PSUBADD_H, PSUBADD_H, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
1.26092 -+ SYNTAX_NORMAL3(PSUBADDH_SH, PSUBADDH_SH, PSUBADDH_SH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
1.26093 -+ SYNTAX_NORMAL3(PSUBADDS_SH, PSUBADDS_SH, PSUBADDS_SH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
1.26094 -+ SYNTAX_NORMAL3(PSUBADDS_UH, PSUBADDS_UH, PSUBADDS_UH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
1.26095 -+ SYNTAX_NORMAL3(PSUBH_SH, PSUBH_SH, PSUBH_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26096 -+ SYNTAX_NORMAL3(PSUBH_UB, PSUBH_UB, PSUBH_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26097 -+ SYNTAX_NORMAL3(PSUBS_SB, PSUBS_SB, PSUBS_SB, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26098 -+ SYNTAX_NORMAL3(PSUBS_SH, PSUBS_SH, PSUBS_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26099 -+ SYNTAX_NORMAL3(PSUBS_UB, PSUBS_UB, PSUBS_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26100 -+ SYNTAX_NORMAL3(PSUBS_UH, PSUBS_UH, PSUBS_UH, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26101 -+ SYNTAX_NORMAL3(PSUBX_H, PSUBX_H, PSUBX_H, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26102 -+ SYNTAX_NORMAL3(PSUBXH_SH, PSUBXH_SH, PSUBXH_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26103 -+ SYNTAX_NORMAL3(PSUBXS_SH, PSUBXS_SH, PSUBXS_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26104 -+ SYNTAX_NORMAL3(PSUBXS_UH, PSUBXS_UH, PSUBXS_UH, INTREG, INTREG, INTREG, AVR32_SIMD),
1.26105 -+ SYNTAX_NORMAL2(PUNPCKSB_H, PUNPCKSB_H, PUNPCKSB_H, INTREG, INTREG_HSEL, AVR32_SIMD),
1.26106 -+ SYNTAX_NORMAL2(PUNPCKUB_H, PUNPCKUB_H, PUNPCKUB_H, INTREG, INTREG_HSEL, AVR32_SIMD),
1.26107 -+ SYNTAX_NORMAL0(PUSHJC, PUSHJC, PUSHJC, AVR32_V1),
1.26108 -+ SYNTAX_NORMAL_CM1(PUSHM, PUSHM, PUSHM, PUSHM_E, REGLIST8, AVR32_V1),
1.26109 -+ SYNTAX_NORMALM1(PUSHM_E, PUSHM, PUSHM_E, REGLIST16, AVR32_V1),
1.26110 -+ SYNTAX_NORMAL_C1(RCALL1, RCALL, RCALL1, RCALL2, JMPLABEL, AVR32_V1),
1.26111 -+ SYNTAX_NORMAL1(RCALL2, RCALL, RCALL2, JMPLABEL, AVR32_V1),
1.26112 -+ SYNTAX_NORMAL1(RETEQ, RETEQ, RETEQ, RETVAL, AVR32_V1),
1.26113 -+ SYNTAX_NORMAL1(RETNE, RETNE, RETNE, RETVAL, AVR32_V1),
1.26114 -+ SYNTAX_NORMAL1(RETCC, RETCC, RETCC, RETVAL, AVR32_V1),
1.26115 -+ SYNTAX_NORMAL1(RETCS, RETCS, RETCS, RETVAL, AVR32_V1),
1.26116 -+ SYNTAX_NORMAL1(RETGE, RETGE, RETGE, RETVAL, AVR32_V1),
1.26117 -+ SYNTAX_NORMAL1(RETLT, RETLT, RETLT, RETVAL, AVR32_V1),
1.26118 -+ SYNTAX_NORMAL1(RETMI, RETMI, RETMI, RETVAL, AVR32_V1),
1.26119 -+ SYNTAX_NORMAL1(RETPL, RETPL, RETPL, RETVAL, AVR32_V1),
1.26120 -+ SYNTAX_NORMAL1(RETLS, RETLS, RETLS, RETVAL, AVR32_V1),
1.26121 -+ SYNTAX_NORMAL1(RETGT, RETGT, RETGT, RETVAL, AVR32_V1),
1.26122 -+ SYNTAX_NORMAL1(RETLE, RETLE, RETLE, RETVAL, AVR32_V1),
1.26123 -+ SYNTAX_NORMAL1(RETHI, RETHI, RETHI, RETVAL, AVR32_V1),
1.26124 -+ SYNTAX_NORMAL1(RETVS, RETVS, RETVS, RETVAL, AVR32_V1),
1.26125 -+ SYNTAX_NORMAL1(RETVC, RETVC, RETVC, RETVAL, AVR32_V1),
1.26126 -+ SYNTAX_NORMAL1(RETQS, RETQS, RETQS, RETVAL, AVR32_V1),
1.26127 -+ SYNTAX_NORMAL1(RETAL, RETAL, RETAL, RETVAL, AVR32_V1),
1.26128 -+ SYNTAX_NORMAL1(RETHS, RETHS, RETCC, RETVAL, AVR32_V1),
1.26129 -+ SYNTAX_NORMAL1(RETLO, RETLO, RETCS, RETVAL, AVR32_V1),
1.26130 -+ SYNTAX_NORMAL0(RETD, RETD, RETD, AVR32_V1),
1.26131 -+ SYNTAX_NORMAL0(RETE, RETE, RETE, AVR32_V1),
1.26132 -+ SYNTAX_NORMAL0(RETJ, RETJ, RETJ, AVR32_V1),
1.26133 -+ SYNTAX_NORMAL0(RETS, RETS, RETS, AVR32_V1),
1.26134 -+ SYNTAX_NORMAL1(RJMP, RJMP, RJMP, JMPLABEL, AVR32_V1),
1.26135 -+ SYNTAX_NORMAL1(ROL, ROL, ROL, INTREG, AVR32_V1),
1.26136 -+ SYNTAX_NORMAL1(ROR, ROR, ROR, INTREG, AVR32_V1),
1.26137 -+ SYNTAX_NORMAL_C2(RSUB1, RSUB, RSUB1, RSUB2, INTREG, INTREG, AVR32_V1),
1.26138 -+ SYNTAX_NORMAL3(RSUB2, RSUB, RSUB2, INTREG, INTREG, SIGNED_CONST, AVR32_V1),
1.26139 -+ SYNTAX_NORMAL3(SATADD_H, SATADD_H, SATADD_H, INTREG, INTREG, INTREG, AVR32_DSP),
1.26140 -+ SYNTAX_NORMAL3(SATADD_W, SATADD_W, SATADD_W, INTREG, INTREG, INTREG, AVR32_DSP),
1.26141 -+ SYNTAX_NORMAL2(SATRNDS, SATRNDS, SATRNDS, INTREG_LSR, UNSIGNED_NUMBER, AVR32_DSP),
1.26142 -+ SYNTAX_NORMAL2(SATRNDU, SATRNDU, SATRNDU, INTREG_LSR, UNSIGNED_NUMBER, AVR32_DSP),
1.26143 -+ SYNTAX_NORMAL2(SATS, SATS, SATS, INTREG_LSR, UNSIGNED_NUMBER, AVR32_DSP),
1.26144 -+ SYNTAX_NORMAL3(SATSUB_H, SATSUB_H, SATSUB_H, INTREG, INTREG, INTREG, AVR32_DSP),
1.26145 -+ SYNTAX_NORMAL_C3(SATSUB_W1, SATSUB_W, SATSUB_W1, SATSUB_W2, INTREG, INTREG, INTREG, AVR32_DSP),
1.26146 -+ SYNTAX_NORMAL3(SATSUB_W2, SATSUB_W, SATSUB_W2, INTREG, INTREG, SIGNED_CONST, AVR32_DSP),
1.26147 -+ SYNTAX_NORMAL2(SATU, SATU, SATU, INTREG_LSR, UNSIGNED_NUMBER, AVR32_V1),
1.26148 -+ SYNTAX_NORMAL3(SBC, SBC, SBC, INTREG, INTREG, INTREG, AVR32_V1),
1.26149 -+ SYNTAX_NORMAL2(SBR, SBR, SBR, INTREG, UNSIGNED_NUMBER, AVR32_V1),
1.26150 -+ SYNTAX_NORMAL0(SCALL, SCALL, SCALL, AVR32_V1),
1.26151 -+ SYNTAX_NORMAL1(SCR, SCR, SCR, INTREG, AVR32_V1),
1.26152 -+ SYNTAX_NORMAL1(SLEEP, SLEEP, SLEEP, UNSIGNED_CONST, AVR32_V1),
1.26153 -+ SYNTAX_NORMAL1(SREQ, SREQ, SREQ, INTREG, AVR32_V1),
1.26154 -+ SYNTAX_NORMAL1(SRNE, SRNE, SRNE, INTREG, AVR32_V1),
1.26155 -+ SYNTAX_NORMAL1(SRCC, SRCC, SRCC, INTREG, AVR32_V1),
1.26156 -+ SYNTAX_NORMAL1(SRCS, SRCS, SRCS, INTREG, AVR32_V1),
1.26157 -+ SYNTAX_NORMAL1(SRGE, SRGE, SRGE, INTREG, AVR32_V1),
1.26158 -+ SYNTAX_NORMAL1(SRLT, SRLT, SRLT, INTREG, AVR32_V1),
1.26159 -+ SYNTAX_NORMAL1(SRMI, SRMI, SRMI, INTREG, AVR32_V1),
1.26160 -+ SYNTAX_NORMAL1(SRPL, SRPL, SRPL, INTREG, AVR32_V1),
1.26161 -+ SYNTAX_NORMAL1(SRLS, SRLS, SRLS, INTREG, AVR32_V1),
1.26162 -+ SYNTAX_NORMAL1(SRGT, SRGT, SRGT, INTREG, AVR32_V1),
1.26163 -+ SYNTAX_NORMAL1(SRLE, SRLE, SRLE, INTREG, AVR32_V1),
1.26164 -+ SYNTAX_NORMAL1(SRHI, SRHI, SRHI, INTREG, AVR32_V1),
1.26165 -+ SYNTAX_NORMAL1(SRVS, SRVS, SRVS, INTREG, AVR32_V1),
1.26166 -+ SYNTAX_NORMAL1(SRVC, SRVC, SRVC, INTREG, AVR32_V1),
1.26167 -+ SYNTAX_NORMAL1(SRQS, SRQS, SRQS, INTREG, AVR32_V1),
1.26168 -+ SYNTAX_NORMAL1(SRAL, SRAL, SRAL, INTREG, AVR32_V1),
1.26169 -+ SYNTAX_NORMAL1(SRHS, SRHS, SRCC, INTREG, AVR32_V1),
1.26170 -+ SYNTAX_NORMAL1(SRLO, SRLO, SRCS, INTREG, AVR32_V1),
1.26171 -+ SYNTAX_NORMAL1(SSRF, SSRF, SSRF, UNSIGNED_NUMBER, AVR32_V1),
1.26172 -+ SYNTAX_NORMAL_C2(ST_B1, ST_B, ST_B1, ST_B2, INTREG_POSTINC, INTREG, AVR32_V1),
1.26173 -+ SYNTAX_NORMAL_C2(ST_B2, ST_B, ST_B2, ST_B5, INTREG_PREDEC, INTREG, AVR32_V1),
1.26174 -+ SYNTAX_NORMAL_C2(ST_B5, ST_B, ST_B5, ST_B3, INTREG_INDEX, INTREG, AVR32_V1),
1.26175 -+ SYNTAX_NORMAL_C2(ST_B3, ST_B, ST_B3, ST_B4, INTREG_UDISP, INTREG, AVR32_V1),
1.26176 -+ SYNTAX_NORMAL2(ST_B4, ST_B, ST_B4, INTREG_SDISP, INTREG, AVR32_V1),
1.26177 -+ SYNTAX_NORMAL_C2(ST_D1, ST_D, ST_D1, ST_D2, INTREG_POSTINC, DWREG, AVR32_V1),
1.26178 -+ SYNTAX_NORMAL_C2(ST_D2, ST_D, ST_D2, ST_D3, INTREG_PREDEC, DWREG, AVR32_V1),
1.26179 -+ SYNTAX_NORMAL_C2(ST_D3, ST_D, ST_D3, ST_D5, INTREG, DWREG, AVR32_V1),
1.26180 -+ SYNTAX_NORMAL_C2(ST_D5, ST_D, ST_D5, ST_D4, INTREG_INDEX, DWREG, AVR32_V1),
1.26181 -+ SYNTAX_NORMAL2(ST_D4, ST_D, ST_D4, INTREG_SDISP, DWREG, AVR32_V1),
1.26182 -+ SYNTAX_NORMAL_C2(ST_H1, ST_H, ST_H1, ST_H2, INTREG_POSTINC, INTREG, AVR32_V1),
1.26183 -+ SYNTAX_NORMAL_C2(ST_H2, ST_H, ST_H2, ST_H5, INTREG_PREDEC, INTREG, AVR32_V1),
1.26184 -+ SYNTAX_NORMAL_C2(ST_H5, ST_H, ST_H5, ST_H3, INTREG_INDEX, INTREG, AVR32_V1),
1.26185 -+ SYNTAX_NORMAL_C2(ST_H3, ST_H, ST_H3, ST_H4, INTREG_UDISP_H, INTREG, AVR32_V1),
1.26186 -+ SYNTAX_NORMAL2(ST_H4, ST_H, ST_H4, INTREG_SDISP, INTREG, AVR32_V1),
1.26187 -+ SYNTAX_NORMAL_C2(ST_W1, ST_W, ST_W1, ST_W2, INTREG_POSTINC, INTREG, AVR32_V1),
1.26188 -+ SYNTAX_NORMAL_C2(ST_W2, ST_W, ST_W2, ST_W5, INTREG_PREDEC, INTREG, AVR32_V1),
1.26189 -+ SYNTAX_NORMAL_C2(ST_W5, ST_W, ST_W5, ST_W3, INTREG_INDEX, INTREG, AVR32_V1),
1.26190 -+ SYNTAX_NORMAL_C2(ST_W3, ST_W, ST_W3, ST_W4, INTREG_UDISP_W, INTREG, AVR32_V1),
1.26191 -+ SYNTAX_NORMAL2(ST_W4, ST_W, ST_W4, INTREG_SDISP, INTREG, AVR32_V1),
1.26192 -+ SYNTAX_NORMAL3(STC_D1, STC_D, STC_D1, CPNO, INTREG_UDISP_W, CPREG_D, AVR32_V1),
1.26193 -+ SYNTAX_NORMAL_C3(STC_D2, STC_D, STC_D2, STC_D1, CPNO, INTREG_POSTINC, CPREG_D, AVR32_V1),
1.26194 -+ SYNTAX_NORMAL_C3(STC_D3, STC_D, STC_D3, STC_D2, CPNO, INTREG_INDEX, CPREG_D, AVR32_V1),
1.26195 -+ SYNTAX_NORMAL3(STC_W1, STC_W, STC_W1, CPNO, INTREG_UDISP_W, CPREG, AVR32_V1),
1.26196 -+ SYNTAX_NORMAL_C3(STC_W2, STC_W, STC_W2, STC_W1, CPNO, INTREG_POSTINC, CPREG, AVR32_V1),
1.26197 -+ SYNTAX_NORMAL_C3(STC_W3, STC_W, STC_W3, STC_W2, CPNO, INTREG_INDEX, CPREG, AVR32_V1),
1.26198 -+ SYNTAX_NORMAL2(STC0_D, STC0_D, STC0_D, INTREG_UDISP_W, CPREG_D, AVR32_V1),
1.26199 -+ SYNTAX_NORMAL2(STC0_W, STC0_W, STC0_W, INTREG_UDISP_W, CPREG, AVR32_V1),
1.26200 -+ SYNTAX_NORMAL_CM3(STCM_D, STCM_D, STCM_D, STCM_D_PU, CPNO, INTREG, REGLIST_CPD8, AVR32_V1),
1.26201 -+ SYNTAX_NORMALM3(STCM_D_PU, STCM_D, STCM_D_PU, CPNO, INTREG_PREDEC, REGLIST_CPD8, AVR32_V1),
1.26202 -+ SYNTAX_NORMAL_CM3(STCM_W, STCM_W, STCM_W, STCM_W_PU, CPNO, INTREG, REGLIST_CP8, AVR32_V1),
1.26203 -+ SYNTAX_NORMALM3(STCM_W_PU, STCM_W, STCM_W_PU, CPNO, INTREG_PREDEC, REGLIST_CP8, AVR32_V1),
1.26204 -+ SYNTAX_NORMAL2(STCOND, STCOND, STCOND, INTREG_SDISP, INTREG, AVR32_V1),
1.26205 -+ SYNTAX_NORMAL2(STDSP, STDSP, STDSP, SP_UDISP_W, INTREG, AVR32_V1),
1.26206 -+ SYNTAX_NORMAL_C3(STHH_W2, STHH_W, STHH_W2, STHH_W1, INTREG_INDEX, INTREG_HSEL, INTREG_HSEL, AVR32_V1),
1.26207 -+ SYNTAX_NORMAL3(STHH_W1, STHH_W, STHH_W1, INTREG_UDISP_W, INTREG_HSEL, INTREG_HSEL, AVR32_V1),
1.26208 -+ SYNTAX_NORMAL_CM2(STM, STM, STM, STM_PU, INTREG, REGLIST16, AVR32_V1),
1.26209 -+ SYNTAX_NORMALM2(STM_PU, STM, STM_PU, INTREG_PREDEC, REGLIST16, AVR32_V1),
1.26210 -+ SYNTAX_NORMAL_CM2(STMTS, STMTS, STMTS, STMTS_PU, INTREG, REGLIST16, AVR32_V1),
1.26211 -+ SYNTAX_NORMALM2(STMTS_PU, STMTS, STMTS_PU, INTREG_PREDEC, REGLIST16, AVR32_V1),
1.26212 -+ SYNTAX_NORMAL2(STSWP_H, STSWP_H, STSWP_H, INTREG_SDISP_H, INTREG, AVR32_V1),
1.26213 -+ SYNTAX_NORMAL2(STSWP_W, STSWP_W, STSWP_W, INTREG_SDISP_W, INTREG, AVR32_V1),
1.26214 -+ SYNTAX_NORMAL_C2(SUB1, SUB, SUB1, SUB2, INTREG, INTREG, AVR32_V1),
1.26215 -+ SYNTAX_NORMAL_C3(SUB2, SUB, SUB2, SUB5, INTREG, INTREG, INTREG_LSL, AVR32_V1),
1.26216 -+ SYNTAX_NORMAL_C3(SUB5, SUB, SUB5, SUB3_SP, INTREG, INTREG, SIGNED_CONST, AVR32_V1),
1.26217 -+ SYNTAX_NORMAL_C2(SUB3_SP, SUB, SUB3_SP, SUB3, SP, SIGNED_CONST_W, AVR32_V1),
1.26218 -+ SYNTAX_NORMAL_C2(SUB3, SUB, SUB3, SUB4, INTREG, SIGNED_CONST, AVR32_V1),
1.26219 -+ SYNTAX_NORMAL2(SUB4, SUB, SUB4, INTREG, SIGNED_CONST, AVR32_V1),
1.26220 -+ SYNTAX_NORMAL_C2(SUBEQ, SUBEQ, SUBEQ, SUB2EQ, INTREG, SIGNED_CONST, AVR32_V1),
1.26221 -+ SYNTAX_NORMAL_C2(SUBNE, SUBNE, SUBNE, SUB2NE, INTREG, SIGNED_CONST, AVR32_V1),
1.26222 -+ SYNTAX_NORMAL_C2(SUBCC, SUBCC, SUBCC, SUB2CC, INTREG, SIGNED_CONST, AVR32_V1),
1.26223 -+ SYNTAX_NORMAL_C2(SUBCS, SUBCS, SUBCS, SUB2CS, INTREG, SIGNED_CONST, AVR32_V1),
1.26224 -+ SYNTAX_NORMAL_C2(SUBGE, SUBGE, SUBGE, SUB2GE, INTREG, SIGNED_CONST, AVR32_V1),
1.26225 -+ SYNTAX_NORMAL_C2(SUBLT, SUBLT, SUBLT, SUB2LT, INTREG, SIGNED_CONST, AVR32_V1),
1.26226 -+ SYNTAX_NORMAL_C2(SUBMI, SUBMI, SUBMI, SUB2MI, INTREG, SIGNED_CONST, AVR32_V1),
1.26227 -+ SYNTAX_NORMAL_C2(SUBPL, SUBPL, SUBPL, SUB2PL, INTREG, SIGNED_CONST, AVR32_V1),
1.26228 -+ SYNTAX_NORMAL_C2(SUBLS, SUBLS, SUBLS, SUB2LS, INTREG, SIGNED_CONST, AVR32_V1),
1.26229 -+ SYNTAX_NORMAL_C2(SUBGT, SUBGT, SUBGT, SUB2GT, INTREG, SIGNED_CONST, AVR32_V1),
1.26230 -+ SYNTAX_NORMAL_C2(SUBLE, SUBLE, SUBLE, SUB2LE, INTREG, SIGNED_CONST, AVR32_V1),
1.26231 -+ SYNTAX_NORMAL_C2(SUBHI, SUBHI, SUBHI, SUB2HI, INTREG, SIGNED_CONST, AVR32_V1),
1.26232 -+ SYNTAX_NORMAL_C2(SUBVS, SUBVS, SUBVS, SUB2VS, INTREG, SIGNED_CONST, AVR32_V1),
1.26233 -+ SYNTAX_NORMAL_C2(SUBVC, SUBVC, SUBVC, SUB2VC, INTREG, SIGNED_CONST, AVR32_V1),
1.26234 -+ SYNTAX_NORMAL_C2(SUBQS, SUBQS, SUBQS, SUB2QS, INTREG, SIGNED_CONST, AVR32_V1),
1.26235 -+ SYNTAX_NORMAL_C2(SUBAL, SUBAL, SUBAL, SUB2AL, INTREG, SIGNED_CONST, AVR32_V1),
1.26236 -+ SYNTAX_NORMAL_C2(SUBHS, SUBHS, SUBCC, SUB2CC, INTREG, SIGNED_CONST, AVR32_V1),
1.26237 -+ SYNTAX_NORMAL_C2(SUBLO, SUBLO, SUBCS, SUB2CS, INTREG, SIGNED_CONST, AVR32_V1),
1.26238 -+ SYNTAX_NORMAL2(SUBFEQ, SUBFEQ, SUBFEQ, INTREG, SIGNED_CONST, AVR32_V1),
1.26239 -+ SYNTAX_NORMAL2(SUBFNE, SUBFNE, SUBFNE, INTREG, SIGNED_CONST, AVR32_V1),
1.26240 -+ SYNTAX_NORMAL2(SUBFCC, SUBFCC, SUBFCC, INTREG, SIGNED_CONST, AVR32_V1),
1.26241 -+ SYNTAX_NORMAL2(SUBFCS, SUBFCS, SUBFCS, INTREG, SIGNED_CONST, AVR32_V1),
1.26242 -+ SYNTAX_NORMAL2(SUBFGE, SUBFGE, SUBFGE, INTREG, SIGNED_CONST, AVR32_V1),
1.26243 -+ SYNTAX_NORMAL2(SUBFLT, SUBFLT, SUBFLT, INTREG, SIGNED_CONST, AVR32_V1),
1.26244 -+ SYNTAX_NORMAL2(SUBFMI, SUBFMI, SUBFMI, INTREG, SIGNED_CONST, AVR32_V1),
1.26245 -+ SYNTAX_NORMAL2(SUBFPL, SUBFPL, SUBFPL, INTREG, SIGNED_CONST, AVR32_V1),
1.26246 -+ SYNTAX_NORMAL2(SUBFLS, SUBFLS, SUBFLS, INTREG, SIGNED_CONST, AVR32_V1),
1.26247 -+ SYNTAX_NORMAL2(SUBFGT, SUBFGT, SUBFGT, INTREG, SIGNED_CONST, AVR32_V1),
1.26248 -+ SYNTAX_NORMAL2(SUBFLE, SUBFLE, SUBFLE, INTREG, SIGNED_CONST, AVR32_V1),
1.26249 -+ SYNTAX_NORMAL2(SUBFHI, SUBFHI, SUBFHI, INTREG, SIGNED_CONST, AVR32_V1),
1.26250 -+ SYNTAX_NORMAL2(SUBFVS, SUBFVS, SUBFVS, INTREG, SIGNED_CONST, AVR32_V1),
1.26251 -+ SYNTAX_NORMAL2(SUBFVC, SUBFVC, SUBFVC, INTREG, SIGNED_CONST, AVR32_V1),
1.26252 -+ SYNTAX_NORMAL2(SUBFQS, SUBFQS, SUBFQS, INTREG, SIGNED_CONST, AVR32_V1),
1.26253 -+ SYNTAX_NORMAL2(SUBFAL, SUBFAL, SUBFAL, INTREG, SIGNED_CONST, AVR32_V1),
1.26254 -+ SYNTAX_NORMAL2(SUBFHS, SUBFHS, SUBFCC, INTREG, SIGNED_CONST, AVR32_V1),
1.26255 -+ SYNTAX_NORMAL2(SUBFLO, SUBFLO, SUBFCS, INTREG, SIGNED_CONST, AVR32_V1),
1.26256 -+ SYNTAX_NORMAL3(SUBHH_W, SUBHH_W, SUBHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
1.26257 -+ SYNTAX_NORMAL1(SWAP_B, SWAP_B, SWAP_B, INTREG, AVR32_V1),
1.26258 -+ SYNTAX_NORMAL1(SWAP_BH, SWAP_BH, SWAP_BH, INTREG, AVR32_V1),
1.26259 -+ SYNTAX_NORMAL1(SWAP_H, SWAP_H, SWAP_H, INTREG, AVR32_V1),
1.26260 -+ SYNTAX_NORMAL1(SYNC, SYNC, SYNC, UNSIGNED_CONST, AVR32_V1),
1.26261 -+ SYNTAX_NORMAL0(TLBR, TLBR, TLBR, AVR32_V1),
1.26262 -+ SYNTAX_NORMAL0(TLBS, TLBS, TLBS, AVR32_V1),
1.26263 -+ SYNTAX_NORMAL0(TLBW, TLBW, TLBW, AVR32_V1),
1.26264 -+ SYNTAX_NORMAL1(TNBZ, TNBZ, TNBZ, INTREG, AVR32_V1),
1.26265 -+ SYNTAX_NORMAL2(TST, TST, TST, INTREG, INTREG, AVR32_V1),
1.26266 -+ SYNTAX_NORMAL3(XCHG, XCHG, XCHG, INTREG, INTREG, INTREG, AVR32_V1),
1.26267 -+ SYNTAX_NORMAL2(MEMC, MEMC, MEMC, SIGNED_CONST_W, UNSIGNED_NUMBER, AVR32_RMW),
1.26268 -+ SYNTAX_NORMAL2(MEMS, MEMS, MEMS, SIGNED_CONST_W, UNSIGNED_NUMBER, AVR32_RMW),
1.26269 -+ SYNTAX_NORMAL2(MEMT, MEMT, MEMT, SIGNED_CONST_W, UNSIGNED_NUMBER, AVR32_RMW),
1.26270 -+ SYNTAX_FP(FADD, 3),
1.26271 -+ SYNTAX_FP(FSUB, 3),
1.26272 -+ SYNTAX_FP(FMAC, 3),
1.26273 -+ SYNTAX_FP(FNMAC, 3),
1.26274 -+ SYNTAX_FP(FMSC, 3),
1.26275 -+ SYNTAX_FP(FNMSC, 3),
1.26276 -+ SYNTAX_FP(FMUL, 3),
1.26277 -+ SYNTAX_FP(FNMUL, 3),
1.26278 -+ SYNTAX_FP(FNEG, 2),
1.26279 -+ SYNTAX_FP(FABS, 2),
1.26280 -+ SYNTAX_FP(FCMP, 2),
1.26281 -+ {
1.26282 -+ AVR32_SYNTAX_FMOV1_S,
1.26283 -+ AVR32_FP, NULL, AVR32_PARSER_ALIAS,
1.26284 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV1_S] },
1.26285 -+ &avr32_syntax_table[AVR32_SYNTAX_FMOV2_S],
1.26286 -+ 2,
1.26287 -+ {
1.26288 -+ AVR32_OPERAND_FPREG_S,
1.26289 -+ AVR32_OPERAND_FPREG_S,
1.26290 -+ },
1.26291 -+ },
1.26292 -+ {
1.26293 -+ AVR32_SYNTAX_FMOV1_D,
1.26294 -+ AVR32_FP, NULL, AVR32_PARSER_ALIAS,
1.26295 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV1_D] },
1.26296 -+ &avr32_syntax_table[AVR32_SYNTAX_FMOV2_D],
1.26297 -+ 2,
1.26298 -+ {
1.26299 -+ AVR32_OPERAND_FPREG_D,
1.26300 -+ AVR32_OPERAND_FPREG_D,
1.26301 -+ },
1.26302 -+ },
1.26303 -+ {
1.26304 -+ AVR32_SYNTAX_FMOV2_S,
1.26305 -+ AVR32_FP, NULL, AVR32_PARSER_ALIAS,
1.26306 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV2_S] },
1.26307 -+ &avr32_syntax_table[AVR32_SYNTAX_FMOV3_S],
1.26308 -+ 2,
1.26309 -+ {
1.26310 -+ AVR32_OPERAND_INTREG,
1.26311 -+ AVR32_OPERAND_FPREG_S,
1.26312 -+ },
1.26313 -+ },
1.26314 -+ {
1.26315 -+ AVR32_SYNTAX_FMOV2_D,
1.26316 -+ AVR32_FP, NULL, AVR32_PARSER_ALIAS,
1.26317 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV2_D] },
1.26318 -+ &avr32_syntax_table[AVR32_SYNTAX_FMOV3_D],
1.26319 -+ 2,
1.26320 -+ {
1.26321 -+ AVR32_OPERAND_DWREG,
1.26322 -+ AVR32_OPERAND_FPREG_D,
1.26323 -+ },
1.26324 -+ },
1.26325 -+ {
1.26326 -+ AVR32_SYNTAX_FMOV3_S,
1.26327 -+ AVR32_FP, NULL, AVR32_PARSER_ALIAS,
1.26328 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV3_S] }, NULL,
1.26329 -+ 2,
1.26330 -+ {
1.26331 -+ AVR32_OPERAND_FPREG_S,
1.26332 -+ AVR32_OPERAND_INTREG,
1.26333 -+ },
1.26334 -+ },
1.26335 -+ {
1.26336 -+ AVR32_SYNTAX_FMOV3_D,
1.26337 -+ AVR32_FP, NULL, AVR32_PARSER_ALIAS,
1.26338 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV3_D] }, NULL,
1.26339 -+ 2,
1.26340 -+ {
1.26341 -+ AVR32_OPERAND_FPREG_D,
1.26342 -+ AVR32_OPERAND_DWREG,
1.26343 -+ },
1.26344 -+ },
1.26345 -+ {
1.26346 -+ AVR32_SYNTAX_FCASTS_D,
1.26347 -+ AVR32_FP, NULL, AVR32_PARSER_ALIAS,
1.26348 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_FCASTS_D] }, NULL,
1.26349 -+ 2,
1.26350 -+ {
1.26351 -+ AVR32_OPERAND_FPREG_S,
1.26352 -+ AVR32_OPERAND_FPREG_D,
1.26353 -+ },
1.26354 -+ },
1.26355 -+ {
1.26356 -+ AVR32_SYNTAX_FCASTD_S,
1.26357 -+ AVR32_FP, NULL, AVR32_PARSER_ALIAS,
1.26358 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_FCASTD_S] }, NULL,
1.26359 -+ 2,
1.26360 -+ {
1.26361 -+ AVR32_OPERAND_FPREG_D,
1.26362 -+ AVR32_OPERAND_FPREG_S,
1.26363 -+ },
1.26364 -+ },
1.26365 -+ {
1.26366 -+ AVR32_SYNTAX_LDA_W,
1.26367 -+ AVR32_V1, NULL, AVR32_PARSER_LDA,
1.26368 -+ { NULL }, NULL,
1.26369 -+ 2,
1.26370 -+ {
1.26371 -+ AVR32_OPERAND_INTREG,
1.26372 -+ AVR32_OPERAND_SIGNED_CONST,
1.26373 -+ },
1.26374 -+ },
1.26375 -+ {
1.26376 -+ AVR32_SYNTAX_CALL,
1.26377 -+ AVR32_V1, NULL, AVR32_PARSER_CALL,
1.26378 -+ { NULL }, NULL,
1.26379 -+ 1,
1.26380 -+ {
1.26381 -+ AVR32_OPERAND_JMPLABEL,
1.26382 -+ },
1.26383 -+ },
1.26384 -+ {
1.26385 -+ AVR32_SYNTAX_PICOSVMAC0,
1.26386 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMAC], AVR32_PARSER_ALIAS,
1.26387 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMAC0] },
1.26388 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOSVMAC1], 4,
1.26389 -+ {
1.26390 -+ AVR32_OPERAND_PICO_OUT0,
1.26391 -+ AVR32_OPERAND_PICO_IN,
1.26392 -+ AVR32_OPERAND_PICO_IN,
1.26393 -+ AVR32_OPERAND_PICO_IN,
1.26394 -+ },
1.26395 -+ },
1.26396 -+ {
1.26397 -+ AVR32_SYNTAX_PICOSVMAC1,
1.26398 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMAC], AVR32_PARSER_ALIAS,
1.26399 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMAC1] },
1.26400 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOSVMAC2], 4,
1.26401 -+ {
1.26402 -+ AVR32_OPERAND_PICO_OUT1,
1.26403 -+ AVR32_OPERAND_PICO_IN,
1.26404 -+ AVR32_OPERAND_PICO_IN,
1.26405 -+ AVR32_OPERAND_PICO_IN,
1.26406 -+ },
1.26407 -+ },
1.26408 -+ {
1.26409 -+ AVR32_SYNTAX_PICOSVMAC2,
1.26410 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMAC], AVR32_PARSER_ALIAS,
1.26411 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMAC2] },
1.26412 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOSVMAC3], 4,
1.26413 -+ {
1.26414 -+ AVR32_OPERAND_PICO_OUT2,
1.26415 -+ AVR32_OPERAND_PICO_IN,
1.26416 -+ AVR32_OPERAND_PICO_IN,
1.26417 -+ AVR32_OPERAND_PICO_IN,
1.26418 -+ },
1.26419 -+ },
1.26420 -+ {
1.26421 -+ AVR32_SYNTAX_PICOSVMAC3,
1.26422 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMAC], AVR32_PARSER_ALIAS,
1.26423 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMAC3] },
1.26424 -+ NULL, 4,
1.26425 -+ {
1.26426 -+ AVR32_OPERAND_PICO_OUT3,
1.26427 -+ AVR32_OPERAND_PICO_IN,
1.26428 -+ AVR32_OPERAND_PICO_IN,
1.26429 -+ AVR32_OPERAND_PICO_IN,
1.26430 -+ },
1.26431 -+ },
1.26432 -+ {
1.26433 -+ AVR32_SYNTAX_PICOSVMUL0,
1.26434 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMUL], AVR32_PARSER_ALIAS,
1.26435 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMUL0] },
1.26436 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOSVMUL1], 4,
1.26437 -+ {
1.26438 -+ AVR32_OPERAND_PICO_OUT0,
1.26439 -+ AVR32_OPERAND_PICO_IN,
1.26440 -+ AVR32_OPERAND_PICO_IN,
1.26441 -+ AVR32_OPERAND_PICO_IN,
1.26442 -+ },
1.26443 -+ },
1.26444 -+ {
1.26445 -+ AVR32_SYNTAX_PICOSVMUL1,
1.26446 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMUL], AVR32_PARSER_ALIAS,
1.26447 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMUL1] },
1.26448 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOSVMUL2], 4,
1.26449 -+ {
1.26450 -+ AVR32_OPERAND_PICO_OUT1,
1.26451 -+ AVR32_OPERAND_PICO_IN,
1.26452 -+ AVR32_OPERAND_PICO_IN,
1.26453 -+ AVR32_OPERAND_PICO_IN,
1.26454 -+ },
1.26455 -+ },
1.26456 -+ {
1.26457 -+ AVR32_SYNTAX_PICOSVMUL2,
1.26458 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMUL], AVR32_PARSER_ALIAS,
1.26459 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMUL2] },
1.26460 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOSVMUL3], 4,
1.26461 -+ {
1.26462 -+ AVR32_OPERAND_PICO_OUT2,
1.26463 -+ AVR32_OPERAND_PICO_IN,
1.26464 -+ AVR32_OPERAND_PICO_IN,
1.26465 -+ AVR32_OPERAND_PICO_IN,
1.26466 -+ },
1.26467 -+ },
1.26468 -+ {
1.26469 -+ AVR32_SYNTAX_PICOSVMUL3,
1.26470 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMUL], AVR32_PARSER_ALIAS,
1.26471 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMUL3] },
1.26472 -+ NULL, 4,
1.26473 -+ {
1.26474 -+ AVR32_OPERAND_PICO_OUT3,
1.26475 -+ AVR32_OPERAND_PICO_IN,
1.26476 -+ AVR32_OPERAND_PICO_IN,
1.26477 -+ AVR32_OPERAND_PICO_IN,
1.26478 -+ },
1.26479 -+ },
1.26480 -+ {
1.26481 -+ AVR32_SYNTAX_PICOVMAC0,
1.26482 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMAC], AVR32_PARSER_ALIAS,
1.26483 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMAC0] },
1.26484 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOVMAC1], 4,
1.26485 -+ {
1.26486 -+ AVR32_OPERAND_PICO_OUT0,
1.26487 -+ AVR32_OPERAND_PICO_IN,
1.26488 -+ AVR32_OPERAND_PICO_IN,
1.26489 -+ AVR32_OPERAND_PICO_IN,
1.26490 -+ },
1.26491 -+ },
1.26492 -+ {
1.26493 -+ AVR32_SYNTAX_PICOVMAC1,
1.26494 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMAC], AVR32_PARSER_ALIAS,
1.26495 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMAC1] },
1.26496 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOVMAC2], 4,
1.26497 -+ {
1.26498 -+ AVR32_OPERAND_PICO_OUT1,
1.26499 -+ AVR32_OPERAND_PICO_IN,
1.26500 -+ AVR32_OPERAND_PICO_IN,
1.26501 -+ AVR32_OPERAND_PICO_IN,
1.26502 -+ },
1.26503 -+ },
1.26504 -+ {
1.26505 -+ AVR32_SYNTAX_PICOVMAC2,
1.26506 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMAC], AVR32_PARSER_ALIAS,
1.26507 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMAC2] },
1.26508 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOVMAC3], 4,
1.26509 -+ {
1.26510 -+ AVR32_OPERAND_PICO_OUT2,
1.26511 -+ AVR32_OPERAND_PICO_IN,
1.26512 -+ AVR32_OPERAND_PICO_IN,
1.26513 -+ AVR32_OPERAND_PICO_IN,
1.26514 -+ },
1.26515 -+ },
1.26516 -+ {
1.26517 -+ AVR32_SYNTAX_PICOVMAC3,
1.26518 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMAC], AVR32_PARSER_ALIAS,
1.26519 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMAC3] },
1.26520 -+ NULL, 4,
1.26521 -+ {
1.26522 -+ AVR32_OPERAND_PICO_OUT3,
1.26523 -+ AVR32_OPERAND_PICO_IN,
1.26524 -+ AVR32_OPERAND_PICO_IN,
1.26525 -+ AVR32_OPERAND_PICO_IN,
1.26526 -+ },
1.26527 -+ },
1.26528 -+ {
1.26529 -+ AVR32_SYNTAX_PICOVMUL0,
1.26530 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMUL], AVR32_PARSER_ALIAS,
1.26531 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMUL0] },
1.26532 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOVMUL1], 4,
1.26533 -+ {
1.26534 -+ AVR32_OPERAND_PICO_OUT0,
1.26535 -+ AVR32_OPERAND_PICO_IN,
1.26536 -+ AVR32_OPERAND_PICO_IN,
1.26537 -+ AVR32_OPERAND_PICO_IN,
1.26538 -+ },
1.26539 -+ },
1.26540 -+ {
1.26541 -+ AVR32_SYNTAX_PICOVMUL1,
1.26542 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMUL], AVR32_PARSER_ALIAS,
1.26543 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMUL1] },
1.26544 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOVMUL2], 4,
1.26545 -+ {
1.26546 -+ AVR32_OPERAND_PICO_OUT1,
1.26547 -+ AVR32_OPERAND_PICO_IN,
1.26548 -+ AVR32_OPERAND_PICO_IN,
1.26549 -+ AVR32_OPERAND_PICO_IN,
1.26550 -+ },
1.26551 -+ },
1.26552 -+ {
1.26553 -+ AVR32_SYNTAX_PICOVMUL2,
1.26554 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMUL], AVR32_PARSER_ALIAS,
1.26555 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMUL2] },
1.26556 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOVMUL3], 4,
1.26557 -+ {
1.26558 -+ AVR32_OPERAND_PICO_OUT2,
1.26559 -+ AVR32_OPERAND_PICO_IN,
1.26560 -+ AVR32_OPERAND_PICO_IN,
1.26561 -+ AVR32_OPERAND_PICO_IN,
1.26562 -+ },
1.26563 -+ },
1.26564 -+ {
1.26565 -+ AVR32_SYNTAX_PICOVMUL3,
1.26566 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMUL], AVR32_PARSER_ALIAS,
1.26567 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMUL3] },
1.26568 -+ NULL, 4,
1.26569 -+ {
1.26570 -+ AVR32_OPERAND_PICO_OUT3,
1.26571 -+ AVR32_OPERAND_PICO_IN,
1.26572 -+ AVR32_OPERAND_PICO_IN,
1.26573 -+ AVR32_OPERAND_PICO_IN,
1.26574 -+ },
1.26575 -+ },
1.26576 -+ {
1.26577 -+ AVR32_SYNTAX_PICOLD_D2,
1.26578 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_D], AVR32_PARSER_ALIAS,
1.26579 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_D2] },
1.26580 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOLD_D3], 2,
1.26581 -+ {
1.26582 -+ AVR32_OPERAND_PICO_REG_D,
1.26583 -+ AVR32_OPERAND_INTREG_PREDEC,
1.26584 -+ },
1.26585 -+ },
1.26586 -+ {
1.26587 -+ AVR32_SYNTAX_PICOLD_D3,
1.26588 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_D], AVR32_PARSER_ALIAS,
1.26589 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_D3] },
1.26590 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOLD_D1], 2,
1.26591 -+ {
1.26592 -+ AVR32_OPERAND_PICO_REG_D,
1.26593 -+ AVR32_OPERAND_INTREG_INDEX,
1.26594 -+ },
1.26595 -+ },
1.26596 -+ {
1.26597 -+ AVR32_SYNTAX_PICOLD_D1,
1.26598 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_D], AVR32_PARSER_ALIAS,
1.26599 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_D1] },
1.26600 -+ NULL, 2,
1.26601 -+ {
1.26602 -+ AVR32_OPERAND_PICO_REG_D,
1.26603 -+ AVR32_OPERAND_INTREG_UDISP_W,
1.26604 -+ },
1.26605 -+ },
1.26606 -+ {
1.26607 -+ AVR32_SYNTAX_PICOLD_W2,
1.26608 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_W], AVR32_PARSER_ALIAS,
1.26609 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_W2] },
1.26610 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOLD_W3], 2,
1.26611 -+ {
1.26612 -+ AVR32_OPERAND_PICO_REG_W,
1.26613 -+ AVR32_OPERAND_INTREG_PREDEC,
1.26614 -+ },
1.26615 -+ },
1.26616 -+ {
1.26617 -+ AVR32_SYNTAX_PICOLD_W3,
1.26618 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_W], AVR32_PARSER_ALIAS,
1.26619 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_W3] },
1.26620 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOLD_W1], 2,
1.26621 -+ {
1.26622 -+ AVR32_OPERAND_PICO_REG_W,
1.26623 -+ AVR32_OPERAND_INTREG_INDEX,
1.26624 -+ },
1.26625 -+ },
1.26626 -+ {
1.26627 -+ AVR32_SYNTAX_PICOLD_W1,
1.26628 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_W], AVR32_PARSER_ALIAS,
1.26629 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_W1] },
1.26630 -+ NULL, 2,
1.26631 -+ {
1.26632 -+ AVR32_OPERAND_PICO_REG_W,
1.26633 -+ AVR32_OPERAND_INTREG_UDISP_W,
1.26634 -+ },
1.26635 -+ },
1.26636 -+ {
1.26637 -+ AVR32_SYNTAX_PICOLDM_D,
1.26638 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLDM_D], AVR32_PARSER_ALIAS,
1.26639 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLDM_D] },
1.26640 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOLDM_D_PU], -2,
1.26641 -+ {
1.26642 -+ AVR32_OPERAND_INTREG,
1.26643 -+ AVR32_OPERAND_PICO_REGLIST_D,
1.26644 -+ },
1.26645 -+ },
1.26646 -+ {
1.26647 -+ AVR32_SYNTAX_PICOLDM_D_PU,
1.26648 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLDM_D], AVR32_PARSER_ALIAS,
1.26649 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLDM_D_PU] },
1.26650 -+ NULL, -2,
1.26651 -+ {
1.26652 -+ AVR32_OPERAND_INTREG_POSTINC,
1.26653 -+ AVR32_OPERAND_PICO_REGLIST_D,
1.26654 -+ },
1.26655 -+ },
1.26656 -+ {
1.26657 -+ AVR32_SYNTAX_PICOLDM_W,
1.26658 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLDM_W], AVR32_PARSER_ALIAS,
1.26659 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLDM_W] },
1.26660 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOLDM_W_PU], -2,
1.26661 -+ {
1.26662 -+ AVR32_OPERAND_INTREG,
1.26663 -+ AVR32_OPERAND_PICO_REGLIST_W,
1.26664 -+ },
1.26665 -+ },
1.26666 -+ {
1.26667 -+ AVR32_SYNTAX_PICOLDM_W_PU,
1.26668 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLDM_W], AVR32_PARSER_ALIAS,
1.26669 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLDM_W_PU] },
1.26670 -+ NULL, -2,
1.26671 -+ {
1.26672 -+ AVR32_OPERAND_INTREG_POSTINC,
1.26673 -+ AVR32_OPERAND_PICO_REGLIST_W,
1.26674 -+ },
1.26675 -+ },
1.26676 -+ {
1.26677 -+ AVR32_SYNTAX_PICOMV_D1,
1.26678 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOMV_D], AVR32_PARSER_ALIAS,
1.26679 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOMV_D1] },
1.26680 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOMV_D2], 2,
1.26681 -+ {
1.26682 -+ AVR32_OPERAND_DWREG,
1.26683 -+ AVR32_OPERAND_PICO_REG_D,
1.26684 -+ },
1.26685 -+ },
1.26686 -+ {
1.26687 -+ AVR32_SYNTAX_PICOMV_D2,
1.26688 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOMV_D], AVR32_PARSER_ALIAS,
1.26689 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOMV_D2] },
1.26690 -+ NULL, 2,
1.26691 -+ {
1.26692 -+ AVR32_OPERAND_PICO_REG_D,
1.26693 -+ AVR32_OPERAND_DWREG,
1.26694 -+ },
1.26695 -+ },
1.26696 -+ {
1.26697 -+ AVR32_SYNTAX_PICOMV_W1,
1.26698 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOMV_W], AVR32_PARSER_ALIAS,
1.26699 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOMV_W1] },
1.26700 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOMV_W2], 2,
1.26701 -+ {
1.26702 -+ AVR32_OPERAND_INTREG,
1.26703 -+ AVR32_OPERAND_PICO_REG_W,
1.26704 -+ },
1.26705 -+ },
1.26706 -+ {
1.26707 -+ AVR32_SYNTAX_PICOMV_W2,
1.26708 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOMV_W], AVR32_PARSER_ALIAS,
1.26709 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOMV_W2] },
1.26710 -+ NULL, 2,
1.26711 -+ {
1.26712 -+ AVR32_OPERAND_PICO_REG_W,
1.26713 -+ AVR32_OPERAND_INTREG,
1.26714 -+ },
1.26715 -+ },
1.26716 -+ {
1.26717 -+ AVR32_SYNTAX_PICOST_D2,
1.26718 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_D], AVR32_PARSER_ALIAS,
1.26719 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_D2] },
1.26720 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOST_D3], 2,
1.26721 -+ {
1.26722 -+ AVR32_OPERAND_INTREG_POSTINC,
1.26723 -+ AVR32_OPERAND_PICO_REG_D,
1.26724 -+ },
1.26725 -+ },
1.26726 -+ {
1.26727 -+ AVR32_SYNTAX_PICOST_D3,
1.26728 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_D], AVR32_PARSER_ALIAS,
1.26729 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_D3] },
1.26730 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOST_D1], 2,
1.26731 -+ {
1.26732 -+ AVR32_OPERAND_INTREG_INDEX,
1.26733 -+ AVR32_OPERAND_PICO_REG_D,
1.26734 -+ },
1.26735 -+ },
1.26736 -+ {
1.26737 -+ AVR32_SYNTAX_PICOST_D1,
1.26738 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_D], AVR32_PARSER_ALIAS,
1.26739 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_D1] },
1.26740 -+ NULL, 2,
1.26741 -+ {
1.26742 -+ AVR32_OPERAND_INTREG_UDISP_W,
1.26743 -+ AVR32_OPERAND_PICO_REG_D,
1.26744 -+ },
1.26745 -+ },
1.26746 -+ {
1.26747 -+ AVR32_SYNTAX_PICOST_W2,
1.26748 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_W], AVR32_PARSER_ALIAS,
1.26749 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_W2] },
1.26750 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOST_W3], 2,
1.26751 -+ {
1.26752 -+ AVR32_OPERAND_INTREG_POSTINC,
1.26753 -+ AVR32_OPERAND_PICO_REG_W,
1.26754 -+ },
1.26755 -+ },
1.26756 -+ {
1.26757 -+ AVR32_SYNTAX_PICOST_W3,
1.26758 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_W], AVR32_PARSER_ALIAS,
1.26759 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_W3] },
1.26760 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOST_W1], 2,
1.26761 -+ {
1.26762 -+ AVR32_OPERAND_INTREG_INDEX,
1.26763 -+ AVR32_OPERAND_PICO_REG_W,
1.26764 -+ },
1.26765 -+ },
1.26766 -+ {
1.26767 -+ AVR32_SYNTAX_PICOST_W1,
1.26768 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_W], AVR32_PARSER_ALIAS,
1.26769 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_W1] },
1.26770 -+ NULL, 2,
1.26771 -+ {
1.26772 -+ AVR32_OPERAND_INTREG_UDISP_W,
1.26773 -+ AVR32_OPERAND_PICO_REG_W,
1.26774 -+ },
1.26775 -+ },
1.26776 -+ {
1.26777 -+ AVR32_SYNTAX_PICOSTM_D,
1.26778 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSTM_D], AVR32_PARSER_ALIAS,
1.26779 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSTM_D] },
1.26780 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOSTM_D_PU], -2,
1.26781 -+ {
1.26782 -+ AVR32_OPERAND_INTREG,
1.26783 -+ AVR32_OPERAND_PICO_REGLIST_D,
1.26784 -+ },
1.26785 -+ },
1.26786 -+ {
1.26787 -+ AVR32_SYNTAX_PICOSTM_D_PU,
1.26788 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSTM_D], AVR32_PARSER_ALIAS,
1.26789 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSTM_D_PU] },
1.26790 -+ NULL, -2,
1.26791 -+ {
1.26792 -+ AVR32_OPERAND_INTREG_PREDEC,
1.26793 -+ AVR32_OPERAND_PICO_REGLIST_D,
1.26794 -+ },
1.26795 -+ },
1.26796 -+ {
1.26797 -+ AVR32_SYNTAX_PICOSTM_W,
1.26798 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSTM_W], AVR32_PARSER_ALIAS,
1.26799 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSTM_W] },
1.26800 -+ &avr32_syntax_table[AVR32_SYNTAX_PICOSTM_W_PU], -2,
1.26801 -+ {
1.26802 -+ AVR32_OPERAND_INTREG,
1.26803 -+ AVR32_OPERAND_PICO_REGLIST_W,
1.26804 -+ },
1.26805 -+ },
1.26806 -+ {
1.26807 -+ AVR32_SYNTAX_PICOSTM_W_PU,
1.26808 -+ AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSTM_W], AVR32_PARSER_ALIAS,
1.26809 -+ { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSTM_W_PU] },
1.26810 -+ NULL, -2,
1.26811 -+ {
1.26812 -+ AVR32_OPERAND_INTREG_PREDEC,
1.26813 -+ AVR32_OPERAND_PICO_REGLIST_W,
1.26814 -+ },
1.26815 -+ },
1.26816 -+ SYNTAX_NORMAL2(RSUBEQ, RSUBEQ, RSUBEQ, INTREG, SIGNED_CONST, AVR32_V1),
1.26817 -+ SYNTAX_NORMAL2(RSUBNE, RSUBNE, RSUBNE, INTREG, SIGNED_CONST, AVR32_V2),
1.26818 -+ SYNTAX_NORMAL2(RSUBCC, RSUBCC, RSUBCC, INTREG, SIGNED_CONST, AVR32_V2),
1.26819 -+ SYNTAX_NORMAL2(RSUBCS, RSUBCS, RSUBCS, INTREG, SIGNED_CONST, AVR32_V2),
1.26820 -+ SYNTAX_NORMAL2(RSUBGE, RSUBGE, RSUBGE, INTREG, SIGNED_CONST, AVR32_V2),
1.26821 -+ SYNTAX_NORMAL2(RSUBLT, RSUBLT, RSUBLT, INTREG, SIGNED_CONST, AVR32_V2),
1.26822 -+ SYNTAX_NORMAL2(RSUBMI, RSUBMI, RSUBMI, INTREG, SIGNED_CONST, AVR32_V2),
1.26823 -+ SYNTAX_NORMAL2(RSUBPL, RSUBPL, RSUBPL, INTREG, SIGNED_CONST, AVR32_V2),
1.26824 -+ SYNTAX_NORMAL2(RSUBLS, RSUBLS, RSUBLS, INTREG, SIGNED_CONST, AVR32_V2),
1.26825 -+ SYNTAX_NORMAL2(RSUBGT, RSUBGT, RSUBGT, INTREG, SIGNED_CONST, AVR32_V2),
1.26826 -+ SYNTAX_NORMAL2(RSUBLE, RSUBLE, RSUBLE, INTREG, SIGNED_CONST, AVR32_V2),
1.26827 -+ SYNTAX_NORMAL2(RSUBHI, RSUBHI, RSUBHI, INTREG, SIGNED_CONST, AVR32_V2),
1.26828 -+ SYNTAX_NORMAL2(RSUBVS, RSUBVS, RSUBVS, INTREG, SIGNED_CONST, AVR32_V2),
1.26829 -+ SYNTAX_NORMAL2(RSUBVC, RSUBVC, RSUBVC, INTREG, SIGNED_CONST, AVR32_V2),
1.26830 -+ SYNTAX_NORMAL2(RSUBQS, RSUBQS, RSUBQS, INTREG, SIGNED_CONST, AVR32_V2),
1.26831 -+ SYNTAX_NORMAL2(RSUBAL, RSUBAL, RSUBAL, INTREG, SIGNED_CONST, AVR32_V2),
1.26832 -+ SYNTAX_NORMAL2(RSUBHS, RSUBHS, RSUBCC, INTREG, SIGNED_CONST, AVR32_V2),
1.26833 -+ SYNTAX_NORMAL2(RSUBLO, RSUBLO, RSUBCS, INTREG, SIGNED_CONST, AVR32_V2),
1.26834 -+ SYNTAX_NORMAL3(ADDEQ, ADDEQ, ADDEQ, INTREG, INTREG, INTREG, AVR32_V2),
1.26835 -+ SYNTAX_NORMAL3(ADDNE, ADDNE, ADDNE, INTREG, INTREG, INTREG, AVR32_V2),
1.26836 -+ SYNTAX_NORMAL3(ADDCC, ADDCC, ADDCC, INTREG, INTREG, INTREG, AVR32_V2),
1.26837 -+ SYNTAX_NORMAL3(ADDCS, ADDCS, ADDCS, INTREG, INTREG, INTREG, AVR32_V2),
1.26838 -+ SYNTAX_NORMAL3(ADDGE, ADDGE, ADDGE, INTREG, INTREG, INTREG, AVR32_V2),
1.26839 -+ SYNTAX_NORMAL3(ADDLT, ADDLT, ADDLT, INTREG, INTREG, INTREG, AVR32_V2),
1.26840 -+ SYNTAX_NORMAL3(ADDMI, ADDMI, ADDMI, INTREG, INTREG, INTREG, AVR32_V2),
1.26841 -+ SYNTAX_NORMAL3(ADDPL, ADDPL, ADDPL, INTREG, INTREG, INTREG, AVR32_V2),
1.26842 -+ SYNTAX_NORMAL3(ADDLS, ADDLS, ADDLS, INTREG, INTREG, INTREG, AVR32_V2),
1.26843 -+ SYNTAX_NORMAL3(ADDGT, ADDGT, ADDGT, INTREG, INTREG, INTREG, AVR32_V2),
1.26844 -+ SYNTAX_NORMAL3(ADDLE, ADDLE, ADDLE, INTREG, INTREG, INTREG, AVR32_V2),
1.26845 -+ SYNTAX_NORMAL3(ADDHI, ADDHI, ADDHI, INTREG, INTREG, INTREG, AVR32_V2),
1.26846 -+ SYNTAX_NORMAL3(ADDVS, ADDVS, ADDVS, INTREG, INTREG, INTREG, AVR32_V2),
1.26847 -+ SYNTAX_NORMAL3(ADDVC, ADDVC, ADDVC, INTREG, INTREG, INTREG, AVR32_V2),
1.26848 -+ SYNTAX_NORMAL3(ADDQS, ADDQS, ADDQS, INTREG, INTREG, INTREG, AVR32_V2),
1.26849 -+ SYNTAX_NORMAL3(ADDAL, ADDAL, ADDAL, INTREG, INTREG, INTREG, AVR32_V2),
1.26850 -+ SYNTAX_NORMAL3(ADDHS, ADDHS, ADDCC, INTREG, INTREG, INTREG, AVR32_V2),
1.26851 -+ SYNTAX_NORMAL3(ADDLO, ADDLO, ADDCS, INTREG, INTREG, INTREG, AVR32_V2),
1.26852 -+ SYNTAX_NORMAL3(SUB2EQ, SUBEQ, SUB2EQ, INTREG, INTREG, INTREG, AVR32_V2),
1.26853 -+ SYNTAX_NORMAL3(SUB2NE, SUBNE, SUB2NE, INTREG, INTREG, INTREG, AVR32_V2),
1.26854 -+ SYNTAX_NORMAL3(SUB2CC, SUBCC, SUB2CC, INTREG, INTREG, INTREG, AVR32_V2),
1.26855 -+ SYNTAX_NORMAL3(SUB2CS, SUBCS, SUB2CS, INTREG, INTREG, INTREG, AVR32_V2),
1.26856 -+ SYNTAX_NORMAL3(SUB2GE, SUBGE, SUB2GE, INTREG, INTREG, INTREG, AVR32_V2),
1.26857 -+ SYNTAX_NORMAL3(SUB2LT, SUBLT, SUB2LT, INTREG, INTREG, INTREG, AVR32_V2),
1.26858 -+ SYNTAX_NORMAL3(SUB2MI, SUBMI, SUB2MI, INTREG, INTREG, INTREG, AVR32_V2),
1.26859 -+ SYNTAX_NORMAL3(SUB2PL, SUBPL, SUB2PL, INTREG, INTREG, INTREG, AVR32_V2),
1.26860 -+ SYNTAX_NORMAL3(SUB2LS, SUBLS, SUB2LS, INTREG, INTREG, INTREG, AVR32_V2),
1.26861 -+ SYNTAX_NORMAL3(SUB2GT, SUBGT, SUB2GT, INTREG, INTREG, INTREG, AVR32_V2),
1.26862 -+ SYNTAX_NORMAL3(SUB2LE, SUBLE, SUB2LE, INTREG, INTREG, INTREG, AVR32_V2),
1.26863 -+ SYNTAX_NORMAL3(SUB2HI, SUBHI, SUB2HI, INTREG, INTREG, INTREG, AVR32_V2),
1.26864 -+ SYNTAX_NORMAL3(SUB2VS, SUBVS, SUB2VS, INTREG, INTREG, INTREG, AVR32_V2),
1.26865 -+ SYNTAX_NORMAL3(SUB2VC, SUBVC, SUB2VC, INTREG, INTREG, INTREG, AVR32_V2),
1.26866 -+ SYNTAX_NORMAL3(SUB2QS, SUBQS, SUB2QS, INTREG, INTREG, INTREG, AVR32_V2),
1.26867 -+ SYNTAX_NORMAL3(SUB2AL, SUBAL, SUB2AL, INTREG, INTREG, INTREG, AVR32_V2),
1.26868 -+ SYNTAX_NORMAL3(SUB2HS, SUBHS, SUB2CC, INTREG, INTREG, INTREG, AVR32_V2),
1.26869 -+ SYNTAX_NORMAL3(SUB2LO, SUBLO, SUB2CS, INTREG, INTREG, INTREG, AVR32_V2),
1.26870 -+ SYNTAX_NORMAL3(ANDEQ, ANDEQ, ANDEQ, INTREG, INTREG, INTREG, AVR32_V2),
1.26871 -+ SYNTAX_NORMAL3(ANDNE, ANDNE, ANDNE, INTREG, INTREG, INTREG, AVR32_V2),
1.26872 -+ SYNTAX_NORMAL3(ANDCC, ANDCC, ANDCC, INTREG, INTREG, INTREG, AVR32_V2),
1.26873 -+ SYNTAX_NORMAL3(ANDCS, ANDCS, ANDCS, INTREG, INTREG, INTREG, AVR32_V2),
1.26874 -+ SYNTAX_NORMAL3(ANDGE, ANDGE, ANDGE, INTREG, INTREG, INTREG, AVR32_V2),
1.26875 -+ SYNTAX_NORMAL3(ANDLT, ANDLT, ANDLT, INTREG, INTREG, INTREG, AVR32_V2),
1.26876 -+ SYNTAX_NORMAL3(ANDMI, ANDMI, ANDMI, INTREG, INTREG, INTREG, AVR32_V2),
1.26877 -+ SYNTAX_NORMAL3(ANDPL, ANDPL, ANDPL, INTREG, INTREG, INTREG, AVR32_V2),
1.26878 -+ SYNTAX_NORMAL3(ANDLS, ANDLS, ANDLS, INTREG, INTREG, INTREG, AVR32_V2),
1.26879 -+ SYNTAX_NORMAL3(ANDGT, ANDGT, ANDGT, INTREG, INTREG, INTREG, AVR32_V2),
1.26880 -+ SYNTAX_NORMAL3(ANDLE, ANDLE, ANDLE, INTREG, INTREG, INTREG, AVR32_V2),
1.26881 -+ SYNTAX_NORMAL3(ANDHI, ANDHI, ANDHI, INTREG, INTREG, INTREG, AVR32_V2),
1.26882 -+ SYNTAX_NORMAL3(ANDVS, ANDVS, ANDVS, INTREG, INTREG, INTREG, AVR32_V2),
1.26883 -+ SYNTAX_NORMAL3(ANDVC, ANDVC, ANDVC, INTREG, INTREG, INTREG, AVR32_V2),
1.26884 -+ SYNTAX_NORMAL3(ANDQS, ANDQS, ANDQS, INTREG, INTREG, INTREG, AVR32_V2),
1.26885 -+ SYNTAX_NORMAL3(ANDAL, ANDAL, ANDAL, INTREG, INTREG, INTREG, AVR32_V2),
1.26886 -+ SYNTAX_NORMAL3(ANDHS, ANDHS, ANDCC, INTREG, INTREG, INTREG, AVR32_V2),
1.26887 -+ SYNTAX_NORMAL3(ANDLO, ANDLO, ANDCS, INTREG, INTREG, INTREG, AVR32_V2),
1.26888 -+ SYNTAX_NORMAL3(OREQ, OREQ, OREQ, INTREG, INTREG, INTREG, AVR32_V2),
1.26889 -+ SYNTAX_NORMAL3(ORNE, ORNE, ORNE, INTREG, INTREG, INTREG, AVR32_V2),
1.26890 -+ SYNTAX_NORMAL3(ORCC, ORCC, ORCC, INTREG, INTREG, INTREG, AVR32_V2),
1.26891 -+ SYNTAX_NORMAL3(ORCS, ORCS, ORCS, INTREG, INTREG, INTREG, AVR32_V2),
1.26892 -+ SYNTAX_NORMAL3(ORGE, ORGE, ORGE, INTREG, INTREG, INTREG, AVR32_V2),
1.26893 -+ SYNTAX_NORMAL3(ORLT, ORLT, ORLT, INTREG, INTREG, INTREG, AVR32_V2),
1.26894 -+ SYNTAX_NORMAL3(ORMI, ORMI, ORMI, INTREG, INTREG, INTREG, AVR32_V2),
1.26895 -+ SYNTAX_NORMAL3(ORPL, ORPL, ORPL, INTREG, INTREG, INTREG, AVR32_V2),
1.26896 -+ SYNTAX_NORMAL3(ORLS, ORLS, ORLS, INTREG, INTREG, INTREG, AVR32_V2),
1.26897 -+ SYNTAX_NORMAL3(ORGT, ORGT, ORGT, INTREG, INTREG, INTREG, AVR32_V2),
1.26898 -+ SYNTAX_NORMAL3(ORLE, ORLE, ORLE, INTREG, INTREG, INTREG, AVR32_V2),
1.26899 -+ SYNTAX_NORMAL3(ORHI, ORHI, ORHI, INTREG, INTREG, INTREG, AVR32_V2),
1.26900 -+ SYNTAX_NORMAL3(ORVS, ORVS, ORVS, INTREG, INTREG, INTREG, AVR32_V2),
1.26901 -+ SYNTAX_NORMAL3(ORVC, ORVC, ORVC, INTREG, INTREG, INTREG, AVR32_V2),
1.26902 -+ SYNTAX_NORMAL3(ORQS, ORQS, ORQS, INTREG, INTREG, INTREG, AVR32_V2),
1.26903 -+ SYNTAX_NORMAL3(ORAL, ORAL, ORAL, INTREG, INTREG, INTREG, AVR32_V2),
1.26904 -+ SYNTAX_NORMAL3(ORHS, ORHS, ORCC, INTREG, INTREG, INTREG, AVR32_V2),
1.26905 -+ SYNTAX_NORMAL3(ORLO, ORLO, ORCS, INTREG, INTREG, INTREG, AVR32_V2),
1.26906 -+ SYNTAX_NORMAL3(EOREQ, EOREQ, EOREQ, INTREG, INTREG, INTREG, AVR32_V2),
1.26907 -+ SYNTAX_NORMAL3(EORNE, EORNE, EORNE, INTREG, INTREG, INTREG, AVR32_V2),
1.26908 -+ SYNTAX_NORMAL3(EORCC, EORCC, EORCC, INTREG, INTREG, INTREG, AVR32_V2),
1.26909 -+ SYNTAX_NORMAL3(EORCS, EORCS, EORCS, INTREG, INTREG, INTREG, AVR32_V2),
1.26910 -+ SYNTAX_NORMAL3(EORGE, EORGE, EORGE, INTREG, INTREG, INTREG, AVR32_V2),
1.26911 -+ SYNTAX_NORMAL3(EORLT, EORLT, EORLT, INTREG, INTREG, INTREG, AVR32_V2),
1.26912 -+ SYNTAX_NORMAL3(EORMI, EORMI, EORMI, INTREG, INTREG, INTREG, AVR32_V2),
1.26913 -+ SYNTAX_NORMAL3(EORPL, EORPL, EORPL, INTREG, INTREG, INTREG, AVR32_V2),
1.26914 -+ SYNTAX_NORMAL3(EORLS, EORLS, EORLS, INTREG, INTREG, INTREG, AVR32_V2),
1.26915 -+ SYNTAX_NORMAL3(EORGT, EORGT, EORGT, INTREG, INTREG, INTREG, AVR32_V2),
1.26916 -+ SYNTAX_NORMAL3(EORLE, EORLE, EORLE, INTREG, INTREG, INTREG, AVR32_V2),
1.26917 -+ SYNTAX_NORMAL3(EORHI, EORHI, EORHI, INTREG, INTREG, INTREG, AVR32_V2),
1.26918 -+ SYNTAX_NORMAL3(EORVS, EORVS, EORVS, INTREG, INTREG, INTREG, AVR32_V2),
1.26919 -+ SYNTAX_NORMAL3(EORVC, EORVC, EORVC, INTREG, INTREG, INTREG, AVR32_V2),
1.26920 -+ SYNTAX_NORMAL3(EORQS, EORQS, EORQS, INTREG, INTREG, INTREG, AVR32_V2),
1.26921 -+ SYNTAX_NORMAL3(EORAL, EORAL, EORAL, INTREG, INTREG, INTREG, AVR32_V2),
1.26922 -+ SYNTAX_NORMAL3(EORHS, EORHS, EORCC, INTREG, INTREG, INTREG, AVR32_V2),
1.26923 -+ SYNTAX_NORMAL3(EORLO, EORLO, EORCS, INTREG, INTREG, INTREG, AVR32_V2),
1.26924 -+ SYNTAX_NORMAL2(LD_WEQ, LD_WEQ, LD_WEQ, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26925 -+ SYNTAX_NORMAL2(LD_WNE, LD_WNE, LD_WNE, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26926 -+ SYNTAX_NORMAL2(LD_WCC, LD_WCC, LD_WCC, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26927 -+ SYNTAX_NORMAL2(LD_WCS, LD_WCS, LD_WCS, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26928 -+ SYNTAX_NORMAL2(LD_WGE, LD_WGE, LD_WGE, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26929 -+ SYNTAX_NORMAL2(LD_WLT, LD_WLT, LD_WLT, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26930 -+ SYNTAX_NORMAL2(LD_WMI, LD_WMI, LD_WMI, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26931 -+ SYNTAX_NORMAL2(LD_WPL, LD_WPL, LD_WPL, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26932 -+ SYNTAX_NORMAL2(LD_WLS, LD_WLS, LD_WLS, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26933 -+ SYNTAX_NORMAL2(LD_WGT, LD_WGT, LD_WGT, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26934 -+ SYNTAX_NORMAL2(LD_WLE, LD_WLE, LD_WLE, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26935 -+ SYNTAX_NORMAL2(LD_WHI, LD_WHI, LD_WHI, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26936 -+ SYNTAX_NORMAL2(LD_WVS, LD_WVS, LD_WVS, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26937 -+ SYNTAX_NORMAL2(LD_WVC, LD_WVC, LD_WVC, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26938 -+ SYNTAX_NORMAL2(LD_WQS, LD_WQS, LD_WQS, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26939 -+ SYNTAX_NORMAL2(LD_WAL, LD_WAL, LD_WAL, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26940 -+ SYNTAX_NORMAL2(LD_WHS, LD_WHS, LD_WCC, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26941 -+ SYNTAX_NORMAL2(LD_WLO, LD_WLO, LD_WCS, INTREG, INTREG_UDISP_W, AVR32_V2),
1.26942 -+ SYNTAX_NORMAL2(LD_SHEQ, LD_SHEQ, LD_SHEQ, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26943 -+ SYNTAX_NORMAL2(LD_SHNE, LD_SHNE, LD_SHNE, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26944 -+ SYNTAX_NORMAL2(LD_SHCC, LD_SHCC, LD_SHCC, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26945 -+ SYNTAX_NORMAL2(LD_SHCS, LD_SHCS, LD_SHCS, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26946 -+ SYNTAX_NORMAL2(LD_SHGE, LD_SHGE, LD_SHGE, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26947 -+ SYNTAX_NORMAL2(LD_SHLT, LD_SHLT, LD_SHLT, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26948 -+ SYNTAX_NORMAL2(LD_SHMI, LD_SHMI, LD_SHMI, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26949 -+ SYNTAX_NORMAL2(LD_SHPL, LD_SHPL, LD_SHPL, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26950 -+ SYNTAX_NORMAL2(LD_SHLS, LD_SHLS, LD_SHLS, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26951 -+ SYNTAX_NORMAL2(LD_SHGT, LD_SHGT, LD_SHGT, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26952 -+ SYNTAX_NORMAL2(LD_SHLE, LD_SHLE, LD_SHLE, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26953 -+ SYNTAX_NORMAL2(LD_SHHI, LD_SHHI, LD_SHHI, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26954 -+ SYNTAX_NORMAL2(LD_SHVS, LD_SHVS, LD_SHVS, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26955 -+ SYNTAX_NORMAL2(LD_SHVC, LD_SHVC, LD_SHVC, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26956 -+ SYNTAX_NORMAL2(LD_SHQS, LD_SHQS, LD_SHQS, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26957 -+ SYNTAX_NORMAL2(LD_SHAL, LD_SHAL, LD_SHAL, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26958 -+ SYNTAX_NORMAL2(LD_SHHS, LD_SHHS, LD_SHCC, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26959 -+ SYNTAX_NORMAL2(LD_SHLO, LD_SHLO, LD_SHCS, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26960 -+ SYNTAX_NORMAL2(LD_UHEQ, LD_UHEQ, LD_UHEQ, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26961 -+ SYNTAX_NORMAL2(LD_UHNE, LD_UHNE, LD_UHNE, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26962 -+ SYNTAX_NORMAL2(LD_UHCC, LD_UHCC, LD_UHCC, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26963 -+ SYNTAX_NORMAL2(LD_UHCS, LD_UHCS, LD_UHCS, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26964 -+ SYNTAX_NORMAL2(LD_UHGE, LD_UHGE, LD_UHGE, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26965 -+ SYNTAX_NORMAL2(LD_UHLT, LD_UHLT, LD_UHLT, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26966 -+ SYNTAX_NORMAL2(LD_UHMI, LD_UHMI, LD_UHMI, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26967 -+ SYNTAX_NORMAL2(LD_UHPL, LD_UHPL, LD_UHPL, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26968 -+ SYNTAX_NORMAL2(LD_UHLS, LD_UHLS, LD_UHLS, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26969 -+ SYNTAX_NORMAL2(LD_UHGT, LD_UHGT, LD_UHGT, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26970 -+ SYNTAX_NORMAL2(LD_UHLE, LD_UHLE, LD_UHLE, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26971 -+ SYNTAX_NORMAL2(LD_UHHI, LD_UHHI, LD_UHHI, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26972 -+ SYNTAX_NORMAL2(LD_UHVS, LD_UHVS, LD_UHVS, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26973 -+ SYNTAX_NORMAL2(LD_UHVC, LD_UHVC, LD_UHVC, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26974 -+ SYNTAX_NORMAL2(LD_UHQS, LD_UHQS, LD_UHQS, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26975 -+ SYNTAX_NORMAL2(LD_UHAL, LD_UHAL, LD_UHAL, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26976 -+ SYNTAX_NORMAL2(LD_UHHS, LD_UHHS, LD_UHCC, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26977 -+ SYNTAX_NORMAL2(LD_UHLO, LD_UHLO, LD_UHCS, INTREG, INTREG_UDISP_H, AVR32_V2),
1.26978 -+ SYNTAX_NORMAL2(LD_SBEQ, LD_SBEQ, LD_SBEQ, INTREG, INTREG_UDISP, AVR32_V2),
1.26979 -+ SYNTAX_NORMAL2(LD_SBNE, LD_SBNE, LD_SBNE, INTREG, INTREG_UDISP, AVR32_V2),
1.26980 -+ SYNTAX_NORMAL2(LD_SBCC, LD_SBCC, LD_SBCC, INTREG, INTREG_UDISP, AVR32_V2),
1.26981 -+ SYNTAX_NORMAL2(LD_SBCS, LD_SBCS, LD_SBCS, INTREG, INTREG_UDISP, AVR32_V2),
1.26982 -+ SYNTAX_NORMAL2(LD_SBGE, LD_SBGE, LD_SBGE, INTREG, INTREG_UDISP, AVR32_V2),
1.26983 -+ SYNTAX_NORMAL2(LD_SBLT, LD_SBLT, LD_SBLT, INTREG, INTREG_UDISP, AVR32_V2),
1.26984 -+ SYNTAX_NORMAL2(LD_SBMI, LD_SBMI, LD_SBMI, INTREG, INTREG_UDISP, AVR32_V2),
1.26985 -+ SYNTAX_NORMAL2(LD_SBPL, LD_SBPL, LD_SBPL, INTREG, INTREG_UDISP, AVR32_V2),
1.26986 -+ SYNTAX_NORMAL2(LD_SBLS, LD_SBLS, LD_SBLS, INTREG, INTREG_UDISP, AVR32_V2),
1.26987 -+ SYNTAX_NORMAL2(LD_SBGT, LD_SBGT, LD_SBGT, INTREG, INTREG_UDISP, AVR32_V2),
1.26988 -+ SYNTAX_NORMAL2(LD_SBLE, LD_SBLE, LD_SBLE, INTREG, INTREG_UDISP, AVR32_V2),
1.26989 -+ SYNTAX_NORMAL2(LD_SBHI, LD_SBHI, LD_SBHI, INTREG, INTREG_UDISP, AVR32_V2),
1.26990 -+ SYNTAX_NORMAL2(LD_SBVS, LD_SBVS, LD_SBVS, INTREG, INTREG_UDISP, AVR32_V2),
1.26991 -+ SYNTAX_NORMAL2(LD_SBVC, LD_SBVC, LD_SBVC, INTREG, INTREG_UDISP, AVR32_V2),
1.26992 -+ SYNTAX_NORMAL2(LD_SBQS, LD_SBQS, LD_SBQS, INTREG, INTREG_UDISP, AVR32_V2),
1.26993 -+ SYNTAX_NORMAL2(LD_SBAL, LD_SBAL, LD_SBAL, INTREG, INTREG_UDISP, AVR32_V2),
1.26994 -+ SYNTAX_NORMAL2(LD_SBHS, LD_SBHS, LD_SBCC, INTREG, INTREG_UDISP, AVR32_V2),
1.26995 -+ SYNTAX_NORMAL2(LD_SBLO, LD_SBLO, LD_SBCS, INTREG, INTREG_UDISP, AVR32_V2),
1.26996 -+ SYNTAX_NORMAL2(LD_UBEQ, LD_UBEQ, LD_UBEQ, INTREG, INTREG_UDISP, AVR32_V2),
1.26997 -+ SYNTAX_NORMAL2(LD_UBNE, LD_UBNE, LD_UBNE, INTREG, INTREG_UDISP, AVR32_V2),
1.26998 -+ SYNTAX_NORMAL2(LD_UBCC, LD_UBCC, LD_UBCC, INTREG, INTREG_UDISP, AVR32_V2),
1.26999 -+ SYNTAX_NORMAL2(LD_UBCS, LD_UBCS, LD_UBCS, INTREG, INTREG_UDISP, AVR32_V2),
1.27000 -+ SYNTAX_NORMAL2(LD_UBGE, LD_UBGE, LD_UBGE, INTREG, INTREG_UDISP, AVR32_V2),
1.27001 -+ SYNTAX_NORMAL2(LD_UBLT, LD_UBLT, LD_UBLT, INTREG, INTREG_UDISP, AVR32_V2),
1.27002 -+ SYNTAX_NORMAL2(LD_UBMI, LD_UBMI, LD_UBMI, INTREG, INTREG_UDISP, AVR32_V2),
1.27003 -+ SYNTAX_NORMAL2(LD_UBPL, LD_UBPL, LD_UBPL, INTREG, INTREG_UDISP, AVR32_V2),
1.27004 -+ SYNTAX_NORMAL2(LD_UBLS, LD_UBLS, LD_UBLS, INTREG, INTREG_UDISP, AVR32_V2),
1.27005 -+ SYNTAX_NORMAL2(LD_UBGT, LD_UBGT, LD_UBGT, INTREG, INTREG_UDISP, AVR32_V2),
1.27006 -+ SYNTAX_NORMAL2(LD_UBLE, LD_UBLE, LD_UBLE, INTREG, INTREG_UDISP, AVR32_V2),
1.27007 -+ SYNTAX_NORMAL2(LD_UBHI, LD_UBHI, LD_UBHI, INTREG, INTREG_UDISP, AVR32_V2),
1.27008 -+ SYNTAX_NORMAL2(LD_UBVS, LD_UBVS, LD_UBVS, INTREG, INTREG_UDISP, AVR32_V2),
1.27009 -+ SYNTAX_NORMAL2(LD_UBVC, LD_UBVC, LD_UBVC, INTREG, INTREG_UDISP, AVR32_V2),
1.27010 -+ SYNTAX_NORMAL2(LD_UBQS, LD_UBQS, LD_UBQS, INTREG, INTREG_UDISP, AVR32_V2),
1.27011 -+ SYNTAX_NORMAL2(LD_UBAL, LD_UBAL, LD_UBAL, INTREG, INTREG_UDISP, AVR32_V2),
1.27012 -+ SYNTAX_NORMAL2(LD_UBHS, LD_UBHS, LD_UBCC, INTREG, INTREG_UDISP, AVR32_V2),
1.27013 -+ SYNTAX_NORMAL2(LD_UBLO, LD_UBLO, LD_UBCS, INTREG, INTREG_UDISP, AVR32_V2),
1.27014 -+ SYNTAX_NORMAL2(ST_WEQ, ST_WEQ, ST_WEQ, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27015 -+ SYNTAX_NORMAL2(ST_WNE, ST_WNE, ST_WNE, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27016 -+ SYNTAX_NORMAL2(ST_WCC, ST_WCC, ST_WCC, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27017 -+ SYNTAX_NORMAL2(ST_WCS, ST_WCS, ST_WCS, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27018 -+ SYNTAX_NORMAL2(ST_WGE, ST_WGE, ST_WGE, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27019 -+ SYNTAX_NORMAL2(ST_WLT, ST_WLT, ST_WLT, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27020 -+ SYNTAX_NORMAL2(ST_WMI, ST_WMI, ST_WMI, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27021 -+ SYNTAX_NORMAL2(ST_WPL, ST_WPL, ST_WPL, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27022 -+ SYNTAX_NORMAL2(ST_WLS, ST_WLS, ST_WLS, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27023 -+ SYNTAX_NORMAL2(ST_WGT, ST_WGT, ST_WGT, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27024 -+ SYNTAX_NORMAL2(ST_WLE, ST_WLE, ST_WLE, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27025 -+ SYNTAX_NORMAL2(ST_WHI, ST_WHI, ST_WHI, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27026 -+ SYNTAX_NORMAL2(ST_WVS, ST_WVS, ST_WVS, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27027 -+ SYNTAX_NORMAL2(ST_WVC, ST_WVC, ST_WVC, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27028 -+ SYNTAX_NORMAL2(ST_WQS, ST_WQS, ST_WQS, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27029 -+ SYNTAX_NORMAL2(ST_WAL, ST_WAL, ST_WAL, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27030 -+ SYNTAX_NORMAL2(ST_WHS, ST_WHS, ST_WCC, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27031 -+ SYNTAX_NORMAL2(ST_WLO, ST_WLO, ST_WCS, INTREG_UDISP_W, INTREG, AVR32_V2),
1.27032 -+ SYNTAX_NORMAL2(ST_HEQ, ST_HEQ, ST_HEQ, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27033 -+ SYNTAX_NORMAL2(ST_HNE, ST_HNE, ST_HNE, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27034 -+ SYNTAX_NORMAL2(ST_HCC, ST_HCC, ST_HCC, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27035 -+ SYNTAX_NORMAL2(ST_HCS, ST_HCS, ST_HCS, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27036 -+ SYNTAX_NORMAL2(ST_HGE, ST_HGE, ST_HGE, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27037 -+ SYNTAX_NORMAL2(ST_HLT, ST_HLT, ST_HLT, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27038 -+ SYNTAX_NORMAL2(ST_HMI, ST_HMI, ST_HMI, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27039 -+ SYNTAX_NORMAL2(ST_HPL, ST_HPL, ST_HPL, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27040 -+ SYNTAX_NORMAL2(ST_HLS, ST_HLS, ST_HLS, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27041 -+ SYNTAX_NORMAL2(ST_HGT, ST_HGT, ST_HGT, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27042 -+ SYNTAX_NORMAL2(ST_HLE, ST_HLE, ST_HLE, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27043 -+ SYNTAX_NORMAL2(ST_HHI, ST_HHI, ST_HHI, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27044 -+ SYNTAX_NORMAL2(ST_HVS, ST_HVS, ST_HVS, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27045 -+ SYNTAX_NORMAL2(ST_HVC, ST_HVC, ST_HVC, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27046 -+ SYNTAX_NORMAL2(ST_HQS, ST_HQS, ST_HQS, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27047 -+ SYNTAX_NORMAL2(ST_HAL, ST_HAL, ST_HAL, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27048 -+ SYNTAX_NORMAL2(ST_HHS, ST_HHS, ST_HCC, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27049 -+ SYNTAX_NORMAL2(ST_HLO, ST_HLO, ST_HCS, INTREG_UDISP_H, INTREG, AVR32_V2),
1.27050 -+ SYNTAX_NORMAL2(ST_BEQ, ST_BEQ, ST_BEQ, INTREG_UDISP, INTREG, AVR32_V2),
1.27051 -+ SYNTAX_NORMAL2(ST_BNE, ST_BNE, ST_BNE, INTREG_UDISP, INTREG, AVR32_V2),
1.27052 -+ SYNTAX_NORMAL2(ST_BCC, ST_BCC, ST_BCC, INTREG_UDISP, INTREG, AVR32_V2),
1.27053 -+ SYNTAX_NORMAL2(ST_BCS, ST_BCS, ST_BCS, INTREG_UDISP, INTREG, AVR32_V2),
1.27054 -+ SYNTAX_NORMAL2(ST_BGE, ST_BGE, ST_BGE, INTREG_UDISP, INTREG, AVR32_V2),
1.27055 -+ SYNTAX_NORMAL2(ST_BLT, ST_BLT, ST_BLT, INTREG_UDISP, INTREG, AVR32_V2),
1.27056 -+ SYNTAX_NORMAL2(ST_BMI, ST_BMI, ST_BMI, INTREG_UDISP, INTREG, AVR32_V2),
1.27057 -+ SYNTAX_NORMAL2(ST_BPL, ST_BPL, ST_BPL, INTREG_UDISP, INTREG, AVR32_V2),
1.27058 -+ SYNTAX_NORMAL2(ST_BLS, ST_BLS, ST_BLS, INTREG_UDISP, INTREG, AVR32_V2),
1.27059 -+ SYNTAX_NORMAL2(ST_BGT, ST_BGT, ST_BGT, INTREG_UDISP, INTREG, AVR32_V2),
1.27060 -+ SYNTAX_NORMAL2(ST_BLE, ST_BLE, ST_BLE, INTREG_UDISP, INTREG, AVR32_V2),
1.27061 -+ SYNTAX_NORMAL2(ST_BHI, ST_BHI, ST_BHI, INTREG_UDISP, INTREG, AVR32_V2),
1.27062 -+ SYNTAX_NORMAL2(ST_BVS, ST_BVS, ST_BVS, INTREG_UDISP, INTREG, AVR32_V2),
1.27063 -+ SYNTAX_NORMAL2(ST_BVC, ST_BVC, ST_BVC, INTREG_UDISP, INTREG, AVR32_V2),
1.27064 -+ SYNTAX_NORMAL2(ST_BQS, ST_BQS, ST_BQS, INTREG_UDISP, INTREG, AVR32_V2),
1.27065 -+ SYNTAX_NORMAL2(ST_BAL, ST_BAL, ST_BAL, INTREG_UDISP, INTREG, AVR32_V2),
1.27066 -+ SYNTAX_NORMAL2(ST_BHS, ST_BHS, ST_BCC, INTREG_UDISP, INTREG, AVR32_V2),
1.27067 -+ SYNTAX_NORMAL2(ST_BLO, ST_BLO, ST_BCS, INTREG_UDISP, INTREG, AVR32_V2),
1.27068 -+ SYNTAX_NORMAL2(MOVH, MOVH, MOVH, INTREG, UNSIGNED_CONST, AVR32_V2),
1.27069 -+
1.27070 -+ };
1.27071 -+
1.27072 -+#define NORMAL_MNEMONIC(name, syntax, str) \
1.27073 -+ { \
1.27074 -+ AVR32_MNEMONIC_##name, str, \
1.27075 -+ &avr32_syntax_table[AVR32_SYNTAX_##syntax], \
1.27076 -+ }
1.27077 -+#define FP_MNEMONIC(name, syntax, str) \
1.27078 -+ NORMAL_MNEMONIC(name##_S, syntax##_S, str ".s"), \
1.27079 -+ NORMAL_MNEMONIC(name##_D, syntax##_D, str ".d")
1.27080 -+
1.27081 -+const struct avr32_mnemonic avr32_mnemonic_table[] =
1.27082 -+ {
1.27083 -+ NORMAL_MNEMONIC(ABS, ABS, "abs"),
1.27084 -+ NORMAL_MNEMONIC(ACALL, ACALL, "acall"),
1.27085 -+ NORMAL_MNEMONIC(ACR, ACR, "acr"),
1.27086 -+ NORMAL_MNEMONIC(ADC, ADC, "adc"),
1.27087 -+ NORMAL_MNEMONIC(ADD, ADD1, "add"),
1.27088 -+ NORMAL_MNEMONIC(ADDABS, ADDABS, "addabs"),
1.27089 -+ NORMAL_MNEMONIC(ADDHH_W, ADDHH_W, "addhh.w"),
1.27090 -+ NORMAL_MNEMONIC(AND, AND1, "and"),
1.27091 -+ NORMAL_MNEMONIC(ANDH, ANDH, "andh"),
1.27092 -+ NORMAL_MNEMONIC(ANDL, ANDL, "andl"),
1.27093 -+ NORMAL_MNEMONIC(ANDN, ANDN, "andn"),
1.27094 -+ NORMAL_MNEMONIC(ASR, ASR1, "asr"),
1.27095 -+ NORMAL_MNEMONIC(BFEXTS, BFEXTS, "bfexts"),
1.27096 -+ NORMAL_MNEMONIC(BFEXTU, BFEXTU, "bfextu"),
1.27097 -+ NORMAL_MNEMONIC(BFINS, BFINS, "bfins"),
1.27098 -+ NORMAL_MNEMONIC(BLD, BLD, "bld"),
1.27099 -+ NORMAL_MNEMONIC(BREQ, BREQ1, "breq"),
1.27100 -+ NORMAL_MNEMONIC(BRNE, BRNE1, "brne"),
1.27101 -+ NORMAL_MNEMONIC(BRCC, BRCC1, "brcc"),
1.27102 -+ NORMAL_MNEMONIC(BRCS, BRCS1, "brcs"),
1.27103 -+ NORMAL_MNEMONIC(BRGE, BRGE1, "brge"),
1.27104 -+ NORMAL_MNEMONIC(BRLT, BRLT1, "brlt"),
1.27105 -+ NORMAL_MNEMONIC(BRMI, BRMI1, "brmi"),
1.27106 -+ NORMAL_MNEMONIC(BRPL, BRPL1, "brpl"),
1.27107 -+ NORMAL_MNEMONIC(BRHS, BRHS1, "brhs"),
1.27108 -+ NORMAL_MNEMONIC(BRLO, BRLO1, "brlo"),
1.27109 -+ NORMAL_MNEMONIC(BRLS, BRLS, "brls"),
1.27110 -+ NORMAL_MNEMONIC(BRGT, BRGT, "brgt"),
1.27111 -+ NORMAL_MNEMONIC(BRLE, BRLE, "brle"),
1.27112 -+ NORMAL_MNEMONIC(BRHI, BRHI, "brhi"),
1.27113 -+ NORMAL_MNEMONIC(BRVS, BRVS, "brvs"),
1.27114 -+ NORMAL_MNEMONIC(BRVC, BRVC, "brvc"),
1.27115 -+ NORMAL_MNEMONIC(BRQS, BRQS, "brqs"),
1.27116 -+ NORMAL_MNEMONIC(BRAL, BRAL, "bral"),
1.27117 -+ NORMAL_MNEMONIC(BREAKPOINT, BREAKPOINT, "breakpoint"),
1.27118 -+ NORMAL_MNEMONIC(BREV, BREV, "brev"),
1.27119 -+ NORMAL_MNEMONIC(BST, BST, "bst"),
1.27120 -+ NORMAL_MNEMONIC(CACHE, CACHE, "cache"),
1.27121 -+ NORMAL_MNEMONIC(CASTS_B, CASTS_B, "casts.b"),
1.27122 -+ NORMAL_MNEMONIC(CASTS_H, CASTS_H, "casts.h"),
1.27123 -+ NORMAL_MNEMONIC(CASTU_B, CASTU_B, "castu.b"),
1.27124 -+ NORMAL_MNEMONIC(CASTU_H, CASTU_H, "castu.h"),
1.27125 -+ NORMAL_MNEMONIC(CBR, CBR, "cbr"),
1.27126 -+ NORMAL_MNEMONIC(CLZ, CLZ, "clz"),
1.27127 -+ NORMAL_MNEMONIC(COM, COM, "com"),
1.27128 -+ NORMAL_MNEMONIC(COP, COP, "cop"),
1.27129 -+ NORMAL_MNEMONIC(CP_B, CP_B, "cp.b"),
1.27130 -+ NORMAL_MNEMONIC(CP_H, CP_H, "cp.h"),
1.27131 -+ NORMAL_MNEMONIC(CP_W, CP_W1, "cp.w"),
1.27132 -+ NORMAL_MNEMONIC(CP, CP_W1, "cp"),
1.27133 -+ NORMAL_MNEMONIC(CPC, CPC1, "cpc"),
1.27134 -+ NORMAL_MNEMONIC(CSRF, CSRF, "csrf"),
1.27135 -+ NORMAL_MNEMONIC(CSRFCZ, CSRFCZ, "csrfcz"),
1.27136 -+ NORMAL_MNEMONIC(DIVS, DIVS, "divs"),
1.27137 -+ NORMAL_MNEMONIC(DIVU, DIVU, "divu"),
1.27138 -+ NORMAL_MNEMONIC(EOR, EOR1, "eor"),
1.27139 -+ NORMAL_MNEMONIC(EORL, EORL, "eorl"),
1.27140 -+ NORMAL_MNEMONIC(EORH, EORH, "eorh"),
1.27141 -+ NORMAL_MNEMONIC(FRS, FRS, "frs"),
1.27142 -+ NORMAL_MNEMONIC(ICALL, ICALL, "icall"),
1.27143 -+ NORMAL_MNEMONIC(INCJOSP, INCJOSP, "incjosp"),
1.27144 -+ NORMAL_MNEMONIC(LD_D, LD_D1, "ld.d"),
1.27145 -+ NORMAL_MNEMONIC(LD_SB, LD_SB2, "ld.sb"),
1.27146 -+ NORMAL_MNEMONIC(LD_UB, LD_UB1, "ld.ub"),
1.27147 -+ NORMAL_MNEMONIC(LD_SH, LD_SH1, "ld.sh"),
1.27148 -+ NORMAL_MNEMONIC(LD_UH, LD_UH1, "ld.uh"),
1.27149 -+ NORMAL_MNEMONIC(LD_W, LD_W1, "ld.w"),
1.27150 -+ NORMAL_MNEMONIC(LDC_D, LDC_D3, "ldc.d"),
1.27151 -+ NORMAL_MNEMONIC(LDC_W, LDC_W3, "ldc.w"),
1.27152 -+ NORMAL_MNEMONIC(LDC0_D, LDC0_D, "ldc0.d"),
1.27153 -+ NORMAL_MNEMONIC(LDC0_W, LDC0_W, "ldc0.w"),
1.27154 -+ NORMAL_MNEMONIC(LDCM_D, LDCM_D, "ldcm.d"),
1.27155 -+ NORMAL_MNEMONIC(LDCM_W, LDCM_W, "ldcm.w"),
1.27156 -+ NORMAL_MNEMONIC(LDDPC, LDDPC, "lddpc"),
1.27157 -+ NORMAL_MNEMONIC(LDDSP, LDDSP, "lddsp"),
1.27158 -+ NORMAL_MNEMONIC(LDINS_B, LDINS_B, "ldins.b"),
1.27159 -+ NORMAL_MNEMONIC(LDINS_H, LDINS_H, "ldins.h"),
1.27160 -+ NORMAL_MNEMONIC(LDM, LDM, "ldm"),
1.27161 -+ NORMAL_MNEMONIC(LDMTS, LDMTS, "ldmts"),
1.27162 -+ NORMAL_MNEMONIC(LDSWP_SH, LDSWP_SH, "ldswp.sh"),
1.27163 -+ NORMAL_MNEMONIC(LDSWP_UH, LDSWP_UH, "ldswp.uh"),
1.27164 -+ NORMAL_MNEMONIC(LDSWP_W, LDSWP_W, "ldswp.w"),
1.27165 -+ NORMAL_MNEMONIC(LSL, LSL1, "lsl"),
1.27166 -+ NORMAL_MNEMONIC(LSR, LSR1, "lsr"),
1.27167 -+ NORMAL_MNEMONIC(MAC, MAC, "mac"),
1.27168 -+ NORMAL_MNEMONIC(MACHH_D, MACHH_D, "machh.d"),
1.27169 -+ NORMAL_MNEMONIC(MACHH_W, MACHH_W, "machh.w"),
1.27170 -+ NORMAL_MNEMONIC(MACS_D, MACS_D, "macs.d"),
1.27171 -+ NORMAL_MNEMONIC(MACSATHH_W, MACSATHH_W, "macsathh.w"),
1.27172 -+ NORMAL_MNEMONIC(MACU_D, MACUD, "macu.d"),
1.27173 -+ NORMAL_MNEMONIC(MACWH_D, MACWH_D, "macwh.d"),
1.27174 -+ NORMAL_MNEMONIC(MAX, MAX, "max"),
1.27175 -+ NORMAL_MNEMONIC(MCALL, MCALL, "mcall"),
1.27176 -+ NORMAL_MNEMONIC(MFDR, MFDR, "mfdr"),
1.27177 -+ NORMAL_MNEMONIC(MFSR, MFSR, "mfsr"),
1.27178 -+ NORMAL_MNEMONIC(MIN, MIN, "min"),
1.27179 -+ NORMAL_MNEMONIC(MOV, MOV3, "mov"),
1.27180 -+ NORMAL_MNEMONIC(MOVEQ, MOVEQ1, "moveq"),
1.27181 -+ NORMAL_MNEMONIC(MOVNE, MOVNE1, "movne"),
1.27182 -+ NORMAL_MNEMONIC(MOVCC, MOVCC1, "movcc"),
1.27183 -+ NORMAL_MNEMONIC(MOVCS, MOVCS1, "movcs"),
1.27184 -+ NORMAL_MNEMONIC(MOVGE, MOVGE1, "movge"),
1.27185 -+ NORMAL_MNEMONIC(MOVLT, MOVLT1, "movlt"),
1.27186 -+ NORMAL_MNEMONIC(MOVMI, MOVMI1, "movmi"),
1.27187 -+ NORMAL_MNEMONIC(MOVPL, MOVPL1, "movpl"),
1.27188 -+ NORMAL_MNEMONIC(MOVLS, MOVLS1, "movls"),
1.27189 -+ NORMAL_MNEMONIC(MOVGT, MOVGT1, "movgt"),
1.27190 -+ NORMAL_MNEMONIC(MOVLE, MOVLE1, "movle"),
1.27191 -+ NORMAL_MNEMONIC(MOVHI, MOVHI1, "movhi"),
1.27192 -+ NORMAL_MNEMONIC(MOVVS, MOVVS1, "movvs"),
1.27193 -+ NORMAL_MNEMONIC(MOVVC, MOVVC1, "movvc"),
1.27194 -+ NORMAL_MNEMONIC(MOVQS, MOVQS1, "movqs"),
1.27195 -+ NORMAL_MNEMONIC(MOVAL, MOVAL1, "moval"),
1.27196 -+ NORMAL_MNEMONIC(MOVHS, MOVHS1, "movhs"),
1.27197 -+ NORMAL_MNEMONIC(MOVLO, MOVLO1, "movlo"),
1.27198 -+ NORMAL_MNEMONIC(MTDR, MTDR, "mtdr"),
1.27199 -+ NORMAL_MNEMONIC(MTSR, MTSR, "mtsr"),
1.27200 -+ NORMAL_MNEMONIC(MUL, MUL1, "mul"),
1.27201 -+ NORMAL_MNEMONIC(MULHH_W, MULHH_W, "mulhh.w"),
1.27202 -+ NORMAL_MNEMONIC(MULNHH_W, MULNHH_W, "mulnhh.w"),
1.27203 -+ NORMAL_MNEMONIC(MULNWH_D, MULNWH_D, "mulnwh.d"),
1.27204 -+ NORMAL_MNEMONIC(MULS_D, MULSD, "muls.d"),
1.27205 -+ NORMAL_MNEMONIC(MULSATHH_H, MULSATHH_H, "mulsathh.h"),
1.27206 -+ NORMAL_MNEMONIC(MULSATHH_W, MULSATHH_W, "mulsathh.w"),
1.27207 -+ NORMAL_MNEMONIC(MULSATRNDHH_H, MULSATRNDHH_H, "mulsatrndhh.h"),
1.27208 -+ NORMAL_MNEMONIC(MULSATRNDWH_W, MULSATRNDWH_W, "mulsatrndwh.w"),
1.27209 -+ NORMAL_MNEMONIC(MULSATWH_W, MULSATWH_W, "mulsatwh.w"),
1.27210 -+ NORMAL_MNEMONIC(MULU_D, MULU_D, "mulu.d"),
1.27211 -+ NORMAL_MNEMONIC(MULWH_D, MULWH_D, "mulwh.d"),
1.27212 -+ NORMAL_MNEMONIC(MUSFR, MUSFR, "musfr"),
1.27213 -+ NORMAL_MNEMONIC(MUSTR, MUSTR, "mustr"),
1.27214 -+ NORMAL_MNEMONIC(MVCR_D, MVCR_D, "mvcr.d"),
1.27215 -+ NORMAL_MNEMONIC(MVCR_W, MVCR_W, "mvcr.w"),
1.27216 -+ NORMAL_MNEMONIC(MVRC_D, MVRC_D, "mvrc.d"),
1.27217 -+ NORMAL_MNEMONIC(MVRC_W, MVRC_W, "mvrc.w"),
1.27218 -+ NORMAL_MNEMONIC(NEG, NEG, "neg"),
1.27219 -+ NORMAL_MNEMONIC(NOP, NOP, "nop"),
1.27220 -+ NORMAL_MNEMONIC(OR, OR1, "or"),
1.27221 -+ NORMAL_MNEMONIC(ORH, ORH, "orh"),
1.27222 -+ NORMAL_MNEMONIC(ORL, ORL, "orl"),
1.27223 -+ NORMAL_MNEMONIC(PABS_SB, PABS_SB, "pabs.sb"),
1.27224 -+ NORMAL_MNEMONIC(PABS_SH, PABS_SH, "pabs.sh"),
1.27225 -+ NORMAL_MNEMONIC(PACKSH_SB, PACKSH_SB, "packsh.sb"),
1.27226 -+ NORMAL_MNEMONIC(PACKSH_UB, PACKSH_UB, "packsh.ub"),
1.27227 -+ NORMAL_MNEMONIC(PACKW_SH, PACKW_SH, "packw.sh"),
1.27228 -+ NORMAL_MNEMONIC(PADD_B, PADD_B, "padd.b"),
1.27229 -+ NORMAL_MNEMONIC(PADD_H, PADD_H, "padd.h"),
1.27230 -+ NORMAL_MNEMONIC(PADDH_SH, PADDH_SH, "paddh.sh"),
1.27231 -+ NORMAL_MNEMONIC(PADDH_UB, PADDH_UB, "paddh.ub"),
1.27232 -+ NORMAL_MNEMONIC(PADDS_SB, PADDS_SB, "padds.sb"),
1.27233 -+ NORMAL_MNEMONIC(PADDS_SH, PADDS_SH, "padds.sh"),
1.27234 -+ NORMAL_MNEMONIC(PADDS_UB, PADDS_UB, "padds.ub"),
1.27235 -+ NORMAL_MNEMONIC(PADDS_UH, PADDS_UH, "padds.uh"),
1.27236 -+ NORMAL_MNEMONIC(PADDSUB_H, PADDSUB_H, "paddsub.h"),
1.27237 -+ NORMAL_MNEMONIC(PADDSUBH_SH, PADDSUBH_SH, "paddsubh.sh"),
1.27238 -+ NORMAL_MNEMONIC(PADDSUBS_SH, PADDSUBS_SH, "paddsubs.sh"),
1.27239 -+ NORMAL_MNEMONIC(PADDSUBS_UH, PADDSUBS_UH, "paddsubs.uh"),
1.27240 -+ NORMAL_MNEMONIC(PADDX_H, PADDX_H, "paddx.h"),
1.27241 -+ NORMAL_MNEMONIC(PADDXH_SH, PADDXH_SH, "paddxh.sh"),
1.27242 -+ NORMAL_MNEMONIC(PADDXS_SH, PADDXS_SH, "paddxs.sh"),
1.27243 -+ NORMAL_MNEMONIC(PADDXS_UH, PADDXS_UH, "paddxs.uh"),
1.27244 -+ NORMAL_MNEMONIC(PASR_B, PASR_B, "pasr.b"),
1.27245 -+ NORMAL_MNEMONIC(PASR_H, PASR_H, "pasr.h"),
1.27246 -+ NORMAL_MNEMONIC(PAVG_SH, PAVG_SH, "pavg.sh"),
1.27247 -+ NORMAL_MNEMONIC(PAVG_UB, PAVG_UB, "pavg.ub"),
1.27248 -+ NORMAL_MNEMONIC(PLSL_B, PLSL_B, "plsl.b"),
1.27249 -+ NORMAL_MNEMONIC(PLSL_H, PLSL_H, "plsl.h"),
1.27250 -+ NORMAL_MNEMONIC(PLSR_B, PLSR_B, "plsr.b"),
1.27251 -+ NORMAL_MNEMONIC(PLSR_H, PLSR_H, "plsr.h"),
1.27252 -+ NORMAL_MNEMONIC(PMAX_SH, PMAX_SH, "pmax.sh"),
1.27253 -+ NORMAL_MNEMONIC(PMAX_UB, PMAX_UB, "pmax.ub"),
1.27254 -+ NORMAL_MNEMONIC(PMIN_SH, PMIN_SH, "pmin.sh"),
1.27255 -+ NORMAL_MNEMONIC(PMIN_UB, PMIN_UB, "pmin.ub"),
1.27256 -+ NORMAL_MNEMONIC(POPJC, POPJC, "popjc"),
1.27257 -+ NORMAL_MNEMONIC(POPM, POPM, "popm"),
1.27258 -+ NORMAL_MNEMONIC(PREF, PREF, "pref"),
1.27259 -+ NORMAL_MNEMONIC(PSAD, PSAD, "psad"),
1.27260 -+ NORMAL_MNEMONIC(PSUB_B, PSUB_B, "psub.b"),
1.27261 -+ NORMAL_MNEMONIC(PSUB_H, PSUB_H, "psub.h"),
1.27262 -+ NORMAL_MNEMONIC(PSUBADD_H, PSUBADD_H, "psubadd.h"),
1.27263 -+ NORMAL_MNEMONIC(PSUBADDH_SH, PSUBADDH_SH, "psubaddh.sh"),
1.27264 -+ NORMAL_MNEMONIC(PSUBADDS_SH, PSUBADDS_SH, "psubadds.sh"),
1.27265 -+ NORMAL_MNEMONIC(PSUBADDS_UH, PSUBADDS_UH, "psubadds.uh"),
1.27266 -+ NORMAL_MNEMONIC(PSUBH_SH, PSUBH_SH, "psubh.sh"),
1.27267 -+ NORMAL_MNEMONIC(PSUBH_UB, PSUBH_UB, "psubh.ub"),
1.27268 -+ NORMAL_MNEMONIC(PSUBS_SB, PSUBS_SB, "psubs.sb"),
1.27269 -+ NORMAL_MNEMONIC(PSUBS_SH, PSUBS_SH, "psubs.sh"),
1.27270 -+ NORMAL_MNEMONIC(PSUBS_UB, PSUBS_UB, "psubs.ub"),
1.27271 -+ NORMAL_MNEMONIC(PSUBS_UH, PSUBS_UH, "psubs.uh"),
1.27272 -+ NORMAL_MNEMONIC(PSUBX_H, PSUBX_H, "psubx.h"),
1.27273 -+ NORMAL_MNEMONIC(PSUBXH_SH, PSUBXH_SH, "psubxh.sh"),
1.27274 -+ NORMAL_MNEMONIC(PSUBXS_SH, PSUBXS_SH, "psubxs.sh"),
1.27275 -+ NORMAL_MNEMONIC(PSUBXS_UH, PSUBXS_UH, "psubxs.uh"),
1.27276 -+ NORMAL_MNEMONIC(PUNPCKSB_H, PUNPCKSB_H, "punpcksb.h"),
1.27277 -+ NORMAL_MNEMONIC(PUNPCKUB_H, PUNPCKUB_H, "punpckub.h"),
1.27278 -+ NORMAL_MNEMONIC(PUSHJC, PUSHJC, "pushjc"),
1.27279 -+ NORMAL_MNEMONIC(PUSHM, PUSHM, "pushm"),
1.27280 -+ NORMAL_MNEMONIC(RCALL, RCALL1, "rcall"),
1.27281 -+ NORMAL_MNEMONIC(RETEQ, RETEQ, "reteq"),
1.27282 -+ NORMAL_MNEMONIC(RETNE, RETNE, "retne"),
1.27283 -+ NORMAL_MNEMONIC(RETCC, RETCC, "retcc"),
1.27284 -+ NORMAL_MNEMONIC(RETCS, RETCS, "retcs"),
1.27285 -+ NORMAL_MNEMONIC(RETGE, RETGE, "retge"),
1.27286 -+ NORMAL_MNEMONIC(RETLT, RETLT, "retlt"),
1.27287 -+ NORMAL_MNEMONIC(RETMI, RETMI, "retmi"),
1.27288 -+ NORMAL_MNEMONIC(RETPL, RETPL, "retpl"),
1.27289 -+ NORMAL_MNEMONIC(RETLS, RETLS, "retls"),
1.27290 -+ NORMAL_MNEMONIC(RETGT, RETGT, "retgt"),
1.27291 -+ NORMAL_MNEMONIC(RETLE, RETLE, "retle"),
1.27292 -+ NORMAL_MNEMONIC(RETHI, RETHI, "rethi"),
1.27293 -+ NORMAL_MNEMONIC(RETVS, RETVS, "retvs"),
1.27294 -+ NORMAL_MNEMONIC(RETVC, RETVC, "retvc"),
1.27295 -+ NORMAL_MNEMONIC(RETQS, RETQS, "retqs"),
1.27296 -+ NORMAL_MNEMONIC(RETAL, RETAL, "retal"),
1.27297 -+ NORMAL_MNEMONIC(RETHS, RETHS, "reths"),
1.27298 -+ NORMAL_MNEMONIC(RETLO, RETLO, "retlo"),
1.27299 -+ NORMAL_MNEMONIC(RET, RETAL, "ret"),
1.27300 -+ NORMAL_MNEMONIC(RETD, RETD, "retd"),
1.27301 -+ NORMAL_MNEMONIC(RETE, RETE, "rete"),
1.27302 -+ NORMAL_MNEMONIC(RETJ, RETJ, "retj"),
1.27303 -+ NORMAL_MNEMONIC(RETS, RETS, "rets"),
1.27304 -+ NORMAL_MNEMONIC(RJMP, RJMP, "rjmp"),
1.27305 -+ NORMAL_MNEMONIC(ROL, ROL, "rol"),
1.27306 -+ NORMAL_MNEMONIC(ROR, ROR, "ror"),
1.27307 -+ NORMAL_MNEMONIC(RSUB, RSUB1, "rsub"),
1.27308 -+ NORMAL_MNEMONIC(SATADD_H, SATADD_H, "satadd.h"),
1.27309 -+ NORMAL_MNEMONIC(SATADD_W, SATADD_W, "satadd.w"),
1.27310 -+ NORMAL_MNEMONIC(SATRNDS, SATRNDS, "satrnds"),
1.27311 -+ NORMAL_MNEMONIC(SATRNDU, SATRNDU, "satrndu"),
1.27312 -+ NORMAL_MNEMONIC(SATS, SATS, "sats"),
1.27313 -+ NORMAL_MNEMONIC(SATSUB_H, SATSUB_H, "satsub.h"),
1.27314 -+ NORMAL_MNEMONIC(SATSUB_W, SATSUB_W1, "satsub.w"),
1.27315 -+ NORMAL_MNEMONIC(SATU, SATU, "satu"),
1.27316 -+ NORMAL_MNEMONIC(SBC, SBC, "sbc"),
1.27317 -+ NORMAL_MNEMONIC(SBR, SBR, "sbr"),
1.27318 -+ NORMAL_MNEMONIC(SCALL, SCALL, "scall"),
1.27319 -+ NORMAL_MNEMONIC(SCR, SCR, "scr"),
1.27320 -+ NORMAL_MNEMONIC(SLEEP, SLEEP, "sleep"),
1.27321 -+ NORMAL_MNEMONIC(SREQ, SREQ, "sreq"),
1.27322 -+ NORMAL_MNEMONIC(SRNE, SRNE, "srne"),
1.27323 -+ NORMAL_MNEMONIC(SRCC, SRCC, "srcc"),
1.27324 -+ NORMAL_MNEMONIC(SRCS, SRCS, "srcs"),
1.27325 -+ NORMAL_MNEMONIC(SRGE, SRGE, "srge"),
1.27326 -+ NORMAL_MNEMONIC(SRLT, SRLT, "srlt"),
1.27327 -+ NORMAL_MNEMONIC(SRMI, SRMI, "srmi"),
1.27328 -+ NORMAL_MNEMONIC(SRPL, SRPL, "srpl"),
1.27329 -+ NORMAL_MNEMONIC(SRLS, SRLS, "srls"),
1.27330 -+ NORMAL_MNEMONIC(SRGT, SRGT, "srgt"),
1.27331 -+ NORMAL_MNEMONIC(SRLE, SRLE, "srle"),
1.27332 -+ NORMAL_MNEMONIC(SRHI, SRHI, "srhi"),
1.27333 -+ NORMAL_MNEMONIC(SRVS, SRVS, "srvs"),
1.27334 -+ NORMAL_MNEMONIC(SRVC, SRVC, "srvc"),
1.27335 -+ NORMAL_MNEMONIC(SRQS, SRQS, "srqs"),
1.27336 -+ NORMAL_MNEMONIC(SRAL, SRAL, "sral"),
1.27337 -+ NORMAL_MNEMONIC(SRHS, SRHS, "srhs"),
1.27338 -+ NORMAL_MNEMONIC(SRLO, SRLO, "srlo"),
1.27339 -+ NORMAL_MNEMONIC(SSRF, SSRF, "ssrf"),
1.27340 -+ NORMAL_MNEMONIC(ST_B, ST_B1, "st.b"),
1.27341 -+ NORMAL_MNEMONIC(ST_D, ST_D1, "st.d"),
1.27342 -+ NORMAL_MNEMONIC(ST_H, ST_H1, "st.h"),
1.27343 -+ NORMAL_MNEMONIC(ST_W, ST_W1, "st.w"),
1.27344 -+ NORMAL_MNEMONIC(STC_D, STC_D3, "stc.d"),
1.27345 -+ NORMAL_MNEMONIC(STC_W, STC_W3, "stc.w"),
1.27346 -+ NORMAL_MNEMONIC(STC0_D, STC0_D, "stc0.d"),
1.27347 -+ NORMAL_MNEMONIC(STC0_W, STC0_W, "stc0.w"),
1.27348 -+ NORMAL_MNEMONIC(STCM_D, STCM_D, "stcm.d"),
1.27349 -+ NORMAL_MNEMONIC(STCM_W, STCM_W, "stcm.w"),
1.27350 -+ NORMAL_MNEMONIC(STCOND, STCOND, "stcond"),
1.27351 -+ NORMAL_MNEMONIC(STDSP, STDSP, "stdsp"),
1.27352 -+ NORMAL_MNEMONIC(STHH_W, STHH_W2, "sthh.w"),
1.27353 -+ NORMAL_MNEMONIC(STM, STM, "stm"),
1.27354 -+ NORMAL_MNEMONIC(STMTS, STMTS, "stmts"),
1.27355 -+ NORMAL_MNEMONIC(STSWP_H, STSWP_H, "stswp.h"),
1.27356 -+ NORMAL_MNEMONIC(STSWP_W, STSWP_W, "stswp.w"),
1.27357 -+ NORMAL_MNEMONIC(SUB, SUB1, "sub"),
1.27358 -+ NORMAL_MNEMONIC(SUBEQ, SUBEQ, "subeq"),
1.27359 -+ NORMAL_MNEMONIC(SUBNE, SUBNE, "subne"),
1.27360 -+ NORMAL_MNEMONIC(SUBCC, SUBCC, "subcc"),
1.27361 -+ NORMAL_MNEMONIC(SUBCS, SUBCS, "subcs"),
1.27362 -+ NORMAL_MNEMONIC(SUBGE, SUBGE, "subge"),
1.27363 -+ NORMAL_MNEMONIC(SUBLT, SUBLT, "sublt"),
1.27364 -+ NORMAL_MNEMONIC(SUBMI, SUBMI, "submi"),
1.27365 -+ NORMAL_MNEMONIC(SUBPL, SUBPL, "subpl"),
1.27366 -+ NORMAL_MNEMONIC(SUBLS, SUBLS, "subls"),
1.27367 -+ NORMAL_MNEMONIC(SUBGT, SUBGT, "subgt"),
1.27368 -+ NORMAL_MNEMONIC(SUBLE, SUBLE, "suble"),
1.27369 -+ NORMAL_MNEMONIC(SUBHI, SUBHI, "subhi"),
1.27370 -+ NORMAL_MNEMONIC(SUBVS, SUBVS, "subvs"),
1.27371 -+ NORMAL_MNEMONIC(SUBVC, SUBVC, "subvc"),
1.27372 -+ NORMAL_MNEMONIC(SUBQS, SUBQS, "subqs"),
1.27373 -+ NORMAL_MNEMONIC(SUBAL, SUBAL, "subal"),
1.27374 -+ NORMAL_MNEMONIC(SUBHS, SUBHS, "subhs"),
1.27375 -+ NORMAL_MNEMONIC(SUBLO, SUBLO, "sublo"),
1.27376 -+ NORMAL_MNEMONIC(SUBFEQ, SUBFEQ, "subfeq"),
1.27377 -+ NORMAL_MNEMONIC(SUBFNE, SUBFNE, "subfne"),
1.27378 -+ NORMAL_MNEMONIC(SUBFCC, SUBFCC, "subfcc"),
1.27379 -+ NORMAL_MNEMONIC(SUBFCS, SUBFCS, "subfcs"),
1.27380 -+ NORMAL_MNEMONIC(SUBFGE, SUBFGE, "subfge"),
1.27381 -+ NORMAL_MNEMONIC(SUBFLT, SUBFLT, "subflt"),
1.27382 -+ NORMAL_MNEMONIC(SUBFMI, SUBFMI, "subfmi"),
1.27383 -+ NORMAL_MNEMONIC(SUBFPL, SUBFPL, "subfpl"),
1.27384 -+ NORMAL_MNEMONIC(SUBFLS, SUBFLS, "subfls"),
1.27385 -+ NORMAL_MNEMONIC(SUBFGT, SUBFGT, "subfgt"),
1.27386 -+ NORMAL_MNEMONIC(SUBFLE, SUBFLE, "subfle"),
1.27387 -+ NORMAL_MNEMONIC(SUBFHI, SUBFHI, "subfhi"),
1.27388 -+ NORMAL_MNEMONIC(SUBFVS, SUBFVS, "subfvs"),
1.27389 -+ NORMAL_MNEMONIC(SUBFVC, SUBFVC, "subfvc"),
1.27390 -+ NORMAL_MNEMONIC(SUBFQS, SUBFQS, "subfqs"),
1.27391 -+ NORMAL_MNEMONIC(SUBFAL, SUBFAL, "subfal"),
1.27392 -+ NORMAL_MNEMONIC(SUBFHS, SUBFHS, "subfhs"),
1.27393 -+ NORMAL_MNEMONIC(SUBFLO, SUBFLO, "subflo"),
1.27394 -+ NORMAL_MNEMONIC(SUBHH_W, SUBHH_W, "subhh.w"),
1.27395 -+ NORMAL_MNEMONIC(SWAP_B, SWAP_B, "swap.b"),
1.27396 -+ NORMAL_MNEMONIC(SWAP_BH, SWAP_BH, "swap.bh"),
1.27397 -+ NORMAL_MNEMONIC(SWAP_H, SWAP_H, "swap.h"),
1.27398 -+ NORMAL_MNEMONIC(SYNC, SYNC, "sync"),
1.27399 -+ NORMAL_MNEMONIC(TLBR, TLBR, "tlbr"),
1.27400 -+ NORMAL_MNEMONIC(TLBS, TLBS, "tlbs"),
1.27401 -+ NORMAL_MNEMONIC(TLBW, TLBW, "tlbw"),
1.27402 -+ NORMAL_MNEMONIC(TNBZ, TNBZ, "tnbz"),
1.27403 -+ NORMAL_MNEMONIC(TST, TST, "tst"),
1.27404 -+ NORMAL_MNEMONIC(XCHG, XCHG, "xchg"),
1.27405 -+ NORMAL_MNEMONIC(MEMC, MEMC, "memc"),
1.27406 -+ NORMAL_MNEMONIC(MEMS, MEMS, "mems"),
1.27407 -+ NORMAL_MNEMONIC(MEMT, MEMT, "memt"),
1.27408 -+ FP_MNEMONIC(FADD, FADD, "fadd"),
1.27409 -+ FP_MNEMONIC(FSUB, FSUB, "fsub"),
1.27410 -+ FP_MNEMONIC(FMAC, FMAC, "fmac"),
1.27411 -+ FP_MNEMONIC(FNMAC, FNMAC, "fnmac"),
1.27412 -+ FP_MNEMONIC(FMSC, FMSC, "fmsc"),
1.27413 -+ FP_MNEMONIC(FNMSC, FNMSC, "fnmsc"),
1.27414 -+ FP_MNEMONIC(FMUL, FMUL, "fmul"),
1.27415 -+ FP_MNEMONIC(FNMUL, FNMUL, "fnmul"),
1.27416 -+ FP_MNEMONIC(FNEG, FNEG, "fneg"),
1.27417 -+ FP_MNEMONIC(FABS, FABS, "fabs"),
1.27418 -+ FP_MNEMONIC(FCMP, FCMP, "fcmp"),
1.27419 -+ FP_MNEMONIC(FMOV, FMOV1, "fmov"),
1.27420 -+ NORMAL_MNEMONIC(FCASTS_D, FCASTS_D, "fcasts.d"),
1.27421 -+ NORMAL_MNEMONIC(FCASTD_S, FCASTD_S, "fcastd.s"),
1.27422 -+ NORMAL_MNEMONIC(LDA_W, LDA_W, "lda.w"),
1.27423 -+ NORMAL_MNEMONIC(CALL, CALL, "call"),
1.27424 -+ NORMAL_MNEMONIC(PICOSVMAC, PICOSVMAC0, "picosvmac"),
1.27425 -+ NORMAL_MNEMONIC(PICOSVMUL, PICOSVMUL0, "picosvmul"),
1.27426 -+ NORMAL_MNEMONIC(PICOVMAC, PICOVMAC0, "picovmac"),
1.27427 -+ NORMAL_MNEMONIC(PICOVMUL, PICOVMUL0, "picovmul"),
1.27428 -+ NORMAL_MNEMONIC(PICOLD_D, PICOLD_D2, "picold.d"),
1.27429 -+ NORMAL_MNEMONIC(PICOLD_W, PICOLD_W2, "picold.w"),
1.27430 -+ NORMAL_MNEMONIC(PICOLDM_D, PICOLDM_D, "picoldm.d"),
1.27431 -+ NORMAL_MNEMONIC(PICOLDM_W, PICOLDM_W, "picoldm.w"),
1.27432 -+ NORMAL_MNEMONIC(PICOMV_D, PICOMV_D1, "picomv.d"),
1.27433 -+ NORMAL_MNEMONIC(PICOMV_W, PICOMV_W1, "picomv.w"),
1.27434 -+ NORMAL_MNEMONIC(PICOST_D, PICOST_D2, "picost.d"),
1.27435 -+ NORMAL_MNEMONIC(PICOST_W, PICOST_W2, "picost.w"),
1.27436 -+ NORMAL_MNEMONIC(PICOSTM_D, PICOSTM_D, "picostm.d"),
1.27437 -+ NORMAL_MNEMONIC(PICOSTM_W, PICOSTM_W, "picostm.w"),
1.27438 -+ NORMAL_MNEMONIC(RSUBEQ, RSUBEQ, "rsubeq"),
1.27439 -+ NORMAL_MNEMONIC(RSUBNE, RSUBNE, "rsubne"),
1.27440 -+ NORMAL_MNEMONIC(RSUBCC, RSUBCC, "rsubcc"),
1.27441 -+ NORMAL_MNEMONIC(RSUBCS, RSUBCS, "rsubcs"),
1.27442 -+ NORMAL_MNEMONIC(RSUBGE, RSUBGE, "rsubge"),
1.27443 -+ NORMAL_MNEMONIC(RSUBLT, RSUBLT, "rsublt"),
1.27444 -+ NORMAL_MNEMONIC(RSUBMI, RSUBMI, "rsubmi"),
1.27445 -+ NORMAL_MNEMONIC(RSUBPL, RSUBPL, "rsubpl"),
1.27446 -+ NORMAL_MNEMONIC(RSUBLS, RSUBLS, "rsubls"),
1.27447 -+ NORMAL_MNEMONIC(RSUBGT, RSUBGT, "rsubgt"),
1.27448 -+ NORMAL_MNEMONIC(RSUBLE, RSUBLE, "rsuble"),
1.27449 -+ NORMAL_MNEMONIC(RSUBHI, RSUBHI, "rsubhi"),
1.27450 -+ NORMAL_MNEMONIC(RSUBVS, RSUBVS, "rsubvs"),
1.27451 -+ NORMAL_MNEMONIC(RSUBVC, RSUBVC, "rsubvc"),
1.27452 -+ NORMAL_MNEMONIC(RSUBQS, RSUBQS, "rsubqs"),
1.27453 -+ NORMAL_MNEMONIC(RSUBAL, RSUBAL, "rsubal"),
1.27454 -+ NORMAL_MNEMONIC(RSUBHS, RSUBHS, "rsubhs"),
1.27455 -+ NORMAL_MNEMONIC(RSUBLO, RSUBLO, "rsublo"),
1.27456 -+ NORMAL_MNEMONIC(ADDEQ, ADDEQ, "addeq"),
1.27457 -+ NORMAL_MNEMONIC(ADDNE, ADDNE, "addne"),
1.27458 -+ NORMAL_MNEMONIC(ADDCC, ADDCC, "addcc"),
1.27459 -+ NORMAL_MNEMONIC(ADDCS, ADDCS, "addcs"),
1.27460 -+ NORMAL_MNEMONIC(ADDGE, ADDGE, "addge"),
1.27461 -+ NORMAL_MNEMONIC(ADDLT, ADDLT, "addlt"),
1.27462 -+ NORMAL_MNEMONIC(ADDMI, ADDMI, "addmi"),
1.27463 -+ NORMAL_MNEMONIC(ADDPL, ADDPL, "addpl"),
1.27464 -+ NORMAL_MNEMONIC(ADDLS, ADDLS, "addls"),
1.27465 -+ NORMAL_MNEMONIC(ADDGT, ADDGT, "addgt"),
1.27466 -+ NORMAL_MNEMONIC(ADDLE, ADDLE, "addle"),
1.27467 -+ NORMAL_MNEMONIC(ADDHI, ADDHI, "addhi"),
1.27468 -+ NORMAL_MNEMONIC(ADDVS, ADDVS, "addvs"),
1.27469 -+ NORMAL_MNEMONIC(ADDVC, ADDVC, "addvc"),
1.27470 -+ NORMAL_MNEMONIC(ADDQS, ADDQS, "addqs"),
1.27471 -+ NORMAL_MNEMONIC(ADDAL, ADDAL, "addal"),
1.27472 -+ NORMAL_MNEMONIC(ADDHS, ADDHS, "addhs"),
1.27473 -+ NORMAL_MNEMONIC(ADDLO, ADDLO, "addlo"),
1.27474 -+ NORMAL_MNEMONIC(ANDEQ, ANDEQ, "andeq"),
1.27475 -+ NORMAL_MNEMONIC(ANDNE, ANDNE, "andne"),
1.27476 -+ NORMAL_MNEMONIC(ANDCC, ANDCC, "andcc"),
1.27477 -+ NORMAL_MNEMONIC(ANDCS, ANDCS, "andcs"),
1.27478 -+ NORMAL_MNEMONIC(ANDGE, ANDGE, "andge"),
1.27479 -+ NORMAL_MNEMONIC(ANDLT, ANDLT, "andlt"),
1.27480 -+ NORMAL_MNEMONIC(ANDMI, ANDMI, "andmi"),
1.27481 -+ NORMAL_MNEMONIC(ANDPL, ANDPL, "andpl"),
1.27482 -+ NORMAL_MNEMONIC(ANDLS, ANDLS, "andls"),
1.27483 -+ NORMAL_MNEMONIC(ANDGT, ANDGT, "andgt"),
1.27484 -+ NORMAL_MNEMONIC(ANDLE, ANDLE, "andle"),
1.27485 -+ NORMAL_MNEMONIC(ANDHI, ANDHI, "andhi"),
1.27486 -+ NORMAL_MNEMONIC(ANDVS, ANDVS, "andvs"),
1.27487 -+ NORMAL_MNEMONIC(ANDVC, ANDVC, "andvc"),
1.27488 -+ NORMAL_MNEMONIC(ANDQS, ANDQS, "andqs"),
1.27489 -+ NORMAL_MNEMONIC(ANDAL, ANDAL, "andal"),
1.27490 -+ NORMAL_MNEMONIC(ANDHS, ANDHS, "andhs"),
1.27491 -+ NORMAL_MNEMONIC(ANDLO, ANDLO, "andlo"),
1.27492 -+ NORMAL_MNEMONIC(OREQ, OREQ, "oreq"),
1.27493 -+ NORMAL_MNEMONIC(ORNE, ORNE, "orne"),
1.27494 -+ NORMAL_MNEMONIC(ORCC, ORCC, "orcc"),
1.27495 -+ NORMAL_MNEMONIC(ORCS, ORCS, "orcs"),
1.27496 -+ NORMAL_MNEMONIC(ORGE, ORGE, "orge"),
1.27497 -+ NORMAL_MNEMONIC(ORLT, ORLT, "orlt"),
1.27498 -+ NORMAL_MNEMONIC(ORMI, ORMI, "ormi"),
1.27499 -+ NORMAL_MNEMONIC(ORPL, ORPL, "orpl"),
1.27500 -+ NORMAL_MNEMONIC(ORLS, ORLS, "orls"),
1.27501 -+ NORMAL_MNEMONIC(ORGT, ORGT, "orgt"),
1.27502 -+ NORMAL_MNEMONIC(ORLE, ORLE, "orle"),
1.27503 -+ NORMAL_MNEMONIC(ORHI, ORHI, "orhi"),
1.27504 -+ NORMAL_MNEMONIC(ORVS, ORVS, "orvs"),
1.27505 -+ NORMAL_MNEMONIC(ORVC, ORVC, "orvc"),
1.27506 -+ NORMAL_MNEMONIC(ORQS, ORQS, "orqs"),
1.27507 -+ NORMAL_MNEMONIC(ORAL, ORAL, "oral"),
1.27508 -+ NORMAL_MNEMONIC(ORHS, ORHS, "orhs"),
1.27509 -+ NORMAL_MNEMONIC(ORLO, ORLO, "orlo"),
1.27510 -+ NORMAL_MNEMONIC(EOREQ, EOREQ, "eoreq"),
1.27511 -+ NORMAL_MNEMONIC(EORNE, EORNE, "eorne"),
1.27512 -+ NORMAL_MNEMONIC(EORCC, EORCC, "eorcc"),
1.27513 -+ NORMAL_MNEMONIC(EORCS, EORCS, "eorcs"),
1.27514 -+ NORMAL_MNEMONIC(EORGE, EORGE, "eorge"),
1.27515 -+ NORMAL_MNEMONIC(EORLT, EORLT, "eorlt"),
1.27516 -+ NORMAL_MNEMONIC(EORMI, EORMI, "eormi"),
1.27517 -+ NORMAL_MNEMONIC(EORPL, EORPL, "eorpl"),
1.27518 -+ NORMAL_MNEMONIC(EORLS, EORLS, "eorls"),
1.27519 -+ NORMAL_MNEMONIC(EORGT, EORGT, "eorgt"),
1.27520 -+ NORMAL_MNEMONIC(EORLE, EORLE, "eorle"),
1.27521 -+ NORMAL_MNEMONIC(EORHI, EORHI, "eorhi"),
1.27522 -+ NORMAL_MNEMONIC(EORVS, EORVS, "eorvs"),
1.27523 -+ NORMAL_MNEMONIC(EORVC, EORVC, "eorvc"),
1.27524 -+ NORMAL_MNEMONIC(EORQS, EORQS, "eorqs"),
1.27525 -+ NORMAL_MNEMONIC(EORAL, EORAL, "eoral"),
1.27526 -+ NORMAL_MNEMONIC(EORHS, EORHS, "eorhs"),
1.27527 -+ NORMAL_MNEMONIC(EORLO, EORLO, "eorlo"),
1.27528 -+ NORMAL_MNEMONIC(LD_WEQ, LD_WEQ, "ld.weq"),
1.27529 -+ NORMAL_MNEMONIC(LD_WNE, LD_WNE, "ld.wne"),
1.27530 -+ NORMAL_MNEMONIC(LD_WCC, LD_WCC, "ld.wcc"),
1.27531 -+ NORMAL_MNEMONIC(LD_WCS, LD_WCS, "ld.wcs"),
1.27532 -+ NORMAL_MNEMONIC(LD_WGE, LD_WGE, "ld.wge"),
1.27533 -+ NORMAL_MNEMONIC(LD_WLT, LD_WLT, "ld.wlt"),
1.27534 -+ NORMAL_MNEMONIC(LD_WMI, LD_WMI, "ld.wmi"),
1.27535 -+ NORMAL_MNEMONIC(LD_WPL, LD_WPL, "ld.wpl"),
1.27536 -+ NORMAL_MNEMONIC(LD_WLS, LD_WLS, "ld.wls"),
1.27537 -+ NORMAL_MNEMONIC(LD_WGT, LD_WGT, "ld.wgt"),
1.27538 -+ NORMAL_MNEMONIC(LD_WLE, LD_WLE, "ld.wle"),
1.27539 -+ NORMAL_MNEMONIC(LD_WHI, LD_WHI, "ld.whi"),
1.27540 -+ NORMAL_MNEMONIC(LD_WVS, LD_WVS, "ld.wvs"),
1.27541 -+ NORMAL_MNEMONIC(LD_WVC, LD_WVC, "ld.wvc"),
1.27542 -+ NORMAL_MNEMONIC(LD_WQS, LD_WQS, "ld.wqs"),
1.27543 -+ NORMAL_MNEMONIC(LD_WAL, LD_WAL, "ld.wal"),
1.27544 -+ NORMAL_MNEMONIC(LD_WHS, LD_WHS, "ld.whs"),
1.27545 -+ NORMAL_MNEMONIC(LD_WLO, LD_WLO, "ld.wlo"),
1.27546 -+ NORMAL_MNEMONIC(LD_SHEQ, LD_SHEQ, "ld.sheq"),
1.27547 -+ NORMAL_MNEMONIC(LD_SHNE, LD_SHNE, "ld.shne"),
1.27548 -+ NORMAL_MNEMONIC(LD_SHCC, LD_SHCC, "ld.shcc"),
1.27549 -+ NORMAL_MNEMONIC(LD_SHCS, LD_SHCS, "ld.shcs"),
1.27550 -+ NORMAL_MNEMONIC(LD_SHGE, LD_SHGE, "ld.shge"),
1.27551 -+ NORMAL_MNEMONIC(LD_SHLT, LD_SHLT, "ld.shlt"),
1.27552 -+ NORMAL_MNEMONIC(LD_SHMI, LD_SHMI, "ld.shmi"),
1.27553 -+ NORMAL_MNEMONIC(LD_SHPL, LD_SHPL, "ld.shpl"),
1.27554 -+ NORMAL_MNEMONIC(LD_SHLS, LD_SHLS, "ld.shls"),
1.27555 -+ NORMAL_MNEMONIC(LD_SHGT, LD_SHGT, "ld.shgt"),
1.27556 -+ NORMAL_MNEMONIC(LD_SHLE, LD_SHLE, "ld.shle"),
1.27557 -+ NORMAL_MNEMONIC(LD_SHHI, LD_SHHI, "ld.shhi"),
1.27558 -+ NORMAL_MNEMONIC(LD_SHVS, LD_SHVS, "ld.shvs"),
1.27559 -+ NORMAL_MNEMONIC(LD_SHVC, LD_SHVC, "ld.shvc"),
1.27560 -+ NORMAL_MNEMONIC(LD_SHQS, LD_SHQS, "ld.shqs"),
1.27561 -+ NORMAL_MNEMONIC(LD_SHAL, LD_SHAL, "ld.shal"),
1.27562 -+ NORMAL_MNEMONIC(LD_SHHS, LD_SHHS, "ld.shhs"),
1.27563 -+ NORMAL_MNEMONIC(LD_SHLO, LD_SHLO, "ld.shlo"),
1.27564 -+ NORMAL_MNEMONIC(LD_UHEQ, LD_UHEQ, "ld.uheq"),
1.27565 -+ NORMAL_MNEMONIC(LD_UHNE, LD_UHNE, "ld.uhne"),
1.27566 -+ NORMAL_MNEMONIC(LD_UHCC, LD_UHCC, "ld.uhcc"),
1.27567 -+ NORMAL_MNEMONIC(LD_UHCS, LD_UHCS, "ld.uhcs"),
1.27568 -+ NORMAL_MNEMONIC(LD_UHGE, LD_UHGE, "ld.uhge"),
1.27569 -+ NORMAL_MNEMONIC(LD_UHLT, LD_UHLT, "ld.uhlt"),
1.27570 -+ NORMAL_MNEMONIC(LD_UHMI, LD_UHMI, "ld.uhmi"),
1.27571 -+ NORMAL_MNEMONIC(LD_UHPL, LD_UHPL, "ld.uhpl"),
1.27572 -+ NORMAL_MNEMONIC(LD_UHLS, LD_UHLS, "ld.uhls"),
1.27573 -+ NORMAL_MNEMONIC(LD_UHGT, LD_UHGT, "ld.uhgt"),
1.27574 -+ NORMAL_MNEMONIC(LD_UHLE, LD_UHLE, "ld.uhle"),
1.27575 -+ NORMAL_MNEMONIC(LD_UHHI, LD_UHHI, "ld.uhhi"),
1.27576 -+ NORMAL_MNEMONIC(LD_UHVS, LD_UHVS, "ld.uhvs"),
1.27577 -+ NORMAL_MNEMONIC(LD_UHVC, LD_UHVC, "ld.uhvc"),
1.27578 -+ NORMAL_MNEMONIC(LD_UHQS, LD_UHQS, "ld.uhqs"),
1.27579 -+ NORMAL_MNEMONIC(LD_UHAL, LD_UHAL, "ld.uhal"),
1.27580 -+ NORMAL_MNEMONIC(LD_UHHS, LD_UHHS, "ld.uhhs"),
1.27581 -+ NORMAL_MNEMONIC(LD_UHLO, LD_UHLO, "ld.uhlo"),
1.27582 -+ NORMAL_MNEMONIC(LD_SBEQ, LD_SBEQ, "ld.sbeq"),
1.27583 -+ NORMAL_MNEMONIC(LD_SBNE, LD_SBNE, "ld.sbne"),
1.27584 -+ NORMAL_MNEMONIC(LD_SBCC, LD_SBCC, "ld.sbcc"),
1.27585 -+ NORMAL_MNEMONIC(LD_SBCS, LD_SBCS, "ld.sbcs"),
1.27586 -+ NORMAL_MNEMONIC(LD_SBGE, LD_SBGE, "ld.sbge"),
1.27587 -+ NORMAL_MNEMONIC(LD_SBLT, LD_SBLT, "ld.sblt"),
1.27588 -+ NORMAL_MNEMONIC(LD_SBMI, LD_SBMI, "ld.sbmi"),
1.27589 -+ NORMAL_MNEMONIC(LD_SBPL, LD_SBPL, "ld.sbpl"),
1.27590 -+ NORMAL_MNEMONIC(LD_SBLS, LD_SBLS, "ld.sbls"),
1.27591 -+ NORMAL_MNEMONIC(LD_SBGT, LD_SBGT, "ld.sbgt"),
1.27592 -+ NORMAL_MNEMONIC(LD_SBLE, LD_SBLE, "ld.sble"),
1.27593 -+ NORMAL_MNEMONIC(LD_SBHI, LD_SBHI, "ld.sbhi"),
1.27594 -+ NORMAL_MNEMONIC(LD_SBVS, LD_SBVS, "ld.sbvs"),
1.27595 -+ NORMAL_MNEMONIC(LD_SBVC, LD_SBVC, "ld.sbvc"),
1.27596 -+ NORMAL_MNEMONIC(LD_SBQS, LD_SBQS, "ld.sbqs"),
1.27597 -+ NORMAL_MNEMONIC(LD_SBAL, LD_SBAL, "ld.sbal"),
1.27598 -+ NORMAL_MNEMONIC(LD_SBHS, LD_SBHS, "ld.sbhs"),
1.27599 -+ NORMAL_MNEMONIC(LD_SBLO, LD_SBLO, "ld.sblo"),
1.27600 -+ NORMAL_MNEMONIC(LD_UBEQ, LD_UBEQ, "ld.ubeq"),
1.27601 -+ NORMAL_MNEMONIC(LD_UBNE, LD_UBNE, "ld.ubne"),
1.27602 -+ NORMAL_MNEMONIC(LD_UBCC, LD_UBCC, "ld.ubcc"),
1.27603 -+ NORMAL_MNEMONIC(LD_UBCS, LD_UBCS, "ld.ubcs"),
1.27604 -+ NORMAL_MNEMONIC(LD_UBGE, LD_UBGE, "ld.ubge"),
1.27605 -+ NORMAL_MNEMONIC(LD_UBLT, LD_UBLT, "ld.ublt"),
1.27606 -+ NORMAL_MNEMONIC(LD_UBMI, LD_UBMI, "ld.ubmi"),
1.27607 -+ NORMAL_MNEMONIC(LD_UBPL, LD_UBPL, "ld.ubpl"),
1.27608 -+ NORMAL_MNEMONIC(LD_UBLS, LD_UBLS, "ld.ubls"),
1.27609 -+ NORMAL_MNEMONIC(LD_UBGT, LD_UBGT, "ld.ubgt"),
1.27610 -+ NORMAL_MNEMONIC(LD_UBLE, LD_UBLE, "ld.uble"),
1.27611 -+ NORMAL_MNEMONIC(LD_UBHI, LD_UBHI, "ld.ubhi"),
1.27612 -+ NORMAL_MNEMONIC(LD_UBVS, LD_UBVS, "ld.ubvs"),
1.27613 -+ NORMAL_MNEMONIC(LD_UBVC, LD_UBVC, "ld.ubvc"),
1.27614 -+ NORMAL_MNEMONIC(LD_UBQS, LD_UBQS, "ld.ubqs"),
1.27615 -+ NORMAL_MNEMONIC(LD_UBAL, LD_UBAL, "ld.ubal"),
1.27616 -+ NORMAL_MNEMONIC(LD_UBHS, LD_UBHS, "ld.ubhs"),
1.27617 -+ NORMAL_MNEMONIC(LD_UBLO, LD_UBLO, "ld.ublo"),
1.27618 -+ NORMAL_MNEMONIC(ST_WEQ, ST_WEQ, "st.weq"),
1.27619 -+ NORMAL_MNEMONIC(ST_WNE, ST_WNE, "st.wne"),
1.27620 -+ NORMAL_MNEMONIC(ST_WCC, ST_WCC, "st.wcc"),
1.27621 -+ NORMAL_MNEMONIC(ST_WCS, ST_WCS, "st.wcs"),
1.27622 -+ NORMAL_MNEMONIC(ST_WGE, ST_WGE, "st.wge"),
1.27623 -+ NORMAL_MNEMONIC(ST_WLT, ST_WLT, "st.wlt"),
1.27624 -+ NORMAL_MNEMONIC(ST_WMI, ST_WMI, "st.wmi"),
1.27625 -+ NORMAL_MNEMONIC(ST_WPL, ST_WPL, "st.wpl"),
1.27626 -+ NORMAL_MNEMONIC(ST_WLS, ST_WLS, "st.wls"),
1.27627 -+ NORMAL_MNEMONIC(ST_WGT, ST_WGT, "st.wgt"),
1.27628 -+ NORMAL_MNEMONIC(ST_WLE, ST_WLE, "st.wle"),
1.27629 -+ NORMAL_MNEMONIC(ST_WHI, ST_WHI, "st.whi"),
1.27630 -+ NORMAL_MNEMONIC(ST_WVS, ST_WVS, "st.wvs"),
1.27631 -+ NORMAL_MNEMONIC(ST_WVC, ST_WVC, "st.wvc"),
1.27632 -+ NORMAL_MNEMONIC(ST_WQS, ST_WQS, "st.wqs"),
1.27633 -+ NORMAL_MNEMONIC(ST_WAL, ST_WAL, "st.wal"),
1.27634 -+ NORMAL_MNEMONIC(ST_WHS, ST_WHS, "st.whs"),
1.27635 -+ NORMAL_MNEMONIC(ST_WLO, ST_WLO, "st.wlo"),
1.27636 -+ NORMAL_MNEMONIC(ST_HEQ, ST_HEQ, "st.heq"),
1.27637 -+ NORMAL_MNEMONIC(ST_HNE, ST_HNE, "st.hne"),
1.27638 -+ NORMAL_MNEMONIC(ST_HCC, ST_HCC, "st.hcc"),
1.27639 -+ NORMAL_MNEMONIC(ST_HCS, ST_HCS, "st.hcs"),
1.27640 -+ NORMAL_MNEMONIC(ST_HGE, ST_HGE, "st.hge"),
1.27641 -+ NORMAL_MNEMONIC(ST_HLT, ST_HLT, "st.hlt"),
1.27642 -+ NORMAL_MNEMONIC(ST_HMI, ST_HMI, "st.hmi"),
1.27643 -+ NORMAL_MNEMONIC(ST_HPL, ST_HPL, "st.hpl"),
1.27644 -+ NORMAL_MNEMONIC(ST_HLS, ST_HLS, "st.hls"),
1.27645 -+ NORMAL_MNEMONIC(ST_HGT, ST_HGT, "st.hgt"),
1.27646 -+ NORMAL_MNEMONIC(ST_HLE, ST_HLE, "st.hle"),
1.27647 -+ NORMAL_MNEMONIC(ST_HHI, ST_HHI, "st.hhi"),
1.27648 -+ NORMAL_MNEMONIC(ST_HVS, ST_HVS, "st.hvs"),
1.27649 -+ NORMAL_MNEMONIC(ST_HVC, ST_HVC, "st.hvc"),
1.27650 -+ NORMAL_MNEMONIC(ST_HQS, ST_HQS, "st.hqs"),
1.27651 -+ NORMAL_MNEMONIC(ST_HAL, ST_HAL, "st.hal"),
1.27652 -+ NORMAL_MNEMONIC(ST_HHS, ST_HHS, "st.hhs"),
1.27653 -+ NORMAL_MNEMONIC(ST_HLO, ST_HLO, "st.hlo"),
1.27654 -+ NORMAL_MNEMONIC(ST_BEQ, ST_BEQ, "st.beq"),
1.27655 -+ NORMAL_MNEMONIC(ST_BNE, ST_BNE, "st.bne"),
1.27656 -+ NORMAL_MNEMONIC(ST_BCC, ST_BCC, "st.bcc"),
1.27657 -+ NORMAL_MNEMONIC(ST_BCS, ST_BCS, "st.bcs"),
1.27658 -+ NORMAL_MNEMONIC(ST_BGE, ST_BGE, "st.bge"),
1.27659 -+ NORMAL_MNEMONIC(ST_BLT, ST_BLT, "st.blt"),
1.27660 -+ NORMAL_MNEMONIC(ST_BMI, ST_BMI, "st.bmi"),
1.27661 -+ NORMAL_MNEMONIC(ST_BPL, ST_BPL, "st.bpl"),
1.27662 -+ NORMAL_MNEMONIC(ST_BLS, ST_BLS, "st.bls"),
1.27663 -+ NORMAL_MNEMONIC(ST_BGT, ST_BGT, "st.bgt"),
1.27664 -+ NORMAL_MNEMONIC(ST_BLE, ST_BLE, "st.ble"),
1.27665 -+ NORMAL_MNEMONIC(ST_BHI, ST_BHI, "st.bhi"),
1.27666 -+ NORMAL_MNEMONIC(ST_BVS, ST_BVS, "st.bvs"),
1.27667 -+ NORMAL_MNEMONIC(ST_BVC, ST_BVC, "st.bvc"),
1.27668 -+ NORMAL_MNEMONIC(ST_BQS, ST_BQS, "st.bqs"),
1.27669 -+ NORMAL_MNEMONIC(ST_BAL, ST_BAL, "st.bal"),
1.27670 -+ NORMAL_MNEMONIC(ST_BHS, ST_BHS, "st.bhs"),
1.27671 -+ NORMAL_MNEMONIC(ST_BLO, ST_BLO, "st.blo"),
1.27672 -+ NORMAL_MNEMONIC(MOVH, MOVH, "movh"),
1.27673 -+
1.27674 -+ };
1.27675 -+#undef NORMAL_MNEMONIC
1.27676 -+#undef ALIAS_MNEMONIC
1.27677 -+#undef FP_MNEMONIC
1.27678 ---- /dev/null
1.27679 -+++ b/opcodes/avr32-opc.h
1.27680 -@@ -0,0 +1,2370 @@
1.27681 -+/* Opcode tables for AVR32.
1.27682 -+ Copyright 2005, 2006 Atmel Corporation.
1.27683 -+
1.27684 -+ Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
1.27685 -+
1.27686 -+ This file is part of libopcodes.
1.27687 -+
1.27688 -+ This program is free software; you can redistribute it and/or
1.27689 -+ modify it under the terms of the GNU General Public License as
1.27690 -+ published by the Free Software Foundation; either version 2 of the
1.27691 -+ License, or (at your option) any later version.
1.27692 -+
1.27693 -+ This program is distributed in the hope that it will be useful, but
1.27694 -+ WITHOUT ANY WARRANTY; without even the implied warranty of
1.27695 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.27696 -+ General Public License for more details.
1.27697 -+
1.27698 -+ You should have received a copy of the GNU General Public License
1.27699 -+ along with this program; if not, write to the Free Software
1.27700 -+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1.27701 -+ 02111-1307, USA. */
1.27702 -+
1.27703 -+#include "bfd.h"
1.27704 -+
1.27705 -+#define AVR32_MAX_OPERANDS 8
1.27706 -+#define AVR32_MAX_FIELDS 8
1.27707 -+
1.27708 -+#define AVR32_V1 (1 << 1)
1.27709 -+#define AVR32_SIMD (1 << 2)
1.27710 -+#define AVR32_DSP (1 << 3)
1.27711 -+#define AVR32_RMW (1 << 4)
1.27712 -+#define AVR32_V2 (1 << 5)
1.27713 -+#define AVR32_FP (1 << 16)
1.27714 -+#define AVR32_PICO (1 << 17)
1.27715 -+
1.27716 -+/* Registers we commonly refer to */
1.27717 -+#define AVR32_REG_R12 12
1.27718 -+#define AVR32_REG_SP 13
1.27719 -+#define AVR32_REG_LR 14
1.27720 -+#define AVR32_REG_PC 15
1.27721 -+
1.27722 -+struct avr32_ifield
1.27723 -+{
1.27724 -+ int id;
1.27725 -+ unsigned short bitsize;
1.27726 -+ unsigned short shift;
1.27727 -+ unsigned long mask;
1.27728 -+
1.27729 -+ /* If the value doesn't fit, it will be truncated with no warning */
1.27730 -+ void (*insert)(const struct avr32_ifield *, void *, unsigned long);
1.27731 -+ void (*extract)(const struct avr32_ifield *, void *, unsigned long *);
1.27732 -+};
1.27733 -+
1.27734 -+struct avr32_opcode
1.27735 -+{
1.27736 -+ int id;
1.27737 -+ int size;
1.27738 -+ unsigned long value;
1.27739 -+ unsigned long mask;
1.27740 -+ const struct avr32_syntax *syntax;
1.27741 -+ bfd_reloc_code_real_type reloc_type;
1.27742 -+ unsigned int nr_fields;
1.27743 -+ /* if relaxable, which field is variable, otherwise -1 */
1.27744 -+ int var_field;
1.27745 -+ const struct avr32_ifield *fields[AVR32_MAX_FIELDS];
1.27746 -+};
1.27747 -+
1.27748 -+struct avr32_alias
1.27749 -+{
1.27750 -+ int id;
1.27751 -+ const struct avr32_opcode *opc;
1.27752 -+ struct {
1.27753 -+ int is_opindex;
1.27754 -+ unsigned long value;
1.27755 -+ } operand_map[AVR32_MAX_OPERANDS];
1.27756 -+};
1.27757 -+
1.27758 -+struct avr32_syntax
1.27759 -+{
1.27760 -+ int id;
1.27761 -+ unsigned long isa_flags;
1.27762 -+ const struct avr32_mnemonic *mnemonic;
1.27763 -+ int type;
1.27764 -+ union {
1.27765 -+ const struct avr32_opcode *opc;
1.27766 -+ const struct avr32_alias *alias;
1.27767 -+ } u;
1.27768 -+ const struct avr32_syntax *next;
1.27769 -+ /* negative means "vararg" */
1.27770 -+ int nr_operands;
1.27771 -+ int operand[AVR32_MAX_OPERANDS];
1.27772 -+};
1.27773 -+
1.27774 -+#if 0
1.27775 -+#define AVR32_ALIAS_MAKE_CONST(val) ((val) | 0x80000000UL)
1.27776 -+#define AVR32_ALIAS_IS_CONST(mapval) (((mapval) & 0x80000000UL) != 0)
1.27777 -+#define AVR32_ALIAS_GET_CONST(mapval) ((mapval) & ~0x80000000UL)
1.27778 -+#endif
1.27779 -+
1.27780 -+struct avr32_mnemonic
1.27781 -+{
1.27782 -+ int id;
1.27783 -+ const char *name;
1.27784 -+ const struct avr32_syntax *syntax;
1.27785 -+};
1.27786 -+
1.27787 -+extern const struct avr32_ifield avr32_ifield_table[];
1.27788 -+extern struct avr32_opcode avr32_opc_table[];
1.27789 -+extern const struct avr32_syntax avr32_syntax_table[];
1.27790 -+extern const struct avr32_alias avr32_alias_table[];
1.27791 -+extern const struct avr32_mnemonic avr32_mnemonic_table[];
1.27792 -+
1.27793 -+extern void avr32_insert_simple(const struct avr32_ifield *field,
1.27794 -+ void *buf, unsigned long value);
1.27795 -+extern void avr32_insert_bit5c(const struct avr32_ifield *field,
1.27796 -+ void *buf, unsigned long value);
1.27797 -+extern void avr32_insert_k10(const struct avr32_ifield *field,
1.27798 -+ void *buf, unsigned long value);
1.27799 -+extern void avr32_insert_k21(const struct avr32_ifield *field,
1.27800 -+ void *buf, unsigned long value);
1.27801 -+extern void avr32_insert_cpop(const struct avr32_ifield *field,
1.27802 -+ void *buf, unsigned long value);
1.27803 -+extern void avr32_insert_k12cp(const struct avr32_ifield *field,
1.27804 -+ void *buf, unsigned long value);
1.27805 -+
1.27806 -+extern void avr32_extract_simple(const struct avr32_ifield *field,
1.27807 -+ void *buf, unsigned long *value);
1.27808 -+extern void avr32_extract_bit5c(const struct avr32_ifield *field,
1.27809 -+ void *buf, unsigned long *value);
1.27810 -+extern void avr32_extract_k10(const struct avr32_ifield *field,
1.27811 -+ void *buf, unsigned long *value);
1.27812 -+extern void avr32_extract_k21(const struct avr32_ifield *field,
1.27813 -+ void *buf, unsigned long *value);
1.27814 -+extern void avr32_extract_cpop(const struct avr32_ifield *field,
1.27815 -+ void *buf, unsigned long *value);
1.27816 -+extern void avr32_extract_k12cp(const struct avr32_ifield *field,
1.27817 -+ void *buf, unsigned long *value);
1.27818 -+
1.27819 -+enum avr32_operand_type
1.27820 -+{
1.27821 -+ AVR32_OPERAND_INTREG, /* just a register */
1.27822 -+ AVR32_OPERAND_INTREG_PREDEC, /* register with pre-decrement */
1.27823 -+ AVR32_OPERAND_INTREG_POSTINC, /* register with post-increment */
1.27824 -+ AVR32_OPERAND_INTREG_LSL, /* register with left shift */
1.27825 -+ AVR32_OPERAND_INTREG_LSR, /* register with right shift */
1.27826 -+ AVR32_OPERAND_INTREG_BSEL, /* register with byte selector */
1.27827 -+ AVR32_OPERAND_INTREG_HSEL, /* register with halfword selector */
1.27828 -+ AVR32_OPERAND_INTREG_SDISP, /* Rp[signed disp] */
1.27829 -+ AVR32_OPERAND_INTREG_SDISP_H, /* Rp[signed hword-aligned disp] */
1.27830 -+ AVR32_OPERAND_INTREG_SDISP_W, /* Rp[signed word-aligned disp] */
1.27831 -+ AVR32_OPERAND_INTREG_UDISP, /* Rp[unsigned disp] */
1.27832 -+ AVR32_OPERAND_INTREG_UDISP_H, /* Rp[unsigned hword-aligned disp] */
1.27833 -+ AVR32_OPERAND_INTREG_UDISP_W, /* Rp[unsigned word-aligned disp] */
1.27834 -+ AVR32_OPERAND_INTREG_INDEX, /* Rp[Ri << sa] */
1.27835 -+ AVR32_OPERAND_INTREG_XINDEX, /* Rp[Ri:bytesel << 2] */
1.27836 -+ AVR32_OPERAND_DWREG, /* Even-numbered register */
1.27837 -+ AVR32_OPERAND_PC_UDISP_W, /* PC[unsigned word-aligned disp] or label */
1.27838 -+ AVR32_OPERAND_SP, /* Just SP */
1.27839 -+ AVR32_OPERAND_SP_UDISP_W, /* SP[unsigned word-aligned disp] */
1.27840 -+ AVR32_OPERAND_CPNO,
1.27841 -+ AVR32_OPERAND_CPREG,
1.27842 -+ AVR32_OPERAND_CPREG_D,
1.27843 -+ AVR32_OPERAND_UNSIGNED_CONST,
1.27844 -+ AVR32_OPERAND_UNSIGNED_CONST_W,
1.27845 -+ AVR32_OPERAND_SIGNED_CONST,
1.27846 -+ AVR32_OPERAND_SIGNED_CONST_W,
1.27847 -+ AVR32_OPERAND_JMPLABEL,
1.27848 -+ AVR32_OPERAND_UNSIGNED_NUMBER,
1.27849 -+ AVR32_OPERAND_UNSIGNED_NUMBER_W,
1.27850 -+ AVR32_OPERAND_REGLIST8,
1.27851 -+ AVR32_OPERAND_REGLIST9,
1.27852 -+ AVR32_OPERAND_REGLIST16,
1.27853 -+ AVR32_OPERAND_REGLIST_LDM,
1.27854 -+ AVR32_OPERAND_REGLIST_CP8,
1.27855 -+ AVR32_OPERAND_REGLIST_CPD8,
1.27856 -+ AVR32_OPERAND_RETVAL,
1.27857 -+ AVR32_OPERAND_MCALL,
1.27858 -+ AVR32_OPERAND_JOSPINC,
1.27859 -+ AVR32_OPERAND_COH,
1.27860 -+ AVR32_OPERAND_FPREG_S,
1.27861 -+ AVR32_OPERAND_FPREG_D,
1.27862 -+ AVR32_OPERAND_PICO_REG_W,
1.27863 -+ AVR32_OPERAND_PICO_REG_D,
1.27864 -+ AVR32_OPERAND_PICO_REGLIST_W,
1.27865 -+ AVR32_OPERAND_PICO_REGLIST_D,
1.27866 -+ AVR32_OPERAND_PICO_IN,
1.27867 -+ AVR32_OPERAND_PICO_OUT0,
1.27868 -+ AVR32_OPERAND_PICO_OUT1,
1.27869 -+ AVR32_OPERAND_PICO_OUT2,
1.27870 -+ AVR32_OPERAND_PICO_OUT3,
1.27871 -+ AVR32_OPERAND__END_
1.27872 -+};
1.27873 -+#define AVR32_OPERAND_UNKNOWN AVR32_OPERAND__END_
1.27874 -+#define AVR32_NR_OPERANDS AVR32_OPERAND__END_
1.27875 -+
1.27876 -+enum avr32_ifield_type
1.27877 -+{
1.27878 -+ AVR32_IFIELD_RX,
1.27879 -+ AVR32_IFIELD_RY,
1.27880 -+ AVR32_IFIELD_COND4C,
1.27881 -+ AVR32_IFIELD_K8C,
1.27882 -+ AVR32_IFIELD_K7C,
1.27883 -+ AVR32_IFIELD_K5C,
1.27884 -+ AVR32_IFIELD_K3,
1.27885 -+ AVR32_IFIELD_RY_DW,
1.27886 -+ AVR32_IFIELD_COND4E,
1.27887 -+ AVR32_IFIELD_K8E,
1.27888 -+ AVR32_IFIELD_BIT5C,
1.27889 -+ AVR32_IFIELD_COND3,
1.27890 -+ AVR32_IFIELD_K10,
1.27891 -+ AVR32_IFIELD_POPM,
1.27892 -+ AVR32_IFIELD_K2,
1.27893 -+ AVR32_IFIELD_RD_E,
1.27894 -+ AVR32_IFIELD_RD_DW,
1.27895 -+ AVR32_IFIELD_X,
1.27896 -+ AVR32_IFIELD_Y,
1.27897 -+ AVR32_IFIELD_X2,
1.27898 -+ AVR32_IFIELD_Y2,
1.27899 -+ AVR32_IFIELD_K5E,
1.27900 -+ AVR32_IFIELD_PART2,
1.27901 -+ AVR32_IFIELD_PART1,
1.27902 -+ AVR32_IFIELD_K16,
1.27903 -+ AVR32_IFIELD_CACHEOP,
1.27904 -+ AVR32_IFIELD_K11,
1.27905 -+ AVR32_IFIELD_K21,
1.27906 -+ AVR32_IFIELD_CPOP,
1.27907 -+ AVR32_IFIELD_CPNO,
1.27908 -+ AVR32_IFIELD_CRD_RI,
1.27909 -+ AVR32_IFIELD_CRX,
1.27910 -+ AVR32_IFIELD_CRY,
1.27911 -+ AVR32_IFIELD_K7E,
1.27912 -+ AVR32_IFIELD_CRD_DW,
1.27913 -+ AVR32_IFIELD_PART1_K12,
1.27914 -+ AVR32_IFIELD_PART2_K12,
1.27915 -+ AVR32_IFIELD_K12,
1.27916 -+ AVR32_IFIELD_S5,
1.27917 -+ AVR32_IFIELD_K5E2,
1.27918 -+ AVR32_IFIELD_K4,
1.27919 -+ AVR32_IFIELD_COND4E2,
1.27920 -+ AVR32_IFIELD_K8E2,
1.27921 -+ AVR32_IFIELD_K6,
1.27922 -+ AVR32_IFIELD_MEM15,
1.27923 -+ AVR32_IFIELD_MEMB5,
1.27924 -+ AVR32_IFIELD_W,
1.27925 -+ AVR32_IFIELD_CM_HL,
1.27926 -+ AVR32_IFIELD_K12CP,
1.27927 -+ AVR32_IFIELD_K9E,
1.27928 -+ AVR32_IFIELD__END_,
1.27929 -+};
1.27930 -+#define AVR32_NR_IFIELDS AVR32_IFIELD__END_
1.27931 -+
1.27932 -+enum avr32_opc_type
1.27933 -+{
1.27934 -+ AVR32_OPC_ABS,
1.27935 -+ AVR32_OPC_ACALL,
1.27936 -+ AVR32_OPC_ACR,
1.27937 -+ AVR32_OPC_ADC,
1.27938 -+ AVR32_OPC_ADD1,
1.27939 -+ AVR32_OPC_ADD2,
1.27940 -+ AVR32_OPC_ADDABS,
1.27941 -+ AVR32_OPC_ADDHH_W,
1.27942 -+ AVR32_OPC_AND1,
1.27943 -+ AVR32_OPC_AND2,
1.27944 -+ AVR32_OPC_AND3,
1.27945 -+ AVR32_OPC_ANDH,
1.27946 -+ AVR32_OPC_ANDH_COH,
1.27947 -+ AVR32_OPC_ANDL,
1.27948 -+ AVR32_OPC_ANDL_COH,
1.27949 -+ AVR32_OPC_ANDN,
1.27950 -+ AVR32_OPC_ASR1,
1.27951 -+ AVR32_OPC_ASR3,
1.27952 -+ AVR32_OPC_ASR2,
1.27953 -+ AVR32_OPC_BLD,
1.27954 -+ AVR32_OPC_BREQ1,
1.27955 -+ AVR32_OPC_BRNE1,
1.27956 -+ AVR32_OPC_BRCC1,
1.27957 -+ AVR32_OPC_BRCS1,
1.27958 -+ AVR32_OPC_BRGE1,
1.27959 -+ AVR32_OPC_BRLT1,
1.27960 -+ AVR32_OPC_BRMI1,
1.27961 -+ AVR32_OPC_BRPL1,
1.27962 -+ AVR32_OPC_BREQ2,
1.27963 -+ AVR32_OPC_BRNE2,
1.27964 -+ AVR32_OPC_BRCC2,
1.27965 -+ AVR32_OPC_BRCS2,
1.27966 -+ AVR32_OPC_BRGE2,
1.27967 -+ AVR32_OPC_BRLT2,
1.27968 -+ AVR32_OPC_BRMI2,
1.27969 -+ AVR32_OPC_BRPL2,
1.27970 -+ AVR32_OPC_BRLS,
1.27971 -+ AVR32_OPC_BRGT,
1.27972 -+ AVR32_OPC_BRLE,
1.27973 -+ AVR32_OPC_BRHI,
1.27974 -+ AVR32_OPC_BRVS,
1.27975 -+ AVR32_OPC_BRVC,
1.27976 -+ AVR32_OPC_BRQS,
1.27977 -+ AVR32_OPC_BRAL,
1.27978 -+ AVR32_OPC_BREAKPOINT,
1.27979 -+ AVR32_OPC_BREV,
1.27980 -+ AVR32_OPC_BST,
1.27981 -+ AVR32_OPC_CACHE,
1.27982 -+ AVR32_OPC_CASTS_B,
1.27983 -+ AVR32_OPC_CASTS_H,
1.27984 -+ AVR32_OPC_CASTU_B,
1.27985 -+ AVR32_OPC_CASTU_H,
1.27986 -+ AVR32_OPC_CBR,
1.27987 -+ AVR32_OPC_CLZ,
1.27988 -+ AVR32_OPC_COM,
1.27989 -+ AVR32_OPC_COP,
1.27990 -+ AVR32_OPC_CP_B,
1.27991 -+ AVR32_OPC_CP_H,
1.27992 -+ AVR32_OPC_CP_W1,
1.27993 -+ AVR32_OPC_CP_W2,
1.27994 -+ AVR32_OPC_CP_W3,
1.27995 -+ AVR32_OPC_CPC1,
1.27996 -+ AVR32_OPC_CPC2,
1.27997 -+ AVR32_OPC_CSRF,
1.27998 -+ AVR32_OPC_CSRFCZ,
1.27999 -+ AVR32_OPC_DIVS,
1.28000 -+ AVR32_OPC_DIVU,
1.28001 -+ AVR32_OPC_EOR1,
1.28002 -+ AVR32_OPC_EOR2,
1.28003 -+ AVR32_OPC_EOR3,
1.28004 -+ AVR32_OPC_EORL,
1.28005 -+ AVR32_OPC_EORH,
1.28006 -+ AVR32_OPC_FRS,
1.28007 -+ AVR32_OPC_ICALL,
1.28008 -+ AVR32_OPC_INCJOSP,
1.28009 -+ AVR32_OPC_LD_D1,
1.28010 -+ AVR32_OPC_LD_D2,
1.28011 -+ AVR32_OPC_LD_D3,
1.28012 -+ AVR32_OPC_LD_D5,
1.28013 -+ AVR32_OPC_LD_D4,
1.28014 -+ AVR32_OPC_LD_SB2,
1.28015 -+ AVR32_OPC_LD_SB1,
1.28016 -+ AVR32_OPC_LD_UB1,
1.28017 -+ AVR32_OPC_LD_UB2,
1.28018 -+ AVR32_OPC_LD_UB5,
1.28019 -+ AVR32_OPC_LD_UB3,
1.28020 -+ AVR32_OPC_LD_UB4,
1.28021 -+ AVR32_OPC_LD_SH1,
1.28022 -+ AVR32_OPC_LD_SH2,
1.28023 -+ AVR32_OPC_LD_SH5,
1.28024 -+ AVR32_OPC_LD_SH3,
1.28025 -+ AVR32_OPC_LD_SH4,
1.28026 -+ AVR32_OPC_LD_UH1,
1.28027 -+ AVR32_OPC_LD_UH2,
1.28028 -+ AVR32_OPC_LD_UH5,
1.28029 -+ AVR32_OPC_LD_UH3,
1.28030 -+ AVR32_OPC_LD_UH4,
1.28031 -+ AVR32_OPC_LD_W1,
1.28032 -+ AVR32_OPC_LD_W2,
1.28033 -+ AVR32_OPC_LD_W5,
1.28034 -+ AVR32_OPC_LD_W6,
1.28035 -+ AVR32_OPC_LD_W3,
1.28036 -+ AVR32_OPC_LD_W4,
1.28037 -+ AVR32_OPC_LDC_D1,
1.28038 -+ AVR32_OPC_LDC_D2,
1.28039 -+ AVR32_OPC_LDC_D3,
1.28040 -+ AVR32_OPC_LDC_W1,
1.28041 -+ AVR32_OPC_LDC_W2,
1.28042 -+ AVR32_OPC_LDC_W3,
1.28043 -+ AVR32_OPC_LDC0_D,
1.28044 -+ AVR32_OPC_LDC0_W,
1.28045 -+ AVR32_OPC_LDCM_D,
1.28046 -+ AVR32_OPC_LDCM_D_PU,
1.28047 -+ AVR32_OPC_LDCM_W,
1.28048 -+ AVR32_OPC_LDCM_W_PU,
1.28049 -+ AVR32_OPC_LDDPC,
1.28050 -+ AVR32_OPC_LDDPC_EXT,
1.28051 -+ AVR32_OPC_LDDSP,
1.28052 -+ AVR32_OPC_LDINS_B,
1.28053 -+ AVR32_OPC_LDINS_H,
1.28054 -+ AVR32_OPC_LDM,
1.28055 -+ AVR32_OPC_LDMTS,
1.28056 -+ AVR32_OPC_LDMTS_PU,
1.28057 -+ AVR32_OPC_LDSWP_SH,
1.28058 -+ AVR32_OPC_LDSWP_UH,
1.28059 -+ AVR32_OPC_LDSWP_W,
1.28060 -+ AVR32_OPC_LSL1,
1.28061 -+ AVR32_OPC_LSL3,
1.28062 -+ AVR32_OPC_LSL2,
1.28063 -+ AVR32_OPC_LSR1,
1.28064 -+ AVR32_OPC_LSR3,
1.28065 -+ AVR32_OPC_LSR2,
1.28066 -+ AVR32_OPC_MAC,
1.28067 -+ AVR32_OPC_MACHH_D,
1.28068 -+ AVR32_OPC_MACHH_W,
1.28069 -+ AVR32_OPC_MACS_D,
1.28070 -+ AVR32_OPC_MACSATHH_W,
1.28071 -+ AVR32_OPC_MACUD,
1.28072 -+ AVR32_OPC_MACWH_D,
1.28073 -+ AVR32_OPC_MAX,
1.28074 -+ AVR32_OPC_MCALL,
1.28075 -+ AVR32_OPC_MFDR,
1.28076 -+ AVR32_OPC_MFSR,
1.28077 -+ AVR32_OPC_MIN,
1.28078 -+ AVR32_OPC_MOV3,
1.28079 -+ AVR32_OPC_MOV1,
1.28080 -+ AVR32_OPC_MOV2,
1.28081 -+ AVR32_OPC_MOVEQ1,
1.28082 -+ AVR32_OPC_MOVNE1,
1.28083 -+ AVR32_OPC_MOVCC1,
1.28084 -+ AVR32_OPC_MOVCS1,
1.28085 -+ AVR32_OPC_MOVGE1,
1.28086 -+ AVR32_OPC_MOVLT1,
1.28087 -+ AVR32_OPC_MOVMI1,
1.28088 -+ AVR32_OPC_MOVPL1,
1.28089 -+ AVR32_OPC_MOVLS1,
1.28090 -+ AVR32_OPC_MOVGT1,
1.28091 -+ AVR32_OPC_MOVLE1,
1.28092 -+ AVR32_OPC_MOVHI1,
1.28093 -+ AVR32_OPC_MOVVS1,
1.28094 -+ AVR32_OPC_MOVVC1,
1.28095 -+ AVR32_OPC_MOVQS1,
1.28096 -+ AVR32_OPC_MOVAL1,
1.28097 -+ AVR32_OPC_MOVEQ2,
1.28098 -+ AVR32_OPC_MOVNE2,
1.28099 -+ AVR32_OPC_MOVCC2,
1.28100 -+ AVR32_OPC_MOVCS2,
1.28101 -+ AVR32_OPC_MOVGE2,
1.28102 -+ AVR32_OPC_MOVLT2,
1.28103 -+ AVR32_OPC_MOVMI2,
1.28104 -+ AVR32_OPC_MOVPL2,
1.28105 -+ AVR32_OPC_MOVLS2,
1.28106 -+ AVR32_OPC_MOVGT2,
1.28107 -+ AVR32_OPC_MOVLE2,
1.28108 -+ AVR32_OPC_MOVHI2,
1.28109 -+ AVR32_OPC_MOVVS2,
1.28110 -+ AVR32_OPC_MOVVC2,
1.28111 -+ AVR32_OPC_MOVQS2,
1.28112 -+ AVR32_OPC_MOVAL2,
1.28113 -+ AVR32_OPC_MTDR,
1.28114 -+ AVR32_OPC_MTSR,
1.28115 -+ AVR32_OPC_MUL1,
1.28116 -+ AVR32_OPC_MUL2,
1.28117 -+ AVR32_OPC_MUL3,
1.28118 -+ AVR32_OPC_MULHH_W,
1.28119 -+ AVR32_OPC_MULNHH_W,
1.28120 -+ AVR32_OPC_MULNWH_D,
1.28121 -+ AVR32_OPC_MULSD,
1.28122 -+ AVR32_OPC_MULSATHH_H,
1.28123 -+ AVR32_OPC_MULSATHH_W,
1.28124 -+ AVR32_OPC_MULSATRNDHH_H,
1.28125 -+ AVR32_OPC_MULSATRNDWH_W,
1.28126 -+ AVR32_OPC_MULSATWH_W,
1.28127 -+ AVR32_OPC_MULU_D,
1.28128 -+ AVR32_OPC_MULWH_D,
1.28129 -+ AVR32_OPC_MUSFR,
1.28130 -+ AVR32_OPC_MUSTR,
1.28131 -+ AVR32_OPC_MVCR_D,
1.28132 -+ AVR32_OPC_MVCR_W,
1.28133 -+ AVR32_OPC_MVRC_D,
1.28134 -+ AVR32_OPC_MVRC_W,
1.28135 -+ AVR32_OPC_NEG,
1.28136 -+ AVR32_OPC_NOP,
1.28137 -+ AVR32_OPC_OR1,
1.28138 -+ AVR32_OPC_OR2,
1.28139 -+ AVR32_OPC_OR3,
1.28140 -+ AVR32_OPC_ORH,
1.28141 -+ AVR32_OPC_ORL,
1.28142 -+ AVR32_OPC_PABS_SB,
1.28143 -+ AVR32_OPC_PABS_SH,
1.28144 -+ AVR32_OPC_PACKSH_SB,
1.28145 -+ AVR32_OPC_PACKSH_UB,
1.28146 -+ AVR32_OPC_PACKW_SH,
1.28147 -+ AVR32_OPC_PADD_B,
1.28148 -+ AVR32_OPC_PADD_H,
1.28149 -+ AVR32_OPC_PADDH_SH,
1.28150 -+ AVR32_OPC_PADDH_UB,
1.28151 -+ AVR32_OPC_PADDS_SB,
1.28152 -+ AVR32_OPC_PADDS_SH,
1.28153 -+ AVR32_OPC_PADDS_UB,
1.28154 -+ AVR32_OPC_PADDS_UH,
1.28155 -+ AVR32_OPC_PADDSUB_H,
1.28156 -+ AVR32_OPC_PADDSUBH_SH,
1.28157 -+ AVR32_OPC_PADDSUBS_SH,
1.28158 -+ AVR32_OPC_PADDSUBS_UH,
1.28159 -+ AVR32_OPC_PADDX_H,
1.28160 -+ AVR32_OPC_PADDXH_SH,
1.28161 -+ AVR32_OPC_PADDXS_SH,
1.28162 -+ AVR32_OPC_PADDXS_UH,
1.28163 -+ AVR32_OPC_PASR_B,
1.28164 -+ AVR32_OPC_PASR_H,
1.28165 -+ AVR32_OPC_PAVG_SH,
1.28166 -+ AVR32_OPC_PAVG_UB,
1.28167 -+ AVR32_OPC_PLSL_B,
1.28168 -+ AVR32_OPC_PLSL_H,
1.28169 -+ AVR32_OPC_PLSR_B,
1.28170 -+ AVR32_OPC_PLSR_H,
1.28171 -+ AVR32_OPC_PMAX_SH,
1.28172 -+ AVR32_OPC_PMAX_UB,
1.28173 -+ AVR32_OPC_PMIN_SH,
1.28174 -+ AVR32_OPC_PMIN_UB,
1.28175 -+ AVR32_OPC_POPJC,
1.28176 -+ AVR32_OPC_POPM,
1.28177 -+ AVR32_OPC_POPM_E,
1.28178 -+ AVR32_OPC_PREF,
1.28179 -+ AVR32_OPC_PSAD,
1.28180 -+ AVR32_OPC_PSUB_B,
1.28181 -+ AVR32_OPC_PSUB_H,
1.28182 -+ AVR32_OPC_PSUBADD_H,
1.28183 -+ AVR32_OPC_PSUBADDH_SH,
1.28184 -+ AVR32_OPC_PSUBADDS_SH,
1.28185 -+ AVR32_OPC_PSUBADDS_UH,
1.28186 -+ AVR32_OPC_PSUBH_SH,
1.28187 -+ AVR32_OPC_PSUBH_UB,
1.28188 -+ AVR32_OPC_PSUBS_SB,
1.28189 -+ AVR32_OPC_PSUBS_SH,
1.28190 -+ AVR32_OPC_PSUBS_UB,
1.28191 -+ AVR32_OPC_PSUBS_UH,
1.28192 -+ AVR32_OPC_PSUBX_H,
1.28193 -+ AVR32_OPC_PSUBXH_SH,
1.28194 -+ AVR32_OPC_PSUBXS_SH,
1.28195 -+ AVR32_OPC_PSUBXS_UH,
1.28196 -+ AVR32_OPC_PUNPCKSB_H,
1.28197 -+ AVR32_OPC_PUNPCKUB_H,
1.28198 -+ AVR32_OPC_PUSHJC,
1.28199 -+ AVR32_OPC_PUSHM,
1.28200 -+ AVR32_OPC_PUSHM_E,
1.28201 -+ AVR32_OPC_RCALL1,
1.28202 -+ AVR32_OPC_RCALL2,
1.28203 -+ AVR32_OPC_RETEQ,
1.28204 -+ AVR32_OPC_RETNE,
1.28205 -+ AVR32_OPC_RETCC,
1.28206 -+ AVR32_OPC_RETCS,
1.28207 -+ AVR32_OPC_RETGE,
1.28208 -+ AVR32_OPC_RETLT,
1.28209 -+ AVR32_OPC_RETMI,
1.28210 -+ AVR32_OPC_RETPL,
1.28211 -+ AVR32_OPC_RETLS,
1.28212 -+ AVR32_OPC_RETGT,
1.28213 -+ AVR32_OPC_RETLE,
1.28214 -+ AVR32_OPC_RETHI,
1.28215 -+ AVR32_OPC_RETVS,
1.28216 -+ AVR32_OPC_RETVC,
1.28217 -+ AVR32_OPC_RETQS,
1.28218 -+ AVR32_OPC_RETAL,
1.28219 -+ AVR32_OPC_RETD,
1.28220 -+ AVR32_OPC_RETE,
1.28221 -+ AVR32_OPC_RETJ,
1.28222 -+ AVR32_OPC_RETS,
1.28223 -+ AVR32_OPC_RJMP,
1.28224 -+ AVR32_OPC_ROL,
1.28225 -+ AVR32_OPC_ROR,
1.28226 -+ AVR32_OPC_RSUB1,
1.28227 -+ AVR32_OPC_RSUB2,
1.28228 -+ AVR32_OPC_SATADD_H,
1.28229 -+ AVR32_OPC_SATADD_W,
1.28230 -+ AVR32_OPC_SATRNDS,
1.28231 -+ AVR32_OPC_SATRNDU,
1.28232 -+ AVR32_OPC_SATS,
1.28233 -+ AVR32_OPC_SATSUB_H,
1.28234 -+ AVR32_OPC_SATSUB_W1,
1.28235 -+ AVR32_OPC_SATSUB_W2,
1.28236 -+ AVR32_OPC_SATU,
1.28237 -+ AVR32_OPC_SBC,
1.28238 -+ AVR32_OPC_SBR,
1.28239 -+ AVR32_OPC_SCALL,
1.28240 -+ AVR32_OPC_SCR,
1.28241 -+ AVR32_OPC_SLEEP,
1.28242 -+ AVR32_OPC_SREQ,
1.28243 -+ AVR32_OPC_SRNE,
1.28244 -+ AVR32_OPC_SRCC,
1.28245 -+ AVR32_OPC_SRCS,
1.28246 -+ AVR32_OPC_SRGE,
1.28247 -+ AVR32_OPC_SRLT,
1.28248 -+ AVR32_OPC_SRMI,
1.28249 -+ AVR32_OPC_SRPL,
1.28250 -+ AVR32_OPC_SRLS,
1.28251 -+ AVR32_OPC_SRGT,
1.28252 -+ AVR32_OPC_SRLE,
1.28253 -+ AVR32_OPC_SRHI,
1.28254 -+ AVR32_OPC_SRVS,
1.28255 -+ AVR32_OPC_SRVC,
1.28256 -+ AVR32_OPC_SRQS,
1.28257 -+ AVR32_OPC_SRAL,
1.28258 -+ AVR32_OPC_SSRF,
1.28259 -+ AVR32_OPC_ST_B1,
1.28260 -+ AVR32_OPC_ST_B2,
1.28261 -+ AVR32_OPC_ST_B5,
1.28262 -+ AVR32_OPC_ST_B3,
1.28263 -+ AVR32_OPC_ST_B4,
1.28264 -+ AVR32_OPC_ST_D1,
1.28265 -+ AVR32_OPC_ST_D2,
1.28266 -+ AVR32_OPC_ST_D3,
1.28267 -+ AVR32_OPC_ST_D5,
1.28268 -+ AVR32_OPC_ST_D4,
1.28269 -+ AVR32_OPC_ST_H1,
1.28270 -+ AVR32_OPC_ST_H2,
1.28271 -+ AVR32_OPC_ST_H5,
1.28272 -+ AVR32_OPC_ST_H3,
1.28273 -+ AVR32_OPC_ST_H4,
1.28274 -+ AVR32_OPC_ST_W1,
1.28275 -+ AVR32_OPC_ST_W2,
1.28276 -+ AVR32_OPC_ST_W5,
1.28277 -+ AVR32_OPC_ST_W3,
1.28278 -+ AVR32_OPC_ST_W4,
1.28279 -+ AVR32_OPC_STC_D1,
1.28280 -+ AVR32_OPC_STC_D2,
1.28281 -+ AVR32_OPC_STC_D3,
1.28282 -+ AVR32_OPC_STC_W1,
1.28283 -+ AVR32_OPC_STC_W2,
1.28284 -+ AVR32_OPC_STC_W3,
1.28285 -+ AVR32_OPC_STC0_D,
1.28286 -+ AVR32_OPC_STC0_W,
1.28287 -+ AVR32_OPC_STCM_D,
1.28288 -+ AVR32_OPC_STCM_D_PU,
1.28289 -+ AVR32_OPC_STCM_W,
1.28290 -+ AVR32_OPC_STCM_W_PU,
1.28291 -+ AVR32_OPC_STCOND,
1.28292 -+ AVR32_OPC_STDSP,
1.28293 -+ AVR32_OPC_STHH_W2,
1.28294 -+ AVR32_OPC_STHH_W1,
1.28295 -+ AVR32_OPC_STM,
1.28296 -+ AVR32_OPC_STM_PU,
1.28297 -+ AVR32_OPC_STMTS,
1.28298 -+ AVR32_OPC_STMTS_PU,
1.28299 -+ AVR32_OPC_STSWP_H,
1.28300 -+ AVR32_OPC_STSWP_W,
1.28301 -+ AVR32_OPC_SUB1,
1.28302 -+ AVR32_OPC_SUB2,
1.28303 -+ AVR32_OPC_SUB5,
1.28304 -+ AVR32_OPC_SUB3_SP,
1.28305 -+ AVR32_OPC_SUB3,
1.28306 -+ AVR32_OPC_SUB4,
1.28307 -+ AVR32_OPC_SUBEQ,
1.28308 -+ AVR32_OPC_SUBNE,
1.28309 -+ AVR32_OPC_SUBCC,
1.28310 -+ AVR32_OPC_SUBCS,
1.28311 -+ AVR32_OPC_SUBGE,
1.28312 -+ AVR32_OPC_SUBLT,
1.28313 -+ AVR32_OPC_SUBMI,
1.28314 -+ AVR32_OPC_SUBPL,
1.28315 -+ AVR32_OPC_SUBLS,
1.28316 -+ AVR32_OPC_SUBGT,
1.28317 -+ AVR32_OPC_SUBLE,
1.28318 -+ AVR32_OPC_SUBHI,
1.28319 -+ AVR32_OPC_SUBVS,
1.28320 -+ AVR32_OPC_SUBVC,
1.28321 -+ AVR32_OPC_SUBQS,
1.28322 -+ AVR32_OPC_SUBAL,
1.28323 -+ AVR32_OPC_SUBFEQ,
1.28324 -+ AVR32_OPC_SUBFNE,
1.28325 -+ AVR32_OPC_SUBFCC,
1.28326 -+ AVR32_OPC_SUBFCS,
1.28327 -+ AVR32_OPC_SUBFGE,
1.28328 -+ AVR32_OPC_SUBFLT,
1.28329 -+ AVR32_OPC_SUBFMI,
1.28330 -+ AVR32_OPC_SUBFPL,
1.28331 -+ AVR32_OPC_SUBFLS,
1.28332 -+ AVR32_OPC_SUBFGT,
1.28333 -+ AVR32_OPC_SUBFLE,
1.28334 -+ AVR32_OPC_SUBFHI,
1.28335 -+ AVR32_OPC_SUBFVS,
1.28336 -+ AVR32_OPC_SUBFVC,
1.28337 -+ AVR32_OPC_SUBFQS,
1.28338 -+ AVR32_OPC_SUBFAL,
1.28339 -+ AVR32_OPC_SUBHH_W,
1.28340 -+ AVR32_OPC_SWAP_B,
1.28341 -+ AVR32_OPC_SWAP_BH,
1.28342 -+ AVR32_OPC_SWAP_H,
1.28343 -+ AVR32_OPC_SYNC,
1.28344 -+ AVR32_OPC_TLBR,
1.28345 -+ AVR32_OPC_TLBS,
1.28346 -+ AVR32_OPC_TLBW,
1.28347 -+ AVR32_OPC_TNBZ,
1.28348 -+ AVR32_OPC_TST,
1.28349 -+ AVR32_OPC_XCHG,
1.28350 -+ AVR32_OPC_MEMC,
1.28351 -+ AVR32_OPC_MEMS,
1.28352 -+ AVR32_OPC_MEMT,
1.28353 -+ AVR32_OPC_BFEXTS,
1.28354 -+ AVR32_OPC_BFEXTU,
1.28355 -+ AVR32_OPC_BFINS,
1.28356 -+ AVR32_OPC_RSUBEQ,
1.28357 -+ AVR32_OPC_RSUBNE,
1.28358 -+ AVR32_OPC_RSUBCC,
1.28359 -+ AVR32_OPC_RSUBCS,
1.28360 -+ AVR32_OPC_RSUBGE,
1.28361 -+ AVR32_OPC_RSUBLT,
1.28362 -+ AVR32_OPC_RSUBMI,
1.28363 -+ AVR32_OPC_RSUBPL,
1.28364 -+ AVR32_OPC_RSUBLS,
1.28365 -+ AVR32_OPC_RSUBGT,
1.28366 -+ AVR32_OPC_RSUBLE,
1.28367 -+ AVR32_OPC_RSUBHI,
1.28368 -+ AVR32_OPC_RSUBVS,
1.28369 -+ AVR32_OPC_RSUBVC,
1.28370 -+ AVR32_OPC_RSUBQS,
1.28371 -+ AVR32_OPC_RSUBAL,
1.28372 -+ AVR32_OPC_ADDEQ,
1.28373 -+ AVR32_OPC_ADDNE,
1.28374 -+ AVR32_OPC_ADDCC,
1.28375 -+ AVR32_OPC_ADDCS,
1.28376 -+ AVR32_OPC_ADDGE,
1.28377 -+ AVR32_OPC_ADDLT,
1.28378 -+ AVR32_OPC_ADDMI,
1.28379 -+ AVR32_OPC_ADDPL,
1.28380 -+ AVR32_OPC_ADDLS,
1.28381 -+ AVR32_OPC_ADDGT,
1.28382 -+ AVR32_OPC_ADDLE,
1.28383 -+ AVR32_OPC_ADDHI,
1.28384 -+ AVR32_OPC_ADDVS,
1.28385 -+ AVR32_OPC_ADDVC,
1.28386 -+ AVR32_OPC_ADDQS,
1.28387 -+ AVR32_OPC_ADDAL,
1.28388 -+ AVR32_OPC_SUB2EQ,
1.28389 -+ AVR32_OPC_SUB2NE,
1.28390 -+ AVR32_OPC_SUB2CC,
1.28391 -+ AVR32_OPC_SUB2CS,
1.28392 -+ AVR32_OPC_SUB2GE,
1.28393 -+ AVR32_OPC_SUB2LT,
1.28394 -+ AVR32_OPC_SUB2MI,
1.28395 -+ AVR32_OPC_SUB2PL,
1.28396 -+ AVR32_OPC_SUB2LS,
1.28397 -+ AVR32_OPC_SUB2GT,
1.28398 -+ AVR32_OPC_SUB2LE,
1.28399 -+ AVR32_OPC_SUB2HI,
1.28400 -+ AVR32_OPC_SUB2VS,
1.28401 -+ AVR32_OPC_SUB2VC,
1.28402 -+ AVR32_OPC_SUB2QS,
1.28403 -+ AVR32_OPC_SUB2AL,
1.28404 -+ AVR32_OPC_ANDEQ,
1.28405 -+ AVR32_OPC_ANDNE,
1.28406 -+ AVR32_OPC_ANDCC,
1.28407 -+ AVR32_OPC_ANDCS,
1.28408 -+ AVR32_OPC_ANDGE,
1.28409 -+ AVR32_OPC_ANDLT,
1.28410 -+ AVR32_OPC_ANDMI,
1.28411 -+ AVR32_OPC_ANDPL,
1.28412 -+ AVR32_OPC_ANDLS,
1.28413 -+ AVR32_OPC_ANDGT,
1.28414 -+ AVR32_OPC_ANDLE,
1.28415 -+ AVR32_OPC_ANDHI,
1.28416 -+ AVR32_OPC_ANDVS,
1.28417 -+ AVR32_OPC_ANDVC,
1.28418 -+ AVR32_OPC_ANDQS,
1.28419 -+ AVR32_OPC_ANDAL,
1.28420 -+ AVR32_OPC_OREQ,
1.28421 -+ AVR32_OPC_ORNE,
1.28422 -+ AVR32_OPC_ORCC,
1.28423 -+ AVR32_OPC_ORCS,
1.28424 -+ AVR32_OPC_ORGE,
1.28425 -+ AVR32_OPC_ORLT,
1.28426 -+ AVR32_OPC_ORMI,
1.28427 -+ AVR32_OPC_ORPL,
1.28428 -+ AVR32_OPC_ORLS,
1.28429 -+ AVR32_OPC_ORGT,
1.28430 -+ AVR32_OPC_ORLE,
1.28431 -+ AVR32_OPC_ORHI,
1.28432 -+ AVR32_OPC_ORVS,
1.28433 -+ AVR32_OPC_ORVC,
1.28434 -+ AVR32_OPC_ORQS,
1.28435 -+ AVR32_OPC_ORAL,
1.28436 -+ AVR32_OPC_EOREQ,
1.28437 -+ AVR32_OPC_EORNE,
1.28438 -+ AVR32_OPC_EORCC,
1.28439 -+ AVR32_OPC_EORCS,
1.28440 -+ AVR32_OPC_EORGE,
1.28441 -+ AVR32_OPC_EORLT,
1.28442 -+ AVR32_OPC_EORMI,
1.28443 -+ AVR32_OPC_EORPL,
1.28444 -+ AVR32_OPC_EORLS,
1.28445 -+ AVR32_OPC_EORGT,
1.28446 -+ AVR32_OPC_EORLE,
1.28447 -+ AVR32_OPC_EORHI,
1.28448 -+ AVR32_OPC_EORVS,
1.28449 -+ AVR32_OPC_EORVC,
1.28450 -+ AVR32_OPC_EORQS,
1.28451 -+ AVR32_OPC_EORAL,
1.28452 -+ AVR32_OPC_LD_WEQ,
1.28453 -+ AVR32_OPC_LD_WNE,
1.28454 -+ AVR32_OPC_LD_WCC,
1.28455 -+ AVR32_OPC_LD_WCS,
1.28456 -+ AVR32_OPC_LD_WGE,
1.28457 -+ AVR32_OPC_LD_WLT,
1.28458 -+ AVR32_OPC_LD_WMI,
1.28459 -+ AVR32_OPC_LD_WPL,
1.28460 -+ AVR32_OPC_LD_WLS,
1.28461 -+ AVR32_OPC_LD_WGT,
1.28462 -+ AVR32_OPC_LD_WLE,
1.28463 -+ AVR32_OPC_LD_WHI,
1.28464 -+ AVR32_OPC_LD_WVS,
1.28465 -+ AVR32_OPC_LD_WVC,
1.28466 -+ AVR32_OPC_LD_WQS,
1.28467 -+ AVR32_OPC_LD_WAL,
1.28468 -+ AVR32_OPC_LD_SHEQ,
1.28469 -+ AVR32_OPC_LD_SHNE,
1.28470 -+ AVR32_OPC_LD_SHCC,
1.28471 -+ AVR32_OPC_LD_SHCS,
1.28472 -+ AVR32_OPC_LD_SHGE,
1.28473 -+ AVR32_OPC_LD_SHLT,
1.28474 -+ AVR32_OPC_LD_SHMI,
1.28475 -+ AVR32_OPC_LD_SHPL,
1.28476 -+ AVR32_OPC_LD_SHLS,
1.28477 -+ AVR32_OPC_LD_SHGT,
1.28478 -+ AVR32_OPC_LD_SHLE,
1.28479 -+ AVR32_OPC_LD_SHHI,
1.28480 -+ AVR32_OPC_LD_SHVS,
1.28481 -+ AVR32_OPC_LD_SHVC,
1.28482 -+ AVR32_OPC_LD_SHQS,
1.28483 -+ AVR32_OPC_LD_SHAL,
1.28484 -+ AVR32_OPC_LD_UHEQ,
1.28485 -+ AVR32_OPC_LD_UHNE,
1.28486 -+ AVR32_OPC_LD_UHCC,
1.28487 -+ AVR32_OPC_LD_UHCS,
1.28488 -+ AVR32_OPC_LD_UHGE,
1.28489 -+ AVR32_OPC_LD_UHLT,
1.28490 -+ AVR32_OPC_LD_UHMI,
1.28491 -+ AVR32_OPC_LD_UHPL,
1.28492 -+ AVR32_OPC_LD_UHLS,
1.28493 -+ AVR32_OPC_LD_UHGT,
1.28494 -+ AVR32_OPC_LD_UHLE,
1.28495 -+ AVR32_OPC_LD_UHHI,
1.28496 -+ AVR32_OPC_LD_UHVS,
1.28497 -+ AVR32_OPC_LD_UHVC,
1.28498 -+ AVR32_OPC_LD_UHQS,
1.28499 -+ AVR32_OPC_LD_UHAL,
1.28500 -+ AVR32_OPC_LD_SBEQ,
1.28501 -+ AVR32_OPC_LD_SBNE,
1.28502 -+ AVR32_OPC_LD_SBCC,
1.28503 -+ AVR32_OPC_LD_SBCS,
1.28504 -+ AVR32_OPC_LD_SBGE,
1.28505 -+ AVR32_OPC_LD_SBLT,
1.28506 -+ AVR32_OPC_LD_SBMI,
1.28507 -+ AVR32_OPC_LD_SBPL,
1.28508 -+ AVR32_OPC_LD_SBLS,
1.28509 -+ AVR32_OPC_LD_SBGT,
1.28510 -+ AVR32_OPC_LD_SBLE,
1.28511 -+ AVR32_OPC_LD_SBHI,
1.28512 -+ AVR32_OPC_LD_SBVS,
1.28513 -+ AVR32_OPC_LD_SBVC,
1.28514 -+ AVR32_OPC_LD_SBQS,
1.28515 -+ AVR32_OPC_LD_SBAL,
1.28516 -+ AVR32_OPC_LD_UBEQ,
1.28517 -+ AVR32_OPC_LD_UBNE,
1.28518 -+ AVR32_OPC_LD_UBCC,
1.28519 -+ AVR32_OPC_LD_UBCS,
1.28520 -+ AVR32_OPC_LD_UBGE,
1.28521 -+ AVR32_OPC_LD_UBLT,
1.28522 -+ AVR32_OPC_LD_UBMI,
1.28523 -+ AVR32_OPC_LD_UBPL,
1.28524 -+ AVR32_OPC_LD_UBLS,
1.28525 -+ AVR32_OPC_LD_UBGT,
1.28526 -+ AVR32_OPC_LD_UBLE,
1.28527 -+ AVR32_OPC_LD_UBHI,
1.28528 -+ AVR32_OPC_LD_UBVS,
1.28529 -+ AVR32_OPC_LD_UBVC,
1.28530 -+ AVR32_OPC_LD_UBQS,
1.28531 -+ AVR32_OPC_LD_UBAL,
1.28532 -+ AVR32_OPC_ST_WEQ,
1.28533 -+ AVR32_OPC_ST_WNE,
1.28534 -+ AVR32_OPC_ST_WCC,
1.28535 -+ AVR32_OPC_ST_WCS,
1.28536 -+ AVR32_OPC_ST_WGE,
1.28537 -+ AVR32_OPC_ST_WLT,
1.28538 -+ AVR32_OPC_ST_WMI,
1.28539 -+ AVR32_OPC_ST_WPL,
1.28540 -+ AVR32_OPC_ST_WLS,
1.28541 -+ AVR32_OPC_ST_WGT,
1.28542 -+ AVR32_OPC_ST_WLE,
1.28543 -+ AVR32_OPC_ST_WHI,
1.28544 -+ AVR32_OPC_ST_WVS,
1.28545 -+ AVR32_OPC_ST_WVC,
1.28546 -+ AVR32_OPC_ST_WQS,
1.28547 -+ AVR32_OPC_ST_WAL,
1.28548 -+ AVR32_OPC_ST_HEQ,
1.28549 -+ AVR32_OPC_ST_HNE,
1.28550 -+ AVR32_OPC_ST_HCC,
1.28551 -+ AVR32_OPC_ST_HCS,
1.28552 -+ AVR32_OPC_ST_HGE,
1.28553 -+ AVR32_OPC_ST_HLT,
1.28554 -+ AVR32_OPC_ST_HMI,
1.28555 -+ AVR32_OPC_ST_HPL,
1.28556 -+ AVR32_OPC_ST_HLS,
1.28557 -+ AVR32_OPC_ST_HGT,
1.28558 -+ AVR32_OPC_ST_HLE,
1.28559 -+ AVR32_OPC_ST_HHI,
1.28560 -+ AVR32_OPC_ST_HVS,
1.28561 -+ AVR32_OPC_ST_HVC,
1.28562 -+ AVR32_OPC_ST_HQS,
1.28563 -+ AVR32_OPC_ST_HAL,
1.28564 -+ AVR32_OPC_ST_BEQ,
1.28565 -+ AVR32_OPC_ST_BNE,
1.28566 -+ AVR32_OPC_ST_BCC,
1.28567 -+ AVR32_OPC_ST_BCS,
1.28568 -+ AVR32_OPC_ST_BGE,
1.28569 -+ AVR32_OPC_ST_BLT,
1.28570 -+ AVR32_OPC_ST_BMI,
1.28571 -+ AVR32_OPC_ST_BPL,
1.28572 -+ AVR32_OPC_ST_BLS,
1.28573 -+ AVR32_OPC_ST_BGT,
1.28574 -+ AVR32_OPC_ST_BLE,
1.28575 -+ AVR32_OPC_ST_BHI,
1.28576 -+ AVR32_OPC_ST_BVS,
1.28577 -+ AVR32_OPC_ST_BVC,
1.28578 -+ AVR32_OPC_ST_BQS,
1.28579 -+ AVR32_OPC_ST_BAL,
1.28580 -+ AVR32_OPC_MOVH,
1.28581 -+ AVR32_OPC__END_
1.28582 -+};
1.28583 -+#define AVR32_NR_OPCODES AVR32_OPC__END_
1.28584 -+
1.28585 -+enum avr32_syntax_type
1.28586 -+{
1.28587 -+ AVR32_SYNTAX_ABS,
1.28588 -+ AVR32_SYNTAX_ACALL,
1.28589 -+ AVR32_SYNTAX_ACR,
1.28590 -+ AVR32_SYNTAX_ADC,
1.28591 -+ AVR32_SYNTAX_ADD1,
1.28592 -+ AVR32_SYNTAX_ADD2,
1.28593 -+ AVR32_SYNTAX_ADDABS,
1.28594 -+ AVR32_SYNTAX_ADDHH_W,
1.28595 -+ AVR32_SYNTAX_AND1,
1.28596 -+ AVR32_SYNTAX_AND2,
1.28597 -+ AVR32_SYNTAX_AND3,
1.28598 -+ AVR32_SYNTAX_ANDH,
1.28599 -+ AVR32_SYNTAX_ANDH_COH,
1.28600 -+ AVR32_SYNTAX_ANDL,
1.28601 -+ AVR32_SYNTAX_ANDL_COH,
1.28602 -+ AVR32_SYNTAX_ANDN,
1.28603 -+ AVR32_SYNTAX_ASR1,
1.28604 -+ AVR32_SYNTAX_ASR3,
1.28605 -+ AVR32_SYNTAX_ASR2,
1.28606 -+ AVR32_SYNTAX_BFEXTS,
1.28607 -+ AVR32_SYNTAX_BFEXTU,
1.28608 -+ AVR32_SYNTAX_BFINS,
1.28609 -+ AVR32_SYNTAX_BLD,
1.28610 -+ AVR32_SYNTAX_BREQ1,
1.28611 -+ AVR32_SYNTAX_BRNE1,
1.28612 -+ AVR32_SYNTAX_BRCC1,
1.28613 -+ AVR32_SYNTAX_BRCS1,
1.28614 -+ AVR32_SYNTAX_BRGE1,
1.28615 -+ AVR32_SYNTAX_BRLT1,
1.28616 -+ AVR32_SYNTAX_BRMI1,
1.28617 -+ AVR32_SYNTAX_BRPL1,
1.28618 -+ AVR32_SYNTAX_BRHS1,
1.28619 -+ AVR32_SYNTAX_BRLO1,
1.28620 -+ AVR32_SYNTAX_BREQ2,
1.28621 -+ AVR32_SYNTAX_BRNE2,
1.28622 -+ AVR32_SYNTAX_BRCC2,
1.28623 -+ AVR32_SYNTAX_BRCS2,
1.28624 -+ AVR32_SYNTAX_BRGE2,
1.28625 -+ AVR32_SYNTAX_BRLT2,
1.28626 -+ AVR32_SYNTAX_BRMI2,
1.28627 -+ AVR32_SYNTAX_BRPL2,
1.28628 -+ AVR32_SYNTAX_BRLS,
1.28629 -+ AVR32_SYNTAX_BRGT,
1.28630 -+ AVR32_SYNTAX_BRLE,
1.28631 -+ AVR32_SYNTAX_BRHI,
1.28632 -+ AVR32_SYNTAX_BRVS,
1.28633 -+ AVR32_SYNTAX_BRVC,
1.28634 -+ AVR32_SYNTAX_BRQS,
1.28635 -+ AVR32_SYNTAX_BRAL,
1.28636 -+ AVR32_SYNTAX_BRHS2,
1.28637 -+ AVR32_SYNTAX_BRLO2,
1.28638 -+ AVR32_SYNTAX_BREAKPOINT,
1.28639 -+ AVR32_SYNTAX_BREV,
1.28640 -+ AVR32_SYNTAX_BST,
1.28641 -+ AVR32_SYNTAX_CACHE,
1.28642 -+ AVR32_SYNTAX_CASTS_B,
1.28643 -+ AVR32_SYNTAX_CASTS_H,
1.28644 -+ AVR32_SYNTAX_CASTU_B,
1.28645 -+ AVR32_SYNTAX_CASTU_H,
1.28646 -+ AVR32_SYNTAX_CBR,
1.28647 -+ AVR32_SYNTAX_CLZ,
1.28648 -+ AVR32_SYNTAX_COM,
1.28649 -+ AVR32_SYNTAX_COP,
1.28650 -+ AVR32_SYNTAX_CP_B,
1.28651 -+ AVR32_SYNTAX_CP_H,
1.28652 -+ AVR32_SYNTAX_CP_W1,
1.28653 -+ AVR32_SYNTAX_CP_W2,
1.28654 -+ AVR32_SYNTAX_CP_W3,
1.28655 -+ AVR32_SYNTAX_CPC1,
1.28656 -+ AVR32_SYNTAX_CPC2,
1.28657 -+ AVR32_SYNTAX_CSRF,
1.28658 -+ AVR32_SYNTAX_CSRFCZ,
1.28659 -+ AVR32_SYNTAX_DIVS,
1.28660 -+ AVR32_SYNTAX_DIVU,
1.28661 -+ AVR32_SYNTAX_EOR1,
1.28662 -+ AVR32_SYNTAX_EOR2,
1.28663 -+ AVR32_SYNTAX_EOR3,
1.28664 -+ AVR32_SYNTAX_EORL,
1.28665 -+ AVR32_SYNTAX_EORH,
1.28666 -+ AVR32_SYNTAX_FRS,
1.28667 -+ AVR32_SYNTAX_ICALL,
1.28668 -+ AVR32_SYNTAX_INCJOSP,
1.28669 -+ AVR32_SYNTAX_LD_D1,
1.28670 -+ AVR32_SYNTAX_LD_D2,
1.28671 -+ AVR32_SYNTAX_LD_D3,
1.28672 -+ AVR32_SYNTAX_LD_D5,
1.28673 -+ AVR32_SYNTAX_LD_D4,
1.28674 -+ AVR32_SYNTAX_LD_SB2,
1.28675 -+ AVR32_SYNTAX_LD_SB1,
1.28676 -+ AVR32_SYNTAX_LD_UB1,
1.28677 -+ AVR32_SYNTAX_LD_UB2,
1.28678 -+ AVR32_SYNTAX_LD_UB5,
1.28679 -+ AVR32_SYNTAX_LD_UB3,
1.28680 -+ AVR32_SYNTAX_LD_UB4,
1.28681 -+ AVR32_SYNTAX_LD_SH1,
1.28682 -+ AVR32_SYNTAX_LD_SH2,
1.28683 -+ AVR32_SYNTAX_LD_SH5,
1.28684 -+ AVR32_SYNTAX_LD_SH3,
1.28685 -+ AVR32_SYNTAX_LD_SH4,
1.28686 -+ AVR32_SYNTAX_LD_UH1,
1.28687 -+ AVR32_SYNTAX_LD_UH2,
1.28688 -+ AVR32_SYNTAX_LD_UH5,
1.28689 -+ AVR32_SYNTAX_LD_UH3,
1.28690 -+ AVR32_SYNTAX_LD_UH4,
1.28691 -+ AVR32_SYNTAX_LD_W1,
1.28692 -+ AVR32_SYNTAX_LD_W2,
1.28693 -+ AVR32_SYNTAX_LD_W5,
1.28694 -+ AVR32_SYNTAX_LD_W6,
1.28695 -+ AVR32_SYNTAX_LD_W3,
1.28696 -+ AVR32_SYNTAX_LD_W4,
1.28697 -+ AVR32_SYNTAX_LDC_D1,
1.28698 -+ AVR32_SYNTAX_LDC_D2,
1.28699 -+ AVR32_SYNTAX_LDC_D3,
1.28700 -+ AVR32_SYNTAX_LDC_W1,
1.28701 -+ AVR32_SYNTAX_LDC_W2,
1.28702 -+ AVR32_SYNTAX_LDC_W3,
1.28703 -+ AVR32_SYNTAX_LDC0_D,
1.28704 -+ AVR32_SYNTAX_LDC0_W,
1.28705 -+ AVR32_SYNTAX_LDCM_D,
1.28706 -+ AVR32_SYNTAX_LDCM_D_PU,
1.28707 -+ AVR32_SYNTAX_LDCM_W,
1.28708 -+ AVR32_SYNTAX_LDCM_W_PU,
1.28709 -+ AVR32_SYNTAX_LDDPC,
1.28710 -+ AVR32_SYNTAX_LDDPC_EXT,
1.28711 -+ AVR32_SYNTAX_LDDSP,
1.28712 -+ AVR32_SYNTAX_LDINS_B,
1.28713 -+ AVR32_SYNTAX_LDINS_H,
1.28714 -+ AVR32_SYNTAX_LDM,
1.28715 -+ AVR32_SYNTAX_LDMTS,
1.28716 -+ AVR32_SYNTAX_LDMTS_PU,
1.28717 -+ AVR32_SYNTAX_LDSWP_SH,
1.28718 -+ AVR32_SYNTAX_LDSWP_UH,
1.28719 -+ AVR32_SYNTAX_LDSWP_W,
1.28720 -+ AVR32_SYNTAX_LSL1,
1.28721 -+ AVR32_SYNTAX_LSL3,
1.28722 -+ AVR32_SYNTAX_LSL2,
1.28723 -+ AVR32_SYNTAX_LSR1,
1.28724 -+ AVR32_SYNTAX_LSR3,
1.28725 -+ AVR32_SYNTAX_LSR2,
1.28726 -+ AVR32_SYNTAX_MAC,
1.28727 -+ AVR32_SYNTAX_MACHH_D,
1.28728 -+ AVR32_SYNTAX_MACHH_W,
1.28729 -+ AVR32_SYNTAX_MACS_D,
1.28730 -+ AVR32_SYNTAX_MACSATHH_W,
1.28731 -+ AVR32_SYNTAX_MACUD,
1.28732 -+ AVR32_SYNTAX_MACWH_D,
1.28733 -+ AVR32_SYNTAX_MAX,
1.28734 -+ AVR32_SYNTAX_MCALL,
1.28735 -+ AVR32_SYNTAX_MFDR,
1.28736 -+ AVR32_SYNTAX_MFSR,
1.28737 -+ AVR32_SYNTAX_MIN,
1.28738 -+ AVR32_SYNTAX_MOV3,
1.28739 -+ AVR32_SYNTAX_MOV1,
1.28740 -+ AVR32_SYNTAX_MOV2,
1.28741 -+ AVR32_SYNTAX_MOVEQ1,
1.28742 -+ AVR32_SYNTAX_MOVNE1,
1.28743 -+ AVR32_SYNTAX_MOVCC1,
1.28744 -+ AVR32_SYNTAX_MOVCS1,
1.28745 -+ AVR32_SYNTAX_MOVGE1,
1.28746 -+ AVR32_SYNTAX_MOVLT1,
1.28747 -+ AVR32_SYNTAX_MOVMI1,
1.28748 -+ AVR32_SYNTAX_MOVPL1,
1.28749 -+ AVR32_SYNTAX_MOVLS1,
1.28750 -+ AVR32_SYNTAX_MOVGT1,
1.28751 -+ AVR32_SYNTAX_MOVLE1,
1.28752 -+ AVR32_SYNTAX_MOVHI1,
1.28753 -+ AVR32_SYNTAX_MOVVS1,
1.28754 -+ AVR32_SYNTAX_MOVVC1,
1.28755 -+ AVR32_SYNTAX_MOVQS1,
1.28756 -+ AVR32_SYNTAX_MOVAL1,
1.28757 -+ AVR32_SYNTAX_MOVHS1,
1.28758 -+ AVR32_SYNTAX_MOVLO1,
1.28759 -+ AVR32_SYNTAX_MOVEQ2,
1.28760 -+ AVR32_SYNTAX_MOVNE2,
1.28761 -+ AVR32_SYNTAX_MOVCC2,
1.28762 -+ AVR32_SYNTAX_MOVCS2,
1.28763 -+ AVR32_SYNTAX_MOVGE2,
1.28764 -+ AVR32_SYNTAX_MOVLT2,
1.28765 -+ AVR32_SYNTAX_MOVMI2,
1.28766 -+ AVR32_SYNTAX_MOVPL2,
1.28767 -+ AVR32_SYNTAX_MOVLS2,
1.28768 -+ AVR32_SYNTAX_MOVGT2,
1.28769 -+ AVR32_SYNTAX_MOVLE2,
1.28770 -+ AVR32_SYNTAX_MOVHI2,
1.28771 -+ AVR32_SYNTAX_MOVVS2,
1.28772 -+ AVR32_SYNTAX_MOVVC2,
1.28773 -+ AVR32_SYNTAX_MOVQS2,
1.28774 -+ AVR32_SYNTAX_MOVAL2,
1.28775 -+ AVR32_SYNTAX_MOVHS2,
1.28776 -+ AVR32_SYNTAX_MOVLO2,
1.28777 -+ AVR32_SYNTAX_MTDR,
1.28778 -+ AVR32_SYNTAX_MTSR,
1.28779 -+ AVR32_SYNTAX_MUL1,
1.28780 -+ AVR32_SYNTAX_MUL2,
1.28781 -+ AVR32_SYNTAX_MUL3,
1.28782 -+ AVR32_SYNTAX_MULHH_W,
1.28783 -+ AVR32_SYNTAX_MULNHH_W,
1.28784 -+ AVR32_SYNTAX_MULNWH_D,
1.28785 -+ AVR32_SYNTAX_MULSD,
1.28786 -+ AVR32_SYNTAX_MULSATHH_H,
1.28787 -+ AVR32_SYNTAX_MULSATHH_W,
1.28788 -+ AVR32_SYNTAX_MULSATRNDHH_H,
1.28789 -+ AVR32_SYNTAX_MULSATRNDWH_W,
1.28790 -+ AVR32_SYNTAX_MULSATWH_W,
1.28791 -+ AVR32_SYNTAX_MULU_D,
1.28792 -+ AVR32_SYNTAX_MULWH_D,
1.28793 -+ AVR32_SYNTAX_MUSFR,
1.28794 -+ AVR32_SYNTAX_MUSTR,
1.28795 -+ AVR32_SYNTAX_MVCR_D,
1.28796 -+ AVR32_SYNTAX_MVCR_W,
1.28797 -+ AVR32_SYNTAX_MVRC_D,
1.28798 -+ AVR32_SYNTAX_MVRC_W,
1.28799 -+ AVR32_SYNTAX_NEG,
1.28800 -+ AVR32_SYNTAX_NOP,
1.28801 -+ AVR32_SYNTAX_OR1,
1.28802 -+ AVR32_SYNTAX_OR2,
1.28803 -+ AVR32_SYNTAX_OR3,
1.28804 -+ AVR32_SYNTAX_ORH,
1.28805 -+ AVR32_SYNTAX_ORL,
1.28806 -+ AVR32_SYNTAX_PABS_SB,
1.28807 -+ AVR32_SYNTAX_PABS_SH,
1.28808 -+ AVR32_SYNTAX_PACKSH_SB,
1.28809 -+ AVR32_SYNTAX_PACKSH_UB,
1.28810 -+ AVR32_SYNTAX_PACKW_SH,
1.28811 -+ AVR32_SYNTAX_PADD_B,
1.28812 -+ AVR32_SYNTAX_PADD_H,
1.28813 -+ AVR32_SYNTAX_PADDH_SH,
1.28814 -+ AVR32_SYNTAX_PADDH_UB,
1.28815 -+ AVR32_SYNTAX_PADDS_SB,
1.28816 -+ AVR32_SYNTAX_PADDS_SH,
1.28817 -+ AVR32_SYNTAX_PADDS_UB,
1.28818 -+ AVR32_SYNTAX_PADDS_UH,
1.28819 -+ AVR32_SYNTAX_PADDSUB_H,
1.28820 -+ AVR32_SYNTAX_PADDSUBH_SH,
1.28821 -+ AVR32_SYNTAX_PADDSUBS_SH,
1.28822 -+ AVR32_SYNTAX_PADDSUBS_UH,
1.28823 -+ AVR32_SYNTAX_PADDX_H,
1.28824 -+ AVR32_SYNTAX_PADDXH_SH,
1.28825 -+ AVR32_SYNTAX_PADDXS_SH,
1.28826 -+ AVR32_SYNTAX_PADDXS_UH,
1.28827 -+ AVR32_SYNTAX_PASR_B,
1.28828 -+ AVR32_SYNTAX_PASR_H,
1.28829 -+ AVR32_SYNTAX_PAVG_SH,
1.28830 -+ AVR32_SYNTAX_PAVG_UB,
1.28831 -+ AVR32_SYNTAX_PLSL_B,
1.28832 -+ AVR32_SYNTAX_PLSL_H,
1.28833 -+ AVR32_SYNTAX_PLSR_B,
1.28834 -+ AVR32_SYNTAX_PLSR_H,
1.28835 -+ AVR32_SYNTAX_PMAX_SH,
1.28836 -+ AVR32_SYNTAX_PMAX_UB,
1.28837 -+ AVR32_SYNTAX_PMIN_SH,
1.28838 -+ AVR32_SYNTAX_PMIN_UB,
1.28839 -+ AVR32_SYNTAX_POPJC,
1.28840 -+ AVR32_SYNTAX_POPM,
1.28841 -+ AVR32_SYNTAX_POPM_E,
1.28842 -+ AVR32_SYNTAX_PREF,
1.28843 -+ AVR32_SYNTAX_PSAD,
1.28844 -+ AVR32_SYNTAX_PSUB_B,
1.28845 -+ AVR32_SYNTAX_PSUB_H,
1.28846 -+ AVR32_SYNTAX_PSUBADD_H,
1.28847 -+ AVR32_SYNTAX_PSUBADDH_SH,
1.28848 -+ AVR32_SYNTAX_PSUBADDS_SH,
1.28849 -+ AVR32_SYNTAX_PSUBADDS_UH,
1.28850 -+ AVR32_SYNTAX_PSUBH_SH,
1.28851 -+ AVR32_SYNTAX_PSUBH_UB,
1.28852 -+ AVR32_SYNTAX_PSUBS_SB,
1.28853 -+ AVR32_SYNTAX_PSUBS_SH,
1.28854 -+ AVR32_SYNTAX_PSUBS_UB,
1.28855 -+ AVR32_SYNTAX_PSUBS_UH,
1.28856 -+ AVR32_SYNTAX_PSUBX_H,
1.28857 -+ AVR32_SYNTAX_PSUBXH_SH,
1.28858 -+ AVR32_SYNTAX_PSUBXS_SH,
1.28859 -+ AVR32_SYNTAX_PSUBXS_UH,
1.28860 -+ AVR32_SYNTAX_PUNPCKSB_H,
1.28861 -+ AVR32_SYNTAX_PUNPCKUB_H,
1.28862 -+ AVR32_SYNTAX_PUSHJC,
1.28863 -+ AVR32_SYNTAX_PUSHM,
1.28864 -+ AVR32_SYNTAX_PUSHM_E,
1.28865 -+ AVR32_SYNTAX_RCALL1,
1.28866 -+ AVR32_SYNTAX_RCALL2,
1.28867 -+ AVR32_SYNTAX_RETEQ,
1.28868 -+ AVR32_SYNTAX_RETNE,
1.28869 -+ AVR32_SYNTAX_RETCC,
1.28870 -+ AVR32_SYNTAX_RETCS,
1.28871 -+ AVR32_SYNTAX_RETGE,
1.28872 -+ AVR32_SYNTAX_RETLT,
1.28873 -+ AVR32_SYNTAX_RETMI,
1.28874 -+ AVR32_SYNTAX_RETPL,
1.28875 -+ AVR32_SYNTAX_RETLS,
1.28876 -+ AVR32_SYNTAX_RETGT,
1.28877 -+ AVR32_SYNTAX_RETLE,
1.28878 -+ AVR32_SYNTAX_RETHI,
1.28879 -+ AVR32_SYNTAX_RETVS,
1.28880 -+ AVR32_SYNTAX_RETVC,
1.28881 -+ AVR32_SYNTAX_RETQS,
1.28882 -+ AVR32_SYNTAX_RETAL,
1.28883 -+ AVR32_SYNTAX_RETHS,
1.28884 -+ AVR32_SYNTAX_RETLO,
1.28885 -+ AVR32_SYNTAX_RETD,
1.28886 -+ AVR32_SYNTAX_RETE,
1.28887 -+ AVR32_SYNTAX_RETJ,
1.28888 -+ AVR32_SYNTAX_RETS,
1.28889 -+ AVR32_SYNTAX_RJMP,
1.28890 -+ AVR32_SYNTAX_ROL,
1.28891 -+ AVR32_SYNTAX_ROR,
1.28892 -+ AVR32_SYNTAX_RSUB1,
1.28893 -+ AVR32_SYNTAX_RSUB2,
1.28894 -+ AVR32_SYNTAX_SATADD_H,
1.28895 -+ AVR32_SYNTAX_SATADD_W,
1.28896 -+ AVR32_SYNTAX_SATRNDS,
1.28897 -+ AVR32_SYNTAX_SATRNDU,
1.28898 -+ AVR32_SYNTAX_SATS,
1.28899 -+ AVR32_SYNTAX_SATSUB_H,
1.28900 -+ AVR32_SYNTAX_SATSUB_W1,
1.28901 -+ AVR32_SYNTAX_SATSUB_W2,
1.28902 -+ AVR32_SYNTAX_SATU,
1.28903 -+ AVR32_SYNTAX_SBC,
1.28904 -+ AVR32_SYNTAX_SBR,
1.28905 -+ AVR32_SYNTAX_SCALL,
1.28906 -+ AVR32_SYNTAX_SCR,
1.28907 -+ AVR32_SYNTAX_SLEEP,
1.28908 -+ AVR32_SYNTAX_SREQ,
1.28909 -+ AVR32_SYNTAX_SRNE,
1.28910 -+ AVR32_SYNTAX_SRCC,
1.28911 -+ AVR32_SYNTAX_SRCS,
1.28912 -+ AVR32_SYNTAX_SRGE,
1.28913 -+ AVR32_SYNTAX_SRLT,
1.28914 -+ AVR32_SYNTAX_SRMI,
1.28915 -+ AVR32_SYNTAX_SRPL,
1.28916 -+ AVR32_SYNTAX_SRLS,
1.28917 -+ AVR32_SYNTAX_SRGT,
1.28918 -+ AVR32_SYNTAX_SRLE,
1.28919 -+ AVR32_SYNTAX_SRHI,
1.28920 -+ AVR32_SYNTAX_SRVS,
1.28921 -+ AVR32_SYNTAX_SRVC,
1.28922 -+ AVR32_SYNTAX_SRQS,
1.28923 -+ AVR32_SYNTAX_SRAL,
1.28924 -+ AVR32_SYNTAX_SRHS,
1.28925 -+ AVR32_SYNTAX_SRLO,
1.28926 -+ AVR32_SYNTAX_SSRF,
1.28927 -+ AVR32_SYNTAX_ST_B1,
1.28928 -+ AVR32_SYNTAX_ST_B2,
1.28929 -+ AVR32_SYNTAX_ST_B5,
1.28930 -+ AVR32_SYNTAX_ST_B3,
1.28931 -+ AVR32_SYNTAX_ST_B4,
1.28932 -+ AVR32_SYNTAX_ST_D1,
1.28933 -+ AVR32_SYNTAX_ST_D2,
1.28934 -+ AVR32_SYNTAX_ST_D3,
1.28935 -+ AVR32_SYNTAX_ST_D5,
1.28936 -+ AVR32_SYNTAX_ST_D4,
1.28937 -+ AVR32_SYNTAX_ST_H1,
1.28938 -+ AVR32_SYNTAX_ST_H2,
1.28939 -+ AVR32_SYNTAX_ST_H5,
1.28940 -+ AVR32_SYNTAX_ST_H3,
1.28941 -+ AVR32_SYNTAX_ST_H4,
1.28942 -+ AVR32_SYNTAX_ST_W1,
1.28943 -+ AVR32_SYNTAX_ST_W2,
1.28944 -+ AVR32_SYNTAX_ST_W5,
1.28945 -+ AVR32_SYNTAX_ST_W3,
1.28946 -+ AVR32_SYNTAX_ST_W4,
1.28947 -+ AVR32_SYNTAX_STC_D1,
1.28948 -+ AVR32_SYNTAX_STC_D2,
1.28949 -+ AVR32_SYNTAX_STC_D3,
1.28950 -+ AVR32_SYNTAX_STC_W1,
1.28951 -+ AVR32_SYNTAX_STC_W2,
1.28952 -+ AVR32_SYNTAX_STC_W3,
1.28953 -+ AVR32_SYNTAX_STC0_D,
1.28954 -+ AVR32_SYNTAX_STC0_W,
1.28955 -+ AVR32_SYNTAX_STCM_D,
1.28956 -+ AVR32_SYNTAX_STCM_D_PU,
1.28957 -+ AVR32_SYNTAX_STCM_W,
1.28958 -+ AVR32_SYNTAX_STCM_W_PU,
1.28959 -+ AVR32_SYNTAX_STCOND,
1.28960 -+ AVR32_SYNTAX_STDSP,
1.28961 -+ AVR32_SYNTAX_STHH_W2,
1.28962 -+ AVR32_SYNTAX_STHH_W1,
1.28963 -+ AVR32_SYNTAX_STM,
1.28964 -+ AVR32_SYNTAX_STM_PU,
1.28965 -+ AVR32_SYNTAX_STMTS,
1.28966 -+ AVR32_SYNTAX_STMTS_PU,
1.28967 -+ AVR32_SYNTAX_STSWP_H,
1.28968 -+ AVR32_SYNTAX_STSWP_W,
1.28969 -+ AVR32_SYNTAX_SUB1,
1.28970 -+ AVR32_SYNTAX_SUB2,
1.28971 -+ AVR32_SYNTAX_SUB5,
1.28972 -+ AVR32_SYNTAX_SUB3_SP,
1.28973 -+ AVR32_SYNTAX_SUB3,
1.28974 -+ AVR32_SYNTAX_SUB4,
1.28975 -+ AVR32_SYNTAX_SUBEQ,
1.28976 -+ AVR32_SYNTAX_SUBNE,
1.28977 -+ AVR32_SYNTAX_SUBCC,
1.28978 -+ AVR32_SYNTAX_SUBCS,
1.28979 -+ AVR32_SYNTAX_SUBGE,
1.28980 -+ AVR32_SYNTAX_SUBLT,
1.28981 -+ AVR32_SYNTAX_SUBMI,
1.28982 -+ AVR32_SYNTAX_SUBPL,
1.28983 -+ AVR32_SYNTAX_SUBLS,
1.28984 -+ AVR32_SYNTAX_SUBGT,
1.28985 -+ AVR32_SYNTAX_SUBLE,
1.28986 -+ AVR32_SYNTAX_SUBHI,
1.28987 -+ AVR32_SYNTAX_SUBVS,
1.28988 -+ AVR32_SYNTAX_SUBVC,
1.28989 -+ AVR32_SYNTAX_SUBQS,
1.28990 -+ AVR32_SYNTAX_SUBAL,
1.28991 -+ AVR32_SYNTAX_SUBHS,
1.28992 -+ AVR32_SYNTAX_SUBLO,
1.28993 -+ AVR32_SYNTAX_SUBFEQ,
1.28994 -+ AVR32_SYNTAX_SUBFNE,
1.28995 -+ AVR32_SYNTAX_SUBFCC,
1.28996 -+ AVR32_SYNTAX_SUBFCS,
1.28997 -+ AVR32_SYNTAX_SUBFGE,
1.28998 -+ AVR32_SYNTAX_SUBFLT,
1.28999 -+ AVR32_SYNTAX_SUBFMI,
1.29000 -+ AVR32_SYNTAX_SUBFPL,
1.29001 -+ AVR32_SYNTAX_SUBFLS,
1.29002 -+ AVR32_SYNTAX_SUBFGT,
1.29003 -+ AVR32_SYNTAX_SUBFLE,
1.29004 -+ AVR32_SYNTAX_SUBFHI,
1.29005 -+ AVR32_SYNTAX_SUBFVS,
1.29006 -+ AVR32_SYNTAX_SUBFVC,
1.29007 -+ AVR32_SYNTAX_SUBFQS,
1.29008 -+ AVR32_SYNTAX_SUBFAL,
1.29009 -+ AVR32_SYNTAX_SUBFHS,
1.29010 -+ AVR32_SYNTAX_SUBFLO,
1.29011 -+ AVR32_SYNTAX_SUBHH_W,
1.29012 -+ AVR32_SYNTAX_SWAP_B,
1.29013 -+ AVR32_SYNTAX_SWAP_BH,
1.29014 -+ AVR32_SYNTAX_SWAP_H,
1.29015 -+ AVR32_SYNTAX_SYNC,
1.29016 -+ AVR32_SYNTAX_TLBR,
1.29017 -+ AVR32_SYNTAX_TLBS,
1.29018 -+ AVR32_SYNTAX_TLBW,
1.29019 -+ AVR32_SYNTAX_TNBZ,
1.29020 -+ AVR32_SYNTAX_TST,
1.29021 -+ AVR32_SYNTAX_XCHG,
1.29022 -+ AVR32_SYNTAX_MEMC,
1.29023 -+ AVR32_SYNTAX_MEMS,
1.29024 -+ AVR32_SYNTAX_MEMT,
1.29025 -+ AVR32_SYNTAX_FADD_S,
1.29026 -+ AVR32_SYNTAX_FADD_D,
1.29027 -+ AVR32_SYNTAX_FSUB_S,
1.29028 -+ AVR32_SYNTAX_FSUB_D,
1.29029 -+ AVR32_SYNTAX_FMAC_S,
1.29030 -+ AVR32_SYNTAX_FMAC_D,
1.29031 -+ AVR32_SYNTAX_FNMAC_S,
1.29032 -+ AVR32_SYNTAX_FNMAC_D,
1.29033 -+ AVR32_SYNTAX_FMSC_S,
1.29034 -+ AVR32_SYNTAX_FMSC_D,
1.29035 -+ AVR32_SYNTAX_FNMSC_S,
1.29036 -+ AVR32_SYNTAX_FNMSC_D,
1.29037 -+ AVR32_SYNTAX_FMUL_S,
1.29038 -+ AVR32_SYNTAX_FMUL_D,
1.29039 -+ AVR32_SYNTAX_FNMUL_S,
1.29040 -+ AVR32_SYNTAX_FNMUL_D,
1.29041 -+ AVR32_SYNTAX_FNEG_S,
1.29042 -+ AVR32_SYNTAX_FNEG_D,
1.29043 -+ AVR32_SYNTAX_FABS_S,
1.29044 -+ AVR32_SYNTAX_FABS_D,
1.29045 -+ AVR32_SYNTAX_FCMP_S,
1.29046 -+ AVR32_SYNTAX_FCMP_D,
1.29047 -+ AVR32_SYNTAX_FMOV1_S,
1.29048 -+ AVR32_SYNTAX_FMOV1_D,
1.29049 -+ AVR32_SYNTAX_FMOV2_S,
1.29050 -+ AVR32_SYNTAX_FMOV2_D,
1.29051 -+ AVR32_SYNTAX_FMOV3_S,
1.29052 -+ AVR32_SYNTAX_FMOV3_D,
1.29053 -+ AVR32_SYNTAX_FCASTS_D,
1.29054 -+ AVR32_SYNTAX_FCASTD_S,
1.29055 -+ AVR32_SYNTAX_LDA_W,
1.29056 -+ AVR32_SYNTAX_CALL,
1.29057 -+ AVR32_SYNTAX_PICOSVMAC0,
1.29058 -+ AVR32_SYNTAX_PICOSVMAC1,
1.29059 -+ AVR32_SYNTAX_PICOSVMAC2,
1.29060 -+ AVR32_SYNTAX_PICOSVMAC3,
1.29061 -+ AVR32_SYNTAX_PICOSVMUL0,
1.29062 -+ AVR32_SYNTAX_PICOSVMUL1,
1.29063 -+ AVR32_SYNTAX_PICOSVMUL2,
1.29064 -+ AVR32_SYNTAX_PICOSVMUL3,
1.29065 -+ AVR32_SYNTAX_PICOVMAC0,
1.29066 -+ AVR32_SYNTAX_PICOVMAC1,
1.29067 -+ AVR32_SYNTAX_PICOVMAC2,
1.29068 -+ AVR32_SYNTAX_PICOVMAC3,
1.29069 -+ AVR32_SYNTAX_PICOVMUL0,
1.29070 -+ AVR32_SYNTAX_PICOVMUL1,
1.29071 -+ AVR32_SYNTAX_PICOVMUL2,
1.29072 -+ AVR32_SYNTAX_PICOVMUL3,
1.29073 -+ AVR32_SYNTAX_PICOLD_D2,
1.29074 -+ AVR32_SYNTAX_PICOLD_D3,
1.29075 -+ AVR32_SYNTAX_PICOLD_D1,
1.29076 -+ AVR32_SYNTAX_PICOLD_W2,
1.29077 -+ AVR32_SYNTAX_PICOLD_W3,
1.29078 -+ AVR32_SYNTAX_PICOLD_W1,
1.29079 -+ AVR32_SYNTAX_PICOLDM_D,
1.29080 -+ AVR32_SYNTAX_PICOLDM_D_PU,
1.29081 -+ AVR32_SYNTAX_PICOLDM_W,
1.29082 -+ AVR32_SYNTAX_PICOLDM_W_PU,
1.29083 -+ AVR32_SYNTAX_PICOMV_D1,
1.29084 -+ AVR32_SYNTAX_PICOMV_D2,
1.29085 -+ AVR32_SYNTAX_PICOMV_W1,
1.29086 -+ AVR32_SYNTAX_PICOMV_W2,
1.29087 -+ AVR32_SYNTAX_PICOST_D2,
1.29088 -+ AVR32_SYNTAX_PICOST_D3,
1.29089 -+ AVR32_SYNTAX_PICOST_D1,
1.29090 -+ AVR32_SYNTAX_PICOST_W2,
1.29091 -+ AVR32_SYNTAX_PICOST_W3,
1.29092 -+ AVR32_SYNTAX_PICOST_W1,
1.29093 -+ AVR32_SYNTAX_PICOSTM_D,
1.29094 -+ AVR32_SYNTAX_PICOSTM_D_PU,
1.29095 -+ AVR32_SYNTAX_PICOSTM_W,
1.29096 -+ AVR32_SYNTAX_PICOSTM_W_PU,
1.29097 -+ AVR32_SYNTAX_RSUBEQ,
1.29098 -+ AVR32_SYNTAX_RSUBNE,
1.29099 -+ AVR32_SYNTAX_RSUBCC,
1.29100 -+ AVR32_SYNTAX_RSUBCS,
1.29101 -+ AVR32_SYNTAX_RSUBGE,
1.29102 -+ AVR32_SYNTAX_RSUBLT,
1.29103 -+ AVR32_SYNTAX_RSUBMI,
1.29104 -+ AVR32_SYNTAX_RSUBPL,
1.29105 -+ AVR32_SYNTAX_RSUBLS,
1.29106 -+ AVR32_SYNTAX_RSUBGT,
1.29107 -+ AVR32_SYNTAX_RSUBLE,
1.29108 -+ AVR32_SYNTAX_RSUBHI,
1.29109 -+ AVR32_SYNTAX_RSUBVS,
1.29110 -+ AVR32_SYNTAX_RSUBVC,
1.29111 -+ AVR32_SYNTAX_RSUBQS,
1.29112 -+ AVR32_SYNTAX_RSUBAL,
1.29113 -+ AVR32_SYNTAX_RSUBHS,
1.29114 -+ AVR32_SYNTAX_RSUBLO,
1.29115 -+ AVR32_SYNTAX_ADDEQ,
1.29116 -+ AVR32_SYNTAX_ADDNE,
1.29117 -+ AVR32_SYNTAX_ADDCC,
1.29118 -+ AVR32_SYNTAX_ADDCS,
1.29119 -+ AVR32_SYNTAX_ADDGE,
1.29120 -+ AVR32_SYNTAX_ADDLT,
1.29121 -+ AVR32_SYNTAX_ADDMI,
1.29122 -+ AVR32_SYNTAX_ADDPL,
1.29123 -+ AVR32_SYNTAX_ADDLS,
1.29124 -+ AVR32_SYNTAX_ADDGT,
1.29125 -+ AVR32_SYNTAX_ADDLE,
1.29126 -+ AVR32_SYNTAX_ADDHI,
1.29127 -+ AVR32_SYNTAX_ADDVS,
1.29128 -+ AVR32_SYNTAX_ADDVC,
1.29129 -+ AVR32_SYNTAX_ADDQS,
1.29130 -+ AVR32_SYNTAX_ADDAL,
1.29131 -+ AVR32_SYNTAX_ADDHS,
1.29132 -+ AVR32_SYNTAX_ADDLO,
1.29133 -+ AVR32_SYNTAX_SUB2EQ,
1.29134 -+ AVR32_SYNTAX_SUB2NE,
1.29135 -+ AVR32_SYNTAX_SUB2CC,
1.29136 -+ AVR32_SYNTAX_SUB2CS,
1.29137 -+ AVR32_SYNTAX_SUB2GE,
1.29138 -+ AVR32_SYNTAX_SUB2LT,
1.29139 -+ AVR32_SYNTAX_SUB2MI,
1.29140 -+ AVR32_SYNTAX_SUB2PL,
1.29141 -+ AVR32_SYNTAX_SUB2LS,
1.29142 -+ AVR32_SYNTAX_SUB2GT,
1.29143 -+ AVR32_SYNTAX_SUB2LE,
1.29144 -+ AVR32_SYNTAX_SUB2HI,
1.29145 -+ AVR32_SYNTAX_SUB2VS,
1.29146 -+ AVR32_SYNTAX_SUB2VC,
1.29147 -+ AVR32_SYNTAX_SUB2QS,
1.29148 -+ AVR32_SYNTAX_SUB2AL,
1.29149 -+ AVR32_SYNTAX_SUB2HS,
1.29150 -+ AVR32_SYNTAX_SUB2LO,
1.29151 -+ AVR32_SYNTAX_ANDEQ,
1.29152 -+ AVR32_SYNTAX_ANDNE,
1.29153 -+ AVR32_SYNTAX_ANDCC,
1.29154 -+ AVR32_SYNTAX_ANDCS,
1.29155 -+ AVR32_SYNTAX_ANDGE,
1.29156 -+ AVR32_SYNTAX_ANDLT,
1.29157 -+ AVR32_SYNTAX_ANDMI,
1.29158 -+ AVR32_SYNTAX_ANDPL,
1.29159 -+ AVR32_SYNTAX_ANDLS,
1.29160 -+ AVR32_SYNTAX_ANDGT,
1.29161 -+ AVR32_SYNTAX_ANDLE,
1.29162 -+ AVR32_SYNTAX_ANDHI,
1.29163 -+ AVR32_SYNTAX_ANDVS,
1.29164 -+ AVR32_SYNTAX_ANDVC,
1.29165 -+ AVR32_SYNTAX_ANDQS,
1.29166 -+ AVR32_SYNTAX_ANDAL,
1.29167 -+ AVR32_SYNTAX_ANDHS,
1.29168 -+ AVR32_SYNTAX_ANDLO,
1.29169 -+ AVR32_SYNTAX_OREQ,
1.29170 -+ AVR32_SYNTAX_ORNE,
1.29171 -+ AVR32_SYNTAX_ORCC,
1.29172 -+ AVR32_SYNTAX_ORCS,
1.29173 -+ AVR32_SYNTAX_ORGE,
1.29174 -+ AVR32_SYNTAX_ORLT,
1.29175 -+ AVR32_SYNTAX_ORMI,
1.29176 -+ AVR32_SYNTAX_ORPL,
1.29177 -+ AVR32_SYNTAX_ORLS,
1.29178 -+ AVR32_SYNTAX_ORGT,
1.29179 -+ AVR32_SYNTAX_ORLE,
1.29180 -+ AVR32_SYNTAX_ORHI,
1.29181 -+ AVR32_SYNTAX_ORVS,
1.29182 -+ AVR32_SYNTAX_ORVC,
1.29183 -+ AVR32_SYNTAX_ORQS,
1.29184 -+ AVR32_SYNTAX_ORAL,
1.29185 -+ AVR32_SYNTAX_ORHS,
1.29186 -+ AVR32_SYNTAX_ORLO,
1.29187 -+ AVR32_SYNTAX_EOREQ,
1.29188 -+ AVR32_SYNTAX_EORNE,
1.29189 -+ AVR32_SYNTAX_EORCC,
1.29190 -+ AVR32_SYNTAX_EORCS,
1.29191 -+ AVR32_SYNTAX_EORGE,
1.29192 -+ AVR32_SYNTAX_EORLT,
1.29193 -+ AVR32_SYNTAX_EORMI,
1.29194 -+ AVR32_SYNTAX_EORPL,
1.29195 -+ AVR32_SYNTAX_EORLS,
1.29196 -+ AVR32_SYNTAX_EORGT,
1.29197 -+ AVR32_SYNTAX_EORLE,
1.29198 -+ AVR32_SYNTAX_EORHI,
1.29199 -+ AVR32_SYNTAX_EORVS,
1.29200 -+ AVR32_SYNTAX_EORVC,
1.29201 -+ AVR32_SYNTAX_EORQS,
1.29202 -+ AVR32_SYNTAX_EORAL,
1.29203 -+ AVR32_SYNTAX_EORHS,
1.29204 -+ AVR32_SYNTAX_EORLO,
1.29205 -+ AVR32_SYNTAX_LD_WEQ,
1.29206 -+ AVR32_SYNTAX_LD_WNE,
1.29207 -+ AVR32_SYNTAX_LD_WCC,
1.29208 -+ AVR32_SYNTAX_LD_WCS,
1.29209 -+ AVR32_SYNTAX_LD_WGE,
1.29210 -+ AVR32_SYNTAX_LD_WLT,
1.29211 -+ AVR32_SYNTAX_LD_WMI,
1.29212 -+ AVR32_SYNTAX_LD_WPL,
1.29213 -+ AVR32_SYNTAX_LD_WLS,
1.29214 -+ AVR32_SYNTAX_LD_WGT,
1.29215 -+ AVR32_SYNTAX_LD_WLE,
1.29216 -+ AVR32_SYNTAX_LD_WHI,
1.29217 -+ AVR32_SYNTAX_LD_WVS,
1.29218 -+ AVR32_SYNTAX_LD_WVC,
1.29219 -+ AVR32_SYNTAX_LD_WQS,
1.29220 -+ AVR32_SYNTAX_LD_WAL,
1.29221 -+ AVR32_SYNTAX_LD_WHS,
1.29222 -+ AVR32_SYNTAX_LD_WLO,
1.29223 -+ AVR32_SYNTAX_LD_SHEQ,
1.29224 -+ AVR32_SYNTAX_LD_SHNE,
1.29225 -+ AVR32_SYNTAX_LD_SHCC,
1.29226 -+ AVR32_SYNTAX_LD_SHCS,
1.29227 -+ AVR32_SYNTAX_LD_SHGE,
1.29228 -+ AVR32_SYNTAX_LD_SHLT,
1.29229 -+ AVR32_SYNTAX_LD_SHMI,
1.29230 -+ AVR32_SYNTAX_LD_SHPL,
1.29231 -+ AVR32_SYNTAX_LD_SHLS,
1.29232 -+ AVR32_SYNTAX_LD_SHGT,
1.29233 -+ AVR32_SYNTAX_LD_SHLE,
1.29234 -+ AVR32_SYNTAX_LD_SHHI,
1.29235 -+ AVR32_SYNTAX_LD_SHVS,
1.29236 -+ AVR32_SYNTAX_LD_SHVC,
1.29237 -+ AVR32_SYNTAX_LD_SHQS,
1.29238 -+ AVR32_SYNTAX_LD_SHAL,
1.29239 -+ AVR32_SYNTAX_LD_SHHS,
1.29240 -+ AVR32_SYNTAX_LD_SHLO,
1.29241 -+ AVR32_SYNTAX_LD_UHEQ,
1.29242 -+ AVR32_SYNTAX_LD_UHNE,
1.29243 -+ AVR32_SYNTAX_LD_UHCC,
1.29244 -+ AVR32_SYNTAX_LD_UHCS,
1.29245 -+ AVR32_SYNTAX_LD_UHGE,
1.29246 -+ AVR32_SYNTAX_LD_UHLT,
1.29247 -+ AVR32_SYNTAX_LD_UHMI,
1.29248 -+ AVR32_SYNTAX_LD_UHPL,
1.29249 -+ AVR32_SYNTAX_LD_UHLS,
1.29250 -+ AVR32_SYNTAX_LD_UHGT,
1.29251 -+ AVR32_SYNTAX_LD_UHLE,
1.29252 -+ AVR32_SYNTAX_LD_UHHI,
1.29253 -+ AVR32_SYNTAX_LD_UHVS,
1.29254 -+ AVR32_SYNTAX_LD_UHVC,
1.29255 -+ AVR32_SYNTAX_LD_UHQS,
1.29256 -+ AVR32_SYNTAX_LD_UHAL,
1.29257 -+ AVR32_SYNTAX_LD_UHHS,
1.29258 -+ AVR32_SYNTAX_LD_UHLO,
1.29259 -+ AVR32_SYNTAX_LD_SBEQ,
1.29260 -+ AVR32_SYNTAX_LD_SBNE,
1.29261 -+ AVR32_SYNTAX_LD_SBCC,
1.29262 -+ AVR32_SYNTAX_LD_SBCS,
1.29263 -+ AVR32_SYNTAX_LD_SBGE,
1.29264 -+ AVR32_SYNTAX_LD_SBLT,
1.29265 -+ AVR32_SYNTAX_LD_SBMI,
1.29266 -+ AVR32_SYNTAX_LD_SBPL,
1.29267 -+ AVR32_SYNTAX_LD_SBLS,
1.29268 -+ AVR32_SYNTAX_LD_SBGT,
1.29269 -+ AVR32_SYNTAX_LD_SBLE,
1.29270 -+ AVR32_SYNTAX_LD_SBHI,
1.29271 -+ AVR32_SYNTAX_LD_SBVS,
1.29272 -+ AVR32_SYNTAX_LD_SBVC,
1.29273 -+ AVR32_SYNTAX_LD_SBQS,
1.29274 -+ AVR32_SYNTAX_LD_SBAL,
1.29275 -+ AVR32_SYNTAX_LD_SBHS,
1.29276 -+ AVR32_SYNTAX_LD_SBLO,
1.29277 -+ AVR32_SYNTAX_LD_UBEQ,
1.29278 -+ AVR32_SYNTAX_LD_UBNE,
1.29279 -+ AVR32_SYNTAX_LD_UBCC,
1.29280 -+ AVR32_SYNTAX_LD_UBCS,
1.29281 -+ AVR32_SYNTAX_LD_UBGE,
1.29282 -+ AVR32_SYNTAX_LD_UBLT,
1.29283 -+ AVR32_SYNTAX_LD_UBMI,
1.29284 -+ AVR32_SYNTAX_LD_UBPL,
1.29285 -+ AVR32_SYNTAX_LD_UBLS,
1.29286 -+ AVR32_SYNTAX_LD_UBGT,
1.29287 -+ AVR32_SYNTAX_LD_UBLE,
1.29288 -+ AVR32_SYNTAX_LD_UBHI,
1.29289 -+ AVR32_SYNTAX_LD_UBVS,
1.29290 -+ AVR32_SYNTAX_LD_UBVC,
1.29291 -+ AVR32_SYNTAX_LD_UBQS,
1.29292 -+ AVR32_SYNTAX_LD_UBAL,
1.29293 -+ AVR32_SYNTAX_LD_UBHS,
1.29294 -+ AVR32_SYNTAX_LD_UBLO,
1.29295 -+ AVR32_SYNTAX_ST_WEQ,
1.29296 -+ AVR32_SYNTAX_ST_WNE,
1.29297 -+ AVR32_SYNTAX_ST_WCC,
1.29298 -+ AVR32_SYNTAX_ST_WCS,
1.29299 -+ AVR32_SYNTAX_ST_WGE,
1.29300 -+ AVR32_SYNTAX_ST_WLT,
1.29301 -+ AVR32_SYNTAX_ST_WMI,
1.29302 -+ AVR32_SYNTAX_ST_WPL,
1.29303 -+ AVR32_SYNTAX_ST_WLS,
1.29304 -+ AVR32_SYNTAX_ST_WGT,
1.29305 -+ AVR32_SYNTAX_ST_WLE,
1.29306 -+ AVR32_SYNTAX_ST_WHI,
1.29307 -+ AVR32_SYNTAX_ST_WVS,
1.29308 -+ AVR32_SYNTAX_ST_WVC,
1.29309 -+ AVR32_SYNTAX_ST_WQS,
1.29310 -+ AVR32_SYNTAX_ST_WAL,
1.29311 -+ AVR32_SYNTAX_ST_WHS,
1.29312 -+ AVR32_SYNTAX_ST_WLO,
1.29313 -+ AVR32_SYNTAX_ST_HEQ,
1.29314 -+ AVR32_SYNTAX_ST_HNE,
1.29315 -+ AVR32_SYNTAX_ST_HCC,
1.29316 -+ AVR32_SYNTAX_ST_HCS,
1.29317 -+ AVR32_SYNTAX_ST_HGE,
1.29318 -+ AVR32_SYNTAX_ST_HLT,
1.29319 -+ AVR32_SYNTAX_ST_HMI,
1.29320 -+ AVR32_SYNTAX_ST_HPL,
1.29321 -+ AVR32_SYNTAX_ST_HLS,
1.29322 -+ AVR32_SYNTAX_ST_HGT,
1.29323 -+ AVR32_SYNTAX_ST_HLE,
1.29324 -+ AVR32_SYNTAX_ST_HHI,
1.29325 -+ AVR32_SYNTAX_ST_HVS,
1.29326 -+ AVR32_SYNTAX_ST_HVC,
1.29327 -+ AVR32_SYNTAX_ST_HQS,
1.29328 -+ AVR32_SYNTAX_ST_HAL,
1.29329 -+ AVR32_SYNTAX_ST_HHS,
1.29330 -+ AVR32_SYNTAX_ST_HLO,
1.29331 -+ AVR32_SYNTAX_ST_BEQ,
1.29332 -+ AVR32_SYNTAX_ST_BNE,
1.29333 -+ AVR32_SYNTAX_ST_BCC,
1.29334 -+ AVR32_SYNTAX_ST_BCS,
1.29335 -+ AVR32_SYNTAX_ST_BGE,
1.29336 -+ AVR32_SYNTAX_ST_BLT,
1.29337 -+ AVR32_SYNTAX_ST_BMI,
1.29338 -+ AVR32_SYNTAX_ST_BPL,
1.29339 -+ AVR32_SYNTAX_ST_BLS,
1.29340 -+ AVR32_SYNTAX_ST_BGT,
1.29341 -+ AVR32_SYNTAX_ST_BLE,
1.29342 -+ AVR32_SYNTAX_ST_BHI,
1.29343 -+ AVR32_SYNTAX_ST_BVS,
1.29344 -+ AVR32_SYNTAX_ST_BVC,
1.29345 -+ AVR32_SYNTAX_ST_BQS,
1.29346 -+ AVR32_SYNTAX_ST_BAL,
1.29347 -+ AVR32_SYNTAX_ST_BHS,
1.29348 -+ AVR32_SYNTAX_ST_BLO,
1.29349 -+ AVR32_SYNTAX_MOVH,
1.29350 -+ AVR32_SYNTAX__END_
1.29351 -+};
1.29352 -+#define AVR32_NR_SYNTAX AVR32_SYNTAX__END_
1.29353 -+
1.29354 -+enum avr32_alias_type
1.29355 -+ {
1.29356 -+ AVR32_ALIAS_FMAC_S,
1.29357 -+ AVR32_ALIAS_FMAC_D,
1.29358 -+ AVR32_ALIAS_FNMAC_S,
1.29359 -+ AVR32_ALIAS_FNMAC_D,
1.29360 -+ AVR32_ALIAS_FMSC_S,
1.29361 -+ AVR32_ALIAS_FMSC_D,
1.29362 -+ AVR32_ALIAS_FNMSC_S,
1.29363 -+ AVR32_ALIAS_FNMSC_D,
1.29364 -+ AVR32_ALIAS_FADD_S,
1.29365 -+ AVR32_ALIAS_FADD_D,
1.29366 -+ AVR32_ALIAS_FSUB_S,
1.29367 -+ AVR32_ALIAS_FSUB_D,
1.29368 -+ AVR32_ALIAS_FMUL_S,
1.29369 -+ AVR32_ALIAS_FMUL_D,
1.29370 -+ AVR32_ALIAS_FNMUL_S,
1.29371 -+ AVR32_ALIAS_FNMUL_D,
1.29372 -+ AVR32_ALIAS_FNEG_S,
1.29373 -+ AVR32_ALIAS_FNEG_D,
1.29374 -+ AVR32_ALIAS_FABS_S,
1.29375 -+ AVR32_ALIAS_FABS_D,
1.29376 -+ AVR32_ALIAS_FCMP_S,
1.29377 -+ AVR32_ALIAS_FCMP_D,
1.29378 -+ AVR32_ALIAS_FMOV1_S,
1.29379 -+ AVR32_ALIAS_FMOV1_D,
1.29380 -+ AVR32_ALIAS_FMOV2_S,
1.29381 -+ AVR32_ALIAS_FMOV2_D,
1.29382 -+ AVR32_ALIAS_FMOV3_S,
1.29383 -+ AVR32_ALIAS_FMOV3_D,
1.29384 -+ AVR32_ALIAS_FCASTS_D,
1.29385 -+ AVR32_ALIAS_FCASTD_S,
1.29386 -+ AVR32_ALIAS_PICOSVMAC0,
1.29387 -+ AVR32_ALIAS_PICOSVMAC1,
1.29388 -+ AVR32_ALIAS_PICOSVMAC2,
1.29389 -+ AVR32_ALIAS_PICOSVMAC3,
1.29390 -+ AVR32_ALIAS_PICOSVMUL0,
1.29391 -+ AVR32_ALIAS_PICOSVMUL1,
1.29392 -+ AVR32_ALIAS_PICOSVMUL2,
1.29393 -+ AVR32_ALIAS_PICOSVMUL3,
1.29394 -+ AVR32_ALIAS_PICOVMAC0,
1.29395 -+ AVR32_ALIAS_PICOVMAC1,
1.29396 -+ AVR32_ALIAS_PICOVMAC2,
1.29397 -+ AVR32_ALIAS_PICOVMAC3,
1.29398 -+ AVR32_ALIAS_PICOVMUL0,
1.29399 -+ AVR32_ALIAS_PICOVMUL1,
1.29400 -+ AVR32_ALIAS_PICOVMUL2,
1.29401 -+ AVR32_ALIAS_PICOVMUL3,
1.29402 -+ AVR32_ALIAS_PICOLD_D1,
1.29403 -+ AVR32_ALIAS_PICOLD_D2,
1.29404 -+ AVR32_ALIAS_PICOLD_D3,
1.29405 -+ AVR32_ALIAS_PICOLD_W1,
1.29406 -+ AVR32_ALIAS_PICOLD_W2,
1.29407 -+ AVR32_ALIAS_PICOLD_W3,
1.29408 -+ AVR32_ALIAS_PICOLDM_D,
1.29409 -+ AVR32_ALIAS_PICOLDM_D_PU,
1.29410 -+ AVR32_ALIAS_PICOLDM_W,
1.29411 -+ AVR32_ALIAS_PICOLDM_W_PU,
1.29412 -+ AVR32_ALIAS_PICOMV_D1,
1.29413 -+ AVR32_ALIAS_PICOMV_D2,
1.29414 -+ AVR32_ALIAS_PICOMV_W1,
1.29415 -+ AVR32_ALIAS_PICOMV_W2,
1.29416 -+ AVR32_ALIAS_PICOST_D1,
1.29417 -+ AVR32_ALIAS_PICOST_D2,
1.29418 -+ AVR32_ALIAS_PICOST_D3,
1.29419 -+ AVR32_ALIAS_PICOST_W1,
1.29420 -+ AVR32_ALIAS_PICOST_W2,
1.29421 -+ AVR32_ALIAS_PICOST_W3,
1.29422 -+ AVR32_ALIAS_PICOSTM_D,
1.29423 -+ AVR32_ALIAS_PICOSTM_D_PU,
1.29424 -+ AVR32_ALIAS_PICOSTM_W,
1.29425 -+ AVR32_ALIAS_PICOSTM_W_PU,
1.29426 -+ AVR32_ALIAS__END_
1.29427 -+ };
1.29428 -+#define AVR32_NR_ALIAS AVR32_ALIAS__END_
1.29429 -+
1.29430 -+enum avr32_mnemonic_type
1.29431 -+{
1.29432 -+ AVR32_MNEMONIC_ABS,
1.29433 -+ AVR32_MNEMONIC_ACALL,
1.29434 -+ AVR32_MNEMONIC_ACR,
1.29435 -+ AVR32_MNEMONIC_ADC,
1.29436 -+ AVR32_MNEMONIC_ADD,
1.29437 -+ AVR32_MNEMONIC_ADDABS,
1.29438 -+ AVR32_MNEMONIC_ADDHH_W,
1.29439 -+ AVR32_MNEMONIC_AND,
1.29440 -+ AVR32_MNEMONIC_ANDH,
1.29441 -+ AVR32_MNEMONIC_ANDL,
1.29442 -+ AVR32_MNEMONIC_ANDN,
1.29443 -+ AVR32_MNEMONIC_ASR,
1.29444 -+ AVR32_MNEMONIC_BFEXTS,
1.29445 -+ AVR32_MNEMONIC_BFEXTU,
1.29446 -+ AVR32_MNEMONIC_BFINS,
1.29447 -+ AVR32_MNEMONIC_BLD,
1.29448 -+ AVR32_MNEMONIC_BREQ,
1.29449 -+ AVR32_MNEMONIC_BRNE,
1.29450 -+ AVR32_MNEMONIC_BRCC,
1.29451 -+ AVR32_MNEMONIC_BRCS,
1.29452 -+ AVR32_MNEMONIC_BRGE,
1.29453 -+ AVR32_MNEMONIC_BRLT,
1.29454 -+ AVR32_MNEMONIC_BRMI,
1.29455 -+ AVR32_MNEMONIC_BRPL,
1.29456 -+ AVR32_MNEMONIC_BRHS,
1.29457 -+ AVR32_MNEMONIC_BRLO,
1.29458 -+ AVR32_MNEMONIC_BRLS,
1.29459 -+ AVR32_MNEMONIC_BRGT,
1.29460 -+ AVR32_MNEMONIC_BRLE,
1.29461 -+ AVR32_MNEMONIC_BRHI,
1.29462 -+ AVR32_MNEMONIC_BRVS,
1.29463 -+ AVR32_MNEMONIC_BRVC,
1.29464 -+ AVR32_MNEMONIC_BRQS,
1.29465 -+ AVR32_MNEMONIC_BRAL,
1.29466 -+ AVR32_MNEMONIC_BREAKPOINT,
1.29467 -+ AVR32_MNEMONIC_BREV,
1.29468 -+ AVR32_MNEMONIC_BST,
1.29469 -+ AVR32_MNEMONIC_CACHE,
1.29470 -+ AVR32_MNEMONIC_CASTS_B,
1.29471 -+ AVR32_MNEMONIC_CASTS_H,
1.29472 -+ AVR32_MNEMONIC_CASTU_B,
1.29473 -+ AVR32_MNEMONIC_CASTU_H,
1.29474 -+ AVR32_MNEMONIC_CBR,
1.29475 -+ AVR32_MNEMONIC_CLZ,
1.29476 -+ AVR32_MNEMONIC_COM,
1.29477 -+ AVR32_MNEMONIC_COP,
1.29478 -+ AVR32_MNEMONIC_CP_B,
1.29479 -+ AVR32_MNEMONIC_CP_H,
1.29480 -+ AVR32_MNEMONIC_CP_W,
1.29481 -+ AVR32_MNEMONIC_CP,
1.29482 -+ AVR32_MNEMONIC_CPC,
1.29483 -+ AVR32_MNEMONIC_CSRF,
1.29484 -+ AVR32_MNEMONIC_CSRFCZ,
1.29485 -+ AVR32_MNEMONIC_DIVS,
1.29486 -+ AVR32_MNEMONIC_DIVU,
1.29487 -+ AVR32_MNEMONIC_EOR,
1.29488 -+ AVR32_MNEMONIC_EORL,
1.29489 -+ AVR32_MNEMONIC_EORH,
1.29490 -+ AVR32_MNEMONIC_FRS,
1.29491 -+ AVR32_MNEMONIC_ICALL,
1.29492 -+ AVR32_MNEMONIC_INCJOSP,
1.29493 -+ AVR32_MNEMONIC_LD_D,
1.29494 -+ AVR32_MNEMONIC_LD_SB,
1.29495 -+ AVR32_MNEMONIC_LD_UB,
1.29496 -+ AVR32_MNEMONIC_LD_SH,
1.29497 -+ AVR32_MNEMONIC_LD_UH,
1.29498 -+ AVR32_MNEMONIC_LD_W,
1.29499 -+ AVR32_MNEMONIC_LDC_D,
1.29500 -+ AVR32_MNEMONIC_LDC_W,
1.29501 -+ AVR32_MNEMONIC_LDC0_D,
1.29502 -+ AVR32_MNEMONIC_LDC0_W,
1.29503 -+ AVR32_MNEMONIC_LDCM_D,
1.29504 -+ AVR32_MNEMONIC_LDCM_W,
1.29505 -+ AVR32_MNEMONIC_LDDPC,
1.29506 -+ AVR32_MNEMONIC_LDDSP,
1.29507 -+ AVR32_MNEMONIC_LDINS_B,
1.29508 -+ AVR32_MNEMONIC_LDINS_H,
1.29509 -+ AVR32_MNEMONIC_LDM,
1.29510 -+ AVR32_MNEMONIC_LDMTS,
1.29511 -+ AVR32_MNEMONIC_LDSWP_SH,
1.29512 -+ AVR32_MNEMONIC_LDSWP_UH,
1.29513 -+ AVR32_MNEMONIC_LDSWP_W,
1.29514 -+ AVR32_MNEMONIC_LSL,
1.29515 -+ AVR32_MNEMONIC_LSR,
1.29516 -+ AVR32_MNEMONIC_MAC,
1.29517 -+ AVR32_MNEMONIC_MACHH_D,
1.29518 -+ AVR32_MNEMONIC_MACHH_W,
1.29519 -+ AVR32_MNEMONIC_MACS_D,
1.29520 -+ AVR32_MNEMONIC_MACSATHH_W,
1.29521 -+ AVR32_MNEMONIC_MACU_D,
1.29522 -+ AVR32_MNEMONIC_MACWH_D,
1.29523 -+ AVR32_MNEMONIC_MAX,
1.29524 -+ AVR32_MNEMONIC_MCALL,
1.29525 -+ AVR32_MNEMONIC_MFDR,
1.29526 -+ AVR32_MNEMONIC_MFSR,
1.29527 -+ AVR32_MNEMONIC_MIN,
1.29528 -+ AVR32_MNEMONIC_MOV,
1.29529 -+ AVR32_MNEMONIC_MOVEQ,
1.29530 -+ AVR32_MNEMONIC_MOVNE,
1.29531 -+ AVR32_MNEMONIC_MOVCC,
1.29532 -+ AVR32_MNEMONIC_MOVCS,
1.29533 -+ AVR32_MNEMONIC_MOVGE,
1.29534 -+ AVR32_MNEMONIC_MOVLT,
1.29535 -+ AVR32_MNEMONIC_MOVMI,
1.29536 -+ AVR32_MNEMONIC_MOVPL,
1.29537 -+ AVR32_MNEMONIC_MOVLS,
1.29538 -+ AVR32_MNEMONIC_MOVGT,
1.29539 -+ AVR32_MNEMONIC_MOVLE,
1.29540 -+ AVR32_MNEMONIC_MOVHI,
1.29541 -+ AVR32_MNEMONIC_MOVVS,
1.29542 -+ AVR32_MNEMONIC_MOVVC,
1.29543 -+ AVR32_MNEMONIC_MOVQS,
1.29544 -+ AVR32_MNEMONIC_MOVAL,
1.29545 -+ AVR32_MNEMONIC_MOVHS,
1.29546 -+ AVR32_MNEMONIC_MOVLO,
1.29547 -+ AVR32_MNEMONIC_MTDR,
1.29548 -+ AVR32_MNEMONIC_MTSR,
1.29549 -+ AVR32_MNEMONIC_MUL,
1.29550 -+ AVR32_MNEMONIC_MULHH_W,
1.29551 -+ AVR32_MNEMONIC_MULNHH_W,
1.29552 -+ AVR32_MNEMONIC_MULNWH_D,
1.29553 -+ AVR32_MNEMONIC_MULS_D,
1.29554 -+ AVR32_MNEMONIC_MULSATHH_H,
1.29555 -+ AVR32_MNEMONIC_MULSATHH_W,
1.29556 -+ AVR32_MNEMONIC_MULSATRNDHH_H,
1.29557 -+ AVR32_MNEMONIC_MULSATRNDWH_W,
1.29558 -+ AVR32_MNEMONIC_MULSATWH_W,
1.29559 -+ AVR32_MNEMONIC_MULU_D,
1.29560 -+ AVR32_MNEMONIC_MULWH_D,
1.29561 -+ AVR32_MNEMONIC_MUSFR,
1.29562 -+ AVR32_MNEMONIC_MUSTR,
1.29563 -+ AVR32_MNEMONIC_MVCR_D,
1.29564 -+ AVR32_MNEMONIC_MVCR_W,
1.29565 -+ AVR32_MNEMONIC_MVRC_D,
1.29566 -+ AVR32_MNEMONIC_MVRC_W,
1.29567 -+ AVR32_MNEMONIC_NEG,
1.29568 -+ AVR32_MNEMONIC_NOP,
1.29569 -+ AVR32_MNEMONIC_OR,
1.29570 -+ AVR32_MNEMONIC_ORH,
1.29571 -+ AVR32_MNEMONIC_ORL,
1.29572 -+ AVR32_MNEMONIC_PABS_SB,
1.29573 -+ AVR32_MNEMONIC_PABS_SH,
1.29574 -+ AVR32_MNEMONIC_PACKSH_SB,
1.29575 -+ AVR32_MNEMONIC_PACKSH_UB,
1.29576 -+ AVR32_MNEMONIC_PACKW_SH,
1.29577 -+ AVR32_MNEMONIC_PADD_B,
1.29578 -+ AVR32_MNEMONIC_PADD_H,
1.29579 -+ AVR32_MNEMONIC_PADDH_SH,
1.29580 -+ AVR32_MNEMONIC_PADDH_UB,
1.29581 -+ AVR32_MNEMONIC_PADDS_SB,
1.29582 -+ AVR32_MNEMONIC_PADDS_SH,
1.29583 -+ AVR32_MNEMONIC_PADDS_UB,
1.29584 -+ AVR32_MNEMONIC_PADDS_UH,
1.29585 -+ AVR32_MNEMONIC_PADDSUB_H,
1.29586 -+ AVR32_MNEMONIC_PADDSUBH_SH,
1.29587 -+ AVR32_MNEMONIC_PADDSUBS_SH,
1.29588 -+ AVR32_MNEMONIC_PADDSUBS_UH,
1.29589 -+ AVR32_MNEMONIC_PADDX_H,
1.29590 -+ AVR32_MNEMONIC_PADDXH_SH,
1.29591 -+ AVR32_MNEMONIC_PADDXS_SH,
1.29592 -+ AVR32_MNEMONIC_PADDXS_UH,
1.29593 -+ AVR32_MNEMONIC_PASR_B,
1.29594 -+ AVR32_MNEMONIC_PASR_H,
1.29595 -+ AVR32_MNEMONIC_PAVG_SH,
1.29596 -+ AVR32_MNEMONIC_PAVG_UB,
1.29597 -+ AVR32_MNEMONIC_PLSL_B,
1.29598 -+ AVR32_MNEMONIC_PLSL_H,
1.29599 -+ AVR32_MNEMONIC_PLSR_B,
1.29600 -+ AVR32_MNEMONIC_PLSR_H,
1.29601 -+ AVR32_MNEMONIC_PMAX_SH,
1.29602 -+ AVR32_MNEMONIC_PMAX_UB,
1.29603 -+ AVR32_MNEMONIC_PMIN_SH,
1.29604 -+ AVR32_MNEMONIC_PMIN_UB,
1.29605 -+ AVR32_MNEMONIC_POPJC,
1.29606 -+ AVR32_MNEMONIC_POPM,
1.29607 -+ AVR32_MNEMONIC_PREF,
1.29608 -+ AVR32_MNEMONIC_PSAD,
1.29609 -+ AVR32_MNEMONIC_PSUB_B,
1.29610 -+ AVR32_MNEMONIC_PSUB_H,
1.29611 -+ AVR32_MNEMONIC_PSUBADD_H,
1.29612 -+ AVR32_MNEMONIC_PSUBADDH_SH,
1.29613 -+ AVR32_MNEMONIC_PSUBADDS_SH,
1.29614 -+ AVR32_MNEMONIC_PSUBADDS_UH,
1.29615 -+ AVR32_MNEMONIC_PSUBH_SH,
1.29616 -+ AVR32_MNEMONIC_PSUBH_UB,
1.29617 -+ AVR32_MNEMONIC_PSUBS_SB,
1.29618 -+ AVR32_MNEMONIC_PSUBS_SH,
1.29619 -+ AVR32_MNEMONIC_PSUBS_UB,
1.29620 -+ AVR32_MNEMONIC_PSUBS_UH,
1.29621 -+ AVR32_MNEMONIC_PSUBX_H,
1.29622 -+ AVR32_MNEMONIC_PSUBXH_SH,
1.29623 -+ AVR32_MNEMONIC_PSUBXS_SH,
1.29624 -+ AVR32_MNEMONIC_PSUBXS_UH,
1.29625 -+ AVR32_MNEMONIC_PUNPCKSB_H,
1.29626 -+ AVR32_MNEMONIC_PUNPCKUB_H,
1.29627 -+ AVR32_MNEMONIC_PUSHJC,
1.29628 -+ AVR32_MNEMONIC_PUSHM,
1.29629 -+ AVR32_MNEMONIC_RCALL,
1.29630 -+ AVR32_MNEMONIC_RETEQ,
1.29631 -+ AVR32_MNEMONIC_RETNE,
1.29632 -+ AVR32_MNEMONIC_RETCC,
1.29633 -+ AVR32_MNEMONIC_RETCS,
1.29634 -+ AVR32_MNEMONIC_RETGE,
1.29635 -+ AVR32_MNEMONIC_RETLT,
1.29636 -+ AVR32_MNEMONIC_RETMI,
1.29637 -+ AVR32_MNEMONIC_RETPL,
1.29638 -+ AVR32_MNEMONIC_RETLS,
1.29639 -+ AVR32_MNEMONIC_RETGT,
1.29640 -+ AVR32_MNEMONIC_RETLE,
1.29641 -+ AVR32_MNEMONIC_RETHI,
1.29642 -+ AVR32_MNEMONIC_RETVS,
1.29643 -+ AVR32_MNEMONIC_RETVC,
1.29644 -+ AVR32_MNEMONIC_RETQS,
1.29645 -+ AVR32_MNEMONIC_RETAL,
1.29646 -+ AVR32_MNEMONIC_RETHS,
1.29647 -+ AVR32_MNEMONIC_RETLO,
1.29648 -+ AVR32_MNEMONIC_RET,
1.29649 -+ AVR32_MNEMONIC_RETD,
1.29650 -+ AVR32_MNEMONIC_RETE,
1.29651 -+ AVR32_MNEMONIC_RETJ,
1.29652 -+ AVR32_MNEMONIC_RETS,
1.29653 -+ AVR32_MNEMONIC_RJMP,
1.29654 -+ AVR32_MNEMONIC_ROL,
1.29655 -+ AVR32_MNEMONIC_ROR,
1.29656 -+ AVR32_MNEMONIC_RSUB,
1.29657 -+ AVR32_MNEMONIC_SATADD_H,
1.29658 -+ AVR32_MNEMONIC_SATADD_W,
1.29659 -+ AVR32_MNEMONIC_SATRNDS,
1.29660 -+ AVR32_MNEMONIC_SATRNDU,
1.29661 -+ AVR32_MNEMONIC_SATS,
1.29662 -+ AVR32_MNEMONIC_SATSUB_H,
1.29663 -+ AVR32_MNEMONIC_SATSUB_W,
1.29664 -+ AVR32_MNEMONIC_SATU,
1.29665 -+ AVR32_MNEMONIC_SBC,
1.29666 -+ AVR32_MNEMONIC_SBR,
1.29667 -+ AVR32_MNEMONIC_SCALL,
1.29668 -+ AVR32_MNEMONIC_SCR,
1.29669 -+ AVR32_MNEMONIC_SLEEP,
1.29670 -+ AVR32_MNEMONIC_SREQ,
1.29671 -+ AVR32_MNEMONIC_SRNE,
1.29672 -+ AVR32_MNEMONIC_SRCC,
1.29673 -+ AVR32_MNEMONIC_SRCS,
1.29674 -+ AVR32_MNEMONIC_SRGE,
1.29675 -+ AVR32_MNEMONIC_SRLT,
1.29676 -+ AVR32_MNEMONIC_SRMI,
1.29677 -+ AVR32_MNEMONIC_SRPL,
1.29678 -+ AVR32_MNEMONIC_SRLS,
1.29679 -+ AVR32_MNEMONIC_SRGT,
1.29680 -+ AVR32_MNEMONIC_SRLE,
1.29681 -+ AVR32_MNEMONIC_SRHI,
1.29682 -+ AVR32_MNEMONIC_SRVS,
1.29683 -+ AVR32_MNEMONIC_SRVC,
1.29684 -+ AVR32_MNEMONIC_SRQS,
1.29685 -+ AVR32_MNEMONIC_SRAL,
1.29686 -+ AVR32_MNEMONIC_SRHS,
1.29687 -+ AVR32_MNEMONIC_SRLO,
1.29688 -+ AVR32_MNEMONIC_SSRF,
1.29689 -+ AVR32_MNEMONIC_ST_B,
1.29690 -+ AVR32_MNEMONIC_ST_D,
1.29691 -+ AVR32_MNEMONIC_ST_H,
1.29692 -+ AVR32_MNEMONIC_ST_W,
1.29693 -+ AVR32_MNEMONIC_STC_D,
1.29694 -+ AVR32_MNEMONIC_STC_W,
1.29695 -+ AVR32_MNEMONIC_STC0_D,
1.29696 -+ AVR32_MNEMONIC_STC0_W,
1.29697 -+ AVR32_MNEMONIC_STCM_D,
1.29698 -+ AVR32_MNEMONIC_STCM_W,
1.29699 -+ AVR32_MNEMONIC_STCOND,
1.29700 -+ AVR32_MNEMONIC_STDSP,
1.29701 -+ AVR32_MNEMONIC_STHH_W,
1.29702 -+ AVR32_MNEMONIC_STM,
1.29703 -+ AVR32_MNEMONIC_STMTS,
1.29704 -+ AVR32_MNEMONIC_STSWP_H,
1.29705 -+ AVR32_MNEMONIC_STSWP_W,
1.29706 -+ AVR32_MNEMONIC_SUB,
1.29707 -+ AVR32_MNEMONIC_SUBEQ,
1.29708 -+ AVR32_MNEMONIC_SUBNE,
1.29709 -+ AVR32_MNEMONIC_SUBCC,
1.29710 -+ AVR32_MNEMONIC_SUBCS,
1.29711 -+ AVR32_MNEMONIC_SUBGE,
1.29712 -+ AVR32_MNEMONIC_SUBLT,
1.29713 -+ AVR32_MNEMONIC_SUBMI,
1.29714 -+ AVR32_MNEMONIC_SUBPL,
1.29715 -+ AVR32_MNEMONIC_SUBLS,
1.29716 -+ AVR32_MNEMONIC_SUBGT,
1.29717 -+ AVR32_MNEMONIC_SUBLE,
1.29718 -+ AVR32_MNEMONIC_SUBHI,
1.29719 -+ AVR32_MNEMONIC_SUBVS,
1.29720 -+ AVR32_MNEMONIC_SUBVC,
1.29721 -+ AVR32_MNEMONIC_SUBQS,
1.29722 -+ AVR32_MNEMONIC_SUBAL,
1.29723 -+ AVR32_MNEMONIC_SUBHS,
1.29724 -+ AVR32_MNEMONIC_SUBLO,
1.29725 -+ AVR32_MNEMONIC_SUBFEQ,
1.29726 -+ AVR32_MNEMONIC_SUBFNE,
1.29727 -+ AVR32_MNEMONIC_SUBFCC,
1.29728 -+ AVR32_MNEMONIC_SUBFCS,
1.29729 -+ AVR32_MNEMONIC_SUBFGE,
1.29730 -+ AVR32_MNEMONIC_SUBFLT,
1.29731 -+ AVR32_MNEMONIC_SUBFMI,
1.29732 -+ AVR32_MNEMONIC_SUBFPL,
1.29733 -+ AVR32_MNEMONIC_SUBFLS,
1.29734 -+ AVR32_MNEMONIC_SUBFGT,
1.29735 -+ AVR32_MNEMONIC_SUBFLE,
1.29736 -+ AVR32_MNEMONIC_SUBFHI,
1.29737 -+ AVR32_MNEMONIC_SUBFVS,
1.29738 -+ AVR32_MNEMONIC_SUBFVC,
1.29739 -+ AVR32_MNEMONIC_SUBFQS,
1.29740 -+ AVR32_MNEMONIC_SUBFAL,
1.29741 -+ AVR32_MNEMONIC_SUBFHS,
1.29742 -+ AVR32_MNEMONIC_SUBFLO,
1.29743 -+ AVR32_MNEMONIC_SUBHH_W,
1.29744 -+ AVR32_MNEMONIC_SWAP_B,
1.29745 -+ AVR32_MNEMONIC_SWAP_BH,
1.29746 -+ AVR32_MNEMONIC_SWAP_H,
1.29747 -+ AVR32_MNEMONIC_SYNC,
1.29748 -+ AVR32_MNEMONIC_TLBR,
1.29749 -+ AVR32_MNEMONIC_TLBS,
1.29750 -+ AVR32_MNEMONIC_TLBW,
1.29751 -+ AVR32_MNEMONIC_TNBZ,
1.29752 -+ AVR32_MNEMONIC_TST,
1.29753 -+ AVR32_MNEMONIC_XCHG,
1.29754 -+ AVR32_MNEMONIC_MEMC,
1.29755 -+ AVR32_MNEMONIC_MEMS,
1.29756 -+ AVR32_MNEMONIC_MEMT,
1.29757 -+ AVR32_MNEMONIC_FADD_S,
1.29758 -+ AVR32_MNEMONIC_FADD_D,
1.29759 -+ AVR32_MNEMONIC_FSUB_S,
1.29760 -+ AVR32_MNEMONIC_FSUB_D,
1.29761 -+ AVR32_MNEMONIC_FMAC_S,
1.29762 -+ AVR32_MNEMONIC_FMAC_D,
1.29763 -+ AVR32_MNEMONIC_FNMAC_S,
1.29764 -+ AVR32_MNEMONIC_FNMAC_D,
1.29765 -+ AVR32_MNEMONIC_FMSC_S,
1.29766 -+ AVR32_MNEMONIC_FMSC_D,
1.29767 -+ AVR32_MNEMONIC_FNMSC_S,
1.29768 -+ AVR32_MNEMONIC_FNMSC_D,
1.29769 -+ AVR32_MNEMONIC_FMUL_S,
1.29770 -+ AVR32_MNEMONIC_FMUL_D,
1.29771 -+ AVR32_MNEMONIC_FNMUL_S,
1.29772 -+ AVR32_MNEMONIC_FNMUL_D,
1.29773 -+ AVR32_MNEMONIC_FNEG_S,
1.29774 -+ AVR32_MNEMONIC_FNEG_D,
1.29775 -+ AVR32_MNEMONIC_FABS_S,
1.29776 -+ AVR32_MNEMONIC_FABS_D,
1.29777 -+ AVR32_MNEMONIC_FCMP_S,
1.29778 -+ AVR32_MNEMONIC_FCMP_D,
1.29779 -+ AVR32_MNEMONIC_FMOV_S,
1.29780 -+ AVR32_MNEMONIC_FMOV_D,
1.29781 -+ AVR32_MNEMONIC_FCASTS_D,
1.29782 -+ AVR32_MNEMONIC_FCASTD_S,
1.29783 -+ /* AVR32_MNEMONIC_FLD_S,
1.29784 -+ AVR32_MNEMONIC_FLD_D,
1.29785 -+ AVR32_MNEMONIC_FST_S,
1.29786 -+ AVR32_MNEMONIC_FST_D, */
1.29787 -+ AVR32_MNEMONIC_LDA_W,
1.29788 -+ AVR32_MNEMONIC_CALL,
1.29789 -+ AVR32_MNEMONIC_PICOSVMAC,
1.29790 -+ AVR32_MNEMONIC_PICOSVMUL,
1.29791 -+ AVR32_MNEMONIC_PICOVMAC,
1.29792 -+ AVR32_MNEMONIC_PICOVMUL,
1.29793 -+ AVR32_MNEMONIC_PICOLD_D,
1.29794 -+ AVR32_MNEMONIC_PICOLD_W,
1.29795 -+ AVR32_MNEMONIC_PICOLDM_D,
1.29796 -+ AVR32_MNEMONIC_PICOLDM_W,
1.29797 -+ AVR32_MNEMONIC_PICOMV_D,
1.29798 -+ AVR32_MNEMONIC_PICOMV_W,
1.29799 -+ AVR32_MNEMONIC_PICOST_D,
1.29800 -+ AVR32_MNEMONIC_PICOST_W,
1.29801 -+ AVR32_MNEMONIC_PICOSTM_D,
1.29802 -+ AVR32_MNEMONIC_PICOSTM_W,
1.29803 -+ AVR32_MNEMONIC_RSUBEQ,
1.29804 -+ AVR32_MNEMONIC_RSUBNE,
1.29805 -+ AVR32_MNEMONIC_RSUBCC,
1.29806 -+ AVR32_MNEMONIC_RSUBCS,
1.29807 -+ AVR32_MNEMONIC_RSUBGE,
1.29808 -+ AVR32_MNEMONIC_RSUBLT,
1.29809 -+ AVR32_MNEMONIC_RSUBMI,
1.29810 -+ AVR32_MNEMONIC_RSUBPL,
1.29811 -+ AVR32_MNEMONIC_RSUBLS,
1.29812 -+ AVR32_MNEMONIC_RSUBGT,
1.29813 -+ AVR32_MNEMONIC_RSUBLE,
1.29814 -+ AVR32_MNEMONIC_RSUBHI,
1.29815 -+ AVR32_MNEMONIC_RSUBVS,
1.29816 -+ AVR32_MNEMONIC_RSUBVC,
1.29817 -+ AVR32_MNEMONIC_RSUBQS,
1.29818 -+ AVR32_MNEMONIC_RSUBAL,
1.29819 -+ AVR32_MNEMONIC_RSUBHS,
1.29820 -+ AVR32_MNEMONIC_RSUBLO,
1.29821 -+ AVR32_MNEMONIC_ADDEQ,
1.29822 -+ AVR32_MNEMONIC_ADDNE,
1.29823 -+ AVR32_MNEMONIC_ADDCC,
1.29824 -+ AVR32_MNEMONIC_ADDCS,
1.29825 -+ AVR32_MNEMONIC_ADDGE,
1.29826 -+ AVR32_MNEMONIC_ADDLT,
1.29827 -+ AVR32_MNEMONIC_ADDMI,
1.29828 -+ AVR32_MNEMONIC_ADDPL,
1.29829 -+ AVR32_MNEMONIC_ADDLS,
1.29830 -+ AVR32_MNEMONIC_ADDGT,
1.29831 -+ AVR32_MNEMONIC_ADDLE,
1.29832 -+ AVR32_MNEMONIC_ADDHI,
1.29833 -+ AVR32_MNEMONIC_ADDVS,
1.29834 -+ AVR32_MNEMONIC_ADDVC,
1.29835 -+ AVR32_MNEMONIC_ADDQS,
1.29836 -+ AVR32_MNEMONIC_ADDAL,
1.29837 -+ AVR32_MNEMONIC_ADDHS,
1.29838 -+ AVR32_MNEMONIC_ADDLO,
1.29839 -+ AVR32_MNEMONIC_ANDEQ,
1.29840 -+ AVR32_MNEMONIC_ANDNE,
1.29841 -+ AVR32_MNEMONIC_ANDCC,
1.29842 -+ AVR32_MNEMONIC_ANDCS,
1.29843 -+ AVR32_MNEMONIC_ANDGE,
1.29844 -+ AVR32_MNEMONIC_ANDLT,
1.29845 -+ AVR32_MNEMONIC_ANDMI,
1.29846 -+ AVR32_MNEMONIC_ANDPL,
1.29847 -+ AVR32_MNEMONIC_ANDLS,
1.29848 -+ AVR32_MNEMONIC_ANDGT,
1.29849 -+ AVR32_MNEMONIC_ANDLE,
1.29850 -+ AVR32_MNEMONIC_ANDHI,
1.29851 -+ AVR32_MNEMONIC_ANDVS,
1.29852 -+ AVR32_MNEMONIC_ANDVC,
1.29853 -+ AVR32_MNEMONIC_ANDQS,
1.29854 -+ AVR32_MNEMONIC_ANDAL,
1.29855 -+ AVR32_MNEMONIC_ANDHS,
1.29856 -+ AVR32_MNEMONIC_ANDLO,
1.29857 -+ AVR32_MNEMONIC_OREQ,
1.29858 -+ AVR32_MNEMONIC_ORNE,
1.29859 -+ AVR32_MNEMONIC_ORCC,
1.29860 -+ AVR32_MNEMONIC_ORCS,
1.29861 -+ AVR32_MNEMONIC_ORGE,
1.29862 -+ AVR32_MNEMONIC_ORLT,
1.29863 -+ AVR32_MNEMONIC_ORMI,
1.29864 -+ AVR32_MNEMONIC_ORPL,
1.29865 -+ AVR32_MNEMONIC_ORLS,
1.29866 -+ AVR32_MNEMONIC_ORGT,
1.29867 -+ AVR32_MNEMONIC_ORLE,
1.29868 -+ AVR32_MNEMONIC_ORHI,
1.29869 -+ AVR32_MNEMONIC_ORVS,
1.29870 -+ AVR32_MNEMONIC_ORVC,
1.29871 -+ AVR32_MNEMONIC_ORQS,
1.29872 -+ AVR32_MNEMONIC_ORAL,
1.29873 -+ AVR32_MNEMONIC_ORHS,
1.29874 -+ AVR32_MNEMONIC_ORLO,
1.29875 -+ AVR32_MNEMONIC_EOREQ,
1.29876 -+ AVR32_MNEMONIC_EORNE,
1.29877 -+ AVR32_MNEMONIC_EORCC,
1.29878 -+ AVR32_MNEMONIC_EORCS,
1.29879 -+ AVR32_MNEMONIC_EORGE,
1.29880 -+ AVR32_MNEMONIC_EORLT,
1.29881 -+ AVR32_MNEMONIC_EORMI,
1.29882 -+ AVR32_MNEMONIC_EORPL,
1.29883 -+ AVR32_MNEMONIC_EORLS,
1.29884 -+ AVR32_MNEMONIC_EORGT,
1.29885 -+ AVR32_MNEMONIC_EORLE,
1.29886 -+ AVR32_MNEMONIC_EORHI,
1.29887 -+ AVR32_MNEMONIC_EORVS,
1.29888 -+ AVR32_MNEMONIC_EORVC,
1.29889 -+ AVR32_MNEMONIC_EORQS,
1.29890 -+ AVR32_MNEMONIC_EORAL,
1.29891 -+ AVR32_MNEMONIC_EORHS,
1.29892 -+ AVR32_MNEMONIC_EORLO,
1.29893 -+ AVR32_MNEMONIC_LD_WEQ,
1.29894 -+ AVR32_MNEMONIC_LD_WNE,
1.29895 -+ AVR32_MNEMONIC_LD_WCC,
1.29896 -+ AVR32_MNEMONIC_LD_WCS,
1.29897 -+ AVR32_MNEMONIC_LD_WGE,
1.29898 -+ AVR32_MNEMONIC_LD_WLT,
1.29899 -+ AVR32_MNEMONIC_LD_WMI,
1.29900 -+ AVR32_MNEMONIC_LD_WPL,
1.29901 -+ AVR32_MNEMONIC_LD_WLS,
1.29902 -+ AVR32_MNEMONIC_LD_WGT,
1.29903 -+ AVR32_MNEMONIC_LD_WLE,
1.29904 -+ AVR32_MNEMONIC_LD_WHI,
1.29905 -+ AVR32_MNEMONIC_LD_WVS,
1.29906 -+ AVR32_MNEMONIC_LD_WVC,
1.29907 -+ AVR32_MNEMONIC_LD_WQS,
1.29908 -+ AVR32_MNEMONIC_LD_WAL,
1.29909 -+ AVR32_MNEMONIC_LD_WHS,
1.29910 -+ AVR32_MNEMONIC_LD_WLO,
1.29911 -+ AVR32_MNEMONIC_LD_SHEQ,
1.29912 -+ AVR32_MNEMONIC_LD_SHNE,
1.29913 -+ AVR32_MNEMONIC_LD_SHCC,
1.29914 -+ AVR32_MNEMONIC_LD_SHCS,
1.29915 -+ AVR32_MNEMONIC_LD_SHGE,
1.29916 -+ AVR32_MNEMONIC_LD_SHLT,
1.29917 -+ AVR32_MNEMONIC_LD_SHMI,
1.29918 -+ AVR32_MNEMONIC_LD_SHPL,
1.29919 -+ AVR32_MNEMONIC_LD_SHLS,
1.29920 -+ AVR32_MNEMONIC_LD_SHGT,
1.29921 -+ AVR32_MNEMONIC_LD_SHLE,
1.29922 -+ AVR32_MNEMONIC_LD_SHHI,
1.29923 -+ AVR32_MNEMONIC_LD_SHVS,
1.29924 -+ AVR32_MNEMONIC_LD_SHVC,
1.29925 -+ AVR32_MNEMONIC_LD_SHQS,
1.29926 -+ AVR32_MNEMONIC_LD_SHAL,
1.29927 -+ AVR32_MNEMONIC_LD_SHHS,
1.29928 -+ AVR32_MNEMONIC_LD_SHLO,
1.29929 -+ AVR32_MNEMONIC_LD_UHEQ,
1.29930 -+ AVR32_MNEMONIC_LD_UHNE,
1.29931 -+ AVR32_MNEMONIC_LD_UHCC,
1.29932 -+ AVR32_MNEMONIC_LD_UHCS,
1.29933 -+ AVR32_MNEMONIC_LD_UHGE,
1.29934 -+ AVR32_MNEMONIC_LD_UHLT,
1.29935 -+ AVR32_MNEMONIC_LD_UHMI,
1.29936 -+ AVR32_MNEMONIC_LD_UHPL,
1.29937 -+ AVR32_MNEMONIC_LD_UHLS,
1.29938 -+ AVR32_MNEMONIC_LD_UHGT,
1.29939 -+ AVR32_MNEMONIC_LD_UHLE,
1.29940 -+ AVR32_MNEMONIC_LD_UHHI,
1.29941 -+ AVR32_MNEMONIC_LD_UHVS,
1.29942 -+ AVR32_MNEMONIC_LD_UHVC,
1.29943 -+ AVR32_MNEMONIC_LD_UHQS,
1.29944 -+ AVR32_MNEMONIC_LD_UHAL,
1.29945 -+ AVR32_MNEMONIC_LD_UHHS,
1.29946 -+ AVR32_MNEMONIC_LD_UHLO,
1.29947 -+ AVR32_MNEMONIC_LD_SBEQ,
1.29948 -+ AVR32_MNEMONIC_LD_SBNE,
1.29949 -+ AVR32_MNEMONIC_LD_SBCC,
1.29950 -+ AVR32_MNEMONIC_LD_SBCS,
1.29951 -+ AVR32_MNEMONIC_LD_SBGE,
1.29952 -+ AVR32_MNEMONIC_LD_SBLT,
1.29953 -+ AVR32_MNEMONIC_LD_SBMI,
1.29954 -+ AVR32_MNEMONIC_LD_SBPL,
1.29955 -+ AVR32_MNEMONIC_LD_SBLS,
1.29956 -+ AVR32_MNEMONIC_LD_SBGT,
1.29957 -+ AVR32_MNEMONIC_LD_SBLE,
1.29958 -+ AVR32_MNEMONIC_LD_SBHI,
1.29959 -+ AVR32_MNEMONIC_LD_SBVS,
1.29960 -+ AVR32_MNEMONIC_LD_SBVC,
1.29961 -+ AVR32_MNEMONIC_LD_SBQS,
1.29962 -+ AVR32_MNEMONIC_LD_SBAL,
1.29963 -+ AVR32_MNEMONIC_LD_SBHS,
1.29964 -+ AVR32_MNEMONIC_LD_SBLO,
1.29965 -+ AVR32_MNEMONIC_LD_UBEQ,
1.29966 -+ AVR32_MNEMONIC_LD_UBNE,
1.29967 -+ AVR32_MNEMONIC_LD_UBCC,
1.29968 -+ AVR32_MNEMONIC_LD_UBCS,
1.29969 -+ AVR32_MNEMONIC_LD_UBGE,
1.29970 -+ AVR32_MNEMONIC_LD_UBLT,
1.29971 -+ AVR32_MNEMONIC_LD_UBMI,
1.29972 -+ AVR32_MNEMONIC_LD_UBPL,
1.29973 -+ AVR32_MNEMONIC_LD_UBLS,
1.29974 -+ AVR32_MNEMONIC_LD_UBGT,
1.29975 -+ AVR32_MNEMONIC_LD_UBLE,
1.29976 -+ AVR32_MNEMONIC_LD_UBHI,
1.29977 -+ AVR32_MNEMONIC_LD_UBVS,
1.29978 -+ AVR32_MNEMONIC_LD_UBVC,
1.29979 -+ AVR32_MNEMONIC_LD_UBQS,
1.29980 -+ AVR32_MNEMONIC_LD_UBAL,
1.29981 -+ AVR32_MNEMONIC_LD_UBHS,
1.29982 -+ AVR32_MNEMONIC_LD_UBLO,
1.29983 -+ AVR32_MNEMONIC_ST_WEQ,
1.29984 -+ AVR32_MNEMONIC_ST_WNE,
1.29985 -+ AVR32_MNEMONIC_ST_WCC,
1.29986 -+ AVR32_MNEMONIC_ST_WCS,
1.29987 -+ AVR32_MNEMONIC_ST_WGE,
1.29988 -+ AVR32_MNEMONIC_ST_WLT,
1.29989 -+ AVR32_MNEMONIC_ST_WMI,
1.29990 -+ AVR32_MNEMONIC_ST_WPL,
1.29991 -+ AVR32_MNEMONIC_ST_WLS,
1.29992 -+ AVR32_MNEMONIC_ST_WGT,
1.29993 -+ AVR32_MNEMONIC_ST_WLE,
1.29994 -+ AVR32_MNEMONIC_ST_WHI,
1.29995 -+ AVR32_MNEMONIC_ST_WVS,
1.29996 -+ AVR32_MNEMONIC_ST_WVC,
1.29997 -+ AVR32_MNEMONIC_ST_WQS,
1.29998 -+ AVR32_MNEMONIC_ST_WAL,
1.29999 -+ AVR32_MNEMONIC_ST_WHS,
1.30000 -+ AVR32_MNEMONIC_ST_WLO,
1.30001 -+ AVR32_MNEMONIC_ST_HEQ,
1.30002 -+ AVR32_MNEMONIC_ST_HNE,
1.30003 -+ AVR32_MNEMONIC_ST_HCC,
1.30004 -+ AVR32_MNEMONIC_ST_HCS,
1.30005 -+ AVR32_MNEMONIC_ST_HGE,
1.30006 -+ AVR32_MNEMONIC_ST_HLT,
1.30007 -+ AVR32_MNEMONIC_ST_HMI,
1.30008 -+ AVR32_MNEMONIC_ST_HPL,
1.30009 -+ AVR32_MNEMONIC_ST_HLS,
1.30010 -+ AVR32_MNEMONIC_ST_HGT,
1.30011 -+ AVR32_MNEMONIC_ST_HLE,
1.30012 -+ AVR32_MNEMONIC_ST_HHI,
1.30013 -+ AVR32_MNEMONIC_ST_HVS,
1.30014 -+ AVR32_MNEMONIC_ST_HVC,
1.30015 -+ AVR32_MNEMONIC_ST_HQS,
1.30016 -+ AVR32_MNEMONIC_ST_HAL,
1.30017 -+ AVR32_MNEMONIC_ST_HHS,
1.30018 -+ AVR32_MNEMONIC_ST_HLO,
1.30019 -+ AVR32_MNEMONIC_ST_BEQ,
1.30020 -+ AVR32_MNEMONIC_ST_BNE,
1.30021 -+ AVR32_MNEMONIC_ST_BCC,
1.30022 -+ AVR32_MNEMONIC_ST_BCS,
1.30023 -+ AVR32_MNEMONIC_ST_BGE,
1.30024 -+ AVR32_MNEMONIC_ST_BLT,
1.30025 -+ AVR32_MNEMONIC_ST_BMI,
1.30026 -+ AVR32_MNEMONIC_ST_BPL,
1.30027 -+ AVR32_MNEMONIC_ST_BLS,
1.30028 -+ AVR32_MNEMONIC_ST_BGT,
1.30029 -+ AVR32_MNEMONIC_ST_BLE,
1.30030 -+ AVR32_MNEMONIC_ST_BHI,
1.30031 -+ AVR32_MNEMONIC_ST_BVS,
1.30032 -+ AVR32_MNEMONIC_ST_BVC,
1.30033 -+ AVR32_MNEMONIC_ST_BQS,
1.30034 -+ AVR32_MNEMONIC_ST_BAL,
1.30035 -+ AVR32_MNEMONIC_ST_BHS,
1.30036 -+ AVR32_MNEMONIC_ST_BLO,
1.30037 -+ AVR32_MNEMONIC_MOVH,
1.30038 -+ AVR32_MNEMONIC__END_
1.30039 -+};
1.30040 -+#define AVR32_NR_MNEMONICS AVR32_MNEMONIC__END_
1.30041 -+
1.30042 -+enum avr32_syntax_parser
1.30043 -+ {
1.30044 -+ AVR32_PARSER_NORMAL,
1.30045 -+ AVR32_PARSER_ALIAS,
1.30046 -+ AVR32_PARSER_LDA,
1.30047 -+ AVR32_PARSER_CALL,
1.30048 -+ AVR32_PARSER__END_
1.30049 -+ };
1.30050 -+#define AVR32_NR_PARSERS AVR32_PARSER__END_
1.30051 ---- a/opcodes/configure.in
1.30052 -+++ b/opcodes/configure.in
1.30053 -@@ -158,6 +158,7 @@ if test x${all_targets} = xfalse ; then
1.30054 - bfd_arc_arch) ta="$ta arc-dis.lo arc-opc.lo arc-ext.lo" ;;
1.30055 - bfd_arm_arch) ta="$ta arm-dis.lo" ;;
1.30056 - bfd_avr_arch) ta="$ta avr-dis.lo" ;;
1.30057 -+ bfd_avr32_arch) ta="$ta avr32-asm.lo avr32-dis.lo avr32-opc.lo" ;;
1.30058 - bfd_bfin_arch) ta="$ta bfin-dis.lo" ;;
1.30059 - bfd_cr16_arch) ta="$ta cr16-dis.lo cr16-opc.lo" ;;
1.30060 - bfd_cris_arch) ta="$ta cris-dis.lo cris-opc.lo cgen-bitset.lo" ;;
1.30061 -@@ -216,7 +217,7 @@ if test x${all_targets} = xfalse ; then
1.30062 - ta="$ta sh64-dis.lo sh64-opc.lo"
1.30063 - archdefs="$archdefs -DINCLUDE_SHMEDIA"
1.30064 - break;;
1.30065 -- esac;
1.30066 -+ esac
1.30067 - done
1.30068 - ta="$ta sh-dis.lo cgen-bitset.lo" ;;
1.30069 - bfd_sparc_arch) ta="$ta sparc-dis.lo sparc-opc.lo" ;;
1.30070 ---- a/opcodes/disassemble.c
1.30071 -+++ b/opcodes/disassemble.c
1.30072 -@@ -27,6 +27,7 @@
1.30073 - #define ARCH_arc
1.30074 - #define ARCH_arm
1.30075 - #define ARCH_avr
1.30076 -+#define ARCH_avr32
1.30077 - #define ARCH_bfin
1.30078 - #define ARCH_cr16
1.30079 - #define ARCH_cris
1.30080 -@@ -128,6 +129,11 @@ disassembler (abfd)
1.30081 - disassemble = print_insn_avr;
1.30082 - break;
1.30083 - #endif
1.30084 -+#ifdef ARCH_avr32
1.30085 -+ case bfd_arch_avr32:
1.30086 -+ disassemble = print_insn_avr32;
1.30087 -+ break;
1.30088 -+#endif
1.30089 - #ifdef ARCH_bfin
1.30090 - case bfd_arch_bfin:
1.30091 - disassemble = print_insn_bfin;
1.30092 -@@ -346,9 +352,9 @@ disassembler (abfd)
1.30093 - #ifdef ARCH_score
1.30094 - case bfd_arch_score:
1.30095 - if (bfd_big_endian (abfd))
1.30096 -- disassemble = print_insn_big_score;
1.30097 -+ disassemble = print_insn_big_score;
1.30098 - else
1.30099 -- disassemble = print_insn_little_score;
1.30100 -+ disassemble = print_insn_little_score;
1.30101 - break;
1.30102 - #endif
1.30103 - #ifdef ARCH_sh
1.30104 -@@ -466,6 +472,9 @@ disassembler_usage (stream)
1.30105 - #ifdef ARCH_i386
1.30106 - print_i386_disassembler_options (stream);
1.30107 - #endif
1.30108 -+#ifdef ARCH_avr32
1.30109 -+ print_avr32_disassembler_options (stream);
1.30110 -+#endif
1.30111 -
1.30112 - return;
1.30113 - }
1.30114 ---- a/opcodes/Makefile.am
1.30115 -+++ b/opcodes/Makefile.am
1.30116 -@@ -30,6 +30,7 @@ LIBIBERTY = ../libiberty/libiberty.a
1.30117 - # Header files.
1.30118 - HFILES = \
1.30119 - cgen-ops.h cgen-types.h \
1.30120 -+ avr32-asm.h avr32-opc.h \
1.30121 - fr30-desc.h fr30-opc.h \
1.30122 - frv-desc.h frv-opc.h \
1.30123 - h8500-opc.h \
1.30124 -@@ -63,6 +64,9 @@ CFILES = \
1.30125 - arc-ext.c \
1.30126 - arm-dis.c \
1.30127 - avr-dis.c \
1.30128 -+ avr32-asm.c \
1.30129 -+ avr32-dis.c \
1.30130 -+ avr32-opc.c \
1.30131 - bfin-dis.c \
1.30132 - cgen-asm.c \
1.30133 - cgen-bitset.c \
1.30134 -@@ -217,6 +221,9 @@ ALL_MACHINES = \
1.30135 - arc-ext.lo \
1.30136 - arm-dis.lo \
1.30137 - avr-dis.lo \
1.30138 -+ avr32-asm.lo \
1.30139 -+ avr32-dis.lo \
1.30140 -+ avr32-opc.lo \
1.30141 - bfin-dis.lo \
1.30142 - cgen-asm.lo \
1.30143 - cgen-bitset.lo \
1.30144 -@@ -674,6 +681,15 @@ avr-dis.lo: avr-dis.c sysdep.h config.h
1.30145 - $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
1.30146 - opintl.h $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h \
1.30147 - $(INCDIR)/opcode/avr.h
1.30148 -+avr32-asm.lo: avr32-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \
1.30149 -+ $(BFD_H) $(INCDIR)/symcat.h avr32-opc.h opintl.h \
1.30150 -+ $(INCDIR)/xregex.h $(INCDIR)/xregex2.h \
1.30151 -+ $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
1.30152 -+avr32-dis.lo: avr32-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
1.30153 -+ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
1.30154 -+ avr32-opc.h opintl.h
1.30155 -+avr32-opc.lo: avr32-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \
1.30156 -+ $(BFD_H) $(INCDIR)/symcat.h avr32-opc.h $(INCDIR)/libiberty.h
1.30157 - bfin-dis.lo: bfin-dis.c $(INCDIR)/opcode/bfin.h $(INCDIR)/dis-asm.h \
1.30158 - $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h
1.30159 - cgen-asm.lo: cgen-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \
1.30160 ---- a/bfd/bfd-in2.h
1.30161 -+++ b/bfd/bfd-in2.h
1.30162 -@@ -2017,6 +2017,11 @@ enum bfd_architecture
1.30163 - #define bfd_mach_avr4 4
1.30164 - #define bfd_mach_avr5 5
1.30165 - #define bfd_mach_avr6 6
1.30166 -+ bfd_arch_avr32, /* Atmel AVR32 */
1.30167 -+#define bfd_mach_avr32_ap 7000
1.30168 -+#define bfd_mach_avr32_uc 3000
1.30169 -+#define bfd_mach_avr32_ucr1 3001
1.30170 -+#define bfd_mach_avr32_ucr2 3002
1.30171 - bfd_arch_bfin, /* ADI Blackfin */
1.30172 - #define bfd_mach_bfin 1
1.30173 - bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */
1.30174 -@@ -3758,6 +3763,88 @@ instructions */
1.30175 - instructions */
1.30176 - BFD_RELOC_AVR_6_ADIW,
1.30177 -
1.30178 -+/* Difference between two labels: L2 - L1. The value of L1 is encoded
1.30179 -+as sym + addend, while the initial difference after assembly is
1.30180 -+inserted into the object file by the assembler. */
1.30181 -+ BFD_RELOC_AVR32_DIFF32,
1.30182 -+ BFD_RELOC_AVR32_DIFF16,
1.30183 -+ BFD_RELOC_AVR32_DIFF8,
1.30184 -+
1.30185 -+/* Reference to a symbol through the Global Offset Table. The linker
1.30186 -+will allocate an entry for symbol in the GOT and insert the offset
1.30187 -+of this entry as the relocation value. */
1.30188 -+ BFD_RELOC_AVR32_GOT32,
1.30189 -+ BFD_RELOC_AVR32_GOT16,
1.30190 -+ BFD_RELOC_AVR32_GOT8,
1.30191 -+
1.30192 -+/* Normal (non-pc-relative) code relocations. Alignment and signedness
1.30193 -+is indicated by the suffixes. S means signed, U means unsigned. W
1.30194 -+means word-aligned, H means halfword-aligned, neither means
1.30195 -+byte-aligned (no alignment.) SUB5 is the same relocation as 16S. */
1.30196 -+ BFD_RELOC_AVR32_21S,
1.30197 -+ BFD_RELOC_AVR32_16U,
1.30198 -+ BFD_RELOC_AVR32_16S,
1.30199 -+ BFD_RELOC_AVR32_SUB5,
1.30200 -+ BFD_RELOC_AVR32_8S_EXT,
1.30201 -+ BFD_RELOC_AVR32_8S,
1.30202 -+ BFD_RELOC_AVR32_15S,
1.30203 -+
1.30204 -+/* PC-relative relocations are signed if neither 'U' nor 'S' is
1.30205 -+specified. However, we explicitly tack on a 'B' to indicate no
1.30206 -+alignment, to avoid confusion with data relocs. All of these resolve
1.30207 -+to sym + addend - offset, except the one with 'N' (negated) suffix.
1.30208 -+This particular one resolves to offset - sym - addend. */
1.30209 -+ BFD_RELOC_AVR32_22H_PCREL,
1.30210 -+ BFD_RELOC_AVR32_18W_PCREL,
1.30211 -+ BFD_RELOC_AVR32_16B_PCREL,
1.30212 -+ BFD_RELOC_AVR32_16N_PCREL,
1.30213 -+ BFD_RELOC_AVR32_14UW_PCREL,
1.30214 -+ BFD_RELOC_AVR32_11H_PCREL,
1.30215 -+ BFD_RELOC_AVR32_10UW_PCREL,
1.30216 -+ BFD_RELOC_AVR32_9H_PCREL,
1.30217 -+ BFD_RELOC_AVR32_9UW_PCREL,
1.30218 -+
1.30219 -+/* Subtract the link-time address of the GOT from (symbol + addend)
1.30220 -+and insert the result. */
1.30221 -+ BFD_RELOC_AVR32_GOTPC,
1.30222 -+
1.30223 -+/* Reference to a symbol through the GOT. The linker will allocate an
1.30224 -+entry for symbol in the GOT and insert the offset of this entry as
1.30225 -+the relocation value. addend must be zero. As usual, 'S' means
1.30226 -+signed, 'W' means word-aligned, etc. */
1.30227 -+ BFD_RELOC_AVR32_GOTCALL,
1.30228 -+ BFD_RELOC_AVR32_LDA_GOT,
1.30229 -+ BFD_RELOC_AVR32_GOT21S,
1.30230 -+ BFD_RELOC_AVR32_GOT18SW,
1.30231 -+ BFD_RELOC_AVR32_GOT16S,
1.30232 -+
1.30233 -+/* 32-bit constant pool entry. I don't think 8- and 16-bit entries make
1.30234 -+a whole lot of sense. */
1.30235 -+ BFD_RELOC_AVR32_32_CPENT,
1.30236 -+
1.30237 -+/* Constant pool references. Some of these relocations are signed,
1.30238 -+others are unsigned. It doesn't really matter, since the constant
1.30239 -+pool always comes after the code that references it. */
1.30240 -+ BFD_RELOC_AVR32_CPCALL,
1.30241 -+ BFD_RELOC_AVR32_16_CP,
1.30242 -+ BFD_RELOC_AVR32_9W_CP,
1.30243 -+
1.30244 -+/* sym must be the absolute symbol. The addend specifies the alignment
1.30245 -+order, e.g. if addend is 2, the linker must add padding so that the
1.30246 -+next address is aligned to a 4-byte boundary. */
1.30247 -+ BFD_RELOC_AVR32_ALIGN,
1.30248 -+
1.30249 -+/* Code relocations that will never make it to the output file. */
1.30250 -+ BFD_RELOC_AVR32_14UW,
1.30251 -+ BFD_RELOC_AVR32_10UW,
1.30252 -+ BFD_RELOC_AVR32_10SW,
1.30253 -+ BFD_RELOC_AVR32_STHH_W,
1.30254 -+ BFD_RELOC_AVR32_7UW,
1.30255 -+ BFD_RELOC_AVR32_6S,
1.30256 -+ BFD_RELOC_AVR32_6UW,
1.30257 -+ BFD_RELOC_AVR32_4UH,
1.30258 -+ BFD_RELOC_AVR32_3U,
1.30259 -+
1.30260 - /* Direct 12 bit. */
1.30261 - BFD_RELOC_390_12,
1.30262 -
1.30263 ---- /dev/null
1.30264 -+++ b/bfd/bfd-in3.h
1.30265 -@@ -0,0 +1,5406 @@
1.30266 -+/* DO NOT EDIT! -*- buffer-read-only: t -*- This file is automatically
1.30267 -+ generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c",
1.30268 -+ "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c",
1.30269 -+ "syms.c", "bfd.c", "archive.c", "corefile.c", "targets.c", "format.c",
1.30270 -+ "linker.c" and "simple.c".
1.30271 -+ Run "make headers" in your build bfd/ to regenerate. */
1.30272 -+
1.30273 -+/* Main header file for the bfd library -- portable access to object files.
1.30274 -+
1.30275 -+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1.30276 -+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
1.30277 -+ Free Software Foundation, Inc.
1.30278 -+
1.30279 -+ Contributed by Cygnus Support.
1.30280 -+
1.30281 -+ This file is part of BFD, the Binary File Descriptor library.
1.30282 -+
1.30283 -+ This program is free software; you can redistribute it and/or modify
1.30284 -+ it under the terms of the GNU General Public License as published by
1.30285 -+ the Free Software Foundation; either version 3 of the License, or
1.30286 -+ (at your option) any later version.
1.30287 -+
1.30288 -+ This program is distributed in the hope that it will be useful,
1.30289 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1.30290 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1.30291 -+ GNU General Public License for more details.
1.30292 -+
1.30293 -+ You should have received a copy of the GNU General Public License
1.30294 -+ along with this program; if not, write to the Free Software
1.30295 -+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
1.30296 -+
1.30297 -+#ifndef __BFD_H_SEEN__
1.30298 -+#define __BFD_H_SEEN__
1.30299 -+
1.30300 -+#ifdef __cplusplus
1.30301 -+extern "C" {
1.30302 -+#endif
1.30303 -+
1.30304 -+#include "ansidecl.h"
1.30305 -+#include "symcat.h"
1.30306 -+#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
1.30307 -+#ifndef SABER
1.30308 -+/* This hack is to avoid a problem with some strict ANSI C preprocessors.
1.30309 -+ The problem is, "32_" is not a valid preprocessing token, and we don't
1.30310 -+ want extra underscores (e.g., "nlm_32_"). The XCONCAT2 macro will
1.30311 -+ cause the inner CONCAT2 macros to be evaluated first, producing
1.30312 -+ still-valid pp-tokens. Then the final concatenation can be done. */
1.30313 -+#undef CONCAT4
1.30314 -+#define CONCAT4(a,b,c,d) XCONCAT2(CONCAT2(a,b),CONCAT2(c,d))
1.30315 -+#endif
1.30316 -+#endif
1.30317 -+
1.30318 -+/* This is a utility macro to handle the situation where the code
1.30319 -+ wants to place a constant string into the code, followed by a
1.30320 -+ comma and then the length of the string. Doing this by hand
1.30321 -+ is error prone, so using this macro is safer. The macro will
1.30322 -+ also safely handle the case where a NULL is passed as the arg. */
1.30323 -+#define STRING_COMMA_LEN(STR) (STR), ((STR) ? sizeof (STR) - 1 : 0)
1.30324 -+/* Unfortunately it is not possible to use the STRING_COMMA_LEN macro
1.30325 -+ to create the arguments to another macro, since the preprocessor
1.30326 -+ will mis-count the number of arguments to the outer macro (by not
1.30327 -+ evaluating STRING_COMMA_LEN and so missing the comma). This is a
1.30328 -+ problem for example when trying to use STRING_COMMA_LEN to build
1.30329 -+ the arguments to the strncmp() macro. Hence this alternative
1.30330 -+ definition of strncmp is provided here.
1.30331 -+
1.30332 -+ Note - these macros do NOT work if STR2 is not a constant string. */
1.30333 -+#define CONST_STRNEQ(STR1,STR2) (strncmp ((STR1), (STR2), sizeof (STR2) - 1) == 0)
1.30334 -+ /* strcpy() can have a similar problem, but since we know we are
1.30335 -+ copying a constant string, we can use memcpy which will be faster
1.30336 -+ since there is no need to check for a NUL byte inside STR. We
1.30337 -+ can also save time if we do not need to copy the terminating NUL. */
1.30338 -+#define LITMEMCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2) - 1)
1.30339 -+#define LITSTRCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2))
1.30340 -+
1.30341 -+
1.30342 -+/* The word size used by BFD on the host. This may be 64 with a 32
1.30343 -+ bit target if the host is 64 bit, or if other 64 bit targets have
1.30344 -+ been selected with --enable-targets, or if --enable-64-bit-bfd. */
1.30345 -+#define BFD_ARCH_SIZE 32
1.30346 -+
1.30347 -+/* The word size of the default bfd target. */
1.30348 -+#define BFD_DEFAULT_TARGET_SIZE 32
1.30349 -+
1.30350 -+#define BFD_HOST_64BIT_LONG 0
1.30351 -+#define BFD_HOST_64BIT_LONG_LONG 0
1.30352 -+#define BFD_HOST_LONG_LONG 1
1.30353 -+#if 1
1.30354 -+#define BFD_HOST_64_BIT long long
1.30355 -+#define BFD_HOST_U_64_BIT unsigned long long
1.30356 -+typedef BFD_HOST_64_BIT bfd_int64_t;
1.30357 -+typedef BFD_HOST_U_64_BIT bfd_uint64_t;
1.30358 -+#endif
1.30359 -+
1.30360 -+#if BFD_ARCH_SIZE >= 64
1.30361 -+#define BFD64
1.30362 -+#endif
1.30363 -+
1.30364 -+#ifndef INLINE
1.30365 -+#if __GNUC__ >= 2
1.30366 -+#define INLINE __inline__
1.30367 -+#else
1.30368 -+#define INLINE
1.30369 -+#endif
1.30370 -+#endif
1.30371 -+
1.30372 -+/* Declaring a type wide enough to hold a host long and a host pointer. */
1.30373 -+#define BFD_HOSTPTR_T unsigned long
1.30374 -+typedef BFD_HOSTPTR_T bfd_hostptr_t;
1.30375 -+
1.30376 -+/* Forward declaration. */
1.30377 -+typedef struct bfd bfd;
1.30378 -+
1.30379 -+/* Boolean type used in bfd. Too many systems define their own
1.30380 -+ versions of "boolean" for us to safely typedef a "boolean" of
1.30381 -+ our own. Using an enum for "bfd_boolean" has its own set of
1.30382 -+ problems, with strange looking casts required to avoid warnings
1.30383 -+ on some older compilers. Thus we just use an int.
1.30384 -+
1.30385 -+ General rule: Functions which are bfd_boolean return TRUE on
1.30386 -+ success and FALSE on failure (unless they're a predicate). */
1.30387 -+
1.30388 -+typedef int bfd_boolean;
1.30389 -+#undef FALSE
1.30390 -+#undef TRUE
1.30391 -+#define FALSE 0
1.30392 -+#define TRUE 1
1.30393 -+
1.30394 -+#ifdef BFD64
1.30395 -+
1.30396 -+#ifndef BFD_HOST_64_BIT
1.30397 -+ #error No 64 bit integer type available
1.30398 -+#endif /* ! defined (BFD_HOST_64_BIT) */
1.30399 -+
1.30400 -+typedef BFD_HOST_U_64_BIT bfd_vma;
1.30401 -+typedef BFD_HOST_64_BIT bfd_signed_vma;
1.30402 -+typedef BFD_HOST_U_64_BIT bfd_size_type;
1.30403 -+typedef BFD_HOST_U_64_BIT symvalue;
1.30404 -+
1.30405 -+#ifndef fprintf_vma
1.30406 -+#if BFD_HOST_64BIT_LONG
1.30407 -+#define sprintf_vma(s,x) sprintf (s, "%016lx", x)
1.30408 -+#define fprintf_vma(f,x) fprintf (f, "%016lx", x)
1.30409 -+#elif BFD_HOST_64BIT_LONG_LONG
1.30410 -+#define sprintf_vma(s,x) sprintf (s, "%016llx", x)
1.30411 -+#define fprintf_vma(f,x) fprintf (f, "%016llx", x)
1.30412 -+#else
1.30413 -+#define _bfd_int64_low(x) ((unsigned long) (((x) & 0xffffffff)))
1.30414 -+#define _bfd_int64_high(x) ((unsigned long) (((x) >> 32) & 0xffffffff))
1.30415 -+#define fprintf_vma(s,x) \
1.30416 -+ fprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
1.30417 -+#define sprintf_vma(s,x) \
1.30418 -+ sprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
1.30419 -+#endif
1.30420 -+#endif
1.30421 -+
1.30422 -+#else /* not BFD64 */
1.30423 -+
1.30424 -+/* Represent a target address. Also used as a generic unsigned type
1.30425 -+ which is guaranteed to be big enough to hold any arithmetic types
1.30426 -+ we need to deal with. */
1.30427 -+typedef unsigned long bfd_vma;
1.30428 -+
1.30429 -+/* A generic signed type which is guaranteed to be big enough to hold any
1.30430 -+ arithmetic types we need to deal with. Can be assumed to be compatible
1.30431 -+ with bfd_vma in the same way that signed and unsigned ints are compatible
1.30432 -+ (as parameters, in assignment, etc). */
1.30433 -+typedef long bfd_signed_vma;
1.30434 -+
1.30435 -+typedef unsigned long symvalue;
1.30436 -+typedef unsigned long bfd_size_type;
1.30437 -+
1.30438 -+/* Print a bfd_vma x on stream s. */
1.30439 -+#define fprintf_vma(s,x) fprintf (s, "%08lx", x)
1.30440 -+#define sprintf_vma(s,x) sprintf (s, "%08lx", x)
1.30441 -+
1.30442 -+#endif /* not BFD64 */
1.30443 -+
1.30444 -+#define HALF_BFD_SIZE_TYPE \
1.30445 -+ (((bfd_size_type) 1) << (8 * sizeof (bfd_size_type) / 2))
1.30446 -+
1.30447 -+#ifndef BFD_HOST_64_BIT
1.30448 -+/* Fall back on a 32 bit type. The idea is to make these types always
1.30449 -+ available for function return types, but in the case that
1.30450 -+ BFD_HOST_64_BIT is undefined such a function should abort or
1.30451 -+ otherwise signal an error. */
1.30452 -+typedef bfd_signed_vma bfd_int64_t;
1.30453 -+typedef bfd_vma bfd_uint64_t;
1.30454 -+#endif
1.30455 -+
1.30456 -+/* An offset into a file. BFD always uses the largest possible offset
1.30457 -+ based on the build time availability of fseek, fseeko, or fseeko64. */
1.30458 -+typedef BFD_HOST_64_BIT file_ptr;
1.30459 -+typedef unsigned BFD_HOST_64_BIT ufile_ptr;
1.30460 -+
1.30461 -+extern void bfd_sprintf_vma (bfd *, char *, bfd_vma);
1.30462 -+extern void bfd_fprintf_vma (bfd *, void *, bfd_vma);
1.30463 -+
1.30464 -+#define printf_vma(x) fprintf_vma(stdout,x)
1.30465 -+#define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x)
1.30466 -+
1.30467 -+typedef unsigned int flagword; /* 32 bits of flags */
1.30468 -+typedef unsigned char bfd_byte;
1.30469 -+
1.30470 -+/* File formats. */
1.30471 -+
1.30472 -+typedef enum bfd_format
1.30473 -+{
1.30474 -+ bfd_unknown = 0, /* File format is unknown. */
1.30475 -+ bfd_object, /* Linker/assembler/compiler output. */
1.30476 -+ bfd_archive, /* Object archive file. */
1.30477 -+ bfd_core, /* Core dump. */
1.30478 -+ bfd_type_end /* Marks the end; don't use it! */
1.30479 -+}
1.30480 -+bfd_format;
1.30481 -+
1.30482 -+/* Values that may appear in the flags field of a BFD. These also
1.30483 -+ appear in the object_flags field of the bfd_target structure, where
1.30484 -+ they indicate the set of flags used by that backend (not all flags
1.30485 -+ are meaningful for all object file formats) (FIXME: at the moment,
1.30486 -+ the object_flags values have mostly just been copied from backend
1.30487 -+ to another, and are not necessarily correct). */
1.30488 -+
1.30489 -+/* No flags. */
1.30490 -+#define BFD_NO_FLAGS 0x00
1.30491 -+
1.30492 -+/* BFD contains relocation entries. */
1.30493 -+#define HAS_RELOC 0x01
1.30494 -+
1.30495 -+/* BFD is directly executable. */
1.30496 -+#define EXEC_P 0x02
1.30497 -+
1.30498 -+/* BFD has line number information (basically used for F_LNNO in a
1.30499 -+ COFF header). */
1.30500 -+#define HAS_LINENO 0x04
1.30501 -+
1.30502 -+/* BFD has debugging information. */
1.30503 -+#define HAS_DEBUG 0x08
1.30504 -+
1.30505 -+/* BFD has symbols. */
1.30506 -+#define HAS_SYMS 0x10
1.30507 -+
1.30508 -+/* BFD has local symbols (basically used for F_LSYMS in a COFF
1.30509 -+ header). */
1.30510 -+#define HAS_LOCALS 0x20
1.30511 -+
1.30512 -+/* BFD is a dynamic object. */
1.30513 -+#define DYNAMIC 0x40
1.30514 -+
1.30515 -+/* Text section is write protected (if D_PAGED is not set, this is
1.30516 -+ like an a.out NMAGIC file) (the linker sets this by default, but
1.30517 -+ clears it for -r or -N). */
1.30518 -+#define WP_TEXT 0x80
1.30519 -+
1.30520 -+/* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
1.30521 -+ linker sets this by default, but clears it for -r or -n or -N). */
1.30522 -+#define D_PAGED 0x100
1.30523 -+
1.30524 -+/* BFD is relaxable (this means that bfd_relax_section may be able to
1.30525 -+ do something) (sometimes bfd_relax_section can do something even if
1.30526 -+ this is not set). */
1.30527 -+#define BFD_IS_RELAXABLE 0x200
1.30528 -+
1.30529 -+/* This may be set before writing out a BFD to request using a
1.30530 -+ traditional format. For example, this is used to request that when
1.30531 -+ writing out an a.out object the symbols not be hashed to eliminate
1.30532 -+ duplicates. */
1.30533 -+#define BFD_TRADITIONAL_FORMAT 0x400
1.30534 -+
1.30535 -+/* This flag indicates that the BFD contents are actually cached in
1.30536 -+ memory. If this is set, iostream points to a bfd_in_memory struct. */
1.30537 -+#define BFD_IN_MEMORY 0x800
1.30538 -+
1.30539 -+/* The sections in this BFD specify a memory page. */
1.30540 -+#define HAS_LOAD_PAGE 0x1000
1.30541 -+
1.30542 -+/* This BFD has been created by the linker and doesn't correspond
1.30543 -+ to any input file. */
1.30544 -+#define BFD_LINKER_CREATED 0x2000
1.30545 -+
1.30546 -+/* Symbols and relocation. */
1.30547 -+
1.30548 -+/* A count of carsyms (canonical archive symbols). */
1.30549 -+typedef unsigned long symindex;
1.30550 -+
1.30551 -+/* How to perform a relocation. */
1.30552 -+typedef const struct reloc_howto_struct reloc_howto_type;
1.30553 -+
1.30554 -+#define BFD_NO_MORE_SYMBOLS ((symindex) ~0)
1.30555 -+
1.30556 -+/* General purpose part of a symbol X;
1.30557 -+ target specific parts are in libcoff.h, libaout.h, etc. */
1.30558 -+
1.30559 -+#define bfd_get_section(x) ((x)->section)
1.30560 -+#define bfd_get_output_section(x) ((x)->section->output_section)
1.30561 -+#define bfd_set_section(x,y) ((x)->section) = (y)
1.30562 -+#define bfd_asymbol_base(x) ((x)->section->vma)
1.30563 -+#define bfd_asymbol_value(x) (bfd_asymbol_base(x) + (x)->value)
1.30564 -+#define bfd_asymbol_name(x) ((x)->name)
1.30565 -+/*Perhaps future: #define bfd_asymbol_bfd(x) ((x)->section->owner)*/
1.30566 -+#define bfd_asymbol_bfd(x) ((x)->the_bfd)
1.30567 -+#define bfd_asymbol_flavour(x) (bfd_asymbol_bfd(x)->xvec->flavour)
1.30568 -+
1.30569 -+/* A canonical archive symbol. */
1.30570 -+/* This is a type pun with struct ranlib on purpose! */
1.30571 -+typedef struct carsym
1.30572 -+{
1.30573 -+ char *name;
1.30574 -+ file_ptr file_offset; /* Look here to find the file. */
1.30575 -+}
1.30576 -+carsym; /* To make these you call a carsymogen. */
1.30577 -+
1.30578 -+/* Used in generating armaps (archive tables of contents).
1.30579 -+ Perhaps just a forward definition would do? */
1.30580 -+struct orl /* Output ranlib. */
1.30581 -+{
1.30582 -+ char **name; /* Symbol name. */
1.30583 -+ union
1.30584 -+ {
1.30585 -+ file_ptr pos;
1.30586 -+ bfd *abfd;
1.30587 -+ } u; /* bfd* or file position. */
1.30588 -+ int namidx; /* Index into string table. */
1.30589 -+};
1.30590 -+
1.30591 -+/* Linenumber stuff. */
1.30592 -+typedef struct lineno_cache_entry
1.30593 -+{
1.30594 -+ unsigned int line_number; /* Linenumber from start of function. */
1.30595 -+ union
1.30596 -+ {
1.30597 -+ struct bfd_symbol *sym; /* Function name. */
1.30598 -+ bfd_vma offset; /* Offset into section. */
1.30599 -+ } u;
1.30600 -+}
1.30601 -+alent;
1.30602 -+
1.30603 -+/* Object and core file sections. */
1.30604 -+
1.30605 -+#define align_power(addr, align) \
1.30606 -+ (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align)))
1.30607 -+
1.30608 -+typedef struct bfd_section *sec_ptr;
1.30609 -+
1.30610 -+#define bfd_get_section_name(bfd, ptr) ((ptr)->name + 0)
1.30611 -+#define bfd_get_section_vma(bfd, ptr) ((ptr)->vma + 0)
1.30612 -+#define bfd_get_section_lma(bfd, ptr) ((ptr)->lma + 0)
1.30613 -+#define bfd_get_section_alignment(bfd, ptr) ((ptr)->alignment_power + 0)
1.30614 -+#define bfd_section_name(bfd, ptr) ((ptr)->name)
1.30615 -+#define bfd_section_size(bfd, ptr) ((ptr)->size)
1.30616 -+#define bfd_get_section_size(ptr) ((ptr)->size)
1.30617 -+#define bfd_section_vma(bfd, ptr) ((ptr)->vma)
1.30618 -+#define bfd_section_lma(bfd, ptr) ((ptr)->lma)
1.30619 -+#define bfd_section_alignment(bfd, ptr) ((ptr)->alignment_power)
1.30620 -+#define bfd_get_section_flags(bfd, ptr) ((ptr)->flags + 0)
1.30621 -+#define bfd_get_section_userdata(bfd, ptr) ((ptr)->userdata)
1.30622 -+
1.30623 -+#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
1.30624 -+
1.30625 -+#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
1.30626 -+#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
1.30627 -+#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
1.30628 -+/* Find the address one past the end of SEC. */
1.30629 -+#define bfd_get_section_limit(bfd, sec) \
1.30630 -+ (((sec)->rawsize ? (sec)->rawsize : (sec)->size) \
1.30631 -+ / bfd_octets_per_byte (bfd))
1.30632 -+
1.30633 -+/* Return TRUE if section has been discarded. */
1.30634 -+#define elf_discarded_section(sec) \
1.30635 -+ (!bfd_is_abs_section (sec) \
1.30636 -+ && bfd_is_abs_section ((sec)->output_section) \
1.30637 -+ && (sec)->sec_info_type != ELF_INFO_TYPE_MERGE \
1.30638 -+ && (sec)->sec_info_type != ELF_INFO_TYPE_JUST_SYMS)
1.30639 -+
1.30640 -+/* Forward define. */
1.30641 -+struct stat;
1.30642 -+
1.30643 -+typedef enum bfd_print_symbol
1.30644 -+{
1.30645 -+ bfd_print_symbol_name,
1.30646 -+ bfd_print_symbol_more,
1.30647 -+ bfd_print_symbol_all
1.30648 -+} bfd_print_symbol_type;
1.30649 -+
1.30650 -+/* Information about a symbol that nm needs. */
1.30651 -+
1.30652 -+typedef struct _symbol_info
1.30653 -+{
1.30654 -+ symvalue value;
1.30655 -+ char type;
1.30656 -+ const char *name; /* Symbol name. */
1.30657 -+ unsigned char stab_type; /* Stab type. */
1.30658 -+ char stab_other; /* Stab other. */
1.30659 -+ short stab_desc; /* Stab desc. */
1.30660 -+ const char *stab_name; /* String for stab type. */
1.30661 -+} symbol_info;
1.30662 -+
1.30663 -+/* Get the name of a stabs type code. */
1.30664 -+
1.30665 -+extern const char *bfd_get_stab_name (int);
1.30666 -+
1.30667 -+/* Hash table routines. There is no way to free up a hash table. */
1.30668 -+
1.30669 -+/* An element in the hash table. Most uses will actually use a larger
1.30670 -+ structure, and an instance of this will be the first field. */
1.30671 -+
1.30672 -+struct bfd_hash_entry
1.30673 -+{
1.30674 -+ /* Next entry for this hash code. */
1.30675 -+ struct bfd_hash_entry *next;
1.30676 -+ /* String being hashed. */
1.30677 -+ const char *string;
1.30678 -+ /* Hash code. This is the full hash code, not the index into the
1.30679 -+ table. */
1.30680 -+ unsigned long hash;
1.30681 -+};
1.30682 -+
1.30683 -+/* A hash table. */
1.30684 -+
1.30685 -+struct bfd_hash_table
1.30686 -+{
1.30687 -+ /* The hash array. */
1.30688 -+ struct bfd_hash_entry **table;
1.30689 -+ /* A function used to create new elements in the hash table. The
1.30690 -+ first entry is itself a pointer to an element. When this
1.30691 -+ function is first invoked, this pointer will be NULL. However,
1.30692 -+ having the pointer permits a hierarchy of method functions to be
1.30693 -+ built each of which calls the function in the superclass. Thus
1.30694 -+ each function should be written to allocate a new block of memory
1.30695 -+ only if the argument is NULL. */
1.30696 -+ struct bfd_hash_entry *(*newfunc)
1.30697 -+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
1.30698 -+ /* An objalloc for this hash table. This is a struct objalloc *,
1.30699 -+ but we use void * to avoid requiring the inclusion of objalloc.h. */
1.30700 -+ void *memory;
1.30701 -+ /* The number of slots in the hash table. */
1.30702 -+ unsigned int size;
1.30703 -+ /* The number of entries in the hash table. */
1.30704 -+ unsigned int count;
1.30705 -+ /* The size of elements. */
1.30706 -+ unsigned int entsize;
1.30707 -+ /* If non-zero, don't grow the hash table. */
1.30708 -+ unsigned int frozen:1;
1.30709 -+};
1.30710 -+
1.30711 -+/* Initialize a hash table. */
1.30712 -+extern bfd_boolean bfd_hash_table_init
1.30713 -+ (struct bfd_hash_table *,
1.30714 -+ struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
1.30715 -+ struct bfd_hash_table *,
1.30716 -+ const char *),
1.30717 -+ unsigned int);
1.30718 -+
1.30719 -+/* Initialize a hash table specifying a size. */
1.30720 -+extern bfd_boolean bfd_hash_table_init_n
1.30721 -+ (struct bfd_hash_table *,
1.30722 -+ struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
1.30723 -+ struct bfd_hash_table *,
1.30724 -+ const char *),
1.30725 -+ unsigned int, unsigned int);
1.30726 -+
1.30727 -+/* Free up a hash table. */
1.30728 -+extern void bfd_hash_table_free
1.30729 -+ (struct bfd_hash_table *);
1.30730 -+
1.30731 -+/* Look up a string in a hash table. If CREATE is TRUE, a new entry
1.30732 -+ will be created for this string if one does not already exist. The
1.30733 -+ COPY argument must be TRUE if this routine should copy the string
1.30734 -+ into newly allocated memory when adding an entry. */
1.30735 -+extern struct bfd_hash_entry *bfd_hash_lookup
1.30736 -+ (struct bfd_hash_table *, const char *, bfd_boolean create,
1.30737 -+ bfd_boolean copy);
1.30738 -+
1.30739 -+/* Replace an entry in a hash table. */
1.30740 -+extern void bfd_hash_replace
1.30741 -+ (struct bfd_hash_table *, struct bfd_hash_entry *old,
1.30742 -+ struct bfd_hash_entry *nw);
1.30743 -+
1.30744 -+/* Base method for creating a hash table entry. */
1.30745 -+extern struct bfd_hash_entry *bfd_hash_newfunc
1.30746 -+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
1.30747 -+
1.30748 -+/* Grab some space for a hash table entry. */
1.30749 -+extern void *bfd_hash_allocate
1.30750 -+ (struct bfd_hash_table *, unsigned int);
1.30751 -+
1.30752 -+/* Traverse a hash table in a random order, calling a function on each
1.30753 -+ element. If the function returns FALSE, the traversal stops. The
1.30754 -+ INFO argument is passed to the function. */
1.30755 -+extern void bfd_hash_traverse
1.30756 -+ (struct bfd_hash_table *,
1.30757 -+ bfd_boolean (*) (struct bfd_hash_entry *, void *),
1.30758 -+ void *info);
1.30759 -+
1.30760 -+/* Allows the default size of a hash table to be configured. New hash
1.30761 -+ tables allocated using bfd_hash_table_init will be created with
1.30762 -+ this size. */
1.30763 -+extern void bfd_hash_set_default_size (bfd_size_type);
1.30764 -+
1.30765 -+/* This structure is used to keep track of stabs in sections
1.30766 -+ information while linking. */
1.30767 -+
1.30768 -+struct stab_info
1.30769 -+{
1.30770 -+ /* A hash table used to hold stabs strings. */
1.30771 -+ struct bfd_strtab_hash *strings;
1.30772 -+ /* The header file hash table. */
1.30773 -+ struct bfd_hash_table includes;
1.30774 -+ /* The first .stabstr section. */
1.30775 -+ struct bfd_section *stabstr;
1.30776 -+};
1.30777 -+
1.30778 -+#define COFF_SWAP_TABLE (void *) &bfd_coff_std_swap_table
1.30779 -+
1.30780 -+/* User program access to BFD facilities. */
1.30781 -+
1.30782 -+/* Direct I/O routines, for programs which know more about the object
1.30783 -+ file than BFD does. Use higher level routines if possible. */
1.30784 -+
1.30785 -+extern bfd_size_type bfd_bread (void *, bfd_size_type, bfd *);
1.30786 -+extern bfd_size_type bfd_bwrite (const void *, bfd_size_type, bfd *);
1.30787 -+extern int bfd_seek (bfd *, file_ptr, int);
1.30788 -+extern file_ptr bfd_tell (bfd *);
1.30789 -+extern int bfd_flush (bfd *);
1.30790 -+extern int bfd_stat (bfd *, struct stat *);
1.30791 -+
1.30792 -+/* Deprecated old routines. */
1.30793 -+#if __GNUC__
1.30794 -+#define bfd_read(BUF, ELTSIZE, NITEMS, ABFD) \
1.30795 -+ (warn_deprecated ("bfd_read", __FILE__, __LINE__, __FUNCTION__), \
1.30796 -+ bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
1.30797 -+#define bfd_write(BUF, ELTSIZE, NITEMS, ABFD) \
1.30798 -+ (warn_deprecated ("bfd_write", __FILE__, __LINE__, __FUNCTION__), \
1.30799 -+ bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
1.30800 -+#else
1.30801 -+#define bfd_read(BUF, ELTSIZE, NITEMS, ABFD) \
1.30802 -+ (warn_deprecated ("bfd_read", (const char *) 0, 0, (const char *) 0), \
1.30803 -+ bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
1.30804 -+#define bfd_write(BUF, ELTSIZE, NITEMS, ABFD) \
1.30805 -+ (warn_deprecated ("bfd_write", (const char *) 0, 0, (const char *) 0),\
1.30806 -+ bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
1.30807 -+#endif
1.30808 -+extern void warn_deprecated (const char *, const char *, int, const char *);
1.30809 -+
1.30810 -+/* Cast from const char * to char * so that caller can assign to
1.30811 -+ a char * without a warning. */
1.30812 -+#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
1.30813 -+#define bfd_get_cacheable(abfd) ((abfd)->cacheable)
1.30814 -+#define bfd_get_format(abfd) ((abfd)->format)
1.30815 -+#define bfd_get_target(abfd) ((abfd)->xvec->name)
1.30816 -+#define bfd_get_flavour(abfd) ((abfd)->xvec->flavour)
1.30817 -+#define bfd_family_coff(abfd) \
1.30818 -+ (bfd_get_flavour (abfd) == bfd_target_coff_flavour || \
1.30819 -+ bfd_get_flavour (abfd) == bfd_target_xcoff_flavour)
1.30820 -+#define bfd_big_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_BIG)
1.30821 -+#define bfd_little_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_LITTLE)
1.30822 -+#define bfd_header_big_endian(abfd) \
1.30823 -+ ((abfd)->xvec->header_byteorder == BFD_ENDIAN_BIG)
1.30824 -+#define bfd_header_little_endian(abfd) \
1.30825 -+ ((abfd)->xvec->header_byteorder == BFD_ENDIAN_LITTLE)
1.30826 -+#define bfd_get_file_flags(abfd) ((abfd)->flags)
1.30827 -+#define bfd_applicable_file_flags(abfd) ((abfd)->xvec->object_flags)
1.30828 -+#define bfd_applicable_section_flags(abfd) ((abfd)->xvec->section_flags)
1.30829 -+#define bfd_my_archive(abfd) ((abfd)->my_archive)
1.30830 -+#define bfd_has_map(abfd) ((abfd)->has_armap)
1.30831 -+
1.30832 -+#define bfd_valid_reloc_types(abfd) ((abfd)->xvec->valid_reloc_types)
1.30833 -+#define bfd_usrdata(abfd) ((abfd)->usrdata)
1.30834 -+
1.30835 -+#define bfd_get_start_address(abfd) ((abfd)->start_address)
1.30836 -+#define bfd_get_symcount(abfd) ((abfd)->symcount)
1.30837 -+#define bfd_get_outsymbols(abfd) ((abfd)->outsymbols)
1.30838 -+#define bfd_count_sections(abfd) ((abfd)->section_count)
1.30839 -+
1.30840 -+#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount)
1.30841 -+
1.30842 -+#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
1.30843 -+
1.30844 -+#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
1.30845 -+
1.30846 -+extern bfd_boolean bfd_cache_close
1.30847 -+ (bfd *abfd);
1.30848 -+/* NB: This declaration should match the autogenerated one in libbfd.h. */
1.30849 -+
1.30850 -+extern bfd_boolean bfd_cache_close_all (void);
1.30851 -+
1.30852 -+extern bfd_boolean bfd_record_phdr
1.30853 -+ (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
1.30854 -+ bfd_boolean, bfd_boolean, unsigned int, struct bfd_section **);
1.30855 -+
1.30856 -+/* Byte swapping routines. */
1.30857 -+
1.30858 -+bfd_uint64_t bfd_getb64 (const void *);
1.30859 -+bfd_uint64_t bfd_getl64 (const void *);
1.30860 -+bfd_int64_t bfd_getb_signed_64 (const void *);
1.30861 -+bfd_int64_t bfd_getl_signed_64 (const void *);
1.30862 -+bfd_vma bfd_getb32 (const void *);
1.30863 -+bfd_vma bfd_getl32 (const void *);
1.30864 -+bfd_signed_vma bfd_getb_signed_32 (const void *);
1.30865 -+bfd_signed_vma bfd_getl_signed_32 (const void *);
1.30866 -+bfd_vma bfd_getb16 (const void *);
1.30867 -+bfd_vma bfd_getl16 (const void *);
1.30868 -+bfd_signed_vma bfd_getb_signed_16 (const void *);
1.30869 -+bfd_signed_vma bfd_getl_signed_16 (const void *);
1.30870 -+void bfd_putb64 (bfd_uint64_t, void *);
1.30871 -+void bfd_putl64 (bfd_uint64_t, void *);
1.30872 -+void bfd_putb32 (bfd_vma, void *);
1.30873 -+void bfd_putl32 (bfd_vma, void *);
1.30874 -+void bfd_putb16 (bfd_vma, void *);
1.30875 -+void bfd_putl16 (bfd_vma, void *);
1.30876 -+
1.30877 -+/* Byte swapping routines which take size and endiannes as arguments. */
1.30878 -+
1.30879 -+bfd_uint64_t bfd_get_bits (const void *, int, bfd_boolean);
1.30880 -+void bfd_put_bits (bfd_uint64_t, void *, int, bfd_boolean);
1.30881 -+
1.30882 -+extern bfd_boolean bfd_section_already_linked_table_init (void);
1.30883 -+extern void bfd_section_already_linked_table_free (void);
1.30884 -+
1.30885 -+/* Externally visible ECOFF routines. */
1.30886 -+
1.30887 -+#if defined(__STDC__) || defined(ALMOST_STDC)
1.30888 -+struct ecoff_debug_info;
1.30889 -+struct ecoff_debug_swap;
1.30890 -+struct ecoff_extr;
1.30891 -+struct bfd_symbol;
1.30892 -+struct bfd_link_info;
1.30893 -+struct bfd_link_hash_entry;
1.30894 -+struct bfd_elf_version_tree;
1.30895 -+#endif
1.30896 -+extern bfd_vma bfd_ecoff_get_gp_value
1.30897 -+ (bfd * abfd);
1.30898 -+extern bfd_boolean bfd_ecoff_set_gp_value
1.30899 -+ (bfd *abfd, bfd_vma gp_value);
1.30900 -+extern bfd_boolean bfd_ecoff_set_regmasks
1.30901 -+ (bfd *abfd, unsigned long gprmask, unsigned long fprmask,
1.30902 -+ unsigned long *cprmask);
1.30903 -+extern void *bfd_ecoff_debug_init
1.30904 -+ (bfd *output_bfd, struct ecoff_debug_info *output_debug,
1.30905 -+ const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
1.30906 -+extern void bfd_ecoff_debug_free
1.30907 -+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
1.30908 -+ const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
1.30909 -+extern bfd_boolean bfd_ecoff_debug_accumulate
1.30910 -+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
1.30911 -+ const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
1.30912 -+ struct ecoff_debug_info *input_debug,
1.30913 -+ const struct ecoff_debug_swap *input_swap, struct bfd_link_info *);
1.30914 -+extern bfd_boolean bfd_ecoff_debug_accumulate_other
1.30915 -+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
1.30916 -+ const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
1.30917 -+ struct bfd_link_info *);
1.30918 -+extern bfd_boolean bfd_ecoff_debug_externals
1.30919 -+ (bfd *abfd, struct ecoff_debug_info *debug,
1.30920 -+ const struct ecoff_debug_swap *swap, bfd_boolean relocatable,
1.30921 -+ bfd_boolean (*get_extr) (struct bfd_symbol *, struct ecoff_extr *),
1.30922 -+ void (*set_index) (struct bfd_symbol *, bfd_size_type));
1.30923 -+extern bfd_boolean bfd_ecoff_debug_one_external
1.30924 -+ (bfd *abfd, struct ecoff_debug_info *debug,
1.30925 -+ const struct ecoff_debug_swap *swap, const char *name,
1.30926 -+ struct ecoff_extr *esym);
1.30927 -+extern bfd_size_type bfd_ecoff_debug_size
1.30928 -+ (bfd *abfd, struct ecoff_debug_info *debug,
1.30929 -+ const struct ecoff_debug_swap *swap);
1.30930 -+extern bfd_boolean bfd_ecoff_write_debug
1.30931 -+ (bfd *abfd, struct ecoff_debug_info *debug,
1.30932 -+ const struct ecoff_debug_swap *swap, file_ptr where);
1.30933 -+extern bfd_boolean bfd_ecoff_write_accumulated_debug
1.30934 -+ (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
1.30935 -+ const struct ecoff_debug_swap *swap,
1.30936 -+ struct bfd_link_info *info, file_ptr where);
1.30937 -+
1.30938 -+/* Externally visible ELF routines. */
1.30939 -+
1.30940 -+struct bfd_link_needed_list
1.30941 -+{
1.30942 -+ struct bfd_link_needed_list *next;
1.30943 -+ bfd *by;
1.30944 -+ const char *name;
1.30945 -+};
1.30946 -+
1.30947 -+enum dynamic_lib_link_class {
1.30948 -+ DYN_NORMAL = 0,
1.30949 -+ DYN_AS_NEEDED = 1,
1.30950 -+ DYN_DT_NEEDED = 2,
1.30951 -+ DYN_NO_ADD_NEEDED = 4,
1.30952 -+ DYN_NO_NEEDED = 8
1.30953 -+};
1.30954 -+
1.30955 -+enum notice_asneeded_action {
1.30956 -+ notice_as_needed,
1.30957 -+ notice_not_needed,
1.30958 -+ notice_needed
1.30959 -+};
1.30960 -+
1.30961 -+extern bfd_boolean bfd_elf_record_link_assignment
1.30962 -+ (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
1.30963 -+ bfd_boolean);
1.30964 -+extern struct bfd_link_needed_list *bfd_elf_get_needed_list
1.30965 -+ (bfd *, struct bfd_link_info *);
1.30966 -+extern bfd_boolean bfd_elf_get_bfd_needed_list
1.30967 -+ (bfd *, struct bfd_link_needed_list **);
1.30968 -+extern bfd_boolean bfd_elf_size_dynamic_sections
1.30969 -+ (bfd *, const char *, const char *, const char *, const char * const *,
1.30970 -+ struct bfd_link_info *, struct bfd_section **,
1.30971 -+ struct bfd_elf_version_tree *);
1.30972 -+extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
1.30973 -+ (bfd *, struct bfd_link_info *);
1.30974 -+extern void bfd_elf_set_dt_needed_name
1.30975 -+ (bfd *, const char *);
1.30976 -+extern const char *bfd_elf_get_dt_soname
1.30977 -+ (bfd *);
1.30978 -+extern void bfd_elf_set_dyn_lib_class
1.30979 -+ (bfd *, enum dynamic_lib_link_class);
1.30980 -+extern int bfd_elf_get_dyn_lib_class
1.30981 -+ (bfd *);
1.30982 -+extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
1.30983 -+ (bfd *, struct bfd_link_info *);
1.30984 -+extern bfd_boolean bfd_elf_discard_info
1.30985 -+ (bfd *, struct bfd_link_info *);
1.30986 -+extern unsigned int _bfd_elf_default_action_discarded
1.30987 -+ (struct bfd_section *);
1.30988 -+
1.30989 -+/* Return an upper bound on the number of bytes required to store a
1.30990 -+ copy of ABFD's program header table entries. Return -1 if an error
1.30991 -+ occurs; bfd_get_error will return an appropriate code. */
1.30992 -+extern long bfd_get_elf_phdr_upper_bound
1.30993 -+ (bfd *abfd);
1.30994 -+
1.30995 -+/* Copy ABFD's program header table entries to *PHDRS. The entries
1.30996 -+ will be stored as an array of Elf_Internal_Phdr structures, as
1.30997 -+ defined in include/elf/internal.h. To find out how large the
1.30998 -+ buffer needs to be, call bfd_get_elf_phdr_upper_bound.
1.30999 -+
1.31000 -+ Return the number of program header table entries read, or -1 if an
1.31001 -+ error occurs; bfd_get_error will return an appropriate code. */
1.31002 -+extern int bfd_get_elf_phdrs
1.31003 -+ (bfd *abfd, void *phdrs);
1.31004 -+
1.31005 -+/* Create a new BFD as if by bfd_openr. Rather than opening a file,
1.31006 -+ reconstruct an ELF file by reading the segments out of remote memory
1.31007 -+ based on the ELF file header at EHDR_VMA and the ELF program headers it
1.31008 -+ points to. If not null, *LOADBASEP is filled in with the difference
1.31009 -+ between the VMAs from which the segments were read, and the VMAs the
1.31010 -+ file headers (and hence BFD's idea of each section's VMA) put them at.
1.31011 -+
1.31012 -+ The function TARGET_READ_MEMORY is called to copy LEN bytes from the
1.31013 -+ remote memory at target address VMA into the local buffer at MYADDR; it
1.31014 -+ should return zero on success or an `errno' code on failure. TEMPL must
1.31015 -+ be a BFD for an ELF target with the word size and byte order found in
1.31016 -+ the remote memory. */
1.31017 -+extern bfd *bfd_elf_bfd_from_remote_memory
1.31018 -+ (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
1.31019 -+ int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, int len));
1.31020 -+
1.31021 -+/* Return the arch_size field of an elf bfd, or -1 if not elf. */
1.31022 -+extern int bfd_get_arch_size
1.31023 -+ (bfd *);
1.31024 -+
1.31025 -+/* Return TRUE if address "naturally" sign extends, or -1 if not elf. */
1.31026 -+extern int bfd_get_sign_extend_vma
1.31027 -+ (bfd *);
1.31028 -+
1.31029 -+extern struct bfd_section *_bfd_elf_tls_setup
1.31030 -+ (bfd *, struct bfd_link_info *);
1.31031 -+
1.31032 -+extern void _bfd_fix_excluded_sec_syms
1.31033 -+ (bfd *, struct bfd_link_info *);
1.31034 -+
1.31035 -+extern unsigned bfd_m68k_mach_to_features (int);
1.31036 -+
1.31037 -+extern int bfd_m68k_features_to_mach (unsigned);
1.31038 -+
1.31039 -+extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
1.31040 -+ (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
1.31041 -+ char **);
1.31042 -+
1.31043 -+extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
1.31044 -+ (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
1.31045 -+ char **);
1.31046 -+
1.31047 -+/* SunOS shared library support routines for the linker. */
1.31048 -+
1.31049 -+extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
1.31050 -+ (bfd *, struct bfd_link_info *);
1.31051 -+extern bfd_boolean bfd_sunos_record_link_assignment
1.31052 -+ (bfd *, struct bfd_link_info *, const char *);
1.31053 -+extern bfd_boolean bfd_sunos_size_dynamic_sections
1.31054 -+ (bfd *, struct bfd_link_info *, struct bfd_section **,
1.31055 -+ struct bfd_section **, struct bfd_section **);
1.31056 -+
1.31057 -+/* Linux shared library support routines for the linker. */
1.31058 -+
1.31059 -+extern bfd_boolean bfd_i386linux_size_dynamic_sections
1.31060 -+ (bfd *, struct bfd_link_info *);
1.31061 -+extern bfd_boolean bfd_m68klinux_size_dynamic_sections
1.31062 -+ (bfd *, struct bfd_link_info *);
1.31063 -+extern bfd_boolean bfd_sparclinux_size_dynamic_sections
1.31064 -+ (bfd *, struct bfd_link_info *);
1.31065 -+
1.31066 -+/* mmap hacks */
1.31067 -+
1.31068 -+struct _bfd_window_internal;
1.31069 -+typedef struct _bfd_window_internal bfd_window_internal;
1.31070 -+
1.31071 -+typedef struct _bfd_window
1.31072 -+{
1.31073 -+ /* What the user asked for. */
1.31074 -+ void *data;
1.31075 -+ bfd_size_type size;
1.31076 -+ /* The actual window used by BFD. Small user-requested read-only
1.31077 -+ regions sharing a page may share a single window into the object
1.31078 -+ file. Read-write versions shouldn't until I've fixed things to
1.31079 -+ keep track of which portions have been claimed by the
1.31080 -+ application; don't want to give the same region back when the
1.31081 -+ application wants two writable copies! */
1.31082 -+ struct _bfd_window_internal *i;
1.31083 -+}
1.31084 -+bfd_window;
1.31085 -+
1.31086 -+extern void bfd_init_window
1.31087 -+ (bfd_window *);
1.31088 -+extern void bfd_free_window
1.31089 -+ (bfd_window *);
1.31090 -+extern bfd_boolean bfd_get_file_window
1.31091 -+ (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
1.31092 -+
1.31093 -+/* XCOFF support routines for the linker. */
1.31094 -+
1.31095 -+extern bfd_boolean bfd_xcoff_link_record_set
1.31096 -+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type);
1.31097 -+extern bfd_boolean bfd_xcoff_import_symbol
1.31098 -+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma,
1.31099 -+ const char *, const char *, const char *, unsigned int);
1.31100 -+extern bfd_boolean bfd_xcoff_export_symbol
1.31101 -+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
1.31102 -+extern bfd_boolean bfd_xcoff_link_count_reloc
1.31103 -+ (bfd *, struct bfd_link_info *, const char *);
1.31104 -+extern bfd_boolean bfd_xcoff_record_link_assignment
1.31105 -+ (bfd *, struct bfd_link_info *, const char *);
1.31106 -+extern bfd_boolean bfd_xcoff_size_dynamic_sections
1.31107 -+ (bfd *, struct bfd_link_info *, const char *, const char *,
1.31108 -+ unsigned long, unsigned long, unsigned long, bfd_boolean,
1.31109 -+ int, bfd_boolean, bfd_boolean, struct bfd_section **, bfd_boolean);
1.31110 -+extern bfd_boolean bfd_xcoff_link_generate_rtinit
1.31111 -+ (bfd *, const char *, const char *, bfd_boolean);
1.31112 -+
1.31113 -+/* XCOFF support routines for ar. */
1.31114 -+extern bfd_boolean bfd_xcoff_ar_archive_set_magic
1.31115 -+ (bfd *, char *);
1.31116 -+
1.31117 -+/* Externally visible COFF routines. */
1.31118 -+
1.31119 -+#if defined(__STDC__) || defined(ALMOST_STDC)
1.31120 -+struct internal_syment;
1.31121 -+union internal_auxent;
1.31122 -+#endif
1.31123 -+
1.31124 -+extern bfd_boolean bfd_coff_get_syment
1.31125 -+ (bfd *, struct bfd_symbol *, struct internal_syment *);
1.31126 -+
1.31127 -+extern bfd_boolean bfd_coff_get_auxent
1.31128 -+ (bfd *, struct bfd_symbol *, int, union internal_auxent *);
1.31129 -+
1.31130 -+extern bfd_boolean bfd_coff_set_symbol_class
1.31131 -+ (bfd *, struct bfd_symbol *, unsigned int);
1.31132 -+
1.31133 -+extern bfd_boolean bfd_m68k_coff_create_embedded_relocs
1.31134 -+ (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **);
1.31135 -+
1.31136 -+/* ARM VFP11 erratum workaround support. */
1.31137 -+typedef enum
1.31138 -+{
1.31139 -+ BFD_ARM_VFP11_FIX_DEFAULT,
1.31140 -+ BFD_ARM_VFP11_FIX_NONE,
1.31141 -+ BFD_ARM_VFP11_FIX_SCALAR,
1.31142 -+ BFD_ARM_VFP11_FIX_VECTOR
1.31143 -+} bfd_arm_vfp11_fix;
1.31144 -+
1.31145 -+extern void bfd_elf32_arm_init_maps
1.31146 -+ (bfd *);
1.31147 -+
1.31148 -+extern void bfd_elf32_arm_set_vfp11_fix
1.31149 -+ (bfd *, struct bfd_link_info *);
1.31150 -+
1.31151 -+extern bfd_boolean bfd_elf32_arm_vfp11_erratum_scan
1.31152 -+ (bfd *, struct bfd_link_info *);
1.31153 -+
1.31154 -+extern void bfd_elf32_arm_vfp11_fix_veneer_locations
1.31155 -+ (bfd *, struct bfd_link_info *);
1.31156 -+
1.31157 -+/* ARM Interworking support. Called from linker. */
1.31158 -+extern bfd_boolean bfd_arm_allocate_interworking_sections
1.31159 -+ (struct bfd_link_info *);
1.31160 -+
1.31161 -+extern bfd_boolean bfd_arm_process_before_allocation
1.31162 -+ (bfd *, struct bfd_link_info *, int);
1.31163 -+
1.31164 -+extern bfd_boolean bfd_arm_get_bfd_for_interworking
1.31165 -+ (bfd *, struct bfd_link_info *);
1.31166 -+
1.31167 -+/* PE ARM Interworking support. Called from linker. */
1.31168 -+extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
1.31169 -+ (struct bfd_link_info *);
1.31170 -+
1.31171 -+extern bfd_boolean bfd_arm_pe_process_before_allocation
1.31172 -+ (bfd *, struct bfd_link_info *, int);
1.31173 -+
1.31174 -+extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
1.31175 -+ (bfd *, struct bfd_link_info *);
1.31176 -+
1.31177 -+/* ELF ARM Interworking support. Called from linker. */
1.31178 -+extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
1.31179 -+ (struct bfd_link_info *);
1.31180 -+
1.31181 -+extern bfd_boolean bfd_elf32_arm_process_before_allocation
1.31182 -+ (bfd *, struct bfd_link_info *);
1.31183 -+
1.31184 -+void bfd_elf32_arm_set_target_relocs
1.31185 -+ (bfd *, struct bfd_link_info *, int, char *, int, int, bfd_arm_vfp11_fix,
1.31186 -+ int, int);
1.31187 -+
1.31188 -+extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
1.31189 -+ (bfd *, struct bfd_link_info *);
1.31190 -+
1.31191 -+extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
1.31192 -+ (bfd *, struct bfd_link_info *);
1.31193 -+
1.31194 -+/* ELF ARM mapping symbol support */
1.31195 -+#define BFD_ARM_SPECIAL_SYM_TYPE_MAP (1 << 0)
1.31196 -+#define BFD_ARM_SPECIAL_SYM_TYPE_TAG (1 << 1)
1.31197 -+#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER (1 << 2)
1.31198 -+#define BFD_ARM_SPECIAL_SYM_TYPE_ANY (~0)
1.31199 -+extern bfd_boolean bfd_is_arm_special_symbol_name
1.31200 -+ (const char * name, int type);
1.31201 -+
1.31202 -+extern void bfd_elf32_arm_set_byteswap_code (struct bfd_link_info *, int);
1.31203 -+
1.31204 -+/* ARM Note section processing. */
1.31205 -+extern bfd_boolean bfd_arm_merge_machines
1.31206 -+ (bfd *, bfd *);
1.31207 -+
1.31208 -+extern bfd_boolean bfd_arm_update_notes
1.31209 -+ (bfd *, const char *);
1.31210 -+
1.31211 -+extern unsigned int bfd_arm_get_mach_from_notes
1.31212 -+ (bfd *, const char *);
1.31213 -+
1.31214 -+/* TI COFF load page support. */
1.31215 -+extern void bfd_ticoff_set_section_load_page
1.31216 -+ (struct bfd_section *, int);
1.31217 -+
1.31218 -+extern int bfd_ticoff_get_section_load_page
1.31219 -+ (struct bfd_section *);
1.31220 -+
1.31221 -+/* H8/300 functions. */
1.31222 -+extern bfd_vma bfd_h8300_pad_address
1.31223 -+ (bfd *, bfd_vma);
1.31224 -+
1.31225 -+/* IA64 Itanium code generation. Called from linker. */
1.31226 -+extern void bfd_elf32_ia64_after_parse
1.31227 -+ (int);
1.31228 -+
1.31229 -+extern void bfd_elf64_ia64_after_parse
1.31230 -+ (int);
1.31231 -+
1.31232 -+/* This structure is used for a comdat section, as in PE. A comdat
1.31233 -+ section is associated with a particular symbol. When the linker
1.31234 -+ sees a comdat section, it keeps only one of the sections with a
1.31235 -+ given name and associated with a given symbol. */
1.31236 -+
1.31237 -+struct coff_comdat_info
1.31238 -+{
1.31239 -+ /* The name of the symbol associated with a comdat section. */
1.31240 -+ const char *name;
1.31241 -+
1.31242 -+ /* The local symbol table index of the symbol associated with a
1.31243 -+ comdat section. This is only meaningful to the object file format
1.31244 -+ specific code; it is not an index into the list returned by
1.31245 -+ bfd_canonicalize_symtab. */
1.31246 -+ long symbol;
1.31247 -+};
1.31248 -+
1.31249 -+extern struct coff_comdat_info *bfd_coff_get_comdat_section
1.31250 -+ (bfd *, struct bfd_section *);
1.31251 -+
1.31252 -+/* Extracted from init.c. */
1.31253 -+void bfd_init (void);
1.31254 -+
1.31255 -+/* Extracted from opncls.c. */
1.31256 -+bfd *bfd_fopen (const char *filename, const char *target,
1.31257 -+ const char *mode, int fd);
1.31258 -+
1.31259 -+bfd *bfd_openr (const char *filename, const char *target);
1.31260 -+
1.31261 -+bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
1.31262 -+
1.31263 -+bfd *bfd_openstreamr (const char *, const char *, void *);
1.31264 -+
1.31265 -+bfd *bfd_openr_iovec (const char *filename, const char *target,
1.31266 -+ void *(*open) (struct bfd *nbfd,
1.31267 -+ void *open_closure),
1.31268 -+ void *open_closure,
1.31269 -+ file_ptr (*pread) (struct bfd *nbfd,
1.31270 -+ void *stream,
1.31271 -+ void *buf,
1.31272 -+ file_ptr nbytes,
1.31273 -+ file_ptr offset),
1.31274 -+ int (*close) (struct bfd *nbfd,
1.31275 -+ void *stream),
1.31276 -+ int (*stat) (struct bfd *abfd,
1.31277 -+ void *stream,
1.31278 -+ struct stat *sb));
1.31279 -+
1.31280 -+bfd *bfd_openw (const char *filename, const char *target);
1.31281 -+
1.31282 -+bfd_boolean bfd_close (bfd *abfd);
1.31283 -+
1.31284 -+bfd_boolean bfd_close_all_done (bfd *);
1.31285 -+
1.31286 -+bfd *bfd_create (const char *filename, bfd *templ);
1.31287 -+
1.31288 -+bfd_boolean bfd_make_writable (bfd *abfd);
1.31289 -+
1.31290 -+bfd_boolean bfd_make_readable (bfd *abfd);
1.31291 -+
1.31292 -+unsigned long bfd_calc_gnu_debuglink_crc32
1.31293 -+ (unsigned long crc, const unsigned char *buf, bfd_size_type len);
1.31294 -+
1.31295 -+char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
1.31296 -+
1.31297 -+struct bfd_section *bfd_create_gnu_debuglink_section
1.31298 -+ (bfd *abfd, const char *filename);
1.31299 -+
1.31300 -+bfd_boolean bfd_fill_in_gnu_debuglink_section
1.31301 -+ (bfd *abfd, struct bfd_section *sect, const char *filename);
1.31302 -+
1.31303 -+/* Extracted from libbfd.c. */
1.31304 -+
1.31305 -+/* Byte swapping macros for user section data. */
1.31306 -+
1.31307 -+#define bfd_put_8(abfd, val, ptr) \
1.31308 -+ ((void) (*((unsigned char *) (ptr)) = (val) & 0xff))
1.31309 -+#define bfd_put_signed_8 \
1.31310 -+ bfd_put_8
1.31311 -+#define bfd_get_8(abfd, ptr) \
1.31312 -+ (*(unsigned char *) (ptr) & 0xff)
1.31313 -+#define bfd_get_signed_8(abfd, ptr) \
1.31314 -+ (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
1.31315 -+
1.31316 -+#define bfd_put_16(abfd, val, ptr) \
1.31317 -+ BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
1.31318 -+#define bfd_put_signed_16 \
1.31319 -+ bfd_put_16
1.31320 -+#define bfd_get_16(abfd, ptr) \
1.31321 -+ BFD_SEND (abfd, bfd_getx16, (ptr))
1.31322 -+#define bfd_get_signed_16(abfd, ptr) \
1.31323 -+ BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
1.31324 -+
1.31325 -+#define bfd_put_32(abfd, val, ptr) \
1.31326 -+ BFD_SEND (abfd, bfd_putx32, ((val),(ptr)))
1.31327 -+#define bfd_put_signed_32 \
1.31328 -+ bfd_put_32
1.31329 -+#define bfd_get_32(abfd, ptr) \
1.31330 -+ BFD_SEND (abfd, bfd_getx32, (ptr))
1.31331 -+#define bfd_get_signed_32(abfd, ptr) \
1.31332 -+ BFD_SEND (abfd, bfd_getx_signed_32, (ptr))
1.31333 -+
1.31334 -+#define bfd_put_64(abfd, val, ptr) \
1.31335 -+ BFD_SEND (abfd, bfd_putx64, ((val), (ptr)))
1.31336 -+#define bfd_put_signed_64 \
1.31337 -+ bfd_put_64
1.31338 -+#define bfd_get_64(abfd, ptr) \
1.31339 -+ BFD_SEND (abfd, bfd_getx64, (ptr))
1.31340 -+#define bfd_get_signed_64(abfd, ptr) \
1.31341 -+ BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
1.31342 -+
1.31343 -+#define bfd_get(bits, abfd, ptr) \
1.31344 -+ ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \
1.31345 -+ : (bits) == 16 ? bfd_get_16 (abfd, ptr) \
1.31346 -+ : (bits) == 32 ? bfd_get_32 (abfd, ptr) \
1.31347 -+ : (bits) == 64 ? bfd_get_64 (abfd, ptr) \
1.31348 -+ : (abort (), (bfd_vma) - 1))
1.31349 -+
1.31350 -+#define bfd_put(bits, abfd, val, ptr) \
1.31351 -+ ((bits) == 8 ? bfd_put_8 (abfd, val, ptr) \
1.31352 -+ : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \
1.31353 -+ : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \
1.31354 -+ : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \
1.31355 -+ : (abort (), (void) 0))
1.31356 -+
1.31357 -+
1.31358 -+/* Byte swapping macros for file header data. */
1.31359 -+
1.31360 -+#define bfd_h_put_8(abfd, val, ptr) \
1.31361 -+ bfd_put_8 (abfd, val, ptr)
1.31362 -+#define bfd_h_put_signed_8(abfd, val, ptr) \
1.31363 -+ bfd_put_8 (abfd, val, ptr)
1.31364 -+#define bfd_h_get_8(abfd, ptr) \
1.31365 -+ bfd_get_8 (abfd, ptr)
1.31366 -+#define bfd_h_get_signed_8(abfd, ptr) \
1.31367 -+ bfd_get_signed_8 (abfd, ptr)
1.31368 -+
1.31369 -+#define bfd_h_put_16(abfd, val, ptr) \
1.31370 -+ BFD_SEND (abfd, bfd_h_putx16, (val, ptr))
1.31371 -+#define bfd_h_put_signed_16 \
1.31372 -+ bfd_h_put_16
1.31373 -+#define bfd_h_get_16(abfd, ptr) \
1.31374 -+ BFD_SEND (abfd, bfd_h_getx16, (ptr))
1.31375 -+#define bfd_h_get_signed_16(abfd, ptr) \
1.31376 -+ BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr))
1.31377 -+
1.31378 -+#define bfd_h_put_32(abfd, val, ptr) \
1.31379 -+ BFD_SEND (abfd, bfd_h_putx32, (val, ptr))
1.31380 -+#define bfd_h_put_signed_32 \
1.31381 -+ bfd_h_put_32
1.31382 -+#define bfd_h_get_32(abfd, ptr) \
1.31383 -+ BFD_SEND (abfd, bfd_h_getx32, (ptr))
1.31384 -+#define bfd_h_get_signed_32(abfd, ptr) \
1.31385 -+ BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr))
1.31386 -+
1.31387 -+#define bfd_h_put_64(abfd, val, ptr) \
1.31388 -+ BFD_SEND (abfd, bfd_h_putx64, (val, ptr))
1.31389 -+#define bfd_h_put_signed_64 \
1.31390 -+ bfd_h_put_64
1.31391 -+#define bfd_h_get_64(abfd, ptr) \
1.31392 -+ BFD_SEND (abfd, bfd_h_getx64, (ptr))
1.31393 -+#define bfd_h_get_signed_64(abfd, ptr) \
1.31394 -+ BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr))
1.31395 -+
1.31396 -+/* Aliases for the above, which should eventually go away. */
1.31397 -+
1.31398 -+#define H_PUT_64 bfd_h_put_64
1.31399 -+#define H_PUT_32 bfd_h_put_32
1.31400 -+#define H_PUT_16 bfd_h_put_16
1.31401 -+#define H_PUT_8 bfd_h_put_8
1.31402 -+#define H_PUT_S64 bfd_h_put_signed_64
1.31403 -+#define H_PUT_S32 bfd_h_put_signed_32
1.31404 -+#define H_PUT_S16 bfd_h_put_signed_16
1.31405 -+#define H_PUT_S8 bfd_h_put_signed_8
1.31406 -+#define H_GET_64 bfd_h_get_64
1.31407 -+#define H_GET_32 bfd_h_get_32
1.31408 -+#define H_GET_16 bfd_h_get_16
1.31409 -+#define H_GET_8 bfd_h_get_8
1.31410 -+#define H_GET_S64 bfd_h_get_signed_64
1.31411 -+#define H_GET_S32 bfd_h_get_signed_32
1.31412 -+#define H_GET_S16 bfd_h_get_signed_16
1.31413 -+#define H_GET_S8 bfd_h_get_signed_8
1.31414 -+
1.31415 -+
1.31416 -+/* Extracted from bfdio.c. */
1.31417 -+long bfd_get_mtime (bfd *abfd);
1.31418 -+
1.31419 -+file_ptr bfd_get_size (bfd *abfd);
1.31420 -+
1.31421 -+/* Extracted from bfdwin.c. */
1.31422 -+/* Extracted from section.c. */
1.31423 -+typedef struct bfd_section
1.31424 -+{
1.31425 -+ /* The name of the section; the name isn't a copy, the pointer is
1.31426 -+ the same as that passed to bfd_make_section. */
1.31427 -+ const char *name;
1.31428 -+
1.31429 -+ /* A unique sequence number. */
1.31430 -+ int id;
1.31431 -+
1.31432 -+ /* Which section in the bfd; 0..n-1 as sections are created in a bfd. */
1.31433 -+ int index;
1.31434 -+
1.31435 -+ /* The next section in the list belonging to the BFD, or NULL. */
1.31436 -+ struct bfd_section *next;
1.31437 -+
1.31438 -+ /* The previous section in the list belonging to the BFD, or NULL. */
1.31439 -+ struct bfd_section *prev;
1.31440 -+
1.31441 -+ /* The field flags contains attributes of the section. Some
1.31442 -+ flags are read in from the object file, and some are
1.31443 -+ synthesized from other information. */
1.31444 -+ flagword flags;
1.31445 -+
1.31446 -+#define SEC_NO_FLAGS 0x000
1.31447 -+
1.31448 -+ /* Tells the OS to allocate space for this section when loading.
1.31449 -+ This is clear for a section containing debug information only. */
1.31450 -+#define SEC_ALLOC 0x001
1.31451 -+
1.31452 -+ /* Tells the OS to load the section from the file when loading.
1.31453 -+ This is clear for a .bss section. */
1.31454 -+#define SEC_LOAD 0x002
1.31455 -+
1.31456 -+ /* The section contains data still to be relocated, so there is
1.31457 -+ some relocation information too. */
1.31458 -+#define SEC_RELOC 0x004
1.31459 -+
1.31460 -+ /* A signal to the OS that the section contains read only data. */
1.31461 -+#define SEC_READONLY 0x008
1.31462 -+
1.31463 -+ /* The section contains code only. */
1.31464 -+#define SEC_CODE 0x010
1.31465 -+
1.31466 -+ /* The section contains data only. */
1.31467 -+#define SEC_DATA 0x020
1.31468 -+
1.31469 -+ /* The section will reside in ROM. */
1.31470 -+#define SEC_ROM 0x040
1.31471 -+
1.31472 -+ /* The section contains constructor information. This section
1.31473 -+ type is used by the linker to create lists of constructors and
1.31474 -+ destructors used by <<g++>>. When a back end sees a symbol
1.31475 -+ which should be used in a constructor list, it creates a new
1.31476 -+ section for the type of name (e.g., <<__CTOR_LIST__>>), attaches
1.31477 -+ the symbol to it, and builds a relocation. To build the lists
1.31478 -+ of constructors, all the linker has to do is catenate all the
1.31479 -+ sections called <<__CTOR_LIST__>> and relocate the data
1.31480 -+ contained within - exactly the operations it would peform on
1.31481 -+ standard data. */
1.31482 -+#define SEC_CONSTRUCTOR 0x080
1.31483 -+
1.31484 -+ /* The section has contents - a data section could be
1.31485 -+ <<SEC_ALLOC>> | <<SEC_HAS_CONTENTS>>; a debug section could be
1.31486 -+ <<SEC_HAS_CONTENTS>> */
1.31487 -+#define SEC_HAS_CONTENTS 0x100
1.31488 -+
1.31489 -+ /* An instruction to the linker to not output the section
1.31490 -+ even if it has information which would normally be written. */
1.31491 -+#define SEC_NEVER_LOAD 0x200
1.31492 -+
1.31493 -+ /* The section contains thread local data. */
1.31494 -+#define SEC_THREAD_LOCAL 0x400
1.31495 -+
1.31496 -+ /* The section has GOT references. This flag is only for the
1.31497 -+ linker, and is currently only used by the elf32-hppa back end.
1.31498 -+ It will be set if global offset table references were detected
1.31499 -+ in this section, which indicate to the linker that the section
1.31500 -+ contains PIC code, and must be handled specially when doing a
1.31501 -+ static link. */
1.31502 -+#define SEC_HAS_GOT_REF 0x800
1.31503 -+
1.31504 -+ /* The section contains common symbols (symbols may be defined
1.31505 -+ multiple times, the value of a symbol is the amount of
1.31506 -+ space it requires, and the largest symbol value is the one
1.31507 -+ used). Most targets have exactly one of these (which we
1.31508 -+ translate to bfd_com_section_ptr), but ECOFF has two. */
1.31509 -+#define SEC_IS_COMMON 0x1000
1.31510 -+
1.31511 -+ /* The section contains only debugging information. For
1.31512 -+ example, this is set for ELF .debug and .stab sections.
1.31513 -+ strip tests this flag to see if a section can be
1.31514 -+ discarded. */
1.31515 -+#define SEC_DEBUGGING 0x2000
1.31516 -+
1.31517 -+ /* The contents of this section are held in memory pointed to
1.31518 -+ by the contents field. This is checked by bfd_get_section_contents,
1.31519 -+ and the data is retrieved from memory if appropriate. */
1.31520 -+#define SEC_IN_MEMORY 0x4000
1.31521 -+
1.31522 -+ /* The contents of this section are to be excluded by the
1.31523 -+ linker for executable and shared objects unless those
1.31524 -+ objects are to be further relocated. */
1.31525 -+#define SEC_EXCLUDE 0x8000
1.31526 -+
1.31527 -+ /* The contents of this section are to be sorted based on the sum of
1.31528 -+ the symbol and addend values specified by the associated relocation
1.31529 -+ entries. Entries without associated relocation entries will be
1.31530 -+ appended to the end of the section in an unspecified order. */
1.31531 -+#define SEC_SORT_ENTRIES 0x10000
1.31532 -+
1.31533 -+ /* When linking, duplicate sections of the same name should be
1.31534 -+ discarded, rather than being combined into a single section as
1.31535 -+ is usually done. This is similar to how common symbols are
1.31536 -+ handled. See SEC_LINK_DUPLICATES below. */
1.31537 -+#define SEC_LINK_ONCE 0x20000
1.31538 -+
1.31539 -+ /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
1.31540 -+ should handle duplicate sections. */
1.31541 -+#define SEC_LINK_DUPLICATES 0x40000
1.31542 -+
1.31543 -+ /* This value for SEC_LINK_DUPLICATES means that duplicate
1.31544 -+ sections with the same name should simply be discarded. */
1.31545 -+#define SEC_LINK_DUPLICATES_DISCARD 0x0
1.31546 -+
1.31547 -+ /* This value for SEC_LINK_DUPLICATES means that the linker
1.31548 -+ should warn if there are any duplicate sections, although
1.31549 -+ it should still only link one copy. */
1.31550 -+#define SEC_LINK_DUPLICATES_ONE_ONLY 0x80000
1.31551 -+
1.31552 -+ /* This value for SEC_LINK_DUPLICATES means that the linker
1.31553 -+ should warn if any duplicate sections are a different size. */
1.31554 -+#define SEC_LINK_DUPLICATES_SAME_SIZE 0x100000
1.31555 -+
1.31556 -+ /* This value for SEC_LINK_DUPLICATES means that the linker
1.31557 -+ should warn if any duplicate sections contain different
1.31558 -+ contents. */
1.31559 -+#define SEC_LINK_DUPLICATES_SAME_CONTENTS \
1.31560 -+ (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE)
1.31561 -+
1.31562 -+ /* This section was created by the linker as part of dynamic
1.31563 -+ relocation or other arcane processing. It is skipped when
1.31564 -+ going through the first-pass output, trusting that someone
1.31565 -+ else up the line will take care of it later. */
1.31566 -+#define SEC_LINKER_CREATED 0x200000
1.31567 -+
1.31568 -+ /* This section should not be subject to garbage collection.
1.31569 -+ Also set to inform the linker that this section should not be
1.31570 -+ listed in the link map as discarded. */
1.31571 -+#define SEC_KEEP 0x400000
1.31572 -+
1.31573 -+ /* This section contains "short" data, and should be placed
1.31574 -+ "near" the GP. */
1.31575 -+#define SEC_SMALL_DATA 0x800000
1.31576 -+
1.31577 -+ /* Attempt to merge identical entities in the section.
1.31578 -+ Entity size is given in the entsize field. */
1.31579 -+#define SEC_MERGE 0x1000000
1.31580 -+
1.31581 -+ /* If given with SEC_MERGE, entities to merge are zero terminated
1.31582 -+ strings where entsize specifies character size instead of fixed
1.31583 -+ size entries. */
1.31584 -+#define SEC_STRINGS 0x2000000
1.31585 -+
1.31586 -+ /* This section contains data about section groups. */
1.31587 -+#define SEC_GROUP 0x4000000
1.31588 -+
1.31589 -+ /* The section is a COFF shared library section. This flag is
1.31590 -+ only for the linker. If this type of section appears in
1.31591 -+ the input file, the linker must copy it to the output file
1.31592 -+ without changing the vma or size. FIXME: Although this
1.31593 -+ was originally intended to be general, it really is COFF
1.31594 -+ specific (and the flag was renamed to indicate this). It
1.31595 -+ might be cleaner to have some more general mechanism to
1.31596 -+ allow the back end to control what the linker does with
1.31597 -+ sections. */
1.31598 -+#define SEC_COFF_SHARED_LIBRARY 0x10000000
1.31599 -+
1.31600 -+ /* This section contains data which may be shared with other
1.31601 -+ executables or shared objects. This is for COFF only. */
1.31602 -+#define SEC_COFF_SHARED 0x20000000
1.31603 -+
1.31604 -+ /* When a section with this flag is being linked, then if the size of
1.31605 -+ the input section is less than a page, it should not cross a page
1.31606 -+ boundary. If the size of the input section is one page or more,
1.31607 -+ it should be aligned on a page boundary. This is for TI
1.31608 -+ TMS320C54X only. */
1.31609 -+#define SEC_TIC54X_BLOCK 0x40000000
1.31610 -+
1.31611 -+ /* Conditionally link this section; do not link if there are no
1.31612 -+ references found to any symbol in the section. This is for TI
1.31613 -+ TMS320C54X only. */
1.31614 -+#define SEC_TIC54X_CLINK 0x80000000
1.31615 -+
1.31616 -+ /* End of section flags. */
1.31617 -+
1.31618 -+ /* Some internal packed boolean fields. */
1.31619 -+
1.31620 -+ /* See the vma field. */
1.31621 -+ unsigned int user_set_vma : 1;
1.31622 -+
1.31623 -+ /* A mark flag used by some of the linker backends. */
1.31624 -+ unsigned int linker_mark : 1;
1.31625 -+
1.31626 -+ /* Another mark flag used by some of the linker backends. Set for
1.31627 -+ output sections that have an input section. */
1.31628 -+ unsigned int linker_has_input : 1;
1.31629 -+
1.31630 -+ /* Mark flags used by some linker backends for garbage collection. */
1.31631 -+ unsigned int gc_mark : 1;
1.31632 -+ unsigned int gc_mark_from_eh : 1;
1.31633 -+
1.31634 -+ /* The following flags are used by the ELF linker. */
1.31635 -+
1.31636 -+ /* Mark sections which have been allocated to segments. */
1.31637 -+ unsigned int segment_mark : 1;
1.31638 -+
1.31639 -+ /* Type of sec_info information. */
1.31640 -+ unsigned int sec_info_type:3;
1.31641 -+#define ELF_INFO_TYPE_NONE 0
1.31642 -+#define ELF_INFO_TYPE_STABS 1
1.31643 -+#define ELF_INFO_TYPE_MERGE 2
1.31644 -+#define ELF_INFO_TYPE_EH_FRAME 3
1.31645 -+#define ELF_INFO_TYPE_JUST_SYMS 4
1.31646 -+
1.31647 -+ /* Nonzero if this section uses RELA relocations, rather than REL. */
1.31648 -+ unsigned int use_rela_p:1;
1.31649 -+
1.31650 -+ /* Bits used by various backends. The generic code doesn't touch
1.31651 -+ these fields. */
1.31652 -+
1.31653 -+ /* Nonzero if this section has TLS related relocations. */
1.31654 -+ unsigned int has_tls_reloc:1;
1.31655 -+
1.31656 -+ /* Nonzero if this section has a gp reloc. */
1.31657 -+ unsigned int has_gp_reloc:1;
1.31658 -+
1.31659 -+ /* Nonzero if this section needs the relax finalize pass. */
1.31660 -+ unsigned int need_finalize_relax:1;
1.31661 -+
1.31662 -+ /* Whether relocations have been processed. */
1.31663 -+ unsigned int reloc_done : 1;
1.31664 -+
1.31665 -+ /* End of internal packed boolean fields. */
1.31666 -+
1.31667 -+ /* The virtual memory address of the section - where it will be
1.31668 -+ at run time. The symbols are relocated against this. The
1.31669 -+ user_set_vma flag is maintained by bfd; if it's not set, the
1.31670 -+ backend can assign addresses (for example, in <<a.out>>, where
1.31671 -+ the default address for <<.data>> is dependent on the specific
1.31672 -+ target and various flags). */
1.31673 -+ bfd_vma vma;
1.31674 -+
1.31675 -+ /* The load address of the section - where it would be in a
1.31676 -+ rom image; really only used for writing section header
1.31677 -+ information. */
1.31678 -+ bfd_vma lma;
1.31679 -+
1.31680 -+ /* The size of the section in octets, as it will be output.
1.31681 -+ Contains a value even if the section has no contents (e.g., the
1.31682 -+ size of <<.bss>>). */
1.31683 -+ bfd_size_type size;
1.31684 -+
1.31685 -+ /* For input sections, the original size on disk of the section, in
1.31686 -+ octets. This field is used by the linker relaxation code. It is
1.31687 -+ currently only set for sections where the linker relaxation scheme
1.31688 -+ doesn't cache altered section and reloc contents (stabs, eh_frame,
1.31689 -+ SEC_MERGE, some coff relaxing targets), and thus the original size
1.31690 -+ needs to be kept to read the section multiple times.
1.31691 -+ For output sections, rawsize holds the section size calculated on
1.31692 -+ a previous linker relaxation pass. */
1.31693 -+ bfd_size_type rawsize;
1.31694 -+
1.31695 -+ /* If this section is going to be output, then this value is the
1.31696 -+ offset in *bytes* into the output section of the first byte in the
1.31697 -+ input section (byte ==> smallest addressable unit on the
1.31698 -+ target). In most cases, if this was going to start at the
1.31699 -+ 100th octet (8-bit quantity) in the output section, this value
1.31700 -+ would be 100. However, if the target byte size is 16 bits
1.31701 -+ (bfd_octets_per_byte is "2"), this value would be 50. */
1.31702 -+ bfd_vma output_offset;
1.31703 -+
1.31704 -+ /* The output section through which to map on output. */
1.31705 -+ struct bfd_section *output_section;
1.31706 -+
1.31707 -+ /* The alignment requirement of the section, as an exponent of 2 -
1.31708 -+ e.g., 3 aligns to 2^3 (or 8). */
1.31709 -+ unsigned int alignment_power;
1.31710 -+
1.31711 -+ /* If an input section, a pointer to a vector of relocation
1.31712 -+ records for the data in this section. */
1.31713 -+ struct reloc_cache_entry *relocation;
1.31714 -+
1.31715 -+ /* If an output section, a pointer to a vector of pointers to
1.31716 -+ relocation records for the data in this section. */
1.31717 -+ struct reloc_cache_entry **orelocation;
1.31718 -+
1.31719 -+ /* The number of relocation records in one of the above. */
1.31720 -+ unsigned reloc_count;
1.31721 -+
1.31722 -+ /* Information below is back end specific - and not always used
1.31723 -+ or updated. */
1.31724 -+
1.31725 -+ /* File position of section data. */
1.31726 -+ file_ptr filepos;
1.31727 -+
1.31728 -+ /* File position of relocation info. */
1.31729 -+ file_ptr rel_filepos;
1.31730 -+
1.31731 -+ /* File position of line data. */
1.31732 -+ file_ptr line_filepos;
1.31733 -+
1.31734 -+ /* Pointer to data for applications. */
1.31735 -+ void *userdata;
1.31736 -+
1.31737 -+ /* If the SEC_IN_MEMORY flag is set, this points to the actual
1.31738 -+ contents. */
1.31739 -+ unsigned char *contents;
1.31740 -+
1.31741 -+ /* Attached line number information. */
1.31742 -+ alent *lineno;
1.31743 -+
1.31744 -+ /* Number of line number records. */
1.31745 -+ unsigned int lineno_count;
1.31746 -+
1.31747 -+ /* Entity size for merging purposes. */
1.31748 -+ unsigned int entsize;
1.31749 -+
1.31750 -+ /* Points to the kept section if this section is a link-once section,
1.31751 -+ and is discarded. */
1.31752 -+ struct bfd_section *kept_section;
1.31753 -+
1.31754 -+ /* When a section is being output, this value changes as more
1.31755 -+ linenumbers are written out. */
1.31756 -+ file_ptr moving_line_filepos;
1.31757 -+
1.31758 -+ /* What the section number is in the target world. */
1.31759 -+ int target_index;
1.31760 -+
1.31761 -+ void *used_by_bfd;
1.31762 -+
1.31763 -+ /* If this is a constructor section then here is a list of the
1.31764 -+ relocations created to relocate items within it. */
1.31765 -+ struct relent_chain *constructor_chain;
1.31766 -+
1.31767 -+ /* The BFD which owns the section. */
1.31768 -+ bfd *owner;
1.31769 -+
1.31770 -+ /* A symbol which points at this section only. */
1.31771 -+ struct bfd_symbol *symbol;
1.31772 -+ struct bfd_symbol **symbol_ptr_ptr;
1.31773 -+
1.31774 -+ /* Early in the link process, map_head and map_tail are used to build
1.31775 -+ a list of input sections attached to an output section. Later,
1.31776 -+ output sections use these fields for a list of bfd_link_order
1.31777 -+ structs. */
1.31778 -+ union {
1.31779 -+ struct bfd_link_order *link_order;
1.31780 -+ struct bfd_section *s;
1.31781 -+ } map_head, map_tail;
1.31782 -+} asection;
1.31783 -+
1.31784 -+/* These sections are global, and are managed by BFD. The application
1.31785 -+ and target back end are not permitted to change the values in
1.31786 -+ these sections. New code should use the section_ptr macros rather
1.31787 -+ than referring directly to the const sections. The const sections
1.31788 -+ may eventually vanish. */
1.31789 -+#define BFD_ABS_SECTION_NAME "*ABS*"
1.31790 -+#define BFD_UND_SECTION_NAME "*UND*"
1.31791 -+#define BFD_COM_SECTION_NAME "*COM*"
1.31792 -+#define BFD_IND_SECTION_NAME "*IND*"
1.31793 -+
1.31794 -+/* The absolute section. */
1.31795 -+extern asection bfd_abs_section;
1.31796 -+#define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
1.31797 -+#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
1.31798 -+/* Pointer to the undefined section. */
1.31799 -+extern asection bfd_und_section;
1.31800 -+#define bfd_und_section_ptr ((asection *) &bfd_und_section)
1.31801 -+#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
1.31802 -+/* Pointer to the common section. */
1.31803 -+extern asection bfd_com_section;
1.31804 -+#define bfd_com_section_ptr ((asection *) &bfd_com_section)
1.31805 -+/* Pointer to the indirect section. */
1.31806 -+extern asection bfd_ind_section;
1.31807 -+#define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
1.31808 -+#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
1.31809 -+
1.31810 -+#define bfd_is_const_section(SEC) \
1.31811 -+ ( ((SEC) == bfd_abs_section_ptr) \
1.31812 -+ || ((SEC) == bfd_und_section_ptr) \
1.31813 -+ || ((SEC) == bfd_com_section_ptr) \
1.31814 -+ || ((SEC) == bfd_ind_section_ptr))
1.31815 -+
1.31816 -+/* Macros to handle insertion and deletion of a bfd's sections. These
1.31817 -+ only handle the list pointers, ie. do not adjust section_count,
1.31818 -+ target_index etc. */
1.31819 -+#define bfd_section_list_remove(ABFD, S) \
1.31820 -+ do \
1.31821 -+ { \
1.31822 -+ asection *_s = S; \
1.31823 -+ asection *_next = _s->next; \
1.31824 -+ asection *_prev = _s->prev; \
1.31825 -+ if (_prev) \
1.31826 -+ _prev->next = _next; \
1.31827 -+ else \
1.31828 -+ (ABFD)->sections = _next; \
1.31829 -+ if (_next) \
1.31830 -+ _next->prev = _prev; \
1.31831 -+ else \
1.31832 -+ (ABFD)->section_last = _prev; \
1.31833 -+ } \
1.31834 -+ while (0)
1.31835 -+#define bfd_section_list_append(ABFD, S) \
1.31836 -+ do \
1.31837 -+ { \
1.31838 -+ asection *_s = S; \
1.31839 -+ bfd *_abfd = ABFD; \
1.31840 -+ _s->next = NULL; \
1.31841 -+ if (_abfd->section_last) \
1.31842 -+ { \
1.31843 -+ _s->prev = _abfd->section_last; \
1.31844 -+ _abfd->section_last->next = _s; \
1.31845 -+ } \
1.31846 -+ else \
1.31847 -+ { \
1.31848 -+ _s->prev = NULL; \
1.31849 -+ _abfd->sections = _s; \
1.31850 -+ } \
1.31851 -+ _abfd->section_last = _s; \
1.31852 -+ } \
1.31853 -+ while (0)
1.31854 -+#define bfd_section_list_prepend(ABFD, S) \
1.31855 -+ do \
1.31856 -+ { \
1.31857 -+ asection *_s = S; \
1.31858 -+ bfd *_abfd = ABFD; \
1.31859 -+ _s->prev = NULL; \
1.31860 -+ if (_abfd->sections) \
1.31861 -+ { \
1.31862 -+ _s->next = _abfd->sections; \
1.31863 -+ _abfd->sections->prev = _s; \
1.31864 -+ } \
1.31865 -+ else \
1.31866 -+ { \
1.31867 -+ _s->next = NULL; \
1.31868 -+ _abfd->section_last = _s; \
1.31869 -+ } \
1.31870 -+ _abfd->sections = _s; \
1.31871 -+ } \
1.31872 -+ while (0)
1.31873 -+#define bfd_section_list_insert_after(ABFD, A, S) \
1.31874 -+ do \
1.31875 -+ { \
1.31876 -+ asection *_a = A; \
1.31877 -+ asection *_s = S; \
1.31878 -+ asection *_next = _a->next; \
1.31879 -+ _s->next = _next; \
1.31880 -+ _s->prev = _a; \
1.31881 -+ _a->next = _s; \
1.31882 -+ if (_next) \
1.31883 -+ _next->prev = _s; \
1.31884 -+ else \
1.31885 -+ (ABFD)->section_last = _s; \
1.31886 -+ } \
1.31887 -+ while (0)
1.31888 -+#define bfd_section_list_insert_before(ABFD, B, S) \
1.31889 -+ do \
1.31890 -+ { \
1.31891 -+ asection *_b = B; \
1.31892 -+ asection *_s = S; \
1.31893 -+ asection *_prev = _b->prev; \
1.31894 -+ _s->prev = _prev; \
1.31895 -+ _s->next = _b; \
1.31896 -+ _b->prev = _s; \
1.31897 -+ if (_prev) \
1.31898 -+ _prev->next = _s; \
1.31899 -+ else \
1.31900 -+ (ABFD)->sections = _s; \
1.31901 -+ } \
1.31902 -+ while (0)
1.31903 -+#define bfd_section_removed_from_list(ABFD, S) \
1.31904 -+ ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S))
1.31905 -+
1.31906 -+#define BFD_FAKE_SECTION(SEC, FLAGS, SYM, NAME, IDX) \
1.31907 -+ /* name, id, index, next, prev, flags, user_set_vma, */ \
1.31908 -+ { NAME, IDX, 0, NULL, NULL, FLAGS, 0, \
1.31909 -+ \
1.31910 -+ /* linker_mark, linker_has_input, gc_mark, gc_mark_from_eh, */ \
1.31911 -+ 0, 0, 1, 0, \
1.31912 -+ \
1.31913 -+ /* segment_mark, sec_info_type, use_rela_p, has_tls_reloc, */ \
1.31914 -+ 0, 0, 0, 0, \
1.31915 -+ \
1.31916 -+ /* has_gp_reloc, need_finalize_relax, reloc_done, */ \
1.31917 -+ 0, 0, 0, \
1.31918 -+ \
1.31919 -+ /* vma, lma, size, rawsize */ \
1.31920 -+ 0, 0, 0, 0, \
1.31921 -+ \
1.31922 -+ /* output_offset, output_section, alignment_power, */ \
1.31923 -+ 0, (struct bfd_section *) &SEC, 0, \
1.31924 -+ \
1.31925 -+ /* relocation, orelocation, reloc_count, filepos, rel_filepos, */ \
1.31926 -+ NULL, NULL, 0, 0, 0, \
1.31927 -+ \
1.31928 -+ /* line_filepos, userdata, contents, lineno, lineno_count, */ \
1.31929 -+ 0, NULL, NULL, NULL, 0, \
1.31930 -+ \
1.31931 -+ /* entsize, kept_section, moving_line_filepos, */ \
1.31932 -+ 0, NULL, 0, \
1.31933 -+ \
1.31934 -+ /* target_index, used_by_bfd, constructor_chain, owner, */ \
1.31935 -+ 0, NULL, NULL, NULL, \
1.31936 -+ \
1.31937 -+ /* symbol, symbol_ptr_ptr, */ \
1.31938 -+ (struct bfd_symbol *) SYM, &SEC.symbol, \
1.31939 -+ \
1.31940 -+ /* map_head, map_tail */ \
1.31941 -+ { NULL }, { NULL } \
1.31942 -+ }
1.31943 -+
1.31944 -+void bfd_section_list_clear (bfd *);
1.31945 -+
1.31946 -+asection *bfd_get_section_by_name (bfd *abfd, const char *name);
1.31947 -+
1.31948 -+asection *bfd_get_section_by_name_if
1.31949 -+ (bfd *abfd,
1.31950 -+ const char *name,
1.31951 -+ bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj),
1.31952 -+ void *obj);
1.31953 -+
1.31954 -+char *bfd_get_unique_section_name
1.31955 -+ (bfd *abfd, const char *templat, int *count);
1.31956 -+
1.31957 -+asection *bfd_make_section_old_way (bfd *abfd, const char *name);
1.31958 -+
1.31959 -+asection *bfd_make_section_anyway_with_flags
1.31960 -+ (bfd *abfd, const char *name, flagword flags);
1.31961 -+
1.31962 -+asection *bfd_make_section_anyway (bfd *abfd, const char *name);
1.31963 -+
1.31964 -+asection *bfd_make_section_with_flags
1.31965 -+ (bfd *, const char *name, flagword flags);
1.31966 -+
1.31967 -+asection *bfd_make_section (bfd *, const char *name);
1.31968 -+
1.31969 -+bfd_boolean bfd_set_section_flags
1.31970 -+ (bfd *abfd, asection *sec, flagword flags);
1.31971 -+
1.31972 -+void bfd_map_over_sections
1.31973 -+ (bfd *abfd,
1.31974 -+ void (*func) (bfd *abfd, asection *sect, void *obj),
1.31975 -+ void *obj);
1.31976 -+
1.31977 -+asection *bfd_sections_find_if
1.31978 -+ (bfd *abfd,
1.31979 -+ bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
1.31980 -+ void *obj);
1.31981 -+
1.31982 -+bfd_boolean bfd_set_section_size
1.31983 -+ (bfd *abfd, asection *sec, bfd_size_type val);
1.31984 -+
1.31985 -+bfd_boolean bfd_set_section_contents
1.31986 -+ (bfd *abfd, asection *section, const void *data,
1.31987 -+ file_ptr offset, bfd_size_type count);
1.31988 -+
1.31989 -+bfd_boolean bfd_get_section_contents
1.31990 -+ (bfd *abfd, asection *section, void *location, file_ptr offset,
1.31991 -+ bfd_size_type count);
1.31992 -+
1.31993 -+bfd_boolean bfd_malloc_and_get_section
1.31994 -+ (bfd *abfd, asection *section, bfd_byte **buf);
1.31995 -+
1.31996 -+bfd_boolean bfd_copy_private_section_data
1.31997 -+ (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
1.31998 -+
1.31999 -+#define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
1.32000 -+ BFD_SEND (obfd, _bfd_copy_private_section_data, \
1.32001 -+ (ibfd, isection, obfd, osection))
1.32002 -+bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
1.32003 -+
1.32004 -+bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
1.32005 -+
1.32006 -+/* Extracted from archures.c. */
1.32007 -+enum bfd_architecture
1.32008 -+{
1.32009 -+ bfd_arch_unknown, /* File arch not known. */
1.32010 -+ bfd_arch_obscure, /* Arch known, not one of these. */
1.32011 -+ bfd_arch_m68k, /* Motorola 68xxx */
1.32012 -+#define bfd_mach_m68000 1
1.32013 -+#define bfd_mach_m68008 2
1.32014 -+#define bfd_mach_m68010 3
1.32015 -+#define bfd_mach_m68020 4
1.32016 -+#define bfd_mach_m68030 5
1.32017 -+#define bfd_mach_m68040 6
1.32018 -+#define bfd_mach_m68060 7
1.32019 -+#define bfd_mach_cpu32 8
1.32020 -+#define bfd_mach_fido 9
1.32021 -+#define bfd_mach_mcf_isa_a_nodiv 10
1.32022 -+#define bfd_mach_mcf_isa_a 11
1.32023 -+#define bfd_mach_mcf_isa_a_mac 12
1.32024 -+#define bfd_mach_mcf_isa_a_emac 13
1.32025 -+#define bfd_mach_mcf_isa_aplus 14
1.32026 -+#define bfd_mach_mcf_isa_aplus_mac 15
1.32027 -+#define bfd_mach_mcf_isa_aplus_emac 16
1.32028 -+#define bfd_mach_mcf_isa_b_nousp 17
1.32029 -+#define bfd_mach_mcf_isa_b_nousp_mac 18
1.32030 -+#define bfd_mach_mcf_isa_b_nousp_emac 19
1.32031 -+#define bfd_mach_mcf_isa_b 20
1.32032 -+#define bfd_mach_mcf_isa_b_mac 21
1.32033 -+#define bfd_mach_mcf_isa_b_emac 22
1.32034 -+#define bfd_mach_mcf_isa_b_float 23
1.32035 -+#define bfd_mach_mcf_isa_b_float_mac 24
1.32036 -+#define bfd_mach_mcf_isa_b_float_emac 25
1.32037 -+#define bfd_mach_mcf_isa_c 26
1.32038 -+#define bfd_mach_mcf_isa_c_mac 27
1.32039 -+#define bfd_mach_mcf_isa_c_emac 28
1.32040 -+ bfd_arch_vax, /* DEC Vax */
1.32041 -+ bfd_arch_i960, /* Intel 960 */
1.32042 -+ /* The order of the following is important.
1.32043 -+ lower number indicates a machine type that
1.32044 -+ only accepts a subset of the instructions
1.32045 -+ available to machines with higher numbers.
1.32046 -+ The exception is the "ca", which is
1.32047 -+ incompatible with all other machines except
1.32048 -+ "core". */
1.32049 -+
1.32050 -+#define bfd_mach_i960_core 1
1.32051 -+#define bfd_mach_i960_ka_sa 2
1.32052 -+#define bfd_mach_i960_kb_sb 3
1.32053 -+#define bfd_mach_i960_mc 4
1.32054 -+#define bfd_mach_i960_xa 5
1.32055 -+#define bfd_mach_i960_ca 6
1.32056 -+#define bfd_mach_i960_jx 7
1.32057 -+#define bfd_mach_i960_hx 8
1.32058 -+
1.32059 -+ bfd_arch_or32, /* OpenRISC 32 */
1.32060 -+
1.32061 -+ bfd_arch_sparc, /* SPARC */
1.32062 -+#define bfd_mach_sparc 1
1.32063 -+/* The difference between v8plus and v9 is that v9 is a true 64 bit env. */
1.32064 -+#define bfd_mach_sparc_sparclet 2
1.32065 -+#define bfd_mach_sparc_sparclite 3
1.32066 -+#define bfd_mach_sparc_v8plus 4
1.32067 -+#define bfd_mach_sparc_v8plusa 5 /* with ultrasparc add'ns. */
1.32068 -+#define bfd_mach_sparc_sparclite_le 6
1.32069 -+#define bfd_mach_sparc_v9 7
1.32070 -+#define bfd_mach_sparc_v9a 8 /* with ultrasparc add'ns. */
1.32071 -+#define bfd_mach_sparc_v8plusb 9 /* with cheetah add'ns. */
1.32072 -+#define bfd_mach_sparc_v9b 10 /* with cheetah add'ns. */
1.32073 -+/* Nonzero if MACH has the v9 instruction set. */
1.32074 -+#define bfd_mach_sparc_v9_p(mach) \
1.32075 -+ ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
1.32076 -+ && (mach) != bfd_mach_sparc_sparclite_le)
1.32077 -+/* Nonzero if MACH is a 64 bit sparc architecture. */
1.32078 -+#define bfd_mach_sparc_64bit_p(mach) \
1.32079 -+ ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
1.32080 -+ bfd_arch_spu, /* PowerPC SPU */
1.32081 -+#define bfd_mach_spu 256
1.32082 -+ bfd_arch_mips, /* MIPS Rxxxx */
1.32083 -+#define bfd_mach_mips3000 3000
1.32084 -+#define bfd_mach_mips3900 3900
1.32085 -+#define bfd_mach_mips4000 4000
1.32086 -+#define bfd_mach_mips4010 4010
1.32087 -+#define bfd_mach_mips4100 4100
1.32088 -+#define bfd_mach_mips4111 4111
1.32089 -+#define bfd_mach_mips4120 4120
1.32090 -+#define bfd_mach_mips4300 4300
1.32091 -+#define bfd_mach_mips4400 4400
1.32092 -+#define bfd_mach_mips4600 4600
1.32093 -+#define bfd_mach_mips4650 4650
1.32094 -+#define bfd_mach_mips5000 5000
1.32095 -+#define bfd_mach_mips5400 5400
1.32096 -+#define bfd_mach_mips5500 5500
1.32097 -+#define bfd_mach_mips6000 6000
1.32098 -+#define bfd_mach_mips7000 7000
1.32099 -+#define bfd_mach_mips8000 8000
1.32100 -+#define bfd_mach_mips9000 9000
1.32101 -+#define bfd_mach_mips10000 10000
1.32102 -+#define bfd_mach_mips12000 12000
1.32103 -+#define bfd_mach_mips16 16
1.32104 -+#define bfd_mach_mips5 5
1.32105 -+#define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01 */
1.32106 -+#define bfd_mach_mipsisa32 32
1.32107 -+#define bfd_mach_mipsisa32r2 33
1.32108 -+#define bfd_mach_mipsisa64 64
1.32109 -+#define bfd_mach_mipsisa64r2 65
1.32110 -+ bfd_arch_i386, /* Intel 386 */
1.32111 -+#define bfd_mach_i386_i386 1
1.32112 -+#define bfd_mach_i386_i8086 2
1.32113 -+#define bfd_mach_i386_i386_intel_syntax 3
1.32114 -+#define bfd_mach_x86_64 64
1.32115 -+#define bfd_mach_x86_64_intel_syntax 65
1.32116 -+ bfd_arch_we32k, /* AT&T WE32xxx */
1.32117 -+ bfd_arch_tahoe, /* CCI/Harris Tahoe */
1.32118 -+ bfd_arch_i860, /* Intel 860 */
1.32119 -+ bfd_arch_i370, /* IBM 360/370 Mainframes */
1.32120 -+ bfd_arch_romp, /* IBM ROMP PC/RT */
1.32121 -+ bfd_arch_convex, /* Convex */
1.32122 -+ bfd_arch_m88k, /* Motorola 88xxx */
1.32123 -+ bfd_arch_m98k, /* Motorola 98xxx */
1.32124 -+ bfd_arch_pyramid, /* Pyramid Technology */
1.32125 -+ bfd_arch_h8300, /* Renesas H8/300 (formerly Hitachi H8/300) */
1.32126 -+#define bfd_mach_h8300 1
1.32127 -+#define bfd_mach_h8300h 2
1.32128 -+#define bfd_mach_h8300s 3
1.32129 -+#define bfd_mach_h8300hn 4
1.32130 -+#define bfd_mach_h8300sn 5
1.32131 -+#define bfd_mach_h8300sx 6
1.32132 -+#define bfd_mach_h8300sxn 7
1.32133 -+ bfd_arch_pdp11, /* DEC PDP-11 */
1.32134 -+ bfd_arch_powerpc, /* PowerPC */
1.32135 -+#define bfd_mach_ppc 32
1.32136 -+#define bfd_mach_ppc64 64
1.32137 -+#define bfd_mach_ppc_403 403
1.32138 -+#define bfd_mach_ppc_403gc 4030
1.32139 -+#define bfd_mach_ppc_505 505
1.32140 -+#define bfd_mach_ppc_601 601
1.32141 -+#define bfd_mach_ppc_602 602
1.32142 -+#define bfd_mach_ppc_603 603
1.32143 -+#define bfd_mach_ppc_ec603e 6031
1.32144 -+#define bfd_mach_ppc_604 604
1.32145 -+#define bfd_mach_ppc_620 620
1.32146 -+#define bfd_mach_ppc_630 630
1.32147 -+#define bfd_mach_ppc_750 750
1.32148 -+#define bfd_mach_ppc_860 860
1.32149 -+#define bfd_mach_ppc_a35 35
1.32150 -+#define bfd_mach_ppc_rs64ii 642
1.32151 -+#define bfd_mach_ppc_rs64iii 643
1.32152 -+#define bfd_mach_ppc_7400 7400
1.32153 -+#define bfd_mach_ppc_e500 500
1.32154 -+ bfd_arch_rs6000, /* IBM RS/6000 */
1.32155 -+#define bfd_mach_rs6k 6000
1.32156 -+#define bfd_mach_rs6k_rs1 6001
1.32157 -+#define bfd_mach_rs6k_rsc 6003
1.32158 -+#define bfd_mach_rs6k_rs2 6002
1.32159 -+ bfd_arch_hppa, /* HP PA RISC */
1.32160 -+#define bfd_mach_hppa10 10
1.32161 -+#define bfd_mach_hppa11 11
1.32162 -+#define bfd_mach_hppa20 20
1.32163 -+#define bfd_mach_hppa20w 25
1.32164 -+ bfd_arch_d10v, /* Mitsubishi D10V */
1.32165 -+#define bfd_mach_d10v 1
1.32166 -+#define bfd_mach_d10v_ts2 2
1.32167 -+#define bfd_mach_d10v_ts3 3
1.32168 -+ bfd_arch_d30v, /* Mitsubishi D30V */
1.32169 -+ bfd_arch_dlx, /* DLX */
1.32170 -+ bfd_arch_m68hc11, /* Motorola 68HC11 */
1.32171 -+ bfd_arch_m68hc12, /* Motorola 68HC12 */
1.32172 -+#define bfd_mach_m6812_default 0
1.32173 -+#define bfd_mach_m6812 1
1.32174 -+#define bfd_mach_m6812s 2
1.32175 -+ bfd_arch_z8k, /* Zilog Z8000 */
1.32176 -+#define bfd_mach_z8001 1
1.32177 -+#define bfd_mach_z8002 2
1.32178 -+ bfd_arch_h8500, /* Renesas H8/500 (formerly Hitachi H8/500) */
1.32179 -+ bfd_arch_sh, /* Renesas / SuperH SH (formerly Hitachi SH) */
1.32180 -+#define bfd_mach_sh 1
1.32181 -+#define bfd_mach_sh2 0x20
1.32182 -+#define bfd_mach_sh_dsp 0x2d
1.32183 -+#define bfd_mach_sh2a 0x2a
1.32184 -+#define bfd_mach_sh2a_nofpu 0x2b
1.32185 -+#define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
1.32186 -+#define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
1.32187 -+#define bfd_mach_sh2a_or_sh4 0x2a3
1.32188 -+#define bfd_mach_sh2a_or_sh3e 0x2a4
1.32189 -+#define bfd_mach_sh2e 0x2e
1.32190 -+#define bfd_mach_sh3 0x30
1.32191 -+#define bfd_mach_sh3_nommu 0x31
1.32192 -+#define bfd_mach_sh3_dsp 0x3d
1.32193 -+#define bfd_mach_sh3e 0x3e
1.32194 -+#define bfd_mach_sh4 0x40
1.32195 -+#define bfd_mach_sh4_nofpu 0x41
1.32196 -+#define bfd_mach_sh4_nommu_nofpu 0x42
1.32197 -+#define bfd_mach_sh4a 0x4a
1.32198 -+#define bfd_mach_sh4a_nofpu 0x4b
1.32199 -+#define bfd_mach_sh4al_dsp 0x4d
1.32200 -+#define bfd_mach_sh5 0x50
1.32201 -+ bfd_arch_alpha, /* Dec Alpha */
1.32202 -+#define bfd_mach_alpha_ev4 0x10
1.32203 -+#define bfd_mach_alpha_ev5 0x20
1.32204 -+#define bfd_mach_alpha_ev6 0x30
1.32205 -+ bfd_arch_arm, /* Advanced Risc Machines ARM. */
1.32206 -+#define bfd_mach_arm_unknown 0
1.32207 -+#define bfd_mach_arm_2 1
1.32208 -+#define bfd_mach_arm_2a 2
1.32209 -+#define bfd_mach_arm_3 3
1.32210 -+#define bfd_mach_arm_3M 4
1.32211 -+#define bfd_mach_arm_4 5
1.32212 -+#define bfd_mach_arm_4T 6
1.32213 -+#define bfd_mach_arm_5 7
1.32214 -+#define bfd_mach_arm_5T 8
1.32215 -+#define bfd_mach_arm_5TE 9
1.32216 -+#define bfd_mach_arm_XScale 10
1.32217 -+#define bfd_mach_arm_ep9312 11
1.32218 -+#define bfd_mach_arm_iWMMXt 12
1.32219 -+#define bfd_mach_arm_iWMMXt2 13
1.32220 -+ bfd_arch_ns32k, /* National Semiconductors ns32000 */
1.32221 -+ bfd_arch_w65, /* WDC 65816 */
1.32222 -+ bfd_arch_tic30, /* Texas Instruments TMS320C30 */
1.32223 -+ bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X */
1.32224 -+#define bfd_mach_tic3x 30
1.32225 -+#define bfd_mach_tic4x 40
1.32226 -+ bfd_arch_tic54x, /* Texas Instruments TMS320C54X */
1.32227 -+ bfd_arch_tic80, /* TI TMS320c80 (MVP) */
1.32228 -+ bfd_arch_v850, /* NEC V850 */
1.32229 -+#define bfd_mach_v850 1
1.32230 -+#define bfd_mach_v850e 'E'
1.32231 -+#define bfd_mach_v850e1 '1'
1.32232 -+ bfd_arch_arc, /* ARC Cores */
1.32233 -+#define bfd_mach_arc_5 5
1.32234 -+#define bfd_mach_arc_6 6
1.32235 -+#define bfd_mach_arc_7 7
1.32236 -+#define bfd_mach_arc_8 8
1.32237 -+ bfd_arch_m32c, /* Renesas M16C/M32C. */
1.32238 -+#define bfd_mach_m16c 0x75
1.32239 -+#define bfd_mach_m32c 0x78
1.32240 -+ bfd_arch_m32r, /* Renesas M32R (formerly Mitsubishi M32R/D) */
1.32241 -+#define bfd_mach_m32r 1 /* For backwards compatibility. */
1.32242 -+#define bfd_mach_m32rx 'x'
1.32243 -+#define bfd_mach_m32r2 '2'
1.32244 -+ bfd_arch_mn10200, /* Matsushita MN10200 */
1.32245 -+ bfd_arch_mn10300, /* Matsushita MN10300 */
1.32246 -+#define bfd_mach_mn10300 300
1.32247 -+#define bfd_mach_am33 330
1.32248 -+#define bfd_mach_am33_2 332
1.32249 -+ bfd_arch_fr30,
1.32250 -+#define bfd_mach_fr30 0x46523330
1.32251 -+ bfd_arch_frv,
1.32252 -+#define bfd_mach_frv 1
1.32253 -+#define bfd_mach_frvsimple 2
1.32254 -+#define bfd_mach_fr300 300
1.32255 -+#define bfd_mach_fr400 400
1.32256 -+#define bfd_mach_fr450 450
1.32257 -+#define bfd_mach_frvtomcat 499 /* fr500 prototype */
1.32258 -+#define bfd_mach_fr500 500
1.32259 -+#define bfd_mach_fr550 550
1.32260 -+ bfd_arch_mcore,
1.32261 -+ bfd_arch_mep,
1.32262 -+#define bfd_mach_mep 1
1.32263 -+#define bfd_mach_mep_h1 0x6831
1.32264 -+ bfd_arch_ia64, /* HP/Intel ia64 */
1.32265 -+#define bfd_mach_ia64_elf64 64
1.32266 -+#define bfd_mach_ia64_elf32 32
1.32267 -+ bfd_arch_ip2k, /* Ubicom IP2K microcontrollers. */
1.32268 -+#define bfd_mach_ip2022 1
1.32269 -+#define bfd_mach_ip2022ext 2
1.32270 -+ bfd_arch_iq2000, /* Vitesse IQ2000. */
1.32271 -+#define bfd_mach_iq2000 1
1.32272 -+#define bfd_mach_iq10 2
1.32273 -+ bfd_arch_mt,
1.32274 -+#define bfd_mach_ms1 1
1.32275 -+#define bfd_mach_mrisc2 2
1.32276 -+#define bfd_mach_ms2 3
1.32277 -+ bfd_arch_pj,
1.32278 -+ bfd_arch_avr, /* Atmel AVR microcontrollers. */
1.32279 -+#define bfd_mach_avr1 1
1.32280 -+#define bfd_mach_avr2 2
1.32281 -+#define bfd_mach_avr3 3
1.32282 -+#define bfd_mach_avr4 4
1.32283 -+#define bfd_mach_avr5 5
1.32284 -+#define bfd_mach_avr6 6
1.32285 -+ bfd_arch_bfin, /* ADI Blackfin */
1.32286 -+#define bfd_mach_bfin 1
1.32287 -+ bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */
1.32288 -+#define bfd_mach_cr16 1
1.32289 -+ bfd_arch_cr16c, /* National Semiconductor CompactRISC. */
1.32290 -+#define bfd_mach_cr16c 1
1.32291 -+ bfd_arch_crx, /* National Semiconductor CRX. */
1.32292 -+#define bfd_mach_crx 1
1.32293 -+ bfd_arch_cris, /* Axis CRIS */
1.32294 -+#define bfd_mach_cris_v0_v10 255
1.32295 -+#define bfd_mach_cris_v32 32
1.32296 -+#define bfd_mach_cris_v10_v32 1032
1.32297 -+ bfd_arch_s390, /* IBM s390 */
1.32298 -+#define bfd_mach_s390_31 31
1.32299 -+#define bfd_mach_s390_64 64
1.32300 -+ bfd_arch_score, /* Sunplus score */
1.32301 -+ bfd_arch_openrisc, /* OpenRISC */
1.32302 -+ bfd_arch_mmix, /* Donald Knuth's educational processor. */
1.32303 -+ bfd_arch_xstormy16,
1.32304 -+#define bfd_mach_xstormy16 1
1.32305 -+ bfd_arch_msp430, /* Texas Instruments MSP430 architecture. */
1.32306 -+#define bfd_mach_msp11 11
1.32307 -+#define bfd_mach_msp110 110
1.32308 -+#define bfd_mach_msp12 12
1.32309 -+#define bfd_mach_msp13 13
1.32310 -+#define bfd_mach_msp14 14
1.32311 -+#define bfd_mach_msp15 15
1.32312 -+#define bfd_mach_msp16 16
1.32313 -+#define bfd_mach_msp21 21
1.32314 -+#define bfd_mach_msp31 31
1.32315 -+#define bfd_mach_msp32 32
1.32316 -+#define bfd_mach_msp33 33
1.32317 -+#define bfd_mach_msp41 41
1.32318 -+#define bfd_mach_msp42 42
1.32319 -+#define bfd_mach_msp43 43
1.32320 -+#define bfd_mach_msp44 44
1.32321 -+ bfd_arch_xc16x, /* Infineon's XC16X Series. */
1.32322 -+#define bfd_mach_xc16x 1
1.32323 -+#define bfd_mach_xc16xl 2
1.32324 -+#define bfd_mach_xc16xs 3
1.32325 -+ bfd_arch_xtensa, /* Tensilica's Xtensa cores. */
1.32326 -+#define bfd_mach_xtensa 1
1.32327 -+ bfd_arch_maxq, /* Dallas MAXQ 10/20 */
1.32328 -+#define bfd_mach_maxq10 10
1.32329 -+#define bfd_mach_maxq20 20
1.32330 -+ bfd_arch_z80,
1.32331 -+#define bfd_mach_z80strict 1 /* No undocumented opcodes. */
1.32332 -+#define bfd_mach_z80 3 /* With ixl, ixh, iyl, and iyh. */
1.32333 -+#define bfd_mach_z80full 7 /* All undocumented instructions. */
1.32334 -+#define bfd_mach_r800 11 /* R800: successor with multiplication. */
1.32335 -+ bfd_arch_last
1.32336 -+ };
1.32337 -+
1.32338 -+typedef struct bfd_arch_info
1.32339 -+{
1.32340 -+ int bits_per_word;
1.32341 -+ int bits_per_address;
1.32342 -+ int bits_per_byte;
1.32343 -+ enum bfd_architecture arch;
1.32344 -+ unsigned long mach;
1.32345 -+ const char *arch_name;
1.32346 -+ const char *printable_name;
1.32347 -+ unsigned int section_align_power;
1.32348 -+ /* TRUE if this is the default machine for the architecture.
1.32349 -+ The default arch should be the first entry for an arch so that
1.32350 -+ all the entries for that arch can be accessed via <<next>>. */
1.32351 -+ bfd_boolean the_default;
1.32352 -+ const struct bfd_arch_info * (*compatible)
1.32353 -+ (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
1.32354 -+
1.32355 -+ bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
1.32356 -+
1.32357 -+ const struct bfd_arch_info *next;
1.32358 -+}
1.32359 -+bfd_arch_info_type;
1.32360 -+
1.32361 -+const char *bfd_printable_name (bfd *abfd);
1.32362 -+
1.32363 -+const bfd_arch_info_type *bfd_scan_arch (const char *string);
1.32364 -+
1.32365 -+const char **bfd_arch_list (void);
1.32366 -+
1.32367 -+const bfd_arch_info_type *bfd_arch_get_compatible
1.32368 -+ (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
1.32369 -+
1.32370 -+void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
1.32371 -+
1.32372 -+enum bfd_architecture bfd_get_arch (bfd *abfd);
1.32373 -+
1.32374 -+unsigned long bfd_get_mach (bfd *abfd);
1.32375 -+
1.32376 -+unsigned int bfd_arch_bits_per_byte (bfd *abfd);
1.32377 -+
1.32378 -+unsigned int bfd_arch_bits_per_address (bfd *abfd);
1.32379 -+
1.32380 -+const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
1.32381 -+
1.32382 -+const bfd_arch_info_type *bfd_lookup_arch
1.32383 -+ (enum bfd_architecture arch, unsigned long machine);
1.32384 -+
1.32385 -+const char *bfd_printable_arch_mach
1.32386 -+ (enum bfd_architecture arch, unsigned long machine);
1.32387 -+
1.32388 -+unsigned int bfd_octets_per_byte (bfd *abfd);
1.32389 -+
1.32390 -+unsigned int bfd_arch_mach_octets_per_byte
1.32391 -+ (enum bfd_architecture arch, unsigned long machine);
1.32392 -+
1.32393 -+/* Extracted from reloc.c. */
1.32394 -+typedef enum bfd_reloc_status
1.32395 -+{
1.32396 -+ /* No errors detected. */
1.32397 -+ bfd_reloc_ok,
1.32398 -+
1.32399 -+ /* The relocation was performed, but there was an overflow. */
1.32400 -+ bfd_reloc_overflow,
1.32401 -+
1.32402 -+ /* The address to relocate was not within the section supplied. */
1.32403 -+ bfd_reloc_outofrange,
1.32404 -+
1.32405 -+ /* Used by special functions. */
1.32406 -+ bfd_reloc_continue,
1.32407 -+
1.32408 -+ /* Unsupported relocation size requested. */
1.32409 -+ bfd_reloc_notsupported,
1.32410 -+
1.32411 -+ /* Unused. */
1.32412 -+ bfd_reloc_other,
1.32413 -+
1.32414 -+ /* The symbol to relocate against was undefined. */
1.32415 -+ bfd_reloc_undefined,
1.32416 -+
1.32417 -+ /* The relocation was performed, but may not be ok - presently
1.32418 -+ generated only when linking i960 coff files with i960 b.out
1.32419 -+ symbols. If this type is returned, the error_message argument
1.32420 -+ to bfd_perform_relocation will be set. */
1.32421 -+ bfd_reloc_dangerous
1.32422 -+ }
1.32423 -+ bfd_reloc_status_type;
1.32424 -+
1.32425 -+
1.32426 -+typedef struct reloc_cache_entry
1.32427 -+{
1.32428 -+ /* A pointer into the canonical table of pointers. */
1.32429 -+ struct bfd_symbol **sym_ptr_ptr;
1.32430 -+
1.32431 -+ /* offset in section. */
1.32432 -+ bfd_size_type address;
1.32433 -+
1.32434 -+ /* addend for relocation value. */
1.32435 -+ bfd_vma addend;
1.32436 -+
1.32437 -+ /* Pointer to how to perform the required relocation. */
1.32438 -+ reloc_howto_type *howto;
1.32439 -+
1.32440 -+}
1.32441 -+arelent;
1.32442 -+
1.32443 -+enum complain_overflow
1.32444 -+{
1.32445 -+ /* Do not complain on overflow. */
1.32446 -+ complain_overflow_dont,
1.32447 -+
1.32448 -+ /* Complain if the value overflows when considered as a signed
1.32449 -+ number one bit larger than the field. ie. A bitfield of N bits
1.32450 -+ is allowed to represent -2**n to 2**n-1. */
1.32451 -+ complain_overflow_bitfield,
1.32452 -+
1.32453 -+ /* Complain if the value overflows when considered as a signed
1.32454 -+ number. */
1.32455 -+ complain_overflow_signed,
1.32456 -+
1.32457 -+ /* Complain if the value overflows when considered as an
1.32458 -+ unsigned number. */
1.32459 -+ complain_overflow_unsigned
1.32460 -+};
1.32461 -+
1.32462 -+struct reloc_howto_struct
1.32463 -+{
1.32464 -+ /* The type field has mainly a documentary use - the back end can
1.32465 -+ do what it wants with it, though normally the back end's
1.32466 -+ external idea of what a reloc number is stored
1.32467 -+ in this field. For example, a PC relative word relocation
1.32468 -+ in a coff environment has the type 023 - because that's
1.32469 -+ what the outside world calls a R_PCRWORD reloc. */
1.32470 -+ unsigned int type;
1.32471 -+
1.32472 -+ /* The value the final relocation is shifted right by. This drops
1.32473 -+ unwanted data from the relocation. */
1.32474 -+ unsigned int rightshift;
1.32475 -+
1.32476 -+ /* The size of the item to be relocated. This is *not* a
1.32477 -+ power-of-two measure. To get the number of bytes operated
1.32478 -+ on by a type of relocation, use bfd_get_reloc_size. */
1.32479 -+ int size;
1.32480 -+
1.32481 -+ /* The number of bits in the item to be relocated. This is used
1.32482 -+ when doing overflow checking. */
1.32483 -+ unsigned int bitsize;
1.32484 -+
1.32485 -+ /* Notes that the relocation is relative to the location in the
1.32486 -+ data section of the addend. The relocation function will
1.32487 -+ subtract from the relocation value the address of the location
1.32488 -+ being relocated. */
1.32489 -+ bfd_boolean pc_relative;
1.32490 -+
1.32491 -+ /* The bit position of the reloc value in the destination.
1.32492 -+ The relocated value is left shifted by this amount. */
1.32493 -+ unsigned int bitpos;
1.32494 -+
1.32495 -+ /* What type of overflow error should be checked for when
1.32496 -+ relocating. */
1.32497 -+ enum complain_overflow complain_on_overflow;
1.32498 -+
1.32499 -+ /* If this field is non null, then the supplied function is
1.32500 -+ called rather than the normal function. This allows really
1.32501 -+ strange relocation methods to be accommodated (e.g., i960 callj
1.32502 -+ instructions). */
1.32503 -+ bfd_reloc_status_type (*special_function)
1.32504 -+ (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
1.32505 -+ bfd *, char **);
1.32506 -+
1.32507 -+ /* The textual name of the relocation type. */
1.32508 -+ char *name;
1.32509 -+
1.32510 -+ /* Some formats record a relocation addend in the section contents
1.32511 -+ rather than with the relocation. For ELF formats this is the
1.32512 -+ distinction between USE_REL and USE_RELA (though the code checks
1.32513 -+ for USE_REL == 1/0). The value of this field is TRUE if the
1.32514 -+ addend is recorded with the section contents; when performing a
1.32515 -+ partial link (ld -r) the section contents (the data) will be
1.32516 -+ modified. The value of this field is FALSE if addends are
1.32517 -+ recorded with the relocation (in arelent.addend); when performing
1.32518 -+ a partial link the relocation will be modified.
1.32519 -+ All relocations for all ELF USE_RELA targets should set this field
1.32520 -+ to FALSE (values of TRUE should be looked on with suspicion).
1.32521 -+ However, the converse is not true: not all relocations of all ELF
1.32522 -+ USE_REL targets set this field to TRUE. Why this is so is peculiar
1.32523 -+ to each particular target. For relocs that aren't used in partial
1.32524 -+ links (e.g. GOT stuff) it doesn't matter what this is set to. */
1.32525 -+ bfd_boolean partial_inplace;
1.32526 -+
1.32527 -+ /* src_mask selects the part of the instruction (or data) to be used
1.32528 -+ in the relocation sum. If the target relocations don't have an
1.32529 -+ addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
1.32530 -+ dst_mask to extract the addend from the section contents. If
1.32531 -+ relocations do have an addend in the reloc, eg. ELF USE_RELA, this
1.32532 -+ field should be zero. Non-zero values for ELF USE_RELA targets are
1.32533 -+ bogus as in those cases the value in the dst_mask part of the
1.32534 -+ section contents should be treated as garbage. */
1.32535 -+ bfd_vma src_mask;
1.32536 -+
1.32537 -+ /* dst_mask selects which parts of the instruction (or data) are
1.32538 -+ replaced with a relocated value. */
1.32539 -+ bfd_vma dst_mask;
1.32540 -+
1.32541 -+ /* When some formats create PC relative instructions, they leave
1.32542 -+ the value of the pc of the place being relocated in the offset
1.32543 -+ slot of the instruction, so that a PC relative relocation can
1.32544 -+ be made just by adding in an ordinary offset (e.g., sun3 a.out).
1.32545 -+ Some formats leave the displacement part of an instruction
1.32546 -+ empty (e.g., m88k bcs); this flag signals the fact. */
1.32547 -+ bfd_boolean pcrel_offset;
1.32548 -+};
1.32549 -+
1.32550 -+#define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
1.32551 -+ { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC }
1.32552 -+#define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
1.32553 -+ HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
1.32554 -+ NAME, FALSE, 0, 0, IN)
1.32555 -+
1.32556 -+#define EMPTY_HOWTO(C) \
1.32557 -+ HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
1.32558 -+ NULL, FALSE, 0, 0, FALSE)
1.32559 -+
1.32560 -+#define HOWTO_PREPARE(relocation, symbol) \
1.32561 -+ { \
1.32562 -+ if (symbol != NULL) \
1.32563 -+ { \
1.32564 -+ if (bfd_is_com_section (symbol->section)) \
1.32565 -+ { \
1.32566 -+ relocation = 0; \
1.32567 -+ } \
1.32568 -+ else \
1.32569 -+ { \
1.32570 -+ relocation = symbol->value; \
1.32571 -+ } \
1.32572 -+ } \
1.32573 -+ }
1.32574 -+
1.32575 -+unsigned int bfd_get_reloc_size (reloc_howto_type *);
1.32576 -+
1.32577 -+typedef struct relent_chain
1.32578 -+{
1.32579 -+ arelent relent;
1.32580 -+ struct relent_chain *next;
1.32581 -+}
1.32582 -+arelent_chain;
1.32583 -+
1.32584 -+bfd_reloc_status_type bfd_check_overflow
1.32585 -+ (enum complain_overflow how,
1.32586 -+ unsigned int bitsize,
1.32587 -+ unsigned int rightshift,
1.32588 -+ unsigned int addrsize,
1.32589 -+ bfd_vma relocation);
1.32590 -+
1.32591 -+bfd_reloc_status_type bfd_perform_relocation
1.32592 -+ (bfd *abfd,
1.32593 -+ arelent *reloc_entry,
1.32594 -+ void *data,
1.32595 -+ asection *input_section,
1.32596 -+ bfd *output_bfd,
1.32597 -+ char **error_message);
1.32598 -+
1.32599 -+bfd_reloc_status_type bfd_install_relocation
1.32600 -+ (bfd *abfd,
1.32601 -+ arelent *reloc_entry,
1.32602 -+ void *data, bfd_vma data_start,
1.32603 -+ asection *input_section,
1.32604 -+ char **error_message);
1.32605 -+
1.32606 -+enum bfd_reloc_code_real {
1.32607 -+ _dummy_first_bfd_reloc_code_real,
1.32608 -+
1.32609 -+
1.32610 -+/* Basic absolute relocations of N bits. */
1.32611 -+ BFD_RELOC_64,
1.32612 -+ BFD_RELOC_32,
1.32613 -+ BFD_RELOC_26,
1.32614 -+ BFD_RELOC_24,
1.32615 -+ BFD_RELOC_16,
1.32616 -+ BFD_RELOC_14,
1.32617 -+ BFD_RELOC_8,
1.32618 -+
1.32619 -+/* PC-relative relocations. Sometimes these are relative to the address
1.32620 -+of the relocation itself; sometimes they are relative to the start of
1.32621 -+the section containing the relocation. It depends on the specific target.
1.32622 -+
1.32623 -+The 24-bit relocation is used in some Intel 960 configurations. */
1.32624 -+ BFD_RELOC_64_PCREL,
1.32625 -+ BFD_RELOC_32_PCREL,
1.32626 -+ BFD_RELOC_24_PCREL,
1.32627 -+ BFD_RELOC_16_PCREL,
1.32628 -+ BFD_RELOC_12_PCREL,
1.32629 -+ BFD_RELOC_8_PCREL,
1.32630 -+
1.32631 -+/* Section relative relocations. Some targets need this for DWARF2. */
1.32632 -+ BFD_RELOC_32_SECREL,
1.32633 -+
1.32634 -+/* For ELF. */
1.32635 -+ BFD_RELOC_32_GOT_PCREL,
1.32636 -+ BFD_RELOC_16_GOT_PCREL,
1.32637 -+ BFD_RELOC_8_GOT_PCREL,
1.32638 -+ BFD_RELOC_32_GOTOFF,
1.32639 -+ BFD_RELOC_16_GOTOFF,
1.32640 -+ BFD_RELOC_LO16_GOTOFF,
1.32641 -+ BFD_RELOC_HI16_GOTOFF,
1.32642 -+ BFD_RELOC_HI16_S_GOTOFF,
1.32643 -+ BFD_RELOC_8_GOTOFF,
1.32644 -+ BFD_RELOC_64_PLT_PCREL,
1.32645 -+ BFD_RELOC_32_PLT_PCREL,
1.32646 -+ BFD_RELOC_24_PLT_PCREL,
1.32647 -+ BFD_RELOC_16_PLT_PCREL,
1.32648 -+ BFD_RELOC_8_PLT_PCREL,
1.32649 -+ BFD_RELOC_64_PLTOFF,
1.32650 -+ BFD_RELOC_32_PLTOFF,
1.32651 -+ BFD_RELOC_16_PLTOFF,
1.32652 -+ BFD_RELOC_LO16_PLTOFF,
1.32653 -+ BFD_RELOC_HI16_PLTOFF,
1.32654 -+ BFD_RELOC_HI16_S_PLTOFF,
1.32655 -+ BFD_RELOC_8_PLTOFF,
1.32656 -+
1.32657 -+/* Relocations used by 68K ELF. */
1.32658 -+ BFD_RELOC_68K_GLOB_DAT,
1.32659 -+ BFD_RELOC_68K_JMP_SLOT,
1.32660 -+ BFD_RELOC_68K_RELATIVE,
1.32661 -+
1.32662 -+/* Linkage-table relative. */
1.32663 -+ BFD_RELOC_32_BASEREL,
1.32664 -+ BFD_RELOC_16_BASEREL,
1.32665 -+ BFD_RELOC_LO16_BASEREL,
1.32666 -+ BFD_RELOC_HI16_BASEREL,
1.32667 -+ BFD_RELOC_HI16_S_BASEREL,
1.32668 -+ BFD_RELOC_8_BASEREL,
1.32669 -+ BFD_RELOC_RVA,
1.32670 -+
1.32671 -+/* Absolute 8-bit relocation, but used to form an address like 0xFFnn. */
1.32672 -+ BFD_RELOC_8_FFnn,
1.32673 -+
1.32674 -+/* These PC-relative relocations are stored as word displacements --
1.32675 -+i.e., byte displacements shifted right two bits. The 30-bit word
1.32676 -+displacement (<<32_PCREL_S2>> -- 32 bits, shifted 2) is used on the
1.32677 -+SPARC. (SPARC tools generally refer to this as <<WDISP30>>.) The
1.32678 -+signed 16-bit displacement is used on the MIPS, and the 23-bit
1.32679 -+displacement is used on the Alpha. */
1.32680 -+ BFD_RELOC_32_PCREL_S2,
1.32681 -+ BFD_RELOC_16_PCREL_S2,
1.32682 -+ BFD_RELOC_23_PCREL_S2,
1.32683 -+
1.32684 -+/* High 22 bits and low 10 bits of 32-bit value, placed into lower bits of
1.32685 -+the target word. These are used on the SPARC. */
1.32686 -+ BFD_RELOC_HI22,
1.32687 -+ BFD_RELOC_LO10,
1.32688 -+
1.32689 -+/* For systems that allocate a Global Pointer register, these are
1.32690 -+displacements off that register. These relocation types are
1.32691 -+handled specially, because the value the register will have is
1.32692 -+decided relatively late. */
1.32693 -+ BFD_RELOC_GPREL16,
1.32694 -+ BFD_RELOC_GPREL32,
1.32695 -+
1.32696 -+/* Reloc types used for i960/b.out. */
1.32697 -+ BFD_RELOC_I960_CALLJ,
1.32698 -+
1.32699 -+/* SPARC ELF relocations. There is probably some overlap with other
1.32700 -+relocation types already defined. */
1.32701 -+ BFD_RELOC_NONE,
1.32702 -+ BFD_RELOC_SPARC_WDISP22,
1.32703 -+ BFD_RELOC_SPARC22,
1.32704 -+ BFD_RELOC_SPARC13,
1.32705 -+ BFD_RELOC_SPARC_GOT10,
1.32706 -+ BFD_RELOC_SPARC_GOT13,
1.32707 -+ BFD_RELOC_SPARC_GOT22,
1.32708 -+ BFD_RELOC_SPARC_PC10,
1.32709 -+ BFD_RELOC_SPARC_PC22,
1.32710 -+ BFD_RELOC_SPARC_WPLT30,
1.32711 -+ BFD_RELOC_SPARC_COPY,
1.32712 -+ BFD_RELOC_SPARC_GLOB_DAT,
1.32713 -+ BFD_RELOC_SPARC_JMP_SLOT,
1.32714 -+ BFD_RELOC_SPARC_RELATIVE,
1.32715 -+ BFD_RELOC_SPARC_UA16,
1.32716 -+ BFD_RELOC_SPARC_UA32,
1.32717 -+ BFD_RELOC_SPARC_UA64,
1.32718 -+
1.32719 -+/* I think these are specific to SPARC a.out (e.g., Sun 4). */
1.32720 -+ BFD_RELOC_SPARC_BASE13,
1.32721 -+ BFD_RELOC_SPARC_BASE22,
1.32722 -+
1.32723 -+/* SPARC64 relocations */
1.32724 -+#define BFD_RELOC_SPARC_64 BFD_RELOC_64
1.32725 -+ BFD_RELOC_SPARC_10,
1.32726 -+ BFD_RELOC_SPARC_11,
1.32727 -+ BFD_RELOC_SPARC_OLO10,
1.32728 -+ BFD_RELOC_SPARC_HH22,
1.32729 -+ BFD_RELOC_SPARC_HM10,
1.32730 -+ BFD_RELOC_SPARC_LM22,
1.32731 -+ BFD_RELOC_SPARC_PC_HH22,
1.32732 -+ BFD_RELOC_SPARC_PC_HM10,
1.32733 -+ BFD_RELOC_SPARC_PC_LM22,
1.32734 -+ BFD_RELOC_SPARC_WDISP16,
1.32735 -+ BFD_RELOC_SPARC_WDISP19,
1.32736 -+ BFD_RELOC_SPARC_7,
1.32737 -+ BFD_RELOC_SPARC_6,
1.32738 -+ BFD_RELOC_SPARC_5,
1.32739 -+#define BFD_RELOC_SPARC_DISP64 BFD_RELOC_64_PCREL
1.32740 -+ BFD_RELOC_SPARC_PLT32,
1.32741 -+ BFD_RELOC_SPARC_PLT64,
1.32742 -+ BFD_RELOC_SPARC_HIX22,
1.32743 -+ BFD_RELOC_SPARC_LOX10,
1.32744 -+ BFD_RELOC_SPARC_H44,
1.32745 -+ BFD_RELOC_SPARC_M44,
1.32746 -+ BFD_RELOC_SPARC_L44,
1.32747 -+ BFD_RELOC_SPARC_REGISTER,
1.32748 -+
1.32749 -+/* SPARC little endian relocation */
1.32750 -+ BFD_RELOC_SPARC_REV32,
1.32751 -+
1.32752 -+/* SPARC TLS relocations */
1.32753 -+ BFD_RELOC_SPARC_TLS_GD_HI22,
1.32754 -+ BFD_RELOC_SPARC_TLS_GD_LO10,
1.32755 -+ BFD_RELOC_SPARC_TLS_GD_ADD,
1.32756 -+ BFD_RELOC_SPARC_TLS_GD_CALL,
1.32757 -+ BFD_RELOC_SPARC_TLS_LDM_HI22,
1.32758 -+ BFD_RELOC_SPARC_TLS_LDM_LO10,
1.32759 -+ BFD_RELOC_SPARC_TLS_LDM_ADD,
1.32760 -+ BFD_RELOC_SPARC_TLS_LDM_CALL,
1.32761 -+ BFD_RELOC_SPARC_TLS_LDO_HIX22,
1.32762 -+ BFD_RELOC_SPARC_TLS_LDO_LOX10,
1.32763 -+ BFD_RELOC_SPARC_TLS_LDO_ADD,
1.32764 -+ BFD_RELOC_SPARC_TLS_IE_HI22,
1.32765 -+ BFD_RELOC_SPARC_TLS_IE_LO10,
1.32766 -+ BFD_RELOC_SPARC_TLS_IE_LD,
1.32767 -+ BFD_RELOC_SPARC_TLS_IE_LDX,
1.32768 -+ BFD_RELOC_SPARC_TLS_IE_ADD,
1.32769 -+ BFD_RELOC_SPARC_TLS_LE_HIX22,
1.32770 -+ BFD_RELOC_SPARC_TLS_LE_LOX10,
1.32771 -+ BFD_RELOC_SPARC_TLS_DTPMOD32,
1.32772 -+ BFD_RELOC_SPARC_TLS_DTPMOD64,
1.32773 -+ BFD_RELOC_SPARC_TLS_DTPOFF32,
1.32774 -+ BFD_RELOC_SPARC_TLS_DTPOFF64,
1.32775 -+ BFD_RELOC_SPARC_TLS_TPOFF32,
1.32776 -+ BFD_RELOC_SPARC_TLS_TPOFF64,
1.32777 -+
1.32778 -+/* SPU Relocations. */
1.32779 -+ BFD_RELOC_SPU_IMM7,
1.32780 -+ BFD_RELOC_SPU_IMM8,
1.32781 -+ BFD_RELOC_SPU_IMM10,
1.32782 -+ BFD_RELOC_SPU_IMM10W,
1.32783 -+ BFD_RELOC_SPU_IMM16,
1.32784 -+ BFD_RELOC_SPU_IMM16W,
1.32785 -+ BFD_RELOC_SPU_IMM18,
1.32786 -+ BFD_RELOC_SPU_PCREL9a,
1.32787 -+ BFD_RELOC_SPU_PCREL9b,
1.32788 -+ BFD_RELOC_SPU_PCREL16,
1.32789 -+ BFD_RELOC_SPU_LO16,
1.32790 -+ BFD_RELOC_SPU_HI16,
1.32791 -+ BFD_RELOC_SPU_PPU32,
1.32792 -+ BFD_RELOC_SPU_PPU64,
1.32793 -+
1.32794 -+/* Alpha ECOFF and ELF relocations. Some of these treat the symbol or
1.32795 -+"addend" in some special way.
1.32796 -+For GPDISP_HI16 ("gpdisp") relocations, the symbol is ignored when
1.32797 -+writing; when reading, it will be the absolute section symbol. The
1.32798 -+addend is the displacement in bytes of the "lda" instruction from
1.32799 -+the "ldah" instruction (which is at the address of this reloc). */
1.32800 -+ BFD_RELOC_ALPHA_GPDISP_HI16,
1.32801 -+
1.32802 -+/* For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
1.32803 -+with GPDISP_HI16 relocs. The addend is ignored when writing the
1.32804 -+relocations out, and is filled in with the file's GP value on
1.32805 -+reading, for convenience. */
1.32806 -+ BFD_RELOC_ALPHA_GPDISP_LO16,
1.32807 -+
1.32808 -+/* The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
1.32809 -+relocation except that there is no accompanying GPDISP_LO16
1.32810 -+relocation. */
1.32811 -+ BFD_RELOC_ALPHA_GPDISP,
1.32812 -+
1.32813 -+/* The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
1.32814 -+the assembler turns it into a LDQ instruction to load the address of
1.32815 -+the symbol, and then fills in a register in the real instruction.
1.32816 -+
1.32817 -+The LITERAL reloc, at the LDQ instruction, refers to the .lita
1.32818 -+section symbol. The addend is ignored when writing, but is filled
1.32819 -+in with the file's GP value on reading, for convenience, as with the
1.32820 -+GPDISP_LO16 reloc.
1.32821 -+
1.32822 -+The ELF_LITERAL reloc is somewhere between 16_GOTOFF and GPDISP_LO16.
1.32823 -+It should refer to the symbol to be referenced, as with 16_GOTOFF,
1.32824 -+but it generates output not based on the position within the .got
1.32825 -+section, but relative to the GP value chosen for the file during the
1.32826 -+final link stage.
1.32827 -+
1.32828 -+The LITUSE reloc, on the instruction using the loaded address, gives
1.32829 -+information to the linker that it might be able to use to optimize
1.32830 -+away some literal section references. The symbol is ignored (read
1.32831 -+as the absolute section symbol), and the "addend" indicates the type
1.32832 -+of instruction using the register:
1.32833 -+1 - "memory" fmt insn
1.32834 -+2 - byte-manipulation (byte offset reg)
1.32835 -+3 - jsr (target of branch) */
1.32836 -+ BFD_RELOC_ALPHA_LITERAL,
1.32837 -+ BFD_RELOC_ALPHA_ELF_LITERAL,
1.32838 -+ BFD_RELOC_ALPHA_LITUSE,
1.32839 -+
1.32840 -+/* The HINT relocation indicates a value that should be filled into the
1.32841 -+"hint" field of a jmp/jsr/ret instruction, for possible branch-
1.32842 -+prediction logic which may be provided on some processors. */
1.32843 -+ BFD_RELOC_ALPHA_HINT,
1.32844 -+
1.32845 -+/* The LINKAGE relocation outputs a linkage pair in the object file,
1.32846 -+which is filled by the linker. */
1.32847 -+ BFD_RELOC_ALPHA_LINKAGE,
1.32848 -+
1.32849 -+/* The CODEADDR relocation outputs a STO_CA in the object file,
1.32850 -+which is filled by the linker. */
1.32851 -+ BFD_RELOC_ALPHA_CODEADDR,
1.32852 -+
1.32853 -+/* The GPREL_HI/LO relocations together form a 32-bit offset from the
1.32854 -+GP register. */
1.32855 -+ BFD_RELOC_ALPHA_GPREL_HI16,
1.32856 -+ BFD_RELOC_ALPHA_GPREL_LO16,
1.32857 -+
1.32858 -+/* Like BFD_RELOC_23_PCREL_S2, except that the source and target must
1.32859 -+share a common GP, and the target address is adjusted for
1.32860 -+STO_ALPHA_STD_GPLOAD. */
1.32861 -+ BFD_RELOC_ALPHA_BRSGP,
1.32862 -+
1.32863 -+/* Alpha thread-local storage relocations. */
1.32864 -+ BFD_RELOC_ALPHA_TLSGD,
1.32865 -+ BFD_RELOC_ALPHA_TLSLDM,
1.32866 -+ BFD_RELOC_ALPHA_DTPMOD64,
1.32867 -+ BFD_RELOC_ALPHA_GOTDTPREL16,
1.32868 -+ BFD_RELOC_ALPHA_DTPREL64,
1.32869 -+ BFD_RELOC_ALPHA_DTPREL_HI16,
1.32870 -+ BFD_RELOC_ALPHA_DTPREL_LO16,
1.32871 -+ BFD_RELOC_ALPHA_DTPREL16,
1.32872 -+ BFD_RELOC_ALPHA_GOTTPREL16,
1.32873 -+ BFD_RELOC_ALPHA_TPREL64,
1.32874 -+ BFD_RELOC_ALPHA_TPREL_HI16,
1.32875 -+ BFD_RELOC_ALPHA_TPREL_LO16,
1.32876 -+ BFD_RELOC_ALPHA_TPREL16,
1.32877 -+
1.32878 -+/* Bits 27..2 of the relocation address shifted right 2 bits;
1.32879 -+simple reloc otherwise. */
1.32880 -+ BFD_RELOC_MIPS_JMP,
1.32881 -+
1.32882 -+/* The MIPS16 jump instruction. */
1.32883 -+ BFD_RELOC_MIPS16_JMP,
1.32884 -+
1.32885 -+/* MIPS16 GP relative reloc. */
1.32886 -+ BFD_RELOC_MIPS16_GPREL,
1.32887 -+
1.32888 -+/* High 16 bits of 32-bit value; simple reloc. */
1.32889 -+ BFD_RELOC_HI16,
1.32890 -+
1.32891 -+/* High 16 bits of 32-bit value but the low 16 bits will be sign
1.32892 -+extended and added to form the final result. If the low 16
1.32893 -+bits form a negative number, we need to add one to the high value
1.32894 -+to compensate for the borrow when the low bits are added. */
1.32895 -+ BFD_RELOC_HI16_S,
1.32896 -+
1.32897 -+/* Low 16 bits. */
1.32898 -+ BFD_RELOC_LO16,
1.32899 -+
1.32900 -+/* High 16 bits of 32-bit pc-relative value */
1.32901 -+ BFD_RELOC_HI16_PCREL,
1.32902 -+
1.32903 -+/* High 16 bits of 32-bit pc-relative value, adjusted */
1.32904 -+ BFD_RELOC_HI16_S_PCREL,
1.32905 -+
1.32906 -+/* Low 16 bits of pc-relative value */
1.32907 -+ BFD_RELOC_LO16_PCREL,
1.32908 -+
1.32909 -+/* MIPS16 high 16 bits of 32-bit value. */
1.32910 -+ BFD_RELOC_MIPS16_HI16,
1.32911 -+
1.32912 -+/* MIPS16 high 16 bits of 32-bit value but the low 16 bits will be sign
1.32913 -+extended and added to form the final result. If the low 16
1.32914 -+bits form a negative number, we need to add one to the high value
1.32915 -+to compensate for the borrow when the low bits are added. */
1.32916 -+ BFD_RELOC_MIPS16_HI16_S,
1.32917 -+
1.32918 -+/* MIPS16 low 16 bits. */
1.32919 -+ BFD_RELOC_MIPS16_LO16,
1.32920 -+
1.32921 -+/* Relocation against a MIPS literal section. */
1.32922 -+ BFD_RELOC_MIPS_LITERAL,
1.32923 -+
1.32924 -+/* MIPS ELF relocations. */
1.32925 -+ BFD_RELOC_MIPS_GOT16,
1.32926 -+ BFD_RELOC_MIPS_CALL16,
1.32927 -+ BFD_RELOC_MIPS_GOT_HI16,
1.32928 -+ BFD_RELOC_MIPS_GOT_LO16,
1.32929 -+ BFD_RELOC_MIPS_CALL_HI16,
1.32930 -+ BFD_RELOC_MIPS_CALL_LO16,
1.32931 -+ BFD_RELOC_MIPS_SUB,
1.32932 -+ BFD_RELOC_MIPS_GOT_PAGE,
1.32933 -+ BFD_RELOC_MIPS_GOT_OFST,
1.32934 -+ BFD_RELOC_MIPS_GOT_DISP,
1.32935 -+ BFD_RELOC_MIPS_SHIFT5,
1.32936 -+ BFD_RELOC_MIPS_SHIFT6,
1.32937 -+ BFD_RELOC_MIPS_INSERT_A,
1.32938 -+ BFD_RELOC_MIPS_INSERT_B,
1.32939 -+ BFD_RELOC_MIPS_DELETE,
1.32940 -+ BFD_RELOC_MIPS_HIGHEST,
1.32941 -+ BFD_RELOC_MIPS_HIGHER,
1.32942 -+ BFD_RELOC_MIPS_SCN_DISP,
1.32943 -+ BFD_RELOC_MIPS_REL16,
1.32944 -+ BFD_RELOC_MIPS_RELGOT,
1.32945 -+ BFD_RELOC_MIPS_JALR,
1.32946 -+ BFD_RELOC_MIPS_TLS_DTPMOD32,
1.32947 -+ BFD_RELOC_MIPS_TLS_DTPREL32,
1.32948 -+ BFD_RELOC_MIPS_TLS_DTPMOD64,
1.32949 -+ BFD_RELOC_MIPS_TLS_DTPREL64,
1.32950 -+ BFD_RELOC_MIPS_TLS_GD,
1.32951 -+ BFD_RELOC_MIPS_TLS_LDM,
1.32952 -+ BFD_RELOC_MIPS_TLS_DTPREL_HI16,
1.32953 -+ BFD_RELOC_MIPS_TLS_DTPREL_LO16,
1.32954 -+ BFD_RELOC_MIPS_TLS_GOTTPREL,
1.32955 -+ BFD_RELOC_MIPS_TLS_TPREL32,
1.32956 -+ BFD_RELOC_MIPS_TLS_TPREL64,
1.32957 -+ BFD_RELOC_MIPS_TLS_TPREL_HI16,
1.32958 -+ BFD_RELOC_MIPS_TLS_TPREL_LO16,
1.32959 -+
1.32960 -+
1.32961 -+/* MIPS ELF relocations (VxWorks extensions). */
1.32962 -+ BFD_RELOC_MIPS_COPY,
1.32963 -+ BFD_RELOC_MIPS_JUMP_SLOT,
1.32964 -+
1.32965 -+
1.32966 -+/* Fujitsu Frv Relocations. */
1.32967 -+ BFD_RELOC_FRV_LABEL16,
1.32968 -+ BFD_RELOC_FRV_LABEL24,
1.32969 -+ BFD_RELOC_FRV_LO16,
1.32970 -+ BFD_RELOC_FRV_HI16,
1.32971 -+ BFD_RELOC_FRV_GPREL12,
1.32972 -+ BFD_RELOC_FRV_GPRELU12,
1.32973 -+ BFD_RELOC_FRV_GPREL32,
1.32974 -+ BFD_RELOC_FRV_GPRELHI,
1.32975 -+ BFD_RELOC_FRV_GPRELLO,
1.32976 -+ BFD_RELOC_FRV_GOT12,
1.32977 -+ BFD_RELOC_FRV_GOTHI,
1.32978 -+ BFD_RELOC_FRV_GOTLO,
1.32979 -+ BFD_RELOC_FRV_FUNCDESC,
1.32980 -+ BFD_RELOC_FRV_FUNCDESC_GOT12,
1.32981 -+ BFD_RELOC_FRV_FUNCDESC_GOTHI,
1.32982 -+ BFD_RELOC_FRV_FUNCDESC_GOTLO,
1.32983 -+ BFD_RELOC_FRV_FUNCDESC_VALUE,
1.32984 -+ BFD_RELOC_FRV_FUNCDESC_GOTOFF12,
1.32985 -+ BFD_RELOC_FRV_FUNCDESC_GOTOFFHI,
1.32986 -+ BFD_RELOC_FRV_FUNCDESC_GOTOFFLO,
1.32987 -+ BFD_RELOC_FRV_GOTOFF12,
1.32988 -+ BFD_RELOC_FRV_GOTOFFHI,
1.32989 -+ BFD_RELOC_FRV_GOTOFFLO,
1.32990 -+ BFD_RELOC_FRV_GETTLSOFF,
1.32991 -+ BFD_RELOC_FRV_TLSDESC_VALUE,
1.32992 -+ BFD_RELOC_FRV_GOTTLSDESC12,
1.32993 -+ BFD_RELOC_FRV_GOTTLSDESCHI,
1.32994 -+ BFD_RELOC_FRV_GOTTLSDESCLO,
1.32995 -+ BFD_RELOC_FRV_TLSMOFF12,
1.32996 -+ BFD_RELOC_FRV_TLSMOFFHI,
1.32997 -+ BFD_RELOC_FRV_TLSMOFFLO,
1.32998 -+ BFD_RELOC_FRV_GOTTLSOFF12,
1.32999 -+ BFD_RELOC_FRV_GOTTLSOFFHI,
1.33000 -+ BFD_RELOC_FRV_GOTTLSOFFLO,
1.33001 -+ BFD_RELOC_FRV_TLSOFF,
1.33002 -+ BFD_RELOC_FRV_TLSDESC_RELAX,
1.33003 -+ BFD_RELOC_FRV_GETTLSOFF_RELAX,
1.33004 -+ BFD_RELOC_FRV_TLSOFF_RELAX,
1.33005 -+ BFD_RELOC_FRV_TLSMOFF,
1.33006 -+
1.33007 -+
1.33008 -+/* This is a 24bit GOT-relative reloc for the mn10300. */
1.33009 -+ BFD_RELOC_MN10300_GOTOFF24,
1.33010 -+
1.33011 -+/* This is a 32bit GOT-relative reloc for the mn10300, offset by two bytes
1.33012 -+in the instruction. */
1.33013 -+ BFD_RELOC_MN10300_GOT32,
1.33014 -+
1.33015 -+/* This is a 24bit GOT-relative reloc for the mn10300, offset by two bytes
1.33016 -+in the instruction. */
1.33017 -+ BFD_RELOC_MN10300_GOT24,
1.33018 -+
1.33019 -+/* This is a 16bit GOT-relative reloc for the mn10300, offset by two bytes
1.33020 -+in the instruction. */
1.33021 -+ BFD_RELOC_MN10300_GOT16,
1.33022 -+
1.33023 -+/* Copy symbol at runtime. */
1.33024 -+ BFD_RELOC_MN10300_COPY,
1.33025 -+
1.33026 -+/* Create GOT entry. */
1.33027 -+ BFD_RELOC_MN10300_GLOB_DAT,
1.33028 -+
1.33029 -+/* Create PLT entry. */
1.33030 -+ BFD_RELOC_MN10300_JMP_SLOT,
1.33031 -+
1.33032 -+/* Adjust by program base. */
1.33033 -+ BFD_RELOC_MN10300_RELATIVE,
1.33034 -+
1.33035 -+
1.33036 -+/* i386/elf relocations */
1.33037 -+ BFD_RELOC_386_GOT32,
1.33038 -+ BFD_RELOC_386_PLT32,
1.33039 -+ BFD_RELOC_386_COPY,
1.33040 -+ BFD_RELOC_386_GLOB_DAT,
1.33041 -+ BFD_RELOC_386_JUMP_SLOT,
1.33042 -+ BFD_RELOC_386_RELATIVE,
1.33043 -+ BFD_RELOC_386_GOTOFF,
1.33044 -+ BFD_RELOC_386_GOTPC,
1.33045 -+ BFD_RELOC_386_TLS_TPOFF,
1.33046 -+ BFD_RELOC_386_TLS_IE,
1.33047 -+ BFD_RELOC_386_TLS_GOTIE,
1.33048 -+ BFD_RELOC_386_TLS_LE,
1.33049 -+ BFD_RELOC_386_TLS_GD,
1.33050 -+ BFD_RELOC_386_TLS_LDM,
1.33051 -+ BFD_RELOC_386_TLS_LDO_32,
1.33052 -+ BFD_RELOC_386_TLS_IE_32,
1.33053 -+ BFD_RELOC_386_TLS_LE_32,
1.33054 -+ BFD_RELOC_386_TLS_DTPMOD32,
1.33055 -+ BFD_RELOC_386_TLS_DTPOFF32,
1.33056 -+ BFD_RELOC_386_TLS_TPOFF32,
1.33057 -+ BFD_RELOC_386_TLS_GOTDESC,
1.33058 -+ BFD_RELOC_386_TLS_DESC_CALL,
1.33059 -+ BFD_RELOC_386_TLS_DESC,
1.33060 -+
1.33061 -+/* x86-64/elf relocations */
1.33062 -+ BFD_RELOC_X86_64_GOT32,
1.33063 -+ BFD_RELOC_X86_64_PLT32,
1.33064 -+ BFD_RELOC_X86_64_COPY,
1.33065 -+ BFD_RELOC_X86_64_GLOB_DAT,
1.33066 -+ BFD_RELOC_X86_64_JUMP_SLOT,
1.33067 -+ BFD_RELOC_X86_64_RELATIVE,
1.33068 -+ BFD_RELOC_X86_64_GOTPCREL,
1.33069 -+ BFD_RELOC_X86_64_32S,
1.33070 -+ BFD_RELOC_X86_64_DTPMOD64,
1.33071 -+ BFD_RELOC_X86_64_DTPOFF64,
1.33072 -+ BFD_RELOC_X86_64_TPOFF64,
1.33073 -+ BFD_RELOC_X86_64_TLSGD,
1.33074 -+ BFD_RELOC_X86_64_TLSLD,
1.33075 -+ BFD_RELOC_X86_64_DTPOFF32,
1.33076 -+ BFD_RELOC_X86_64_GOTTPOFF,
1.33077 -+ BFD_RELOC_X86_64_TPOFF32,
1.33078 -+ BFD_RELOC_X86_64_GOTOFF64,
1.33079 -+ BFD_RELOC_X86_64_GOTPC32,
1.33080 -+ BFD_RELOC_X86_64_GOT64,
1.33081 -+ BFD_RELOC_X86_64_GOTPCREL64,
1.33082 -+ BFD_RELOC_X86_64_GOTPC64,
1.33083 -+ BFD_RELOC_X86_64_GOTPLT64,
1.33084 -+ BFD_RELOC_X86_64_PLTOFF64,
1.33085 -+ BFD_RELOC_X86_64_GOTPC32_TLSDESC,
1.33086 -+ BFD_RELOC_X86_64_TLSDESC_CALL,
1.33087 -+ BFD_RELOC_X86_64_TLSDESC,
1.33088 -+
1.33089 -+/* ns32k relocations */
1.33090 -+ BFD_RELOC_NS32K_IMM_8,
1.33091 -+ BFD_RELOC_NS32K_IMM_16,
1.33092 -+ BFD_RELOC_NS32K_IMM_32,
1.33093 -+ BFD_RELOC_NS32K_IMM_8_PCREL,
1.33094 -+ BFD_RELOC_NS32K_IMM_16_PCREL,
1.33095 -+ BFD_RELOC_NS32K_IMM_32_PCREL,
1.33096 -+ BFD_RELOC_NS32K_DISP_8,
1.33097 -+ BFD_RELOC_NS32K_DISP_16,
1.33098 -+ BFD_RELOC_NS32K_DISP_32,
1.33099 -+ BFD_RELOC_NS32K_DISP_8_PCREL,
1.33100 -+ BFD_RELOC_NS32K_DISP_16_PCREL,
1.33101 -+ BFD_RELOC_NS32K_DISP_32_PCREL,
1.33102 -+
1.33103 -+/* PDP11 relocations */
1.33104 -+ BFD_RELOC_PDP11_DISP_8_PCREL,
1.33105 -+ BFD_RELOC_PDP11_DISP_6_PCREL,
1.33106 -+
1.33107 -+/* Picojava relocs. Not all of these appear in object files. */
1.33108 -+ BFD_RELOC_PJ_CODE_HI16,
1.33109 -+ BFD_RELOC_PJ_CODE_LO16,
1.33110 -+ BFD_RELOC_PJ_CODE_DIR16,
1.33111 -+ BFD_RELOC_PJ_CODE_DIR32,
1.33112 -+ BFD_RELOC_PJ_CODE_REL16,
1.33113 -+ BFD_RELOC_PJ_CODE_REL32,
1.33114 -+
1.33115 -+/* Power(rs6000) and PowerPC relocations. */
1.33116 -+ BFD_RELOC_PPC_B26,
1.33117 -+ BFD_RELOC_PPC_BA26,
1.33118 -+ BFD_RELOC_PPC_TOC16,
1.33119 -+ BFD_RELOC_PPC_B16,
1.33120 -+ BFD_RELOC_PPC_B16_BRTAKEN,
1.33121 -+ BFD_RELOC_PPC_B16_BRNTAKEN,
1.33122 -+ BFD_RELOC_PPC_BA16,
1.33123 -+ BFD_RELOC_PPC_BA16_BRTAKEN,
1.33124 -+ BFD_RELOC_PPC_BA16_BRNTAKEN,
1.33125 -+ BFD_RELOC_PPC_COPY,
1.33126 -+ BFD_RELOC_PPC_GLOB_DAT,
1.33127 -+ BFD_RELOC_PPC_JMP_SLOT,
1.33128 -+ BFD_RELOC_PPC_RELATIVE,
1.33129 -+ BFD_RELOC_PPC_LOCAL24PC,
1.33130 -+ BFD_RELOC_PPC_EMB_NADDR32,
1.33131 -+ BFD_RELOC_PPC_EMB_NADDR16,
1.33132 -+ BFD_RELOC_PPC_EMB_NADDR16_LO,
1.33133 -+ BFD_RELOC_PPC_EMB_NADDR16_HI,
1.33134 -+ BFD_RELOC_PPC_EMB_NADDR16_HA,
1.33135 -+ BFD_RELOC_PPC_EMB_SDAI16,
1.33136 -+ BFD_RELOC_PPC_EMB_SDA2I16,
1.33137 -+ BFD_RELOC_PPC_EMB_SDA2REL,
1.33138 -+ BFD_RELOC_PPC_EMB_SDA21,
1.33139 -+ BFD_RELOC_PPC_EMB_MRKREF,
1.33140 -+ BFD_RELOC_PPC_EMB_RELSEC16,
1.33141 -+ BFD_RELOC_PPC_EMB_RELST_LO,
1.33142 -+ BFD_RELOC_PPC_EMB_RELST_HI,
1.33143 -+ BFD_RELOC_PPC_EMB_RELST_HA,
1.33144 -+ BFD_RELOC_PPC_EMB_BIT_FLD,
1.33145 -+ BFD_RELOC_PPC_EMB_RELSDA,
1.33146 -+ BFD_RELOC_PPC64_HIGHER,
1.33147 -+ BFD_RELOC_PPC64_HIGHER_S,
1.33148 -+ BFD_RELOC_PPC64_HIGHEST,
1.33149 -+ BFD_RELOC_PPC64_HIGHEST_S,
1.33150 -+ BFD_RELOC_PPC64_TOC16_LO,
1.33151 -+ BFD_RELOC_PPC64_TOC16_HI,
1.33152 -+ BFD_RELOC_PPC64_TOC16_HA,
1.33153 -+ BFD_RELOC_PPC64_TOC,
1.33154 -+ BFD_RELOC_PPC64_PLTGOT16,
1.33155 -+ BFD_RELOC_PPC64_PLTGOT16_LO,
1.33156 -+ BFD_RELOC_PPC64_PLTGOT16_HI,
1.33157 -+ BFD_RELOC_PPC64_PLTGOT16_HA,
1.33158 -+ BFD_RELOC_PPC64_ADDR16_DS,
1.33159 -+ BFD_RELOC_PPC64_ADDR16_LO_DS,
1.33160 -+ BFD_RELOC_PPC64_GOT16_DS,
1.33161 -+ BFD_RELOC_PPC64_GOT16_LO_DS,
1.33162 -+ BFD_RELOC_PPC64_PLT16_LO_DS,
1.33163 -+ BFD_RELOC_PPC64_SECTOFF_DS,
1.33164 -+ BFD_RELOC_PPC64_SECTOFF_LO_DS,
1.33165 -+ BFD_RELOC_PPC64_TOC16_DS,
1.33166 -+ BFD_RELOC_PPC64_TOC16_LO_DS,
1.33167 -+ BFD_RELOC_PPC64_PLTGOT16_DS,
1.33168 -+ BFD_RELOC_PPC64_PLTGOT16_LO_DS,
1.33169 -+
1.33170 -+/* PowerPC and PowerPC64 thread-local storage relocations. */
1.33171 -+ BFD_RELOC_PPC_TLS,
1.33172 -+ BFD_RELOC_PPC_DTPMOD,
1.33173 -+ BFD_RELOC_PPC_TPREL16,
1.33174 -+ BFD_RELOC_PPC_TPREL16_LO,
1.33175 -+ BFD_RELOC_PPC_TPREL16_HI,
1.33176 -+ BFD_RELOC_PPC_TPREL16_HA,
1.33177 -+ BFD_RELOC_PPC_TPREL,
1.33178 -+ BFD_RELOC_PPC_DTPREL16,
1.33179 -+ BFD_RELOC_PPC_DTPREL16_LO,
1.33180 -+ BFD_RELOC_PPC_DTPREL16_HI,
1.33181 -+ BFD_RELOC_PPC_DTPREL16_HA,
1.33182 -+ BFD_RELOC_PPC_DTPREL,
1.33183 -+ BFD_RELOC_PPC_GOT_TLSGD16,
1.33184 -+ BFD_RELOC_PPC_GOT_TLSGD16_LO,
1.33185 -+ BFD_RELOC_PPC_GOT_TLSGD16_HI,
1.33186 -+ BFD_RELOC_PPC_GOT_TLSGD16_HA,
1.33187 -+ BFD_RELOC_PPC_GOT_TLSLD16,
1.33188 -+ BFD_RELOC_PPC_GOT_TLSLD16_LO,
1.33189 -+ BFD_RELOC_PPC_GOT_TLSLD16_HI,
1.33190 -+ BFD_RELOC_PPC_GOT_TLSLD16_HA,
1.33191 -+ BFD_RELOC_PPC_GOT_TPREL16,
1.33192 -+ BFD_RELOC_PPC_GOT_TPREL16_LO,
1.33193 -+ BFD_RELOC_PPC_GOT_TPREL16_HI,
1.33194 -+ BFD_RELOC_PPC_GOT_TPREL16_HA,
1.33195 -+ BFD_RELOC_PPC_GOT_DTPREL16,
1.33196 -+ BFD_RELOC_PPC_GOT_DTPREL16_LO,
1.33197 -+ BFD_RELOC_PPC_GOT_DTPREL16_HI,
1.33198 -+ BFD_RELOC_PPC_GOT_DTPREL16_HA,
1.33199 -+ BFD_RELOC_PPC64_TPREL16_DS,
1.33200 -+ BFD_RELOC_PPC64_TPREL16_LO_DS,
1.33201 -+ BFD_RELOC_PPC64_TPREL16_HIGHER,
1.33202 -+ BFD_RELOC_PPC64_TPREL16_HIGHERA,
1.33203 -+ BFD_RELOC_PPC64_TPREL16_HIGHEST,
1.33204 -+ BFD_RELOC_PPC64_TPREL16_HIGHESTA,
1.33205 -+ BFD_RELOC_PPC64_DTPREL16_DS,
1.33206 -+ BFD_RELOC_PPC64_DTPREL16_LO_DS,
1.33207 -+ BFD_RELOC_PPC64_DTPREL16_HIGHER,
1.33208 -+ BFD_RELOC_PPC64_DTPREL16_HIGHERA,
1.33209 -+ BFD_RELOC_PPC64_DTPREL16_HIGHEST,
1.33210 -+ BFD_RELOC_PPC64_DTPREL16_HIGHESTA,
1.33211 -+
1.33212 -+/* IBM 370/390 relocations */
1.33213 -+ BFD_RELOC_I370_D12,
1.33214 -+
1.33215 -+/* The type of reloc used to build a constructor table - at the moment
1.33216 -+probably a 32 bit wide absolute relocation, but the target can choose.
1.33217 -+It generally does map to one of the other relocation types. */
1.33218 -+ BFD_RELOC_CTOR,
1.33219 -+
1.33220 -+/* ARM 26 bit pc-relative branch. The lowest two bits must be zero and are
1.33221 -+not stored in the instruction. */
1.33222 -+ BFD_RELOC_ARM_PCREL_BRANCH,
1.33223 -+
1.33224 -+/* ARM 26 bit pc-relative branch. The lowest bit must be zero and is
1.33225 -+not stored in the instruction. The 2nd lowest bit comes from a 1 bit
1.33226 -+field in the instruction. */
1.33227 -+ BFD_RELOC_ARM_PCREL_BLX,
1.33228 -+
1.33229 -+/* Thumb 22 bit pc-relative branch. The lowest bit must be zero and is
1.33230 -+not stored in the instruction. The 2nd lowest bit comes from a 1 bit
1.33231 -+field in the instruction. */
1.33232 -+ BFD_RELOC_THUMB_PCREL_BLX,
1.33233 -+
1.33234 -+/* ARM 26-bit pc-relative branch for an unconditional BL or BLX instruction. */
1.33235 -+ BFD_RELOC_ARM_PCREL_CALL,
1.33236 -+
1.33237 -+/* ARM 26-bit pc-relative branch for B or conditional BL instruction. */
1.33238 -+ BFD_RELOC_ARM_PCREL_JUMP,
1.33239 -+
1.33240 -+/* Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.
1.33241 -+The lowest bit must be zero and is not stored in the instruction.
1.33242 -+Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
1.33243 -+"nn" one smaller in all cases. Note further that BRANCH23
1.33244 -+corresponds to R_ARM_THM_CALL. */
1.33245 -+ BFD_RELOC_THUMB_PCREL_BRANCH7,
1.33246 -+ BFD_RELOC_THUMB_PCREL_BRANCH9,
1.33247 -+ BFD_RELOC_THUMB_PCREL_BRANCH12,
1.33248 -+ BFD_RELOC_THUMB_PCREL_BRANCH20,
1.33249 -+ BFD_RELOC_THUMB_PCREL_BRANCH23,
1.33250 -+ BFD_RELOC_THUMB_PCREL_BRANCH25,
1.33251 -+
1.33252 -+/* 12-bit immediate offset, used in ARM-format ldr and str instructions. */
1.33253 -+ BFD_RELOC_ARM_OFFSET_IMM,
1.33254 -+
1.33255 -+/* 5-bit immediate offset, used in Thumb-format ldr and str instructions. */
1.33256 -+ BFD_RELOC_ARM_THUMB_OFFSET,
1.33257 -+
1.33258 -+/* Pc-relative or absolute relocation depending on target. Used for
1.33259 -+entries in .init_array sections. */
1.33260 -+ BFD_RELOC_ARM_TARGET1,
1.33261 -+
1.33262 -+/* Read-only segment base relative address. */
1.33263 -+ BFD_RELOC_ARM_ROSEGREL32,
1.33264 -+
1.33265 -+/* Data segment base relative address. */
1.33266 -+ BFD_RELOC_ARM_SBREL32,
1.33267 -+
1.33268 -+/* This reloc is used for references to RTTI data from exception handling
1.33269 -+tables. The actual definition depends on the target. It may be a
1.33270 -+pc-relative or some form of GOT-indirect relocation. */
1.33271 -+ BFD_RELOC_ARM_TARGET2,
1.33272 -+
1.33273 -+/* 31-bit PC relative address. */
1.33274 -+ BFD_RELOC_ARM_PREL31,
1.33275 -+
1.33276 -+/* Low and High halfword relocations for MOVW and MOVT instructions. */
1.33277 -+ BFD_RELOC_ARM_MOVW,
1.33278 -+ BFD_RELOC_ARM_MOVT,
1.33279 -+ BFD_RELOC_ARM_MOVW_PCREL,
1.33280 -+ BFD_RELOC_ARM_MOVT_PCREL,
1.33281 -+ BFD_RELOC_ARM_THUMB_MOVW,
1.33282 -+ BFD_RELOC_ARM_THUMB_MOVT,
1.33283 -+ BFD_RELOC_ARM_THUMB_MOVW_PCREL,
1.33284 -+ BFD_RELOC_ARM_THUMB_MOVT_PCREL,
1.33285 -+
1.33286 -+/* Relocations for setting up GOTs and PLTs for shared libraries. */
1.33287 -+ BFD_RELOC_ARM_JUMP_SLOT,
1.33288 -+ BFD_RELOC_ARM_GLOB_DAT,
1.33289 -+ BFD_RELOC_ARM_GOT32,
1.33290 -+ BFD_RELOC_ARM_PLT32,
1.33291 -+ BFD_RELOC_ARM_RELATIVE,
1.33292 -+ BFD_RELOC_ARM_GOTOFF,
1.33293 -+ BFD_RELOC_ARM_GOTPC,
1.33294 -+
1.33295 -+/* ARM thread-local storage relocations. */
1.33296 -+ BFD_RELOC_ARM_TLS_GD32,
1.33297 -+ BFD_RELOC_ARM_TLS_LDO32,
1.33298 -+ BFD_RELOC_ARM_TLS_LDM32,
1.33299 -+ BFD_RELOC_ARM_TLS_DTPOFF32,
1.33300 -+ BFD_RELOC_ARM_TLS_DTPMOD32,
1.33301 -+ BFD_RELOC_ARM_TLS_TPOFF32,
1.33302 -+ BFD_RELOC_ARM_TLS_IE32,
1.33303 -+ BFD_RELOC_ARM_TLS_LE32,
1.33304 -+
1.33305 -+/* ARM group relocations. */
1.33306 -+ BFD_RELOC_ARM_ALU_PC_G0_NC,
1.33307 -+ BFD_RELOC_ARM_ALU_PC_G0,
1.33308 -+ BFD_RELOC_ARM_ALU_PC_G1_NC,
1.33309 -+ BFD_RELOC_ARM_ALU_PC_G1,
1.33310 -+ BFD_RELOC_ARM_ALU_PC_G2,
1.33311 -+ BFD_RELOC_ARM_LDR_PC_G0,
1.33312 -+ BFD_RELOC_ARM_LDR_PC_G1,
1.33313 -+ BFD_RELOC_ARM_LDR_PC_G2,
1.33314 -+ BFD_RELOC_ARM_LDRS_PC_G0,
1.33315 -+ BFD_RELOC_ARM_LDRS_PC_G1,
1.33316 -+ BFD_RELOC_ARM_LDRS_PC_G2,
1.33317 -+ BFD_RELOC_ARM_LDC_PC_G0,
1.33318 -+ BFD_RELOC_ARM_LDC_PC_G1,
1.33319 -+ BFD_RELOC_ARM_LDC_PC_G2,
1.33320 -+ BFD_RELOC_ARM_ALU_SB_G0_NC,
1.33321 -+ BFD_RELOC_ARM_ALU_SB_G0,
1.33322 -+ BFD_RELOC_ARM_ALU_SB_G1_NC,
1.33323 -+ BFD_RELOC_ARM_ALU_SB_G1,
1.33324 -+ BFD_RELOC_ARM_ALU_SB_G2,
1.33325 -+ BFD_RELOC_ARM_LDR_SB_G0,
1.33326 -+ BFD_RELOC_ARM_LDR_SB_G1,
1.33327 -+ BFD_RELOC_ARM_LDR_SB_G2,
1.33328 -+ BFD_RELOC_ARM_LDRS_SB_G0,
1.33329 -+ BFD_RELOC_ARM_LDRS_SB_G1,
1.33330 -+ BFD_RELOC_ARM_LDRS_SB_G2,
1.33331 -+ BFD_RELOC_ARM_LDC_SB_G0,
1.33332 -+ BFD_RELOC_ARM_LDC_SB_G1,
1.33333 -+ BFD_RELOC_ARM_LDC_SB_G2,
1.33334 -+
1.33335 -+/* These relocs are only used within the ARM assembler. They are not
1.33336 -+(at present) written to any object files. */
1.33337 -+ BFD_RELOC_ARM_IMMEDIATE,
1.33338 -+ BFD_RELOC_ARM_ADRL_IMMEDIATE,
1.33339 -+ BFD_RELOC_ARM_T32_IMMEDIATE,
1.33340 -+ BFD_RELOC_ARM_T32_ADD_IMM,
1.33341 -+ BFD_RELOC_ARM_T32_IMM12,
1.33342 -+ BFD_RELOC_ARM_T32_ADD_PC12,
1.33343 -+ BFD_RELOC_ARM_SHIFT_IMM,
1.33344 -+ BFD_RELOC_ARM_SMC,
1.33345 -+ BFD_RELOC_ARM_SWI,
1.33346 -+ BFD_RELOC_ARM_MULTI,
1.33347 -+ BFD_RELOC_ARM_CP_OFF_IMM,
1.33348 -+ BFD_RELOC_ARM_CP_OFF_IMM_S2,
1.33349 -+ BFD_RELOC_ARM_T32_CP_OFF_IMM,
1.33350 -+ BFD_RELOC_ARM_T32_CP_OFF_IMM_S2,
1.33351 -+ BFD_RELOC_ARM_ADR_IMM,
1.33352 -+ BFD_RELOC_ARM_LDR_IMM,
1.33353 -+ BFD_RELOC_ARM_LITERAL,
1.33354 -+ BFD_RELOC_ARM_IN_POOL,
1.33355 -+ BFD_RELOC_ARM_OFFSET_IMM8,
1.33356 -+ BFD_RELOC_ARM_T32_OFFSET_U8,
1.33357 -+ BFD_RELOC_ARM_T32_OFFSET_IMM,
1.33358 -+ BFD_RELOC_ARM_HWLITERAL,
1.33359 -+ BFD_RELOC_ARM_THUMB_ADD,
1.33360 -+ BFD_RELOC_ARM_THUMB_IMM,
1.33361 -+ BFD_RELOC_ARM_THUMB_SHIFT,
1.33362 -+
1.33363 -+/* Renesas / SuperH SH relocs. Not all of these appear in object files. */
1.33364 -+ BFD_RELOC_SH_PCDISP8BY2,
1.33365 -+ BFD_RELOC_SH_PCDISP12BY2,
1.33366 -+ BFD_RELOC_SH_IMM3,
1.33367 -+ BFD_RELOC_SH_IMM3U,
1.33368 -+ BFD_RELOC_SH_DISP12,
1.33369 -+ BFD_RELOC_SH_DISP12BY2,
1.33370 -+ BFD_RELOC_SH_DISP12BY4,
1.33371 -+ BFD_RELOC_SH_DISP12BY8,
1.33372 -+ BFD_RELOC_SH_DISP20,
1.33373 -+ BFD_RELOC_SH_DISP20BY8,
1.33374 -+ BFD_RELOC_SH_IMM4,
1.33375 -+ BFD_RELOC_SH_IMM4BY2,
1.33376 -+ BFD_RELOC_SH_IMM4BY4,
1.33377 -+ BFD_RELOC_SH_IMM8,
1.33378 -+ BFD_RELOC_SH_IMM8BY2,
1.33379 -+ BFD_RELOC_SH_IMM8BY4,
1.33380 -+ BFD_RELOC_SH_PCRELIMM8BY2,
1.33381 -+ BFD_RELOC_SH_PCRELIMM8BY4,
1.33382 -+ BFD_RELOC_SH_SWITCH16,
1.33383 -+ BFD_RELOC_SH_SWITCH32,
1.33384 -+ BFD_RELOC_SH_USES,
1.33385 -+ BFD_RELOC_SH_COUNT,
1.33386 -+ BFD_RELOC_SH_ALIGN,
1.33387 -+ BFD_RELOC_SH_CODE,
1.33388 -+ BFD_RELOC_SH_DATA,
1.33389 -+ BFD_RELOC_SH_LABEL,
1.33390 -+ BFD_RELOC_SH_LOOP_START,
1.33391 -+ BFD_RELOC_SH_LOOP_END,
1.33392 -+ BFD_RELOC_SH_COPY,
1.33393 -+ BFD_RELOC_SH_GLOB_DAT,
1.33394 -+ BFD_RELOC_SH_JMP_SLOT,
1.33395 -+ BFD_RELOC_SH_RELATIVE,
1.33396 -+ BFD_RELOC_SH_GOTPC,
1.33397 -+ BFD_RELOC_SH_GOT_LOW16,
1.33398 -+ BFD_RELOC_SH_GOT_MEDLOW16,
1.33399 -+ BFD_RELOC_SH_GOT_MEDHI16,
1.33400 -+ BFD_RELOC_SH_GOT_HI16,
1.33401 -+ BFD_RELOC_SH_GOTPLT_LOW16,
1.33402 -+ BFD_RELOC_SH_GOTPLT_MEDLOW16,
1.33403 -+ BFD_RELOC_SH_GOTPLT_MEDHI16,
1.33404 -+ BFD_RELOC_SH_GOTPLT_HI16,
1.33405 -+ BFD_RELOC_SH_PLT_LOW16,
1.33406 -+ BFD_RELOC_SH_PLT_MEDLOW16,
1.33407 -+ BFD_RELOC_SH_PLT_MEDHI16,
1.33408 -+ BFD_RELOC_SH_PLT_HI16,
1.33409 -+ BFD_RELOC_SH_GOTOFF_LOW16,
1.33410 -+ BFD_RELOC_SH_GOTOFF_MEDLOW16,
1.33411 -+ BFD_RELOC_SH_GOTOFF_MEDHI16,
1.33412 -+ BFD_RELOC_SH_GOTOFF_HI16,
1.33413 -+ BFD_RELOC_SH_GOTPC_LOW16,
1.33414 -+ BFD_RELOC_SH_GOTPC_MEDLOW16,
1.33415 -+ BFD_RELOC_SH_GOTPC_MEDHI16,
1.33416 -+ BFD_RELOC_SH_GOTPC_HI16,
1.33417 -+ BFD_RELOC_SH_COPY64,
1.33418 -+ BFD_RELOC_SH_GLOB_DAT64,
1.33419 -+ BFD_RELOC_SH_JMP_SLOT64,
1.33420 -+ BFD_RELOC_SH_RELATIVE64,
1.33421 -+ BFD_RELOC_SH_GOT10BY4,
1.33422 -+ BFD_RELOC_SH_GOT10BY8,
1.33423 -+ BFD_RELOC_SH_GOTPLT10BY4,
1.33424 -+ BFD_RELOC_SH_GOTPLT10BY8,
1.33425 -+ BFD_RELOC_SH_GOTPLT32,
1.33426 -+ BFD_RELOC_SH_SHMEDIA_CODE,
1.33427 -+ BFD_RELOC_SH_IMMU5,
1.33428 -+ BFD_RELOC_SH_IMMS6,
1.33429 -+ BFD_RELOC_SH_IMMS6BY32,
1.33430 -+ BFD_RELOC_SH_IMMU6,
1.33431 -+ BFD_RELOC_SH_IMMS10,
1.33432 -+ BFD_RELOC_SH_IMMS10BY2,
1.33433 -+ BFD_RELOC_SH_IMMS10BY4,
1.33434 -+ BFD_RELOC_SH_IMMS10BY8,
1.33435 -+ BFD_RELOC_SH_IMMS16,
1.33436 -+ BFD_RELOC_SH_IMMU16,
1.33437 -+ BFD_RELOC_SH_IMM_LOW16,
1.33438 -+ BFD_RELOC_SH_IMM_LOW16_PCREL,
1.33439 -+ BFD_RELOC_SH_IMM_MEDLOW16,
1.33440 -+ BFD_RELOC_SH_IMM_MEDLOW16_PCREL,
1.33441 -+ BFD_RELOC_SH_IMM_MEDHI16,
1.33442 -+ BFD_RELOC_SH_IMM_MEDHI16_PCREL,
1.33443 -+ BFD_RELOC_SH_IMM_HI16,
1.33444 -+ BFD_RELOC_SH_IMM_HI16_PCREL,
1.33445 -+ BFD_RELOC_SH_PT_16,
1.33446 -+ BFD_RELOC_SH_TLS_GD_32,
1.33447 -+ BFD_RELOC_SH_TLS_LD_32,
1.33448 -+ BFD_RELOC_SH_TLS_LDO_32,
1.33449 -+ BFD_RELOC_SH_TLS_IE_32,
1.33450 -+ BFD_RELOC_SH_TLS_LE_32,
1.33451 -+ BFD_RELOC_SH_TLS_DTPMOD32,
1.33452 -+ BFD_RELOC_SH_TLS_DTPOFF32,
1.33453 -+ BFD_RELOC_SH_TLS_TPOFF32,
1.33454 -+
1.33455 -+/* ARC Cores relocs.
1.33456 -+ARC 22 bit pc-relative branch. The lowest two bits must be zero and are
1.33457 -+not stored in the instruction. The high 20 bits are installed in bits 26
1.33458 -+through 7 of the instruction. */
1.33459 -+ BFD_RELOC_ARC_B22_PCREL,
1.33460 -+
1.33461 -+/* ARC 26 bit absolute branch. The lowest two bits must be zero and are not
1.33462 -+stored in the instruction. The high 24 bits are installed in bits 23
1.33463 -+through 0. */
1.33464 -+ BFD_RELOC_ARC_B26,
1.33465 -+
1.33466 -+/* ADI Blackfin 16 bit immediate absolute reloc. */
1.33467 -+ BFD_RELOC_BFIN_16_IMM,
1.33468 -+
1.33469 -+/* ADI Blackfin 16 bit immediate absolute reloc higher 16 bits. */
1.33470 -+ BFD_RELOC_BFIN_16_HIGH,
1.33471 -+
1.33472 -+/* ADI Blackfin 'a' part of LSETUP. */
1.33473 -+ BFD_RELOC_BFIN_4_PCREL,
1.33474 -+
1.33475 -+/* ADI Blackfin. */
1.33476 -+ BFD_RELOC_BFIN_5_PCREL,
1.33477 -+
1.33478 -+/* ADI Blackfin 16 bit immediate absolute reloc lower 16 bits. */
1.33479 -+ BFD_RELOC_BFIN_16_LOW,
1.33480 -+
1.33481 -+/* ADI Blackfin. */
1.33482 -+ BFD_RELOC_BFIN_10_PCREL,
1.33483 -+
1.33484 -+/* ADI Blackfin 'b' part of LSETUP. */
1.33485 -+ BFD_RELOC_BFIN_11_PCREL,
1.33486 -+
1.33487 -+/* ADI Blackfin. */
1.33488 -+ BFD_RELOC_BFIN_12_PCREL_JUMP,
1.33489 -+
1.33490 -+/* ADI Blackfin Short jump, pcrel. */
1.33491 -+ BFD_RELOC_BFIN_12_PCREL_JUMP_S,
1.33492 -+
1.33493 -+/* ADI Blackfin Call.x not implemented. */
1.33494 -+ BFD_RELOC_BFIN_24_PCREL_CALL_X,
1.33495 -+
1.33496 -+/* ADI Blackfin Long Jump pcrel. */
1.33497 -+ BFD_RELOC_BFIN_24_PCREL_JUMP_L,
1.33498 -+
1.33499 -+/* ADI Blackfin FD-PIC relocations. */
1.33500 -+ BFD_RELOC_BFIN_GOT17M4,
1.33501 -+ BFD_RELOC_BFIN_GOTHI,
1.33502 -+ BFD_RELOC_BFIN_GOTLO,
1.33503 -+ BFD_RELOC_BFIN_FUNCDESC,
1.33504 -+ BFD_RELOC_BFIN_FUNCDESC_GOT17M4,
1.33505 -+ BFD_RELOC_BFIN_FUNCDESC_GOTHI,
1.33506 -+ BFD_RELOC_BFIN_FUNCDESC_GOTLO,
1.33507 -+ BFD_RELOC_BFIN_FUNCDESC_VALUE,
1.33508 -+ BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4,
1.33509 -+ BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI,
1.33510 -+ BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO,
1.33511 -+ BFD_RELOC_BFIN_GOTOFF17M4,
1.33512 -+ BFD_RELOC_BFIN_GOTOFFHI,
1.33513 -+ BFD_RELOC_BFIN_GOTOFFLO,
1.33514 -+
1.33515 -+/* ADI Blackfin GOT relocation. */
1.33516 -+ BFD_RELOC_BFIN_GOT,
1.33517 -+
1.33518 -+/* ADI Blackfin PLTPC relocation. */
1.33519 -+ BFD_RELOC_BFIN_PLTPC,
1.33520 -+
1.33521 -+/* ADI Blackfin arithmetic relocation. */
1.33522 -+ BFD_ARELOC_BFIN_PUSH,
1.33523 -+
1.33524 -+/* ADI Blackfin arithmetic relocation. */
1.33525 -+ BFD_ARELOC_BFIN_CONST,
1.33526 -+
1.33527 -+/* ADI Blackfin arithmetic relocation. */
1.33528 -+ BFD_ARELOC_BFIN_ADD,
1.33529 -+
1.33530 -+/* ADI Blackfin arithmetic relocation. */
1.33531 -+ BFD_ARELOC_BFIN_SUB,
1.33532 -+
1.33533 -+/* ADI Blackfin arithmetic relocation. */
1.33534 -+ BFD_ARELOC_BFIN_MULT,
1.33535 -+
1.33536 -+/* ADI Blackfin arithmetic relocation. */
1.33537 -+ BFD_ARELOC_BFIN_DIV,
1.33538 -+
1.33539 -+/* ADI Blackfin arithmetic relocation. */
1.33540 -+ BFD_ARELOC_BFIN_MOD,
1.33541 -+
1.33542 -+/* ADI Blackfin arithmetic relocation. */
1.33543 -+ BFD_ARELOC_BFIN_LSHIFT,
1.33544 -+
1.33545 -+/* ADI Blackfin arithmetic relocation. */
1.33546 -+ BFD_ARELOC_BFIN_RSHIFT,
1.33547 -+
1.33548 -+/* ADI Blackfin arithmetic relocation. */
1.33549 -+ BFD_ARELOC_BFIN_AND,
1.33550 -+
1.33551 -+/* ADI Blackfin arithmetic relocation. */
1.33552 -+ BFD_ARELOC_BFIN_OR,
1.33553 -+
1.33554 -+/* ADI Blackfin arithmetic relocation. */
1.33555 -+ BFD_ARELOC_BFIN_XOR,
1.33556 -+
1.33557 -+/* ADI Blackfin arithmetic relocation. */
1.33558 -+ BFD_ARELOC_BFIN_LAND,
1.33559 -+
1.33560 -+/* ADI Blackfin arithmetic relocation. */
1.33561 -+ BFD_ARELOC_BFIN_LOR,
1.33562 -+
1.33563 -+/* ADI Blackfin arithmetic relocation. */
1.33564 -+ BFD_ARELOC_BFIN_LEN,
1.33565 -+
1.33566 -+/* ADI Blackfin arithmetic relocation. */
1.33567 -+ BFD_ARELOC_BFIN_NEG,
1.33568 -+
1.33569 -+/* ADI Blackfin arithmetic relocation. */
1.33570 -+ BFD_ARELOC_BFIN_COMP,
1.33571 -+
1.33572 -+/* ADI Blackfin arithmetic relocation. */
1.33573 -+ BFD_ARELOC_BFIN_PAGE,
1.33574 -+
1.33575 -+/* ADI Blackfin arithmetic relocation. */
1.33576 -+ BFD_ARELOC_BFIN_HWPAGE,
1.33577 -+
1.33578 -+/* ADI Blackfin arithmetic relocation. */
1.33579 -+ BFD_ARELOC_BFIN_ADDR,
1.33580 -+
1.33581 -+/* Mitsubishi D10V relocs.
1.33582 -+This is a 10-bit reloc with the right 2 bits
1.33583 -+assumed to be 0. */
1.33584 -+ BFD_RELOC_D10V_10_PCREL_R,
1.33585 -+
1.33586 -+/* Mitsubishi D10V relocs.
1.33587 -+This is a 10-bit reloc with the right 2 bits
1.33588 -+assumed to be 0. This is the same as the previous reloc
1.33589 -+except it is in the left container, i.e.,
1.33590 -+shifted left 15 bits. */
1.33591 -+ BFD_RELOC_D10V_10_PCREL_L,
1.33592 -+
1.33593 -+/* This is an 18-bit reloc with the right 2 bits
1.33594 -+assumed to be 0. */
1.33595 -+ BFD_RELOC_D10V_18,
1.33596 -+
1.33597 -+/* This is an 18-bit reloc with the right 2 bits
1.33598 -+assumed to be 0. */
1.33599 -+ BFD_RELOC_D10V_18_PCREL,
1.33600 -+
1.33601 -+/* Mitsubishi D30V relocs.
1.33602 -+This is a 6-bit absolute reloc. */
1.33603 -+ BFD_RELOC_D30V_6,
1.33604 -+
1.33605 -+/* This is a 6-bit pc-relative reloc with
1.33606 -+the right 3 bits assumed to be 0. */
1.33607 -+ BFD_RELOC_D30V_9_PCREL,
1.33608 -+
1.33609 -+/* This is a 6-bit pc-relative reloc with
1.33610 -+the right 3 bits assumed to be 0. Same
1.33611 -+as the previous reloc but on the right side
1.33612 -+of the container. */
1.33613 -+ BFD_RELOC_D30V_9_PCREL_R,
1.33614 -+
1.33615 -+/* This is a 12-bit absolute reloc with the
1.33616 -+right 3 bitsassumed to be 0. */
1.33617 -+ BFD_RELOC_D30V_15,
1.33618 -+
1.33619 -+/* This is a 12-bit pc-relative reloc with
1.33620 -+the right 3 bits assumed to be 0. */
1.33621 -+ BFD_RELOC_D30V_15_PCREL,
1.33622 -+
1.33623 -+/* This is a 12-bit pc-relative reloc with
1.33624 -+the right 3 bits assumed to be 0. Same
1.33625 -+as the previous reloc but on the right side
1.33626 -+of the container. */
1.33627 -+ BFD_RELOC_D30V_15_PCREL_R,
1.33628 -+
1.33629 -+/* This is an 18-bit absolute reloc with
1.33630 -+the right 3 bits assumed to be 0. */
1.33631 -+ BFD_RELOC_D30V_21,
1.33632 -+
1.33633 -+/* This is an 18-bit pc-relative reloc with
1.33634 -+the right 3 bits assumed to be 0. */
1.33635 -+ BFD_RELOC_D30V_21_PCREL,
1.33636 -+
1.33637 -+/* This is an 18-bit pc-relative reloc with
1.33638 -+the right 3 bits assumed to be 0. Same
1.33639 -+as the previous reloc but on the right side
1.33640 -+of the container. */
1.33641 -+ BFD_RELOC_D30V_21_PCREL_R,
1.33642 -+
1.33643 -+/* This is a 32-bit absolute reloc. */
1.33644 -+ BFD_RELOC_D30V_32,
1.33645 -+
1.33646 -+/* This is a 32-bit pc-relative reloc. */
1.33647 -+ BFD_RELOC_D30V_32_PCREL,
1.33648 -+
1.33649 -+/* DLX relocs */
1.33650 -+ BFD_RELOC_DLX_HI16_S,
1.33651 -+
1.33652 -+/* DLX relocs */
1.33653 -+ BFD_RELOC_DLX_LO16,
1.33654 -+
1.33655 -+/* DLX relocs */
1.33656 -+ BFD_RELOC_DLX_JMP26,
1.33657 -+
1.33658 -+/* Renesas M16C/M32C Relocations. */
1.33659 -+ BFD_RELOC_M32C_HI8,
1.33660 -+ BFD_RELOC_M32C_RL_JUMP,
1.33661 -+ BFD_RELOC_M32C_RL_1ADDR,
1.33662 -+ BFD_RELOC_M32C_RL_2ADDR,
1.33663 -+
1.33664 -+/* Renesas M32R (formerly Mitsubishi M32R) relocs.
1.33665 -+This is a 24 bit absolute address. */
1.33666 -+ BFD_RELOC_M32R_24,
1.33667 -+
1.33668 -+/* This is a 10-bit pc-relative reloc with the right 2 bits assumed to be 0. */
1.33669 -+ BFD_RELOC_M32R_10_PCREL,
1.33670 -+
1.33671 -+/* This is an 18-bit reloc with the right 2 bits assumed to be 0. */
1.33672 -+ BFD_RELOC_M32R_18_PCREL,
1.33673 -+
1.33674 -+/* This is a 26-bit reloc with the right 2 bits assumed to be 0. */
1.33675 -+ BFD_RELOC_M32R_26_PCREL,
1.33676 -+
1.33677 -+/* This is a 16-bit reloc containing the high 16 bits of an address
1.33678 -+used when the lower 16 bits are treated as unsigned. */
1.33679 -+ BFD_RELOC_M32R_HI16_ULO,
1.33680 -+
1.33681 -+/* This is a 16-bit reloc containing the high 16 bits of an address
1.33682 -+used when the lower 16 bits are treated as signed. */
1.33683 -+ BFD_RELOC_M32R_HI16_SLO,
1.33684 -+
1.33685 -+/* This is a 16-bit reloc containing the lower 16 bits of an address. */
1.33686 -+ BFD_RELOC_M32R_LO16,
1.33687 -+
1.33688 -+/* This is a 16-bit reloc containing the small data area offset for use in
1.33689 -+add3, load, and store instructions. */
1.33690 -+ BFD_RELOC_M32R_SDA16,
1.33691 -+
1.33692 -+/* For PIC. */
1.33693 -+ BFD_RELOC_M32R_GOT24,
1.33694 -+ BFD_RELOC_M32R_26_PLTREL,
1.33695 -+ BFD_RELOC_M32R_COPY,
1.33696 -+ BFD_RELOC_M32R_GLOB_DAT,
1.33697 -+ BFD_RELOC_M32R_JMP_SLOT,
1.33698 -+ BFD_RELOC_M32R_RELATIVE,
1.33699 -+ BFD_RELOC_M32R_GOTOFF,
1.33700 -+ BFD_RELOC_M32R_GOTOFF_HI_ULO,
1.33701 -+ BFD_RELOC_M32R_GOTOFF_HI_SLO,
1.33702 -+ BFD_RELOC_M32R_GOTOFF_LO,
1.33703 -+ BFD_RELOC_M32R_GOTPC24,
1.33704 -+ BFD_RELOC_M32R_GOT16_HI_ULO,
1.33705 -+ BFD_RELOC_M32R_GOT16_HI_SLO,
1.33706 -+ BFD_RELOC_M32R_GOT16_LO,
1.33707 -+ BFD_RELOC_M32R_GOTPC_HI_ULO,
1.33708 -+ BFD_RELOC_M32R_GOTPC_HI_SLO,
1.33709 -+ BFD_RELOC_M32R_GOTPC_LO,
1.33710 -+
1.33711 -+/* This is a 9-bit reloc */
1.33712 -+ BFD_RELOC_V850_9_PCREL,
1.33713 -+
1.33714 -+/* This is a 22-bit reloc */
1.33715 -+ BFD_RELOC_V850_22_PCREL,
1.33716 -+
1.33717 -+/* This is a 16 bit offset from the short data area pointer. */
1.33718 -+ BFD_RELOC_V850_SDA_16_16_OFFSET,
1.33719 -+
1.33720 -+/* This is a 16 bit offset (of which only 15 bits are used) from the
1.33721 -+short data area pointer. */
1.33722 -+ BFD_RELOC_V850_SDA_15_16_OFFSET,
1.33723 -+
1.33724 -+/* This is a 16 bit offset from the zero data area pointer. */
1.33725 -+ BFD_RELOC_V850_ZDA_16_16_OFFSET,
1.33726 -+
1.33727 -+/* This is a 16 bit offset (of which only 15 bits are used) from the
1.33728 -+zero data area pointer. */
1.33729 -+ BFD_RELOC_V850_ZDA_15_16_OFFSET,
1.33730 -+
1.33731 -+/* This is an 8 bit offset (of which only 6 bits are used) from the
1.33732 -+tiny data area pointer. */
1.33733 -+ BFD_RELOC_V850_TDA_6_8_OFFSET,
1.33734 -+
1.33735 -+/* This is an 8bit offset (of which only 7 bits are used) from the tiny
1.33736 -+data area pointer. */
1.33737 -+ BFD_RELOC_V850_TDA_7_8_OFFSET,
1.33738 -+
1.33739 -+/* This is a 7 bit offset from the tiny data area pointer. */
1.33740 -+ BFD_RELOC_V850_TDA_7_7_OFFSET,
1.33741 -+
1.33742 -+/* This is a 16 bit offset from the tiny data area pointer. */
1.33743 -+ BFD_RELOC_V850_TDA_16_16_OFFSET,
1.33744 -+
1.33745 -+/* This is a 5 bit offset (of which only 4 bits are used) from the tiny
1.33746 -+data area pointer. */
1.33747 -+ BFD_RELOC_V850_TDA_4_5_OFFSET,
1.33748 -+
1.33749 -+/* This is a 4 bit offset from the tiny data area pointer. */
1.33750 -+ BFD_RELOC_V850_TDA_4_4_OFFSET,
1.33751 -+
1.33752 -+/* This is a 16 bit offset from the short data area pointer, with the
1.33753 -+bits placed non-contiguously in the instruction. */
1.33754 -+ BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET,
1.33755 -+
1.33756 -+/* This is a 16 bit offset from the zero data area pointer, with the
1.33757 -+bits placed non-contiguously in the instruction. */
1.33758 -+ BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET,
1.33759 -+
1.33760 -+/* This is a 6 bit offset from the call table base pointer. */
1.33761 -+ BFD_RELOC_V850_CALLT_6_7_OFFSET,
1.33762 -+
1.33763 -+/* This is a 16 bit offset from the call table base pointer. */
1.33764 -+ BFD_RELOC_V850_CALLT_16_16_OFFSET,
1.33765 -+
1.33766 -+/* Used for relaxing indirect function calls. */
1.33767 -+ BFD_RELOC_V850_LONGCALL,
1.33768 -+
1.33769 -+/* Used for relaxing indirect jumps. */
1.33770 -+ BFD_RELOC_V850_LONGJUMP,
1.33771 -+
1.33772 -+/* Used to maintain alignment whilst relaxing. */
1.33773 -+ BFD_RELOC_V850_ALIGN,
1.33774 -+
1.33775 -+/* This is a variation of BFD_RELOC_LO16 that can be used in v850e ld.bu
1.33776 -+instructions. */
1.33777 -+ BFD_RELOC_V850_LO16_SPLIT_OFFSET,
1.33778 -+
1.33779 -+/* This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the
1.33780 -+instruction. */
1.33781 -+ BFD_RELOC_MN10300_32_PCREL,
1.33782 -+
1.33783 -+/* This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the
1.33784 -+instruction. */
1.33785 -+ BFD_RELOC_MN10300_16_PCREL,
1.33786 -+
1.33787 -+/* This is a 8bit DP reloc for the tms320c30, where the most
1.33788 -+significant 8 bits of a 24 bit word are placed into the least
1.33789 -+significant 8 bits of the opcode. */
1.33790 -+ BFD_RELOC_TIC30_LDP,
1.33791 -+
1.33792 -+/* This is a 7bit reloc for the tms320c54x, where the least
1.33793 -+significant 7 bits of a 16 bit word are placed into the least
1.33794 -+significant 7 bits of the opcode. */
1.33795 -+ BFD_RELOC_TIC54X_PARTLS7,
1.33796 -+
1.33797 -+/* This is a 9bit DP reloc for the tms320c54x, where the most
1.33798 -+significant 9 bits of a 16 bit word are placed into the least
1.33799 -+significant 9 bits of the opcode. */
1.33800 -+ BFD_RELOC_TIC54X_PARTMS9,
1.33801 -+
1.33802 -+/* This is an extended address 23-bit reloc for the tms320c54x. */
1.33803 -+ BFD_RELOC_TIC54X_23,
1.33804 -+
1.33805 -+/* This is a 16-bit reloc for the tms320c54x, where the least
1.33806 -+significant 16 bits of a 23-bit extended address are placed into
1.33807 -+the opcode. */
1.33808 -+ BFD_RELOC_TIC54X_16_OF_23,
1.33809 -+
1.33810 -+/* This is a reloc for the tms320c54x, where the most
1.33811 -+significant 7 bits of a 23-bit extended address are placed into
1.33812 -+the opcode. */
1.33813 -+ BFD_RELOC_TIC54X_MS7_OF_23,
1.33814 -+
1.33815 -+/* This is a 48 bit reloc for the FR30 that stores 32 bits. */
1.33816 -+ BFD_RELOC_FR30_48,
1.33817 -+
1.33818 -+/* This is a 32 bit reloc for the FR30 that stores 20 bits split up into
1.33819 -+two sections. */
1.33820 -+ BFD_RELOC_FR30_20,
1.33821 -+
1.33822 -+/* This is a 16 bit reloc for the FR30 that stores a 6 bit word offset in
1.33823 -+4 bits. */
1.33824 -+ BFD_RELOC_FR30_6_IN_4,
1.33825 -+
1.33826 -+/* This is a 16 bit reloc for the FR30 that stores an 8 bit byte offset
1.33827 -+into 8 bits. */
1.33828 -+ BFD_RELOC_FR30_8_IN_8,
1.33829 -+
1.33830 -+/* This is a 16 bit reloc for the FR30 that stores a 9 bit short offset
1.33831 -+into 8 bits. */
1.33832 -+ BFD_RELOC_FR30_9_IN_8,
1.33833 -+
1.33834 -+/* This is a 16 bit reloc for the FR30 that stores a 10 bit word offset
1.33835 -+into 8 bits. */
1.33836 -+ BFD_RELOC_FR30_10_IN_8,
1.33837 -+
1.33838 -+/* This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
1.33839 -+short offset into 8 bits. */
1.33840 -+ BFD_RELOC_FR30_9_PCREL,
1.33841 -+
1.33842 -+/* This is a 16 bit reloc for the FR30 that stores a 12 bit pc relative
1.33843 -+short offset into 11 bits. */
1.33844 -+ BFD_RELOC_FR30_12_PCREL,
1.33845 -+
1.33846 -+/* Motorola Mcore relocations. */
1.33847 -+ BFD_RELOC_MCORE_PCREL_IMM8BY4,
1.33848 -+ BFD_RELOC_MCORE_PCREL_IMM11BY2,
1.33849 -+ BFD_RELOC_MCORE_PCREL_IMM4BY2,
1.33850 -+ BFD_RELOC_MCORE_PCREL_32,
1.33851 -+ BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2,
1.33852 -+ BFD_RELOC_MCORE_RVA,
1.33853 -+
1.33854 -+/* Toshiba Media Processor Relocations. */
1.33855 -+ BFD_RELOC_MEP_8,
1.33856 -+ BFD_RELOC_MEP_16,
1.33857 -+ BFD_RELOC_MEP_32,
1.33858 -+ BFD_RELOC_MEP_PCREL8A2,
1.33859 -+ BFD_RELOC_MEP_PCREL12A2,
1.33860 -+ BFD_RELOC_MEP_PCREL17A2,
1.33861 -+ BFD_RELOC_MEP_PCREL24A2,
1.33862 -+ BFD_RELOC_MEP_PCABS24A2,
1.33863 -+ BFD_RELOC_MEP_LOW16,
1.33864 -+ BFD_RELOC_MEP_HI16U,
1.33865 -+ BFD_RELOC_MEP_HI16S,
1.33866 -+ BFD_RELOC_MEP_GPREL,
1.33867 -+ BFD_RELOC_MEP_TPREL,
1.33868 -+ BFD_RELOC_MEP_TPREL7,
1.33869 -+ BFD_RELOC_MEP_TPREL7A2,
1.33870 -+ BFD_RELOC_MEP_TPREL7A4,
1.33871 -+ BFD_RELOC_MEP_UIMM24,
1.33872 -+ BFD_RELOC_MEP_ADDR24A4,
1.33873 -+ BFD_RELOC_MEP_GNU_VTINHERIT,
1.33874 -+ BFD_RELOC_MEP_GNU_VTENTRY,
1.33875 -+
1.33876 -+
1.33877 -+/* These are relocations for the GETA instruction. */
1.33878 -+ BFD_RELOC_MMIX_GETA,
1.33879 -+ BFD_RELOC_MMIX_GETA_1,
1.33880 -+ BFD_RELOC_MMIX_GETA_2,
1.33881 -+ BFD_RELOC_MMIX_GETA_3,
1.33882 -+
1.33883 -+/* These are relocations for a conditional branch instruction. */
1.33884 -+ BFD_RELOC_MMIX_CBRANCH,
1.33885 -+ BFD_RELOC_MMIX_CBRANCH_J,
1.33886 -+ BFD_RELOC_MMIX_CBRANCH_1,
1.33887 -+ BFD_RELOC_MMIX_CBRANCH_2,
1.33888 -+ BFD_RELOC_MMIX_CBRANCH_3,
1.33889 -+
1.33890 -+/* These are relocations for the PUSHJ instruction. */
1.33891 -+ BFD_RELOC_MMIX_PUSHJ,
1.33892 -+ BFD_RELOC_MMIX_PUSHJ_1,
1.33893 -+ BFD_RELOC_MMIX_PUSHJ_2,
1.33894 -+ BFD_RELOC_MMIX_PUSHJ_3,
1.33895 -+ BFD_RELOC_MMIX_PUSHJ_STUBBABLE,
1.33896 -+
1.33897 -+/* These are relocations for the JMP instruction. */
1.33898 -+ BFD_RELOC_MMIX_JMP,
1.33899 -+ BFD_RELOC_MMIX_JMP_1,
1.33900 -+ BFD_RELOC_MMIX_JMP_2,
1.33901 -+ BFD_RELOC_MMIX_JMP_3,
1.33902 -+
1.33903 -+/* This is a relocation for a relative address as in a GETA instruction or
1.33904 -+a branch. */
1.33905 -+ BFD_RELOC_MMIX_ADDR19,
1.33906 -+
1.33907 -+/* This is a relocation for a relative address as in a JMP instruction. */
1.33908 -+ BFD_RELOC_MMIX_ADDR27,
1.33909 -+
1.33910 -+/* This is a relocation for an instruction field that may be a general
1.33911 -+register or a value 0..255. */
1.33912 -+ BFD_RELOC_MMIX_REG_OR_BYTE,
1.33913 -+
1.33914 -+/* This is a relocation for an instruction field that may be a general
1.33915 -+register. */
1.33916 -+ BFD_RELOC_MMIX_REG,
1.33917 -+
1.33918 -+/* This is a relocation for two instruction fields holding a register and
1.33919 -+an offset, the equivalent of the relocation. */
1.33920 -+ BFD_RELOC_MMIX_BASE_PLUS_OFFSET,
1.33921 -+
1.33922 -+/* This relocation is an assertion that the expression is not allocated as
1.33923 -+a global register. It does not modify contents. */
1.33924 -+ BFD_RELOC_MMIX_LOCAL,
1.33925 -+
1.33926 -+/* This is a 16 bit reloc for the AVR that stores 8 bit pc relative
1.33927 -+short offset into 7 bits. */
1.33928 -+ BFD_RELOC_AVR_7_PCREL,
1.33929 -+
1.33930 -+/* This is a 16 bit reloc for the AVR that stores 13 bit pc relative
1.33931 -+short offset into 12 bits. */
1.33932 -+ BFD_RELOC_AVR_13_PCREL,
1.33933 -+
1.33934 -+/* This is a 16 bit reloc for the AVR that stores 17 bit value (usually
1.33935 -+program memory address) into 16 bits. */
1.33936 -+ BFD_RELOC_AVR_16_PM,
1.33937 -+
1.33938 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
1.33939 -+data memory address) into 8 bit immediate value of LDI insn. */
1.33940 -+ BFD_RELOC_AVR_LO8_LDI,
1.33941 -+
1.33942 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
1.33943 -+of data memory address) into 8 bit immediate value of LDI insn. */
1.33944 -+ BFD_RELOC_AVR_HI8_LDI,
1.33945 -+
1.33946 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
1.33947 -+of program memory address) into 8 bit immediate value of LDI insn. */
1.33948 -+ BFD_RELOC_AVR_HH8_LDI,
1.33949 -+
1.33950 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
1.33951 -+of 32 bit value) into 8 bit immediate value of LDI insn. */
1.33952 -+ BFD_RELOC_AVR_MS8_LDI,
1.33953 -+
1.33954 -+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
1.33955 -+(usually data memory address) into 8 bit immediate value of SUBI insn. */
1.33956 -+ BFD_RELOC_AVR_LO8_LDI_NEG,
1.33957 -+
1.33958 -+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
1.33959 -+(high 8 bit of data memory address) into 8 bit immediate value of
1.33960 -+SUBI insn. */
1.33961 -+ BFD_RELOC_AVR_HI8_LDI_NEG,
1.33962 -+
1.33963 -+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
1.33964 -+(most high 8 bit of program memory address) into 8 bit immediate value
1.33965 -+of LDI or SUBI insn. */
1.33966 -+ BFD_RELOC_AVR_HH8_LDI_NEG,
1.33967 -+
1.33968 -+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value (msb
1.33969 -+of 32 bit value) into 8 bit immediate value of LDI insn. */
1.33970 -+ BFD_RELOC_AVR_MS8_LDI_NEG,
1.33971 -+
1.33972 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
1.33973 -+command address) into 8 bit immediate value of LDI insn. */
1.33974 -+ BFD_RELOC_AVR_LO8_LDI_PM,
1.33975 -+
1.33976 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value
1.33977 -+(command address) into 8 bit immediate value of LDI insn. If the address
1.33978 -+is beyond the 128k boundary, the linker inserts a jump stub for this reloc
1.33979 -+in the lower 128k. */
1.33980 -+ BFD_RELOC_AVR_LO8_LDI_GS,
1.33981 -+
1.33982 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
1.33983 -+of command address) into 8 bit immediate value of LDI insn. */
1.33984 -+ BFD_RELOC_AVR_HI8_LDI_PM,
1.33985 -+
1.33986 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
1.33987 -+of command address) into 8 bit immediate value of LDI insn. If the address
1.33988 -+is beyond the 128k boundary, the linker inserts a jump stub for this reloc
1.33989 -+below 128k. */
1.33990 -+ BFD_RELOC_AVR_HI8_LDI_GS,
1.33991 -+
1.33992 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
1.33993 -+of command address) into 8 bit immediate value of LDI insn. */
1.33994 -+ BFD_RELOC_AVR_HH8_LDI_PM,
1.33995 -+
1.33996 -+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
1.33997 -+(usually command address) into 8 bit immediate value of SUBI insn. */
1.33998 -+ BFD_RELOC_AVR_LO8_LDI_PM_NEG,
1.33999 -+
1.34000 -+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
1.34001 -+(high 8 bit of 16 bit command address) into 8 bit immediate value
1.34002 -+of SUBI insn. */
1.34003 -+ BFD_RELOC_AVR_HI8_LDI_PM_NEG,
1.34004 -+
1.34005 -+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
1.34006 -+(high 6 bit of 22 bit command address) into 8 bit immediate
1.34007 -+value of SUBI insn. */
1.34008 -+ BFD_RELOC_AVR_HH8_LDI_PM_NEG,
1.34009 -+
1.34010 -+/* This is a 32 bit reloc for the AVR that stores 23 bit value
1.34011 -+into 22 bits. */
1.34012 -+ BFD_RELOC_AVR_CALL,
1.34013 -+
1.34014 -+/* This is a 16 bit reloc for the AVR that stores all needed bits
1.34015 -+for absolute addressing with ldi with overflow check to linktime */
1.34016 -+ BFD_RELOC_AVR_LDI,
1.34017 -+
1.34018 -+/* This is a 6 bit reloc for the AVR that stores offset for ldd/std
1.34019 -+instructions */
1.34020 -+ BFD_RELOC_AVR_6,
1.34021 -+
1.34022 -+/* This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
1.34023 -+instructions */
1.34024 -+ BFD_RELOC_AVR_6_ADIW,
1.34025 -+
1.34026 -+/* Direct 12 bit. */
1.34027 -+ BFD_RELOC_390_12,
1.34028 -+
1.34029 -+/* 12 bit GOT offset. */
1.34030 -+ BFD_RELOC_390_GOT12,
1.34031 -+
1.34032 -+/* 32 bit PC relative PLT address. */
1.34033 -+ BFD_RELOC_390_PLT32,
1.34034 -+
1.34035 -+/* Copy symbol at runtime. */
1.34036 -+ BFD_RELOC_390_COPY,
1.34037 -+
1.34038 -+/* Create GOT entry. */
1.34039 -+ BFD_RELOC_390_GLOB_DAT,
1.34040 -+
1.34041 -+/* Create PLT entry. */
1.34042 -+ BFD_RELOC_390_JMP_SLOT,
1.34043 -+
1.34044 -+/* Adjust by program base. */
1.34045 -+ BFD_RELOC_390_RELATIVE,
1.34046 -+
1.34047 -+/* 32 bit PC relative offset to GOT. */
1.34048 -+ BFD_RELOC_390_GOTPC,
1.34049 -+
1.34050 -+/* 16 bit GOT offset. */
1.34051 -+ BFD_RELOC_390_GOT16,
1.34052 -+
1.34053 -+/* PC relative 16 bit shifted by 1. */
1.34054 -+ BFD_RELOC_390_PC16DBL,
1.34055 -+
1.34056 -+/* 16 bit PC rel. PLT shifted by 1. */
1.34057 -+ BFD_RELOC_390_PLT16DBL,
1.34058 -+
1.34059 -+/* PC relative 32 bit shifted by 1. */
1.34060 -+ BFD_RELOC_390_PC32DBL,
1.34061 -+
1.34062 -+/* 32 bit PC rel. PLT shifted by 1. */
1.34063 -+ BFD_RELOC_390_PLT32DBL,
1.34064 -+
1.34065 -+/* 32 bit PC rel. GOT shifted by 1. */
1.34066 -+ BFD_RELOC_390_GOTPCDBL,
1.34067 -+
1.34068 -+/* 64 bit GOT offset. */
1.34069 -+ BFD_RELOC_390_GOT64,
1.34070 -+
1.34071 -+/* 64 bit PC relative PLT address. */
1.34072 -+ BFD_RELOC_390_PLT64,
1.34073 -+
1.34074 -+/* 32 bit rel. offset to GOT entry. */
1.34075 -+ BFD_RELOC_390_GOTENT,
1.34076 -+
1.34077 -+/* 64 bit offset to GOT. */
1.34078 -+ BFD_RELOC_390_GOTOFF64,
1.34079 -+
1.34080 -+/* 12-bit offset to symbol-entry within GOT, with PLT handling. */
1.34081 -+ BFD_RELOC_390_GOTPLT12,
1.34082 -+
1.34083 -+/* 16-bit offset to symbol-entry within GOT, with PLT handling. */
1.34084 -+ BFD_RELOC_390_GOTPLT16,
1.34085 -+
1.34086 -+/* 32-bit offset to symbol-entry within GOT, with PLT handling. */
1.34087 -+ BFD_RELOC_390_GOTPLT32,
1.34088 -+
1.34089 -+/* 64-bit offset to symbol-entry within GOT, with PLT handling. */
1.34090 -+ BFD_RELOC_390_GOTPLT64,
1.34091 -+
1.34092 -+/* 32-bit rel. offset to symbol-entry within GOT, with PLT handling. */
1.34093 -+ BFD_RELOC_390_GOTPLTENT,
1.34094 -+
1.34095 -+/* 16-bit rel. offset from the GOT to a PLT entry. */
1.34096 -+ BFD_RELOC_390_PLTOFF16,
1.34097 -+
1.34098 -+/* 32-bit rel. offset from the GOT to a PLT entry. */
1.34099 -+ BFD_RELOC_390_PLTOFF32,
1.34100 -+
1.34101 -+/* 64-bit rel. offset from the GOT to a PLT entry. */
1.34102 -+ BFD_RELOC_390_PLTOFF64,
1.34103 -+
1.34104 -+/* s390 tls relocations. */
1.34105 -+ BFD_RELOC_390_TLS_LOAD,
1.34106 -+ BFD_RELOC_390_TLS_GDCALL,
1.34107 -+ BFD_RELOC_390_TLS_LDCALL,
1.34108 -+ BFD_RELOC_390_TLS_GD32,
1.34109 -+ BFD_RELOC_390_TLS_GD64,
1.34110 -+ BFD_RELOC_390_TLS_GOTIE12,
1.34111 -+ BFD_RELOC_390_TLS_GOTIE32,
1.34112 -+ BFD_RELOC_390_TLS_GOTIE64,
1.34113 -+ BFD_RELOC_390_TLS_LDM32,
1.34114 -+ BFD_RELOC_390_TLS_LDM64,
1.34115 -+ BFD_RELOC_390_TLS_IE32,
1.34116 -+ BFD_RELOC_390_TLS_IE64,
1.34117 -+ BFD_RELOC_390_TLS_IEENT,
1.34118 -+ BFD_RELOC_390_TLS_LE32,
1.34119 -+ BFD_RELOC_390_TLS_LE64,
1.34120 -+ BFD_RELOC_390_TLS_LDO32,
1.34121 -+ BFD_RELOC_390_TLS_LDO64,
1.34122 -+ BFD_RELOC_390_TLS_DTPMOD,
1.34123 -+ BFD_RELOC_390_TLS_DTPOFF,
1.34124 -+ BFD_RELOC_390_TLS_TPOFF,
1.34125 -+
1.34126 -+/* Long displacement extension. */
1.34127 -+ BFD_RELOC_390_20,
1.34128 -+ BFD_RELOC_390_GOT20,
1.34129 -+ BFD_RELOC_390_GOTPLT20,
1.34130 -+ BFD_RELOC_390_TLS_GOTIE20,
1.34131 -+
1.34132 -+/* Score relocations */
1.34133 -+ BFD_RELOC_SCORE_DUMMY1,
1.34134 -+
1.34135 -+/* Low 16 bit for load/store */
1.34136 -+ BFD_RELOC_SCORE_GPREL15,
1.34137 -+
1.34138 -+/* This is a 24-bit reloc with the right 1 bit assumed to be 0 */
1.34139 -+ BFD_RELOC_SCORE_DUMMY2,
1.34140 -+ BFD_RELOC_SCORE_JMP,
1.34141 -+
1.34142 -+/* This is a 19-bit reloc with the right 1 bit assumed to be 0 */
1.34143 -+ BFD_RELOC_SCORE_BRANCH,
1.34144 -+
1.34145 -+/* This is a 11-bit reloc with the right 1 bit assumed to be 0 */
1.34146 -+ BFD_RELOC_SCORE16_JMP,
1.34147 -+
1.34148 -+/* This is a 8-bit reloc with the right 1 bit assumed to be 0 */
1.34149 -+ BFD_RELOC_SCORE16_BRANCH,
1.34150 -+
1.34151 -+/* Undocumented Score relocs */
1.34152 -+ BFD_RELOC_SCORE_GOT15,
1.34153 -+ BFD_RELOC_SCORE_GOT_LO16,
1.34154 -+ BFD_RELOC_SCORE_CALL15,
1.34155 -+ BFD_RELOC_SCORE_DUMMY_HI16,
1.34156 -+
1.34157 -+/* Scenix IP2K - 9-bit register number / data address */
1.34158 -+ BFD_RELOC_IP2K_FR9,
1.34159 -+
1.34160 -+/* Scenix IP2K - 4-bit register/data bank number */
1.34161 -+ BFD_RELOC_IP2K_BANK,
1.34162 -+
1.34163 -+/* Scenix IP2K - low 13 bits of instruction word address */
1.34164 -+ BFD_RELOC_IP2K_ADDR16CJP,
1.34165 -+
1.34166 -+/* Scenix IP2K - high 3 bits of instruction word address */
1.34167 -+ BFD_RELOC_IP2K_PAGE3,
1.34168 -+
1.34169 -+/* Scenix IP2K - ext/low/high 8 bits of data address */
1.34170 -+ BFD_RELOC_IP2K_LO8DATA,
1.34171 -+ BFD_RELOC_IP2K_HI8DATA,
1.34172 -+ BFD_RELOC_IP2K_EX8DATA,
1.34173 -+
1.34174 -+/* Scenix IP2K - low/high 8 bits of instruction word address */
1.34175 -+ BFD_RELOC_IP2K_LO8INSN,
1.34176 -+ BFD_RELOC_IP2K_HI8INSN,
1.34177 -+
1.34178 -+/* Scenix IP2K - even/odd PC modifier to modify snb pcl.0 */
1.34179 -+ BFD_RELOC_IP2K_PC_SKIP,
1.34180 -+
1.34181 -+/* Scenix IP2K - 16 bit word address in text section. */
1.34182 -+ BFD_RELOC_IP2K_TEXT,
1.34183 -+
1.34184 -+/* Scenix IP2K - 7-bit sp or dp offset */
1.34185 -+ BFD_RELOC_IP2K_FR_OFFSET,
1.34186 -+
1.34187 -+/* Scenix VPE4K coprocessor - data/insn-space addressing */
1.34188 -+ BFD_RELOC_VPE4KMATH_DATA,
1.34189 -+ BFD_RELOC_VPE4KMATH_INSN,
1.34190 -+
1.34191 -+/* These two relocations are used by the linker to determine which of
1.34192 -+the entries in a C++ virtual function table are actually used. When
1.34193 -+the --gc-sections option is given, the linker will zero out the entries
1.34194 -+that are not used, so that the code for those functions need not be
1.34195 -+included in the output.
1.34196 -+
1.34197 -+VTABLE_INHERIT is a zero-space relocation used to describe to the
1.34198 -+linker the inheritance tree of a C++ virtual function table. The
1.34199 -+relocation's symbol should be the parent class' vtable, and the
1.34200 -+relocation should be located at the child vtable.
1.34201 -+
1.34202 -+VTABLE_ENTRY is a zero-space relocation that describes the use of a
1.34203 -+virtual function table entry. The reloc's symbol should refer to the
1.34204 -+table of the class mentioned in the code. Off of that base, an offset
1.34205 -+describes the entry that is being used. For Rela hosts, this offset
1.34206 -+is stored in the reloc's addend. For Rel hosts, we are forced to put
1.34207 -+this offset in the reloc's section offset. */
1.34208 -+ BFD_RELOC_VTABLE_INHERIT,
1.34209 -+ BFD_RELOC_VTABLE_ENTRY,
1.34210 -+
1.34211 -+/* Intel IA64 Relocations. */
1.34212 -+ BFD_RELOC_IA64_IMM14,
1.34213 -+ BFD_RELOC_IA64_IMM22,
1.34214 -+ BFD_RELOC_IA64_IMM64,
1.34215 -+ BFD_RELOC_IA64_DIR32MSB,
1.34216 -+ BFD_RELOC_IA64_DIR32LSB,
1.34217 -+ BFD_RELOC_IA64_DIR64MSB,
1.34218 -+ BFD_RELOC_IA64_DIR64LSB,
1.34219 -+ BFD_RELOC_IA64_GPREL22,
1.34220 -+ BFD_RELOC_IA64_GPREL64I,
1.34221 -+ BFD_RELOC_IA64_GPREL32MSB,
1.34222 -+ BFD_RELOC_IA64_GPREL32LSB,
1.34223 -+ BFD_RELOC_IA64_GPREL64MSB,
1.34224 -+ BFD_RELOC_IA64_GPREL64LSB,
1.34225 -+ BFD_RELOC_IA64_LTOFF22,
1.34226 -+ BFD_RELOC_IA64_LTOFF64I,
1.34227 -+ BFD_RELOC_IA64_PLTOFF22,
1.34228 -+ BFD_RELOC_IA64_PLTOFF64I,
1.34229 -+ BFD_RELOC_IA64_PLTOFF64MSB,
1.34230 -+ BFD_RELOC_IA64_PLTOFF64LSB,
1.34231 -+ BFD_RELOC_IA64_FPTR64I,
1.34232 -+ BFD_RELOC_IA64_FPTR32MSB,
1.34233 -+ BFD_RELOC_IA64_FPTR32LSB,
1.34234 -+ BFD_RELOC_IA64_FPTR64MSB,
1.34235 -+ BFD_RELOC_IA64_FPTR64LSB,
1.34236 -+ BFD_RELOC_IA64_PCREL21B,
1.34237 -+ BFD_RELOC_IA64_PCREL21BI,
1.34238 -+ BFD_RELOC_IA64_PCREL21M,
1.34239 -+ BFD_RELOC_IA64_PCREL21F,
1.34240 -+ BFD_RELOC_IA64_PCREL22,
1.34241 -+ BFD_RELOC_IA64_PCREL60B,
1.34242 -+ BFD_RELOC_IA64_PCREL64I,
1.34243 -+ BFD_RELOC_IA64_PCREL32MSB,
1.34244 -+ BFD_RELOC_IA64_PCREL32LSB,
1.34245 -+ BFD_RELOC_IA64_PCREL64MSB,
1.34246 -+ BFD_RELOC_IA64_PCREL64LSB,
1.34247 -+ BFD_RELOC_IA64_LTOFF_FPTR22,
1.34248 -+ BFD_RELOC_IA64_LTOFF_FPTR64I,
1.34249 -+ BFD_RELOC_IA64_LTOFF_FPTR32MSB,
1.34250 -+ BFD_RELOC_IA64_LTOFF_FPTR32LSB,
1.34251 -+ BFD_RELOC_IA64_LTOFF_FPTR64MSB,
1.34252 -+ BFD_RELOC_IA64_LTOFF_FPTR64LSB,
1.34253 -+ BFD_RELOC_IA64_SEGREL32MSB,
1.34254 -+ BFD_RELOC_IA64_SEGREL32LSB,
1.34255 -+ BFD_RELOC_IA64_SEGREL64MSB,
1.34256 -+ BFD_RELOC_IA64_SEGREL64LSB,
1.34257 -+ BFD_RELOC_IA64_SECREL32MSB,
1.34258 -+ BFD_RELOC_IA64_SECREL32LSB,
1.34259 -+ BFD_RELOC_IA64_SECREL64MSB,
1.34260 -+ BFD_RELOC_IA64_SECREL64LSB,
1.34261 -+ BFD_RELOC_IA64_REL32MSB,
1.34262 -+ BFD_RELOC_IA64_REL32LSB,
1.34263 -+ BFD_RELOC_IA64_REL64MSB,
1.34264 -+ BFD_RELOC_IA64_REL64LSB,
1.34265 -+ BFD_RELOC_IA64_LTV32MSB,
1.34266 -+ BFD_RELOC_IA64_LTV32LSB,
1.34267 -+ BFD_RELOC_IA64_LTV64MSB,
1.34268 -+ BFD_RELOC_IA64_LTV64LSB,
1.34269 -+ BFD_RELOC_IA64_IPLTMSB,
1.34270 -+ BFD_RELOC_IA64_IPLTLSB,
1.34271 -+ BFD_RELOC_IA64_COPY,
1.34272 -+ BFD_RELOC_IA64_LTOFF22X,
1.34273 -+ BFD_RELOC_IA64_LDXMOV,
1.34274 -+ BFD_RELOC_IA64_TPREL14,
1.34275 -+ BFD_RELOC_IA64_TPREL22,
1.34276 -+ BFD_RELOC_IA64_TPREL64I,
1.34277 -+ BFD_RELOC_IA64_TPREL64MSB,
1.34278 -+ BFD_RELOC_IA64_TPREL64LSB,
1.34279 -+ BFD_RELOC_IA64_LTOFF_TPREL22,
1.34280 -+ BFD_RELOC_IA64_DTPMOD64MSB,
1.34281 -+ BFD_RELOC_IA64_DTPMOD64LSB,
1.34282 -+ BFD_RELOC_IA64_LTOFF_DTPMOD22,
1.34283 -+ BFD_RELOC_IA64_DTPREL14,
1.34284 -+ BFD_RELOC_IA64_DTPREL22,
1.34285 -+ BFD_RELOC_IA64_DTPREL64I,
1.34286 -+ BFD_RELOC_IA64_DTPREL32MSB,
1.34287 -+ BFD_RELOC_IA64_DTPREL32LSB,
1.34288 -+ BFD_RELOC_IA64_DTPREL64MSB,
1.34289 -+ BFD_RELOC_IA64_DTPREL64LSB,
1.34290 -+ BFD_RELOC_IA64_LTOFF_DTPREL22,
1.34291 -+
1.34292 -+/* Motorola 68HC11 reloc.
1.34293 -+This is the 8 bit high part of an absolute address. */
1.34294 -+ BFD_RELOC_M68HC11_HI8,
1.34295 -+
1.34296 -+/* Motorola 68HC11 reloc.
1.34297 -+This is the 8 bit low part of an absolute address. */
1.34298 -+ BFD_RELOC_M68HC11_LO8,
1.34299 -+
1.34300 -+/* Motorola 68HC11 reloc.
1.34301 -+This is the 3 bit of a value. */
1.34302 -+ BFD_RELOC_M68HC11_3B,
1.34303 -+
1.34304 -+/* Motorola 68HC11 reloc.
1.34305 -+This reloc marks the beginning of a jump/call instruction.
1.34306 -+It is used for linker relaxation to correctly identify beginning
1.34307 -+of instruction and change some branches to use PC-relative
1.34308 -+addressing mode. */
1.34309 -+ BFD_RELOC_M68HC11_RL_JUMP,
1.34310 -+
1.34311 -+/* Motorola 68HC11 reloc.
1.34312 -+This reloc marks a group of several instructions that gcc generates
1.34313 -+and for which the linker relaxation pass can modify and/or remove
1.34314 -+some of them. */
1.34315 -+ BFD_RELOC_M68HC11_RL_GROUP,
1.34316 -+
1.34317 -+/* Motorola 68HC11 reloc.
1.34318 -+This is the 16-bit lower part of an address. It is used for 'call'
1.34319 -+instruction to specify the symbol address without any special
1.34320 -+transformation (due to memory bank window). */
1.34321 -+ BFD_RELOC_M68HC11_LO16,
1.34322 -+
1.34323 -+/* Motorola 68HC11 reloc.
1.34324 -+This is a 8-bit reloc that specifies the page number of an address.
1.34325 -+It is used by 'call' instruction to specify the page number of
1.34326 -+the symbol. */
1.34327 -+ BFD_RELOC_M68HC11_PAGE,
1.34328 -+
1.34329 -+/* Motorola 68HC11 reloc.
1.34330 -+This is a 24-bit reloc that represents the address with a 16-bit
1.34331 -+value and a 8-bit page number. The symbol address is transformed
1.34332 -+to follow the 16K memory bank of 68HC12 (seen as mapped in the window). */
1.34333 -+ BFD_RELOC_M68HC11_24,
1.34334 -+
1.34335 -+/* Motorola 68HC12 reloc.
1.34336 -+This is the 5 bits of a value. */
1.34337 -+ BFD_RELOC_M68HC12_5B,
1.34338 -+
1.34339 -+/* NS CR16C Relocations. */
1.34340 -+ BFD_RELOC_16C_NUM08,
1.34341 -+ BFD_RELOC_16C_NUM08_C,
1.34342 -+ BFD_RELOC_16C_NUM16,
1.34343 -+ BFD_RELOC_16C_NUM16_C,
1.34344 -+ BFD_RELOC_16C_NUM32,
1.34345 -+ BFD_RELOC_16C_NUM32_C,
1.34346 -+ BFD_RELOC_16C_DISP04,
1.34347 -+ BFD_RELOC_16C_DISP04_C,
1.34348 -+ BFD_RELOC_16C_DISP08,
1.34349 -+ BFD_RELOC_16C_DISP08_C,
1.34350 -+ BFD_RELOC_16C_DISP16,
1.34351 -+ BFD_RELOC_16C_DISP16_C,
1.34352 -+ BFD_RELOC_16C_DISP24,
1.34353 -+ BFD_RELOC_16C_DISP24_C,
1.34354 -+ BFD_RELOC_16C_DISP24a,
1.34355 -+ BFD_RELOC_16C_DISP24a_C,
1.34356 -+ BFD_RELOC_16C_REG04,
1.34357 -+ BFD_RELOC_16C_REG04_C,
1.34358 -+ BFD_RELOC_16C_REG04a,
1.34359 -+ BFD_RELOC_16C_REG04a_C,
1.34360 -+ BFD_RELOC_16C_REG14,
1.34361 -+ BFD_RELOC_16C_REG14_C,
1.34362 -+ BFD_RELOC_16C_REG16,
1.34363 -+ BFD_RELOC_16C_REG16_C,
1.34364 -+ BFD_RELOC_16C_REG20,
1.34365 -+ BFD_RELOC_16C_REG20_C,
1.34366 -+ BFD_RELOC_16C_ABS20,
1.34367 -+ BFD_RELOC_16C_ABS20_C,
1.34368 -+ BFD_RELOC_16C_ABS24,
1.34369 -+ BFD_RELOC_16C_ABS24_C,
1.34370 -+ BFD_RELOC_16C_IMM04,
1.34371 -+ BFD_RELOC_16C_IMM04_C,
1.34372 -+ BFD_RELOC_16C_IMM16,
1.34373 -+ BFD_RELOC_16C_IMM16_C,
1.34374 -+ BFD_RELOC_16C_IMM20,
1.34375 -+ BFD_RELOC_16C_IMM20_C,
1.34376 -+ BFD_RELOC_16C_IMM24,
1.34377 -+ BFD_RELOC_16C_IMM24_C,
1.34378 -+ BFD_RELOC_16C_IMM32,
1.34379 -+ BFD_RELOC_16C_IMM32_C,
1.34380 -+
1.34381 -+/* NS CR16 Relocations. */
1.34382 -+ BFD_RELOC_CR16_NUM8,
1.34383 -+ BFD_RELOC_CR16_NUM16,
1.34384 -+ BFD_RELOC_CR16_NUM32,
1.34385 -+ BFD_RELOC_CR16_NUM32a,
1.34386 -+ BFD_RELOC_CR16_REGREL0,
1.34387 -+ BFD_RELOC_CR16_REGREL4,
1.34388 -+ BFD_RELOC_CR16_REGREL4a,
1.34389 -+ BFD_RELOC_CR16_REGREL14,
1.34390 -+ BFD_RELOC_CR16_REGREL14a,
1.34391 -+ BFD_RELOC_CR16_REGREL16,
1.34392 -+ BFD_RELOC_CR16_REGREL20,
1.34393 -+ BFD_RELOC_CR16_REGREL20a,
1.34394 -+ BFD_RELOC_CR16_ABS20,
1.34395 -+ BFD_RELOC_CR16_ABS24,
1.34396 -+ BFD_RELOC_CR16_IMM4,
1.34397 -+ BFD_RELOC_CR16_IMM8,
1.34398 -+ BFD_RELOC_CR16_IMM16,
1.34399 -+ BFD_RELOC_CR16_IMM20,
1.34400 -+ BFD_RELOC_CR16_IMM24,
1.34401 -+ BFD_RELOC_CR16_IMM32,
1.34402 -+ BFD_RELOC_CR16_IMM32a,
1.34403 -+ BFD_RELOC_CR16_DISP4,
1.34404 -+ BFD_RELOC_CR16_DISP8,
1.34405 -+ BFD_RELOC_CR16_DISP16,
1.34406 -+ BFD_RELOC_CR16_DISP20,
1.34407 -+ BFD_RELOC_CR16_DISP24,
1.34408 -+ BFD_RELOC_CR16_DISP24a,
1.34409 -+
1.34410 -+/* NS CRX Relocations. */
1.34411 -+ BFD_RELOC_CRX_REL4,
1.34412 -+ BFD_RELOC_CRX_REL8,
1.34413 -+ BFD_RELOC_CRX_REL8_CMP,
1.34414 -+ BFD_RELOC_CRX_REL16,
1.34415 -+ BFD_RELOC_CRX_REL24,
1.34416 -+ BFD_RELOC_CRX_REL32,
1.34417 -+ BFD_RELOC_CRX_REGREL12,
1.34418 -+ BFD_RELOC_CRX_REGREL22,
1.34419 -+ BFD_RELOC_CRX_REGREL28,
1.34420 -+ BFD_RELOC_CRX_REGREL32,
1.34421 -+ BFD_RELOC_CRX_ABS16,
1.34422 -+ BFD_RELOC_CRX_ABS32,
1.34423 -+ BFD_RELOC_CRX_NUM8,
1.34424 -+ BFD_RELOC_CRX_NUM16,
1.34425 -+ BFD_RELOC_CRX_NUM32,
1.34426 -+ BFD_RELOC_CRX_IMM16,
1.34427 -+ BFD_RELOC_CRX_IMM32,
1.34428 -+ BFD_RELOC_CRX_SWITCH8,
1.34429 -+ BFD_RELOC_CRX_SWITCH16,
1.34430 -+ BFD_RELOC_CRX_SWITCH32,
1.34431 -+
1.34432 -+/* These relocs are only used within the CRIS assembler. They are not
1.34433 -+(at present) written to any object files. */
1.34434 -+ BFD_RELOC_CRIS_BDISP8,
1.34435 -+ BFD_RELOC_CRIS_UNSIGNED_5,
1.34436 -+ BFD_RELOC_CRIS_SIGNED_6,
1.34437 -+ BFD_RELOC_CRIS_UNSIGNED_6,
1.34438 -+ BFD_RELOC_CRIS_SIGNED_8,
1.34439 -+ BFD_RELOC_CRIS_UNSIGNED_8,
1.34440 -+ BFD_RELOC_CRIS_SIGNED_16,
1.34441 -+ BFD_RELOC_CRIS_UNSIGNED_16,
1.34442 -+ BFD_RELOC_CRIS_LAPCQ_OFFSET,
1.34443 -+ BFD_RELOC_CRIS_UNSIGNED_4,
1.34444 -+
1.34445 -+/* Relocs used in ELF shared libraries for CRIS. */
1.34446 -+ BFD_RELOC_CRIS_COPY,
1.34447 -+ BFD_RELOC_CRIS_GLOB_DAT,
1.34448 -+ BFD_RELOC_CRIS_JUMP_SLOT,
1.34449 -+ BFD_RELOC_CRIS_RELATIVE,
1.34450 -+
1.34451 -+/* 32-bit offset to symbol-entry within GOT. */
1.34452 -+ BFD_RELOC_CRIS_32_GOT,
1.34453 -+
1.34454 -+/* 16-bit offset to symbol-entry within GOT. */
1.34455 -+ BFD_RELOC_CRIS_16_GOT,
1.34456 -+
1.34457 -+/* 32-bit offset to symbol-entry within GOT, with PLT handling. */
1.34458 -+ BFD_RELOC_CRIS_32_GOTPLT,
1.34459 -+
1.34460 -+/* 16-bit offset to symbol-entry within GOT, with PLT handling. */
1.34461 -+ BFD_RELOC_CRIS_16_GOTPLT,
1.34462 -+
1.34463 -+/* 32-bit offset to symbol, relative to GOT. */
1.34464 -+ BFD_RELOC_CRIS_32_GOTREL,
1.34465 -+
1.34466 -+/* 32-bit offset to symbol with PLT entry, relative to GOT. */
1.34467 -+ BFD_RELOC_CRIS_32_PLT_GOTREL,
1.34468 -+
1.34469 -+/* 32-bit offset to symbol with PLT entry, relative to this relocation. */
1.34470 -+ BFD_RELOC_CRIS_32_PLT_PCREL,
1.34471 -+
1.34472 -+/* Intel i860 Relocations. */
1.34473 -+ BFD_RELOC_860_COPY,
1.34474 -+ BFD_RELOC_860_GLOB_DAT,
1.34475 -+ BFD_RELOC_860_JUMP_SLOT,
1.34476 -+ BFD_RELOC_860_RELATIVE,
1.34477 -+ BFD_RELOC_860_PC26,
1.34478 -+ BFD_RELOC_860_PLT26,
1.34479 -+ BFD_RELOC_860_PC16,
1.34480 -+ BFD_RELOC_860_LOW0,
1.34481 -+ BFD_RELOC_860_SPLIT0,
1.34482 -+ BFD_RELOC_860_LOW1,
1.34483 -+ BFD_RELOC_860_SPLIT1,
1.34484 -+ BFD_RELOC_860_LOW2,
1.34485 -+ BFD_RELOC_860_SPLIT2,
1.34486 -+ BFD_RELOC_860_LOW3,
1.34487 -+ BFD_RELOC_860_LOGOT0,
1.34488 -+ BFD_RELOC_860_SPGOT0,
1.34489 -+ BFD_RELOC_860_LOGOT1,
1.34490 -+ BFD_RELOC_860_SPGOT1,
1.34491 -+ BFD_RELOC_860_LOGOTOFF0,
1.34492 -+ BFD_RELOC_860_SPGOTOFF0,
1.34493 -+ BFD_RELOC_860_LOGOTOFF1,
1.34494 -+ BFD_RELOC_860_SPGOTOFF1,
1.34495 -+ BFD_RELOC_860_LOGOTOFF2,
1.34496 -+ BFD_RELOC_860_LOGOTOFF3,
1.34497 -+ BFD_RELOC_860_LOPC,
1.34498 -+ BFD_RELOC_860_HIGHADJ,
1.34499 -+ BFD_RELOC_860_HAGOT,
1.34500 -+ BFD_RELOC_860_HAGOTOFF,
1.34501 -+ BFD_RELOC_860_HAPC,
1.34502 -+ BFD_RELOC_860_HIGH,
1.34503 -+ BFD_RELOC_860_HIGOT,
1.34504 -+ BFD_RELOC_860_HIGOTOFF,
1.34505 -+
1.34506 -+/* OpenRISC Relocations. */
1.34507 -+ BFD_RELOC_OPENRISC_ABS_26,
1.34508 -+ BFD_RELOC_OPENRISC_REL_26,
1.34509 -+
1.34510 -+/* H8 elf Relocations. */
1.34511 -+ BFD_RELOC_H8_DIR16A8,
1.34512 -+ BFD_RELOC_H8_DIR16R8,
1.34513 -+ BFD_RELOC_H8_DIR24A8,
1.34514 -+ BFD_RELOC_H8_DIR24R8,
1.34515 -+ BFD_RELOC_H8_DIR32A16,
1.34516 -+
1.34517 -+/* Sony Xstormy16 Relocations. */
1.34518 -+ BFD_RELOC_XSTORMY16_REL_12,
1.34519 -+ BFD_RELOC_XSTORMY16_12,
1.34520 -+ BFD_RELOC_XSTORMY16_24,
1.34521 -+ BFD_RELOC_XSTORMY16_FPTR16,
1.34522 -+
1.34523 -+/* Self-describing complex relocations. */
1.34524 -+ BFD_RELOC_RELC,
1.34525 -+
1.34526 -+
1.34527 -+/* Infineon Relocations. */
1.34528 -+ BFD_RELOC_XC16X_PAG,
1.34529 -+ BFD_RELOC_XC16X_POF,
1.34530 -+ BFD_RELOC_XC16X_SEG,
1.34531 -+ BFD_RELOC_XC16X_SOF,
1.34532 -+
1.34533 -+/* Relocations used by VAX ELF. */
1.34534 -+ BFD_RELOC_VAX_GLOB_DAT,
1.34535 -+ BFD_RELOC_VAX_JMP_SLOT,
1.34536 -+ BFD_RELOC_VAX_RELATIVE,
1.34537 -+
1.34538 -+/* Morpho MT - 16 bit immediate relocation. */
1.34539 -+ BFD_RELOC_MT_PC16,
1.34540 -+
1.34541 -+/* Morpho MT - Hi 16 bits of an address. */
1.34542 -+ BFD_RELOC_MT_HI16,
1.34543 -+
1.34544 -+/* Morpho MT - Low 16 bits of an address. */
1.34545 -+ BFD_RELOC_MT_LO16,
1.34546 -+
1.34547 -+/* Morpho MT - Used to tell the linker which vtable entries are used. */
1.34548 -+ BFD_RELOC_MT_GNU_VTINHERIT,
1.34549 -+
1.34550 -+/* Morpho MT - Used to tell the linker which vtable entries are used. */
1.34551 -+ BFD_RELOC_MT_GNU_VTENTRY,
1.34552 -+
1.34553 -+/* Morpho MT - 8 bit immediate relocation. */
1.34554 -+ BFD_RELOC_MT_PCINSN8,
1.34555 -+
1.34556 -+/* msp430 specific relocation codes */
1.34557 -+ BFD_RELOC_MSP430_10_PCREL,
1.34558 -+ BFD_RELOC_MSP430_16_PCREL,
1.34559 -+ BFD_RELOC_MSP430_16,
1.34560 -+ BFD_RELOC_MSP430_16_PCREL_BYTE,
1.34561 -+ BFD_RELOC_MSP430_16_BYTE,
1.34562 -+ BFD_RELOC_MSP430_2X_PCREL,
1.34563 -+ BFD_RELOC_MSP430_RL_PCREL,
1.34564 -+
1.34565 -+/* IQ2000 Relocations. */
1.34566 -+ BFD_RELOC_IQ2000_OFFSET_16,
1.34567 -+ BFD_RELOC_IQ2000_OFFSET_21,
1.34568 -+ BFD_RELOC_IQ2000_UHI16,
1.34569 -+
1.34570 -+/* Special Xtensa relocation used only by PLT entries in ELF shared
1.34571 -+objects to indicate that the runtime linker should set the value
1.34572 -+to one of its own internal functions or data structures. */
1.34573 -+ BFD_RELOC_XTENSA_RTLD,
1.34574 -+
1.34575 -+/* Xtensa relocations for ELF shared objects. */
1.34576 -+ BFD_RELOC_XTENSA_GLOB_DAT,
1.34577 -+ BFD_RELOC_XTENSA_JMP_SLOT,
1.34578 -+ BFD_RELOC_XTENSA_RELATIVE,
1.34579 -+
1.34580 -+/* Xtensa relocation used in ELF object files for symbols that may require
1.34581 -+PLT entries. Otherwise, this is just a generic 32-bit relocation. */
1.34582 -+ BFD_RELOC_XTENSA_PLT,
1.34583 -+
1.34584 -+/* Xtensa relocations to mark the difference of two local symbols.
1.34585 -+These are only needed to support linker relaxation and can be ignored
1.34586 -+when not relaxing. The field is set to the value of the difference
1.34587 -+assuming no relaxation. The relocation encodes the position of the
1.34588 -+first symbol so the linker can determine whether to adjust the field
1.34589 -+value. */
1.34590 -+ BFD_RELOC_XTENSA_DIFF8,
1.34591 -+ BFD_RELOC_XTENSA_DIFF16,
1.34592 -+ BFD_RELOC_XTENSA_DIFF32,
1.34593 -+
1.34594 -+/* Generic Xtensa relocations for instruction operands. Only the slot
1.34595 -+number is encoded in the relocation. The relocation applies to the
1.34596 -+last PC-relative immediate operand, or if there are no PC-relative
1.34597 -+immediates, to the last immediate operand. */
1.34598 -+ BFD_RELOC_XTENSA_SLOT0_OP,
1.34599 -+ BFD_RELOC_XTENSA_SLOT1_OP,
1.34600 -+ BFD_RELOC_XTENSA_SLOT2_OP,
1.34601 -+ BFD_RELOC_XTENSA_SLOT3_OP,
1.34602 -+ BFD_RELOC_XTENSA_SLOT4_OP,
1.34603 -+ BFD_RELOC_XTENSA_SLOT5_OP,
1.34604 -+ BFD_RELOC_XTENSA_SLOT6_OP,
1.34605 -+ BFD_RELOC_XTENSA_SLOT7_OP,
1.34606 -+ BFD_RELOC_XTENSA_SLOT8_OP,
1.34607 -+ BFD_RELOC_XTENSA_SLOT9_OP,
1.34608 -+ BFD_RELOC_XTENSA_SLOT10_OP,
1.34609 -+ BFD_RELOC_XTENSA_SLOT11_OP,
1.34610 -+ BFD_RELOC_XTENSA_SLOT12_OP,
1.34611 -+ BFD_RELOC_XTENSA_SLOT13_OP,
1.34612 -+ BFD_RELOC_XTENSA_SLOT14_OP,
1.34613 -+
1.34614 -+/* Alternate Xtensa relocations. Only the slot is encoded in the
1.34615 -+relocation. The meaning of these relocations is opcode-specific. */
1.34616 -+ BFD_RELOC_XTENSA_SLOT0_ALT,
1.34617 -+ BFD_RELOC_XTENSA_SLOT1_ALT,
1.34618 -+ BFD_RELOC_XTENSA_SLOT2_ALT,
1.34619 -+ BFD_RELOC_XTENSA_SLOT3_ALT,
1.34620 -+ BFD_RELOC_XTENSA_SLOT4_ALT,
1.34621 -+ BFD_RELOC_XTENSA_SLOT5_ALT,
1.34622 -+ BFD_RELOC_XTENSA_SLOT6_ALT,
1.34623 -+ BFD_RELOC_XTENSA_SLOT7_ALT,
1.34624 -+ BFD_RELOC_XTENSA_SLOT8_ALT,
1.34625 -+ BFD_RELOC_XTENSA_SLOT9_ALT,
1.34626 -+ BFD_RELOC_XTENSA_SLOT10_ALT,
1.34627 -+ BFD_RELOC_XTENSA_SLOT11_ALT,
1.34628 -+ BFD_RELOC_XTENSA_SLOT12_ALT,
1.34629 -+ BFD_RELOC_XTENSA_SLOT13_ALT,
1.34630 -+ BFD_RELOC_XTENSA_SLOT14_ALT,
1.34631 -+
1.34632 -+/* Xtensa relocations for backward compatibility. These have all been
1.34633 -+replaced by BFD_RELOC_XTENSA_SLOT0_OP. */
1.34634 -+ BFD_RELOC_XTENSA_OP0,
1.34635 -+ BFD_RELOC_XTENSA_OP1,
1.34636 -+ BFD_RELOC_XTENSA_OP2,
1.34637 -+
1.34638 -+/* Xtensa relocation to mark that the assembler expanded the
1.34639 -+instructions from an original target. The expansion size is
1.34640 -+encoded in the reloc size. */
1.34641 -+ BFD_RELOC_XTENSA_ASM_EXPAND,
1.34642 -+
1.34643 -+/* Xtensa relocation to mark that the linker should simplify
1.34644 -+assembler-expanded instructions. This is commonly used
1.34645 -+internally by the linker after analysis of a
1.34646 -+BFD_RELOC_XTENSA_ASM_EXPAND. */
1.34647 -+ BFD_RELOC_XTENSA_ASM_SIMPLIFY,
1.34648 -+
1.34649 -+/* 8 bit signed offset in (ix+d) or (iy+d). */
1.34650 -+ BFD_RELOC_Z80_DISP8,
1.34651 -+
1.34652 -+/* DJNZ offset. */
1.34653 -+ BFD_RELOC_Z8K_DISP7,
1.34654 -+
1.34655 -+/* CALR offset. */
1.34656 -+ BFD_RELOC_Z8K_CALLR,
1.34657 -+
1.34658 -+/* 4 bit value. */
1.34659 -+ BFD_RELOC_Z8K_IMM4L,
1.34660 -+ BFD_RELOC_UNUSED };
1.34661 -+typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
1.34662 -+reloc_howto_type *bfd_reloc_type_lookup
1.34663 -+ (bfd *abfd, bfd_reloc_code_real_type code);
1.34664 -+reloc_howto_type *bfd_reloc_name_lookup
1.34665 -+ (bfd *abfd, const char *reloc_name);
1.34666 -+
1.34667 -+const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
1.34668 -+
1.34669 -+/* Extracted from syms.c. */
1.34670 -+
1.34671 -+typedef struct bfd_symbol
1.34672 -+{
1.34673 -+ /* A pointer to the BFD which owns the symbol. This information
1.34674 -+ is necessary so that a back end can work out what additional
1.34675 -+ information (invisible to the application writer) is carried
1.34676 -+ with the symbol.
1.34677 -+
1.34678 -+ This field is *almost* redundant, since you can use section->owner
1.34679 -+ instead, except that some symbols point to the global sections
1.34680 -+ bfd_{abs,com,und}_section. This could be fixed by making
1.34681 -+ these globals be per-bfd (or per-target-flavor). FIXME. */
1.34682 -+ struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */
1.34683 -+
1.34684 -+ /* The text of the symbol. The name is left alone, and not copied; the
1.34685 -+ application may not alter it. */
1.34686 -+ const char *name;
1.34687 -+
1.34688 -+ /* The value of the symbol. This really should be a union of a
1.34689 -+ numeric value with a pointer, since some flags indicate that
1.34690 -+ a pointer to another symbol is stored here. */
1.34691 -+ symvalue value;
1.34692 -+
1.34693 -+ /* Attributes of a symbol. */
1.34694 -+#define BSF_NO_FLAGS 0x00
1.34695 -+
1.34696 -+ /* The symbol has local scope; <<static>> in <<C>>. The value
1.34697 -+ is the offset into the section of the data. */
1.34698 -+#define BSF_LOCAL 0x01
1.34699 -+
1.34700 -+ /* The symbol has global scope; initialized data in <<C>>. The
1.34701 -+ value is the offset into the section of the data. */
1.34702 -+#define BSF_GLOBAL 0x02
1.34703 -+
1.34704 -+ /* The symbol has global scope and is exported. The value is
1.34705 -+ the offset into the section of the data. */
1.34706 -+#define BSF_EXPORT BSF_GLOBAL /* No real difference. */
1.34707 -+
1.34708 -+ /* A normal C symbol would be one of:
1.34709 -+ <<BSF_LOCAL>>, <<BSF_FORT_COMM>>, <<BSF_UNDEFINED>> or
1.34710 -+ <<BSF_GLOBAL>>. */
1.34711 -+
1.34712 -+ /* The symbol is a debugging record. The value has an arbitrary
1.34713 -+ meaning, unless BSF_DEBUGGING_RELOC is also set. */
1.34714 -+#define BSF_DEBUGGING 0x08
1.34715 -+
1.34716 -+ /* The symbol denotes a function entry point. Used in ELF,
1.34717 -+ perhaps others someday. */
1.34718 -+#define BSF_FUNCTION 0x10
1.34719 -+
1.34720 -+ /* Used by the linker. */
1.34721 -+#define BSF_KEEP 0x20
1.34722 -+#define BSF_KEEP_G 0x40
1.34723 -+
1.34724 -+ /* A weak global symbol, overridable without warnings by
1.34725 -+ a regular global symbol of the same name. */
1.34726 -+#define BSF_WEAK 0x80
1.34727 -+
1.34728 -+ /* This symbol was created to point to a section, e.g. ELF's
1.34729 -+ STT_SECTION symbols. */
1.34730 -+#define BSF_SECTION_SYM 0x100
1.34731 -+
1.34732 -+ /* The symbol used to be a common symbol, but now it is
1.34733 -+ allocated. */
1.34734 -+#define BSF_OLD_COMMON 0x200
1.34735 -+
1.34736 -+ /* The default value for common data. */
1.34737 -+#define BFD_FORT_COMM_DEFAULT_VALUE 0
1.34738 -+
1.34739 -+ /* In some files the type of a symbol sometimes alters its
1.34740 -+ location in an output file - ie in coff a <<ISFCN>> symbol
1.34741 -+ which is also <<C_EXT>> symbol appears where it was
1.34742 -+ declared and not at the end of a section. This bit is set
1.34743 -+ by the target BFD part to convey this information. */
1.34744 -+#define BSF_NOT_AT_END 0x400
1.34745 -+
1.34746 -+ /* Signal that the symbol is the label of constructor section. */
1.34747 -+#define BSF_CONSTRUCTOR 0x800
1.34748 -+
1.34749 -+ /* Signal that the symbol is a warning symbol. The name is a
1.34750 -+ warning. The name of the next symbol is the one to warn about;
1.34751 -+ if a reference is made to a symbol with the same name as the next
1.34752 -+ symbol, a warning is issued by the linker. */
1.34753 -+#define BSF_WARNING 0x1000
1.34754 -+
1.34755 -+ /* Signal that the symbol is indirect. This symbol is an indirect
1.34756 -+ pointer to the symbol with the same name as the next symbol. */
1.34757 -+#define BSF_INDIRECT 0x2000
1.34758 -+
1.34759 -+ /* BSF_FILE marks symbols that contain a file name. This is used
1.34760 -+ for ELF STT_FILE symbols. */
1.34761 -+#define BSF_FILE 0x4000
1.34762 -+
1.34763 -+ /* Symbol is from dynamic linking information. */
1.34764 -+#define BSF_DYNAMIC 0x8000
1.34765 -+
1.34766 -+ /* The symbol denotes a data object. Used in ELF, and perhaps
1.34767 -+ others someday. */
1.34768 -+#define BSF_OBJECT 0x10000
1.34769 -+
1.34770 -+ /* This symbol is a debugging symbol. The value is the offset
1.34771 -+ into the section of the data. BSF_DEBUGGING should be set
1.34772 -+ as well. */
1.34773 -+#define BSF_DEBUGGING_RELOC 0x20000
1.34774 -+
1.34775 -+ /* This symbol is thread local. Used in ELF. */
1.34776 -+#define BSF_THREAD_LOCAL 0x40000
1.34777 -+
1.34778 -+ /* This symbol represents a complex relocation expression,
1.34779 -+ with the expression tree serialized in the symbol name. */
1.34780 -+#define BSF_RELC 0x80000
1.34781 -+
1.34782 -+ /* This symbol represents a signed complex relocation expression,
1.34783 -+ with the expression tree serialized in the symbol name. */
1.34784 -+#define BSF_SRELC 0x100000
1.34785 -+
1.34786 -+ flagword flags;
1.34787 -+
1.34788 -+ /* A pointer to the section to which this symbol is
1.34789 -+ relative. This will always be non NULL, there are special
1.34790 -+ sections for undefined and absolute symbols. */
1.34791 -+ struct bfd_section *section;
1.34792 -+
1.34793 -+ /* Back end special data. */
1.34794 -+ union
1.34795 -+ {
1.34796 -+ void *p;
1.34797 -+ bfd_vma i;
1.34798 -+ }
1.34799 -+ udata;
1.34800 -+}
1.34801 -+asymbol;
1.34802 -+
1.34803 -+#define bfd_get_symtab_upper_bound(abfd) \
1.34804 -+ BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
1.34805 -+
1.34806 -+bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
1.34807 -+
1.34808 -+bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
1.34809 -+
1.34810 -+#define bfd_is_local_label_name(abfd, name) \
1.34811 -+ BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
1.34812 -+
1.34813 -+bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
1.34814 -+
1.34815 -+#define bfd_is_target_special_symbol(abfd, sym) \
1.34816 -+ BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
1.34817 -+
1.34818 -+#define bfd_canonicalize_symtab(abfd, location) \
1.34819 -+ BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
1.34820 -+
1.34821 -+bfd_boolean bfd_set_symtab
1.34822 -+ (bfd *abfd, asymbol **location, unsigned int count);
1.34823 -+
1.34824 -+void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
1.34825 -+
1.34826 -+#define bfd_make_empty_symbol(abfd) \
1.34827 -+ BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
1.34828 -+
1.34829 -+asymbol *_bfd_generic_make_empty_symbol (bfd *);
1.34830 -+
1.34831 -+#define bfd_make_debug_symbol(abfd,ptr,size) \
1.34832 -+ BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
1.34833 -+
1.34834 -+int bfd_decode_symclass (asymbol *symbol);
1.34835 -+
1.34836 -+bfd_boolean bfd_is_undefined_symclass (int symclass);
1.34837 -+
1.34838 -+void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
1.34839 -+
1.34840 -+bfd_boolean bfd_copy_private_symbol_data
1.34841 -+ (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
1.34842 -+
1.34843 -+#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
1.34844 -+ BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
1.34845 -+ (ibfd, isymbol, obfd, osymbol))
1.34846 -+
1.34847 -+/* Extracted from bfd.c. */
1.34848 -+struct bfd
1.34849 -+{
1.34850 -+ /* A unique identifier of the BFD */
1.34851 -+ unsigned int id;
1.34852 -+
1.34853 -+ /* The filename the application opened the BFD with. */
1.34854 -+ const char *filename;
1.34855 -+
1.34856 -+ /* A pointer to the target jump table. */
1.34857 -+ const struct bfd_target *xvec;
1.34858 -+
1.34859 -+ /* The IOSTREAM, and corresponding IO vector that provide access
1.34860 -+ to the file backing the BFD. */
1.34861 -+ void *iostream;
1.34862 -+ const struct bfd_iovec *iovec;
1.34863 -+
1.34864 -+ /* Is the file descriptor being cached? That is, can it be closed as
1.34865 -+ needed, and re-opened when accessed later? */
1.34866 -+ bfd_boolean cacheable;
1.34867 -+
1.34868 -+ /* Marks whether there was a default target specified when the
1.34869 -+ BFD was opened. This is used to select which matching algorithm
1.34870 -+ to use to choose the back end. */
1.34871 -+ bfd_boolean target_defaulted;
1.34872 -+
1.34873 -+ /* The caching routines use these to maintain a
1.34874 -+ least-recently-used list of BFDs. */
1.34875 -+ struct bfd *lru_prev, *lru_next;
1.34876 -+
1.34877 -+ /* When a file is closed by the caching routines, BFD retains
1.34878 -+ state information on the file here... */
1.34879 -+ ufile_ptr where;
1.34880 -+
1.34881 -+ /* ... and here: (``once'' means at least once). */
1.34882 -+ bfd_boolean opened_once;
1.34883 -+
1.34884 -+ /* Set if we have a locally maintained mtime value, rather than
1.34885 -+ getting it from the file each time. */
1.34886 -+ bfd_boolean mtime_set;
1.34887 -+
1.34888 -+ /* File modified time, if mtime_set is TRUE. */
1.34889 -+ long mtime;
1.34890 -+
1.34891 -+ /* Reserved for an unimplemented file locking extension. */
1.34892 -+ int ifd;
1.34893 -+
1.34894 -+ /* The format which belongs to the BFD. (object, core, etc.) */
1.34895 -+ bfd_format format;
1.34896 -+
1.34897 -+ /* The direction with which the BFD was opened. */
1.34898 -+ enum bfd_direction
1.34899 -+ {
1.34900 -+ no_direction = 0,
1.34901 -+ read_direction = 1,
1.34902 -+ write_direction = 2,
1.34903 -+ both_direction = 3
1.34904 -+ }
1.34905 -+ direction;
1.34906 -+
1.34907 -+ /* Format_specific flags. */
1.34908 -+ flagword flags;
1.34909 -+
1.34910 -+ /* Currently my_archive is tested before adding origin to
1.34911 -+ anything. I believe that this can become always an add of
1.34912 -+ origin, with origin set to 0 for non archive files. */
1.34913 -+ ufile_ptr origin;
1.34914 -+
1.34915 -+ /* Remember when output has begun, to stop strange things
1.34916 -+ from happening. */
1.34917 -+ bfd_boolean output_has_begun;
1.34918 -+
1.34919 -+ /* A hash table for section names. */
1.34920 -+ struct bfd_hash_table section_htab;
1.34921 -+
1.34922 -+ /* Pointer to linked list of sections. */
1.34923 -+ struct bfd_section *sections;
1.34924 -+
1.34925 -+ /* The last section on the section list. */
1.34926 -+ struct bfd_section *section_last;
1.34927 -+
1.34928 -+ /* The number of sections. */
1.34929 -+ unsigned int section_count;
1.34930 -+
1.34931 -+ /* Stuff only useful for object files:
1.34932 -+ The start address. */
1.34933 -+ bfd_vma start_address;
1.34934 -+
1.34935 -+ /* Used for input and output. */
1.34936 -+ unsigned int symcount;
1.34937 -+
1.34938 -+ /* Symbol table for output BFD (with symcount entries). */
1.34939 -+ struct bfd_symbol **outsymbols;
1.34940 -+
1.34941 -+ /* Used for slurped dynamic symbol tables. */
1.34942 -+ unsigned int dynsymcount;
1.34943 -+
1.34944 -+ /* Pointer to structure which contains architecture information. */
1.34945 -+ const struct bfd_arch_info *arch_info;
1.34946 -+
1.34947 -+ /* Flag set if symbols from this BFD should not be exported. */
1.34948 -+ bfd_boolean no_export;
1.34949 -+
1.34950 -+ /* Stuff only useful for archives. */
1.34951 -+ void *arelt_data;
1.34952 -+ struct bfd *my_archive; /* The containing archive BFD. */
1.34953 -+ struct bfd *archive_next; /* The next BFD in the archive. */
1.34954 -+ struct bfd *archive_head; /* The first BFD in the archive. */
1.34955 -+ bfd_boolean has_armap;
1.34956 -+
1.34957 -+ /* A chain of BFD structures involved in a link. */
1.34958 -+ struct bfd *link_next;
1.34959 -+
1.34960 -+ /* A field used by _bfd_generic_link_add_archive_symbols. This will
1.34961 -+ be used only for archive elements. */
1.34962 -+ int archive_pass;
1.34963 -+
1.34964 -+ /* Used by the back end to hold private data. */
1.34965 -+ union
1.34966 -+ {
1.34967 -+ struct aout_data_struct *aout_data;
1.34968 -+ struct artdata *aout_ar_data;
1.34969 -+ struct _oasys_data *oasys_obj_data;
1.34970 -+ struct _oasys_ar_data *oasys_ar_data;
1.34971 -+ struct coff_tdata *coff_obj_data;
1.34972 -+ struct pe_tdata *pe_obj_data;
1.34973 -+ struct xcoff_tdata *xcoff_obj_data;
1.34974 -+ struct ecoff_tdata *ecoff_obj_data;
1.34975 -+ struct ieee_data_struct *ieee_data;
1.34976 -+ struct ieee_ar_data_struct *ieee_ar_data;
1.34977 -+ struct srec_data_struct *srec_data;
1.34978 -+ struct ihex_data_struct *ihex_data;
1.34979 -+ struct tekhex_data_struct *tekhex_data;
1.34980 -+ struct elf_obj_tdata *elf_obj_data;
1.34981 -+ struct nlm_obj_tdata *nlm_obj_data;
1.34982 -+ struct bout_data_struct *bout_data;
1.34983 -+ struct mmo_data_struct *mmo_data;
1.34984 -+ struct sun_core_struct *sun_core_data;
1.34985 -+ struct sco5_core_struct *sco5_core_data;
1.34986 -+ struct trad_core_struct *trad_core_data;
1.34987 -+ struct som_data_struct *som_data;
1.34988 -+ struct hpux_core_struct *hpux_core_data;
1.34989 -+ struct hppabsd_core_struct *hppabsd_core_data;
1.34990 -+ struct sgi_core_struct *sgi_core_data;
1.34991 -+ struct lynx_core_struct *lynx_core_data;
1.34992 -+ struct osf_core_struct *osf_core_data;
1.34993 -+ struct cisco_core_struct *cisco_core_data;
1.34994 -+ struct versados_data_struct *versados_data;
1.34995 -+ struct netbsd_core_struct *netbsd_core_data;
1.34996 -+ struct mach_o_data_struct *mach_o_data;
1.34997 -+ struct mach_o_fat_data_struct *mach_o_fat_data;
1.34998 -+ struct bfd_pef_data_struct *pef_data;
1.34999 -+ struct bfd_pef_xlib_data_struct *pef_xlib_data;
1.35000 -+ struct bfd_sym_data_struct *sym_data;
1.35001 -+ void *any;
1.35002 -+ }
1.35003 -+ tdata;
1.35004 -+
1.35005 -+ /* Used by the application to hold private data. */
1.35006 -+ void *usrdata;
1.35007 -+
1.35008 -+ /* Where all the allocated stuff under this BFD goes. This is a
1.35009 -+ struct objalloc *, but we use void * to avoid requiring the inclusion
1.35010 -+ of objalloc.h. */
1.35011 -+ void *memory;
1.35012 -+};
1.35013 -+
1.35014 -+typedef enum bfd_error
1.35015 -+{
1.35016 -+ bfd_error_no_error = 0,
1.35017 -+ bfd_error_system_call,
1.35018 -+ bfd_error_invalid_target,
1.35019 -+ bfd_error_wrong_format,
1.35020 -+ bfd_error_wrong_object_format,
1.35021 -+ bfd_error_invalid_operation,
1.35022 -+ bfd_error_no_memory,
1.35023 -+ bfd_error_no_symbols,
1.35024 -+ bfd_error_no_armap,
1.35025 -+ bfd_error_no_more_archived_files,
1.35026 -+ bfd_error_malformed_archive,
1.35027 -+ bfd_error_file_not_recognized,
1.35028 -+ bfd_error_file_ambiguously_recognized,
1.35029 -+ bfd_error_no_contents,
1.35030 -+ bfd_error_nonrepresentable_section,
1.35031 -+ bfd_error_no_debug_section,
1.35032 -+ bfd_error_bad_value,
1.35033 -+ bfd_error_file_truncated,
1.35034 -+ bfd_error_file_too_big,
1.35035 -+ bfd_error_on_input,
1.35036 -+ bfd_error_invalid_error_code
1.35037 -+}
1.35038 -+bfd_error_type;
1.35039 -+
1.35040 -+bfd_error_type bfd_get_error (void);
1.35041 -+
1.35042 -+void bfd_set_error (bfd_error_type error_tag, ...);
1.35043 -+
1.35044 -+const char *bfd_errmsg (bfd_error_type error_tag);
1.35045 -+
1.35046 -+void bfd_perror (const char *message);
1.35047 -+
1.35048 -+typedef void (*bfd_error_handler_type) (const char *, ...);
1.35049 -+
1.35050 -+bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
1.35051 -+
1.35052 -+void bfd_set_error_program_name (const char *);
1.35053 -+
1.35054 -+bfd_error_handler_type bfd_get_error_handler (void);
1.35055 -+
1.35056 -+long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
1.35057 -+
1.35058 -+long bfd_canonicalize_reloc
1.35059 -+ (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
1.35060 -+
1.35061 -+void bfd_set_reloc
1.35062 -+ (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
1.35063 -+
1.35064 -+bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
1.35065 -+
1.35066 -+int bfd_get_arch_size (bfd *abfd);
1.35067 -+
1.35068 -+int bfd_get_sign_extend_vma (bfd *abfd);
1.35069 -+
1.35070 -+bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
1.35071 -+
1.35072 -+unsigned int bfd_get_gp_size (bfd *abfd);
1.35073 -+
1.35074 -+void bfd_set_gp_size (bfd *abfd, unsigned int i);
1.35075 -+
1.35076 -+bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
1.35077 -+
1.35078 -+bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
1.35079 -+
1.35080 -+#define bfd_copy_private_header_data(ibfd, obfd) \
1.35081 -+ BFD_SEND (obfd, _bfd_copy_private_header_data, \
1.35082 -+ (ibfd, obfd))
1.35083 -+bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
1.35084 -+
1.35085 -+#define bfd_copy_private_bfd_data(ibfd, obfd) \
1.35086 -+ BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
1.35087 -+ (ibfd, obfd))
1.35088 -+bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);
1.35089 -+
1.35090 -+#define bfd_merge_private_bfd_data(ibfd, obfd) \
1.35091 -+ BFD_SEND (obfd, _bfd_merge_private_bfd_data, \
1.35092 -+ (ibfd, obfd))
1.35093 -+bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
1.35094 -+
1.35095 -+#define bfd_set_private_flags(abfd, flags) \
1.35096 -+ BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
1.35097 -+#define bfd_sizeof_headers(abfd, info) \
1.35098 -+ BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info))
1.35099 -+
1.35100 -+#define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
1.35101 -+ BFD_SEND (abfd, _bfd_find_nearest_line, \
1.35102 -+ (abfd, sec, syms, off, file, func, line))
1.35103 -+
1.35104 -+#define bfd_find_line(abfd, syms, sym, file, line) \
1.35105 -+ BFD_SEND (abfd, _bfd_find_line, \
1.35106 -+ (abfd, syms, sym, file, line))
1.35107 -+
1.35108 -+#define bfd_find_inliner_info(abfd, file, func, line) \
1.35109 -+ BFD_SEND (abfd, _bfd_find_inliner_info, \
1.35110 -+ (abfd, file, func, line))
1.35111 -+
1.35112 -+#define bfd_debug_info_start(abfd) \
1.35113 -+ BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
1.35114 -+
1.35115 -+#define bfd_debug_info_end(abfd) \
1.35116 -+ BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
1.35117 -+
1.35118 -+#define bfd_debug_info_accumulate(abfd, section) \
1.35119 -+ BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
1.35120 -+
1.35121 -+#define bfd_stat_arch_elt(abfd, stat) \
1.35122 -+ BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
1.35123 -+
1.35124 -+#define bfd_update_armap_timestamp(abfd) \
1.35125 -+ BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
1.35126 -+
1.35127 -+#define bfd_set_arch_mach(abfd, arch, mach)\
1.35128 -+ BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
1.35129 -+
1.35130 -+#define bfd_relax_section(abfd, section, link_info, again) \
1.35131 -+ BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
1.35132 -+
1.35133 -+#define bfd_gc_sections(abfd, link_info) \
1.35134 -+ BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
1.35135 -+
1.35136 -+#define bfd_merge_sections(abfd, link_info) \
1.35137 -+ BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
1.35138 -+
1.35139 -+#define bfd_is_group_section(abfd, sec) \
1.35140 -+ BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
1.35141 -+
1.35142 -+#define bfd_discard_group(abfd, sec) \
1.35143 -+ BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
1.35144 -+
1.35145 -+#define bfd_link_hash_table_create(abfd) \
1.35146 -+ BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
1.35147 -+
1.35148 -+#define bfd_link_hash_table_free(abfd, hash) \
1.35149 -+ BFD_SEND (abfd, _bfd_link_hash_table_free, (hash))
1.35150 -+
1.35151 -+#define bfd_link_add_symbols(abfd, info) \
1.35152 -+ BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
1.35153 -+
1.35154 -+#define bfd_link_just_syms(abfd, sec, info) \
1.35155 -+ BFD_SEND (abfd, _bfd_link_just_syms, (sec, info))
1.35156 -+
1.35157 -+#define bfd_final_link(abfd, info) \
1.35158 -+ BFD_SEND (abfd, _bfd_final_link, (abfd, info))
1.35159 -+
1.35160 -+#define bfd_free_cached_info(abfd) \
1.35161 -+ BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
1.35162 -+
1.35163 -+#define bfd_get_dynamic_symtab_upper_bound(abfd) \
1.35164 -+ BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))
1.35165 -+
1.35166 -+#define bfd_print_private_bfd_data(abfd, file)\
1.35167 -+ BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file))
1.35168 -+
1.35169 -+#define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \
1.35170 -+ BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols))
1.35171 -+
1.35172 -+#define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \
1.35173 -+ BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \
1.35174 -+ dyncount, dynsyms, ret))
1.35175 -+
1.35176 -+#define bfd_get_dynamic_reloc_upper_bound(abfd) \
1.35177 -+ BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd))
1.35178 -+
1.35179 -+#define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \
1.35180 -+ BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
1.35181 -+
1.35182 -+extern bfd_byte *bfd_get_relocated_section_contents
1.35183 -+ (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
1.35184 -+ bfd_boolean, asymbol **);
1.35185 -+
1.35186 -+bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
1.35187 -+
1.35188 -+struct bfd_preserve
1.35189 -+{
1.35190 -+ void *marker;
1.35191 -+ void *tdata;
1.35192 -+ flagword flags;
1.35193 -+ const struct bfd_arch_info *arch_info;
1.35194 -+ struct bfd_section *sections;
1.35195 -+ struct bfd_section *section_last;
1.35196 -+ unsigned int section_count;
1.35197 -+ struct bfd_hash_table section_htab;
1.35198 -+};
1.35199 -+
1.35200 -+bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *);
1.35201 -+
1.35202 -+void bfd_preserve_restore (bfd *, struct bfd_preserve *);
1.35203 -+
1.35204 -+void bfd_preserve_finish (bfd *, struct bfd_preserve *);
1.35205 -+
1.35206 -+bfd_vma bfd_emul_get_maxpagesize (const char *);
1.35207 -+
1.35208 -+void bfd_emul_set_maxpagesize (const char *, bfd_vma);
1.35209 -+
1.35210 -+bfd_vma bfd_emul_get_commonpagesize (const char *);
1.35211 -+
1.35212 -+void bfd_emul_set_commonpagesize (const char *, bfd_vma);
1.35213 -+
1.35214 -+char *bfd_demangle (bfd *, const char *, int);
1.35215 -+
1.35216 -+/* Extracted from archive.c. */
1.35217 -+symindex bfd_get_next_mapent
1.35218 -+ (bfd *abfd, symindex previous, carsym **sym);
1.35219 -+
1.35220 -+bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
1.35221 -+
1.35222 -+bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
1.35223 -+
1.35224 -+/* Extracted from corefile.c. */
1.35225 -+const char *bfd_core_file_failing_command (bfd *abfd);
1.35226 -+
1.35227 -+int bfd_core_file_failing_signal (bfd *abfd);
1.35228 -+
1.35229 -+bfd_boolean core_file_matches_executable_p
1.35230 -+ (bfd *core_bfd, bfd *exec_bfd);
1.35231 -+
1.35232 -+bfd_boolean generic_core_file_matches_executable_p
1.35233 -+ (bfd *core_bfd, bfd *exec_bfd);
1.35234 -+
1.35235 -+/* Extracted from targets.c. */
1.35236 -+#define BFD_SEND(bfd, message, arglist) \
1.35237 -+ ((*((bfd)->xvec->message)) arglist)
1.35238 -+
1.35239 -+#ifdef DEBUG_BFD_SEND
1.35240 -+#undef BFD_SEND
1.35241 -+#define BFD_SEND(bfd, message, arglist) \
1.35242 -+ (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
1.35243 -+ ((*((bfd)->xvec->message)) arglist) : \
1.35244 -+ (bfd_assert (__FILE__,__LINE__), NULL))
1.35245 -+#endif
1.35246 -+#define BFD_SEND_FMT(bfd, message, arglist) \
1.35247 -+ (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
1.35248 -+
1.35249 -+#ifdef DEBUG_BFD_SEND
1.35250 -+#undef BFD_SEND_FMT
1.35251 -+#define BFD_SEND_FMT(bfd, message, arglist) \
1.35252 -+ (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
1.35253 -+ (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
1.35254 -+ (bfd_assert (__FILE__,__LINE__), NULL))
1.35255 -+#endif
1.35256 -+
1.35257 -+enum bfd_flavour
1.35258 -+{
1.35259 -+ bfd_target_unknown_flavour,
1.35260 -+ bfd_target_aout_flavour,
1.35261 -+ bfd_target_coff_flavour,
1.35262 -+ bfd_target_ecoff_flavour,
1.35263 -+ bfd_target_xcoff_flavour,
1.35264 -+ bfd_target_elf_flavour,
1.35265 -+ bfd_target_ieee_flavour,
1.35266 -+ bfd_target_nlm_flavour,
1.35267 -+ bfd_target_oasys_flavour,
1.35268 -+ bfd_target_tekhex_flavour,
1.35269 -+ bfd_target_srec_flavour,
1.35270 -+ bfd_target_ihex_flavour,
1.35271 -+ bfd_target_som_flavour,
1.35272 -+ bfd_target_os9k_flavour,
1.35273 -+ bfd_target_versados_flavour,
1.35274 -+ bfd_target_msdos_flavour,
1.35275 -+ bfd_target_ovax_flavour,
1.35276 -+ bfd_target_evax_flavour,
1.35277 -+ bfd_target_mmo_flavour,
1.35278 -+ bfd_target_mach_o_flavour,
1.35279 -+ bfd_target_pef_flavour,
1.35280 -+ bfd_target_pef_xlib_flavour,
1.35281 -+ bfd_target_sym_flavour
1.35282 -+};
1.35283 -+
1.35284 -+enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN };
1.35285 -+
1.35286 -+/* Forward declaration. */
1.35287 -+typedef struct bfd_link_info _bfd_link_info;
1.35288 -+
1.35289 -+typedef struct bfd_target
1.35290 -+{
1.35291 -+ /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc. */
1.35292 -+ char *name;
1.35293 -+
1.35294 -+ /* The "flavour" of a back end is a general indication about
1.35295 -+ the contents of a file. */
1.35296 -+ enum bfd_flavour flavour;
1.35297 -+
1.35298 -+ /* The order of bytes within the data area of a file. */
1.35299 -+ enum bfd_endian byteorder;
1.35300 -+
1.35301 -+ /* The order of bytes within the header parts of a file. */
1.35302 -+ enum bfd_endian header_byteorder;
1.35303 -+
1.35304 -+ /* A mask of all the flags which an executable may have set -
1.35305 -+ from the set <<BFD_NO_FLAGS>>, <<HAS_RELOC>>, ...<<D_PAGED>>. */
1.35306 -+ flagword object_flags;
1.35307 -+
1.35308 -+ /* A mask of all the flags which a section may have set - from
1.35309 -+ the set <<SEC_NO_FLAGS>>, <<SEC_ALLOC>>, ...<<SET_NEVER_LOAD>>. */
1.35310 -+ flagword section_flags;
1.35311 -+
1.35312 -+ /* The character normally found at the front of a symbol.
1.35313 -+ (if any), perhaps `_'. */
1.35314 -+ char symbol_leading_char;
1.35315 -+
1.35316 -+ /* The pad character for file names within an archive header. */
1.35317 -+ char ar_pad_char;
1.35318 -+
1.35319 -+ /* The maximum number of characters in an archive header. */
1.35320 -+ unsigned short ar_max_namelen;
1.35321 -+
1.35322 -+ /* Entries for byte swapping for data. These are different from the
1.35323 -+ other entry points, since they don't take a BFD as the first argument.
1.35324 -+ Certain other handlers could do the same. */
1.35325 -+ bfd_uint64_t (*bfd_getx64) (const void *);
1.35326 -+ bfd_int64_t (*bfd_getx_signed_64) (const void *);
1.35327 -+ void (*bfd_putx64) (bfd_uint64_t, void *);
1.35328 -+ bfd_vma (*bfd_getx32) (const void *);
1.35329 -+ bfd_signed_vma (*bfd_getx_signed_32) (const void *);
1.35330 -+ void (*bfd_putx32) (bfd_vma, void *);
1.35331 -+ bfd_vma (*bfd_getx16) (const void *);
1.35332 -+ bfd_signed_vma (*bfd_getx_signed_16) (const void *);
1.35333 -+ void (*bfd_putx16) (bfd_vma, void *);
1.35334 -+
1.35335 -+ /* Byte swapping for the headers. */
1.35336 -+ bfd_uint64_t (*bfd_h_getx64) (const void *);
1.35337 -+ bfd_int64_t (*bfd_h_getx_signed_64) (const void *);
1.35338 -+ void (*bfd_h_putx64) (bfd_uint64_t, void *);
1.35339 -+ bfd_vma (*bfd_h_getx32) (const void *);
1.35340 -+ bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
1.35341 -+ void (*bfd_h_putx32) (bfd_vma, void *);
1.35342 -+ bfd_vma (*bfd_h_getx16) (const void *);
1.35343 -+ bfd_signed_vma (*bfd_h_getx_signed_16) (const void *);
1.35344 -+ void (*bfd_h_putx16) (bfd_vma, void *);
1.35345 -+
1.35346 -+ /* Format dependent routines: these are vectors of entry points
1.35347 -+ within the target vector structure, one for each format to check. */
1.35348 -+
1.35349 -+ /* Check the format of a file being read. Return a <<bfd_target *>> or zero. */
1.35350 -+ const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
1.35351 -+
1.35352 -+ /* Set the format of a file being written. */
1.35353 -+ bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
1.35354 -+
1.35355 -+ /* Write cached information into a file being written, at <<bfd_close>>. */
1.35356 -+ bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
1.35357 -+
1.35358 -+
1.35359 -+ /* Generic entry points. */
1.35360 -+#define BFD_JUMP_TABLE_GENERIC(NAME) \
1.35361 -+ NAME##_close_and_cleanup, \
1.35362 -+ NAME##_bfd_free_cached_info, \
1.35363 -+ NAME##_new_section_hook, \
1.35364 -+ NAME##_get_section_contents, \
1.35365 -+ NAME##_get_section_contents_in_window
1.35366 -+
1.35367 -+ /* Called when the BFD is being closed to do any necessary cleanup. */
1.35368 -+ bfd_boolean (*_close_and_cleanup) (bfd *);
1.35369 -+ /* Ask the BFD to free all cached information. */
1.35370 -+ bfd_boolean (*_bfd_free_cached_info) (bfd *);
1.35371 -+ /* Called when a new section is created. */
1.35372 -+ bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
1.35373 -+ /* Read the contents of a section. */
1.35374 -+ bfd_boolean (*_bfd_get_section_contents)
1.35375 -+ (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
1.35376 -+ bfd_boolean (*_bfd_get_section_contents_in_window)
1.35377 -+ (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
1.35378 -+
1.35379 -+ /* Entry points to copy private data. */
1.35380 -+#define BFD_JUMP_TABLE_COPY(NAME) \
1.35381 -+ NAME##_bfd_copy_private_bfd_data, \
1.35382 -+ NAME##_bfd_merge_private_bfd_data, \
1.35383 -+ _bfd_generic_init_private_section_data, \
1.35384 -+ NAME##_bfd_copy_private_section_data, \
1.35385 -+ NAME##_bfd_copy_private_symbol_data, \
1.35386 -+ NAME##_bfd_copy_private_header_data, \
1.35387 -+ NAME##_bfd_set_private_flags, \
1.35388 -+ NAME##_bfd_print_private_bfd_data
1.35389 -+
1.35390 -+ /* Called to copy BFD general private data from one object file
1.35391 -+ to another. */
1.35392 -+ bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
1.35393 -+ /* Called to merge BFD general private data from one object file
1.35394 -+ to a common output file when linking. */
1.35395 -+ bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *);
1.35396 -+ /* Called to initialize BFD private section data from one object file
1.35397 -+ to another. */
1.35398 -+#define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
1.35399 -+ BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info))
1.35400 -+ bfd_boolean (*_bfd_init_private_section_data)
1.35401 -+ (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *);
1.35402 -+ /* Called to copy BFD private section data from one object file
1.35403 -+ to another. */
1.35404 -+ bfd_boolean (*_bfd_copy_private_section_data)
1.35405 -+ (bfd *, sec_ptr, bfd *, sec_ptr);
1.35406 -+ /* Called to copy BFD private symbol data from one symbol
1.35407 -+ to another. */
1.35408 -+ bfd_boolean (*_bfd_copy_private_symbol_data)
1.35409 -+ (bfd *, asymbol *, bfd *, asymbol *);
1.35410 -+ /* Called to copy BFD private header data from one object file
1.35411 -+ to another. */
1.35412 -+ bfd_boolean (*_bfd_copy_private_header_data)
1.35413 -+ (bfd *, bfd *);
1.35414 -+ /* Called to set private backend flags. */
1.35415 -+ bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
1.35416 -+
1.35417 -+ /* Called to print private BFD data. */
1.35418 -+ bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
1.35419 -+
1.35420 -+ /* Core file entry points. */
1.35421 -+#define BFD_JUMP_TABLE_CORE(NAME) \
1.35422 -+ NAME##_core_file_failing_command, \
1.35423 -+ NAME##_core_file_failing_signal, \
1.35424 -+ NAME##_core_file_matches_executable_p
1.35425 -+
1.35426 -+ char * (*_core_file_failing_command) (bfd *);
1.35427 -+ int (*_core_file_failing_signal) (bfd *);
1.35428 -+ bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
1.35429 -+
1.35430 -+ /* Archive entry points. */
1.35431 -+#define BFD_JUMP_TABLE_ARCHIVE(NAME) \
1.35432 -+ NAME##_slurp_armap, \
1.35433 -+ NAME##_slurp_extended_name_table, \
1.35434 -+ NAME##_construct_extended_name_table, \
1.35435 -+ NAME##_truncate_arname, \
1.35436 -+ NAME##_write_armap, \
1.35437 -+ NAME##_read_ar_hdr, \
1.35438 -+ NAME##_openr_next_archived_file, \
1.35439 -+ NAME##_get_elt_at_index, \
1.35440 -+ NAME##_generic_stat_arch_elt, \
1.35441 -+ NAME##_update_armap_timestamp
1.35442 -+
1.35443 -+ bfd_boolean (*_bfd_slurp_armap) (bfd *);
1.35444 -+ bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
1.35445 -+ bfd_boolean (*_bfd_construct_extended_name_table)
1.35446 -+ (bfd *, char **, bfd_size_type *, const char **);
1.35447 -+ void (*_bfd_truncate_arname) (bfd *, const char *, char *);
1.35448 -+ bfd_boolean (*write_armap)
1.35449 -+ (bfd *, unsigned int, struct orl *, unsigned int, int);
1.35450 -+ void * (*_bfd_read_ar_hdr_fn) (bfd *);
1.35451 -+ bfd * (*openr_next_archived_file) (bfd *, bfd *);
1.35452 -+#define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
1.35453 -+ bfd * (*_bfd_get_elt_at_index) (bfd *, symindex);
1.35454 -+ int (*_bfd_stat_arch_elt) (bfd *, struct stat *);
1.35455 -+ bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
1.35456 -+
1.35457 -+ /* Entry points used for symbols. */
1.35458 -+#define BFD_JUMP_TABLE_SYMBOLS(NAME) \
1.35459 -+ NAME##_get_symtab_upper_bound, \
1.35460 -+ NAME##_canonicalize_symtab, \
1.35461 -+ NAME##_make_empty_symbol, \
1.35462 -+ NAME##_print_symbol, \
1.35463 -+ NAME##_get_symbol_info, \
1.35464 -+ NAME##_bfd_is_local_label_name, \
1.35465 -+ NAME##_bfd_is_target_special_symbol, \
1.35466 -+ NAME##_get_lineno, \
1.35467 -+ NAME##_find_nearest_line, \
1.35468 -+ _bfd_generic_find_line, \
1.35469 -+ NAME##_find_inliner_info, \
1.35470 -+ NAME##_bfd_make_debug_symbol, \
1.35471 -+ NAME##_read_minisymbols, \
1.35472 -+ NAME##_minisymbol_to_symbol
1.35473 -+
1.35474 -+ long (*_bfd_get_symtab_upper_bound) (bfd *);
1.35475 -+ long (*_bfd_canonicalize_symtab)
1.35476 -+ (bfd *, struct bfd_symbol **);
1.35477 -+ struct bfd_symbol *
1.35478 -+ (*_bfd_make_empty_symbol) (bfd *);
1.35479 -+ void (*_bfd_print_symbol)
1.35480 -+ (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
1.35481 -+#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
1.35482 -+ void (*_bfd_get_symbol_info)
1.35483 -+ (bfd *, struct bfd_symbol *, symbol_info *);
1.35484 -+#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
1.35485 -+ bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
1.35486 -+ bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
1.35487 -+ alent * (*_get_lineno) (bfd *, struct bfd_symbol *);
1.35488 -+ bfd_boolean (*_bfd_find_nearest_line)
1.35489 -+ (bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma,
1.35490 -+ const char **, const char **, unsigned int *);
1.35491 -+ bfd_boolean (*_bfd_find_line)
1.35492 -+ (bfd *, struct bfd_symbol **, struct bfd_symbol *,
1.35493 -+ const char **, unsigned int *);
1.35494 -+ bfd_boolean (*_bfd_find_inliner_info)
1.35495 -+ (bfd *, const char **, const char **, unsigned int *);
1.35496 -+ /* Back-door to allow format-aware applications to create debug symbols
1.35497 -+ while using BFD for everything else. Currently used by the assembler
1.35498 -+ when creating COFF files. */
1.35499 -+ asymbol * (*_bfd_make_debug_symbol)
1.35500 -+ (bfd *, void *, unsigned long size);
1.35501 -+#define bfd_read_minisymbols(b, d, m, s) \
1.35502 -+ BFD_SEND (b, _read_minisymbols, (b, d, m, s))
1.35503 -+ long (*_read_minisymbols)
1.35504 -+ (bfd *, bfd_boolean, void **, unsigned int *);
1.35505 -+#define bfd_minisymbol_to_symbol(b, d, m, f) \
1.35506 -+ BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
1.35507 -+ asymbol * (*_minisymbol_to_symbol)
1.35508 -+ (bfd *, bfd_boolean, const void *, asymbol *);
1.35509 -+
1.35510 -+ /* Routines for relocs. */
1.35511 -+#define BFD_JUMP_TABLE_RELOCS(NAME) \
1.35512 -+ NAME##_get_reloc_upper_bound, \
1.35513 -+ NAME##_canonicalize_reloc, \
1.35514 -+ NAME##_bfd_reloc_type_lookup, \
1.35515 -+ NAME##_bfd_reloc_name_lookup
1.35516 -+
1.35517 -+ long (*_get_reloc_upper_bound) (bfd *, sec_ptr);
1.35518 -+ long (*_bfd_canonicalize_reloc)
1.35519 -+ (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
1.35520 -+ /* See documentation on reloc types. */
1.35521 -+ reloc_howto_type *
1.35522 -+ (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
1.35523 -+ reloc_howto_type *
1.35524 -+ (*reloc_name_lookup) (bfd *, const char *);
1.35525 -+
1.35526 -+
1.35527 -+ /* Routines used when writing an object file. */
1.35528 -+#define BFD_JUMP_TABLE_WRITE(NAME) \
1.35529 -+ NAME##_set_arch_mach, \
1.35530 -+ NAME##_set_section_contents
1.35531 -+
1.35532 -+ bfd_boolean (*_bfd_set_arch_mach)
1.35533 -+ (bfd *, enum bfd_architecture, unsigned long);
1.35534 -+ bfd_boolean (*_bfd_set_section_contents)
1.35535 -+ (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
1.35536 -+
1.35537 -+ /* Routines used by the linker. */
1.35538 -+#define BFD_JUMP_TABLE_LINK(NAME) \
1.35539 -+ NAME##_sizeof_headers, \
1.35540 -+ NAME##_bfd_get_relocated_section_contents, \
1.35541 -+ NAME##_bfd_relax_section, \
1.35542 -+ NAME##_bfd_link_hash_table_create, \
1.35543 -+ NAME##_bfd_link_hash_table_free, \
1.35544 -+ NAME##_bfd_link_add_symbols, \
1.35545 -+ NAME##_bfd_link_just_syms, \
1.35546 -+ NAME##_bfd_final_link, \
1.35547 -+ NAME##_bfd_link_split_section, \
1.35548 -+ NAME##_bfd_gc_sections, \
1.35549 -+ NAME##_bfd_merge_sections, \
1.35550 -+ NAME##_bfd_is_group_section, \
1.35551 -+ NAME##_bfd_discard_group, \
1.35552 -+ NAME##_section_already_linked \
1.35553 -+
1.35554 -+ int (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
1.35555 -+ bfd_byte * (*_bfd_get_relocated_section_contents)
1.35556 -+ (bfd *, struct bfd_link_info *, struct bfd_link_order *,
1.35557 -+ bfd_byte *, bfd_boolean, struct bfd_symbol **);
1.35558 -+
1.35559 -+ bfd_boolean (*_bfd_relax_section)
1.35560 -+ (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
1.35561 -+
1.35562 -+ /* Create a hash table for the linker. Different backends store
1.35563 -+ different information in this table. */
1.35564 -+ struct bfd_link_hash_table *
1.35565 -+ (*_bfd_link_hash_table_create) (bfd *);
1.35566 -+
1.35567 -+ /* Release the memory associated with the linker hash table. */
1.35568 -+ void (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *);
1.35569 -+
1.35570 -+ /* Add symbols from this object file into the hash table. */
1.35571 -+ bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
1.35572 -+
1.35573 -+ /* Indicate that we are only retrieving symbol values from this section. */
1.35574 -+ void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
1.35575 -+
1.35576 -+ /* Do a link based on the link_order structures attached to each
1.35577 -+ section of the BFD. */
1.35578 -+ bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
1.35579 -+
1.35580 -+ /* Should this section be split up into smaller pieces during linking. */
1.35581 -+ bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
1.35582 -+
1.35583 -+ /* Remove sections that are not referenced from the output. */
1.35584 -+ bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
1.35585 -+
1.35586 -+ /* Attempt to merge SEC_MERGE sections. */
1.35587 -+ bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
1.35588 -+
1.35589 -+ /* Is this section a member of a group? */
1.35590 -+ bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
1.35591 -+
1.35592 -+ /* Discard members of a group. */
1.35593 -+ bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
1.35594 -+
1.35595 -+ /* Check if SEC has been already linked during a reloceatable or
1.35596 -+ final link. */
1.35597 -+ void (*_section_already_linked) (bfd *, struct bfd_section *,
1.35598 -+ struct bfd_link_info *);
1.35599 -+
1.35600 -+ /* Routines to handle dynamic symbols and relocs. */
1.35601 -+#define BFD_JUMP_TABLE_DYNAMIC(NAME) \
1.35602 -+ NAME##_get_dynamic_symtab_upper_bound, \
1.35603 -+ NAME##_canonicalize_dynamic_symtab, \
1.35604 -+ NAME##_get_synthetic_symtab, \
1.35605 -+ NAME##_get_dynamic_reloc_upper_bound, \
1.35606 -+ NAME##_canonicalize_dynamic_reloc
1.35607 -+
1.35608 -+ /* Get the amount of memory required to hold the dynamic symbols. */
1.35609 -+ long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
1.35610 -+ /* Read in the dynamic symbols. */
1.35611 -+ long (*_bfd_canonicalize_dynamic_symtab)
1.35612 -+ (bfd *, struct bfd_symbol **);
1.35613 -+ /* Create synthetized symbols. */
1.35614 -+ long (*_bfd_get_synthetic_symtab)
1.35615 -+ (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
1.35616 -+ struct bfd_symbol **);
1.35617 -+ /* Get the amount of memory required to hold the dynamic relocs. */
1.35618 -+ long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
1.35619 -+ /* Read in the dynamic relocs. */
1.35620 -+ long (*_bfd_canonicalize_dynamic_reloc)
1.35621 -+ (bfd *, arelent **, struct bfd_symbol **);
1.35622 -+
1.35623 -+ /* Opposite endian version of this target. */
1.35624 -+ const struct bfd_target * alternative_target;
1.35625 -+
1.35626 -+ /* Data for use by back-end routines, which isn't
1.35627 -+ generic enough to belong in this structure. */
1.35628 -+ const void *backend_data;
1.35629 -+
1.35630 -+} bfd_target;
1.35631 -+
1.35632 -+bfd_boolean bfd_set_default_target (const char *name);
1.35633 -+
1.35634 -+const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
1.35635 -+
1.35636 -+const char ** bfd_target_list (void);
1.35637 -+
1.35638 -+const bfd_target *bfd_search_for_target
1.35639 -+ (int (*search_func) (const bfd_target *, void *),
1.35640 -+ void *);
1.35641 -+
1.35642 -+/* Extracted from format.c. */
1.35643 -+bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
1.35644 -+
1.35645 -+bfd_boolean bfd_check_format_matches
1.35646 -+ (bfd *abfd, bfd_format format, char ***matching);
1.35647 -+
1.35648 -+bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
1.35649 -+
1.35650 -+const char *bfd_format_string (bfd_format format);
1.35651 -+
1.35652 -+/* Extracted from linker.c. */
1.35653 -+bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
1.35654 -+
1.35655 -+#define bfd_link_split_section(abfd, sec) \
1.35656 -+ BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
1.35657 -+
1.35658 -+void bfd_section_already_linked (bfd *abfd, asection *sec,
1.35659 -+ struct bfd_link_info *info);
1.35660 -+
1.35661 -+#define bfd_section_already_linked(abfd, sec, info) \
1.35662 -+ BFD_SEND (abfd, _section_already_linked, (abfd, sec, info))
1.35663 -+
1.35664 -+/* Extracted from simple.c. */
1.35665 -+bfd_byte *bfd_simple_get_relocated_section_contents
1.35666 -+ (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
1.35667 -+
1.35668 -+#ifdef __cplusplus
1.35669 -+}
1.35670 -+#endif
1.35671 -+#endif
1.35672 ---- /dev/null
1.35673 -+++ b/bfd/bfd_stdint.h
1.35674 -@@ -0,0 +1,47 @@
1.35675 -+/* generated for gcc (GCC) 4.2.4 (Ubuntu 4.2.4-3ubuntu4) */
1.35676 -+
1.35677 -+#ifndef GCC_GENERATED_STDINT_H
1.35678 -+#define GCC_GENERATED_STDINT_H 1
1.35679 -+
1.35680 -+#include <sys/types.h>
1.35681 -+#include <stdint.h>
1.35682 -+/* glibc uses these symbols as guards to prevent redefinitions. */
1.35683 -+#ifdef __int8_t_defined
1.35684 -+#define _INT8_T
1.35685 -+#define _INT16_T
1.35686 -+#define _INT32_T
1.35687 -+#endif
1.35688 -+#ifdef __uint32_t_defined
1.35689 -+#define _UINT32_T
1.35690 -+#endif
1.35691 -+
1.35692 -+
1.35693 -+/* Some systems have guard macros to prevent redefinitions, define them. */
1.35694 -+#ifndef _INT8_T
1.35695 -+#define _INT8_T
1.35696 -+#endif
1.35697 -+#ifndef _INT16_T
1.35698 -+#define _INT16_T
1.35699 -+#endif
1.35700 -+#ifndef _INT32_T
1.35701 -+#define _INT32_T
1.35702 -+#endif
1.35703 -+#ifndef _UINT8_T
1.35704 -+#define _UINT8_T
1.35705 -+#endif
1.35706 -+#ifndef _UINT16_T
1.35707 -+#define _UINT16_T
1.35708 -+#endif
1.35709 -+#ifndef _UINT32_T
1.35710 -+#define _UINT32_T
1.35711 -+#endif
1.35712 -+
1.35713 -+/* system headers have good uint64_t and int64_t */
1.35714 -+#ifndef _INT64_T
1.35715 -+#define _INT64_T
1.35716 -+#endif
1.35717 -+#ifndef _UINT64_T
1.35718 -+#define _UINT64_T
1.35719 -+#endif
1.35720 -+
1.35721 -+#endif /* GCC_GENERATED_STDINT_H */
1.35722 ---- a/bfd/configure
1.35723 -+++ b/bfd/configure
1.35724 -@@ -2994,7 +2994,7 @@ fi
1.35725 -
1.35726 - # Define the identity of the package.
1.35727 - PACKAGE=bfd
1.35728 -- VERSION=2.18
1.35729 -+ VERSION=2.18.atmel.1.0.1.avr32linux.1
1.35730 -
1.35731 -
1.35732 - cat >>confdefs.h <<_ACEOF
1.35733 -@@ -19041,6 +19041,7 @@ do
1.35734 - bfd_efi_app_ia64_vec) tb="$tb efi-app-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
1.35735 - bfd_elf32_am33lin_vec) tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
1.35736 - bfd_elf32_avr_vec) tb="$tb elf32-avr.lo elf32.lo $elf" ;;
1.35737 -+ bfd_elf32_avr32_vec) tb="$tb elf32-avr32.lo elf32.lo $elf" ;;
1.35738 - bfd_elf32_bfin_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
1.35739 - bfd_elf32_bfinfdpic_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
1.35740 - bfd_elf32_big_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
1.35741 ---- /dev/null
1.35742 -+++ b/bfd/doc/bfd.h
1.35743 -@@ -0,0 +1,5493 @@
1.35744 -+/* DO NOT EDIT! -*- buffer-read-only: t -*- This file is automatically
1.35745 -+ generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c",
1.35746 -+ "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c",
1.35747 -+ "syms.c", "bfd.c", "archive.c", "corefile.c", "targets.c", "format.c",
1.35748 -+ "linker.c" and "simple.c".
1.35749 -+ Run "make headers" in your build bfd/ to regenerate. */
1.35750 -+
1.35751 -+/* Main header file for the bfd library -- portable access to object files.
1.35752 -+
1.35753 -+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1.35754 -+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
1.35755 -+ Free Software Foundation, Inc.
1.35756 -+
1.35757 -+ Contributed by Cygnus Support.
1.35758 -+
1.35759 -+ This file is part of BFD, the Binary File Descriptor library.
1.35760 -+
1.35761 -+ This program is free software; you can redistribute it and/or modify
1.35762 -+ it under the terms of the GNU General Public License as published by
1.35763 -+ the Free Software Foundation; either version 3 of the License, or
1.35764 -+ (at your option) any later version.
1.35765 -+
1.35766 -+ This program is distributed in the hope that it will be useful,
1.35767 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1.35768 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1.35769 -+ GNU General Public License for more details.
1.35770 -+
1.35771 -+ You should have received a copy of the GNU General Public License
1.35772 -+ along with this program; if not, write to the Free Software
1.35773 -+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
1.35774 -+
1.35775 -+#ifndef __BFD_H_SEEN__
1.35776 -+#define __BFD_H_SEEN__
1.35777 -+
1.35778 -+#ifdef __cplusplus
1.35779 -+extern "C" {
1.35780 -+#endif
1.35781 -+
1.35782 -+#include "ansidecl.h"
1.35783 -+#include "symcat.h"
1.35784 -+#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
1.35785 -+#ifndef SABER
1.35786 -+/* This hack is to avoid a problem with some strict ANSI C preprocessors.
1.35787 -+ The problem is, "32_" is not a valid preprocessing token, and we don't
1.35788 -+ want extra underscores (e.g., "nlm_32_"). The XCONCAT2 macro will
1.35789 -+ cause the inner CONCAT2 macros to be evaluated first, producing
1.35790 -+ still-valid pp-tokens. Then the final concatenation can be done. */
1.35791 -+#undef CONCAT4
1.35792 -+#define CONCAT4(a,b,c,d) XCONCAT2(CONCAT2(a,b),CONCAT2(c,d))
1.35793 -+#endif
1.35794 -+#endif
1.35795 -+
1.35796 -+/* This is a utility macro to handle the situation where the code
1.35797 -+ wants to place a constant string into the code, followed by a
1.35798 -+ comma and then the length of the string. Doing this by hand
1.35799 -+ is error prone, so using this macro is safer. The macro will
1.35800 -+ also safely handle the case where a NULL is passed as the arg. */
1.35801 -+#define STRING_COMMA_LEN(STR) (STR), ((STR) ? sizeof (STR) - 1 : 0)
1.35802 -+/* Unfortunately it is not possible to use the STRING_COMMA_LEN macro
1.35803 -+ to create the arguments to another macro, since the preprocessor
1.35804 -+ will mis-count the number of arguments to the outer macro (by not
1.35805 -+ evaluating STRING_COMMA_LEN and so missing the comma). This is a
1.35806 -+ problem for example when trying to use STRING_COMMA_LEN to build
1.35807 -+ the arguments to the strncmp() macro. Hence this alternative
1.35808 -+ definition of strncmp is provided here.
1.35809 -+
1.35810 -+ Note - these macros do NOT work if STR2 is not a constant string. */
1.35811 -+#define CONST_STRNEQ(STR1,STR2) (strncmp ((STR1), (STR2), sizeof (STR2) - 1) == 0)
1.35812 -+ /* strcpy() can have a similar problem, but since we know we are
1.35813 -+ copying a constant string, we can use memcpy which will be faster
1.35814 -+ since there is no need to check for a NUL byte inside STR. We
1.35815 -+ can also save time if we do not need to copy the terminating NUL. */
1.35816 -+#define LITMEMCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2) - 1)
1.35817 -+#define LITSTRCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2))
1.35818 -+
1.35819 -+
1.35820 -+/* The word size used by BFD on the host. This may be 64 with a 32
1.35821 -+ bit target if the host is 64 bit, or if other 64 bit targets have
1.35822 -+ been selected with --enable-targets, or if --enable-64-bit-bfd. */
1.35823 -+#define BFD_ARCH_SIZE @wordsize@
1.35824 -+
1.35825 -+/* The word size of the default bfd target. */
1.35826 -+#define BFD_DEFAULT_TARGET_SIZE @bfd_default_target_size@
1.35827 -+
1.35828 -+#define BFD_HOST_64BIT_LONG @BFD_HOST_64BIT_LONG@
1.35829 -+#define BFD_HOST_64BIT_LONG_LONG @BFD_HOST_64BIT_LONG_LONG@
1.35830 -+#define BFD_HOST_LONG_LONG @BFD_HOST_LONG_LONG@
1.35831 -+#if @BFD_HOST_64_BIT_DEFINED@
1.35832 -+#define BFD_HOST_64_BIT @BFD_HOST_64_BIT@
1.35833 -+#define BFD_HOST_U_64_BIT @BFD_HOST_U_64_BIT@
1.35834 -+typedef BFD_HOST_64_BIT bfd_int64_t;
1.35835 -+typedef BFD_HOST_U_64_BIT bfd_uint64_t;
1.35836 -+#endif
1.35837 -+
1.35838 -+#if BFD_ARCH_SIZE >= 64
1.35839 -+#define BFD64
1.35840 -+#endif
1.35841 -+
1.35842 -+#ifndef INLINE
1.35843 -+#if __GNUC__ >= 2
1.35844 -+#define INLINE __inline__
1.35845 -+#else
1.35846 -+#define INLINE
1.35847 -+#endif
1.35848 -+#endif
1.35849 -+
1.35850 -+/* Declaring a type wide enough to hold a host long and a host pointer. */
1.35851 -+#define BFD_HOSTPTR_T @BFD_HOSTPTR_T@
1.35852 -+typedef BFD_HOSTPTR_T bfd_hostptr_t;
1.35853 -+
1.35854 -+/* Forward declaration. */
1.35855 -+typedef struct bfd bfd;
1.35856 -+
1.35857 -+/* Boolean type used in bfd. Too many systems define their own
1.35858 -+ versions of "boolean" for us to safely typedef a "boolean" of
1.35859 -+ our own. Using an enum for "bfd_boolean" has its own set of
1.35860 -+ problems, with strange looking casts required to avoid warnings
1.35861 -+ on some older compilers. Thus we just use an int.
1.35862 -+
1.35863 -+ General rule: Functions which are bfd_boolean return TRUE on
1.35864 -+ success and FALSE on failure (unless they're a predicate). */
1.35865 -+
1.35866 -+typedef int bfd_boolean;
1.35867 -+#undef FALSE
1.35868 -+#undef TRUE
1.35869 -+#define FALSE 0
1.35870 -+#define TRUE 1
1.35871 -+
1.35872 -+#ifdef BFD64
1.35873 -+
1.35874 -+#ifndef BFD_HOST_64_BIT
1.35875 -+ #error No 64 bit integer type available
1.35876 -+#endif /* ! defined (BFD_HOST_64_BIT) */
1.35877 -+
1.35878 -+typedef BFD_HOST_U_64_BIT bfd_vma;
1.35879 -+typedef BFD_HOST_64_BIT bfd_signed_vma;
1.35880 -+typedef BFD_HOST_U_64_BIT bfd_size_type;
1.35881 -+typedef BFD_HOST_U_64_BIT symvalue;
1.35882 -+
1.35883 -+#ifndef fprintf_vma
1.35884 -+#if BFD_HOST_64BIT_LONG
1.35885 -+#define sprintf_vma(s,x) sprintf (s, "%016lx", x)
1.35886 -+#define fprintf_vma(f,x) fprintf (f, "%016lx", x)
1.35887 -+#elif BFD_HOST_64BIT_LONG_LONG
1.35888 -+#define sprintf_vma(s,x) sprintf (s, "%016llx", x)
1.35889 -+#define fprintf_vma(f,x) fprintf (f, "%016llx", x)
1.35890 -+#else
1.35891 -+#define _bfd_int64_low(x) ((unsigned long) (((x) & 0xffffffff)))
1.35892 -+#define _bfd_int64_high(x) ((unsigned long) (((x) >> 32) & 0xffffffff))
1.35893 -+#define fprintf_vma(s,x) \
1.35894 -+ fprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
1.35895 -+#define sprintf_vma(s,x) \
1.35896 -+ sprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
1.35897 -+#endif
1.35898 -+#endif
1.35899 -+
1.35900 -+#else /* not BFD64 */
1.35901 -+
1.35902 -+/* Represent a target address. Also used as a generic unsigned type
1.35903 -+ which is guaranteed to be big enough to hold any arithmetic types
1.35904 -+ we need to deal with. */
1.35905 -+typedef unsigned long bfd_vma;
1.35906 -+
1.35907 -+/* A generic signed type which is guaranteed to be big enough to hold any
1.35908 -+ arithmetic types we need to deal with. Can be assumed to be compatible
1.35909 -+ with bfd_vma in the same way that signed and unsigned ints are compatible
1.35910 -+ (as parameters, in assignment, etc). */
1.35911 -+typedef long bfd_signed_vma;
1.35912 -+
1.35913 -+typedef unsigned long symvalue;
1.35914 -+typedef unsigned long bfd_size_type;
1.35915 -+
1.35916 -+/* Print a bfd_vma x on stream s. */
1.35917 -+#define fprintf_vma(s,x) fprintf (s, "%08lx", x)
1.35918 -+#define sprintf_vma(s,x) sprintf (s, "%08lx", x)
1.35919 -+
1.35920 -+#endif /* not BFD64 */
1.35921 -+
1.35922 -+#define HALF_BFD_SIZE_TYPE \
1.35923 -+ (((bfd_size_type) 1) << (8 * sizeof (bfd_size_type) / 2))
1.35924 -+
1.35925 -+#ifndef BFD_HOST_64_BIT
1.35926 -+/* Fall back on a 32 bit type. The idea is to make these types always
1.35927 -+ available for function return types, but in the case that
1.35928 -+ BFD_HOST_64_BIT is undefined such a function should abort or
1.35929 -+ otherwise signal an error. */
1.35930 -+typedef bfd_signed_vma bfd_int64_t;
1.35931 -+typedef bfd_vma bfd_uint64_t;
1.35932 -+#endif
1.35933 -+
1.35934 -+/* An offset into a file. BFD always uses the largest possible offset
1.35935 -+ based on the build time availability of fseek, fseeko, or fseeko64. */
1.35936 -+typedef @bfd_file_ptr@ file_ptr;
1.35937 -+typedef unsigned @bfd_file_ptr@ ufile_ptr;
1.35938 -+
1.35939 -+extern void bfd_sprintf_vma (bfd *, char *, bfd_vma);
1.35940 -+extern void bfd_fprintf_vma (bfd *, void *, bfd_vma);
1.35941 -+
1.35942 -+#define printf_vma(x) fprintf_vma(stdout,x)
1.35943 -+#define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x)
1.35944 -+
1.35945 -+typedef unsigned int flagword; /* 32 bits of flags */
1.35946 -+typedef unsigned char bfd_byte;
1.35947 -+
1.35948 -+/* File formats. */
1.35949 -+
1.35950 -+typedef enum bfd_format
1.35951 -+{
1.35952 -+ bfd_unknown = 0, /* File format is unknown. */
1.35953 -+ bfd_object, /* Linker/assembler/compiler output. */
1.35954 -+ bfd_archive, /* Object archive file. */
1.35955 -+ bfd_core, /* Core dump. */
1.35956 -+ bfd_type_end /* Marks the end; don't use it! */
1.35957 -+}
1.35958 -+bfd_format;
1.35959 -+
1.35960 -+/* Values that may appear in the flags field of a BFD. These also
1.35961 -+ appear in the object_flags field of the bfd_target structure, where
1.35962 -+ they indicate the set of flags used by that backend (not all flags
1.35963 -+ are meaningful for all object file formats) (FIXME: at the moment,
1.35964 -+ the object_flags values have mostly just been copied from backend
1.35965 -+ to another, and are not necessarily correct). */
1.35966 -+
1.35967 -+/* No flags. */
1.35968 -+#define BFD_NO_FLAGS 0x00
1.35969 -+
1.35970 -+/* BFD contains relocation entries. */
1.35971 -+#define HAS_RELOC 0x01
1.35972 -+
1.35973 -+/* BFD is directly executable. */
1.35974 -+#define EXEC_P 0x02
1.35975 -+
1.35976 -+/* BFD has line number information (basically used for F_LNNO in a
1.35977 -+ COFF header). */
1.35978 -+#define HAS_LINENO 0x04
1.35979 -+
1.35980 -+/* BFD has debugging information. */
1.35981 -+#define HAS_DEBUG 0x08
1.35982 -+
1.35983 -+/* BFD has symbols. */
1.35984 -+#define HAS_SYMS 0x10
1.35985 -+
1.35986 -+/* BFD has local symbols (basically used for F_LSYMS in a COFF
1.35987 -+ header). */
1.35988 -+#define HAS_LOCALS 0x20
1.35989 -+
1.35990 -+/* BFD is a dynamic object. */
1.35991 -+#define DYNAMIC 0x40
1.35992 -+
1.35993 -+/* Text section is write protected (if D_PAGED is not set, this is
1.35994 -+ like an a.out NMAGIC file) (the linker sets this by default, but
1.35995 -+ clears it for -r or -N). */
1.35996 -+#define WP_TEXT 0x80
1.35997 -+
1.35998 -+/* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
1.35999 -+ linker sets this by default, but clears it for -r or -n or -N). */
1.36000 -+#define D_PAGED 0x100
1.36001 -+
1.36002 -+/* BFD is relaxable (this means that bfd_relax_section may be able to
1.36003 -+ do something) (sometimes bfd_relax_section can do something even if
1.36004 -+ this is not set). */
1.36005 -+#define BFD_IS_RELAXABLE 0x200
1.36006 -+
1.36007 -+/* This may be set before writing out a BFD to request using a
1.36008 -+ traditional format. For example, this is used to request that when
1.36009 -+ writing out an a.out object the symbols not be hashed to eliminate
1.36010 -+ duplicates. */
1.36011 -+#define BFD_TRADITIONAL_FORMAT 0x400
1.36012 -+
1.36013 -+/* This flag indicates that the BFD contents are actually cached in
1.36014 -+ memory. If this is set, iostream points to a bfd_in_memory struct. */
1.36015 -+#define BFD_IN_MEMORY 0x800
1.36016 -+
1.36017 -+/* The sections in this BFD specify a memory page. */
1.36018 -+#define HAS_LOAD_PAGE 0x1000
1.36019 -+
1.36020 -+/* This BFD has been created by the linker and doesn't correspond
1.36021 -+ to any input file. */
1.36022 -+#define BFD_LINKER_CREATED 0x2000
1.36023 -+
1.36024 -+/* Symbols and relocation. */
1.36025 -+
1.36026 -+/* A count of carsyms (canonical archive symbols). */
1.36027 -+typedef unsigned long symindex;
1.36028 -+
1.36029 -+/* How to perform a relocation. */
1.36030 -+typedef const struct reloc_howto_struct reloc_howto_type;
1.36031 -+
1.36032 -+#define BFD_NO_MORE_SYMBOLS ((symindex) ~0)
1.36033 -+
1.36034 -+/* General purpose part of a symbol X;
1.36035 -+ target specific parts are in libcoff.h, libaout.h, etc. */
1.36036 -+
1.36037 -+#define bfd_get_section(x) ((x)->section)
1.36038 -+#define bfd_get_output_section(x) ((x)->section->output_section)
1.36039 -+#define bfd_set_section(x,y) ((x)->section) = (y)
1.36040 -+#define bfd_asymbol_base(x) ((x)->section->vma)
1.36041 -+#define bfd_asymbol_value(x) (bfd_asymbol_base(x) + (x)->value)
1.36042 -+#define bfd_asymbol_name(x) ((x)->name)
1.36043 -+/*Perhaps future: #define bfd_asymbol_bfd(x) ((x)->section->owner)*/
1.36044 -+#define bfd_asymbol_bfd(x) ((x)->the_bfd)
1.36045 -+#define bfd_asymbol_flavour(x) (bfd_asymbol_bfd(x)->xvec->flavour)
1.36046 -+
1.36047 -+/* A canonical archive symbol. */
1.36048 -+/* This is a type pun with struct ranlib on purpose! */
1.36049 -+typedef struct carsym
1.36050 -+{
1.36051 -+ char *name;
1.36052 -+ file_ptr file_offset; /* Look here to find the file. */
1.36053 -+}
1.36054 -+carsym; /* To make these you call a carsymogen. */
1.36055 -+
1.36056 -+/* Used in generating armaps (archive tables of contents).
1.36057 -+ Perhaps just a forward definition would do? */
1.36058 -+struct orl /* Output ranlib. */
1.36059 -+{
1.36060 -+ char **name; /* Symbol name. */
1.36061 -+ union
1.36062 -+ {
1.36063 -+ file_ptr pos;
1.36064 -+ bfd *abfd;
1.36065 -+ } u; /* bfd* or file position. */
1.36066 -+ int namidx; /* Index into string table. */
1.36067 -+};
1.36068 -+
1.36069 -+/* Linenumber stuff. */
1.36070 -+typedef struct lineno_cache_entry
1.36071 -+{
1.36072 -+ unsigned int line_number; /* Linenumber from start of function. */
1.36073 -+ union
1.36074 -+ {
1.36075 -+ struct bfd_symbol *sym; /* Function name. */
1.36076 -+ bfd_vma offset; /* Offset into section. */
1.36077 -+ } u;
1.36078 -+}
1.36079 -+alent;
1.36080 -+
1.36081 -+/* Object and core file sections. */
1.36082 -+
1.36083 -+#define align_power(addr, align) \
1.36084 -+ (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align)))
1.36085 -+
1.36086 -+typedef struct bfd_section *sec_ptr;
1.36087 -+
1.36088 -+#define bfd_get_section_name(bfd, ptr) ((ptr)->name + 0)
1.36089 -+#define bfd_get_section_vma(bfd, ptr) ((ptr)->vma + 0)
1.36090 -+#define bfd_get_section_lma(bfd, ptr) ((ptr)->lma + 0)
1.36091 -+#define bfd_get_section_alignment(bfd, ptr) ((ptr)->alignment_power + 0)
1.36092 -+#define bfd_section_name(bfd, ptr) ((ptr)->name)
1.36093 -+#define bfd_section_size(bfd, ptr) ((ptr)->size)
1.36094 -+#define bfd_get_section_size(ptr) ((ptr)->size)
1.36095 -+#define bfd_section_vma(bfd, ptr) ((ptr)->vma)
1.36096 -+#define bfd_section_lma(bfd, ptr) ((ptr)->lma)
1.36097 -+#define bfd_section_alignment(bfd, ptr) ((ptr)->alignment_power)
1.36098 -+#define bfd_get_section_flags(bfd, ptr) ((ptr)->flags + 0)
1.36099 -+#define bfd_get_section_userdata(bfd, ptr) ((ptr)->userdata)
1.36100 -+
1.36101 -+#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
1.36102 -+
1.36103 -+#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
1.36104 -+#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
1.36105 -+#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
1.36106 -+/* Find the address one past the end of SEC. */
1.36107 -+#define bfd_get_section_limit(bfd, sec) \
1.36108 -+ (((sec)->rawsize ? (sec)->rawsize : (sec)->size) \
1.36109 -+ / bfd_octets_per_byte (bfd))
1.36110 -+
1.36111 -+/* Return TRUE if section has been discarded. */
1.36112 -+#define elf_discarded_section(sec) \
1.36113 -+ (!bfd_is_abs_section (sec) \
1.36114 -+ && bfd_is_abs_section ((sec)->output_section) \
1.36115 -+ && (sec)->sec_info_type != ELF_INFO_TYPE_MERGE \
1.36116 -+ && (sec)->sec_info_type != ELF_INFO_TYPE_JUST_SYMS)
1.36117 -+
1.36118 -+/* Forward define. */
1.36119 -+struct stat;
1.36120 -+
1.36121 -+typedef enum bfd_print_symbol
1.36122 -+{
1.36123 -+ bfd_print_symbol_name,
1.36124 -+ bfd_print_symbol_more,
1.36125 -+ bfd_print_symbol_all
1.36126 -+} bfd_print_symbol_type;
1.36127 -+
1.36128 -+/* Information about a symbol that nm needs. */
1.36129 -+
1.36130 -+typedef struct _symbol_info
1.36131 -+{
1.36132 -+ symvalue value;
1.36133 -+ char type;
1.36134 -+ const char *name; /* Symbol name. */
1.36135 -+ unsigned char stab_type; /* Stab type. */
1.36136 -+ char stab_other; /* Stab other. */
1.36137 -+ short stab_desc; /* Stab desc. */
1.36138 -+ const char *stab_name; /* String for stab type. */
1.36139 -+} symbol_info;
1.36140 -+
1.36141 -+/* Get the name of a stabs type code. */
1.36142 -+
1.36143 -+extern const char *bfd_get_stab_name (int);
1.36144 -+
1.36145 -+/* Hash table routines. There is no way to free up a hash table. */
1.36146 -+
1.36147 -+/* An element in the hash table. Most uses will actually use a larger
1.36148 -+ structure, and an instance of this will be the first field. */
1.36149 -+
1.36150 -+struct bfd_hash_entry
1.36151 -+{
1.36152 -+ /* Next entry for this hash code. */
1.36153 -+ struct bfd_hash_entry *next;
1.36154 -+ /* String being hashed. */
1.36155 -+ const char *string;
1.36156 -+ /* Hash code. This is the full hash code, not the index into the
1.36157 -+ table. */
1.36158 -+ unsigned long hash;
1.36159 -+};
1.36160 -+
1.36161 -+/* A hash table. */
1.36162 -+
1.36163 -+struct bfd_hash_table
1.36164 -+{
1.36165 -+ /* The hash array. */
1.36166 -+ struct bfd_hash_entry **table;
1.36167 -+ /* A function used to create new elements in the hash table. The
1.36168 -+ first entry is itself a pointer to an element. When this
1.36169 -+ function is first invoked, this pointer will be NULL. However,
1.36170 -+ having the pointer permits a hierarchy of method functions to be
1.36171 -+ built each of which calls the function in the superclass. Thus
1.36172 -+ each function should be written to allocate a new block of memory
1.36173 -+ only if the argument is NULL. */
1.36174 -+ struct bfd_hash_entry *(*newfunc)
1.36175 -+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
1.36176 -+ /* An objalloc for this hash table. This is a struct objalloc *,
1.36177 -+ but we use void * to avoid requiring the inclusion of objalloc.h. */
1.36178 -+ void *memory;
1.36179 -+ /* The number of slots in the hash table. */
1.36180 -+ unsigned int size;
1.36181 -+ /* The number of entries in the hash table. */
1.36182 -+ unsigned int count;
1.36183 -+ /* The size of elements. */
1.36184 -+ unsigned int entsize;
1.36185 -+ /* If non-zero, don't grow the hash table. */
1.36186 -+ unsigned int frozen:1;
1.36187 -+};
1.36188 -+
1.36189 -+/* Initialize a hash table. */
1.36190 -+extern bfd_boolean bfd_hash_table_init
1.36191 -+ (struct bfd_hash_table *,
1.36192 -+ struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
1.36193 -+ struct bfd_hash_table *,
1.36194 -+ const char *),
1.36195 -+ unsigned int);
1.36196 -+
1.36197 -+/* Initialize a hash table specifying a size. */
1.36198 -+extern bfd_boolean bfd_hash_table_init_n
1.36199 -+ (struct bfd_hash_table *,
1.36200 -+ struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
1.36201 -+ struct bfd_hash_table *,
1.36202 -+ const char *),
1.36203 -+ unsigned int, unsigned int);
1.36204 -+
1.36205 -+/* Free up a hash table. */
1.36206 -+extern void bfd_hash_table_free
1.36207 -+ (struct bfd_hash_table *);
1.36208 -+
1.36209 -+/* Look up a string in a hash table. If CREATE is TRUE, a new entry
1.36210 -+ will be created for this string if one does not already exist. The
1.36211 -+ COPY argument must be TRUE if this routine should copy the string
1.36212 -+ into newly allocated memory when adding an entry. */
1.36213 -+extern struct bfd_hash_entry *bfd_hash_lookup
1.36214 -+ (struct bfd_hash_table *, const char *, bfd_boolean create,
1.36215 -+ bfd_boolean copy);
1.36216 -+
1.36217 -+/* Replace an entry in a hash table. */
1.36218 -+extern void bfd_hash_replace
1.36219 -+ (struct bfd_hash_table *, struct bfd_hash_entry *old,
1.36220 -+ struct bfd_hash_entry *nw);
1.36221 -+
1.36222 -+/* Base method for creating a hash table entry. */
1.36223 -+extern struct bfd_hash_entry *bfd_hash_newfunc
1.36224 -+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
1.36225 -+
1.36226 -+/* Grab some space for a hash table entry. */
1.36227 -+extern void *bfd_hash_allocate
1.36228 -+ (struct bfd_hash_table *, unsigned int);
1.36229 -+
1.36230 -+/* Traverse a hash table in a random order, calling a function on each
1.36231 -+ element. If the function returns FALSE, the traversal stops. The
1.36232 -+ INFO argument is passed to the function. */
1.36233 -+extern void bfd_hash_traverse
1.36234 -+ (struct bfd_hash_table *,
1.36235 -+ bfd_boolean (*) (struct bfd_hash_entry *, void *),
1.36236 -+ void *info);
1.36237 -+
1.36238 -+/* Allows the default size of a hash table to be configured. New hash
1.36239 -+ tables allocated using bfd_hash_table_init will be created with
1.36240 -+ this size. */
1.36241 -+extern void bfd_hash_set_default_size (bfd_size_type);
1.36242 -+
1.36243 -+/* This structure is used to keep track of stabs in sections
1.36244 -+ information while linking. */
1.36245 -+
1.36246 -+struct stab_info
1.36247 -+{
1.36248 -+ /* A hash table used to hold stabs strings. */
1.36249 -+ struct bfd_strtab_hash *strings;
1.36250 -+ /* The header file hash table. */
1.36251 -+ struct bfd_hash_table includes;
1.36252 -+ /* The first .stabstr section. */
1.36253 -+ struct bfd_section *stabstr;
1.36254 -+};
1.36255 -+
1.36256 -+#define COFF_SWAP_TABLE (void *) &bfd_coff_std_swap_table
1.36257 -+
1.36258 -+/* User program access to BFD facilities. */
1.36259 -+
1.36260 -+/* Direct I/O routines, for programs which know more about the object
1.36261 -+ file than BFD does. Use higher level routines if possible. */
1.36262 -+
1.36263 -+extern bfd_size_type bfd_bread (void *, bfd_size_type, bfd *);
1.36264 -+extern bfd_size_type bfd_bwrite (const void *, bfd_size_type, bfd *);
1.36265 -+extern int bfd_seek (bfd *, file_ptr, int);
1.36266 -+extern file_ptr bfd_tell (bfd *);
1.36267 -+extern int bfd_flush (bfd *);
1.36268 -+extern int bfd_stat (bfd *, struct stat *);
1.36269 -+
1.36270 -+/* Deprecated old routines. */
1.36271 -+#if __GNUC__
1.36272 -+#define bfd_read(BUF, ELTSIZE, NITEMS, ABFD) \
1.36273 -+ (warn_deprecated ("bfd_read", __FILE__, __LINE__, __FUNCTION__), \
1.36274 -+ bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
1.36275 -+#define bfd_write(BUF, ELTSIZE, NITEMS, ABFD) \
1.36276 -+ (warn_deprecated ("bfd_write", __FILE__, __LINE__, __FUNCTION__), \
1.36277 -+ bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
1.36278 -+#else
1.36279 -+#define bfd_read(BUF, ELTSIZE, NITEMS, ABFD) \
1.36280 -+ (warn_deprecated ("bfd_read", (const char *) 0, 0, (const char *) 0), \
1.36281 -+ bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
1.36282 -+#define bfd_write(BUF, ELTSIZE, NITEMS, ABFD) \
1.36283 -+ (warn_deprecated ("bfd_write", (const char *) 0, 0, (const char *) 0),\
1.36284 -+ bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
1.36285 -+#endif
1.36286 -+extern void warn_deprecated (const char *, const char *, int, const char *);
1.36287 -+
1.36288 -+/* Cast from const char * to char * so that caller can assign to
1.36289 -+ a char * without a warning. */
1.36290 -+#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
1.36291 -+#define bfd_get_cacheable(abfd) ((abfd)->cacheable)
1.36292 -+#define bfd_get_format(abfd) ((abfd)->format)
1.36293 -+#define bfd_get_target(abfd) ((abfd)->xvec->name)
1.36294 -+#define bfd_get_flavour(abfd) ((abfd)->xvec->flavour)
1.36295 -+#define bfd_family_coff(abfd) \
1.36296 -+ (bfd_get_flavour (abfd) == bfd_target_coff_flavour || \
1.36297 -+ bfd_get_flavour (abfd) == bfd_target_xcoff_flavour)
1.36298 -+#define bfd_big_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_BIG)
1.36299 -+#define bfd_little_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_LITTLE)
1.36300 -+#define bfd_header_big_endian(abfd) \
1.36301 -+ ((abfd)->xvec->header_byteorder == BFD_ENDIAN_BIG)
1.36302 -+#define bfd_header_little_endian(abfd) \
1.36303 -+ ((abfd)->xvec->header_byteorder == BFD_ENDIAN_LITTLE)
1.36304 -+#define bfd_get_file_flags(abfd) ((abfd)->flags)
1.36305 -+#define bfd_applicable_file_flags(abfd) ((abfd)->xvec->object_flags)
1.36306 -+#define bfd_applicable_section_flags(abfd) ((abfd)->xvec->section_flags)
1.36307 -+#define bfd_my_archive(abfd) ((abfd)->my_archive)
1.36308 -+#define bfd_has_map(abfd) ((abfd)->has_armap)
1.36309 -+
1.36310 -+#define bfd_valid_reloc_types(abfd) ((abfd)->xvec->valid_reloc_types)
1.36311 -+#define bfd_usrdata(abfd) ((abfd)->usrdata)
1.36312 -+
1.36313 -+#define bfd_get_start_address(abfd) ((abfd)->start_address)
1.36314 -+#define bfd_get_symcount(abfd) ((abfd)->symcount)
1.36315 -+#define bfd_get_outsymbols(abfd) ((abfd)->outsymbols)
1.36316 -+#define bfd_count_sections(abfd) ((abfd)->section_count)
1.36317 -+
1.36318 -+#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount)
1.36319 -+
1.36320 -+#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
1.36321 -+
1.36322 -+#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
1.36323 -+
1.36324 -+extern bfd_boolean bfd_cache_close
1.36325 -+ (bfd *abfd);
1.36326 -+/* NB: This declaration should match the autogenerated one in libbfd.h. */
1.36327 -+
1.36328 -+extern bfd_boolean bfd_cache_close_all (void);
1.36329 -+
1.36330 -+extern bfd_boolean bfd_record_phdr
1.36331 -+ (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
1.36332 -+ bfd_boolean, bfd_boolean, unsigned int, struct bfd_section **);
1.36333 -+
1.36334 -+/* Byte swapping routines. */
1.36335 -+
1.36336 -+bfd_uint64_t bfd_getb64 (const void *);
1.36337 -+bfd_uint64_t bfd_getl64 (const void *);
1.36338 -+bfd_int64_t bfd_getb_signed_64 (const void *);
1.36339 -+bfd_int64_t bfd_getl_signed_64 (const void *);
1.36340 -+bfd_vma bfd_getb32 (const void *);
1.36341 -+bfd_vma bfd_getl32 (const void *);
1.36342 -+bfd_signed_vma bfd_getb_signed_32 (const void *);
1.36343 -+bfd_signed_vma bfd_getl_signed_32 (const void *);
1.36344 -+bfd_vma bfd_getb16 (const void *);
1.36345 -+bfd_vma bfd_getl16 (const void *);
1.36346 -+bfd_signed_vma bfd_getb_signed_16 (const void *);
1.36347 -+bfd_signed_vma bfd_getl_signed_16 (const void *);
1.36348 -+void bfd_putb64 (bfd_uint64_t, void *);
1.36349 -+void bfd_putl64 (bfd_uint64_t, void *);
1.36350 -+void bfd_putb32 (bfd_vma, void *);
1.36351 -+void bfd_putl32 (bfd_vma, void *);
1.36352 -+void bfd_putb16 (bfd_vma, void *);
1.36353 -+void bfd_putl16 (bfd_vma, void *);
1.36354 -+
1.36355 -+/* Byte swapping routines which take size and endiannes as arguments. */
1.36356 -+
1.36357 -+bfd_uint64_t bfd_get_bits (const void *, int, bfd_boolean);
1.36358 -+void bfd_put_bits (bfd_uint64_t, void *, int, bfd_boolean);
1.36359 -+
1.36360 -+extern bfd_boolean bfd_section_already_linked_table_init (void);
1.36361 -+extern void bfd_section_already_linked_table_free (void);
1.36362 -+
1.36363 -+/* Externally visible ECOFF routines. */
1.36364 -+
1.36365 -+#if defined(__STDC__) || defined(ALMOST_STDC)
1.36366 -+struct ecoff_debug_info;
1.36367 -+struct ecoff_debug_swap;
1.36368 -+struct ecoff_extr;
1.36369 -+struct bfd_symbol;
1.36370 -+struct bfd_link_info;
1.36371 -+struct bfd_link_hash_entry;
1.36372 -+struct bfd_elf_version_tree;
1.36373 -+#endif
1.36374 -+extern bfd_vma bfd_ecoff_get_gp_value
1.36375 -+ (bfd * abfd);
1.36376 -+extern bfd_boolean bfd_ecoff_set_gp_value
1.36377 -+ (bfd *abfd, bfd_vma gp_value);
1.36378 -+extern bfd_boolean bfd_ecoff_set_regmasks
1.36379 -+ (bfd *abfd, unsigned long gprmask, unsigned long fprmask,
1.36380 -+ unsigned long *cprmask);
1.36381 -+extern void *bfd_ecoff_debug_init
1.36382 -+ (bfd *output_bfd, struct ecoff_debug_info *output_debug,
1.36383 -+ const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
1.36384 -+extern void bfd_ecoff_debug_free
1.36385 -+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
1.36386 -+ const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
1.36387 -+extern bfd_boolean bfd_ecoff_debug_accumulate
1.36388 -+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
1.36389 -+ const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
1.36390 -+ struct ecoff_debug_info *input_debug,
1.36391 -+ const struct ecoff_debug_swap *input_swap, struct bfd_link_info *);
1.36392 -+extern bfd_boolean bfd_ecoff_debug_accumulate_other
1.36393 -+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
1.36394 -+ const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
1.36395 -+ struct bfd_link_info *);
1.36396 -+extern bfd_boolean bfd_ecoff_debug_externals
1.36397 -+ (bfd *abfd, struct ecoff_debug_info *debug,
1.36398 -+ const struct ecoff_debug_swap *swap, bfd_boolean relocatable,
1.36399 -+ bfd_boolean (*get_extr) (struct bfd_symbol *, struct ecoff_extr *),
1.36400 -+ void (*set_index) (struct bfd_symbol *, bfd_size_type));
1.36401 -+extern bfd_boolean bfd_ecoff_debug_one_external
1.36402 -+ (bfd *abfd, struct ecoff_debug_info *debug,
1.36403 -+ const struct ecoff_debug_swap *swap, const char *name,
1.36404 -+ struct ecoff_extr *esym);
1.36405 -+extern bfd_size_type bfd_ecoff_debug_size
1.36406 -+ (bfd *abfd, struct ecoff_debug_info *debug,
1.36407 -+ const struct ecoff_debug_swap *swap);
1.36408 -+extern bfd_boolean bfd_ecoff_write_debug
1.36409 -+ (bfd *abfd, struct ecoff_debug_info *debug,
1.36410 -+ const struct ecoff_debug_swap *swap, file_ptr where);
1.36411 -+extern bfd_boolean bfd_ecoff_write_accumulated_debug
1.36412 -+ (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
1.36413 -+ const struct ecoff_debug_swap *swap,
1.36414 -+ struct bfd_link_info *info, file_ptr where);
1.36415 -+
1.36416 -+/* Externally visible ELF routines. */
1.36417 -+
1.36418 -+struct bfd_link_needed_list
1.36419 -+{
1.36420 -+ struct bfd_link_needed_list *next;
1.36421 -+ bfd *by;
1.36422 -+ const char *name;
1.36423 -+};
1.36424 -+
1.36425 -+enum dynamic_lib_link_class {
1.36426 -+ DYN_NORMAL = 0,
1.36427 -+ DYN_AS_NEEDED = 1,
1.36428 -+ DYN_DT_NEEDED = 2,
1.36429 -+ DYN_NO_ADD_NEEDED = 4,
1.36430 -+ DYN_NO_NEEDED = 8
1.36431 -+};
1.36432 -+
1.36433 -+enum notice_asneeded_action {
1.36434 -+ notice_as_needed,
1.36435 -+ notice_not_needed,
1.36436 -+ notice_needed
1.36437 -+};
1.36438 -+
1.36439 -+extern bfd_boolean bfd_elf_record_link_assignment
1.36440 -+ (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
1.36441 -+ bfd_boolean);
1.36442 -+extern struct bfd_link_needed_list *bfd_elf_get_needed_list
1.36443 -+ (bfd *, struct bfd_link_info *);
1.36444 -+extern bfd_boolean bfd_elf_get_bfd_needed_list
1.36445 -+ (bfd *, struct bfd_link_needed_list **);
1.36446 -+extern bfd_boolean bfd_elf_size_dynamic_sections
1.36447 -+ (bfd *, const char *, const char *, const char *, const char * const *,
1.36448 -+ struct bfd_link_info *, struct bfd_section **,
1.36449 -+ struct bfd_elf_version_tree *);
1.36450 -+extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
1.36451 -+ (bfd *, struct bfd_link_info *);
1.36452 -+extern void bfd_elf_set_dt_needed_name
1.36453 -+ (bfd *, const char *);
1.36454 -+extern const char *bfd_elf_get_dt_soname
1.36455 -+ (bfd *);
1.36456 -+extern void bfd_elf_set_dyn_lib_class
1.36457 -+ (bfd *, enum dynamic_lib_link_class);
1.36458 -+extern int bfd_elf_get_dyn_lib_class
1.36459 -+ (bfd *);
1.36460 -+extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
1.36461 -+ (bfd *, struct bfd_link_info *);
1.36462 -+extern bfd_boolean bfd_elf_discard_info
1.36463 -+ (bfd *, struct bfd_link_info *);
1.36464 -+extern unsigned int _bfd_elf_default_action_discarded
1.36465 -+ (struct bfd_section *);
1.36466 -+
1.36467 -+/* Return an upper bound on the number of bytes required to store a
1.36468 -+ copy of ABFD's program header table entries. Return -1 if an error
1.36469 -+ occurs; bfd_get_error will return an appropriate code. */
1.36470 -+extern long bfd_get_elf_phdr_upper_bound
1.36471 -+ (bfd *abfd);
1.36472 -+
1.36473 -+/* Copy ABFD's program header table entries to *PHDRS. The entries
1.36474 -+ will be stored as an array of Elf_Internal_Phdr structures, as
1.36475 -+ defined in include/elf/internal.h. To find out how large the
1.36476 -+ buffer needs to be, call bfd_get_elf_phdr_upper_bound.
1.36477 -+
1.36478 -+ Return the number of program header table entries read, or -1 if an
1.36479 -+ error occurs; bfd_get_error will return an appropriate code. */
1.36480 -+extern int bfd_get_elf_phdrs
1.36481 -+ (bfd *abfd, void *phdrs);
1.36482 -+
1.36483 -+/* Create a new BFD as if by bfd_openr. Rather than opening a file,
1.36484 -+ reconstruct an ELF file by reading the segments out of remote memory
1.36485 -+ based on the ELF file header at EHDR_VMA and the ELF program headers it
1.36486 -+ points to. If not null, *LOADBASEP is filled in with the difference
1.36487 -+ between the VMAs from which the segments were read, and the VMAs the
1.36488 -+ file headers (and hence BFD's idea of each section's VMA) put them at.
1.36489 -+
1.36490 -+ The function TARGET_READ_MEMORY is called to copy LEN bytes from the
1.36491 -+ remote memory at target address VMA into the local buffer at MYADDR; it
1.36492 -+ should return zero on success or an `errno' code on failure. TEMPL must
1.36493 -+ be a BFD for an ELF target with the word size and byte order found in
1.36494 -+ the remote memory. */
1.36495 -+extern bfd *bfd_elf_bfd_from_remote_memory
1.36496 -+ (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
1.36497 -+ int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, int len));
1.36498 -+
1.36499 -+/* Return the arch_size field of an elf bfd, or -1 if not elf. */
1.36500 -+extern int bfd_get_arch_size
1.36501 -+ (bfd *);
1.36502 -+
1.36503 -+/* Return TRUE if address "naturally" sign extends, or -1 if not elf. */
1.36504 -+extern int bfd_get_sign_extend_vma
1.36505 -+ (bfd *);
1.36506 -+
1.36507 -+extern struct bfd_section *_bfd_elf_tls_setup
1.36508 -+ (bfd *, struct bfd_link_info *);
1.36509 -+
1.36510 -+extern void _bfd_fix_excluded_sec_syms
1.36511 -+ (bfd *, struct bfd_link_info *);
1.36512 -+
1.36513 -+extern unsigned bfd_m68k_mach_to_features (int);
1.36514 -+
1.36515 -+extern int bfd_m68k_features_to_mach (unsigned);
1.36516 -+
1.36517 -+extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
1.36518 -+ (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
1.36519 -+ char **);
1.36520 -+
1.36521 -+extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
1.36522 -+ (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
1.36523 -+ char **);
1.36524 -+
1.36525 -+/* SunOS shared library support routines for the linker. */
1.36526 -+
1.36527 -+extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
1.36528 -+ (bfd *, struct bfd_link_info *);
1.36529 -+extern bfd_boolean bfd_sunos_record_link_assignment
1.36530 -+ (bfd *, struct bfd_link_info *, const char *);
1.36531 -+extern bfd_boolean bfd_sunos_size_dynamic_sections
1.36532 -+ (bfd *, struct bfd_link_info *, struct bfd_section **,
1.36533 -+ struct bfd_section **, struct bfd_section **);
1.36534 -+
1.36535 -+/* Linux shared library support routines for the linker. */
1.36536 -+
1.36537 -+extern bfd_boolean bfd_i386linux_size_dynamic_sections
1.36538 -+ (bfd *, struct bfd_link_info *);
1.36539 -+extern bfd_boolean bfd_m68klinux_size_dynamic_sections
1.36540 -+ (bfd *, struct bfd_link_info *);
1.36541 -+extern bfd_boolean bfd_sparclinux_size_dynamic_sections
1.36542 -+ (bfd *, struct bfd_link_info *);
1.36543 -+
1.36544 -+/* mmap hacks */
1.36545 -+
1.36546 -+struct _bfd_window_internal;
1.36547 -+typedef struct _bfd_window_internal bfd_window_internal;
1.36548 -+
1.36549 -+typedef struct _bfd_window
1.36550 -+{
1.36551 -+ /* What the user asked for. */
1.36552 -+ void *data;
1.36553 -+ bfd_size_type size;
1.36554 -+ /* The actual window used by BFD. Small user-requested read-only
1.36555 -+ regions sharing a page may share a single window into the object
1.36556 -+ file. Read-write versions shouldn't until I've fixed things to
1.36557 -+ keep track of which portions have been claimed by the
1.36558 -+ application; don't want to give the same region back when the
1.36559 -+ application wants two writable copies! */
1.36560 -+ struct _bfd_window_internal *i;
1.36561 -+}
1.36562 -+bfd_window;
1.36563 -+
1.36564 -+extern void bfd_init_window
1.36565 -+ (bfd_window *);
1.36566 -+extern void bfd_free_window
1.36567 -+ (bfd_window *);
1.36568 -+extern bfd_boolean bfd_get_file_window
1.36569 -+ (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
1.36570 -+
1.36571 -+/* XCOFF support routines for the linker. */
1.36572 -+
1.36573 -+extern bfd_boolean bfd_xcoff_link_record_set
1.36574 -+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type);
1.36575 -+extern bfd_boolean bfd_xcoff_import_symbol
1.36576 -+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma,
1.36577 -+ const char *, const char *, const char *, unsigned int);
1.36578 -+extern bfd_boolean bfd_xcoff_export_symbol
1.36579 -+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
1.36580 -+extern bfd_boolean bfd_xcoff_link_count_reloc
1.36581 -+ (bfd *, struct bfd_link_info *, const char *);
1.36582 -+extern bfd_boolean bfd_xcoff_record_link_assignment
1.36583 -+ (bfd *, struct bfd_link_info *, const char *);
1.36584 -+extern bfd_boolean bfd_xcoff_size_dynamic_sections
1.36585 -+ (bfd *, struct bfd_link_info *, const char *, const char *,
1.36586 -+ unsigned long, unsigned long, unsigned long, bfd_boolean,
1.36587 -+ int, bfd_boolean, bfd_boolean, struct bfd_section **, bfd_boolean);
1.36588 -+extern bfd_boolean bfd_xcoff_link_generate_rtinit
1.36589 -+ (bfd *, const char *, const char *, bfd_boolean);
1.36590 -+
1.36591 -+/* XCOFF support routines for ar. */
1.36592 -+extern bfd_boolean bfd_xcoff_ar_archive_set_magic
1.36593 -+ (bfd *, char *);
1.36594 -+
1.36595 -+/* Externally visible COFF routines. */
1.36596 -+
1.36597 -+#if defined(__STDC__) || defined(ALMOST_STDC)
1.36598 -+struct internal_syment;
1.36599 -+union internal_auxent;
1.36600 -+#endif
1.36601 -+
1.36602 -+extern bfd_boolean bfd_coff_get_syment
1.36603 -+ (bfd *, struct bfd_symbol *, struct internal_syment *);
1.36604 -+
1.36605 -+extern bfd_boolean bfd_coff_get_auxent
1.36606 -+ (bfd *, struct bfd_symbol *, int, union internal_auxent *);
1.36607 -+
1.36608 -+extern bfd_boolean bfd_coff_set_symbol_class
1.36609 -+ (bfd *, struct bfd_symbol *, unsigned int);
1.36610 -+
1.36611 -+extern bfd_boolean bfd_m68k_coff_create_embedded_relocs
1.36612 -+ (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **);
1.36613 -+
1.36614 -+/* ARM VFP11 erratum workaround support. */
1.36615 -+typedef enum
1.36616 -+{
1.36617 -+ BFD_ARM_VFP11_FIX_DEFAULT,
1.36618 -+ BFD_ARM_VFP11_FIX_NONE,
1.36619 -+ BFD_ARM_VFP11_FIX_SCALAR,
1.36620 -+ BFD_ARM_VFP11_FIX_VECTOR
1.36621 -+} bfd_arm_vfp11_fix;
1.36622 -+
1.36623 -+extern void bfd_elf32_arm_init_maps
1.36624 -+ (bfd *);
1.36625 -+
1.36626 -+extern void bfd_elf32_arm_set_vfp11_fix
1.36627 -+ (bfd *, struct bfd_link_info *);
1.36628 -+
1.36629 -+extern bfd_boolean bfd_elf32_arm_vfp11_erratum_scan
1.36630 -+ (bfd *, struct bfd_link_info *);
1.36631 -+
1.36632 -+extern void bfd_elf32_arm_vfp11_fix_veneer_locations
1.36633 -+ (bfd *, struct bfd_link_info *);
1.36634 -+
1.36635 -+/* ARM Interworking support. Called from linker. */
1.36636 -+extern bfd_boolean bfd_arm_allocate_interworking_sections
1.36637 -+ (struct bfd_link_info *);
1.36638 -+
1.36639 -+extern bfd_boolean bfd_arm_process_before_allocation
1.36640 -+ (bfd *, struct bfd_link_info *, int);
1.36641 -+
1.36642 -+extern bfd_boolean bfd_arm_get_bfd_for_interworking
1.36643 -+ (bfd *, struct bfd_link_info *);
1.36644 -+
1.36645 -+/* PE ARM Interworking support. Called from linker. */
1.36646 -+extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
1.36647 -+ (struct bfd_link_info *);
1.36648 -+
1.36649 -+extern bfd_boolean bfd_arm_pe_process_before_allocation
1.36650 -+ (bfd *, struct bfd_link_info *, int);
1.36651 -+
1.36652 -+extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
1.36653 -+ (bfd *, struct bfd_link_info *);
1.36654 -+
1.36655 -+/* ELF ARM Interworking support. Called from linker. */
1.36656 -+extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
1.36657 -+ (struct bfd_link_info *);
1.36658 -+
1.36659 -+extern bfd_boolean bfd_elf32_arm_process_before_allocation
1.36660 -+ (bfd *, struct bfd_link_info *);
1.36661 -+
1.36662 -+void bfd_elf32_arm_set_target_relocs
1.36663 -+ (bfd *, struct bfd_link_info *, int, char *, int, int, bfd_arm_vfp11_fix,
1.36664 -+ int, int);
1.36665 -+
1.36666 -+extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
1.36667 -+ (bfd *, struct bfd_link_info *);
1.36668 -+
1.36669 -+extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
1.36670 -+ (bfd *, struct bfd_link_info *);
1.36671 -+
1.36672 -+/* ELF ARM mapping symbol support */
1.36673 -+#define BFD_ARM_SPECIAL_SYM_TYPE_MAP (1 << 0)
1.36674 -+#define BFD_ARM_SPECIAL_SYM_TYPE_TAG (1 << 1)
1.36675 -+#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER (1 << 2)
1.36676 -+#define BFD_ARM_SPECIAL_SYM_TYPE_ANY (~0)
1.36677 -+extern bfd_boolean bfd_is_arm_special_symbol_name
1.36678 -+ (const char * name, int type);
1.36679 -+
1.36680 -+extern void bfd_elf32_arm_set_byteswap_code (struct bfd_link_info *, int);
1.36681 -+
1.36682 -+/* ARM Note section processing. */
1.36683 -+extern bfd_boolean bfd_arm_merge_machines
1.36684 -+ (bfd *, bfd *);
1.36685 -+
1.36686 -+extern bfd_boolean bfd_arm_update_notes
1.36687 -+ (bfd *, const char *);
1.36688 -+
1.36689 -+extern unsigned int bfd_arm_get_mach_from_notes
1.36690 -+ (bfd *, const char *);
1.36691 -+
1.36692 -+/* TI COFF load page support. */
1.36693 -+extern void bfd_ticoff_set_section_load_page
1.36694 -+ (struct bfd_section *, int);
1.36695 -+
1.36696 -+extern int bfd_ticoff_get_section_load_page
1.36697 -+ (struct bfd_section *);
1.36698 -+
1.36699 -+/* H8/300 functions. */
1.36700 -+extern bfd_vma bfd_h8300_pad_address
1.36701 -+ (bfd *, bfd_vma);
1.36702 -+
1.36703 -+/* IA64 Itanium code generation. Called from linker. */
1.36704 -+extern void bfd_elf32_ia64_after_parse
1.36705 -+ (int);
1.36706 -+
1.36707 -+extern void bfd_elf64_ia64_after_parse
1.36708 -+ (int);
1.36709 -+
1.36710 -+/* This structure is used for a comdat section, as in PE. A comdat
1.36711 -+ section is associated with a particular symbol. When the linker
1.36712 -+ sees a comdat section, it keeps only one of the sections with a
1.36713 -+ given name and associated with a given symbol. */
1.36714 -+
1.36715 -+struct coff_comdat_info
1.36716 -+{
1.36717 -+ /* The name of the symbol associated with a comdat section. */
1.36718 -+ const char *name;
1.36719 -+
1.36720 -+ /* The local symbol table index of the symbol associated with a
1.36721 -+ comdat section. This is only meaningful to the object file format
1.36722 -+ specific code; it is not an index into the list returned by
1.36723 -+ bfd_canonicalize_symtab. */
1.36724 -+ long symbol;
1.36725 -+};
1.36726 -+
1.36727 -+extern struct coff_comdat_info *bfd_coff_get_comdat_section
1.36728 -+ (bfd *, struct bfd_section *);
1.36729 -+
1.36730 -+/* Extracted from init.c. */
1.36731 -+void bfd_init (void);
1.36732 -+
1.36733 -+/* Extracted from opncls.c. */
1.36734 -+bfd *bfd_fopen (const char *filename, const char *target,
1.36735 -+ const char *mode, int fd);
1.36736 -+
1.36737 -+bfd *bfd_openr (const char *filename, const char *target);
1.36738 -+
1.36739 -+bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
1.36740 -+
1.36741 -+bfd *bfd_openstreamr (const char *, const char *, void *);
1.36742 -+
1.36743 -+bfd *bfd_openr_iovec (const char *filename, const char *target,
1.36744 -+ void *(*open) (struct bfd *nbfd,
1.36745 -+ void *open_closure),
1.36746 -+ void *open_closure,
1.36747 -+ file_ptr (*pread) (struct bfd *nbfd,
1.36748 -+ void *stream,
1.36749 -+ void *buf,
1.36750 -+ file_ptr nbytes,
1.36751 -+ file_ptr offset),
1.36752 -+ int (*close) (struct bfd *nbfd,
1.36753 -+ void *stream),
1.36754 -+ int (*stat) (struct bfd *abfd,
1.36755 -+ void *stream,
1.36756 -+ struct stat *sb));
1.36757 -+
1.36758 -+bfd *bfd_openw (const char *filename, const char *target);
1.36759 -+
1.36760 -+bfd_boolean bfd_close (bfd *abfd);
1.36761 -+
1.36762 -+bfd_boolean bfd_close_all_done (bfd *);
1.36763 -+
1.36764 -+bfd *bfd_create (const char *filename, bfd *templ);
1.36765 -+
1.36766 -+bfd_boolean bfd_make_writable (bfd *abfd);
1.36767 -+
1.36768 -+bfd_boolean bfd_make_readable (bfd *abfd);
1.36769 -+
1.36770 -+unsigned long bfd_calc_gnu_debuglink_crc32
1.36771 -+ (unsigned long crc, const unsigned char *buf, bfd_size_type len);
1.36772 -+
1.36773 -+char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
1.36774 -+
1.36775 -+struct bfd_section *bfd_create_gnu_debuglink_section
1.36776 -+ (bfd *abfd, const char *filename);
1.36777 -+
1.36778 -+bfd_boolean bfd_fill_in_gnu_debuglink_section
1.36779 -+ (bfd *abfd, struct bfd_section *sect, const char *filename);
1.36780 -+
1.36781 -+/* Extracted from libbfd.c. */
1.36782 -+
1.36783 -+/* Byte swapping macros for user section data. */
1.36784 -+
1.36785 -+#define bfd_put_8(abfd, val, ptr) \
1.36786 -+ ((void) (*((unsigned char *) (ptr)) = (val) & 0xff))
1.36787 -+#define bfd_put_signed_8 \
1.36788 -+ bfd_put_8
1.36789 -+#define bfd_get_8(abfd, ptr) \
1.36790 -+ (*(unsigned char *) (ptr) & 0xff)
1.36791 -+#define bfd_get_signed_8(abfd, ptr) \
1.36792 -+ (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
1.36793 -+
1.36794 -+#define bfd_put_16(abfd, val, ptr) \
1.36795 -+ BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
1.36796 -+#define bfd_put_signed_16 \
1.36797 -+ bfd_put_16
1.36798 -+#define bfd_get_16(abfd, ptr) \
1.36799 -+ BFD_SEND (abfd, bfd_getx16, (ptr))
1.36800 -+#define bfd_get_signed_16(abfd, ptr) \
1.36801 -+ BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
1.36802 -+
1.36803 -+#define bfd_put_32(abfd, val, ptr) \
1.36804 -+ BFD_SEND (abfd, bfd_putx32, ((val),(ptr)))
1.36805 -+#define bfd_put_signed_32 \
1.36806 -+ bfd_put_32
1.36807 -+#define bfd_get_32(abfd, ptr) \
1.36808 -+ BFD_SEND (abfd, bfd_getx32, (ptr))
1.36809 -+#define bfd_get_signed_32(abfd, ptr) \
1.36810 -+ BFD_SEND (abfd, bfd_getx_signed_32, (ptr))
1.36811 -+
1.36812 -+#define bfd_put_64(abfd, val, ptr) \
1.36813 -+ BFD_SEND (abfd, bfd_putx64, ((val), (ptr)))
1.36814 -+#define bfd_put_signed_64 \
1.36815 -+ bfd_put_64
1.36816 -+#define bfd_get_64(abfd, ptr) \
1.36817 -+ BFD_SEND (abfd, bfd_getx64, (ptr))
1.36818 -+#define bfd_get_signed_64(abfd, ptr) \
1.36819 -+ BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
1.36820 -+
1.36821 -+#define bfd_get(bits, abfd, ptr) \
1.36822 -+ ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \
1.36823 -+ : (bits) == 16 ? bfd_get_16 (abfd, ptr) \
1.36824 -+ : (bits) == 32 ? bfd_get_32 (abfd, ptr) \
1.36825 -+ : (bits) == 64 ? bfd_get_64 (abfd, ptr) \
1.36826 -+ : (abort (), (bfd_vma) - 1))
1.36827 -+
1.36828 -+#define bfd_put(bits, abfd, val, ptr) \
1.36829 -+ ((bits) == 8 ? bfd_put_8 (abfd, val, ptr) \
1.36830 -+ : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \
1.36831 -+ : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \
1.36832 -+ : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \
1.36833 -+ : (abort (), (void) 0))
1.36834 -+
1.36835 -+
1.36836 -+/* Byte swapping macros for file header data. */
1.36837 -+
1.36838 -+#define bfd_h_put_8(abfd, val, ptr) \
1.36839 -+ bfd_put_8 (abfd, val, ptr)
1.36840 -+#define bfd_h_put_signed_8(abfd, val, ptr) \
1.36841 -+ bfd_put_8 (abfd, val, ptr)
1.36842 -+#define bfd_h_get_8(abfd, ptr) \
1.36843 -+ bfd_get_8 (abfd, ptr)
1.36844 -+#define bfd_h_get_signed_8(abfd, ptr) \
1.36845 -+ bfd_get_signed_8 (abfd, ptr)
1.36846 -+
1.36847 -+#define bfd_h_put_16(abfd, val, ptr) \
1.36848 -+ BFD_SEND (abfd, bfd_h_putx16, (val, ptr))
1.36849 -+#define bfd_h_put_signed_16 \
1.36850 -+ bfd_h_put_16
1.36851 -+#define bfd_h_get_16(abfd, ptr) \
1.36852 -+ BFD_SEND (abfd, bfd_h_getx16, (ptr))
1.36853 -+#define bfd_h_get_signed_16(abfd, ptr) \
1.36854 -+ BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr))
1.36855 -+
1.36856 -+#define bfd_h_put_32(abfd, val, ptr) \
1.36857 -+ BFD_SEND (abfd, bfd_h_putx32, (val, ptr))
1.36858 -+#define bfd_h_put_signed_32 \
1.36859 -+ bfd_h_put_32
1.36860 -+#define bfd_h_get_32(abfd, ptr) \
1.36861 -+ BFD_SEND (abfd, bfd_h_getx32, (ptr))
1.36862 -+#define bfd_h_get_signed_32(abfd, ptr) \
1.36863 -+ BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr))
1.36864 -+
1.36865 -+#define bfd_h_put_64(abfd, val, ptr) \
1.36866 -+ BFD_SEND (abfd, bfd_h_putx64, (val, ptr))
1.36867 -+#define bfd_h_put_signed_64 \
1.36868 -+ bfd_h_put_64
1.36869 -+#define bfd_h_get_64(abfd, ptr) \
1.36870 -+ BFD_SEND (abfd, bfd_h_getx64, (ptr))
1.36871 -+#define bfd_h_get_signed_64(abfd, ptr) \
1.36872 -+ BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr))
1.36873 -+
1.36874 -+/* Aliases for the above, which should eventually go away. */
1.36875 -+
1.36876 -+#define H_PUT_64 bfd_h_put_64
1.36877 -+#define H_PUT_32 bfd_h_put_32
1.36878 -+#define H_PUT_16 bfd_h_put_16
1.36879 -+#define H_PUT_8 bfd_h_put_8
1.36880 -+#define H_PUT_S64 bfd_h_put_signed_64
1.36881 -+#define H_PUT_S32 bfd_h_put_signed_32
1.36882 -+#define H_PUT_S16 bfd_h_put_signed_16
1.36883 -+#define H_PUT_S8 bfd_h_put_signed_8
1.36884 -+#define H_GET_64 bfd_h_get_64
1.36885 -+#define H_GET_32 bfd_h_get_32
1.36886 -+#define H_GET_16 bfd_h_get_16
1.36887 -+#define H_GET_8 bfd_h_get_8
1.36888 -+#define H_GET_S64 bfd_h_get_signed_64
1.36889 -+#define H_GET_S32 bfd_h_get_signed_32
1.36890 -+#define H_GET_S16 bfd_h_get_signed_16
1.36891 -+#define H_GET_S8 bfd_h_get_signed_8
1.36892 -+
1.36893 -+
1.36894 -+/* Extracted from bfdio.c. */
1.36895 -+long bfd_get_mtime (bfd *abfd);
1.36896 -+
1.36897 -+file_ptr bfd_get_size (bfd *abfd);
1.36898 -+
1.36899 -+/* Extracted from bfdwin.c. */
1.36900 -+/* Extracted from section.c. */
1.36901 -+typedef struct bfd_section
1.36902 -+{
1.36903 -+ /* The name of the section; the name isn't a copy, the pointer is
1.36904 -+ the same as that passed to bfd_make_section. */
1.36905 -+ const char *name;
1.36906 -+
1.36907 -+ /* A unique sequence number. */
1.36908 -+ int id;
1.36909 -+
1.36910 -+ /* Which section in the bfd; 0..n-1 as sections are created in a bfd. */
1.36911 -+ int index;
1.36912 -+
1.36913 -+ /* The next section in the list belonging to the BFD, or NULL. */
1.36914 -+ struct bfd_section *next;
1.36915 -+
1.36916 -+ /* The previous section in the list belonging to the BFD, or NULL. */
1.36917 -+ struct bfd_section *prev;
1.36918 -+
1.36919 -+ /* The field flags contains attributes of the section. Some
1.36920 -+ flags are read in from the object file, and some are
1.36921 -+ synthesized from other information. */
1.36922 -+ flagword flags;
1.36923 -+
1.36924 -+#define SEC_NO_FLAGS 0x000
1.36925 -+
1.36926 -+ /* Tells the OS to allocate space for this section when loading.
1.36927 -+ This is clear for a section containing debug information only. */
1.36928 -+#define SEC_ALLOC 0x001
1.36929 -+
1.36930 -+ /* Tells the OS to load the section from the file when loading.
1.36931 -+ This is clear for a .bss section. */
1.36932 -+#define SEC_LOAD 0x002
1.36933 -+
1.36934 -+ /* The section contains data still to be relocated, so there is
1.36935 -+ some relocation information too. */
1.36936 -+#define SEC_RELOC 0x004
1.36937 -+
1.36938 -+ /* A signal to the OS that the section contains read only data. */
1.36939 -+#define SEC_READONLY 0x008
1.36940 -+
1.36941 -+ /* The section contains code only. */
1.36942 -+#define SEC_CODE 0x010
1.36943 -+
1.36944 -+ /* The section contains data only. */
1.36945 -+#define SEC_DATA 0x020
1.36946 -+
1.36947 -+ /* The section will reside in ROM. */
1.36948 -+#define SEC_ROM 0x040
1.36949 -+
1.36950 -+ /* The section contains constructor information. This section
1.36951 -+ type is used by the linker to create lists of constructors and
1.36952 -+ destructors used by <<g++>>. When a back end sees a symbol
1.36953 -+ which should be used in a constructor list, it creates a new
1.36954 -+ section for the type of name (e.g., <<__CTOR_LIST__>>), attaches
1.36955 -+ the symbol to it, and builds a relocation. To build the lists
1.36956 -+ of constructors, all the linker has to do is catenate all the
1.36957 -+ sections called <<__CTOR_LIST__>> and relocate the data
1.36958 -+ contained within - exactly the operations it would peform on
1.36959 -+ standard data. */
1.36960 -+#define SEC_CONSTRUCTOR 0x080
1.36961 -+
1.36962 -+ /* The section has contents - a data section could be
1.36963 -+ <<SEC_ALLOC>> | <<SEC_HAS_CONTENTS>>; a debug section could be
1.36964 -+ <<SEC_HAS_CONTENTS>> */
1.36965 -+#define SEC_HAS_CONTENTS 0x100
1.36966 -+
1.36967 -+ /* An instruction to the linker to not output the section
1.36968 -+ even if it has information which would normally be written. */
1.36969 -+#define SEC_NEVER_LOAD 0x200
1.36970 -+
1.36971 -+ /* The section contains thread local data. */
1.36972 -+#define SEC_THREAD_LOCAL 0x400
1.36973 -+
1.36974 -+ /* The section has GOT references. This flag is only for the
1.36975 -+ linker, and is currently only used by the elf32-hppa back end.
1.36976 -+ It will be set if global offset table references were detected
1.36977 -+ in this section, which indicate to the linker that the section
1.36978 -+ contains PIC code, and must be handled specially when doing a
1.36979 -+ static link. */
1.36980 -+#define SEC_HAS_GOT_REF 0x800
1.36981 -+
1.36982 -+ /* The section contains common symbols (symbols may be defined
1.36983 -+ multiple times, the value of a symbol is the amount of
1.36984 -+ space it requires, and the largest symbol value is the one
1.36985 -+ used). Most targets have exactly one of these (which we
1.36986 -+ translate to bfd_com_section_ptr), but ECOFF has two. */
1.36987 -+#define SEC_IS_COMMON 0x1000
1.36988 -+
1.36989 -+ /* The section contains only debugging information. For
1.36990 -+ example, this is set for ELF .debug and .stab sections.
1.36991 -+ strip tests this flag to see if a section can be
1.36992 -+ discarded. */
1.36993 -+#define SEC_DEBUGGING 0x2000
1.36994 -+
1.36995 -+ /* The contents of this section are held in memory pointed to
1.36996 -+ by the contents field. This is checked by bfd_get_section_contents,
1.36997 -+ and the data is retrieved from memory if appropriate. */
1.36998 -+#define SEC_IN_MEMORY 0x4000
1.36999 -+
1.37000 -+ /* The contents of this section are to be excluded by the
1.37001 -+ linker for executable and shared objects unless those
1.37002 -+ objects are to be further relocated. */
1.37003 -+#define SEC_EXCLUDE 0x8000
1.37004 -+
1.37005 -+ /* The contents of this section are to be sorted based on the sum of
1.37006 -+ the symbol and addend values specified by the associated relocation
1.37007 -+ entries. Entries without associated relocation entries will be
1.37008 -+ appended to the end of the section in an unspecified order. */
1.37009 -+#define SEC_SORT_ENTRIES 0x10000
1.37010 -+
1.37011 -+ /* When linking, duplicate sections of the same name should be
1.37012 -+ discarded, rather than being combined into a single section as
1.37013 -+ is usually done. This is similar to how common symbols are
1.37014 -+ handled. See SEC_LINK_DUPLICATES below. */
1.37015 -+#define SEC_LINK_ONCE 0x20000
1.37016 -+
1.37017 -+ /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
1.37018 -+ should handle duplicate sections. */
1.37019 -+#define SEC_LINK_DUPLICATES 0x40000
1.37020 -+
1.37021 -+ /* This value for SEC_LINK_DUPLICATES means that duplicate
1.37022 -+ sections with the same name should simply be discarded. */
1.37023 -+#define SEC_LINK_DUPLICATES_DISCARD 0x0
1.37024 -+
1.37025 -+ /* This value for SEC_LINK_DUPLICATES means that the linker
1.37026 -+ should warn if there are any duplicate sections, although
1.37027 -+ it should still only link one copy. */
1.37028 -+#define SEC_LINK_DUPLICATES_ONE_ONLY 0x80000
1.37029 -+
1.37030 -+ /* This value for SEC_LINK_DUPLICATES means that the linker
1.37031 -+ should warn if any duplicate sections are a different size. */
1.37032 -+#define SEC_LINK_DUPLICATES_SAME_SIZE 0x100000
1.37033 -+
1.37034 -+ /* This value for SEC_LINK_DUPLICATES means that the linker
1.37035 -+ should warn if any duplicate sections contain different
1.37036 -+ contents. */
1.37037 -+#define SEC_LINK_DUPLICATES_SAME_CONTENTS \
1.37038 -+ (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE)
1.37039 -+
1.37040 -+ /* This section was created by the linker as part of dynamic
1.37041 -+ relocation or other arcane processing. It is skipped when
1.37042 -+ going through the first-pass output, trusting that someone
1.37043 -+ else up the line will take care of it later. */
1.37044 -+#define SEC_LINKER_CREATED 0x200000
1.37045 -+
1.37046 -+ /* This section should not be subject to garbage collection.
1.37047 -+ Also set to inform the linker that this section should not be
1.37048 -+ listed in the link map as discarded. */
1.37049 -+#define SEC_KEEP 0x400000
1.37050 -+
1.37051 -+ /* This section contains "short" data, and should be placed
1.37052 -+ "near" the GP. */
1.37053 -+#define SEC_SMALL_DATA 0x800000
1.37054 -+
1.37055 -+ /* Attempt to merge identical entities in the section.
1.37056 -+ Entity size is given in the entsize field. */
1.37057 -+#define SEC_MERGE 0x1000000
1.37058 -+
1.37059 -+ /* If given with SEC_MERGE, entities to merge are zero terminated
1.37060 -+ strings where entsize specifies character size instead of fixed
1.37061 -+ size entries. */
1.37062 -+#define SEC_STRINGS 0x2000000
1.37063 -+
1.37064 -+ /* This section contains data about section groups. */
1.37065 -+#define SEC_GROUP 0x4000000
1.37066 -+
1.37067 -+ /* The section is a COFF shared library section. This flag is
1.37068 -+ only for the linker. If this type of section appears in
1.37069 -+ the input file, the linker must copy it to the output file
1.37070 -+ without changing the vma or size. FIXME: Although this
1.37071 -+ was originally intended to be general, it really is COFF
1.37072 -+ specific (and the flag was renamed to indicate this). It
1.37073 -+ might be cleaner to have some more general mechanism to
1.37074 -+ allow the back end to control what the linker does with
1.37075 -+ sections. */
1.37076 -+#define SEC_COFF_SHARED_LIBRARY 0x10000000
1.37077 -+
1.37078 -+ /* This section contains data which may be shared with other
1.37079 -+ executables or shared objects. This is for COFF only. */
1.37080 -+#define SEC_COFF_SHARED 0x20000000
1.37081 -+
1.37082 -+ /* When a section with this flag is being linked, then if the size of
1.37083 -+ the input section is less than a page, it should not cross a page
1.37084 -+ boundary. If the size of the input section is one page or more,
1.37085 -+ it should be aligned on a page boundary. This is for TI
1.37086 -+ TMS320C54X only. */
1.37087 -+#define SEC_TIC54X_BLOCK 0x40000000
1.37088 -+
1.37089 -+ /* Conditionally link this section; do not link if there are no
1.37090 -+ references found to any symbol in the section. This is for TI
1.37091 -+ TMS320C54X only. */
1.37092 -+#define SEC_TIC54X_CLINK 0x80000000
1.37093 -+
1.37094 -+ /* End of section flags. */
1.37095 -+
1.37096 -+ /* Some internal packed boolean fields. */
1.37097 -+
1.37098 -+ /* See the vma field. */
1.37099 -+ unsigned int user_set_vma : 1;
1.37100 -+
1.37101 -+ /* A mark flag used by some of the linker backends. */
1.37102 -+ unsigned int linker_mark : 1;
1.37103 -+
1.37104 -+ /* Another mark flag used by some of the linker backends. Set for
1.37105 -+ output sections that have an input section. */
1.37106 -+ unsigned int linker_has_input : 1;
1.37107 -+
1.37108 -+ /* Mark flags used by some linker backends for garbage collection. */
1.37109 -+ unsigned int gc_mark : 1;
1.37110 -+ unsigned int gc_mark_from_eh : 1;
1.37111 -+
1.37112 -+ /* The following flags are used by the ELF linker. */
1.37113 -+
1.37114 -+ /* Mark sections which have been allocated to segments. */
1.37115 -+ unsigned int segment_mark : 1;
1.37116 -+
1.37117 -+ /* Type of sec_info information. */
1.37118 -+ unsigned int sec_info_type:3;
1.37119 -+#define ELF_INFO_TYPE_NONE 0
1.37120 -+#define ELF_INFO_TYPE_STABS 1
1.37121 -+#define ELF_INFO_TYPE_MERGE 2
1.37122 -+#define ELF_INFO_TYPE_EH_FRAME 3
1.37123 -+#define ELF_INFO_TYPE_JUST_SYMS 4
1.37124 -+
1.37125 -+ /* Nonzero if this section uses RELA relocations, rather than REL. */
1.37126 -+ unsigned int use_rela_p:1;
1.37127 -+
1.37128 -+ /* Bits used by various backends. The generic code doesn't touch
1.37129 -+ these fields. */
1.37130 -+
1.37131 -+ /* Nonzero if this section has TLS related relocations. */
1.37132 -+ unsigned int has_tls_reloc:1;
1.37133 -+
1.37134 -+ /* Nonzero if this section has a gp reloc. */
1.37135 -+ unsigned int has_gp_reloc:1;
1.37136 -+
1.37137 -+ /* Nonzero if this section needs the relax finalize pass. */
1.37138 -+ unsigned int need_finalize_relax:1;
1.37139 -+
1.37140 -+ /* Whether relocations have been processed. */
1.37141 -+ unsigned int reloc_done : 1;
1.37142 -+
1.37143 -+ /* End of internal packed boolean fields. */
1.37144 -+
1.37145 -+ /* The virtual memory address of the section - where it will be
1.37146 -+ at run time. The symbols are relocated against this. The
1.37147 -+ user_set_vma flag is maintained by bfd; if it's not set, the
1.37148 -+ backend can assign addresses (for example, in <<a.out>>, where
1.37149 -+ the default address for <<.data>> is dependent on the specific
1.37150 -+ target and various flags). */
1.37151 -+ bfd_vma vma;
1.37152 -+
1.37153 -+ /* The load address of the section - where it would be in a
1.37154 -+ rom image; really only used for writing section header
1.37155 -+ information. */
1.37156 -+ bfd_vma lma;
1.37157 -+
1.37158 -+ /* The size of the section in octets, as it will be output.
1.37159 -+ Contains a value even if the section has no contents (e.g., the
1.37160 -+ size of <<.bss>>). */
1.37161 -+ bfd_size_type size;
1.37162 -+
1.37163 -+ /* For input sections, the original size on disk of the section, in
1.37164 -+ octets. This field is used by the linker relaxation code. It is
1.37165 -+ currently only set for sections where the linker relaxation scheme
1.37166 -+ doesn't cache altered section and reloc contents (stabs, eh_frame,
1.37167 -+ SEC_MERGE, some coff relaxing targets), and thus the original size
1.37168 -+ needs to be kept to read the section multiple times.
1.37169 -+ For output sections, rawsize holds the section size calculated on
1.37170 -+ a previous linker relaxation pass. */
1.37171 -+ bfd_size_type rawsize;
1.37172 -+
1.37173 -+ /* If this section is going to be output, then this value is the
1.37174 -+ offset in *bytes* into the output section of the first byte in the
1.37175 -+ input section (byte ==> smallest addressable unit on the
1.37176 -+ target). In most cases, if this was going to start at the
1.37177 -+ 100th octet (8-bit quantity) in the output section, this value
1.37178 -+ would be 100. However, if the target byte size is 16 bits
1.37179 -+ (bfd_octets_per_byte is "2"), this value would be 50. */
1.37180 -+ bfd_vma output_offset;
1.37181 -+
1.37182 -+ /* The output section through which to map on output. */
1.37183 -+ struct bfd_section *output_section;
1.37184 -+
1.37185 -+ /* The alignment requirement of the section, as an exponent of 2 -
1.37186 -+ e.g., 3 aligns to 2^3 (or 8). */
1.37187 -+ unsigned int alignment_power;
1.37188 -+
1.37189 -+ /* If an input section, a pointer to a vector of relocation
1.37190 -+ records for the data in this section. */
1.37191 -+ struct reloc_cache_entry *relocation;
1.37192 -+
1.37193 -+ /* If an output section, a pointer to a vector of pointers to
1.37194 -+ relocation records for the data in this section. */
1.37195 -+ struct reloc_cache_entry **orelocation;
1.37196 -+
1.37197 -+ /* The number of relocation records in one of the above. */
1.37198 -+ unsigned reloc_count;
1.37199 -+
1.37200 -+ /* Information below is back end specific - and not always used
1.37201 -+ or updated. */
1.37202 -+
1.37203 -+ /* File position of section data. */
1.37204 -+ file_ptr filepos;
1.37205 -+
1.37206 -+ /* File position of relocation info. */
1.37207 -+ file_ptr rel_filepos;
1.37208 -+
1.37209 -+ /* File position of line data. */
1.37210 -+ file_ptr line_filepos;
1.37211 -+
1.37212 -+ /* Pointer to data for applications. */
1.37213 -+ void *userdata;
1.37214 -+
1.37215 -+ /* If the SEC_IN_MEMORY flag is set, this points to the actual
1.37216 -+ contents. */
1.37217 -+ unsigned char *contents;
1.37218 -+
1.37219 -+ /* Attached line number information. */
1.37220 -+ alent *lineno;
1.37221 -+
1.37222 -+ /* Number of line number records. */
1.37223 -+ unsigned int lineno_count;
1.37224 -+
1.37225 -+ /* Entity size for merging purposes. */
1.37226 -+ unsigned int entsize;
1.37227 -+
1.37228 -+ /* Points to the kept section if this section is a link-once section,
1.37229 -+ and is discarded. */
1.37230 -+ struct bfd_section *kept_section;
1.37231 -+
1.37232 -+ /* When a section is being output, this value changes as more
1.37233 -+ linenumbers are written out. */
1.37234 -+ file_ptr moving_line_filepos;
1.37235 -+
1.37236 -+ /* What the section number is in the target world. */
1.37237 -+ int target_index;
1.37238 -+
1.37239 -+ void *used_by_bfd;
1.37240 -+
1.37241 -+ /* If this is a constructor section then here is a list of the
1.37242 -+ relocations created to relocate items within it. */
1.37243 -+ struct relent_chain *constructor_chain;
1.37244 -+
1.37245 -+ /* The BFD which owns the section. */
1.37246 -+ bfd *owner;
1.37247 -+
1.37248 -+ /* A symbol which points at this section only. */
1.37249 -+ struct bfd_symbol *symbol;
1.37250 -+ struct bfd_symbol **symbol_ptr_ptr;
1.37251 -+
1.37252 -+ /* Early in the link process, map_head and map_tail are used to build
1.37253 -+ a list of input sections attached to an output section. Later,
1.37254 -+ output sections use these fields for a list of bfd_link_order
1.37255 -+ structs. */
1.37256 -+ union {
1.37257 -+ struct bfd_link_order *link_order;
1.37258 -+ struct bfd_section *s;
1.37259 -+ } map_head, map_tail;
1.37260 -+} asection;
1.37261 -+
1.37262 -+/* These sections are global, and are managed by BFD. The application
1.37263 -+ and target back end are not permitted to change the values in
1.37264 -+ these sections. New code should use the section_ptr macros rather
1.37265 -+ than referring directly to the const sections. The const sections
1.37266 -+ may eventually vanish. */
1.37267 -+#define BFD_ABS_SECTION_NAME "*ABS*"
1.37268 -+#define BFD_UND_SECTION_NAME "*UND*"
1.37269 -+#define BFD_COM_SECTION_NAME "*COM*"
1.37270 -+#define BFD_IND_SECTION_NAME "*IND*"
1.37271 -+
1.37272 -+/* The absolute section. */
1.37273 -+extern asection bfd_abs_section;
1.37274 -+#define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
1.37275 -+#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
1.37276 -+/* Pointer to the undefined section. */
1.37277 -+extern asection bfd_und_section;
1.37278 -+#define bfd_und_section_ptr ((asection *) &bfd_und_section)
1.37279 -+#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
1.37280 -+/* Pointer to the common section. */
1.37281 -+extern asection bfd_com_section;
1.37282 -+#define bfd_com_section_ptr ((asection *) &bfd_com_section)
1.37283 -+/* Pointer to the indirect section. */
1.37284 -+extern asection bfd_ind_section;
1.37285 -+#define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
1.37286 -+#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
1.37287 -+
1.37288 -+#define bfd_is_const_section(SEC) \
1.37289 -+ ( ((SEC) == bfd_abs_section_ptr) \
1.37290 -+ || ((SEC) == bfd_und_section_ptr) \
1.37291 -+ || ((SEC) == bfd_com_section_ptr) \
1.37292 -+ || ((SEC) == bfd_ind_section_ptr))
1.37293 -+
1.37294 -+/* Macros to handle insertion and deletion of a bfd's sections. These
1.37295 -+ only handle the list pointers, ie. do not adjust section_count,
1.37296 -+ target_index etc. */
1.37297 -+#define bfd_section_list_remove(ABFD, S) \
1.37298 -+ do \
1.37299 -+ { \
1.37300 -+ asection *_s = S; \
1.37301 -+ asection *_next = _s->next; \
1.37302 -+ asection *_prev = _s->prev; \
1.37303 -+ if (_prev) \
1.37304 -+ _prev->next = _next; \
1.37305 -+ else \
1.37306 -+ (ABFD)->sections = _next; \
1.37307 -+ if (_next) \
1.37308 -+ _next->prev = _prev; \
1.37309 -+ else \
1.37310 -+ (ABFD)->section_last = _prev; \
1.37311 -+ } \
1.37312 -+ while (0)
1.37313 -+#define bfd_section_list_append(ABFD, S) \
1.37314 -+ do \
1.37315 -+ { \
1.37316 -+ asection *_s = S; \
1.37317 -+ bfd *_abfd = ABFD; \
1.37318 -+ _s->next = NULL; \
1.37319 -+ if (_abfd->section_last) \
1.37320 -+ { \
1.37321 -+ _s->prev = _abfd->section_last; \
1.37322 -+ _abfd->section_last->next = _s; \
1.37323 -+ } \
1.37324 -+ else \
1.37325 -+ { \
1.37326 -+ _s->prev = NULL; \
1.37327 -+ _abfd->sections = _s; \
1.37328 -+ } \
1.37329 -+ _abfd->section_last = _s; \
1.37330 -+ } \
1.37331 -+ while (0)
1.37332 -+#define bfd_section_list_prepend(ABFD, S) \
1.37333 -+ do \
1.37334 -+ { \
1.37335 -+ asection *_s = S; \
1.37336 -+ bfd *_abfd = ABFD; \
1.37337 -+ _s->prev = NULL; \
1.37338 -+ if (_abfd->sections) \
1.37339 -+ { \
1.37340 -+ _s->next = _abfd->sections; \
1.37341 -+ _abfd->sections->prev = _s; \
1.37342 -+ } \
1.37343 -+ else \
1.37344 -+ { \
1.37345 -+ _s->next = NULL; \
1.37346 -+ _abfd->section_last = _s; \
1.37347 -+ } \
1.37348 -+ _abfd->sections = _s; \
1.37349 -+ } \
1.37350 -+ while (0)
1.37351 -+#define bfd_section_list_insert_after(ABFD, A, S) \
1.37352 -+ do \
1.37353 -+ { \
1.37354 -+ asection *_a = A; \
1.37355 -+ asection *_s = S; \
1.37356 -+ asection *_next = _a->next; \
1.37357 -+ _s->next = _next; \
1.37358 -+ _s->prev = _a; \
1.37359 -+ _a->next = _s; \
1.37360 -+ if (_next) \
1.37361 -+ _next->prev = _s; \
1.37362 -+ else \
1.37363 -+ (ABFD)->section_last = _s; \
1.37364 -+ } \
1.37365 -+ while (0)
1.37366 -+#define bfd_section_list_insert_before(ABFD, B, S) \
1.37367 -+ do \
1.37368 -+ { \
1.37369 -+ asection *_b = B; \
1.37370 -+ asection *_s = S; \
1.37371 -+ asection *_prev = _b->prev; \
1.37372 -+ _s->prev = _prev; \
1.37373 -+ _s->next = _b; \
1.37374 -+ _b->prev = _s; \
1.37375 -+ if (_prev) \
1.37376 -+ _prev->next = _s; \
1.37377 -+ else \
1.37378 -+ (ABFD)->sections = _s; \
1.37379 -+ } \
1.37380 -+ while (0)
1.37381 -+#define bfd_section_removed_from_list(ABFD, S) \
1.37382 -+ ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S))
1.37383 -+
1.37384 -+#define BFD_FAKE_SECTION(SEC, FLAGS, SYM, NAME, IDX) \
1.37385 -+ /* name, id, index, next, prev, flags, user_set_vma, */ \
1.37386 -+ { NAME, IDX, 0, NULL, NULL, FLAGS, 0, \
1.37387 -+ \
1.37388 -+ /* linker_mark, linker_has_input, gc_mark, gc_mark_from_eh, */ \
1.37389 -+ 0, 0, 1, 0, \
1.37390 -+ \
1.37391 -+ /* segment_mark, sec_info_type, use_rela_p, has_tls_reloc, */ \
1.37392 -+ 0, 0, 0, 0, \
1.37393 -+ \
1.37394 -+ /* has_gp_reloc, need_finalize_relax, reloc_done, */ \
1.37395 -+ 0, 0, 0, \
1.37396 -+ \
1.37397 -+ /* vma, lma, size, rawsize */ \
1.37398 -+ 0, 0, 0, 0, \
1.37399 -+ \
1.37400 -+ /* output_offset, output_section, alignment_power, */ \
1.37401 -+ 0, (struct bfd_section *) &SEC, 0, \
1.37402 -+ \
1.37403 -+ /* relocation, orelocation, reloc_count, filepos, rel_filepos, */ \
1.37404 -+ NULL, NULL, 0, 0, 0, \
1.37405 -+ \
1.37406 -+ /* line_filepos, userdata, contents, lineno, lineno_count, */ \
1.37407 -+ 0, NULL, NULL, NULL, 0, \
1.37408 -+ \
1.37409 -+ /* entsize, kept_section, moving_line_filepos, */ \
1.37410 -+ 0, NULL, 0, \
1.37411 -+ \
1.37412 -+ /* target_index, used_by_bfd, constructor_chain, owner, */ \
1.37413 -+ 0, NULL, NULL, NULL, \
1.37414 -+ \
1.37415 -+ /* symbol, symbol_ptr_ptr, */ \
1.37416 -+ (struct bfd_symbol *) SYM, &SEC.symbol, \
1.37417 -+ \
1.37418 -+ /* map_head, map_tail */ \
1.37419 -+ { NULL }, { NULL } \
1.37420 -+ }
1.37421 -+
1.37422 -+void bfd_section_list_clear (bfd *);
1.37423 -+
1.37424 -+asection *bfd_get_section_by_name (bfd *abfd, const char *name);
1.37425 -+
1.37426 -+asection *bfd_get_section_by_name_if
1.37427 -+ (bfd *abfd,
1.37428 -+ const char *name,
1.37429 -+ bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj),
1.37430 -+ void *obj);
1.37431 -+
1.37432 -+char *bfd_get_unique_section_name
1.37433 -+ (bfd *abfd, const char *templat, int *count);
1.37434 -+
1.37435 -+asection *bfd_make_section_old_way (bfd *abfd, const char *name);
1.37436 -+
1.37437 -+asection *bfd_make_section_anyway_with_flags
1.37438 -+ (bfd *abfd, const char *name, flagword flags);
1.37439 -+
1.37440 -+asection *bfd_make_section_anyway (bfd *abfd, const char *name);
1.37441 -+
1.37442 -+asection *bfd_make_section_with_flags
1.37443 -+ (bfd *, const char *name, flagword flags);
1.37444 -+
1.37445 -+asection *bfd_make_section (bfd *, const char *name);
1.37446 -+
1.37447 -+bfd_boolean bfd_set_section_flags
1.37448 -+ (bfd *abfd, asection *sec, flagword flags);
1.37449 -+
1.37450 -+void bfd_map_over_sections
1.37451 -+ (bfd *abfd,
1.37452 -+ void (*func) (bfd *abfd, asection *sect, void *obj),
1.37453 -+ void *obj);
1.37454 -+
1.37455 -+asection *bfd_sections_find_if
1.37456 -+ (bfd *abfd,
1.37457 -+ bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
1.37458 -+ void *obj);
1.37459 -+
1.37460 -+bfd_boolean bfd_set_section_size
1.37461 -+ (bfd *abfd, asection *sec, bfd_size_type val);
1.37462 -+
1.37463 -+bfd_boolean bfd_set_section_contents
1.37464 -+ (bfd *abfd, asection *section, const void *data,
1.37465 -+ file_ptr offset, bfd_size_type count);
1.37466 -+
1.37467 -+bfd_boolean bfd_get_section_contents
1.37468 -+ (bfd *abfd, asection *section, void *location, file_ptr offset,
1.37469 -+ bfd_size_type count);
1.37470 -+
1.37471 -+bfd_boolean bfd_malloc_and_get_section
1.37472 -+ (bfd *abfd, asection *section, bfd_byte **buf);
1.37473 -+
1.37474 -+bfd_boolean bfd_copy_private_section_data
1.37475 -+ (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
1.37476 -+
1.37477 -+#define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
1.37478 -+ BFD_SEND (obfd, _bfd_copy_private_section_data, \
1.37479 -+ (ibfd, isection, obfd, osection))
1.37480 -+bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
1.37481 -+
1.37482 -+bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
1.37483 -+
1.37484 -+/* Extracted from archures.c. */
1.37485 -+enum bfd_architecture
1.37486 -+{
1.37487 -+ bfd_arch_unknown, /* File arch not known. */
1.37488 -+ bfd_arch_obscure, /* Arch known, not one of these. */
1.37489 -+ bfd_arch_m68k, /* Motorola 68xxx */
1.37490 -+#define bfd_mach_m68000 1
1.37491 -+#define bfd_mach_m68008 2
1.37492 -+#define bfd_mach_m68010 3
1.37493 -+#define bfd_mach_m68020 4
1.37494 -+#define bfd_mach_m68030 5
1.37495 -+#define bfd_mach_m68040 6
1.37496 -+#define bfd_mach_m68060 7
1.37497 -+#define bfd_mach_cpu32 8
1.37498 -+#define bfd_mach_fido 9
1.37499 -+#define bfd_mach_mcf_isa_a_nodiv 10
1.37500 -+#define bfd_mach_mcf_isa_a 11
1.37501 -+#define bfd_mach_mcf_isa_a_mac 12
1.37502 -+#define bfd_mach_mcf_isa_a_emac 13
1.37503 -+#define bfd_mach_mcf_isa_aplus 14
1.37504 -+#define bfd_mach_mcf_isa_aplus_mac 15
1.37505 -+#define bfd_mach_mcf_isa_aplus_emac 16
1.37506 -+#define bfd_mach_mcf_isa_b_nousp 17
1.37507 -+#define bfd_mach_mcf_isa_b_nousp_mac 18
1.37508 -+#define bfd_mach_mcf_isa_b_nousp_emac 19
1.37509 -+#define bfd_mach_mcf_isa_b 20
1.37510 -+#define bfd_mach_mcf_isa_b_mac 21
1.37511 -+#define bfd_mach_mcf_isa_b_emac 22
1.37512 -+#define bfd_mach_mcf_isa_b_float 23
1.37513 -+#define bfd_mach_mcf_isa_b_float_mac 24
1.37514 -+#define bfd_mach_mcf_isa_b_float_emac 25
1.37515 -+#define bfd_mach_mcf_isa_c 26
1.37516 -+#define bfd_mach_mcf_isa_c_mac 27
1.37517 -+#define bfd_mach_mcf_isa_c_emac 28
1.37518 -+ bfd_arch_vax, /* DEC Vax */
1.37519 -+ bfd_arch_i960, /* Intel 960 */
1.37520 -+ /* The order of the following is important.
1.37521 -+ lower number indicates a machine type that
1.37522 -+ only accepts a subset of the instructions
1.37523 -+ available to machines with higher numbers.
1.37524 -+ The exception is the "ca", which is
1.37525 -+ incompatible with all other machines except
1.37526 -+ "core". */
1.37527 -+
1.37528 -+#define bfd_mach_i960_core 1
1.37529 -+#define bfd_mach_i960_ka_sa 2
1.37530 -+#define bfd_mach_i960_kb_sb 3
1.37531 -+#define bfd_mach_i960_mc 4
1.37532 -+#define bfd_mach_i960_xa 5
1.37533 -+#define bfd_mach_i960_ca 6
1.37534 -+#define bfd_mach_i960_jx 7
1.37535 -+#define bfd_mach_i960_hx 8
1.37536 -+
1.37537 -+ bfd_arch_or32, /* OpenRISC 32 */
1.37538 -+
1.37539 -+ bfd_arch_sparc, /* SPARC */
1.37540 -+#define bfd_mach_sparc 1
1.37541 -+/* The difference between v8plus and v9 is that v9 is a true 64 bit env. */
1.37542 -+#define bfd_mach_sparc_sparclet 2
1.37543 -+#define bfd_mach_sparc_sparclite 3
1.37544 -+#define bfd_mach_sparc_v8plus 4
1.37545 -+#define bfd_mach_sparc_v8plusa 5 /* with ultrasparc add'ns. */
1.37546 -+#define bfd_mach_sparc_sparclite_le 6
1.37547 -+#define bfd_mach_sparc_v9 7
1.37548 -+#define bfd_mach_sparc_v9a 8 /* with ultrasparc add'ns. */
1.37549 -+#define bfd_mach_sparc_v8plusb 9 /* with cheetah add'ns. */
1.37550 -+#define bfd_mach_sparc_v9b 10 /* with cheetah add'ns. */
1.37551 -+/* Nonzero if MACH has the v9 instruction set. */
1.37552 -+#define bfd_mach_sparc_v9_p(mach) \
1.37553 -+ ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
1.37554 -+ && (mach) != bfd_mach_sparc_sparclite_le)
1.37555 -+/* Nonzero if MACH is a 64 bit sparc architecture. */
1.37556 -+#define bfd_mach_sparc_64bit_p(mach) \
1.37557 -+ ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
1.37558 -+ bfd_arch_spu, /* PowerPC SPU */
1.37559 -+#define bfd_mach_spu 256
1.37560 -+ bfd_arch_mips, /* MIPS Rxxxx */
1.37561 -+#define bfd_mach_mips3000 3000
1.37562 -+#define bfd_mach_mips3900 3900
1.37563 -+#define bfd_mach_mips4000 4000
1.37564 -+#define bfd_mach_mips4010 4010
1.37565 -+#define bfd_mach_mips4100 4100
1.37566 -+#define bfd_mach_mips4111 4111
1.37567 -+#define bfd_mach_mips4120 4120
1.37568 -+#define bfd_mach_mips4300 4300
1.37569 -+#define bfd_mach_mips4400 4400
1.37570 -+#define bfd_mach_mips4600 4600
1.37571 -+#define bfd_mach_mips4650 4650
1.37572 -+#define bfd_mach_mips5000 5000
1.37573 -+#define bfd_mach_mips5400 5400
1.37574 -+#define bfd_mach_mips5500 5500
1.37575 -+#define bfd_mach_mips6000 6000
1.37576 -+#define bfd_mach_mips7000 7000
1.37577 -+#define bfd_mach_mips8000 8000
1.37578 -+#define bfd_mach_mips9000 9000
1.37579 -+#define bfd_mach_mips10000 10000
1.37580 -+#define bfd_mach_mips12000 12000
1.37581 -+#define bfd_mach_mips16 16
1.37582 -+#define bfd_mach_mips5 5
1.37583 -+#define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01 */
1.37584 -+#define bfd_mach_mipsisa32 32
1.37585 -+#define bfd_mach_mipsisa32r2 33
1.37586 -+#define bfd_mach_mipsisa64 64
1.37587 -+#define bfd_mach_mipsisa64r2 65
1.37588 -+ bfd_arch_i386, /* Intel 386 */
1.37589 -+#define bfd_mach_i386_i386 1
1.37590 -+#define bfd_mach_i386_i8086 2
1.37591 -+#define bfd_mach_i386_i386_intel_syntax 3
1.37592 -+#define bfd_mach_x86_64 64
1.37593 -+#define bfd_mach_x86_64_intel_syntax 65
1.37594 -+ bfd_arch_we32k, /* AT&T WE32xxx */
1.37595 -+ bfd_arch_tahoe, /* CCI/Harris Tahoe */
1.37596 -+ bfd_arch_i860, /* Intel 860 */
1.37597 -+ bfd_arch_i370, /* IBM 360/370 Mainframes */
1.37598 -+ bfd_arch_romp, /* IBM ROMP PC/RT */
1.37599 -+ bfd_arch_convex, /* Convex */
1.37600 -+ bfd_arch_m88k, /* Motorola 88xxx */
1.37601 -+ bfd_arch_m98k, /* Motorola 98xxx */
1.37602 -+ bfd_arch_pyramid, /* Pyramid Technology */
1.37603 -+ bfd_arch_h8300, /* Renesas H8/300 (formerly Hitachi H8/300) */
1.37604 -+#define bfd_mach_h8300 1
1.37605 -+#define bfd_mach_h8300h 2
1.37606 -+#define bfd_mach_h8300s 3
1.37607 -+#define bfd_mach_h8300hn 4
1.37608 -+#define bfd_mach_h8300sn 5
1.37609 -+#define bfd_mach_h8300sx 6
1.37610 -+#define bfd_mach_h8300sxn 7
1.37611 -+ bfd_arch_pdp11, /* DEC PDP-11 */
1.37612 -+ bfd_arch_powerpc, /* PowerPC */
1.37613 -+#define bfd_mach_ppc 32
1.37614 -+#define bfd_mach_ppc64 64
1.37615 -+#define bfd_mach_ppc_403 403
1.37616 -+#define bfd_mach_ppc_403gc 4030
1.37617 -+#define bfd_mach_ppc_505 505
1.37618 -+#define bfd_mach_ppc_601 601
1.37619 -+#define bfd_mach_ppc_602 602
1.37620 -+#define bfd_mach_ppc_603 603
1.37621 -+#define bfd_mach_ppc_ec603e 6031
1.37622 -+#define bfd_mach_ppc_604 604
1.37623 -+#define bfd_mach_ppc_620 620
1.37624 -+#define bfd_mach_ppc_630 630
1.37625 -+#define bfd_mach_ppc_750 750
1.37626 -+#define bfd_mach_ppc_860 860
1.37627 -+#define bfd_mach_ppc_a35 35
1.37628 -+#define bfd_mach_ppc_rs64ii 642
1.37629 -+#define bfd_mach_ppc_rs64iii 643
1.37630 -+#define bfd_mach_ppc_7400 7400
1.37631 -+#define bfd_mach_ppc_e500 500
1.37632 -+ bfd_arch_rs6000, /* IBM RS/6000 */
1.37633 -+#define bfd_mach_rs6k 6000
1.37634 -+#define bfd_mach_rs6k_rs1 6001
1.37635 -+#define bfd_mach_rs6k_rsc 6003
1.37636 -+#define bfd_mach_rs6k_rs2 6002
1.37637 -+ bfd_arch_hppa, /* HP PA RISC */
1.37638 -+#define bfd_mach_hppa10 10
1.37639 -+#define bfd_mach_hppa11 11
1.37640 -+#define bfd_mach_hppa20 20
1.37641 -+#define bfd_mach_hppa20w 25
1.37642 -+ bfd_arch_d10v, /* Mitsubishi D10V */
1.37643 -+#define bfd_mach_d10v 1
1.37644 -+#define bfd_mach_d10v_ts2 2
1.37645 -+#define bfd_mach_d10v_ts3 3
1.37646 -+ bfd_arch_d30v, /* Mitsubishi D30V */
1.37647 -+ bfd_arch_dlx, /* DLX */
1.37648 -+ bfd_arch_m68hc11, /* Motorola 68HC11 */
1.37649 -+ bfd_arch_m68hc12, /* Motorola 68HC12 */
1.37650 -+#define bfd_mach_m6812_default 0
1.37651 -+#define bfd_mach_m6812 1
1.37652 -+#define bfd_mach_m6812s 2
1.37653 -+ bfd_arch_z8k, /* Zilog Z8000 */
1.37654 -+#define bfd_mach_z8001 1
1.37655 -+#define bfd_mach_z8002 2
1.37656 -+ bfd_arch_h8500, /* Renesas H8/500 (formerly Hitachi H8/500) */
1.37657 -+ bfd_arch_sh, /* Renesas / SuperH SH (formerly Hitachi SH) */
1.37658 -+#define bfd_mach_sh 1
1.37659 -+#define bfd_mach_sh2 0x20
1.37660 -+#define bfd_mach_sh_dsp 0x2d
1.37661 -+#define bfd_mach_sh2a 0x2a
1.37662 -+#define bfd_mach_sh2a_nofpu 0x2b
1.37663 -+#define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
1.37664 -+#define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
1.37665 -+#define bfd_mach_sh2a_or_sh4 0x2a3
1.37666 -+#define bfd_mach_sh2a_or_sh3e 0x2a4
1.37667 -+#define bfd_mach_sh2e 0x2e
1.37668 -+#define bfd_mach_sh3 0x30
1.37669 -+#define bfd_mach_sh3_nommu 0x31
1.37670 -+#define bfd_mach_sh3_dsp 0x3d
1.37671 -+#define bfd_mach_sh3e 0x3e
1.37672 -+#define bfd_mach_sh4 0x40
1.37673 -+#define bfd_mach_sh4_nofpu 0x41
1.37674 -+#define bfd_mach_sh4_nommu_nofpu 0x42
1.37675 -+#define bfd_mach_sh4a 0x4a
1.37676 -+#define bfd_mach_sh4a_nofpu 0x4b
1.37677 -+#define bfd_mach_sh4al_dsp 0x4d
1.37678 -+#define bfd_mach_sh5 0x50
1.37679 -+ bfd_arch_alpha, /* Dec Alpha */
1.37680 -+#define bfd_mach_alpha_ev4 0x10
1.37681 -+#define bfd_mach_alpha_ev5 0x20
1.37682 -+#define bfd_mach_alpha_ev6 0x30
1.37683 -+ bfd_arch_arm, /* Advanced Risc Machines ARM. */
1.37684 -+#define bfd_mach_arm_unknown 0
1.37685 -+#define bfd_mach_arm_2 1
1.37686 -+#define bfd_mach_arm_2a 2
1.37687 -+#define bfd_mach_arm_3 3
1.37688 -+#define bfd_mach_arm_3M 4
1.37689 -+#define bfd_mach_arm_4 5
1.37690 -+#define bfd_mach_arm_4T 6
1.37691 -+#define bfd_mach_arm_5 7
1.37692 -+#define bfd_mach_arm_5T 8
1.37693 -+#define bfd_mach_arm_5TE 9
1.37694 -+#define bfd_mach_arm_XScale 10
1.37695 -+#define bfd_mach_arm_ep9312 11
1.37696 -+#define bfd_mach_arm_iWMMXt 12
1.37697 -+#define bfd_mach_arm_iWMMXt2 13
1.37698 -+ bfd_arch_ns32k, /* National Semiconductors ns32000 */
1.37699 -+ bfd_arch_w65, /* WDC 65816 */
1.37700 -+ bfd_arch_tic30, /* Texas Instruments TMS320C30 */
1.37701 -+ bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X */
1.37702 -+#define bfd_mach_tic3x 30
1.37703 -+#define bfd_mach_tic4x 40
1.37704 -+ bfd_arch_tic54x, /* Texas Instruments TMS320C54X */
1.37705 -+ bfd_arch_tic80, /* TI TMS320c80 (MVP) */
1.37706 -+ bfd_arch_v850, /* NEC V850 */
1.37707 -+#define bfd_mach_v850 1
1.37708 -+#define bfd_mach_v850e 'E'
1.37709 -+#define bfd_mach_v850e1 '1'
1.37710 -+ bfd_arch_arc, /* ARC Cores */
1.37711 -+#define bfd_mach_arc_5 5
1.37712 -+#define bfd_mach_arc_6 6
1.37713 -+#define bfd_mach_arc_7 7
1.37714 -+#define bfd_mach_arc_8 8
1.37715 -+ bfd_arch_m32c, /* Renesas M16C/M32C. */
1.37716 -+#define bfd_mach_m16c 0x75
1.37717 -+#define bfd_mach_m32c 0x78
1.37718 -+ bfd_arch_m32r, /* Renesas M32R (formerly Mitsubishi M32R/D) */
1.37719 -+#define bfd_mach_m32r 1 /* For backwards compatibility. */
1.37720 -+#define bfd_mach_m32rx 'x'
1.37721 -+#define bfd_mach_m32r2 '2'
1.37722 -+ bfd_arch_mn10200, /* Matsushita MN10200 */
1.37723 -+ bfd_arch_mn10300, /* Matsushita MN10300 */
1.37724 -+#define bfd_mach_mn10300 300
1.37725 -+#define bfd_mach_am33 330
1.37726 -+#define bfd_mach_am33_2 332
1.37727 -+ bfd_arch_fr30,
1.37728 -+#define bfd_mach_fr30 0x46523330
1.37729 -+ bfd_arch_frv,
1.37730 -+#define bfd_mach_frv 1
1.37731 -+#define bfd_mach_frvsimple 2
1.37732 -+#define bfd_mach_fr300 300
1.37733 -+#define bfd_mach_fr400 400
1.37734 -+#define bfd_mach_fr450 450
1.37735 -+#define bfd_mach_frvtomcat 499 /* fr500 prototype */
1.37736 -+#define bfd_mach_fr500 500
1.37737 -+#define bfd_mach_fr550 550
1.37738 -+ bfd_arch_mcore,
1.37739 -+ bfd_arch_mep,
1.37740 -+#define bfd_mach_mep 1
1.37741 -+#define bfd_mach_mep_h1 0x6831
1.37742 -+ bfd_arch_ia64, /* HP/Intel ia64 */
1.37743 -+#define bfd_mach_ia64_elf64 64
1.37744 -+#define bfd_mach_ia64_elf32 32
1.37745 -+ bfd_arch_ip2k, /* Ubicom IP2K microcontrollers. */
1.37746 -+#define bfd_mach_ip2022 1
1.37747 -+#define bfd_mach_ip2022ext 2
1.37748 -+ bfd_arch_iq2000, /* Vitesse IQ2000. */
1.37749 -+#define bfd_mach_iq2000 1
1.37750 -+#define bfd_mach_iq10 2
1.37751 -+ bfd_arch_mt,
1.37752 -+#define bfd_mach_ms1 1
1.37753 -+#define bfd_mach_mrisc2 2
1.37754 -+#define bfd_mach_ms2 3
1.37755 -+ bfd_arch_pj,
1.37756 -+ bfd_arch_avr, /* Atmel AVR microcontrollers. */
1.37757 -+#define bfd_mach_avr1 1
1.37758 -+#define bfd_mach_avr2 2
1.37759 -+#define bfd_mach_avr3 3
1.37760 -+#define bfd_mach_avr4 4
1.37761 -+#define bfd_mach_avr5 5
1.37762 -+#define bfd_mach_avr6 6
1.37763 -+ bfd_arch_avr32, /* Atmel AVR32 */
1.37764 -+#define bfd_mach_avr32_ap 7000
1.37765 -+#define bfd_mach_avr32_uc 3000
1.37766 -+#define bfd_mach_avr32_ucr1 3001
1.37767 -+#define bfd_mach_avr32_ucr2 3002
1.37768 -+ bfd_arch_bfin, /* ADI Blackfin */
1.37769 -+#define bfd_mach_bfin 1
1.37770 -+ bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */
1.37771 -+#define bfd_mach_cr16 1
1.37772 -+ bfd_arch_cr16c, /* National Semiconductor CompactRISC. */
1.37773 -+#define bfd_mach_cr16c 1
1.37774 -+ bfd_arch_crx, /* National Semiconductor CRX. */
1.37775 -+#define bfd_mach_crx 1
1.37776 -+ bfd_arch_cris, /* Axis CRIS */
1.37777 -+#define bfd_mach_cris_v0_v10 255
1.37778 -+#define bfd_mach_cris_v32 32
1.37779 -+#define bfd_mach_cris_v10_v32 1032
1.37780 -+ bfd_arch_s390, /* IBM s390 */
1.37781 -+#define bfd_mach_s390_31 31
1.37782 -+#define bfd_mach_s390_64 64
1.37783 -+ bfd_arch_score, /* Sunplus score */
1.37784 -+ bfd_arch_openrisc, /* OpenRISC */
1.37785 -+ bfd_arch_mmix, /* Donald Knuth's educational processor. */
1.37786 -+ bfd_arch_xstormy16,
1.37787 -+#define bfd_mach_xstormy16 1
1.37788 -+ bfd_arch_msp430, /* Texas Instruments MSP430 architecture. */
1.37789 -+#define bfd_mach_msp11 11
1.37790 -+#define bfd_mach_msp110 110
1.37791 -+#define bfd_mach_msp12 12
1.37792 -+#define bfd_mach_msp13 13
1.37793 -+#define bfd_mach_msp14 14
1.37794 -+#define bfd_mach_msp15 15
1.37795 -+#define bfd_mach_msp16 16
1.37796 -+#define bfd_mach_msp21 21
1.37797 -+#define bfd_mach_msp31 31
1.37798 -+#define bfd_mach_msp32 32
1.37799 -+#define bfd_mach_msp33 33
1.37800 -+#define bfd_mach_msp41 41
1.37801 -+#define bfd_mach_msp42 42
1.37802 -+#define bfd_mach_msp43 43
1.37803 -+#define bfd_mach_msp44 44
1.37804 -+ bfd_arch_xc16x, /* Infineon's XC16X Series. */
1.37805 -+#define bfd_mach_xc16x 1
1.37806 -+#define bfd_mach_xc16xl 2
1.37807 -+#define bfd_mach_xc16xs 3
1.37808 -+ bfd_arch_xtensa, /* Tensilica's Xtensa cores. */
1.37809 -+#define bfd_mach_xtensa 1
1.37810 -+ bfd_arch_maxq, /* Dallas MAXQ 10/20 */
1.37811 -+#define bfd_mach_maxq10 10
1.37812 -+#define bfd_mach_maxq20 20
1.37813 -+ bfd_arch_z80,
1.37814 -+#define bfd_mach_z80strict 1 /* No undocumented opcodes. */
1.37815 -+#define bfd_mach_z80 3 /* With ixl, ixh, iyl, and iyh. */
1.37816 -+#define bfd_mach_z80full 7 /* All undocumented instructions. */
1.37817 -+#define bfd_mach_r800 11 /* R800: successor with multiplication. */
1.37818 -+ bfd_arch_last
1.37819 -+ };
1.37820 -+
1.37821 -+typedef struct bfd_arch_info
1.37822 -+{
1.37823 -+ int bits_per_word;
1.37824 -+ int bits_per_address;
1.37825 -+ int bits_per_byte;
1.37826 -+ enum bfd_architecture arch;
1.37827 -+ unsigned long mach;
1.37828 -+ const char *arch_name;
1.37829 -+ const char *printable_name;
1.37830 -+ unsigned int section_align_power;
1.37831 -+ /* TRUE if this is the default machine for the architecture.
1.37832 -+ The default arch should be the first entry for an arch so that
1.37833 -+ all the entries for that arch can be accessed via <<next>>. */
1.37834 -+ bfd_boolean the_default;
1.37835 -+ const struct bfd_arch_info * (*compatible)
1.37836 -+ (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
1.37837 -+
1.37838 -+ bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
1.37839 -+
1.37840 -+ const struct bfd_arch_info *next;
1.37841 -+}
1.37842 -+bfd_arch_info_type;
1.37843 -+
1.37844 -+const char *bfd_printable_name (bfd *abfd);
1.37845 -+
1.37846 -+const bfd_arch_info_type *bfd_scan_arch (const char *string);
1.37847 -+
1.37848 -+const char **bfd_arch_list (void);
1.37849 -+
1.37850 -+const bfd_arch_info_type *bfd_arch_get_compatible
1.37851 -+ (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
1.37852 -+
1.37853 -+void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
1.37854 -+
1.37855 -+enum bfd_architecture bfd_get_arch (bfd *abfd);
1.37856 -+
1.37857 -+unsigned long bfd_get_mach (bfd *abfd);
1.37858 -+
1.37859 -+unsigned int bfd_arch_bits_per_byte (bfd *abfd);
1.37860 -+
1.37861 -+unsigned int bfd_arch_bits_per_address (bfd *abfd);
1.37862 -+
1.37863 -+const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
1.37864 -+
1.37865 -+const bfd_arch_info_type *bfd_lookup_arch
1.37866 -+ (enum bfd_architecture arch, unsigned long machine);
1.37867 -+
1.37868 -+const char *bfd_printable_arch_mach
1.37869 -+ (enum bfd_architecture arch, unsigned long machine);
1.37870 -+
1.37871 -+unsigned int bfd_octets_per_byte (bfd *abfd);
1.37872 -+
1.37873 -+unsigned int bfd_arch_mach_octets_per_byte
1.37874 -+ (enum bfd_architecture arch, unsigned long machine);
1.37875 -+
1.37876 -+/* Extracted from reloc.c. */
1.37877 -+typedef enum bfd_reloc_status
1.37878 -+{
1.37879 -+ /* No errors detected. */
1.37880 -+ bfd_reloc_ok,
1.37881 -+
1.37882 -+ /* The relocation was performed, but there was an overflow. */
1.37883 -+ bfd_reloc_overflow,
1.37884 -+
1.37885 -+ /* The address to relocate was not within the section supplied. */
1.37886 -+ bfd_reloc_outofrange,
1.37887 -+
1.37888 -+ /* Used by special functions. */
1.37889 -+ bfd_reloc_continue,
1.37890 -+
1.37891 -+ /* Unsupported relocation size requested. */
1.37892 -+ bfd_reloc_notsupported,
1.37893 -+
1.37894 -+ /* Unused. */
1.37895 -+ bfd_reloc_other,
1.37896 -+
1.37897 -+ /* The symbol to relocate against was undefined. */
1.37898 -+ bfd_reloc_undefined,
1.37899 -+
1.37900 -+ /* The relocation was performed, but may not be ok - presently
1.37901 -+ generated only when linking i960 coff files with i960 b.out
1.37902 -+ symbols. If this type is returned, the error_message argument
1.37903 -+ to bfd_perform_relocation will be set. */
1.37904 -+ bfd_reloc_dangerous
1.37905 -+ }
1.37906 -+ bfd_reloc_status_type;
1.37907 -+
1.37908 -+
1.37909 -+typedef struct reloc_cache_entry
1.37910 -+{
1.37911 -+ /* A pointer into the canonical table of pointers. */
1.37912 -+ struct bfd_symbol **sym_ptr_ptr;
1.37913 -+
1.37914 -+ /* offset in section. */
1.37915 -+ bfd_size_type address;
1.37916 -+
1.37917 -+ /* addend for relocation value. */
1.37918 -+ bfd_vma addend;
1.37919 -+
1.37920 -+ /* Pointer to how to perform the required relocation. */
1.37921 -+ reloc_howto_type *howto;
1.37922 -+
1.37923 -+}
1.37924 -+arelent;
1.37925 -+
1.37926 -+enum complain_overflow
1.37927 -+{
1.37928 -+ /* Do not complain on overflow. */
1.37929 -+ complain_overflow_dont,
1.37930 -+
1.37931 -+ /* Complain if the value overflows when considered as a signed
1.37932 -+ number one bit larger than the field. ie. A bitfield of N bits
1.37933 -+ is allowed to represent -2**n to 2**n-1. */
1.37934 -+ complain_overflow_bitfield,
1.37935 -+
1.37936 -+ /* Complain if the value overflows when considered as a signed
1.37937 -+ number. */
1.37938 -+ complain_overflow_signed,
1.37939 -+
1.37940 -+ /* Complain if the value overflows when considered as an
1.37941 -+ unsigned number. */
1.37942 -+ complain_overflow_unsigned
1.37943 -+};
1.37944 -+
1.37945 -+struct reloc_howto_struct
1.37946 -+{
1.37947 -+ /* The type field has mainly a documentary use - the back end can
1.37948 -+ do what it wants with it, though normally the back end's
1.37949 -+ external idea of what a reloc number is stored
1.37950 -+ in this field. For example, a PC relative word relocation
1.37951 -+ in a coff environment has the type 023 - because that's
1.37952 -+ what the outside world calls a R_PCRWORD reloc. */
1.37953 -+ unsigned int type;
1.37954 -+
1.37955 -+ /* The value the final relocation is shifted right by. This drops
1.37956 -+ unwanted data from the relocation. */
1.37957 -+ unsigned int rightshift;
1.37958 -+
1.37959 -+ /* The size of the item to be relocated. This is *not* a
1.37960 -+ power-of-two measure. To get the number of bytes operated
1.37961 -+ on by a type of relocation, use bfd_get_reloc_size. */
1.37962 -+ int size;
1.37963 -+
1.37964 -+ /* The number of bits in the item to be relocated. This is used
1.37965 -+ when doing overflow checking. */
1.37966 -+ unsigned int bitsize;
1.37967 -+
1.37968 -+ /* Notes that the relocation is relative to the location in the
1.37969 -+ data section of the addend. The relocation function will
1.37970 -+ subtract from the relocation value the address of the location
1.37971 -+ being relocated. */
1.37972 -+ bfd_boolean pc_relative;
1.37973 -+
1.37974 -+ /* The bit position of the reloc value in the destination.
1.37975 -+ The relocated value is left shifted by this amount. */
1.37976 -+ unsigned int bitpos;
1.37977 -+
1.37978 -+ /* What type of overflow error should be checked for when
1.37979 -+ relocating. */
1.37980 -+ enum complain_overflow complain_on_overflow;
1.37981 -+
1.37982 -+ /* If this field is non null, then the supplied function is
1.37983 -+ called rather than the normal function. This allows really
1.37984 -+ strange relocation methods to be accommodated (e.g., i960 callj
1.37985 -+ instructions). */
1.37986 -+ bfd_reloc_status_type (*special_function)
1.37987 -+ (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
1.37988 -+ bfd *, char **);
1.37989 -+
1.37990 -+ /* The textual name of the relocation type. */
1.37991 -+ char *name;
1.37992 -+
1.37993 -+ /* Some formats record a relocation addend in the section contents
1.37994 -+ rather than with the relocation. For ELF formats this is the
1.37995 -+ distinction between USE_REL and USE_RELA (though the code checks
1.37996 -+ for USE_REL == 1/0). The value of this field is TRUE if the
1.37997 -+ addend is recorded with the section contents; when performing a
1.37998 -+ partial link (ld -r) the section contents (the data) will be
1.37999 -+ modified. The value of this field is FALSE if addends are
1.38000 -+ recorded with the relocation (in arelent.addend); when performing
1.38001 -+ a partial link the relocation will be modified.
1.38002 -+ All relocations for all ELF USE_RELA targets should set this field
1.38003 -+ to FALSE (values of TRUE should be looked on with suspicion).
1.38004 -+ However, the converse is not true: not all relocations of all ELF
1.38005 -+ USE_REL targets set this field to TRUE. Why this is so is peculiar
1.38006 -+ to each particular target. For relocs that aren't used in partial
1.38007 -+ links (e.g. GOT stuff) it doesn't matter what this is set to. */
1.38008 -+ bfd_boolean partial_inplace;
1.38009 -+
1.38010 -+ /* src_mask selects the part of the instruction (or data) to be used
1.38011 -+ in the relocation sum. If the target relocations don't have an
1.38012 -+ addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
1.38013 -+ dst_mask to extract the addend from the section contents. If
1.38014 -+ relocations do have an addend in the reloc, eg. ELF USE_RELA, this
1.38015 -+ field should be zero. Non-zero values for ELF USE_RELA targets are
1.38016 -+ bogus as in those cases the value in the dst_mask part of the
1.38017 -+ section contents should be treated as garbage. */
1.38018 -+ bfd_vma src_mask;
1.38019 -+
1.38020 -+ /* dst_mask selects which parts of the instruction (or data) are
1.38021 -+ replaced with a relocated value. */
1.38022 -+ bfd_vma dst_mask;
1.38023 -+
1.38024 -+ /* When some formats create PC relative instructions, they leave
1.38025 -+ the value of the pc of the place being relocated in the offset
1.38026 -+ slot of the instruction, so that a PC relative relocation can
1.38027 -+ be made just by adding in an ordinary offset (e.g., sun3 a.out).
1.38028 -+ Some formats leave the displacement part of an instruction
1.38029 -+ empty (e.g., m88k bcs); this flag signals the fact. */
1.38030 -+ bfd_boolean pcrel_offset;
1.38031 -+};
1.38032 -+
1.38033 -+#define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
1.38034 -+ { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC }
1.38035 -+#define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
1.38036 -+ HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
1.38037 -+ NAME, FALSE, 0, 0, IN)
1.38038 -+
1.38039 -+#define EMPTY_HOWTO(C) \
1.38040 -+ HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
1.38041 -+ NULL, FALSE, 0, 0, FALSE)
1.38042 -+
1.38043 -+#define HOWTO_PREPARE(relocation, symbol) \
1.38044 -+ { \
1.38045 -+ if (symbol != NULL) \
1.38046 -+ { \
1.38047 -+ if (bfd_is_com_section (symbol->section)) \
1.38048 -+ { \
1.38049 -+ relocation = 0; \
1.38050 -+ } \
1.38051 -+ else \
1.38052 -+ { \
1.38053 -+ relocation = symbol->value; \
1.38054 -+ } \
1.38055 -+ } \
1.38056 -+ }
1.38057 -+
1.38058 -+unsigned int bfd_get_reloc_size (reloc_howto_type *);
1.38059 -+
1.38060 -+typedef struct relent_chain
1.38061 -+{
1.38062 -+ arelent relent;
1.38063 -+ struct relent_chain *next;
1.38064 -+}
1.38065 -+arelent_chain;
1.38066 -+
1.38067 -+bfd_reloc_status_type bfd_check_overflow
1.38068 -+ (enum complain_overflow how,
1.38069 -+ unsigned int bitsize,
1.38070 -+ unsigned int rightshift,
1.38071 -+ unsigned int addrsize,
1.38072 -+ bfd_vma relocation);
1.38073 -+
1.38074 -+bfd_reloc_status_type bfd_perform_relocation
1.38075 -+ (bfd *abfd,
1.38076 -+ arelent *reloc_entry,
1.38077 -+ void *data,
1.38078 -+ asection *input_section,
1.38079 -+ bfd *output_bfd,
1.38080 -+ char **error_message);
1.38081 -+
1.38082 -+bfd_reloc_status_type bfd_install_relocation
1.38083 -+ (bfd *abfd,
1.38084 -+ arelent *reloc_entry,
1.38085 -+ void *data, bfd_vma data_start,
1.38086 -+ asection *input_section,
1.38087 -+ char **error_message);
1.38088 -+
1.38089 -+enum bfd_reloc_code_real {
1.38090 -+ _dummy_first_bfd_reloc_code_real,
1.38091 -+
1.38092 -+
1.38093 -+/* Basic absolute relocations of N bits. */
1.38094 -+ BFD_RELOC_64,
1.38095 -+ BFD_RELOC_32,
1.38096 -+ BFD_RELOC_26,
1.38097 -+ BFD_RELOC_24,
1.38098 -+ BFD_RELOC_16,
1.38099 -+ BFD_RELOC_14,
1.38100 -+ BFD_RELOC_8,
1.38101 -+
1.38102 -+/* PC-relative relocations. Sometimes these are relative to the address
1.38103 -+of the relocation itself; sometimes they are relative to the start of
1.38104 -+the section containing the relocation. It depends on the specific target.
1.38105 -+
1.38106 -+The 24-bit relocation is used in some Intel 960 configurations. */
1.38107 -+ BFD_RELOC_64_PCREL,
1.38108 -+ BFD_RELOC_32_PCREL,
1.38109 -+ BFD_RELOC_24_PCREL,
1.38110 -+ BFD_RELOC_16_PCREL,
1.38111 -+ BFD_RELOC_12_PCREL,
1.38112 -+ BFD_RELOC_8_PCREL,
1.38113 -+
1.38114 -+/* Section relative relocations. Some targets need this for DWARF2. */
1.38115 -+ BFD_RELOC_32_SECREL,
1.38116 -+
1.38117 -+/* For ELF. */
1.38118 -+ BFD_RELOC_32_GOT_PCREL,
1.38119 -+ BFD_RELOC_16_GOT_PCREL,
1.38120 -+ BFD_RELOC_8_GOT_PCREL,
1.38121 -+ BFD_RELOC_32_GOTOFF,
1.38122 -+ BFD_RELOC_16_GOTOFF,
1.38123 -+ BFD_RELOC_LO16_GOTOFF,
1.38124 -+ BFD_RELOC_HI16_GOTOFF,
1.38125 -+ BFD_RELOC_HI16_S_GOTOFF,
1.38126 -+ BFD_RELOC_8_GOTOFF,
1.38127 -+ BFD_RELOC_64_PLT_PCREL,
1.38128 -+ BFD_RELOC_32_PLT_PCREL,
1.38129 -+ BFD_RELOC_24_PLT_PCREL,
1.38130 -+ BFD_RELOC_16_PLT_PCREL,
1.38131 -+ BFD_RELOC_8_PLT_PCREL,
1.38132 -+ BFD_RELOC_64_PLTOFF,
1.38133 -+ BFD_RELOC_32_PLTOFF,
1.38134 -+ BFD_RELOC_16_PLTOFF,
1.38135 -+ BFD_RELOC_LO16_PLTOFF,
1.38136 -+ BFD_RELOC_HI16_PLTOFF,
1.38137 -+ BFD_RELOC_HI16_S_PLTOFF,
1.38138 -+ BFD_RELOC_8_PLTOFF,
1.38139 -+
1.38140 -+/* Relocations used by 68K ELF. */
1.38141 -+ BFD_RELOC_68K_GLOB_DAT,
1.38142 -+ BFD_RELOC_68K_JMP_SLOT,
1.38143 -+ BFD_RELOC_68K_RELATIVE,
1.38144 -+
1.38145 -+/* Linkage-table relative. */
1.38146 -+ BFD_RELOC_32_BASEREL,
1.38147 -+ BFD_RELOC_16_BASEREL,
1.38148 -+ BFD_RELOC_LO16_BASEREL,
1.38149 -+ BFD_RELOC_HI16_BASEREL,
1.38150 -+ BFD_RELOC_HI16_S_BASEREL,
1.38151 -+ BFD_RELOC_8_BASEREL,
1.38152 -+ BFD_RELOC_RVA,
1.38153 -+
1.38154 -+/* Absolute 8-bit relocation, but used to form an address like 0xFFnn. */
1.38155 -+ BFD_RELOC_8_FFnn,
1.38156 -+
1.38157 -+/* These PC-relative relocations are stored as word displacements --
1.38158 -+i.e., byte displacements shifted right two bits. The 30-bit word
1.38159 -+displacement (<<32_PCREL_S2>> -- 32 bits, shifted 2) is used on the
1.38160 -+SPARC. (SPARC tools generally refer to this as <<WDISP30>>.) The
1.38161 -+signed 16-bit displacement is used on the MIPS, and the 23-bit
1.38162 -+displacement is used on the Alpha. */
1.38163 -+ BFD_RELOC_32_PCREL_S2,
1.38164 -+ BFD_RELOC_16_PCREL_S2,
1.38165 -+ BFD_RELOC_23_PCREL_S2,
1.38166 -+
1.38167 -+/* High 22 bits and low 10 bits of 32-bit value, placed into lower bits of
1.38168 -+the target word. These are used on the SPARC. */
1.38169 -+ BFD_RELOC_HI22,
1.38170 -+ BFD_RELOC_LO10,
1.38171 -+
1.38172 -+/* For systems that allocate a Global Pointer register, these are
1.38173 -+displacements off that register. These relocation types are
1.38174 -+handled specially, because the value the register will have is
1.38175 -+decided relatively late. */
1.38176 -+ BFD_RELOC_GPREL16,
1.38177 -+ BFD_RELOC_GPREL32,
1.38178 -+
1.38179 -+/* Reloc types used for i960/b.out. */
1.38180 -+ BFD_RELOC_I960_CALLJ,
1.38181 -+
1.38182 -+/* SPARC ELF relocations. There is probably some overlap with other
1.38183 -+relocation types already defined. */
1.38184 -+ BFD_RELOC_NONE,
1.38185 -+ BFD_RELOC_SPARC_WDISP22,
1.38186 -+ BFD_RELOC_SPARC22,
1.38187 -+ BFD_RELOC_SPARC13,
1.38188 -+ BFD_RELOC_SPARC_GOT10,
1.38189 -+ BFD_RELOC_SPARC_GOT13,
1.38190 -+ BFD_RELOC_SPARC_GOT22,
1.38191 -+ BFD_RELOC_SPARC_PC10,
1.38192 -+ BFD_RELOC_SPARC_PC22,
1.38193 -+ BFD_RELOC_SPARC_WPLT30,
1.38194 -+ BFD_RELOC_SPARC_COPY,
1.38195 -+ BFD_RELOC_SPARC_GLOB_DAT,
1.38196 -+ BFD_RELOC_SPARC_JMP_SLOT,
1.38197 -+ BFD_RELOC_SPARC_RELATIVE,
1.38198 -+ BFD_RELOC_SPARC_UA16,
1.38199 -+ BFD_RELOC_SPARC_UA32,
1.38200 -+ BFD_RELOC_SPARC_UA64,
1.38201 -+
1.38202 -+/* I think these are specific to SPARC a.out (e.g., Sun 4). */
1.38203 -+ BFD_RELOC_SPARC_BASE13,
1.38204 -+ BFD_RELOC_SPARC_BASE22,
1.38205 -+
1.38206 -+/* SPARC64 relocations */
1.38207 -+#define BFD_RELOC_SPARC_64 BFD_RELOC_64
1.38208 -+ BFD_RELOC_SPARC_10,
1.38209 -+ BFD_RELOC_SPARC_11,
1.38210 -+ BFD_RELOC_SPARC_OLO10,
1.38211 -+ BFD_RELOC_SPARC_HH22,
1.38212 -+ BFD_RELOC_SPARC_HM10,
1.38213 -+ BFD_RELOC_SPARC_LM22,
1.38214 -+ BFD_RELOC_SPARC_PC_HH22,
1.38215 -+ BFD_RELOC_SPARC_PC_HM10,
1.38216 -+ BFD_RELOC_SPARC_PC_LM22,
1.38217 -+ BFD_RELOC_SPARC_WDISP16,
1.38218 -+ BFD_RELOC_SPARC_WDISP19,
1.38219 -+ BFD_RELOC_SPARC_7,
1.38220 -+ BFD_RELOC_SPARC_6,
1.38221 -+ BFD_RELOC_SPARC_5,
1.38222 -+#define BFD_RELOC_SPARC_DISP64 BFD_RELOC_64_PCREL
1.38223 -+ BFD_RELOC_SPARC_PLT32,
1.38224 -+ BFD_RELOC_SPARC_PLT64,
1.38225 -+ BFD_RELOC_SPARC_HIX22,
1.38226 -+ BFD_RELOC_SPARC_LOX10,
1.38227 -+ BFD_RELOC_SPARC_H44,
1.38228 -+ BFD_RELOC_SPARC_M44,
1.38229 -+ BFD_RELOC_SPARC_L44,
1.38230 -+ BFD_RELOC_SPARC_REGISTER,
1.38231 -+
1.38232 -+/* SPARC little endian relocation */
1.38233 -+ BFD_RELOC_SPARC_REV32,
1.38234 -+
1.38235 -+/* SPARC TLS relocations */
1.38236 -+ BFD_RELOC_SPARC_TLS_GD_HI22,
1.38237 -+ BFD_RELOC_SPARC_TLS_GD_LO10,
1.38238 -+ BFD_RELOC_SPARC_TLS_GD_ADD,
1.38239 -+ BFD_RELOC_SPARC_TLS_GD_CALL,
1.38240 -+ BFD_RELOC_SPARC_TLS_LDM_HI22,
1.38241 -+ BFD_RELOC_SPARC_TLS_LDM_LO10,
1.38242 -+ BFD_RELOC_SPARC_TLS_LDM_ADD,
1.38243 -+ BFD_RELOC_SPARC_TLS_LDM_CALL,
1.38244 -+ BFD_RELOC_SPARC_TLS_LDO_HIX22,
1.38245 -+ BFD_RELOC_SPARC_TLS_LDO_LOX10,
1.38246 -+ BFD_RELOC_SPARC_TLS_LDO_ADD,
1.38247 -+ BFD_RELOC_SPARC_TLS_IE_HI22,
1.38248 -+ BFD_RELOC_SPARC_TLS_IE_LO10,
1.38249 -+ BFD_RELOC_SPARC_TLS_IE_LD,
1.38250 -+ BFD_RELOC_SPARC_TLS_IE_LDX,
1.38251 -+ BFD_RELOC_SPARC_TLS_IE_ADD,
1.38252 -+ BFD_RELOC_SPARC_TLS_LE_HIX22,
1.38253 -+ BFD_RELOC_SPARC_TLS_LE_LOX10,
1.38254 -+ BFD_RELOC_SPARC_TLS_DTPMOD32,
1.38255 -+ BFD_RELOC_SPARC_TLS_DTPMOD64,
1.38256 -+ BFD_RELOC_SPARC_TLS_DTPOFF32,
1.38257 -+ BFD_RELOC_SPARC_TLS_DTPOFF64,
1.38258 -+ BFD_RELOC_SPARC_TLS_TPOFF32,
1.38259 -+ BFD_RELOC_SPARC_TLS_TPOFF64,
1.38260 -+
1.38261 -+/* SPU Relocations. */
1.38262 -+ BFD_RELOC_SPU_IMM7,
1.38263 -+ BFD_RELOC_SPU_IMM8,
1.38264 -+ BFD_RELOC_SPU_IMM10,
1.38265 -+ BFD_RELOC_SPU_IMM10W,
1.38266 -+ BFD_RELOC_SPU_IMM16,
1.38267 -+ BFD_RELOC_SPU_IMM16W,
1.38268 -+ BFD_RELOC_SPU_IMM18,
1.38269 -+ BFD_RELOC_SPU_PCREL9a,
1.38270 -+ BFD_RELOC_SPU_PCREL9b,
1.38271 -+ BFD_RELOC_SPU_PCREL16,
1.38272 -+ BFD_RELOC_SPU_LO16,
1.38273 -+ BFD_RELOC_SPU_HI16,
1.38274 -+ BFD_RELOC_SPU_PPU32,
1.38275 -+ BFD_RELOC_SPU_PPU64,
1.38276 -+
1.38277 -+/* Alpha ECOFF and ELF relocations. Some of these treat the symbol or
1.38278 -+"addend" in some special way.
1.38279 -+For GPDISP_HI16 ("gpdisp") relocations, the symbol is ignored when
1.38280 -+writing; when reading, it will be the absolute section symbol. The
1.38281 -+addend is the displacement in bytes of the "lda" instruction from
1.38282 -+the "ldah" instruction (which is at the address of this reloc). */
1.38283 -+ BFD_RELOC_ALPHA_GPDISP_HI16,
1.38284 -+
1.38285 -+/* For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
1.38286 -+with GPDISP_HI16 relocs. The addend is ignored when writing the
1.38287 -+relocations out, and is filled in with the file's GP value on
1.38288 -+reading, for convenience. */
1.38289 -+ BFD_RELOC_ALPHA_GPDISP_LO16,
1.38290 -+
1.38291 -+/* The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
1.38292 -+relocation except that there is no accompanying GPDISP_LO16
1.38293 -+relocation. */
1.38294 -+ BFD_RELOC_ALPHA_GPDISP,
1.38295 -+
1.38296 -+/* The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
1.38297 -+the assembler turns it into a LDQ instruction to load the address of
1.38298 -+the symbol, and then fills in a register in the real instruction.
1.38299 -+
1.38300 -+The LITERAL reloc, at the LDQ instruction, refers to the .lita
1.38301 -+section symbol. The addend is ignored when writing, but is filled
1.38302 -+in with the file's GP value on reading, for convenience, as with the
1.38303 -+GPDISP_LO16 reloc.
1.38304 -+
1.38305 -+The ELF_LITERAL reloc is somewhere between 16_GOTOFF and GPDISP_LO16.
1.38306 -+It should refer to the symbol to be referenced, as with 16_GOTOFF,
1.38307 -+but it generates output not based on the position within the .got
1.38308 -+section, but relative to the GP value chosen for the file during the
1.38309 -+final link stage.
1.38310 -+
1.38311 -+The LITUSE reloc, on the instruction using the loaded address, gives
1.38312 -+information to the linker that it might be able to use to optimize
1.38313 -+away some literal section references. The symbol is ignored (read
1.38314 -+as the absolute section symbol), and the "addend" indicates the type
1.38315 -+of instruction using the register:
1.38316 -+1 - "memory" fmt insn
1.38317 -+2 - byte-manipulation (byte offset reg)
1.38318 -+3 - jsr (target of branch) */
1.38319 -+ BFD_RELOC_ALPHA_LITERAL,
1.38320 -+ BFD_RELOC_ALPHA_ELF_LITERAL,
1.38321 -+ BFD_RELOC_ALPHA_LITUSE,
1.38322 -+
1.38323 -+/* The HINT relocation indicates a value that should be filled into the
1.38324 -+"hint" field of a jmp/jsr/ret instruction, for possible branch-
1.38325 -+prediction logic which may be provided on some processors. */
1.38326 -+ BFD_RELOC_ALPHA_HINT,
1.38327 -+
1.38328 -+/* The LINKAGE relocation outputs a linkage pair in the object file,
1.38329 -+which is filled by the linker. */
1.38330 -+ BFD_RELOC_ALPHA_LINKAGE,
1.38331 -+
1.38332 -+/* The CODEADDR relocation outputs a STO_CA in the object file,
1.38333 -+which is filled by the linker. */
1.38334 -+ BFD_RELOC_ALPHA_CODEADDR,
1.38335 -+
1.38336 -+/* The GPREL_HI/LO relocations together form a 32-bit offset from the
1.38337 -+GP register. */
1.38338 -+ BFD_RELOC_ALPHA_GPREL_HI16,
1.38339 -+ BFD_RELOC_ALPHA_GPREL_LO16,
1.38340 -+
1.38341 -+/* Like BFD_RELOC_23_PCREL_S2, except that the source and target must
1.38342 -+share a common GP, and the target address is adjusted for
1.38343 -+STO_ALPHA_STD_GPLOAD. */
1.38344 -+ BFD_RELOC_ALPHA_BRSGP,
1.38345 -+
1.38346 -+/* Alpha thread-local storage relocations. */
1.38347 -+ BFD_RELOC_ALPHA_TLSGD,
1.38348 -+ BFD_RELOC_ALPHA_TLSLDM,
1.38349 -+ BFD_RELOC_ALPHA_DTPMOD64,
1.38350 -+ BFD_RELOC_ALPHA_GOTDTPREL16,
1.38351 -+ BFD_RELOC_ALPHA_DTPREL64,
1.38352 -+ BFD_RELOC_ALPHA_DTPREL_HI16,
1.38353 -+ BFD_RELOC_ALPHA_DTPREL_LO16,
1.38354 -+ BFD_RELOC_ALPHA_DTPREL16,
1.38355 -+ BFD_RELOC_ALPHA_GOTTPREL16,
1.38356 -+ BFD_RELOC_ALPHA_TPREL64,
1.38357 -+ BFD_RELOC_ALPHA_TPREL_HI16,
1.38358 -+ BFD_RELOC_ALPHA_TPREL_LO16,
1.38359 -+ BFD_RELOC_ALPHA_TPREL16,
1.38360 -+
1.38361 -+/* Bits 27..2 of the relocation address shifted right 2 bits;
1.38362 -+simple reloc otherwise. */
1.38363 -+ BFD_RELOC_MIPS_JMP,
1.38364 -+
1.38365 -+/* The MIPS16 jump instruction. */
1.38366 -+ BFD_RELOC_MIPS16_JMP,
1.38367 -+
1.38368 -+/* MIPS16 GP relative reloc. */
1.38369 -+ BFD_RELOC_MIPS16_GPREL,
1.38370 -+
1.38371 -+/* High 16 bits of 32-bit value; simple reloc. */
1.38372 -+ BFD_RELOC_HI16,
1.38373 -+
1.38374 -+/* High 16 bits of 32-bit value but the low 16 bits will be sign
1.38375 -+extended and added to form the final result. If the low 16
1.38376 -+bits form a negative number, we need to add one to the high value
1.38377 -+to compensate for the borrow when the low bits are added. */
1.38378 -+ BFD_RELOC_HI16_S,
1.38379 -+
1.38380 -+/* Low 16 bits. */
1.38381 -+ BFD_RELOC_LO16,
1.38382 -+
1.38383 -+/* High 16 bits of 32-bit pc-relative value */
1.38384 -+ BFD_RELOC_HI16_PCREL,
1.38385 -+
1.38386 -+/* High 16 bits of 32-bit pc-relative value, adjusted */
1.38387 -+ BFD_RELOC_HI16_S_PCREL,
1.38388 -+
1.38389 -+/* Low 16 bits of pc-relative value */
1.38390 -+ BFD_RELOC_LO16_PCREL,
1.38391 -+
1.38392 -+/* MIPS16 high 16 bits of 32-bit value. */
1.38393 -+ BFD_RELOC_MIPS16_HI16,
1.38394 -+
1.38395 -+/* MIPS16 high 16 bits of 32-bit value but the low 16 bits will be sign
1.38396 -+extended and added to form the final result. If the low 16
1.38397 -+bits form a negative number, we need to add one to the high value
1.38398 -+to compensate for the borrow when the low bits are added. */
1.38399 -+ BFD_RELOC_MIPS16_HI16_S,
1.38400 -+
1.38401 -+/* MIPS16 low 16 bits. */
1.38402 -+ BFD_RELOC_MIPS16_LO16,
1.38403 -+
1.38404 -+/* Relocation against a MIPS literal section. */
1.38405 -+ BFD_RELOC_MIPS_LITERAL,
1.38406 -+
1.38407 -+/* MIPS ELF relocations. */
1.38408 -+ BFD_RELOC_MIPS_GOT16,
1.38409 -+ BFD_RELOC_MIPS_CALL16,
1.38410 -+ BFD_RELOC_MIPS_GOT_HI16,
1.38411 -+ BFD_RELOC_MIPS_GOT_LO16,
1.38412 -+ BFD_RELOC_MIPS_CALL_HI16,
1.38413 -+ BFD_RELOC_MIPS_CALL_LO16,
1.38414 -+ BFD_RELOC_MIPS_SUB,
1.38415 -+ BFD_RELOC_MIPS_GOT_PAGE,
1.38416 -+ BFD_RELOC_MIPS_GOT_OFST,
1.38417 -+ BFD_RELOC_MIPS_GOT_DISP,
1.38418 -+ BFD_RELOC_MIPS_SHIFT5,
1.38419 -+ BFD_RELOC_MIPS_SHIFT6,
1.38420 -+ BFD_RELOC_MIPS_INSERT_A,
1.38421 -+ BFD_RELOC_MIPS_INSERT_B,
1.38422 -+ BFD_RELOC_MIPS_DELETE,
1.38423 -+ BFD_RELOC_MIPS_HIGHEST,
1.38424 -+ BFD_RELOC_MIPS_HIGHER,
1.38425 -+ BFD_RELOC_MIPS_SCN_DISP,
1.38426 -+ BFD_RELOC_MIPS_REL16,
1.38427 -+ BFD_RELOC_MIPS_RELGOT,
1.38428 -+ BFD_RELOC_MIPS_JALR,
1.38429 -+ BFD_RELOC_MIPS_TLS_DTPMOD32,
1.38430 -+ BFD_RELOC_MIPS_TLS_DTPREL32,
1.38431 -+ BFD_RELOC_MIPS_TLS_DTPMOD64,
1.38432 -+ BFD_RELOC_MIPS_TLS_DTPREL64,
1.38433 -+ BFD_RELOC_MIPS_TLS_GD,
1.38434 -+ BFD_RELOC_MIPS_TLS_LDM,
1.38435 -+ BFD_RELOC_MIPS_TLS_DTPREL_HI16,
1.38436 -+ BFD_RELOC_MIPS_TLS_DTPREL_LO16,
1.38437 -+ BFD_RELOC_MIPS_TLS_GOTTPREL,
1.38438 -+ BFD_RELOC_MIPS_TLS_TPREL32,
1.38439 -+ BFD_RELOC_MIPS_TLS_TPREL64,
1.38440 -+ BFD_RELOC_MIPS_TLS_TPREL_HI16,
1.38441 -+ BFD_RELOC_MIPS_TLS_TPREL_LO16,
1.38442 -+
1.38443 -+
1.38444 -+/* MIPS ELF relocations (VxWorks extensions). */
1.38445 -+ BFD_RELOC_MIPS_COPY,
1.38446 -+ BFD_RELOC_MIPS_JUMP_SLOT,
1.38447 -+
1.38448 -+
1.38449 -+/* Fujitsu Frv Relocations. */
1.38450 -+ BFD_RELOC_FRV_LABEL16,
1.38451 -+ BFD_RELOC_FRV_LABEL24,
1.38452 -+ BFD_RELOC_FRV_LO16,
1.38453 -+ BFD_RELOC_FRV_HI16,
1.38454 -+ BFD_RELOC_FRV_GPREL12,
1.38455 -+ BFD_RELOC_FRV_GPRELU12,
1.38456 -+ BFD_RELOC_FRV_GPREL32,
1.38457 -+ BFD_RELOC_FRV_GPRELHI,
1.38458 -+ BFD_RELOC_FRV_GPRELLO,
1.38459 -+ BFD_RELOC_FRV_GOT12,
1.38460 -+ BFD_RELOC_FRV_GOTHI,
1.38461 -+ BFD_RELOC_FRV_GOTLO,
1.38462 -+ BFD_RELOC_FRV_FUNCDESC,
1.38463 -+ BFD_RELOC_FRV_FUNCDESC_GOT12,
1.38464 -+ BFD_RELOC_FRV_FUNCDESC_GOTHI,
1.38465 -+ BFD_RELOC_FRV_FUNCDESC_GOTLO,
1.38466 -+ BFD_RELOC_FRV_FUNCDESC_VALUE,
1.38467 -+ BFD_RELOC_FRV_FUNCDESC_GOTOFF12,
1.38468 -+ BFD_RELOC_FRV_FUNCDESC_GOTOFFHI,
1.38469 -+ BFD_RELOC_FRV_FUNCDESC_GOTOFFLO,
1.38470 -+ BFD_RELOC_FRV_GOTOFF12,
1.38471 -+ BFD_RELOC_FRV_GOTOFFHI,
1.38472 -+ BFD_RELOC_FRV_GOTOFFLO,
1.38473 -+ BFD_RELOC_FRV_GETTLSOFF,
1.38474 -+ BFD_RELOC_FRV_TLSDESC_VALUE,
1.38475 -+ BFD_RELOC_FRV_GOTTLSDESC12,
1.38476 -+ BFD_RELOC_FRV_GOTTLSDESCHI,
1.38477 -+ BFD_RELOC_FRV_GOTTLSDESCLO,
1.38478 -+ BFD_RELOC_FRV_TLSMOFF12,
1.38479 -+ BFD_RELOC_FRV_TLSMOFFHI,
1.38480 -+ BFD_RELOC_FRV_TLSMOFFLO,
1.38481 -+ BFD_RELOC_FRV_GOTTLSOFF12,
1.38482 -+ BFD_RELOC_FRV_GOTTLSOFFHI,
1.38483 -+ BFD_RELOC_FRV_GOTTLSOFFLO,
1.38484 -+ BFD_RELOC_FRV_TLSOFF,
1.38485 -+ BFD_RELOC_FRV_TLSDESC_RELAX,
1.38486 -+ BFD_RELOC_FRV_GETTLSOFF_RELAX,
1.38487 -+ BFD_RELOC_FRV_TLSOFF_RELAX,
1.38488 -+ BFD_RELOC_FRV_TLSMOFF,
1.38489 -+
1.38490 -+
1.38491 -+/* This is a 24bit GOT-relative reloc for the mn10300. */
1.38492 -+ BFD_RELOC_MN10300_GOTOFF24,
1.38493 -+
1.38494 -+/* This is a 32bit GOT-relative reloc for the mn10300, offset by two bytes
1.38495 -+in the instruction. */
1.38496 -+ BFD_RELOC_MN10300_GOT32,
1.38497 -+
1.38498 -+/* This is a 24bit GOT-relative reloc for the mn10300, offset by two bytes
1.38499 -+in the instruction. */
1.38500 -+ BFD_RELOC_MN10300_GOT24,
1.38501 -+
1.38502 -+/* This is a 16bit GOT-relative reloc for the mn10300, offset by two bytes
1.38503 -+in the instruction. */
1.38504 -+ BFD_RELOC_MN10300_GOT16,
1.38505 -+
1.38506 -+/* Copy symbol at runtime. */
1.38507 -+ BFD_RELOC_MN10300_COPY,
1.38508 -+
1.38509 -+/* Create GOT entry. */
1.38510 -+ BFD_RELOC_MN10300_GLOB_DAT,
1.38511 -+
1.38512 -+/* Create PLT entry. */
1.38513 -+ BFD_RELOC_MN10300_JMP_SLOT,
1.38514 -+
1.38515 -+/* Adjust by program base. */
1.38516 -+ BFD_RELOC_MN10300_RELATIVE,
1.38517 -+
1.38518 -+
1.38519 -+/* i386/elf relocations */
1.38520 -+ BFD_RELOC_386_GOT32,
1.38521 -+ BFD_RELOC_386_PLT32,
1.38522 -+ BFD_RELOC_386_COPY,
1.38523 -+ BFD_RELOC_386_GLOB_DAT,
1.38524 -+ BFD_RELOC_386_JUMP_SLOT,
1.38525 -+ BFD_RELOC_386_RELATIVE,
1.38526 -+ BFD_RELOC_386_GOTOFF,
1.38527 -+ BFD_RELOC_386_GOTPC,
1.38528 -+ BFD_RELOC_386_TLS_TPOFF,
1.38529 -+ BFD_RELOC_386_TLS_IE,
1.38530 -+ BFD_RELOC_386_TLS_GOTIE,
1.38531 -+ BFD_RELOC_386_TLS_LE,
1.38532 -+ BFD_RELOC_386_TLS_GD,
1.38533 -+ BFD_RELOC_386_TLS_LDM,
1.38534 -+ BFD_RELOC_386_TLS_LDO_32,
1.38535 -+ BFD_RELOC_386_TLS_IE_32,
1.38536 -+ BFD_RELOC_386_TLS_LE_32,
1.38537 -+ BFD_RELOC_386_TLS_DTPMOD32,
1.38538 -+ BFD_RELOC_386_TLS_DTPOFF32,
1.38539 -+ BFD_RELOC_386_TLS_TPOFF32,
1.38540 -+ BFD_RELOC_386_TLS_GOTDESC,
1.38541 -+ BFD_RELOC_386_TLS_DESC_CALL,
1.38542 -+ BFD_RELOC_386_TLS_DESC,
1.38543 -+
1.38544 -+/* x86-64/elf relocations */
1.38545 -+ BFD_RELOC_X86_64_GOT32,
1.38546 -+ BFD_RELOC_X86_64_PLT32,
1.38547 -+ BFD_RELOC_X86_64_COPY,
1.38548 -+ BFD_RELOC_X86_64_GLOB_DAT,
1.38549 -+ BFD_RELOC_X86_64_JUMP_SLOT,
1.38550 -+ BFD_RELOC_X86_64_RELATIVE,
1.38551 -+ BFD_RELOC_X86_64_GOTPCREL,
1.38552 -+ BFD_RELOC_X86_64_32S,
1.38553 -+ BFD_RELOC_X86_64_DTPMOD64,
1.38554 -+ BFD_RELOC_X86_64_DTPOFF64,
1.38555 -+ BFD_RELOC_X86_64_TPOFF64,
1.38556 -+ BFD_RELOC_X86_64_TLSGD,
1.38557 -+ BFD_RELOC_X86_64_TLSLD,
1.38558 -+ BFD_RELOC_X86_64_DTPOFF32,
1.38559 -+ BFD_RELOC_X86_64_GOTTPOFF,
1.38560 -+ BFD_RELOC_X86_64_TPOFF32,
1.38561 -+ BFD_RELOC_X86_64_GOTOFF64,
1.38562 -+ BFD_RELOC_X86_64_GOTPC32,
1.38563 -+ BFD_RELOC_X86_64_GOT64,
1.38564 -+ BFD_RELOC_X86_64_GOTPCREL64,
1.38565 -+ BFD_RELOC_X86_64_GOTPC64,
1.38566 -+ BFD_RELOC_X86_64_GOTPLT64,
1.38567 -+ BFD_RELOC_X86_64_PLTOFF64,
1.38568 -+ BFD_RELOC_X86_64_GOTPC32_TLSDESC,
1.38569 -+ BFD_RELOC_X86_64_TLSDESC_CALL,
1.38570 -+ BFD_RELOC_X86_64_TLSDESC,
1.38571 -+
1.38572 -+/* ns32k relocations */
1.38573 -+ BFD_RELOC_NS32K_IMM_8,
1.38574 -+ BFD_RELOC_NS32K_IMM_16,
1.38575 -+ BFD_RELOC_NS32K_IMM_32,
1.38576 -+ BFD_RELOC_NS32K_IMM_8_PCREL,
1.38577 -+ BFD_RELOC_NS32K_IMM_16_PCREL,
1.38578 -+ BFD_RELOC_NS32K_IMM_32_PCREL,
1.38579 -+ BFD_RELOC_NS32K_DISP_8,
1.38580 -+ BFD_RELOC_NS32K_DISP_16,
1.38581 -+ BFD_RELOC_NS32K_DISP_32,
1.38582 -+ BFD_RELOC_NS32K_DISP_8_PCREL,
1.38583 -+ BFD_RELOC_NS32K_DISP_16_PCREL,
1.38584 -+ BFD_RELOC_NS32K_DISP_32_PCREL,
1.38585 -+
1.38586 -+/* PDP11 relocations */
1.38587 -+ BFD_RELOC_PDP11_DISP_8_PCREL,
1.38588 -+ BFD_RELOC_PDP11_DISP_6_PCREL,
1.38589 -+
1.38590 -+/* Picojava relocs. Not all of these appear in object files. */
1.38591 -+ BFD_RELOC_PJ_CODE_HI16,
1.38592 -+ BFD_RELOC_PJ_CODE_LO16,
1.38593 -+ BFD_RELOC_PJ_CODE_DIR16,
1.38594 -+ BFD_RELOC_PJ_CODE_DIR32,
1.38595 -+ BFD_RELOC_PJ_CODE_REL16,
1.38596 -+ BFD_RELOC_PJ_CODE_REL32,
1.38597 -+
1.38598 -+/* Power(rs6000) and PowerPC relocations. */
1.38599 -+ BFD_RELOC_PPC_B26,
1.38600 -+ BFD_RELOC_PPC_BA26,
1.38601 -+ BFD_RELOC_PPC_TOC16,
1.38602 -+ BFD_RELOC_PPC_B16,
1.38603 -+ BFD_RELOC_PPC_B16_BRTAKEN,
1.38604 -+ BFD_RELOC_PPC_B16_BRNTAKEN,
1.38605 -+ BFD_RELOC_PPC_BA16,
1.38606 -+ BFD_RELOC_PPC_BA16_BRTAKEN,
1.38607 -+ BFD_RELOC_PPC_BA16_BRNTAKEN,
1.38608 -+ BFD_RELOC_PPC_COPY,
1.38609 -+ BFD_RELOC_PPC_GLOB_DAT,
1.38610 -+ BFD_RELOC_PPC_JMP_SLOT,
1.38611 -+ BFD_RELOC_PPC_RELATIVE,
1.38612 -+ BFD_RELOC_PPC_LOCAL24PC,
1.38613 -+ BFD_RELOC_PPC_EMB_NADDR32,
1.38614 -+ BFD_RELOC_PPC_EMB_NADDR16,
1.38615 -+ BFD_RELOC_PPC_EMB_NADDR16_LO,
1.38616 -+ BFD_RELOC_PPC_EMB_NADDR16_HI,
1.38617 -+ BFD_RELOC_PPC_EMB_NADDR16_HA,
1.38618 -+ BFD_RELOC_PPC_EMB_SDAI16,
1.38619 -+ BFD_RELOC_PPC_EMB_SDA2I16,
1.38620 -+ BFD_RELOC_PPC_EMB_SDA2REL,
1.38621 -+ BFD_RELOC_PPC_EMB_SDA21,
1.38622 -+ BFD_RELOC_PPC_EMB_MRKREF,
1.38623 -+ BFD_RELOC_PPC_EMB_RELSEC16,
1.38624 -+ BFD_RELOC_PPC_EMB_RELST_LO,
1.38625 -+ BFD_RELOC_PPC_EMB_RELST_HI,
1.38626 -+ BFD_RELOC_PPC_EMB_RELST_HA,
1.38627 -+ BFD_RELOC_PPC_EMB_BIT_FLD,
1.38628 -+ BFD_RELOC_PPC_EMB_RELSDA,
1.38629 -+ BFD_RELOC_PPC64_HIGHER,
1.38630 -+ BFD_RELOC_PPC64_HIGHER_S,
1.38631 -+ BFD_RELOC_PPC64_HIGHEST,
1.38632 -+ BFD_RELOC_PPC64_HIGHEST_S,
1.38633 -+ BFD_RELOC_PPC64_TOC16_LO,
1.38634 -+ BFD_RELOC_PPC64_TOC16_HI,
1.38635 -+ BFD_RELOC_PPC64_TOC16_HA,
1.38636 -+ BFD_RELOC_PPC64_TOC,
1.38637 -+ BFD_RELOC_PPC64_PLTGOT16,
1.38638 -+ BFD_RELOC_PPC64_PLTGOT16_LO,
1.38639 -+ BFD_RELOC_PPC64_PLTGOT16_HI,
1.38640 -+ BFD_RELOC_PPC64_PLTGOT16_HA,
1.38641 -+ BFD_RELOC_PPC64_ADDR16_DS,
1.38642 -+ BFD_RELOC_PPC64_ADDR16_LO_DS,
1.38643 -+ BFD_RELOC_PPC64_GOT16_DS,
1.38644 -+ BFD_RELOC_PPC64_GOT16_LO_DS,
1.38645 -+ BFD_RELOC_PPC64_PLT16_LO_DS,
1.38646 -+ BFD_RELOC_PPC64_SECTOFF_DS,
1.38647 -+ BFD_RELOC_PPC64_SECTOFF_LO_DS,
1.38648 -+ BFD_RELOC_PPC64_TOC16_DS,
1.38649 -+ BFD_RELOC_PPC64_TOC16_LO_DS,
1.38650 -+ BFD_RELOC_PPC64_PLTGOT16_DS,
1.38651 -+ BFD_RELOC_PPC64_PLTGOT16_LO_DS,
1.38652 -+
1.38653 -+/* PowerPC and PowerPC64 thread-local storage relocations. */
1.38654 -+ BFD_RELOC_PPC_TLS,
1.38655 -+ BFD_RELOC_PPC_DTPMOD,
1.38656 -+ BFD_RELOC_PPC_TPREL16,
1.38657 -+ BFD_RELOC_PPC_TPREL16_LO,
1.38658 -+ BFD_RELOC_PPC_TPREL16_HI,
1.38659 -+ BFD_RELOC_PPC_TPREL16_HA,
1.38660 -+ BFD_RELOC_PPC_TPREL,
1.38661 -+ BFD_RELOC_PPC_DTPREL16,
1.38662 -+ BFD_RELOC_PPC_DTPREL16_LO,
1.38663 -+ BFD_RELOC_PPC_DTPREL16_HI,
1.38664 -+ BFD_RELOC_PPC_DTPREL16_HA,
1.38665 -+ BFD_RELOC_PPC_DTPREL,
1.38666 -+ BFD_RELOC_PPC_GOT_TLSGD16,
1.38667 -+ BFD_RELOC_PPC_GOT_TLSGD16_LO,
1.38668 -+ BFD_RELOC_PPC_GOT_TLSGD16_HI,
1.38669 -+ BFD_RELOC_PPC_GOT_TLSGD16_HA,
1.38670 -+ BFD_RELOC_PPC_GOT_TLSLD16,
1.38671 -+ BFD_RELOC_PPC_GOT_TLSLD16_LO,
1.38672 -+ BFD_RELOC_PPC_GOT_TLSLD16_HI,
1.38673 -+ BFD_RELOC_PPC_GOT_TLSLD16_HA,
1.38674 -+ BFD_RELOC_PPC_GOT_TPREL16,
1.38675 -+ BFD_RELOC_PPC_GOT_TPREL16_LO,
1.38676 -+ BFD_RELOC_PPC_GOT_TPREL16_HI,
1.38677 -+ BFD_RELOC_PPC_GOT_TPREL16_HA,
1.38678 -+ BFD_RELOC_PPC_GOT_DTPREL16,
1.38679 -+ BFD_RELOC_PPC_GOT_DTPREL16_LO,
1.38680 -+ BFD_RELOC_PPC_GOT_DTPREL16_HI,
1.38681 -+ BFD_RELOC_PPC_GOT_DTPREL16_HA,
1.38682 -+ BFD_RELOC_PPC64_TPREL16_DS,
1.38683 -+ BFD_RELOC_PPC64_TPREL16_LO_DS,
1.38684 -+ BFD_RELOC_PPC64_TPREL16_HIGHER,
1.38685 -+ BFD_RELOC_PPC64_TPREL16_HIGHERA,
1.38686 -+ BFD_RELOC_PPC64_TPREL16_HIGHEST,
1.38687 -+ BFD_RELOC_PPC64_TPREL16_HIGHESTA,
1.38688 -+ BFD_RELOC_PPC64_DTPREL16_DS,
1.38689 -+ BFD_RELOC_PPC64_DTPREL16_LO_DS,
1.38690 -+ BFD_RELOC_PPC64_DTPREL16_HIGHER,
1.38691 -+ BFD_RELOC_PPC64_DTPREL16_HIGHERA,
1.38692 -+ BFD_RELOC_PPC64_DTPREL16_HIGHEST,
1.38693 -+ BFD_RELOC_PPC64_DTPREL16_HIGHESTA,
1.38694 -+
1.38695 -+/* IBM 370/390 relocations */
1.38696 -+ BFD_RELOC_I370_D12,
1.38697 -+
1.38698 -+/* The type of reloc used to build a constructor table - at the moment
1.38699 -+probably a 32 bit wide absolute relocation, but the target can choose.
1.38700 -+It generally does map to one of the other relocation types. */
1.38701 -+ BFD_RELOC_CTOR,
1.38702 -+
1.38703 -+/* ARM 26 bit pc-relative branch. The lowest two bits must be zero and are
1.38704 -+not stored in the instruction. */
1.38705 -+ BFD_RELOC_ARM_PCREL_BRANCH,
1.38706 -+
1.38707 -+/* ARM 26 bit pc-relative branch. The lowest bit must be zero and is
1.38708 -+not stored in the instruction. The 2nd lowest bit comes from a 1 bit
1.38709 -+field in the instruction. */
1.38710 -+ BFD_RELOC_ARM_PCREL_BLX,
1.38711 -+
1.38712 -+/* Thumb 22 bit pc-relative branch. The lowest bit must be zero and is
1.38713 -+not stored in the instruction. The 2nd lowest bit comes from a 1 bit
1.38714 -+field in the instruction. */
1.38715 -+ BFD_RELOC_THUMB_PCREL_BLX,
1.38716 -+
1.38717 -+/* ARM 26-bit pc-relative branch for an unconditional BL or BLX instruction. */
1.38718 -+ BFD_RELOC_ARM_PCREL_CALL,
1.38719 -+
1.38720 -+/* ARM 26-bit pc-relative branch for B or conditional BL instruction. */
1.38721 -+ BFD_RELOC_ARM_PCREL_JUMP,
1.38722 -+
1.38723 -+/* Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.
1.38724 -+The lowest bit must be zero and is not stored in the instruction.
1.38725 -+Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
1.38726 -+"nn" one smaller in all cases. Note further that BRANCH23
1.38727 -+corresponds to R_ARM_THM_CALL. */
1.38728 -+ BFD_RELOC_THUMB_PCREL_BRANCH7,
1.38729 -+ BFD_RELOC_THUMB_PCREL_BRANCH9,
1.38730 -+ BFD_RELOC_THUMB_PCREL_BRANCH12,
1.38731 -+ BFD_RELOC_THUMB_PCREL_BRANCH20,
1.38732 -+ BFD_RELOC_THUMB_PCREL_BRANCH23,
1.38733 -+ BFD_RELOC_THUMB_PCREL_BRANCH25,
1.38734 -+
1.38735 -+/* 12-bit immediate offset, used in ARM-format ldr and str instructions. */
1.38736 -+ BFD_RELOC_ARM_OFFSET_IMM,
1.38737 -+
1.38738 -+/* 5-bit immediate offset, used in Thumb-format ldr and str instructions. */
1.38739 -+ BFD_RELOC_ARM_THUMB_OFFSET,
1.38740 -+
1.38741 -+/* Pc-relative or absolute relocation depending on target. Used for
1.38742 -+entries in .init_array sections. */
1.38743 -+ BFD_RELOC_ARM_TARGET1,
1.38744 -+
1.38745 -+/* Read-only segment base relative address. */
1.38746 -+ BFD_RELOC_ARM_ROSEGREL32,
1.38747 -+
1.38748 -+/* Data segment base relative address. */
1.38749 -+ BFD_RELOC_ARM_SBREL32,
1.38750 -+
1.38751 -+/* This reloc is used for references to RTTI data from exception handling
1.38752 -+tables. The actual definition depends on the target. It may be a
1.38753 -+pc-relative or some form of GOT-indirect relocation. */
1.38754 -+ BFD_RELOC_ARM_TARGET2,
1.38755 -+
1.38756 -+/* 31-bit PC relative address. */
1.38757 -+ BFD_RELOC_ARM_PREL31,
1.38758 -+
1.38759 -+/* Low and High halfword relocations for MOVW and MOVT instructions. */
1.38760 -+ BFD_RELOC_ARM_MOVW,
1.38761 -+ BFD_RELOC_ARM_MOVT,
1.38762 -+ BFD_RELOC_ARM_MOVW_PCREL,
1.38763 -+ BFD_RELOC_ARM_MOVT_PCREL,
1.38764 -+ BFD_RELOC_ARM_THUMB_MOVW,
1.38765 -+ BFD_RELOC_ARM_THUMB_MOVT,
1.38766 -+ BFD_RELOC_ARM_THUMB_MOVW_PCREL,
1.38767 -+ BFD_RELOC_ARM_THUMB_MOVT_PCREL,
1.38768 -+
1.38769 -+/* Relocations for setting up GOTs and PLTs for shared libraries. */
1.38770 -+ BFD_RELOC_ARM_JUMP_SLOT,
1.38771 -+ BFD_RELOC_ARM_GLOB_DAT,
1.38772 -+ BFD_RELOC_ARM_GOT32,
1.38773 -+ BFD_RELOC_ARM_PLT32,
1.38774 -+ BFD_RELOC_ARM_RELATIVE,
1.38775 -+ BFD_RELOC_ARM_GOTOFF,
1.38776 -+ BFD_RELOC_ARM_GOTPC,
1.38777 -+
1.38778 -+/* ARM thread-local storage relocations. */
1.38779 -+ BFD_RELOC_ARM_TLS_GD32,
1.38780 -+ BFD_RELOC_ARM_TLS_LDO32,
1.38781 -+ BFD_RELOC_ARM_TLS_LDM32,
1.38782 -+ BFD_RELOC_ARM_TLS_DTPOFF32,
1.38783 -+ BFD_RELOC_ARM_TLS_DTPMOD32,
1.38784 -+ BFD_RELOC_ARM_TLS_TPOFF32,
1.38785 -+ BFD_RELOC_ARM_TLS_IE32,
1.38786 -+ BFD_RELOC_ARM_TLS_LE32,
1.38787 -+
1.38788 -+/* ARM group relocations. */
1.38789 -+ BFD_RELOC_ARM_ALU_PC_G0_NC,
1.38790 -+ BFD_RELOC_ARM_ALU_PC_G0,
1.38791 -+ BFD_RELOC_ARM_ALU_PC_G1_NC,
1.38792 -+ BFD_RELOC_ARM_ALU_PC_G1,
1.38793 -+ BFD_RELOC_ARM_ALU_PC_G2,
1.38794 -+ BFD_RELOC_ARM_LDR_PC_G0,
1.38795 -+ BFD_RELOC_ARM_LDR_PC_G1,
1.38796 -+ BFD_RELOC_ARM_LDR_PC_G2,
1.38797 -+ BFD_RELOC_ARM_LDRS_PC_G0,
1.38798 -+ BFD_RELOC_ARM_LDRS_PC_G1,
1.38799 -+ BFD_RELOC_ARM_LDRS_PC_G2,
1.38800 -+ BFD_RELOC_ARM_LDC_PC_G0,
1.38801 -+ BFD_RELOC_ARM_LDC_PC_G1,
1.38802 -+ BFD_RELOC_ARM_LDC_PC_G2,
1.38803 -+ BFD_RELOC_ARM_ALU_SB_G0_NC,
1.38804 -+ BFD_RELOC_ARM_ALU_SB_G0,
1.38805 -+ BFD_RELOC_ARM_ALU_SB_G1_NC,
1.38806 -+ BFD_RELOC_ARM_ALU_SB_G1,
1.38807 -+ BFD_RELOC_ARM_ALU_SB_G2,
1.38808 -+ BFD_RELOC_ARM_LDR_SB_G0,
1.38809 -+ BFD_RELOC_ARM_LDR_SB_G1,
1.38810 -+ BFD_RELOC_ARM_LDR_SB_G2,
1.38811 -+ BFD_RELOC_ARM_LDRS_SB_G0,
1.38812 -+ BFD_RELOC_ARM_LDRS_SB_G1,
1.38813 -+ BFD_RELOC_ARM_LDRS_SB_G2,
1.38814 -+ BFD_RELOC_ARM_LDC_SB_G0,
1.38815 -+ BFD_RELOC_ARM_LDC_SB_G1,
1.38816 -+ BFD_RELOC_ARM_LDC_SB_G2,
1.38817 -+
1.38818 -+/* These relocs are only used within the ARM assembler. They are not
1.38819 -+(at present) written to any object files. */
1.38820 -+ BFD_RELOC_ARM_IMMEDIATE,
1.38821 -+ BFD_RELOC_ARM_ADRL_IMMEDIATE,
1.38822 -+ BFD_RELOC_ARM_T32_IMMEDIATE,
1.38823 -+ BFD_RELOC_ARM_T32_ADD_IMM,
1.38824 -+ BFD_RELOC_ARM_T32_IMM12,
1.38825 -+ BFD_RELOC_ARM_T32_ADD_PC12,
1.38826 -+ BFD_RELOC_ARM_SHIFT_IMM,
1.38827 -+ BFD_RELOC_ARM_SMC,
1.38828 -+ BFD_RELOC_ARM_SWI,
1.38829 -+ BFD_RELOC_ARM_MULTI,
1.38830 -+ BFD_RELOC_ARM_CP_OFF_IMM,
1.38831 -+ BFD_RELOC_ARM_CP_OFF_IMM_S2,
1.38832 -+ BFD_RELOC_ARM_T32_CP_OFF_IMM,
1.38833 -+ BFD_RELOC_ARM_T32_CP_OFF_IMM_S2,
1.38834 -+ BFD_RELOC_ARM_ADR_IMM,
1.38835 -+ BFD_RELOC_ARM_LDR_IMM,
1.38836 -+ BFD_RELOC_ARM_LITERAL,
1.38837 -+ BFD_RELOC_ARM_IN_POOL,
1.38838 -+ BFD_RELOC_ARM_OFFSET_IMM8,
1.38839 -+ BFD_RELOC_ARM_T32_OFFSET_U8,
1.38840 -+ BFD_RELOC_ARM_T32_OFFSET_IMM,
1.38841 -+ BFD_RELOC_ARM_HWLITERAL,
1.38842 -+ BFD_RELOC_ARM_THUMB_ADD,
1.38843 -+ BFD_RELOC_ARM_THUMB_IMM,
1.38844 -+ BFD_RELOC_ARM_THUMB_SHIFT,
1.38845 -+
1.38846 -+/* Renesas / SuperH SH relocs. Not all of these appear in object files. */
1.38847 -+ BFD_RELOC_SH_PCDISP8BY2,
1.38848 -+ BFD_RELOC_SH_PCDISP12BY2,
1.38849 -+ BFD_RELOC_SH_IMM3,
1.38850 -+ BFD_RELOC_SH_IMM3U,
1.38851 -+ BFD_RELOC_SH_DISP12,
1.38852 -+ BFD_RELOC_SH_DISP12BY2,
1.38853 -+ BFD_RELOC_SH_DISP12BY4,
1.38854 -+ BFD_RELOC_SH_DISP12BY8,
1.38855 -+ BFD_RELOC_SH_DISP20,
1.38856 -+ BFD_RELOC_SH_DISP20BY8,
1.38857 -+ BFD_RELOC_SH_IMM4,
1.38858 -+ BFD_RELOC_SH_IMM4BY2,
1.38859 -+ BFD_RELOC_SH_IMM4BY4,
1.38860 -+ BFD_RELOC_SH_IMM8,
1.38861 -+ BFD_RELOC_SH_IMM8BY2,
1.38862 -+ BFD_RELOC_SH_IMM8BY4,
1.38863 -+ BFD_RELOC_SH_PCRELIMM8BY2,
1.38864 -+ BFD_RELOC_SH_PCRELIMM8BY4,
1.38865 -+ BFD_RELOC_SH_SWITCH16,
1.38866 -+ BFD_RELOC_SH_SWITCH32,
1.38867 -+ BFD_RELOC_SH_USES,
1.38868 -+ BFD_RELOC_SH_COUNT,
1.38869 -+ BFD_RELOC_SH_ALIGN,
1.38870 -+ BFD_RELOC_SH_CODE,
1.38871 -+ BFD_RELOC_SH_DATA,
1.38872 -+ BFD_RELOC_SH_LABEL,
1.38873 -+ BFD_RELOC_SH_LOOP_START,
1.38874 -+ BFD_RELOC_SH_LOOP_END,
1.38875 -+ BFD_RELOC_SH_COPY,
1.38876 -+ BFD_RELOC_SH_GLOB_DAT,
1.38877 -+ BFD_RELOC_SH_JMP_SLOT,
1.38878 -+ BFD_RELOC_SH_RELATIVE,
1.38879 -+ BFD_RELOC_SH_GOTPC,
1.38880 -+ BFD_RELOC_SH_GOT_LOW16,
1.38881 -+ BFD_RELOC_SH_GOT_MEDLOW16,
1.38882 -+ BFD_RELOC_SH_GOT_MEDHI16,
1.38883 -+ BFD_RELOC_SH_GOT_HI16,
1.38884 -+ BFD_RELOC_SH_GOTPLT_LOW16,
1.38885 -+ BFD_RELOC_SH_GOTPLT_MEDLOW16,
1.38886 -+ BFD_RELOC_SH_GOTPLT_MEDHI16,
1.38887 -+ BFD_RELOC_SH_GOTPLT_HI16,
1.38888 -+ BFD_RELOC_SH_PLT_LOW16,
1.38889 -+ BFD_RELOC_SH_PLT_MEDLOW16,
1.38890 -+ BFD_RELOC_SH_PLT_MEDHI16,
1.38891 -+ BFD_RELOC_SH_PLT_HI16,
1.38892 -+ BFD_RELOC_SH_GOTOFF_LOW16,
1.38893 -+ BFD_RELOC_SH_GOTOFF_MEDLOW16,
1.38894 -+ BFD_RELOC_SH_GOTOFF_MEDHI16,
1.38895 -+ BFD_RELOC_SH_GOTOFF_HI16,
1.38896 -+ BFD_RELOC_SH_GOTPC_LOW16,
1.38897 -+ BFD_RELOC_SH_GOTPC_MEDLOW16,
1.38898 -+ BFD_RELOC_SH_GOTPC_MEDHI16,
1.38899 -+ BFD_RELOC_SH_GOTPC_HI16,
1.38900 -+ BFD_RELOC_SH_COPY64,
1.38901 -+ BFD_RELOC_SH_GLOB_DAT64,
1.38902 -+ BFD_RELOC_SH_JMP_SLOT64,
1.38903 -+ BFD_RELOC_SH_RELATIVE64,
1.38904 -+ BFD_RELOC_SH_GOT10BY4,
1.38905 -+ BFD_RELOC_SH_GOT10BY8,
1.38906 -+ BFD_RELOC_SH_GOTPLT10BY4,
1.38907 -+ BFD_RELOC_SH_GOTPLT10BY8,
1.38908 -+ BFD_RELOC_SH_GOTPLT32,
1.38909 -+ BFD_RELOC_SH_SHMEDIA_CODE,
1.38910 -+ BFD_RELOC_SH_IMMU5,
1.38911 -+ BFD_RELOC_SH_IMMS6,
1.38912 -+ BFD_RELOC_SH_IMMS6BY32,
1.38913 -+ BFD_RELOC_SH_IMMU6,
1.38914 -+ BFD_RELOC_SH_IMMS10,
1.38915 -+ BFD_RELOC_SH_IMMS10BY2,
1.38916 -+ BFD_RELOC_SH_IMMS10BY4,
1.38917 -+ BFD_RELOC_SH_IMMS10BY8,
1.38918 -+ BFD_RELOC_SH_IMMS16,
1.38919 -+ BFD_RELOC_SH_IMMU16,
1.38920 -+ BFD_RELOC_SH_IMM_LOW16,
1.38921 -+ BFD_RELOC_SH_IMM_LOW16_PCREL,
1.38922 -+ BFD_RELOC_SH_IMM_MEDLOW16,
1.38923 -+ BFD_RELOC_SH_IMM_MEDLOW16_PCREL,
1.38924 -+ BFD_RELOC_SH_IMM_MEDHI16,
1.38925 -+ BFD_RELOC_SH_IMM_MEDHI16_PCREL,
1.38926 -+ BFD_RELOC_SH_IMM_HI16,
1.38927 -+ BFD_RELOC_SH_IMM_HI16_PCREL,
1.38928 -+ BFD_RELOC_SH_PT_16,
1.38929 -+ BFD_RELOC_SH_TLS_GD_32,
1.38930 -+ BFD_RELOC_SH_TLS_LD_32,
1.38931 -+ BFD_RELOC_SH_TLS_LDO_32,
1.38932 -+ BFD_RELOC_SH_TLS_IE_32,
1.38933 -+ BFD_RELOC_SH_TLS_LE_32,
1.38934 -+ BFD_RELOC_SH_TLS_DTPMOD32,
1.38935 -+ BFD_RELOC_SH_TLS_DTPOFF32,
1.38936 -+ BFD_RELOC_SH_TLS_TPOFF32,
1.38937 -+
1.38938 -+/* ARC Cores relocs.
1.38939 -+ARC 22 bit pc-relative branch. The lowest two bits must be zero and are
1.38940 -+not stored in the instruction. The high 20 bits are installed in bits 26
1.38941 -+through 7 of the instruction. */
1.38942 -+ BFD_RELOC_ARC_B22_PCREL,
1.38943 -+
1.38944 -+/* ARC 26 bit absolute branch. The lowest two bits must be zero and are not
1.38945 -+stored in the instruction. The high 24 bits are installed in bits 23
1.38946 -+through 0. */
1.38947 -+ BFD_RELOC_ARC_B26,
1.38948 -+
1.38949 -+/* ADI Blackfin 16 bit immediate absolute reloc. */
1.38950 -+ BFD_RELOC_BFIN_16_IMM,
1.38951 -+
1.38952 -+/* ADI Blackfin 16 bit immediate absolute reloc higher 16 bits. */
1.38953 -+ BFD_RELOC_BFIN_16_HIGH,
1.38954 -+
1.38955 -+/* ADI Blackfin 'a' part of LSETUP. */
1.38956 -+ BFD_RELOC_BFIN_4_PCREL,
1.38957 -+
1.38958 -+/* ADI Blackfin. */
1.38959 -+ BFD_RELOC_BFIN_5_PCREL,
1.38960 -+
1.38961 -+/* ADI Blackfin 16 bit immediate absolute reloc lower 16 bits. */
1.38962 -+ BFD_RELOC_BFIN_16_LOW,
1.38963 -+
1.38964 -+/* ADI Blackfin. */
1.38965 -+ BFD_RELOC_BFIN_10_PCREL,
1.38966 -+
1.38967 -+/* ADI Blackfin 'b' part of LSETUP. */
1.38968 -+ BFD_RELOC_BFIN_11_PCREL,
1.38969 -+
1.38970 -+/* ADI Blackfin. */
1.38971 -+ BFD_RELOC_BFIN_12_PCREL_JUMP,
1.38972 -+
1.38973 -+/* ADI Blackfin Short jump, pcrel. */
1.38974 -+ BFD_RELOC_BFIN_12_PCREL_JUMP_S,
1.38975 -+
1.38976 -+/* ADI Blackfin Call.x not implemented. */
1.38977 -+ BFD_RELOC_BFIN_24_PCREL_CALL_X,
1.38978 -+
1.38979 -+/* ADI Blackfin Long Jump pcrel. */
1.38980 -+ BFD_RELOC_BFIN_24_PCREL_JUMP_L,
1.38981 -+
1.38982 -+/* ADI Blackfin FD-PIC relocations. */
1.38983 -+ BFD_RELOC_BFIN_GOT17M4,
1.38984 -+ BFD_RELOC_BFIN_GOTHI,
1.38985 -+ BFD_RELOC_BFIN_GOTLO,
1.38986 -+ BFD_RELOC_BFIN_FUNCDESC,
1.38987 -+ BFD_RELOC_BFIN_FUNCDESC_GOT17M4,
1.38988 -+ BFD_RELOC_BFIN_FUNCDESC_GOTHI,
1.38989 -+ BFD_RELOC_BFIN_FUNCDESC_GOTLO,
1.38990 -+ BFD_RELOC_BFIN_FUNCDESC_VALUE,
1.38991 -+ BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4,
1.38992 -+ BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI,
1.38993 -+ BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO,
1.38994 -+ BFD_RELOC_BFIN_GOTOFF17M4,
1.38995 -+ BFD_RELOC_BFIN_GOTOFFHI,
1.38996 -+ BFD_RELOC_BFIN_GOTOFFLO,
1.38997 -+
1.38998 -+/* ADI Blackfin GOT relocation. */
1.38999 -+ BFD_RELOC_BFIN_GOT,
1.39000 -+
1.39001 -+/* ADI Blackfin PLTPC relocation. */
1.39002 -+ BFD_RELOC_BFIN_PLTPC,
1.39003 -+
1.39004 -+/* ADI Blackfin arithmetic relocation. */
1.39005 -+ BFD_ARELOC_BFIN_PUSH,
1.39006 -+
1.39007 -+/* ADI Blackfin arithmetic relocation. */
1.39008 -+ BFD_ARELOC_BFIN_CONST,
1.39009 -+
1.39010 -+/* ADI Blackfin arithmetic relocation. */
1.39011 -+ BFD_ARELOC_BFIN_ADD,
1.39012 -+
1.39013 -+/* ADI Blackfin arithmetic relocation. */
1.39014 -+ BFD_ARELOC_BFIN_SUB,
1.39015 -+
1.39016 -+/* ADI Blackfin arithmetic relocation. */
1.39017 -+ BFD_ARELOC_BFIN_MULT,
1.39018 -+
1.39019 -+/* ADI Blackfin arithmetic relocation. */
1.39020 -+ BFD_ARELOC_BFIN_DIV,
1.39021 -+
1.39022 -+/* ADI Blackfin arithmetic relocation. */
1.39023 -+ BFD_ARELOC_BFIN_MOD,
1.39024 -+
1.39025 -+/* ADI Blackfin arithmetic relocation. */
1.39026 -+ BFD_ARELOC_BFIN_LSHIFT,
1.39027 -+
1.39028 -+/* ADI Blackfin arithmetic relocation. */
1.39029 -+ BFD_ARELOC_BFIN_RSHIFT,
1.39030 -+
1.39031 -+/* ADI Blackfin arithmetic relocation. */
1.39032 -+ BFD_ARELOC_BFIN_AND,
1.39033 -+
1.39034 -+/* ADI Blackfin arithmetic relocation. */
1.39035 -+ BFD_ARELOC_BFIN_OR,
1.39036 -+
1.39037 -+/* ADI Blackfin arithmetic relocation. */
1.39038 -+ BFD_ARELOC_BFIN_XOR,
1.39039 -+
1.39040 -+/* ADI Blackfin arithmetic relocation. */
1.39041 -+ BFD_ARELOC_BFIN_LAND,
1.39042 -+
1.39043 -+/* ADI Blackfin arithmetic relocation. */
1.39044 -+ BFD_ARELOC_BFIN_LOR,
1.39045 -+
1.39046 -+/* ADI Blackfin arithmetic relocation. */
1.39047 -+ BFD_ARELOC_BFIN_LEN,
1.39048 -+
1.39049 -+/* ADI Blackfin arithmetic relocation. */
1.39050 -+ BFD_ARELOC_BFIN_NEG,
1.39051 -+
1.39052 -+/* ADI Blackfin arithmetic relocation. */
1.39053 -+ BFD_ARELOC_BFIN_COMP,
1.39054 -+
1.39055 -+/* ADI Blackfin arithmetic relocation. */
1.39056 -+ BFD_ARELOC_BFIN_PAGE,
1.39057 -+
1.39058 -+/* ADI Blackfin arithmetic relocation. */
1.39059 -+ BFD_ARELOC_BFIN_HWPAGE,
1.39060 -+
1.39061 -+/* ADI Blackfin arithmetic relocation. */
1.39062 -+ BFD_ARELOC_BFIN_ADDR,
1.39063 -+
1.39064 -+/* Mitsubishi D10V relocs.
1.39065 -+This is a 10-bit reloc with the right 2 bits
1.39066 -+assumed to be 0. */
1.39067 -+ BFD_RELOC_D10V_10_PCREL_R,
1.39068 -+
1.39069 -+/* Mitsubishi D10V relocs.
1.39070 -+This is a 10-bit reloc with the right 2 bits
1.39071 -+assumed to be 0. This is the same as the previous reloc
1.39072 -+except it is in the left container, i.e.,
1.39073 -+shifted left 15 bits. */
1.39074 -+ BFD_RELOC_D10V_10_PCREL_L,
1.39075 -+
1.39076 -+/* This is an 18-bit reloc with the right 2 bits
1.39077 -+assumed to be 0. */
1.39078 -+ BFD_RELOC_D10V_18,
1.39079 -+
1.39080 -+/* This is an 18-bit reloc with the right 2 bits
1.39081 -+assumed to be 0. */
1.39082 -+ BFD_RELOC_D10V_18_PCREL,
1.39083 -+
1.39084 -+/* Mitsubishi D30V relocs.
1.39085 -+This is a 6-bit absolute reloc. */
1.39086 -+ BFD_RELOC_D30V_6,
1.39087 -+
1.39088 -+/* This is a 6-bit pc-relative reloc with
1.39089 -+the right 3 bits assumed to be 0. */
1.39090 -+ BFD_RELOC_D30V_9_PCREL,
1.39091 -+
1.39092 -+/* This is a 6-bit pc-relative reloc with
1.39093 -+the right 3 bits assumed to be 0. Same
1.39094 -+as the previous reloc but on the right side
1.39095 -+of the container. */
1.39096 -+ BFD_RELOC_D30V_9_PCREL_R,
1.39097 -+
1.39098 -+/* This is a 12-bit absolute reloc with the
1.39099 -+right 3 bitsassumed to be 0. */
1.39100 -+ BFD_RELOC_D30V_15,
1.39101 -+
1.39102 -+/* This is a 12-bit pc-relative reloc with
1.39103 -+the right 3 bits assumed to be 0. */
1.39104 -+ BFD_RELOC_D30V_15_PCREL,
1.39105 -+
1.39106 -+/* This is a 12-bit pc-relative reloc with
1.39107 -+the right 3 bits assumed to be 0. Same
1.39108 -+as the previous reloc but on the right side
1.39109 -+of the container. */
1.39110 -+ BFD_RELOC_D30V_15_PCREL_R,
1.39111 -+
1.39112 -+/* This is an 18-bit absolute reloc with
1.39113 -+the right 3 bits assumed to be 0. */
1.39114 -+ BFD_RELOC_D30V_21,
1.39115 -+
1.39116 -+/* This is an 18-bit pc-relative reloc with
1.39117 -+the right 3 bits assumed to be 0. */
1.39118 -+ BFD_RELOC_D30V_21_PCREL,
1.39119 -+
1.39120 -+/* This is an 18-bit pc-relative reloc with
1.39121 -+the right 3 bits assumed to be 0. Same
1.39122 -+as the previous reloc but on the right side
1.39123 -+of the container. */
1.39124 -+ BFD_RELOC_D30V_21_PCREL_R,
1.39125 -+
1.39126 -+/* This is a 32-bit absolute reloc. */
1.39127 -+ BFD_RELOC_D30V_32,
1.39128 -+
1.39129 -+/* This is a 32-bit pc-relative reloc. */
1.39130 -+ BFD_RELOC_D30V_32_PCREL,
1.39131 -+
1.39132 -+/* DLX relocs */
1.39133 -+ BFD_RELOC_DLX_HI16_S,
1.39134 -+
1.39135 -+/* DLX relocs */
1.39136 -+ BFD_RELOC_DLX_LO16,
1.39137 -+
1.39138 -+/* DLX relocs */
1.39139 -+ BFD_RELOC_DLX_JMP26,
1.39140 -+
1.39141 -+/* Renesas M16C/M32C Relocations. */
1.39142 -+ BFD_RELOC_M32C_HI8,
1.39143 -+ BFD_RELOC_M32C_RL_JUMP,
1.39144 -+ BFD_RELOC_M32C_RL_1ADDR,
1.39145 -+ BFD_RELOC_M32C_RL_2ADDR,
1.39146 -+
1.39147 -+/* Renesas M32R (formerly Mitsubishi M32R) relocs.
1.39148 -+This is a 24 bit absolute address. */
1.39149 -+ BFD_RELOC_M32R_24,
1.39150 -+
1.39151 -+/* This is a 10-bit pc-relative reloc with the right 2 bits assumed to be 0. */
1.39152 -+ BFD_RELOC_M32R_10_PCREL,
1.39153 -+
1.39154 -+/* This is an 18-bit reloc with the right 2 bits assumed to be 0. */
1.39155 -+ BFD_RELOC_M32R_18_PCREL,
1.39156 -+
1.39157 -+/* This is a 26-bit reloc with the right 2 bits assumed to be 0. */
1.39158 -+ BFD_RELOC_M32R_26_PCREL,
1.39159 -+
1.39160 -+/* This is a 16-bit reloc containing the high 16 bits of an address
1.39161 -+used when the lower 16 bits are treated as unsigned. */
1.39162 -+ BFD_RELOC_M32R_HI16_ULO,
1.39163 -+
1.39164 -+/* This is a 16-bit reloc containing the high 16 bits of an address
1.39165 -+used when the lower 16 bits are treated as signed. */
1.39166 -+ BFD_RELOC_M32R_HI16_SLO,
1.39167 -+
1.39168 -+/* This is a 16-bit reloc containing the lower 16 bits of an address. */
1.39169 -+ BFD_RELOC_M32R_LO16,
1.39170 -+
1.39171 -+/* This is a 16-bit reloc containing the small data area offset for use in
1.39172 -+add3, load, and store instructions. */
1.39173 -+ BFD_RELOC_M32R_SDA16,
1.39174 -+
1.39175 -+/* For PIC. */
1.39176 -+ BFD_RELOC_M32R_GOT24,
1.39177 -+ BFD_RELOC_M32R_26_PLTREL,
1.39178 -+ BFD_RELOC_M32R_COPY,
1.39179 -+ BFD_RELOC_M32R_GLOB_DAT,
1.39180 -+ BFD_RELOC_M32R_JMP_SLOT,
1.39181 -+ BFD_RELOC_M32R_RELATIVE,
1.39182 -+ BFD_RELOC_M32R_GOTOFF,
1.39183 -+ BFD_RELOC_M32R_GOTOFF_HI_ULO,
1.39184 -+ BFD_RELOC_M32R_GOTOFF_HI_SLO,
1.39185 -+ BFD_RELOC_M32R_GOTOFF_LO,
1.39186 -+ BFD_RELOC_M32R_GOTPC24,
1.39187 -+ BFD_RELOC_M32R_GOT16_HI_ULO,
1.39188 -+ BFD_RELOC_M32R_GOT16_HI_SLO,
1.39189 -+ BFD_RELOC_M32R_GOT16_LO,
1.39190 -+ BFD_RELOC_M32R_GOTPC_HI_ULO,
1.39191 -+ BFD_RELOC_M32R_GOTPC_HI_SLO,
1.39192 -+ BFD_RELOC_M32R_GOTPC_LO,
1.39193 -+
1.39194 -+/* This is a 9-bit reloc */
1.39195 -+ BFD_RELOC_V850_9_PCREL,
1.39196 -+
1.39197 -+/* This is a 22-bit reloc */
1.39198 -+ BFD_RELOC_V850_22_PCREL,
1.39199 -+
1.39200 -+/* This is a 16 bit offset from the short data area pointer. */
1.39201 -+ BFD_RELOC_V850_SDA_16_16_OFFSET,
1.39202 -+
1.39203 -+/* This is a 16 bit offset (of which only 15 bits are used) from the
1.39204 -+short data area pointer. */
1.39205 -+ BFD_RELOC_V850_SDA_15_16_OFFSET,
1.39206 -+
1.39207 -+/* This is a 16 bit offset from the zero data area pointer. */
1.39208 -+ BFD_RELOC_V850_ZDA_16_16_OFFSET,
1.39209 -+
1.39210 -+/* This is a 16 bit offset (of which only 15 bits are used) from the
1.39211 -+zero data area pointer. */
1.39212 -+ BFD_RELOC_V850_ZDA_15_16_OFFSET,
1.39213 -+
1.39214 -+/* This is an 8 bit offset (of which only 6 bits are used) from the
1.39215 -+tiny data area pointer. */
1.39216 -+ BFD_RELOC_V850_TDA_6_8_OFFSET,
1.39217 -+
1.39218 -+/* This is an 8bit offset (of which only 7 bits are used) from the tiny
1.39219 -+data area pointer. */
1.39220 -+ BFD_RELOC_V850_TDA_7_8_OFFSET,
1.39221 -+
1.39222 -+/* This is a 7 bit offset from the tiny data area pointer. */
1.39223 -+ BFD_RELOC_V850_TDA_7_7_OFFSET,
1.39224 -+
1.39225 -+/* This is a 16 bit offset from the tiny data area pointer. */
1.39226 -+ BFD_RELOC_V850_TDA_16_16_OFFSET,
1.39227 -+
1.39228 -+/* This is a 5 bit offset (of which only 4 bits are used) from the tiny
1.39229 -+data area pointer. */
1.39230 -+ BFD_RELOC_V850_TDA_4_5_OFFSET,
1.39231 -+
1.39232 -+/* This is a 4 bit offset from the tiny data area pointer. */
1.39233 -+ BFD_RELOC_V850_TDA_4_4_OFFSET,
1.39234 -+
1.39235 -+/* This is a 16 bit offset from the short data area pointer, with the
1.39236 -+bits placed non-contiguously in the instruction. */
1.39237 -+ BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET,
1.39238 -+
1.39239 -+/* This is a 16 bit offset from the zero data area pointer, with the
1.39240 -+bits placed non-contiguously in the instruction. */
1.39241 -+ BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET,
1.39242 -+
1.39243 -+/* This is a 6 bit offset from the call table base pointer. */
1.39244 -+ BFD_RELOC_V850_CALLT_6_7_OFFSET,
1.39245 -+
1.39246 -+/* This is a 16 bit offset from the call table base pointer. */
1.39247 -+ BFD_RELOC_V850_CALLT_16_16_OFFSET,
1.39248 -+
1.39249 -+/* Used for relaxing indirect function calls. */
1.39250 -+ BFD_RELOC_V850_LONGCALL,
1.39251 -+
1.39252 -+/* Used for relaxing indirect jumps. */
1.39253 -+ BFD_RELOC_V850_LONGJUMP,
1.39254 -+
1.39255 -+/* Used to maintain alignment whilst relaxing. */
1.39256 -+ BFD_RELOC_V850_ALIGN,
1.39257 -+
1.39258 -+/* This is a variation of BFD_RELOC_LO16 that can be used in v850e ld.bu
1.39259 -+instructions. */
1.39260 -+ BFD_RELOC_V850_LO16_SPLIT_OFFSET,
1.39261 -+
1.39262 -+/* This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the
1.39263 -+instruction. */
1.39264 -+ BFD_RELOC_MN10300_32_PCREL,
1.39265 -+
1.39266 -+/* This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the
1.39267 -+instruction. */
1.39268 -+ BFD_RELOC_MN10300_16_PCREL,
1.39269 -+
1.39270 -+/* This is a 8bit DP reloc for the tms320c30, where the most
1.39271 -+significant 8 bits of a 24 bit word are placed into the least
1.39272 -+significant 8 bits of the opcode. */
1.39273 -+ BFD_RELOC_TIC30_LDP,
1.39274 -+
1.39275 -+/* This is a 7bit reloc for the tms320c54x, where the least
1.39276 -+significant 7 bits of a 16 bit word are placed into the least
1.39277 -+significant 7 bits of the opcode. */
1.39278 -+ BFD_RELOC_TIC54X_PARTLS7,
1.39279 -+
1.39280 -+/* This is a 9bit DP reloc for the tms320c54x, where the most
1.39281 -+significant 9 bits of a 16 bit word are placed into the least
1.39282 -+significant 9 bits of the opcode. */
1.39283 -+ BFD_RELOC_TIC54X_PARTMS9,
1.39284 -+
1.39285 -+/* This is an extended address 23-bit reloc for the tms320c54x. */
1.39286 -+ BFD_RELOC_TIC54X_23,
1.39287 -+
1.39288 -+/* This is a 16-bit reloc for the tms320c54x, where the least
1.39289 -+significant 16 bits of a 23-bit extended address are placed into
1.39290 -+the opcode. */
1.39291 -+ BFD_RELOC_TIC54X_16_OF_23,
1.39292 -+
1.39293 -+/* This is a reloc for the tms320c54x, where the most
1.39294 -+significant 7 bits of a 23-bit extended address are placed into
1.39295 -+the opcode. */
1.39296 -+ BFD_RELOC_TIC54X_MS7_OF_23,
1.39297 -+
1.39298 -+/* This is a 48 bit reloc for the FR30 that stores 32 bits. */
1.39299 -+ BFD_RELOC_FR30_48,
1.39300 -+
1.39301 -+/* This is a 32 bit reloc for the FR30 that stores 20 bits split up into
1.39302 -+two sections. */
1.39303 -+ BFD_RELOC_FR30_20,
1.39304 -+
1.39305 -+/* This is a 16 bit reloc for the FR30 that stores a 6 bit word offset in
1.39306 -+4 bits. */
1.39307 -+ BFD_RELOC_FR30_6_IN_4,
1.39308 -+
1.39309 -+/* This is a 16 bit reloc for the FR30 that stores an 8 bit byte offset
1.39310 -+into 8 bits. */
1.39311 -+ BFD_RELOC_FR30_8_IN_8,
1.39312 -+
1.39313 -+/* This is a 16 bit reloc for the FR30 that stores a 9 bit short offset
1.39314 -+into 8 bits. */
1.39315 -+ BFD_RELOC_FR30_9_IN_8,
1.39316 -+
1.39317 -+/* This is a 16 bit reloc for the FR30 that stores a 10 bit word offset
1.39318 -+into 8 bits. */
1.39319 -+ BFD_RELOC_FR30_10_IN_8,
1.39320 -+
1.39321 -+/* This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
1.39322 -+short offset into 8 bits. */
1.39323 -+ BFD_RELOC_FR30_9_PCREL,
1.39324 -+
1.39325 -+/* This is a 16 bit reloc for the FR30 that stores a 12 bit pc relative
1.39326 -+short offset into 11 bits. */
1.39327 -+ BFD_RELOC_FR30_12_PCREL,
1.39328 -+
1.39329 -+/* Motorola Mcore relocations. */
1.39330 -+ BFD_RELOC_MCORE_PCREL_IMM8BY4,
1.39331 -+ BFD_RELOC_MCORE_PCREL_IMM11BY2,
1.39332 -+ BFD_RELOC_MCORE_PCREL_IMM4BY2,
1.39333 -+ BFD_RELOC_MCORE_PCREL_32,
1.39334 -+ BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2,
1.39335 -+ BFD_RELOC_MCORE_RVA,
1.39336 -+
1.39337 -+/* Toshiba Media Processor Relocations. */
1.39338 -+ BFD_RELOC_MEP_8,
1.39339 -+ BFD_RELOC_MEP_16,
1.39340 -+ BFD_RELOC_MEP_32,
1.39341 -+ BFD_RELOC_MEP_PCREL8A2,
1.39342 -+ BFD_RELOC_MEP_PCREL12A2,
1.39343 -+ BFD_RELOC_MEP_PCREL17A2,
1.39344 -+ BFD_RELOC_MEP_PCREL24A2,
1.39345 -+ BFD_RELOC_MEP_PCABS24A2,
1.39346 -+ BFD_RELOC_MEP_LOW16,
1.39347 -+ BFD_RELOC_MEP_HI16U,
1.39348 -+ BFD_RELOC_MEP_HI16S,
1.39349 -+ BFD_RELOC_MEP_GPREL,
1.39350 -+ BFD_RELOC_MEP_TPREL,
1.39351 -+ BFD_RELOC_MEP_TPREL7,
1.39352 -+ BFD_RELOC_MEP_TPREL7A2,
1.39353 -+ BFD_RELOC_MEP_TPREL7A4,
1.39354 -+ BFD_RELOC_MEP_UIMM24,
1.39355 -+ BFD_RELOC_MEP_ADDR24A4,
1.39356 -+ BFD_RELOC_MEP_GNU_VTINHERIT,
1.39357 -+ BFD_RELOC_MEP_GNU_VTENTRY,
1.39358 -+
1.39359 -+
1.39360 -+/* These are relocations for the GETA instruction. */
1.39361 -+ BFD_RELOC_MMIX_GETA,
1.39362 -+ BFD_RELOC_MMIX_GETA_1,
1.39363 -+ BFD_RELOC_MMIX_GETA_2,
1.39364 -+ BFD_RELOC_MMIX_GETA_3,
1.39365 -+
1.39366 -+/* These are relocations for a conditional branch instruction. */
1.39367 -+ BFD_RELOC_MMIX_CBRANCH,
1.39368 -+ BFD_RELOC_MMIX_CBRANCH_J,
1.39369 -+ BFD_RELOC_MMIX_CBRANCH_1,
1.39370 -+ BFD_RELOC_MMIX_CBRANCH_2,
1.39371 -+ BFD_RELOC_MMIX_CBRANCH_3,
1.39372 -+
1.39373 -+/* These are relocations for the PUSHJ instruction. */
1.39374 -+ BFD_RELOC_MMIX_PUSHJ,
1.39375 -+ BFD_RELOC_MMIX_PUSHJ_1,
1.39376 -+ BFD_RELOC_MMIX_PUSHJ_2,
1.39377 -+ BFD_RELOC_MMIX_PUSHJ_3,
1.39378 -+ BFD_RELOC_MMIX_PUSHJ_STUBBABLE,
1.39379 -+
1.39380 -+/* These are relocations for the JMP instruction. */
1.39381 -+ BFD_RELOC_MMIX_JMP,
1.39382 -+ BFD_RELOC_MMIX_JMP_1,
1.39383 -+ BFD_RELOC_MMIX_JMP_2,
1.39384 -+ BFD_RELOC_MMIX_JMP_3,
1.39385 -+
1.39386 -+/* This is a relocation for a relative address as in a GETA instruction or
1.39387 -+a branch. */
1.39388 -+ BFD_RELOC_MMIX_ADDR19,
1.39389 -+
1.39390 -+/* This is a relocation for a relative address as in a JMP instruction. */
1.39391 -+ BFD_RELOC_MMIX_ADDR27,
1.39392 -+
1.39393 -+/* This is a relocation for an instruction field that may be a general
1.39394 -+register or a value 0..255. */
1.39395 -+ BFD_RELOC_MMIX_REG_OR_BYTE,
1.39396 -+
1.39397 -+/* This is a relocation for an instruction field that may be a general
1.39398 -+register. */
1.39399 -+ BFD_RELOC_MMIX_REG,
1.39400 -+
1.39401 -+/* This is a relocation for two instruction fields holding a register and
1.39402 -+an offset, the equivalent of the relocation. */
1.39403 -+ BFD_RELOC_MMIX_BASE_PLUS_OFFSET,
1.39404 -+
1.39405 -+/* This relocation is an assertion that the expression is not allocated as
1.39406 -+a global register. It does not modify contents. */
1.39407 -+ BFD_RELOC_MMIX_LOCAL,
1.39408 -+
1.39409 -+/* This is a 16 bit reloc for the AVR that stores 8 bit pc relative
1.39410 -+short offset into 7 bits. */
1.39411 -+ BFD_RELOC_AVR_7_PCREL,
1.39412 -+
1.39413 -+/* This is a 16 bit reloc for the AVR that stores 13 bit pc relative
1.39414 -+short offset into 12 bits. */
1.39415 -+ BFD_RELOC_AVR_13_PCREL,
1.39416 -+
1.39417 -+/* This is a 16 bit reloc for the AVR that stores 17 bit value (usually
1.39418 -+program memory address) into 16 bits. */
1.39419 -+ BFD_RELOC_AVR_16_PM,
1.39420 -+
1.39421 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
1.39422 -+data memory address) into 8 bit immediate value of LDI insn. */
1.39423 -+ BFD_RELOC_AVR_LO8_LDI,
1.39424 -+
1.39425 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
1.39426 -+of data memory address) into 8 bit immediate value of LDI insn. */
1.39427 -+ BFD_RELOC_AVR_HI8_LDI,
1.39428 -+
1.39429 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
1.39430 -+of program memory address) into 8 bit immediate value of LDI insn. */
1.39431 -+ BFD_RELOC_AVR_HH8_LDI,
1.39432 -+
1.39433 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
1.39434 -+of 32 bit value) into 8 bit immediate value of LDI insn. */
1.39435 -+ BFD_RELOC_AVR_MS8_LDI,
1.39436 -+
1.39437 -+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
1.39438 -+(usually data memory address) into 8 bit immediate value of SUBI insn. */
1.39439 -+ BFD_RELOC_AVR_LO8_LDI_NEG,
1.39440 -+
1.39441 -+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
1.39442 -+(high 8 bit of data memory address) into 8 bit immediate value of
1.39443 -+SUBI insn. */
1.39444 -+ BFD_RELOC_AVR_HI8_LDI_NEG,
1.39445 -+
1.39446 -+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
1.39447 -+(most high 8 bit of program memory address) into 8 bit immediate value
1.39448 -+of LDI or SUBI insn. */
1.39449 -+ BFD_RELOC_AVR_HH8_LDI_NEG,
1.39450 -+
1.39451 -+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value (msb
1.39452 -+of 32 bit value) into 8 bit immediate value of LDI insn. */
1.39453 -+ BFD_RELOC_AVR_MS8_LDI_NEG,
1.39454 -+
1.39455 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
1.39456 -+command address) into 8 bit immediate value of LDI insn. */
1.39457 -+ BFD_RELOC_AVR_LO8_LDI_PM,
1.39458 -+
1.39459 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value
1.39460 -+(command address) into 8 bit immediate value of LDI insn. If the address
1.39461 -+is beyond the 128k boundary, the linker inserts a jump stub for this reloc
1.39462 -+in the lower 128k. */
1.39463 -+ BFD_RELOC_AVR_LO8_LDI_GS,
1.39464 -+
1.39465 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
1.39466 -+of command address) into 8 bit immediate value of LDI insn. */
1.39467 -+ BFD_RELOC_AVR_HI8_LDI_PM,
1.39468 -+
1.39469 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
1.39470 -+of command address) into 8 bit immediate value of LDI insn. If the address
1.39471 -+is beyond the 128k boundary, the linker inserts a jump stub for this reloc
1.39472 -+below 128k. */
1.39473 -+ BFD_RELOC_AVR_HI8_LDI_GS,
1.39474 -+
1.39475 -+/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
1.39476 -+of command address) into 8 bit immediate value of LDI insn. */
1.39477 -+ BFD_RELOC_AVR_HH8_LDI_PM,
1.39478 -+
1.39479 -+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
1.39480 -+(usually command address) into 8 bit immediate value of SUBI insn. */
1.39481 -+ BFD_RELOC_AVR_LO8_LDI_PM_NEG,
1.39482 -+
1.39483 -+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
1.39484 -+(high 8 bit of 16 bit command address) into 8 bit immediate value
1.39485 -+of SUBI insn. */
1.39486 -+ BFD_RELOC_AVR_HI8_LDI_PM_NEG,
1.39487 -+
1.39488 -+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
1.39489 -+(high 6 bit of 22 bit command address) into 8 bit immediate
1.39490 -+value of SUBI insn. */
1.39491 -+ BFD_RELOC_AVR_HH8_LDI_PM_NEG,
1.39492 -+
1.39493 -+/* This is a 32 bit reloc for the AVR that stores 23 bit value
1.39494 -+into 22 bits. */
1.39495 -+ BFD_RELOC_AVR_CALL,
1.39496 -+
1.39497 -+/* This is a 16 bit reloc for the AVR that stores all needed bits
1.39498 -+for absolute addressing with ldi with overflow check to linktime */
1.39499 -+ BFD_RELOC_AVR_LDI,
1.39500 -+
1.39501 -+/* This is a 6 bit reloc for the AVR that stores offset for ldd/std
1.39502 -+instructions */
1.39503 -+ BFD_RELOC_AVR_6,
1.39504 -+
1.39505 -+/* This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
1.39506 -+instructions */
1.39507 -+ BFD_RELOC_AVR_6_ADIW,
1.39508 -+
1.39509 -+/* Difference between two labels: L2 - L1. The value of L1 is encoded
1.39510 -+as sym + addend, while the initial difference after assembly is
1.39511 -+inserted into the object file by the assembler. */
1.39512 -+ BFD_RELOC_AVR32_DIFF32,
1.39513 -+ BFD_RELOC_AVR32_DIFF16,
1.39514 -+ BFD_RELOC_AVR32_DIFF8,
1.39515 -+
1.39516 -+/* Reference to a symbol through the Global Offset Table. The linker
1.39517 -+will allocate an entry for symbol in the GOT and insert the offset
1.39518 -+of this entry as the relocation value. */
1.39519 -+ BFD_RELOC_AVR32_GOT32,
1.39520 -+ BFD_RELOC_AVR32_GOT16,
1.39521 -+ BFD_RELOC_AVR32_GOT8,
1.39522 -+
1.39523 -+/* Normal (non-pc-relative) code relocations. Alignment and signedness
1.39524 -+is indicated by the suffixes. S means signed, U means unsigned. W
1.39525 -+means word-aligned, H means halfword-aligned, neither means
1.39526 -+byte-aligned (no alignment.) SUB5 is the same relocation as 16S. */
1.39527 -+ BFD_RELOC_AVR32_21S,
1.39528 -+ BFD_RELOC_AVR32_16U,
1.39529 -+ BFD_RELOC_AVR32_16S,
1.39530 -+ BFD_RELOC_AVR32_SUB5,
1.39531 -+ BFD_RELOC_AVR32_8S_EXT,
1.39532 -+ BFD_RELOC_AVR32_8S,
1.39533 -+ BFD_RELOC_AVR32_15S,
1.39534 -+
1.39535 -+/* PC-relative relocations are signed if neither 'U' nor 'S' is
1.39536 -+specified. However, we explicitly tack on a 'B' to indicate no
1.39537 -+alignment, to avoid confusion with data relocs. All of these resolve
1.39538 -+to sym + addend - offset, except the one with 'N' (negated) suffix.
1.39539 -+This particular one resolves to offset - sym - addend. */
1.39540 -+ BFD_RELOC_AVR32_22H_PCREL,
1.39541 -+ BFD_RELOC_AVR32_18W_PCREL,
1.39542 -+ BFD_RELOC_AVR32_16B_PCREL,
1.39543 -+ BFD_RELOC_AVR32_16N_PCREL,
1.39544 -+ BFD_RELOC_AVR32_14UW_PCREL,
1.39545 -+ BFD_RELOC_AVR32_11H_PCREL,
1.39546 -+ BFD_RELOC_AVR32_10UW_PCREL,
1.39547 -+ BFD_RELOC_AVR32_9H_PCREL,
1.39548 -+ BFD_RELOC_AVR32_9UW_PCREL,
1.39549 -+
1.39550 -+/* Subtract the link-time address of the GOT from (symbol + addend)
1.39551 -+and insert the result. */
1.39552 -+ BFD_RELOC_AVR32_GOTPC,
1.39553 -+
1.39554 -+/* Reference to a symbol through the GOT. The linker will allocate an
1.39555 -+entry for symbol in the GOT and insert the offset of this entry as
1.39556 -+the relocation value. addend must be zero. As usual, 'S' means
1.39557 -+signed, 'W' means word-aligned, etc. */
1.39558 -+ BFD_RELOC_AVR32_GOTCALL,
1.39559 -+ BFD_RELOC_AVR32_LDA_GOT,
1.39560 -+ BFD_RELOC_AVR32_GOT21S,
1.39561 -+ BFD_RELOC_AVR32_GOT18SW,
1.39562 -+ BFD_RELOC_AVR32_GOT16S,
1.39563 -+
1.39564 -+/* 32-bit constant pool entry. I don't think 8- and 16-bit entries make
1.39565 -+a whole lot of sense. */
1.39566 -+ BFD_RELOC_AVR32_32_CPENT,
1.39567 -+
1.39568 -+/* Constant pool references. Some of these relocations are signed,
1.39569 -+others are unsigned. It doesn't really matter, since the constant
1.39570 -+pool always comes after the code that references it. */
1.39571 -+ BFD_RELOC_AVR32_CPCALL,
1.39572 -+ BFD_RELOC_AVR32_16_CP,
1.39573 -+ BFD_RELOC_AVR32_9W_CP,
1.39574 -+
1.39575 -+/* sym must be the absolute symbol. The addend specifies the alignment
1.39576 -+order, e.g. if addend is 2, the linker must add padding so that the
1.39577 -+next address is aligned to a 4-byte boundary. */
1.39578 -+ BFD_RELOC_AVR32_ALIGN,
1.39579 -+
1.39580 -+/* Code relocations that will never make it to the output file. */
1.39581 -+ BFD_RELOC_AVR32_14UW,
1.39582 -+ BFD_RELOC_AVR32_10UW,
1.39583 -+ BFD_RELOC_AVR32_10SW,
1.39584 -+ BFD_RELOC_AVR32_STHH_W,
1.39585 -+ BFD_RELOC_AVR32_7UW,
1.39586 -+ BFD_RELOC_AVR32_6S,
1.39587 -+ BFD_RELOC_AVR32_6UW,
1.39588 -+ BFD_RELOC_AVR32_4UH,
1.39589 -+ BFD_RELOC_AVR32_3U,
1.39590 -+
1.39591 -+/* Direct 12 bit. */
1.39592 -+ BFD_RELOC_390_12,
1.39593 -+
1.39594 -+/* 12 bit GOT offset. */
1.39595 -+ BFD_RELOC_390_GOT12,
1.39596 -+
1.39597 -+/* 32 bit PC relative PLT address. */
1.39598 -+ BFD_RELOC_390_PLT32,
1.39599 -+
1.39600 -+/* Copy symbol at runtime. */
1.39601 -+ BFD_RELOC_390_COPY,
1.39602 -+
1.39603 -+/* Create GOT entry. */
1.39604 -+ BFD_RELOC_390_GLOB_DAT,
1.39605 -+
1.39606 -+/* Create PLT entry. */
1.39607 -+ BFD_RELOC_390_JMP_SLOT,
1.39608 -+
1.39609 -+/* Adjust by program base. */
1.39610 -+ BFD_RELOC_390_RELATIVE,
1.39611 -+
1.39612 -+/* 32 bit PC relative offset to GOT. */
1.39613 -+ BFD_RELOC_390_GOTPC,
1.39614 -+
1.39615 -+/* 16 bit GOT offset. */
1.39616 -+ BFD_RELOC_390_GOT16,
1.39617 -+
1.39618 -+/* PC relative 16 bit shifted by 1. */
1.39619 -+ BFD_RELOC_390_PC16DBL,
1.39620 -+
1.39621 -+/* 16 bit PC rel. PLT shifted by 1. */
1.39622 -+ BFD_RELOC_390_PLT16DBL,
1.39623 -+
1.39624 -+/* PC relative 32 bit shifted by 1. */
1.39625 -+ BFD_RELOC_390_PC32DBL,
1.39626 -+
1.39627 -+/* 32 bit PC rel. PLT shifted by 1. */
1.39628 -+ BFD_RELOC_390_PLT32DBL,
1.39629 -+
1.39630 -+/* 32 bit PC rel. GOT shifted by 1. */
1.39631 -+ BFD_RELOC_390_GOTPCDBL,
1.39632 -+
1.39633 -+/* 64 bit GOT offset. */
1.39634 -+ BFD_RELOC_390_GOT64,
1.39635 -+
1.39636 -+/* 64 bit PC relative PLT address. */
1.39637 -+ BFD_RELOC_390_PLT64,
1.39638 -+
1.39639 -+/* 32 bit rel. offset to GOT entry. */
1.39640 -+ BFD_RELOC_390_GOTENT,
1.39641 -+
1.39642 -+/* 64 bit offset to GOT. */
1.39643 -+ BFD_RELOC_390_GOTOFF64,
1.39644 -+
1.39645 -+/* 12-bit offset to symbol-entry within GOT, with PLT handling. */
1.39646 -+ BFD_RELOC_390_GOTPLT12,
1.39647 -+
1.39648 -+/* 16-bit offset to symbol-entry within GOT, with PLT handling. */
1.39649 -+ BFD_RELOC_390_GOTPLT16,
1.39650 -+
1.39651 -+/* 32-bit offset to symbol-entry within GOT, with PLT handling. */
1.39652 -+ BFD_RELOC_390_GOTPLT32,
1.39653 -+
1.39654 -+/* 64-bit offset to symbol-entry within GOT, with PLT handling. */
1.39655 -+ BFD_RELOC_390_GOTPLT64,
1.39656 -+
1.39657 -+/* 32-bit rel. offset to symbol-entry within GOT, with PLT handling. */
1.39658 -+ BFD_RELOC_390_GOTPLTENT,
1.39659 -+
1.39660 -+/* 16-bit rel. offset from the GOT to a PLT entry. */
1.39661 -+ BFD_RELOC_390_PLTOFF16,
1.39662 -+
1.39663 -+/* 32-bit rel. offset from the GOT to a PLT entry. */
1.39664 -+ BFD_RELOC_390_PLTOFF32,
1.39665 -+
1.39666 -+/* 64-bit rel. offset from the GOT to a PLT entry. */
1.39667 -+ BFD_RELOC_390_PLTOFF64,
1.39668 -+
1.39669 -+/* s390 tls relocations. */
1.39670 -+ BFD_RELOC_390_TLS_LOAD,
1.39671 -+ BFD_RELOC_390_TLS_GDCALL,
1.39672 -+ BFD_RELOC_390_TLS_LDCALL,
1.39673 -+ BFD_RELOC_390_TLS_GD32,
1.39674 -+ BFD_RELOC_390_TLS_GD64,
1.39675 -+ BFD_RELOC_390_TLS_GOTIE12,
1.39676 -+ BFD_RELOC_390_TLS_GOTIE32,
1.39677 -+ BFD_RELOC_390_TLS_GOTIE64,
1.39678 -+ BFD_RELOC_390_TLS_LDM32,
1.39679 -+ BFD_RELOC_390_TLS_LDM64,
1.39680 -+ BFD_RELOC_390_TLS_IE32,
1.39681 -+ BFD_RELOC_390_TLS_IE64,
1.39682 -+ BFD_RELOC_390_TLS_IEENT,
1.39683 -+ BFD_RELOC_390_TLS_LE32,
1.39684 -+ BFD_RELOC_390_TLS_LE64,
1.39685 -+ BFD_RELOC_390_TLS_LDO32,
1.39686 -+ BFD_RELOC_390_TLS_LDO64,
1.39687 -+ BFD_RELOC_390_TLS_DTPMOD,
1.39688 -+ BFD_RELOC_390_TLS_DTPOFF,
1.39689 -+ BFD_RELOC_390_TLS_TPOFF,
1.39690 -+
1.39691 -+/* Long displacement extension. */
1.39692 -+ BFD_RELOC_390_20,
1.39693 -+ BFD_RELOC_390_GOT20,
1.39694 -+ BFD_RELOC_390_GOTPLT20,
1.39695 -+ BFD_RELOC_390_TLS_GOTIE20,
1.39696 -+
1.39697 -+/* Score relocations */
1.39698 -+ BFD_RELOC_SCORE_DUMMY1,
1.39699 -+
1.39700 -+/* Low 16 bit for load/store */
1.39701 -+ BFD_RELOC_SCORE_GPREL15,
1.39702 -+
1.39703 -+/* This is a 24-bit reloc with the right 1 bit assumed to be 0 */
1.39704 -+ BFD_RELOC_SCORE_DUMMY2,
1.39705 -+ BFD_RELOC_SCORE_JMP,
1.39706 -+
1.39707 -+/* This is a 19-bit reloc with the right 1 bit assumed to be 0 */
1.39708 -+ BFD_RELOC_SCORE_BRANCH,
1.39709 -+
1.39710 -+/* This is a 11-bit reloc with the right 1 bit assumed to be 0 */
1.39711 -+ BFD_RELOC_SCORE16_JMP,
1.39712 -+
1.39713 -+/* This is a 8-bit reloc with the right 1 bit assumed to be 0 */
1.39714 -+ BFD_RELOC_SCORE16_BRANCH,
1.39715 -+
1.39716 -+/* Undocumented Score relocs */
1.39717 -+ BFD_RELOC_SCORE_GOT15,
1.39718 -+ BFD_RELOC_SCORE_GOT_LO16,
1.39719 -+ BFD_RELOC_SCORE_CALL15,
1.39720 -+ BFD_RELOC_SCORE_DUMMY_HI16,
1.39721 -+
1.39722 -+/* Scenix IP2K - 9-bit register number / data address */
1.39723 -+ BFD_RELOC_IP2K_FR9,
1.39724 -+
1.39725 -+/* Scenix IP2K - 4-bit register/data bank number */
1.39726 -+ BFD_RELOC_IP2K_BANK,
1.39727 -+
1.39728 -+/* Scenix IP2K - low 13 bits of instruction word address */
1.39729 -+ BFD_RELOC_IP2K_ADDR16CJP,
1.39730 -+
1.39731 -+/* Scenix IP2K - high 3 bits of instruction word address */
1.39732 -+ BFD_RELOC_IP2K_PAGE3,
1.39733 -+
1.39734 -+/* Scenix IP2K - ext/low/high 8 bits of data address */
1.39735 -+ BFD_RELOC_IP2K_LO8DATA,
1.39736 -+ BFD_RELOC_IP2K_HI8DATA,
1.39737 -+ BFD_RELOC_IP2K_EX8DATA,
1.39738 -+
1.39739 -+/* Scenix IP2K - low/high 8 bits of instruction word address */
1.39740 -+ BFD_RELOC_IP2K_LO8INSN,
1.39741 -+ BFD_RELOC_IP2K_HI8INSN,
1.39742 -+
1.39743 -+/* Scenix IP2K - even/odd PC modifier to modify snb pcl.0 */
1.39744 -+ BFD_RELOC_IP2K_PC_SKIP,
1.39745 -+
1.39746 -+/* Scenix IP2K - 16 bit word address in text section. */
1.39747 -+ BFD_RELOC_IP2K_TEXT,
1.39748 -+
1.39749 -+/* Scenix IP2K - 7-bit sp or dp offset */
1.39750 -+ BFD_RELOC_IP2K_FR_OFFSET,
1.39751 -+
1.39752 -+/* Scenix VPE4K coprocessor - data/insn-space addressing */
1.39753 -+ BFD_RELOC_VPE4KMATH_DATA,
1.39754 -+ BFD_RELOC_VPE4KMATH_INSN,
1.39755 -+
1.39756 -+/* These two relocations are used by the linker to determine which of
1.39757 -+the entries in a C++ virtual function table are actually used. When
1.39758 -+the --gc-sections option is given, the linker will zero out the entries
1.39759 -+that are not used, so that the code for those functions need not be
1.39760 -+included in the output.
1.39761 -+
1.39762 -+VTABLE_INHERIT is a zero-space relocation used to describe to the
1.39763 -+linker the inheritance tree of a C++ virtual function table. The
1.39764 -+relocation's symbol should be the parent class' vtable, and the
1.39765 -+relocation should be located at the child vtable.
1.39766 -+
1.39767 -+VTABLE_ENTRY is a zero-space relocation that describes the use of a
1.39768 -+virtual function table entry. The reloc's symbol should refer to the
1.39769 -+table of the class mentioned in the code. Off of that base, an offset
1.39770 -+describes the entry that is being used. For Rela hosts, this offset
1.39771 -+is stored in the reloc's addend. For Rel hosts, we are forced to put
1.39772 -+this offset in the reloc's section offset. */
1.39773 -+ BFD_RELOC_VTABLE_INHERIT,
1.39774 -+ BFD_RELOC_VTABLE_ENTRY,
1.39775 -+
1.39776 -+/* Intel IA64 Relocations. */
1.39777 -+ BFD_RELOC_IA64_IMM14,
1.39778 -+ BFD_RELOC_IA64_IMM22,
1.39779 -+ BFD_RELOC_IA64_IMM64,
1.39780 -+ BFD_RELOC_IA64_DIR32MSB,
1.39781 -+ BFD_RELOC_IA64_DIR32LSB,
1.39782 -+ BFD_RELOC_IA64_DIR64MSB,
1.39783 -+ BFD_RELOC_IA64_DIR64LSB,
1.39784 -+ BFD_RELOC_IA64_GPREL22,
1.39785 -+ BFD_RELOC_IA64_GPREL64I,
1.39786 -+ BFD_RELOC_IA64_GPREL32MSB,
1.39787 -+ BFD_RELOC_IA64_GPREL32LSB,
1.39788 -+ BFD_RELOC_IA64_GPREL64MSB,
1.39789 -+ BFD_RELOC_IA64_GPREL64LSB,
1.39790 -+ BFD_RELOC_IA64_LTOFF22,
1.39791 -+ BFD_RELOC_IA64_LTOFF64I,
1.39792 -+ BFD_RELOC_IA64_PLTOFF22,
1.39793 -+ BFD_RELOC_IA64_PLTOFF64I,
1.39794 -+ BFD_RELOC_IA64_PLTOFF64MSB,
1.39795 -+ BFD_RELOC_IA64_PLTOFF64LSB,
1.39796 -+ BFD_RELOC_IA64_FPTR64I,
1.39797 -+ BFD_RELOC_IA64_FPTR32MSB,
1.39798 -+ BFD_RELOC_IA64_FPTR32LSB,
1.39799 -+ BFD_RELOC_IA64_FPTR64MSB,
1.39800 -+ BFD_RELOC_IA64_FPTR64LSB,
1.39801 -+ BFD_RELOC_IA64_PCREL21B,
1.39802 -+ BFD_RELOC_IA64_PCREL21BI,
1.39803 -+ BFD_RELOC_IA64_PCREL21M,
1.39804 -+ BFD_RELOC_IA64_PCREL21F,
1.39805 -+ BFD_RELOC_IA64_PCREL22,
1.39806 -+ BFD_RELOC_IA64_PCREL60B,
1.39807 -+ BFD_RELOC_IA64_PCREL64I,
1.39808 -+ BFD_RELOC_IA64_PCREL32MSB,
1.39809 -+ BFD_RELOC_IA64_PCREL32LSB,
1.39810 -+ BFD_RELOC_IA64_PCREL64MSB,
1.39811 -+ BFD_RELOC_IA64_PCREL64LSB,
1.39812 -+ BFD_RELOC_IA64_LTOFF_FPTR22,
1.39813 -+ BFD_RELOC_IA64_LTOFF_FPTR64I,
1.39814 -+ BFD_RELOC_IA64_LTOFF_FPTR32MSB,
1.39815 -+ BFD_RELOC_IA64_LTOFF_FPTR32LSB,
1.39816 -+ BFD_RELOC_IA64_LTOFF_FPTR64MSB,
1.39817 -+ BFD_RELOC_IA64_LTOFF_FPTR64LSB,
1.39818 -+ BFD_RELOC_IA64_SEGREL32MSB,
1.39819 -+ BFD_RELOC_IA64_SEGREL32LSB,
1.39820 -+ BFD_RELOC_IA64_SEGREL64MSB,
1.39821 -+ BFD_RELOC_IA64_SEGREL64LSB,
1.39822 -+ BFD_RELOC_IA64_SECREL32MSB,
1.39823 -+ BFD_RELOC_IA64_SECREL32LSB,
1.39824 -+ BFD_RELOC_IA64_SECREL64MSB,
1.39825 -+ BFD_RELOC_IA64_SECREL64LSB,
1.39826 -+ BFD_RELOC_IA64_REL32MSB,
1.39827 -+ BFD_RELOC_IA64_REL32LSB,
1.39828 -+ BFD_RELOC_IA64_REL64MSB,
1.39829 -+ BFD_RELOC_IA64_REL64LSB,
1.39830 -+ BFD_RELOC_IA64_LTV32MSB,
1.39831 -+ BFD_RELOC_IA64_LTV32LSB,
1.39832 -+ BFD_RELOC_IA64_LTV64MSB,
1.39833 -+ BFD_RELOC_IA64_LTV64LSB,
1.39834 -+ BFD_RELOC_IA64_IPLTMSB,
1.39835 -+ BFD_RELOC_IA64_IPLTLSB,
1.39836 -+ BFD_RELOC_IA64_COPY,
1.39837 -+ BFD_RELOC_IA64_LTOFF22X,
1.39838 -+ BFD_RELOC_IA64_LDXMOV,
1.39839 -+ BFD_RELOC_IA64_TPREL14,
1.39840 -+ BFD_RELOC_IA64_TPREL22,
1.39841 -+ BFD_RELOC_IA64_TPREL64I,
1.39842 -+ BFD_RELOC_IA64_TPREL64MSB,
1.39843 -+ BFD_RELOC_IA64_TPREL64LSB,
1.39844 -+ BFD_RELOC_IA64_LTOFF_TPREL22,
1.39845 -+ BFD_RELOC_IA64_DTPMOD64MSB,
1.39846 -+ BFD_RELOC_IA64_DTPMOD64LSB,
1.39847 -+ BFD_RELOC_IA64_LTOFF_DTPMOD22,
1.39848 -+ BFD_RELOC_IA64_DTPREL14,
1.39849 -+ BFD_RELOC_IA64_DTPREL22,
1.39850 -+ BFD_RELOC_IA64_DTPREL64I,
1.39851 -+ BFD_RELOC_IA64_DTPREL32MSB,
1.39852 -+ BFD_RELOC_IA64_DTPREL32LSB,
1.39853 -+ BFD_RELOC_IA64_DTPREL64MSB,
1.39854 -+ BFD_RELOC_IA64_DTPREL64LSB,
1.39855 -+ BFD_RELOC_IA64_LTOFF_DTPREL22,
1.39856 -+
1.39857 -+/* Motorola 68HC11 reloc.
1.39858 -+This is the 8 bit high part of an absolute address. */
1.39859 -+ BFD_RELOC_M68HC11_HI8,
1.39860 -+
1.39861 -+/* Motorola 68HC11 reloc.
1.39862 -+This is the 8 bit low part of an absolute address. */
1.39863 -+ BFD_RELOC_M68HC11_LO8,
1.39864 -+
1.39865 -+/* Motorola 68HC11 reloc.
1.39866 -+This is the 3 bit of a value. */
1.39867 -+ BFD_RELOC_M68HC11_3B,
1.39868 -+
1.39869 -+/* Motorola 68HC11 reloc.
1.39870 -+This reloc marks the beginning of a jump/call instruction.
1.39871 -+It is used for linker relaxation to correctly identify beginning
1.39872 -+of instruction and change some branches to use PC-relative
1.39873 -+addressing mode. */
1.39874 -+ BFD_RELOC_M68HC11_RL_JUMP,
1.39875 -+
1.39876 -+/* Motorola 68HC11 reloc.
1.39877 -+This reloc marks a group of several instructions that gcc generates
1.39878 -+and for which the linker relaxation pass can modify and/or remove
1.39879 -+some of them. */
1.39880 -+ BFD_RELOC_M68HC11_RL_GROUP,
1.39881 -+
1.39882 -+/* Motorola 68HC11 reloc.
1.39883 -+This is the 16-bit lower part of an address. It is used for 'call'
1.39884 -+instruction to specify the symbol address without any special
1.39885 -+transformation (due to memory bank window). */
1.39886 -+ BFD_RELOC_M68HC11_LO16,
1.39887 -+
1.39888 -+/* Motorola 68HC11 reloc.
1.39889 -+This is a 8-bit reloc that specifies the page number of an address.
1.39890 -+It is used by 'call' instruction to specify the page number of
1.39891 -+the symbol. */
1.39892 -+ BFD_RELOC_M68HC11_PAGE,
1.39893 -+
1.39894 -+/* Motorola 68HC11 reloc.
1.39895 -+This is a 24-bit reloc that represents the address with a 16-bit
1.39896 -+value and a 8-bit page number. The symbol address is transformed
1.39897 -+to follow the 16K memory bank of 68HC12 (seen as mapped in the window). */
1.39898 -+ BFD_RELOC_M68HC11_24,
1.39899 -+
1.39900 -+/* Motorola 68HC12 reloc.
1.39901 -+This is the 5 bits of a value. */
1.39902 -+ BFD_RELOC_M68HC12_5B,
1.39903 -+
1.39904 -+/* NS CR16C Relocations. */
1.39905 -+ BFD_RELOC_16C_NUM08,
1.39906 -+ BFD_RELOC_16C_NUM08_C,
1.39907 -+ BFD_RELOC_16C_NUM16,
1.39908 -+ BFD_RELOC_16C_NUM16_C,
1.39909 -+ BFD_RELOC_16C_NUM32,
1.39910 -+ BFD_RELOC_16C_NUM32_C,
1.39911 -+ BFD_RELOC_16C_DISP04,
1.39912 -+ BFD_RELOC_16C_DISP04_C,
1.39913 -+ BFD_RELOC_16C_DISP08,
1.39914 -+ BFD_RELOC_16C_DISP08_C,
1.39915 -+ BFD_RELOC_16C_DISP16,
1.39916 -+ BFD_RELOC_16C_DISP16_C,
1.39917 -+ BFD_RELOC_16C_DISP24,
1.39918 -+ BFD_RELOC_16C_DISP24_C,
1.39919 -+ BFD_RELOC_16C_DISP24a,
1.39920 -+ BFD_RELOC_16C_DISP24a_C,
1.39921 -+ BFD_RELOC_16C_REG04,
1.39922 -+ BFD_RELOC_16C_REG04_C,
1.39923 -+ BFD_RELOC_16C_REG04a,
1.39924 -+ BFD_RELOC_16C_REG04a_C,
1.39925 -+ BFD_RELOC_16C_REG14,
1.39926 -+ BFD_RELOC_16C_REG14_C,
1.39927 -+ BFD_RELOC_16C_REG16,
1.39928 -+ BFD_RELOC_16C_REG16_C,
1.39929 -+ BFD_RELOC_16C_REG20,
1.39930 -+ BFD_RELOC_16C_REG20_C,
1.39931 -+ BFD_RELOC_16C_ABS20,
1.39932 -+ BFD_RELOC_16C_ABS20_C,
1.39933 -+ BFD_RELOC_16C_ABS24,
1.39934 -+ BFD_RELOC_16C_ABS24_C,
1.39935 -+ BFD_RELOC_16C_IMM04,
1.39936 -+ BFD_RELOC_16C_IMM04_C,
1.39937 -+ BFD_RELOC_16C_IMM16,
1.39938 -+ BFD_RELOC_16C_IMM16_C,
1.39939 -+ BFD_RELOC_16C_IMM20,
1.39940 -+ BFD_RELOC_16C_IMM20_C,
1.39941 -+ BFD_RELOC_16C_IMM24,
1.39942 -+ BFD_RELOC_16C_IMM24_C,
1.39943 -+ BFD_RELOC_16C_IMM32,
1.39944 -+ BFD_RELOC_16C_IMM32_C,
1.39945 -+
1.39946 -+/* NS CR16 Relocations. */
1.39947 -+ BFD_RELOC_CR16_NUM8,
1.39948 -+ BFD_RELOC_CR16_NUM16,
1.39949 -+ BFD_RELOC_CR16_NUM32,
1.39950 -+ BFD_RELOC_CR16_NUM32a,
1.39951 -+ BFD_RELOC_CR16_REGREL0,
1.39952 -+ BFD_RELOC_CR16_REGREL4,
1.39953 -+ BFD_RELOC_CR16_REGREL4a,
1.39954 -+ BFD_RELOC_CR16_REGREL14,
1.39955 -+ BFD_RELOC_CR16_REGREL14a,
1.39956 -+ BFD_RELOC_CR16_REGREL16,
1.39957 -+ BFD_RELOC_CR16_REGREL20,
1.39958 -+ BFD_RELOC_CR16_REGREL20a,
1.39959 -+ BFD_RELOC_CR16_ABS20,
1.39960 -+ BFD_RELOC_CR16_ABS24,
1.39961 -+ BFD_RELOC_CR16_IMM4,
1.39962 -+ BFD_RELOC_CR16_IMM8,
1.39963 -+ BFD_RELOC_CR16_IMM16,
1.39964 -+ BFD_RELOC_CR16_IMM20,
1.39965 -+ BFD_RELOC_CR16_IMM24,
1.39966 -+ BFD_RELOC_CR16_IMM32,
1.39967 -+ BFD_RELOC_CR16_IMM32a,
1.39968 -+ BFD_RELOC_CR16_DISP4,
1.39969 -+ BFD_RELOC_CR16_DISP8,
1.39970 -+ BFD_RELOC_CR16_DISP16,
1.39971 -+ BFD_RELOC_CR16_DISP20,
1.39972 -+ BFD_RELOC_CR16_DISP24,
1.39973 -+ BFD_RELOC_CR16_DISP24a,
1.39974 -+
1.39975 -+/* NS CRX Relocations. */
1.39976 -+ BFD_RELOC_CRX_REL4,
1.39977 -+ BFD_RELOC_CRX_REL8,
1.39978 -+ BFD_RELOC_CRX_REL8_CMP,
1.39979 -+ BFD_RELOC_CRX_REL16,
1.39980 -+ BFD_RELOC_CRX_REL24,
1.39981 -+ BFD_RELOC_CRX_REL32,
1.39982 -+ BFD_RELOC_CRX_REGREL12,
1.39983 -+ BFD_RELOC_CRX_REGREL22,
1.39984 -+ BFD_RELOC_CRX_REGREL28,
1.39985 -+ BFD_RELOC_CRX_REGREL32,
1.39986 -+ BFD_RELOC_CRX_ABS16,
1.39987 -+ BFD_RELOC_CRX_ABS32,
1.39988 -+ BFD_RELOC_CRX_NUM8,
1.39989 -+ BFD_RELOC_CRX_NUM16,
1.39990 -+ BFD_RELOC_CRX_NUM32,
1.39991 -+ BFD_RELOC_CRX_IMM16,
1.39992 -+ BFD_RELOC_CRX_IMM32,
1.39993 -+ BFD_RELOC_CRX_SWITCH8,
1.39994 -+ BFD_RELOC_CRX_SWITCH16,
1.39995 -+ BFD_RELOC_CRX_SWITCH32,
1.39996 -+
1.39997 -+/* These relocs are only used within the CRIS assembler. They are not
1.39998 -+(at present) written to any object files. */
1.39999 -+ BFD_RELOC_CRIS_BDISP8,
1.40000 -+ BFD_RELOC_CRIS_UNSIGNED_5,
1.40001 -+ BFD_RELOC_CRIS_SIGNED_6,
1.40002 -+ BFD_RELOC_CRIS_UNSIGNED_6,
1.40003 -+ BFD_RELOC_CRIS_SIGNED_8,
1.40004 -+ BFD_RELOC_CRIS_UNSIGNED_8,
1.40005 -+ BFD_RELOC_CRIS_SIGNED_16,
1.40006 -+ BFD_RELOC_CRIS_UNSIGNED_16,
1.40007 -+ BFD_RELOC_CRIS_LAPCQ_OFFSET,
1.40008 -+ BFD_RELOC_CRIS_UNSIGNED_4,
1.40009 -+
1.40010 -+/* Relocs used in ELF shared libraries for CRIS. */
1.40011 -+ BFD_RELOC_CRIS_COPY,
1.40012 -+ BFD_RELOC_CRIS_GLOB_DAT,
1.40013 -+ BFD_RELOC_CRIS_JUMP_SLOT,
1.40014 -+ BFD_RELOC_CRIS_RELATIVE,
1.40015 -+
1.40016 -+/* 32-bit offset to symbol-entry within GOT. */
1.40017 -+ BFD_RELOC_CRIS_32_GOT,
1.40018 -+
1.40019 -+/* 16-bit offset to symbol-entry within GOT. */
1.40020 -+ BFD_RELOC_CRIS_16_GOT,
1.40021 -+
1.40022 -+/* 32-bit offset to symbol-entry within GOT, with PLT handling. */
1.40023 -+ BFD_RELOC_CRIS_32_GOTPLT,
1.40024 -+
1.40025 -+/* 16-bit offset to symbol-entry within GOT, with PLT handling. */
1.40026 -+ BFD_RELOC_CRIS_16_GOTPLT,
1.40027 -+
1.40028 -+/* 32-bit offset to symbol, relative to GOT. */
1.40029 -+ BFD_RELOC_CRIS_32_GOTREL,
1.40030 -+
1.40031 -+/* 32-bit offset to symbol with PLT entry, relative to GOT. */
1.40032 -+ BFD_RELOC_CRIS_32_PLT_GOTREL,
1.40033 -+
1.40034 -+/* 32-bit offset to symbol with PLT entry, relative to this relocation. */
1.40035 -+ BFD_RELOC_CRIS_32_PLT_PCREL,
1.40036 -+
1.40037 -+/* Intel i860 Relocations. */
1.40038 -+ BFD_RELOC_860_COPY,
1.40039 -+ BFD_RELOC_860_GLOB_DAT,
1.40040 -+ BFD_RELOC_860_JUMP_SLOT,
1.40041 -+ BFD_RELOC_860_RELATIVE,
1.40042 -+ BFD_RELOC_860_PC26,
1.40043 -+ BFD_RELOC_860_PLT26,
1.40044 -+ BFD_RELOC_860_PC16,
1.40045 -+ BFD_RELOC_860_LOW0,
1.40046 -+ BFD_RELOC_860_SPLIT0,
1.40047 -+ BFD_RELOC_860_LOW1,
1.40048 -+ BFD_RELOC_860_SPLIT1,
1.40049 -+ BFD_RELOC_860_LOW2,
1.40050 -+ BFD_RELOC_860_SPLIT2,
1.40051 -+ BFD_RELOC_860_LOW3,
1.40052 -+ BFD_RELOC_860_LOGOT0,
1.40053 -+ BFD_RELOC_860_SPGOT0,
1.40054 -+ BFD_RELOC_860_LOGOT1,
1.40055 -+ BFD_RELOC_860_SPGOT1,
1.40056 -+ BFD_RELOC_860_LOGOTOFF0,
1.40057 -+ BFD_RELOC_860_SPGOTOFF0,
1.40058 -+ BFD_RELOC_860_LOGOTOFF1,
1.40059 -+ BFD_RELOC_860_SPGOTOFF1,
1.40060 -+ BFD_RELOC_860_LOGOTOFF2,
1.40061 -+ BFD_RELOC_860_LOGOTOFF3,
1.40062 -+ BFD_RELOC_860_LOPC,
1.40063 -+ BFD_RELOC_860_HIGHADJ,
1.40064 -+ BFD_RELOC_860_HAGOT,
1.40065 -+ BFD_RELOC_860_HAGOTOFF,
1.40066 -+ BFD_RELOC_860_HAPC,
1.40067 -+ BFD_RELOC_860_HIGH,
1.40068 -+ BFD_RELOC_860_HIGOT,
1.40069 -+ BFD_RELOC_860_HIGOTOFF,
1.40070 -+
1.40071 -+/* OpenRISC Relocations. */
1.40072 -+ BFD_RELOC_OPENRISC_ABS_26,
1.40073 -+ BFD_RELOC_OPENRISC_REL_26,
1.40074 -+
1.40075 -+/* H8 elf Relocations. */
1.40076 -+ BFD_RELOC_H8_DIR16A8,
1.40077 -+ BFD_RELOC_H8_DIR16R8,
1.40078 -+ BFD_RELOC_H8_DIR24A8,
1.40079 -+ BFD_RELOC_H8_DIR24R8,
1.40080 -+ BFD_RELOC_H8_DIR32A16,
1.40081 -+
1.40082 -+/* Sony Xstormy16 Relocations. */
1.40083 -+ BFD_RELOC_XSTORMY16_REL_12,
1.40084 -+ BFD_RELOC_XSTORMY16_12,
1.40085 -+ BFD_RELOC_XSTORMY16_24,
1.40086 -+ BFD_RELOC_XSTORMY16_FPTR16,
1.40087 -+
1.40088 -+/* Self-describing complex relocations. */
1.40089 -+ BFD_RELOC_RELC,
1.40090 -+
1.40091 -+
1.40092 -+/* Infineon Relocations. */
1.40093 -+ BFD_RELOC_XC16X_PAG,
1.40094 -+ BFD_RELOC_XC16X_POF,
1.40095 -+ BFD_RELOC_XC16X_SEG,
1.40096 -+ BFD_RELOC_XC16X_SOF,
1.40097 -+
1.40098 -+/* Relocations used by VAX ELF. */
1.40099 -+ BFD_RELOC_VAX_GLOB_DAT,
1.40100 -+ BFD_RELOC_VAX_JMP_SLOT,
1.40101 -+ BFD_RELOC_VAX_RELATIVE,
1.40102 -+
1.40103 -+/* Morpho MT - 16 bit immediate relocation. */
1.40104 -+ BFD_RELOC_MT_PC16,
1.40105 -+
1.40106 -+/* Morpho MT - Hi 16 bits of an address. */
1.40107 -+ BFD_RELOC_MT_HI16,
1.40108 -+
1.40109 -+/* Morpho MT - Low 16 bits of an address. */
1.40110 -+ BFD_RELOC_MT_LO16,
1.40111 -+
1.40112 -+/* Morpho MT - Used to tell the linker which vtable entries are used. */
1.40113 -+ BFD_RELOC_MT_GNU_VTINHERIT,
1.40114 -+
1.40115 -+/* Morpho MT - Used to tell the linker which vtable entries are used. */
1.40116 -+ BFD_RELOC_MT_GNU_VTENTRY,
1.40117 -+
1.40118 -+/* Morpho MT - 8 bit immediate relocation. */
1.40119 -+ BFD_RELOC_MT_PCINSN8,
1.40120 -+
1.40121 -+/* msp430 specific relocation codes */
1.40122 -+ BFD_RELOC_MSP430_10_PCREL,
1.40123 -+ BFD_RELOC_MSP430_16_PCREL,
1.40124 -+ BFD_RELOC_MSP430_16,
1.40125 -+ BFD_RELOC_MSP430_16_PCREL_BYTE,
1.40126 -+ BFD_RELOC_MSP430_16_BYTE,
1.40127 -+ BFD_RELOC_MSP430_2X_PCREL,
1.40128 -+ BFD_RELOC_MSP430_RL_PCREL,
1.40129 -+
1.40130 -+/* IQ2000 Relocations. */
1.40131 -+ BFD_RELOC_IQ2000_OFFSET_16,
1.40132 -+ BFD_RELOC_IQ2000_OFFSET_21,
1.40133 -+ BFD_RELOC_IQ2000_UHI16,
1.40134 -+
1.40135 -+/* Special Xtensa relocation used only by PLT entries in ELF shared
1.40136 -+objects to indicate that the runtime linker should set the value
1.40137 -+to one of its own internal functions or data structures. */
1.40138 -+ BFD_RELOC_XTENSA_RTLD,
1.40139 -+
1.40140 -+/* Xtensa relocations for ELF shared objects. */
1.40141 -+ BFD_RELOC_XTENSA_GLOB_DAT,
1.40142 -+ BFD_RELOC_XTENSA_JMP_SLOT,
1.40143 -+ BFD_RELOC_XTENSA_RELATIVE,
1.40144 -+
1.40145 -+/* Xtensa relocation used in ELF object files for symbols that may require
1.40146 -+PLT entries. Otherwise, this is just a generic 32-bit relocation. */
1.40147 -+ BFD_RELOC_XTENSA_PLT,
1.40148 -+
1.40149 -+/* Xtensa relocations to mark the difference of two local symbols.
1.40150 -+These are only needed to support linker relaxation and can be ignored
1.40151 -+when not relaxing. The field is set to the value of the difference
1.40152 -+assuming no relaxation. The relocation encodes the position of the
1.40153 -+first symbol so the linker can determine whether to adjust the field
1.40154 -+value. */
1.40155 -+ BFD_RELOC_XTENSA_DIFF8,
1.40156 -+ BFD_RELOC_XTENSA_DIFF16,
1.40157 -+ BFD_RELOC_XTENSA_DIFF32,
1.40158 -+
1.40159 -+/* Generic Xtensa relocations for instruction operands. Only the slot
1.40160 -+number is encoded in the relocation. The relocation applies to the
1.40161 -+last PC-relative immediate operand, or if there are no PC-relative
1.40162 -+immediates, to the last immediate operand. */
1.40163 -+ BFD_RELOC_XTENSA_SLOT0_OP,
1.40164 -+ BFD_RELOC_XTENSA_SLOT1_OP,
1.40165 -+ BFD_RELOC_XTENSA_SLOT2_OP,
1.40166 -+ BFD_RELOC_XTENSA_SLOT3_OP,
1.40167 -+ BFD_RELOC_XTENSA_SLOT4_OP,
1.40168 -+ BFD_RELOC_XTENSA_SLOT5_OP,
1.40169 -+ BFD_RELOC_XTENSA_SLOT6_OP,
1.40170 -+ BFD_RELOC_XTENSA_SLOT7_OP,
1.40171 -+ BFD_RELOC_XTENSA_SLOT8_OP,
1.40172 -+ BFD_RELOC_XTENSA_SLOT9_OP,
1.40173 -+ BFD_RELOC_XTENSA_SLOT10_OP,
1.40174 -+ BFD_RELOC_XTENSA_SLOT11_OP,
1.40175 -+ BFD_RELOC_XTENSA_SLOT12_OP,
1.40176 -+ BFD_RELOC_XTENSA_SLOT13_OP,
1.40177 -+ BFD_RELOC_XTENSA_SLOT14_OP,
1.40178 -+
1.40179 -+/* Alternate Xtensa relocations. Only the slot is encoded in the
1.40180 -+relocation. The meaning of these relocations is opcode-specific. */
1.40181 -+ BFD_RELOC_XTENSA_SLOT0_ALT,
1.40182 -+ BFD_RELOC_XTENSA_SLOT1_ALT,
1.40183 -+ BFD_RELOC_XTENSA_SLOT2_ALT,
1.40184 -+ BFD_RELOC_XTENSA_SLOT3_ALT,
1.40185 -+ BFD_RELOC_XTENSA_SLOT4_ALT,
1.40186 -+ BFD_RELOC_XTENSA_SLOT5_ALT,
1.40187 -+ BFD_RELOC_XTENSA_SLOT6_ALT,
1.40188 -+ BFD_RELOC_XTENSA_SLOT7_ALT,
1.40189 -+ BFD_RELOC_XTENSA_SLOT8_ALT,
1.40190 -+ BFD_RELOC_XTENSA_SLOT9_ALT,
1.40191 -+ BFD_RELOC_XTENSA_SLOT10_ALT,
1.40192 -+ BFD_RELOC_XTENSA_SLOT11_ALT,
1.40193 -+ BFD_RELOC_XTENSA_SLOT12_ALT,
1.40194 -+ BFD_RELOC_XTENSA_SLOT13_ALT,
1.40195 -+ BFD_RELOC_XTENSA_SLOT14_ALT,
1.40196 -+
1.40197 -+/* Xtensa relocations for backward compatibility. These have all been
1.40198 -+replaced by BFD_RELOC_XTENSA_SLOT0_OP. */
1.40199 -+ BFD_RELOC_XTENSA_OP0,
1.40200 -+ BFD_RELOC_XTENSA_OP1,
1.40201 -+ BFD_RELOC_XTENSA_OP2,
1.40202 -+
1.40203 -+/* Xtensa relocation to mark that the assembler expanded the
1.40204 -+instructions from an original target. The expansion size is
1.40205 -+encoded in the reloc size. */
1.40206 -+ BFD_RELOC_XTENSA_ASM_EXPAND,
1.40207 -+
1.40208 -+/* Xtensa relocation to mark that the linker should simplify
1.40209 -+assembler-expanded instructions. This is commonly used
1.40210 -+internally by the linker after analysis of a
1.40211 -+BFD_RELOC_XTENSA_ASM_EXPAND. */
1.40212 -+ BFD_RELOC_XTENSA_ASM_SIMPLIFY,
1.40213 -+
1.40214 -+/* 8 bit signed offset in (ix+d) or (iy+d). */
1.40215 -+ BFD_RELOC_Z80_DISP8,
1.40216 -+
1.40217 -+/* DJNZ offset. */
1.40218 -+ BFD_RELOC_Z8K_DISP7,
1.40219 -+
1.40220 -+/* CALR offset. */
1.40221 -+ BFD_RELOC_Z8K_CALLR,
1.40222 -+
1.40223 -+/* 4 bit value. */
1.40224 -+ BFD_RELOC_Z8K_IMM4L,
1.40225 -+ BFD_RELOC_UNUSED };
1.40226 -+typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
1.40227 -+reloc_howto_type *bfd_reloc_type_lookup
1.40228 -+ (bfd *abfd, bfd_reloc_code_real_type code);
1.40229 -+reloc_howto_type *bfd_reloc_name_lookup
1.40230 -+ (bfd *abfd, const char *reloc_name);
1.40231 -+
1.40232 -+const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
1.40233 -+
1.40234 -+/* Extracted from syms.c. */
1.40235 -+
1.40236 -+typedef struct bfd_symbol
1.40237 -+{
1.40238 -+ /* A pointer to the BFD which owns the symbol. This information
1.40239 -+ is necessary so that a back end can work out what additional
1.40240 -+ information (invisible to the application writer) is carried
1.40241 -+ with the symbol.
1.40242 -+
1.40243 -+ This field is *almost* redundant, since you can use section->owner
1.40244 -+ instead, except that some symbols point to the global sections
1.40245 -+ bfd_{abs,com,und}_section. This could be fixed by making
1.40246 -+ these globals be per-bfd (or per-target-flavor). FIXME. */
1.40247 -+ struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */
1.40248 -+
1.40249 -+ /* The text of the symbol. The name is left alone, and not copied; the
1.40250 -+ application may not alter it. */
1.40251 -+ const char *name;
1.40252 -+
1.40253 -+ /* The value of the symbol. This really should be a union of a
1.40254 -+ numeric value with a pointer, since some flags indicate that
1.40255 -+ a pointer to another symbol is stored here. */
1.40256 -+ symvalue value;
1.40257 -+
1.40258 -+ /* Attributes of a symbol. */
1.40259 -+#define BSF_NO_FLAGS 0x00
1.40260 -+
1.40261 -+ /* The symbol has local scope; <<static>> in <<C>>. The value
1.40262 -+ is the offset into the section of the data. */
1.40263 -+#define BSF_LOCAL 0x01
1.40264 -+
1.40265 -+ /* The symbol has global scope; initialized data in <<C>>. The
1.40266 -+ value is the offset into the section of the data. */
1.40267 -+#define BSF_GLOBAL 0x02
1.40268 -+
1.40269 -+ /* The symbol has global scope and is exported. The value is
1.40270 -+ the offset into the section of the data. */
1.40271 -+#define BSF_EXPORT BSF_GLOBAL /* No real difference. */
1.40272 -+
1.40273 -+ /* A normal C symbol would be one of:
1.40274 -+ <<BSF_LOCAL>>, <<BSF_FORT_COMM>>, <<BSF_UNDEFINED>> or
1.40275 -+ <<BSF_GLOBAL>>. */
1.40276 -+
1.40277 -+ /* The symbol is a debugging record. The value has an arbitrary
1.40278 -+ meaning, unless BSF_DEBUGGING_RELOC is also set. */
1.40279 -+#define BSF_DEBUGGING 0x08
1.40280 -+
1.40281 -+ /* The symbol denotes a function entry point. Used in ELF,
1.40282 -+ perhaps others someday. */
1.40283 -+#define BSF_FUNCTION 0x10
1.40284 -+
1.40285 -+ /* Used by the linker. */
1.40286 -+#define BSF_KEEP 0x20
1.40287 -+#define BSF_KEEP_G 0x40
1.40288 -+
1.40289 -+ /* A weak global symbol, overridable without warnings by
1.40290 -+ a regular global symbol of the same name. */
1.40291 -+#define BSF_WEAK 0x80
1.40292 -+
1.40293 -+ /* This symbol was created to point to a section, e.g. ELF's
1.40294 -+ STT_SECTION symbols. */
1.40295 -+#define BSF_SECTION_SYM 0x100
1.40296 -+
1.40297 -+ /* The symbol used to be a common symbol, but now it is
1.40298 -+ allocated. */
1.40299 -+#define BSF_OLD_COMMON 0x200
1.40300 -+
1.40301 -+ /* The default value for common data. */
1.40302 -+#define BFD_FORT_COMM_DEFAULT_VALUE 0
1.40303 -+
1.40304 -+ /* In some files the type of a symbol sometimes alters its
1.40305 -+ location in an output file - ie in coff a <<ISFCN>> symbol
1.40306 -+ which is also <<C_EXT>> symbol appears where it was
1.40307 -+ declared and not at the end of a section. This bit is set
1.40308 -+ by the target BFD part to convey this information. */
1.40309 -+#define BSF_NOT_AT_END 0x400
1.40310 -+
1.40311 -+ /* Signal that the symbol is the label of constructor section. */
1.40312 -+#define BSF_CONSTRUCTOR 0x800
1.40313 -+
1.40314 -+ /* Signal that the symbol is a warning symbol. The name is a
1.40315 -+ warning. The name of the next symbol is the one to warn about;
1.40316 -+ if a reference is made to a symbol with the same name as the next
1.40317 -+ symbol, a warning is issued by the linker. */
1.40318 -+#define BSF_WARNING 0x1000
1.40319 -+
1.40320 -+ /* Signal that the symbol is indirect. This symbol is an indirect
1.40321 -+ pointer to the symbol with the same name as the next symbol. */
1.40322 -+#define BSF_INDIRECT 0x2000
1.40323 -+
1.40324 -+ /* BSF_FILE marks symbols that contain a file name. This is used
1.40325 -+ for ELF STT_FILE symbols. */
1.40326 -+#define BSF_FILE 0x4000
1.40327 -+
1.40328 -+ /* Symbol is from dynamic linking information. */
1.40329 -+#define BSF_DYNAMIC 0x8000
1.40330 -+
1.40331 -+ /* The symbol denotes a data object. Used in ELF, and perhaps
1.40332 -+ others someday. */
1.40333 -+#define BSF_OBJECT 0x10000
1.40334 -+
1.40335 -+ /* This symbol is a debugging symbol. The value is the offset
1.40336 -+ into the section of the data. BSF_DEBUGGING should be set
1.40337 -+ as well. */
1.40338 -+#define BSF_DEBUGGING_RELOC 0x20000
1.40339 -+
1.40340 -+ /* This symbol is thread local. Used in ELF. */
1.40341 -+#define BSF_THREAD_LOCAL 0x40000
1.40342 -+
1.40343 -+ /* This symbol represents a complex relocation expression,
1.40344 -+ with the expression tree serialized in the symbol name. */
1.40345 -+#define BSF_RELC 0x80000
1.40346 -+
1.40347 -+ /* This symbol represents a signed complex relocation expression,
1.40348 -+ with the expression tree serialized in the symbol name. */
1.40349 -+#define BSF_SRELC 0x100000
1.40350 -+
1.40351 -+ flagword flags;
1.40352 -+
1.40353 -+ /* A pointer to the section to which this symbol is
1.40354 -+ relative. This will always be non NULL, there are special
1.40355 -+ sections for undefined and absolute symbols. */
1.40356 -+ struct bfd_section *section;
1.40357 -+
1.40358 -+ /* Back end special data. */
1.40359 -+ union
1.40360 -+ {
1.40361 -+ void *p;
1.40362 -+ bfd_vma i;
1.40363 -+ }
1.40364 -+ udata;
1.40365 -+}
1.40366 -+asymbol;
1.40367 -+
1.40368 -+#define bfd_get_symtab_upper_bound(abfd) \
1.40369 -+ BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
1.40370 -+
1.40371 -+bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
1.40372 -+
1.40373 -+bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
1.40374 -+
1.40375 -+#define bfd_is_local_label_name(abfd, name) \
1.40376 -+ BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
1.40377 -+
1.40378 -+bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
1.40379 -+
1.40380 -+#define bfd_is_target_special_symbol(abfd, sym) \
1.40381 -+ BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
1.40382 -+
1.40383 -+#define bfd_canonicalize_symtab(abfd, location) \
1.40384 -+ BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
1.40385 -+
1.40386 -+bfd_boolean bfd_set_symtab
1.40387 -+ (bfd *abfd, asymbol **location, unsigned int count);
1.40388 -+
1.40389 -+void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
1.40390 -+
1.40391 -+#define bfd_make_empty_symbol(abfd) \
1.40392 -+ BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
1.40393 -+
1.40394 -+asymbol *_bfd_generic_make_empty_symbol (bfd *);
1.40395 -+
1.40396 -+#define bfd_make_debug_symbol(abfd,ptr,size) \
1.40397 -+ BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
1.40398 -+
1.40399 -+int bfd_decode_symclass (asymbol *symbol);
1.40400 -+
1.40401 -+bfd_boolean bfd_is_undefined_symclass (int symclass);
1.40402 -+
1.40403 -+void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
1.40404 -+
1.40405 -+bfd_boolean bfd_copy_private_symbol_data
1.40406 -+ (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
1.40407 -+
1.40408 -+#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
1.40409 -+ BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
1.40410 -+ (ibfd, isymbol, obfd, osymbol))
1.40411 -+
1.40412 -+/* Extracted from bfd.c. */
1.40413 -+struct bfd
1.40414 -+{
1.40415 -+ /* A unique identifier of the BFD */
1.40416 -+ unsigned int id;
1.40417 -+
1.40418 -+ /* The filename the application opened the BFD with. */
1.40419 -+ const char *filename;
1.40420 -+
1.40421 -+ /* A pointer to the target jump table. */
1.40422 -+ const struct bfd_target *xvec;
1.40423 -+
1.40424 -+ /* The IOSTREAM, and corresponding IO vector that provide access
1.40425 -+ to the file backing the BFD. */
1.40426 -+ void *iostream;
1.40427 -+ const struct bfd_iovec *iovec;
1.40428 -+
1.40429 -+ /* Is the file descriptor being cached? That is, can it be closed as
1.40430 -+ needed, and re-opened when accessed later? */
1.40431 -+ bfd_boolean cacheable;
1.40432 -+
1.40433 -+ /* Marks whether there was a default target specified when the
1.40434 -+ BFD was opened. This is used to select which matching algorithm
1.40435 -+ to use to choose the back end. */
1.40436 -+ bfd_boolean target_defaulted;
1.40437 -+
1.40438 -+ /* The caching routines use these to maintain a
1.40439 -+ least-recently-used list of BFDs. */
1.40440 -+ struct bfd *lru_prev, *lru_next;
1.40441 -+
1.40442 -+ /* When a file is closed by the caching routines, BFD retains
1.40443 -+ state information on the file here... */
1.40444 -+ ufile_ptr where;
1.40445 -+
1.40446 -+ /* ... and here: (``once'' means at least once). */
1.40447 -+ bfd_boolean opened_once;
1.40448 -+
1.40449 -+ /* Set if we have a locally maintained mtime value, rather than
1.40450 -+ getting it from the file each time. */
1.40451 -+ bfd_boolean mtime_set;
1.40452 -+
1.40453 -+ /* File modified time, if mtime_set is TRUE. */
1.40454 -+ long mtime;
1.40455 -+
1.40456 -+ /* Reserved for an unimplemented file locking extension. */
1.40457 -+ int ifd;
1.40458 -+
1.40459 -+ /* The format which belongs to the BFD. (object, core, etc.) */
1.40460 -+ bfd_format format;
1.40461 -+
1.40462 -+ /* The direction with which the BFD was opened. */
1.40463 -+ enum bfd_direction
1.40464 -+ {
1.40465 -+ no_direction = 0,
1.40466 -+ read_direction = 1,
1.40467 -+ write_direction = 2,
1.40468 -+ both_direction = 3
1.40469 -+ }
1.40470 -+ direction;
1.40471 -+
1.40472 -+ /* Format_specific flags. */
1.40473 -+ flagword flags;
1.40474 -+
1.40475 -+ /* Currently my_archive is tested before adding origin to
1.40476 -+ anything. I believe that this can become always an add of
1.40477 -+ origin, with origin set to 0 for non archive files. */
1.40478 -+ ufile_ptr origin;
1.40479 -+
1.40480 -+ /* Remember when output has begun, to stop strange things
1.40481 -+ from happening. */
1.40482 -+ bfd_boolean output_has_begun;
1.40483 -+
1.40484 -+ /* A hash table for section names. */
1.40485 -+ struct bfd_hash_table section_htab;
1.40486 -+
1.40487 -+ /* Pointer to linked list of sections. */
1.40488 -+ struct bfd_section *sections;
1.40489 -+
1.40490 -+ /* The last section on the section list. */
1.40491 -+ struct bfd_section *section_last;
1.40492 -+
1.40493 -+ /* The number of sections. */
1.40494 -+ unsigned int section_count;
1.40495 -+
1.40496 -+ /* Stuff only useful for object files:
1.40497 -+ The start address. */
1.40498 -+ bfd_vma start_address;
1.40499 -+
1.40500 -+ /* Used for input and output. */
1.40501 -+ unsigned int symcount;
1.40502 -+
1.40503 -+ /* Symbol table for output BFD (with symcount entries). */
1.40504 -+ struct bfd_symbol **outsymbols;
1.40505 -+
1.40506 -+ /* Used for slurped dynamic symbol tables. */
1.40507 -+ unsigned int dynsymcount;
1.40508 -+
1.40509 -+ /* Pointer to structure which contains architecture information. */
1.40510 -+ const struct bfd_arch_info *arch_info;
1.40511 -+
1.40512 -+ /* Flag set if symbols from this BFD should not be exported. */
1.40513 -+ bfd_boolean no_export;
1.40514 -+
1.40515 -+ /* Stuff only useful for archives. */
1.40516 -+ void *arelt_data;
1.40517 -+ struct bfd *my_archive; /* The containing archive BFD. */
1.40518 -+ struct bfd *archive_next; /* The next BFD in the archive. */
1.40519 -+ struct bfd *archive_head; /* The first BFD in the archive. */
1.40520 -+ bfd_boolean has_armap;
1.40521 -+
1.40522 -+ /* A chain of BFD structures involved in a link. */
1.40523 -+ struct bfd *link_next;
1.40524 -+
1.40525 -+ /* A field used by _bfd_generic_link_add_archive_symbols. This will
1.40526 -+ be used only for archive elements. */
1.40527 -+ int archive_pass;
1.40528 -+
1.40529 -+ /* Used by the back end to hold private data. */
1.40530 -+ union
1.40531 -+ {
1.40532 -+ struct aout_data_struct *aout_data;
1.40533 -+ struct artdata *aout_ar_data;
1.40534 -+ struct _oasys_data *oasys_obj_data;
1.40535 -+ struct _oasys_ar_data *oasys_ar_data;
1.40536 -+ struct coff_tdata *coff_obj_data;
1.40537 -+ struct pe_tdata *pe_obj_data;
1.40538 -+ struct xcoff_tdata *xcoff_obj_data;
1.40539 -+ struct ecoff_tdata *ecoff_obj_data;
1.40540 -+ struct ieee_data_struct *ieee_data;
1.40541 -+ struct ieee_ar_data_struct *ieee_ar_data;
1.40542 -+ struct srec_data_struct *srec_data;
1.40543 -+ struct ihex_data_struct *ihex_data;
1.40544 -+ struct tekhex_data_struct *tekhex_data;
1.40545 -+ struct elf_obj_tdata *elf_obj_data;
1.40546 -+ struct nlm_obj_tdata *nlm_obj_data;
1.40547 -+ struct bout_data_struct *bout_data;
1.40548 -+ struct mmo_data_struct *mmo_data;
1.40549 -+ struct sun_core_struct *sun_core_data;
1.40550 -+ struct sco5_core_struct *sco5_core_data;
1.40551 -+ struct trad_core_struct *trad_core_data;
1.40552 -+ struct som_data_struct *som_data;
1.40553 -+ struct hpux_core_struct *hpux_core_data;
1.40554 -+ struct hppabsd_core_struct *hppabsd_core_data;
1.40555 -+ struct sgi_core_struct *sgi_core_data;
1.40556 -+ struct lynx_core_struct *lynx_core_data;
1.40557 -+ struct osf_core_struct *osf_core_data;
1.40558 -+ struct cisco_core_struct *cisco_core_data;
1.40559 -+ struct versados_data_struct *versados_data;
1.40560 -+ struct netbsd_core_struct *netbsd_core_data;
1.40561 -+ struct mach_o_data_struct *mach_o_data;
1.40562 -+ struct mach_o_fat_data_struct *mach_o_fat_data;
1.40563 -+ struct bfd_pef_data_struct *pef_data;
1.40564 -+ struct bfd_pef_xlib_data_struct *pef_xlib_data;
1.40565 -+ struct bfd_sym_data_struct *sym_data;
1.40566 -+ void *any;
1.40567 -+ }
1.40568 -+ tdata;
1.40569 -+
1.40570 -+ /* Used by the application to hold private data. */
1.40571 -+ void *usrdata;
1.40572 -+
1.40573 -+ /* Where all the allocated stuff under this BFD goes. This is a
1.40574 -+ struct objalloc *, but we use void * to avoid requiring the inclusion
1.40575 -+ of objalloc.h. */
1.40576 -+ void *memory;
1.40577 -+};
1.40578 -+
1.40579 -+typedef enum bfd_error
1.40580 -+{
1.40581 -+ bfd_error_no_error = 0,
1.40582 -+ bfd_error_system_call,
1.40583 -+ bfd_error_invalid_target,
1.40584 -+ bfd_error_wrong_format,
1.40585 -+ bfd_error_wrong_object_format,
1.40586 -+ bfd_error_invalid_operation,
1.40587 -+ bfd_error_no_memory,
1.40588 -+ bfd_error_no_symbols,
1.40589 -+ bfd_error_no_armap,
1.40590 -+ bfd_error_no_more_archived_files,
1.40591 -+ bfd_error_malformed_archive,
1.40592 -+ bfd_error_file_not_recognized,
1.40593 -+ bfd_error_file_ambiguously_recognized,
1.40594 -+ bfd_error_no_contents,
1.40595 -+ bfd_error_nonrepresentable_section,
1.40596 -+ bfd_error_no_debug_section,
1.40597 -+ bfd_error_bad_value,
1.40598 -+ bfd_error_file_truncated,
1.40599 -+ bfd_error_file_too_big,
1.40600 -+ bfd_error_on_input,
1.40601 -+ bfd_error_invalid_error_code
1.40602 -+}
1.40603 -+bfd_error_type;
1.40604 -+
1.40605 -+bfd_error_type bfd_get_error (void);
1.40606 -+
1.40607 -+void bfd_set_error (bfd_error_type error_tag, ...);
1.40608 -+
1.40609 -+const char *bfd_errmsg (bfd_error_type error_tag);
1.40610 -+
1.40611 -+void bfd_perror (const char *message);
1.40612 -+
1.40613 -+typedef void (*bfd_error_handler_type) (const char *, ...);
1.40614 -+
1.40615 -+bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
1.40616 -+
1.40617 -+void bfd_set_error_program_name (const char *);
1.40618 -+
1.40619 -+bfd_error_handler_type bfd_get_error_handler (void);
1.40620 -+
1.40621 -+long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
1.40622 -+
1.40623 -+long bfd_canonicalize_reloc
1.40624 -+ (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
1.40625 -+
1.40626 -+void bfd_set_reloc
1.40627 -+ (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
1.40628 -+
1.40629 -+bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
1.40630 -+
1.40631 -+int bfd_get_arch_size (bfd *abfd);
1.40632 -+
1.40633 -+int bfd_get_sign_extend_vma (bfd *abfd);
1.40634 -+
1.40635 -+bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
1.40636 -+
1.40637 -+unsigned int bfd_get_gp_size (bfd *abfd);
1.40638 -+
1.40639 -+void bfd_set_gp_size (bfd *abfd, unsigned int i);
1.40640 -+
1.40641 -+bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
1.40642 -+
1.40643 -+bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
1.40644 -+
1.40645 -+#define bfd_copy_private_header_data(ibfd, obfd) \
1.40646 -+ BFD_SEND (obfd, _bfd_copy_private_header_data, \
1.40647 -+ (ibfd, obfd))
1.40648 -+bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
1.40649 -+
1.40650 -+#define bfd_copy_private_bfd_data(ibfd, obfd) \
1.40651 -+ BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
1.40652 -+ (ibfd, obfd))
1.40653 -+bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);
1.40654 -+
1.40655 -+#define bfd_merge_private_bfd_data(ibfd, obfd) \
1.40656 -+ BFD_SEND (obfd, _bfd_merge_private_bfd_data, \
1.40657 -+ (ibfd, obfd))
1.40658 -+bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
1.40659 -+
1.40660 -+#define bfd_set_private_flags(abfd, flags) \
1.40661 -+ BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
1.40662 -+#define bfd_sizeof_headers(abfd, info) \
1.40663 -+ BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info))
1.40664 -+
1.40665 -+#define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
1.40666 -+ BFD_SEND (abfd, _bfd_find_nearest_line, \
1.40667 -+ (abfd, sec, syms, off, file, func, line))
1.40668 -+
1.40669 -+#define bfd_find_line(abfd, syms, sym, file, line) \
1.40670 -+ BFD_SEND (abfd, _bfd_find_line, \
1.40671 -+ (abfd, syms, sym, file, line))
1.40672 -+
1.40673 -+#define bfd_find_inliner_info(abfd, file, func, line) \
1.40674 -+ BFD_SEND (abfd, _bfd_find_inliner_info, \
1.40675 -+ (abfd, file, func, line))
1.40676 -+
1.40677 -+#define bfd_debug_info_start(abfd) \
1.40678 -+ BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
1.40679 -+
1.40680 -+#define bfd_debug_info_end(abfd) \
1.40681 -+ BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
1.40682 -+
1.40683 -+#define bfd_debug_info_accumulate(abfd, section) \
1.40684 -+ BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
1.40685 -+
1.40686 -+#define bfd_stat_arch_elt(abfd, stat) \
1.40687 -+ BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
1.40688 -+
1.40689 -+#define bfd_update_armap_timestamp(abfd) \
1.40690 -+ BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
1.40691 -+
1.40692 -+#define bfd_set_arch_mach(abfd, arch, mach)\
1.40693 -+ BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
1.40694 -+
1.40695 -+#define bfd_relax_section(abfd, section, link_info, again) \
1.40696 -+ BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
1.40697 -+
1.40698 -+#define bfd_gc_sections(abfd, link_info) \
1.40699 -+ BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
1.40700 -+
1.40701 -+#define bfd_merge_sections(abfd, link_info) \
1.40702 -+ BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
1.40703 -+
1.40704 -+#define bfd_is_group_section(abfd, sec) \
1.40705 -+ BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
1.40706 -+
1.40707 -+#define bfd_discard_group(abfd, sec) \
1.40708 -+ BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
1.40709 -+
1.40710 -+#define bfd_link_hash_table_create(abfd) \
1.40711 -+ BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
1.40712 -+
1.40713 -+#define bfd_link_hash_table_free(abfd, hash) \
1.40714 -+ BFD_SEND (abfd, _bfd_link_hash_table_free, (hash))
1.40715 -+
1.40716 -+#define bfd_link_add_symbols(abfd, info) \
1.40717 -+ BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
1.40718 -+
1.40719 -+#define bfd_link_just_syms(abfd, sec, info) \
1.40720 -+ BFD_SEND (abfd, _bfd_link_just_syms, (sec, info))
1.40721 -+
1.40722 -+#define bfd_final_link(abfd, info) \
1.40723 -+ BFD_SEND (abfd, _bfd_final_link, (abfd, info))
1.40724 -+
1.40725 -+#define bfd_free_cached_info(abfd) \
1.40726 -+ BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
1.40727 -+
1.40728 -+#define bfd_get_dynamic_symtab_upper_bound(abfd) \
1.40729 -+ BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))
1.40730 -+
1.40731 -+#define bfd_print_private_bfd_data(abfd, file)\
1.40732 -+ BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file))
1.40733 -+
1.40734 -+#define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \
1.40735 -+ BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols))
1.40736 -+
1.40737 -+#define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \
1.40738 -+ BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \
1.40739 -+ dyncount, dynsyms, ret))
1.40740 -+
1.40741 -+#define bfd_get_dynamic_reloc_upper_bound(abfd) \
1.40742 -+ BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd))
1.40743 -+
1.40744 -+#define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \
1.40745 -+ BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
1.40746 -+
1.40747 -+extern bfd_byte *bfd_get_relocated_section_contents
1.40748 -+ (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
1.40749 -+ bfd_boolean, asymbol **);
1.40750 -+
1.40751 -+bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
1.40752 -+
1.40753 -+struct bfd_preserve
1.40754 -+{
1.40755 -+ void *marker;
1.40756 -+ void *tdata;
1.40757 -+ flagword flags;
1.40758 -+ const struct bfd_arch_info *arch_info;
1.40759 -+ struct bfd_section *sections;
1.40760 -+ struct bfd_section *section_last;
1.40761 -+ unsigned int section_count;
1.40762 -+ struct bfd_hash_table section_htab;
1.40763 -+};
1.40764 -+
1.40765 -+bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *);
1.40766 -+
1.40767 -+void bfd_preserve_restore (bfd *, struct bfd_preserve *);
1.40768 -+
1.40769 -+void bfd_preserve_finish (bfd *, struct bfd_preserve *);
1.40770 -+
1.40771 -+bfd_vma bfd_emul_get_maxpagesize (const char *);
1.40772 -+
1.40773 -+void bfd_emul_set_maxpagesize (const char *, bfd_vma);
1.40774 -+
1.40775 -+bfd_vma bfd_emul_get_commonpagesize (const char *);
1.40776 -+
1.40777 -+void bfd_emul_set_commonpagesize (const char *, bfd_vma);
1.40778 -+
1.40779 -+char *bfd_demangle (bfd *, const char *, int);
1.40780 -+
1.40781 -+/* Extracted from archive.c. */
1.40782 -+symindex bfd_get_next_mapent
1.40783 -+ (bfd *abfd, symindex previous, carsym **sym);
1.40784 -+
1.40785 -+bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
1.40786 -+
1.40787 -+bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
1.40788 -+
1.40789 -+/* Extracted from corefile.c. */
1.40790 -+const char *bfd_core_file_failing_command (bfd *abfd);
1.40791 -+
1.40792 -+int bfd_core_file_failing_signal (bfd *abfd);
1.40793 -+
1.40794 -+bfd_boolean core_file_matches_executable_p
1.40795 -+ (bfd *core_bfd, bfd *exec_bfd);
1.40796 -+
1.40797 -+bfd_boolean generic_core_file_matches_executable_p
1.40798 -+ (bfd *core_bfd, bfd *exec_bfd);
1.40799 -+
1.40800 -+/* Extracted from targets.c. */
1.40801 -+#define BFD_SEND(bfd, message, arglist) \
1.40802 -+ ((*((bfd)->xvec->message)) arglist)
1.40803 -+
1.40804 -+#ifdef DEBUG_BFD_SEND
1.40805 -+#undef BFD_SEND
1.40806 -+#define BFD_SEND(bfd, message, arglist) \
1.40807 -+ (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
1.40808 -+ ((*((bfd)->xvec->message)) arglist) : \
1.40809 -+ (bfd_assert (__FILE__,__LINE__), NULL))
1.40810 -+#endif
1.40811 -+#define BFD_SEND_FMT(bfd, message, arglist) \
1.40812 -+ (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
1.40813 -+
1.40814 -+#ifdef DEBUG_BFD_SEND
1.40815 -+#undef BFD_SEND_FMT
1.40816 -+#define BFD_SEND_FMT(bfd, message, arglist) \
1.40817 -+ (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
1.40818 -+ (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
1.40819 -+ (bfd_assert (__FILE__,__LINE__), NULL))
1.40820 -+#endif
1.40821 -+
1.40822 -+enum bfd_flavour
1.40823 -+{
1.40824 -+ bfd_target_unknown_flavour,
1.40825 -+ bfd_target_aout_flavour,
1.40826 -+ bfd_target_coff_flavour,
1.40827 -+ bfd_target_ecoff_flavour,
1.40828 -+ bfd_target_xcoff_flavour,
1.40829 -+ bfd_target_elf_flavour,
1.40830 -+ bfd_target_ieee_flavour,
1.40831 -+ bfd_target_nlm_flavour,
1.40832 -+ bfd_target_oasys_flavour,
1.40833 -+ bfd_target_tekhex_flavour,
1.40834 -+ bfd_target_srec_flavour,
1.40835 -+ bfd_target_ihex_flavour,
1.40836 -+ bfd_target_som_flavour,
1.40837 -+ bfd_target_os9k_flavour,
1.40838 -+ bfd_target_versados_flavour,
1.40839 -+ bfd_target_msdos_flavour,
1.40840 -+ bfd_target_ovax_flavour,
1.40841 -+ bfd_target_evax_flavour,
1.40842 -+ bfd_target_mmo_flavour,
1.40843 -+ bfd_target_mach_o_flavour,
1.40844 -+ bfd_target_pef_flavour,
1.40845 -+ bfd_target_pef_xlib_flavour,
1.40846 -+ bfd_target_sym_flavour
1.40847 -+};
1.40848 -+
1.40849 -+enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN };
1.40850 -+
1.40851 -+/* Forward declaration. */
1.40852 -+typedef struct bfd_link_info _bfd_link_info;
1.40853 -+
1.40854 -+typedef struct bfd_target
1.40855 -+{
1.40856 -+ /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc. */
1.40857 -+ char *name;
1.40858 -+
1.40859 -+ /* The "flavour" of a back end is a general indication about
1.40860 -+ the contents of a file. */
1.40861 -+ enum bfd_flavour flavour;
1.40862 -+
1.40863 -+ /* The order of bytes within the data area of a file. */
1.40864 -+ enum bfd_endian byteorder;
1.40865 -+
1.40866 -+ /* The order of bytes within the header parts of a file. */
1.40867 -+ enum bfd_endian header_byteorder;
1.40868 -+
1.40869 -+ /* A mask of all the flags which an executable may have set -
1.40870 -+ from the set <<BFD_NO_FLAGS>>, <<HAS_RELOC>>, ...<<D_PAGED>>. */
1.40871 -+ flagword object_flags;
1.40872 -+
1.40873 -+ /* A mask of all the flags which a section may have set - from
1.40874 -+ the set <<SEC_NO_FLAGS>>, <<SEC_ALLOC>>, ...<<SET_NEVER_LOAD>>. */
1.40875 -+ flagword section_flags;
1.40876 -+
1.40877 -+ /* The character normally found at the front of a symbol.
1.40878 -+ (if any), perhaps `_'. */
1.40879 -+ char symbol_leading_char;
1.40880 -+
1.40881 -+ /* The pad character for file names within an archive header. */
1.40882 -+ char ar_pad_char;
1.40883 -+
1.40884 -+ /* The maximum number of characters in an archive header. */
1.40885 -+ unsigned short ar_max_namelen;
1.40886 -+
1.40887 -+ /* Entries for byte swapping for data. These are different from the
1.40888 -+ other entry points, since they don't take a BFD as the first argument.
1.40889 -+ Certain other handlers could do the same. */
1.40890 -+ bfd_uint64_t (*bfd_getx64) (const void *);
1.40891 -+ bfd_int64_t (*bfd_getx_signed_64) (const void *);
1.40892 -+ void (*bfd_putx64) (bfd_uint64_t, void *);
1.40893 -+ bfd_vma (*bfd_getx32) (const void *);
1.40894 -+ bfd_signed_vma (*bfd_getx_signed_32) (const void *);
1.40895 -+ void (*bfd_putx32) (bfd_vma, void *);
1.40896 -+ bfd_vma (*bfd_getx16) (const void *);
1.40897 -+ bfd_signed_vma (*bfd_getx_signed_16) (const void *);
1.40898 -+ void (*bfd_putx16) (bfd_vma, void *);
1.40899 -+
1.40900 -+ /* Byte swapping for the headers. */
1.40901 -+ bfd_uint64_t (*bfd_h_getx64) (const void *);
1.40902 -+ bfd_int64_t (*bfd_h_getx_signed_64) (const void *);
1.40903 -+ void (*bfd_h_putx64) (bfd_uint64_t, void *);
1.40904 -+ bfd_vma (*bfd_h_getx32) (const void *);
1.40905 -+ bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
1.40906 -+ void (*bfd_h_putx32) (bfd_vma, void *);
1.40907 -+ bfd_vma (*bfd_h_getx16) (const void *);
1.40908 -+ bfd_signed_vma (*bfd_h_getx_signed_16) (const void *);
1.40909 -+ void (*bfd_h_putx16) (bfd_vma, void *);
1.40910 -+
1.40911 -+ /* Format dependent routines: these are vectors of entry points
1.40912 -+ within the target vector structure, one for each format to check. */
1.40913 -+
1.40914 -+ /* Check the format of a file being read. Return a <<bfd_target *>> or zero. */
1.40915 -+ const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
1.40916 -+
1.40917 -+ /* Set the format of a file being written. */
1.40918 -+ bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
1.40919 -+
1.40920 -+ /* Write cached information into a file being written, at <<bfd_close>>. */
1.40921 -+ bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
1.40922 -+
1.40923 -+
1.40924 -+ /* Generic entry points. */
1.40925 -+#define BFD_JUMP_TABLE_GENERIC(NAME) \
1.40926 -+ NAME##_close_and_cleanup, \
1.40927 -+ NAME##_bfd_free_cached_info, \
1.40928 -+ NAME##_new_section_hook, \
1.40929 -+ NAME##_get_section_contents, \
1.40930 -+ NAME##_get_section_contents_in_window
1.40931 -+
1.40932 -+ /* Called when the BFD is being closed to do any necessary cleanup. */
1.40933 -+ bfd_boolean (*_close_and_cleanup) (bfd *);
1.40934 -+ /* Ask the BFD to free all cached information. */
1.40935 -+ bfd_boolean (*_bfd_free_cached_info) (bfd *);
1.40936 -+ /* Called when a new section is created. */
1.40937 -+ bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
1.40938 -+ /* Read the contents of a section. */
1.40939 -+ bfd_boolean (*_bfd_get_section_contents)
1.40940 -+ (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
1.40941 -+ bfd_boolean (*_bfd_get_section_contents_in_window)
1.40942 -+ (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
1.40943 -+
1.40944 -+ /* Entry points to copy private data. */
1.40945 -+#define BFD_JUMP_TABLE_COPY(NAME) \
1.40946 -+ NAME##_bfd_copy_private_bfd_data, \
1.40947 -+ NAME##_bfd_merge_private_bfd_data, \
1.40948 -+ _bfd_generic_init_private_section_data, \
1.40949 -+ NAME##_bfd_copy_private_section_data, \
1.40950 -+ NAME##_bfd_copy_private_symbol_data, \
1.40951 -+ NAME##_bfd_copy_private_header_data, \
1.40952 -+ NAME##_bfd_set_private_flags, \
1.40953 -+ NAME##_bfd_print_private_bfd_data
1.40954 -+
1.40955 -+ /* Called to copy BFD general private data from one object file
1.40956 -+ to another. */
1.40957 -+ bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
1.40958 -+ /* Called to merge BFD general private data from one object file
1.40959 -+ to a common output file when linking. */
1.40960 -+ bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *);
1.40961 -+ /* Called to initialize BFD private section data from one object file
1.40962 -+ to another. */
1.40963 -+#define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
1.40964 -+ BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info))
1.40965 -+ bfd_boolean (*_bfd_init_private_section_data)
1.40966 -+ (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *);
1.40967 -+ /* Called to copy BFD private section data from one object file
1.40968 -+ to another. */
1.40969 -+ bfd_boolean (*_bfd_copy_private_section_data)
1.40970 -+ (bfd *, sec_ptr, bfd *, sec_ptr);
1.40971 -+ /* Called to copy BFD private symbol data from one symbol
1.40972 -+ to another. */
1.40973 -+ bfd_boolean (*_bfd_copy_private_symbol_data)
1.40974 -+ (bfd *, asymbol *, bfd *, asymbol *);
1.40975 -+ /* Called to copy BFD private header data from one object file
1.40976 -+ to another. */
1.40977 -+ bfd_boolean (*_bfd_copy_private_header_data)
1.40978 -+ (bfd *, bfd *);
1.40979 -+ /* Called to set private backend flags. */
1.40980 -+ bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
1.40981 -+
1.40982 -+ /* Called to print private BFD data. */
1.40983 -+ bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
1.40984 -+
1.40985 -+ /* Core file entry points. */
1.40986 -+#define BFD_JUMP_TABLE_CORE(NAME) \
1.40987 -+ NAME##_core_file_failing_command, \
1.40988 -+ NAME##_core_file_failing_signal, \
1.40989 -+ NAME##_core_file_matches_executable_p
1.40990 -+
1.40991 -+ char * (*_core_file_failing_command) (bfd *);
1.40992 -+ int (*_core_file_failing_signal) (bfd *);
1.40993 -+ bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
1.40994 -+
1.40995 -+ /* Archive entry points. */
1.40996 -+#define BFD_JUMP_TABLE_ARCHIVE(NAME) \
1.40997 -+ NAME##_slurp_armap, \
1.40998 -+ NAME##_slurp_extended_name_table, \
1.40999 -+ NAME##_construct_extended_name_table, \
1.41000 -+ NAME##_truncate_arname, \
1.41001 -+ NAME##_write_armap, \
1.41002 -+ NAME##_read_ar_hdr, \
1.41003 -+ NAME##_openr_next_archived_file, \
1.41004 -+ NAME##_get_elt_at_index, \
1.41005 -+ NAME##_generic_stat_arch_elt, \
1.41006 -+ NAME##_update_armap_timestamp
1.41007 -+
1.41008 -+ bfd_boolean (*_bfd_slurp_armap) (bfd *);
1.41009 -+ bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
1.41010 -+ bfd_boolean (*_bfd_construct_extended_name_table)
1.41011 -+ (bfd *, char **, bfd_size_type *, const char **);
1.41012 -+ void (*_bfd_truncate_arname) (bfd *, const char *, char *);
1.41013 -+ bfd_boolean (*write_armap)
1.41014 -+ (bfd *, unsigned int, struct orl *, unsigned int, int);
1.41015 -+ void * (*_bfd_read_ar_hdr_fn) (bfd *);
1.41016 -+ bfd * (*openr_next_archived_file) (bfd *, bfd *);
1.41017 -+#define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
1.41018 -+ bfd * (*_bfd_get_elt_at_index) (bfd *, symindex);
1.41019 -+ int (*_bfd_stat_arch_elt) (bfd *, struct stat *);
1.41020 -+ bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
1.41021 -+
1.41022 -+ /* Entry points used for symbols. */
1.41023 -+#define BFD_JUMP_TABLE_SYMBOLS(NAME) \
1.41024 -+ NAME##_get_symtab_upper_bound, \
1.41025 -+ NAME##_canonicalize_symtab, \
1.41026 -+ NAME##_make_empty_symbol, \
1.41027 -+ NAME##_print_symbol, \
1.41028 -+ NAME##_get_symbol_info, \
1.41029 -+ NAME##_bfd_is_local_label_name, \
1.41030 -+ NAME##_bfd_is_target_special_symbol, \
1.41031 -+ NAME##_get_lineno, \
1.41032 -+ NAME##_find_nearest_line, \
1.41033 -+ _bfd_generic_find_line, \
1.41034 -+ NAME##_find_inliner_info, \
1.41035 -+ NAME##_bfd_make_debug_symbol, \
1.41036 -+ NAME##_read_minisymbols, \
1.41037 -+ NAME##_minisymbol_to_symbol
1.41038 -+
1.41039 -+ long (*_bfd_get_symtab_upper_bound) (bfd *);
1.41040 -+ long (*_bfd_canonicalize_symtab)
1.41041 -+ (bfd *, struct bfd_symbol **);
1.41042 -+ struct bfd_symbol *
1.41043 -+ (*_bfd_make_empty_symbol) (bfd *);
1.41044 -+ void (*_bfd_print_symbol)
1.41045 -+ (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
1.41046 -+#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
1.41047 -+ void (*_bfd_get_symbol_info)
1.41048 -+ (bfd *, struct bfd_symbol *, symbol_info *);
1.41049 -+#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
1.41050 -+ bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
1.41051 -+ bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
1.41052 -+ alent * (*_get_lineno) (bfd *, struct bfd_symbol *);
1.41053 -+ bfd_boolean (*_bfd_find_nearest_line)
1.41054 -+ (bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma,
1.41055 -+ const char **, const char **, unsigned int *);
1.41056 -+ bfd_boolean (*_bfd_find_line)
1.41057 -+ (bfd *, struct bfd_symbol **, struct bfd_symbol *,
1.41058 -+ const char **, unsigned int *);
1.41059 -+ bfd_boolean (*_bfd_find_inliner_info)
1.41060 -+ (bfd *, const char **, const char **, unsigned int *);
1.41061 -+ /* Back-door to allow format-aware applications to create debug symbols
1.41062 -+ while using BFD for everything else. Currently used by the assembler
1.41063 -+ when creating COFF files. */
1.41064 -+ asymbol * (*_bfd_make_debug_symbol)
1.41065 -+ (bfd *, void *, unsigned long size);
1.41066 -+#define bfd_read_minisymbols(b, d, m, s) \
1.41067 -+ BFD_SEND (b, _read_minisymbols, (b, d, m, s))
1.41068 -+ long (*_read_minisymbols)
1.41069 -+ (bfd *, bfd_boolean, void **, unsigned int *);
1.41070 -+#define bfd_minisymbol_to_symbol(b, d, m, f) \
1.41071 -+ BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
1.41072 -+ asymbol * (*_minisymbol_to_symbol)
1.41073 -+ (bfd *, bfd_boolean, const void *, asymbol *);
1.41074 -+
1.41075 -+ /* Routines for relocs. */
1.41076 -+#define BFD_JUMP_TABLE_RELOCS(NAME) \
1.41077 -+ NAME##_get_reloc_upper_bound, \
1.41078 -+ NAME##_canonicalize_reloc, \
1.41079 -+ NAME##_bfd_reloc_type_lookup, \
1.41080 -+ NAME##_bfd_reloc_name_lookup
1.41081 -+
1.41082 -+ long (*_get_reloc_upper_bound) (bfd *, sec_ptr);
1.41083 -+ long (*_bfd_canonicalize_reloc)
1.41084 -+ (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
1.41085 -+ /* See documentation on reloc types. */
1.41086 -+ reloc_howto_type *
1.41087 -+ (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
1.41088 -+ reloc_howto_type *
1.41089 -+ (*reloc_name_lookup) (bfd *, const char *);
1.41090 -+
1.41091 -+
1.41092 -+ /* Routines used when writing an object file. */
1.41093 -+#define BFD_JUMP_TABLE_WRITE(NAME) \
1.41094 -+ NAME##_set_arch_mach, \
1.41095 -+ NAME##_set_section_contents
1.41096 -+
1.41097 -+ bfd_boolean (*_bfd_set_arch_mach)
1.41098 -+ (bfd *, enum bfd_architecture, unsigned long);
1.41099 -+ bfd_boolean (*_bfd_set_section_contents)
1.41100 -+ (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
1.41101 -+
1.41102 -+ /* Routines used by the linker. */
1.41103 -+#define BFD_JUMP_TABLE_LINK(NAME) \
1.41104 -+ NAME##_sizeof_headers, \
1.41105 -+ NAME##_bfd_get_relocated_section_contents, \
1.41106 -+ NAME##_bfd_relax_section, \
1.41107 -+ NAME##_bfd_link_hash_table_create, \
1.41108 -+ NAME##_bfd_link_hash_table_free, \
1.41109 -+ NAME##_bfd_link_add_symbols, \
1.41110 -+ NAME##_bfd_link_just_syms, \
1.41111 -+ NAME##_bfd_final_link, \
1.41112 -+ NAME##_bfd_link_split_section, \
1.41113 -+ NAME##_bfd_gc_sections, \
1.41114 -+ NAME##_bfd_merge_sections, \
1.41115 -+ NAME##_bfd_is_group_section, \
1.41116 -+ NAME##_bfd_discard_group, \
1.41117 -+ NAME##_section_already_linked \
1.41118 -+
1.41119 -+ int (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
1.41120 -+ bfd_byte * (*_bfd_get_relocated_section_contents)
1.41121 -+ (bfd *, struct bfd_link_info *, struct bfd_link_order *,
1.41122 -+ bfd_byte *, bfd_boolean, struct bfd_symbol **);
1.41123 -+
1.41124 -+ bfd_boolean (*_bfd_relax_section)
1.41125 -+ (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
1.41126 -+
1.41127 -+ /* Create a hash table for the linker. Different backends store
1.41128 -+ different information in this table. */
1.41129 -+ struct bfd_link_hash_table *
1.41130 -+ (*_bfd_link_hash_table_create) (bfd *);
1.41131 -+
1.41132 -+ /* Release the memory associated with the linker hash table. */
1.41133 -+ void (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *);
1.41134 -+
1.41135 -+ /* Add symbols from this object file into the hash table. */
1.41136 -+ bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
1.41137 -+
1.41138 -+ /* Indicate that we are only retrieving symbol values from this section. */
1.41139 -+ void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
1.41140 -+
1.41141 -+ /* Do a link based on the link_order structures attached to each
1.41142 -+ section of the BFD. */
1.41143 -+ bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
1.41144 -+
1.41145 -+ /* Should this section be split up into smaller pieces during linking. */
1.41146 -+ bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
1.41147 -+
1.41148 -+ /* Remove sections that are not referenced from the output. */
1.41149 -+ bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
1.41150 -+
1.41151 -+ /* Attempt to merge SEC_MERGE sections. */
1.41152 -+ bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
1.41153 -+
1.41154 -+ /* Is this section a member of a group? */
1.41155 -+ bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
1.41156 -+
1.41157 -+ /* Discard members of a group. */
1.41158 -+ bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
1.41159 -+
1.41160 -+ /* Check if SEC has been already linked during a reloceatable or
1.41161 -+ final link. */
1.41162 -+ void (*_section_already_linked) (bfd *, struct bfd_section *,
1.41163 -+ struct bfd_link_info *);
1.41164 -+
1.41165 -+ /* Routines to handle dynamic symbols and relocs. */
1.41166 -+#define BFD_JUMP_TABLE_DYNAMIC(NAME) \
1.41167 -+ NAME##_get_dynamic_symtab_upper_bound, \
1.41168 -+ NAME##_canonicalize_dynamic_symtab, \
1.41169 -+ NAME##_get_synthetic_symtab, \
1.41170 -+ NAME##_get_dynamic_reloc_upper_bound, \
1.41171 -+ NAME##_canonicalize_dynamic_reloc
1.41172 -+
1.41173 -+ /* Get the amount of memory required to hold the dynamic symbols. */
1.41174 -+ long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
1.41175 -+ /* Read in the dynamic symbols. */
1.41176 -+ long (*_bfd_canonicalize_dynamic_symtab)
1.41177 -+ (bfd *, struct bfd_symbol **);
1.41178 -+ /* Create synthetized symbols. */
1.41179 -+ long (*_bfd_get_synthetic_symtab)
1.41180 -+ (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
1.41181 -+ struct bfd_symbol **);
1.41182 -+ /* Get the amount of memory required to hold the dynamic relocs. */
1.41183 -+ long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
1.41184 -+ /* Read in the dynamic relocs. */
1.41185 -+ long (*_bfd_canonicalize_dynamic_reloc)
1.41186 -+ (bfd *, arelent **, struct bfd_symbol **);
1.41187 -+
1.41188 -+ /* Opposite endian version of this target. */
1.41189 -+ const struct bfd_target * alternative_target;
1.41190 -+
1.41191 -+ /* Data for use by back-end routines, which isn't
1.41192 -+ generic enough to belong in this structure. */
1.41193 -+ const void *backend_data;
1.41194 -+
1.41195 -+} bfd_target;
1.41196 -+
1.41197 -+bfd_boolean bfd_set_default_target (const char *name);
1.41198 -+
1.41199 -+const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
1.41200 -+
1.41201 -+const char ** bfd_target_list (void);
1.41202 -+
1.41203 -+const bfd_target *bfd_search_for_target
1.41204 -+ (int (*search_func) (const bfd_target *, void *),
1.41205 -+ void *);
1.41206 -+
1.41207 -+/* Extracted from format.c. */
1.41208 -+bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
1.41209 -+
1.41210 -+bfd_boolean bfd_check_format_matches
1.41211 -+ (bfd *abfd, bfd_format format, char ***matching);
1.41212 -+
1.41213 -+bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
1.41214 -+
1.41215 -+const char *bfd_format_string (bfd_format format);
1.41216 -+
1.41217 -+/* Extracted from linker.c. */
1.41218 -+bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
1.41219 -+
1.41220 -+#define bfd_link_split_section(abfd, sec) \
1.41221 -+ BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
1.41222 -+
1.41223 -+void bfd_section_already_linked (bfd *abfd, asection *sec,
1.41224 -+ struct bfd_link_info *info);
1.41225 -+
1.41226 -+#define bfd_section_already_linked(abfd, sec, info) \
1.41227 -+ BFD_SEND (abfd, _section_already_linked, (abfd, sec, info))
1.41228 -+
1.41229 -+/* Extracted from simple.c. */
1.41230 -+bfd_byte *bfd_simple_get_relocated_section_contents
1.41231 -+ (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
1.41232 -+
1.41233 -+#ifdef __cplusplus
1.41234 -+}
1.41235 -+#endif
1.41236 -+#endif
1.41237 ---- /dev/null
1.41238 -+++ b/bfd/doc/libbfd.h
1.41239 -@@ -0,0 +1,2074 @@
1.41240 -+/* DO NOT EDIT! -*- buffer-read-only: t -*- This file is automatically
1.41241 -+ generated from "libbfd-in.h", "init.c", "libbfd.c", "bfdio.c",
1.41242 -+ "bfdwin.c", "cache.c", "reloc.c", "archures.c" and "elf.c".
1.41243 -+ Run "make headers" in your build bfd/ to regenerate. */
1.41244 -+
1.41245 -+/* libbfd.h -- Declarations used by bfd library *implementation*.
1.41246 -+ (This include file is not for users of the library.)
1.41247 -+
1.41248 -+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1.41249 -+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
1.41250 -+ Free Software Foundation, Inc.
1.41251 -+
1.41252 -+ Written by Cygnus Support.
1.41253 -+
1.41254 -+ This file is part of BFD, the Binary File Descriptor library.
1.41255 -+
1.41256 -+ This program is free software; you can redistribute it and/or modify
1.41257 -+ it under the terms of the GNU General Public License as published by
1.41258 -+ the Free Software Foundation; either version 3 of the License, or
1.41259 -+ (at your option) any later version.
1.41260 -+
1.41261 -+ This program is distributed in the hope that it will be useful,
1.41262 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1.41263 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1.41264 -+ GNU General Public License for more details.
1.41265 -+
1.41266 -+ You should have received a copy of the GNU General Public License
1.41267 -+ along with this program; if not, write to the Free Software
1.41268 -+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
1.41269 -+ MA 02110-1301, USA. */
1.41270 -+
1.41271 -+#include "hashtab.h"
1.41272 -+
1.41273 -+/* Align an address upward to a boundary, expressed as a number of bytes.
1.41274 -+ E.g. align to an 8-byte boundary with argument of 8. Take care never
1.41275 -+ to wrap around if the address is within boundary-1 of the end of the
1.41276 -+ address space. */
1.41277 -+#define BFD_ALIGN(this, boundary) \
1.41278 -+ ((((bfd_vma) (this) + (boundary) - 1) >= (bfd_vma) (this)) \
1.41279 -+ ? (((bfd_vma) (this) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary)-1)) \
1.41280 -+ : ~ (bfd_vma) 0)
1.41281 -+
1.41282 -+/* If you want to read and write large blocks, you might want to do it
1.41283 -+ in quanta of this amount */
1.41284 -+#define DEFAULT_BUFFERSIZE 8192
1.41285 -+
1.41286 -+/* Set a tdata field. Can't use the other macros for this, since they
1.41287 -+ do casts, and casting to the left of assignment isn't portable. */
1.41288 -+#define set_tdata(bfd, v) ((bfd)->tdata.any = (v))
1.41289 -+
1.41290 -+/* If BFD_IN_MEMORY is set for a BFD, then the iostream fields points
1.41291 -+ to an instance of this structure. */
1.41292 -+
1.41293 -+struct bfd_in_memory
1.41294 -+{
1.41295 -+ /* Size of buffer. */
1.41296 -+ bfd_size_type size;
1.41297 -+ /* Buffer holding contents of BFD. */
1.41298 -+ bfd_byte *buffer;
1.41299 -+};
1.41300 -+
1.41301 -+struct section_hash_entry
1.41302 -+{
1.41303 -+ struct bfd_hash_entry root;
1.41304 -+ asection section;
1.41305 -+};
1.41306 -+
1.41307 -+/* tdata for an archive. For an input archive, cache
1.41308 -+ needs to be free()'d. For an output archive, symdefs do. */
1.41309 -+
1.41310 -+struct artdata {
1.41311 -+ file_ptr first_file_filepos;
1.41312 -+ /* Speed up searching the armap */
1.41313 -+ htab_t cache;
1.41314 -+ bfd *archive_head; /* Only interesting in output routines */
1.41315 -+ carsym *symdefs; /* the symdef entries */
1.41316 -+ symindex symdef_count; /* how many there are */
1.41317 -+ char *extended_names; /* clever intel extension */
1.41318 -+ bfd_size_type extended_names_size; /* Size of extended names */
1.41319 -+ /* when more compilers are standard C, this can be a time_t */
1.41320 -+ long armap_timestamp; /* Timestamp value written into armap.
1.41321 -+ This is used for BSD archives to check
1.41322 -+ that the timestamp is recent enough
1.41323 -+ for the BSD linker to not complain,
1.41324 -+ just before we finish writing an
1.41325 -+ archive. */
1.41326 -+ file_ptr armap_datepos; /* Position within archive to seek to
1.41327 -+ rewrite the date field. */
1.41328 -+ void *tdata; /* Backend specific information. */
1.41329 -+};
1.41330 -+
1.41331 -+#define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data)
1.41332 -+
1.41333 -+/* Goes in bfd's arelt_data slot */
1.41334 -+struct areltdata {
1.41335 -+ char * arch_header; /* it's actually a string */
1.41336 -+ unsigned int parsed_size; /* octets of filesize not including ar_hdr */
1.41337 -+ char *filename; /* null-terminated */
1.41338 -+};
1.41339 -+
1.41340 -+#define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)
1.41341 -+
1.41342 -+extern void *bfd_malloc
1.41343 -+ (bfd_size_type);
1.41344 -+extern void *bfd_realloc
1.41345 -+ (void *, bfd_size_type);
1.41346 -+extern void *bfd_zmalloc
1.41347 -+ (bfd_size_type);
1.41348 -+extern void *bfd_malloc2
1.41349 -+ (bfd_size_type, bfd_size_type);
1.41350 -+extern void *bfd_realloc2
1.41351 -+ (void *, bfd_size_type, bfd_size_type);
1.41352 -+extern void *bfd_zmalloc2
1.41353 -+ (bfd_size_type, bfd_size_type);
1.41354 -+
1.41355 -+extern void _bfd_default_error_handler (const char *s, ...);
1.41356 -+extern bfd_error_handler_type _bfd_error_handler;
1.41357 -+
1.41358 -+/* These routines allocate and free things on the BFD's objalloc. */
1.41359 -+
1.41360 -+extern void *bfd_alloc
1.41361 -+ (bfd *, bfd_size_type);
1.41362 -+extern void *bfd_zalloc
1.41363 -+ (bfd *, bfd_size_type);
1.41364 -+extern void *bfd_alloc2
1.41365 -+ (bfd *, bfd_size_type, bfd_size_type);
1.41366 -+extern void *bfd_zalloc2
1.41367 -+ (bfd *, bfd_size_type, bfd_size_type);
1.41368 -+extern void bfd_release
1.41369 -+ (bfd *, void *);
1.41370 -+
1.41371 -+bfd * _bfd_create_empty_archive_element_shell
1.41372 -+ (bfd *obfd);
1.41373 -+bfd * _bfd_look_for_bfd_in_cache
1.41374 -+ (bfd *, file_ptr);
1.41375 -+bfd_boolean _bfd_add_bfd_to_archive_cache
1.41376 -+ (bfd *, file_ptr, bfd *);
1.41377 -+bfd_boolean _bfd_generic_mkarchive
1.41378 -+ (bfd *abfd);
1.41379 -+const bfd_target *bfd_generic_archive_p
1.41380 -+ (bfd *abfd);
1.41381 -+bfd_boolean bfd_slurp_armap
1.41382 -+ (bfd *abfd);
1.41383 -+bfd_boolean bfd_slurp_bsd_armap_f2
1.41384 -+ (bfd *abfd);
1.41385 -+#define bfd_slurp_bsd_armap bfd_slurp_armap
1.41386 -+#define bfd_slurp_coff_armap bfd_slurp_armap
1.41387 -+bfd_boolean _bfd_slurp_extended_name_table
1.41388 -+ (bfd *abfd);
1.41389 -+extern bfd_boolean _bfd_construct_extended_name_table
1.41390 -+ (bfd *, bfd_boolean, char **, bfd_size_type *);
1.41391 -+bfd_boolean _bfd_write_archive_contents
1.41392 -+ (bfd *abfd);
1.41393 -+bfd_boolean _bfd_compute_and_write_armap
1.41394 -+ (bfd *, unsigned int elength);
1.41395 -+bfd *_bfd_get_elt_at_filepos
1.41396 -+ (bfd *archive, file_ptr filepos);
1.41397 -+extern bfd *_bfd_generic_get_elt_at_index
1.41398 -+ (bfd *, symindex);
1.41399 -+bfd * _bfd_new_bfd
1.41400 -+ (void);
1.41401 -+void _bfd_delete_bfd
1.41402 -+ (bfd *);
1.41403 -+bfd_boolean _bfd_free_cached_info
1.41404 -+ (bfd *);
1.41405 -+
1.41406 -+bfd_boolean bfd_false
1.41407 -+ (bfd *ignore);
1.41408 -+bfd_boolean bfd_true
1.41409 -+ (bfd *ignore);
1.41410 -+void *bfd_nullvoidptr
1.41411 -+ (bfd *ignore);
1.41412 -+int bfd_0
1.41413 -+ (bfd *ignore);
1.41414 -+unsigned int bfd_0u
1.41415 -+ (bfd *ignore);
1.41416 -+long bfd_0l
1.41417 -+ (bfd *ignore);
1.41418 -+long _bfd_n1
1.41419 -+ (bfd *ignore);
1.41420 -+void bfd_void
1.41421 -+ (bfd *ignore);
1.41422 -+
1.41423 -+bfd *_bfd_new_bfd_contained_in
1.41424 -+ (bfd *);
1.41425 -+const bfd_target *_bfd_dummy_target
1.41426 -+ (bfd *abfd);
1.41427 -+
1.41428 -+void bfd_dont_truncate_arname
1.41429 -+ (bfd *abfd, const char *filename, char *hdr);
1.41430 -+void bfd_bsd_truncate_arname
1.41431 -+ (bfd *abfd, const char *filename, char *hdr);
1.41432 -+void bfd_gnu_truncate_arname
1.41433 -+ (bfd *abfd, const char *filename, char *hdr);
1.41434 -+
1.41435 -+bfd_boolean bsd_write_armap
1.41436 -+ (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count,
1.41437 -+ int stridx);
1.41438 -+
1.41439 -+bfd_boolean coff_write_armap
1.41440 -+ (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count,
1.41441 -+ int stridx);
1.41442 -+
1.41443 -+extern void *_bfd_generic_read_ar_hdr
1.41444 -+ (bfd *);
1.41445 -+extern void _bfd_ar_spacepad
1.41446 -+ (char *, size_t, const char *, long);
1.41447 -+
1.41448 -+extern void *_bfd_generic_read_ar_hdr_mag
1.41449 -+ (bfd *, const char *);
1.41450 -+
1.41451 -+bfd * bfd_generic_openr_next_archived_file
1.41452 -+ (bfd *archive, bfd *last_file);
1.41453 -+
1.41454 -+int bfd_generic_stat_arch_elt
1.41455 -+ (bfd *, struct stat *);
1.41456 -+
1.41457 -+#define _bfd_read_ar_hdr(abfd) \
1.41458 -+ BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd))
1.41459 -+
1.41460 -+/* Generic routines to use for BFD_JUMP_TABLE_GENERIC. Use
1.41461 -+ BFD_JUMP_TABLE_GENERIC (_bfd_generic). */
1.41462 -+
1.41463 -+#define _bfd_generic_close_and_cleanup bfd_true
1.41464 -+#define _bfd_generic_bfd_free_cached_info bfd_true
1.41465 -+extern bfd_boolean _bfd_generic_new_section_hook
1.41466 -+ (bfd *, asection *);
1.41467 -+extern bfd_boolean _bfd_generic_get_section_contents
1.41468 -+ (bfd *, asection *, void *, file_ptr, bfd_size_type);
1.41469 -+extern bfd_boolean _bfd_generic_get_section_contents_in_window
1.41470 -+ (bfd *, asection *, bfd_window *, file_ptr, bfd_size_type);
1.41471 -+
1.41472 -+/* Generic routines to use for BFD_JUMP_TABLE_COPY. Use
1.41473 -+ BFD_JUMP_TABLE_COPY (_bfd_generic). */
1.41474 -+
1.41475 -+#define _bfd_generic_bfd_copy_private_bfd_data \
1.41476 -+ ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
1.41477 -+#define _bfd_generic_bfd_merge_private_bfd_data \
1.41478 -+ ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
1.41479 -+#define _bfd_generic_bfd_set_private_flags \
1.41480 -+ ((bfd_boolean (*) (bfd *, flagword)) bfd_true)
1.41481 -+#define _bfd_generic_bfd_copy_private_section_data \
1.41482 -+ ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true)
1.41483 -+#define _bfd_generic_bfd_copy_private_symbol_data \
1.41484 -+ ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true)
1.41485 -+#define _bfd_generic_bfd_copy_private_header_data \
1.41486 -+ ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
1.41487 -+#define _bfd_generic_bfd_print_private_bfd_data \
1.41488 -+ ((bfd_boolean (*) (bfd *, void *)) bfd_true)
1.41489 -+
1.41490 -+extern bfd_boolean _bfd_generic_init_private_section_data
1.41491 -+ (bfd *, asection *, bfd *, asection *, struct bfd_link_info *);
1.41492 -+
1.41493 -+/* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file
1.41494 -+ support. Use BFD_JUMP_TABLE_CORE (_bfd_nocore). */
1.41495 -+
1.41496 -+extern char *_bfd_nocore_core_file_failing_command
1.41497 -+ (bfd *);
1.41498 -+extern int _bfd_nocore_core_file_failing_signal
1.41499 -+ (bfd *);
1.41500 -+extern bfd_boolean _bfd_nocore_core_file_matches_executable_p
1.41501 -+ (bfd *, bfd *);
1.41502 -+
1.41503 -+/* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive
1.41504 -+ file support. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive). */
1.41505 -+
1.41506 -+#define _bfd_noarchive_slurp_armap bfd_false
1.41507 -+#define _bfd_noarchive_slurp_extended_name_table bfd_false
1.41508 -+#define _bfd_noarchive_construct_extended_name_table \
1.41509 -+ ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) \
1.41510 -+ bfd_false)
1.41511 -+#define _bfd_noarchive_truncate_arname \
1.41512 -+ ((void (*) (bfd *, const char *, char *)) bfd_void)
1.41513 -+#define _bfd_noarchive_write_armap \
1.41514 -+ ((bfd_boolean (*) (bfd *, unsigned int, struct orl *, unsigned int, int)) \
1.41515 -+ bfd_false)
1.41516 -+#define _bfd_noarchive_read_ar_hdr bfd_nullvoidptr
1.41517 -+#define _bfd_noarchive_openr_next_archived_file \
1.41518 -+ ((bfd *(*) (bfd *, bfd *)) bfd_nullvoidptr)
1.41519 -+#define _bfd_noarchive_get_elt_at_index \
1.41520 -+ ((bfd *(*) (bfd *, symindex)) bfd_nullvoidptr)
1.41521 -+#define _bfd_noarchive_generic_stat_arch_elt bfd_generic_stat_arch_elt
1.41522 -+#define _bfd_noarchive_update_armap_timestamp bfd_false
1.41523 -+
1.41524 -+/* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get BSD style
1.41525 -+ archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd). */
1.41526 -+
1.41527 -+#define _bfd_archive_bsd_slurp_armap bfd_slurp_bsd_armap
1.41528 -+#define _bfd_archive_bsd_slurp_extended_name_table \
1.41529 -+ _bfd_slurp_extended_name_table
1.41530 -+extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table
1.41531 -+ (bfd *, char **, bfd_size_type *, const char **);
1.41532 -+#define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname
1.41533 -+#define _bfd_archive_bsd_write_armap bsd_write_armap
1.41534 -+#define _bfd_archive_bsd_read_ar_hdr _bfd_generic_read_ar_hdr
1.41535 -+#define _bfd_archive_bsd_openr_next_archived_file \
1.41536 -+ bfd_generic_openr_next_archived_file
1.41537 -+#define _bfd_archive_bsd_get_elt_at_index _bfd_generic_get_elt_at_index
1.41538 -+#define _bfd_archive_bsd_generic_stat_arch_elt \
1.41539 -+ bfd_generic_stat_arch_elt
1.41540 -+extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp
1.41541 -+ (bfd *);
1.41542 -+
1.41543 -+/* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style
1.41544 -+ archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff). */
1.41545 -+
1.41546 -+#define _bfd_archive_coff_slurp_armap bfd_slurp_coff_armap
1.41547 -+#define _bfd_archive_coff_slurp_extended_name_table \
1.41548 -+ _bfd_slurp_extended_name_table
1.41549 -+extern bfd_boolean _bfd_archive_coff_construct_extended_name_table
1.41550 -+ (bfd *, char **, bfd_size_type *, const char **);
1.41551 -+#define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname
1.41552 -+#define _bfd_archive_coff_write_armap coff_write_armap
1.41553 -+#define _bfd_archive_coff_read_ar_hdr _bfd_generic_read_ar_hdr
1.41554 -+#define _bfd_archive_coff_openr_next_archived_file \
1.41555 -+ bfd_generic_openr_next_archived_file
1.41556 -+#define _bfd_archive_coff_get_elt_at_index _bfd_generic_get_elt_at_index
1.41557 -+#define _bfd_archive_coff_generic_stat_arch_elt \
1.41558 -+ bfd_generic_stat_arch_elt
1.41559 -+#define _bfd_archive_coff_update_armap_timestamp bfd_true
1.41560 -+
1.41561 -+/* Routines to use for BFD_JUMP_TABLE_SYMBOLS where there is no symbol
1.41562 -+ support. Use BFD_JUMP_TABLE_SYMBOLS (_bfd_nosymbols). */
1.41563 -+
1.41564 -+#define _bfd_nosymbols_get_symtab_upper_bound _bfd_n1
1.41565 -+#define _bfd_nosymbols_canonicalize_symtab \
1.41566 -+ ((long (*) (bfd *, asymbol **)) _bfd_n1)
1.41567 -+#define _bfd_nosymbols_make_empty_symbol _bfd_generic_make_empty_symbol
1.41568 -+#define _bfd_nosymbols_print_symbol \
1.41569 -+ ((void (*) (bfd *, void *, asymbol *, bfd_print_symbol_type)) bfd_void)
1.41570 -+#define _bfd_nosymbols_get_symbol_info \
1.41571 -+ ((void (*) (bfd *, asymbol *, symbol_info *)) bfd_void)
1.41572 -+#define _bfd_nosymbols_bfd_is_local_label_name \
1.41573 -+ ((bfd_boolean (*) (bfd *, const char *)) bfd_false)
1.41574 -+#define _bfd_nosymbols_bfd_is_target_special_symbol \
1.41575 -+ ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
1.41576 -+#define _bfd_nosymbols_get_lineno \
1.41577 -+ ((alent *(*) (bfd *, asymbol *)) bfd_nullvoidptr)
1.41578 -+#define _bfd_nosymbols_find_nearest_line \
1.41579 -+ ((bfd_boolean (*) (bfd *, asection *, asymbol **, bfd_vma, const char **, \
1.41580 -+ const char **, unsigned int *)) \
1.41581 -+ bfd_false)
1.41582 -+#define _bfd_nosymbols_find_inliner_info \
1.41583 -+ ((bfd_boolean (*) (bfd *, const char **, const char **, unsigned int *)) \
1.41584 -+ bfd_false)
1.41585 -+#define _bfd_nosymbols_bfd_make_debug_symbol \
1.41586 -+ ((asymbol *(*) (bfd *, void *, unsigned long)) bfd_nullvoidptr)
1.41587 -+#define _bfd_nosymbols_read_minisymbols \
1.41588 -+ ((long (*) (bfd *, bfd_boolean, void **, unsigned int *)) _bfd_n1)
1.41589 -+#define _bfd_nosymbols_minisymbol_to_symbol \
1.41590 -+ ((asymbol *(*) (bfd *, bfd_boolean, const void *, asymbol *)) \
1.41591 -+ bfd_nullvoidptr)
1.41592 -+
1.41593 -+/* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc
1.41594 -+ support. Use BFD_JUMP_TABLE_RELOCS (_bfd_norelocs). */
1.41595 -+
1.41596 -+extern long _bfd_norelocs_get_reloc_upper_bound (bfd *, asection *);
1.41597 -+extern long _bfd_norelocs_canonicalize_reloc (bfd *, asection *,
1.41598 -+ arelent **, asymbol **);
1.41599 -+#define _bfd_norelocs_bfd_reloc_type_lookup \
1.41600 -+ ((reloc_howto_type *(*) (bfd *, bfd_reloc_code_real_type)) bfd_nullvoidptr)
1.41601 -+#define _bfd_norelocs_bfd_reloc_name_lookup \
1.41602 -+ ((reloc_howto_type *(*) (bfd *, const char *)) bfd_nullvoidptr)
1.41603 -+
1.41604 -+/* Routines to use for BFD_JUMP_TABLE_WRITE for targets which may not
1.41605 -+ be written. Use BFD_JUMP_TABLE_WRITE (_bfd_nowrite). */
1.41606 -+
1.41607 -+#define _bfd_nowrite_set_arch_mach \
1.41608 -+ ((bfd_boolean (*) (bfd *, enum bfd_architecture, unsigned long)) \
1.41609 -+ bfd_false)
1.41610 -+#define _bfd_nowrite_set_section_contents \
1.41611 -+ ((bfd_boolean (*) (bfd *, asection *, const void *, file_ptr, bfd_size_type)) \
1.41612 -+ bfd_false)
1.41613 -+
1.41614 -+/* Generic routines to use for BFD_JUMP_TABLE_WRITE. Use
1.41615 -+ BFD_JUMP_TABLE_WRITE (_bfd_generic). */
1.41616 -+
1.41617 -+#define _bfd_generic_set_arch_mach bfd_default_set_arch_mach
1.41618 -+extern bfd_boolean _bfd_generic_set_section_contents
1.41619 -+ (bfd *, asection *, const void *, file_ptr, bfd_size_type);
1.41620 -+
1.41621 -+/* Routines to use for BFD_JUMP_TABLE_LINK for targets which do not
1.41622 -+ support linking. Use BFD_JUMP_TABLE_LINK (_bfd_nolink). */
1.41623 -+
1.41624 -+#define _bfd_nolink_sizeof_headers \
1.41625 -+ ((int (*) (bfd *, struct bfd_link_info *)) bfd_0)
1.41626 -+#define _bfd_nolink_bfd_get_relocated_section_contents \
1.41627 -+ ((bfd_byte *(*) (bfd *, struct bfd_link_info *, struct bfd_link_order *, \
1.41628 -+ bfd_byte *, bfd_boolean, asymbol **)) \
1.41629 -+ bfd_nullvoidptr)
1.41630 -+#define _bfd_nolink_bfd_relax_section \
1.41631 -+ ((bfd_boolean (*) \
1.41632 -+ (bfd *, asection *, struct bfd_link_info *, bfd_boolean *)) \
1.41633 -+ bfd_false)
1.41634 -+#define _bfd_nolink_bfd_gc_sections \
1.41635 -+ ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
1.41636 -+ bfd_false)
1.41637 -+#define _bfd_nolink_bfd_merge_sections \
1.41638 -+ ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
1.41639 -+ bfd_false)
1.41640 -+#define _bfd_nolink_bfd_is_group_section \
1.41641 -+ ((bfd_boolean (*) (bfd *, const struct bfd_section *)) \
1.41642 -+ bfd_false)
1.41643 -+#define _bfd_nolink_bfd_discard_group \
1.41644 -+ ((bfd_boolean (*) (bfd *, struct bfd_section *)) \
1.41645 -+ bfd_false)
1.41646 -+#define _bfd_nolink_bfd_link_hash_table_create \
1.41647 -+ ((struct bfd_link_hash_table *(*) (bfd *)) bfd_nullvoidptr)
1.41648 -+#define _bfd_nolink_bfd_link_hash_table_free \
1.41649 -+ ((void (*) (struct bfd_link_hash_table *)) bfd_void)
1.41650 -+#define _bfd_nolink_bfd_link_add_symbols \
1.41651 -+ ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false)
1.41652 -+#define _bfd_nolink_bfd_link_just_syms \
1.41653 -+ ((void (*) (asection *, struct bfd_link_info *)) bfd_void)
1.41654 -+#define _bfd_nolink_bfd_final_link \
1.41655 -+ ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false)
1.41656 -+#define _bfd_nolink_bfd_link_split_section \
1.41657 -+ ((bfd_boolean (*) (bfd *, struct bfd_section *)) bfd_false)
1.41658 -+#define _bfd_nolink_section_already_linked \
1.41659 -+ ((void (*) (bfd *, struct bfd_section *, struct bfd_link_info *)) bfd_void)
1.41660 -+
1.41661 -+/* Routines to use for BFD_JUMP_TABLE_DYNAMIC for targets which do not
1.41662 -+ have dynamic symbols or relocs. Use BFD_JUMP_TABLE_DYNAMIC
1.41663 -+ (_bfd_nodynamic). */
1.41664 -+
1.41665 -+#define _bfd_nodynamic_get_dynamic_symtab_upper_bound _bfd_n1
1.41666 -+#define _bfd_nodynamic_canonicalize_dynamic_symtab \
1.41667 -+ ((long (*) (bfd *, asymbol **)) _bfd_n1)
1.41668 -+#define _bfd_nodynamic_get_synthetic_symtab \
1.41669 -+ ((long (*) (bfd *, long, asymbol **, long, asymbol **, asymbol **)) _bfd_n1)
1.41670 -+#define _bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_n1
1.41671 -+#define _bfd_nodynamic_canonicalize_dynamic_reloc \
1.41672 -+ ((long (*) (bfd *, arelent **, asymbol **)) _bfd_n1)
1.41673 -+
1.41674 -+/* Generic routine to determine of the given symbol is a local
1.41675 -+ label. */
1.41676 -+extern bfd_boolean bfd_generic_is_local_label_name
1.41677 -+ (bfd *, const char *);
1.41678 -+
1.41679 -+/* Generic minisymbol routines. */
1.41680 -+extern long _bfd_generic_read_minisymbols
1.41681 -+ (bfd *, bfd_boolean, void **, unsigned int *);
1.41682 -+extern asymbol *_bfd_generic_minisymbol_to_symbol
1.41683 -+ (bfd *, bfd_boolean, const void *, asymbol *);
1.41684 -+
1.41685 -+/* Find the nearest line using .stab/.stabstr sections. */
1.41686 -+extern bfd_boolean _bfd_stab_section_find_nearest_line
1.41687 -+ (bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *,
1.41688 -+ const char **, const char **, unsigned int *, void **);
1.41689 -+
1.41690 -+/* Find the nearest line using DWARF 1 debugging information. */
1.41691 -+extern bfd_boolean _bfd_dwarf1_find_nearest_line
1.41692 -+ (bfd *, asection *, asymbol **, bfd_vma, const char **,
1.41693 -+ const char **, unsigned int *);
1.41694 -+
1.41695 -+/* Find the nearest line using DWARF 2 debugging information. */
1.41696 -+extern bfd_boolean _bfd_dwarf2_find_nearest_line
1.41697 -+ (bfd *, asection *, asymbol **, bfd_vma, const char **, const char **,
1.41698 -+ unsigned int *, unsigned int, void **);
1.41699 -+
1.41700 -+/* Find the line using DWARF 2 debugging information. */
1.41701 -+extern bfd_boolean _bfd_dwarf2_find_line
1.41702 -+ (bfd *, asymbol **, asymbol *, const char **,
1.41703 -+ unsigned int *, unsigned int, void **);
1.41704 -+
1.41705 -+bfd_boolean _bfd_generic_find_line
1.41706 -+ (bfd *, asymbol **, asymbol *, const char **, unsigned int *);
1.41707 -+
1.41708 -+/* Find inliner info after calling bfd_find_nearest_line. */
1.41709 -+extern bfd_boolean _bfd_dwarf2_find_inliner_info
1.41710 -+ (bfd *, const char **, const char **, unsigned int *, void **);
1.41711 -+
1.41712 -+/* Create a new section entry. */
1.41713 -+extern struct bfd_hash_entry *bfd_section_hash_newfunc
1.41714 -+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
1.41715 -+
1.41716 -+/* A routine to create entries for a bfd_link_hash_table. */
1.41717 -+extern struct bfd_hash_entry *_bfd_link_hash_newfunc
1.41718 -+ (struct bfd_hash_entry *entry, struct bfd_hash_table *table,
1.41719 -+ const char *string);
1.41720 -+
1.41721 -+/* Initialize a bfd_link_hash_table. */
1.41722 -+extern bfd_boolean _bfd_link_hash_table_init
1.41723 -+ (struct bfd_link_hash_table *, bfd *,
1.41724 -+ struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
1.41725 -+ struct bfd_hash_table *,
1.41726 -+ const char *),
1.41727 -+ unsigned int);
1.41728 -+
1.41729 -+/* Generic link hash table creation routine. */
1.41730 -+extern struct bfd_link_hash_table *_bfd_generic_link_hash_table_create
1.41731 -+ (bfd *);
1.41732 -+
1.41733 -+/* Generic link hash table destruction routine. */
1.41734 -+extern void _bfd_generic_link_hash_table_free
1.41735 -+ (struct bfd_link_hash_table *);
1.41736 -+
1.41737 -+/* Generic add symbol routine. */
1.41738 -+extern bfd_boolean _bfd_generic_link_add_symbols
1.41739 -+ (bfd *, struct bfd_link_info *);
1.41740 -+
1.41741 -+/* Generic add symbol routine. This version is used by targets for
1.41742 -+ which the linker must collect constructors and destructors by name,
1.41743 -+ as the collect2 program does. */
1.41744 -+extern bfd_boolean _bfd_generic_link_add_symbols_collect
1.41745 -+ (bfd *, struct bfd_link_info *);
1.41746 -+
1.41747 -+/* Generic archive add symbol routine. */
1.41748 -+extern bfd_boolean _bfd_generic_link_add_archive_symbols
1.41749 -+ (bfd *, struct bfd_link_info *,
1.41750 -+ bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *));
1.41751 -+
1.41752 -+/* Forward declaration to avoid prototype errors. */
1.41753 -+typedef struct bfd_link_hash_entry _bfd_link_hash_entry;
1.41754 -+
1.41755 -+/* Generic routine to add a single symbol. */
1.41756 -+extern bfd_boolean _bfd_generic_link_add_one_symbol
1.41757 -+ (struct bfd_link_info *, bfd *, const char *name, flagword,
1.41758 -+ asection *, bfd_vma, const char *, bfd_boolean copy,
1.41759 -+ bfd_boolean constructor, struct bfd_link_hash_entry **);
1.41760 -+
1.41761 -+/* Generic routine to mark section as supplying symbols only. */
1.41762 -+extern void _bfd_generic_link_just_syms
1.41763 -+ (asection *, struct bfd_link_info *);
1.41764 -+
1.41765 -+/* Generic link routine. */
1.41766 -+extern bfd_boolean _bfd_generic_final_link
1.41767 -+ (bfd *, struct bfd_link_info *);
1.41768 -+
1.41769 -+extern bfd_boolean _bfd_generic_link_split_section
1.41770 -+ (bfd *, struct bfd_section *);
1.41771 -+
1.41772 -+extern void _bfd_generic_section_already_linked
1.41773 -+ (bfd *, struct bfd_section *, struct bfd_link_info *);
1.41774 -+
1.41775 -+/* Generic reloc_link_order processing routine. */
1.41776 -+extern bfd_boolean _bfd_generic_reloc_link_order
1.41777 -+ (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *);
1.41778 -+
1.41779 -+/* Default link order processing routine. */
1.41780 -+extern bfd_boolean _bfd_default_link_order
1.41781 -+ (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *);
1.41782 -+
1.41783 -+/* Count the number of reloc entries in a link order list. */
1.41784 -+extern unsigned int _bfd_count_link_order_relocs
1.41785 -+ (struct bfd_link_order *);
1.41786 -+
1.41787 -+/* Final link relocation routine. */
1.41788 -+extern bfd_reloc_status_type _bfd_final_link_relocate
1.41789 -+ (reloc_howto_type *, bfd *, asection *, bfd_byte *,
1.41790 -+ bfd_vma, bfd_vma, bfd_vma);
1.41791 -+
1.41792 -+/* Relocate a particular location by a howto and a value. */
1.41793 -+extern bfd_reloc_status_type _bfd_relocate_contents
1.41794 -+ (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *);
1.41795 -+
1.41796 -+/* Clear a given location using a given howto. */
1.41797 -+extern void _bfd_clear_contents (reloc_howto_type *howto, bfd *input_bfd,
1.41798 -+ bfd_byte *location);
1.41799 -+
1.41800 -+/* Link stabs in sections in the first pass. */
1.41801 -+
1.41802 -+extern bfd_boolean _bfd_link_section_stabs
1.41803 -+ (bfd *, struct stab_info *, asection *, asection *, void **,
1.41804 -+ bfd_size_type *);
1.41805 -+
1.41806 -+/* Eliminate stabs for discarded functions and symbols. */
1.41807 -+extern bfd_boolean _bfd_discard_section_stabs
1.41808 -+ (bfd *, asection *, void *, bfd_boolean (*) (bfd_vma, void *), void *);
1.41809 -+
1.41810 -+/* Write out the .stab section when linking stabs in sections. */
1.41811 -+
1.41812 -+extern bfd_boolean _bfd_write_section_stabs
1.41813 -+ (bfd *, struct stab_info *, asection *, void **, bfd_byte *);
1.41814 -+
1.41815 -+/* Write out the .stabstr string table when linking stabs in sections. */
1.41816 -+
1.41817 -+extern bfd_boolean _bfd_write_stab_strings
1.41818 -+ (bfd *, struct stab_info *);
1.41819 -+
1.41820 -+/* Find an offset within a .stab section when linking stabs in
1.41821 -+ sections. */
1.41822 -+
1.41823 -+extern bfd_vma _bfd_stab_section_offset
1.41824 -+ (asection *, void *, bfd_vma);
1.41825 -+
1.41826 -+/* Register a SEC_MERGE section as a candidate for merging. */
1.41827 -+
1.41828 -+extern bfd_boolean _bfd_add_merge_section
1.41829 -+ (bfd *, void **, asection *, void **);
1.41830 -+
1.41831 -+/* Attempt to merge SEC_MERGE sections. */
1.41832 -+
1.41833 -+extern bfd_boolean _bfd_merge_sections
1.41834 -+ (bfd *, struct bfd_link_info *, void *, void (*) (bfd *, asection *));
1.41835 -+
1.41836 -+/* Write out a merged section. */
1.41837 -+
1.41838 -+extern bfd_boolean _bfd_write_merged_section
1.41839 -+ (bfd *, asection *, void *);
1.41840 -+
1.41841 -+/* Find an offset within a modified SEC_MERGE section. */
1.41842 -+
1.41843 -+extern bfd_vma _bfd_merged_section_offset
1.41844 -+ (bfd *, asection **, void *, bfd_vma);
1.41845 -+
1.41846 -+/* Create a string table. */
1.41847 -+extern struct bfd_strtab_hash *_bfd_stringtab_init
1.41848 -+ (void);
1.41849 -+
1.41850 -+/* Create an XCOFF .debug section style string table. */
1.41851 -+extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init
1.41852 -+ (void);
1.41853 -+
1.41854 -+/* Free a string table. */
1.41855 -+extern void _bfd_stringtab_free
1.41856 -+ (struct bfd_strtab_hash *);
1.41857 -+
1.41858 -+/* Get the size of a string table. */
1.41859 -+extern bfd_size_type _bfd_stringtab_size
1.41860 -+ (struct bfd_strtab_hash *);
1.41861 -+
1.41862 -+/* Add a string to a string table. */
1.41863 -+extern bfd_size_type _bfd_stringtab_add
1.41864 -+ (struct bfd_strtab_hash *, const char *, bfd_boolean hash, bfd_boolean copy);
1.41865 -+
1.41866 -+/* Write out a string table. */
1.41867 -+extern bfd_boolean _bfd_stringtab_emit
1.41868 -+ (bfd *, struct bfd_strtab_hash *);
1.41869 -+
1.41870 -+/* Check that endianness of input and output file match. */
1.41871 -+extern bfd_boolean _bfd_generic_verify_endian_match
1.41872 -+ (bfd *, bfd *);
1.41873 -+
1.41874 -+/* Macros to tell if bfds are read or write enabled.
1.41875 -+
1.41876 -+ Note that bfds open for read may be scribbled into if the fd passed
1.41877 -+ to bfd_fdopenr is actually open both for read and write
1.41878 -+ simultaneously. However an output bfd will never be open for
1.41879 -+ read. Therefore sometimes you want to check bfd_read_p or
1.41880 -+ !bfd_read_p, and only sometimes bfd_write_p.
1.41881 -+*/
1.41882 -+
1.41883 -+#define bfd_read_p(abfd) \
1.41884 -+ ((abfd)->direction == read_direction || (abfd)->direction == both_direction)
1.41885 -+#define bfd_write_p(abfd) \
1.41886 -+ ((abfd)->direction == write_direction || (abfd)->direction == both_direction)
1.41887 -+
1.41888 -+void bfd_assert
1.41889 -+ (const char*,int);
1.41890 -+
1.41891 -+#define BFD_ASSERT(x) \
1.41892 -+ do { if (!(x)) bfd_assert(__FILE__,__LINE__); } while (0)
1.41893 -+
1.41894 -+#define BFD_FAIL() \
1.41895 -+ do { bfd_assert(__FILE__,__LINE__); } while (0)
1.41896 -+
1.41897 -+extern void _bfd_abort
1.41898 -+ (const char *, int, const char *) ATTRIBUTE_NORETURN;
1.41899 -+
1.41900 -+/* if gcc >= 2.6, we can give a function name, too */
1.41901 -+#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6)
1.41902 -+#define __PRETTY_FUNCTION__ ((char *) NULL)
1.41903 -+#endif
1.41904 -+
1.41905 -+#undef abort
1.41906 -+#define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
1.41907 -+
1.41908 -+/* Manipulate a system FILE but using BFD's "file_ptr", rather than
1.41909 -+ the system "off_t" or "off64_t", as the offset. */
1.41910 -+extern file_ptr real_ftell (FILE *file);
1.41911 -+extern int real_fseek (FILE *file, file_ptr offset, int whence);
1.41912 -+extern FILE *real_fopen (const char *filename, const char *modes);
1.41913 -+
1.41914 -+/* List of supported target vectors, and the default vector (if
1.41915 -+ bfd_default_vector[0] is NULL, there is no default). */
1.41916 -+extern const bfd_target * const *bfd_target_vector;
1.41917 -+extern const bfd_target *bfd_default_vector[];
1.41918 -+
1.41919 -+/* List of associated target vectors. */
1.41920 -+extern const bfd_target * const *bfd_associated_vector;
1.41921 -+
1.41922 -+/* Functions shared by the ECOFF and MIPS ELF backends, which have no
1.41923 -+ other common header files. */
1.41924 -+
1.41925 -+#if defined(__STDC__) || defined(ALMOST_STDC)
1.41926 -+struct ecoff_find_line;
1.41927 -+#endif
1.41928 -+
1.41929 -+extern bfd_boolean _bfd_ecoff_locate_line
1.41930 -+ (bfd *, asection *, bfd_vma, struct ecoff_debug_info * const,
1.41931 -+ const struct ecoff_debug_swap * const, struct ecoff_find_line *,
1.41932 -+ const char **, const char **, unsigned int *);
1.41933 -+extern bfd_boolean _bfd_ecoff_get_accumulated_pdr
1.41934 -+ (void *, bfd_byte *);
1.41935 -+extern bfd_boolean _bfd_ecoff_get_accumulated_sym
1.41936 -+ (void *, bfd_byte *);
1.41937 -+extern bfd_boolean _bfd_ecoff_get_accumulated_ss
1.41938 -+ (void *, bfd_byte *);
1.41939 -+
1.41940 -+extern bfd_vma _bfd_get_gp_value
1.41941 -+ (bfd *);
1.41942 -+extern void _bfd_set_gp_value
1.41943 -+ (bfd *, bfd_vma);
1.41944 -+
1.41945 -+/* Function shared by the COFF and ELF SH backends, which have no
1.41946 -+ other common header files. */
1.41947 -+
1.41948 -+#ifndef _bfd_sh_align_load_span
1.41949 -+extern bfd_boolean _bfd_sh_align_load_span
1.41950 -+ (bfd *, asection *, bfd_byte *,
1.41951 -+ bfd_boolean (*) (bfd *, asection *, void *, bfd_byte *, bfd_vma),
1.41952 -+ void *, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *);
1.41953 -+#endif
1.41954 -+
1.41955 -+/* This is the shape of the elements inside the already_linked hash
1.41956 -+ table. It maps a name onto a list of already_linked elements with
1.41957 -+ the same name. */
1.41958 -+
1.41959 -+struct bfd_section_already_linked_hash_entry
1.41960 -+{
1.41961 -+ struct bfd_hash_entry root;
1.41962 -+ struct bfd_section_already_linked *entry;
1.41963 -+};
1.41964 -+
1.41965 -+struct bfd_section_already_linked
1.41966 -+{
1.41967 -+ struct bfd_section_already_linked *next;
1.41968 -+ asection *sec;
1.41969 -+};
1.41970 -+
1.41971 -+extern struct bfd_section_already_linked_hash_entry *
1.41972 -+ bfd_section_already_linked_table_lookup (const char *);
1.41973 -+extern bfd_boolean bfd_section_already_linked_table_insert
1.41974 -+ (struct bfd_section_already_linked_hash_entry *, asection *);
1.41975 -+extern void bfd_section_already_linked_table_traverse
1.41976 -+ (bfd_boolean (*) (struct bfd_section_already_linked_hash_entry *,
1.41977 -+ void *), void *);
1.41978 -+
1.41979 -+extern bfd_vma read_unsigned_leb128 (bfd *, bfd_byte *, unsigned int *);
1.41980 -+extern bfd_signed_vma read_signed_leb128 (bfd *, bfd_byte *, unsigned int *);
1.41981 -+
1.41982 -+/* Extracted from init.c. */
1.41983 -+/* Extracted from libbfd.c. */
1.41984 -+bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int);
1.41985 -+
1.41986 -+unsigned int bfd_log2 (bfd_vma x);
1.41987 -+
1.41988 -+/* Extracted from bfdio.c. */
1.41989 -+struct bfd_iovec
1.41990 -+{
1.41991 -+ /* To avoid problems with macros, a "b" rather than "f"
1.41992 -+ prefix is prepended to each method name. */
1.41993 -+ /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching
1.41994 -+ bytes starting at PTR. Return the number of bytes actually
1.41995 -+ transfered (a read past end-of-file returns less than NBYTES),
1.41996 -+ or -1 (setting <<bfd_error>>) if an error occurs. */
1.41997 -+ file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes);
1.41998 -+ file_ptr (*bwrite) (struct bfd *abfd, const void *ptr,
1.41999 -+ file_ptr nbytes);
1.42000 -+ /* Return the current IOSTREAM file offset, or -1 (setting <<bfd_error>>
1.42001 -+ if an error occurs. */
1.42002 -+ file_ptr (*btell) (struct bfd *abfd);
1.42003 -+ /* For the following, on successful completion a value of 0 is returned.
1.42004 -+ Otherwise, a value of -1 is returned (and <<bfd_error>> is set). */
1.42005 -+ int (*bseek) (struct bfd *abfd, file_ptr offset, int whence);
1.42006 -+ int (*bclose) (struct bfd *abfd);
1.42007 -+ int (*bflush) (struct bfd *abfd);
1.42008 -+ int (*bstat) (struct bfd *abfd, struct stat *sb);
1.42009 -+};
1.42010 -+/* Extracted from bfdwin.c. */
1.42011 -+struct _bfd_window_internal {
1.42012 -+ struct _bfd_window_internal *next;
1.42013 -+ void *data;
1.42014 -+ bfd_size_type size;
1.42015 -+ int refcount : 31; /* should be enough... */
1.42016 -+ unsigned mapped : 1; /* 1 = mmap, 0 = malloc */
1.42017 -+};
1.42018 -+/* Extracted from cache.c. */
1.42019 -+bfd_boolean bfd_cache_init (bfd *abfd);
1.42020 -+
1.42021 -+bfd_boolean bfd_cache_close (bfd *abfd);
1.42022 -+
1.42023 -+FILE* bfd_open_file (bfd *abfd);
1.42024 -+
1.42025 -+/* Extracted from reloc.c. */
1.42026 -+#ifdef _BFD_MAKE_TABLE_bfd_reloc_code_real
1.42027 -+
1.42028 -+static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
1.42029 -+
1.42030 -+ "BFD_RELOC_64",
1.42031 -+ "BFD_RELOC_32",
1.42032 -+ "BFD_RELOC_26",
1.42033 -+ "BFD_RELOC_24",
1.42034 -+ "BFD_RELOC_16",
1.42035 -+ "BFD_RELOC_14",
1.42036 -+ "BFD_RELOC_8",
1.42037 -+ "BFD_RELOC_64_PCREL",
1.42038 -+ "BFD_RELOC_32_PCREL",
1.42039 -+ "BFD_RELOC_24_PCREL",
1.42040 -+ "BFD_RELOC_16_PCREL",
1.42041 -+ "BFD_RELOC_12_PCREL",
1.42042 -+ "BFD_RELOC_8_PCREL",
1.42043 -+ "BFD_RELOC_32_SECREL",
1.42044 -+ "BFD_RELOC_32_GOT_PCREL",
1.42045 -+ "BFD_RELOC_16_GOT_PCREL",
1.42046 -+ "BFD_RELOC_8_GOT_PCREL",
1.42047 -+ "BFD_RELOC_32_GOTOFF",
1.42048 -+ "BFD_RELOC_16_GOTOFF",
1.42049 -+ "BFD_RELOC_LO16_GOTOFF",
1.42050 -+ "BFD_RELOC_HI16_GOTOFF",
1.42051 -+ "BFD_RELOC_HI16_S_GOTOFF",
1.42052 -+ "BFD_RELOC_8_GOTOFF",
1.42053 -+ "BFD_RELOC_64_PLT_PCREL",
1.42054 -+ "BFD_RELOC_32_PLT_PCREL",
1.42055 -+ "BFD_RELOC_24_PLT_PCREL",
1.42056 -+ "BFD_RELOC_16_PLT_PCREL",
1.42057 -+ "BFD_RELOC_8_PLT_PCREL",
1.42058 -+ "BFD_RELOC_64_PLTOFF",
1.42059 -+ "BFD_RELOC_32_PLTOFF",
1.42060 -+ "BFD_RELOC_16_PLTOFF",
1.42061 -+ "BFD_RELOC_LO16_PLTOFF",
1.42062 -+ "BFD_RELOC_HI16_PLTOFF",
1.42063 -+ "BFD_RELOC_HI16_S_PLTOFF",
1.42064 -+ "BFD_RELOC_8_PLTOFF",
1.42065 -+ "BFD_RELOC_68K_GLOB_DAT",
1.42066 -+ "BFD_RELOC_68K_JMP_SLOT",
1.42067 -+ "BFD_RELOC_68K_RELATIVE",
1.42068 -+ "BFD_RELOC_32_BASEREL",
1.42069 -+ "BFD_RELOC_16_BASEREL",
1.42070 -+ "BFD_RELOC_LO16_BASEREL",
1.42071 -+ "BFD_RELOC_HI16_BASEREL",
1.42072 -+ "BFD_RELOC_HI16_S_BASEREL",
1.42073 -+ "BFD_RELOC_8_BASEREL",
1.42074 -+ "BFD_RELOC_RVA",
1.42075 -+ "BFD_RELOC_8_FFnn",
1.42076 -+ "BFD_RELOC_32_PCREL_S2",
1.42077 -+ "BFD_RELOC_16_PCREL_S2",
1.42078 -+ "BFD_RELOC_23_PCREL_S2",
1.42079 -+ "BFD_RELOC_HI22",
1.42080 -+ "BFD_RELOC_LO10",
1.42081 -+ "BFD_RELOC_GPREL16",
1.42082 -+ "BFD_RELOC_GPREL32",
1.42083 -+ "BFD_RELOC_I960_CALLJ",
1.42084 -+ "BFD_RELOC_NONE",
1.42085 -+ "BFD_RELOC_SPARC_WDISP22",
1.42086 -+ "BFD_RELOC_SPARC22",
1.42087 -+ "BFD_RELOC_SPARC13",
1.42088 -+ "BFD_RELOC_SPARC_GOT10",
1.42089 -+ "BFD_RELOC_SPARC_GOT13",
1.42090 -+ "BFD_RELOC_SPARC_GOT22",
1.42091 -+ "BFD_RELOC_SPARC_PC10",
1.42092 -+ "BFD_RELOC_SPARC_PC22",
1.42093 -+ "BFD_RELOC_SPARC_WPLT30",
1.42094 -+ "BFD_RELOC_SPARC_COPY",
1.42095 -+ "BFD_RELOC_SPARC_GLOB_DAT",
1.42096 -+ "BFD_RELOC_SPARC_JMP_SLOT",
1.42097 -+ "BFD_RELOC_SPARC_RELATIVE",
1.42098 -+ "BFD_RELOC_SPARC_UA16",
1.42099 -+ "BFD_RELOC_SPARC_UA32",
1.42100 -+ "BFD_RELOC_SPARC_UA64",
1.42101 -+ "BFD_RELOC_SPARC_BASE13",
1.42102 -+ "BFD_RELOC_SPARC_BASE22",
1.42103 -+ "BFD_RELOC_SPARC_10",
1.42104 -+ "BFD_RELOC_SPARC_11",
1.42105 -+ "BFD_RELOC_SPARC_OLO10",
1.42106 -+ "BFD_RELOC_SPARC_HH22",
1.42107 -+ "BFD_RELOC_SPARC_HM10",
1.42108 -+ "BFD_RELOC_SPARC_LM22",
1.42109 -+ "BFD_RELOC_SPARC_PC_HH22",
1.42110 -+ "BFD_RELOC_SPARC_PC_HM10",
1.42111 -+ "BFD_RELOC_SPARC_PC_LM22",
1.42112 -+ "BFD_RELOC_SPARC_WDISP16",
1.42113 -+ "BFD_RELOC_SPARC_WDISP19",
1.42114 -+ "BFD_RELOC_SPARC_7",
1.42115 -+ "BFD_RELOC_SPARC_6",
1.42116 -+ "BFD_RELOC_SPARC_5",
1.42117 -+ "BFD_RELOC_SPARC_PLT32",
1.42118 -+ "BFD_RELOC_SPARC_PLT64",
1.42119 -+ "BFD_RELOC_SPARC_HIX22",
1.42120 -+ "BFD_RELOC_SPARC_LOX10",
1.42121 -+ "BFD_RELOC_SPARC_H44",
1.42122 -+ "BFD_RELOC_SPARC_M44",
1.42123 -+ "BFD_RELOC_SPARC_L44",
1.42124 -+ "BFD_RELOC_SPARC_REGISTER",
1.42125 -+ "BFD_RELOC_SPARC_REV32",
1.42126 -+ "BFD_RELOC_SPARC_TLS_GD_HI22",
1.42127 -+ "BFD_RELOC_SPARC_TLS_GD_LO10",
1.42128 -+ "BFD_RELOC_SPARC_TLS_GD_ADD",
1.42129 -+ "BFD_RELOC_SPARC_TLS_GD_CALL",
1.42130 -+ "BFD_RELOC_SPARC_TLS_LDM_HI22",
1.42131 -+ "BFD_RELOC_SPARC_TLS_LDM_LO10",
1.42132 -+ "BFD_RELOC_SPARC_TLS_LDM_ADD",
1.42133 -+ "BFD_RELOC_SPARC_TLS_LDM_CALL",
1.42134 -+ "BFD_RELOC_SPARC_TLS_LDO_HIX22",
1.42135 -+ "BFD_RELOC_SPARC_TLS_LDO_LOX10",
1.42136 -+ "BFD_RELOC_SPARC_TLS_LDO_ADD",
1.42137 -+ "BFD_RELOC_SPARC_TLS_IE_HI22",
1.42138 -+ "BFD_RELOC_SPARC_TLS_IE_LO10",
1.42139 -+ "BFD_RELOC_SPARC_TLS_IE_LD",
1.42140 -+ "BFD_RELOC_SPARC_TLS_IE_LDX",
1.42141 -+ "BFD_RELOC_SPARC_TLS_IE_ADD",
1.42142 -+ "BFD_RELOC_SPARC_TLS_LE_HIX22",
1.42143 -+ "BFD_RELOC_SPARC_TLS_LE_LOX10",
1.42144 -+ "BFD_RELOC_SPARC_TLS_DTPMOD32",
1.42145 -+ "BFD_RELOC_SPARC_TLS_DTPMOD64",
1.42146 -+ "BFD_RELOC_SPARC_TLS_DTPOFF32",
1.42147 -+ "BFD_RELOC_SPARC_TLS_DTPOFF64",
1.42148 -+ "BFD_RELOC_SPARC_TLS_TPOFF32",
1.42149 -+ "BFD_RELOC_SPARC_TLS_TPOFF64",
1.42150 -+ "BFD_RELOC_SPU_IMM7",
1.42151 -+ "BFD_RELOC_SPU_IMM8",
1.42152 -+ "BFD_RELOC_SPU_IMM10",
1.42153 -+ "BFD_RELOC_SPU_IMM10W",
1.42154 -+ "BFD_RELOC_SPU_IMM16",
1.42155 -+ "BFD_RELOC_SPU_IMM16W",
1.42156 -+ "BFD_RELOC_SPU_IMM18",
1.42157 -+ "BFD_RELOC_SPU_PCREL9a",
1.42158 -+ "BFD_RELOC_SPU_PCREL9b",
1.42159 -+ "BFD_RELOC_SPU_PCREL16",
1.42160 -+ "BFD_RELOC_SPU_LO16",
1.42161 -+ "BFD_RELOC_SPU_HI16",
1.42162 -+ "BFD_RELOC_SPU_PPU32",
1.42163 -+ "BFD_RELOC_SPU_PPU64",
1.42164 -+ "BFD_RELOC_ALPHA_GPDISP_HI16",
1.42165 -+ "BFD_RELOC_ALPHA_GPDISP_LO16",
1.42166 -+ "BFD_RELOC_ALPHA_GPDISP",
1.42167 -+ "BFD_RELOC_ALPHA_LITERAL",
1.42168 -+ "BFD_RELOC_ALPHA_ELF_LITERAL",
1.42169 -+ "BFD_RELOC_ALPHA_LITUSE",
1.42170 -+ "BFD_RELOC_ALPHA_HINT",
1.42171 -+ "BFD_RELOC_ALPHA_LINKAGE",
1.42172 -+ "BFD_RELOC_ALPHA_CODEADDR",
1.42173 -+ "BFD_RELOC_ALPHA_GPREL_HI16",
1.42174 -+ "BFD_RELOC_ALPHA_GPREL_LO16",
1.42175 -+ "BFD_RELOC_ALPHA_BRSGP",
1.42176 -+ "BFD_RELOC_ALPHA_TLSGD",
1.42177 -+ "BFD_RELOC_ALPHA_TLSLDM",
1.42178 -+ "BFD_RELOC_ALPHA_DTPMOD64",
1.42179 -+ "BFD_RELOC_ALPHA_GOTDTPREL16",
1.42180 -+ "BFD_RELOC_ALPHA_DTPREL64",
1.42181 -+ "BFD_RELOC_ALPHA_DTPREL_HI16",
1.42182 -+ "BFD_RELOC_ALPHA_DTPREL_LO16",
1.42183 -+ "BFD_RELOC_ALPHA_DTPREL16",
1.42184 -+ "BFD_RELOC_ALPHA_GOTTPREL16",
1.42185 -+ "BFD_RELOC_ALPHA_TPREL64",
1.42186 -+ "BFD_RELOC_ALPHA_TPREL_HI16",
1.42187 -+ "BFD_RELOC_ALPHA_TPREL_LO16",
1.42188 -+ "BFD_RELOC_ALPHA_TPREL16",
1.42189 -+ "BFD_RELOC_MIPS_JMP",
1.42190 -+ "BFD_RELOC_MIPS16_JMP",
1.42191 -+ "BFD_RELOC_MIPS16_GPREL",
1.42192 -+ "BFD_RELOC_HI16",
1.42193 -+ "BFD_RELOC_HI16_S",
1.42194 -+ "BFD_RELOC_LO16",
1.42195 -+ "BFD_RELOC_HI16_PCREL",
1.42196 -+ "BFD_RELOC_HI16_S_PCREL",
1.42197 -+ "BFD_RELOC_LO16_PCREL",
1.42198 -+ "BFD_RELOC_MIPS16_HI16",
1.42199 -+ "BFD_RELOC_MIPS16_HI16_S",
1.42200 -+ "BFD_RELOC_MIPS16_LO16",
1.42201 -+ "BFD_RELOC_MIPS_LITERAL",
1.42202 -+ "BFD_RELOC_MIPS_GOT16",
1.42203 -+ "BFD_RELOC_MIPS_CALL16",
1.42204 -+ "BFD_RELOC_MIPS_GOT_HI16",
1.42205 -+ "BFD_RELOC_MIPS_GOT_LO16",
1.42206 -+ "BFD_RELOC_MIPS_CALL_HI16",
1.42207 -+ "BFD_RELOC_MIPS_CALL_LO16",
1.42208 -+ "BFD_RELOC_MIPS_SUB",
1.42209 -+ "BFD_RELOC_MIPS_GOT_PAGE",
1.42210 -+ "BFD_RELOC_MIPS_GOT_OFST",
1.42211 -+ "BFD_RELOC_MIPS_GOT_DISP",
1.42212 -+ "BFD_RELOC_MIPS_SHIFT5",
1.42213 -+ "BFD_RELOC_MIPS_SHIFT6",
1.42214 -+ "BFD_RELOC_MIPS_INSERT_A",
1.42215 -+ "BFD_RELOC_MIPS_INSERT_B",
1.42216 -+ "BFD_RELOC_MIPS_DELETE",
1.42217 -+ "BFD_RELOC_MIPS_HIGHEST",
1.42218 -+ "BFD_RELOC_MIPS_HIGHER",
1.42219 -+ "BFD_RELOC_MIPS_SCN_DISP",
1.42220 -+ "BFD_RELOC_MIPS_REL16",
1.42221 -+ "BFD_RELOC_MIPS_RELGOT",
1.42222 -+ "BFD_RELOC_MIPS_JALR",
1.42223 -+ "BFD_RELOC_MIPS_TLS_DTPMOD32",
1.42224 -+ "BFD_RELOC_MIPS_TLS_DTPREL32",
1.42225 -+ "BFD_RELOC_MIPS_TLS_DTPMOD64",
1.42226 -+ "BFD_RELOC_MIPS_TLS_DTPREL64",
1.42227 -+ "BFD_RELOC_MIPS_TLS_GD",
1.42228 -+ "BFD_RELOC_MIPS_TLS_LDM",
1.42229 -+ "BFD_RELOC_MIPS_TLS_DTPREL_HI16",
1.42230 -+ "BFD_RELOC_MIPS_TLS_DTPREL_LO16",
1.42231 -+ "BFD_RELOC_MIPS_TLS_GOTTPREL",
1.42232 -+ "BFD_RELOC_MIPS_TLS_TPREL32",
1.42233 -+ "BFD_RELOC_MIPS_TLS_TPREL64",
1.42234 -+ "BFD_RELOC_MIPS_TLS_TPREL_HI16",
1.42235 -+ "BFD_RELOC_MIPS_TLS_TPREL_LO16",
1.42236 -+
1.42237 -+ "BFD_RELOC_MIPS_COPY",
1.42238 -+ "BFD_RELOC_MIPS_JUMP_SLOT",
1.42239 -+
1.42240 -+ "BFD_RELOC_FRV_LABEL16",
1.42241 -+ "BFD_RELOC_FRV_LABEL24",
1.42242 -+ "BFD_RELOC_FRV_LO16",
1.42243 -+ "BFD_RELOC_FRV_HI16",
1.42244 -+ "BFD_RELOC_FRV_GPREL12",
1.42245 -+ "BFD_RELOC_FRV_GPRELU12",
1.42246 -+ "BFD_RELOC_FRV_GPREL32",
1.42247 -+ "BFD_RELOC_FRV_GPRELHI",
1.42248 -+ "BFD_RELOC_FRV_GPRELLO",
1.42249 -+ "BFD_RELOC_FRV_GOT12",
1.42250 -+ "BFD_RELOC_FRV_GOTHI",
1.42251 -+ "BFD_RELOC_FRV_GOTLO",
1.42252 -+ "BFD_RELOC_FRV_FUNCDESC",
1.42253 -+ "BFD_RELOC_FRV_FUNCDESC_GOT12",
1.42254 -+ "BFD_RELOC_FRV_FUNCDESC_GOTHI",
1.42255 -+ "BFD_RELOC_FRV_FUNCDESC_GOTLO",
1.42256 -+ "BFD_RELOC_FRV_FUNCDESC_VALUE",
1.42257 -+ "BFD_RELOC_FRV_FUNCDESC_GOTOFF12",
1.42258 -+ "BFD_RELOC_FRV_FUNCDESC_GOTOFFHI",
1.42259 -+ "BFD_RELOC_FRV_FUNCDESC_GOTOFFLO",
1.42260 -+ "BFD_RELOC_FRV_GOTOFF12",
1.42261 -+ "BFD_RELOC_FRV_GOTOFFHI",
1.42262 -+ "BFD_RELOC_FRV_GOTOFFLO",
1.42263 -+ "BFD_RELOC_FRV_GETTLSOFF",
1.42264 -+ "BFD_RELOC_FRV_TLSDESC_VALUE",
1.42265 -+ "BFD_RELOC_FRV_GOTTLSDESC12",
1.42266 -+ "BFD_RELOC_FRV_GOTTLSDESCHI",
1.42267 -+ "BFD_RELOC_FRV_GOTTLSDESCLO",
1.42268 -+ "BFD_RELOC_FRV_TLSMOFF12",
1.42269 -+ "BFD_RELOC_FRV_TLSMOFFHI",
1.42270 -+ "BFD_RELOC_FRV_TLSMOFFLO",
1.42271 -+ "BFD_RELOC_FRV_GOTTLSOFF12",
1.42272 -+ "BFD_RELOC_FRV_GOTTLSOFFHI",
1.42273 -+ "BFD_RELOC_FRV_GOTTLSOFFLO",
1.42274 -+ "BFD_RELOC_FRV_TLSOFF",
1.42275 -+ "BFD_RELOC_FRV_TLSDESC_RELAX",
1.42276 -+ "BFD_RELOC_FRV_GETTLSOFF_RELAX",
1.42277 -+ "BFD_RELOC_FRV_TLSOFF_RELAX",
1.42278 -+ "BFD_RELOC_FRV_TLSMOFF",
1.42279 -+
1.42280 -+ "BFD_RELOC_MN10300_GOTOFF24",
1.42281 -+ "BFD_RELOC_MN10300_GOT32",
1.42282 -+ "BFD_RELOC_MN10300_GOT24",
1.42283 -+ "BFD_RELOC_MN10300_GOT16",
1.42284 -+ "BFD_RELOC_MN10300_COPY",
1.42285 -+ "BFD_RELOC_MN10300_GLOB_DAT",
1.42286 -+ "BFD_RELOC_MN10300_JMP_SLOT",
1.42287 -+ "BFD_RELOC_MN10300_RELATIVE",
1.42288 -+
1.42289 -+ "BFD_RELOC_386_GOT32",
1.42290 -+ "BFD_RELOC_386_PLT32",
1.42291 -+ "BFD_RELOC_386_COPY",
1.42292 -+ "BFD_RELOC_386_GLOB_DAT",
1.42293 -+ "BFD_RELOC_386_JUMP_SLOT",
1.42294 -+ "BFD_RELOC_386_RELATIVE",
1.42295 -+ "BFD_RELOC_386_GOTOFF",
1.42296 -+ "BFD_RELOC_386_GOTPC",
1.42297 -+ "BFD_RELOC_386_TLS_TPOFF",
1.42298 -+ "BFD_RELOC_386_TLS_IE",
1.42299 -+ "BFD_RELOC_386_TLS_GOTIE",
1.42300 -+ "BFD_RELOC_386_TLS_LE",
1.42301 -+ "BFD_RELOC_386_TLS_GD",
1.42302 -+ "BFD_RELOC_386_TLS_LDM",
1.42303 -+ "BFD_RELOC_386_TLS_LDO_32",
1.42304 -+ "BFD_RELOC_386_TLS_IE_32",
1.42305 -+ "BFD_RELOC_386_TLS_LE_32",
1.42306 -+ "BFD_RELOC_386_TLS_DTPMOD32",
1.42307 -+ "BFD_RELOC_386_TLS_DTPOFF32",
1.42308 -+ "BFD_RELOC_386_TLS_TPOFF32",
1.42309 -+ "BFD_RELOC_386_TLS_GOTDESC",
1.42310 -+ "BFD_RELOC_386_TLS_DESC_CALL",
1.42311 -+ "BFD_RELOC_386_TLS_DESC",
1.42312 -+ "BFD_RELOC_X86_64_GOT32",
1.42313 -+ "BFD_RELOC_X86_64_PLT32",
1.42314 -+ "BFD_RELOC_X86_64_COPY",
1.42315 -+ "BFD_RELOC_X86_64_GLOB_DAT",
1.42316 -+ "BFD_RELOC_X86_64_JUMP_SLOT",
1.42317 -+ "BFD_RELOC_X86_64_RELATIVE",
1.42318 -+ "BFD_RELOC_X86_64_GOTPCREL",
1.42319 -+ "BFD_RELOC_X86_64_32S",
1.42320 -+ "BFD_RELOC_X86_64_DTPMOD64",
1.42321 -+ "BFD_RELOC_X86_64_DTPOFF64",
1.42322 -+ "BFD_RELOC_X86_64_TPOFF64",
1.42323 -+ "BFD_RELOC_X86_64_TLSGD",
1.42324 -+ "BFD_RELOC_X86_64_TLSLD",
1.42325 -+ "BFD_RELOC_X86_64_DTPOFF32",
1.42326 -+ "BFD_RELOC_X86_64_GOTTPOFF",
1.42327 -+ "BFD_RELOC_X86_64_TPOFF32",
1.42328 -+ "BFD_RELOC_X86_64_GOTOFF64",
1.42329 -+ "BFD_RELOC_X86_64_GOTPC32",
1.42330 -+ "BFD_RELOC_X86_64_GOT64",
1.42331 -+ "BFD_RELOC_X86_64_GOTPCREL64",
1.42332 -+ "BFD_RELOC_X86_64_GOTPC64",
1.42333 -+ "BFD_RELOC_X86_64_GOTPLT64",
1.42334 -+ "BFD_RELOC_X86_64_PLTOFF64",
1.42335 -+ "BFD_RELOC_X86_64_GOTPC32_TLSDESC",
1.42336 -+ "BFD_RELOC_X86_64_TLSDESC_CALL",
1.42337 -+ "BFD_RELOC_X86_64_TLSDESC",
1.42338 -+ "BFD_RELOC_NS32K_IMM_8",
1.42339 -+ "BFD_RELOC_NS32K_IMM_16",
1.42340 -+ "BFD_RELOC_NS32K_IMM_32",
1.42341 -+ "BFD_RELOC_NS32K_IMM_8_PCREL",
1.42342 -+ "BFD_RELOC_NS32K_IMM_16_PCREL",
1.42343 -+ "BFD_RELOC_NS32K_IMM_32_PCREL",
1.42344 -+ "BFD_RELOC_NS32K_DISP_8",
1.42345 -+ "BFD_RELOC_NS32K_DISP_16",
1.42346 -+ "BFD_RELOC_NS32K_DISP_32",
1.42347 -+ "BFD_RELOC_NS32K_DISP_8_PCREL",
1.42348 -+ "BFD_RELOC_NS32K_DISP_16_PCREL",
1.42349 -+ "BFD_RELOC_NS32K_DISP_32_PCREL",
1.42350 -+ "BFD_RELOC_PDP11_DISP_8_PCREL",
1.42351 -+ "BFD_RELOC_PDP11_DISP_6_PCREL",
1.42352 -+ "BFD_RELOC_PJ_CODE_HI16",
1.42353 -+ "BFD_RELOC_PJ_CODE_LO16",
1.42354 -+ "BFD_RELOC_PJ_CODE_DIR16",
1.42355 -+ "BFD_RELOC_PJ_CODE_DIR32",
1.42356 -+ "BFD_RELOC_PJ_CODE_REL16",
1.42357 -+ "BFD_RELOC_PJ_CODE_REL32",
1.42358 -+ "BFD_RELOC_PPC_B26",
1.42359 -+ "BFD_RELOC_PPC_BA26",
1.42360 -+ "BFD_RELOC_PPC_TOC16",
1.42361 -+ "BFD_RELOC_PPC_B16",
1.42362 -+ "BFD_RELOC_PPC_B16_BRTAKEN",
1.42363 -+ "BFD_RELOC_PPC_B16_BRNTAKEN",
1.42364 -+ "BFD_RELOC_PPC_BA16",
1.42365 -+ "BFD_RELOC_PPC_BA16_BRTAKEN",
1.42366 -+ "BFD_RELOC_PPC_BA16_BRNTAKEN",
1.42367 -+ "BFD_RELOC_PPC_COPY",
1.42368 -+ "BFD_RELOC_PPC_GLOB_DAT",
1.42369 -+ "BFD_RELOC_PPC_JMP_SLOT",
1.42370 -+ "BFD_RELOC_PPC_RELATIVE",
1.42371 -+ "BFD_RELOC_PPC_LOCAL24PC",
1.42372 -+ "BFD_RELOC_PPC_EMB_NADDR32",
1.42373 -+ "BFD_RELOC_PPC_EMB_NADDR16",
1.42374 -+ "BFD_RELOC_PPC_EMB_NADDR16_LO",
1.42375 -+ "BFD_RELOC_PPC_EMB_NADDR16_HI",
1.42376 -+ "BFD_RELOC_PPC_EMB_NADDR16_HA",
1.42377 -+ "BFD_RELOC_PPC_EMB_SDAI16",
1.42378 -+ "BFD_RELOC_PPC_EMB_SDA2I16",
1.42379 -+ "BFD_RELOC_PPC_EMB_SDA2REL",
1.42380 -+ "BFD_RELOC_PPC_EMB_SDA21",
1.42381 -+ "BFD_RELOC_PPC_EMB_MRKREF",
1.42382 -+ "BFD_RELOC_PPC_EMB_RELSEC16",
1.42383 -+ "BFD_RELOC_PPC_EMB_RELST_LO",
1.42384 -+ "BFD_RELOC_PPC_EMB_RELST_HI",
1.42385 -+ "BFD_RELOC_PPC_EMB_RELST_HA",
1.42386 -+ "BFD_RELOC_PPC_EMB_BIT_FLD",
1.42387 -+ "BFD_RELOC_PPC_EMB_RELSDA",
1.42388 -+ "BFD_RELOC_PPC64_HIGHER",
1.42389 -+ "BFD_RELOC_PPC64_HIGHER_S",
1.42390 -+ "BFD_RELOC_PPC64_HIGHEST",
1.42391 -+ "BFD_RELOC_PPC64_HIGHEST_S",
1.42392 -+ "BFD_RELOC_PPC64_TOC16_LO",
1.42393 -+ "BFD_RELOC_PPC64_TOC16_HI",
1.42394 -+ "BFD_RELOC_PPC64_TOC16_HA",
1.42395 -+ "BFD_RELOC_PPC64_TOC",
1.42396 -+ "BFD_RELOC_PPC64_PLTGOT16",
1.42397 -+ "BFD_RELOC_PPC64_PLTGOT16_LO",
1.42398 -+ "BFD_RELOC_PPC64_PLTGOT16_HI",
1.42399 -+ "BFD_RELOC_PPC64_PLTGOT16_HA",
1.42400 -+ "BFD_RELOC_PPC64_ADDR16_DS",
1.42401 -+ "BFD_RELOC_PPC64_ADDR16_LO_DS",
1.42402 -+ "BFD_RELOC_PPC64_GOT16_DS",
1.42403 -+ "BFD_RELOC_PPC64_GOT16_LO_DS",
1.42404 -+ "BFD_RELOC_PPC64_PLT16_LO_DS",
1.42405 -+ "BFD_RELOC_PPC64_SECTOFF_DS",
1.42406 -+ "BFD_RELOC_PPC64_SECTOFF_LO_DS",
1.42407 -+ "BFD_RELOC_PPC64_TOC16_DS",
1.42408 -+ "BFD_RELOC_PPC64_TOC16_LO_DS",
1.42409 -+ "BFD_RELOC_PPC64_PLTGOT16_DS",
1.42410 -+ "BFD_RELOC_PPC64_PLTGOT16_LO_DS",
1.42411 -+ "BFD_RELOC_PPC_TLS",
1.42412 -+ "BFD_RELOC_PPC_DTPMOD",
1.42413 -+ "BFD_RELOC_PPC_TPREL16",
1.42414 -+ "BFD_RELOC_PPC_TPREL16_LO",
1.42415 -+ "BFD_RELOC_PPC_TPREL16_HI",
1.42416 -+ "BFD_RELOC_PPC_TPREL16_HA",
1.42417 -+ "BFD_RELOC_PPC_TPREL",
1.42418 -+ "BFD_RELOC_PPC_DTPREL16",
1.42419 -+ "BFD_RELOC_PPC_DTPREL16_LO",
1.42420 -+ "BFD_RELOC_PPC_DTPREL16_HI",
1.42421 -+ "BFD_RELOC_PPC_DTPREL16_HA",
1.42422 -+ "BFD_RELOC_PPC_DTPREL",
1.42423 -+ "BFD_RELOC_PPC_GOT_TLSGD16",
1.42424 -+ "BFD_RELOC_PPC_GOT_TLSGD16_LO",
1.42425 -+ "BFD_RELOC_PPC_GOT_TLSGD16_HI",
1.42426 -+ "BFD_RELOC_PPC_GOT_TLSGD16_HA",
1.42427 -+ "BFD_RELOC_PPC_GOT_TLSLD16",
1.42428 -+ "BFD_RELOC_PPC_GOT_TLSLD16_LO",
1.42429 -+ "BFD_RELOC_PPC_GOT_TLSLD16_HI",
1.42430 -+ "BFD_RELOC_PPC_GOT_TLSLD16_HA",
1.42431 -+ "BFD_RELOC_PPC_GOT_TPREL16",
1.42432 -+ "BFD_RELOC_PPC_GOT_TPREL16_LO",
1.42433 -+ "BFD_RELOC_PPC_GOT_TPREL16_HI",
1.42434 -+ "BFD_RELOC_PPC_GOT_TPREL16_HA",
1.42435 -+ "BFD_RELOC_PPC_GOT_DTPREL16",
1.42436 -+ "BFD_RELOC_PPC_GOT_DTPREL16_LO",
1.42437 -+ "BFD_RELOC_PPC_GOT_DTPREL16_HI",
1.42438 -+ "BFD_RELOC_PPC_GOT_DTPREL16_HA",
1.42439 -+ "BFD_RELOC_PPC64_TPREL16_DS",
1.42440 -+ "BFD_RELOC_PPC64_TPREL16_LO_DS",
1.42441 -+ "BFD_RELOC_PPC64_TPREL16_HIGHER",
1.42442 -+ "BFD_RELOC_PPC64_TPREL16_HIGHERA",
1.42443 -+ "BFD_RELOC_PPC64_TPREL16_HIGHEST",
1.42444 -+ "BFD_RELOC_PPC64_TPREL16_HIGHESTA",
1.42445 -+ "BFD_RELOC_PPC64_DTPREL16_DS",
1.42446 -+ "BFD_RELOC_PPC64_DTPREL16_LO_DS",
1.42447 -+ "BFD_RELOC_PPC64_DTPREL16_HIGHER",
1.42448 -+ "BFD_RELOC_PPC64_DTPREL16_HIGHERA",
1.42449 -+ "BFD_RELOC_PPC64_DTPREL16_HIGHEST",
1.42450 -+ "BFD_RELOC_PPC64_DTPREL16_HIGHESTA",
1.42451 -+ "BFD_RELOC_I370_D12",
1.42452 -+ "BFD_RELOC_CTOR",
1.42453 -+ "BFD_RELOC_ARM_PCREL_BRANCH",
1.42454 -+ "BFD_RELOC_ARM_PCREL_BLX",
1.42455 -+ "BFD_RELOC_THUMB_PCREL_BLX",
1.42456 -+ "BFD_RELOC_ARM_PCREL_CALL",
1.42457 -+ "BFD_RELOC_ARM_PCREL_JUMP",
1.42458 -+ "BFD_RELOC_THUMB_PCREL_BRANCH7",
1.42459 -+ "BFD_RELOC_THUMB_PCREL_BRANCH9",
1.42460 -+ "BFD_RELOC_THUMB_PCREL_BRANCH12",
1.42461 -+ "BFD_RELOC_THUMB_PCREL_BRANCH20",
1.42462 -+ "BFD_RELOC_THUMB_PCREL_BRANCH23",
1.42463 -+ "BFD_RELOC_THUMB_PCREL_BRANCH25",
1.42464 -+ "BFD_RELOC_ARM_OFFSET_IMM",
1.42465 -+ "BFD_RELOC_ARM_THUMB_OFFSET",
1.42466 -+ "BFD_RELOC_ARM_TARGET1",
1.42467 -+ "BFD_RELOC_ARM_ROSEGREL32",
1.42468 -+ "BFD_RELOC_ARM_SBREL32",
1.42469 -+ "BFD_RELOC_ARM_TARGET2",
1.42470 -+ "BFD_RELOC_ARM_PREL31",
1.42471 -+ "BFD_RELOC_ARM_MOVW",
1.42472 -+ "BFD_RELOC_ARM_MOVT",
1.42473 -+ "BFD_RELOC_ARM_MOVW_PCREL",
1.42474 -+ "BFD_RELOC_ARM_MOVT_PCREL",
1.42475 -+ "BFD_RELOC_ARM_THUMB_MOVW",
1.42476 -+ "BFD_RELOC_ARM_THUMB_MOVT",
1.42477 -+ "BFD_RELOC_ARM_THUMB_MOVW_PCREL",
1.42478 -+ "BFD_RELOC_ARM_THUMB_MOVT_PCREL",
1.42479 -+ "BFD_RELOC_ARM_JUMP_SLOT",
1.42480 -+ "BFD_RELOC_ARM_GLOB_DAT",
1.42481 -+ "BFD_RELOC_ARM_GOT32",
1.42482 -+ "BFD_RELOC_ARM_PLT32",
1.42483 -+ "BFD_RELOC_ARM_RELATIVE",
1.42484 -+ "BFD_RELOC_ARM_GOTOFF",
1.42485 -+ "BFD_RELOC_ARM_GOTPC",
1.42486 -+ "BFD_RELOC_ARM_TLS_GD32",
1.42487 -+ "BFD_RELOC_ARM_TLS_LDO32",
1.42488 -+ "BFD_RELOC_ARM_TLS_LDM32",
1.42489 -+ "BFD_RELOC_ARM_TLS_DTPOFF32",
1.42490 -+ "BFD_RELOC_ARM_TLS_DTPMOD32",
1.42491 -+ "BFD_RELOC_ARM_TLS_TPOFF32",
1.42492 -+ "BFD_RELOC_ARM_TLS_IE32",
1.42493 -+ "BFD_RELOC_ARM_TLS_LE32",
1.42494 -+ "BFD_RELOC_ARM_ALU_PC_G0_NC",
1.42495 -+ "BFD_RELOC_ARM_ALU_PC_G0",
1.42496 -+ "BFD_RELOC_ARM_ALU_PC_G1_NC",
1.42497 -+ "BFD_RELOC_ARM_ALU_PC_G1",
1.42498 -+ "BFD_RELOC_ARM_ALU_PC_G2",
1.42499 -+ "BFD_RELOC_ARM_LDR_PC_G0",
1.42500 -+ "BFD_RELOC_ARM_LDR_PC_G1",
1.42501 -+ "BFD_RELOC_ARM_LDR_PC_G2",
1.42502 -+ "BFD_RELOC_ARM_LDRS_PC_G0",
1.42503 -+ "BFD_RELOC_ARM_LDRS_PC_G1",
1.42504 -+ "BFD_RELOC_ARM_LDRS_PC_G2",
1.42505 -+ "BFD_RELOC_ARM_LDC_PC_G0",
1.42506 -+ "BFD_RELOC_ARM_LDC_PC_G1",
1.42507 -+ "BFD_RELOC_ARM_LDC_PC_G2",
1.42508 -+ "BFD_RELOC_ARM_ALU_SB_G0_NC",
1.42509 -+ "BFD_RELOC_ARM_ALU_SB_G0",
1.42510 -+ "BFD_RELOC_ARM_ALU_SB_G1_NC",
1.42511 -+ "BFD_RELOC_ARM_ALU_SB_G1",
1.42512 -+ "BFD_RELOC_ARM_ALU_SB_G2",
1.42513 -+ "BFD_RELOC_ARM_LDR_SB_G0",
1.42514 -+ "BFD_RELOC_ARM_LDR_SB_G1",
1.42515 -+ "BFD_RELOC_ARM_LDR_SB_G2",
1.42516 -+ "BFD_RELOC_ARM_LDRS_SB_G0",
1.42517 -+ "BFD_RELOC_ARM_LDRS_SB_G1",
1.42518 -+ "BFD_RELOC_ARM_LDRS_SB_G2",
1.42519 -+ "BFD_RELOC_ARM_LDC_SB_G0",
1.42520 -+ "BFD_RELOC_ARM_LDC_SB_G1",
1.42521 -+ "BFD_RELOC_ARM_LDC_SB_G2",
1.42522 -+ "BFD_RELOC_ARM_IMMEDIATE",
1.42523 -+ "BFD_RELOC_ARM_ADRL_IMMEDIATE",
1.42524 -+ "BFD_RELOC_ARM_T32_IMMEDIATE",
1.42525 -+ "BFD_RELOC_ARM_T32_ADD_IMM",
1.42526 -+ "BFD_RELOC_ARM_T32_IMM12",
1.42527 -+ "BFD_RELOC_ARM_T32_ADD_PC12",
1.42528 -+ "BFD_RELOC_ARM_SHIFT_IMM",
1.42529 -+ "BFD_RELOC_ARM_SMC",
1.42530 -+ "BFD_RELOC_ARM_SWI",
1.42531 -+ "BFD_RELOC_ARM_MULTI",
1.42532 -+ "BFD_RELOC_ARM_CP_OFF_IMM",
1.42533 -+ "BFD_RELOC_ARM_CP_OFF_IMM_S2",
1.42534 -+ "BFD_RELOC_ARM_T32_CP_OFF_IMM",
1.42535 -+ "BFD_RELOC_ARM_T32_CP_OFF_IMM_S2",
1.42536 -+ "BFD_RELOC_ARM_ADR_IMM",
1.42537 -+ "BFD_RELOC_ARM_LDR_IMM",
1.42538 -+ "BFD_RELOC_ARM_LITERAL",
1.42539 -+ "BFD_RELOC_ARM_IN_POOL",
1.42540 -+ "BFD_RELOC_ARM_OFFSET_IMM8",
1.42541 -+ "BFD_RELOC_ARM_T32_OFFSET_U8",
1.42542 -+ "BFD_RELOC_ARM_T32_OFFSET_IMM",
1.42543 -+ "BFD_RELOC_ARM_HWLITERAL",
1.42544 -+ "BFD_RELOC_ARM_THUMB_ADD",
1.42545 -+ "BFD_RELOC_ARM_THUMB_IMM",
1.42546 -+ "BFD_RELOC_ARM_THUMB_SHIFT",
1.42547 -+ "BFD_RELOC_SH_PCDISP8BY2",
1.42548 -+ "BFD_RELOC_SH_PCDISP12BY2",
1.42549 -+ "BFD_RELOC_SH_IMM3",
1.42550 -+ "BFD_RELOC_SH_IMM3U",
1.42551 -+ "BFD_RELOC_SH_DISP12",
1.42552 -+ "BFD_RELOC_SH_DISP12BY2",
1.42553 -+ "BFD_RELOC_SH_DISP12BY4",
1.42554 -+ "BFD_RELOC_SH_DISP12BY8",
1.42555 -+ "BFD_RELOC_SH_DISP20",
1.42556 -+ "BFD_RELOC_SH_DISP20BY8",
1.42557 -+ "BFD_RELOC_SH_IMM4",
1.42558 -+ "BFD_RELOC_SH_IMM4BY2",
1.42559 -+ "BFD_RELOC_SH_IMM4BY4",
1.42560 -+ "BFD_RELOC_SH_IMM8",
1.42561 -+ "BFD_RELOC_SH_IMM8BY2",
1.42562 -+ "BFD_RELOC_SH_IMM8BY4",
1.42563 -+ "BFD_RELOC_SH_PCRELIMM8BY2",
1.42564 -+ "BFD_RELOC_SH_PCRELIMM8BY4",
1.42565 -+ "BFD_RELOC_SH_SWITCH16",
1.42566 -+ "BFD_RELOC_SH_SWITCH32",
1.42567 -+ "BFD_RELOC_SH_USES",
1.42568 -+ "BFD_RELOC_SH_COUNT",
1.42569 -+ "BFD_RELOC_SH_ALIGN",
1.42570 -+ "BFD_RELOC_SH_CODE",
1.42571 -+ "BFD_RELOC_SH_DATA",
1.42572 -+ "BFD_RELOC_SH_LABEL",
1.42573 -+ "BFD_RELOC_SH_LOOP_START",
1.42574 -+ "BFD_RELOC_SH_LOOP_END",
1.42575 -+ "BFD_RELOC_SH_COPY",
1.42576 -+ "BFD_RELOC_SH_GLOB_DAT",
1.42577 -+ "BFD_RELOC_SH_JMP_SLOT",
1.42578 -+ "BFD_RELOC_SH_RELATIVE",
1.42579 -+ "BFD_RELOC_SH_GOTPC",
1.42580 -+ "BFD_RELOC_SH_GOT_LOW16",
1.42581 -+ "BFD_RELOC_SH_GOT_MEDLOW16",
1.42582 -+ "BFD_RELOC_SH_GOT_MEDHI16",
1.42583 -+ "BFD_RELOC_SH_GOT_HI16",
1.42584 -+ "BFD_RELOC_SH_GOTPLT_LOW16",
1.42585 -+ "BFD_RELOC_SH_GOTPLT_MEDLOW16",
1.42586 -+ "BFD_RELOC_SH_GOTPLT_MEDHI16",
1.42587 -+ "BFD_RELOC_SH_GOTPLT_HI16",
1.42588 -+ "BFD_RELOC_SH_PLT_LOW16",
1.42589 -+ "BFD_RELOC_SH_PLT_MEDLOW16",
1.42590 -+ "BFD_RELOC_SH_PLT_MEDHI16",
1.42591 -+ "BFD_RELOC_SH_PLT_HI16",
1.42592 -+ "BFD_RELOC_SH_GOTOFF_LOW16",
1.42593 -+ "BFD_RELOC_SH_GOTOFF_MEDLOW16",
1.42594 -+ "BFD_RELOC_SH_GOTOFF_MEDHI16",
1.42595 -+ "BFD_RELOC_SH_GOTOFF_HI16",
1.42596 -+ "BFD_RELOC_SH_GOTPC_LOW16",
1.42597 -+ "BFD_RELOC_SH_GOTPC_MEDLOW16",
1.42598 -+ "BFD_RELOC_SH_GOTPC_MEDHI16",
1.42599 -+ "BFD_RELOC_SH_GOTPC_HI16",
1.42600 -+ "BFD_RELOC_SH_COPY64",
1.42601 -+ "BFD_RELOC_SH_GLOB_DAT64",
1.42602 -+ "BFD_RELOC_SH_JMP_SLOT64",
1.42603 -+ "BFD_RELOC_SH_RELATIVE64",
1.42604 -+ "BFD_RELOC_SH_GOT10BY4",
1.42605 -+ "BFD_RELOC_SH_GOT10BY8",
1.42606 -+ "BFD_RELOC_SH_GOTPLT10BY4",
1.42607 -+ "BFD_RELOC_SH_GOTPLT10BY8",
1.42608 -+ "BFD_RELOC_SH_GOTPLT32",
1.42609 -+ "BFD_RELOC_SH_SHMEDIA_CODE",
1.42610 -+ "BFD_RELOC_SH_IMMU5",
1.42611 -+ "BFD_RELOC_SH_IMMS6",
1.42612 -+ "BFD_RELOC_SH_IMMS6BY32",
1.42613 -+ "BFD_RELOC_SH_IMMU6",
1.42614 -+ "BFD_RELOC_SH_IMMS10",
1.42615 -+ "BFD_RELOC_SH_IMMS10BY2",
1.42616 -+ "BFD_RELOC_SH_IMMS10BY4",
1.42617 -+ "BFD_RELOC_SH_IMMS10BY8",
1.42618 -+ "BFD_RELOC_SH_IMMS16",
1.42619 -+ "BFD_RELOC_SH_IMMU16",
1.42620 -+ "BFD_RELOC_SH_IMM_LOW16",
1.42621 -+ "BFD_RELOC_SH_IMM_LOW16_PCREL",
1.42622 -+ "BFD_RELOC_SH_IMM_MEDLOW16",
1.42623 -+ "BFD_RELOC_SH_IMM_MEDLOW16_PCREL",
1.42624 -+ "BFD_RELOC_SH_IMM_MEDHI16",
1.42625 -+ "BFD_RELOC_SH_IMM_MEDHI16_PCREL",
1.42626 -+ "BFD_RELOC_SH_IMM_HI16",
1.42627 -+ "BFD_RELOC_SH_IMM_HI16_PCREL",
1.42628 -+ "BFD_RELOC_SH_PT_16",
1.42629 -+ "BFD_RELOC_SH_TLS_GD_32",
1.42630 -+ "BFD_RELOC_SH_TLS_LD_32",
1.42631 -+ "BFD_RELOC_SH_TLS_LDO_32",
1.42632 -+ "BFD_RELOC_SH_TLS_IE_32",
1.42633 -+ "BFD_RELOC_SH_TLS_LE_32",
1.42634 -+ "BFD_RELOC_SH_TLS_DTPMOD32",
1.42635 -+ "BFD_RELOC_SH_TLS_DTPOFF32",
1.42636 -+ "BFD_RELOC_SH_TLS_TPOFF32",
1.42637 -+ "BFD_RELOC_ARC_B22_PCREL",
1.42638 -+ "BFD_RELOC_ARC_B26",
1.42639 -+ "BFD_RELOC_BFIN_16_IMM",
1.42640 -+ "BFD_RELOC_BFIN_16_HIGH",
1.42641 -+ "BFD_RELOC_BFIN_4_PCREL",
1.42642 -+ "BFD_RELOC_BFIN_5_PCREL",
1.42643 -+ "BFD_RELOC_BFIN_16_LOW",
1.42644 -+ "BFD_RELOC_BFIN_10_PCREL",
1.42645 -+ "BFD_RELOC_BFIN_11_PCREL",
1.42646 -+ "BFD_RELOC_BFIN_12_PCREL_JUMP",
1.42647 -+ "BFD_RELOC_BFIN_12_PCREL_JUMP_S",
1.42648 -+ "BFD_RELOC_BFIN_24_PCREL_CALL_X",
1.42649 -+ "BFD_RELOC_BFIN_24_PCREL_JUMP_L",
1.42650 -+ "BFD_RELOC_BFIN_GOT17M4",
1.42651 -+ "BFD_RELOC_BFIN_GOTHI",
1.42652 -+ "BFD_RELOC_BFIN_GOTLO",
1.42653 -+ "BFD_RELOC_BFIN_FUNCDESC",
1.42654 -+ "BFD_RELOC_BFIN_FUNCDESC_GOT17M4",
1.42655 -+ "BFD_RELOC_BFIN_FUNCDESC_GOTHI",
1.42656 -+ "BFD_RELOC_BFIN_FUNCDESC_GOTLO",
1.42657 -+ "BFD_RELOC_BFIN_FUNCDESC_VALUE",
1.42658 -+ "BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4",
1.42659 -+ "BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI",
1.42660 -+ "BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO",
1.42661 -+ "BFD_RELOC_BFIN_GOTOFF17M4",
1.42662 -+ "BFD_RELOC_BFIN_GOTOFFHI",
1.42663 -+ "BFD_RELOC_BFIN_GOTOFFLO",
1.42664 -+ "BFD_RELOC_BFIN_GOT",
1.42665 -+ "BFD_RELOC_BFIN_PLTPC",
1.42666 -+ "BFD_ARELOC_BFIN_PUSH",
1.42667 -+ "BFD_ARELOC_BFIN_CONST",
1.42668 -+ "BFD_ARELOC_BFIN_ADD",
1.42669 -+ "BFD_ARELOC_BFIN_SUB",
1.42670 -+ "BFD_ARELOC_BFIN_MULT",
1.42671 -+ "BFD_ARELOC_BFIN_DIV",
1.42672 -+ "BFD_ARELOC_BFIN_MOD",
1.42673 -+ "BFD_ARELOC_BFIN_LSHIFT",
1.42674 -+ "BFD_ARELOC_BFIN_RSHIFT",
1.42675 -+ "BFD_ARELOC_BFIN_AND",
1.42676 -+ "BFD_ARELOC_BFIN_OR",
1.42677 -+ "BFD_ARELOC_BFIN_XOR",
1.42678 -+ "BFD_ARELOC_BFIN_LAND",
1.42679 -+ "BFD_ARELOC_BFIN_LOR",
1.42680 -+ "BFD_ARELOC_BFIN_LEN",
1.42681 -+ "BFD_ARELOC_BFIN_NEG",
1.42682 -+ "BFD_ARELOC_BFIN_COMP",
1.42683 -+ "BFD_ARELOC_BFIN_PAGE",
1.42684 -+ "BFD_ARELOC_BFIN_HWPAGE",
1.42685 -+ "BFD_ARELOC_BFIN_ADDR",
1.42686 -+ "BFD_RELOC_D10V_10_PCREL_R",
1.42687 -+ "BFD_RELOC_D10V_10_PCREL_L",
1.42688 -+ "BFD_RELOC_D10V_18",
1.42689 -+ "BFD_RELOC_D10V_18_PCREL",
1.42690 -+ "BFD_RELOC_D30V_6",
1.42691 -+ "BFD_RELOC_D30V_9_PCREL",
1.42692 -+ "BFD_RELOC_D30V_9_PCREL_R",
1.42693 -+ "BFD_RELOC_D30V_15",
1.42694 -+ "BFD_RELOC_D30V_15_PCREL",
1.42695 -+ "BFD_RELOC_D30V_15_PCREL_R",
1.42696 -+ "BFD_RELOC_D30V_21",
1.42697 -+ "BFD_RELOC_D30V_21_PCREL",
1.42698 -+ "BFD_RELOC_D30V_21_PCREL_R",
1.42699 -+ "BFD_RELOC_D30V_32",
1.42700 -+ "BFD_RELOC_D30V_32_PCREL",
1.42701 -+ "BFD_RELOC_DLX_HI16_S",
1.42702 -+ "BFD_RELOC_DLX_LO16",
1.42703 -+ "BFD_RELOC_DLX_JMP26",
1.42704 -+ "BFD_RELOC_M32C_HI8",
1.42705 -+ "BFD_RELOC_M32C_RL_JUMP",
1.42706 -+ "BFD_RELOC_M32C_RL_1ADDR",
1.42707 -+ "BFD_RELOC_M32C_RL_2ADDR",
1.42708 -+ "BFD_RELOC_M32R_24",
1.42709 -+ "BFD_RELOC_M32R_10_PCREL",
1.42710 -+ "BFD_RELOC_M32R_18_PCREL",
1.42711 -+ "BFD_RELOC_M32R_26_PCREL",
1.42712 -+ "BFD_RELOC_M32R_HI16_ULO",
1.42713 -+ "BFD_RELOC_M32R_HI16_SLO",
1.42714 -+ "BFD_RELOC_M32R_LO16",
1.42715 -+ "BFD_RELOC_M32R_SDA16",
1.42716 -+ "BFD_RELOC_M32R_GOT24",
1.42717 -+ "BFD_RELOC_M32R_26_PLTREL",
1.42718 -+ "BFD_RELOC_M32R_COPY",
1.42719 -+ "BFD_RELOC_M32R_GLOB_DAT",
1.42720 -+ "BFD_RELOC_M32R_JMP_SLOT",
1.42721 -+ "BFD_RELOC_M32R_RELATIVE",
1.42722 -+ "BFD_RELOC_M32R_GOTOFF",
1.42723 -+ "BFD_RELOC_M32R_GOTOFF_HI_ULO",
1.42724 -+ "BFD_RELOC_M32R_GOTOFF_HI_SLO",
1.42725 -+ "BFD_RELOC_M32R_GOTOFF_LO",
1.42726 -+ "BFD_RELOC_M32R_GOTPC24",
1.42727 -+ "BFD_RELOC_M32R_GOT16_HI_ULO",
1.42728 -+ "BFD_RELOC_M32R_GOT16_HI_SLO",
1.42729 -+ "BFD_RELOC_M32R_GOT16_LO",
1.42730 -+ "BFD_RELOC_M32R_GOTPC_HI_ULO",
1.42731 -+ "BFD_RELOC_M32R_GOTPC_HI_SLO",
1.42732 -+ "BFD_RELOC_M32R_GOTPC_LO",
1.42733 -+ "BFD_RELOC_V850_9_PCREL",
1.42734 -+ "BFD_RELOC_V850_22_PCREL",
1.42735 -+ "BFD_RELOC_V850_SDA_16_16_OFFSET",
1.42736 -+ "BFD_RELOC_V850_SDA_15_16_OFFSET",
1.42737 -+ "BFD_RELOC_V850_ZDA_16_16_OFFSET",
1.42738 -+ "BFD_RELOC_V850_ZDA_15_16_OFFSET",
1.42739 -+ "BFD_RELOC_V850_TDA_6_8_OFFSET",
1.42740 -+ "BFD_RELOC_V850_TDA_7_8_OFFSET",
1.42741 -+ "BFD_RELOC_V850_TDA_7_7_OFFSET",
1.42742 -+ "BFD_RELOC_V850_TDA_16_16_OFFSET",
1.42743 -+ "BFD_RELOC_V850_TDA_4_5_OFFSET",
1.42744 -+ "BFD_RELOC_V850_TDA_4_4_OFFSET",
1.42745 -+ "BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET",
1.42746 -+ "BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET",
1.42747 -+ "BFD_RELOC_V850_CALLT_6_7_OFFSET",
1.42748 -+ "BFD_RELOC_V850_CALLT_16_16_OFFSET",
1.42749 -+ "BFD_RELOC_V850_LONGCALL",
1.42750 -+ "BFD_RELOC_V850_LONGJUMP",
1.42751 -+ "BFD_RELOC_V850_ALIGN",
1.42752 -+ "BFD_RELOC_V850_LO16_SPLIT_OFFSET",
1.42753 -+ "BFD_RELOC_MN10300_32_PCREL",
1.42754 -+ "BFD_RELOC_MN10300_16_PCREL",
1.42755 -+ "BFD_RELOC_TIC30_LDP",
1.42756 -+ "BFD_RELOC_TIC54X_PARTLS7",
1.42757 -+ "BFD_RELOC_TIC54X_PARTMS9",
1.42758 -+ "BFD_RELOC_TIC54X_23",
1.42759 -+ "BFD_RELOC_TIC54X_16_OF_23",
1.42760 -+ "BFD_RELOC_TIC54X_MS7_OF_23",
1.42761 -+ "BFD_RELOC_FR30_48",
1.42762 -+ "BFD_RELOC_FR30_20",
1.42763 -+ "BFD_RELOC_FR30_6_IN_4",
1.42764 -+ "BFD_RELOC_FR30_8_IN_8",
1.42765 -+ "BFD_RELOC_FR30_9_IN_8",
1.42766 -+ "BFD_RELOC_FR30_10_IN_8",
1.42767 -+ "BFD_RELOC_FR30_9_PCREL",
1.42768 -+ "BFD_RELOC_FR30_12_PCREL",
1.42769 -+ "BFD_RELOC_MCORE_PCREL_IMM8BY4",
1.42770 -+ "BFD_RELOC_MCORE_PCREL_IMM11BY2",
1.42771 -+ "BFD_RELOC_MCORE_PCREL_IMM4BY2",
1.42772 -+ "BFD_RELOC_MCORE_PCREL_32",
1.42773 -+ "BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2",
1.42774 -+ "BFD_RELOC_MCORE_RVA",
1.42775 -+ "BFD_RELOC_MEP_8",
1.42776 -+ "BFD_RELOC_MEP_16",
1.42777 -+ "BFD_RELOC_MEP_32",
1.42778 -+ "BFD_RELOC_MEP_PCREL8A2",
1.42779 -+ "BFD_RELOC_MEP_PCREL12A2",
1.42780 -+ "BFD_RELOC_MEP_PCREL17A2",
1.42781 -+ "BFD_RELOC_MEP_PCREL24A2",
1.42782 -+ "BFD_RELOC_MEP_PCABS24A2",
1.42783 -+ "BFD_RELOC_MEP_LOW16",
1.42784 -+ "BFD_RELOC_MEP_HI16U",
1.42785 -+ "BFD_RELOC_MEP_HI16S",
1.42786 -+ "BFD_RELOC_MEP_GPREL",
1.42787 -+ "BFD_RELOC_MEP_TPREL",
1.42788 -+ "BFD_RELOC_MEP_TPREL7",
1.42789 -+ "BFD_RELOC_MEP_TPREL7A2",
1.42790 -+ "BFD_RELOC_MEP_TPREL7A4",
1.42791 -+ "BFD_RELOC_MEP_UIMM24",
1.42792 -+ "BFD_RELOC_MEP_ADDR24A4",
1.42793 -+ "BFD_RELOC_MEP_GNU_VTINHERIT",
1.42794 -+ "BFD_RELOC_MEP_GNU_VTENTRY",
1.42795 -+
1.42796 -+ "BFD_RELOC_MMIX_GETA",
1.42797 -+ "BFD_RELOC_MMIX_GETA_1",
1.42798 -+ "BFD_RELOC_MMIX_GETA_2",
1.42799 -+ "BFD_RELOC_MMIX_GETA_3",
1.42800 -+ "BFD_RELOC_MMIX_CBRANCH",
1.42801 -+ "BFD_RELOC_MMIX_CBRANCH_J",
1.42802 -+ "BFD_RELOC_MMIX_CBRANCH_1",
1.42803 -+ "BFD_RELOC_MMIX_CBRANCH_2",
1.42804 -+ "BFD_RELOC_MMIX_CBRANCH_3",
1.42805 -+ "BFD_RELOC_MMIX_PUSHJ",
1.42806 -+ "BFD_RELOC_MMIX_PUSHJ_1",
1.42807 -+ "BFD_RELOC_MMIX_PUSHJ_2",
1.42808 -+ "BFD_RELOC_MMIX_PUSHJ_3",
1.42809 -+ "BFD_RELOC_MMIX_PUSHJ_STUBBABLE",
1.42810 -+ "BFD_RELOC_MMIX_JMP",
1.42811 -+ "BFD_RELOC_MMIX_JMP_1",
1.42812 -+ "BFD_RELOC_MMIX_JMP_2",
1.42813 -+ "BFD_RELOC_MMIX_JMP_3",
1.42814 -+ "BFD_RELOC_MMIX_ADDR19",
1.42815 -+ "BFD_RELOC_MMIX_ADDR27",
1.42816 -+ "BFD_RELOC_MMIX_REG_OR_BYTE",
1.42817 -+ "BFD_RELOC_MMIX_REG",
1.42818 -+ "BFD_RELOC_MMIX_BASE_PLUS_OFFSET",
1.42819 -+ "BFD_RELOC_MMIX_LOCAL",
1.42820 -+ "BFD_RELOC_AVR_7_PCREL",
1.42821 -+ "BFD_RELOC_AVR_13_PCREL",
1.42822 -+ "BFD_RELOC_AVR_16_PM",
1.42823 -+ "BFD_RELOC_AVR_LO8_LDI",
1.42824 -+ "BFD_RELOC_AVR_HI8_LDI",
1.42825 -+ "BFD_RELOC_AVR_HH8_LDI",
1.42826 -+ "BFD_RELOC_AVR_MS8_LDI",
1.42827 -+ "BFD_RELOC_AVR_LO8_LDI_NEG",
1.42828 -+ "BFD_RELOC_AVR_HI8_LDI_NEG",
1.42829 -+ "BFD_RELOC_AVR_HH8_LDI_NEG",
1.42830 -+ "BFD_RELOC_AVR_MS8_LDI_NEG",
1.42831 -+ "BFD_RELOC_AVR_LO8_LDI_PM",
1.42832 -+ "BFD_RELOC_AVR_LO8_LDI_GS",
1.42833 -+ "BFD_RELOC_AVR_HI8_LDI_PM",
1.42834 -+ "BFD_RELOC_AVR_HI8_LDI_GS",
1.42835 -+ "BFD_RELOC_AVR_HH8_LDI_PM",
1.42836 -+ "BFD_RELOC_AVR_LO8_LDI_PM_NEG",
1.42837 -+ "BFD_RELOC_AVR_HI8_LDI_PM_NEG",
1.42838 -+ "BFD_RELOC_AVR_HH8_LDI_PM_NEG",
1.42839 -+ "BFD_RELOC_AVR_CALL",
1.42840 -+ "BFD_RELOC_AVR_LDI",
1.42841 -+ "BFD_RELOC_AVR_6",
1.42842 -+ "BFD_RELOC_AVR_6_ADIW",
1.42843 -+ "BFD_RELOC_AVR32_DIFF32",
1.42844 -+ "BFD_RELOC_AVR32_DIFF16",
1.42845 -+ "BFD_RELOC_AVR32_DIFF8",
1.42846 -+ "BFD_RELOC_AVR32_GOT32",
1.42847 -+ "BFD_RELOC_AVR32_GOT16",
1.42848 -+ "BFD_RELOC_AVR32_GOT8",
1.42849 -+ "BFD_RELOC_AVR32_21S",
1.42850 -+ "BFD_RELOC_AVR32_16U",
1.42851 -+ "BFD_RELOC_AVR32_16S",
1.42852 -+ "BFD_RELOC_AVR32_SUB5",
1.42853 -+ "BFD_RELOC_AVR32_8S_EXT",
1.42854 -+ "BFD_RELOC_AVR32_8S",
1.42855 -+ "BFD_RELOC_AVR32_15S",
1.42856 -+ "BFD_RELOC_AVR32_22H_PCREL",
1.42857 -+ "BFD_RELOC_AVR32_18W_PCREL",
1.42858 -+ "BFD_RELOC_AVR32_16B_PCREL",
1.42859 -+ "BFD_RELOC_AVR32_16N_PCREL",
1.42860 -+ "BFD_RELOC_AVR32_14UW_PCREL",
1.42861 -+ "BFD_RELOC_AVR32_11H_PCREL",
1.42862 -+ "BFD_RELOC_AVR32_10UW_PCREL",
1.42863 -+ "BFD_RELOC_AVR32_9H_PCREL",
1.42864 -+ "BFD_RELOC_AVR32_9UW_PCREL",
1.42865 -+ "BFD_RELOC_AVR32_GOTPC",
1.42866 -+ "BFD_RELOC_AVR32_GOTCALL",
1.42867 -+ "BFD_RELOC_AVR32_LDA_GOT",
1.42868 -+ "BFD_RELOC_AVR32_GOT21S",
1.42869 -+ "BFD_RELOC_AVR32_GOT18SW",
1.42870 -+ "BFD_RELOC_AVR32_GOT16S",
1.42871 -+ "BFD_RELOC_AVR32_32_CPENT",
1.42872 -+ "BFD_RELOC_AVR32_CPCALL",
1.42873 -+ "BFD_RELOC_AVR32_16_CP",
1.42874 -+ "BFD_RELOC_AVR32_9W_CP",
1.42875 -+ "BFD_RELOC_AVR32_ALIGN",
1.42876 -+ "BFD_RELOC_AVR32_14UW",
1.42877 -+ "BFD_RELOC_AVR32_10UW",
1.42878 -+ "BFD_RELOC_AVR32_10SW",
1.42879 -+ "BFD_RELOC_AVR32_STHH_W",
1.42880 -+ "BFD_RELOC_AVR32_7UW",
1.42881 -+ "BFD_RELOC_AVR32_6S",
1.42882 -+ "BFD_RELOC_AVR32_6UW",
1.42883 -+ "BFD_RELOC_AVR32_4UH",
1.42884 -+ "BFD_RELOC_AVR32_3U",
1.42885 -+ "BFD_RELOC_390_12",
1.42886 -+ "BFD_RELOC_390_GOT12",
1.42887 -+ "BFD_RELOC_390_PLT32",
1.42888 -+ "BFD_RELOC_390_COPY",
1.42889 -+ "BFD_RELOC_390_GLOB_DAT",
1.42890 -+ "BFD_RELOC_390_JMP_SLOT",
1.42891 -+ "BFD_RELOC_390_RELATIVE",
1.42892 -+ "BFD_RELOC_390_GOTPC",
1.42893 -+ "BFD_RELOC_390_GOT16",
1.42894 -+ "BFD_RELOC_390_PC16DBL",
1.42895 -+ "BFD_RELOC_390_PLT16DBL",
1.42896 -+ "BFD_RELOC_390_PC32DBL",
1.42897 -+ "BFD_RELOC_390_PLT32DBL",
1.42898 -+ "BFD_RELOC_390_GOTPCDBL",
1.42899 -+ "BFD_RELOC_390_GOT64",
1.42900 -+ "BFD_RELOC_390_PLT64",
1.42901 -+ "BFD_RELOC_390_GOTENT",
1.42902 -+ "BFD_RELOC_390_GOTOFF64",
1.42903 -+ "BFD_RELOC_390_GOTPLT12",
1.42904 -+ "BFD_RELOC_390_GOTPLT16",
1.42905 -+ "BFD_RELOC_390_GOTPLT32",
1.42906 -+ "BFD_RELOC_390_GOTPLT64",
1.42907 -+ "BFD_RELOC_390_GOTPLTENT",
1.42908 -+ "BFD_RELOC_390_PLTOFF16",
1.42909 -+ "BFD_RELOC_390_PLTOFF32",
1.42910 -+ "BFD_RELOC_390_PLTOFF64",
1.42911 -+ "BFD_RELOC_390_TLS_LOAD",
1.42912 -+ "BFD_RELOC_390_TLS_GDCALL",
1.42913 -+ "BFD_RELOC_390_TLS_LDCALL",
1.42914 -+ "BFD_RELOC_390_TLS_GD32",
1.42915 -+ "BFD_RELOC_390_TLS_GD64",
1.42916 -+ "BFD_RELOC_390_TLS_GOTIE12",
1.42917 -+ "BFD_RELOC_390_TLS_GOTIE32",
1.42918 -+ "BFD_RELOC_390_TLS_GOTIE64",
1.42919 -+ "BFD_RELOC_390_TLS_LDM32",
1.42920 -+ "BFD_RELOC_390_TLS_LDM64",
1.42921 -+ "BFD_RELOC_390_TLS_IE32",
1.42922 -+ "BFD_RELOC_390_TLS_IE64",
1.42923 -+ "BFD_RELOC_390_TLS_IEENT",
1.42924 -+ "BFD_RELOC_390_TLS_LE32",
1.42925 -+ "BFD_RELOC_390_TLS_LE64",
1.42926 -+ "BFD_RELOC_390_TLS_LDO32",
1.42927 -+ "BFD_RELOC_390_TLS_LDO64",
1.42928 -+ "BFD_RELOC_390_TLS_DTPMOD",
1.42929 -+ "BFD_RELOC_390_TLS_DTPOFF",
1.42930 -+ "BFD_RELOC_390_TLS_TPOFF",
1.42931 -+ "BFD_RELOC_390_20",
1.42932 -+ "BFD_RELOC_390_GOT20",
1.42933 -+ "BFD_RELOC_390_GOTPLT20",
1.42934 -+ "BFD_RELOC_390_TLS_GOTIE20",
1.42935 -+ "BFD_RELOC_SCORE_DUMMY1",
1.42936 -+ "BFD_RELOC_SCORE_GPREL15",
1.42937 -+ "BFD_RELOC_SCORE_DUMMY2",
1.42938 -+ "BFD_RELOC_SCORE_JMP",
1.42939 -+ "BFD_RELOC_SCORE_BRANCH",
1.42940 -+ "BFD_RELOC_SCORE16_JMP",
1.42941 -+ "BFD_RELOC_SCORE16_BRANCH",
1.42942 -+ "BFD_RELOC_SCORE_GOT15",
1.42943 -+ "BFD_RELOC_SCORE_GOT_LO16",
1.42944 -+ "BFD_RELOC_SCORE_CALL15",
1.42945 -+ "BFD_RELOC_SCORE_DUMMY_HI16",
1.42946 -+ "BFD_RELOC_IP2K_FR9",
1.42947 -+ "BFD_RELOC_IP2K_BANK",
1.42948 -+ "BFD_RELOC_IP2K_ADDR16CJP",
1.42949 -+ "BFD_RELOC_IP2K_PAGE3",
1.42950 -+ "BFD_RELOC_IP2K_LO8DATA",
1.42951 -+ "BFD_RELOC_IP2K_HI8DATA",
1.42952 -+ "BFD_RELOC_IP2K_EX8DATA",
1.42953 -+ "BFD_RELOC_IP2K_LO8INSN",
1.42954 -+ "BFD_RELOC_IP2K_HI8INSN",
1.42955 -+ "BFD_RELOC_IP2K_PC_SKIP",
1.42956 -+ "BFD_RELOC_IP2K_TEXT",
1.42957 -+ "BFD_RELOC_IP2K_FR_OFFSET",
1.42958 -+ "BFD_RELOC_VPE4KMATH_DATA",
1.42959 -+ "BFD_RELOC_VPE4KMATH_INSN",
1.42960 -+ "BFD_RELOC_VTABLE_INHERIT",
1.42961 -+ "BFD_RELOC_VTABLE_ENTRY",
1.42962 -+ "BFD_RELOC_IA64_IMM14",
1.42963 -+ "BFD_RELOC_IA64_IMM22",
1.42964 -+ "BFD_RELOC_IA64_IMM64",
1.42965 -+ "BFD_RELOC_IA64_DIR32MSB",
1.42966 -+ "BFD_RELOC_IA64_DIR32LSB",
1.42967 -+ "BFD_RELOC_IA64_DIR64MSB",
1.42968 -+ "BFD_RELOC_IA64_DIR64LSB",
1.42969 -+ "BFD_RELOC_IA64_GPREL22",
1.42970 -+ "BFD_RELOC_IA64_GPREL64I",
1.42971 -+ "BFD_RELOC_IA64_GPREL32MSB",
1.42972 -+ "BFD_RELOC_IA64_GPREL32LSB",
1.42973 -+ "BFD_RELOC_IA64_GPREL64MSB",
1.42974 -+ "BFD_RELOC_IA64_GPREL64LSB",
1.42975 -+ "BFD_RELOC_IA64_LTOFF22",
1.42976 -+ "BFD_RELOC_IA64_LTOFF64I",
1.42977 -+ "BFD_RELOC_IA64_PLTOFF22",
1.42978 -+ "BFD_RELOC_IA64_PLTOFF64I",
1.42979 -+ "BFD_RELOC_IA64_PLTOFF64MSB",
1.42980 -+ "BFD_RELOC_IA64_PLTOFF64LSB",
1.42981 -+ "BFD_RELOC_IA64_FPTR64I",
1.42982 -+ "BFD_RELOC_IA64_FPTR32MSB",
1.42983 -+ "BFD_RELOC_IA64_FPTR32LSB",
1.42984 -+ "BFD_RELOC_IA64_FPTR64MSB",
1.42985 -+ "BFD_RELOC_IA64_FPTR64LSB",
1.42986 -+ "BFD_RELOC_IA64_PCREL21B",
1.42987 -+ "BFD_RELOC_IA64_PCREL21BI",
1.42988 -+ "BFD_RELOC_IA64_PCREL21M",
1.42989 -+ "BFD_RELOC_IA64_PCREL21F",
1.42990 -+ "BFD_RELOC_IA64_PCREL22",
1.42991 -+ "BFD_RELOC_IA64_PCREL60B",
1.42992 -+ "BFD_RELOC_IA64_PCREL64I",
1.42993 -+ "BFD_RELOC_IA64_PCREL32MSB",
1.42994 -+ "BFD_RELOC_IA64_PCREL32LSB",
1.42995 -+ "BFD_RELOC_IA64_PCREL64MSB",
1.42996 -+ "BFD_RELOC_IA64_PCREL64LSB",
1.42997 -+ "BFD_RELOC_IA64_LTOFF_FPTR22",
1.42998 -+ "BFD_RELOC_IA64_LTOFF_FPTR64I",
1.42999 -+ "BFD_RELOC_IA64_LTOFF_FPTR32MSB",
1.43000 -+ "BFD_RELOC_IA64_LTOFF_FPTR32LSB",
1.43001 -+ "BFD_RELOC_IA64_LTOFF_FPTR64MSB",
1.43002 -+ "BFD_RELOC_IA64_LTOFF_FPTR64LSB",
1.43003 -+ "BFD_RELOC_IA64_SEGREL32MSB",
1.43004 -+ "BFD_RELOC_IA64_SEGREL32LSB",
1.43005 -+ "BFD_RELOC_IA64_SEGREL64MSB",
1.43006 -+ "BFD_RELOC_IA64_SEGREL64LSB",
1.43007 -+ "BFD_RELOC_IA64_SECREL32MSB",
1.43008 -+ "BFD_RELOC_IA64_SECREL32LSB",
1.43009 -+ "BFD_RELOC_IA64_SECREL64MSB",
1.43010 -+ "BFD_RELOC_IA64_SECREL64LSB",
1.43011 -+ "BFD_RELOC_IA64_REL32MSB",
1.43012 -+ "BFD_RELOC_IA64_REL32LSB",
1.43013 -+ "BFD_RELOC_IA64_REL64MSB",
1.43014 -+ "BFD_RELOC_IA64_REL64LSB",
1.43015 -+ "BFD_RELOC_IA64_LTV32MSB",
1.43016 -+ "BFD_RELOC_IA64_LTV32LSB",
1.43017 -+ "BFD_RELOC_IA64_LTV64MSB",
1.43018 -+ "BFD_RELOC_IA64_LTV64LSB",
1.43019 -+ "BFD_RELOC_IA64_IPLTMSB",
1.43020 -+ "BFD_RELOC_IA64_IPLTLSB",
1.43021 -+ "BFD_RELOC_IA64_COPY",
1.43022 -+ "BFD_RELOC_IA64_LTOFF22X",
1.43023 -+ "BFD_RELOC_IA64_LDXMOV",
1.43024 -+ "BFD_RELOC_IA64_TPREL14",
1.43025 -+ "BFD_RELOC_IA64_TPREL22",
1.43026 -+ "BFD_RELOC_IA64_TPREL64I",
1.43027 -+ "BFD_RELOC_IA64_TPREL64MSB",
1.43028 -+ "BFD_RELOC_IA64_TPREL64LSB",
1.43029 -+ "BFD_RELOC_IA64_LTOFF_TPREL22",
1.43030 -+ "BFD_RELOC_IA64_DTPMOD64MSB",
1.43031 -+ "BFD_RELOC_IA64_DTPMOD64LSB",
1.43032 -+ "BFD_RELOC_IA64_LTOFF_DTPMOD22",
1.43033 -+ "BFD_RELOC_IA64_DTPREL14",
1.43034 -+ "BFD_RELOC_IA64_DTPREL22",
1.43035 -+ "BFD_RELOC_IA64_DTPREL64I",
1.43036 -+ "BFD_RELOC_IA64_DTPREL32MSB",
1.43037 -+ "BFD_RELOC_IA64_DTPREL32LSB",
1.43038 -+ "BFD_RELOC_IA64_DTPREL64MSB",
1.43039 -+ "BFD_RELOC_IA64_DTPREL64LSB",
1.43040 -+ "BFD_RELOC_IA64_LTOFF_DTPREL22",
1.43041 -+ "BFD_RELOC_M68HC11_HI8",
1.43042 -+ "BFD_RELOC_M68HC11_LO8",
1.43043 -+ "BFD_RELOC_M68HC11_3B",
1.43044 -+ "BFD_RELOC_M68HC11_RL_JUMP",
1.43045 -+ "BFD_RELOC_M68HC11_RL_GROUP",
1.43046 -+ "BFD_RELOC_M68HC11_LO16",
1.43047 -+ "BFD_RELOC_M68HC11_PAGE",
1.43048 -+ "BFD_RELOC_M68HC11_24",
1.43049 -+ "BFD_RELOC_M68HC12_5B",
1.43050 -+ "BFD_RELOC_16C_NUM08",
1.43051 -+ "BFD_RELOC_16C_NUM08_C",
1.43052 -+ "BFD_RELOC_16C_NUM16",
1.43053 -+ "BFD_RELOC_16C_NUM16_C",
1.43054 -+ "BFD_RELOC_16C_NUM32",
1.43055 -+ "BFD_RELOC_16C_NUM32_C",
1.43056 -+ "BFD_RELOC_16C_DISP04",
1.43057 -+ "BFD_RELOC_16C_DISP04_C",
1.43058 -+ "BFD_RELOC_16C_DISP08",
1.43059 -+ "BFD_RELOC_16C_DISP08_C",
1.43060 -+ "BFD_RELOC_16C_DISP16",
1.43061 -+ "BFD_RELOC_16C_DISP16_C",
1.43062 -+ "BFD_RELOC_16C_DISP24",
1.43063 -+ "BFD_RELOC_16C_DISP24_C",
1.43064 -+ "BFD_RELOC_16C_DISP24a",
1.43065 -+ "BFD_RELOC_16C_DISP24a_C",
1.43066 -+ "BFD_RELOC_16C_REG04",
1.43067 -+ "BFD_RELOC_16C_REG04_C",
1.43068 -+ "BFD_RELOC_16C_REG04a",
1.43069 -+ "BFD_RELOC_16C_REG04a_C",
1.43070 -+ "BFD_RELOC_16C_REG14",
1.43071 -+ "BFD_RELOC_16C_REG14_C",
1.43072 -+ "BFD_RELOC_16C_REG16",
1.43073 -+ "BFD_RELOC_16C_REG16_C",
1.43074 -+ "BFD_RELOC_16C_REG20",
1.43075 -+ "BFD_RELOC_16C_REG20_C",
1.43076 -+ "BFD_RELOC_16C_ABS20",
1.43077 -+ "BFD_RELOC_16C_ABS20_C",
1.43078 -+ "BFD_RELOC_16C_ABS24",
1.43079 -+ "BFD_RELOC_16C_ABS24_C",
1.43080 -+ "BFD_RELOC_16C_IMM04",
1.43081 -+ "BFD_RELOC_16C_IMM04_C",
1.43082 -+ "BFD_RELOC_16C_IMM16",
1.43083 -+ "BFD_RELOC_16C_IMM16_C",
1.43084 -+ "BFD_RELOC_16C_IMM20",
1.43085 -+ "BFD_RELOC_16C_IMM20_C",
1.43086 -+ "BFD_RELOC_16C_IMM24",
1.43087 -+ "BFD_RELOC_16C_IMM24_C",
1.43088 -+ "BFD_RELOC_16C_IMM32",
1.43089 -+ "BFD_RELOC_16C_IMM32_C",
1.43090 -+ "BFD_RELOC_CR16_NUM8",
1.43091 -+ "BFD_RELOC_CR16_NUM16",
1.43092 -+ "BFD_RELOC_CR16_NUM32",
1.43093 -+ "BFD_RELOC_CR16_NUM32a",
1.43094 -+ "BFD_RELOC_CR16_REGREL0",
1.43095 -+ "BFD_RELOC_CR16_REGREL4",
1.43096 -+ "BFD_RELOC_CR16_REGREL4a",
1.43097 -+ "BFD_RELOC_CR16_REGREL14",
1.43098 -+ "BFD_RELOC_CR16_REGREL14a",
1.43099 -+ "BFD_RELOC_CR16_REGREL16",
1.43100 -+ "BFD_RELOC_CR16_REGREL20",
1.43101 -+ "BFD_RELOC_CR16_REGREL20a",
1.43102 -+ "BFD_RELOC_CR16_ABS20",
1.43103 -+ "BFD_RELOC_CR16_ABS24",
1.43104 -+ "BFD_RELOC_CR16_IMM4",
1.43105 -+ "BFD_RELOC_CR16_IMM8",
1.43106 -+ "BFD_RELOC_CR16_IMM16",
1.43107 -+ "BFD_RELOC_CR16_IMM20",
1.43108 -+ "BFD_RELOC_CR16_IMM24",
1.43109 -+ "BFD_RELOC_CR16_IMM32",
1.43110 -+ "BFD_RELOC_CR16_IMM32a",
1.43111 -+ "BFD_RELOC_CR16_DISP4",
1.43112 -+ "BFD_RELOC_CR16_DISP8",
1.43113 -+ "BFD_RELOC_CR16_DISP16",
1.43114 -+ "BFD_RELOC_CR16_DISP20",
1.43115 -+ "BFD_RELOC_CR16_DISP24",
1.43116 -+ "BFD_RELOC_CR16_DISP24a",
1.43117 -+ "BFD_RELOC_CRX_REL4",
1.43118 -+ "BFD_RELOC_CRX_REL8",
1.43119 -+ "BFD_RELOC_CRX_REL8_CMP",
1.43120 -+ "BFD_RELOC_CRX_REL16",
1.43121 -+ "BFD_RELOC_CRX_REL24",
1.43122 -+ "BFD_RELOC_CRX_REL32",
1.43123 -+ "BFD_RELOC_CRX_REGREL12",
1.43124 -+ "BFD_RELOC_CRX_REGREL22",
1.43125 -+ "BFD_RELOC_CRX_REGREL28",
1.43126 -+ "BFD_RELOC_CRX_REGREL32",
1.43127 -+ "BFD_RELOC_CRX_ABS16",
1.43128 -+ "BFD_RELOC_CRX_ABS32",
1.43129 -+ "BFD_RELOC_CRX_NUM8",
1.43130 -+ "BFD_RELOC_CRX_NUM16",
1.43131 -+ "BFD_RELOC_CRX_NUM32",
1.43132 -+ "BFD_RELOC_CRX_IMM16",
1.43133 -+ "BFD_RELOC_CRX_IMM32",
1.43134 -+ "BFD_RELOC_CRX_SWITCH8",
1.43135 -+ "BFD_RELOC_CRX_SWITCH16",
1.43136 -+ "BFD_RELOC_CRX_SWITCH32",
1.43137 -+ "BFD_RELOC_CRIS_BDISP8",
1.43138 -+ "BFD_RELOC_CRIS_UNSIGNED_5",
1.43139 -+ "BFD_RELOC_CRIS_SIGNED_6",
1.43140 -+ "BFD_RELOC_CRIS_UNSIGNED_6",
1.43141 -+ "BFD_RELOC_CRIS_SIGNED_8",
1.43142 -+ "BFD_RELOC_CRIS_UNSIGNED_8",
1.43143 -+ "BFD_RELOC_CRIS_SIGNED_16",
1.43144 -+ "BFD_RELOC_CRIS_UNSIGNED_16",
1.43145 -+ "BFD_RELOC_CRIS_LAPCQ_OFFSET",
1.43146 -+ "BFD_RELOC_CRIS_UNSIGNED_4",
1.43147 -+ "BFD_RELOC_CRIS_COPY",
1.43148 -+ "BFD_RELOC_CRIS_GLOB_DAT",
1.43149 -+ "BFD_RELOC_CRIS_JUMP_SLOT",
1.43150 -+ "BFD_RELOC_CRIS_RELATIVE",
1.43151 -+ "BFD_RELOC_CRIS_32_GOT",
1.43152 -+ "BFD_RELOC_CRIS_16_GOT",
1.43153 -+ "BFD_RELOC_CRIS_32_GOTPLT",
1.43154 -+ "BFD_RELOC_CRIS_16_GOTPLT",
1.43155 -+ "BFD_RELOC_CRIS_32_GOTREL",
1.43156 -+ "BFD_RELOC_CRIS_32_PLT_GOTREL",
1.43157 -+ "BFD_RELOC_CRIS_32_PLT_PCREL",
1.43158 -+ "BFD_RELOC_860_COPY",
1.43159 -+ "BFD_RELOC_860_GLOB_DAT",
1.43160 -+ "BFD_RELOC_860_JUMP_SLOT",
1.43161 -+ "BFD_RELOC_860_RELATIVE",
1.43162 -+ "BFD_RELOC_860_PC26",
1.43163 -+ "BFD_RELOC_860_PLT26",
1.43164 -+ "BFD_RELOC_860_PC16",
1.43165 -+ "BFD_RELOC_860_LOW0",
1.43166 -+ "BFD_RELOC_860_SPLIT0",
1.43167 -+ "BFD_RELOC_860_LOW1",
1.43168 -+ "BFD_RELOC_860_SPLIT1",
1.43169 -+ "BFD_RELOC_860_LOW2",
1.43170 -+ "BFD_RELOC_860_SPLIT2",
1.43171 -+ "BFD_RELOC_860_LOW3",
1.43172 -+ "BFD_RELOC_860_LOGOT0",
1.43173 -+ "BFD_RELOC_860_SPGOT0",
1.43174 -+ "BFD_RELOC_860_LOGOT1",
1.43175 -+ "BFD_RELOC_860_SPGOT1",
1.43176 -+ "BFD_RELOC_860_LOGOTOFF0",
1.43177 -+ "BFD_RELOC_860_SPGOTOFF0",
1.43178 -+ "BFD_RELOC_860_LOGOTOFF1",
1.43179 -+ "BFD_RELOC_860_SPGOTOFF1",
1.43180 -+ "BFD_RELOC_860_LOGOTOFF2",
1.43181 -+ "BFD_RELOC_860_LOGOTOFF3",
1.43182 -+ "BFD_RELOC_860_LOPC",
1.43183 -+ "BFD_RELOC_860_HIGHADJ",
1.43184 -+ "BFD_RELOC_860_HAGOT",
1.43185 -+ "BFD_RELOC_860_HAGOTOFF",
1.43186 -+ "BFD_RELOC_860_HAPC",
1.43187 -+ "BFD_RELOC_860_HIGH",
1.43188 -+ "BFD_RELOC_860_HIGOT",
1.43189 -+ "BFD_RELOC_860_HIGOTOFF",
1.43190 -+ "BFD_RELOC_OPENRISC_ABS_26",
1.43191 -+ "BFD_RELOC_OPENRISC_REL_26",
1.43192 -+ "BFD_RELOC_H8_DIR16A8",
1.43193 -+ "BFD_RELOC_H8_DIR16R8",
1.43194 -+ "BFD_RELOC_H8_DIR24A8",
1.43195 -+ "BFD_RELOC_H8_DIR24R8",
1.43196 -+ "BFD_RELOC_H8_DIR32A16",
1.43197 -+ "BFD_RELOC_XSTORMY16_REL_12",
1.43198 -+ "BFD_RELOC_XSTORMY16_12",
1.43199 -+ "BFD_RELOC_XSTORMY16_24",
1.43200 -+ "BFD_RELOC_XSTORMY16_FPTR16",
1.43201 -+ "BFD_RELOC_RELC",
1.43202 -+
1.43203 -+ "BFD_RELOC_XC16X_PAG",
1.43204 -+ "BFD_RELOC_XC16X_POF",
1.43205 -+ "BFD_RELOC_XC16X_SEG",
1.43206 -+ "BFD_RELOC_XC16X_SOF",
1.43207 -+ "BFD_RELOC_VAX_GLOB_DAT",
1.43208 -+ "BFD_RELOC_VAX_JMP_SLOT",
1.43209 -+ "BFD_RELOC_VAX_RELATIVE",
1.43210 -+ "BFD_RELOC_MT_PC16",
1.43211 -+ "BFD_RELOC_MT_HI16",
1.43212 -+ "BFD_RELOC_MT_LO16",
1.43213 -+ "BFD_RELOC_MT_GNU_VTINHERIT",
1.43214 -+ "BFD_RELOC_MT_GNU_VTENTRY",
1.43215 -+ "BFD_RELOC_MT_PCINSN8",
1.43216 -+ "BFD_RELOC_MSP430_10_PCREL",
1.43217 -+ "BFD_RELOC_MSP430_16_PCREL",
1.43218 -+ "BFD_RELOC_MSP430_16",
1.43219 -+ "BFD_RELOC_MSP430_16_PCREL_BYTE",
1.43220 -+ "BFD_RELOC_MSP430_16_BYTE",
1.43221 -+ "BFD_RELOC_MSP430_2X_PCREL",
1.43222 -+ "BFD_RELOC_MSP430_RL_PCREL",
1.43223 -+ "BFD_RELOC_IQ2000_OFFSET_16",
1.43224 -+ "BFD_RELOC_IQ2000_OFFSET_21",
1.43225 -+ "BFD_RELOC_IQ2000_UHI16",
1.43226 -+ "BFD_RELOC_XTENSA_RTLD",
1.43227 -+ "BFD_RELOC_XTENSA_GLOB_DAT",
1.43228 -+ "BFD_RELOC_XTENSA_JMP_SLOT",
1.43229 -+ "BFD_RELOC_XTENSA_RELATIVE",
1.43230 -+ "BFD_RELOC_XTENSA_PLT",
1.43231 -+ "BFD_RELOC_XTENSA_DIFF8",
1.43232 -+ "BFD_RELOC_XTENSA_DIFF16",
1.43233 -+ "BFD_RELOC_XTENSA_DIFF32",
1.43234 -+ "BFD_RELOC_XTENSA_SLOT0_OP",
1.43235 -+ "BFD_RELOC_XTENSA_SLOT1_OP",
1.43236 -+ "BFD_RELOC_XTENSA_SLOT2_OP",
1.43237 -+ "BFD_RELOC_XTENSA_SLOT3_OP",
1.43238 -+ "BFD_RELOC_XTENSA_SLOT4_OP",
1.43239 -+ "BFD_RELOC_XTENSA_SLOT5_OP",
1.43240 -+ "BFD_RELOC_XTENSA_SLOT6_OP",
1.43241 -+ "BFD_RELOC_XTENSA_SLOT7_OP",
1.43242 -+ "BFD_RELOC_XTENSA_SLOT8_OP",
1.43243 -+ "BFD_RELOC_XTENSA_SLOT9_OP",
1.43244 -+ "BFD_RELOC_XTENSA_SLOT10_OP",
1.43245 -+ "BFD_RELOC_XTENSA_SLOT11_OP",
1.43246 -+ "BFD_RELOC_XTENSA_SLOT12_OP",
1.43247 -+ "BFD_RELOC_XTENSA_SLOT13_OP",
1.43248 -+ "BFD_RELOC_XTENSA_SLOT14_OP",
1.43249 -+ "BFD_RELOC_XTENSA_SLOT0_ALT",
1.43250 -+ "BFD_RELOC_XTENSA_SLOT1_ALT",
1.43251 -+ "BFD_RELOC_XTENSA_SLOT2_ALT",
1.43252 -+ "BFD_RELOC_XTENSA_SLOT3_ALT",
1.43253 -+ "BFD_RELOC_XTENSA_SLOT4_ALT",
1.43254 -+ "BFD_RELOC_XTENSA_SLOT5_ALT",
1.43255 -+ "BFD_RELOC_XTENSA_SLOT6_ALT",
1.43256 -+ "BFD_RELOC_XTENSA_SLOT7_ALT",
1.43257 -+ "BFD_RELOC_XTENSA_SLOT8_ALT",
1.43258 -+ "BFD_RELOC_XTENSA_SLOT9_ALT",
1.43259 -+ "BFD_RELOC_XTENSA_SLOT10_ALT",
1.43260 -+ "BFD_RELOC_XTENSA_SLOT11_ALT",
1.43261 -+ "BFD_RELOC_XTENSA_SLOT12_ALT",
1.43262 -+ "BFD_RELOC_XTENSA_SLOT13_ALT",
1.43263 -+ "BFD_RELOC_XTENSA_SLOT14_ALT",
1.43264 -+ "BFD_RELOC_XTENSA_OP0",
1.43265 -+ "BFD_RELOC_XTENSA_OP1",
1.43266 -+ "BFD_RELOC_XTENSA_OP2",
1.43267 -+ "BFD_RELOC_XTENSA_ASM_EXPAND",
1.43268 -+ "BFD_RELOC_XTENSA_ASM_SIMPLIFY",
1.43269 -+ "BFD_RELOC_Z80_DISP8",
1.43270 -+ "BFD_RELOC_Z8K_DISP7",
1.43271 -+ "BFD_RELOC_Z8K_CALLR",
1.43272 -+ "BFD_RELOC_Z8K_IMM4L",
1.43273 -+ "@@overflow: BFD_RELOC_UNUSED@@",
1.43274 -+};
1.43275 -+#endif
1.43276 -+
1.43277 -+reloc_howto_type *bfd_default_reloc_type_lookup
1.43278 -+ (bfd *abfd, bfd_reloc_code_real_type code);
1.43279 -+
1.43280 -+bfd_boolean bfd_generic_relax_section
1.43281 -+ (bfd *abfd,
1.43282 -+ asection *section,
1.43283 -+ struct bfd_link_info *,
1.43284 -+ bfd_boolean *);
1.43285 -+
1.43286 -+bfd_boolean bfd_generic_gc_sections
1.43287 -+ (bfd *, struct bfd_link_info *);
1.43288 -+
1.43289 -+bfd_boolean bfd_generic_merge_sections
1.43290 -+ (bfd *, struct bfd_link_info *);
1.43291 -+
1.43292 -+bfd_byte *bfd_generic_get_relocated_section_contents
1.43293 -+ (bfd *abfd,
1.43294 -+ struct bfd_link_info *link_info,
1.43295 -+ struct bfd_link_order *link_order,
1.43296 -+ bfd_byte *data,
1.43297 -+ bfd_boolean relocatable,
1.43298 -+ asymbol **symbols);
1.43299 -+
1.43300 -+/* Extracted from archures.c. */
1.43301 -+extern const bfd_arch_info_type bfd_default_arch_struct;
1.43302 -+bfd_boolean bfd_default_set_arch_mach
1.43303 -+ (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
1.43304 -+
1.43305 -+const bfd_arch_info_type *bfd_default_compatible
1.43306 -+ (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
1.43307 -+
1.43308 -+bfd_boolean bfd_default_scan
1.43309 -+ (const struct bfd_arch_info *info, const char *string);
1.43310 -+
1.43311 -+/* Extracted from elf.c. */
1.43312 -+struct elf_internal_shdr *bfd_elf_find_section (bfd *abfd, char *name);
1.43313 -+
1.43314 ---- /dev/null
1.43315 -+++ b/bfd/doc/libcoff.h
1.43316 -@@ -0,0 +1,936 @@
1.43317 -+/* DO NOT EDIT! -*- buffer-read-only: t -*- This file is automatically
1.43318 -+ generated from "libcoff-in.h" and "coffcode.h".
1.43319 -+ Run "make headers" in your build bfd/ to regenerate. */
1.43320 -+
1.43321 -+/* BFD COFF object file private structure.
1.43322 -+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
1.43323 -+ 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
1.43324 -+ Free Software Foundation, Inc.
1.43325 -+ Written by Cygnus Support.
1.43326 -+
1.43327 -+ This file is part of BFD, the Binary File Descriptor library.
1.43328 -+
1.43329 -+ This program is free software; you can redistribute it and/or modify
1.43330 -+ it under the terms of the GNU General Public License as published by
1.43331 -+ the Free Software Foundation; either version 3 of the License, or
1.43332 -+ (at your option) any later version.
1.43333 -+
1.43334 -+ This program is distributed in the hope that it will be useful,
1.43335 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1.43336 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1.43337 -+ GNU General Public License for more details.
1.43338 -+
1.43339 -+ You should have received a copy of the GNU General Public License
1.43340 -+ along with this program; if not, write to the Free Software
1.43341 -+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
1.43342 -+ MA 02110-1301, USA. */
1.43343 -+
1.43344 -+#include "bfdlink.h"
1.43345 -+
1.43346 -+/* Object file tdata; access macros. */
1.43347 -+
1.43348 -+#define coff_data(bfd) ((bfd)->tdata.coff_obj_data)
1.43349 -+#define exec_hdr(bfd) (coff_data (bfd)->hdr)
1.43350 -+#define obj_pe(bfd) (coff_data (bfd)->pe)
1.43351 -+#define obj_symbols(bfd) (coff_data (bfd)->symbols)
1.43352 -+#define obj_sym_filepos(bfd) (coff_data (bfd)->sym_filepos)
1.43353 -+#define obj_relocbase(bfd) (coff_data (bfd)->relocbase)
1.43354 -+#define obj_raw_syments(bfd) (coff_data (bfd)->raw_syments)
1.43355 -+#define obj_raw_syment_count(bfd) (coff_data (bfd)->raw_syment_count)
1.43356 -+#define obj_convert(bfd) (coff_data (bfd)->conversion_table)
1.43357 -+#define obj_conv_table_size(bfd) (coff_data (bfd)->conv_table_size)
1.43358 -+#define obj_coff_external_syms(bfd) (coff_data (bfd)->external_syms)
1.43359 -+#define obj_coff_keep_syms(bfd) (coff_data (bfd)->keep_syms)
1.43360 -+#define obj_coff_strings(bfd) (coff_data (bfd)->strings)
1.43361 -+#define obj_coff_keep_strings(bfd) (coff_data (bfd)->keep_strings)
1.43362 -+#define obj_coff_sym_hashes(bfd) (coff_data (bfd)->sym_hashes)
1.43363 -+#define obj_coff_strings_written(bfd) (coff_data (bfd)->strings_written)
1.43364 -+#define obj_coff_local_toc_table(bfd) (coff_data (bfd)->local_toc_sym_map)
1.43365 -+
1.43366 -+/* `Tdata' information kept for COFF files. */
1.43367 -+
1.43368 -+typedef struct coff_tdata
1.43369 -+{
1.43370 -+ struct coff_symbol_struct *symbols; /* Symtab for input bfd. */
1.43371 -+ unsigned int *conversion_table;
1.43372 -+ int conv_table_size;
1.43373 -+ file_ptr sym_filepos;
1.43374 -+
1.43375 -+ struct coff_ptr_struct *raw_syments;
1.43376 -+ unsigned long raw_syment_count;
1.43377 -+
1.43378 -+ /* These are only valid once writing has begun. */
1.43379 -+ long int relocbase;
1.43380 -+
1.43381 -+ /* These members communicate important constants about the symbol table
1.43382 -+ to GDB's symbol-reading code. These `constants' unfortunately vary
1.43383 -+ from coff implementation to implementation... */
1.43384 -+ unsigned local_n_btmask;
1.43385 -+ unsigned local_n_btshft;
1.43386 -+ unsigned local_n_tmask;
1.43387 -+ unsigned local_n_tshift;
1.43388 -+ unsigned local_symesz;
1.43389 -+ unsigned local_auxesz;
1.43390 -+ unsigned local_linesz;
1.43391 -+
1.43392 -+ /* The unswapped external symbols. May be NULL. Read by
1.43393 -+ _bfd_coff_get_external_symbols. */
1.43394 -+ void * external_syms;
1.43395 -+ /* If this is TRUE, the external_syms may not be freed. */
1.43396 -+ bfd_boolean keep_syms;
1.43397 -+
1.43398 -+ /* The string table. May be NULL. Read by
1.43399 -+ _bfd_coff_read_string_table. */
1.43400 -+ char *strings;
1.43401 -+ /* If this is TRUE, the strings may not be freed. */
1.43402 -+ bfd_boolean keep_strings;
1.43403 -+ /* If this is TRUE, the strings have been written out already. */
1.43404 -+ bfd_boolean strings_written;
1.43405 -+
1.43406 -+ /* Is this a PE format coff file? */
1.43407 -+ int pe;
1.43408 -+ /* Used by the COFF backend linker. */
1.43409 -+ struct coff_link_hash_entry **sym_hashes;
1.43410 -+
1.43411 -+ /* Used by the pe linker for PowerPC. */
1.43412 -+ int *local_toc_sym_map;
1.43413 -+
1.43414 -+ struct bfd_link_info *link_info;
1.43415 -+
1.43416 -+ /* Used by coff_find_nearest_line. */
1.43417 -+ void * line_info;
1.43418 -+
1.43419 -+ /* A place to stash dwarf2 info for this bfd. */
1.43420 -+ void * dwarf2_find_line_info;
1.43421 -+
1.43422 -+ /* The timestamp from the COFF file header. */
1.43423 -+ long timestamp;
1.43424 -+
1.43425 -+ /* Copy of some of the f_flags bits in the COFF filehdr structure,
1.43426 -+ used by ARM code. */
1.43427 -+ flagword flags;
1.43428 -+
1.43429 -+} coff_data_type;
1.43430 -+
1.43431 -+/* Tdata for pe image files. */
1.43432 -+typedef struct pe_tdata
1.43433 -+{
1.43434 -+ coff_data_type coff;
1.43435 -+ struct internal_extra_pe_aouthdr pe_opthdr;
1.43436 -+ int dll;
1.43437 -+ int has_reloc_section;
1.43438 -+ bfd_boolean (*in_reloc_p) (bfd *, reloc_howto_type *);
1.43439 -+ flagword real_flags;
1.43440 -+ int target_subsystem;
1.43441 -+ bfd_boolean force_minimum_alignment;
1.43442 -+} pe_data_type;
1.43443 -+
1.43444 -+#define pe_data(bfd) ((bfd)->tdata.pe_obj_data)
1.43445 -+
1.43446 -+/* Tdata for XCOFF files. */
1.43447 -+
1.43448 -+struct xcoff_tdata
1.43449 -+{
1.43450 -+ /* Basic COFF information. */
1.43451 -+ coff_data_type coff;
1.43452 -+
1.43453 -+ /* TRUE if this is an XCOFF64 file. */
1.43454 -+ bfd_boolean xcoff64;
1.43455 -+
1.43456 -+ /* TRUE if a large a.out header should be generated. */
1.43457 -+ bfd_boolean full_aouthdr;
1.43458 -+
1.43459 -+ /* TOC value. */
1.43460 -+ bfd_vma toc;
1.43461 -+
1.43462 -+ /* Index of section holding TOC. */
1.43463 -+ int sntoc;
1.43464 -+
1.43465 -+ /* Index of section holding entry point. */
1.43466 -+ int snentry;
1.43467 -+
1.43468 -+ /* .text alignment from optional header. */
1.43469 -+ int text_align_power;
1.43470 -+
1.43471 -+ /* .data alignment from optional header. */
1.43472 -+ int data_align_power;
1.43473 -+
1.43474 -+ /* modtype from optional header. */
1.43475 -+ short modtype;
1.43476 -+
1.43477 -+ /* cputype from optional header. */
1.43478 -+ short cputype;
1.43479 -+
1.43480 -+ /* maxdata from optional header. */
1.43481 -+ bfd_vma maxdata;
1.43482 -+
1.43483 -+ /* maxstack from optional header. */
1.43484 -+ bfd_vma maxstack;
1.43485 -+
1.43486 -+ /* Used by the XCOFF backend linker. */
1.43487 -+ asection **csects;
1.43488 -+ unsigned long *debug_indices;
1.43489 -+ unsigned int import_file_id;
1.43490 -+};
1.43491 -+
1.43492 -+#define xcoff_data(abfd) ((abfd)->tdata.xcoff_obj_data)
1.43493 -+
1.43494 -+/* We take the address of the first element of an asymbol to ensure that the
1.43495 -+ macro is only ever applied to an asymbol. */
1.43496 -+#define coffsymbol(asymbol) ((coff_symbol_type *)(&((asymbol)->the_bfd)))
1.43497 -+
1.43498 -+/* The used_by_bfd field of a section may be set to a pointer to this
1.43499 -+ structure. */
1.43500 -+
1.43501 -+struct coff_section_tdata
1.43502 -+{
1.43503 -+ /* The relocs, swapped into COFF internal form. This may be NULL. */
1.43504 -+ struct internal_reloc *relocs;
1.43505 -+ /* If this is TRUE, the relocs entry may not be freed. */
1.43506 -+ bfd_boolean keep_relocs;
1.43507 -+ /* The section contents. This may be NULL. */
1.43508 -+ bfd_byte *contents;
1.43509 -+ /* If this is TRUE, the contents entry may not be freed. */
1.43510 -+ bfd_boolean keep_contents;
1.43511 -+ /* Information cached by coff_find_nearest_line. */
1.43512 -+ bfd_vma offset;
1.43513 -+ unsigned int i;
1.43514 -+ const char *function;
1.43515 -+ /* Optional information about a COMDAT entry; NULL if not COMDAT. */
1.43516 -+ struct coff_comdat_info *comdat;
1.43517 -+ int line_base;
1.43518 -+ /* A pointer used for .stab linking optimizations. */
1.43519 -+ void * stab_info;
1.43520 -+ /* Available for individual backends. */
1.43521 -+ void * tdata;
1.43522 -+};
1.43523 -+
1.43524 -+/* An accessor macro for the coff_section_tdata structure. */
1.43525 -+#define coff_section_data(abfd, sec) \
1.43526 -+ ((struct coff_section_tdata *) (sec)->used_by_bfd)
1.43527 -+
1.43528 -+/* Tdata for sections in XCOFF files. This is used by the linker. */
1.43529 -+
1.43530 -+struct xcoff_section_tdata
1.43531 -+{
1.43532 -+ /* Used for XCOFF csects created by the linker; points to the real
1.43533 -+ XCOFF section which contains this csect. */
1.43534 -+ asection *enclosing;
1.43535 -+ /* The lineno_count field for the enclosing section, because we are
1.43536 -+ going to clobber it there. */
1.43537 -+ unsigned int lineno_count;
1.43538 -+ /* The first and one past the last symbol indices for symbols used
1.43539 -+ by this csect. */
1.43540 -+ unsigned long first_symndx;
1.43541 -+ unsigned long last_symndx;
1.43542 -+};
1.43543 -+
1.43544 -+/* An accessor macro the xcoff_section_tdata structure. */
1.43545 -+#define xcoff_section_data(abfd, sec) \
1.43546 -+ ((struct xcoff_section_tdata *) coff_section_data ((abfd), (sec))->tdata)
1.43547 -+
1.43548 -+/* Tdata for sections in PE files. */
1.43549 -+
1.43550 -+struct pei_section_tdata
1.43551 -+{
1.43552 -+ /* The virtual size of the section. */
1.43553 -+ bfd_size_type virt_size;
1.43554 -+ /* The PE section flags. */
1.43555 -+ long pe_flags;
1.43556 -+};
1.43557 -+
1.43558 -+/* An accessor macro for the pei_section_tdata structure. */
1.43559 -+#define pei_section_data(abfd, sec) \
1.43560 -+ ((struct pei_section_tdata *) coff_section_data ((abfd), (sec))->tdata)
1.43561 -+
1.43562 -+/* COFF linker hash table entries. */
1.43563 -+
1.43564 -+struct coff_link_hash_entry
1.43565 -+{
1.43566 -+ struct bfd_link_hash_entry root;
1.43567 -+
1.43568 -+ /* Symbol index in output file. Set to -1 initially. Set to -2 if
1.43569 -+ there is a reloc against this symbol. */
1.43570 -+ long indx;
1.43571 -+
1.43572 -+ /* Symbol type. */
1.43573 -+ unsigned short type;
1.43574 -+
1.43575 -+ /* Symbol class. */
1.43576 -+ unsigned char class;
1.43577 -+
1.43578 -+ /* Number of auxiliary entries. */
1.43579 -+ char numaux;
1.43580 -+
1.43581 -+ /* BFD to take auxiliary entries from. */
1.43582 -+ bfd *auxbfd;
1.43583 -+
1.43584 -+ /* Pointer to array of auxiliary entries, if any. */
1.43585 -+ union internal_auxent *aux;
1.43586 -+
1.43587 -+ /* Flag word; legal values follow. */
1.43588 -+ unsigned short coff_link_hash_flags;
1.43589 -+ /* Symbol is a PE section symbol. */
1.43590 -+#define COFF_LINK_HASH_PE_SECTION_SYMBOL (01)
1.43591 -+};
1.43592 -+
1.43593 -+/* COFF linker hash table. */
1.43594 -+
1.43595 -+struct coff_link_hash_table
1.43596 -+{
1.43597 -+ struct bfd_link_hash_table root;
1.43598 -+ /* A pointer to information used to link stabs in sections. */
1.43599 -+ struct stab_info stab_info;
1.43600 -+};
1.43601 -+
1.43602 -+/* Look up an entry in a COFF linker hash table. */
1.43603 -+
1.43604 -+#define coff_link_hash_lookup(table, string, create, copy, follow) \
1.43605 -+ ((struct coff_link_hash_entry *) \
1.43606 -+ bfd_link_hash_lookup (&(table)->root, (string), (create), \
1.43607 -+ (copy), (follow)))
1.43608 -+
1.43609 -+/* Traverse a COFF linker hash table. */
1.43610 -+
1.43611 -+#define coff_link_hash_traverse(table, func, info) \
1.43612 -+ (bfd_link_hash_traverse \
1.43613 -+ (&(table)->root, \
1.43614 -+ (bfd_boolean (*) (struct bfd_link_hash_entry *, void *)) (func), \
1.43615 -+ (info)))
1.43616 -+
1.43617 -+/* Get the COFF linker hash table from a link_info structure. */
1.43618 -+
1.43619 -+#define coff_hash_table(p) ((struct coff_link_hash_table *) ((p)->hash))
1.43620 -+
1.43621 -+/* Functions in coffgen.c. */
1.43622 -+extern const bfd_target *coff_object_p
1.43623 -+ (bfd *);
1.43624 -+extern struct bfd_section *coff_section_from_bfd_index
1.43625 -+ (bfd *, int);
1.43626 -+extern long coff_get_symtab_upper_bound
1.43627 -+ (bfd *);
1.43628 -+extern long coff_canonicalize_symtab
1.43629 -+ (bfd *, asymbol **);
1.43630 -+extern int coff_count_linenumbers
1.43631 -+ (bfd *);
1.43632 -+extern struct coff_symbol_struct *coff_symbol_from
1.43633 -+ (bfd *, asymbol *);
1.43634 -+extern bfd_boolean coff_renumber_symbols
1.43635 -+ (bfd *, int *);
1.43636 -+extern void coff_mangle_symbols
1.43637 -+ (bfd *);
1.43638 -+extern bfd_boolean coff_write_symbols
1.43639 -+ (bfd *);
1.43640 -+extern bfd_boolean coff_write_linenumbers
1.43641 -+ (bfd *);
1.43642 -+extern alent *coff_get_lineno
1.43643 -+ (bfd *, asymbol *);
1.43644 -+extern asymbol *coff_section_symbol
1.43645 -+ (bfd *, char *);
1.43646 -+extern bfd_boolean _bfd_coff_get_external_symbols
1.43647 -+ (bfd *);
1.43648 -+extern const char *_bfd_coff_read_string_table
1.43649 -+ (bfd *);
1.43650 -+extern bfd_boolean _bfd_coff_free_symbols
1.43651 -+ (bfd *);
1.43652 -+extern struct coff_ptr_struct *coff_get_normalized_symtab
1.43653 -+ (bfd *);
1.43654 -+extern long coff_get_reloc_upper_bound
1.43655 -+ (bfd *, sec_ptr);
1.43656 -+extern asymbol *coff_make_empty_symbol
1.43657 -+ (bfd *);
1.43658 -+extern void coff_print_symbol
1.43659 -+ (bfd *, void * filep, asymbol *, bfd_print_symbol_type);
1.43660 -+extern void coff_get_symbol_info
1.43661 -+ (bfd *, asymbol *, symbol_info *ret);
1.43662 -+extern bfd_boolean _bfd_coff_is_local_label_name
1.43663 -+ (bfd *, const char *);
1.43664 -+extern asymbol *coff_bfd_make_debug_symbol
1.43665 -+ (bfd *, void *, unsigned long);
1.43666 -+extern bfd_boolean coff_find_nearest_line
1.43667 -+ (bfd *, asection *, asymbol **, bfd_vma, const char **,
1.43668 -+ const char **, unsigned int *);
1.43669 -+extern bfd_boolean coff_find_inliner_info
1.43670 -+ (bfd *, const char **, const char **, unsigned int *);
1.43671 -+extern int coff_sizeof_headers
1.43672 -+ (bfd *, struct bfd_link_info *);
1.43673 -+extern bfd_boolean bfd_coff_reloc16_relax_section
1.43674 -+ (bfd *, asection *, struct bfd_link_info *, bfd_boolean *);
1.43675 -+extern bfd_byte *bfd_coff_reloc16_get_relocated_section_contents
1.43676 -+ (bfd *, struct bfd_link_info *, struct bfd_link_order *,
1.43677 -+ bfd_byte *, bfd_boolean, asymbol **);
1.43678 -+extern bfd_vma bfd_coff_reloc16_get_value
1.43679 -+ (arelent *, struct bfd_link_info *, asection *);
1.43680 -+extern void bfd_perform_slip
1.43681 -+ (bfd *, unsigned int, asection *, bfd_vma);
1.43682 -+
1.43683 -+/* Functions and types in cofflink.c. */
1.43684 -+
1.43685 -+#define STRING_SIZE_SIZE 4
1.43686 -+
1.43687 -+/* We use a hash table to merge identical enum, struct, and union
1.43688 -+ definitions in the linker. */
1.43689 -+
1.43690 -+/* Information we keep for a single element (an enum value, a
1.43691 -+ structure or union field) in the debug merge hash table. */
1.43692 -+
1.43693 -+struct coff_debug_merge_element
1.43694 -+{
1.43695 -+ /* Next element. */
1.43696 -+ struct coff_debug_merge_element *next;
1.43697 -+
1.43698 -+ /* Name. */
1.43699 -+ const char *name;
1.43700 -+
1.43701 -+ /* Type. */
1.43702 -+ unsigned int type;
1.43703 -+
1.43704 -+ /* Symbol index for complex type. */
1.43705 -+ long tagndx;
1.43706 -+};
1.43707 -+
1.43708 -+/* A linked list of debug merge entries for a given name. */
1.43709 -+
1.43710 -+struct coff_debug_merge_type
1.43711 -+{
1.43712 -+ /* Next type with the same name. */
1.43713 -+ struct coff_debug_merge_type *next;
1.43714 -+
1.43715 -+ /* Class of type. */
1.43716 -+ int class;
1.43717 -+
1.43718 -+ /* Symbol index where this type is defined. */
1.43719 -+ long indx;
1.43720 -+
1.43721 -+ /* List of elements. */
1.43722 -+ struct coff_debug_merge_element *elements;
1.43723 -+};
1.43724 -+
1.43725 -+/* Information we store in the debug merge hash table. */
1.43726 -+
1.43727 -+struct coff_debug_merge_hash_entry
1.43728 -+{
1.43729 -+ struct bfd_hash_entry root;
1.43730 -+
1.43731 -+ /* A list of types with this name. */
1.43732 -+ struct coff_debug_merge_type *types;
1.43733 -+};
1.43734 -+
1.43735 -+/* The debug merge hash table. */
1.43736 -+
1.43737 -+struct coff_debug_merge_hash_table
1.43738 -+{
1.43739 -+ struct bfd_hash_table root;
1.43740 -+};
1.43741 -+
1.43742 -+/* Initialize a COFF debug merge hash table. */
1.43743 -+
1.43744 -+#define coff_debug_merge_hash_table_init(table) \
1.43745 -+ (bfd_hash_table_init (&(table)->root, _bfd_coff_debug_merge_hash_newfunc, \
1.43746 -+ sizeof (struct coff_debug_merge_hash_entry)))
1.43747 -+
1.43748 -+/* Free a COFF debug merge hash table. */
1.43749 -+
1.43750 -+#define coff_debug_merge_hash_table_free(table) \
1.43751 -+ (bfd_hash_table_free (&(table)->root))
1.43752 -+
1.43753 -+/* Look up an entry in a COFF debug merge hash table. */
1.43754 -+
1.43755 -+#define coff_debug_merge_hash_lookup(table, string, create, copy) \
1.43756 -+ ((struct coff_debug_merge_hash_entry *) \
1.43757 -+ bfd_hash_lookup (&(table)->root, (string), (create), (copy)))
1.43758 -+
1.43759 -+/* Information we keep for each section in the output file when doing
1.43760 -+ a relocatable link. */
1.43761 -+
1.43762 -+struct coff_link_section_info
1.43763 -+{
1.43764 -+ /* The relocs to be output. */
1.43765 -+ struct internal_reloc *relocs;
1.43766 -+ /* For each reloc against a global symbol whose index was not known
1.43767 -+ when the reloc was handled, the global hash table entry. */
1.43768 -+ struct coff_link_hash_entry **rel_hashes;
1.43769 -+};
1.43770 -+
1.43771 -+/* Information that we pass around while doing the final link step. */
1.43772 -+
1.43773 -+struct coff_final_link_info
1.43774 -+{
1.43775 -+ /* General link information. */
1.43776 -+ struct bfd_link_info *info;
1.43777 -+ /* Output BFD. */
1.43778 -+ bfd *output_bfd;
1.43779 -+ /* Used to indicate failure in traversal routine. */
1.43780 -+ bfd_boolean failed;
1.43781 -+ /* If doing "task linking" set only during the time when we want the
1.43782 -+ global symbol writer to convert the storage class of defined global
1.43783 -+ symbols from global to static. */
1.43784 -+ bfd_boolean global_to_static;
1.43785 -+ /* Hash table for long symbol names. */
1.43786 -+ struct bfd_strtab_hash *strtab;
1.43787 -+ /* When doing a relocatable link, an array of information kept for
1.43788 -+ each output section, indexed by the target_index field. */
1.43789 -+ struct coff_link_section_info *section_info;
1.43790 -+ /* Symbol index of last C_FILE symbol (-1 if none). */
1.43791 -+ long last_file_index;
1.43792 -+ /* Contents of last C_FILE symbol. */
1.43793 -+ struct internal_syment last_file;
1.43794 -+ /* Symbol index of first aux entry of last .bf symbol with an empty
1.43795 -+ endndx field (-1 if none). */
1.43796 -+ long last_bf_index;
1.43797 -+ /* Contents of last_bf_index aux entry. */
1.43798 -+ union internal_auxent last_bf;
1.43799 -+ /* Hash table used to merge debug information. */
1.43800 -+ struct coff_debug_merge_hash_table debug_merge;
1.43801 -+ /* Buffer large enough to hold swapped symbols of any input file. */
1.43802 -+ struct internal_syment *internal_syms;
1.43803 -+ /* Buffer large enough to hold sections of symbols of any input file. */
1.43804 -+ asection **sec_ptrs;
1.43805 -+ /* Buffer large enough to hold output indices of symbols of any
1.43806 -+ input file. */
1.43807 -+ long *sym_indices;
1.43808 -+ /* Buffer large enough to hold output symbols for any input file. */
1.43809 -+ bfd_byte *outsyms;
1.43810 -+ /* Buffer large enough to hold external line numbers for any input
1.43811 -+ section. */
1.43812 -+ bfd_byte *linenos;
1.43813 -+ /* Buffer large enough to hold any input section. */
1.43814 -+ bfd_byte *contents;
1.43815 -+ /* Buffer large enough to hold external relocs of any input section. */
1.43816 -+ bfd_byte *external_relocs;
1.43817 -+ /* Buffer large enough to hold swapped relocs of any input section. */
1.43818 -+ struct internal_reloc *internal_relocs;
1.43819 -+};
1.43820 -+
1.43821 -+/* Most COFF variants have no way to record the alignment of a
1.43822 -+ section. This struct is used to set a specific alignment based on
1.43823 -+ the name of the section. */
1.43824 -+
1.43825 -+struct coff_section_alignment_entry
1.43826 -+{
1.43827 -+ /* The section name. */
1.43828 -+ const char *name;
1.43829 -+
1.43830 -+ /* This is either (unsigned int) -1, indicating that the section
1.43831 -+ name must match exactly, or it is the number of letters which
1.43832 -+ must match at the start of the name. */
1.43833 -+ unsigned int comparison_length;
1.43834 -+
1.43835 -+ /* These macros may be used to fill in the first two fields in a
1.43836 -+ structure initialization. */
1.43837 -+#define COFF_SECTION_NAME_EXACT_MATCH(name) (name), ((unsigned int) -1)
1.43838 -+#define COFF_SECTION_NAME_PARTIAL_MATCH(name) (name), (sizeof (name) - 1)
1.43839 -+
1.43840 -+ /* Only use this entry if the default section alignment for this
1.43841 -+ target is at least that much (as a power of two). If this field
1.43842 -+ is COFF_ALIGNMENT_FIELD_EMPTY, it should be ignored. */
1.43843 -+ unsigned int default_alignment_min;
1.43844 -+
1.43845 -+ /* Only use this entry if the default section alignment for this
1.43846 -+ target is no greater than this (as a power of two). If this
1.43847 -+ field is COFF_ALIGNMENT_FIELD_EMPTY, it should be ignored. */
1.43848 -+ unsigned int default_alignment_max;
1.43849 -+
1.43850 -+#define COFF_ALIGNMENT_FIELD_EMPTY ((unsigned int) -1)
1.43851 -+
1.43852 -+ /* The desired alignment for this section (as a power of two). */
1.43853 -+ unsigned int alignment_power;
1.43854 -+};
1.43855 -+
1.43856 -+extern struct bfd_hash_entry *_bfd_coff_link_hash_newfunc
1.43857 -+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
1.43858 -+extern bfd_boolean _bfd_coff_link_hash_table_init
1.43859 -+ (struct coff_link_hash_table *, bfd *,
1.43860 -+ struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
1.43861 -+ struct bfd_hash_table *,
1.43862 -+ const char *),
1.43863 -+ unsigned int);
1.43864 -+extern struct bfd_link_hash_table *_bfd_coff_link_hash_table_create
1.43865 -+ (bfd *);
1.43866 -+extern const char *_bfd_coff_internal_syment_name
1.43867 -+ (bfd *, const struct internal_syment *, char *);
1.43868 -+extern bfd_boolean _bfd_coff_link_add_symbols
1.43869 -+ (bfd *, struct bfd_link_info *);
1.43870 -+extern bfd_boolean _bfd_coff_final_link
1.43871 -+ (bfd *, struct bfd_link_info *);
1.43872 -+extern struct internal_reloc *_bfd_coff_read_internal_relocs
1.43873 -+ (bfd *, asection *, bfd_boolean, bfd_byte *, bfd_boolean,
1.43874 -+ struct internal_reloc *);
1.43875 -+extern bfd_boolean _bfd_coff_generic_relocate_section
1.43876 -+ (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
1.43877 -+ struct internal_reloc *, struct internal_syment *, asection **);
1.43878 -+extern struct bfd_hash_entry *_bfd_coff_debug_merge_hash_newfunc
1.43879 -+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
1.43880 -+extern bfd_boolean _bfd_coff_write_global_sym
1.43881 -+ (struct coff_link_hash_entry *, void *);
1.43882 -+extern bfd_boolean _bfd_coff_write_task_globals
1.43883 -+ (struct coff_link_hash_entry *, void *);
1.43884 -+extern bfd_boolean _bfd_coff_link_input_bfd
1.43885 -+ (struct coff_final_link_info *, bfd *);
1.43886 -+extern bfd_boolean _bfd_coff_reloc_link_order
1.43887 -+ (bfd *, struct coff_final_link_info *, asection *,
1.43888 -+ struct bfd_link_order *);
1.43889 -+
1.43890 -+
1.43891 -+#define coff_get_section_contents_in_window \
1.43892 -+ _bfd_generic_get_section_contents_in_window
1.43893 -+
1.43894 -+/* Functions in xcofflink.c. */
1.43895 -+
1.43896 -+extern long _bfd_xcoff_get_dynamic_symtab_upper_bound
1.43897 -+ (bfd *);
1.43898 -+extern long _bfd_xcoff_canonicalize_dynamic_symtab
1.43899 -+ (bfd *, asymbol **);
1.43900 -+extern long _bfd_xcoff_get_dynamic_reloc_upper_bound
1.43901 -+ (bfd *);
1.43902 -+extern long _bfd_xcoff_canonicalize_dynamic_reloc
1.43903 -+ (bfd *, arelent **, asymbol **);
1.43904 -+extern struct bfd_link_hash_table *_bfd_xcoff_bfd_link_hash_table_create
1.43905 -+ (bfd *);
1.43906 -+extern void _bfd_xcoff_bfd_link_hash_table_free
1.43907 -+ (struct bfd_link_hash_table *);
1.43908 -+extern bfd_boolean _bfd_xcoff_bfd_link_add_symbols
1.43909 -+ (bfd *, struct bfd_link_info *);
1.43910 -+extern bfd_boolean _bfd_xcoff_bfd_final_link
1.43911 -+ (bfd *, struct bfd_link_info *);
1.43912 -+extern bfd_boolean _bfd_ppc_xcoff_relocate_section
1.43913 -+ (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
1.43914 -+ struct internal_reloc *, struct internal_syment *, asection **);
1.43915 -+
1.43916 -+/* Functions in coff-ppc.c. FIXME: These are called be pe.em in the
1.43917 -+ linker, and so should start with bfd and be declared in bfd.h. */
1.43918 -+
1.43919 -+extern bfd_boolean ppc_allocate_toc_section
1.43920 -+ (struct bfd_link_info *);
1.43921 -+extern bfd_boolean ppc_process_before_allocation
1.43922 -+ (bfd *, struct bfd_link_info *);
1.43923 -+
1.43924 -+/* Extracted from coffcode.h. */
1.43925 -+typedef struct coff_ptr_struct
1.43926 -+{
1.43927 -+ /* Remembers the offset from the first symbol in the file for
1.43928 -+ this symbol. Generated by coff_renumber_symbols. */
1.43929 -+ unsigned int offset;
1.43930 -+
1.43931 -+ /* Should the value of this symbol be renumbered. Used for
1.43932 -+ XCOFF C_BSTAT symbols. Set by coff_slurp_symbol_table. */
1.43933 -+ unsigned int fix_value : 1;
1.43934 -+
1.43935 -+ /* Should the tag field of this symbol be renumbered.
1.43936 -+ Created by coff_pointerize_aux. */
1.43937 -+ unsigned int fix_tag : 1;
1.43938 -+
1.43939 -+ /* Should the endidx field of this symbol be renumbered.
1.43940 -+ Created by coff_pointerize_aux. */
1.43941 -+ unsigned int fix_end : 1;
1.43942 -+
1.43943 -+ /* Should the x_csect.x_scnlen field be renumbered.
1.43944 -+ Created by coff_pointerize_aux. */
1.43945 -+ unsigned int fix_scnlen : 1;
1.43946 -+
1.43947 -+ /* Fix up an XCOFF C_BINCL/C_EINCL symbol. The value is the
1.43948 -+ index into the line number entries. Set by coff_slurp_symbol_table. */
1.43949 -+ unsigned int fix_line : 1;
1.43950 -+
1.43951 -+ /* The container for the symbol structure as read and translated
1.43952 -+ from the file. */
1.43953 -+ union
1.43954 -+ {
1.43955 -+ union internal_auxent auxent;
1.43956 -+ struct internal_syment syment;
1.43957 -+ } u;
1.43958 -+} combined_entry_type;
1.43959 -+
1.43960 -+
1.43961 -+/* Each canonical asymbol really looks like this: */
1.43962 -+
1.43963 -+typedef struct coff_symbol_struct
1.43964 -+{
1.43965 -+ /* The actual symbol which the rest of BFD works with */
1.43966 -+ asymbol symbol;
1.43967 -+
1.43968 -+ /* A pointer to the hidden information for this symbol */
1.43969 -+ combined_entry_type *native;
1.43970 -+
1.43971 -+ /* A pointer to the linenumber information for this symbol */
1.43972 -+ struct lineno_cache_entry *lineno;
1.43973 -+
1.43974 -+ /* Have the line numbers been relocated yet ? */
1.43975 -+ bfd_boolean done_lineno;
1.43976 -+} coff_symbol_type;
1.43977 -+/* COFF symbol classifications. */
1.43978 -+
1.43979 -+enum coff_symbol_classification
1.43980 -+{
1.43981 -+ /* Global symbol. */
1.43982 -+ COFF_SYMBOL_GLOBAL,
1.43983 -+ /* Common symbol. */
1.43984 -+ COFF_SYMBOL_COMMON,
1.43985 -+ /* Undefined symbol. */
1.43986 -+ COFF_SYMBOL_UNDEFINED,
1.43987 -+ /* Local symbol. */
1.43988 -+ COFF_SYMBOL_LOCAL,
1.43989 -+ /* PE section symbol. */
1.43990 -+ COFF_SYMBOL_PE_SECTION
1.43991 -+};
1.43992 -+
1.43993 -+typedef struct
1.43994 -+{
1.43995 -+ void (*_bfd_coff_swap_aux_in)
1.43996 -+ (bfd *, void *, int, int, int, int, void *);
1.43997 -+
1.43998 -+ void (*_bfd_coff_swap_sym_in)
1.43999 -+ (bfd *, void *, void *);
1.44000 -+
1.44001 -+ void (*_bfd_coff_swap_lineno_in)
1.44002 -+ (bfd *, void *, void *);
1.44003 -+
1.44004 -+ unsigned int (*_bfd_coff_swap_aux_out)
1.44005 -+ (bfd *, void *, int, int, int, int, void *);
1.44006 -+
1.44007 -+ unsigned int (*_bfd_coff_swap_sym_out)
1.44008 -+ (bfd *, void *, void *);
1.44009 -+
1.44010 -+ unsigned int (*_bfd_coff_swap_lineno_out)
1.44011 -+ (bfd *, void *, void *);
1.44012 -+
1.44013 -+ unsigned int (*_bfd_coff_swap_reloc_out)
1.44014 -+ (bfd *, void *, void *);
1.44015 -+
1.44016 -+ unsigned int (*_bfd_coff_swap_filehdr_out)
1.44017 -+ (bfd *, void *, void *);
1.44018 -+
1.44019 -+ unsigned int (*_bfd_coff_swap_aouthdr_out)
1.44020 -+ (bfd *, void *, void *);
1.44021 -+
1.44022 -+ unsigned int (*_bfd_coff_swap_scnhdr_out)
1.44023 -+ (bfd *, void *, void *);
1.44024 -+
1.44025 -+ unsigned int _bfd_filhsz;
1.44026 -+ unsigned int _bfd_aoutsz;
1.44027 -+ unsigned int _bfd_scnhsz;
1.44028 -+ unsigned int _bfd_symesz;
1.44029 -+ unsigned int _bfd_auxesz;
1.44030 -+ unsigned int _bfd_relsz;
1.44031 -+ unsigned int _bfd_linesz;
1.44032 -+ unsigned int _bfd_filnmlen;
1.44033 -+ bfd_boolean _bfd_coff_long_filenames;
1.44034 -+ bfd_boolean _bfd_coff_long_section_names;
1.44035 -+ unsigned int _bfd_coff_default_section_alignment_power;
1.44036 -+ bfd_boolean _bfd_coff_force_symnames_in_strings;
1.44037 -+ unsigned int _bfd_coff_debug_string_prefix_length;
1.44038 -+
1.44039 -+ void (*_bfd_coff_swap_filehdr_in)
1.44040 -+ (bfd *, void *, void *);
1.44041 -+
1.44042 -+ void (*_bfd_coff_swap_aouthdr_in)
1.44043 -+ (bfd *, void *, void *);
1.44044 -+
1.44045 -+ void (*_bfd_coff_swap_scnhdr_in)
1.44046 -+ (bfd *, void *, void *);
1.44047 -+
1.44048 -+ void (*_bfd_coff_swap_reloc_in)
1.44049 -+ (bfd *abfd, void *, void *);
1.44050 -+
1.44051 -+ bfd_boolean (*_bfd_coff_bad_format_hook)
1.44052 -+ (bfd *, void *);
1.44053 -+
1.44054 -+ bfd_boolean (*_bfd_coff_set_arch_mach_hook)
1.44055 -+ (bfd *, void *);
1.44056 -+
1.44057 -+ void * (*_bfd_coff_mkobject_hook)
1.44058 -+ (bfd *, void *, void *);
1.44059 -+
1.44060 -+ bfd_boolean (*_bfd_styp_to_sec_flags_hook)
1.44061 -+ (bfd *, void *, const char *, asection *, flagword *);
1.44062 -+
1.44063 -+ void (*_bfd_set_alignment_hook)
1.44064 -+ (bfd *, asection *, void *);
1.44065 -+
1.44066 -+ bfd_boolean (*_bfd_coff_slurp_symbol_table)
1.44067 -+ (bfd *);
1.44068 -+
1.44069 -+ bfd_boolean (*_bfd_coff_symname_in_debug)
1.44070 -+ (bfd *, struct internal_syment *);
1.44071 -+
1.44072 -+ bfd_boolean (*_bfd_coff_pointerize_aux_hook)
1.44073 -+ (bfd *, combined_entry_type *, combined_entry_type *,
1.44074 -+ unsigned int, combined_entry_type *);
1.44075 -+
1.44076 -+ bfd_boolean (*_bfd_coff_print_aux)
1.44077 -+ (bfd *, FILE *, combined_entry_type *, combined_entry_type *,
1.44078 -+ combined_entry_type *, unsigned int);
1.44079 -+
1.44080 -+ void (*_bfd_coff_reloc16_extra_cases)
1.44081 -+ (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
1.44082 -+ bfd_byte *, unsigned int *, unsigned int *);
1.44083 -+
1.44084 -+ int (*_bfd_coff_reloc16_estimate)
1.44085 -+ (bfd *, asection *, arelent *, unsigned int,
1.44086 -+ struct bfd_link_info *);
1.44087 -+
1.44088 -+ enum coff_symbol_classification (*_bfd_coff_classify_symbol)
1.44089 -+ (bfd *, struct internal_syment *);
1.44090 -+
1.44091 -+ bfd_boolean (*_bfd_coff_compute_section_file_positions)
1.44092 -+ (bfd *);
1.44093 -+
1.44094 -+ bfd_boolean (*_bfd_coff_start_final_link)
1.44095 -+ (bfd *, struct bfd_link_info *);
1.44096 -+
1.44097 -+ bfd_boolean (*_bfd_coff_relocate_section)
1.44098 -+ (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
1.44099 -+ struct internal_reloc *, struct internal_syment *, asection **);
1.44100 -+
1.44101 -+ reloc_howto_type *(*_bfd_coff_rtype_to_howto)
1.44102 -+ (bfd *, asection *, struct internal_reloc *,
1.44103 -+ struct coff_link_hash_entry *, struct internal_syment *,
1.44104 -+ bfd_vma *);
1.44105 -+
1.44106 -+ bfd_boolean (*_bfd_coff_adjust_symndx)
1.44107 -+ (bfd *, struct bfd_link_info *, bfd *, asection *,
1.44108 -+ struct internal_reloc *, bfd_boolean *);
1.44109 -+
1.44110 -+ bfd_boolean (*_bfd_coff_link_add_one_symbol)
1.44111 -+ (struct bfd_link_info *, bfd *, const char *, flagword,
1.44112 -+ asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
1.44113 -+ struct bfd_link_hash_entry **);
1.44114 -+
1.44115 -+ bfd_boolean (*_bfd_coff_link_output_has_begun)
1.44116 -+ (bfd *, struct coff_final_link_info *);
1.44117 -+
1.44118 -+ bfd_boolean (*_bfd_coff_final_link_postscript)
1.44119 -+ (bfd *, struct coff_final_link_info *);
1.44120 -+
1.44121 -+} bfd_coff_backend_data;
1.44122 -+
1.44123 -+#define coff_backend_info(abfd) \
1.44124 -+ ((bfd_coff_backend_data *) (abfd)->xvec->backend_data)
1.44125 -+
1.44126 -+#define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \
1.44127 -+ ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i))
1.44128 -+
1.44129 -+#define bfd_coff_swap_sym_in(a,e,i) \
1.44130 -+ ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i))
1.44131 -+
1.44132 -+#define bfd_coff_swap_lineno_in(a,e,i) \
1.44133 -+ ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i))
1.44134 -+
1.44135 -+#define bfd_coff_swap_reloc_out(abfd, i, o) \
1.44136 -+ ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o))
1.44137 -+
1.44138 -+#define bfd_coff_swap_lineno_out(abfd, i, o) \
1.44139 -+ ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o))
1.44140 -+
1.44141 -+#define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \
1.44142 -+ ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o))
1.44143 -+
1.44144 -+#define bfd_coff_swap_sym_out(abfd, i,o) \
1.44145 -+ ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o))
1.44146 -+
1.44147 -+#define bfd_coff_swap_scnhdr_out(abfd, i,o) \
1.44148 -+ ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o))
1.44149 -+
1.44150 -+#define bfd_coff_swap_filehdr_out(abfd, i,o) \
1.44151 -+ ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o))
1.44152 -+
1.44153 -+#define bfd_coff_swap_aouthdr_out(abfd, i,o) \
1.44154 -+ ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o))
1.44155 -+
1.44156 -+#define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz)
1.44157 -+#define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz)
1.44158 -+#define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz)
1.44159 -+#define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz)
1.44160 -+#define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz)
1.44161 -+#define bfd_coff_relsz(abfd) (coff_backend_info (abfd)->_bfd_relsz)
1.44162 -+#define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz)
1.44163 -+#define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen)
1.44164 -+#define bfd_coff_long_filenames(abfd) \
1.44165 -+ (coff_backend_info (abfd)->_bfd_coff_long_filenames)
1.44166 -+#define bfd_coff_long_section_names(abfd) \
1.44167 -+ (coff_backend_info (abfd)->_bfd_coff_long_section_names)
1.44168 -+#define bfd_coff_default_section_alignment_power(abfd) \
1.44169 -+ (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power)
1.44170 -+#define bfd_coff_swap_filehdr_in(abfd, i,o) \
1.44171 -+ ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o))
1.44172 -+
1.44173 -+#define bfd_coff_swap_aouthdr_in(abfd, i,o) \
1.44174 -+ ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o))
1.44175 -+
1.44176 -+#define bfd_coff_swap_scnhdr_in(abfd, i,o) \
1.44177 -+ ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o))
1.44178 -+
1.44179 -+#define bfd_coff_swap_reloc_in(abfd, i, o) \
1.44180 -+ ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o))
1.44181 -+
1.44182 -+#define bfd_coff_bad_format_hook(abfd, filehdr) \
1.44183 -+ ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr))
1.44184 -+
1.44185 -+#define bfd_coff_set_arch_mach_hook(abfd, filehdr)\
1.44186 -+ ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr))
1.44187 -+#define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\
1.44188 -+ ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\
1.44189 -+ (abfd, filehdr, aouthdr))
1.44190 -+
1.44191 -+#define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\
1.44192 -+ ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\
1.44193 -+ (abfd, scnhdr, name, section, flags_ptr))
1.44194 -+
1.44195 -+#define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\
1.44196 -+ ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr))
1.44197 -+
1.44198 -+#define bfd_coff_slurp_symbol_table(abfd)\
1.44199 -+ ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd))
1.44200 -+
1.44201 -+#define bfd_coff_symname_in_debug(abfd, sym)\
1.44202 -+ ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym))
1.44203 -+
1.44204 -+#define bfd_coff_force_symnames_in_strings(abfd)\
1.44205 -+ (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings)
1.44206 -+
1.44207 -+#define bfd_coff_debug_string_prefix_length(abfd)\
1.44208 -+ (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length)
1.44209 -+
1.44210 -+#define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\
1.44211 -+ ((coff_backend_info (abfd)->_bfd_coff_print_aux)\
1.44212 -+ (abfd, file, base, symbol, aux, indaux))
1.44213 -+
1.44214 -+#define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\
1.44215 -+ reloc, data, src_ptr, dst_ptr)\
1.44216 -+ ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
1.44217 -+ (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
1.44218 -+
1.44219 -+#define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\
1.44220 -+ ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\
1.44221 -+ (abfd, section, reloc, shrink, link_info))
1.44222 -+
1.44223 -+#define bfd_coff_classify_symbol(abfd, sym)\
1.44224 -+ ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\
1.44225 -+ (abfd, sym))
1.44226 -+
1.44227 -+#define bfd_coff_compute_section_file_positions(abfd)\
1.44228 -+ ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\
1.44229 -+ (abfd))
1.44230 -+
1.44231 -+#define bfd_coff_start_final_link(obfd, info)\
1.44232 -+ ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\
1.44233 -+ (obfd, info))
1.44234 -+#define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\
1.44235 -+ ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\
1.44236 -+ (obfd, info, ibfd, o, con, rel, isyms, secs))
1.44237 -+#define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\
1.44238 -+ ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\
1.44239 -+ (abfd, sec, rel, h, sym, addendp))
1.44240 -+#define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\
1.44241 -+ ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
1.44242 -+ (obfd, info, ibfd, sec, rel, adjustedp))
1.44243 -+#define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
1.44244 -+ value, string, cp, coll, hashp)\
1.44245 -+ ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
1.44246 -+ (info, abfd, name, flags, section, value, string, cp, coll, hashp))
1.44247 -+
1.44248 -+#define bfd_coff_link_output_has_begun(a,p) \
1.44249 -+ ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p))
1.44250 -+#define bfd_coff_final_link_postscript(a,p) \
1.44251 -+ ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a, p))
1.44252 -+
1.44253 ---- a/bfd/libbfd.h
1.44254 -+++ b/bfd/libbfd.h
1.44255 -@@ -1601,6 +1601,48 @@ static const char *const bfd_reloc_code_
1.44256 - "BFD_RELOC_AVR_LDI",
1.44257 - "BFD_RELOC_AVR_6",
1.44258 - "BFD_RELOC_AVR_6_ADIW",
1.44259 -+ "BFD_RELOC_AVR32_DIFF32",
1.44260 -+ "BFD_RELOC_AVR32_DIFF16",
1.44261 -+ "BFD_RELOC_AVR32_DIFF8",
1.44262 -+ "BFD_RELOC_AVR32_GOT32",
1.44263 -+ "BFD_RELOC_AVR32_GOT16",
1.44264 -+ "BFD_RELOC_AVR32_GOT8",
1.44265 -+ "BFD_RELOC_AVR32_21S",
1.44266 -+ "BFD_RELOC_AVR32_16U",
1.44267 -+ "BFD_RELOC_AVR32_16S",
1.44268 -+ "BFD_RELOC_AVR32_SUB5",
1.44269 -+ "BFD_RELOC_AVR32_8S_EXT",
1.44270 -+ "BFD_RELOC_AVR32_8S",
1.44271 -+ "BFD_RELOC_AVR32_15S",
1.44272 -+ "BFD_RELOC_AVR32_22H_PCREL",
1.44273 -+ "BFD_RELOC_AVR32_18W_PCREL",
1.44274 -+ "BFD_RELOC_AVR32_16B_PCREL",
1.44275 -+ "BFD_RELOC_AVR32_16N_PCREL",
1.44276 -+ "BFD_RELOC_AVR32_14UW_PCREL",
1.44277 -+ "BFD_RELOC_AVR32_11H_PCREL",
1.44278 -+ "BFD_RELOC_AVR32_10UW_PCREL",
1.44279 -+ "BFD_RELOC_AVR32_9H_PCREL",
1.44280 -+ "BFD_RELOC_AVR32_9UW_PCREL",
1.44281 -+ "BFD_RELOC_AVR32_GOTPC",
1.44282 -+ "BFD_RELOC_AVR32_GOTCALL",
1.44283 -+ "BFD_RELOC_AVR32_LDA_GOT",
1.44284 -+ "BFD_RELOC_AVR32_GOT21S",
1.44285 -+ "BFD_RELOC_AVR32_GOT18SW",
1.44286 -+ "BFD_RELOC_AVR32_GOT16S",
1.44287 -+ "BFD_RELOC_AVR32_32_CPENT",
1.44288 -+ "BFD_RELOC_AVR32_CPCALL",
1.44289 -+ "BFD_RELOC_AVR32_16_CP",
1.44290 -+ "BFD_RELOC_AVR32_9W_CP",
1.44291 -+ "BFD_RELOC_AVR32_ALIGN",
1.44292 -+ "BFD_RELOC_AVR32_14UW",
1.44293 -+ "BFD_RELOC_AVR32_10UW",
1.44294 -+ "BFD_RELOC_AVR32_10SW",
1.44295 -+ "BFD_RELOC_AVR32_STHH_W",
1.44296 -+ "BFD_RELOC_AVR32_7UW",
1.44297 -+ "BFD_RELOC_AVR32_6S",
1.44298 -+ "BFD_RELOC_AVR32_6UW",
1.44299 -+ "BFD_RELOC_AVR32_4UH",
1.44300 -+ "BFD_RELOC_AVR32_3U",
1.44301 - "BFD_RELOC_390_12",
1.44302 - "BFD_RELOC_390_GOT12",
1.44303 - "BFD_RELOC_390_PLT32",
1.44304 ---- /dev/null
1.44305 -+++ b/bfd/libtool
1.44306 -@@ -0,0 +1,7871 @@
1.44307 -+#! /bin/bash
1.44308 -+
1.44309 -+# libtool - Provide generalized library-building support services.
1.44310 -+# Generated automatically by config.status (bfd) 2.18.atmel.1.0.1
1.44311 -+# Libtool was configured on host hcegtvedt:
1.44312 -+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
1.44313 -+#
1.44314 -+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
1.44315 -+# 2006, 2007, 2008 Free Software Foundation, Inc.
1.44316 -+# Written by Gordon Matzigkeit, 1996
1.44317 -+#
1.44318 -+# This file is part of GNU Libtool.
1.44319 -+#
1.44320 -+# GNU Libtool is free software; you can redistribute it and/or
1.44321 -+# modify it under the terms of the GNU General Public License as
1.44322 -+# published by the Free Software Foundation; either version 2 of
1.44323 -+# the License, or (at your option) any later version.
1.44324 -+#
1.44325 -+# As a special exception to the GNU General Public License,
1.44326 -+# if you distribute this file as part of a program or library that
1.44327 -+# is built using GNU Libtool, you may include this file under the
1.44328 -+# same distribution terms that you use for the rest of that program.
1.44329 -+#
1.44330 -+# GNU Libtool is distributed in the hope that it will be useful,
1.44331 -+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1.44332 -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1.44333 -+# GNU General Public License for more details.
1.44334 -+#
1.44335 -+# You should have received a copy of the GNU General Public License
1.44336 -+# along with GNU Libtool; see the file COPYING. If not, a copy
1.44337 -+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
1.44338 -+# obtained by writing to the Free Software Foundation, Inc.,
1.44339 -+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
1.44340 -+
1.44341 -+
1.44342 -+# The names of the tagged configurations supported by this script.
1.44343 -+available_tags=""
1.44344 -+
1.44345 -+# ### BEGIN LIBTOOL CONFIG
1.44346 -+
1.44347 -+# Whether or not to build shared libraries.
1.44348 -+build_libtool_libs=no
1.44349 -+
1.44350 -+# Which release of libtool.m4 was used?
1.44351 -+macro_version=2.2.4
1.44352 -+macro_revision=1.2976
1.44353 -+
1.44354 -+# Whether or not to build static libraries.
1.44355 -+build_old_libs=yes
1.44356 -+
1.44357 -+# What type of objects to build.
1.44358 -+pic_mode=default
1.44359 -+
1.44360 -+# Whether or not to optimize for fast installation.
1.44361 -+fast_install=needless
1.44362 -+
1.44363 -+# The host system.
1.44364 -+host_alias=i686-pc-linux-gnu
1.44365 -+host=i686-pc-linux-gnu
1.44366 -+host_os=linux-gnu
1.44367 -+
1.44368 -+# The build system.
1.44369 -+build_alias=i686-pc-linux-gnu
1.44370 -+build=i686-pc-linux-gnu
1.44371 -+build_os=linux-gnu
1.44372 -+
1.44373 -+# A sed program that does not truncate output.
1.44374 -+SED="/bin/sed"
1.44375 -+
1.44376 -+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
1.44377 -+Xsed="$SED -e 1s/^X//"
1.44378 -+
1.44379 -+# A grep program that handles long lines.
1.44380 -+GREP="/bin/grep"
1.44381 -+
1.44382 -+# An ERE matcher.
1.44383 -+EGREP="/bin/grep -E"
1.44384 -+
1.44385 -+# A literal string matcher.
1.44386 -+FGREP="/bin/grep -F"
1.44387 -+
1.44388 -+# A BSD- or MS-compatible name lister.
1.44389 -+NM="nm"
1.44390 -+
1.44391 -+# Whether we need soft or hard links.
1.44392 -+LN_S="ln -s"
1.44393 -+
1.44394 -+# What is the maximum length of a command?
1.44395 -+max_cmd_len=805306365
1.44396 -+
1.44397 -+# Object file suffix (normally "o").
1.44398 -+objext=o
1.44399 -+
1.44400 -+# Executable file suffix (normally "").
1.44401 -+exeext=
1.44402 -+
1.44403 -+# whether the shell understands "unset".
1.44404 -+lt_unset=unset
1.44405 -+
1.44406 -+# turn spaces into newlines.
1.44407 -+SP2NL="tr \\040 \\012"
1.44408 -+
1.44409 -+# turn newlines into spaces.
1.44410 -+NL2SP="tr \\015\\012 \\040\\040"
1.44411 -+
1.44412 -+# How to create reloadable object files.
1.44413 -+reload_flag=" -r"
1.44414 -+reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
1.44415 -+
1.44416 -+# Method to check whether dependent libraries are shared objects.
1.44417 -+deplibs_check_method="pass_all"
1.44418 -+
1.44419 -+# Command to use when deplibs_check_method == "file_magic".
1.44420 -+file_magic_cmd="\$MAGIC_CMD"
1.44421 -+
1.44422 -+# The archiver.
1.44423 -+AR="ar"
1.44424 -+AR_FLAGS="cru"
1.44425 -+
1.44426 -+# A symbol stripping program.
1.44427 -+STRIP="strip"
1.44428 -+
1.44429 -+# Commands used to install an old-style archive.
1.44430 -+RANLIB="ranlib"
1.44431 -+old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
1.44432 -+old_postuninstall_cmds=""
1.44433 -+
1.44434 -+# A C compiler.
1.44435 -+LTCC="gcc"
1.44436 -+
1.44437 -+# LTCC compiler flags.
1.44438 -+LTCFLAGS="-g -O2"
1.44439 -+
1.44440 -+# Take the output of nm and produce a listing of raw symbols and C names.
1.44441 -+global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
1.44442 -+
1.44443 -+# Transform the output of nm in a proper C declaration.
1.44444 -+global_symbol_to_cdecl="sed -n -e 's/^T .* \\(.*\\)\$/extern int \\1();/p' -e 's/^[ABCDGIRSTW]* .* \\(.*\\)\$/extern char \\1;/p'"
1.44445 -+
1.44446 -+# Transform the output of nm in a C name address pair.
1.44447 -+global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/ {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/ {\"\\2\", (void *) \\&\\2},/p'"
1.44448 -+
1.44449 -+# Transform the output of nm in a C name address pair when lib prefix is needed.
1.44450 -+global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \\([^ ]*\\) \$/ {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\(lib[^ ]*\\)\$/ {\"\\2\", (void *) \\&\\2},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/ {\"lib\\2\", (void *) \\&\\2},/p'"
1.44451 -+
1.44452 -+# The name of the directory that contains temporary libtool files.
1.44453 -+objdir=.libs
1.44454 -+
1.44455 -+# Shell to use when invoking shell scripts.
1.44456 -+SHELL="/bin/bash"
1.44457 -+
1.44458 -+# An echo program that does not interpret backslashes.
1.44459 -+ECHO="echo"
1.44460 -+
1.44461 -+# Used to examine libraries when file_magic_cmd begins with "file".
1.44462 -+MAGIC_CMD=file
1.44463 -+
1.44464 -+# Must we lock files when doing compilation?
1.44465 -+need_locks="no"
1.44466 -+
1.44467 -+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
1.44468 -+DSYMUTIL=""
1.44469 -+
1.44470 -+# Tool to change global to local symbols on Mac OS X.
1.44471 -+NMEDIT=""
1.44472 -+
1.44473 -+# Tool to manipulate fat objects and archives on Mac OS X.
1.44474 -+LIPO=""
1.44475 -+
1.44476 -+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
1.44477 -+OTOOL=""
1.44478 -+
1.44479 -+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
1.44480 -+OTOOL64=""
1.44481 -+
1.44482 -+# Old archive suffix (normally "a").
1.44483 -+libext=a
1.44484 -+
1.44485 -+# Shared library suffix (normally ".so").
1.44486 -+shrext_cmds=".so"
1.44487 -+
1.44488 -+# The commands to extract the exported symbol list from a shared archive.
1.44489 -+extract_expsyms_cmds=""
1.44490 -+
1.44491 -+# Variables whose values should be saved in libtool wrapper scripts and
1.44492 -+# restored at link time.
1.44493 -+variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
1.44494 -+
1.44495 -+# Do we need the "lib" prefix for modules?
1.44496 -+need_lib_prefix=no
1.44497 -+
1.44498 -+# Do we need a version for libraries?
1.44499 -+need_version=no
1.44500 -+
1.44501 -+# Library versioning type.
1.44502 -+version_type=linux
1.44503 -+
1.44504 -+# Shared library runtime path variable.
1.44505 -+runpath_var=LD_RUN_PATH
1.44506 -+
1.44507 -+# Shared library path variable.
1.44508 -+shlibpath_var=LD_LIBRARY_PATH
1.44509 -+
1.44510 -+# Is shlibpath searched before the hard-coded library search path?
1.44511 -+shlibpath_overrides_runpath=no
1.44512 -+
1.44513 -+# Format of library name prefix.
1.44514 -+libname_spec="lib\$name"
1.44515 -+
1.44516 -+# List of archive names. First name is the real one, the rest are links.
1.44517 -+# The last name is the one that the linker finds with -lNAME
1.44518 -+library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}"
1.44519 -+
1.44520 -+# The coded name of the library, if different from the real name.
1.44521 -+soname_spec="\${libname}\${release}\${shared_ext}\$major"
1.44522 -+
1.44523 -+# Command to use after installation of a shared archive.
1.44524 -+postinstall_cmds=""
1.44525 -+
1.44526 -+# Command to use after uninstallation of a shared archive.
1.44527 -+postuninstall_cmds=""
1.44528 -+
1.44529 -+# Commands used to finish a libtool library installation in a directory.
1.44530 -+finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
1.44531 -+
1.44532 -+# As "finish_cmds", except a single script fragment to be evaled but
1.44533 -+# not shown.
1.44534 -+finish_eval=""
1.44535 -+
1.44536 -+# Whether we should hardcode library paths into libraries.
1.44537 -+hardcode_into_libs=yes
1.44538 -+
1.44539 -+# Compile-time system search path for libraries.
1.44540 -+sys_lib_search_path_spec="/usr/lib/gcc/i486-linux-gnu/4.2.4 /usr/lib /lib"
1.44541 -+
1.44542 -+# Run-time system search path for libraries.
1.44543 -+sys_lib_dlsearch_path_spec="/lib /usr/lib /lib/i486-linux-gnu /usr/lib/i486-linux-gnu /usr/lib/alsa-lib /usr/local/lib "
1.44544 -+
1.44545 -+# Whether dlopen is supported.
1.44546 -+dlopen_support=unknown
1.44547 -+
1.44548 -+# Whether dlopen of programs is supported.
1.44549 -+dlopen_self=unknown
1.44550 -+
1.44551 -+# Whether dlopen of statically linked programs is supported.
1.44552 -+dlopen_self_static=unknown
1.44553 -+
1.44554 -+# Commands to strip libraries.
1.44555 -+old_striplib="strip --strip-debug"
1.44556 -+striplib="strip --strip-unneeded"
1.44557 -+
1.44558 -+
1.44559 -+# The linker used to build libraries.
1.44560 -+LD="ld"
1.44561 -+
1.44562 -+# Commands used to build an old-style archive.
1.44563 -+old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib"
1.44564 -+
1.44565 -+# A language specific compiler.
1.44566 -+CC="gcc"
1.44567 -+
1.44568 -+# Is the compiler the GNU compiler?
1.44569 -+with_gcc=yes
1.44570 -+
1.44571 -+# Compiler flag to turn off builtin functions.
1.44572 -+no_builtin_flag=" -fno-builtin"
1.44573 -+
1.44574 -+# How to pass a linker flag through the compiler.
1.44575 -+wl="-Wl,"
1.44576 -+
1.44577 -+# Additional compiler flags for building library objects.
1.44578 -+pic_flag=" -fPIC -DPIC"
1.44579 -+
1.44580 -+# Compiler flag to prevent dynamic linking.
1.44581 -+link_static_flag="-static"
1.44582 -+
1.44583 -+# Does compiler simultaneously support -c and -o options?
1.44584 -+compiler_c_o="yes"
1.44585 -+
1.44586 -+# Whether or not to add -lc for building shared libraries.
1.44587 -+build_libtool_need_lc=yes
1.44588 -+
1.44589 -+# Whether or not to disallow shared libs when runtime libs are static.
1.44590 -+allow_libtool_libs_with_static_runtimes=no
1.44591 -+
1.44592 -+# Compiler flag to allow reflexive dlopens.
1.44593 -+export_dynamic_flag_spec="\${wl}--export-dynamic"
1.44594 -+
1.44595 -+# Compiler flag to generate shared objects directly from archives.
1.44596 -+whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
1.44597 -+
1.44598 -+# Whether the compiler copes with passing no objects directly.
1.44599 -+compiler_needs_object="no"
1.44600 -+
1.44601 -+# Create an old-style archive from a shared archive.
1.44602 -+old_archive_from_new_cmds=""
1.44603 -+
1.44604 -+# Create a temporary old-style archive to link instead of a shared archive.
1.44605 -+old_archive_from_expsyms_cmds=""
1.44606 -+
1.44607 -+# Commands used to build a shared archive.
1.44608 -+archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
1.44609 -+archive_expsym_cmds="echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~
1.44610 -+ cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~
1.44611 -+ echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
1.44612 -+ \$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"
1.44613 -+
1.44614 -+# Commands used to build a loadable module if different from building
1.44615 -+# a shared archive.
1.44616 -+module_cmds=""
1.44617 -+module_expsym_cmds=""
1.44618 -+
1.44619 -+# Whether we are building with GNU ld or not.
1.44620 -+with_gnu_ld="yes"
1.44621 -+
1.44622 -+# Flag that allows shared libraries with undefined symbols to be built.
1.44623 -+allow_undefined_flag=""
1.44624 -+
1.44625 -+# Flag that enforces no undefined symbols.
1.44626 -+no_undefined_flag=""
1.44627 -+
1.44628 -+# Flag to hardcode $libdir into a binary during linking.
1.44629 -+# This must work even if $libdir does not exist
1.44630 -+hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"
1.44631 -+
1.44632 -+# If ld is used when linking, flag to hardcode $libdir into a binary
1.44633 -+# during linking. This must work even if $libdir does not exist.
1.44634 -+hardcode_libdir_flag_spec_ld=""
1.44635 -+
1.44636 -+# Whether we need a single "-rpath" flag with a separated argument.
1.44637 -+hardcode_libdir_separator=""
1.44638 -+
1.44639 -+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
1.44640 -+# DIR into the resulting binary.
1.44641 -+hardcode_direct=no
1.44642 -+
1.44643 -+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
1.44644 -+# DIR into the resulting binary and the resulting library dependency is
1.44645 -+# "absolute",i.e impossible to change by setting ${shlibpath_var} if the
1.44646 -+# library is relocated.
1.44647 -+hardcode_direct_absolute=no
1.44648 -+
1.44649 -+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
1.44650 -+# into the resulting binary.
1.44651 -+hardcode_minus_L=no
1.44652 -+
1.44653 -+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
1.44654 -+# into the resulting binary.
1.44655 -+hardcode_shlibpath_var=unsupported
1.44656 -+
1.44657 -+# Set to "yes" if building a shared library automatically hardcodes DIR
1.44658 -+# into the library and all subsequent libraries and executables linked
1.44659 -+# against it.
1.44660 -+hardcode_automatic=no
1.44661 -+
1.44662 -+# Set to yes if linker adds runtime paths of dependent libraries
1.44663 -+# to runtime path list.
1.44664 -+inherit_rpath=no
1.44665 -+
1.44666 -+# Whether libtool must link a program against all its dependency libraries.
1.44667 -+link_all_deplibs=unknown
1.44668 -+
1.44669 -+# Fix the shell variable $srcfile for the compiler.
1.44670 -+fix_srcfile_path=""
1.44671 -+
1.44672 -+# Set to "yes" if exported symbols are required.
1.44673 -+always_export_symbols=no
1.44674 -+
1.44675 -+# The commands to list exported symbols.
1.44676 -+export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
1.44677 -+
1.44678 -+# Symbols that should not be listed in the preloaded symbols.
1.44679 -+exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
1.44680 -+
1.44681 -+# Symbols that must always be exported.
1.44682 -+include_expsyms=""
1.44683 -+
1.44684 -+# Commands necessary for linking programs (against libraries) with templates.
1.44685 -+prelink_cmds=""
1.44686 -+
1.44687 -+# Specify filename containing input files.
1.44688 -+file_list_spec=""
1.44689 -+
1.44690 -+# How to hardcode a shared library path into an executable.
1.44691 -+hardcode_action=immediate
1.44692 -+
1.44693 -+# ### END LIBTOOL CONFIG
1.44694 -+
1.44695 -+# Generated from ltmain.m4sh; do not edit by hand
1.44696 -+
1.44697 -+# ltmain.sh (GNU libtool 1.2435 2007/03/18 18:44:42) 2.1a
1.44698 -+# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
1.44699 -+
1.44700 -+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
1.44701 -+# This is free software; see the source for copying conditions. There is NO
1.44702 -+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1.44703 -+
1.44704 -+# This program is free software; you can redistribute it and/or modify
1.44705 -+# it under the terms of the GNU General Public License as published by
1.44706 -+# the Free Software Foundation; either version 2 of the License, or
1.44707 -+# (at your option) any later version.
1.44708 -+#
1.44709 -+# This program is distributed in the hope that it will be useful, but
1.44710 -+# WITHOUT ANY WARRANTY; without even the implied warranty of
1.44711 -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.44712 -+# General Public License for more details.
1.44713 -+#
1.44714 -+# You should have received a copy of the GNU General Public License
1.44715 -+# along with this program; if not, write to the Free Software
1.44716 -+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
1.44717 -+#
1.44718 -+# As a special exception to the GNU General Public License, if you
1.44719 -+# distribute this file as part of a program that contains a
1.44720 -+# configuration script generated by Autoconf, you may include it under
1.44721 -+# the same distribution terms that you use for the rest of that program.
1.44722 -+
1.44723 -+# Usage: $progname [OPTION]... [MODE-ARG]...
1.44724 -+#
1.44725 -+# Provide generalized library-building support services.
1.44726 -+#
1.44727 -+# --config show all configuration variables
1.44728 -+# --debug enable verbose shell tracing
1.44729 -+# -n, --dry-run display commands without modifying any files
1.44730 -+# --features display basic configuration information and exit
1.44731 -+# --mode=MODE use operation mode MODE
1.44732 -+# --preserve-dup-deps don't remove duplicate dependency libraries
1.44733 -+# --quiet, --silent don't print informational messages
1.44734 -+# --tag=TAG use configuration variables from tag TAG
1.44735 -+# -v, --verbose print informational messages (default)
1.44736 -+# --version print version information
1.44737 -+# -h, --help print short or long help message
1.44738 -+#
1.44739 -+# MODE must be one of the following:
1.44740 -+#
1.44741 -+# clean remove files from the build directory
1.44742 -+# compile compile a source file into a libtool object
1.44743 -+# execute automatically set library path, then run a program
1.44744 -+# finish complete the installation of libtool libraries
1.44745 -+# install install libraries or executables
1.44746 -+# link create a library or an executable
1.44747 -+# uninstall remove libraries from an installed directory
1.44748 -+#
1.44749 -+# MODE-ARGS vary depending on the MODE.
1.44750 -+# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
1.44751 -+#
1.44752 -+# When reporting a bug, please describe a test case to reproduce it and
1.44753 -+# include the following information:
1.44754 -+#
1.44755 -+# host-triplet: $host
1.44756 -+# shell: $SHELL
1.44757 -+# compiler: $LTCC
1.44758 -+# compiler flags: $LTCFLAGS
1.44759 -+# linker: $LD (gnu? $with_gnu_ld)
1.44760 -+# $progname: (GNU libtool 1.2435 2007/03/18 18:44:42) 2.1a
1.44761 -+# automake: $automake_version
1.44762 -+# autoconf: $autoconf_version
1.44763 -+#
1.44764 -+# Report bugs to <bug-libtool@gnu.org>.
1.44765 -+
1.44766 -+PROGRAM=ltmain.sh
1.44767 -+PACKAGE=libtool
1.44768 -+VERSION=2.1a
1.44769 -+TIMESTAMP=" 1.2435 2007/03/18 18:44:42"
1.44770 -+package_revision=1.2435
1.44771 -+
1.44772 -+# Be Bourne compatible
1.44773 -+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
1.44774 -+ emulate sh
1.44775 -+ NULLCMD=:
1.44776 -+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
1.44777 -+ # is contrary to our usage. Disable this feature.
1.44778 -+ alias -g '${1+"$@"}'='"$@"'
1.44779 -+ setopt NO_GLOB_SUBST
1.44780 -+else
1.44781 -+ case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
1.44782 -+fi
1.44783 -+BIN_SH=xpg4; export BIN_SH # for Tru64
1.44784 -+DUALCASE=1; export DUALCASE # for MKS sh
1.44785 -+
1.44786 -+# NLS nuisances: We save the old values to restore during execute mode.
1.44787 -+# Only set LANG and LC_ALL to C if already set.
1.44788 -+# These must not be set unconditionally because not all systems understand
1.44789 -+# e.g. LANG=C (notably SCO).
1.44790 -+for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
1.44791 -+do
1.44792 -+ eval "if test \"\${$lt_var+set}\" = set; then
1.44793 -+ save_$lt_var=\$$lt_var
1.44794 -+ $lt_var=C
1.44795 -+ export $lt_var
1.44796 -+ fi"
1.44797 -+done
1.44798 -+
1.44799 -+$lt_unset CDPATH
1.44800 -+
1.44801 -+
1.44802 -+
1.44803 -+
1.44804 -+
1.44805 -+: ${CP="cp -f"}
1.44806 -+: ${ECHO="echo"}
1.44807 -+: ${EGREP="/bin/grep -E"}
1.44808 -+: ${FGREP="/bin/grep -F"}
1.44809 -+: ${GREP="/bin/grep"}
1.44810 -+: ${LN_S="ln -s"}
1.44811 -+: ${MAKE="make"}
1.44812 -+: ${MKDIR="mkdir"}
1.44813 -+: ${MV="mv -f"}
1.44814 -+: ${RM="rm -f"}
1.44815 -+: ${SED="/bin/sed"}
1.44816 -+: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
1.44817 -+: ${Xsed="$SED -e 1s/^X//"}
1.44818 -+
1.44819 -+# Global variables:
1.44820 -+EXIT_SUCCESS=0
1.44821 -+EXIT_FAILURE=1
1.44822 -+EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
1.44823 -+EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
1.44824 -+
1.44825 -+exit_status=$EXIT_SUCCESS
1.44826 -+
1.44827 -+# Make sure IFS has a sensible default
1.44828 -+lt_nl='
1.44829 -+'
1.44830 -+IFS=" $lt_nl"
1.44831 -+
1.44832 -+dirname="s,/[^/]*$,,"
1.44833 -+basename="s,^.*/,,"
1.44834 -+
1.44835 -+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
1.44836 -+# is ksh but when the shell is invoked as "sh" and the current value of
1.44837 -+# the _XPG environment variable is not equal to 1 (one), the special
1.44838 -+# positional parameter $0, within a function call, is the name of the
1.44839 -+# function.
1.44840 -+progpath="$0"
1.44841 -+
1.44842 -+# The name of this program:
1.44843 -+# In the unlikely event $progname began with a '-', it would play havoc with
1.44844 -+# func_echo (imagine progname=-n), so we prepend ./ in that case:
1.44845 -+progname=`$ECHO "X$progpath" | $Xsed -e "$basename" -e 's,^-,./-,'`
1.44846 -+
1.44847 -+# Make sure we have an absolute path for reexecution:
1.44848 -+case $progpath in
1.44849 -+ [\\/]*|[A-Za-z]:\\*) ;;
1.44850 -+ *[\\/]*)
1.44851 -+ progdir=`$ECHO "X$progpath" | $Xsed -e "$dirname"`
1.44852 -+ progdir=`cd "$progdir" && pwd`
1.44853 -+ progpath="$progdir/$progname"
1.44854 -+ ;;
1.44855 -+ *)
1.44856 -+ save_IFS="$IFS"
1.44857 -+ IFS=:
1.44858 -+ for progdir in $PATH; do
1.44859 -+ IFS="$save_IFS"
1.44860 -+ test -x "$progdir/$progname" && break
1.44861 -+ done
1.44862 -+ IFS="$save_IFS"
1.44863 -+ test -n "$progdir" || progdir=`pwd`
1.44864 -+ progpath="$progdir/$progname"
1.44865 -+ ;;
1.44866 -+esac
1.44867 -+
1.44868 -+# Sed substitution that helps us do robust quoting. It backslashifies
1.44869 -+# metacharacters that are still active within double-quoted strings.
1.44870 -+Xsed="${SED}"' -e 1s/^X//'
1.44871 -+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
1.44872 -+
1.44873 -+# Same as above, but do not quote variable references.
1.44874 -+double_quote_subst='s/\(["`\\]\)/\\\1/g'
1.44875 -+
1.44876 -+# Re-`\' parameter expansions in output of double_quote_subst that were
1.44877 -+# `\'-ed in input to the same. If an odd number of `\' preceded a '$'
1.44878 -+# in input to double_quote_subst, that '$' was protected from expansion.
1.44879 -+# Since each input `\' is now two `\'s, look for any number of runs of
1.44880 -+# four `\'s followed by two `\'s and then a '$'. `\' that '$'.
1.44881 -+bs='\\'
1.44882 -+bs2='\\\\'
1.44883 -+bs4='\\\\\\\\'
1.44884 -+dollar='\$'
1.44885 -+sed_double_backslash="\
1.44886 -+ s/$bs4/&\\
1.44887 -+/g
1.44888 -+ s/^$bs2$dollar/$bs&/
1.44889 -+ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
1.44890 -+ s/\n//g"
1.44891 -+
1.44892 -+# Standard options:
1.44893 -+opt_dry_run=false
1.44894 -+opt_help=false
1.44895 -+opt_quiet=false
1.44896 -+opt_verbose=false
1.44897 -+
1.44898 -+# func_echo arg...
1.44899 -+# Echo program name prefixed message, along with the current mode
1.44900 -+# name if it has been set yet.
1.44901 -+func_echo ()
1.44902 -+{
1.44903 -+ $ECHO "$progname${mode+: }$mode: "${1+"$@"}
1.44904 -+}
1.44905 -+
1.44906 -+# func_verbose arg...
1.44907 -+# Echo program name prefixed message in verbose mode only.
1.44908 -+func_verbose ()
1.44909 -+{
1.44910 -+ $opt_verbose && func_echo ${1+"$@"}
1.44911 -+
1.44912 -+ # A bug in bash halts the script if the last line of a function
1.44913 -+ # fails when set -e is in force, so we need another command to
1.44914 -+ # work around that:
1.44915 -+ :
1.44916 -+}
1.44917 -+
1.44918 -+# func_error arg...
1.44919 -+# Echo program name prefixed message to standard error.
1.44920 -+func_error ()
1.44921 -+{
1.44922 -+ $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
1.44923 -+}
1.44924 -+
1.44925 -+# func_warning arg...
1.44926 -+# Echo program name prefixed warning message to standard error.
1.44927 -+func_warning ()
1.44928 -+{
1.44929 -+ $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
1.44930 -+}
1.44931 -+
1.44932 -+# func_fatal_error arg...
1.44933 -+# Echo program name prefixed message to standard error, and exit.
1.44934 -+func_fatal_error ()
1.44935 -+{
1.44936 -+ func_error ${1+"$@"}
1.44937 -+ exit $EXIT_FAILURE
1.44938 -+}
1.44939 -+
1.44940 -+# func_fatal_help arg...
1.44941 -+# Echo program name prefixed message to standard error, followed by
1.44942 -+# a help hint, and exit.
1.44943 -+func_fatal_help ()
1.44944 -+{
1.44945 -+ func_error ${1+"$@"}
1.44946 -+ func_fatal_error "$help"
1.44947 -+}
1.44948 -+help="Try \`$progname --help' for more information." ## default
1.44949 -+
1.44950 -+
1.44951 -+# func_grep expression filename
1.44952 -+# Check whether EXPRESSION matches any line of FILENAME, without output.
1.44953 -+func_grep ()
1.44954 -+{
1.44955 -+ $GREP "$1" "$2" >/dev/null 2>&1
1.44956 -+}
1.44957 -+
1.44958 -+
1.44959 -+# func_mkdir_p directory-path
1.44960 -+# Make sure the entire path to DIRECTORY-PATH is available.
1.44961 -+func_mkdir_p ()
1.44962 -+{
1.44963 -+ my_directory_path="$1"
1.44964 -+ my_dir_list=
1.44965 -+
1.44966 -+ if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
1.44967 -+
1.44968 -+ # Protect directory names starting with `-'
1.44969 -+ case $my_directory_path in
1.44970 -+ -*) my_directory_path="./$my_directory_path" ;;
1.44971 -+ esac
1.44972 -+
1.44973 -+ # While some portion of DIR does not yet exist...
1.44974 -+ while test ! -d "$my_directory_path"; do
1.44975 -+ # ...make a list in topmost first order. Use a colon delimited
1.44976 -+ # list incase some portion of path contains whitespace.
1.44977 -+ my_dir_list="$my_directory_path:$my_dir_list"
1.44978 -+
1.44979 -+ # If the last portion added has no slash in it, the list is done
1.44980 -+ case $my_directory_path in */*) ;; *) break ;; esac
1.44981 -+
1.44982 -+ # ...otherwise throw away the child directory and loop
1.44983 -+ my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
1.44984 -+ done
1.44985 -+ my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
1.44986 -+
1.44987 -+ save_mkdir_p_IFS="$IFS"; IFS=':'
1.44988 -+ for my_dir in $my_dir_list; do
1.44989 -+ IFS="$save_mkdir_p_IFS"
1.44990 -+ # mkdir can fail with a `File exist' error if two processes
1.44991 -+ # try to create one of the directories concurrently. Don't
1.44992 -+ # stop in that case!
1.44993 -+ $MKDIR "$my_dir" 2>/dev/null || :
1.44994 -+ done
1.44995 -+ IFS="$save_mkdir_p_IFS"
1.44996 -+
1.44997 -+ # Bail out if we (or some other process) failed to create a directory.
1.44998 -+ test -d "$my_directory_path" || \
1.44999 -+ func_fatal_error "Failed to create \`$1'"
1.45000 -+ fi
1.45001 -+}
1.45002 -+
1.45003 -+
1.45004 -+# func_mktempdir [string]
1.45005 -+# Make a temporary directory that won't clash with other running
1.45006 -+# libtool processes, and avoids race conditions if possible. If
1.45007 -+# given, STRING is the basename for that directory.
1.45008 -+func_mktempdir ()
1.45009 -+{
1.45010 -+ my_template="${TMPDIR-/tmp}/${1-$progname}"
1.45011 -+
1.45012 -+ if test "$opt_dry_run" = ":"; then
1.45013 -+ # Return a directory name, but don't create it in dry-run mode
1.45014 -+ my_tmpdir="${my_template}-$$"
1.45015 -+ else
1.45016 -+
1.45017 -+ # If mktemp works, use that first and foremost
1.45018 -+ my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
1.45019 -+
1.45020 -+ if test ! -d "$my_tmpdir"; then
1.45021 -+ # Failing that, at least try and use $RANDOM to avoid a race
1.45022 -+ my_tmpdir="${my_template}-${RANDOM-0}$$"
1.45023 -+
1.45024 -+ save_mktempdir_umask=`umask`
1.45025 -+ umask 0077
1.45026 -+ $MKDIR "$my_tmpdir"
1.45027 -+ umask $save_mktempdir_umask
1.45028 -+ fi
1.45029 -+
1.45030 -+ # If we're not in dry-run mode, bomb out on failure
1.45031 -+ test -d "$my_tmpdir" || \
1.45032 -+ func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
1.45033 -+ fi
1.45034 -+
1.45035 -+ $ECHO "X$my_tmpdir" | $Xsed
1.45036 -+}
1.45037 -+
1.45038 -+
1.45039 -+# func_quote_for_eval arg
1.45040 -+# Aesthetically quote ARG to be evaled later.
1.45041 -+# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
1.45042 -+# is double-quoted, suitable for a subsequent eval, whereas
1.45043 -+# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
1.45044 -+# which are still active within double quotes backslashified.
1.45045 -+func_quote_for_eval ()
1.45046 -+{
1.45047 -+ case $1 in
1.45048 -+ *[\\\`\"\$]*)
1.45049 -+ func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
1.45050 -+ *)
1.45051 -+ func_quote_for_eval_unquoted_result="$1" ;;
1.45052 -+ esac
1.45053 -+
1.45054 -+ case $func_quote_for_eval_unquoted_result in
1.45055 -+ # Double-quote args containing shell metacharacters to delay
1.45056 -+ # word splitting, command substitution and and variable
1.45057 -+ # expansion for a subsequent eval.
1.45058 -+ # Many Bourne shells cannot handle close brackets correctly
1.45059 -+ # in scan sets, so we specify it separately.
1.45060 -+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1.45061 -+ func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
1.45062 -+ ;;
1.45063 -+ *)
1.45064 -+ func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
1.45065 -+ esac
1.45066 -+}
1.45067 -+
1.45068 -+
1.45069 -+# func_quote_for_expand arg
1.45070 -+# Aesthetically quote ARG to be evaled later; same as above,
1.45071 -+# but do not quote variable references.
1.45072 -+func_quote_for_expand ()
1.45073 -+{
1.45074 -+ case $1 in
1.45075 -+ *[\\\`\"]*)
1.45076 -+ my_arg=`$ECHO "X$1" | $Xsed \
1.45077 -+ -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
1.45078 -+ *)
1.45079 -+ my_arg="$1" ;;
1.45080 -+ esac
1.45081 -+
1.45082 -+ case $my_arg in
1.45083 -+ # Double-quote args containing shell metacharacters to delay
1.45084 -+ # word splitting and command substitution for a subsequent eval.
1.45085 -+ # Many Bourne shells cannot handle close brackets correctly
1.45086 -+ # in scan sets, so we specify it separately.
1.45087 -+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1.45088 -+ my_arg="\"$my_arg\""
1.45089 -+ ;;
1.45090 -+ esac
1.45091 -+
1.45092 -+ func_quote_for_expand_result="$my_arg"
1.45093 -+}
1.45094 -+
1.45095 -+
1.45096 -+# func_show_eval cmd [fail_exp]
1.45097 -+# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
1.45098 -+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
1.45099 -+# is given, then evaluate it.
1.45100 -+func_show_eval ()
1.45101 -+{
1.45102 -+ my_cmd="$1"
1.45103 -+ my_fail_exp="${2-:}"
1.45104 -+
1.45105 -+ ${opt_silent-false} || {
1.45106 -+ func_quote_for_expand "$my_cmd"
1.45107 -+ eval "func_echo $func_quote_for_expand_result"
1.45108 -+ }
1.45109 -+
1.45110 -+ if ${opt_dry_run-false}; then :; else
1.45111 -+ eval "$my_cmd"
1.45112 -+ my_status=$?
1.45113 -+ if test "$my_status" -eq 0; then :; else
1.45114 -+ eval "(exit $my_status); $my_fail_exp"
1.45115 -+ fi
1.45116 -+ fi
1.45117 -+}
1.45118 -+
1.45119 -+
1.45120 -+
1.45121 -+
1.45122 -+
1.45123 -+# func_version
1.45124 -+# Echo version message to standard output and exit.
1.45125 -+func_version ()
1.45126 -+{
1.45127 -+ $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
1.45128 -+ s/^# //
1.45129 -+ s/^# *$//
1.45130 -+ s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
1.45131 -+ p
1.45132 -+ }' < "$progpath"
1.45133 -+ exit $?
1.45134 -+}
1.45135 -+
1.45136 -+# func_usage
1.45137 -+# Echo short help message to standard output and exit.
1.45138 -+func_usage ()
1.45139 -+{
1.45140 -+ $SED -n '/^# Usage:/,/# -h/ {
1.45141 -+ s/^# //
1.45142 -+ s/^# *$//
1.45143 -+ s/\$progname/'$progname'/
1.45144 -+ p
1.45145 -+ }' < "$progpath"
1.45146 -+ $ECHO
1.45147 -+ $ECHO "run \`$progname --help | more' for full usage"
1.45148 -+ exit $?
1.45149 -+}
1.45150 -+
1.45151 -+# func_help
1.45152 -+# Echo long help message to standard output and exit.
1.45153 -+func_help ()
1.45154 -+{
1.45155 -+ $SED -n '/^# Usage:/,/# Report bugs to/ {
1.45156 -+ s/^# //
1.45157 -+ s/^# *$//
1.45158 -+ s*\$progname*'$progname'*
1.45159 -+ s*\$host*'"$host"'*
1.45160 -+ s*\$SHELL*'"$SHELL"'*
1.45161 -+ s*\$LTCC*'"$LTCC"'*
1.45162 -+ s*\$LTCFLAGS*'"$LTCFLAGS"'*
1.45163 -+ s*\$LD*'"$LD"'*
1.45164 -+ s/\$with_gnu_ld/'"$with_gnu_ld"'/
1.45165 -+ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
1.45166 -+ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
1.45167 -+ p
1.45168 -+ }' < "$progpath"
1.45169 -+ exit $?
1.45170 -+}
1.45171 -+
1.45172 -+# func_missing_arg argname
1.45173 -+# Echo program name prefixed message to standard error and set global
1.45174 -+# exit_cmd.
1.45175 -+func_missing_arg ()
1.45176 -+{
1.45177 -+ func_error "missing argument for $1"
1.45178 -+ exit_cmd=exit
1.45179 -+}
1.45180 -+
1.45181 -+exit_cmd=:
1.45182 -+
1.45183 -+
1.45184 -+
1.45185 -+
1.45186 -+
1.45187 -+# Check that we have a working $ECHO.
1.45188 -+if test "X$1" = X--no-reexec; then
1.45189 -+ # Discard the --no-reexec flag, and continue.
1.45190 -+ shift
1.45191 -+elif test "X$1" = X--fallback-echo; then
1.45192 -+ # Avoid inline document here, it may be left over
1.45193 -+ :
1.45194 -+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
1.45195 -+ # Yippee, $ECHO works!
1.45196 -+ :
1.45197 -+else
1.45198 -+ # Restart under the correct shell, and then maybe $ECHO will work.
1.45199 -+ exec $SHELL "$progpath" --no-reexec ${1+"$@"}
1.45200 -+fi
1.45201 -+
1.45202 -+if test "X$1" = X--fallback-echo; then
1.45203 -+ # used as fallback echo
1.45204 -+ shift
1.45205 -+ cat <<EOF
1.45206 -+$*
1.45207 -+EOF
1.45208 -+ exit $EXIT_SUCCESS
1.45209 -+fi
1.45210 -+
1.45211 -+magic="%%%MAGIC variable%%%"
1.45212 -+
1.45213 -+
1.45214 -+# Global variables.
1.45215 -+# $mode is unset
1.45216 -+nonopt=
1.45217 -+execute_dlfiles=
1.45218 -+preserve_args=
1.45219 -+lo2o="s/\\.lo\$/.${objext}/"
1.45220 -+o2lo="s/\\.${objext}\$/.lo/"
1.45221 -+extracted_archives=
1.45222 -+extracted_serial=0
1.45223 -+
1.45224 -+opt_dry_run=false
1.45225 -+opt_duplicate_deps=false
1.45226 -+opt_silent=false
1.45227 -+opt_debug=:
1.45228 -+
1.45229 -+# If this variable is set in any of the actions, the command in it
1.45230 -+# will be execed at the end. This prevents here-documents from being
1.45231 -+# left over by shells.
1.45232 -+exec_cmd=
1.45233 -+
1.45234 -+# func_fatal_configuration arg...
1.45235 -+# Echo program name prefixed message to standard error, followed by
1.45236 -+# a configuration failure hint, and exit.
1.45237 -+func_fatal_configuration ()
1.45238 -+{
1.45239 -+ func_error ${1+"$@"}
1.45240 -+ func_error "See the $PACKAGE documentation for more information."
1.45241 -+ func_fatal_error "Fatal configuration error."
1.45242 -+}
1.45243 -+
1.45244 -+
1.45245 -+# func_config
1.45246 -+# Display the configuration for all the tags in this script.
1.45247 -+func_config ()
1.45248 -+{
1.45249 -+ re_begincf='^# ### BEGIN LIBTOOL'
1.45250 -+ re_endcf='^# ### END LIBTOOL'
1.45251 -+
1.45252 -+ # Default configuration.
1.45253 -+ $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
1.45254 -+
1.45255 -+ # Now print the configurations for the tags.
1.45256 -+ for tagname in $taglist; do
1.45257 -+ $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
1.45258 -+ done
1.45259 -+
1.45260 -+ exit $?
1.45261 -+}
1.45262 -+
1.45263 -+# func_features
1.45264 -+# Display the features supported by this script.
1.45265 -+func_features ()
1.45266 -+{
1.45267 -+ $ECHO "host: $host"
1.45268 -+ if test "$build_libtool_libs" = yes; then
1.45269 -+ $ECHO "enable shared libraries"
1.45270 -+ else
1.45271 -+ $ECHO "disable shared libraries"
1.45272 -+ fi
1.45273 -+ if test "$build_old_libs" = yes; then
1.45274 -+ $ECHO "enable static libraries"
1.45275 -+ else
1.45276 -+ $ECHO "disable static libraries"
1.45277 -+ fi
1.45278 -+
1.45279 -+ exit $?
1.45280 -+}
1.45281 -+
1.45282 -+# func_enable_tag tagname
1.45283 -+# Verify that TAGNAME is valid, and either flag an error and exit, or
1.45284 -+# enable the TAGNAME tag. We also add TAGNAME to the global $taglist
1.45285 -+# variable here.
1.45286 -+func_enable_tag ()
1.45287 -+{
1.45288 -+ # Global variable:
1.45289 -+ tagname="$1"
1.45290 -+
1.45291 -+ re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
1.45292 -+ re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
1.45293 -+ sed_extractcf="/$re_begincf/,/$re_endcf/p"
1.45294 -+
1.45295 -+ # Validate tagname.
1.45296 -+ case $tagname in
1.45297 -+ *[!-_A-Za-z0-9,/]*)
1.45298 -+ func_fatal_error "invalid tag name: $tagname"
1.45299 -+ ;;
1.45300 -+ esac
1.45301 -+
1.45302 -+ # Don't test for the "default" C tag, as we know it's
1.45303 -+ # there but not specially marked.
1.45304 -+ case $tagname in
1.45305 -+ CC) ;;
1.45306 -+ *)
1.45307 -+ if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
1.45308 -+ taglist="$taglist $tagname"
1.45309 -+
1.45310 -+ # Evaluate the configuration. Be careful to quote the path
1.45311 -+ # and the sed script, to avoid splitting on whitespace, but
1.45312 -+ # also don't use non-portable quotes within backquotes within
1.45313 -+ # quotes we have to do it in 2 steps:
1.45314 -+ extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
1.45315 -+ eval "$extractedcf"
1.45316 -+ else
1.45317 -+ func_error "ignoring unknown tag $tagname"
1.45318 -+ fi
1.45319 -+ ;;
1.45320 -+ esac
1.45321 -+}
1.45322 -+
1.45323 -+
1.45324 -+func_mode_help ()
1.45325 -+{
1.45326 -+ # We need to display help for each of the modes.
1.45327 -+ case $mode in
1.45328 -+ "")
1.45329 -+ # Generic help is extracted from the usage comments
1.45330 -+ # at the start of this file.
1.45331 -+ func_help
1.45332 -+ ;;
1.45333 -+
1.45334 -+ clean)
1.45335 -+ $ECHO \
1.45336 -+"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
1.45337 -+
1.45338 -+Remove files from the build directory.
1.45339 -+
1.45340 -+RM is the name of the program to use to delete files associated with each FILE
1.45341 -+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
1.45342 -+to RM.
1.45343 -+
1.45344 -+If FILE is a libtool library, object or program, all the files associated
1.45345 -+with it are deleted. Otherwise, only FILE itself is deleted using RM."
1.45346 -+ ;;
1.45347 -+
1.45348 -+ compile)
1.45349 -+ $ECHO \
1.45350 -+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
1.45351 -+
1.45352 -+Compile a source file into a libtool library object.
1.45353 -+
1.45354 -+This mode accepts the following additional options:
1.45355 -+
1.45356 -+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE
1.45357 -+ -no-suppress do not suppress compiler output for multiple passes
1.45358 -+ -prefer-pic try to building PIC objects only
1.45359 -+ -prefer-non-pic try to building non-PIC objects only
1.45360 -+ -shared do not build a \`.o' file suitable for static linking
1.45361 -+ -static only build a \`.o' file suitable for static linking
1.45362 -+
1.45363 -+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
1.45364 -+from the given SOURCEFILE.
1.45365 -+
1.45366 -+The output file name is determined by removing the directory component from
1.45367 -+SOURCEFILE, then substituting the C source code suffix \`.c' with the
1.45368 -+library object suffix, \`.lo'."
1.45369 -+ ;;
1.45370 -+
1.45371 -+ execute)
1.45372 -+ $ECHO \
1.45373 -+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
1.45374 -+
1.45375 -+Automatically set library path, then run a program.
1.45376 -+
1.45377 -+This mode accepts the following additional options:
1.45378 -+
1.45379 -+ -dlopen FILE add the directory containing FILE to the library path
1.45380 -+
1.45381 -+This mode sets the library path environment variable according to \`-dlopen'
1.45382 -+flags.
1.45383 -+
1.45384 -+If any of the ARGS are libtool executable wrappers, then they are translated
1.45385 -+into their corresponding uninstalled binary, and any of their required library
1.45386 -+directories are added to the library path.
1.45387 -+
1.45388 -+Then, COMMAND is executed, with ARGS as arguments."
1.45389 -+ ;;
1.45390 -+
1.45391 -+ finish)
1.45392 -+ $ECHO \
1.45393 -+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
1.45394 -+
1.45395 -+Complete the installation of libtool libraries.
1.45396 -+
1.45397 -+Each LIBDIR is a directory that contains libtool libraries.
1.45398 -+
1.45399 -+The commands that this mode executes may require superuser privileges. Use
1.45400 -+the \`--dry-run' option if you just want to see what would be executed."
1.45401 -+ ;;
1.45402 -+
1.45403 -+ install)
1.45404 -+ $ECHO \
1.45405 -+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
1.45406 -+
1.45407 -+Install executables or libraries.
1.45408 -+
1.45409 -+INSTALL-COMMAND is the installation command. The first component should be
1.45410 -+either the \`install' or \`cp' program.
1.45411 -+
1.45412 -+The following components of INSTALL-COMMAND are treated specially:
1.45413 -+
1.45414 -+ -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation
1.45415 -+
1.45416 -+The rest of the components are interpreted as arguments to that command (only
1.45417 -+BSD-compatible install options are recognized)."
1.45418 -+ ;;
1.45419 -+
1.45420 -+ link)
1.45421 -+ $ECHO \
1.45422 -+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
1.45423 -+
1.45424 -+Link object files or libraries together to form another library, or to
1.45425 -+create an executable program.
1.45426 -+
1.45427 -+LINK-COMMAND is a command using the C compiler that you would use to create
1.45428 -+a program from several object files.
1.45429 -+
1.45430 -+The following components of LINK-COMMAND are treated specially:
1.45431 -+
1.45432 -+ -all-static do not do any dynamic linking at all
1.45433 -+ -avoid-version do not add a version suffix if possible
1.45434 -+ -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
1.45435 -+ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
1.45436 -+ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
1.45437 -+ -export-symbols SYMFILE
1.45438 -+ try to export only the symbols listed in SYMFILE
1.45439 -+ -export-symbols-regex REGEX
1.45440 -+ try to export only the symbols matching REGEX
1.45441 -+ -LLIBDIR search LIBDIR for required installed libraries
1.45442 -+ -lNAME OUTPUT-FILE requires the installed library libNAME
1.45443 -+ -module build a library that can dlopened
1.45444 -+ -no-fast-install disable the fast-install mode
1.45445 -+ -no-install link a not-installable executable
1.45446 -+ -no-undefined declare that a library does not refer to external symbols
1.45447 -+ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
1.45448 -+ -objectlist FILE Use a list of object files found in FILE to specify objects
1.45449 -+ -precious-files-regex REGEX
1.45450 -+ don't remove output files matching REGEX
1.45451 -+ -release RELEASE specify package release information
1.45452 -+ -rpath LIBDIR the created library will eventually be installed in LIBDIR
1.45453 -+ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
1.45454 -+ -shared only do dynamic linking of libtool libraries
1.45455 -+ -shrext SUFFIX override the standard shared library file extension
1.45456 -+ -static do not do any dynamic linking of uninstalled libtool libraries
1.45457 -+ -static-libtool-libs
1.45458 -+ do not do any dynamic linking of libtool libraries
1.45459 -+ -version-info CURRENT[:REVISION[:AGE]]
1.45460 -+ specify library version info [each variable defaults to 0]
1.45461 -+ -weak LIBNAME declare that the target provides the LIBNAME interface
1.45462 -+
1.45463 -+All other options (arguments beginning with \`-') are ignored.
1.45464 -+
1.45465 -+Every other argument is treated as a filename. Files ending in \`.la' are
1.45466 -+treated as uninstalled libtool libraries, other files are standard or library
1.45467 -+object files.
1.45468 -+
1.45469 -+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
1.45470 -+only library objects (\`.lo' files) may be specified, and \`-rpath' is
1.45471 -+required, except when creating a convenience library.
1.45472 -+
1.45473 -+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
1.45474 -+using \`ar' and \`ranlib', or on Windows using \`lib'.
1.45475 -+
1.45476 -+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
1.45477 -+is created, otherwise an executable program is created."
1.45478 -+ ;;
1.45479 -+
1.45480 -+ uninstall)
1.45481 -+ $ECHO \
1.45482 -+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
1.45483 -+
1.45484 -+Remove libraries from an installation directory.
1.45485 -+
1.45486 -+RM is the name of the program to use to delete files associated with each FILE
1.45487 -+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
1.45488 -+to RM.
1.45489 -+
1.45490 -+If FILE is a libtool library, all the files associated with it are deleted.
1.45491 -+Otherwise, only FILE itself is deleted using RM."
1.45492 -+ ;;
1.45493 -+
1.45494 -+ *)
1.45495 -+ func_fatal_help "invalid operation mode \`$mode'"
1.45496 -+ ;;
1.45497 -+ esac
1.45498 -+
1.45499 -+ $ECHO
1.45500 -+ $ECHO "Try \`$progname --help' for more information about other modes."
1.45501 -+
1.45502 -+ exit $?
1.45503 -+}
1.45504 -+
1.45505 -+# Generated shell functions inserted here.
1.45506 -+
1.45507 -+# func_dirname file append nondir_replacement
1.45508 -+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
1.45509 -+# otherwise set result to NONDIR_REPLACEMENT.
1.45510 -+func_dirname ()
1.45511 -+{
1.45512 -+ case ${1} in
1.45513 -+ */*) func_dirname_result="${1%/*}${2}" ;;
1.45514 -+ * ) func_dirname_result="${3}" ;;
1.45515 -+ esac
1.45516 -+}
1.45517 -+
1.45518 -+# func_basename file
1.45519 -+func_basename ()
1.45520 -+{
1.45521 -+ func_basename_result="${1##*/}"
1.45522 -+}
1.45523 -+
1.45524 -+# func_dirname_and_basename file append nondir_replacement
1.45525 -+# perform func_basename and func_dirname in a single function
1.45526 -+# call:
1.45527 -+# dirname: Compute the dirname of FILE. If nonempty,
1.45528 -+# add APPEND to the result, otherwise set result
1.45529 -+# to NONDIR_REPLACEMENT.
1.45530 -+# value returned in "$func_dirname_result"
1.45531 -+# basename: Compute filename of FILE.
1.45532 -+# value retuned in "$func_basename_result"
1.45533 -+# Implementation must be kept synchronized with func_dirname
1.45534 -+# and func_basename. For efficiency, we do not delegate to
1.45535 -+# those functions but instead duplicate the functionality here.
1.45536 -+func_dirname_and_basename ()
1.45537 -+{
1.45538 -+ case ${1} in
1.45539 -+ */*) func_dirname_result="${1%/*}${2}" ;;
1.45540 -+ * ) func_dirname_result="${3}" ;;
1.45541 -+ esac
1.45542 -+ func_basename_result="${1##*/}"
1.45543 -+}
1.45544 -+
1.45545 -+# func_stripname prefix suffix name
1.45546 -+# strip PREFIX and SUFFIX off of NAME.
1.45547 -+# PREFIX and SUFFIX must not contain globbing or regex special
1.45548 -+# characters, hashes, percent signs, but SUFFIX may contain a leading
1.45549 -+# dot (in which case that matches only a dot).
1.45550 -+func_stripname ()
1.45551 -+{
1.45552 -+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
1.45553 -+ # positional parameters, so assign one to ordinary parameter first.
1.45554 -+ func_stripname_result=${3}
1.45555 -+ func_stripname_result=${func_stripname_result#"${1}"}
1.45556 -+ func_stripname_result=${func_stripname_result%"${2}"}
1.45557 -+}
1.45558 -+
1.45559 -+# func_opt_split
1.45560 -+func_opt_split ()
1.45561 -+{
1.45562 -+ func_opt_split_opt=${1%%=*}
1.45563 -+ func_opt_split_arg=${1#*=}
1.45564 -+}
1.45565 -+
1.45566 -+# func_lo2o object
1.45567 -+func_lo2o ()
1.45568 -+{
1.45569 -+ case ${1} in
1.45570 -+ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
1.45571 -+ *) func_lo2o_result=${1} ;;
1.45572 -+ esac
1.45573 -+}
1.45574 -+
1.45575 -+# func_xform libobj-or-source
1.45576 -+func_xform ()
1.45577 -+{
1.45578 -+ func_xform_result=${1%.*}.lo
1.45579 -+}
1.45580 -+
1.45581 -+# func_arith arithmetic-term...
1.45582 -+func_arith ()
1.45583 -+{
1.45584 -+ func_arith_result=$(( $* ))
1.45585 -+}
1.45586 -+
1.45587 -+# func_len string
1.45588 -+# STRING may not start with a hyphen.
1.45589 -+func_len ()
1.45590 -+{
1.45591 -+ func_len_result=${#1}
1.45592 -+}
1.45593 -+
1.45594 -+
1.45595 -+# func_append var value
1.45596 -+# Append VALUE to the end of shell variable VAR.
1.45597 -+func_append ()
1.45598 -+{
1.45599 -+ eval "$1+=\$2"
1.45600 -+}
1.45601 -+# Generated shell functions inserted here.
1.45602 -+
1.45603 -+
1.45604 -+# Parse options once, thoroughly. This comes as soon as possible in
1.45605 -+# the script to make things like `libtool --version' happen quickly.
1.45606 -+{
1.45607 -+
1.45608 -+ # Shorthand for --mode=foo, only valid as the first argument
1.45609 -+ case $1 in
1.45610 -+ clean|clea|cle|cl)
1.45611 -+ shift; set dummy --mode clean ${1+"$@"}; shift
1.45612 -+ ;;
1.45613 -+ compile|compil|compi|comp|com|co|c)
1.45614 -+ shift; set dummy --mode compile ${1+"$@"}; shift
1.45615 -+ ;;
1.45616 -+ execute|execut|execu|exec|exe|ex|e)
1.45617 -+ shift; set dummy --mode execute ${1+"$@"}; shift
1.45618 -+ ;;
1.45619 -+ finish|finis|fini|fin|fi|f)
1.45620 -+ shift; set dummy --mode finish ${1+"$@"}; shift
1.45621 -+ ;;
1.45622 -+ install|instal|insta|inst|ins|in|i)
1.45623 -+ shift; set dummy --mode install ${1+"$@"}; shift
1.45624 -+ ;;
1.45625 -+ link|lin|li|l)
1.45626 -+ shift; set dummy --mode link ${1+"$@"}; shift
1.45627 -+ ;;
1.45628 -+ uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
1.45629 -+ shift; set dummy --mode uninstall ${1+"$@"}; shift
1.45630 -+ ;;
1.45631 -+ esac
1.45632 -+
1.45633 -+ # Parse non-mode specific arguments:
1.45634 -+ while test "$#" -gt 0; do
1.45635 -+ opt="$1"
1.45636 -+ shift
1.45637 -+
1.45638 -+ case $opt in
1.45639 -+ --config) func_config ;;
1.45640 -+
1.45641 -+ --debug) preserve_args="$preserve_args $opt"
1.45642 -+ func_echo "enabling shell trace mode"
1.45643 -+ opt_debug='set -x'
1.45644 -+ $opt_debug
1.45645 -+ ;;
1.45646 -+
1.45647 -+ -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break
1.45648 -+ execute_dlfiles="$execute_dlfiles $1"
1.45649 -+ shift
1.45650 -+ ;;
1.45651 -+
1.45652 -+ --dry-run | -n) opt_dry_run=: ;;
1.45653 -+ --features) func_features ;;
1.45654 -+ --finish) mode="finish" ;;
1.45655 -+
1.45656 -+ --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break
1.45657 -+ case $1 in
1.45658 -+ # Valid mode arguments:
1.45659 -+ clean) ;;
1.45660 -+ compile) ;;
1.45661 -+ execute) ;;
1.45662 -+ finish) ;;
1.45663 -+ install) ;;
1.45664 -+ link) ;;
1.45665 -+ relink) ;;
1.45666 -+ uninstall) ;;
1.45667 -+
1.45668 -+ # Catch anything else as an error
1.45669 -+ *) func_error "invalid argument for $opt"
1.45670 -+ exit_cmd=exit
1.45671 -+ break
1.45672 -+ ;;
1.45673 -+ esac
1.45674 -+
1.45675 -+ mode="$1"
1.45676 -+ shift
1.45677 -+ ;;
1.45678 -+
1.45679 -+ --preserve-dup-deps)
1.45680 -+ opt_duplicate_deps=: ;;
1.45681 -+
1.45682 -+ --quiet|--silent) preserve_args="$preserve_args $opt"
1.45683 -+ opt_silent=:
1.45684 -+ ;;
1.45685 -+
1.45686 -+ --verbose| -v) preserve_args="$preserve_args $opt"
1.45687 -+ opt_silent=false
1.45688 -+ ;;
1.45689 -+
1.45690 -+ --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break
1.45691 -+ preserve_args="$preserve_args $opt $1"
1.45692 -+ func_enable_tag "$1" # tagname is set here
1.45693 -+ shift
1.45694 -+ ;;
1.45695 -+
1.45696 -+ # Separate optargs to long options:
1.45697 -+ -dlopen=*|--mode=*|--tag=*)
1.45698 -+ func_opt_split "$opt"
1.45699 -+ set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
1.45700 -+ shift
1.45701 -+ ;;
1.45702 -+
1.45703 -+ -\?|-h) func_usage ;;
1.45704 -+ --help) opt_help=: ;;
1.45705 -+ --version) func_version ;;
1.45706 -+
1.45707 -+ -*) func_fatal_help "unrecognized option \`$opt'" ;;
1.45708 -+
1.45709 -+ *) nonopt="$opt"
1.45710 -+ break
1.45711 -+ ;;
1.45712 -+ esac
1.45713 -+ done
1.45714 -+
1.45715 -+ # Now that we've collected a possible --mode arg, show help if necessary
1.45716 -+ $opt_help && func_mode_help
1.45717 -+
1.45718 -+ case $host in
1.45719 -+ *cygwin* | *mingw* | *pw32*)
1.45720 -+ # don't eliminate duplications in $postdeps and $predeps
1.45721 -+ opt_duplicate_compiler_generated_deps=:
1.45722 -+ ;;
1.45723 -+ *)
1.45724 -+ opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
1.45725 -+ ;;
1.45726 -+ esac
1.45727 -+
1.45728 -+ # Having warned about all mis-specified options, bail out if
1.45729 -+ # anything was wrong.
1.45730 -+ $exit_cmd $EXIT_FAILURE
1.45731 -+}
1.45732 -+
1.45733 -+# func_check_version_match
1.45734 -+# Ensure that we are using m4 macros, and libtool script from the same
1.45735 -+# release of libtool.
1.45736 -+func_check_version_match ()
1.45737 -+{
1.45738 -+ if test "$package_revision" != "$macro_revision"; then
1.45739 -+ if test "$VERSION" != "$macro_version"; then
1.45740 -+ if test -z "$macro_version"; then
1.45741 -+ cat >&2 <<_LT_EOF
1.45742 -+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
1.45743 -+$progname: definition of this LT_INIT comes from an older release.
1.45744 -+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
1.45745 -+$progname: and run autoconf again.
1.45746 -+_LT_EOF
1.45747 -+ else
1.45748 -+ cat >&2 <<_LT_EOF
1.45749 -+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
1.45750 -+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
1.45751 -+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
1.45752 -+$progname: and run autoconf again.
1.45753 -+_LT_EOF
1.45754 -+ fi
1.45755 -+ else
1.45756 -+ cat >&2 <<_LT_EOF
1.45757 -+$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
1.45758 -+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
1.45759 -+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
1.45760 -+$progname: of $PACKAGE $VERSION and run autoconf again.
1.45761 -+_LT_EOF
1.45762 -+ fi
1.45763 -+
1.45764 -+ exit $EXIT_MISMATCH
1.45765 -+ fi
1.45766 -+}
1.45767 -+
1.45768 -+
1.45769 -+## ----------- ##
1.45770 -+## Main. ##
1.45771 -+## ----------- ##
1.45772 -+
1.45773 -+{
1.45774 -+ # Sanity checks first:
1.45775 -+ func_check_version_match
1.45776 -+
1.45777 -+ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
1.45778 -+ func_fatal_configuration "not configured to build any kind of library"
1.45779 -+ fi
1.45780 -+
1.45781 -+ test -z "$mode" && func_fatal_error "error: you must specify a MODE."
1.45782 -+
1.45783 -+
1.45784 -+ # Darwin sucks
1.45785 -+ eval std_shrext=\"$shrext_cmds\"
1.45786 -+
1.45787 -+
1.45788 -+ # Only execute mode is allowed to have -dlopen flags.
1.45789 -+ if test -n "$execute_dlfiles" && test "$mode" != execute; then
1.45790 -+ func_error "unrecognized option \`-dlopen'"
1.45791 -+ $ECHO "$help" 1>&2
1.45792 -+ exit $EXIT_FAILURE
1.45793 -+ fi
1.45794 -+
1.45795 -+ # Change the help message to a mode-specific one.
1.45796 -+ generic_help="$help"
1.45797 -+ help="Try \`$progname --help --mode=$mode' for more information."
1.45798 -+}
1.45799 -+
1.45800 -+
1.45801 -+# func_lalib_p file
1.45802 -+# True iff FILE is a libtool `.la' library or `.lo' object file.
1.45803 -+# This function is only a basic sanity check; it will hardly flush out
1.45804 -+# determined imposters.
1.45805 -+func_lalib_p ()
1.45806 -+{
1.45807 -+ $SED -e 4q "$1" 2>/dev/null \
1.45808 -+ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
1.45809 -+}
1.45810 -+
1.45811 -+# func_lalib_unsafe_p file
1.45812 -+# True iff FILE is a libtool `.la' library or `.lo' object file.
1.45813 -+# This function implements the same check as func_lalib_p without
1.45814 -+# resorting to external programs. To this end, it redirects stdin and
1.45815 -+# closes it afterwards, without saving the original file descriptor.
1.45816 -+# As a safety measure, use it only where a negative result would be
1.45817 -+# fatal anyway. Works if `file' does not exist.
1.45818 -+func_lalib_unsafe_p ()
1.45819 -+{
1.45820 -+ lalib_p=no
1.45821 -+ if test -r "$1" && exec 5<&1 <"$1"; then
1.45822 -+ for lalib_p_l in 1 2 3 4
1.45823 -+ do
1.45824 -+ read lalib_p_line
1.45825 -+ case "$lalib_p_line" in
1.45826 -+ \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
1.45827 -+ esac
1.45828 -+ done
1.45829 -+ exec 1<&5 5<&-
1.45830 -+ fi
1.45831 -+ test "$lalib_p" = yes
1.45832 -+}
1.45833 -+
1.45834 -+# func_ltwrapper_p file
1.45835 -+# True iff FILE is a libtool wrapper script.
1.45836 -+# This function is only a basic sanity check; it will hardly flush out
1.45837 -+# determined imposters.
1.45838 -+func_ltwrapper_p ()
1.45839 -+{
1.45840 -+ func_lalib_p "$1"
1.45841 -+}
1.45842 -+
1.45843 -+
1.45844 -+# func_execute_cmds commands fail_cmd
1.45845 -+# Execute tilde-delimited COMMANDS.
1.45846 -+# If FAIL_CMD is given, eval that upon failure.
1.45847 -+# FAIL_CMD may read-access the current command in variable CMD!
1.45848 -+func_execute_cmds ()
1.45849 -+{
1.45850 -+ $opt_debug
1.45851 -+ save_ifs=$IFS; IFS='~'
1.45852 -+ for cmd in $1; do
1.45853 -+ IFS=$save_ifs
1.45854 -+ eval cmd=\"$cmd\"
1.45855 -+ func_show_eval "$cmd" "${2-:}"
1.45856 -+ done
1.45857 -+ IFS=$save_ifs
1.45858 -+}
1.45859 -+
1.45860 -+
1.45861 -+# func_source file
1.45862 -+# Source FILE, adding directory component if necessary.
1.45863 -+# Note that it is not necessary on cygwin/mingw to append a dot to
1.45864 -+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
1.45865 -+# behavior happens only for exec(3), not for open(2)! Also, sourcing
1.45866 -+# `FILE.' does not work on cygwin managed mounts.
1.45867 -+func_source ()
1.45868 -+{
1.45869 -+ $opt_debug
1.45870 -+ case $1 in
1.45871 -+ */* | *\\*) . "$1" ;;
1.45872 -+ *) . "./$1" ;;
1.45873 -+ esac
1.45874 -+}
1.45875 -+
1.45876 -+
1.45877 -+# func_win32_libid arg
1.45878 -+# return the library type of file 'arg'
1.45879 -+#
1.45880 -+# Need a lot of goo to handle *both* DLLs and import libs
1.45881 -+# Has to be a shell function in order to 'eat' the argument
1.45882 -+# that is supplied when $file_magic_command is called.
1.45883 -+func_win32_libid ()
1.45884 -+{
1.45885 -+ $opt_debug
1.45886 -+ win32_libid_type="unknown"
1.45887 -+ win32_fileres=`file -L $1 2>/dev/null`
1.45888 -+ case $win32_fileres in
1.45889 -+ *ar\ archive\ import\ library*) # definitely import
1.45890 -+ win32_libid_type="x86 archive import"
1.45891 -+ ;;
1.45892 -+ *ar\ archive*) # could be an import, or static
1.45893 -+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
1.45894 -+ $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
1.45895 -+ win32_nmres=`eval $NM -f posix -A $1 |
1.45896 -+ $SED -n -e '
1.45897 -+ 1,100{
1.45898 -+ / I /{
1.45899 -+ s,.*,import,
1.45900 -+ p
1.45901 -+ q
1.45902 -+ }
1.45903 -+ }'`
1.45904 -+ case $win32_nmres in
1.45905 -+ import*) win32_libid_type="x86 archive import";;
1.45906 -+ *) win32_libid_type="x86 archive static";;
1.45907 -+ esac
1.45908 -+ fi
1.45909 -+ ;;
1.45910 -+ *DLL*)
1.45911 -+ win32_libid_type="x86 DLL"
1.45912 -+ ;;
1.45913 -+ *executable*) # but shell scripts are "executable" too...
1.45914 -+ case $win32_fileres in
1.45915 -+ *MS\ Windows\ PE\ Intel*)
1.45916 -+ win32_libid_type="x86 DLL"
1.45917 -+ ;;
1.45918 -+ esac
1.45919 -+ ;;
1.45920 -+ esac
1.45921 -+ $ECHO "$win32_libid_type"
1.45922 -+}
1.45923 -+
1.45924 -+
1.45925 -+
1.45926 -+# func_infer_tag arg
1.45927 -+# Infer tagged configuration to use if any are available and
1.45928 -+# if one wasn't chosen via the "--tag" command line option.
1.45929 -+# Only attempt this if the compiler in the base compile
1.45930 -+# command doesn't match the default compiler.
1.45931 -+# arg is usually of the form 'gcc ...'
1.45932 -+func_infer_tag ()
1.45933 -+{
1.45934 -+ $opt_debug
1.45935 -+ if test -n "$available_tags" && test -z "$tagname"; then
1.45936 -+ CC_quoted=
1.45937 -+ for arg in $CC; do
1.45938 -+ func_quote_for_eval "$arg"
1.45939 -+ CC_quoted="$CC_quoted $func_quote_for_eval_result"
1.45940 -+ done
1.45941 -+ case $@ in
1.45942 -+ # Blanks in the command may have been stripped by the calling shell,
1.45943 -+ # but not from the CC environment variable when configure was run.
1.45944 -+ " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
1.45945 -+ # Blanks at the start of $base_compile will cause this to fail
1.45946 -+ # if we don't check for them as well.
1.45947 -+ *)
1.45948 -+ for z in $available_tags; do
1.45949 -+ if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
1.45950 -+ # Evaluate the configuration.
1.45951 -+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
1.45952 -+ CC_quoted=
1.45953 -+ for arg in $CC; do
1.45954 -+ # Double-quote args containing other shell metacharacters.
1.45955 -+ func_quote_for_eval "$arg"
1.45956 -+ CC_quoted="$CC_quoted $func_quote_for_eval_result"
1.45957 -+ done
1.45958 -+ case "$@ " in
1.45959 -+ " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
1.45960 -+ # The compiler in the base compile command matches
1.45961 -+ # the one in the tagged configuration.
1.45962 -+ # Assume this is the tagged configuration we want.
1.45963 -+ tagname=$z
1.45964 -+ break
1.45965 -+ ;;
1.45966 -+ esac
1.45967 -+ fi
1.45968 -+ done
1.45969 -+ # If $tagname still isn't set, then no tagged configuration
1.45970 -+ # was found and let the user know that the "--tag" command
1.45971 -+ # line option must be used.
1.45972 -+ if test -z "$tagname"; then
1.45973 -+ func_echo "unable to infer tagged configuration"
1.45974 -+ func_fatal_error "specify a tag with \`--tag'"
1.45975 -+# else
1.45976 -+# func_verbose "using $tagname tagged configuration"
1.45977 -+ fi
1.45978 -+ ;;
1.45979 -+ esac
1.45980 -+ fi
1.45981 -+}
1.45982 -+
1.45983 -+
1.45984 -+
1.45985 -+# func_generate_dlsyms outputname originator pic_p
1.45986 -+# Extract symbols from dlprefiles and create ${outputname}S.o with
1.45987 -+# a dlpreopen symbol table.
1.45988 -+func_generate_dlsyms ()
1.45989 -+{
1.45990 -+ $opt_debug
1.45991 -+ my_outputname="$1"
1.45992 -+ my_originator="$2"
1.45993 -+ my_pic_p="${3-no}"
1.45994 -+ my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
1.45995 -+ my_dlsyms=
1.45996 -+
1.45997 -+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1.45998 -+ if test -n "$NM" && test -n "$global_symbol_pipe"; then
1.45999 -+ my_dlsyms="${my_outputname}S.c"
1.46000 -+ else
1.46001 -+ func_error "not configured to extract global symbols from dlpreopened files"
1.46002 -+ fi
1.46003 -+ fi
1.46004 -+
1.46005 -+ if test -n "$my_dlsyms"; then
1.46006 -+ case $my_dlsyms in
1.46007 -+ "") ;;
1.46008 -+ *.c)
1.46009 -+ # Discover the nlist of each of the dlfiles.
1.46010 -+ nlist="$output_objdir/${my_outputname}.nm"
1.46011 -+
1.46012 -+ func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
1.46013 -+
1.46014 -+ # Parse the name list into a source file.
1.46015 -+ func_echo "creating $output_objdir/$my_dlsyms"
1.46016 -+
1.46017 -+ $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
1.46018 -+/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
1.46019 -+/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
1.46020 -+
1.46021 -+#ifdef __cplusplus
1.46022 -+extern \"C\" {
1.46023 -+#endif
1.46024 -+
1.46025 -+/* External symbol declarations for the compiler. */\
1.46026 -+"
1.46027 -+
1.46028 -+ if test "$dlself" = yes; then
1.46029 -+ func_echo "generating symbol list for \`$output'"
1.46030 -+
1.46031 -+ $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
1.46032 -+
1.46033 -+ # Add our own program objects to the symbol list.
1.46034 -+ progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
1.46035 -+ for progfile in $progfiles; do
1.46036 -+ func_echo "extracting global C symbols from \`$progfile'"
1.46037 -+ $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
1.46038 -+ done
1.46039 -+
1.46040 -+ if test -n "$exclude_expsyms"; then
1.46041 -+ $opt_dry_run || {
1.46042 -+ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
1.46043 -+ eval '$MV "$nlist"T "$nlist"'
1.46044 -+ }
1.46045 -+ fi
1.46046 -+
1.46047 -+ if test -n "$export_symbols_regex"; then
1.46048 -+ $opt_dry_run || {
1.46049 -+ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
1.46050 -+ eval '$MV "$nlist"T "$nlist"'
1.46051 -+ }
1.46052 -+ fi
1.46053 -+
1.46054 -+ # Prepare the list of exported symbols
1.46055 -+ if test -z "$export_symbols"; then
1.46056 -+ export_symbols="$output_objdir/$outputname.exp"
1.46057 -+ $opt_dry_run || {
1.46058 -+ $RM $export_symbols
1.46059 -+ eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
1.46060 -+ case $host in
1.46061 -+ *cygwin* | *mingw* )
1.46062 -+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
1.46063 -+ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
1.46064 -+ ;;
1.46065 -+ esac
1.46066 -+ }
1.46067 -+ else
1.46068 -+ $opt_dry_run || {
1.46069 -+ eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
1.46070 -+ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
1.46071 -+ eval '$MV "$nlist"T "$nlist"'
1.46072 -+ case $host in
1.46073 -+ *cygwin | *mingw* )
1.46074 -+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
1.46075 -+ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
1.46076 -+ ;;
1.46077 -+ esac
1.46078 -+ }
1.46079 -+ fi
1.46080 -+ fi
1.46081 -+
1.46082 -+ for dlprefile in $dlprefiles; do
1.46083 -+ func_echo "extracting global C symbols from \`$dlprefile'"
1.46084 -+ func_basename "$dlprefile"
1.46085 -+ name="$func_basename_result"
1.46086 -+ $opt_dry_run || {
1.46087 -+ eval '$ECHO ": $name " >> "$nlist"'
1.46088 -+ eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
1.46089 -+ }
1.46090 -+ done
1.46091 -+
1.46092 -+ $opt_dry_run || {
1.46093 -+ # Make sure we have at least an empty file.
1.46094 -+ test -f "$nlist" || : > "$nlist"
1.46095 -+
1.46096 -+ if test -n "$exclude_expsyms"; then
1.46097 -+ $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
1.46098 -+ $MV "$nlist"T "$nlist"
1.46099 -+ fi
1.46100 -+
1.46101 -+ # Try sorting and uniquifying the output.
1.46102 -+ if $GREP -v "^: " < "$nlist" |
1.46103 -+ if sort -k 3 </dev/null >/dev/null 2>&1; then
1.46104 -+ sort -k 3
1.46105 -+ else
1.46106 -+ sort +2
1.46107 -+ fi |
1.46108 -+ uniq > "$nlist"S; then
1.46109 -+ :
1.46110 -+ else
1.46111 -+ $GREP -v "^: " < "$nlist" > "$nlist"S
1.46112 -+ fi
1.46113 -+
1.46114 -+ if test -f "$nlist"S; then
1.46115 -+ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
1.46116 -+ else
1.46117 -+ $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
1.46118 -+ fi
1.46119 -+
1.46120 -+ $ECHO >> "$output_objdir/$my_dlsyms" "\
1.46121 -+
1.46122 -+/* The mapping between symbol names and symbols. */
1.46123 -+typedef struct {
1.46124 -+ const char *name;
1.46125 -+ void *address;
1.46126 -+} lt_dlsymlist;
1.46127 -+"
1.46128 -+ case $host in
1.46129 -+ *cygwin* | *mingw* )
1.46130 -+ $ECHO >> "$output_objdir/$my_dlsyms" "\
1.46131 -+/* DATA imports from DLLs on WIN32 con't be const, because
1.46132 -+ runtime relocations are performed -- see ld's documentation
1.46133 -+ on pseudo-relocs. */"
1.46134 -+ lt_dlsym_const= ;;
1.46135 -+ *osf5*)
1.46136 -+ echo >> "$output_objdir/$my_dlsyms" "\
1.46137 -+/* This system does not cope well with relocations in const data */"
1.46138 -+ lt_dlsym_const= ;;
1.46139 -+ *)
1.46140 -+ lt_dlsym_const=const ;;
1.46141 -+ esac
1.46142 -+
1.46143 -+ $ECHO >> "$output_objdir/$my_dlsyms" "\
1.46144 -+extern $lt_dlsym_const lt_dlsymlist
1.46145 -+lt_${my_prefix}_LTX_preloaded_symbols[];
1.46146 -+$lt_dlsym_const lt_dlsymlist
1.46147 -+lt_${my_prefix}_LTX_preloaded_symbols[] =
1.46148 -+{\
1.46149 -+ { \"$my_originator\", (void *) 0 },"
1.46150 -+
1.46151 -+ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
1.46152 -+
1.46153 -+ $ECHO >> "$output_objdir/$my_dlsyms" "\
1.46154 -+ {0, (void *) 0}
1.46155 -+};
1.46156 -+
1.46157 -+/* This works around a problem in FreeBSD linker */
1.46158 -+#ifdef FREEBSD_WORKAROUND
1.46159 -+static const void *lt_preloaded_setup() {
1.46160 -+ return lt_${my_prefix}_LTX_preloaded_symbols;
1.46161 -+}
1.46162 -+#endif
1.46163 -+
1.46164 -+#ifdef __cplusplus
1.46165 -+}
1.46166 -+#endif\
1.46167 -+"
1.46168 -+ } # !$opt_dry_run
1.46169 -+
1.46170 -+ pic_flag_for_symtable=
1.46171 -+ case "$compile_command " in
1.46172 -+ *" -static "*) ;;
1.46173 -+ *)
1.46174 -+ case $host in
1.46175 -+ # compiling the symbol table file with pic_flag works around
1.46176 -+ # a FreeBSD bug that causes programs to crash when -lm is
1.46177 -+ # linked before any other PIC object. But we must not use
1.46178 -+ # pic_flag when linking with -static. The problem exists in
1.46179 -+ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
1.46180 -+ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
1.46181 -+ pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
1.46182 -+ *-*-hpux*)
1.46183 -+ pic_flag_for_symtable=" $pic_flag" ;;
1.46184 -+ *)
1.46185 -+ if test "X$my_pic_p" != Xno; then
1.46186 -+ pic_flag_for_symtable=" $pic_flag"
1.46187 -+ fi
1.46188 -+ ;;
1.46189 -+ esac
1.46190 -+ ;;
1.46191 -+ esac
1.46192 -+ symtab_cflags=
1.46193 -+ for arg in $LTCFLAGS; do
1.46194 -+ case $arg in
1.46195 -+ -pie | -fpie | -fPIE) ;;
1.46196 -+ *) symtab_cflags="$symtab_cflags $arg" ;;
1.46197 -+ esac
1.46198 -+ done
1.46199 -+
1.46200 -+ # Now compile the dynamic symbol file.
1.46201 -+ func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
1.46202 -+
1.46203 -+ # Clean up the generated files.
1.46204 -+ func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
1.46205 -+
1.46206 -+ # Transform the symbol file into the correct name.
1.46207 -+ symfileobj="$output_objdir/${my_outputname}S.$objext"
1.46208 -+ case $host in
1.46209 -+ *cygwin* | *mingw* )
1.46210 -+ if test -f "$output_objdir/$my_outputname.def"; then
1.46211 -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
1.46212 -+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
1.46213 -+ else
1.46214 -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
1.46215 -+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
1.46216 -+ fi
1.46217 -+ ;;
1.46218 -+ *)
1.46219 -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
1.46220 -+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
1.46221 -+ ;;
1.46222 -+ esac
1.46223 -+ ;;
1.46224 -+ *)
1.46225 -+ func_fatal_error "unknown suffix for \`$my_dlsyms'"
1.46226 -+ ;;
1.46227 -+ esac
1.46228 -+ else
1.46229 -+ # We keep going just in case the user didn't refer to
1.46230 -+ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
1.46231 -+ # really was required.
1.46232 -+
1.46233 -+ # Nullify the symbol file.
1.46234 -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
1.46235 -+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
1.46236 -+ fi
1.46237 -+}
1.46238 -+
1.46239 -+# func_extract_an_archive dir oldlib
1.46240 -+func_extract_an_archive ()
1.46241 -+{
1.46242 -+ $opt_debug
1.46243 -+ f_ex_an_ar_dir="$1"; shift
1.46244 -+ f_ex_an_ar_oldlib="$1"
1.46245 -+ func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" 'exit $?'
1.46246 -+ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
1.46247 -+ :
1.46248 -+ else
1.46249 -+ func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
1.46250 -+ fi
1.46251 -+}
1.46252 -+
1.46253 -+
1.46254 -+# func_extract_archives gentop oldlib ...
1.46255 -+func_extract_archives ()
1.46256 -+{
1.46257 -+ $opt_debug
1.46258 -+ my_gentop="$1"; shift
1.46259 -+ my_oldlibs=${1+"$@"}
1.46260 -+ my_oldobjs=""
1.46261 -+ my_xlib=""
1.46262 -+ my_xabs=""
1.46263 -+ my_xdir=""
1.46264 -+
1.46265 -+ for my_xlib in $my_oldlibs; do
1.46266 -+ # Extract the objects.
1.46267 -+ case $my_xlib in
1.46268 -+ [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
1.46269 -+ *) my_xabs=`pwd`"/$my_xlib" ;;
1.46270 -+ esac
1.46271 -+ func_basename "$my_xlib"
1.46272 -+ my_xlib="$func_basename_result"
1.46273 -+ my_xlib_u=$my_xlib
1.46274 -+ while :; do
1.46275 -+ case " $extracted_archives " in
1.46276 -+ *" $my_xlib_u "*)
1.46277 -+ extracted_serial=`expr $extracted_serial + 1`
1.46278 -+ my_xlib_u=lt$extracted_serial-$my_xlib ;;
1.46279 -+ *) break ;;
1.46280 -+ esac
1.46281 -+ done
1.46282 -+ extracted_archives="$extracted_archives $my_xlib_u"
1.46283 -+ my_xdir="$my_gentop/$my_xlib_u"
1.46284 -+
1.46285 -+ func_mkdir_p "$my_xdir"
1.46286 -+
1.46287 -+ case $host in
1.46288 -+ *-darwin*)
1.46289 -+ func_echo "Extracting $my_xabs"
1.46290 -+ # Do not bother doing anything if just a dry run
1.46291 -+ $opt_dry_run || {
1.46292 -+ darwin_orig_dir=`pwd`
1.46293 -+ cd $my_xdir || exit $?
1.46294 -+ darwin_archive=$my_xabs
1.46295 -+ darwin_curdir=`pwd`
1.46296 -+ darwin_base_archive=`basename $darwin_archive`
1.46297 -+ darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
1.46298 -+ if test -n "$darwin_arches"; then
1.46299 -+ darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
1.46300 -+ darwin_arch=
1.46301 -+ func_echo "$darwin_base_archive has multiple architectures $darwin_arches"
1.46302 -+ for darwin_arch in $darwin_arches ; do
1.46303 -+ func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
1.46304 -+ lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
1.46305 -+ cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
1.46306 -+ func_extract_an_archive "`pwd`" "${darwin_base_archive}"
1.46307 -+ cd "$darwin_curdir"
1.46308 -+ $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
1.46309 -+ done # $darwin_arches
1.46310 -+ ## Okay now we've a bunch of thin objects, gotta fatten them up :)
1.46311 -+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
1.46312 -+ darwin_file=
1.46313 -+ darwin_files=
1.46314 -+ for darwin_file in $darwin_filelist; do
1.46315 -+ darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
1.46316 -+ lipo -create -output "$darwin_file" $darwin_files
1.46317 -+ done # $darwin_filelist
1.46318 -+ $RM -rf unfat-$$
1.46319 -+ cd "$darwin_orig_dir"
1.46320 -+ else
1.46321 -+ cd $darwin_orig_dir
1.46322 -+ func_extract_an_archive "$my_xdir" "$my_xabs"
1.46323 -+ fi # $darwin_arches
1.46324 -+ } # !$opt_dry_run
1.46325 -+ ;;
1.46326 -+ *)
1.46327 -+ func_extract_an_archive "$my_xdir" "$my_xabs"
1.46328 -+ ;;
1.46329 -+ esac
1.46330 -+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
1.46331 -+ done
1.46332 -+
1.46333 -+ func_extract_archives_result="$my_oldobjs"
1.46334 -+}
1.46335 -+
1.46336 -+
1.46337 -+
1.46338 -+# func_write_libtool_object output_name pic_name nonpic_name
1.46339 -+# Create a libtool object file (analogous to a ".la" file),
1.46340 -+# but don't create it if we're doing a dry run.
1.46341 -+func_write_libtool_object ()
1.46342 -+{
1.46343 -+ write_libobj=${1}
1.46344 -+ if test "$build_libtool_libs" = yes; then
1.46345 -+ write_lobj=\'${2}\'
1.46346 -+ else
1.46347 -+ write_lobj=none
1.46348 -+ fi
1.46349 -+
1.46350 -+ if test "$build_old_libs" = yes; then
1.46351 -+ write_oldobj=\'${3}\'
1.46352 -+ else
1.46353 -+ write_oldobj=none
1.46354 -+ fi
1.46355 -+
1.46356 -+ $opt_dry_run || {
1.46357 -+ cat >${write_libobj}T <<EOF
1.46358 -+# $write_libobj - a libtool object file
1.46359 -+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
1.46360 -+#
1.46361 -+# Please DO NOT delete this file!
1.46362 -+# It is necessary for linking the library.
1.46363 -+
1.46364 -+# Name of the PIC object.
1.46365 -+pic_object=$write_lobj
1.46366 -+
1.46367 -+# Name of the non-PIC object
1.46368 -+non_pic_object=$write_oldobj
1.46369 -+
1.46370 -+EOF
1.46371 -+ mv -f "${write_libobj}T" "${write_libobj}"
1.46372 -+ }
1.46373 -+}
1.46374 -+
1.46375 -+# func_mode_compile arg...
1.46376 -+func_mode_compile ()
1.46377 -+{
1.46378 -+ $opt_debug
1.46379 -+ # Get the compilation command and the source file.
1.46380 -+ base_compile=
1.46381 -+ srcfile="$nonopt" # always keep a non-empty value in "srcfile"
1.46382 -+ suppress_opt=yes
1.46383 -+ suppress_output=
1.46384 -+ arg_mode=normal
1.46385 -+ libobj=
1.46386 -+ later=
1.46387 -+ pie_flag=
1.46388 -+
1.46389 -+ for arg
1.46390 -+ do
1.46391 -+ case $arg_mode in
1.46392 -+ arg )
1.46393 -+ # do not "continue". Instead, add this to base_compile
1.46394 -+ lastarg="$arg"
1.46395 -+ arg_mode=normal
1.46396 -+ ;;
1.46397 -+
1.46398 -+ target )
1.46399 -+ libobj="$arg"
1.46400 -+ arg_mode=normal
1.46401 -+ continue
1.46402 -+ ;;
1.46403 -+
1.46404 -+ normal )
1.46405 -+ # Accept any command-line options.
1.46406 -+ case $arg in
1.46407 -+ -o)
1.46408 -+ test -n "$libobj" && \
1.46409 -+ func_fatal_error "you cannot specify \`-o' more than once"
1.46410 -+ arg_mode=target
1.46411 -+ continue
1.46412 -+ ;;
1.46413 -+
1.46414 -+ -pie | -fpie | -fPIE)
1.46415 -+ pie_flag="$pie_flag $arg"
1.46416 -+ continue
1.46417 -+ ;;
1.46418 -+
1.46419 -+ -shared | -static | -prefer-pic | -prefer-non-pic)
1.46420 -+ later="$later $arg"
1.46421 -+ continue
1.46422 -+ ;;
1.46423 -+
1.46424 -+ -no-suppress)
1.46425 -+ suppress_opt=no
1.46426 -+ continue
1.46427 -+ ;;
1.46428 -+
1.46429 -+ -Xcompiler)
1.46430 -+ arg_mode=arg # the next one goes into the "base_compile" arg list
1.46431 -+ continue # The current "srcfile" will either be retained or
1.46432 -+ ;; # replaced later. I would guess that would be a bug.
1.46433 -+
1.46434 -+ -Wc,*)
1.46435 -+ func_stripname '-Wc,' '' "$arg"
1.46436 -+ args=$func_stripname_result
1.46437 -+ lastarg=
1.46438 -+ save_ifs="$IFS"; IFS=','
1.46439 -+ for arg in $args; do
1.46440 -+ IFS="$save_ifs"
1.46441 -+ func_quote_for_eval "$arg"
1.46442 -+ lastarg="$lastarg $func_quote_for_eval_result"
1.46443 -+ done
1.46444 -+ IFS="$save_ifs"
1.46445 -+ func_stripname ' ' '' "$lastarg"
1.46446 -+ lastarg=$func_stripname_result
1.46447 -+
1.46448 -+ # Add the arguments to base_compile.
1.46449 -+ base_compile="$base_compile $lastarg"
1.46450 -+ continue
1.46451 -+ ;;
1.46452 -+
1.46453 -+ *)
1.46454 -+ # Accept the current argument as the source file.
1.46455 -+ # The previous "srcfile" becomes the current argument.
1.46456 -+ #
1.46457 -+ lastarg="$srcfile"
1.46458 -+ srcfile="$arg"
1.46459 -+ ;;
1.46460 -+ esac # case $arg
1.46461 -+ ;;
1.46462 -+ esac # case $arg_mode
1.46463 -+
1.46464 -+ # Aesthetically quote the previous argument.
1.46465 -+ func_quote_for_eval "$lastarg"
1.46466 -+ base_compile="$base_compile $func_quote_for_eval_result"
1.46467 -+ done # for arg
1.46468 -+
1.46469 -+ case $arg_mode in
1.46470 -+ arg)
1.46471 -+ func_fatal_error "you must specify an argument for -Xcompile"
1.46472 -+ ;;
1.46473 -+ target)
1.46474 -+ func_fatal_error "you must specify a target with \`-o'"
1.46475 -+ ;;
1.46476 -+ *)
1.46477 -+ # Get the name of the library object.
1.46478 -+ test -z "$libobj" && {
1.46479 -+ func_basename "$srcfile"
1.46480 -+ libobj="$func_basename_result"
1.46481 -+ }
1.46482 -+ ;;
1.46483 -+ esac
1.46484 -+
1.46485 -+ # Recognize several different file suffixes.
1.46486 -+ # If the user specifies -o file.o, it is replaced with file.lo
1.46487 -+ xform='[cCFSifmso]'
1.46488 -+ case $libobj in
1.46489 -+ *.ada) xform=ada ;;
1.46490 -+ *.adb) xform=adb ;;
1.46491 -+ *.ads) xform=ads ;;
1.46492 -+ *.asm) xform=asm ;;
1.46493 -+ *.c++) xform=c++ ;;
1.46494 -+ *.cc) xform=cc ;;
1.46495 -+ *.ii) xform=ii ;;
1.46496 -+ *.class) xform=class ;;
1.46497 -+ *.cpp) xform=cpp ;;
1.46498 -+ *.cxx) xform=cxx ;;
1.46499 -+ *.[fF][09]?) xform='[fF][09].' ;;
1.46500 -+ *.for) xform=for ;;
1.46501 -+ *.java) xform=java ;;
1.46502 -+ *.obj) xform=obj ;;
1.46503 -+ esac
1.46504 -+
1.46505 -+ libobj=`$ECHO "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
1.46506 -+
1.46507 -+ case $libobj in
1.46508 -+ *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
1.46509 -+ *)
1.46510 -+ func_fatal_error "cannot determine name of library object from \`$libobj'"
1.46511 -+ ;;
1.46512 -+ esac
1.46513 -+
1.46514 -+ func_infer_tag $base_compile
1.46515 -+
1.46516 -+ for arg in $later; do
1.46517 -+ case $arg in
1.46518 -+ -shared)
1.46519 -+ test "$build_libtool_libs" != yes && \
1.46520 -+ func_fatal_configuration "can not build a shared library"
1.46521 -+ build_old_libs=no
1.46522 -+ continue
1.46523 -+ ;;
1.46524 -+
1.46525 -+ -static)
1.46526 -+ build_libtool_libs=no
1.46527 -+ build_old_libs=yes
1.46528 -+ continue
1.46529 -+ ;;
1.46530 -+
1.46531 -+ -prefer-pic)
1.46532 -+ pic_mode=yes
1.46533 -+ continue
1.46534 -+ ;;
1.46535 -+
1.46536 -+ -prefer-non-pic)
1.46537 -+ pic_mode=no
1.46538 -+ continue
1.46539 -+ ;;
1.46540 -+ esac
1.46541 -+ done
1.46542 -+
1.46543 -+ func_quote_for_eval "$libobj"
1.46544 -+ test "X$libobj" != "X$func_quote_for_eval_result" \
1.46545 -+ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
1.46546 -+ && func_warning "libobj name \`$libobj' may not contain shell special characters."
1.46547 -+ func_basename "$obj"
1.46548 -+ objname="$func_basename_result"
1.46549 -+ func_dirname "$obj" "/" ""
1.46550 -+ xdir="$func_dirname_result"
1.46551 -+ lobj=${xdir}$objdir/$objname
1.46552 -+
1.46553 -+ test -z "$base_compile" && \
1.46554 -+ func_fatal_help "you must specify a compilation command"
1.46555 -+
1.46556 -+ # Delete any leftover library objects.
1.46557 -+ if test "$build_old_libs" = yes; then
1.46558 -+ removelist="$obj $lobj $libobj ${libobj}T"
1.46559 -+ else
1.46560 -+ removelist="$lobj $libobj ${libobj}T"
1.46561 -+ fi
1.46562 -+
1.46563 -+ $opt_dry_run || $RM $removelist
1.46564 -+ trap "$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE" 1 2 15
1.46565 -+
1.46566 -+ # On Cygwin there's no "real" PIC flag so we must build both object types
1.46567 -+ case $host_os in
1.46568 -+ cygwin* | mingw* | pw32* | os2*)
1.46569 -+ pic_mode=default
1.46570 -+ ;;
1.46571 -+ esac
1.46572 -+ if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
1.46573 -+ # non-PIC code in shared libraries is not supported
1.46574 -+ pic_mode=default
1.46575 -+ fi
1.46576 -+
1.46577 -+ # Calculate the filename of the output object if compiler does
1.46578 -+ # not support -o with -c
1.46579 -+ if test "$compiler_c_o" = no; then
1.46580 -+ output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
1.46581 -+ lockfile="$output_obj.lock"
1.46582 -+ removelist="$removelist $output_obj $lockfile"
1.46583 -+ trap "$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE" 1 2 15
1.46584 -+ else
1.46585 -+ output_obj=
1.46586 -+ need_locks=no
1.46587 -+ lockfile=
1.46588 -+ fi
1.46589 -+
1.46590 -+ # Lock this critical section if it is needed
1.46591 -+ # We use this script file to make the link, it avoids creating a new file
1.46592 -+ if test "$need_locks" = yes; then
1.46593 -+ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
1.46594 -+ func_echo "Waiting for $lockfile to be removed"
1.46595 -+ sleep 2
1.46596 -+ done
1.46597 -+ elif test "$need_locks" = warn; then
1.46598 -+ if test -f "$lockfile"; then
1.46599 -+ $ECHO "\
1.46600 -+*** ERROR, $lockfile exists and contains:
1.46601 -+`cat $lockfile 2>/dev/null`
1.46602 -+
1.46603 -+This indicates that another process is trying to use the same
1.46604 -+temporary object file, and libtool could not work around it because
1.46605 -+your compiler does not support \`-c' and \`-o' together. If you
1.46606 -+repeat this compilation, it may succeed, by chance, but you had better
1.46607 -+avoid parallel builds (make -j) in this platform, or get a better
1.46608 -+compiler."
1.46609 -+
1.46610 -+ $opt_dry_run || $RM $removelist
1.46611 -+ exit $EXIT_FAILURE
1.46612 -+ fi
1.46613 -+ $ECHO "$srcfile" > "$lockfile"
1.46614 -+ fi
1.46615 -+
1.46616 -+ if test -n "$fix_srcfile_path"; then
1.46617 -+ eval srcfile=\"$fix_srcfile_path\"
1.46618 -+ fi
1.46619 -+ func_quote_for_eval "$srcfile"
1.46620 -+ qsrcfile=$func_quote_for_eval_result
1.46621 -+
1.46622 -+ $opt_dry_run || $RM "$libobj" "${libobj}T"
1.46623 -+
1.46624 -+ # Only build a PIC object if we are building libtool libraries.
1.46625 -+ if test "$build_libtool_libs" = yes; then
1.46626 -+ # Without this assignment, base_compile gets emptied.
1.46627 -+ fbsd_hideous_sh_bug=$base_compile
1.46628 -+
1.46629 -+ if test "$pic_mode" != no; then
1.46630 -+ command="$base_compile $qsrcfile $pic_flag"
1.46631 -+ else
1.46632 -+ # Don't build PIC code
1.46633 -+ command="$base_compile $qsrcfile"
1.46634 -+ fi
1.46635 -+
1.46636 -+ func_mkdir_p "$xdir$objdir"
1.46637 -+
1.46638 -+ if test -z "$output_obj"; then
1.46639 -+ # Place PIC objects in $objdir
1.46640 -+ command="$command -o $lobj"
1.46641 -+ fi
1.46642 -+
1.46643 -+ $opt_dry_run || $RM "$lobj" "$output_obj"
1.46644 -+
1.46645 -+ func_show_eval "$command" \
1.46646 -+ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
1.46647 -+
1.46648 -+ if test "$need_locks" = warn &&
1.46649 -+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1.46650 -+ $ECHO "\
1.46651 -+*** ERROR, $lockfile contains:
1.46652 -+`cat $lockfile 2>/dev/null`
1.46653 -+
1.46654 -+but it should contain:
1.46655 -+$srcfile
1.46656 -+
1.46657 -+This indicates that another process is trying to use the same
1.46658 -+temporary object file, and libtool could not work around it because
1.46659 -+your compiler does not support \`-c' and \`-o' together. If you
1.46660 -+repeat this compilation, it may succeed, by chance, but you had better
1.46661 -+avoid parallel builds (make -j) in this platform, or get a better
1.46662 -+compiler."
1.46663 -+
1.46664 -+ $opt_dry_run || $RM $removelist
1.46665 -+ exit $EXIT_FAILURE
1.46666 -+ fi
1.46667 -+
1.46668 -+ # Just move the object if needed, then go on to compile the next one
1.46669 -+ if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
1.46670 -+ func_show_eval '$MV "$output_obj" "$lobj"' \
1.46671 -+ 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
1.46672 -+ fi
1.46673 -+
1.46674 -+ # Allow error messages only from the first compilation.
1.46675 -+ if test "$suppress_opt" = yes; then
1.46676 -+ suppress_output=' >/dev/null 2>&1'
1.46677 -+ fi
1.46678 -+ fi
1.46679 -+
1.46680 -+ # Only build a position-dependent object if we build old libraries.
1.46681 -+ if test "$build_old_libs" = yes; then
1.46682 -+ if test "$pic_mode" != yes; then
1.46683 -+ # Don't build PIC code
1.46684 -+ command="$base_compile $qsrcfile$pie_flag"
1.46685 -+ else
1.46686 -+ command="$base_compile $qsrcfile $pic_flag"
1.46687 -+ fi
1.46688 -+ if test "$compiler_c_o" = yes; then
1.46689 -+ command="$command -o $obj"
1.46690 -+ fi
1.46691 -+
1.46692 -+ # Suppress compiler output if we already did a PIC compilation.
1.46693 -+ command="$command$suppress_output"
1.46694 -+ $opt_dry_run || $RM "$obj" "$output_obj"
1.46695 -+ func_show_eval "$command" \
1.46696 -+ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
1.46697 -+
1.46698 -+ if test "$need_locks" = warn &&
1.46699 -+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1.46700 -+ $ECHO "\
1.46701 -+*** ERROR, $lockfile contains:
1.46702 -+`cat $lockfile 2>/dev/null`
1.46703 -+
1.46704 -+but it should contain:
1.46705 -+$srcfile
1.46706 -+
1.46707 -+This indicates that another process is trying to use the same
1.46708 -+temporary object file, and libtool could not work around it because
1.46709 -+your compiler does not support \`-c' and \`-o' together. If you
1.46710 -+repeat this compilation, it may succeed, by chance, but you had better
1.46711 -+avoid parallel builds (make -j) in this platform, or get a better
1.46712 -+compiler."
1.46713 -+
1.46714 -+ $opt_dry_run || $RM $removelist
1.46715 -+ exit $EXIT_FAILURE
1.46716 -+ fi
1.46717 -+
1.46718 -+ # Just move the object if needed
1.46719 -+ if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1.46720 -+ func_show_eval '$MV "$output_obj" "$obj"' \
1.46721 -+ 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
1.46722 -+ fi
1.46723 -+ fi
1.46724 -+
1.46725 -+ $opt_dry_run || {
1.46726 -+ func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
1.46727 -+
1.46728 -+ # Unlock the critical section if it was locked
1.46729 -+ if test "$need_locks" != no; then
1.46730 -+ $RM "$lockfile"
1.46731 -+ fi
1.46732 -+ }
1.46733 -+
1.46734 -+ exit $EXIT_SUCCESS
1.46735 -+}
1.46736 -+
1.46737 -+test "$mode" = compile && func_mode_compile ${1+"$@"}
1.46738 -+
1.46739 -+
1.46740 -+# func_mode_execute arg...
1.46741 -+func_mode_execute ()
1.46742 -+{
1.46743 -+ $opt_debug
1.46744 -+ # The first argument is the command name.
1.46745 -+ cmd="$nonopt"
1.46746 -+ test -z "$cmd" && \
1.46747 -+ func_fatal_help "you must specify a COMMAND"
1.46748 -+
1.46749 -+ # Handle -dlopen flags immediately.
1.46750 -+ for file in $execute_dlfiles; do
1.46751 -+ test -f "$file" \
1.46752 -+ || func_fatal_help "\`$file' is not a file"
1.46753 -+
1.46754 -+ dir=
1.46755 -+ case $file in
1.46756 -+ *.la)
1.46757 -+ # Check to see that this really is a libtool archive.
1.46758 -+ func_lalib_unsafe_p "$file" \
1.46759 -+ || func_fatal_help "\`$lib' is not a valid libtool archive"
1.46760 -+
1.46761 -+ # Read the libtool library.
1.46762 -+ dlname=
1.46763 -+ library_names=
1.46764 -+ func_source "$file"
1.46765 -+
1.46766 -+ # Skip this library if it cannot be dlopened.
1.46767 -+ if test -z "$dlname"; then
1.46768 -+ # Warn if it was a shared library.
1.46769 -+ test -n "$library_names" && \
1.46770 -+ func_warning "\`$file' was not linked with \`-export-dynamic'"
1.46771 -+ continue
1.46772 -+ fi
1.46773 -+
1.46774 -+ func_dirname "$file" "" "."
1.46775 -+ dir="$func_dirname_result"
1.46776 -+
1.46777 -+ if test -f "$dir/$objdir/$dlname"; then
1.46778 -+ dir="$dir/$objdir"
1.46779 -+ else
1.46780 -+ if test ! -f "$dir/$dlname"; then
1.46781 -+ func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
1.46782 -+ fi
1.46783 -+ fi
1.46784 -+ ;;
1.46785 -+
1.46786 -+ *.lo)
1.46787 -+ # Just add the directory containing the .lo file.
1.46788 -+ func_dirname "$file" "" "."
1.46789 -+ dir="$func_dirname_result"
1.46790 -+ ;;
1.46791 -+
1.46792 -+ *)
1.46793 -+ func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
1.46794 -+ continue
1.46795 -+ ;;
1.46796 -+ esac
1.46797 -+
1.46798 -+ # Get the absolute pathname.
1.46799 -+ absdir=`cd "$dir" && pwd`
1.46800 -+ test -n "$absdir" && dir="$absdir"
1.46801 -+
1.46802 -+ # Now add the directory to shlibpath_var.
1.46803 -+ if eval "test -z \"\$$shlibpath_var\""; then
1.46804 -+ eval "$shlibpath_var=\"\$dir\""
1.46805 -+ else
1.46806 -+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
1.46807 -+ fi
1.46808 -+ done
1.46809 -+
1.46810 -+ # This variable tells wrapper scripts just to set shlibpath_var
1.46811 -+ # rather than running their programs.
1.46812 -+ libtool_execute_magic="$magic"
1.46813 -+
1.46814 -+ # Check if any of the arguments is a wrapper script.
1.46815 -+ args=
1.46816 -+ for file
1.46817 -+ do
1.46818 -+ case $file in
1.46819 -+ -*) ;;
1.46820 -+ *)
1.46821 -+ # Do a test to see if this is really a libtool program.
1.46822 -+ if func_ltwrapper_p "$file"; then
1.46823 -+ func_source "$file"
1.46824 -+
1.46825 -+ # Transform arg to wrapped name.
1.46826 -+ file="$progdir/$program"
1.46827 -+ fi
1.46828 -+ ;;
1.46829 -+ esac
1.46830 -+ # Quote arguments (to preserve shell metacharacters).
1.46831 -+ func_quote_for_eval "$file"
1.46832 -+ args="$args $func_quote_for_eval_result"
1.46833 -+ done
1.46834 -+
1.46835 -+ if test "X$opt_dry_run" = Xfalse; then
1.46836 -+ if test -n "$shlibpath_var"; then
1.46837 -+ # Export the shlibpath_var.
1.46838 -+ eval "export $shlibpath_var"
1.46839 -+ fi
1.46840 -+
1.46841 -+ # Restore saved environment variables
1.46842 -+ for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
1.46843 -+ do
1.46844 -+ eval "if test \"\${save_$lt_var+set}\" = set; then
1.46845 -+ $lt_var=\$save_$lt_var; export $lt_var
1.46846 -+ else
1.46847 -+ $lt_unset $lt_var
1.46848 -+ fi"
1.46849 -+ done
1.46850 -+
1.46851 -+ # Now prepare to actually exec the command.
1.46852 -+ exec_cmd="\$cmd$args"
1.46853 -+ else
1.46854 -+ # Display what would be done.
1.46855 -+ if test -n "$shlibpath_var"; then
1.46856 -+ eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
1.46857 -+ $ECHO "export $shlibpath_var"
1.46858 -+ fi
1.46859 -+ $ECHO "$cmd$args"
1.46860 -+ exit $EXIT_SUCCESS
1.46861 -+ fi
1.46862 -+}
1.46863 -+
1.46864 -+test "$mode" = execute && func_mode_execute ${1+"$@"}
1.46865 -+
1.46866 -+
1.46867 -+# func_mode_finish arg...
1.46868 -+func_mode_finish ()
1.46869 -+{
1.46870 -+ $opt_debug
1.46871 -+ libdirs="$nonopt"
1.46872 -+ admincmds=
1.46873 -+
1.46874 -+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
1.46875 -+ for dir
1.46876 -+ do
1.46877 -+ libdirs="$libdirs $dir"
1.46878 -+ done
1.46879 -+
1.46880 -+ for libdir in $libdirs; do
1.46881 -+ if test -n "$finish_cmds"; then
1.46882 -+ # Do each command in the finish commands.
1.46883 -+ func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
1.46884 -+'"$cmd"'"'
1.46885 -+ fi
1.46886 -+ if test -n "$finish_eval"; then
1.46887 -+ # Do the single finish_eval.
1.46888 -+ eval cmds=\"$finish_eval\"
1.46889 -+ $opt_dry_run || eval "$cmds" || admincmds="$admincmds
1.46890 -+ $cmds"
1.46891 -+ fi
1.46892 -+ done
1.46893 -+ fi
1.46894 -+
1.46895 -+ # Exit here if they wanted silent mode.
1.46896 -+ $opt_silent && exit $EXIT_SUCCESS
1.46897 -+
1.46898 -+ $ECHO "X----------------------------------------------------------------------" | $Xsed
1.46899 -+ $ECHO "Libraries have been installed in:"
1.46900 -+ for libdir in $libdirs; do
1.46901 -+ $ECHO " $libdir"
1.46902 -+ done
1.46903 -+ $ECHO
1.46904 -+ $ECHO "If you ever happen to want to link against installed libraries"
1.46905 -+ $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
1.46906 -+ $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
1.46907 -+ $ECHO "flag during linking and do at least one of the following:"
1.46908 -+ if test -n "$shlibpath_var"; then
1.46909 -+ $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable"
1.46910 -+ $ECHO " during execution"
1.46911 -+ fi
1.46912 -+ if test -n "$runpath_var"; then
1.46913 -+ $ECHO " - add LIBDIR to the \`$runpath_var' environment variable"
1.46914 -+ $ECHO " during linking"
1.46915 -+ fi
1.46916 -+ if test -n "$hardcode_libdir_flag_spec"; then
1.46917 -+ libdir=LIBDIR
1.46918 -+ eval flag=\"$hardcode_libdir_flag_spec\"
1.46919 -+
1.46920 -+ $ECHO " - use the \`$flag' linker flag"
1.46921 -+ fi
1.46922 -+ if test -n "$admincmds"; then
1.46923 -+ $ECHO " - have your system administrator run these commands:$admincmds"
1.46924 -+ fi
1.46925 -+ if test -f /etc/ld.so.conf; then
1.46926 -+ $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
1.46927 -+ fi
1.46928 -+ $ECHO
1.46929 -+
1.46930 -+ $ECHO "See any operating system documentation about shared libraries for"
1.46931 -+ case $host in
1.46932 -+ solaris2.[6789]|solaris2.1[0-9])
1.46933 -+ $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
1.46934 -+ $ECHO "pages."
1.46935 -+ ;;
1.46936 -+ *)
1.46937 -+ $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
1.46938 -+ ;;
1.46939 -+ esac
1.46940 -+ $ECHO "X----------------------------------------------------------------------" | $Xsed
1.46941 -+ exit $EXIT_SUCCESS
1.46942 -+}
1.46943 -+
1.46944 -+test "$mode" = finish && func_mode_finish ${1+"$@"}
1.46945 -+
1.46946 -+
1.46947 -+# func_mode_install arg...
1.46948 -+func_mode_install ()
1.46949 -+{
1.46950 -+ $opt_debug
1.46951 -+ # There may be an optional sh(1) argument at the beginning of
1.46952 -+ # install_prog (especially on Windows NT).
1.46953 -+ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
1.46954 -+ # Allow the use of GNU shtool's install command.
1.46955 -+ $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
1.46956 -+ # Aesthetically quote it.
1.46957 -+ func_quote_for_eval "$nonopt"
1.46958 -+ install_prog="$func_quote_for_eval_result "
1.46959 -+ arg=$1
1.46960 -+ shift
1.46961 -+ else
1.46962 -+ install_prog=
1.46963 -+ arg=$nonopt
1.46964 -+ fi
1.46965 -+
1.46966 -+ # The real first argument should be the name of the installation program.
1.46967 -+ # Aesthetically quote it.
1.46968 -+ func_quote_for_eval "$arg"
1.46969 -+ install_prog="$install_prog$func_quote_for_eval_result"
1.46970 -+
1.46971 -+ # We need to accept at least all the BSD install flags.
1.46972 -+ dest=
1.46973 -+ files=
1.46974 -+ opts=
1.46975 -+ prev=
1.46976 -+ install_type=
1.46977 -+ isdir=no
1.46978 -+ stripme=
1.46979 -+ for arg
1.46980 -+ do
1.46981 -+ if test -n "$dest"; then
1.46982 -+ files="$files $dest"
1.46983 -+ dest=$arg
1.46984 -+ continue
1.46985 -+ fi
1.46986 -+
1.46987 -+ case $arg in
1.46988 -+ -d) isdir=yes ;;
1.46989 -+ -f)
1.46990 -+ case " $install_prog " in
1.46991 -+ *[\\\ /]cp\ *) ;;
1.46992 -+ *) prev=$arg ;;
1.46993 -+ esac
1.46994 -+ ;;
1.46995 -+ -g | -m | -o)
1.46996 -+ prev=$arg
1.46997 -+ ;;
1.46998 -+ -s)
1.46999 -+ stripme=" -s"
1.47000 -+ continue
1.47001 -+ ;;
1.47002 -+ -*)
1.47003 -+ ;;
1.47004 -+ *)
1.47005 -+ # If the previous option needed an argument, then skip it.
1.47006 -+ if test -n "$prev"; then
1.47007 -+ prev=
1.47008 -+ else
1.47009 -+ dest=$arg
1.47010 -+ continue
1.47011 -+ fi
1.47012 -+ ;;
1.47013 -+ esac
1.47014 -+
1.47015 -+ # Aesthetically quote the argument.
1.47016 -+ func_quote_for_eval "$arg"
1.47017 -+ install_prog="$install_prog $func_quote_for_eval_result"
1.47018 -+ done
1.47019 -+
1.47020 -+ test -z "$install_prog" && \
1.47021 -+ func_fatal_help "you must specify an install program"
1.47022 -+
1.47023 -+ test -n "$prev" && \
1.47024 -+ func_fatal_help "the \`$prev' option requires an argument"
1.47025 -+
1.47026 -+ if test -z "$files"; then
1.47027 -+ if test -z "$dest"; then
1.47028 -+ func_fatal_help "no file or destination specified"
1.47029 -+ else
1.47030 -+ func_fatal_help "you must specify a destination"
1.47031 -+ fi
1.47032 -+ fi
1.47033 -+
1.47034 -+ # Strip any trailing slash from the destination.
1.47035 -+ func_stripname '' '/' "$dest"
1.47036 -+ dest=$func_stripname_result
1.47037 -+
1.47038 -+ # Check to see that the destination is a directory.
1.47039 -+ test -d "$dest" && isdir=yes
1.47040 -+ if test "$isdir" = yes; then
1.47041 -+ destdir="$dest"
1.47042 -+ destname=
1.47043 -+ else
1.47044 -+ func_dirname "$dest" "" "."
1.47045 -+ destdir="$func_dirname_result"
1.47046 -+ func_basename "$dest"
1.47047 -+ destname="$func_basename_result"
1.47048 -+
1.47049 -+ # Not a directory, so check to see that there is only one file specified.
1.47050 -+ set dummy $files; shift
1.47051 -+ test "$#" -gt 1 && \
1.47052 -+ func_fatal_help "\`$dest' is not a directory"
1.47053 -+ fi
1.47054 -+ case $destdir in
1.47055 -+ [\\/]* | [A-Za-z]:[\\/]*) ;;
1.47056 -+ *)
1.47057 -+ for file in $files; do
1.47058 -+ case $file in
1.47059 -+ *.lo) ;;
1.47060 -+ *)
1.47061 -+ func_fatal_help "\`$destdir' must be an absolute directory name"
1.47062 -+ ;;
1.47063 -+ esac
1.47064 -+ done
1.47065 -+ ;;
1.47066 -+ esac
1.47067 -+
1.47068 -+ # This variable tells wrapper scripts just to set variables rather
1.47069 -+ # than running their programs.
1.47070 -+ libtool_install_magic="$magic"
1.47071 -+
1.47072 -+ staticlibs=
1.47073 -+ future_libdirs=
1.47074 -+ current_libdirs=
1.47075 -+ for file in $files; do
1.47076 -+
1.47077 -+ # Do each installation.
1.47078 -+ case $file in
1.47079 -+ *.$libext)
1.47080 -+ # Do the static libraries later.
1.47081 -+ staticlibs="$staticlibs $file"
1.47082 -+ ;;
1.47083 -+
1.47084 -+ *.la)
1.47085 -+ # Check to see that this really is a libtool archive.
1.47086 -+ func_lalib_unsafe_p "$file" \
1.47087 -+ || func_fatal_help "\`$file' is not a valid libtool archive"
1.47088 -+
1.47089 -+ library_names=
1.47090 -+ old_library=
1.47091 -+ relink_command=
1.47092 -+ func_source "$file"
1.47093 -+
1.47094 -+ # Add the libdir to current_libdirs if it is the destination.
1.47095 -+ if test "X$destdir" = "X$libdir"; then
1.47096 -+ case "$current_libdirs " in
1.47097 -+ *" $libdir "*) ;;
1.47098 -+ *) current_libdirs="$current_libdirs $libdir" ;;
1.47099 -+ esac
1.47100 -+ else
1.47101 -+ # Note the libdir as a future libdir.
1.47102 -+ case "$future_libdirs " in
1.47103 -+ *" $libdir "*) ;;
1.47104 -+ *) future_libdirs="$future_libdirs $libdir" ;;
1.47105 -+ esac
1.47106 -+ fi
1.47107 -+
1.47108 -+ func_dirname "$file" "/" ""
1.47109 -+ dir="$func_dirname_result"
1.47110 -+ dir="$dir$objdir"
1.47111 -+
1.47112 -+ if test -n "$relink_command"; then
1.47113 -+ # Determine the prefix the user has applied to our future dir.
1.47114 -+ inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
1.47115 -+
1.47116 -+ # Don't allow the user to place us outside of our expected
1.47117 -+ # location b/c this prevents finding dependent libraries that
1.47118 -+ # are installed to the same prefix.
1.47119 -+ # At present, this check doesn't affect windows .dll's that
1.47120 -+ # are installed into $libdir/../bin (currently, that works fine)
1.47121 -+ # but it's something to keep an eye on.
1.47122 -+ test "$inst_prefix_dir" = "$destdir" && \
1.47123 -+ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
1.47124 -+
1.47125 -+ if test -n "$inst_prefix_dir"; then
1.47126 -+ # Stick the inst_prefix_dir data into the link command.
1.47127 -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
1.47128 -+ else
1.47129 -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
1.47130 -+ fi
1.47131 -+
1.47132 -+ func_warning "relinking \`$file'"
1.47133 -+ func_show_eval "$relink_command" \
1.47134 -+ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
1.47135 -+ fi
1.47136 -+
1.47137 -+ # See the names of the shared library.
1.47138 -+ set dummy $library_names; shift
1.47139 -+ if test -n "$1"; then
1.47140 -+ realname="$1"
1.47141 -+ shift
1.47142 -+
1.47143 -+ srcname="$realname"
1.47144 -+ test -n "$relink_command" && srcname="$realname"T
1.47145 -+
1.47146 -+ # Install the shared library and build the symlinks.
1.47147 -+ func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
1.47148 -+ 'exit $?'
1.47149 -+ tstripme="$stripme"
1.47150 -+ case $host_os in
1.47151 -+ cygwin* | mingw* | pw32*)
1.47152 -+ case $realname in
1.47153 -+ *.dll.a)
1.47154 -+ tstripme=""
1.47155 -+ ;;
1.47156 -+ esac
1.47157 -+ ;;
1.47158 -+ esac
1.47159 -+ if test -n "$tstripme" && test -n "$striplib"; then
1.47160 -+ func_show_eval "$striplib $destdir/$realname" 'exit $?'
1.47161 -+ fi
1.47162 -+
1.47163 -+ if test "$#" -gt 0; then
1.47164 -+ # Delete the old symlinks, and create new ones.
1.47165 -+ # Try `ln -sf' first, because the `ln' binary might depend on
1.47166 -+ # the symlink we replace! Solaris /bin/ln does not understand -f,
1.47167 -+ # so we also need to try rm && ln -s.
1.47168 -+ for linkname
1.47169 -+ do
1.47170 -+ test "$linkname" != "$realname" \
1.47171 -+ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
1.47172 -+ done
1.47173 -+ fi
1.47174 -+
1.47175 -+ # Do each command in the postinstall commands.
1.47176 -+ lib="$destdir/$realname"
1.47177 -+ func_execute_cmds "$postinstall_cmds" 'exit $?'
1.47178 -+ fi
1.47179 -+
1.47180 -+ # Install the pseudo-library for information purposes.
1.47181 -+ func_basename "$file"
1.47182 -+ name="$func_basename_result"
1.47183 -+ instname="$dir/$name"i
1.47184 -+ func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
1.47185 -+
1.47186 -+ # Maybe install the static library, too.
1.47187 -+ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
1.47188 -+ ;;
1.47189 -+
1.47190 -+ *.lo)
1.47191 -+ # Install (i.e. copy) a libtool object.
1.47192 -+
1.47193 -+ # Figure out destination file name, if it wasn't already specified.
1.47194 -+ if test -n "$destname"; then
1.47195 -+ destfile="$destdir/$destname"
1.47196 -+ else
1.47197 -+ func_basename "$file"
1.47198 -+ destfile="$func_basename_result"
1.47199 -+ destfile="$destdir/$destfile"
1.47200 -+ fi
1.47201 -+
1.47202 -+ # Deduce the name of the destination old-style object file.
1.47203 -+ case $destfile in
1.47204 -+ *.lo)
1.47205 -+ func_lo2o "$destfile"
1.47206 -+ staticdest=$func_lo2o_result
1.47207 -+ ;;
1.47208 -+ *.$objext)
1.47209 -+ staticdest="$destfile"
1.47210 -+ destfile=
1.47211 -+ ;;
1.47212 -+ *)
1.47213 -+ func_fatal_help "cannot copy a libtool object to \`$destfile'"
1.47214 -+ ;;
1.47215 -+ esac
1.47216 -+
1.47217 -+ # Install the libtool object if requested.
1.47218 -+ test -n "$destfile" && \
1.47219 -+ func_show_eval "$install_prog $file $destfile" 'exit $?'
1.47220 -+
1.47221 -+ # Install the old object if enabled.
1.47222 -+ if test "$build_old_libs" = yes; then
1.47223 -+ # Deduce the name of the old-style object file.
1.47224 -+ func_lo2o "$file"
1.47225 -+ staticobj=$func_lo2o_result
1.47226 -+ func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
1.47227 -+ fi
1.47228 -+ exit $EXIT_SUCCESS
1.47229 -+ ;;
1.47230 -+
1.47231 -+ *)
1.47232 -+ # Figure out destination file name, if it wasn't already specified.
1.47233 -+ if test -n "$destname"; then
1.47234 -+ destfile="$destdir/$destname"
1.47235 -+ else
1.47236 -+ func_basename "$file"
1.47237 -+ destfile="$func_basename_result"
1.47238 -+ destfile="$destdir/$destfile"
1.47239 -+ fi
1.47240 -+
1.47241 -+ # If the file is missing, and there is a .exe on the end, strip it
1.47242 -+ # because it is most likely a libtool script we actually want to
1.47243 -+ # install
1.47244 -+ stripped_ext=""
1.47245 -+ case $file in
1.47246 -+ *.exe)
1.47247 -+ if test ! -f "$file"; then
1.47248 -+ func_stripname '' '.exe' "$file"
1.47249 -+ file=$func_stripname_result
1.47250 -+ stripped_ext=".exe"
1.47251 -+ fi
1.47252 -+ ;;
1.47253 -+ esac
1.47254 -+
1.47255 -+ # Do a test to see if this is really a libtool program.
1.47256 -+ case $host in
1.47257 -+ *cygwin*|*mingw*)
1.47258 -+ func_stripname '' '.exe' "$file"
1.47259 -+ wrapper=$func_stripname_result
1.47260 -+ ;;
1.47261 -+ *)
1.47262 -+ wrapper=$file
1.47263 -+ ;;
1.47264 -+ esac
1.47265 -+ if func_ltwrapper_p "$wrapper"; then
1.47266 -+ notinst_deplibs=
1.47267 -+ relink_command=
1.47268 -+
1.47269 -+ func_source "$wrapper"
1.47270 -+
1.47271 -+ # Check the variables that should have been set.
1.47272 -+ test -z "$generated_by_libtool_version" && \
1.47273 -+ func_fatal_error "invalid libtool wrapper script \`$wrapper'"
1.47274 -+
1.47275 -+ finalize=yes
1.47276 -+ for lib in $notinst_deplibs; do
1.47277 -+ # Check to see that each library is installed.
1.47278 -+ libdir=
1.47279 -+ if test -f "$lib"; then
1.47280 -+ func_source "$lib"
1.47281 -+ fi
1.47282 -+ libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
1.47283 -+ if test -n "$libdir" && test ! -f "$libfile"; then
1.47284 -+ func_warning "\`$lib' has not been installed in \`$libdir'"
1.47285 -+ finalize=no
1.47286 -+ fi
1.47287 -+ done
1.47288 -+
1.47289 -+ relink_command=
1.47290 -+ func_source "$wrapper"
1.47291 -+
1.47292 -+ outputname=
1.47293 -+ if test "$fast_install" = no && test -n "$relink_command"; then
1.47294 -+ $opt_dry_run || {
1.47295 -+ if test "$finalize" = yes; then
1.47296 -+ tmpdir=`func_mktempdir`
1.47297 -+ func_basename "$file$stripped_ext"
1.47298 -+ file="$func_basename_result"
1.47299 -+ outputname="$tmpdir/$file"
1.47300 -+ # Replace the output file specification.
1.47301 -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
1.47302 -+
1.47303 -+ $opt_silent || {
1.47304 -+ func_quote_for_expand "$relink_command"
1.47305 -+ eval "func_echo $func_quote_for_expand_result"
1.47306 -+ }
1.47307 -+ if eval "$relink_command"; then :
1.47308 -+ else
1.47309 -+ func_error "error: relink \`$file' with the above command before installing it"
1.47310 -+ $opt_dry_run || ${RM}r "$tmpdir"
1.47311 -+ continue
1.47312 -+ fi
1.47313 -+ file="$outputname"
1.47314 -+ else
1.47315 -+ func_warning "cannot relink \`$file'"
1.47316 -+ fi
1.47317 -+ }
1.47318 -+ else
1.47319 -+ # Install the binary that we compiled earlier.
1.47320 -+ file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
1.47321 -+ fi
1.47322 -+ fi
1.47323 -+
1.47324 -+ # remove .exe since cygwin /usr/bin/install will append another
1.47325 -+ # one anyway
1.47326 -+ case $install_prog,$host in
1.47327 -+ */usr/bin/install*,*cygwin*)
1.47328 -+ case $file:$destfile in
1.47329 -+ *.exe:*.exe)
1.47330 -+ # this is ok
1.47331 -+ ;;
1.47332 -+ *.exe:*)
1.47333 -+ destfile=$destfile.exe
1.47334 -+ ;;
1.47335 -+ *:*.exe)
1.47336 -+ func_stripname '' '.exe' "$destfile"
1.47337 -+ destfile=$func_stripname_result
1.47338 -+ ;;
1.47339 -+ esac
1.47340 -+ ;;
1.47341 -+ esac
1.47342 -+ func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
1.47343 -+ $opt_dry_run || if test -n "$outputname"; then
1.47344 -+ ${RM}r "$tmpdir"
1.47345 -+ fi
1.47346 -+ ;;
1.47347 -+ esac
1.47348 -+ done
1.47349 -+
1.47350 -+ for file in $staticlibs; do
1.47351 -+ func_basename "$file"
1.47352 -+ name="$func_basename_result"
1.47353 -+
1.47354 -+ # Set up the ranlib parameters.
1.47355 -+ oldlib="$destdir/$name"
1.47356 -+
1.47357 -+ func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
1.47358 -+
1.47359 -+ if test -n "$stripme" && test -n "$old_striplib"; then
1.47360 -+ func_show_eval "$old_striplib $oldlib" 'exit $?'
1.47361 -+ fi
1.47362 -+
1.47363 -+ # Do each command in the postinstall commands.
1.47364 -+ func_execute_cmds "$old_postinstall_cmds" 'exit $?'
1.47365 -+ done
1.47366 -+
1.47367 -+ test -n "$future_libdirs" && \
1.47368 -+ func_warning "remember to run \`$progname --finish$future_libdirs'"
1.47369 -+
1.47370 -+ if test -n "$current_libdirs"; then
1.47371 -+ # Maybe just do a dry run.
1.47372 -+ $opt_dry_run && current_libdirs=" -n$current_libdirs"
1.47373 -+ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
1.47374 -+ else
1.47375 -+ exit $EXIT_SUCCESS
1.47376 -+ fi
1.47377 -+}
1.47378 -+
1.47379 -+test "$mode" = install && func_mode_install ${1+"$@"}
1.47380 -+
1.47381 -+
1.47382 -+# func_mode_link arg...
1.47383 -+func_mode_link ()
1.47384 -+{
1.47385 -+ $opt_debug
1.47386 -+ case $host in
1.47387 -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1.47388 -+ # It is impossible to link a dll without this setting, and
1.47389 -+ # we shouldn't force the makefile maintainer to figure out
1.47390 -+ # which system we are compiling for in order to pass an extra
1.47391 -+ # flag for every libtool invocation.
1.47392 -+ # allow_undefined=no
1.47393 -+
1.47394 -+ # FIXME: Unfortunately, there are problems with the above when trying
1.47395 -+ # to make a dll which has undefined symbols, in which case not
1.47396 -+ # even a static library is built. For now, we need to specify
1.47397 -+ # -no-undefined on the libtool link line when we can be certain
1.47398 -+ # that all symbols are satisfied, otherwise we get a static library.
1.47399 -+ allow_undefined=yes
1.47400 -+ ;;
1.47401 -+ *)
1.47402 -+ allow_undefined=yes
1.47403 -+ ;;
1.47404 -+ esac
1.47405 -+ libtool_args=$nonopt
1.47406 -+ base_compile="$nonopt $@"
1.47407 -+ compile_command=$nonopt
1.47408 -+ finalize_command=$nonopt
1.47409 -+
1.47410 -+ compile_rpath=
1.47411 -+ finalize_rpath=
1.47412 -+ compile_shlibpath=
1.47413 -+ finalize_shlibpath=
1.47414 -+ convenience=
1.47415 -+ old_convenience=
1.47416 -+ deplibs=
1.47417 -+ old_deplibs=
1.47418 -+ compiler_flags=
1.47419 -+ linker_flags=
1.47420 -+ dllsearchpath=
1.47421 -+ lib_search_path=`pwd`
1.47422 -+ inst_prefix_dir=
1.47423 -+ new_inherited_linker_flags=
1.47424 -+
1.47425 -+ avoid_version=no
1.47426 -+ dlfiles=
1.47427 -+ dlprefiles=
1.47428 -+ dlself=no
1.47429 -+ export_dynamic=no
1.47430 -+ export_symbols=
1.47431 -+ export_symbols_regex=
1.47432 -+ generated=
1.47433 -+ libobjs=
1.47434 -+ ltlibs=
1.47435 -+ module=no
1.47436 -+ no_install=no
1.47437 -+ objs=
1.47438 -+ non_pic_objects=
1.47439 -+ precious_files_regex=
1.47440 -+ prefer_static_libs=no
1.47441 -+ preload=no
1.47442 -+ prev=
1.47443 -+ prevarg=
1.47444 -+ release=
1.47445 -+ rpath=
1.47446 -+ xrpath=
1.47447 -+ perm_rpath=
1.47448 -+ temp_rpath=
1.47449 -+ thread_safe=no
1.47450 -+ vinfo=
1.47451 -+ vinfo_number=no
1.47452 -+ weak_libs=
1.47453 -+ single_module="${wl}-single_module"
1.47454 -+ func_infer_tag $base_compile
1.47455 -+
1.47456 -+ # We need to know -static, to get the right output filenames.
1.47457 -+ for arg
1.47458 -+ do
1.47459 -+ case $arg in
1.47460 -+ -shared)
1.47461 -+ test "$build_libtool_libs" != yes && \
1.47462 -+ func_fatal_configuration "can not build a shared library"
1.47463 -+ build_old_libs=no
1.47464 -+ break
1.47465 -+ ;;
1.47466 -+ -all-static | -static | -static-libtool-libs)
1.47467 -+ case $arg in
1.47468 -+ -all-static)
1.47469 -+ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1.47470 -+ func_warning "complete static linking is impossible in this configuration"
1.47471 -+ fi
1.47472 -+ if test -n "$link_static_flag"; then
1.47473 -+ dlopen_self=$dlopen_self_static
1.47474 -+ # See comment for -static flag below, for more details.
1.47475 -+ func_append compile_command " $link_static_flag"
1.47476 -+ func_append finalize_command " $link_static_flag"
1.47477 -+ fi
1.47478 -+ prefer_static_libs=yes
1.47479 -+ ;;
1.47480 -+ -static)
1.47481 -+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
1.47482 -+ dlopen_self=$dlopen_self_static
1.47483 -+ fi
1.47484 -+ prefer_static_libs=built
1.47485 -+ ;;
1.47486 -+ -static-libtool-libs)
1.47487 -+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
1.47488 -+ dlopen_self=$dlopen_self_static
1.47489 -+ fi
1.47490 -+ prefer_static_libs=yes
1.47491 -+ ;;
1.47492 -+ esac
1.47493 -+ build_libtool_libs=no
1.47494 -+ build_old_libs=yes
1.47495 -+ break
1.47496 -+ ;;
1.47497 -+ esac
1.47498 -+ done
1.47499 -+
1.47500 -+ # See if our shared archives depend on static archives.
1.47501 -+ test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1.47502 -+
1.47503 -+ # Go through the arguments, transforming them on the way.
1.47504 -+ while test "$#" -gt 0; do
1.47505 -+ arg="$1"
1.47506 -+ shift
1.47507 -+ func_quote_for_eval "$arg"
1.47508 -+ qarg=$func_quote_for_eval_unquoted_result
1.47509 -+ func_append libtool_args " $func_quote_for_eval_result"
1.47510 -+
1.47511 -+ # If the previous option needs an argument, assign it.
1.47512 -+ if test -n "$prev"; then
1.47513 -+ case $prev in
1.47514 -+ output)
1.47515 -+ func_append compile_command " @OUTPUT@"
1.47516 -+ func_append finalize_command " @OUTPUT@"
1.47517 -+ ;;
1.47518 -+ esac
1.47519 -+
1.47520 -+ case $prev in
1.47521 -+ dlfiles|dlprefiles)
1.47522 -+ if test "$preload" = no; then
1.47523 -+ # Add the symbol object into the linking commands.
1.47524 -+ func_append compile_command " @SYMFILE@"
1.47525 -+ func_append finalize_command " @SYMFILE@"
1.47526 -+ preload=yes
1.47527 -+ fi
1.47528 -+ case $arg in
1.47529 -+ *.la | *.lo) ;; # We handle these cases below.
1.47530 -+ force)
1.47531 -+ if test "$dlself" = no; then
1.47532 -+ dlself=needless
1.47533 -+ export_dynamic=yes
1.47534 -+ fi
1.47535 -+ prev=
1.47536 -+ continue
1.47537 -+ ;;
1.47538 -+ self)
1.47539 -+ if test "$prev" = dlprefiles; then
1.47540 -+ dlself=yes
1.47541 -+ elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1.47542 -+ dlself=yes
1.47543 -+ else
1.47544 -+ dlself=needless
1.47545 -+ export_dynamic=yes
1.47546 -+ fi
1.47547 -+ prev=
1.47548 -+ continue
1.47549 -+ ;;
1.47550 -+ *)
1.47551 -+ if test "$prev" = dlfiles; then
1.47552 -+ dlfiles="$dlfiles $arg"
1.47553 -+ else
1.47554 -+ dlprefiles="$dlprefiles $arg"
1.47555 -+ fi
1.47556 -+ prev=
1.47557 -+ continue
1.47558 -+ ;;
1.47559 -+ esac
1.47560 -+ ;;
1.47561 -+ expsyms)
1.47562 -+ export_symbols="$arg"
1.47563 -+ test -f "$arg" \
1.47564 -+ || func_fatal_error "symbol file \`$arg' does not exist"
1.47565 -+ prev=
1.47566 -+ continue
1.47567 -+ ;;
1.47568 -+ expsyms_regex)
1.47569 -+ export_symbols_regex="$arg"
1.47570 -+ prev=
1.47571 -+ continue
1.47572 -+ ;;
1.47573 -+ framework)
1.47574 -+ case $host in
1.47575 -+ *-*-darwin*)
1.47576 -+ case "$deplibs " in
1.47577 -+ *" $qarg.ltframework "*) ;;
1.47578 -+ *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
1.47579 -+ ;;
1.47580 -+ esac
1.47581 -+ ;;
1.47582 -+ esac
1.47583 -+ prev=
1.47584 -+ continue
1.47585 -+ ;;
1.47586 -+ inst_prefix)
1.47587 -+ inst_prefix_dir="$arg"
1.47588 -+ prev=
1.47589 -+ continue
1.47590 -+ ;;
1.47591 -+ objectlist)
1.47592 -+ if test -f "$arg"; then
1.47593 -+ save_arg=$arg
1.47594 -+ moreargs=
1.47595 -+ for fil in `cat "$save_arg"`
1.47596 -+ do
1.47597 -+# moreargs="$moreargs $fil"
1.47598 -+ arg=$fil
1.47599 -+ # A libtool-controlled object.
1.47600 -+
1.47601 -+ # Check to see that this really is a libtool object.
1.47602 -+ if func_lalib_unsafe_p "$arg"; then
1.47603 -+ pic_object=
1.47604 -+ non_pic_object=
1.47605 -+
1.47606 -+ # Read the .lo file
1.47607 -+ func_source "$arg"
1.47608 -+
1.47609 -+ if test -z "$pic_object" ||
1.47610 -+ test -z "$non_pic_object" ||
1.47611 -+ test "$pic_object" = none &&
1.47612 -+ test "$non_pic_object" = none; then
1.47613 -+ func_fatal_error "cannot find name of object for \`$arg'"
1.47614 -+ fi
1.47615 -+
1.47616 -+ # Extract subdirectory from the argument.
1.47617 -+ func_dirname "$arg" "/" ""
1.47618 -+ xdir="$func_dirname_result"
1.47619 -+
1.47620 -+ if test "$pic_object" != none; then
1.47621 -+ # Prepend the subdirectory the object is found in.
1.47622 -+ pic_object="$xdir$pic_object"
1.47623 -+
1.47624 -+ if test "$prev" = dlfiles; then
1.47625 -+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1.47626 -+ dlfiles="$dlfiles $pic_object"
1.47627 -+ prev=
1.47628 -+ continue
1.47629 -+ else
1.47630 -+ # If libtool objects are unsupported, then we need to preload.
1.47631 -+ prev=dlprefiles
1.47632 -+ fi
1.47633 -+ fi
1.47634 -+
1.47635 -+ # CHECK ME: I think I busted this. -Ossama
1.47636 -+ if test "$prev" = dlprefiles; then
1.47637 -+ # Preload the old-style object.
1.47638 -+ dlprefiles="$dlprefiles $pic_object"
1.47639 -+ prev=
1.47640 -+ fi
1.47641 -+
1.47642 -+ # A PIC object.
1.47643 -+ func_append libobjs " $pic_object"
1.47644 -+ arg="$pic_object"
1.47645 -+ fi
1.47646 -+
1.47647 -+ # Non-PIC object.
1.47648 -+ if test "$non_pic_object" != none; then
1.47649 -+ # Prepend the subdirectory the object is found in.
1.47650 -+ non_pic_object="$xdir$non_pic_object"
1.47651 -+
1.47652 -+ # A standard non-PIC object
1.47653 -+ func_append non_pic_objects " $non_pic_object"
1.47654 -+ if test -z "$pic_object" || test "$pic_object" = none ; then
1.47655 -+ arg="$non_pic_object"
1.47656 -+ fi
1.47657 -+ else
1.47658 -+ # If the PIC object exists, use it instead.
1.47659 -+ # $xdir was prepended to $pic_object above.
1.47660 -+ non_pic_object="$pic_object"
1.47661 -+ func_append non_pic_objects " $non_pic_object"
1.47662 -+ fi
1.47663 -+ else
1.47664 -+ # Only an error if not doing a dry-run.
1.47665 -+ if $opt_dry_run; then
1.47666 -+ # Extract subdirectory from the argument.
1.47667 -+ func_dirname "$arg" "/" ""
1.47668 -+ xdir="$func_dirname_result"
1.47669 -+
1.47670 -+ func_lo2o "$arg"
1.47671 -+ pic_object=$xdir$objdir/$func_lo2o_result
1.47672 -+ non_pic_object=$xdir$func_lo2o_result
1.47673 -+ func_append libobjs " $pic_object"
1.47674 -+ func_append non_pic_objects " $non_pic_object"
1.47675 -+ else
1.47676 -+ func_fatal_error "\`$arg' is not a valid libtool object"
1.47677 -+ fi
1.47678 -+ fi
1.47679 -+ done
1.47680 -+ else
1.47681 -+ func_fatal_error "link input file \`$arg' does not exist"
1.47682 -+ fi
1.47683 -+ arg=$save_arg
1.47684 -+ prev=
1.47685 -+ continue
1.47686 -+ ;;
1.47687 -+ precious_regex)
1.47688 -+ precious_files_regex="$arg"
1.47689 -+ prev=
1.47690 -+ continue
1.47691 -+ ;;
1.47692 -+ release)
1.47693 -+ release="-$arg"
1.47694 -+ prev=
1.47695 -+ continue
1.47696 -+ ;;
1.47697 -+ rpath | xrpath)
1.47698 -+ # We need an absolute path.
1.47699 -+ case $arg in
1.47700 -+ [\\/]* | [A-Za-z]:[\\/]*) ;;
1.47701 -+ *)
1.47702 -+ func_fatal_error "only absolute run-paths are allowed"
1.47703 -+ ;;
1.47704 -+ esac
1.47705 -+ if test "$prev" = rpath; then
1.47706 -+ case "$rpath " in
1.47707 -+ *" $arg "*) ;;
1.47708 -+ *) rpath="$rpath $arg" ;;
1.47709 -+ esac
1.47710 -+ else
1.47711 -+ case "$xrpath " in
1.47712 -+ *" $arg "*) ;;
1.47713 -+ *) xrpath="$xrpath $arg" ;;
1.47714 -+ esac
1.47715 -+ fi
1.47716 -+ prev=
1.47717 -+ continue
1.47718 -+ ;;
1.47719 -+ shrext)
1.47720 -+ shrext_cmds="$arg"
1.47721 -+ prev=
1.47722 -+ continue
1.47723 -+ ;;
1.47724 -+ weak)
1.47725 -+ weak_libs="$weak_libs $arg"
1.47726 -+ prev=
1.47727 -+ continue
1.47728 -+ ;;
1.47729 -+ xcclinker)
1.47730 -+ linker_flags="$linker_flags $qarg"
1.47731 -+ compiler_flags="$compiler_flags $qarg"
1.47732 -+ prev=
1.47733 -+ func_append compile_command " $qarg"
1.47734 -+ func_append finalize_command " $qarg"
1.47735 -+ continue
1.47736 -+ ;;
1.47737 -+ xcompiler)
1.47738 -+ compiler_flags="$compiler_flags $qarg"
1.47739 -+ prev=
1.47740 -+ func_append compile_command " $qarg"
1.47741 -+ func_append finalize_command " $qarg"
1.47742 -+ continue
1.47743 -+ ;;
1.47744 -+ xlinker)
1.47745 -+ linker_flags="$linker_flags $qarg"
1.47746 -+ compiler_flags="$compiler_flags $wl$qarg"
1.47747 -+ prev=
1.47748 -+ func_append compile_command " $wl$qarg"
1.47749 -+ func_append finalize_command " $wl$qarg"
1.47750 -+ continue
1.47751 -+ ;;
1.47752 -+ *)
1.47753 -+ eval "$prev=\"\$arg\""
1.47754 -+ prev=
1.47755 -+ continue
1.47756 -+ ;;
1.47757 -+ esac
1.47758 -+ fi # test -n "$prev"
1.47759 -+
1.47760 -+ prevarg="$arg"
1.47761 -+
1.47762 -+ case $arg in
1.47763 -+ -all-static)
1.47764 -+ # The effects of -all-static are defined in a previous loop.
1.47765 -+ continue
1.47766 -+ ;;
1.47767 -+
1.47768 -+ -allow-undefined)
1.47769 -+ # FIXME: remove this flag sometime in the future.
1.47770 -+ func_fatal_error "\`-allow-undefined' must not be used because it is the default"
1.47771 -+ ;;
1.47772 -+
1.47773 -+ -avoid-version)
1.47774 -+ avoid_version=yes
1.47775 -+ continue
1.47776 -+ ;;
1.47777 -+
1.47778 -+ -dlopen)
1.47779 -+ prev=dlfiles
1.47780 -+ continue
1.47781 -+ ;;
1.47782 -+
1.47783 -+ -dlpreopen)
1.47784 -+ prev=dlprefiles
1.47785 -+ continue
1.47786 -+ ;;
1.47787 -+
1.47788 -+ -export-dynamic)
1.47789 -+ export_dynamic=yes
1.47790 -+ continue
1.47791 -+ ;;
1.47792 -+
1.47793 -+ -export-symbols | -export-symbols-regex)
1.47794 -+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1.47795 -+ func_fatal_error "more than one -exported-symbols argument is not allowed"
1.47796 -+ fi
1.47797 -+ if test "X$arg" = "X-export-symbols"; then
1.47798 -+ prev=expsyms
1.47799 -+ else
1.47800 -+ prev=expsyms_regex
1.47801 -+ fi
1.47802 -+ continue
1.47803 -+ ;;
1.47804 -+
1.47805 -+ -framework)
1.47806 -+ prev=framework
1.47807 -+ continue
1.47808 -+ ;;
1.47809 -+
1.47810 -+ -inst-prefix-dir)
1.47811 -+ prev=inst_prefix
1.47812 -+ continue
1.47813 -+ ;;
1.47814 -+
1.47815 -+ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1.47816 -+ # so, if we see these flags be careful not to treat them like -L
1.47817 -+ -L[A-Z][A-Z]*:*)
1.47818 -+ case $with_gcc/$host in
1.47819 -+ no/*-*-irix* | /*-*-irix*)
1.47820 -+ func_append compile_command " $arg"
1.47821 -+ func_append finalize_command " $arg"
1.47822 -+ ;;
1.47823 -+ esac
1.47824 -+ continue
1.47825 -+ ;;
1.47826 -+
1.47827 -+ -L*)
1.47828 -+ func_stripname '-L' '' "$arg"
1.47829 -+ dir=$func_stripname_result
1.47830 -+ # We need an absolute path.
1.47831 -+ case $dir in
1.47832 -+ [\\/]* | [A-Za-z]:[\\/]*) ;;
1.47833 -+ *)
1.47834 -+ absdir=`cd "$dir" && pwd`
1.47835 -+ test -z "$absdir" && \
1.47836 -+ func_fatal_error "cannot determine absolute directory name of \`$dir'"
1.47837 -+ dir="$absdir"
1.47838 -+ ;;
1.47839 -+ esac
1.47840 -+ case "$deplibs " in
1.47841 -+ *" -L$dir "*) ;;
1.47842 -+ *)
1.47843 -+ deplibs="$deplibs -L$dir"
1.47844 -+ lib_search_path="$lib_search_path $dir"
1.47845 -+ ;;
1.47846 -+ esac
1.47847 -+ case $host in
1.47848 -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1.47849 -+ testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1.47850 -+ case :$dllsearchpath: in
1.47851 -+ *":$dir:"*) ;;
1.47852 -+ *) dllsearchpath="$dllsearchpath:$dir";;
1.47853 -+ esac
1.47854 -+ case :$dllsearchpath: in
1.47855 -+ *":$testbindir:"*) ;;
1.47856 -+ *) dllsearchpath="$dllsearchpath:$testbindir";;
1.47857 -+ esac
1.47858 -+ ;;
1.47859 -+ esac
1.47860 -+ continue
1.47861 -+ ;;
1.47862 -+
1.47863 -+ -l*)
1.47864 -+ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1.47865 -+ case $host in
1.47866 -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
1.47867 -+ # These systems don't actually have a C or math library (as such)
1.47868 -+ continue
1.47869 -+ ;;
1.47870 -+ *-*-os2*)
1.47871 -+ # These systems don't actually have a C library (as such)
1.47872 -+ test "X$arg" = "X-lc" && continue
1.47873 -+ ;;
1.47874 -+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1.47875 -+ # Do not include libc due to us having libc/libc_r.
1.47876 -+ test "X$arg" = "X-lc" && continue
1.47877 -+ ;;
1.47878 -+ *-*-rhapsody* | *-*-darwin1.[012])
1.47879 -+ # Rhapsody C and math libraries are in the System framework
1.47880 -+ deplibs="$deplibs System.ltframework"
1.47881 -+ continue
1.47882 -+ ;;
1.47883 -+ *-*-sco3.2v5* | *-*-sco5v6*)
1.47884 -+ # Causes problems with __ctype
1.47885 -+ test "X$arg" = "X-lc" && continue
1.47886 -+ ;;
1.47887 -+ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1.47888 -+ # Compiler inserts libc in the correct place for threads to work
1.47889 -+ test "X$arg" = "X-lc" && continue
1.47890 -+ ;;
1.47891 -+ esac
1.47892 -+ elif test "X$arg" = "X-lc_r"; then
1.47893 -+ case $host in
1.47894 -+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1.47895 -+ # Do not include libc_r directly, use -pthread flag.
1.47896 -+ continue
1.47897 -+ ;;
1.47898 -+ esac
1.47899 -+ fi
1.47900 -+ deplibs="$deplibs $arg"
1.47901 -+ continue
1.47902 -+ ;;
1.47903 -+
1.47904 -+ -module)
1.47905 -+ module=yes
1.47906 -+ continue
1.47907 -+ ;;
1.47908 -+
1.47909 -+ # Tru64 UNIX uses -model [arg] to determine the layout of C++
1.47910 -+ # classes, name mangling, and exception handling.
1.47911 -+ # Darwin uses the -arch flag to determine output architecture.
1.47912 -+ -model|-arch|-isysroot)
1.47913 -+ compiler_flags="$compiler_flags $arg"
1.47914 -+ func_append compile_command " $arg"
1.47915 -+ func_append finalize_command " $arg"
1.47916 -+ prev=xcompiler
1.47917 -+ continue
1.47918 -+ ;;
1.47919 -+
1.47920 -+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
1.47921 -+ compiler_flags="$compiler_flags $arg"
1.47922 -+ func_append compile_command " $arg"
1.47923 -+ func_append finalize_command " $arg"
1.47924 -+ case "$new_inherited_linker_flags " in
1.47925 -+ *" $arg "*) ;;
1.47926 -+ * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
1.47927 -+ esac
1.47928 -+ continue
1.47929 -+ ;;
1.47930 -+
1.47931 -+ -multi_module)
1.47932 -+ single_module="${wl}-multi_module"
1.47933 -+ continue
1.47934 -+ ;;
1.47935 -+
1.47936 -+ -no-fast-install)
1.47937 -+ fast_install=no
1.47938 -+ continue
1.47939 -+ ;;
1.47940 -+
1.47941 -+ -no-install)
1.47942 -+ case $host in
1.47943 -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1.47944 -+ # The PATH hackery in wrapper scripts is required on Windows
1.47945 -+ # in order for the loader to find any dlls it needs.
1.47946 -+ func_warning "\`-no-install' is ignored for $host"
1.47947 -+ func_warning "assuming \`-no-fast-install' instead"
1.47948 -+ fast_install=no
1.47949 -+ ;;
1.47950 -+ *) no_install=yes ;;
1.47951 -+ esac
1.47952 -+ continue
1.47953 -+ ;;
1.47954 -+
1.47955 -+ -no-undefined)
1.47956 -+ allow_undefined=no
1.47957 -+ continue
1.47958 -+ ;;
1.47959 -+
1.47960 -+ -objectlist)
1.47961 -+ prev=objectlist
1.47962 -+ continue
1.47963 -+ ;;
1.47964 -+
1.47965 -+ -o) prev=output ;;
1.47966 -+
1.47967 -+ -precious-files-regex)
1.47968 -+ prev=precious_regex
1.47969 -+ continue
1.47970 -+ ;;
1.47971 -+
1.47972 -+ -release)
1.47973 -+ prev=release
1.47974 -+ continue
1.47975 -+ ;;
1.47976 -+
1.47977 -+ -rpath)
1.47978 -+ prev=rpath
1.47979 -+ continue
1.47980 -+ ;;
1.47981 -+
1.47982 -+ -R)
1.47983 -+ prev=xrpath
1.47984 -+ continue
1.47985 -+ ;;
1.47986 -+
1.47987 -+ -R*)
1.47988 -+ func_stripname '-R' '' "$arg"
1.47989 -+ dir=$func_stripname_result
1.47990 -+ # We need an absolute path.
1.47991 -+ case $dir in
1.47992 -+ [\\/]* | [A-Za-z]:[\\/]*) ;;
1.47993 -+ *)
1.47994 -+ func_fatal_error "only absolute run-paths are allowed"
1.47995 -+ ;;
1.47996 -+ esac
1.47997 -+ case "$xrpath " in
1.47998 -+ *" $dir "*) ;;
1.47999 -+ *) xrpath="$xrpath $dir" ;;
1.48000 -+ esac
1.48001 -+ continue
1.48002 -+ ;;
1.48003 -+
1.48004 -+ -shared)
1.48005 -+ # The effects of -shared are defined in a previous loop.
1.48006 -+ continue
1.48007 -+ ;;
1.48008 -+
1.48009 -+ -shrext)
1.48010 -+ prev=shrext
1.48011 -+ continue
1.48012 -+ ;;
1.48013 -+
1.48014 -+ -static | -static-libtool-libs)
1.48015 -+ # The effects of -static are defined in a previous loop.
1.48016 -+ # We used to do the same as -all-static on platforms that
1.48017 -+ # didn't have a PIC flag, but the assumption that the effects
1.48018 -+ # would be equivalent was wrong. It would break on at least
1.48019 -+ # Digital Unix and AIX.
1.48020 -+ continue
1.48021 -+ ;;
1.48022 -+
1.48023 -+ -thread-safe)
1.48024 -+ thread_safe=yes
1.48025 -+ continue
1.48026 -+ ;;
1.48027 -+
1.48028 -+ -version-info)
1.48029 -+ prev=vinfo
1.48030 -+ continue
1.48031 -+ ;;
1.48032 -+
1.48033 -+ -version-number)
1.48034 -+ prev=vinfo
1.48035 -+ vinfo_number=yes
1.48036 -+ continue
1.48037 -+ ;;
1.48038 -+
1.48039 -+ -weak)
1.48040 -+ prev=weak
1.48041 -+ continue
1.48042 -+ ;;
1.48043 -+
1.48044 -+ -Wc,*)
1.48045 -+ func_stripname '-Wc,' '' "$arg"
1.48046 -+ args=$func_stripname_result
1.48047 -+ arg=
1.48048 -+ save_ifs="$IFS"; IFS=','
1.48049 -+ for flag in $args; do
1.48050 -+ IFS="$save_ifs"
1.48051 -+ func_quote_for_eval "$flag"
1.48052 -+ arg="$arg $wl$func_quote_for_eval_result"
1.48053 -+ compiler_flags="$compiler_flags $func_quote_for_eval_result"
1.48054 -+ done
1.48055 -+ IFS="$save_ifs"
1.48056 -+ func_stripname ' ' '' "$arg"
1.48057 -+ arg=$func_stripname_result
1.48058 -+ ;;
1.48059 -+
1.48060 -+ -Wl,*)
1.48061 -+ func_stripname '-Wl,' '' "$arg"
1.48062 -+ args=$func_stripname_result
1.48063 -+ arg=
1.48064 -+ save_ifs="$IFS"; IFS=','
1.48065 -+ for flag in $args; do
1.48066 -+ IFS="$save_ifs"
1.48067 -+ func_quote_for_eval "$flag"
1.48068 -+ arg="$arg $wl$func_quote_for_eval_result"
1.48069 -+ compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
1.48070 -+ linker_flags="$linker_flags $func_quote_for_eval_result"
1.48071 -+ done
1.48072 -+ IFS="$save_ifs"
1.48073 -+ func_stripname ' ' '' "$arg"
1.48074 -+ arg=$func_stripname_result
1.48075 -+ ;;
1.48076 -+
1.48077 -+ -Xcompiler)
1.48078 -+ prev=xcompiler
1.48079 -+ continue
1.48080 -+ ;;
1.48081 -+
1.48082 -+ -Xlinker)
1.48083 -+ prev=xlinker
1.48084 -+ continue
1.48085 -+ ;;
1.48086 -+
1.48087 -+ -XCClinker)
1.48088 -+ prev=xcclinker
1.48089 -+ continue
1.48090 -+ ;;
1.48091 -+
1.48092 -+ # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1.48093 -+ # -r[0-9][0-9]* specifies the processor on the SGI compiler
1.48094 -+ # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1.48095 -+ # +DA*, +DD* enable 64-bit mode on the HP compiler
1.48096 -+ # -q* pass through compiler args for the IBM compiler
1.48097 -+ # -m*, -t[45]*, -txscale* pass through architecture-specific
1.48098 -+ # compiler args for GCC
1.48099 -+ # -F/path gives path to uninstalled frameworks, gcc on darwin
1.48100 -+ # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
1.48101 -+ # @file GCC response files
1.48102 -+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
1.48103 -+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
1.48104 -+ func_quote_for_eval "$arg"
1.48105 -+ arg="$func_quote_for_eval_result"
1.48106 -+ func_append compile_command " $arg"
1.48107 -+ func_append finalize_command " $arg"
1.48108 -+ compiler_flags="$compiler_flags $arg"
1.48109 -+ continue
1.48110 -+ ;;
1.48111 -+
1.48112 -+ # Some other compiler flag.
1.48113 -+ -* | +*)
1.48114 -+ func_quote_for_eval "$arg"
1.48115 -+ arg="$func_quote_for_eval_result"
1.48116 -+ ;;
1.48117 -+
1.48118 -+ *.$objext)
1.48119 -+ # A standard object.
1.48120 -+ objs="$objs $arg"
1.48121 -+ ;;
1.48122 -+
1.48123 -+ *.lo)
1.48124 -+ # A libtool-controlled object.
1.48125 -+
1.48126 -+ # Check to see that this really is a libtool object.
1.48127 -+ if func_lalib_unsafe_p "$arg"; then
1.48128 -+ pic_object=
1.48129 -+ non_pic_object=
1.48130 -+
1.48131 -+ # Read the .lo file
1.48132 -+ func_source "$arg"
1.48133 -+
1.48134 -+ if test -z "$pic_object" ||
1.48135 -+ test -z "$non_pic_object" ||
1.48136 -+ test "$pic_object" = none &&
1.48137 -+ test "$non_pic_object" = none; then
1.48138 -+ func_fatal_error "cannot find name of object for \`$arg'"
1.48139 -+ fi
1.48140 -+
1.48141 -+ # Extract subdirectory from the argument.
1.48142 -+ func_dirname "$arg" "/" ""
1.48143 -+ xdir="$func_dirname_result"
1.48144 -+
1.48145 -+ if test "$pic_object" != none; then
1.48146 -+ # Prepend the subdirectory the object is found in.
1.48147 -+ pic_object="$xdir$pic_object"
1.48148 -+
1.48149 -+ if test "$prev" = dlfiles; then
1.48150 -+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1.48151 -+ dlfiles="$dlfiles $pic_object"
1.48152 -+ prev=
1.48153 -+ continue
1.48154 -+ else
1.48155 -+ # If libtool objects are unsupported, then we need to preload.
1.48156 -+ prev=dlprefiles
1.48157 -+ fi
1.48158 -+ fi
1.48159 -+
1.48160 -+ # CHECK ME: I think I busted this. -Ossama
1.48161 -+ if test "$prev" = dlprefiles; then
1.48162 -+ # Preload the old-style object.
1.48163 -+ dlprefiles="$dlprefiles $pic_object"
1.48164 -+ prev=
1.48165 -+ fi
1.48166 -+
1.48167 -+ # A PIC object.
1.48168 -+ func_append libobjs " $pic_object"
1.48169 -+ arg="$pic_object"
1.48170 -+ fi
1.48171 -+
1.48172 -+ # Non-PIC object.
1.48173 -+ if test "$non_pic_object" != none; then
1.48174 -+ # Prepend the subdirectory the object is found in.
1.48175 -+ non_pic_object="$xdir$non_pic_object"
1.48176 -+
1.48177 -+ # A standard non-PIC object
1.48178 -+ func_append non_pic_objects " $non_pic_object"
1.48179 -+ if test -z "$pic_object" || test "$pic_object" = none ; then
1.48180 -+ arg="$non_pic_object"
1.48181 -+ fi
1.48182 -+ else
1.48183 -+ # If the PIC object exists, use it instead.
1.48184 -+ # $xdir was prepended to $pic_object above.
1.48185 -+ non_pic_object="$pic_object"
1.48186 -+ func_append non_pic_objects " $non_pic_object"
1.48187 -+ fi
1.48188 -+ else
1.48189 -+ # Only an error if not doing a dry-run.
1.48190 -+ if $opt_dry_run; then
1.48191 -+ # Extract subdirectory from the argument.
1.48192 -+ func_dirname "$arg" "/" ""
1.48193 -+ xdir="$func_dirname_result"
1.48194 -+
1.48195 -+ func_lo2o "$arg"
1.48196 -+ pic_object=$xdir$objdir/$func_lo2o_result
1.48197 -+ non_pic_object=$xdir$func_lo2o_result
1.48198 -+ func_append libobjs " $pic_object"
1.48199 -+ func_append non_pic_objects " $non_pic_object"
1.48200 -+ else
1.48201 -+ func_fatal_error "\`$arg' is not a valid libtool object"
1.48202 -+ fi
1.48203 -+ fi
1.48204 -+ ;;
1.48205 -+
1.48206 -+ *.$libext)
1.48207 -+ # An archive.
1.48208 -+ deplibs="$deplibs $arg"
1.48209 -+ old_deplibs="$old_deplibs $arg"
1.48210 -+ continue
1.48211 -+ ;;
1.48212 -+
1.48213 -+ *.la)
1.48214 -+ # A libtool-controlled library.
1.48215 -+
1.48216 -+ if test "$prev" = dlfiles; then
1.48217 -+ # This library was specified with -dlopen.
1.48218 -+ dlfiles="$dlfiles $arg"
1.48219 -+ prev=
1.48220 -+ elif test "$prev" = dlprefiles; then
1.48221 -+ # The library was specified with -dlpreopen.
1.48222 -+ dlprefiles="$dlprefiles $arg"
1.48223 -+ prev=
1.48224 -+ else
1.48225 -+ deplibs="$deplibs $arg"
1.48226 -+ fi
1.48227 -+ continue
1.48228 -+ ;;
1.48229 -+
1.48230 -+ # Some other compiler argument.
1.48231 -+ *)
1.48232 -+ # Unknown arguments in both finalize_command and compile_command need
1.48233 -+ # to be aesthetically quoted because they are evaled later.
1.48234 -+ func_quote_for_eval "$arg"
1.48235 -+ arg="$func_quote_for_eval_result"
1.48236 -+ ;;
1.48237 -+ esac # arg
1.48238 -+
1.48239 -+ # Now actually substitute the argument into the commands.
1.48240 -+ if test -n "$arg"; then
1.48241 -+ func_append compile_command " $arg"
1.48242 -+ func_append finalize_command " $arg"
1.48243 -+ fi
1.48244 -+ done # argument parsing loop
1.48245 -+
1.48246 -+ test -n "$prev" && \
1.48247 -+ func_fatal_help "the \`$prevarg' option requires an argument"
1.48248 -+
1.48249 -+ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1.48250 -+ eval arg=\"$export_dynamic_flag_spec\"
1.48251 -+ func_append compile_command " $arg"
1.48252 -+ func_append finalize_command " $arg"
1.48253 -+ fi
1.48254 -+
1.48255 -+ oldlibs=
1.48256 -+ # calculate the name of the file, without its directory
1.48257 -+ func_basename "$output"
1.48258 -+ outputname="$func_basename_result"
1.48259 -+ libobjs_save="$libobjs"
1.48260 -+
1.48261 -+ if test -n "$shlibpath_var"; then
1.48262 -+ # get the directories listed in $shlibpath_var
1.48263 -+ eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1.48264 -+ else
1.48265 -+ shlib_search_path=
1.48266 -+ fi
1.48267 -+ eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1.48268 -+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1.48269 -+
1.48270 -+ func_dirname "$output" "/" ""
1.48271 -+ output_objdir="$func_dirname_result$objdir"
1.48272 -+ # Create the object directory.
1.48273 -+ func_mkdir_p "$output_objdir"
1.48274 -+
1.48275 -+ # Determine the type of output
1.48276 -+ case $output in
1.48277 -+ "")
1.48278 -+ func_fatal_help "you must specify an output file"
1.48279 -+ ;;
1.48280 -+ *.$libext) linkmode=oldlib ;;
1.48281 -+ *.lo | *.$objext) linkmode=obj ;;
1.48282 -+ *.la) linkmode=lib ;;
1.48283 -+ *) linkmode=prog ;; # Anything else should be a program.
1.48284 -+ esac
1.48285 -+
1.48286 -+ specialdeplibs=
1.48287 -+
1.48288 -+ libs=
1.48289 -+ # Find all interdependent deplibs by searching for libraries
1.48290 -+ # that are linked more than once (e.g. -la -lb -la)
1.48291 -+ for deplib in $deplibs; do
1.48292 -+ if $opt_duplicate_deps ; then
1.48293 -+ case "$libs " in
1.48294 -+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1.48295 -+ esac
1.48296 -+ fi
1.48297 -+ libs="$libs $deplib"
1.48298 -+ done
1.48299 -+
1.48300 -+ if test "$linkmode" = lib; then
1.48301 -+ libs="$predeps $libs $compiler_lib_search_path $postdeps"
1.48302 -+
1.48303 -+ # Compute libraries that are listed more than once in $predeps
1.48304 -+ # $postdeps and mark them as special (i.e., whose duplicates are
1.48305 -+ # not to be eliminated).
1.48306 -+ pre_post_deps=
1.48307 -+ if $opt_duplicate_compiler_generated_deps; then
1.48308 -+ for pre_post_dep in $predeps $postdeps; do
1.48309 -+ case "$pre_post_deps " in
1.48310 -+ *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
1.48311 -+ esac
1.48312 -+ pre_post_deps="$pre_post_deps $pre_post_dep"
1.48313 -+ done
1.48314 -+ fi
1.48315 -+ pre_post_deps=
1.48316 -+ fi
1.48317 -+
1.48318 -+ deplibs=
1.48319 -+ newdependency_libs=
1.48320 -+ newlib_search_path=
1.48321 -+ need_relink=no # whether we're linking any uninstalled libtool libraries
1.48322 -+ notinst_deplibs= # not-installed libtool libraries
1.48323 -+ notinst_path= # paths that contain not-installed libtool libraries
1.48324 -+
1.48325 -+ case $linkmode in
1.48326 -+ lib)
1.48327 -+ passes="conv dlpreopen link"
1.48328 -+ for file in $dlfiles $dlprefiles; do
1.48329 -+ case $file in
1.48330 -+ *.la) ;;
1.48331 -+ *)
1.48332 -+ func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
1.48333 -+ ;;
1.48334 -+ esac
1.48335 -+ done
1.48336 -+ ;;
1.48337 -+ prog)
1.48338 -+ compile_deplibs=
1.48339 -+ finalize_deplibs=
1.48340 -+ alldeplibs=no
1.48341 -+ newdlfiles=
1.48342 -+ newdlprefiles=
1.48343 -+ passes="conv scan dlopen dlpreopen link"
1.48344 -+ ;;
1.48345 -+ *) passes="conv"
1.48346 -+ ;;
1.48347 -+ esac
1.48348 -+
1.48349 -+ for pass in $passes; do
1.48350 -+ # The preopen pass in lib mode reverses $deplibs; put it back here
1.48351 -+ # so that -L comes before libs that need it for instance...
1.48352 -+ if test "$linkmode,$pass" = "lib,link"; then
1.48353 -+ ## FIXME: Find the place where the list is rebuilt in the wrong
1.48354 -+ ## order, and fix it there properly
1.48355 -+ tmp_deplibs=
1.48356 -+ for deplib in $deplibs; do
1.48357 -+ tmp_deplibs="$deplib $tmp_deplibs"
1.48358 -+ done
1.48359 -+ deplibs="$tmp_deplibs"
1.48360 -+ fi
1.48361 -+
1.48362 -+ if test "$linkmode,$pass" = "lib,link" ||
1.48363 -+ test "$linkmode,$pass" = "prog,scan"; then
1.48364 -+ libs="$deplibs"
1.48365 -+ deplibs=
1.48366 -+ fi
1.48367 -+ if test "$linkmode" = prog; then
1.48368 -+ case $pass in
1.48369 -+ dlopen) libs="$dlfiles" ;;
1.48370 -+ dlpreopen) libs="$dlprefiles" ;;
1.48371 -+ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
1.48372 -+ esac
1.48373 -+ fi
1.48374 -+ if test "$linkmode,$pass" = "lib,dlpreopen"; then
1.48375 -+ # Collect and forward deplibs of preopened libtool libs
1.48376 -+ for lib in $dlprefiles; do
1.48377 -+ # Ignore non-libtool-libs
1.48378 -+ dependency_libs=
1.48379 -+ case $lib in
1.48380 -+ *.la) func_source "$lib" ;;
1.48381 -+ esac
1.48382 -+
1.48383 -+ # Collect preopened libtool deplibs, except any this library
1.48384 -+ # has declared as weak libs
1.48385 -+ for deplib in $dependency_libs; do
1.48386 -+ deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
1.48387 -+ case " $weak_libs " in
1.48388 -+ *" $deplib_base "*) ;;
1.48389 -+ *) deplibs="$deplibs $deplib" ;;
1.48390 -+ esac
1.48391 -+ done
1.48392 -+ done
1.48393 -+ libs="$dlprefiles"
1.48394 -+ fi
1.48395 -+ if test "$pass" = dlopen; then
1.48396 -+ # Collect dlpreopened libraries
1.48397 -+ save_deplibs="$deplibs"
1.48398 -+ deplibs=
1.48399 -+ fi
1.48400 -+
1.48401 -+ for deplib in $libs; do
1.48402 -+ lib=
1.48403 -+ found=no
1.48404 -+ case $deplib in
1.48405 -+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
1.48406 -+ if test "$linkmode,$pass" = "prog,link"; then
1.48407 -+ compile_deplibs="$deplib $compile_deplibs"
1.48408 -+ finalize_deplibs="$deplib $finalize_deplibs"
1.48409 -+ else
1.48410 -+ compiler_flags="$compiler_flags $deplib"
1.48411 -+ if test "$linkmode" = lib ; then
1.48412 -+ case "$new_inherited_linker_flags " in
1.48413 -+ *" $deplib "*) ;;
1.48414 -+ * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
1.48415 -+ esac
1.48416 -+ fi
1.48417 -+ fi
1.48418 -+ continue
1.48419 -+ ;;
1.48420 -+ -l*)
1.48421 -+ if test "$linkmode" != lib && test "$linkmode" != prog; then
1.48422 -+ func_warning "\`-l' is ignored for archives/objects"
1.48423 -+ continue
1.48424 -+ fi
1.48425 -+ func_stripname '-l' '' "$deplib"
1.48426 -+ name=$func_stripname_result
1.48427 -+ for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1.48428 -+ for search_ext in .la $std_shrext .so .a; do
1.48429 -+ # Search the libtool library
1.48430 -+ lib="$searchdir/lib${name}${search_ext}"
1.48431 -+ if test -f "$lib"; then
1.48432 -+ if test "$search_ext" = ".la"; then
1.48433 -+ found=yes
1.48434 -+ else
1.48435 -+ found=no
1.48436 -+ fi
1.48437 -+ break 2
1.48438 -+ fi
1.48439 -+ done
1.48440 -+ done
1.48441 -+ if test "$found" != yes; then
1.48442 -+ # deplib doesn't seem to be a libtool library
1.48443 -+ if test "$linkmode,$pass" = "prog,link"; then
1.48444 -+ compile_deplibs="$deplib $compile_deplibs"
1.48445 -+ finalize_deplibs="$deplib $finalize_deplibs"
1.48446 -+ else
1.48447 -+ deplibs="$deplib $deplibs"
1.48448 -+ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
1.48449 -+ fi
1.48450 -+ continue
1.48451 -+ else # deplib is a libtool library
1.48452 -+ # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
1.48453 -+ # We need to do some special things here, and not later.
1.48454 -+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
1.48455 -+ case " $predeps $postdeps " in
1.48456 -+ *" $deplib "*)
1.48457 -+ if func_lalib_p "$lib"; then
1.48458 -+ library_names=
1.48459 -+ old_library=
1.48460 -+ func_source "$lib"
1.48461 -+ for l in $old_library $library_names; do
1.48462 -+ ll="$l"
1.48463 -+ done
1.48464 -+ if test "X$ll" = "X$old_library" ; then # only static version available
1.48465 -+ found=no
1.48466 -+ func_dirname "$lib" "" "."
1.48467 -+ ladir="$func_dirname_result"
1.48468 -+ lib=$ladir/$old_library
1.48469 -+ if test "$linkmode,$pass" = "prog,link"; then
1.48470 -+ compile_deplibs="$deplib $compile_deplibs"
1.48471 -+ finalize_deplibs="$deplib $finalize_deplibs"
1.48472 -+ else
1.48473 -+ deplibs="$deplib $deplibs"
1.48474 -+ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
1.48475 -+ fi
1.48476 -+ continue
1.48477 -+ fi
1.48478 -+ fi
1.48479 -+ ;;
1.48480 -+ *) ;;
1.48481 -+ esac
1.48482 -+ fi
1.48483 -+ fi
1.48484 -+ ;; # -l
1.48485 -+ *.ltframework)
1.48486 -+ if test "$linkmode,$pass" = "prog,link"; then
1.48487 -+ compile_deplibs="$deplib $compile_deplibs"
1.48488 -+ finalize_deplibs="$deplib $finalize_deplibs"
1.48489 -+ else
1.48490 -+ deplibs="$deplib $deplibs"
1.48491 -+ if test "$linkmode" = lib ; then
1.48492 -+ case "$new_inherited_linker_flags " in
1.48493 -+ *" $deplib "*) ;;
1.48494 -+ * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
1.48495 -+ esac
1.48496 -+ fi
1.48497 -+ fi
1.48498 -+ continue
1.48499 -+ ;;
1.48500 -+ -L*)
1.48501 -+ case $linkmode in
1.48502 -+ lib)
1.48503 -+ deplibs="$deplib $deplibs"
1.48504 -+ test "$pass" = conv && continue
1.48505 -+ newdependency_libs="$deplib $newdependency_libs"
1.48506 -+ func_stripname '-L' '' "$deplib"
1.48507 -+ newlib_search_path="$newlib_search_path $func_stripname_result"
1.48508 -+ ;;
1.48509 -+ prog)
1.48510 -+ if test "$pass" = conv; then
1.48511 -+ deplibs="$deplib $deplibs"
1.48512 -+ continue
1.48513 -+ fi
1.48514 -+ if test "$pass" = scan; then
1.48515 -+ deplibs="$deplib $deplibs"
1.48516 -+ else
1.48517 -+ compile_deplibs="$deplib $compile_deplibs"
1.48518 -+ finalize_deplibs="$deplib $finalize_deplibs"
1.48519 -+ fi
1.48520 -+ func_stripname '-L' '' "$deplib"
1.48521 -+ newlib_search_path="$newlib_search_path $func_stripname_result"
1.48522 -+ ;;
1.48523 -+ *)
1.48524 -+ func_warning "\`-L' is ignored for archives/objects"
1.48525 -+ ;;
1.48526 -+ esac # linkmode
1.48527 -+ continue
1.48528 -+ ;; # -L
1.48529 -+ -R*)
1.48530 -+ if test "$pass" = link; then
1.48531 -+ func_stripname '-R' '' "$deplib"
1.48532 -+ dir=$func_stripname_result
1.48533 -+ # Make sure the xrpath contains only unique directories.
1.48534 -+ case "$xrpath " in
1.48535 -+ *" $dir "*) ;;
1.48536 -+ *) xrpath="$xrpath $dir" ;;
1.48537 -+ esac
1.48538 -+ fi
1.48539 -+ deplibs="$deplib $deplibs"
1.48540 -+ continue
1.48541 -+ ;;
1.48542 -+ *.la) lib="$deplib" ;;
1.48543 -+ *.$libext)
1.48544 -+ if test "$pass" = conv; then
1.48545 -+ deplibs="$deplib $deplibs"
1.48546 -+ continue
1.48547 -+ fi
1.48548 -+ case $linkmode in
1.48549 -+ lib)
1.48550 -+ # Linking convenience modules into shared libraries is allowed,
1.48551 -+ # but linking other static libraries is non-portable.
1.48552 -+ case " $dlpreconveniencelibs " in
1.48553 -+ *" $deplib "*) ;;
1.48554 -+ *)
1.48555 -+ valid_a_lib=no
1.48556 -+ case $deplibs_check_method in
1.48557 -+ match_pattern*)
1.48558 -+ set dummy $deplibs_check_method; shift
1.48559 -+ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
1.48560 -+ if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
1.48561 -+ | $EGREP "$match_pattern_regex" > /dev/null; then
1.48562 -+ valid_a_lib=yes
1.48563 -+ fi
1.48564 -+ ;;
1.48565 -+ pass_all)
1.48566 -+ valid_a_lib=yes
1.48567 -+ ;;
1.48568 -+ esac
1.48569 -+ if test "$valid_a_lib" != yes; then
1.48570 -+ $ECHO
1.48571 -+ $ECHO "*** Warning: Trying to link with static lib archive $deplib."
1.48572 -+ $ECHO "*** I have the capability to make that library automatically link in when"
1.48573 -+ $ECHO "*** you link to this library. But I can only do this if you have a"
1.48574 -+ $ECHO "*** shared version of the library, which you do not appear to have"
1.48575 -+ $ECHO "*** because the file extensions .$libext of this argument makes me believe"
1.48576 -+ $ECHO "*** that it is just a static archive that I should not use here."
1.48577 -+ else
1.48578 -+ $ECHO
1.48579 -+ $ECHO "*** Warning: Linking the shared library $output against the"
1.48580 -+ $ECHO "*** static library $deplib is not portable!"
1.48581 -+ deplibs="$deplib $deplibs"
1.48582 -+ fi
1.48583 -+ ;;
1.48584 -+ esac
1.48585 -+ continue
1.48586 -+ ;;
1.48587 -+ prog)
1.48588 -+ if test "$pass" != link; then
1.48589 -+ deplibs="$deplib $deplibs"
1.48590 -+ else
1.48591 -+ compile_deplibs="$deplib $compile_deplibs"
1.48592 -+ finalize_deplibs="$deplib $finalize_deplibs"
1.48593 -+ fi
1.48594 -+ continue
1.48595 -+ ;;
1.48596 -+ esac # linkmode
1.48597 -+ ;; # *.$libext
1.48598 -+ *.lo | *.$objext)
1.48599 -+ if test "$pass" = conv; then
1.48600 -+ deplibs="$deplib $deplibs"
1.48601 -+ elif test "$linkmode" = prog; then
1.48602 -+ if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1.48603 -+ # If there is no dlopen support or we're linking statically,
1.48604 -+ # we need to preload.
1.48605 -+ newdlprefiles="$newdlprefiles $deplib"
1.48606 -+ compile_deplibs="$deplib $compile_deplibs"
1.48607 -+ finalize_deplibs="$deplib $finalize_deplibs"
1.48608 -+ else
1.48609 -+ newdlfiles="$newdlfiles $deplib"
1.48610 -+ fi
1.48611 -+ fi
1.48612 -+ continue
1.48613 -+ ;;
1.48614 -+ %DEPLIBS%)
1.48615 -+ alldeplibs=yes
1.48616 -+ continue
1.48617 -+ ;;
1.48618 -+ esac # case $deplib
1.48619 -+
1.48620 -+ if test "$found" = yes || test -f "$lib"; then :
1.48621 -+ else
1.48622 -+ func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
1.48623 -+ fi
1.48624 -+
1.48625 -+ # Check to see that this really is a libtool archive.
1.48626 -+ func_lalib_unsafe_p "$lib" \
1.48627 -+ || func_fatal_error "\`$lib' is not a valid libtool archive"
1.48628 -+
1.48629 -+ func_dirname "$lib" "" "."
1.48630 -+ ladir="$func_dirname_result"
1.48631 -+
1.48632 -+ dlname=
1.48633 -+ dlopen=
1.48634 -+ dlpreopen=
1.48635 -+ libdir=
1.48636 -+ library_names=
1.48637 -+ old_library=
1.48638 -+ inherited_linker_flags=
1.48639 -+ # If the library was installed with an old release of libtool,
1.48640 -+ # it will not redefine variables installed, or shouldnotlink
1.48641 -+ installed=yes
1.48642 -+ shouldnotlink=no
1.48643 -+ avoidtemprpath=
1.48644 -+
1.48645 -+
1.48646 -+ # Read the .la file
1.48647 -+ func_source "$lib"
1.48648 -+
1.48649 -+ # Convert "-framework foo" to "foo.ltframework"
1.48650 -+ if test -n "$inherited_linker_flags"; then
1.48651 -+ tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
1.48652 -+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
1.48653 -+ case " $new_inherited_linker_flags " in
1.48654 -+ *" $tmp_inherited_linker_flag "*) ;;
1.48655 -+ *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
1.48656 -+ esac
1.48657 -+ done
1.48658 -+ fi
1.48659 -+ dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
1.48660 -+ if test "$linkmode,$pass" = "prog,link"; then
1.48661 -+ compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
1.48662 -+ finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
1.48663 -+ else
1.48664 -+ compiler_flags="$compiler_flags $inherited_linker_flags"
1.48665 -+ fi
1.48666 -+ if test "$linkmode,$pass" = "lib,link" ||
1.48667 -+ test "$linkmode,$pass" = "prog,scan" ||
1.48668 -+ { test "$linkmode" != prog && test "$linkmode" != lib; }; then
1.48669 -+ test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
1.48670 -+ test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
1.48671 -+ fi
1.48672 -+
1.48673 -+ if test "$pass" = conv; then
1.48674 -+ # Only check for convenience libraries
1.48675 -+ deplibs="$lib $deplibs"
1.48676 -+ if test -z "$libdir"; then
1.48677 -+ if test -z "$old_library"; then
1.48678 -+ func_fatal_error "cannot find name of link library for \`$lib'"
1.48679 -+ fi
1.48680 -+ # It is a libtool convenience library, so add in its objects.
1.48681 -+ convenience="$convenience $ladir/$objdir/$old_library"
1.48682 -+ old_convenience="$old_convenience $ladir/$objdir/$old_library"
1.48683 -+ elif test "$linkmode" != prog && test "$linkmode" != lib; then
1.48684 -+ func_fatal_error "\`$lib' is not a convenience library"
1.48685 -+ fi
1.48686 -+ tmp_libs=
1.48687 -+ for deplib in $dependency_libs; do
1.48688 -+ deplibs="$deplib $deplibs"
1.48689 -+ if $opt_duplicate_deps ; then
1.48690 -+ case "$tmp_libs " in
1.48691 -+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1.48692 -+ esac
1.48693 -+ fi
1.48694 -+ tmp_libs="$tmp_libs $deplib"
1.48695 -+ done
1.48696 -+ continue
1.48697 -+ fi # $pass = conv
1.48698 -+
1.48699 -+
1.48700 -+ # Get the name of the library we link against.
1.48701 -+ linklib=
1.48702 -+ for l in $old_library $library_names; do
1.48703 -+ linklib="$l"
1.48704 -+ done
1.48705 -+ if test -z "$linklib"; then
1.48706 -+ func_fatal_error "cannot find name of link library for \`$lib'"
1.48707 -+ fi
1.48708 -+
1.48709 -+ # This library was specified with -dlopen.
1.48710 -+ if test "$pass" = dlopen; then
1.48711 -+ if test -z "$libdir"; then
1.48712 -+ func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
1.48713 -+ fi
1.48714 -+ if test -z "$dlname" ||
1.48715 -+ test "$dlopen_support" != yes ||
1.48716 -+ test "$build_libtool_libs" = no; then
1.48717 -+ # If there is no dlname, no dlopen support or we're linking
1.48718 -+ # statically, we need to preload. We also need to preload any
1.48719 -+ # dependent libraries so libltdl's deplib preloader doesn't
1.48720 -+ # bomb out in the load deplibs phase.
1.48721 -+ dlprefiles="$dlprefiles $lib $dependency_libs"
1.48722 -+ else
1.48723 -+ newdlfiles="$newdlfiles $lib"
1.48724 -+ fi
1.48725 -+ continue
1.48726 -+ fi # $pass = dlopen
1.48727 -+
1.48728 -+ # We need an absolute path.
1.48729 -+ case $ladir in
1.48730 -+ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
1.48731 -+ *)
1.48732 -+ abs_ladir=`cd "$ladir" && pwd`
1.48733 -+ if test -z "$abs_ladir"; then
1.48734 -+ func_warning "cannot determine absolute directory name of \`$ladir'"
1.48735 -+ func_warning "passing it literally to the linker, although it might fail"
1.48736 -+ abs_ladir="$ladir"
1.48737 -+ fi
1.48738 -+ ;;
1.48739 -+ esac
1.48740 -+ func_basename "$lib"
1.48741 -+ laname="$func_basename_result"
1.48742 -+
1.48743 -+ # Find the relevant object directory and library name.
1.48744 -+ if test "X$installed" = Xyes; then
1.48745 -+ if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
1.48746 -+ func_warning "library \`$lib' was moved."
1.48747 -+ dir="$ladir"
1.48748 -+ absdir="$abs_ladir"
1.48749 -+ libdir="$abs_ladir"
1.48750 -+ else
1.48751 -+ dir="$libdir"
1.48752 -+ absdir="$libdir"
1.48753 -+ fi
1.48754 -+ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
1.48755 -+ else
1.48756 -+ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
1.48757 -+ dir="$ladir"
1.48758 -+ absdir="$abs_ladir"
1.48759 -+ # Remove this search path later
1.48760 -+ notinst_path="$notinst_path $abs_ladir"
1.48761 -+ else
1.48762 -+ dir="$ladir/$objdir"
1.48763 -+ absdir="$abs_ladir/$objdir"
1.48764 -+ # Remove this search path later
1.48765 -+ notinst_path="$notinst_path $abs_ladir"
1.48766 -+ fi
1.48767 -+ fi # $installed = yes
1.48768 -+ func_stripname 'lib' '.la' "$laname"
1.48769 -+ name=$func_stripname_result
1.48770 -+
1.48771 -+ # This library was specified with -dlpreopen.
1.48772 -+ if test "$pass" = dlpreopen; then
1.48773 -+ if test -z "$libdir" && test "$linkmode" = prog; then
1.48774 -+ func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
1.48775 -+ fi
1.48776 -+ # Prefer using a static library (so that no silly _DYNAMIC symbols
1.48777 -+ # are required to link).
1.48778 -+ if test -n "$old_library"; then
1.48779 -+ newdlprefiles="$newdlprefiles $dir/$old_library"
1.48780 -+ # Keep a list of preopened convenience libraries to check
1.48781 -+ # that they are being used correctly in the link pass.
1.48782 -+ test -z "$libdir" && \
1.48783 -+ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
1.48784 -+ # Otherwise, use the dlname, so that lt_dlopen finds it.
1.48785 -+ elif test -n "$dlname"; then
1.48786 -+ newdlprefiles="$newdlprefiles $dir/$dlname"
1.48787 -+ else
1.48788 -+ newdlprefiles="$newdlprefiles $dir/$linklib"
1.48789 -+ fi
1.48790 -+ fi # $pass = dlpreopen
1.48791 -+
1.48792 -+ if test -z "$libdir"; then
1.48793 -+ # Link the convenience library
1.48794 -+ if test "$linkmode" = lib; then
1.48795 -+ deplibs="$dir/$old_library $deplibs"
1.48796 -+ elif test "$linkmode,$pass" = "prog,link"; then
1.48797 -+ compile_deplibs="$dir/$old_library $compile_deplibs"
1.48798 -+ finalize_deplibs="$dir/$old_library $finalize_deplibs"
1.48799 -+ else
1.48800 -+ deplibs="$lib $deplibs" # used for prog,scan pass
1.48801 -+ fi
1.48802 -+ continue
1.48803 -+ fi
1.48804 -+
1.48805 -+
1.48806 -+ if test "$linkmode" = prog && test "$pass" != link; then
1.48807 -+ newlib_search_path="$newlib_search_path $ladir"
1.48808 -+ deplibs="$lib $deplibs"
1.48809 -+
1.48810 -+ linkalldeplibs=no
1.48811 -+ if test "$link_all_deplibs" != no || test -z "$library_names" ||
1.48812 -+ test "$build_libtool_libs" = no; then
1.48813 -+ linkalldeplibs=yes
1.48814 -+ fi
1.48815 -+
1.48816 -+ tmp_libs=
1.48817 -+ for deplib in $dependency_libs; do
1.48818 -+ case $deplib in
1.48819 -+ -L*) func_stripname '-L' '' "$deplib"
1.48820 -+ newlib_search_path="$newlib_search_path $func_stripname_result"
1.48821 -+ ;;
1.48822 -+ esac
1.48823 -+ # Need to link against all dependency_libs?
1.48824 -+ if test "$linkalldeplibs" = yes; then
1.48825 -+ deplibs="$deplib $deplibs"
1.48826 -+ else
1.48827 -+ # Need to hardcode shared library paths
1.48828 -+ # or/and link against static libraries
1.48829 -+ newdependency_libs="$deplib $newdependency_libs"
1.48830 -+ fi
1.48831 -+ if $opt_duplicate_deps ; then
1.48832 -+ case "$tmp_libs " in
1.48833 -+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1.48834 -+ esac
1.48835 -+ fi
1.48836 -+ tmp_libs="$tmp_libs $deplib"
1.48837 -+ done # for deplib
1.48838 -+ continue
1.48839 -+ fi # $linkmode = prog...
1.48840 -+
1.48841 -+ if test "$linkmode,$pass" = "prog,link"; then
1.48842 -+ if test -n "$library_names" &&
1.48843 -+ { { test "$prefer_static_libs" = no ||
1.48844 -+ test "$prefer_static_libs,$installed" = "built,yes"; } ||
1.48845 -+ test -z "$old_library"; }; then
1.48846 -+ # We need to hardcode the library path
1.48847 -+ if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
1.48848 -+ # Make sure the rpath contains only unique directories.
1.48849 -+ case "$temp_rpath:" in
1.48850 -+ *"$absdir:"*) ;;
1.48851 -+ *) temp_rpath="$temp_rpath$absdir:" ;;
1.48852 -+ esac
1.48853 -+ fi
1.48854 -+
1.48855 -+ # Hardcode the library path.
1.48856 -+ # Skip directories that are in the system default run-time
1.48857 -+ # search path.
1.48858 -+ case " $sys_lib_dlsearch_path " in
1.48859 -+ *" $absdir "*) ;;
1.48860 -+ *)
1.48861 -+ case "$compile_rpath " in
1.48862 -+ *" $absdir "*) ;;
1.48863 -+ *) compile_rpath="$compile_rpath $absdir"
1.48864 -+ esac
1.48865 -+ ;;
1.48866 -+ esac
1.48867 -+ case " $sys_lib_dlsearch_path " in
1.48868 -+ *" $libdir "*) ;;
1.48869 -+ *)
1.48870 -+ case "$finalize_rpath " in
1.48871 -+ *" $libdir "*) ;;
1.48872 -+ *) finalize_rpath="$finalize_rpath $libdir"
1.48873 -+ esac
1.48874 -+ ;;
1.48875 -+ esac
1.48876 -+ fi # $linkmode,$pass = prog,link...
1.48877 -+
1.48878 -+ if test "$alldeplibs" = yes &&
1.48879 -+ { test "$deplibs_check_method" = pass_all ||
1.48880 -+ { test "$build_libtool_libs" = yes &&
1.48881 -+ test -n "$library_names"; }; }; then
1.48882 -+ # We only need to search for static libraries
1.48883 -+ continue
1.48884 -+ fi
1.48885 -+ fi
1.48886 -+
1.48887 -+ link_static=no # Whether the deplib will be linked statically
1.48888 -+ use_static_libs=$prefer_static_libs
1.48889 -+ if test "$use_static_libs" = built && test "$installed" = yes; then
1.48890 -+ use_static_libs=no
1.48891 -+ fi
1.48892 -+ if test -n "$library_names" &&
1.48893 -+ { test "$use_static_libs" = no || test -z "$old_library"; }; then
1.48894 -+ case $host in
1.48895 -+ *cygwin* | *mingw*)
1.48896 -+ # No point in relinking DLLs because paths are not encoded
1.48897 -+ notinst_deplibs="$notinst_deplibs $lib"
1.48898 -+ need_relink=no
1.48899 -+ ;;
1.48900 -+ *)
1.48901 -+ if test "$installed" = no; then
1.48902 -+ notinst_deplibs="$notinst_deplibs $lib"
1.48903 -+ need_relink=yes
1.48904 -+ fi
1.48905 -+ ;;
1.48906 -+ esac
1.48907 -+ # This is a shared library
1.48908 -+
1.48909 -+ # Warn about portability, can't link against -module's on some
1.48910 -+ # systems (darwin). Don't bleat about dlopened modules though!
1.48911 -+ dlopenmodule=""
1.48912 -+ for dlpremoduletest in $dlprefiles; do
1.48913 -+ if test "X$dlpremoduletest" = "X$lib"; then
1.48914 -+ dlopenmodule="$dlpremoduletest"
1.48915 -+ break
1.48916 -+ fi
1.48917 -+ done
1.48918 -+ if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
1.48919 -+ $ECHO
1.48920 -+ if test "$linkmode" = prog; then
1.48921 -+ $ECHO "*** Warning: Linking the executable $output against the loadable module"
1.48922 -+ else
1.48923 -+ $ECHO "*** Warning: Linking the shared library $output against the loadable module"
1.48924 -+ fi
1.48925 -+ $ECHO "*** $linklib is not portable!"
1.48926 -+ fi
1.48927 -+ if test "$linkmode" = lib &&
1.48928 -+ test "$hardcode_into_libs" = yes; then
1.48929 -+ # Hardcode the library path.
1.48930 -+ # Skip directories that are in the system default run-time
1.48931 -+ # search path.
1.48932 -+ case " $sys_lib_dlsearch_path " in
1.48933 -+ *" $absdir "*) ;;
1.48934 -+ *)
1.48935 -+ case "$compile_rpath " in
1.48936 -+ *" $absdir "*) ;;
1.48937 -+ *) compile_rpath="$compile_rpath $absdir"
1.48938 -+ esac
1.48939 -+ ;;
1.48940 -+ esac
1.48941 -+ case " $sys_lib_dlsearch_path " in
1.48942 -+ *" $libdir "*) ;;
1.48943 -+ *)
1.48944 -+ case "$finalize_rpath " in
1.48945 -+ *" $libdir "*) ;;
1.48946 -+ *) finalize_rpath="$finalize_rpath $libdir"
1.48947 -+ esac
1.48948 -+ ;;
1.48949 -+ esac
1.48950 -+ fi
1.48951 -+
1.48952 -+ if test -n "$old_archive_from_expsyms_cmds"; then
1.48953 -+ # figure out the soname
1.48954 -+ set dummy $library_names
1.48955 -+ shift
1.48956 -+ realname="$1"
1.48957 -+ shift
1.48958 -+ libname=`eval "\\$ECHO \"$libname_spec\""`
1.48959 -+ # use dlname if we got it. it's perfectly good, no?
1.48960 -+ if test -n "$dlname"; then
1.48961 -+ soname="$dlname"
1.48962 -+ elif test -n "$soname_spec"; then
1.48963 -+ # bleh windows
1.48964 -+ case $host in
1.48965 -+ *cygwin* | mingw*)
1.48966 -+ major=`expr $current - $age`
1.48967 -+ versuffix="-$major"
1.48968 -+ ;;
1.48969 -+ esac
1.48970 -+ eval soname=\"$soname_spec\"
1.48971 -+ else
1.48972 -+ soname="$realname"
1.48973 -+ fi
1.48974 -+
1.48975 -+ # Make a new name for the extract_expsyms_cmds to use
1.48976 -+ soroot="$soname"
1.48977 -+ func_basename "$soroot"
1.48978 -+ soname="$func_basename_result"
1.48979 -+ func_stripname 'lib' '.dll' "$soname"
1.48980 -+ newlib=libimp-$func_stripname_result.a
1.48981 -+
1.48982 -+ # If the library has no export list, then create one now
1.48983 -+ if test -f "$output_objdir/$soname-def"; then :
1.48984 -+ else
1.48985 -+ func_echo "extracting exported symbol list from \`$soname'"
1.48986 -+ func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
1.48987 -+ fi
1.48988 -+
1.48989 -+ # Create $newlib
1.48990 -+ if test -f "$output_objdir/$newlib"; then :; else
1.48991 -+ func_echo "generating import library for \`$soname'"
1.48992 -+ func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
1.48993 -+ fi
1.48994 -+ # make sure the library variables are pointing to the new library
1.48995 -+ dir=$output_objdir
1.48996 -+ linklib=$newlib
1.48997 -+ fi # test -n "$old_archive_from_expsyms_cmds"
1.48998 -+
1.48999 -+ if test "$linkmode" = prog || test "$mode" != relink; then
1.49000 -+ add_shlibpath=
1.49001 -+ add_dir=
1.49002 -+ add=
1.49003 -+ lib_linked=yes
1.49004 -+ case $hardcode_action in
1.49005 -+ immediate | unsupported)
1.49006 -+ if test "$hardcode_direct" = no; then
1.49007 -+ add="$dir/$linklib"
1.49008 -+ case $host in
1.49009 -+ *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
1.49010 -+ *-*-sysv4*uw2*) add_dir="-L$dir" ;;
1.49011 -+ *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
1.49012 -+ *-*-unixware7*) add_dir="-L$dir" ;;
1.49013 -+ *-*-darwin* )
1.49014 -+ # if the lib is a (non-dlopened) module then we can not
1.49015 -+ # link against it, someone is ignoring the earlier warnings
1.49016 -+ if /usr/bin/file -L $add 2> /dev/null |
1.49017 -+ $GREP ": [^:]* bundle" >/dev/null ; then
1.49018 -+ if test "X$dlopenmodule" != "X$lib"; then
1.49019 -+ $ECHO "*** Warning: lib $linklib is a module, not a shared library"
1.49020 -+ if test -z "$old_library" ; then
1.49021 -+ $ECHO
1.49022 -+ $ECHO "*** And there doesn't seem to be a static archive available"
1.49023 -+ $ECHO "*** The link will probably fail, sorry"
1.49024 -+ else
1.49025 -+ add="$dir/$old_library"
1.49026 -+ fi
1.49027 -+ elif test -n "$old_library"; then
1.49028 -+ add="$dir/$old_library"
1.49029 -+ fi
1.49030 -+ fi
1.49031 -+ esac
1.49032 -+ elif test "$hardcode_minus_L" = no; then
1.49033 -+ case $host in
1.49034 -+ *-*-sunos*) add_shlibpath="$dir" ;;
1.49035 -+ esac
1.49036 -+ add_dir="-L$dir"
1.49037 -+ add="-l$name"
1.49038 -+ elif test "$hardcode_shlibpath_var" = no; then
1.49039 -+ add_shlibpath="$dir"
1.49040 -+ add="-l$name"
1.49041 -+ else
1.49042 -+ lib_linked=no
1.49043 -+ fi
1.49044 -+ ;;
1.49045 -+ relink)
1.49046 -+ if test "$hardcode_direct" = yes &&
1.49047 -+ test "$hardcode_direct_absolute" = no; then
1.49048 -+ add="$dir/$linklib"
1.49049 -+ elif test "$hardcode_minus_L" = yes; then
1.49050 -+ add_dir="-L$dir"
1.49051 -+ # Try looking first in the location we're being installed to.
1.49052 -+ if test -n "$inst_prefix_dir"; then
1.49053 -+ case $libdir in
1.49054 -+ [\\/]*)
1.49055 -+ add_dir="$add_dir -L$inst_prefix_dir$libdir"
1.49056 -+ ;;
1.49057 -+ esac
1.49058 -+ fi
1.49059 -+ add="-l$name"
1.49060 -+ elif test "$hardcode_shlibpath_var" = yes; then
1.49061 -+ add_shlibpath="$dir"
1.49062 -+ add="-l$name"
1.49063 -+ else
1.49064 -+ lib_linked=no
1.49065 -+ fi
1.49066 -+ ;;
1.49067 -+ *) lib_linked=no ;;
1.49068 -+ esac
1.49069 -+
1.49070 -+ if test "$lib_linked" != yes; then
1.49071 -+ func_fatal_configuration "unsupported hardcode properties"
1.49072 -+ fi
1.49073 -+
1.49074 -+ if test -n "$add_shlibpath"; then
1.49075 -+ case :$compile_shlibpath: in
1.49076 -+ *":$add_shlibpath:"*) ;;
1.49077 -+ *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
1.49078 -+ esac
1.49079 -+ fi
1.49080 -+ if test "$linkmode" = prog; then
1.49081 -+ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
1.49082 -+ test -n "$add" && compile_deplibs="$add $compile_deplibs"
1.49083 -+ else
1.49084 -+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
1.49085 -+ test -n "$add" && deplibs="$add $deplibs"
1.49086 -+ if test "$hardcode_direct" != yes &&
1.49087 -+ test "$hardcode_minus_L" != yes &&
1.49088 -+ test "$hardcode_shlibpath_var" = yes; then
1.49089 -+ case :$finalize_shlibpath: in
1.49090 -+ *":$libdir:"*) ;;
1.49091 -+ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
1.49092 -+ esac
1.49093 -+ fi
1.49094 -+ fi
1.49095 -+ fi
1.49096 -+
1.49097 -+ if test "$linkmode" = prog || test "$mode" = relink; then
1.49098 -+ add_shlibpath=
1.49099 -+ add_dir=
1.49100 -+ add=
1.49101 -+ # Finalize command for both is simple: just hardcode it.
1.49102 -+ if test "$hardcode_direct" = yes &&
1.49103 -+ test "$hardcode_direct_absolute" = no; then
1.49104 -+ add="$libdir/$linklib"
1.49105 -+ elif test "$hardcode_minus_L" = yes; then
1.49106 -+ add_dir="-L$libdir"
1.49107 -+ add="-l$name"
1.49108 -+ elif test "$hardcode_shlibpath_var" = yes; then
1.49109 -+ case :$finalize_shlibpath: in
1.49110 -+ *":$libdir:"*) ;;
1.49111 -+ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
1.49112 -+ esac
1.49113 -+ add="-l$name"
1.49114 -+ elif test "$hardcode_automatic" = yes; then
1.49115 -+ if test -n "$inst_prefix_dir" &&
1.49116 -+ test -f "$inst_prefix_dir$libdir/$linklib" ; then
1.49117 -+ add="$inst_prefix_dir$libdir/$linklib"
1.49118 -+ else
1.49119 -+ add="$libdir/$linklib"
1.49120 -+ fi
1.49121 -+ else
1.49122 -+ # We cannot seem to hardcode it, guess we'll fake it.
1.49123 -+ add_dir="-L$libdir"
1.49124 -+ # Try looking first in the location we're being installed to.
1.49125 -+ if test -n "$inst_prefix_dir"; then
1.49126 -+ case $libdir in
1.49127 -+ [\\/]*)
1.49128 -+ add_dir="$add_dir -L$inst_prefix_dir$libdir"
1.49129 -+ ;;
1.49130 -+ esac
1.49131 -+ fi
1.49132 -+ add="-l$name"
1.49133 -+ fi
1.49134 -+
1.49135 -+ if test "$linkmode" = prog; then
1.49136 -+ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
1.49137 -+ test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
1.49138 -+ else
1.49139 -+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
1.49140 -+ test -n "$add" && deplibs="$add $deplibs"
1.49141 -+ fi
1.49142 -+ fi
1.49143 -+ elif test "$linkmode" = prog; then
1.49144 -+ # Here we assume that one of hardcode_direct or hardcode_minus_L
1.49145 -+ # is not unsupported. This is valid on all known static and
1.49146 -+ # shared platforms.
1.49147 -+ if test "$hardcode_direct" != unsupported; then
1.49148 -+ test -n "$old_library" && linklib="$old_library"
1.49149 -+ compile_deplibs="$dir/$linklib $compile_deplibs"
1.49150 -+ finalize_deplibs="$dir/$linklib $finalize_deplibs"
1.49151 -+ else
1.49152 -+ compile_deplibs="-l$name -L$dir $compile_deplibs"
1.49153 -+ finalize_deplibs="-l$name -L$dir $finalize_deplibs"
1.49154 -+ fi
1.49155 -+ elif test "$build_libtool_libs" = yes; then
1.49156 -+ # Not a shared library
1.49157 -+ if test "$deplibs_check_method" != pass_all; then
1.49158 -+ # We're trying link a shared library against a static one
1.49159 -+ # but the system doesn't support it.
1.49160 -+
1.49161 -+ # Just print a warning and add the library to dependency_libs so
1.49162 -+ # that the program can be linked against the static library.
1.49163 -+ $ECHO
1.49164 -+ $ECHO "*** Warning: This system can not link to static lib archive $lib."
1.49165 -+ $ECHO "*** I have the capability to make that library automatically link in when"
1.49166 -+ $ECHO "*** you link to this library. But I can only do this if you have a"
1.49167 -+ $ECHO "*** shared version of the library, which you do not appear to have."
1.49168 -+ if test "$module" = yes; then
1.49169 -+ $ECHO "*** But as you try to build a module library, libtool will still create "
1.49170 -+ $ECHO "*** a static module, that should work as long as the dlopening application"
1.49171 -+ $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
1.49172 -+ if test -z "$global_symbol_pipe"; then
1.49173 -+ $ECHO
1.49174 -+ $ECHO "*** However, this would only work if libtool was able to extract symbol"
1.49175 -+ $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
1.49176 -+ $ECHO "*** not find such a program. So, this module is probably useless."
1.49177 -+ $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
1.49178 -+ fi
1.49179 -+ if test "$build_old_libs" = no; then
1.49180 -+ build_libtool_libs=module
1.49181 -+ build_old_libs=yes
1.49182 -+ else
1.49183 -+ build_libtool_libs=no
1.49184 -+ fi
1.49185 -+ fi
1.49186 -+ else
1.49187 -+ deplibs="$dir/$old_library $deplibs"
1.49188 -+ link_static=yes
1.49189 -+ fi
1.49190 -+ fi # link shared/static library?
1.49191 -+
1.49192 -+ if test "$linkmode" = lib; then
1.49193 -+ if test -n "$dependency_libs" &&
1.49194 -+ { test "$hardcode_into_libs" != yes ||
1.49195 -+ test "$build_old_libs" = yes ||
1.49196 -+ test "$link_static" = yes; }; then
1.49197 -+ # Extract -R from dependency_libs
1.49198 -+ temp_deplibs=
1.49199 -+ for libdir in $dependency_libs; do
1.49200 -+ case $libdir in
1.49201 -+ -R*) func_stripname '-R' '' "$libdir"
1.49202 -+ temp_xrpath=$func_stripname_result
1.49203 -+ case " $xrpath " in
1.49204 -+ *" $temp_xrpath "*) ;;
1.49205 -+ *) xrpath="$xrpath $temp_xrpath";;
1.49206 -+ esac;;
1.49207 -+ *) temp_deplibs="$temp_deplibs $libdir";;
1.49208 -+ esac
1.49209 -+ done
1.49210 -+ dependency_libs="$temp_deplibs"
1.49211 -+ fi
1.49212 -+
1.49213 -+ newlib_search_path="$newlib_search_path $absdir"
1.49214 -+ # Link against this library
1.49215 -+ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
1.49216 -+ # ... and its dependency_libs
1.49217 -+ tmp_libs=
1.49218 -+ for deplib in $dependency_libs; do
1.49219 -+ newdependency_libs="$deplib $newdependency_libs"
1.49220 -+ if $opt_duplicate_deps ; then
1.49221 -+ case "$tmp_libs " in
1.49222 -+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1.49223 -+ esac
1.49224 -+ fi
1.49225 -+ tmp_libs="$tmp_libs $deplib"
1.49226 -+ done
1.49227 -+
1.49228 -+ if test "$link_all_deplibs" != no; then
1.49229 -+ # Add the search paths of all dependency libraries
1.49230 -+ for deplib in $dependency_libs; do
1.49231 -+ case $deplib in
1.49232 -+ -L*) path="$deplib" ;;
1.49233 -+ *.la)
1.49234 -+ func_dirname "$deplib" "" "."
1.49235 -+ dir="$func_dirname_result"
1.49236 -+ # We need an absolute path.
1.49237 -+ case $dir in
1.49238 -+ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
1.49239 -+ *)
1.49240 -+ absdir=`cd "$dir" && pwd`
1.49241 -+ if test -z "$absdir"; then
1.49242 -+ func_warning "cannot determine absolute directory name of \`$dir'"
1.49243 -+ absdir="$dir"
1.49244 -+ fi
1.49245 -+ ;;
1.49246 -+ esac
1.49247 -+ if $GREP "^installed=no" $deplib > /dev/null; then
1.49248 -+ case $host in
1.49249 -+ *-*-darwin*)
1.49250 -+ depdepl=
1.49251 -+ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
1.49252 -+ if test -n "$deplibrary_names" ; then
1.49253 -+ for tmp in $deplibrary_names ; do
1.49254 -+ depdepl=$tmp
1.49255 -+ done
1.49256 -+ if test -f "$absdir/$objdir/$depdepl" ; then
1.49257 -+ depdepl="$absdir/$objdir/$depdepl"
1.49258 -+ darwin_install_name=`otool -L $depdepl | $SED -n -e '3q;2,2p' | $SED -e 's/(.*//'`
1.49259 -+ darwin_install_name=`$ECHO $darwin_install_name`
1.49260 -+ if test -z "$darwin_install_name"; then
1.49261 -+ darwin_install_name=`otool64 -L $depdepl | $SED -n -e '3q;2,2p' | $SED -e 's/(.*//'`
1.49262 -+ darwin_install_name=`$ECHO $darwin_install_name`
1.49263 -+ fi
1.49264 -+ compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
1.49265 -+ linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
1.49266 -+ path=
1.49267 -+ fi
1.49268 -+ fi
1.49269 -+ ;;
1.49270 -+ *)
1.49271 -+ path="-L$absdir/$objdir"
1.49272 -+ ;;
1.49273 -+ esac
1.49274 -+ else
1.49275 -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
1.49276 -+ test -z "$libdir" && \
1.49277 -+ func_fatal_error "\`$deplib' is not a valid libtool archive"
1.49278 -+ test "$absdir" != "$libdir" && \
1.49279 -+ func_warning "\`$deplib' seems to be moved"
1.49280 -+
1.49281 -+ path="-L$absdir"
1.49282 -+ fi
1.49283 -+ ;;
1.49284 -+ esac
1.49285 -+ case " $deplibs " in
1.49286 -+ *" $path "*) ;;
1.49287 -+ *) deplibs="$path $deplibs" ;;
1.49288 -+ esac
1.49289 -+ done
1.49290 -+ fi # link_all_deplibs != no
1.49291 -+ fi # linkmode = lib
1.49292 -+ done # for deplib in $libs
1.49293 -+ dependency_libs="$newdependency_libs"
1.49294 -+ if test "$pass" = dlpreopen; then
1.49295 -+ # Link the dlpreopened libraries before other libraries
1.49296 -+ for deplib in $save_deplibs; do
1.49297 -+ deplibs="$deplib $deplibs"
1.49298 -+ done
1.49299 -+ fi
1.49300 -+ if test "$pass" != dlopen; then
1.49301 -+ if test "$pass" != conv; then
1.49302 -+ # Make sure lib_search_path contains only unique directories.
1.49303 -+ lib_search_path=
1.49304 -+ for dir in $newlib_search_path; do
1.49305 -+ case "$lib_search_path " in
1.49306 -+ *" $dir "*) ;;
1.49307 -+ *) lib_search_path="$lib_search_path $dir" ;;
1.49308 -+ esac
1.49309 -+ done
1.49310 -+ newlib_search_path=
1.49311 -+ fi
1.49312 -+
1.49313 -+ if test "$linkmode,$pass" != "prog,link"; then
1.49314 -+ vars="deplibs"
1.49315 -+ else
1.49316 -+ vars="compile_deplibs finalize_deplibs"
1.49317 -+ fi
1.49318 -+ for var in $vars dependency_libs; do
1.49319 -+ # Add libraries to $var in reverse order
1.49320 -+ eval tmp_libs=\"\$$var\"
1.49321 -+ new_libs=
1.49322 -+ for deplib in $tmp_libs; do
1.49323 -+ # FIXME: Pedantically, this is the right thing to do, so
1.49324 -+ # that some nasty dependency loop isn't accidentally
1.49325 -+ # broken:
1.49326 -+ #new_libs="$deplib $new_libs"
1.49327 -+ # Pragmatically, this seems to cause very few problems in
1.49328 -+ # practice:
1.49329 -+ case $deplib in
1.49330 -+ -L*) new_libs="$deplib $new_libs" ;;
1.49331 -+ -R*) ;;
1.49332 -+ *)
1.49333 -+ # And here is the reason: when a library appears more
1.49334 -+ # than once as an explicit dependence of a library, or
1.49335 -+ # is implicitly linked in more than once by the
1.49336 -+ # compiler, it is considered special, and multiple
1.49337 -+ # occurrences thereof are not removed. Compare this
1.49338 -+ # with having the same library being listed as a
1.49339 -+ # dependency of multiple other libraries: in this case,
1.49340 -+ # we know (pedantically, we assume) the library does not
1.49341 -+ # need to be listed more than once, so we keep only the
1.49342 -+ # last copy. This is not always right, but it is rare
1.49343 -+ # enough that we require users that really mean to play
1.49344 -+ # such unportable linking tricks to link the library
1.49345 -+ # using -Wl,-lname, so that libtool does not consider it
1.49346 -+ # for duplicate removal.
1.49347 -+ case " $specialdeplibs " in
1.49348 -+ *" $deplib "*) new_libs="$deplib $new_libs" ;;
1.49349 -+ *)
1.49350 -+ case " $new_libs " in
1.49351 -+ *" $deplib "*) ;;
1.49352 -+ *) new_libs="$deplib $new_libs" ;;
1.49353 -+ esac
1.49354 -+ ;;
1.49355 -+ esac
1.49356 -+ ;;
1.49357 -+ esac
1.49358 -+ done
1.49359 -+ tmp_libs=
1.49360 -+ for deplib in $new_libs; do
1.49361 -+ case $deplib in
1.49362 -+ -L*)
1.49363 -+ case " $tmp_libs " in
1.49364 -+ *" $deplib "*) ;;
1.49365 -+ *) tmp_libs="$tmp_libs $deplib" ;;
1.49366 -+ esac
1.49367 -+ ;;
1.49368 -+ *) tmp_libs="$tmp_libs $deplib" ;;
1.49369 -+ esac
1.49370 -+ done
1.49371 -+ eval $var=\"$tmp_libs\"
1.49372 -+ done # for var
1.49373 -+ fi
1.49374 -+ # Last step: remove runtime libs from dependency_libs
1.49375 -+ # (they stay in deplibs)
1.49376 -+ tmp_libs=
1.49377 -+ for i in $dependency_libs ; do
1.49378 -+ case " $predeps $postdeps $compiler_lib_search_path " in
1.49379 -+ *" $i "*)
1.49380 -+ i=""
1.49381 -+ ;;
1.49382 -+ esac
1.49383 -+ if test -n "$i" ; then
1.49384 -+ tmp_libs="$tmp_libs $i"
1.49385 -+ fi
1.49386 -+ done
1.49387 -+ dependency_libs=$tmp_libs
1.49388 -+ done # for pass
1.49389 -+ if test "$linkmode" = prog; then
1.49390 -+ dlfiles="$newdlfiles"
1.49391 -+ fi
1.49392 -+ if test "$linkmode" = prog || test "$linkmode" = lib; then
1.49393 -+ dlprefiles="$newdlprefiles"
1.49394 -+ fi
1.49395 -+
1.49396 -+ case $linkmode in
1.49397 -+ oldlib)
1.49398 -+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1.49399 -+ func_warning "\`-dlopen' is ignored for archives"
1.49400 -+ fi
1.49401 -+
1.49402 -+ test -n "$deplibs" && \
1.49403 -+ func_warning "\`-l' and \`-L' are ignored for archives"
1.49404 -+
1.49405 -+
1.49406 -+ test -n "$rpath" && \
1.49407 -+ func_warning "\`-rpath' is ignored for archives"
1.49408 -+
1.49409 -+ test -n "$xrpath" && \
1.49410 -+ func_warning "\`-R' is ignored for archives"
1.49411 -+
1.49412 -+ test -n "$vinfo" && \
1.49413 -+ func_warning "\`-version-info/-version-number' is ignored for archives"
1.49414 -+
1.49415 -+ test -n "$release" && \
1.49416 -+ func_warning "\`-release' is ignored for archives"
1.49417 -+
1.49418 -+ test -n "$export_symbols$export_symbols_regex" && \
1.49419 -+ func_warning "\`-export-symbols' is ignored for archives"
1.49420 -+
1.49421 -+ # Now set the variables for building old libraries.
1.49422 -+ build_libtool_libs=no
1.49423 -+ oldlibs="$output"
1.49424 -+ objs="$objs$old_deplibs"
1.49425 -+ ;;
1.49426 -+
1.49427 -+ lib)
1.49428 -+ # Make sure we only generate libraries of the form `libNAME.la'.
1.49429 -+ case $outputname in
1.49430 -+ lib*)
1.49431 -+ func_stripname 'lib' '.la' "$outputname"
1.49432 -+ name=$func_stripname_result
1.49433 -+ eval shared_ext=\"$shrext_cmds\"
1.49434 -+ eval libname=\"$libname_spec\"
1.49435 -+ ;;
1.49436 -+ *)
1.49437 -+ test "$module" = no && \
1.49438 -+ func_fatal_help "libtool library \`$output' must begin with \`lib'"
1.49439 -+
1.49440 -+ if test "$need_lib_prefix" != no; then
1.49441 -+ # Add the "lib" prefix for modules if required
1.49442 -+ func_stripname '' '.la' "$outputname"
1.49443 -+ name=$func_stripname_result
1.49444 -+ eval shared_ext=\"$shrext_cmds\"
1.49445 -+ eval libname=\"$libname_spec\"
1.49446 -+ else
1.49447 -+ func_stripname '' '.la' "$outputname"
1.49448 -+ libname=$func_stripname_result
1.49449 -+ fi
1.49450 -+ ;;
1.49451 -+ esac
1.49452 -+
1.49453 -+ if test -n "$objs"; then
1.49454 -+ if test "$deplibs_check_method" != pass_all; then
1.49455 -+ func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
1.49456 -+ else
1.49457 -+ $ECHO
1.49458 -+ $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
1.49459 -+ $ECHO "*** objects $objs is not portable!"
1.49460 -+ libobjs="$libobjs $objs"
1.49461 -+ fi
1.49462 -+ fi
1.49463 -+
1.49464 -+ test "$dlself" != no && \
1.49465 -+ func_warning "\`-dlopen self' is ignored for libtool libraries"
1.49466 -+
1.49467 -+ set dummy $rpath
1.49468 -+ shift
1.49469 -+ test "$#" -gt 1 && \
1.49470 -+ func_warning "ignoring multiple \`-rpath's for a libtool library"
1.49471 -+
1.49472 -+ install_libdir="$1"
1.49473 -+
1.49474 -+ oldlibs=
1.49475 -+ if test -z "$rpath"; then
1.49476 -+ if test "$build_libtool_libs" = yes; then
1.49477 -+ # Building a libtool convenience library.
1.49478 -+ # Some compilers have problems with a `.al' extension so
1.49479 -+ # convenience libraries should have the same extension an
1.49480 -+ # archive normally would.
1.49481 -+ oldlibs="$output_objdir/$libname.$libext $oldlibs"
1.49482 -+ build_libtool_libs=convenience
1.49483 -+ build_old_libs=yes
1.49484 -+ fi
1.49485 -+
1.49486 -+ test -n "$vinfo" && \
1.49487 -+ func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
1.49488 -+
1.49489 -+ test -n "$release" && \
1.49490 -+ func_warning "\`-release' is ignored for convenience libraries"
1.49491 -+ else
1.49492 -+
1.49493 -+ # Parse the version information argument.
1.49494 -+ save_ifs="$IFS"; IFS=':'
1.49495 -+ set dummy $vinfo 0 0 0
1.49496 -+ shift
1.49497 -+ IFS="$save_ifs"
1.49498 -+
1.49499 -+ test -n "$7" && \
1.49500 -+ func_fatal_help "too many parameters to \`-version-info'"
1.49501 -+
1.49502 -+ # convert absolute version numbers to libtool ages
1.49503 -+ # this retains compatibility with .la files and attempts
1.49504 -+ # to make the code below a bit more comprehensible
1.49505 -+
1.49506 -+ case $vinfo_number in
1.49507 -+ yes)
1.49508 -+ number_major="$1"
1.49509 -+ number_minor="$2"
1.49510 -+ number_revision="$3"
1.49511 -+ #
1.49512 -+ # There are really only two kinds -- those that
1.49513 -+ # use the current revision as the major version
1.49514 -+ # and those that subtract age and use age as
1.49515 -+ # a minor version. But, then there is irix
1.49516 -+ # which has an extra 1 added just for fun
1.49517 -+ #
1.49518 -+ case $version_type in
1.49519 -+ darwin|linux|osf|windows|none)
1.49520 -+ current=`expr $number_major + $number_minor`
1.49521 -+ age="$number_minor"
1.49522 -+ revision="$number_revision"
1.49523 -+ ;;
1.49524 -+ freebsd-aout|freebsd-elf|sunos)
1.49525 -+ current="$number_major"
1.49526 -+ revision="$number_minor"
1.49527 -+ age="0"
1.49528 -+ ;;
1.49529 -+ irix|nonstopux)
1.49530 -+ current=`expr $number_major + $number_minor - 1`
1.49531 -+ age="$number_minor"
1.49532 -+ revision="$number_minor"
1.49533 -+ ;;
1.49534 -+ esac
1.49535 -+ ;;
1.49536 -+ no)
1.49537 -+ current="$1"
1.49538 -+ revision="$2"
1.49539 -+ age="$3"
1.49540 -+ ;;
1.49541 -+ esac
1.49542 -+
1.49543 -+ # Check that each of the things are valid numbers.
1.49544 -+ case $current in
1.49545 -+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
1.49546 -+ *)
1.49547 -+ func_error "CURRENT \`$current' must be a nonnegative integer"
1.49548 -+ func_fatal_error "\`$vinfo' is not valid version information"
1.49549 -+ ;;
1.49550 -+ esac
1.49551 -+
1.49552 -+ case $revision in
1.49553 -+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
1.49554 -+ *)
1.49555 -+ func_error "REVISION \`$revision' must be a nonnegative integer"
1.49556 -+ func_fatal_error "\`$vinfo' is not valid version information"
1.49557 -+ ;;
1.49558 -+ esac
1.49559 -+
1.49560 -+ case $age in
1.49561 -+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
1.49562 -+ *)
1.49563 -+ func_error "AGE \`$age' must be a nonnegative integer"
1.49564 -+ func_fatal_error "\`$vinfo' is not valid version information"
1.49565 -+ ;;
1.49566 -+ esac
1.49567 -+
1.49568 -+ if test "$age" -gt "$current"; then
1.49569 -+ func_error "AGE \`$age' is greater than the current interface number \`$current'"
1.49570 -+ func_fatal_error "\`$vinfo' is not valid version information"
1.49571 -+ fi
1.49572 -+
1.49573 -+ # Calculate the version variables.
1.49574 -+ major=
1.49575 -+ versuffix=
1.49576 -+ verstring=
1.49577 -+ case $version_type in
1.49578 -+ none) ;;
1.49579 -+
1.49580 -+ darwin)
1.49581 -+ # Like Linux, but with the current version available in
1.49582 -+ # verstring for coding it into the library header
1.49583 -+ major=.`expr $current - $age`
1.49584 -+ versuffix="$major.$age.$revision"
1.49585 -+ # Darwin ld doesn't like 0 for these options...
1.49586 -+ minor_current=`expr $current + 1`
1.49587 -+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
1.49588 -+ ;;
1.49589 -+
1.49590 -+ freebsd-aout)
1.49591 -+ major=".$current"
1.49592 -+ versuffix=".$current.$revision";
1.49593 -+ ;;
1.49594 -+
1.49595 -+ freebsd-elf)
1.49596 -+ major=".$current"
1.49597 -+ versuffix=".$current"
1.49598 -+ ;;
1.49599 -+
1.49600 -+ irix | nonstopux)
1.49601 -+ major=`expr $current - $age + 1`
1.49602 -+
1.49603 -+ case $version_type in
1.49604 -+ nonstopux) verstring_prefix=nonstopux ;;
1.49605 -+ *) verstring_prefix=sgi ;;
1.49606 -+ esac
1.49607 -+ verstring="$verstring_prefix$major.$revision"
1.49608 -+
1.49609 -+ # Add in all the interfaces that we are compatible with.
1.49610 -+ loop=$revision
1.49611 -+ while test "$loop" -ne 0; do
1.49612 -+ iface=`expr $revision - $loop`
1.49613 -+ loop=`expr $loop - 1`
1.49614 -+ verstring="$verstring_prefix$major.$iface:$verstring"
1.49615 -+ done
1.49616 -+
1.49617 -+ # Before this point, $major must not contain `.'.
1.49618 -+ major=.$major
1.49619 -+ versuffix="$major.$revision"
1.49620 -+ ;;
1.49621 -+
1.49622 -+ linux)
1.49623 -+ major=.`expr $current - $age`
1.49624 -+ versuffix="$major.$age.$revision"
1.49625 -+ ;;
1.49626 -+
1.49627 -+ osf)
1.49628 -+ major=.`expr $current - $age`
1.49629 -+ versuffix=".$current.$age.$revision"
1.49630 -+ verstring="$current.$age.$revision"
1.49631 -+
1.49632 -+ # Add in all the interfaces that we are compatible with.
1.49633 -+ loop=$age
1.49634 -+ while test "$loop" -ne 0; do
1.49635 -+ iface=`expr $current - $loop`
1.49636 -+ loop=`expr $loop - 1`
1.49637 -+ verstring="$verstring:${iface}.0"
1.49638 -+ done
1.49639 -+
1.49640 -+ # Make executables depend on our current version.
1.49641 -+ verstring="$verstring:${current}.0"
1.49642 -+ ;;
1.49643 -+
1.49644 -+ qnx)
1.49645 -+ major=".$current"
1.49646 -+ versuffix=".$current"
1.49647 -+ ;;
1.49648 -+
1.49649 -+ sunos)
1.49650 -+ major=".$current"
1.49651 -+ versuffix=".$current.$revision"
1.49652 -+ ;;
1.49653 -+
1.49654 -+ windows)
1.49655 -+ # Use '-' rather than '.', since we only want one
1.49656 -+ # extension on DOS 8.3 filesystems.
1.49657 -+ major=`expr $current - $age`
1.49658 -+ versuffix="-$major"
1.49659 -+ ;;
1.49660 -+
1.49661 -+ *)
1.49662 -+ func_fatal_configuration "unknown library version type \`$version_type'"
1.49663 -+ ;;
1.49664 -+ esac
1.49665 -+
1.49666 -+ # Clear the version info if we defaulted, and they specified a release.
1.49667 -+ if test -z "$vinfo" && test -n "$release"; then
1.49668 -+ major=
1.49669 -+ case $version_type in
1.49670 -+ darwin)
1.49671 -+ # we can't check for "0.0" in archive_cmds due to quoting
1.49672 -+ # problems, so we reset it completely
1.49673 -+ verstring=
1.49674 -+ ;;
1.49675 -+ *)
1.49676 -+ verstring="0.0"
1.49677 -+ ;;
1.49678 -+ esac
1.49679 -+ if test "$need_version" = no; then
1.49680 -+ versuffix=
1.49681 -+ else
1.49682 -+ versuffix=".0.0"
1.49683 -+ fi
1.49684 -+ fi
1.49685 -+
1.49686 -+ # Remove version info from name if versioning should be avoided
1.49687 -+ if test "$avoid_version" = yes && test "$need_version" = no; then
1.49688 -+ major=
1.49689 -+ versuffix=
1.49690 -+ verstring=""
1.49691 -+ fi
1.49692 -+
1.49693 -+ # Check to see if the archive will have undefined symbols.
1.49694 -+ if test "$allow_undefined" = yes; then
1.49695 -+ if test "$allow_undefined_flag" = unsupported; then
1.49696 -+ func_warning "undefined symbols not allowed in $host shared libraries"
1.49697 -+ build_libtool_libs=no
1.49698 -+ build_old_libs=yes
1.49699 -+ fi
1.49700 -+ else
1.49701 -+ # Don't allow undefined symbols.
1.49702 -+ allow_undefined_flag="$no_undefined_flag"
1.49703 -+ fi
1.49704 -+
1.49705 -+ fi
1.49706 -+
1.49707 -+ func_generate_dlsyms "$libname" "$libname" "yes"
1.49708 -+ libobjs="$libobjs $symfileobj"
1.49709 -+ test "X$libobjs" = "X " && libobjs=
1.49710 -+
1.49711 -+ if test "$mode" != relink; then
1.49712 -+ # Remove our outputs, but don't remove object files since they
1.49713 -+ # may have been created when compiling PIC objects.
1.49714 -+ removelist=
1.49715 -+ tempremovelist=`$ECHO "$output_objdir/*"`
1.49716 -+ for p in $tempremovelist; do
1.49717 -+ case $p in
1.49718 -+ *.$objext)
1.49719 -+ ;;
1.49720 -+ $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
1.49721 -+ if test "X$precious_files_regex" != "X"; then
1.49722 -+ if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
1.49723 -+ then
1.49724 -+ continue
1.49725 -+ fi
1.49726 -+ fi
1.49727 -+ removelist="$removelist $p"
1.49728 -+ ;;
1.49729 -+ *) ;;
1.49730 -+ esac
1.49731 -+ done
1.49732 -+ test -n "$removelist" && \
1.49733 -+ func_show_eval "${RM}r \$removelist"
1.49734 -+ fi
1.49735 -+
1.49736 -+ # Now set the variables for building old libraries.
1.49737 -+ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
1.49738 -+ oldlibs="$oldlibs $output_objdir/$libname.$libext"
1.49739 -+
1.49740 -+ # Transform .lo files to .o files.
1.49741 -+ oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
1.49742 -+ fi
1.49743 -+
1.49744 -+ # Eliminate all temporary directories.
1.49745 -+ #for path in $notinst_path; do
1.49746 -+ # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
1.49747 -+ # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
1.49748 -+ # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
1.49749 -+ #done
1.49750 -+
1.49751 -+ if test -n "$xrpath"; then
1.49752 -+ # If the user specified any rpath flags, then add them.
1.49753 -+ temp_xrpath=
1.49754 -+ for libdir in $xrpath; do
1.49755 -+ temp_xrpath="$temp_xrpath -R$libdir"
1.49756 -+ case "$finalize_rpath " in
1.49757 -+ *" $libdir "*) ;;
1.49758 -+ *) finalize_rpath="$finalize_rpath $libdir" ;;
1.49759 -+ esac
1.49760 -+ done
1.49761 -+ if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
1.49762 -+ dependency_libs="$temp_xrpath $dependency_libs"
1.49763 -+ fi
1.49764 -+ fi
1.49765 -+
1.49766 -+ # Make sure dlfiles contains only unique files that won't be dlpreopened
1.49767 -+ old_dlfiles="$dlfiles"
1.49768 -+ dlfiles=
1.49769 -+ for lib in $old_dlfiles; do
1.49770 -+ case " $dlprefiles $dlfiles " in
1.49771 -+ *" $lib "*) ;;
1.49772 -+ *) dlfiles="$dlfiles $lib" ;;
1.49773 -+ esac
1.49774 -+ done
1.49775 -+
1.49776 -+ # Make sure dlprefiles contains only unique files
1.49777 -+ old_dlprefiles="$dlprefiles"
1.49778 -+ dlprefiles=
1.49779 -+ for lib in $old_dlprefiles; do
1.49780 -+ case "$dlprefiles " in
1.49781 -+ *" $lib "*) ;;
1.49782 -+ *) dlprefiles="$dlprefiles $lib" ;;
1.49783 -+ esac
1.49784 -+ done
1.49785 -+
1.49786 -+ if test "$build_libtool_libs" = yes; then
1.49787 -+ if test -n "$rpath"; then
1.49788 -+ case $host in
1.49789 -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
1.49790 -+ # these systems don't actually have a c library (as such)!
1.49791 -+ ;;
1.49792 -+ *-*-rhapsody* | *-*-darwin1.[012])
1.49793 -+ # Rhapsody C library is in the System framework
1.49794 -+ deplibs="$deplibs System.ltframework"
1.49795 -+ ;;
1.49796 -+ *-*-netbsd*)
1.49797 -+ # Don't link with libc until the a.out ld.so is fixed.
1.49798 -+ ;;
1.49799 -+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1.49800 -+ # Do not include libc due to us having libc/libc_r.
1.49801 -+ ;;
1.49802 -+ *-*-sco3.2v5* | *-*-sco5v6*)
1.49803 -+ # Causes problems with __ctype
1.49804 -+ ;;
1.49805 -+ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1.49806 -+ # Compiler inserts libc in the correct place for threads to work
1.49807 -+ ;;
1.49808 -+ *)
1.49809 -+ # Add libc to deplibs on all other systems if necessary.
1.49810 -+ if test "$build_libtool_need_lc" = "yes"; then
1.49811 -+ deplibs="$deplibs -lc"
1.49812 -+ fi
1.49813 -+ ;;
1.49814 -+ esac
1.49815 -+ fi
1.49816 -+
1.49817 -+ # Transform deplibs into only deplibs that can be linked in shared.
1.49818 -+ name_save=$name
1.49819 -+ libname_save=$libname
1.49820 -+ release_save=$release
1.49821 -+ versuffix_save=$versuffix
1.49822 -+ major_save=$major
1.49823 -+ # I'm not sure if I'm treating the release correctly. I think
1.49824 -+ # release should show up in the -l (ie -lgmp5) so we don't want to
1.49825 -+ # add it in twice. Is that correct?
1.49826 -+ release=""
1.49827 -+ versuffix=""
1.49828 -+ major=""
1.49829 -+ newdeplibs=
1.49830 -+ droppeddeps=no
1.49831 -+ case $deplibs_check_method in
1.49832 -+ pass_all)
1.49833 -+ # Don't check for shared/static. Everything works.
1.49834 -+ # This might be a little naive. We might want to check
1.49835 -+ # whether the library exists or not. But this is on
1.49836 -+ # osf3 & osf4 and I'm not really sure... Just
1.49837 -+ # implementing what was already the behavior.
1.49838 -+ newdeplibs=$deplibs
1.49839 -+ ;;
1.49840 -+ test_compile)
1.49841 -+ # This code stresses the "libraries are programs" paradigm to its
1.49842 -+ # limits. Maybe even breaks it. We compile a program, linking it
1.49843 -+ # against the deplibs as a proxy for the library. Then we can check
1.49844 -+ # whether they linked in statically or dynamically with ldd.
1.49845 -+ $opt_dry_run || $RM conftest.c
1.49846 -+ cat > conftest.c <<EOF
1.49847 -+ int main() { return 0; }
1.49848 -+EOF
1.49849 -+ $opt_dry_run || $RM conftest
1.49850 -+ if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
1.49851 -+ ldd_output=`ldd conftest`
1.49852 -+ for i in $deplibs; do
1.49853 -+ name=`expr $i : '-l\(.*\)'`
1.49854 -+ # If $name is empty we are operating on a -L argument.
1.49855 -+ if test "$name" != "" && test "$name" != "0"; then
1.49856 -+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
1.49857 -+ case " $predeps $postdeps " in
1.49858 -+ *" $i "*)
1.49859 -+ newdeplibs="$newdeplibs $i"
1.49860 -+ i=""
1.49861 -+ ;;
1.49862 -+ esac
1.49863 -+ fi
1.49864 -+ if test -n "$i" ; then
1.49865 -+ libname=`eval "\\$ECHO \"$libname_spec\""`
1.49866 -+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
1.49867 -+ set dummy $deplib_matches; shift
1.49868 -+ deplib_match=$1
1.49869 -+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1.49870 -+ newdeplibs="$newdeplibs $i"
1.49871 -+ else
1.49872 -+ droppeddeps=yes
1.49873 -+ $ECHO
1.49874 -+ $ECHO "*** Warning: dynamic linker does not accept needed library $i."
1.49875 -+ $ECHO "*** I have the capability to make that library automatically link in when"
1.49876 -+ $ECHO "*** you link to this library. But I can only do this if you have a"
1.49877 -+ $ECHO "*** shared version of the library, which I believe you do not have"
1.49878 -+ $ECHO "*** because a test_compile did reveal that the linker did not use it for"
1.49879 -+ $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
1.49880 -+ fi
1.49881 -+ fi
1.49882 -+ else
1.49883 -+ newdeplibs="$newdeplibs $i"
1.49884 -+ fi
1.49885 -+ done
1.49886 -+ else
1.49887 -+ # Error occurred in the first compile. Let's try to salvage
1.49888 -+ # the situation: Compile a separate program for each library.
1.49889 -+ for i in $deplibs; do
1.49890 -+ name=`expr $i : '-l\(.*\)'`
1.49891 -+ # If $name is empty we are operating on a -L argument.
1.49892 -+ if test "$name" != "" && test "$name" != "0"; then
1.49893 -+ $opt_dry_run || $RM conftest
1.49894 -+ if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
1.49895 -+ ldd_output=`ldd conftest`
1.49896 -+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
1.49897 -+ case " $predeps $postdeps " in
1.49898 -+ *" $i "*)
1.49899 -+ newdeplibs="$newdeplibs $i"
1.49900 -+ i=""
1.49901 -+ ;;
1.49902 -+ esac
1.49903 -+ fi
1.49904 -+ if test -n "$i" ; then
1.49905 -+ libname=`eval "\\$ECHO \"$libname_spec\""`
1.49906 -+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
1.49907 -+ set dummy $deplib_matches; shift
1.49908 -+ deplib_match=$1
1.49909 -+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1.49910 -+ newdeplibs="$newdeplibs $i"
1.49911 -+ else
1.49912 -+ droppeddeps=yes
1.49913 -+ $ECHO
1.49914 -+ $ECHO "*** Warning: dynamic linker does not accept needed library $i."
1.49915 -+ $ECHO "*** I have the capability to make that library automatically link in when"
1.49916 -+ $ECHO "*** you link to this library. But I can only do this if you have a"
1.49917 -+ $ECHO "*** shared version of the library, which you do not appear to have"
1.49918 -+ $ECHO "*** because a test_compile did reveal that the linker did not use this one"
1.49919 -+ $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
1.49920 -+ fi
1.49921 -+ fi
1.49922 -+ else
1.49923 -+ droppeddeps=yes
1.49924 -+ $ECHO
1.49925 -+ $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
1.49926 -+ $ECHO "*** make it link in! You will probably need to install it or some"
1.49927 -+ $ECHO "*** library that it depends on before this library will be fully"
1.49928 -+ $ECHO "*** functional. Installing it before continuing would be even better."
1.49929 -+ fi
1.49930 -+ else
1.49931 -+ newdeplibs="$newdeplibs $i"
1.49932 -+ fi
1.49933 -+ done
1.49934 -+ fi
1.49935 -+ ;;
1.49936 -+ file_magic*)
1.49937 -+ set dummy $deplibs_check_method; shift
1.49938 -+ file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
1.49939 -+ for a_deplib in $deplibs; do
1.49940 -+ name=`expr $a_deplib : '-l\(.*\)'`
1.49941 -+ # If $name is empty we are operating on a -L argument.
1.49942 -+ if test "$name" != "" && test "$name" != "0"; then
1.49943 -+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
1.49944 -+ case " $predeps $postdeps " in
1.49945 -+ *" $a_deplib "*)
1.49946 -+ newdeplibs="$newdeplibs $a_deplib"
1.49947 -+ a_deplib=""
1.49948 -+ ;;
1.49949 -+ esac
1.49950 -+ fi
1.49951 -+ if test -n "$a_deplib" ; then
1.49952 -+ libname=`eval "\\$ECHO \"$libname_spec\""`
1.49953 -+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
1.49954 -+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
1.49955 -+ for potent_lib in $potential_libs; do
1.49956 -+ # Follow soft links.
1.49957 -+ if ls -lLd "$potent_lib" 2>/dev/null |
1.49958 -+ $GREP " -> " >/dev/null; then
1.49959 -+ continue
1.49960 -+ fi
1.49961 -+ # The statement above tries to avoid entering an
1.49962 -+ # endless loop below, in case of cyclic links.
1.49963 -+ # We might still enter an endless loop, since a link
1.49964 -+ # loop can be closed while we follow links,
1.49965 -+ # but so what?
1.49966 -+ potlib="$potent_lib"
1.49967 -+ while test -h "$potlib" 2>/dev/null; do
1.49968 -+ potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
1.49969 -+ case $potliblink in
1.49970 -+ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
1.49971 -+ *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
1.49972 -+ esac
1.49973 -+ done
1.49974 -+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
1.49975 -+ $SED -e 10q |
1.49976 -+ $EGREP "$file_magic_regex" > /dev/null; then
1.49977 -+ newdeplibs="$newdeplibs $a_deplib"
1.49978 -+ a_deplib=""
1.49979 -+ break 2
1.49980 -+ fi
1.49981 -+ done
1.49982 -+ done
1.49983 -+ fi
1.49984 -+ if test -n "$a_deplib" ; then
1.49985 -+ droppeddeps=yes
1.49986 -+ $ECHO
1.49987 -+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
1.49988 -+ $ECHO "*** I have the capability to make that library automatically link in when"
1.49989 -+ $ECHO "*** you link to this library. But I can only do this if you have a"
1.49990 -+ $ECHO "*** shared version of the library, which you do not appear to have"
1.49991 -+ $ECHO "*** because I did check the linker path looking for a file starting"
1.49992 -+ if test -z "$potlib" ; then
1.49993 -+ $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
1.49994 -+ else
1.49995 -+ $ECHO "*** with $libname and none of the candidates passed a file format test"
1.49996 -+ $ECHO "*** using a file magic. Last file checked: $potlib"
1.49997 -+ fi
1.49998 -+ fi
1.49999 -+ else
1.50000 -+ # Add a -L argument.
1.50001 -+ newdeplibs="$newdeplibs $a_deplib"
1.50002 -+ fi
1.50003 -+ done # Gone through all deplibs.
1.50004 -+ ;;
1.50005 -+ match_pattern*)
1.50006 -+ set dummy $deplibs_check_method; shift
1.50007 -+ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
1.50008 -+ for a_deplib in $deplibs; do
1.50009 -+ name=`expr $a_deplib : '-l\(.*\)'`
1.50010 -+ # If $name is empty we are operating on a -L argument.
1.50011 -+ if test -n "$name" && test "$name" != "0"; then
1.50012 -+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
1.50013 -+ case " $predeps $postdeps " in
1.50014 -+ *" $a_deplib "*)
1.50015 -+ newdeplibs="$newdeplibs $a_deplib"
1.50016 -+ a_deplib=""
1.50017 -+ ;;
1.50018 -+ esac
1.50019 -+ fi
1.50020 -+ if test -n "$a_deplib" ; then
1.50021 -+ libname=`eval "\\$ECHO \"$libname_spec\""`
1.50022 -+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
1.50023 -+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
1.50024 -+ for potent_lib in $potential_libs; do
1.50025 -+ potlib="$potent_lib" # see symlink-check above in file_magic test
1.50026 -+ if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
1.50027 -+ $EGREP "$match_pattern_regex" > /dev/null; then
1.50028 -+ newdeplibs="$newdeplibs $a_deplib"
1.50029 -+ a_deplib=""
1.50030 -+ break 2
1.50031 -+ fi
1.50032 -+ done
1.50033 -+ done
1.50034 -+ fi
1.50035 -+ if test -n "$a_deplib" ; then
1.50036 -+ droppeddeps=yes
1.50037 -+ $ECHO
1.50038 -+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
1.50039 -+ $ECHO "*** I have the capability to make that library automatically link in when"
1.50040 -+ $ECHO "*** you link to this library. But I can only do this if you have a"
1.50041 -+ $ECHO "*** shared version of the library, which you do not appear to have"
1.50042 -+ $ECHO "*** because I did check the linker path looking for a file starting"
1.50043 -+ if test -z "$potlib" ; then
1.50044 -+ $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
1.50045 -+ else
1.50046 -+ $ECHO "*** with $libname and none of the candidates passed a file format test"
1.50047 -+ $ECHO "*** using a regex pattern. Last file checked: $potlib"
1.50048 -+ fi
1.50049 -+ fi
1.50050 -+ else
1.50051 -+ # Add a -L argument.
1.50052 -+ newdeplibs="$newdeplibs $a_deplib"
1.50053 -+ fi
1.50054 -+ done # Gone through all deplibs.
1.50055 -+ ;;
1.50056 -+ none | unknown | *)
1.50057 -+ newdeplibs=""
1.50058 -+ tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
1.50059 -+ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
1.50060 -+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
1.50061 -+ for i in $predeps $postdeps ; do
1.50062 -+ # can't use Xsed below, because $i might contain '/'
1.50063 -+ tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
1.50064 -+ done
1.50065 -+ fi
1.50066 -+ if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' |
1.50067 -+ $GREP . >/dev/null; then
1.50068 -+ $ECHO
1.50069 -+ if test "X$deplibs_check_method" = "Xnone"; then
1.50070 -+ $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
1.50071 -+ else
1.50072 -+ $ECHO "*** Warning: inter-library dependencies are not known to be supported."
1.50073 -+ fi
1.50074 -+ $ECHO "*** All declared inter-library dependencies are being dropped."
1.50075 -+ droppeddeps=yes
1.50076 -+ fi
1.50077 -+ ;;
1.50078 -+ esac
1.50079 -+ versuffix=$versuffix_save
1.50080 -+ major=$major_save
1.50081 -+ release=$release_save
1.50082 -+ libname=$libname_save
1.50083 -+ name=$name_save
1.50084 -+
1.50085 -+ case $host in
1.50086 -+ *-*-rhapsody* | *-*-darwin1.[012])
1.50087 -+ # On Rhapsody replace the C library with the System framework
1.50088 -+ newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
1.50089 -+ ;;
1.50090 -+ esac
1.50091 -+
1.50092 -+ if test "$droppeddeps" = yes; then
1.50093 -+ if test "$module" = yes; then
1.50094 -+ $ECHO
1.50095 -+ $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
1.50096 -+ $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
1.50097 -+ $ECHO "*** a static module, that should work as long as the dlopening"
1.50098 -+ $ECHO "*** application is linked with the -dlopen flag."
1.50099 -+ if test -z "$global_symbol_pipe"; then
1.50100 -+ $ECHO
1.50101 -+ $ECHO "*** However, this would only work if libtool was able to extract symbol"
1.50102 -+ $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
1.50103 -+ $ECHO "*** not find such a program. So, this module is probably useless."
1.50104 -+ $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
1.50105 -+ fi
1.50106 -+ if test "$build_old_libs" = no; then
1.50107 -+ oldlibs="$output_objdir/$libname.$libext"
1.50108 -+ build_libtool_libs=module
1.50109 -+ build_old_libs=yes
1.50110 -+ else
1.50111 -+ build_libtool_libs=no
1.50112 -+ fi
1.50113 -+ else
1.50114 -+ $ECHO "*** The inter-library dependencies that have been dropped here will be"
1.50115 -+ $ECHO "*** automatically added whenever a program is linked with this library"
1.50116 -+ $ECHO "*** or is declared to -dlopen it."
1.50117 -+
1.50118 -+ if test "$allow_undefined" = no; then
1.50119 -+ $ECHO
1.50120 -+ $ECHO "*** Since this library must not contain undefined symbols,"
1.50121 -+ $ECHO "*** because either the platform does not support them or"
1.50122 -+ $ECHO "*** it was explicitly requested with -no-undefined,"
1.50123 -+ $ECHO "*** libtool will only create a static version of it."
1.50124 -+ if test "$build_old_libs" = no; then
1.50125 -+ oldlibs="$output_objdir/$libname.$libext"
1.50126 -+ build_libtool_libs=module
1.50127 -+ build_old_libs=yes
1.50128 -+ else
1.50129 -+ build_libtool_libs=no
1.50130 -+ fi
1.50131 -+ fi
1.50132 -+ fi
1.50133 -+ fi
1.50134 -+ # Done checking deplibs!
1.50135 -+ deplibs=$newdeplibs
1.50136 -+ fi
1.50137 -+ # Time to change all our "foo.ltframework" stuff back to "-framework foo"
1.50138 -+ case $host in
1.50139 -+ *-*-darwin*)
1.50140 -+ newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
1.50141 -+ new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
1.50142 -+ deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
1.50143 -+ ;;
1.50144 -+ esac
1.50145 -+
1.50146 -+ # move library search paths that coincide with paths to not yet
1.50147 -+ # installed libraries to the beginning of the library search list
1.50148 -+ new_libs=
1.50149 -+ for path in $notinst_path; do
1.50150 -+ case " $new_libs " in
1.50151 -+ *" -L$path/$objdir "*) ;;
1.50152 -+ *)
1.50153 -+ case " $deplibs " in
1.50154 -+ *" -L$path/$objdir "*)
1.50155 -+ new_libs="$new_libs -L$path/$objdir" ;;
1.50156 -+ esac
1.50157 -+ ;;
1.50158 -+ esac
1.50159 -+ done
1.50160 -+ for deplib in $deplibs; do
1.50161 -+ case $deplib in
1.50162 -+ -L*)
1.50163 -+ case " $new_libs " in
1.50164 -+ *" $deplib "*) ;;
1.50165 -+ *) new_libs="$new_libs $deplib" ;;
1.50166 -+ esac
1.50167 -+ ;;
1.50168 -+ *) new_libs="$new_libs $deplib" ;;
1.50169 -+ esac
1.50170 -+ done
1.50171 -+ deplibs="$new_libs"
1.50172 -+
1.50173 -+ # All the library-specific variables (install_libdir is set above).
1.50174 -+ library_names=
1.50175 -+ old_library=
1.50176 -+ dlname=
1.50177 -+
1.50178 -+ # Test again, we may have decided not to build it any more
1.50179 -+ if test "$build_libtool_libs" = yes; then
1.50180 -+ if test "$hardcode_into_libs" = yes; then
1.50181 -+ # Hardcode the library paths
1.50182 -+ hardcode_libdirs=
1.50183 -+ dep_rpath=
1.50184 -+ rpath="$finalize_rpath"
1.50185 -+ test "$mode" != relink && rpath="$compile_rpath$rpath"
1.50186 -+ for libdir in $rpath; do
1.50187 -+ if test -n "$hardcode_libdir_flag_spec"; then
1.50188 -+ if test -n "$hardcode_libdir_separator"; then
1.50189 -+ if test -z "$hardcode_libdirs"; then
1.50190 -+ hardcode_libdirs="$libdir"
1.50191 -+ else
1.50192 -+ # Just accumulate the unique libdirs.
1.50193 -+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
1.50194 -+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
1.50195 -+ ;;
1.50196 -+ *)
1.50197 -+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
1.50198 -+ ;;
1.50199 -+ esac
1.50200 -+ fi
1.50201 -+ else
1.50202 -+ eval flag=\"$hardcode_libdir_flag_spec\"
1.50203 -+ dep_rpath="$dep_rpath $flag"
1.50204 -+ fi
1.50205 -+ elif test -n "$runpath_var"; then
1.50206 -+ case "$perm_rpath " in
1.50207 -+ *" $libdir "*) ;;
1.50208 -+ *) perm_rpath="$perm_rpath $libdir" ;;
1.50209 -+ esac
1.50210 -+ fi
1.50211 -+ done
1.50212 -+ # Substitute the hardcoded libdirs into the rpath.
1.50213 -+ if test -n "$hardcode_libdir_separator" &&
1.50214 -+ test -n "$hardcode_libdirs"; then
1.50215 -+ libdir="$hardcode_libdirs"
1.50216 -+ if test -n "$hardcode_libdir_flag_spec_ld"; then
1.50217 -+ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
1.50218 -+ else
1.50219 -+ eval dep_rpath=\"$hardcode_libdir_flag_spec\"
1.50220 -+ fi
1.50221 -+ fi
1.50222 -+ if test -n "$runpath_var" && test -n "$perm_rpath"; then
1.50223 -+ # We should set the runpath_var.
1.50224 -+ rpath=
1.50225 -+ for dir in $perm_rpath; do
1.50226 -+ rpath="$rpath$dir:"
1.50227 -+ done
1.50228 -+ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
1.50229 -+ fi
1.50230 -+ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
1.50231 -+ fi
1.50232 -+
1.50233 -+ shlibpath="$finalize_shlibpath"
1.50234 -+ test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
1.50235 -+ if test -n "$shlibpath"; then
1.50236 -+ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
1.50237 -+ fi
1.50238 -+
1.50239 -+ # Get the real and link names of the library.
1.50240 -+ eval shared_ext=\"$shrext_cmds\"
1.50241 -+ eval library_names=\"$library_names_spec\"
1.50242 -+ set dummy $library_names
1.50243 -+ shift
1.50244 -+ realname="$1"
1.50245 -+ shift
1.50246 -+
1.50247 -+ if test -n "$soname_spec"; then
1.50248 -+ eval soname=\"$soname_spec\"
1.50249 -+ else
1.50250 -+ soname="$realname"
1.50251 -+ fi
1.50252 -+ if test -z "$dlname"; then
1.50253 -+ dlname=$soname
1.50254 -+ fi
1.50255 -+
1.50256 -+ lib="$output_objdir/$realname"
1.50257 -+ linknames=
1.50258 -+ for link
1.50259 -+ do
1.50260 -+ linknames="$linknames $link"
1.50261 -+ done
1.50262 -+
1.50263 -+ # Use standard objects if they are pic
1.50264 -+ test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
1.50265 -+ test "X$libobjs" = "X " && libobjs=
1.50266 -+
1.50267 -+ delfiles=
1.50268 -+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
1.50269 -+ $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
1.50270 -+ export_symbols="$output_objdir/$libname.uexp"
1.50271 -+ delfiles="$delfiles $export_symbols"
1.50272 -+ fi
1.50273 -+
1.50274 -+ orig_export_symbols=
1.50275 -+ case $host_os in
1.50276 -+ cygwin* | mingw*)
1.50277 -+ if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
1.50278 -+ # exporting using user supplied symfile
1.50279 -+ if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
1.50280 -+ # and it's NOT already a .def file. Must figure out
1.50281 -+ # which of the given symbols are data symbols and tag
1.50282 -+ # them as such. So, trigger use of export_symbols_cmds.
1.50283 -+ # export_symbols gets reassigned inside the "prepare
1.50284 -+ # the list of exported symbols" if statement, so the
1.50285 -+ # include_expsyms logic still works.
1.50286 -+ orig_export_symbols="$export_symbols"
1.50287 -+ export_symbols=
1.50288 -+ always_export_symbols=yes
1.50289 -+ fi
1.50290 -+ fi
1.50291 -+ ;;
1.50292 -+ esac
1.50293 -+
1.50294 -+ # Prepare the list of exported symbols
1.50295 -+ if test -z "$export_symbols"; then
1.50296 -+ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
1.50297 -+ func_echo "generating symbol list for \`$libname.la'"
1.50298 -+ export_symbols="$output_objdir/$libname.exp"
1.50299 -+ $opt_dry_run || $RM $export_symbols
1.50300 -+ cmds=$export_symbols_cmds
1.50301 -+ save_ifs="$IFS"; IFS='~'
1.50302 -+ for cmd in $cmds; do
1.50303 -+ IFS="$save_ifs"
1.50304 -+ eval cmd=\"$cmd\"
1.50305 -+ if len=`expr "X$cmd" : ".*"` &&
1.50306 -+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
1.50307 -+ func_show_eval "$cmd" 'exit $?'
1.50308 -+ skipped_export=false
1.50309 -+ else
1.50310 -+ # The command line is too long to execute in one step.
1.50311 -+ func_echo "using reloadable object file for export list..."
1.50312 -+ skipped_export=:
1.50313 -+ # Break out early, otherwise skipped_export may be
1.50314 -+ # set to false by a later but shorter cmd.
1.50315 -+ break
1.50316 -+ fi
1.50317 -+ done
1.50318 -+ IFS="$save_ifs"
1.50319 -+ if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
1.50320 -+ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
1.50321 -+ func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
1.50322 -+ fi
1.50323 -+ fi
1.50324 -+ fi
1.50325 -+
1.50326 -+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
1.50327 -+ tmp_export_symbols="$export_symbols"
1.50328 -+ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
1.50329 -+ $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
1.50330 -+ fi
1.50331 -+
1.50332 -+ if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
1.50333 -+ # The given exports_symbols file has to be filtered, so filter it.
1.50334 -+ func_echo "filter symbol list for \`$libname.la' to tag DATA exports"
1.50335 -+ # FIXME: $output_objdir/$libname.filter potentially contains lots of
1.50336 -+ # 's' commands which not all seds can handle. GNU sed should be fine
1.50337 -+ # though. Also, the filter scales superlinearly with the number of
1.50338 -+ # global variables. join(1) would be nice here, but unfortunately
1.50339 -+ # isn't a blessed tool.
1.50340 -+ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
1.50341 -+ delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
1.50342 -+ export_symbols=$output_objdir/$libname.def
1.50343 -+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
1.50344 -+ fi
1.50345 -+
1.50346 -+ tmp_deplibs=
1.50347 -+ for test_deplib in $deplibs; do
1.50348 -+ case " $convenience " in
1.50349 -+ *" $test_deplib "*) ;;
1.50350 -+ *)
1.50351 -+ tmp_deplibs="$tmp_deplibs $test_deplib"
1.50352 -+ ;;
1.50353 -+ esac
1.50354 -+ done
1.50355 -+ deplibs="$tmp_deplibs"
1.50356 -+
1.50357 -+ if test -n "$convenience"; then
1.50358 -+ if test -n "$whole_archive_flag_spec" &&
1.50359 -+ test "$compiler_needs_object" = yes &&
1.50360 -+ test -z "$libobjs"; then
1.50361 -+ # extract the archives, so we have objects to list.
1.50362 -+ # TODO: could optimize this to just extract one archive.
1.50363 -+ whole_archive_flag_spec=
1.50364 -+ fi
1.50365 -+ if test -n "$whole_archive_flag_spec"; then
1.50366 -+ save_libobjs=$libobjs
1.50367 -+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
1.50368 -+ test "X$libobjs" = "X " && libobjs=
1.50369 -+ else
1.50370 -+ gentop="$output_objdir/${outputname}x"
1.50371 -+ generated="$generated $gentop"
1.50372 -+
1.50373 -+ func_extract_archives $gentop $convenience
1.50374 -+ libobjs="$libobjs $func_extract_archives_result"
1.50375 -+ test "X$libobjs" = "X " && libobjs=
1.50376 -+ fi
1.50377 -+ fi
1.50378 -+
1.50379 -+ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
1.50380 -+ eval flag=\"$thread_safe_flag_spec\"
1.50381 -+ linker_flags="$linker_flags $flag"
1.50382 -+ fi
1.50383 -+
1.50384 -+ # Make a backup of the uninstalled library when relinking
1.50385 -+ if test "$mode" = relink; then
1.50386 -+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
1.50387 -+ fi
1.50388 -+
1.50389 -+ # Do each of the archive commands.
1.50390 -+ if test "$module" = yes && test -n "$module_cmds" ; then
1.50391 -+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
1.50392 -+ eval test_cmds=\"$module_expsym_cmds\"
1.50393 -+ cmds=$module_expsym_cmds
1.50394 -+ else
1.50395 -+ eval test_cmds=\"$module_cmds\"
1.50396 -+ cmds=$module_cmds
1.50397 -+ fi
1.50398 -+ else
1.50399 -+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
1.50400 -+ eval test_cmds=\"$archive_expsym_cmds\"
1.50401 -+ cmds=$archive_expsym_cmds
1.50402 -+ else
1.50403 -+ eval test_cmds=\"$archive_cmds\"
1.50404 -+ cmds=$archive_cmds
1.50405 -+ fi
1.50406 -+ fi
1.50407 -+
1.50408 -+ if test "X$skipped_export" != "X:" &&
1.50409 -+ len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
1.50410 -+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
1.50411 -+ :
1.50412 -+ else
1.50413 -+ # The command line is too long to link in one step, link piecewise
1.50414 -+ # or, if using GNU ld and skipped_export is not :, use a linker
1.50415 -+ # script.
1.50416 -+
1.50417 -+ # Save the value of $output and $libobjs because we want to
1.50418 -+ # use them later. If we have whole_archive_flag_spec, we
1.50419 -+ # want to use save_libobjs as it was before
1.50420 -+ # whole_archive_flag_spec was expanded, because we can't
1.50421 -+ # assume the linker understands whole_archive_flag_spec.
1.50422 -+ # This may have to be revisited, in case too many
1.50423 -+ # convenience libraries get linked in and end up exceeding
1.50424 -+ # the spec.
1.50425 -+ if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
1.50426 -+ save_libobjs=$libobjs
1.50427 -+ fi
1.50428 -+ save_output=$output
1.50429 -+ output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
1.50430 -+
1.50431 -+ # Clear the reloadable object creation command queue and
1.50432 -+ # initialize k to one.
1.50433 -+ test_cmds=
1.50434 -+ concat_cmds=
1.50435 -+ objlist=
1.50436 -+ last_robj=
1.50437 -+ k=1
1.50438 -+
1.50439 -+ if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
1.50440 -+ output=${output_objdir}/${output_la}.lnkscript
1.50441 -+ func_echo "creating GNU ld script: $output"
1.50442 -+ $ECHO 'INPUT (' > $output
1.50443 -+ for obj in $save_libobjs
1.50444 -+ do
1.50445 -+ $ECHO "$obj" >> $output
1.50446 -+ done
1.50447 -+ $ECHO ')' >> $output
1.50448 -+ delfiles="$delfiles $output"
1.50449 -+ elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
1.50450 -+ output=${output_objdir}/${output_la}.lnk
1.50451 -+ func_echo "creating linker input file list: $output"
1.50452 -+ : > $output
1.50453 -+ set x $save_libobjs
1.50454 -+ shift
1.50455 -+ firstobj=
1.50456 -+ if test "$compiler_needs_object" = yes; then
1.50457 -+ firstobj="$1 "
1.50458 -+ shift
1.50459 -+ fi
1.50460 -+ for obj
1.50461 -+ do
1.50462 -+ $ECHO "$obj" >> $output
1.50463 -+ done
1.50464 -+ delfiles="$delfiles $output"
1.50465 -+ output=$firstobj\"$file_list_spec$output\"
1.50466 -+ else
1.50467 -+ if test -n "$save_libobjs"; then
1.50468 -+ func_echo "creating reloadable object files..."
1.50469 -+ output=$output_objdir/$output_la-${k}.$objext
1.50470 -+ # Loop over the list of objects to be linked.
1.50471 -+ for obj in $save_libobjs
1.50472 -+ do
1.50473 -+ eval test_cmds=\"$reload_cmds $objlist $last_robj\"
1.50474 -+ if test "X$objlist" = X ||
1.50475 -+ { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
1.50476 -+ test "$len" -le "$max_cmd_len"; }; then
1.50477 -+ objlist="$objlist $obj"
1.50478 -+ else
1.50479 -+ # The command $test_cmds is almost too long, add a
1.50480 -+ # command to the queue.
1.50481 -+ if test "$k" -eq 1 ; then
1.50482 -+ # The first file doesn't have a previous command to add.
1.50483 -+ eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
1.50484 -+ else
1.50485 -+ # All subsequent reloadable object files will link in
1.50486 -+ # the last one created.
1.50487 -+ eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
1.50488 -+ fi
1.50489 -+ last_robj=$output_objdir/$output_la-${k}.$objext
1.50490 -+ k=`expr $k + 1`
1.50491 -+ output=$output_objdir/$output_la-${k}.$objext
1.50492 -+ objlist=$obj
1.50493 -+ len=1
1.50494 -+ fi
1.50495 -+ done
1.50496 -+ # Handle the remaining objects by creating one last
1.50497 -+ # reloadable object file. All subsequent reloadable object
1.50498 -+ # files will link in the last one created.
1.50499 -+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
1.50500 -+ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
1.50501 -+
1.50502 -+ # Set up a command to remove the reloadable object files
1.50503 -+ # after they are used.
1.50504 -+ i=0
1.50505 -+ while test "$i" -lt "$k"
1.50506 -+ do
1.50507 -+ i=`expr $i + 1`
1.50508 -+ delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
1.50509 -+ done
1.50510 -+ else
1.50511 -+ output=
1.50512 -+ fi
1.50513 -+
1.50514 -+ if ${skipped_export-false}; then
1.50515 -+ func_echo "generating symbol list for \`$libname.la'"
1.50516 -+ export_symbols="$output_objdir/$libname.exp"
1.50517 -+ $opt_dry_run || $RM $export_symbols
1.50518 -+ libobjs=$output
1.50519 -+ # Append the command to create the export file.
1.50520 -+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
1.50521 -+ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
1.50522 -+ fi
1.50523 -+
1.50524 -+ test -n "$save_libobjs" &&
1.50525 -+ func_echo "creating a temporary reloadable object file: $output"
1.50526 -+
1.50527 -+ # Loop through the commands generated above and execute them.
1.50528 -+ save_ifs="$IFS"; IFS='~'
1.50529 -+ for cmd in $concat_cmds; do
1.50530 -+ IFS="$save_ifs"
1.50531 -+ $opt_silent || {
1.50532 -+ func_quote_for_expand "$cmd"
1.50533 -+ eval "func_echo $func_quote_for_expand_result"
1.50534 -+ }
1.50535 -+ $opt_dry_run || eval "$cmd" || {
1.50536 -+ lt_exit=$?
1.50537 -+
1.50538 -+ # Restore the uninstalled library and exit
1.50539 -+ if test "$mode" = relink; then
1.50540 -+ ( cd "$output_objdir" && \
1.50541 -+ $RM "${realname}T" && \
1.50542 -+ $MV "${realname}U" "$realname" )
1.50543 -+ fi
1.50544 -+
1.50545 -+ exit $lt_exit
1.50546 -+ }
1.50547 -+ done
1.50548 -+ IFS="$save_ifs"
1.50549 -+
1.50550 -+ if test -n "$export_symbols_regex" && ${skipped_export-false}; then
1.50551 -+ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
1.50552 -+ func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
1.50553 -+ fi
1.50554 -+ fi
1.50555 -+
1.50556 -+ if ${skipped_export-false}; then
1.50557 -+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
1.50558 -+ tmp_export_symbols="$export_symbols"
1.50559 -+ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
1.50560 -+ $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
1.50561 -+ fi
1.50562 -+
1.50563 -+ if test -n "$orig_export_symbols"; then
1.50564 -+ # The given exports_symbols file has to be filtered, so filter it.
1.50565 -+ func_echo "filter symbol list for \`$libname.la' to tag DATA exports"
1.50566 -+ # FIXME: $output_objdir/$libname.filter potentially contains lots of
1.50567 -+ # 's' commands which not all seds can handle. GNU sed should be fine
1.50568 -+ # though. Also, the filter scales superlinearly with the number of
1.50569 -+ # global variables. join(1) would be nice here, but unfortunately
1.50570 -+ # isn't a blessed tool.
1.50571 -+ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
1.50572 -+ delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
1.50573 -+ export_symbols=$output_objdir/$libname.def
1.50574 -+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
1.50575 -+ fi
1.50576 -+ fi
1.50577 -+
1.50578 -+ libobjs=$output
1.50579 -+ # Restore the value of output.
1.50580 -+ output=$save_output
1.50581 -+
1.50582 -+ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
1.50583 -+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
1.50584 -+ test "X$libobjs" = "X " && libobjs=
1.50585 -+ fi
1.50586 -+ # Expand the library linking commands again to reset the
1.50587 -+ # value of $libobjs for piecewise linking.
1.50588 -+
1.50589 -+ # Do each of the archive commands.
1.50590 -+ if test "$module" = yes && test -n "$module_cmds" ; then
1.50591 -+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
1.50592 -+ cmds=$module_expsym_cmds
1.50593 -+ else
1.50594 -+ cmds=$module_cmds
1.50595 -+ fi
1.50596 -+ else
1.50597 -+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
1.50598 -+ cmds=$archive_expsym_cmds
1.50599 -+ else
1.50600 -+ cmds=$archive_cmds
1.50601 -+ fi
1.50602 -+ fi
1.50603 -+ fi
1.50604 -+
1.50605 -+ if test -n "$delfiles"; then
1.50606 -+ # Append the command to remove temporary files to $cmds.
1.50607 -+ eval cmds=\"\$cmds~\$RM $delfiles\"
1.50608 -+ fi
1.50609 -+
1.50610 -+ # Add any objects from preloaded convenience libraries
1.50611 -+ if test -n "$dlprefiles"; then
1.50612 -+ gentop="$output_objdir/${outputname}x"
1.50613 -+ generated="$generated $gentop"
1.50614 -+
1.50615 -+ func_extract_archives $gentop $dlprefiles
1.50616 -+ libobjs="$libobjs $func_extract_archives_result"
1.50617 -+ test "X$libobjs" = "X " && libobjs=
1.50618 -+ fi
1.50619 -+
1.50620 -+ save_ifs="$IFS"; IFS='~'
1.50621 -+ for cmd in $cmds; do
1.50622 -+ IFS="$save_ifs"
1.50623 -+ eval cmd=\"$cmd\"
1.50624 -+ $opt_silent || {
1.50625 -+ func_quote_for_expand "$cmd"
1.50626 -+ eval "func_echo $func_quote_for_expand_result"
1.50627 -+ }
1.50628 -+ $opt_dry_run || eval "$cmd" || {
1.50629 -+ lt_exit=$?
1.50630 -+
1.50631 -+ # Restore the uninstalled library and exit
1.50632 -+ if test "$mode" = relink; then
1.50633 -+ ( cd "$output_objdir" && \
1.50634 -+ $RM "${realname}T" && \
1.50635 -+ $MV "${realname}U" "$realname" )
1.50636 -+ fi
1.50637 -+
1.50638 -+ exit $lt_exit
1.50639 -+ }
1.50640 -+ done
1.50641 -+ IFS="$save_ifs"
1.50642 -+
1.50643 -+ # Restore the uninstalled library and exit
1.50644 -+ if test "$mode" = relink; then
1.50645 -+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
1.50646 -+
1.50647 -+ if test -n "$convenience"; then
1.50648 -+ if test -z "$whole_archive_flag_spec"; then
1.50649 -+ func_show_eval '${RM}r "$gentop"'
1.50650 -+ fi
1.50651 -+ fi
1.50652 -+
1.50653 -+ exit $EXIT_SUCCESS
1.50654 -+ fi
1.50655 -+
1.50656 -+ # Create links to the real library.
1.50657 -+ for linkname in $linknames; do
1.50658 -+ if test "$realname" != "$linkname"; then
1.50659 -+ func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
1.50660 -+ fi
1.50661 -+ done
1.50662 -+
1.50663 -+ # If -module or -export-dynamic was specified, set the dlname.
1.50664 -+ if test "$module" = yes || test "$export_dynamic" = yes; then
1.50665 -+ # On all known operating systems, these are identical.
1.50666 -+ dlname="$soname"
1.50667 -+ fi
1.50668 -+ fi
1.50669 -+ ;;
1.50670 -+
1.50671 -+ obj)
1.50672 -+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1.50673 -+ func_warning "\`-dlopen' is ignored for objects"
1.50674 -+ fi
1.50675 -+
1.50676 -+ test -n "$deplibs" && \
1.50677 -+ func_warning "\`-l' and \`-L' are ignored for objects"
1.50678 -+
1.50679 -+ test -n "$rpath" && \
1.50680 -+ func_warning "\`-rpath' is ignored for objects"
1.50681 -+
1.50682 -+ test -n "$xrpath" && \
1.50683 -+ func_warning "\`-R' is ignored for objects"
1.50684 -+
1.50685 -+ test -n "$vinfo" && \
1.50686 -+ func_warning "\`-version-info' is ignored for objects"
1.50687 -+
1.50688 -+ test -n "$release" && \
1.50689 -+ func_warning "\`-release' is ignored for objects"
1.50690 -+
1.50691 -+ case $output in
1.50692 -+ *.lo)
1.50693 -+ test -n "$objs$old_deplibs" && \
1.50694 -+ func_fatal_error "cannot build library object \`$output' from non-libtool objects"
1.50695 -+
1.50696 -+ libobj=$output
1.50697 -+ func_lo2o "$libobj"
1.50698 -+ obj=$func_lo2o_result
1.50699 -+ ;;
1.50700 -+ *)
1.50701 -+ libobj=
1.50702 -+ obj="$output"
1.50703 -+ ;;
1.50704 -+ esac
1.50705 -+
1.50706 -+ # Delete the old objects.
1.50707 -+ $opt_dry_run || $RM $obj $libobj
1.50708 -+
1.50709 -+ # Objects from convenience libraries. This assumes
1.50710 -+ # single-version convenience libraries. Whenever we create
1.50711 -+ # different ones for PIC/non-PIC, this we'll have to duplicate
1.50712 -+ # the extraction.
1.50713 -+ reload_conv_objs=
1.50714 -+ gentop=
1.50715 -+ # reload_cmds runs $LD directly, so let us get rid of
1.50716 -+ # -Wl from whole_archive_flag_spec and hope we can get by with
1.50717 -+ # turning comma into space..
1.50718 -+ wl=
1.50719 -+
1.50720 -+ if test -n "$convenience"; then
1.50721 -+ if test -n "$whole_archive_flag_spec"; then
1.50722 -+ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
1.50723 -+ reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
1.50724 -+ else
1.50725 -+ gentop="$output_objdir/${obj}x"
1.50726 -+ generated="$generated $gentop"
1.50727 -+
1.50728 -+ func_extract_archives $gentop $convenience
1.50729 -+ reload_conv_objs="$reload_objs $func_extract_archives_result"
1.50730 -+ fi
1.50731 -+ fi
1.50732 -+
1.50733 -+ # Create the old-style object.
1.50734 -+ reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
1.50735 -+
1.50736 -+ output="$obj"
1.50737 -+ func_execute_cmds "$reload_cmds" 'exit $?'
1.50738 -+
1.50739 -+ # Exit if we aren't doing a library object file.
1.50740 -+ if test -z "$libobj"; then
1.50741 -+ if test -n "$gentop"; then
1.50742 -+ func_show_eval '${RM}r "$gentop"'
1.50743 -+ fi
1.50744 -+
1.50745 -+ exit $EXIT_SUCCESS
1.50746 -+ fi
1.50747 -+
1.50748 -+ if test "$build_libtool_libs" != yes; then
1.50749 -+ if test -n "$gentop"; then
1.50750 -+ func_show_eval '${RM}r "$gentop"'
1.50751 -+ fi
1.50752 -+
1.50753 -+ # Create an invalid libtool object if no PIC, so that we don't
1.50754 -+ # accidentally link it into a program.
1.50755 -+ # $show "echo timestamp > $libobj"
1.50756 -+ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
1.50757 -+ exit $EXIT_SUCCESS
1.50758 -+ fi
1.50759 -+
1.50760 -+ if test -n "$pic_flag" || test "$pic_mode" != default; then
1.50761 -+ # Only do commands if we really have different PIC objects.
1.50762 -+ reload_objs="$libobjs $reload_conv_objs"
1.50763 -+ output="$libobj"
1.50764 -+ func_execute_cmds "$reload_cmds" 'exit $?'
1.50765 -+ fi
1.50766 -+
1.50767 -+ if test -n "$gentop"; then
1.50768 -+ func_show_eval '${RM}r "$gentop"'
1.50769 -+ fi
1.50770 -+
1.50771 -+ exit $EXIT_SUCCESS
1.50772 -+ ;;
1.50773 -+
1.50774 -+ prog)
1.50775 -+ case $host in
1.50776 -+ *cygwin*) func_stripname '' '.exe' "$output"
1.50777 -+ output=$func_stripname_result.exe;;
1.50778 -+ esac
1.50779 -+ test -n "$vinfo" && \
1.50780 -+ func_warning "\`-version-info' is ignored for programs"
1.50781 -+
1.50782 -+ test -n "$release" && \
1.50783 -+ func_warning "\`-release' is ignored for programs"
1.50784 -+
1.50785 -+ test "$preload" = yes \
1.50786 -+ && test "$dlopen_support" = unknown \
1.50787 -+ && test "$dlopen_self" = unknown \
1.50788 -+ && test "$dlopen_self_static" = unknown && \
1.50789 -+ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
1.50790 -+
1.50791 -+ case $host in
1.50792 -+ *-*-rhapsody* | *-*-darwin1.[012])
1.50793 -+ # On Rhapsody replace the C library is the System framework
1.50794 -+ compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
1.50795 -+ finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
1.50796 -+ ;;
1.50797 -+ esac
1.50798 -+
1.50799 -+ case $host in
1.50800 -+ *-*-darwin*)
1.50801 -+ # Don't allow lazy linking, it breaks C++ global constructors
1.50802 -+ # But is supposedly fixed on 10.4 or later (yay!).
1.50803 -+ if test "$tagname" = CXX ; then
1.50804 -+ case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
1.50805 -+ 10.[0123])
1.50806 -+ compile_command="$compile_command ${wl}-bind_at_load"
1.50807 -+ finalize_command="$finalize_command ${wl}-bind_at_load"
1.50808 -+ ;;
1.50809 -+ esac
1.50810 -+ fi
1.50811 -+ # Time to change all our "foo.ltframework" stuff back to "-framework foo"
1.50812 -+ compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
1.50813 -+ finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
1.50814 -+ ;;
1.50815 -+ esac
1.50816 -+
1.50817 -+
1.50818 -+ # move library search paths that coincide with paths to not yet
1.50819 -+ # installed libraries to the beginning of the library search list
1.50820 -+ new_libs=
1.50821 -+ for path in $notinst_path; do
1.50822 -+ case " $new_libs " in
1.50823 -+ *" -L$path/$objdir "*) ;;
1.50824 -+ *)
1.50825 -+ case " $compile_deplibs " in
1.50826 -+ *" -L$path/$objdir "*)
1.50827 -+ new_libs="$new_libs -L$path/$objdir" ;;
1.50828 -+ esac
1.50829 -+ ;;
1.50830 -+ esac
1.50831 -+ done
1.50832 -+ for deplib in $compile_deplibs; do
1.50833 -+ case $deplib in
1.50834 -+ -L*)
1.50835 -+ case " $new_libs " in
1.50836 -+ *" $deplib "*) ;;
1.50837 -+ *) new_libs="$new_libs $deplib" ;;
1.50838 -+ esac
1.50839 -+ ;;
1.50840 -+ *) new_libs="$new_libs $deplib" ;;
1.50841 -+ esac
1.50842 -+ done
1.50843 -+ compile_deplibs="$new_libs"
1.50844 -+
1.50845 -+
1.50846 -+ compile_command="$compile_command $compile_deplibs"
1.50847 -+ finalize_command="$finalize_command $finalize_deplibs"
1.50848 -+
1.50849 -+ if test -n "$rpath$xrpath"; then
1.50850 -+ # If the user specified any rpath flags, then add them.
1.50851 -+ for libdir in $rpath $xrpath; do
1.50852 -+ # This is the magic to use -rpath.
1.50853 -+ case "$finalize_rpath " in
1.50854 -+ *" $libdir "*) ;;
1.50855 -+ *) finalize_rpath="$finalize_rpath $libdir" ;;
1.50856 -+ esac
1.50857 -+ done
1.50858 -+ fi
1.50859 -+
1.50860 -+ # Now hardcode the library paths
1.50861 -+ rpath=
1.50862 -+ hardcode_libdirs=
1.50863 -+ for libdir in $compile_rpath $finalize_rpath; do
1.50864 -+ if test -n "$hardcode_libdir_flag_spec"; then
1.50865 -+ if test -n "$hardcode_libdir_separator"; then
1.50866 -+ if test -z "$hardcode_libdirs"; then
1.50867 -+ hardcode_libdirs="$libdir"
1.50868 -+ else
1.50869 -+ # Just accumulate the unique libdirs.
1.50870 -+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
1.50871 -+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
1.50872 -+ ;;
1.50873 -+ *)
1.50874 -+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
1.50875 -+ ;;
1.50876 -+ esac
1.50877 -+ fi
1.50878 -+ else
1.50879 -+ eval flag=\"$hardcode_libdir_flag_spec\"
1.50880 -+ rpath="$rpath $flag"
1.50881 -+ fi
1.50882 -+ elif test -n "$runpath_var"; then
1.50883 -+ case "$perm_rpath " in
1.50884 -+ *" $libdir "*) ;;
1.50885 -+ *) perm_rpath="$perm_rpath $libdir" ;;
1.50886 -+ esac
1.50887 -+ fi
1.50888 -+ case $host in
1.50889 -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1.50890 -+ testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
1.50891 -+ case :$dllsearchpath: in
1.50892 -+ *":$libdir:"*) ;;
1.50893 -+ *) dllsearchpath="$dllsearchpath:$libdir";;
1.50894 -+ esac
1.50895 -+ case :$dllsearchpath: in
1.50896 -+ *":$testbindir:"*) ;;
1.50897 -+ *) dllsearchpath="$dllsearchpath:$testbindir";;
1.50898 -+ esac
1.50899 -+ ;;
1.50900 -+ esac
1.50901 -+ done
1.50902 -+ # Substitute the hardcoded libdirs into the rpath.
1.50903 -+ if test -n "$hardcode_libdir_separator" &&
1.50904 -+ test -n "$hardcode_libdirs"; then
1.50905 -+ libdir="$hardcode_libdirs"
1.50906 -+ eval rpath=\" $hardcode_libdir_flag_spec\"
1.50907 -+ fi
1.50908 -+ compile_rpath="$rpath"
1.50909 -+
1.50910 -+ rpath=
1.50911 -+ hardcode_libdirs=
1.50912 -+ for libdir in $finalize_rpath; do
1.50913 -+ if test -n "$hardcode_libdir_flag_spec"; then
1.50914 -+ if test -n "$hardcode_libdir_separator"; then
1.50915 -+ if test -z "$hardcode_libdirs"; then
1.50916 -+ hardcode_libdirs="$libdir"
1.50917 -+ else
1.50918 -+ # Just accumulate the unique libdirs.
1.50919 -+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
1.50920 -+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
1.50921 -+ ;;
1.50922 -+ *)
1.50923 -+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
1.50924 -+ ;;
1.50925 -+ esac
1.50926 -+ fi
1.50927 -+ else
1.50928 -+ eval flag=\"$hardcode_libdir_flag_spec\"
1.50929 -+ rpath="$rpath $flag"
1.50930 -+ fi
1.50931 -+ elif test -n "$runpath_var"; then
1.50932 -+ case "$finalize_perm_rpath " in
1.50933 -+ *" $libdir "*) ;;
1.50934 -+ *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
1.50935 -+ esac
1.50936 -+ fi
1.50937 -+ done
1.50938 -+ # Substitute the hardcoded libdirs into the rpath.
1.50939 -+ if test -n "$hardcode_libdir_separator" &&
1.50940 -+ test -n "$hardcode_libdirs"; then
1.50941 -+ libdir="$hardcode_libdirs"
1.50942 -+ eval rpath=\" $hardcode_libdir_flag_spec\"
1.50943 -+ fi
1.50944 -+ finalize_rpath="$rpath"
1.50945 -+
1.50946 -+ if test -n "$libobjs" && test "$build_old_libs" = yes; then
1.50947 -+ # Transform all the library objects into standard objects.
1.50948 -+ compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
1.50949 -+ finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
1.50950 -+ fi
1.50951 -+
1.50952 -+ func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
1.50953 -+
1.50954 -+ # template prelinking step
1.50955 -+ if test -n "$prelink_cmds"; then
1.50956 -+ func_execute_cmds "$prelink_cmds" 'exit $?'
1.50957 -+ fi
1.50958 -+
1.50959 -+ wrappers_required=yes
1.50960 -+ case $host in
1.50961 -+ *cygwin* | *mingw* )
1.50962 -+ if test "$build_libtool_libs" != yes; then
1.50963 -+ wrappers_required=no
1.50964 -+ fi
1.50965 -+ ;;
1.50966 -+ *)
1.50967 -+ if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
1.50968 -+ wrappers_required=no
1.50969 -+ fi
1.50970 -+ ;;
1.50971 -+ esac
1.50972 -+ if test "$wrappers_required" = no; then
1.50973 -+ # Replace the output file specification.
1.50974 -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
1.50975 -+ link_command="$compile_command$compile_rpath"
1.50976 -+
1.50977 -+ # We have no uninstalled library dependencies, so finalize right now.
1.50978 -+ exit_status=0
1.50979 -+ func_show_eval "$link_command" 'exit_status=$?'
1.50980 -+
1.50981 -+ # Delete the generated files.
1.50982 -+ if test -f "$output_objdir/${outputname}S.${objext}"; then
1.50983 -+ func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
1.50984 -+ fi
1.50985 -+
1.50986 -+ exit $exit_status
1.50987 -+ fi
1.50988 -+
1.50989 -+ if test -n "$compile_shlibpath$finalize_shlibpath"; then
1.50990 -+ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
1.50991 -+ fi
1.50992 -+ if test -n "$finalize_shlibpath"; then
1.50993 -+ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
1.50994 -+ fi
1.50995 -+
1.50996 -+ compile_var=
1.50997 -+ finalize_var=
1.50998 -+ if test -n "$runpath_var"; then
1.50999 -+ if test -n "$perm_rpath"; then
1.51000 -+ # We should set the runpath_var.
1.51001 -+ rpath=
1.51002 -+ for dir in $perm_rpath; do
1.51003 -+ rpath="$rpath$dir:"
1.51004 -+ done
1.51005 -+ compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
1.51006 -+ fi
1.51007 -+ if test -n "$finalize_perm_rpath"; then
1.51008 -+ # We should set the runpath_var.
1.51009 -+ rpath=
1.51010 -+ for dir in $finalize_perm_rpath; do
1.51011 -+ rpath="$rpath$dir:"
1.51012 -+ done
1.51013 -+ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
1.51014 -+ fi
1.51015 -+ fi
1.51016 -+
1.51017 -+ if test "$no_install" = yes; then
1.51018 -+ # We don't need to create a wrapper script.
1.51019 -+ link_command="$compile_var$compile_command$compile_rpath"
1.51020 -+ # Replace the output file specification.
1.51021 -+ link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
1.51022 -+ # Delete the old output file.
1.51023 -+ $opt_dry_run || $RM $output
1.51024 -+ # Link the executable and exit
1.51025 -+ func_show_eval "$link_command" 'exit $?'
1.51026 -+ exit $EXIT_SUCCESS
1.51027 -+ fi
1.51028 -+
1.51029 -+ if test "$hardcode_action" = relink; then
1.51030 -+ # Fast installation is not supported
1.51031 -+ link_command="$compile_var$compile_command$compile_rpath"
1.51032 -+ relink_command="$finalize_var$finalize_command$finalize_rpath"
1.51033 -+
1.51034 -+ func_warning "this platform does not like uninstalled shared libraries"
1.51035 -+ func_warning "\`$output' will be relinked during installation"
1.51036 -+ else
1.51037 -+ if test "$fast_install" != no; then
1.51038 -+ link_command="$finalize_var$compile_command$finalize_rpath"
1.51039 -+ if test "$fast_install" = yes; then
1.51040 -+ relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
1.51041 -+ else
1.51042 -+ # fast_install is set to needless
1.51043 -+ relink_command=
1.51044 -+ fi
1.51045 -+ else
1.51046 -+ link_command="$compile_var$compile_command$compile_rpath"
1.51047 -+ relink_command="$finalize_var$finalize_command$finalize_rpath"
1.51048 -+ fi
1.51049 -+ fi
1.51050 -+
1.51051 -+ # Replace the output file specification.
1.51052 -+ link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
1.51053 -+
1.51054 -+ # Delete the old output files.
1.51055 -+ $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
1.51056 -+
1.51057 -+ func_show_eval "$link_command" 'exit $?'
1.51058 -+
1.51059 -+ # Now create the wrapper script.
1.51060 -+ func_echo "creating $output"
1.51061 -+
1.51062 -+ # Quote the relink command for shipping.
1.51063 -+ if test -n "$relink_command"; then
1.51064 -+ # Preserve any variables that may affect compiler behavior
1.51065 -+ for var in $variables_saved_for_relink; do
1.51066 -+ if eval test -z \"\${$var+set}\"; then
1.51067 -+ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
1.51068 -+ elif eval var_value=\$$var; test -z "$var_value"; then
1.51069 -+ relink_command="$var=; export $var; $relink_command"
1.51070 -+ else
1.51071 -+ func_quote_for_eval "$var_value"
1.51072 -+ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
1.51073 -+ fi
1.51074 -+ done
1.51075 -+ relink_command="(cd `pwd`; $relink_command)"
1.51076 -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
1.51077 -+ fi
1.51078 -+
1.51079 -+ # Quote $ECHO for shipping.
1.51080 -+ if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
1.51081 -+ case $progpath in
1.51082 -+ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
1.51083 -+ *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
1.51084 -+ esac
1.51085 -+ qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
1.51086 -+ else
1.51087 -+ qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
1.51088 -+ fi
1.51089 -+
1.51090 -+ # Only actually do things if not in dry run mode.
1.51091 -+ $opt_dry_run || {
1.51092 -+ # win32 will think the script is a binary if it has
1.51093 -+ # a .exe suffix, so we strip it off here.
1.51094 -+ case $output in
1.51095 -+ *.exe) func_stripname '' '.exe' "$output"
1.51096 -+ output=$func_stripname_result ;;
1.51097 -+ esac
1.51098 -+ # test for cygwin because mv fails w/o .exe extensions
1.51099 -+ case $host in
1.51100 -+ *cygwin*)
1.51101 -+ exeext=.exe
1.51102 -+ func_stripname '' '.exe' "$outputname"
1.51103 -+ outputname=$func_stripname_result ;;
1.51104 -+ *) exeext= ;;
1.51105 -+ esac
1.51106 -+ case $host in
1.51107 -+ *cygwin* | *mingw* )
1.51108 -+ output_name=`basename $output`
1.51109 -+ output_path=`dirname $output`
1.51110 -+ cwrappersource="$output_path/$objdir/lt-$output_name.c"
1.51111 -+ cwrapper="$output_path/$output_name.exe"
1.51112 -+ $RM $cwrappersource $cwrapper
1.51113 -+ trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
1.51114 -+
1.51115 -+ cat > $cwrappersource <<EOF
1.51116 -+
1.51117 -+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
1.51118 -+ Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
1.51119 -+
1.51120 -+ The $output program cannot be directly executed until all the libtool
1.51121 -+ libraries that it depends on are installed.
1.51122 -+
1.51123 -+ This wrapper executable should never be moved out of the build directory.
1.51124 -+ If it is, it will not operate correctly.
1.51125 -+
1.51126 -+ Currently, it simply execs the wrapper *script* "/bin/sh $output",
1.51127 -+ but could eventually absorb all of the scripts functionality and
1.51128 -+ exec $objdir/$outputname directly.
1.51129 -+*/
1.51130 -+EOF
1.51131 -+ cat >> $cwrappersource<<"EOF"
1.51132 -+#include <stdio.h>
1.51133 -+#include <stdlib.h>
1.51134 -+#include <unistd.h>
1.51135 -+#include <malloc.h>
1.51136 -+#include <stdarg.h>
1.51137 -+#include <assert.h>
1.51138 -+#include <string.h>
1.51139 -+#include <ctype.h>
1.51140 -+#include <sys/stat.h>
1.51141 -+
1.51142 -+#if defined(PATH_MAX)
1.51143 -+# define LT_PATHMAX PATH_MAX
1.51144 -+#elif defined(MAXPATHLEN)
1.51145 -+# define LT_PATHMAX MAXPATHLEN
1.51146 -+#else
1.51147 -+# define LT_PATHMAX 1024
1.51148 -+#endif
1.51149 -+
1.51150 -+#ifndef DIR_SEPARATOR
1.51151 -+# define DIR_SEPARATOR '/'
1.51152 -+# define PATH_SEPARATOR ':'
1.51153 -+#endif
1.51154 -+
1.51155 -+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
1.51156 -+ defined (__OS2__)
1.51157 -+# define HAVE_DOS_BASED_FILE_SYSTEM
1.51158 -+# ifndef DIR_SEPARATOR_2
1.51159 -+# define DIR_SEPARATOR_2 '\\'
1.51160 -+# endif
1.51161 -+# ifndef PATH_SEPARATOR_2
1.51162 -+# define PATH_SEPARATOR_2 ';'
1.51163 -+# endif
1.51164 -+#endif
1.51165 -+
1.51166 -+#ifndef DIR_SEPARATOR_2
1.51167 -+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
1.51168 -+#else /* DIR_SEPARATOR_2 */
1.51169 -+# define IS_DIR_SEPARATOR(ch) \
1.51170 -+ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
1.51171 -+#endif /* DIR_SEPARATOR_2 */
1.51172 -+
1.51173 -+#ifndef PATH_SEPARATOR_2
1.51174 -+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
1.51175 -+#else /* PATH_SEPARATOR_2 */
1.51176 -+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
1.51177 -+#endif /* PATH_SEPARATOR_2 */
1.51178 -+
1.51179 -+#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
1.51180 -+#define XFREE(stale) do { \
1.51181 -+ if (stale) { free ((void *) stale); stale = 0; } \
1.51182 -+} while (0)
1.51183 -+
1.51184 -+/* -DDEBUG is fairly common in CFLAGS. */
1.51185 -+#undef DEBUG
1.51186 -+#if defined DEBUGWRAPPER
1.51187 -+# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
1.51188 -+#else
1.51189 -+# define DEBUG(format, ...)
1.51190 -+#endif
1.51191 -+
1.51192 -+const char *program_name = NULL;
1.51193 -+
1.51194 -+void * xmalloc (size_t num);
1.51195 -+char * xstrdup (const char *string);
1.51196 -+const char * base_name (const char *name);
1.51197 -+char * find_executable(const char *wrapper);
1.51198 -+int check_executable(const char *path);
1.51199 -+char * strendzap(char *str, const char *pat);
1.51200 -+void lt_fatal (const char *message, ...);
1.51201 -+
1.51202 -+int
1.51203 -+main (int argc, char *argv[])
1.51204 -+{
1.51205 -+ char **newargz;
1.51206 -+ int i;
1.51207 -+
1.51208 -+ program_name = (char *) xstrdup (base_name (argv[0]));
1.51209 -+ DEBUG("(main) argv[0] : %s\n",argv[0]);
1.51210 -+ DEBUG("(main) program_name : %s\n",program_name);
1.51211 -+ newargz = XMALLOC(char *, argc+2);
1.51212 -+EOF
1.51213 -+
1.51214 -+ cat >> $cwrappersource <<EOF
1.51215 -+ newargz[0] = (char *) xstrdup("$SHELL");
1.51216 -+EOF
1.51217 -+
1.51218 -+ cat >> $cwrappersource <<"EOF"
1.51219 -+ newargz[1] = find_executable(argv[0]);
1.51220 -+ if (newargz[1] == NULL)
1.51221 -+ lt_fatal("Couldn't find %s", argv[0]);
1.51222 -+ DEBUG("(main) found exe at : %s\n",newargz[1]);
1.51223 -+ /* we know the script has the same name, without the .exe */
1.51224 -+ /* so make sure newargz[1] doesn't end in .exe */
1.51225 -+ strendzap(newargz[1],".exe");
1.51226 -+ for (i = 1; i < argc; i++)
1.51227 -+ newargz[i+1] = xstrdup(argv[i]);
1.51228 -+ newargz[argc+1] = NULL;
1.51229 -+
1.51230 -+ for (i=0; i<argc+1; i++)
1.51231 -+ {
1.51232 -+ DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]);
1.51233 -+ ;
1.51234 -+ }
1.51235 -+
1.51236 -+EOF
1.51237 -+
1.51238 -+ case $host_os in
1.51239 -+ mingw*)
1.51240 -+ cat >> $cwrappersource <<EOF
1.51241 -+ execv("$SHELL",(char const **)newargz);
1.51242 -+EOF
1.51243 -+ ;;
1.51244 -+ *)
1.51245 -+ cat >> $cwrappersource <<EOF
1.51246 -+ execv("$SHELL",newargz);
1.51247 -+EOF
1.51248 -+ ;;
1.51249 -+ esac
1.51250 -+
1.51251 -+ cat >> $cwrappersource <<"EOF"
1.51252 -+ return 127;
1.51253 -+}
1.51254 -+
1.51255 -+void *
1.51256 -+xmalloc (size_t num)
1.51257 -+{
1.51258 -+ void * p = (void *) malloc (num);
1.51259 -+ if (!p)
1.51260 -+ lt_fatal ("Memory exhausted");
1.51261 -+
1.51262 -+ return p;
1.51263 -+}
1.51264 -+
1.51265 -+char *
1.51266 -+xstrdup (const char *string)
1.51267 -+{
1.51268 -+ return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
1.51269 -+;
1.51270 -+}
1.51271 -+
1.51272 -+const char *
1.51273 -+base_name (const char *name)
1.51274 -+{
1.51275 -+ const char *base;
1.51276 -+
1.51277 -+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
1.51278 -+ /* Skip over the disk name in MSDOS pathnames. */
1.51279 -+ if (isalpha ((unsigned char)name[0]) && name[1] == ':')
1.51280 -+ name += 2;
1.51281 -+#endif
1.51282 -+
1.51283 -+ for (base = name; *name; name++)
1.51284 -+ if (IS_DIR_SEPARATOR (*name))
1.51285 -+ base = name + 1;
1.51286 -+ return base;
1.51287 -+}
1.51288 -+
1.51289 -+int
1.51290 -+check_executable(const char * path)
1.51291 -+{
1.51292 -+ struct stat st;
1.51293 -+
1.51294 -+ DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
1.51295 -+ if ((!path) || (!*path))
1.51296 -+ return 0;
1.51297 -+
1.51298 -+ if ((stat (path, &st) >= 0) &&
1.51299 -+ (
1.51300 -+ /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
1.51301 -+#if defined (S_IXOTH)
1.51302 -+ ((st.st_mode & S_IXOTH) == S_IXOTH) ||
1.51303 -+#endif
1.51304 -+#if defined (S_IXGRP)
1.51305 -+ ((st.st_mode & S_IXGRP) == S_IXGRP) ||
1.51306 -+#endif
1.51307 -+ ((st.st_mode & S_IXUSR) == S_IXUSR))
1.51308 -+ )
1.51309 -+ return 1;
1.51310 -+ else
1.51311 -+ return 0;
1.51312 -+}
1.51313 -+
1.51314 -+/* Searches for the full path of the wrapper. Returns
1.51315 -+ newly allocated full path name if found, NULL otherwise */
1.51316 -+char *
1.51317 -+find_executable (const char* wrapper)
1.51318 -+{
1.51319 -+ int has_slash = 0;
1.51320 -+ const char* p;
1.51321 -+ const char* p_next;
1.51322 -+ /* static buffer for getcwd */
1.51323 -+ char tmp[LT_PATHMAX + 1];
1.51324 -+ int tmp_len;
1.51325 -+ char* concat_name;
1.51326 -+
1.51327 -+ DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
1.51328 -+
1.51329 -+ if ((wrapper == NULL) || (*wrapper == '\0'))
1.51330 -+ return NULL;
1.51331 -+
1.51332 -+ /* Absolute path? */
1.51333 -+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
1.51334 -+ if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
1.51335 -+ {
1.51336 -+ concat_name = xstrdup (wrapper);
1.51337 -+ if (check_executable(concat_name))
1.51338 -+ return concat_name;
1.51339 -+ XFREE(concat_name);
1.51340 -+ }
1.51341 -+ else
1.51342 -+ {
1.51343 -+#endif
1.51344 -+ if (IS_DIR_SEPARATOR (wrapper[0]))
1.51345 -+ {
1.51346 -+ concat_name = xstrdup (wrapper);
1.51347 -+ if (check_executable(concat_name))
1.51348 -+ return concat_name;
1.51349 -+ XFREE(concat_name);
1.51350 -+ }
1.51351 -+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
1.51352 -+ }
1.51353 -+#endif
1.51354 -+
1.51355 -+ for (p = wrapper; *p; p++)
1.51356 -+ if (*p == '/')
1.51357 -+ {
1.51358 -+ has_slash = 1;
1.51359 -+ break;
1.51360 -+ }
1.51361 -+ if (!has_slash)
1.51362 -+ {
1.51363 -+ /* no slashes; search PATH */
1.51364 -+ const char* path = getenv ("PATH");
1.51365 -+ if (path != NULL)
1.51366 -+ {
1.51367 -+ for (p = path; *p; p = p_next)
1.51368 -+ {
1.51369 -+ const char* q;
1.51370 -+ size_t p_len;
1.51371 -+ for (q = p; *q; q++)
1.51372 -+ if (IS_PATH_SEPARATOR(*q))
1.51373 -+ break;
1.51374 -+ p_len = q - p;
1.51375 -+ p_next = (*q == '\0' ? q : q + 1);
1.51376 -+ if (p_len == 0)
1.51377 -+ {
1.51378 -+ /* empty path: current directory */
1.51379 -+ if (getcwd (tmp, LT_PATHMAX) == NULL)
1.51380 -+ lt_fatal ("getcwd failed");
1.51381 -+ tmp_len = strlen(tmp);
1.51382 -+ concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
1.51383 -+ memcpy (concat_name, tmp, tmp_len);
1.51384 -+ concat_name[tmp_len] = '/';
1.51385 -+ strcpy (concat_name + tmp_len + 1, wrapper);
1.51386 -+ }
1.51387 -+ else
1.51388 -+ {
1.51389 -+ concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
1.51390 -+ memcpy (concat_name, p, p_len);
1.51391 -+ concat_name[p_len] = '/';
1.51392 -+ strcpy (concat_name + p_len + 1, wrapper);
1.51393 -+ }
1.51394 -+ if (check_executable(concat_name))
1.51395 -+ return concat_name;
1.51396 -+ XFREE(concat_name);
1.51397 -+ }
1.51398 -+ }
1.51399 -+ /* not found in PATH; assume curdir */
1.51400 -+ }
1.51401 -+ /* Relative path | not found in path: prepend cwd */
1.51402 -+ if (getcwd (tmp, LT_PATHMAX) == NULL)
1.51403 -+ lt_fatal ("getcwd failed");
1.51404 -+ tmp_len = strlen(tmp);
1.51405 -+ concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
1.51406 -+ memcpy (concat_name, tmp, tmp_len);
1.51407 -+ concat_name[tmp_len] = '/';
1.51408 -+ strcpy (concat_name + tmp_len + 1, wrapper);
1.51409 -+
1.51410 -+ if (check_executable(concat_name))
1.51411 -+ return concat_name;
1.51412 -+ XFREE(concat_name);
1.51413 -+ return NULL;
1.51414 -+}
1.51415 -+
1.51416 -+char *
1.51417 -+strendzap(char *str, const char *pat)
1.51418 -+{
1.51419 -+ size_t len, patlen;
1.51420 -+
1.51421 -+ assert(str != NULL);
1.51422 -+ assert(pat != NULL);
1.51423 -+
1.51424 -+ len = strlen(str);
1.51425 -+ patlen = strlen(pat);
1.51426 -+
1.51427 -+ if (patlen <= len)
1.51428 -+ {
1.51429 -+ str += len - patlen;
1.51430 -+ if (strcmp(str, pat) == 0)
1.51431 -+ *str = '\0';
1.51432 -+ }
1.51433 -+ return str;
1.51434 -+}
1.51435 -+
1.51436 -+static void
1.51437 -+lt_error_core (int exit_status, const char * mode,
1.51438 -+ const char * message, va_list ap)
1.51439 -+{
1.51440 -+ fprintf (stderr, "%s: %s: ", program_name, mode);
1.51441 -+ vfprintf (stderr, message, ap);
1.51442 -+ fprintf (stderr, ".\n");
1.51443 -+
1.51444 -+ if (exit_status >= 0)
1.51445 -+ exit (exit_status);
1.51446 -+}
1.51447 -+
1.51448 -+void
1.51449 -+lt_fatal (const char *message, ...)
1.51450 -+{
1.51451 -+ va_list ap;
1.51452 -+ va_start (ap, message);
1.51453 -+ lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
1.51454 -+ va_end (ap);
1.51455 -+}
1.51456 -+EOF
1.51457 -+ # we should really use a build-platform specific compiler
1.51458 -+ # here, but OTOH, the wrappers (shell script and this C one)
1.51459 -+ # are only useful if you want to execute the "real" binary.
1.51460 -+ # Since the "real" binary is built for $host, then this
1.51461 -+ # wrapper might as well be built for $host, too.
1.51462 -+ $opt_dry_run || $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
1.51463 -+ ;;
1.51464 -+ esac
1.51465 -+ $RM $output
1.51466 -+ trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
1.51467 -+
1.51468 -+ $ECHO > $output "\
1.51469 -+#! $SHELL
1.51470 -+
1.51471 -+# $output - temporary wrapper script for $objdir/$outputname
1.51472 -+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
1.51473 -+#
1.51474 -+# The $output program cannot be directly executed until all the libtool
1.51475 -+# libraries that it depends on are installed.
1.51476 -+#
1.51477 -+# This wrapper script should never be moved out of the build directory.
1.51478 -+# If it is, it will not operate correctly.
1.51479 -+
1.51480 -+# Sed substitution that helps us do robust quoting. It backslashifies
1.51481 -+# metacharacters that are still active within double-quoted strings.
1.51482 -+Xsed='${SED} -e 1s/^X//'
1.51483 -+sed_quote_subst='$sed_quote_subst'
1.51484 -+
1.51485 -+# Be Bourne compatible
1.51486 -+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
1.51487 -+ emulate sh
1.51488 -+ NULLCMD=:
1.51489 -+ # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
1.51490 -+ # is contrary to our usage. Disable this feature.
1.51491 -+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
1.51492 -+ setopt NO_GLOB_SUBST
1.51493 -+else
1.51494 -+ case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
1.51495 -+fi
1.51496 -+BIN_SH=xpg4; export BIN_SH # for Tru64
1.51497 -+DUALCASE=1; export DUALCASE # for MKS sh
1.51498 -+
1.51499 -+# The HP-UX ksh and POSIX shell print the target directory to stdout
1.51500 -+# if CDPATH is set.
1.51501 -+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
1.51502 -+
1.51503 -+relink_command=\"$relink_command\"
1.51504 -+
1.51505 -+# This environment variable determines our operation mode.
1.51506 -+if test \"\$libtool_install_magic\" = \"$magic\"; then
1.51507 -+ # install mode needs the following variables:
1.51508 -+ generated_by_libtool_version='$macro_version'
1.51509 -+ notinst_deplibs='$notinst_deplibs'
1.51510 -+else
1.51511 -+ # When we are sourced in execute mode, \$file and \$ECHO are already set.
1.51512 -+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
1.51513 -+ ECHO=\"$qecho\"
1.51514 -+ file=\"\$0\"
1.51515 -+ # Make sure echo works.
1.51516 -+ if test \"X\$1\" = X--no-reexec; then
1.51517 -+ # Discard the --no-reexec flag, and continue.
1.51518 -+ shift
1.51519 -+ elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
1.51520 -+ # Yippee, \$ECHO works!
1.51521 -+ :
1.51522 -+ else
1.51523 -+ # Restart under the correct shell, and then maybe \$ECHO will work.
1.51524 -+ exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
1.51525 -+ fi
1.51526 -+ fi\
1.51527 -+"
1.51528 -+ $ECHO >> $output "\
1.51529 -+
1.51530 -+ # Find the directory that this script lives in.
1.51531 -+ thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
1.51532 -+ test \"x\$thisdir\" = \"x\$file\" && thisdir=.
1.51533 -+
1.51534 -+ # Follow symbolic links until we get to the real thisdir.
1.51535 -+ file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
1.51536 -+ while test -n \"\$file\"; do
1.51537 -+ destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
1.51538 -+
1.51539 -+ # If there was a directory component, then change thisdir.
1.51540 -+ if test \"x\$destdir\" != \"x\$file\"; then
1.51541 -+ case \"\$destdir\" in
1.51542 -+ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
1.51543 -+ *) thisdir=\"\$thisdir/\$destdir\" ;;
1.51544 -+ esac
1.51545 -+ fi
1.51546 -+
1.51547 -+ file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
1.51548 -+ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
1.51549 -+ done
1.51550 -+
1.51551 -+ # Try to get the absolute directory name.
1.51552 -+ absdir=\`cd \"\$thisdir\" && pwd\`
1.51553 -+ test -n \"\$absdir\" && thisdir=\"\$absdir\"
1.51554 -+"
1.51555 -+
1.51556 -+ if test "$fast_install" = yes; then
1.51557 -+ $ECHO >> $output "\
1.51558 -+ program=lt-'$outputname'$exeext
1.51559 -+ progdir=\"\$thisdir/$objdir\"
1.51560 -+
1.51561 -+ if test ! -f \"\$progdir/\$program\" ||
1.51562 -+ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
1.51563 -+ test \"X\$file\" != \"X\$progdir/\$program\"; }; then
1.51564 -+
1.51565 -+ file=\"\$\$-\$program\"
1.51566 -+
1.51567 -+ if test ! -d \"\$progdir\"; then
1.51568 -+ $MKDIR \"\$progdir\"
1.51569 -+ else
1.51570 -+ $RM \"\$progdir/\$file\"
1.51571 -+ fi"
1.51572 -+
1.51573 -+ $ECHO >> $output "\
1.51574 -+
1.51575 -+ # relink executable if necessary
1.51576 -+ if test -n \"\$relink_command\"; then
1.51577 -+ if relink_command_output=\`eval \$relink_command 2>&1\`; then :
1.51578 -+ else
1.51579 -+ $ECHO \"\$relink_command_output\" >&2
1.51580 -+ $RM \"\$progdir/\$file\"
1.51581 -+ exit 1
1.51582 -+ fi
1.51583 -+ fi
1.51584 -+
1.51585 -+ $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
1.51586 -+ { $RM \"\$progdir/\$program\";
1.51587 -+ $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
1.51588 -+ $RM \"\$progdir/\$file\"
1.51589 -+ fi"
1.51590 -+ else
1.51591 -+ $ECHO >> $output "\
1.51592 -+ program='$outputname'
1.51593 -+ progdir=\"\$thisdir/$objdir\"
1.51594 -+"
1.51595 -+ fi
1.51596 -+
1.51597 -+ $ECHO >> $output "\
1.51598 -+
1.51599 -+ if test -f \"\$progdir/\$program\"; then"
1.51600 -+
1.51601 -+ # Export our shlibpath_var if we have one.
1.51602 -+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
1.51603 -+ $ECHO >> $output "\
1.51604 -+ # Add our own library path to $shlibpath_var
1.51605 -+ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
1.51606 -+
1.51607 -+ # Some systems cannot cope with colon-terminated $shlibpath_var
1.51608 -+ # The second colon is a workaround for a bug in BeOS R4 sed
1.51609 -+ $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
1.51610 -+
1.51611 -+ export $shlibpath_var
1.51612 -+"
1.51613 -+ fi
1.51614 -+
1.51615 -+ # fixup the dll searchpath if we need to.
1.51616 -+ if test -n "$dllsearchpath"; then
1.51617 -+ $ECHO >> $output "\
1.51618 -+ # Add the dll search path components to the executable PATH
1.51619 -+ PATH=$dllsearchpath:\$PATH
1.51620 -+"
1.51621 -+ fi
1.51622 -+
1.51623 -+ $ECHO >> $output "\
1.51624 -+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
1.51625 -+ # Run the actual program with our arguments.
1.51626 -+"
1.51627 -+ case $host in
1.51628 -+ # Backslashes separate directories on plain windows
1.51629 -+ *-*-mingw | *-*-os2*)
1.51630 -+ $ECHO >> $output "\
1.51631 -+ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
1.51632 -+"
1.51633 -+ ;;
1.51634 -+
1.51635 -+ *)
1.51636 -+ $ECHO >> $output "\
1.51637 -+ exec \"\$progdir/\$program\" \${1+\"\$@\"}
1.51638 -+"
1.51639 -+ ;;
1.51640 -+ esac
1.51641 -+ $ECHO >> $output "\
1.51642 -+ \$ECHO \"\$0: cannot exec \$program \$*\"
1.51643 -+ exit 1
1.51644 -+ fi
1.51645 -+ else
1.51646 -+ # The program doesn't exist.
1.51647 -+ \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
1.51648 -+ \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
1.51649 -+ $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
1.51650 -+ exit 1
1.51651 -+ fi
1.51652 -+fi\
1.51653 -+"
1.51654 -+ chmod +x $output
1.51655 -+ }
1.51656 -+ exit $EXIT_SUCCESS
1.51657 -+ ;;
1.51658 -+ esac
1.51659 -+
1.51660 -+ # See if we need to build an old-fashioned archive.
1.51661 -+ for oldlib in $oldlibs; do
1.51662 -+
1.51663 -+ if test "$build_libtool_libs" = convenience; then
1.51664 -+ oldobjs="$libobjs_save $symfileobj"
1.51665 -+ addlibs="$convenience"
1.51666 -+ build_libtool_libs=no
1.51667 -+ else
1.51668 -+ if test "$build_libtool_libs" = module; then
1.51669 -+ oldobjs="$libobjs_save"
1.51670 -+ build_libtool_libs=no
1.51671 -+ else
1.51672 -+ oldobjs="$old_deplibs $non_pic_objects"
1.51673 -+ if test "$preload" = yes && test -f "$symfileobj"; then
1.51674 -+ oldobjs="$oldobjs $symfileobj"
1.51675 -+ fi
1.51676 -+ fi
1.51677 -+ addlibs="$old_convenience"
1.51678 -+ fi
1.51679 -+
1.51680 -+ if test -n "$addlibs"; then
1.51681 -+ gentop="$output_objdir/${outputname}x"
1.51682 -+ generated="$generated $gentop"
1.51683 -+
1.51684 -+ func_extract_archives $gentop $addlibs
1.51685 -+ oldobjs="$oldobjs $func_extract_archives_result"
1.51686 -+ fi
1.51687 -+
1.51688 -+ # Do each command in the archive commands.
1.51689 -+ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
1.51690 -+ cmds=$old_archive_from_new_cmds
1.51691 -+ else
1.51692 -+
1.51693 -+ # Add any objects from preloaded convenience libraries
1.51694 -+ if test -n "$dlprefiles"; then
1.51695 -+ gentop="$output_objdir/${outputname}x"
1.51696 -+ generated="$generated $gentop"
1.51697 -+
1.51698 -+ func_extract_archives $gentop $dlprefiles
1.51699 -+ oldobjs="$oldobjs $func_extract_archives_result"
1.51700 -+ fi
1.51701 -+
1.51702 -+ # POSIX demands no paths to be encoded in archives. We have
1.51703 -+ # to avoid creating archives with duplicate basenames if we
1.51704 -+ # might have to extract them afterwards, e.g., when creating a
1.51705 -+ # static archive out of a convenience library, or when linking
1.51706 -+ # the entirety of a libtool archive into another (currently
1.51707 -+ # not supported by libtool).
1.51708 -+ if (for obj in $oldobjs
1.51709 -+ do
1.51710 -+ func_basename "$obj"
1.51711 -+ $ECHO "$func_basename_result"
1.51712 -+ done | sort | sort -uc >/dev/null 2>&1); then
1.51713 -+ :
1.51714 -+ else
1.51715 -+ $ECHO "copying selected object files to avoid basename conflicts..."
1.51716 -+ gentop="$output_objdir/${outputname}x"
1.51717 -+ generated="$generated $gentop"
1.51718 -+ func_mkdir_p "$gentop"
1.51719 -+ save_oldobjs=$oldobjs
1.51720 -+ oldobjs=
1.51721 -+ counter=1
1.51722 -+ for obj in $save_oldobjs
1.51723 -+ do
1.51724 -+ func_basename "$obj"
1.51725 -+ objbase="$func_basename_result"
1.51726 -+ case " $oldobjs " in
1.51727 -+ " ") oldobjs=$obj ;;
1.51728 -+ *[\ /]"$objbase "*)
1.51729 -+ while :; do
1.51730 -+ # Make sure we don't pick an alternate name that also
1.51731 -+ # overlaps.
1.51732 -+ newobj=lt$counter-$objbase
1.51733 -+ counter=`expr $counter + 1`
1.51734 -+ case " $oldobjs " in
1.51735 -+ *[\ /]"$newobj "*) ;;
1.51736 -+ *) if test ! -f "$gentop/$newobj"; then break; fi ;;
1.51737 -+ esac
1.51738 -+ done
1.51739 -+ func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
1.51740 -+ oldobjs="$oldobjs $gentop/$newobj"
1.51741 -+ ;;
1.51742 -+ *) oldobjs="$oldobjs $obj" ;;
1.51743 -+ esac
1.51744 -+ done
1.51745 -+ fi
1.51746 -+ eval cmds=\"$old_archive_cmds\"
1.51747 -+
1.51748 -+ if len=`expr "X$cmds" : ".*" 2>/dev/null` &&
1.51749 -+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
1.51750 -+ cmds=$old_archive_cmds
1.51751 -+ else
1.51752 -+ # the command line is too long to link in one step, link in parts
1.51753 -+ func_echo "using piecewise archive linking..."
1.51754 -+ save_RANLIB=$RANLIB
1.51755 -+ RANLIB=:
1.51756 -+ objlist=
1.51757 -+ concat_cmds=
1.51758 -+ save_oldobjs=$oldobjs
1.51759 -+ # Is there a better way of finding the last object in the list?
1.51760 -+ for obj in $save_oldobjs
1.51761 -+ do
1.51762 -+ last_oldobj=$obj
1.51763 -+ done
1.51764 -+ for obj in $save_oldobjs
1.51765 -+ do
1.51766 -+ oldobjs="$objlist $obj"
1.51767 -+ objlist="$objlist $obj"
1.51768 -+ eval test_cmds=\"$old_archive_cmds\"
1.51769 -+ if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
1.51770 -+ test "$len" -le "$max_cmd_len"; then
1.51771 -+ :
1.51772 -+ else
1.51773 -+ # the above command should be used before it gets too long
1.51774 -+ oldobjs=$objlist
1.51775 -+ if test "$obj" = "$last_oldobj" ; then
1.51776 -+ RANLIB=$save_RANLIB
1.51777 -+ fi
1.51778 -+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
1.51779 -+ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
1.51780 -+ objlist=
1.51781 -+ fi
1.51782 -+ done
1.51783 -+ RANLIB=$save_RANLIB
1.51784 -+ oldobjs=$objlist
1.51785 -+ if test "X$oldobjs" = "X" ; then
1.51786 -+ eval cmds=\"\$concat_cmds\"
1.51787 -+ else
1.51788 -+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
1.51789 -+ fi
1.51790 -+ fi
1.51791 -+ fi
1.51792 -+ func_execute_cmds "$cmds" 'exit $?'
1.51793 -+ done
1.51794 -+
1.51795 -+ test -n "$generated" && \
1.51796 -+ func_show_eval "${RM}r$generated"
1.51797 -+
1.51798 -+ # Now create the libtool archive.
1.51799 -+ case $output in
1.51800 -+ *.la)
1.51801 -+ old_library=
1.51802 -+ test "$build_old_libs" = yes && old_library="$libname.$libext"
1.51803 -+ func_echo "creating $output"
1.51804 -+
1.51805 -+ # Preserve any variables that may affect compiler behavior
1.51806 -+ for var in $variables_saved_for_relink; do
1.51807 -+ if eval test -z \"\${$var+set}\"; then
1.51808 -+ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
1.51809 -+ elif eval var_value=\$$var; test -z "$var_value"; then
1.51810 -+ relink_command="$var=; export $var; $relink_command"
1.51811 -+ else
1.51812 -+ func_quote_for_eval "$var_value"
1.51813 -+ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
1.51814 -+ fi
1.51815 -+ done
1.51816 -+ # Quote the link command for shipping.
1.51817 -+ relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
1.51818 -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
1.51819 -+ if test "$hardcode_automatic" = yes ; then
1.51820 -+ relink_command=
1.51821 -+ fi
1.51822 -+
1.51823 -+ # Only create the output if not a dry run.
1.51824 -+ $opt_dry_run || {
1.51825 -+ for installed in no yes; do
1.51826 -+ if test "$installed" = yes; then
1.51827 -+ if test -z "$install_libdir"; then
1.51828 -+ break
1.51829 -+ fi
1.51830 -+ output="$output_objdir/$outputname"i
1.51831 -+ # Replace all uninstalled libtool libraries with the installed ones
1.51832 -+ newdependency_libs=
1.51833 -+ for deplib in $dependency_libs; do
1.51834 -+ case $deplib in
1.51835 -+ *.la)
1.51836 -+ func_basename "$deplib"
1.51837 -+ name="$func_basename_result"
1.51838 -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
1.51839 -+ test -z "$libdir" && \
1.51840 -+ func_fatal_error "\`$deplib' is not a valid libtool archive"
1.51841 -+ newdependency_libs="$newdependency_libs $libdir/$name"
1.51842 -+ ;;
1.51843 -+ *) newdependency_libs="$newdependency_libs $deplib" ;;
1.51844 -+ esac
1.51845 -+ done
1.51846 -+ dependency_libs="$newdependency_libs"
1.51847 -+ newdlfiles=
1.51848 -+
1.51849 -+ for lib in $dlfiles; do
1.51850 -+ case $lib in
1.51851 -+ *.la)
1.51852 -+ func_basename "$lib"
1.51853 -+ name="$func_basename_result"
1.51854 -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
1.51855 -+ test -z "$libdir" && \
1.51856 -+ func_fatal_error "\`$lib' is not a valid libtool archive"
1.51857 -+ newdlfiles="$newdlfiles $libdir/$name"
1.51858 -+ ;;
1.51859 -+ *) newdlfiles="$newdlfiles $lib" ;;
1.51860 -+ esac
1.51861 -+ done
1.51862 -+ dlfiles="$newdlfiles"
1.51863 -+ newdlprefiles=
1.51864 -+ for lib in $dlprefiles; do
1.51865 -+ case $lib in
1.51866 -+ *.la)
1.51867 -+ # Only pass preopened files to the pseudo-archive (for
1.51868 -+ # eventual linking with the app. that links it) if we
1.51869 -+ # didn't already link the preopened objects directly into
1.51870 -+ # the library:
1.51871 -+ func_basename "$lib"
1.51872 -+ name="$func_basename_result"
1.51873 -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
1.51874 -+ test -z "$libdir" && \
1.51875 -+ func_fatal_error "\`$lib' is not a valid libtool archive"
1.51876 -+ newdlprefiles="$newdlprefiles $libdir/$name"
1.51877 -+ ;;
1.51878 -+ esac
1.51879 -+ done
1.51880 -+ dlprefiles="$newdlprefiles"
1.51881 -+ else
1.51882 -+ newdlfiles=
1.51883 -+ for lib in $dlfiles; do
1.51884 -+ case $lib in
1.51885 -+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
1.51886 -+ *) abs=`pwd`"/$lib" ;;
1.51887 -+ esac
1.51888 -+ newdlfiles="$newdlfiles $abs"
1.51889 -+ done
1.51890 -+ dlfiles="$newdlfiles"
1.51891 -+ newdlprefiles=
1.51892 -+ for lib in $dlprefiles; do
1.51893 -+ case $lib in
1.51894 -+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
1.51895 -+ *) abs=`pwd`"/$lib" ;;
1.51896 -+ esac
1.51897 -+ newdlprefiles="$newdlprefiles $abs"
1.51898 -+ done
1.51899 -+ dlprefiles="$newdlprefiles"
1.51900 -+ fi
1.51901 -+ $RM $output
1.51902 -+ # place dlname in correct position for cygwin
1.51903 -+ tdlname=$dlname
1.51904 -+ case $host,$output,$installed,$module,$dlname in
1.51905 -+ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
1.51906 -+ esac
1.51907 -+ $ECHO > $output "\
1.51908 -+# $outputname - a libtool library file
1.51909 -+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
1.51910 -+#
1.51911 -+# Please DO NOT delete this file!
1.51912 -+# It is necessary for linking the library.
1.51913 -+
1.51914 -+# The name that we can dlopen(3).
1.51915 -+dlname='$tdlname'
1.51916 -+
1.51917 -+# Names of this library.
1.51918 -+library_names='$library_names'
1.51919 -+
1.51920 -+# The name of the static archive.
1.51921 -+old_library='$old_library'
1.51922 -+
1.51923 -+# Linker flags that can not go in dependency_libs.
1.51924 -+inherited_linker_flags='$new_inherited_linker_flags'
1.51925 -+
1.51926 -+# Libraries that this one depends upon.
1.51927 -+dependency_libs='$dependency_libs'
1.51928 -+
1.51929 -+# Names of additional weak libraries provided by this library
1.51930 -+weak_library_names='$weak_libs'
1.51931 -+
1.51932 -+# Version information for $libname.
1.51933 -+current=$current
1.51934 -+age=$age
1.51935 -+revision=$revision
1.51936 -+
1.51937 -+# Is this an already installed library?
1.51938 -+installed=$installed
1.51939 -+
1.51940 -+# Should we warn about portability when linking against -modules?
1.51941 -+shouldnotlink=$module
1.51942 -+
1.51943 -+# Files to dlopen/dlpreopen
1.51944 -+dlopen='$dlfiles'
1.51945 -+dlpreopen='$dlprefiles'
1.51946 -+
1.51947 -+# Directory that this library needs to be installed in:
1.51948 -+libdir='$install_libdir'"
1.51949 -+ if test "$installed" = no && test "$need_relink" = yes; then
1.51950 -+ $ECHO >> $output "\
1.51951 -+relink_command=\"$relink_command\""
1.51952 -+ fi
1.51953 -+ done
1.51954 -+ }
1.51955 -+
1.51956 -+ # Do a symbolic link so that the libtool archive can be found in
1.51957 -+ # LD_LIBRARY_PATH before the program is installed.
1.51958 -+ func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
1.51959 -+ ;;
1.51960 -+ esac
1.51961 -+ exit $EXIT_SUCCESS
1.51962 -+}
1.51963 -+
1.51964 -+{ test "$mode" = link || test "$mode" = relink; } &&
1.51965 -+ func_mode_link ${1+"$@"}
1.51966 -+
1.51967 -+
1.51968 -+# func_mode_uninstall arg...
1.51969 -+func_mode_uninstall ()
1.51970 -+{
1.51971 -+ $opt_debug
1.51972 -+ RM="$nonopt"
1.51973 -+ files=
1.51974 -+ rmforce=
1.51975 -+ exit_status=0
1.51976 -+
1.51977 -+ # This variable tells wrapper scripts just to set variables rather
1.51978 -+ # than running their programs.
1.51979 -+ libtool_install_magic="$magic"
1.51980 -+
1.51981 -+ for arg
1.51982 -+ do
1.51983 -+ case $arg in
1.51984 -+ -f) RM="$RM $arg"; rmforce=yes ;;
1.51985 -+ -*) RM="$RM $arg" ;;
1.51986 -+ *) files="$files $arg" ;;
1.51987 -+ esac
1.51988 -+ done
1.51989 -+
1.51990 -+ test -z "$RM" && \
1.51991 -+ func_fatal_help "you must specify an RM program"
1.51992 -+
1.51993 -+ rmdirs=
1.51994 -+
1.51995 -+ origobjdir="$objdir"
1.51996 -+ for file in $files; do
1.51997 -+ func_dirname "$file" "" "."
1.51998 -+ dir="$func_dirname_result"
1.51999 -+ if test "X$dir" = X.; then
1.52000 -+ objdir="$origobjdir"
1.52001 -+ else
1.52002 -+ objdir="$dir/$origobjdir"
1.52003 -+ fi
1.52004 -+ func_basename "$file"
1.52005 -+ name="$func_basename_result"
1.52006 -+ test "$mode" = uninstall && objdir="$dir"
1.52007 -+
1.52008 -+ # Remember objdir for removal later, being careful to avoid duplicates
1.52009 -+ if test "$mode" = clean; then
1.52010 -+ case " $rmdirs " in
1.52011 -+ *" $objdir "*) ;;
1.52012 -+ *) rmdirs="$rmdirs $objdir" ;;
1.52013 -+ esac
1.52014 -+ fi
1.52015 -+
1.52016 -+ # Don't error if the file doesn't exist and rm -f was used.
1.52017 -+ if { test -L "$file"; } >/dev/null 2>&1 ||
1.52018 -+ { test -h "$file"; } >/dev/null 2>&1 ||
1.52019 -+ test -f "$file"; then
1.52020 -+ :
1.52021 -+ elif test -d "$file"; then
1.52022 -+ exit_status=1
1.52023 -+ continue
1.52024 -+ elif test "$rmforce" = yes; then
1.52025 -+ continue
1.52026 -+ fi
1.52027 -+
1.52028 -+ rmfiles="$file"
1.52029 -+
1.52030 -+ case $name in
1.52031 -+ *.la)
1.52032 -+ # Possibly a libtool archive, so verify it.
1.52033 -+ if func_lalib_p "$file"; then
1.52034 -+ func_source $dir/$name
1.52035 -+
1.52036 -+ # Delete the libtool libraries and symlinks.
1.52037 -+ for n in $library_names; do
1.52038 -+ rmfiles="$rmfiles $objdir/$n"
1.52039 -+ done
1.52040 -+ test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
1.52041 -+
1.52042 -+ case "$mode" in
1.52043 -+ clean)
1.52044 -+ case " $library_names " in
1.52045 -+ # " " in the beginning catches empty $dlname
1.52046 -+ *" $dlname "*) ;;
1.52047 -+ *) rmfiles="$rmfiles $objdir/$dlname" ;;
1.52048 -+ esac
1.52049 -+ test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
1.52050 -+ ;;
1.52051 -+ uninstall)
1.52052 -+ if test -n "$library_names"; then
1.52053 -+ # Do each command in the postuninstall commands.
1.52054 -+ func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
1.52055 -+ fi
1.52056 -+
1.52057 -+ if test -n "$old_library"; then
1.52058 -+ # Do each command in the old_postuninstall commands.
1.52059 -+ func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
1.52060 -+ fi
1.52061 -+ # FIXME: should reinstall the best remaining shared library.
1.52062 -+ ;;
1.52063 -+ esac
1.52064 -+ fi
1.52065 -+ ;;
1.52066 -+
1.52067 -+ *.lo)
1.52068 -+ # Possibly a libtool object, so verify it.
1.52069 -+ if func_lalib_p "$file"; then
1.52070 -+
1.52071 -+ # Read the .lo file
1.52072 -+ func_source $dir/$name
1.52073 -+
1.52074 -+ # Add PIC object to the list of files to remove.
1.52075 -+ if test -n "$pic_object" &&
1.52076 -+ test "$pic_object" != none; then
1.52077 -+ rmfiles="$rmfiles $dir/$pic_object"
1.52078 -+ fi
1.52079 -+
1.52080 -+ # Add non-PIC object to the list of files to remove.
1.52081 -+ if test -n "$non_pic_object" &&
1.52082 -+ test "$non_pic_object" != none; then
1.52083 -+ rmfiles="$rmfiles $dir/$non_pic_object"
1.52084 -+ fi
1.52085 -+ fi
1.52086 -+ ;;
1.52087 -+
1.52088 -+ *)
1.52089 -+ if test "$mode" = clean ; then
1.52090 -+ noexename=$name
1.52091 -+ case $file in
1.52092 -+ *.exe)
1.52093 -+ func_stripname '' '.exe' "$file"
1.52094 -+ file=$func_stripname_result
1.52095 -+ func_stripname '' '.exe' "$name"
1.52096 -+ noexename=$func_stripname_result
1.52097 -+ # $file with .exe has already been added to rmfiles,
1.52098 -+ # add $file without .exe
1.52099 -+ rmfiles="$rmfiles $file"
1.52100 -+ ;;
1.52101 -+ esac
1.52102 -+ # Do a test to see if this is a libtool program.
1.52103 -+ if func_ltwrapper_p "$file"; then
1.52104 -+ relink_command=
1.52105 -+ func_source $dir/$noexename
1.52106 -+
1.52107 -+ # note $name still contains .exe if it was in $file originally
1.52108 -+ # as does the version of $file that was added into $rmfiles
1.52109 -+ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
1.52110 -+ if test "$fast_install" = yes && test -n "$relink_command"; then
1.52111 -+ rmfiles="$rmfiles $objdir/lt-$name"
1.52112 -+ fi
1.52113 -+ if test "X$noexename" != "X$name" ; then
1.52114 -+ rmfiles="$rmfiles $objdir/lt-${noexename}.c"
1.52115 -+ fi
1.52116 -+ fi
1.52117 -+ fi
1.52118 -+ ;;
1.52119 -+ esac
1.52120 -+ func_show_eval "$RM $rmfiles" 'exit_status=1'
1.52121 -+ done
1.52122 -+ objdir="$origobjdir"
1.52123 -+
1.52124 -+ # Try to remove the ${objdir}s in the directories where we deleted files
1.52125 -+ for dir in $rmdirs; do
1.52126 -+ if test -d "$dir"; then
1.52127 -+ func_show_eval "rmdir $dir >/dev/null 2>&1"
1.52128 -+ fi
1.52129 -+ done
1.52130 -+
1.52131 -+ exit $exit_status
1.52132 -+}
1.52133 -+
1.52134 -+{ test "$mode" = uninstall || test "$mode" = clean; } &&
1.52135 -+ func_mode_uninstall ${1+"$@"}
1.52136 -+
1.52137 -+test -z "$mode" && {
1.52138 -+ help="$generic_help"
1.52139 -+ func_fatal_help "you must specify a MODE"
1.52140 -+}
1.52141 -+
1.52142 -+test -z "$exec_cmd" && \
1.52143 -+ func_fatal_help "invalid operation mode \`$mode'"
1.52144 -+
1.52145 -+if test -n "$exec_cmd"; then
1.52146 -+ eval exec "$exec_cmd"
1.52147 -+ exit $EXIT_FAILURE
1.52148 -+fi
1.52149 -+
1.52150 -+exit $exit_status
1.52151 -+
1.52152 -+
1.52153 -+# The TAGs below are defined such that we never get into a situation
1.52154 -+# in which we disable both kinds of libraries. Given conflicting
1.52155 -+# choices, we go for a static library, that is the most portable,
1.52156 -+# since we can't tell whether shared libraries were disabled because
1.52157 -+# the user asked for that or because the platform doesn't support
1.52158 -+# them. This is particularly important on AIX, because we don't
1.52159 -+# support having both static and shared libraries enabled at the same
1.52160 -+# time on that platform, so we default to a shared-only configuration.
1.52161 -+# If a disable-shared tag is given, we'll fallback to a static-only
1.52162 -+# configuration. But we'll never go from static-only to shared-only.
1.52163 -+
1.52164 -+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
1.52165 -+build_libtool_libs=no
1.52166 -+build_old_libs=yes
1.52167 -+# ### END LIBTOOL TAG CONFIG: disable-shared
1.52168 -+
1.52169 -+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
1.52170 -+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
1.52171 -+# ### END LIBTOOL TAG CONFIG: disable-static
1.52172 -+
1.52173 -+# Local Variables:
1.52174 -+# mode:shell-script
1.52175 -+# sh-indentation:2
1.52176 -+# End:
1.52177 -+# vi:sw=2
1.52178 ---- a/bfd/Makefile.in
1.52179 -+++ b/bfd/Makefile.in
1.52180 -@@ -312,6 +312,7 @@ ALL_MACHINES = \
1.52181 - cpu-arc.lo \
1.52182 - cpu-arm.lo \
1.52183 - cpu-avr.lo \
1.52184 -+ cpu-avr32.lo \
1.52185 - cpu-bfin.lo \
1.52186 - cpu-cr16.lo \
1.52187 - cpu-cr16c.lo \
1.52188 -@@ -493,6 +494,7 @@ BFD32_BACKENDS = \
1.52189 - elf32-arc.lo \
1.52190 - elf32-arm.lo \
1.52191 - elf32-avr.lo \
1.52192 -+ elf32-avr32.lo \
1.52193 - elf32-bfin.lo \
1.52194 - elf32-cr16.lo \
1.52195 - elf32-cr16c.lo \
1.52196 -@@ -1908,6 +1910,10 @@ elf32-cr16.lo: elf32-cr16.c $(INCDIR)/fi
1.52197 - $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \
1.52198 - $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
1.52199 - $(INCDIR)/elf/cr16.h $(INCDIR)/elf/reloc-macros.h elf32-target.h
1.52200 -+elf32-avr32.lo: elf32-avr32.c $(INCDIR)/filenames.h elf-bfd.h \
1.52201 -+ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
1.52202 -+ $(INCDIR)/bfdlink.h $(INCDIR)/elf/avr32.h $(INCDIR)/elf/reloc-macros.h \
1.52203 -+ elf32-target.h
1.52204 - elf32-cr16c.lo: elf32-cr16c.c $(INCDIR)/filenames.h \
1.52205 - $(INCDIR)/hashtab.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/cr16c.h \
1.52206 - $(INCDIR)/elf/reloc-macros.h elf-bfd.h $(INCDIR)/elf/common.h \
1.52207 ---- /dev/null
1.52208 -+++ b/bfd/po/Makefile.in
1.52209 -@@ -0,0 +1,297 @@
1.52210 -+# Makefile for program source directory in GNU NLS utilities package.
1.52211 -+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
1.52212 -+# Copyright 2001, 2003, 2006 Free Software Foundation, Inc.
1.52213 -+#
1.52214 -+# This file may be copied and used freely without restrictions. It can
1.52215 -+# be used in projects which are not available under the GNU Public License
1.52216 -+# but which still want to provide support for the GNU gettext functionality.
1.52217 -+# Please note that the actual code is *not* freely available.
1.52218 -+
1.52219 -+PACKAGE = bfd
1.52220 -+VERSION = 2.18.atmel.1.0.1.avr32linux.1
1.52221 -+
1.52222 -+SHELL = /bin/sh
1.52223 -+
1.52224 -+
1.52225 -+srcdir = .
1.52226 -+top_srcdir = ..
1.52227 -+
1.52228 -+top_builddir = ..
1.52229 -+
1.52230 -+prefix = /usr
1.52231 -+exec_prefix = ${prefix}
1.52232 -+datadir = $(prefix)/share
1.52233 -+localedir = $(datadir)/locale
1.52234 -+gnulocaledir = $(prefix)/share/locale
1.52235 -+gettextsrcdir = $(prefix)/share/gettext/po
1.52236 -+subdir = po
1.52237 -+
1.52238 -+DESTDIR =
1.52239 -+
1.52240 -+INSTALL = /usr/bin/install -c
1.52241 -+INSTALL_DATA = ${INSTALL} -m 644
1.52242 -+MKINSTALLDIRS = $(top_builddir)/./../mkinstalldirs
1.52243 -+
1.52244 -+CC = gcc
1.52245 -+GENCAT = gencat
1.52246 -+GMSGFMT = PATH=../src:$$PATH /usr/bin/msgfmt
1.52247 -+MSGFMT = /usr/bin/msgfmt
1.52248 -+XGETTEXT = PATH=../src:$$PATH /usr/bin/xgettext
1.52249 -+MSGMERGE = PATH=../src:$$PATH msgmerge
1.52250 -+
1.52251 -+DEFS = -DHAVE_CONFIG_H
1.52252 -+CFLAGS = -g -O2
1.52253 -+CPPFLAGS =
1.52254 -+
1.52255 -+INCLUDES = -I.. -I$(top_srcdir)/intl
1.52256 -+
1.52257 -+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
1.52258 -+
1.52259 -+SOURCES = cat-id-tbl.c
1.52260 -+POFILES = @POFILES@
1.52261 -+GMOFILES = @GMOFILES@
1.52262 -+DISTFILES = ChangeLog Makefile.in.in SRC-POTFILES.in BLD-POTFILES.in $(PACKAGE).pot \
1.52263 -+stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
1.52264 -+
1.52265 -+# Note - the following line gets processed by bfd/configure and amended
1.52266 -+# to contain the full list of source dir POTFILES.
1.52267 -+SRC-POTFILES = \
1.52268 -+
1.52269 -+# Note - the following line gets processed by bfd/configure and amended
1.52270 -+# to contain the full list of build dir POTFILES.
1.52271 -+BLD-POTFILES = \
1.52272 -+
1.52273 -+CATALOGS = da.gmo es.gmo fr.gmo ja.gmo ro.gmo rw.gmo sv.gmo tr.gmo vi.gmo zh_CN.gmo da.gmo es.gmo fr.gmo ja.gmo ro.gmo rw.gmo sv.gmo tr.gmo vi.gmo zh_CN.gmo
1.52274 -+CATOBJEXT = .gmo
1.52275 -+INSTOBJEXT = .mo
1.52276 -+
1.52277 -+.SUFFIXES:
1.52278 -+.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
1.52279 -+
1.52280 -+.c.o:
1.52281 -+ $(COMPILE) $<
1.52282 -+
1.52283 -+.po.pox:
1.52284 -+ $(MAKE) $(PACKAGE).pot
1.52285 -+ $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
1.52286 -+
1.52287 -+.po.mo:
1.52288 -+ $(MSGFMT) -o $@ $<
1.52289 -+
1.52290 -+.po.gmo:
1.52291 -+ file=`echo $* | sed 's,.*/,,'`.gmo \
1.52292 -+ && rm -f $$file && $(GMSGFMT) -o $$file $<
1.52293 -+
1.52294 -+.po.cat:
1.52295 -+ sed -f ../intl/po2msg.sed < $< > $*.msg \
1.52296 -+ && rm -f $@ && $(GENCAT) $@ $*.msg
1.52297 -+
1.52298 -+
1.52299 -+all: all-yes
1.52300 -+
1.52301 -+all-yes: $(CATALOGS) # $(PACKAGE).pot
1.52302 -+all-no:
1.52303 -+
1.52304 -+$(srcdir)/$(PACKAGE).pot: $(SRC-POTFILES) $(BLD-POTFILES)
1.52305 -+ $(XGETTEXT) --default-domain=$(PACKAGE) \
1.52306 -+ --directory=$(top_srcdir) \
1.52307 -+ --add-comments --keyword=_ --keyword=N_ \
1.52308 -+ --msgid-bugs-address=bug-binutils@gnu.org \
1.52309 -+ --files-from=$(srcdir)/SRC-POTFILES.in
1.52310 -+ $(XGETTEXT) --default-domain=$(PACKAGE) \
1.52311 -+ --directory=.. \
1.52312 -+ --directory=. \
1.52313 -+ --add-comments --keyword=_ --keyword=N_ \
1.52314 -+ --join-existing \
1.52315 -+ --msgid-bugs-address=bug-binutils@gnu.org \
1.52316 -+ --files-from=$(srcdir)/BLD-POTFILES.in
1.52317 -+ rm -f $(srcdir)/$(PACKAGE).pot
1.52318 -+ mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot
1.52319 -+
1.52320 -+$(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
1.52321 -+$(srcdir)/stamp-cat-id: $(PACKAGE).pot
1.52322 -+ rm -f cat-id-tbl.tmp
1.52323 -+ sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
1.52324 -+ | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
1.52325 -+ if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \
1.52326 -+ rm cat-id-tbl.tmp; \
1.52327 -+ else \
1.52328 -+ echo cat-id-tbl.c changed; \
1.52329 -+ rm -f $(srcdir)/cat-id-tbl.c; \
1.52330 -+ mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \
1.52331 -+ fi
1.52332 -+ cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
1.52333 -+
1.52334 -+
1.52335 -+install: install-exec install-data
1.52336 -+install-exec:
1.52337 -+install-info:
1.52338 -+install-html:
1.52339 -+install-data: install-data-yes
1.52340 -+install-data-no: all
1.52341 -+install-data-yes: all
1.52342 -+ if test -r $(MKINSTALLDIRS); then \
1.52343 -+ $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
1.52344 -+ else \
1.52345 -+ $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
1.52346 -+ fi
1.52347 -+ @catalogs='$(CATALOGS)'; \
1.52348 -+ for cat in $$catalogs; do \
1.52349 -+ cat=`basename $$cat`; \
1.52350 -+ case "$$cat" in \
1.52351 -+ *.gmo) destdir=$(gnulocaledir);; \
1.52352 -+ *) destdir=$(localedir);; \
1.52353 -+ esac; \
1.52354 -+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
1.52355 -+ dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
1.52356 -+ if test -r $(MKINSTALLDIRS); then \
1.52357 -+ $(MKINSTALLDIRS) $$dir; \
1.52358 -+ else \
1.52359 -+ $(top_srcdir)/mkinstalldirs $$dir; \
1.52360 -+ fi; \
1.52361 -+ if test -r $$cat; then \
1.52362 -+ $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
1.52363 -+ echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
1.52364 -+ else \
1.52365 -+ $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
1.52366 -+ echo "installing $(srcdir)/$$cat as" \
1.52367 -+ "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
1.52368 -+ fi; \
1.52369 -+ if test -r $$cat.m; then \
1.52370 -+ $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
1.52371 -+ echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
1.52372 -+ else \
1.52373 -+ if test -r $(srcdir)/$$cat.m ; then \
1.52374 -+ $(INSTALL_DATA) $(srcdir)/$$cat.m \
1.52375 -+ $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
1.52376 -+ echo "installing $(srcdir)/$$cat as" \
1.52377 -+ "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
1.52378 -+ else \
1.52379 -+ true; \
1.52380 -+ fi; \
1.52381 -+ fi; \
1.52382 -+ done
1.52383 -+ if test "$(PACKAGE)" = "gettext"; then \
1.52384 -+ if test -r $(MKINSTALLDIRS); then \
1.52385 -+ $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
1.52386 -+ else \
1.52387 -+ $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
1.52388 -+ fi; \
1.52389 -+ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
1.52390 -+ $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
1.52391 -+ else \
1.52392 -+ : ; \
1.52393 -+ fi
1.52394 -+
1.52395 -+# Define this as empty until I found a useful application.
1.52396 -+installcheck:
1.52397 -+
1.52398 -+uninstall:
1.52399 -+ catalogs='$(CATALOGS)'; \
1.52400 -+ for cat in $$catalogs; do \
1.52401 -+ cat=`basename $$cat`; \
1.52402 -+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
1.52403 -+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
1.52404 -+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
1.52405 -+ rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
1.52406 -+ rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
1.52407 -+ done
1.52408 -+ rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in
1.52409 -+
1.52410 -+check: all
1.52411 -+
1.52412 -+cat-id-tbl.o: ../intl/libgettext.h
1.52413 -+
1.52414 -+html dvi pdf ps info tags TAGS ID:
1.52415 -+
1.52416 -+mostlyclean:
1.52417 -+ rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp
1.52418 -+ rm -fr *.o
1.52419 -+
1.52420 -+clean: mostlyclean
1.52421 -+
1.52422 -+distclean: clean
1.52423 -+ rm -f Makefile Makefile.in *.mo *.msg *.cat *.cat.m
1.52424 -+ rm -f SRC-POTFILES BLD-POTFILES
1.52425 -+
1.52426 -+maintainer-clean: distclean
1.52427 -+ @echo "This command is intended for maintainers to use;"
1.52428 -+ @echo "it deletes files that may require special tools to rebuild."
1.52429 -+ rm -f $(GMOFILES) SRC-POTFILES.in BLD-POTFILES.in
1.52430 -+
1.52431 -+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
1.52432 -+dist distdir: update-po $(DISTFILES)
1.52433 -+ dists="$(DISTFILES)"; \
1.52434 -+ for file in $$dists; do \
1.52435 -+ ln $(srcdir)/$$file $(distdir) 2> /dev/null \
1.52436 -+ || cp -p $(srcdir)/$$file $(distdir); \
1.52437 -+ done
1.52438 -+
1.52439 -+update-po: Makefile
1.52440 -+ $(MAKE) $(PACKAGE).pot
1.52441 -+ PATH=`pwd`/../src:$$PATH; \
1.52442 -+ cd $(srcdir); \
1.52443 -+ catalogs='$(CATALOGS)'; \
1.52444 -+ for cat in $$catalogs; do \
1.52445 -+ cat=`basename $$cat`; \
1.52446 -+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
1.52447 -+ mv $$lang.po $$lang.old.po; \
1.52448 -+ echo "$$lang:"; \
1.52449 -+ if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
1.52450 -+ rm -f $$lang.old.po; \
1.52451 -+ else \
1.52452 -+ echo "msgmerge for $$cat failed!"; \
1.52453 -+ rm -f $$lang.po; \
1.52454 -+ mv $$lang.old.po $$lang.po; \
1.52455 -+ fi; \
1.52456 -+ done
1.52457 -+
1.52458 -+SRC-POTFILES: SRC-POTFILES.in
1.52459 -+ ( if test 'x$(srcdir)' != 'x.'; then \
1.52460 -+ posrcprefix='$(top_srcdir)/'; \
1.52461 -+ else \
1.52462 -+ posrcprefix="../"; \
1.52463 -+ fi; \
1.52464 -+ rm -f $@-t $@ \
1.52465 -+ && (sed -e '/^#/d' \
1.52466 -+ -e '/^[ ]*$$/d' \
1.52467 -+ -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
1.52468 -+ | sed -e '$$s/\\$$//') > $@-t \
1.52469 -+ && chmod a-w $@-t \
1.52470 -+ && mv $@-t $@ )
1.52471 -+
1.52472 -+BLD-POTFILES: BLD-POTFILES.in
1.52473 -+ ( rm -f $@-t $@ \
1.52474 -+ && (sed -e '/^#/d' \
1.52475 -+ -e '/^[ ]*$$/d' \
1.52476 -+ -e "s@.*@ ../& \\\\@" < $(srcdir)/$@.in \
1.52477 -+ | sed -e '$$s/\\$$//') > $@-t \
1.52478 -+ && chmod a-w $@-t \
1.52479 -+ && mv $@-t $@ )
1.52480 -+
1.52481 -+SRC-POTFILES.in: # ../Makefile
1.52482 -+ cd .. && $(MAKE) po/SRC-POTFILES.in
1.52483 -+
1.52484 -+BLD-POTFILES.in: # ../Makefile
1.52485 -+ cd .. && $(MAKE) po/BLD-POTFILES.in
1.52486 -+
1.52487 -+# Note - The presence of SRC-POTFILES and BLD-POTFILES as dependencies
1.52488 -+# here breaks the implementation of the 'distclean' rule for maintainers.
1.52489 -+# This is because if 'make distclean' is run in the BFD directory, the
1.52490 -+# Makefile there will be deleted before 'distclean' is made here, and so
1.52491 -+# the dependency SRC-POTFILES -> SRC-POTFILES.in -> ../Makefile cannot
1.52492 -+# be satisfied.
1.52493 -+#
1.52494 -+# The SRC-POTFILES and BLD-POTFILES dependencies cannot be removed,
1.52495 -+# however since it is necessary that these files be built during
1.52496 -+# *configure* time, so that configure can insert them into the
1.52497 -+# po/Makefile that it is creating, so that the Makefile will have
1.52498 -+# the correct dependencies.
1.52499 -+Makefile: Make-in ../config.status SRC-POTFILES BLD-POTFILES
1.52500 -+ cd .. \
1.52501 -+ && CONFIG_FILES=$(subdir)/Makefile.in:$(subdir)/Make-in \
1.52502 -+ CONFIG_HEADERS= $(SHELL) ./config.status
1.52503 -+
1.52504 -+# Tell versions [3.59,3.63) of GNU make not to export all variables.
1.52505 -+# Otherwise a system limit (for SysV at least) may be exceeded.
1.52506 -+.NOEXPORT:
1.52507 ---- a/binutils/Makefile.in
1.52508 -+++ b/binutils/Makefile.in
1.52509 -@@ -1327,7 +1327,7 @@ readelf.o: readelf.c sysdep.h $(INCDIR)/
1.52510 - $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h bucomm.h dwarf.h \
1.52511 - $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
1.52512 - $(INCDIR)/elf/h8.h $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/alpha.h \
1.52513 -- $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h $(INCDIR)/elf/avr.h \
1.52514 -+ $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h $(INCDIR)/elf/avr.h $(INCDIR)/elf/avr32.h\
1.52515 - $(INCDIR)/elf/bfin.h $(INCDIR)/elf/cris.h $(INCDIR)/elf/crx.h \
1.52516 - $(INCDIR)/elf/d10v.h $(INCDIR)/elf/d30v.h $(INCDIR)/elf/dlx.h \
1.52517 - $(INCDIR)/elf/fr30.h $(INCDIR)/elf/frv.h $(INCDIR)/elf/hppa.h \
1.52518 ---- a/ld/Makefile.in
1.52519 -+++ b/ld/Makefile.in
1.52520 -@@ -384,7 +384,34 @@ ALL_EMULATIONS = \
1.52521 - eavr3.o \
1.52522 - eavr4.o \
1.52523 - eavr5.o \
1.52524 -- eavr6.o \
1.52525 -+ eavr6.o \
1.52526 -+ eavr32elf_ap7000.o \
1.52527 -+ eavr32elf_ap7001.o \
1.52528 -+ eavr32elf_ap7002.o \
1.52529 -+ eavr32elf_ap7200.o \
1.52530 -+ eavr32elf_uc3a0128.o \
1.52531 -+ eavr32elf_uc3a0256.o \
1.52532 -+ eavr32elf_uc3a0512.o \
1.52533 -+ eavr32elf_uc3a0512es.o \
1.52534 -+ eavr32elf_uc3a1128.o \
1.52535 -+ eavr32elf_uc3a1256.o \
1.52536 -+ eavr32elf_uc3a1512es.o \
1.52537 -+ eavr32elf_uc3a1512.o \
1.52538 -+ eavr32elf_uc3a364.o \
1.52539 -+ eavr32elf_uc3a364s.o \
1.52540 -+ eavr32elf_uc3a3128.o \
1.52541 -+ eavr32elf_uc3a3128s.o \
1.52542 -+ eavr32elf_uc3a3256.o \
1.52543 -+ eavr32elf_uc3a3256s.o \
1.52544 -+ eavr32elf_uc3b064.o \
1.52545 -+ eavr32elf_uc3b0128.o \
1.52546 -+ eavr32elf_uc3b0256es.o \
1.52547 -+ eavr32elf_uc3b0256.o \
1.52548 -+ eavr32elf_uc3b164.o \
1.52549 -+ eavr32elf_uc3b1128.o \
1.52550 -+ eavr32elf_uc3b1256es.o \
1.52551 -+ eavr32elf_uc3b1256.o \
1.52552 -+ eavr32linux.o \
1.52553 - ecoff_i860.o \
1.52554 - ecoff_sparc.o \
1.52555 - eelf32_spu.o \
1.52556 -@@ -1448,6 +1475,114 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
1.52557 - $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
1.52558 - ${GEN_DEPENDS}
1.52559 - ${GENSCRIPTS} avr6 "$(tdir_avr2)"
1.52560 -+eavr32elf_ap7000.c: $(srcdir)/emulparams/avr32elf.sh \
1.52561 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52562 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52563 -+ ${GENSCRIPTS} avr32elf_ap7000 "$(tdir_avr32)" avr32elf
1.52564 -+eavr32elf_ap7001.c: $(srcdir)/emulparams/avr32elf.sh \
1.52565 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52566 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52567 -+ ${GENSCRIPTS} avr32elf_ap7001 "$(tdir_avr32)" avr32elf
1.52568 -+eavr32elf_ap7002.c: $(srcdir)/emulparams/avr32elf.sh \
1.52569 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52570 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52571 -+ ${GENSCRIPTS} avr32elf_ap7002 "$(tdir_avr32)" avr32elf
1.52572 -+eavr32elf_ap7200.c: $(srcdir)/emulparams/avr32elf.sh \
1.52573 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52574 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52575 -+ ${GENSCRIPTS} avr32elf_ap7200 "$(tdir_avr32)" avr32elf
1.52576 -+eavr32elf_uc3a0128.c: $(srcdir)/emulparams/avr32elf.sh \
1.52577 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52578 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52579 -+ ${GENSCRIPTS} avr32elf_uc3a0128 "$(tdir_avr32)" avr32elf
1.52580 -+eavr32elf_uc3a0256.c: $(srcdir)/emulparams/avr32elf.sh \
1.52581 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52582 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52583 -+ ${GENSCRIPTS} avr32elf_uc3a0256 "$(tdir_avr32)" avr32elf
1.52584 -+eavr32elf_uc3a0512.c: $(srcdir)/emulparams/avr32elf.sh \
1.52585 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52586 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52587 -+ ${GENSCRIPTS} avr32elf_uc3a0512 "$(tdir_avr32)" avr32elf
1.52588 -+eavr32elf_uc3a0512es.c: $(srcdir)/emulparams/avr32elf.sh \
1.52589 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52590 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52591 -+ ${GENSCRIPTS} avr32elf_uc3a0512es "$(tdir_avr32)" avr32elf
1.52592 -+eavr32elf_uc3a1128.c: $(srcdir)/emulparams/avr32elf.sh \
1.52593 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52594 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52595 -+ ${GENSCRIPTS} avr32elf_uc3a1128 "$(tdir_avr32)" avr32elf
1.52596 -+eavr32elf_uc3a1256.c: $(srcdir)/emulparams/avr32elf.sh \
1.52597 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52598 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52599 -+ ${GENSCRIPTS} avr32elf_uc3a1256 "$(tdir_avr32)" avr32elf
1.52600 -+eavr32elf_uc3a1512.c: $(srcdir)/emulparams/avr32elf.sh \
1.52601 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52602 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52603 -+ ${GENSCRIPTS} avr32elf_uc3a1512 "$(tdir_avr32)" avr32elf
1.52604 -+eavr32elf_uc3a1512es.c: $(srcdir)/emulparams/avr32elf.sh \
1.52605 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52606 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52607 -+ ${GENSCRIPTS} avr32elf_uc3a1512es "$(tdir_avr32)" avr32elf
1.52608 -+eavr32elf_uc3a364.c: $(srcdir)/emulparams/avr32elf.sh \
1.52609 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52610 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52611 -+ ${GENSCRIPTS} avr32elf_uc3a364 "$(tdir_avr32)" avr32elf
1.52612 -+eavr32elf_uc3a364s.c: $(srcdir)/emulparams/avr32elf.sh \
1.52613 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52614 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52615 -+ ${GENSCRIPTS} avr32elf_uc3a364s "$(tdir_avr32)" avr32elf
1.52616 -+eavr32elf_uc3a3128.c: $(srcdir)/emulparams/avr32elf.sh \
1.52617 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52618 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52619 -+ ${GENSCRIPTS} avr32elf_uc3a3128 "$(tdir_avr32)" avr32elf
1.52620 -+eavr32elf_uc3a3128s.c: $(srcdir)/emulparams/avr32elf.sh \
1.52621 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52622 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52623 -+ ${GENSCRIPTS} avr32elf_uc3a3128s "$(tdir_avr32)" avr32elf
1.52624 -+eavr32elf_uc3a3256.c: $(srcdir)/emulparams/avr32elf.sh \
1.52625 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52626 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52627 -+ ${GENSCRIPTS} avr32elf_uc3a3256 "$(tdir_avr32)" avr32elf
1.52628 -+eavr32elf_uc3a3256s.c: $(srcdir)/emulparams/avr32elf.sh \
1.52629 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52630 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52631 -+ ${GENSCRIPTS} avr32elf_uc3a3256s "$(tdir_avr32)" avr32elf
1.52632 -+eavr32elf_uc3b064.c: $(srcdir)/emulparams/avr32elf.sh \
1.52633 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52634 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52635 -+ ${GENSCRIPTS} avr32elf_uc3b064 "$(tdir_avr32)" avr32elf
1.52636 -+eavr32elf_uc3b0128.c: $(srcdir)/emulparams/avr32elf.sh \
1.52637 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52638 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52639 -+ ${GENSCRIPTS} avr32elf_uc3b0128 "$(tdir_avr32)" avr32elf
1.52640 -+eavr32elf_uc3b0256.c: $(srcdir)/emulparams/avr32elf.sh \
1.52641 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52642 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52643 -+ ${GENSCRIPTS} avr32elf_uc3b0256 "$(tdir_avr32)" avr32elf
1.52644 -+eavr32elf_uc3b0256es.c: $(srcdir)/emulparams/avr32elf.sh \
1.52645 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52646 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52647 -+ ${GENSCRIPTS} avr32elf_uc3b0256es "$(tdir_avr32)" avr32elf
1.52648 -+eavr32elf_uc3b164.c: $(srcdir)/emulparams/avr32elf.sh \
1.52649 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52650 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52651 -+ ${GENSCRIPTS} avr32elf_uc3b164 "$(tdir_avr32)" avr32elf
1.52652 -+eavr32elf_uc3b1128.c: $(srcdir)/emulparams/avr32elf.sh \
1.52653 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52654 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52655 -+ ${GENSCRIPTS} avr32elf_uc3b1128 "$(tdir_avr32)" avr32elf
1.52656 -+eavr32elf_uc3b1256.c: $(srcdir)/emulparams/avr32elf.sh \
1.52657 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52658 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52659 -+ ${GENSCRIPTS} avr32elf_uc3b1256 "$(tdir_avr32)" avr32elf
1.52660 -+eavr32elf_uc3b1256es.c: $(srcdir)/emulparams/avr32elf.sh \
1.52661 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52662 -+ $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
1.52663 -+ ${GENSCRIPTS} avr32elf_uc3b1256es "$(tdir_avr32)" avr32elf
1.52664 -+eavr32linux.c: $(srcdir)/emulparams/avr32linux.sh \
1.52665 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
1.52666 -+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
1.52667 -+ ${GENSCRIPTS} avr32linux "$(tdir_avr32)"
1.52668 - ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \
1.52669 - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS}
1.52670 - ${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)"
1.52671 -@@ -2679,7 +2814,9 @@ install-exec-local: ld-new$(EXEEXT)
1.52672 - || $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT); \
1.52673 - fi
1.52674 -
1.52675 --install-data-local:
1.52676 -+# We want install to imply install-info as per GNU standards, despite the
1.52677 -+# cygnus option.
1.52678 -+install-data-local: install-info
1.52679 - $(mkinstalldirs) $(DESTDIR)$(scriptdir)/ldscripts
1.52680 - for f in ldscripts/*; do \
1.52681 - $(INSTALL_DATA) $$f $(DESTDIR)$(scriptdir)/$$f ; \
1.52682 ---- /dev/null
1.52683 -+++ b/libiberty/required-list
1.52684 -@@ -0,0 +1 @@
1.52685 -+./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o ./cp-demint.o ./dyn-string.o ./fdmatch.o ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o ./objalloc.o ./obstack.o ./partition.o ./pexecute.o ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o ./strerror.o ./strsignal.o ./unlink-if-ordinary.o ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o ./xstrerror.o ./xstrndup.o
1.52686 ---- a/opcodes/configure
1.52687 -+++ b/opcodes/configure
1.52688 -@@ -11418,6 +11418,7 @@ if test x${all_targets} = xfalse ; then
1.52689 - bfd_arc_arch) ta="$ta arc-dis.lo arc-opc.lo arc-ext.lo" ;;
1.52690 - bfd_arm_arch) ta="$ta arm-dis.lo" ;;
1.52691 - bfd_avr_arch) ta="$ta avr-dis.lo" ;;
1.52692 -+ bfd_avr32_arch) ta="$ta avr32-asm.lo avr32-dis.lo avr32-opc.lo" ;;
1.52693 - bfd_bfin_arch) ta="$ta bfin-dis.lo" ;;
1.52694 - bfd_cr16_arch) ta="$ta cr16-dis.lo cr16-opc.lo" ;;
1.52695 - bfd_cris_arch) ta="$ta cris-dis.lo cris-opc.lo cgen-bitset.lo" ;;
1.52696 -@@ -11476,7 +11477,7 @@ if test x${all_targets} = xfalse ; then
1.52697 - ta="$ta sh64-dis.lo sh64-opc.lo"
1.52698 - archdefs="$archdefs -DINCLUDE_SHMEDIA"
1.52699 - break;;
1.52700 -- esac;
1.52701 -+ esac
1.52702 - done
1.52703 - ta="$ta sh-dis.lo cgen-bitset.lo" ;;
1.52704 - bfd_sparc_arch) ta="$ta sparc-dis.lo sparc-opc.lo" ;;
1.52705 ---- a/opcodes/Makefile.in
1.52706 -+++ b/opcodes/Makefile.in
1.52707 -@@ -257,6 +257,7 @@ LIBIBERTY = ../libiberty/libiberty.a
1.52708 - # Header files.
1.52709 - HFILES = \
1.52710 - cgen-ops.h cgen-types.h \
1.52711 -+ avr32-asm.h avr32-opc.h \
1.52712 - fr30-desc.h fr30-opc.h \
1.52713 - frv-desc.h frv-opc.h \
1.52714 - h8500-opc.h \
1.52715 -@@ -291,6 +292,9 @@ CFILES = \
1.52716 - arc-ext.c \
1.52717 - arm-dis.c \
1.52718 - avr-dis.c \
1.52719 -+ avr32-asm.c \
1.52720 -+ avr32-dis.c \
1.52721 -+ avr32-opc.c \
1.52722 - bfin-dis.c \
1.52723 - cgen-asm.c \
1.52724 - cgen-bitset.c \
1.52725 -@@ -445,6 +449,9 @@ ALL_MACHINES = \
1.52726 - arc-ext.lo \
1.52727 - arm-dis.lo \
1.52728 - avr-dis.lo \
1.52729 -+ avr32-asm.lo \
1.52730 -+ avr32-dis.lo \
1.52731 -+ avr32-opc.lo \
1.52732 - bfin-dis.lo \
1.52733 - cgen-asm.lo \
1.52734 - cgen-bitset.lo \
1.52735 -@@ -1225,6 +1232,15 @@ avr-dis.lo: avr-dis.c sysdep.h config.h
1.52736 - $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
1.52737 - opintl.h $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h \
1.52738 - $(INCDIR)/opcode/avr.h
1.52739 -+avr32-asm.lo: avr32-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \
1.52740 -+ $(BFD_H) $(INCDIR)/symcat.h avr32-opc.h opintl.h \
1.52741 -+ $(INCDIR)/xregex.h $(INCDIR)/xregex2.h \
1.52742 -+ $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
1.52743 -+avr32-dis.lo: avr32-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
1.52744 -+ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
1.52745 -+ avr32-opc.h opintl.h
1.52746 -+avr32-opc.lo: avr32-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \
1.52747 -+ $(BFD_H) $(INCDIR)/symcat.h avr32-opc.h $(INCDIR)/libiberty.h
1.52748 - bfin-dis.lo: bfin-dis.c $(INCDIR)/opcode/bfin.h $(INCDIR)/dis-asm.h \
1.52749 - $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h
1.52750 - cgen-asm.lo: cgen-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \