diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/aoutx.h ./bfd/aoutx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/aoutx.h	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/aoutx.h	2015-01-20 01:48:34.000000000 +0000
@@ -203,8 +203,8 @@ reloc_howto_type howto_table_ext[] =
   HOWTO (RELOC_GLOB_DAT,0,  2,	0,  FALSE, 0, complain_overflow_bitfield, 0, "GLOB_DAT",    FALSE, 0, 0x00000000, FALSE),
   HOWTO (RELOC_JMP_SLOT,0,  2,	0,  FALSE, 0, complain_overflow_bitfield, 0, "JMP_SLOT",    FALSE, 0, 0x00000000, FALSE),
   HOWTO (RELOC_RELATIVE,0,  2,	0,  FALSE, 0, complain_overflow_bitfield, 0, "RELATIVE",    FALSE, 0, 0x00000000, FALSE),
-  HOWTO (0,             0,  0,  0,  FALSE, 0, complain_overflow_dont,     0, "R_SPARC_NONE",FALSE, 0, 0x00000000, TRUE),
-  HOWTO (0,             0,  0,  0,  FALSE, 0, complain_overflow_dont,     0, "R_SPARC_NONE",FALSE, 0, 0x00000000, TRUE),
+  HOWTO (0,             0,  3,  0,  FALSE, 0, complain_overflow_dont,     0, "R_SPARC_NONE",FALSE, 0, 0x00000000, TRUE),
+  HOWTO (0,             0,  3,  0,  FALSE, 0, complain_overflow_dont,     0, "R_SPARC_NONE",FALSE, 0, 0x00000000, TRUE),
 #define RELOC_SPARC_REV32 RELOC_WDISP19
   HOWTO (RELOC_SPARC_REV32, 0, 2, 32, FALSE, 0, complain_overflow_dont,   0,"R_SPARC_REV32",FALSE, 0, 0xffffffff, FALSE),
 };
@@ -3816,7 +3816,7 @@ aout_link_reloc_link_order (struct aout_
 
 	  size = bfd_get_reloc_size (howto);
 	  buf = (bfd_byte *) bfd_zmalloc (size);
-	  if (buf == NULL)
+	  if (buf == NULL && size != 0)
 	    return FALSE;
 	  r = MY_relocate_contents (howto, flaginfo->output_bfd,
 				    (bfd_vma) pr->addend, buf);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/bfd-in2.h ./bfd/bfd-in2.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/bfd-in2.h	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/bfd-in2.h	2015-01-20 01:48:34.000000000 +0000
@@ -299,10 +299,13 @@ typedef struct bfd_section *sec_ptr;
 
 #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
 
+#define bfd_get_section_limit_octets(bfd, sec)			\
+  ((bfd)->direction != write_direction && (sec)->rawsize != 0	\
+   ? (sec)->rawsize : (sec)->size)
+
 /* Find the address one past the end of SEC.  */
 #define bfd_get_section_limit(bfd, sec) \
-  (((bfd)->direction != write_direction && (sec)->rawsize != 0	\
-    ? (sec)->rawsize : (sec)->size) / bfd_octets_per_byte (bfd))
+  (bfd_get_section_limit_octets(bfd, sec) / bfd_octets_per_byte (bfd))
 
 /* Return TRUE if input section SEC has been discarded.  */
 #define discarded_section(sec)				\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/bfd-in.h ./bfd/bfd-in.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/bfd-in.h	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/bfd-in.h	2015-01-20 01:48:34.000000000 +0000
@@ -292,10 +292,13 @@ typedef struct bfd_section *sec_ptr;
 
 #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
 
+#define bfd_get_section_limit_octets(bfd, sec)			\
+  ((bfd)->direction != write_direction && (sec)->rawsize != 0	\
+   ? (sec)->rawsize : (sec)->size)
+
 /* Find the address one past the end of SEC.  */
 #define bfd_get_section_limit(bfd, sec) \
-  (((bfd)->direction != write_direction && (sec)->rawsize != 0	\
-    ? (sec)->rawsize : (sec)->size) / bfd_octets_per_byte (bfd))
+  (bfd_get_section_limit_octets(bfd, sec) / bfd_octets_per_byte (bfd))
 
 /* Return TRUE if input section SEC has been discarded.  */
 #define discarded_section(sec)				\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/ChangeLog ./bfd/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/ChangeLog	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/ChangeLog	2015-01-20 01:48:34.000000000 +0000
@@ -1,3 +1,217 @@
+2015-01-20  Alan Modra  <amodra@gmail.com>
+
+	PR ld/17615
+	* elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Don't drop
+	ELF_COMMON_DEF syms.
+
+2015-01-19  Alan Modra  <amodra@gmail.com>
+
+	PR ld/17615
+	* elf-bfd.h (ELF_COMMON_DEF_P): Note that this might be true for
+	linker script assignments too.
+	* elflink.c (elf_gc_sweep_symbol): Don't drop ELF_COMMON_DEF syms.
+	(bfd_elf_gc_mark_dynamic_ref_symbol): Similarly.
+
+2015-01-19  Alan Modra  <amodra@gmail.com>
+
+	* elf32-bfin.c (bfin_bfd_reloc_type_lookup): Correct loop iteration
+	to allow return of first howto.
+	* elf32-fr30.c (fr30_reloc_type_lookup): Likewise.
+	* elf32-m32c.c (m32c_reloc_type_lookup): Likewise.
+	* elf32-moxie.c (moxie_reloc_type_lookup): Likewise.
+	* elf32-or1k.c (or1k_reloc_type_lookup): Likewise.
+	* elf32-rl78.c (rl78_reloc_type_lookup): Likewise.
+	* elf32-rx.c (rx_reloc_type_lookup): Likewise.
+	* elf32-tilepro.c (tilepro_reloc_type_lookup): Likewise.
+	* elf32-xstormy16.c (xstormy16_reloc_type_lookup): Likewise.
+	* elfxx-tilegx.c (tilegx_reloc_type_lookup): Likewise.
+	* elf32-nios2.c (nios2_reloc_map): Add mapping for R_NIOS2_NONE.
+	* elf32-spu.c (spu_elf_bfd_to_reloc_type): Allow return of R_SPU_NONE.
+	(spu_elf_reloc_type_lookup): Adjust to suit.
+
+2015-01-19  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h (bfd_get_section_limit_octets): New define, extracted from..
+	(bfd_get_section_limit): ..here.
+	* reloc.c (bfd_perform_relocation): Correct bfd_reloc_outofrange check.
+	(bfd_install_relocation, _bfd_final_link_relocate): Add same check here.
+	* elf32-sh.c (sh_elf_reloc): Correct bfd_reloc_outofrange check.
+	* elf32-ppc.c (ppc_elf_addr16_ha_reloc): Remove duplicated
+	bfd_reloc_outofrange check.
+	* bfd-in2.h: Regenerate.
+
+	* cpu-ns32k.c (_bfd_do_ns32k_reloc_contents): Return bfd_reloc_ok
+	on zero size relocs.
+	* ecoff.c (ecoff_reloc_link_order): Likewise.
+	* elf32-nds32.c (nds32_relocate_contents): Likewise.
+	* elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
+
+	* reloc.c (_bfd_relocate_contents): Don't bomb on zero size relocs.
+	(_bfd_clear_contents): Likewise.
+	* elfxx-mips.c (mips_elf_obtain_contents): Likewise.
+	(mips_elf_perform_relocation): Likewise.
+
+	* aoutx.h (aout_link_reloc_link_order): Allow for NULL return
+	from malloc on zero size alloc.
+	* cofflink.c (_bfd_coff_reloc_link_order): Likewise.
+	* elflink.c (elf_reloc_link_order): Likewise.
+	* linker.c (_bfd_generic_reloc_link_order): Likewise.
+	* pdp11.c (aout_link_reloc_link_order): Likewise.
+	* xcofflink.c (xcoff_reloc_link_order): Likewise.
+
+	* aoutx.h (howto_table_ext): Ensure NONE relocs have size 3,
+	bitsize 0, and complain_overflow_dont.
+	* coff-sparc.c (coff_sparc_howto_table): Likewise.
+	* elf-hppa.h (elf_hppa_howto_table): Likewise.
+	* elf-m10200.c (elf_mn10200_howto_table): Likewise.
+	* elf-m10300.c (elf_mn10300_howto_table): Likewise.
+	* elf32-arc.c (elf_arc_howto_table): Likewise.
+	* elf32-arm.c (elf32_arm_howto_table_1): Likewise.
+	* elf32-avr.c (elf_avr_howto_table): Likewise.
+	* elf32-bfin.c (bfin_howto_table): Likewise.
+	* elf32-cr16.c (cr16_elf_howto_table): Likewise.
+	* elf32-cris.c (cris_elf_howto_table): Likewise.
+	* elf32-crx.c (crx_elf_howto_table): Likewise.
+	* elf32-d10v.c (elf_d10v_howto_table): Likewise.
+	* elf32-d30v.c (elf_d30v_howto_table): Likewise.
+	* elf32-dlx.c (dlx_elf_howto_table): Likewise.
+	* elf32-epiphany.c (epiphany_elf_howto_table): Likewise.
+	* elf32-fr30.c (fr30_elf_howto_table): Likewise.
+	* elf32-frv.c (elf32_frv_howto_table): Likewise.
+	* elf32-h8300.c (h8_elf_howto_table): Likewise.
+	* elf32-i370.c (i370_elf_howto_raw): Likewise.
+	* elf32-i386.c (elf_howto_table): Likewise.
+	* elf32-i860.c (elf32_i860_howto_table): Likewise.
+	* elf32-i960.c (elf32_i960_relocate): Likewise.
+	* elf32-ip2k.c (ip2k_elf_howto_table): Likewise.
+	* elf32-iq2000.c (iq2000_elf_howto_table): Likewise.
+	* elf32-lm32.c (lm32_elf_howto_table): Likewise.
+	* elf32-m32c.c (m32c_elf_howto_table): Likewise.
+	* elf32-m32r.c (m32r_elf_howto_table): Likewise.
+	* elf32-m68hc11.c (elf_m68hc11_howto_table): Likewise.
+	* elf32-m68hc12.c (elf_m68hc11_howto_table): Likewise.
+	* elf32-m68k.c (howto_table): Likewise.
+	* elf32-mcore.c (mcore_elf_howto_raw): Likewise.
+	* elf32-mep.c (mep_elf_howto_table): Likewise.
+	* elf32-metag.c (elf_metag_howto_table): Likewise.
+	* elf32-microblaze.c (microblaze_elf_howto_raw): Likewise.
+	* elf32-mips.c (elf_mips_howto_table_rel): Likewise.
+	* elf32-moxie.c (moxie_elf_howto_table): Likewise.
+	* elf32-msp430.c (elf_msp430_howto_table): Likewise.
+	* elf32-mt.c (mt_elf_howto_table): Likewise.
+	* elf32-nds32.c (nds32_elf_howto_table): Likewise.
+	* elf32-nios2.c (elf_nios2_howto_table_rel): Likewise.
+	* elf32-or1k.c (or1k_elf_howto_table): Likewise.
+	* elf32-pj.c (pj_elf_howto_table): Likewise.
+	* elf32-ppc.c (ppc_elf_howto_raw): Likewise.
+	* elf32-rl78.c (rl78_elf_howto_table): Likewise.
+	* elf32-rx.c (rx_elf_howto_table): Likewise.
+	* elf32-s390.c (elf_howto_table): Likewise.
+	* elf32-score.c (elf32_score_howto_table): Likewise.
+	* elf32-score7.c (elf32_score_howto_table): Likewise.
+	* elf32-sh-relocs.h (R_SH_NONE): Likewise.
+	* elf32-spu.c (elf_howto_table): Likewise.
+	* elf32-tic6x.c (elf32_tic6x_howto_table): Likewise.
+	* elf32-tilepro.c (tilepro_elf_howto_table): Likewise.
+	* elf32-v850.c (v850_elf_howto_table): Likewise.
+	* elf32-vax.c (howto_table): Likewise.
+	* elf32-visium.c (visium_elf_howto_table): Likewise.
+	* elf32-xc16x.c (xc16x_elf_howto_table): Likewise.
+	* elf32-xgate.c (elf_xgate_howto_table): Likewise.
+	* elf32-xstormy16.c (xstormy16_elf_howto_table): Likewise.
+	* elf32-xtensa.c (elf_howto_table): Likewise.
+	* elf64-alpha.c (elf64_alpha_howto_table): Likewise.
+	* elf64-mips.c (mips_elf64_howto_table_rel): Likewise.
+	* elf64-mmix.c (elf_mmix_howto_table): Likewise.
+	* elf64-ppc.c (ppc64_elf_howto_raw): Likewise.
+	* elf64-s390.c (elf_howto_table): Likewise.
+	* elf64-sh64.c (sh_elf64_howto_table): Likewise.
+	* elf64-x86-64.c (x86_64_elf_howto_table): Likewise.
+	* elfn32-mips.c (elf_mips_howto_table_rel): Likewise.
+	* elfnn-aarch64.c (elfNN_aarch64_howto_table): Likewise.
+	(elfNN_aarch64_howto_none): Likewise.
+	* elfxx-ia64.c (ia64_howto_table): Likewise.
+	* elfxx-sparc.c (_bfd_sparc_elf_howto_table): Likewise.
+	* elfxx-tilegx.c (tilegx_elf_howto_table): Likewise.
+	* nlm32-sparc.c (nlm32_sparc_howto_table): Likewise.
+
+2015-01-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/17847
+	* elf64-x86-64.c (elf_x86_64_relocate_section): Don't complain
+	about -fPIC if the symbol is undefined when building executable.
+
+2015-01-15  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/17512
+	* elf-m10300.c (mn10300_info_to_howto): Replace assertion with an
+	error message.  Never return an invalid howto pointer.
+	* elf32-cr16.c (cr16_info_to_howto): Likewise.
+	* elf32-crx.c (elf_crx_info_to_howto): Likewise.
+	* elf32-i370.c (i370_elf_info_to_howto): Likewise.
+	* elf32-mcore.c (mcore_elf_info_to_howto): Likewise.
+	* elf32-microblaze.c (microblaze_elf_info_to_howto): Likewise.
+	* elf32-mips.c (mips_elf32_rtype_to_howto): Likewise.
+	* elf32-pj.c (pj_elf_info_to_howto): Likewise.
+	* elf32-ppc.c (ppc_elf_info_to_howto): Likewise.
+	* elf32-spu.c (spu_elf_info_to_howto): Likewise.
+	* elf32-v850.c (v850_elf_info_to_howto_rela): Likewise.
+	* elf32-vax.c (rtype_to_howto): Likewise.
+	* elf64-alpha.c (elf64_alpha_info_to_howto): Likewise.
+	* elf64-mips.c (mips_elf64_rtype_to_howto): Likewise.
+	* elfn32-mips.c (sh_elf_info_to_howto): Likewise.
+	* elf32-sh.c (sh_elf_info_to_howto): Likewise.
+	(sh_elf_reloc): Check that the reloc is in range.
+	* reloc.c (bfd_perform_relocation): Check that the section is big
+	enough for the entire reloc.
+	(bfd_generic_get_relocated_section_contents): Report unexpected
+	return values from perform_reloc.
+
+2015-01-15  Nick Clifton  <nickc@redhat.com>
+
+	* elf32-msp430.c (msp430_elf_relax_section): Skip unhandled
+	relocs.  Include PC-relative adjustment for R_MSP430X_ABS16
+	relaxation.
+
+2015-01-15  Alan Modra  <amodra@gmail.com>
+
+	* elflink.c (_bfd_elf_link_omit_section_dynsym): Return true for
+	any output section matching a linker created dynobj section.
+
+2015-01-15  Alan Modra  <amodra@gmail.com>
+
+	PR 17842
+	* elflink.c (elf_link_output_sym): Assert elf_onesymtab set.
+	(bfd_elf_final_link): Always create a symbol table when emit_relocs.
+	Don't assign symtab file position unless symbols will be output.
+	Merge blocks with condition in common.  Don't call
+	elf_backend_output_arch_local_syms or elf_backend_output_arch_syms
+	unless other symbols are output.  Move assignment of symtab_shndx
+	file position.  Localize variable.
+
+2015-01-14  Jiong Wang  <jiong.wang@arm.com>
+
+	* elf32-arm.c (elf32_arm_final_link_relocate): Reject R_ARM_32/_NOI when
+	trying to defer them to runtime.
+
+2015-01-13  Thomas Preud'homme <thomas.preudhomme@arm.com>
+
+	* elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Use SYMBOLIC_BIND
+	to check if a symbol should be bound symbolically.
+
+2015-01-13  Jiong Wang  <jiong.wang@arm.com>
+
+	* elfnn-aarch64.c: (elfNN_aarch64_howto_table): Enable overflow check
+	for TLSLE_MOVW_TPREL_G2.
+
+2015-01-13  Jiong Wang  <jiong.wang@arm.com>
+
+	PR ld/17415
+	* elfnn-aarch64.c (elfNN_aarch64_howto_table): Mark
+	R_AARCH64_TLSLE_ADD_TPREL_HI12 as complain_overflow_unsigned.
+	* elfxx-aarch64.c (_bfd_aarch64_elf_resolve_relocation): Correct the
+	bit mask.
+
 2015-01-12  Terry Guo  <terry.guo@arm.com>
 
 	* elflink.c (_bfd_elf_gc_mark_debug_special_section_group): New
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/cofflink.c ./bfd/cofflink.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/cofflink.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/cofflink.c	2015-01-20 01:48:34.000000000 +0000
@@ -2789,7 +2789,7 @@ _bfd_coff_reloc_link_order (bfd *output_
 
       size = bfd_get_reloc_size (howto);
       buf = (bfd_byte *) bfd_zmalloc (size);
-      if (buf == NULL)
+      if (buf == NULL && size != 0)
 	return FALSE;
 
       rstat = _bfd_relocate_contents (howto, output_bfd,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/coff-sparc.c ./bfd/coff-sparc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/coff-sparc.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/coff-sparc.c	2015-01-20 01:48:34.000000000 +0000
@@ -74,7 +74,7 @@ bfd_coff_generic_reloc (bfd *abfd ATTRIB
 
 static reloc_howto_type coff_sparc_howto_table[] =
 {
-  HOWTO(R_SPARC_NONE,    0,0, 0,FALSE,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_NONE,    0,3, 0,FALSE,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
   HOWTO(R_SPARC_8,       0,0, 8,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_8",       FALSE,0,0x000000ff,TRUE),
   HOWTO(R_SPARC_16,      0,1,16,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_16",      FALSE,0,0x0000ffff,TRUE),
   HOWTO(R_SPARC_32,      0,2,32,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_32",      FALSE,0,0xffffffff,TRUE),
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/cpu-ns32k.c ./bfd/cpu-ns32k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/cpu-ns32k.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/cpu-ns32k.c	2015-01-20 01:48:34.000000000 +0000
@@ -585,8 +585,9 @@ _bfd_do_ns32k_reloc_contents (reloc_howt
   switch (size)
     {
     default:
-    case 0:
       abort ();
+    case 0:
+      return bfd_reloc_ok;
     case 1:
     case 2:
     case 4:
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/ecoff.c ./bfd/ecoff.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/ecoff.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/ecoff.c	2015-01-20 01:48:34.000000000 +0000
@@ -3999,7 +3999,7 @@ ecoff_reloc_link_order (bfd *output_bfd,
 
       size = bfd_get_reloc_size (rel.howto);
       buf = (bfd_byte *) bfd_zmalloc (size);
-      if (buf == NULL)
+      if (buf == NULL && size != 0)
 	return FALSE;
       rstat = _bfd_relocate_contents (rel.howto, output_bfd,
 				      (bfd_vma) addend, buf);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-arc.c ./bfd/elf32-arc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-arc.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-arc.c	2015-01-20 01:48:34.000000000 +0000
@@ -58,8 +58,8 @@ static reloc_howto_type elf_arc_howto_ta
   /* This reloc does nothing.  */
   HOWTO (R_ARC_NONE,		/* Type.  */
 	 0,			/* Rightshift.  */
-	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,			/* Bitsize.  */
+	 3,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 0,			/* Bitsize.  */
 	 FALSE,			/* PC_relative.  */
 	 0,			/* Bitpos.  */
 	 complain_overflow_bitfield, /* Complain_on_overflow.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-arm.c ./bfd/elf32-arm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-arm.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-arm.c	2015-01-20 01:48:34.000000000 +0000
@@ -79,7 +79,7 @@ static reloc_howto_type elf32_arm_howto_
   /* No relocation.  */
   HOWTO (R_ARM_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
@@ -8416,6 +8416,21 @@ elf32_arm_final_link_relocate (reloc_how
 	  Elf_Internal_Rela outrel;
 	  bfd_boolean skip, relocate;
 
+	  if ((r_type == R_ARM_REL32 || r_type == R_ARM_REL32_NOI)
+	      && !h->def_regular)
+	    {
+	      char *v = _("shared object");
+
+	      if (info->executable)
+		v = _("PIE executable");
+
+	      (*_bfd_error_handler)
+		(_("%B: relocation %s against external or undefined symbol `%s'"
+		   " can not be used when making a %s; recompile with -fPIC"), input_bfd,
+		 elf32_arm_howto_table_1[r_type].name, h->root.root.string, v);
+	      return bfd_reloc_notsupported;
+	    }
+
 	  *unresolved_reloc_p = FALSE;
 
 	  if (sreloc == NULL && globals->root.dynamic_sections_created)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-avr.c ./bfd/elf32-avr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-avr.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-avr.c	2015-01-20 01:48:34.000000000 +0000
@@ -121,11 +121,11 @@ static reloc_howto_type elf_avr_howto_ta
 {
   HOWTO (R_AVR_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield, /* complain_on_overflow */
+	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_AVR_NONE",		/* name */
 	 FALSE,			/* partial_inplace */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-bfin.c ./bfd/elf32-bfin.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-bfin.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-bfin.c	2015-01-20 01:48:34.000000000 +0000
@@ -423,11 +423,11 @@ static reloc_howto_type bfin_howto_table
   /* This reloc does nothing. .  */
   HOWTO (R_BFIN_UNUSED0,	/* type.  */
 	 0,			/* rightshift.  */
-	 2,			/* size (0 = byte, 1 = short, 2 = long).  */
-	 32,			/* bitsize.  */
+	 3,			/* size (0 = byte, 1 = short, 2 = long).  */
+	 0,			/* bitsize.  */
 	 FALSE,			/* pc_relative.  */
 	 0,			/* bitpos.  */
-	 complain_overflow_bitfield, /* complain_on_overflow.  */
+	 complain_overflow_dont, /* complain_on_overflow.  */
 	 bfd_elf_generic_reloc,	/* special_function.  */
 	 "R_BFIN_UNUSED0",	/* name.  */
 	 FALSE,			/* partial_inplace.  */
@@ -451,11 +451,11 @@ static reloc_howto_type bfin_howto_table
 
   HOWTO (R_BFIN_UNUSED1,	/* type.  */
 	 0,			/* rightshift.  */
-	 2,			/* size (0 = byte, 1 = short, 2 = long).  */
-	 32,			/* bitsize.  */
+	 3,			/* size (0 = byte, 1 = short, 2 = long).  */
+	 0,			/* bitsize.  */
 	 FALSE,			/* pc_relative.  */
 	 0,			/* bitpos.  */
-	 complain_overflow_bitfield, /* complain_on_overflow.  */
+	 complain_overflow_dont, /* complain_on_overflow.  */
 	 bfd_elf_generic_reloc,	/* special_function.  */
 	 "R_BFIN_UNUSED1",	/* name.  */
 	 FALSE,			/* partial_inplace.  */
@@ -581,8 +581,8 @@ static reloc_howto_type bfin_howto_table
 
   HOWTO (R_BFIN_UNUSEDB,	/* type.  */
 	 0,			/* rightshift.  */
-	 2,			/* size (0 = byte, 1 = short, 2 = long).  */
-	 32,			/* bitsize.  */
+	 3,			/* size (0 = byte, 1 = short, 2 = long).  */
+	 0,			/* bitsize.  */
 	 FALSE,			/* pc_relative.  */
 	 0,			/* bitpos.  */
 	 complain_overflow_dont, /* complain_on_overflow.  */
@@ -595,8 +595,8 @@ static reloc_howto_type bfin_howto_table
 
   HOWTO (R_BFIN_UNUSEDC,	/* type.  */
 	 0,			/* rightshift.  */
-	 2,			/* size (0 = byte, 1 = short, 2 = long).  */
-	 32,			/* bitsize.  */
+	 3,			/* size (0 = byte, 1 = short, 2 = long).  */
+	 0,			/* bitsize.  */
 	 FALSE,			/* pc_relative.  */
 	 0,			/* bitpos.  */
 	 complain_overflow_dont, /* complain_on_overflow.  */
@@ -1065,13 +1065,13 @@ bfin_bfd_reloc_type_lookup (bfd * abfd A
 			    bfd_reloc_code_real_type code)
 {
   unsigned int i;
-  unsigned int r_type = BFIN_RELOC_MIN;
+  unsigned int r_type = (unsigned int) -1;
 
-  for (i = sizeof (bfin_reloc_map) / sizeof (bfin_reloc_map[0]); --i;)
+  for (i = sizeof (bfin_reloc_map) / sizeof (bfin_reloc_map[0]); i--;)
     if (bfin_reloc_map[i].bfd_reloc_val == code)
       r_type = bfin_reloc_map[i].bfin_reloc_val;
 
-  if (r_type <= BFIN_RELOC_MAX && r_type > BFIN_RELOC_MIN)
+  if (r_type <= BFIN_RELOC_MAX)
     return &bfin_howto_table [r_type];
 
   else if (r_type >= BFIN_GNUEXT_RELOC_MIN && r_type <= BFIN_GNUEXT_RELOC_MAX)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-cr16.c ./bfd/elf32-cr16.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-cr16.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-cr16.c	2015-01-20 01:48:34.000000000 +0000
@@ -115,8 +115,8 @@ static reloc_howto_type cr16_elf_howto_t
 {
   HOWTO (R_CR16_NONE,              /* type */
          0,                        /* rightshift */
-         2,                        /* size */
-         32,                       /* bitsize */
+         3,                        /* size */
+         0,                        /* bitsize */
          FALSE,                    /* pc_relative */
          0,                        /* bitpos */
          complain_overflow_dont,   /* complain_on_overflow */
@@ -673,7 +673,13 @@ elf_cr16_info_to_howto (bfd *abfd ATTRIB
 {
   unsigned int r_type = ELF32_R_TYPE (dst->r_info);
 
-  BFD_ASSERT (r_type < (unsigned int) R_CR16_MAX);
+  if (r_type >= R_CR16_MAX)
+    {
+      (*_bfd_error_handler) (_("%A: unrecognised CR16 reloc number: %d"),
+			     abfd, r_type);
+      bfd_set_error (bfd_error_bad_value);
+      r_type = R_CR16_NONE;
+    }
   cache_ptr->howto = cr16_elf_howto_table + r_type;
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-cris.c ./bfd/elf32-cris.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-cris.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-cris.c	2015-01-20 01:48:34.000000000 +0000
@@ -40,11 +40,11 @@ static reloc_howto_type cris_elf_howto_t
   /* This reloc does nothing.  */
   HOWTO (R_CRIS_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield, /* complain_on_overflow */
+	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_CRIS_NONE",		/* name */
 	 FALSE,			/* partial_inplace */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-crx.c ./bfd/elf32-crx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-crx.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-crx.c	2015-01-20 01:48:34.000000000 +0000
@@ -82,8 +82,8 @@ static reloc_howto_type crx_elf_howto_ta
 {
   HOWTO (R_CRX_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size */
-	 32,			/* bitsize */
+	 3,			/* size */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
@@ -423,7 +423,13 @@ elf_crx_info_to_howto (bfd *abfd ATTRIBU
 		       Elf_Internal_Rela *dst)
 {
   unsigned int r_type = ELF32_R_TYPE (dst->r_info);
-  BFD_ASSERT (r_type < (unsigned int) R_CRX_MAX);
+  if (r_type >= R_CRX_MAX)
+    {
+      (*_bfd_error_handler) (_("%A: unrecognised CRX reloc number: %d"),
+			     abfd, r_type);
+      bfd_set_error (bfd_error_bad_value);
+      r_type = R_CRX_NONE;
+    }
   cache_ptr->howto = &crx_elf_howto_table[r_type];
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-d10v.c ./bfd/elf32-d10v.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-d10v.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-d10v.c	2015-01-20 01:48:34.000000000 +0000
@@ -33,8 +33,8 @@ static reloc_howto_type elf_d10v_howto_t
   /* This reloc does nothing.  */
   HOWTO (R_D10V_NONE,		/* Type.  */
 	 0,			/* Rightshift.  */
-	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,			/* Bitsize.  */
+	 3,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 0,			/* Bitsize.  */
 	 FALSE,			/* PC_relative.  */
 	 0,			/* Bitpos.  */
 	 complain_overflow_dont,/* Complain_on_overflow.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-d30v.c ./bfd/elf32-d30v.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-d30v.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-d30v.c	2015-01-20 01:48:34.000000000 +0000
@@ -254,11 +254,11 @@ static reloc_howto_type elf_d30v_howto_t
   /* This reloc does nothing.  */
   HOWTO (R_D30V_NONE,		/* Type.  */
 	 0,			/* Rightshift.  */
-	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,			/* Bitsize.  */
+	 3,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 0,			/* Bitsize.  */
 	 FALSE,			/* PC_relative.  */
 	 0,			/* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 complain_overflow_dont, /* Complain_on_overflow.  */
 	 bfd_elf_generic_reloc,	/* Special_function.  */
 	 "R_D30V_NONE",		/* Name.  */
 	 FALSE,			/* Partial_inplace.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-dlx.c ./bfd/elf32-dlx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-dlx.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-dlx.c	2015-01-20 01:48:34.000000000 +0000
@@ -237,7 +237,7 @@ static reloc_howto_type dlx_elf_howto_ta
   /* No relocation.  */
   HOWTO (R_DLX_NONE,            /* Type. */
 	 0,                     /* Rightshift.  */
-	 0,                     /* size (0 = byte, 1 = short, 2 = long).  */
+	 3,                     /* size (0 = byte, 1 = short, 2 = long).  */
 	 0,                     /* Bitsize.  */
 	 FALSE,                 /* PC_relative.  */
 	 0,                     /* Bitpos.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-epiphany.c ./bfd/elf32-epiphany.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-epiphany.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-epiphany.c	2015-01-20 01:48:34.000000000 +0000
@@ -63,7 +63,7 @@ static reloc_howto_type epiphany_elf_how
 	  pr)                   /* pcrel_offset */
 
   /* This reloc does nothing.  */
-  AHOW (R_EPIPHANY_NONE,    0, 0,32, FALSE, 0, complain_overflow_dont,     "R_EPIPHANY_NONE",        0,          0),
+  AHOW (R_EPIPHANY_NONE,    0, 3,0, FALSE, 0, complain_overflow_dont,     "R_EPIPHANY_NONE",        0,          0),
 
   /* 8 bit absolute (not likely) */
   AHOW (R_EPIPHANY_8,       0, 0, 8, FALSE, 0, complain_overflow_bitfield, "R_EPIPHANY_8",      0x000000ff, 0x000000ff),
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-fr30.c ./bfd/elf32-fr30.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-fr30.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-fr30.c	2015-01-20 01:48:34.000000000 +0000
@@ -37,11 +37,11 @@ static reloc_howto_type fr30_elf_howto_t
   /* This reloc does nothing.  */
   HOWTO (R_FR30_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield, /* complain_on_overflow */
+	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_FR30_NONE",		/* name */
 	 FALSE,			/* partial_inplace */
@@ -343,7 +343,7 @@ fr30_reloc_type_lookup (bfd *abfd ATTRIB
   unsigned int i;
 
   for (i = sizeof (fr30_reloc_map) / sizeof (fr30_reloc_map[0]);
-       --i;)
+       i--;)
     if (fr30_reloc_map [i].bfd_reloc_val == code)
       return & fr30_elf_howto_table [fr30_reloc_map[i].fr30_reloc_val];
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-frv.c ./bfd/elf32-frv.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-frv.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-frv.c	2015-01-20 01:48:34.000000000 +0000
@@ -34,11 +34,11 @@ static reloc_howto_type elf32_frv_howto_
   /* This reloc does nothing.  */
   HOWTO (R_FRV_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield, /* complain_on_overflow */
+	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_FRV_NONE",		/* name */
 	 FALSE,			/* partial_inplace */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-h8300.c ./bfd/elf32-h8300.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-h8300.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-h8300.c	2015-01-20 01:48:34.000000000 +0000
@@ -61,7 +61,7 @@ static reloc_howto_type h8_elf_howto_tab
 #define R_H8_NONE_X 0
   HOWTO (R_H8_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-i370.c ./bfd/elf32-i370.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-i370.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-i370.c	2015-01-20 01:48:34.000000000 +0000
@@ -40,11 +40,11 @@ static reloc_howto_type i370_elf_howto_r
   /* This reloc does nothing.  */
   HOWTO (R_I370_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield, /* complain_on_overflow */
+	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_I370_NONE",		/* name */
 	 FALSE,			/* partial_inplace */
@@ -294,12 +294,21 @@ i370_elf_info_to_howto (bfd *abfd ATTRIB
 			arelent *cache_ptr,
 			Elf_Internal_Rela *dst)
 {
+  unsigned int r_type;
+
   if (!i370_elf_howto_table[ R_I370_ADDR31 ])
     /* Initialize howto table.  */
     i370_elf_howto_init ();
 
-  BFD_ASSERT (ELF32_R_TYPE (dst->r_info) < (unsigned int) R_I370_max);
-  cache_ptr->howto = i370_elf_howto_table[ELF32_R_TYPE (dst->r_info)];
+  r_type = ELF32_R_TYPE (dst->r_info);
+  if (r_type >= R_I370_max)
+    {
+      (*_bfd_error_handler) (_("%A: unrecognised I370 reloc number: %d"),
+			     abfd, r_type);
+      bfd_set_error (bfd_error_bad_value);
+      r_type = R_I370_NONE;
+    }
+  cache_ptr->howto = i370_elf_howto_table[r_type];
 }
 
 /* Hack alert --  the following several routines look generic to me ...
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-i386.c ./bfd/elf32-i386.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-i386.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-i386.c	2015-01-20 01:48:34.000000000 +0000
@@ -37,7 +37,7 @@
 
 static reloc_howto_type elf_howto_table[]=
 {
-  HOWTO(R_386_NONE, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_386_NONE, 0, 3, 0, FALSE, 0, complain_overflow_dont,
 	bfd_elf_generic_reloc, "R_386_NONE",
 	TRUE, 0x00000000, 0x00000000, FALSE),
   HOWTO(R_386_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-i860.c ./bfd/elf32-i860.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-i860.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-i860.c	2015-01-20 01:48:34.000000000 +0000
@@ -264,11 +264,11 @@ static reloc_howto_type elf32_i860_howto
   /* This relocation does nothing.  */
   HOWTO (R_860_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield, /* complain_on_overflow */
+	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_860_NONE",		/* name */
 	 FALSE,			/* partial_inplace */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-i960.c ./bfd/elf32-i960.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-i960.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-i960.c	2015-01-20 01:48:34.000000000 +0000
@@ -83,7 +83,7 @@ elf32_i960_relocate (bfd *abfd ATTRIBUTE
 
 static reloc_howto_type elf_howto_table[]=
 {
-  HOWTO (R_960_NONE, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+  HOWTO (R_960_NONE, 0, 3, 0, FALSE, 0, complain_overflow_dont,
 	 elf32_i960_relocate, "R_960_NONE", TRUE,
 	 0x00000000, 0x00000000, FALSE),
   EMPTY_HOWTO (1),
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-ip2k.c ./bfd/elf32-ip2k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-ip2k.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-ip2k.c	2015-01-20 01:48:34.000000000 +0000
@@ -141,7 +141,7 @@ static reloc_howto_type ip2k_elf_howto_t
           pr)                   /* pcrel_offset */
 
   /* This reloc does nothing.  */
-  IP2K_HOWTO (R_IP2K_NONE, 0,2,32, FALSE, 0, "R_IP2K_NONE", 0, 0),
+  IP2K_HOWTO (R_IP2K_NONE, 0,3,0, FALSE, 0, "R_IP2K_NONE", 0, 0),
   /* A 16 bit absolute relocation.  */
   IP2K_HOWTO (R_IP2K_16, 0,1,16, FALSE, 0, "R_IP2K_16", 0, 0xffff),
   /* A 32 bit absolute relocation.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-iq2000.c ./bfd/elf32-iq2000.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-iq2000.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-iq2000.c	2015-01-20 01:48:34.000000000 +0000
@@ -34,11 +34,11 @@ static reloc_howto_type iq2000_elf_howto
 
   HOWTO (R_IQ2000_NONE,		     /* type */
 	 0,			     /* rightshift */
-	 2,			     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,			     /* bitsize */
+	 3,			     /* size (0 = byte, 1 = short, 2 = long) */
+	 0,			     /* bitsize */
 	 FALSE,			     /* pc_relative */
 	 0,			     /* bitpos */
-	 complain_overflow_bitfield, /* complain_on_overflow */
+	 complain_overflow_dont,     /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	     /* special_function */
 	 "R_IQ2000_NONE",	     /* name */
 	 FALSE,			     /* partial_inplace */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-lm32.c ./bfd/elf32-lm32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-lm32.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-lm32.c	2015-01-20 01:48:34.000000000 +0000
@@ -262,11 +262,11 @@ static reloc_howto_type lm32_elf_howto_t
   /* This reloc does nothing.  */
   HOWTO (R_LM32_NONE,               /* type */
          0,                         /* rightshift */
-         2,                         /* size (0 = byte, 1 = short, 2 = long) */
-         32,                        /* bitsize */
+         3,                         /* size (0 = byte, 1 = short, 2 = long) */
+         0,                         /* bitsize */
          FALSE,                     /* pc_relative */
          0,                         /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
+         complain_overflow_dont,    /* complain_on_overflow */
          bfd_elf_generic_reloc,     /* special_function */
          "R_LM32_NONE",             /* name */
          FALSE,                     /* partial_inplace */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-m32c.c ./bfd/elf32-m32c.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-m32c.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-m32c.c	2015-01-20 01:48:34.000000000 +0000
@@ -47,11 +47,11 @@ static reloc_howto_type m32c_elf_howto_t
   /* This reloc does nothing.  */
   HOWTO (R_M32C_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield, /* complain_on_overflow */
+	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_M32C_NONE",		/* name */
 	 FALSE,			/* partial_inplace */
@@ -264,7 +264,7 @@ m32c_reloc_type_lookup
 {
   unsigned int i;
 
-  for (i = ARRAY_SIZE (m32c_reloc_map); --i;)
+  for (i = ARRAY_SIZE (m32c_reloc_map); i--;)
     if (m32c_reloc_map [i].bfd_reloc_val == code)
       return & m32c_elf_howto_table [m32c_reloc_map[i].m32c_reloc_val];
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-m32r.c ./bfd/elf32-m32r.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-m32r.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-m32r.c	2015-01-20 01:48:34.000000000 +0000
@@ -474,11 +474,11 @@ static reloc_howto_type m32r_elf_howto_t
   /* This reloc does nothing.  */
   HOWTO (R_M32R_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield, /* complain_on_overflow */
+	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_M32R_NONE",		/* name */
 	 FALSE,			/* partial_inplace */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-m68hc11.c ./bfd/elf32-m68hc11.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-m68hc11.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-m68hc11.c	2015-01-20 01:48:34.000000000 +0000
@@ -65,8 +65,8 @@ static reloc_howto_type elf_m68hc11_howt
   /* This reloc does nothing.  */
   HOWTO (R_M68HC11_NONE,	/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-m68hc12.c ./bfd/elf32-m68hc12.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-m68hc12.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-m68hc12.c	2015-01-20 01:48:34.000000000 +0000
@@ -107,8 +107,8 @@ static reloc_howto_type elf_m68hc11_howt
   /* This reloc does nothing.  */
   HOWTO (R_M68HC11_NONE,	/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-m68k.c ./bfd/elf32-m68k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-m68k.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-m68k.c	2015-01-20 01:48:34.000000000 +0000
@@ -31,7 +31,7 @@ elf_m68k_discard_copies (struct elf_link
 
 static reloc_howto_type howto_table[] =
 {
-  HOWTO(R_68K_NONE,       0, 0, 0, FALSE,0, complain_overflow_dont,     bfd_elf_generic_reloc, "R_68K_NONE",      FALSE, 0, 0x00000000,FALSE),
+  HOWTO(R_68K_NONE,       0, 3, 0, FALSE,0, complain_overflow_dont,     bfd_elf_generic_reloc, "R_68K_NONE",      FALSE, 0, 0x00000000,FALSE),
   HOWTO(R_68K_32,         0, 2,32, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_32",        FALSE, 0, 0xffffffff,FALSE),
   HOWTO(R_68K_16,         0, 1,16, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_16",        FALSE, 0, 0x0000ffff,FALSE),
   HOWTO(R_68K_8,          0, 0, 8, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_8",         FALSE, 0, 0x000000ff,FALSE),
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-mcore.c ./bfd/elf32-mcore.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-mcore.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-mcore.c	2015-01-20 01:48:34.000000000 +0000
@@ -110,11 +110,11 @@ static reloc_howto_type mcore_elf_howto_
   /* This reloc does nothing.  */
   HOWTO (R_MCORE_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield,  /* complain_on_overflow */
+	 complain_overflow_dont,  /* complain_on_overflow */
 	 NULL,                  /* special_function */
 	 "R_MCORE_NONE",	/* name */
 	 FALSE,			/* partial_inplace */
@@ -340,13 +340,22 @@ mcore_elf_info_to_howto (bfd * abfd ATTR
 			 arelent * cache_ptr,
 			 Elf_Internal_Rela * dst)
 {
+  unsigned int r_type;
+
   if (! mcore_elf_howto_table [R_MCORE_PCRELIMM8BY4])
     /* Initialize howto table if needed.  */
     mcore_elf_howto_init ();
 
-  BFD_ASSERT (ELF32_R_TYPE (dst->r_info) < (unsigned int) R_MCORE_max);
+  r_type = ELF32_R_TYPE (dst->r_info);
+  if (r_type >= R_MCORE_max)
+    {
+      (*_bfd_error_handler) (_("%A: unrecognised MCore reloc number: %d"),
+			     abfd, r_type);
+      bfd_set_error (bfd_error_bad_value);
+      r_type = R_MCORE_NONE;
+    }
 
-  cache_ptr->howto = mcore_elf_howto_table [ELF32_R_TYPE (dst->r_info)];
+  cache_ptr->howto = mcore_elf_howto_table [r_type];
 }
 
 /* The RELOCATE_SECTION function is called by the ELF backend linker
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-mep.c ./bfd/elf32-mep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-mep.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-mep.c	2015-01-20 01:48:34.000000000 +0000
@@ -42,7 +42,7 @@ static bfd_reloc_status_type mep_reloc (
 static reloc_howto_type mep_elf_howto_table [] =
 {
   /* type, size, bits, leftshift, rightshift, pcrel, OD/OS/OU, mask.  */
-  MEPREL (R_MEP_NONE,     0,  0, 0, 0, 0, N, 0),
+  MEPREL (R_MEP_NONE,     3,  0, 0, 0, 0, N, 0),
   MEPREL (R_RELC,         0,  0, 0, 0, 0, N, 0),
   /* MEPRELOC:HOWTO */
     /* This section generated from bfd/mep-relocs.pl from include/elf/mep.h.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-metag.c ./bfd/elf32-metag.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-metag.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-metag.c	2015-01-20 01:48:34.000000000 +0000
@@ -142,7 +142,7 @@ static reloc_howto_type elf_metag_howto_
   /* No relocation.  */
   HOWTO (R_METAG_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-microblaze.c ./bfd/elf32-microblaze.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-microblaze.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-microblaze.c	2015-01-20 01:48:34.000000000 +0000
@@ -44,11 +44,11 @@ static reloc_howto_type microblaze_elf_h
    /* This reloc does nothing.  */
    HOWTO (R_MICROBLAZE_NONE,	/* Type.  */
           0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          32,			/* Bitsize.  */
+          3,			/* Size (0 = byte, 1 = short, 2 = long).  */
+          0,			/* Bitsize.  */
           FALSE,		/* PC_relative.  */
           0,			/* Bitpos.  */
-          complain_overflow_bitfield,  /* Complain on overflow.  */
+          complain_overflow_dont,  /* Complain on overflow.  */
           NULL,                  /* Special Function.  */
           "R_MICROBLAZE_NONE", 	/* Name.  */
           FALSE,		/* Partial Inplace.  */
@@ -179,11 +179,11 @@ static reloc_howto_type microblaze_elf_h
    /* This reloc does nothing.  Used for relaxation.  */
    HOWTO (R_MICROBLAZE_64_NONE,	/* Type.  */
           0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          32,			/* Bitsize.  */
+          3,			/* Size (0 = byte, 1 = short, 2 = long).  */
+          0,			/* Bitsize.  */
           TRUE,			/* PC_relative.  */
           0,			/* Bitpos.  */
-          complain_overflow_bitfield,  /* Complain on overflow.  */
+          complain_overflow_dont, /* Complain on overflow.  */
           NULL,                  /* Special Function.  */
           "R_MICROBLAZE_64_NONE",/* Name.  */
           FALSE,		/* Partial Inplace.  */
@@ -643,13 +643,22 @@ microblaze_elf_info_to_howto (bfd * abfd
 			      arelent * cache_ptr,
 			      Elf_Internal_Rela * dst)
 {
+  unsigned int r_type;
+
   if (!microblaze_elf_howto_table [R_MICROBLAZE_32])
     /* Initialize howto table if needed.  */
     microblaze_elf_howto_init ();
 
-  BFD_ASSERT (ELF32_R_TYPE (dst->r_info) < (unsigned int) R_MICROBLAZE_max);
+  r_type = ELF32_R_TYPE (dst->r_info);
+  if (r_type >= R_MICROBLAZE_max)
+    {
+      (*_bfd_error_handler) (_("%A: unrecognised MicroBlaze reloc number: %d"),
+			     abfd, r_type);
+      bfd_set_error (bfd_error_bad_value);
+      r_type = R_MICROBLAZE_NONE;
+    }
 
-  cache_ptr->howto = microblaze_elf_howto_table [ELF32_R_TYPE (dst->r_info)];
+  cache_ptr->howto = microblaze_elf_howto_table [r_type];
 }
 
 /* Microblaze ELF local labels start with 'L.' or '$L', not '.L'.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-mips.c ./bfd/elf32-mips.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-mips.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-mips.c	2015-01-20 01:48:34.000000000 +0000
@@ -107,7 +107,7 @@ static reloc_howto_type elf_mips_howto_t
   /* No relocation.  */
   HOWTO (R_MIPS_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
@@ -2204,7 +2204,12 @@ mips_elf32_rtype_to_howto (unsigned int 
 	return &elf_micromips_howto_table_rel[r_type - R_MICROMIPS_min];
       if (r_type >= R_MIPS16_min && r_type < R_MIPS16_max)
         return &elf_mips16_howto_table_rel[r_type - R_MIPS16_min];
-      BFD_ASSERT (r_type < (unsigned int) R_MIPS_max);
+      if (r_type >= (unsigned int) R_MIPS_max)
+	{
+	  (*_bfd_error_handler) (_("Unrecognised MIPS reloc number: %d"), r_type);
+	  bfd_set_error (bfd_error_bad_value);
+	  r_type = R_MIPS_NONE;
+	}
       return &elf_mips_howto_table_rel[r_type];
     }
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-moxie.c ./bfd/elf32-moxie.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-moxie.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-moxie.c	2015-01-20 01:48:34.000000000 +0000
@@ -34,11 +34,11 @@ static reloc_howto_type moxie_elf_howto_
   /* This reloc does nothing.  */
   HOWTO (R_MOXIE_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield, /* complain_on_overflow */
+	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_MOXIE_NONE",		/* name */
 	 FALSE,			/* partial_inplace */
@@ -99,7 +99,7 @@ moxie_reloc_type_lookup (bfd *abfd ATTRI
   unsigned int i;
 
   for (i = sizeof (moxie_reloc_map) / sizeof (moxie_reloc_map[0]);
-       --i;)
+       i--;)
     if (moxie_reloc_map [i].bfd_reloc_val == code)
       return & moxie_elf_howto_table [moxie_reloc_map[i].moxie_reloc_val];
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-msp430.c ./bfd/elf32-msp430.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-msp430.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-msp430.c	2015-01-20 01:48:34.000000000 +0000
@@ -30,11 +30,11 @@ static reloc_howto_type elf_msp430_howto
 {
   HOWTO (R_MSP430_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield,/* complain_on_overflow */
+	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_MSP430_NONE",	/* name */
 	 FALSE,			/* partial_inplace */
@@ -197,11 +197,11 @@ static reloc_howto_type elf_msp430x_howt
 {
   HOWTO (R_MSP430_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield,/* complain_on_overflow */
+	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_MSP430_NONE",	/* name */
 	 FALSE,			/* partial_inplace */
@@ -1921,7 +1921,7 @@ msp430_elf_relax_section (bfd * abfd, as
 	default:
 	  /* Not a conditional branch instruction.  */
 	  /* fprintf (stderr, "unrecog: %x\n", opcode); */
-	  goto error_return;
+	  continue;
 	}
 
       /* Note that we've changed the relocs, section contents, etc.  */
@@ -2162,6 +2162,7 @@ msp430_elf_relax_section (bfd * abfd, as
 	  {
 	    bfd_vma value = symval;
 
+	    value -= (sec->output_section->vma + sec->output_offset);
 	    value -= irel->r_offset;
 	    value += irel->r_addend;
 	   
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-mt.c ./bfd/elf32-mt.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-mt.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-mt.c	2015-01-20 01:48:34.000000000 +0000
@@ -48,8 +48,8 @@ static reloc_howto_type mt_elf_howto_tab
   /* This reloc does nothing.  */
   HOWTO (R_MT_NONE,           /* type */
           0,                      /* rightshift */
-          2,                      /* size (0 = byte, 1 = short, 2 = long) */
-          32,                     /* bitsize */
+          3,                      /* size (0 = byte, 1 = short, 2 = long) */
+          0,                      /* bitsize */
           FALSE,                  /* pc_relative */
           0,                      /* bitpos */
           complain_overflow_dont, /* complain_on_overflow */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-nds32.c ./bfd/elf32-nds32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-nds32.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-nds32.c	2015-01-20 01:48:34.000000000 +0000
@@ -321,11 +321,11 @@ static reloc_howto_type nds32_elf_howto_
   /* This reloc does nothing.  */
   HOWTO (R_NDS32_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield,	/* complain_on_overflow */
+	 complain_overflow_dont,	/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_NDS32_NONE",	/* name */
 	 FALSE,			/* partial_inplace */
@@ -4186,11 +4186,10 @@ nds32_relocate_contents (reloc_howto_typ
   switch (size)
     {
     default:
-    case 0:
-    case 1:
-    case 8:
       abort ();
       break;
+    case 0:
+      return bfd_reloc_ok;
     case 2:
       x = bfd_getb16 (location);
       break;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-nios2.c ./bfd/elf32-nios2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-nios2.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-nios2.c	2015-01-20 01:48:34.000000000 +0000
@@ -80,7 +80,7 @@ static reloc_howto_type elf_nios2_howto_
   /* No relocation.  */
   HOWTO (R_NIOS2_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
@@ -764,6 +764,7 @@ struct elf_reloc_map
 };
 
 static const struct elf_reloc_map nios2_reloc_map[] = {
+  {BFD_RELOC_NONE, R_NIOS2_NONE},
   {BFD_RELOC_NIOS2_S16, R_NIOS2_S16},
   {BFD_RELOC_NIOS2_U16, R_NIOS2_U16},
   {BFD_RELOC_16_PCREL, R_NIOS2_PCREL16},
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-or1k.c ./bfd/elf32-or1k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-or1k.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-or1k.c	2015-01-20 01:48:34.000000000 +0000
@@ -60,8 +60,8 @@ static reloc_howto_type or1k_elf_howto_t
   /* This reloc does nothing.  */
   HOWTO (R_OR1K_NONE,           /* type */
          0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         32,                    /* bitsize */
+         3,                     /* size (0 = byte, 1 = short, 2 = long) */
+         0,                     /* bitsize */
          FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
@@ -704,7 +704,7 @@ or1k_reloc_type_lookup (bfd * abfd ATTRI
 {
   unsigned int i;
 
-  for (i = ARRAY_SIZE (or1k_reloc_map); --i;)
+  for (i = ARRAY_SIZE (or1k_reloc_map); i--;)
     if (or1k_reloc_map[i].bfd_reloc_val == code)
       return & or1k_elf_howto_table[or1k_reloc_map[i].or1k_reloc_val];
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-pj.c ./bfd/elf32-pj.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-pj.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-pj.c	2015-01-20 01:48:34.000000000 +0000
@@ -113,7 +113,7 @@ static reloc_howto_type pj_elf_howto_tab
   /* No relocation.  */
   HOWTO (R_PJ_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
@@ -319,7 +319,13 @@ pj_elf_info_to_howto (bfd *abfd ATTRIBUT
 
   r = ELF32_R_TYPE (dst->r_info);
 
-  BFD_ASSERT (r < (unsigned int) R_PJ_max);
+  if (r >= R_PJ_max)
+    {
+      (*_bfd_error_handler) (_("%A: unrecognised PicoJava reloc number: %d"),
+			     abfd, r);
+      bfd_set_error (bfd_error_bad_value);
+      r = R_PJ_NONE;
+    }
 
   cache_ptr->howto = &pj_elf_howto_table[r];
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-ppc.c ./bfd/elf32-ppc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-ppc.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-ppc.c	2015-01-20 01:48:34.000000000 +0000
@@ -187,8 +187,8 @@ static reloc_howto_type ppc_elf_howto_ra
   /* This reloc does nothing.  */
   HOWTO (R_PPC_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
@@ -2019,19 +2019,28 @@ ppc_elf_info_to_howto (bfd *abfd ATTRIBU
 		       arelent *cache_ptr,
 		       Elf_Internal_Rela *dst)
 {
+  unsigned int r_type;
+
   /* Initialize howto table if not already done.  */
   if (!ppc_elf_howto_table[R_PPC_ADDR32])
     ppc_elf_howto_init ();
 
-  BFD_ASSERT (ELF32_R_TYPE (dst->r_info) < (unsigned int) R_PPC_max);
-  cache_ptr->howto = ppc_elf_howto_table[ELF32_R_TYPE (dst->r_info)];
+  r_type = ELF32_R_TYPE (dst->r_info);
+  if (r_type >= R_PPC_max)
+    {
+      (*_bfd_error_handler) (_("%A: unrecognised PPC reloc number: %d"),
+			     abfd, r_type);
+      bfd_set_error (bfd_error_bad_value);
+      r_type = R_PPC_NONE;
+    }
+  cache_ptr->howto = ppc_elf_howto_table[r_type];
 
   /* Just because the above assert didn't trigger doesn't mean that
      ELF32_R_TYPE (dst->r_info) is necessarily a valid relocation.  */
   if (!cache_ptr->howto)
     {
       (*_bfd_error_handler) (_("%B: invalid relocation type %d"),
-                             abfd, ELF32_R_TYPE (dst->r_info));
+                             abfd, r_type);
       bfd_set_error (bfd_error_bad_value);
 
       cache_ptr->howto = ppc_elf_howto_table[R_PPC_NONE];
@@ -2057,9 +2066,6 @@ ppc_elf_addr16_ha_reloc (bfd *abfd ATTRI
       return bfd_reloc_ok;
     }
 
-  if (reloc_entry->address > bfd_get_section_limit (abfd, input_section))
-    return bfd_reloc_outofrange;
-
   if (bfd_is_com_section (symbol->section))
     relocation = 0;
   else
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-rl78.c ./bfd/elf32-rl78.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-rl78.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-rl78.c	2015-01-20 01:48:34.000000000 +0000
@@ -37,7 +37,7 @@
 
 static reloc_howto_type rl78_elf_howto_table [] =
 {
-  RL78REL (NONE,         0,  0, 0, dont,     FALSE),
+  RL78REL (NONE,         3,  0, 0, dont,     FALSE),
   RL78REL (DIR32,        2, 32, 0, signed,   FALSE),
   RL78REL (DIR24S,       2, 24, 0, signed,   FALSE),
   RL78REL (DIR16,        1, 16, 0, dont,     FALSE),
@@ -246,7 +246,7 @@ rl78_reloc_type_lookup (bfd * abfd ATTRI
   if (code == BFD_RELOC_RL78_32_OP)
     return rl78_elf_howto_table + R_RL78_DIR32;
 
-  for (i = ARRAY_SIZE (rl78_reloc_map); --i;)
+  for (i = ARRAY_SIZE (rl78_reloc_map); i--;)
     if (rl78_reloc_map [i].bfd_reloc_val == code)
       return rl78_elf_howto_table + rl78_reloc_map[i].rl78_reloc_val;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-rx.c ./bfd/elf32-rx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-rx.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-rx.c	2015-01-20 01:48:34.000000000 +0000
@@ -49,7 +49,7 @@ void rx_dump_symtab (bfd *, void *, void
 
 static reloc_howto_type rx_elf_howto_table [] =
 {
-  RXREL (NONE,         0,  0, 0, dont,     FALSE),
+  RXREL (NONE,         3,  0, 0, dont,     FALSE),
   RXREL (DIR32,        2, 32, 0, signed,   FALSE),
   RXREL (DIR24S,       2, 24, 0, signed,   FALSE),
   RXREL (DIR16,        1, 16, 0, dont,     FALSE),
@@ -277,7 +277,7 @@ rx_reloc_type_lookup (bfd *             
   if (code == BFD_RELOC_RX_32_OP)
     return rx_elf_howto_table + R_RX_DIR32;
 
-  for (i = ARRAY_SIZE (rx_reloc_map); --i;)
+  for (i = ARRAY_SIZE (rx_reloc_map); i--;)
     if (rx_reloc_map [i].bfd_reloc_val == code)
       return rx_elf_howto_table + rx_reloc_map[i].rx_reloc_val;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-s390.c ./bfd/elf32-s390.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-s390.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-s390.c	2015-01-20 01:48:34.000000000 +0000
@@ -39,7 +39,7 @@ static reloc_howto_type elf_howto_table[
 {
   HOWTO (R_390_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = 2 byte, 2 = 4 byte) */
+	 3,			/* size (0 = byte, 1 = 2 byte, 2 = 4 byte) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-score7.c ./bfd/elf32-score7.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-score7.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-score7.c	2015-01-20 01:48:34.000000000 +0000
@@ -546,7 +546,7 @@ static reloc_howto_type elf32_score_howt
   /* No relocation.  */
   HOWTO (R_SCORE_NONE,          /* type */
          0,                     /* rightshift */
-         0,                     /* size (0 = byte, 1 = short, 2 = long) */
+         3,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
          FALSE,                 /* pc_relative */
          0,                     /* bitpos */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-score.c ./bfd/elf32-score.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-score.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-score.c	2015-01-20 01:48:34.000000000 +0000
@@ -645,7 +645,7 @@ static reloc_howto_type elf32_score_howt
   /* No relocation.  */
   HOWTO (R_SCORE_NONE,          /* type */
          0,                     /* rightshift */
-         0,                     /* size (0 = byte, 1 = short, 2 = long) */
+         3,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
          FALSE,                 /* pc_relative */
          0,                     /* bitpos */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-sh.c ./bfd/elf32-sh.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-sh.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-sh.c	2015-01-20 01:48:34.000000000 +0000
@@ -255,6 +255,11 @@ sh_elf_reloc (bfd *abfd, arelent *reloc_
       && bfd_is_und_section (symbol_in->section))
     return bfd_reloc_undefined;
 
+  /* PR 17512: file: 9891ca98.  */
+  if (addr * bfd_octets_per_byte (abfd) + bfd_get_reloc_size (reloc_entry->howto)
+      > bfd_get_section_limit_octets (abfd, input_section))
+    return bfd_reloc_outofrange;
+
   if (bfd_is_com_section (symbol_in->section))
     sym_value = 0;
   else
@@ -474,13 +479,19 @@ sh_elf_info_to_howto (bfd *abfd, arelent
 
   r = ELF32_R_TYPE (dst->r_info);
 
-  BFD_ASSERT (r < (unsigned int) R_SH_max);
-  BFD_ASSERT (r < R_SH_FIRST_INVALID_RELOC || r > R_SH_LAST_INVALID_RELOC);
-  BFD_ASSERT (r < R_SH_FIRST_INVALID_RELOC_2 || r > R_SH_LAST_INVALID_RELOC_2);
-  BFD_ASSERT (r < R_SH_FIRST_INVALID_RELOC_3 || r > R_SH_LAST_INVALID_RELOC_3);
-  BFD_ASSERT (r < R_SH_FIRST_INVALID_RELOC_4 || r > R_SH_LAST_INVALID_RELOC_4);
-  BFD_ASSERT (r < R_SH_FIRST_INVALID_RELOC_5 || r > R_SH_LAST_INVALID_RELOC_5);
-  BFD_ASSERT (r < R_SH_FIRST_INVALID_RELOC_6 || r > R_SH_LAST_INVALID_RELOC_6);
+  if (r >= R_SH_max
+      || (r >= R_SH_FIRST_INVALID_RELOC   && r <= R_SH_LAST_INVALID_RELOC)
+      || (r >= R_SH_FIRST_INVALID_RELOC_2 && r <= R_SH_LAST_INVALID_RELOC_2)
+      || (r >= R_SH_FIRST_INVALID_RELOC_3 && r <= R_SH_LAST_INVALID_RELOC_3)
+      || (r >= R_SH_FIRST_INVALID_RELOC_4 && r <= R_SH_LAST_INVALID_RELOC_4)
+      || (r >= R_SH_FIRST_INVALID_RELOC_5 && r <= R_SH_LAST_INVALID_RELOC_5)
+      || (r >= R_SH_FIRST_INVALID_RELOC_6 && r <= R_SH_LAST_INVALID_RELOC_6))
+    {
+      (*_bfd_error_handler) (_("%A: unrecognised SH reloc number: %d"),
+			     abfd, r);
+      bfd_set_error (bfd_error_bad_value);
+      r = R_SH_NONE;
+    }
 
   cache_ptr->howto = get_howto_table (abfd) + r;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-sh-relocs.h ./bfd/elf32-sh-relocs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-sh-relocs.h	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-sh-relocs.h	2015-01-20 01:48:34.000000000 +0000
@@ -20,7 +20,7 @@
 /* No relocation.  */
   HOWTO (R_SH_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-spu.c ./bfd/elf32-spu.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-spu.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-spu.c	2015-01-20 01:48:34.000000000 +0000
@@ -37,7 +37,7 @@ static bfd_reloc_status_type spu_elf_rel
    array, so it must be declared in the order of that type.  */
 
 static reloc_howto_type elf_howto_table[] = {
-  HOWTO (R_SPU_NONE,       0, 0,  0, FALSE,  0, complain_overflow_dont,
+  HOWTO (R_SPU_NONE,       0, 3,  0, FALSE,  0, complain_overflow_dont,
 	 bfd_elf_generic_reloc, "SPU_NONE",
 	 FALSE, 0, 0x00000000, FALSE),
   HOWTO (R_SPU_ADDR10,     4, 2, 10, FALSE, 14, complain_overflow_bitfield,
@@ -105,6 +105,8 @@ spu_elf_bfd_to_reloc_type (bfd_reloc_cod
   switch (code)
     {
     default:
+      return (enum elf_spu_reloc_type) -1;
+    case BFD_RELOC_NONE:
       return R_SPU_NONE;
     case BFD_RELOC_SPU_IMM10W:
       return R_SPU_ADDR10;
@@ -151,7 +153,14 @@ spu_elf_info_to_howto (bfd *abfd ATTRIBU
   enum elf_spu_reloc_type r_type;
 
   r_type = (enum elf_spu_reloc_type) ELF32_R_TYPE (dst->r_info);
-  BFD_ASSERT (r_type < R_SPU_max);
+  /* PR 17512: file: 90c2a92e.  */
+  if (r_type >= R_SPU_max)
+    {
+      (*_bfd_error_handler) (_("%A: unrecognised SPU reloc number: %d"),
+			     abfd, r_type);
+      bfd_set_error (bfd_error_bad_value);
+      r_type = R_SPU_NONE;
+    }
   cache_ptr->howto = &elf_howto_table[(int) r_type];
 }
 
@@ -161,7 +170,7 @@ spu_elf_reloc_type_lookup (bfd *abfd ATT
 {
   enum elf_spu_reloc_type r_type = spu_elf_bfd_to_reloc_type (code);
 
-  if (r_type == R_SPU_NONE)
+  if (r_type == (enum elf_spu_reloc_type) -1)
     return NULL;
 
   return elf_howto_table + r_type;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-tic6x.c ./bfd/elf32-tic6x.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-tic6x.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-tic6x.c	2015-01-20 01:48:34.000000000 +0000
@@ -152,7 +152,7 @@ static reloc_howto_type elf32_tic6x_howt
 {
   HOWTO (R_C6000_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
@@ -820,7 +820,7 @@ static reloc_howto_type elf32_tic6x_howt
 {
   HOWTO (R_C6000_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-tilepro.c ./bfd/elf32-tilepro.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-tilepro.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-tilepro.c	2015-01-20 01:48:34.000000000 +0000
@@ -34,11 +34,11 @@ static reloc_howto_type tilepro_elf_howt
   /* This reloc does nothing.  */
   HOWTO (R_TILEPRO_NONE,	/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield, /* complain_on_overflow */
+	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_TILEPRO_NONE",	/* name */
 	 FALSE,			/* partial_inplace */
@@ -774,7 +774,7 @@ tilepro_reloc_type_lookup (bfd * abfd AT
 {
   unsigned int i;
 
-  for (i = ARRAY_SIZE (tilepro_reloc_map); --i;)
+  for (i = ARRAY_SIZE (tilepro_reloc_map); i--;)
     {
       const reloc_map * entry;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-v850.c ./bfd/elf32-v850.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-v850.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-v850.c	2015-01-20 01:48:34.000000000 +0000
@@ -895,11 +895,11 @@ static reloc_howto_type v850_elf_howto_t
   /* This reloc does nothing.  */
   HOWTO (R_V850_NONE,			/* Type.  */
 	 0,				/* Rightshift.  */
-	 2,				/* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,				/* Bitsize.  */
+	 3,				/* Size (0 = byte, 1 = short, 2 = long).  */
+	 0,				/* Bitsize.  */
 	 FALSE,				/* PC_relative.  */
 	 0,				/* Bitpos.  */
-	 complain_overflow_bitfield,	/* Complain_on_overflow.  */
+	 complain_overflow_dont,	/* Complain_on_overflow.  */
 	 bfd_elf_generic_reloc,		/* Special_function.  */
 	 "R_V850_NONE",			/* Name.  */
 	 FALSE,				/* Partial_inplace.  */
@@ -1914,7 +1914,11 @@ v850_elf_info_to_howto_rela (bfd *abfd A
   unsigned int r_type;
 
   r_type = ELF32_R_TYPE (dst->r_info);
-  BFD_ASSERT (r_type < (unsigned int) R_V850_max);
+  if (r_type >= (unsigned int) R_V850_max)
+    {
+      _bfd_error_handler (_("%A: invalid V850 reloc number: %d"), abfd, r_type);
+      r_type = 0;
+    }
   cache_ptr->howto = &v850_elf_howto_table[r_type];
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-vax.c ./bfd/elf32-vax.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-vax.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-vax.c	2015-01-20 01:48:34.000000000 +0000
@@ -56,7 +56,7 @@ static bfd_boolean elf32_vax_print_priva
 static reloc_howto_type howto_table[] = {
   HOWTO (R_VAX_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
@@ -283,8 +283,17 @@ static void
 rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr,
 		Elf_Internal_Rela *dst)
 {
-  BFD_ASSERT (ELF32_R_TYPE(dst->r_info) < (unsigned int) R_VAX_max);
-  cache_ptr->howto = &howto_table[ELF32_R_TYPE(dst->r_info)];
+  unsigned int r_type;
+
+  r_type = ELF32_R_TYPE (dst->r_info);
+  if (r_type >= R_VAX_max)
+    {
+      (*_bfd_error_handler) (_("%A: unrecognised VAX reloc number: %d"),
+			     abfd, r_type);
+      bfd_set_error (bfd_error_bad_value);
+      r_type = R_VAX_NONE;
+    }
+  cache_ptr->howto = &howto_table[r_type];
 }
 
 #define elf_info_to_howto rtype_to_howto
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-visium.c ./bfd/elf32-visium.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-visium.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-visium.c	2015-01-20 01:48:34.000000000 +0000
@@ -33,11 +33,11 @@ static reloc_howto_type visium_elf_howto
   /* This reloc does nothing.  */
   HOWTO (R_VISIUM_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield,	/* complain_on_overflow */
+	 complain_overflow_dont,	/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_VISIUM_NONE",	/* name */
 	 FALSE,			/* partial_inplace */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-xc16x.c ./bfd/elf32-xc16x.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-xc16x.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-xc16x.c	2015-01-20 01:48:34.000000000 +0000
@@ -32,11 +32,11 @@ static reloc_howto_type xc16x_elf_howto_
   /* This reloc does nothing.  */
   HOWTO (R_XC16X_NONE,		/* type */
 	 0,			/* rightshift */
-	 1,			/* size (0 = byte, 1 = short, 2 = long) */
-	 16,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield, /* complain_on_overflow */
+	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_XC16X_NONE",	/* name */
 	 FALSE,			/* partial_inplace */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-xgate.c ./bfd/elf32-xgate.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-xgate.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-xgate.c	2015-01-20 01:48:34.000000000 +0000
@@ -52,8 +52,8 @@ static reloc_howto_type elf_xgate_howto_
   /* This reloc does nothing.  */
   HOWTO (R_XGATE_NONE, /* type */
 	 0, /* rightshift */
-	 2, /* size (0 = byte, 1 = short, 2 = long) */
-	 32, /* bitsize */
+	 3, /* size (0 = byte, 1 = short, 2 = long) */
+	 0, /* bitsize */
 	 FALSE, /* pc_relative */
 	 0, /* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-xstormy16.c ./bfd/elf32-xstormy16.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-xstormy16.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-xstormy16.c	2015-01-20 01:48:34.000000000 +0000
@@ -73,11 +73,11 @@ static reloc_howto_type xstormy16_elf_ho
   /* This reloc does nothing.  */
   HOWTO (R_XSTORMY16_NONE,	/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield, /* complain_on_overflow */
+	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_XSTORMY16_NONE",	/* name */
 	 FALSE,			/* partial_inplace */
@@ -334,7 +334,7 @@ xstormy16_reloc_type_lookup (bfd * abfd 
 {
   unsigned int i;
 
-  for (i = ARRAY_SIZE (xstormy16_reloc_map); --i;)
+  for (i = ARRAY_SIZE (xstormy16_reloc_map); i--;)
     {
       const reloc_map * entry;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-xtensa.c ./bfd/elf32-xtensa.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf32-xtensa.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf32-xtensa.c	2015-01-20 01:48:34.000000000 +0000
@@ -161,7 +161,7 @@ int elf32xtensa_no_literal_movement = 1;
 
 static reloc_howto_type elf_howto_table[] =
 {
-  HOWTO (R_XTENSA_NONE, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+  HOWTO (R_XTENSA_NONE, 0, 3, 0, FALSE, 0, complain_overflow_dont,
 	 bfd_elf_xtensa_reloc, "R_XTENSA_NONE",
 	 FALSE, 0, 0, FALSE),
   HOWTO (R_XTENSA_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf64-alpha.c ./bfd/elf64-alpha.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf64-alpha.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf64-alpha.c	2015-01-20 01:48:34.000000000 +0000
@@ -486,8 +486,8 @@ static reloc_howto_type elf64_alpha_howt
 {
   HOWTO (R_ALPHA_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
-	 8,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 TRUE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
@@ -1105,7 +1105,14 @@ elf64_alpha_info_to_howto (bfd *abfd ATT
 			   Elf_Internal_Rela *dst)
 {
   unsigned r_type = ELF64_R_TYPE(dst->r_info);
-  BFD_ASSERT (r_type < (unsigned int) R_ALPHA_max);
+
+  if (r_type >= R_ALPHA_max)
+    {
+      (*_bfd_error_handler) (_("%A: unrecognised Alpha reloc number: %d"),
+			     abfd, r_type);
+      bfd_set_error (bfd_error_bad_value);
+      r_type = R_ALPHA_NONE;
+    }
   cache_ptr->howto = &elf64_alpha_howto_table[r_type];
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf64-mips.c ./bfd/elf64-mips.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf64-mips.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf64-mips.c	2015-01-20 01:48:34.000000000 +0000
@@ -145,7 +145,7 @@ static reloc_howto_type mips_elf64_howto
   /* No relocation.  */
   HOWTO (R_MIPS_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
@@ -908,7 +908,7 @@ static reloc_howto_type mips_elf64_howto
   /* No relocation.  */
   HOWTO (R_MIPS_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
@@ -3585,7 +3585,12 @@ mips_elf64_rtype_to_howto (unsigned int 
 	  else
 	    return &mips16_elf64_howto_table_rel[r_type - R_MIPS16_min];
 	}
-      BFD_ASSERT (r_type < (unsigned int) R_MIPS_max);
+      if (r_type >= R_MIPS_max)
+	{
+	  (*_bfd_error_handler) (_("unrecognised MIPS reloc number: %d"), r_type);
+	  bfd_set_error (bfd_error_bad_value);
+	  r_type = R_MIPS_NONE;
+	}
       if (rela_p)
 	return &mips_elf64_howto_table_rela[r_type];
       else
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf64-mmix.c ./bfd/elf64-mmix.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf64-mmix.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf64-mmix.c	2015-01-20 01:48:34.000000000 +0000
@@ -192,11 +192,11 @@ static reloc_howto_type elf_mmix_howto_t
   /* This reloc does nothing.  */
   HOWTO (R_MMIX_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield, /* complain_on_overflow */
+	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_MMIX_NONE",		/* name */
 	 FALSE,			/* partial_inplace */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf64-ppc.c ./bfd/elf64-ppc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf64-ppc.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf64-ppc.c	2015-01-20 01:48:34.000000000 +0000
@@ -258,8 +258,8 @@ static reloc_howto_type ppc64_elf_howto_
   /* This reloc does nothing.  */
   HOWTO (R_PPC64_NONE,		/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
@@ -6232,7 +6232,7 @@ ppc64_elf_gc_mark_dynamic_ref (struct el
   if ((eh->elf.root.type == bfd_link_hash_defined
        || eh->elf.root.type == bfd_link_hash_defweak)
       && (eh->elf.ref_dynamic
-	  || (eh->elf.def_regular
+	  || ((eh->elf.def_regular || ELF_COMMON_DEF_P (&eh->elf))
 	      && ELF_ST_VISIBILITY (eh->elf.other) != STV_INTERNAL
 	      && ELF_ST_VISIBILITY (eh->elf.other) != STV_HIDDEN
 	      && (!info->executable
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf64-s390.c ./bfd/elf64-s390.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf64-s390.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf64-s390.c	2015-01-20 01:48:34.000000000 +0000
@@ -42,7 +42,7 @@ static reloc_howto_type elf_howto_table[
 {
   HOWTO (R_390_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = 2 byte, 2 = 4 byte) */
+	 3,			/* size (0 = byte, 1 = 2 byte, 2 = 4 byte) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf64-sh64.c ./bfd/elf64-sh64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf64-sh64.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf64-sh64.c	2015-01-20 01:48:34.000000000 +0000
@@ -105,7 +105,7 @@ static reloc_howto_type sh_elf64_howto_t
   /* No relocation.  */
   HOWTO (R_SH_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf64-x86-64.c ./bfd/elf64-x86-64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf64-x86-64.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf64-x86-64.c	2015-01-20 01:48:34.000000000 +0000
@@ -54,7 +54,7 @@
    special_function, name, partial_inplace, src_mask, dst_mask, pcrel_offset.  */
 static reloc_howto_type x86_64_elf_howto_table[] =
 {
-  HOWTO(R_X86_64_NONE, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+  HOWTO(R_X86_64_NONE, 0, 3, 0, FALSE, 0, complain_overflow_dont,
 	bfd_elf_generic_reloc, "R_X86_64_NONE",	FALSE, 0x00000000, 0x00000000,
 	FALSE),
   HOWTO(R_X86_64_64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
@@ -4063,10 +4063,14 @@ elf_x86_64_relocate_section (bfd *output
 	case R_X86_64_PC16:
 	case R_X86_64_PC32:
 	case R_X86_64_PC32_BND:
+	  /* Don't complain about -fPIC if the symbol is undefined when
+	     building executable.  */
 	  if (info->shared
 	      && (input_section->flags & SEC_ALLOC) != 0
 	      && (input_section->flags & SEC_READONLY) != 0
-	      && h != NULL)
+	      && h != NULL
+	      && !(info->executable
+		   && h->root.type == bfd_link_hash_undefined))
 	    {
 	      bfd_boolean fail = FALSE;
 	      bfd_boolean branch
@@ -4140,11 +4144,14 @@ direct:
 	    break;
 
 	   /* Don't copy a pc-relative relocation into the output file
-	      if the symbol needs copy reloc.  */
+	      if the symbol needs copy reloc or the symbol is undefined
+	      when building executable.  */
 	  if ((info->shared
 	       && !(info->executable
 		    && h != NULL
-		    && (h->needs_copy || eh->needs_copy)
+		    && (h->needs_copy
+			|| eh->needs_copy
+			|| h->root.type == bfd_link_hash_undefined)
 		    && IS_X86_64_PCREL_TYPE (r_type))
 	       && (h == NULL
 		   || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf-bfd.h ./bfd/elf-bfd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf-bfd.h	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf-bfd.h	2015-01-20 01:48:34.000000000 +0000
@@ -241,7 +241,8 @@ struct elf_link_hash_entry
   _bfd_elf_symbol_refs_local_p (H, INFO, 1)
 
 /* Common symbols that are turned into definitions don't have the
-   DEF_REGULAR flag set, so they might appear to be undefined.  */
+   DEF_REGULAR flag set, so they might appear to be undefined.
+   Symbols defined in linker scripts also don't have DEF_REGULAR set.  */
 #define ELF_COMMON_DEF_P(H) \
   (!(H)->def_regular							\
    && !(H)->def_dynamic							\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf-hppa.h ./bfd/elf-hppa.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf-hppa.h	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf-hppa.h	2015-01-20 01:48:34.000000000 +0000
@@ -47,7 +47,7 @@
 
 static reloc_howto_type elf_hppa_howto_table[ELF_HOWTO_TABLE_SIZE] =
 {
-  { R_PARISC_NONE, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+  { R_PARISC_NONE, 0, 3, 0, FALSE, 0, complain_overflow_dont,
     bfd_elf_generic_reloc, "R_PARISC_NONE", FALSE, 0, 0, FALSE },
 
   /* The values in DIR32 are to placate the check in
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elflink.c ./bfd/elflink.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elflink.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elflink.c	2015-01-20 01:48:34.000000000 +0000
@@ -762,6 +762,7 @@ _bfd_elf_link_omit_section_dynsym (bfd *
 				   asection *p)
 {
   struct elf_link_hash_table *htab;
+  asection *ip;
 
   switch (elf_section_data (p)->this_hdr.sh_type)
     {
@@ -777,18 +778,9 @@ _bfd_elf_link_omit_section_dynsym (bfd *
       if (htab->text_index_section != NULL)
 	return p != htab->text_index_section && p != htab->data_index_section;
 
-      if (strcmp (p->name, ".got") == 0
-	  || strcmp (p->name, ".got.plt") == 0
-	  || strcmp (p->name, ".plt") == 0)
-	{
-	  asection *ip;
-
-	  if (htab->dynobj != NULL
+      return (htab->dynobj != NULL
 	      && (ip = bfd_get_linker_section (htab->dynobj, p->name)) != NULL
-	      && ip->output_section == p)
-	    return TRUE;
-	}
-      return FALSE;
+	      && ip->output_section == p);
 
       /* There shouldn't be section relative relocations
 	 against any other section.  */
@@ -8568,6 +8560,8 @@ elf_link_output_sym (struct elf_final_li
      struct elf_link_hash_entry *);
   const struct elf_backend_data *bed;
 
+  BFD_ASSERT (elf_onesymtab (flinfo->output_bfd));
+
   bed = get_elf_backend_data (flinfo->output_bfd);
   output_symbol_hook = bed->elf_backend_link_output_symbol_hook;
   if (output_symbol_hook != NULL)
@@ -10335,7 +10329,7 @@ elf_reloc_link_order (bfd *output_bfd,
 
       size = (bfd_size_type) bfd_get_reloc_size (howto);
       buf = (bfd_byte *) bfd_zmalloc (size);
-      if (buf == NULL)
+      if (buf == NULL && size != 0)
 	return FALSE;
       rstat = _bfd_relocate_contents (howto, output_bfd, addend, buf);
       switch (rstat)
@@ -10609,7 +10603,6 @@ bfd_elf_final_link (bfd *abfd, struct bf
   bfd_size_type max_internal_reloc_count;
   bfd_size_type max_sym_count;
   bfd_size_type max_sym_shndx_count;
-  file_ptr off;
   Elf_Internal_Sym elfsym;
   unsigned int i;
   Elf_Internal_Shdr *symtab_hdr;
@@ -10844,7 +10837,7 @@ bfd_elf_final_link (bfd *abfd, struct bf
   /* Figure out the file positions for everything but the symbol table
      and the relocs.  We set symcount to force assign_section_numbers
      to create a symbol table.  */
-  bfd_get_symcount (abfd) = info->strip == strip_all ? 0 : 1;
+  bfd_get_symcount (abfd) = info->strip != strip_all || emit_relocs;
   BFD_ASSERT (! abfd->output_has_begun);
   if (! _bfd_elf_compute_section_file_positions (abfd, info))
     goto error_return;
@@ -10885,13 +10878,6 @@ bfd_elf_final_link (bfd *abfd, struct bf
   /* sh_offset is set just below.  */
   symtab_hdr->sh_addralign = (bfd_vma) 1 << bed->s->log_file_align;
 
-  off = elf_next_file_pos (abfd);
-  off = _bfd_elf_assign_file_position_for_section (symtab_hdr, off, TRUE);
-
-  /* Note that at this point elf_next_file_pos (abfd) is
-     incorrect.  We do not yet know the size of the .symtab section.
-     We correct next_file_pos below, after we do know the size.  */
-
   /* Allocate a buffer to hold swapped out symbols.  This is to avoid
      continuously seeking to the right position in the file.  */
   if (! info->keep_memory || max_sym_count < 20)
@@ -10914,11 +10900,18 @@ bfd_elf_final_link (bfd *abfd, struct bf
 	goto error_return;
     }
 
-  /* Start writing out the symbol table.  The first symbol is always a
-     dummy symbol.  */
-  if (info->strip != strip_all
-      || emit_relocs)
+  if (info->strip != strip_all || emit_relocs)
     {
+      file_ptr off = elf_next_file_pos (abfd);
+
+      _bfd_elf_assign_file_position_for_section (symtab_hdr, off, TRUE);
+
+      /* Note that at this point elf_next_file_pos (abfd) is
+	 incorrect.  We do not yet know the size of the .symtab section.
+	 We correct next_file_pos below, after we do know the size.  */
+
+      /* Start writing out the symbol table.  The first symbol is always a
+	 dummy symbol.  */
       elfsym.st_value = 0;
       elfsym.st_size = 0;
       elfsym.st_info = 0;
@@ -10928,16 +10921,13 @@ bfd_elf_final_link (bfd *abfd, struct bf
       if (elf_link_output_sym (&flinfo, NULL, &elfsym, bfd_und_section_ptr,
 			       NULL) != 1)
 	goto error_return;
-    }
 
-  /* Output a symbol for each section.  We output these even if we are
-     discarding local symbols, since they are used for relocs.  These
-     symbols have no names.  We store the index of each one in the
-     index field of the section, so that we can find it again when
-     outputting relocs.  */
-  if (info->strip != strip_all
-      || emit_relocs)
-    {
+      /* Output a symbol for each section.  We output these even if we are
+	 discarding local symbols, since they are used for relocs.  These
+	 symbols have no names.  We store the index of each one in the
+	 index field of the section, so that we can find it again when
+	 outputting relocs.  */
+
       elfsym.st_size = 0;
       elfsym.st_info = ELF_ST_INFO (STB_LOCAL, STT_SECTION);
       elfsym.st_other = 0;
@@ -11168,7 +11158,8 @@ bfd_elf_final_link (bfd *abfd, struct bf
 
   /* If backend needs to output some local symbols not present in the hash
      table, do it now.  */
-  if (bed->elf_backend_output_arch_local_syms)
+  if (bed->elf_backend_output_arch_local_syms
+      && (info->strip != strip_all || emit_relocs))
     {
       typedef int (*out_sym_func)
 	(void *, const char *, Elf_Internal_Sym *, asection *,
@@ -11278,7 +11269,8 @@ bfd_elf_final_link (bfd *abfd, struct bf
 
   /* If backend needs to output some symbols not present in the hash
      table, do it now.  */
-  if (bed->elf_backend_output_arch_syms)
+  if (bed->elf_backend_output_arch_syms
+      && (info->strip != strip_all || emit_relocs))
     {
       typedef int (*out_sym_func)
 	(void *, const char *, Elf_Internal_Sym *, asection *,
@@ -11294,31 +11286,29 @@ bfd_elf_final_link (bfd *abfd, struct bf
     return FALSE;
 
   /* Now we know the size of the symtab section.  */
-  off += symtab_hdr->sh_size;
-
-  symtab_shndx_hdr = &elf_tdata (abfd)->symtab_shndx_hdr;
-  if (symtab_shndx_hdr->sh_name != 0)
-    {
-      symtab_shndx_hdr->sh_type = SHT_SYMTAB_SHNDX;
-      symtab_shndx_hdr->sh_entsize = sizeof (Elf_External_Sym_Shndx);
-      symtab_shndx_hdr->sh_addralign = sizeof (Elf_External_Sym_Shndx);
-      amt = bfd_get_symcount (abfd) * sizeof (Elf_External_Sym_Shndx);
-      symtab_shndx_hdr->sh_size = amt;
-
-      off = _bfd_elf_assign_file_position_for_section (symtab_shndx_hdr,
-						       off, TRUE);
-
-      if (bfd_seek (abfd, symtab_shndx_hdr->sh_offset, SEEK_SET) != 0
-	  || (bfd_bwrite (flinfo.symshndxbuf, amt, abfd) != amt))
-	return FALSE;
-    }
-
-
   if (bfd_get_symcount (abfd) > 0)
     {
       /* Finish up and write out the symbol string table (.strtab)
 	 section.  */
       Elf_Internal_Shdr *symstrtab_hdr;
+      file_ptr off = symtab_hdr->sh_offset + symtab_hdr->sh_size;
+
+      symtab_shndx_hdr = &elf_tdata (abfd)->symtab_shndx_hdr;
+      if (symtab_shndx_hdr->sh_name != 0)
+	{
+	  symtab_shndx_hdr->sh_type = SHT_SYMTAB_SHNDX;
+	  symtab_shndx_hdr->sh_entsize = sizeof (Elf_External_Sym_Shndx);
+	  symtab_shndx_hdr->sh_addralign = sizeof (Elf_External_Sym_Shndx);
+	  amt = bfd_get_symcount (abfd) * sizeof (Elf_External_Sym_Shndx);
+	  symtab_shndx_hdr->sh_size = amt;
+
+	  off = _bfd_elf_assign_file_position_for_section (symtab_shndx_hdr,
+							   off, TRUE);
+
+	  if (bfd_seek (abfd, symtab_shndx_hdr->sh_offset, SEEK_SET) != 0
+	      || (bfd_bwrite (flinfo.symshndxbuf, amt, abfd) != amt))
+	    return FALSE;
+	}
 
       symstrtab_hdr = &elf_tdata (abfd)->strtab_hdr;
       /* sh_name was set in prep_headers.  */
@@ -11600,6 +11590,8 @@ bfd_elf_final_link (bfd *abfd, struct bf
 	    {
 	      /* The contents of the .dynstr section are actually in a
 		 stringtab.  */
+	      file_ptr off;
+
 	      off = elf_section_data (o->output_section)->this_hdr.sh_offset;
 	      if (bfd_seek (abfd, off, SEEK_SET) != 0
 		  || ! _bfd_elf_strtab_emit (abfd,
@@ -12121,7 +12113,7 @@ elf_gc_sweep_symbol (struct elf_link_has
   if (!h->mark
       && (((h->root.type == bfd_link_hash_defined
 	    || h->root.type == bfd_link_hash_defweak)
-	   && !(h->def_regular
+	   && !((h->def_regular || ELF_COMMON_DEF_P (h))
 		&& h->root.u.def.section->gc_mark))
 	  || h->root.type == bfd_link_hash_undefined
 	  || h->root.type == bfd_link_hash_undefweak))
@@ -12344,7 +12336,7 @@ bfd_elf_gc_mark_dynamic_ref_symbol (stru
   if ((h->root.type == bfd_link_hash_defined
        || h->root.type == bfd_link_hash_defweak)
       && (h->ref_dynamic
-	  || (h->def_regular
+	  || ((h->def_regular || ELF_COMMON_DEF_P (h))
 	      && ELF_ST_VISIBILITY (h->other) != STV_INTERNAL
 	      && ELF_ST_VISIBILITY (h->other) != STV_HIDDEN
 	      && (!info->executable
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf-m10200.c ./bfd/elf-m10200.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf-m10200.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf-m10200.c	2015-01-20 01:48:34.000000000 +0000
@@ -46,11 +46,11 @@ static reloc_howto_type elf_mn10200_howt
   /* Dummy relocation.  Does nothing.  */
   HOWTO (R_MN10200_NONE,
 	 0,
-	 2,
-	 16,
+	 3,
+	 0,
 	 FALSE,
 	 0,
-	 complain_overflow_bitfield,
+	 complain_overflow_dont,
 	 bfd_elf_generic_reloc,
 	 "R_MN10200_NONE",
 	 FALSE,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf-m10300.c ./bfd/elf-m10300.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elf-m10300.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elf-m10300.c	2015-01-20 01:48:34.000000000 +0000
@@ -142,11 +142,11 @@ static reloc_howto_type elf_mn10300_howt
   /* Dummy relocation.  Does nothing.  */
   HOWTO (R_MN10300_NONE,
 	 0,
-	 2,
-	 16,
+	 3,
+	 0,
 	 FALSE,
 	 0,
-	 complain_overflow_bitfield,
+	 complain_overflow_dont,
 	 bfd_elf_generic_reloc,
 	 "R_MN10300_NONE",
 	 FALSE,
@@ -806,7 +806,13 @@ mn10300_info_to_howto (bfd *abfd ATTRIBU
   unsigned int r_type;
 
   r_type = ELF32_R_TYPE (dst->r_info);
-  BFD_ASSERT (r_type < (unsigned int) R_MN10300_MAX);
+  if (r_type >= R_MN10300_MAX)
+    {
+      (*_bfd_error_handler) (_("%A: unrecognised MN10300 reloc number: %d"),
+			     abfd, r_type);
+      bfd_set_error (bfd_error_bad_value);
+      r_type = R_MN10300_NONE;
+    }
   cache_ptr->howto = elf_mn10300_howto_table + r_type;
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elfn32-mips.c ./bfd/elfn32-mips.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elfn32-mips.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elfn32-mips.c	2015-01-20 01:48:34.000000000 +0000
@@ -108,7 +108,7 @@ static reloc_howto_type elf_mips_howto_t
   /* No relocation.  */
   HOWTO (R_MIPS_NONE,		/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
@@ -3403,7 +3403,12 @@ mips_elf_n32_rtype_to_howto (unsigned in
 	  else
 	    return &elf_mips16_howto_table_rel[r_type - R_MIPS16_min];
 	}
-      BFD_ASSERT (r_type < (unsigned int) R_MIPS_max);
+      if (r_type >= R_MIPS_max)
+	{
+	  (*_bfd_error_handler) (_("unrecognised MIPS reloc number: %d"), r_type);
+	  bfd_set_error (bfd_error_bad_value);
+	  r_type = R_MIPS_NONE;
+	}
       if (rela_p)
 	return &elf_mips_howto_table_rela[r_type];
       else
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elfnn-aarch64.c ./bfd/elfnn-aarch64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elfnn-aarch64.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elfnn-aarch64.c	2015-01-20 01:48:34.000000000 +0000
@@ -296,7 +296,7 @@ static reloc_howto_type elfNN_aarch64_ho
 #if ARCH_SIZE == 64
   HOWTO (R_AARCH64_NULL,	/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
@@ -310,7 +310,7 @@ static reloc_howto_type elfNN_aarch64_ho
 #else
   HOWTO (R_AARCH64_NONE,	/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
@@ -968,7 +968,7 @@ static reloc_howto_type elfNN_aarch64_ho
 	 12,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_dont,	/* complain_on_overflow */
+	 complain_overflow_unsigned,	/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 AARCH64_R_STR (TLSLE_MOVW_TPREL_G2),	/* name */
 	 FALSE,			/* partial_inplace */
@@ -1038,7 +1038,7 @@ static reloc_howto_type elfNN_aarch64_ho
 	 12,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_dont,	/* complain_on_overflow */
+	 complain_overflow_unsigned,	/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 AARCH64_R_STR (TLSLE_ADD_TPREL_HI12),	/* name */
 	 FALSE,			/* partial_inplace */
@@ -1377,7 +1377,7 @@ static reloc_howto_type elfNN_aarch64_ho
 static reloc_howto_type elfNN_aarch64_howto_none =
   HOWTO (R_AARCH64_NONE,	/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
 	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
@@ -4337,7 +4337,7 @@ elfNN_aarch64_final_link_relocate (reloc
 	    memset (&outrel, 0, sizeof outrel);
 	  else if (h != NULL
 		   && h->dynindx != -1
-		   && (!info->shared || !info->symbolic || !h->def_regular))
+		   && (!info->shared || !SYMBOLIC_BIND (info, h) || !h->def_regular))
 	    outrel.r_info = ELFNN_R_INFO (h->dynindx, r_type);
 	  else
 	    {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elfxx-aarch64.c ./bfd/elfxx-aarch64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elfxx-aarch64.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elfxx-aarch64.c	2015-01-20 01:48:34.000000000 +0000
@@ -187,6 +187,8 @@ _bfd_aarch64_elf_put_addend (bfd *abfd,
   size = bfd_get_reloc_size (howto);
   switch (size)
     {
+    case 0:
+      return status;
     case 2:
       contents = bfd_get_16 (abfd, address);
       break;
@@ -450,7 +452,9 @@ _bfd_aarch64_elf_resolve_relocation (bfd
       value = (value + addend) & (bfd_vma) 0xffff0000;
       break;
     case BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12:
-      value = (value + addend) & (bfd_vma) 0xfff000;
+      /* Mask off low 12bits, keep all other high bits, so that the later
+	 generic code could check whehter there is overflow.  */
+      value = (value + addend) & ~(bfd_vma) 0xfff;
       break;
 
     case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0:
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elfxx-ia64.c ./bfd/elfxx-ia64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elfxx-ia64.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elfxx-ia64.c	2015-01-20 01:48:34.000000000 +0000
@@ -91,7 +91,7 @@ ia64_elf_reloc (bfd *abfd ATTRIBUTE_UNUS
    TYPE field.  */
 static reloc_howto_type ia64_howto_table[] =
   {
-    IA64_HOWTO (R_IA64_NONE,	    "NONE",	   0, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_NONE,	    "NONE",	   3, FALSE, TRUE),
 
     IA64_HOWTO (R_IA64_IMM14,	    "IMM14",	   0, FALSE, TRUE),
     IA64_HOWTO (R_IA64_IMM22,	    "IMM22",	   0, FALSE, TRUE),
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elfxx-mips.c ./bfd/elfxx-mips.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elfxx-mips.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elfxx-mips.c	2015-01-20 01:48:34.000000000 +0000
@@ -6194,11 +6194,13 @@ mips_elf_obtain_contents (reloc_howto_ty
 			  const Elf_Internal_Rela *relocation,
 			  bfd *input_bfd, bfd_byte *contents)
 {
-  bfd_vma x;
+  bfd_vma x = 0;
   bfd_byte *location = contents + relocation->r_offset;
+  unsigned int size = bfd_get_reloc_size (howto);
 
   /* Obtain the bytes.  */
-  x = bfd_get ((8 * bfd_get_reloc_size (howto)), input_bfd, location);
+  if (size != 0)
+    x = bfd_get (8 * size, input_bfd, location);
 
   return x;
 }
@@ -6223,6 +6225,7 @@ mips_elf_perform_relocation (struct bfd_
   bfd_vma x;
   bfd_byte *location;
   int r_type = ELF_R_TYPE (input_bfd, relocation->r_info);
+  unsigned int size;
 
   /* Figure out where the relocation is occurring.  */
   location = contents + relocation->r_offset;
@@ -6316,7 +6319,9 @@ mips_elf_perform_relocation (struct bfd_
     }
 
   /* Put the value into the output.  */
-  bfd_put (8 * bfd_get_reloc_size (howto), input_bfd, x, location);
+  size = bfd_get_reloc_size (howto);
+  if (size != 0)
+    bfd_put (8 * size, input_bfd, x, location);
 
   _bfd_mips_elf_reloc_shuffle (input_bfd, r_type, !info->relocatable,
 			       location);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elfxx-sparc.c ./bfd/elfxx-sparc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elfxx-sparc.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elfxx-sparc.c	2015-01-20 01:48:34.000000000 +0000
@@ -209,7 +209,7 @@ sparc_elf_lox10_reloc (bfd *abfd, arelen
 
 static reloc_howto_type _bfd_sparc_elf_howto_table[] =
 {
-  HOWTO(R_SPARC_NONE,      0,0, 0,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_NONE,      0,3, 0,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
   HOWTO(R_SPARC_8,         0,0, 8,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_8",       FALSE,0,0x000000ff,TRUE),
   HOWTO(R_SPARC_16,        0,1,16,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_16",      FALSE,0,0x0000ffff,TRUE),
   HOWTO(R_SPARC_32,        0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_32",      FALSE,0,0xffffffff,TRUE),
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elfxx-tilegx.c ./bfd/elfxx-tilegx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/elfxx-tilegx.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/elfxx-tilegx.c	2015-01-20 01:48:34.000000000 +0000
@@ -72,11 +72,11 @@ static reloc_howto_type tilegx_elf_howto
   /* This reloc does nothing.  */
   HOWTO (R_TILEGX_NONE,	/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_bitfield, /* complain_on_overflow */
+	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_TILEGX_NONE",	/* name */
 	 FALSE,			/* partial_inplace */
@@ -921,7 +921,7 @@ tilegx_reloc_type_lookup (bfd * abfd ATT
 {
   unsigned int i;
 
-  for (i = ARRAY_SIZE (tilegx_reloc_map); --i;)
+  for (i = ARRAY_SIZE (tilegx_reloc_map); i--;)
     {
       const reloc_map * entry;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/linker.c ./bfd/linker.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/linker.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/linker.c	2015-01-20 01:48:34.000000000 +0000
@@ -2434,7 +2434,7 @@ _bfd_generic_reloc_link_order (bfd *abfd
 
       size = bfd_get_reloc_size (r->howto);
       buf = (bfd_byte *) bfd_zmalloc (size);
-      if (buf == NULL)
+      if (buf == NULL && size != 0)
 	return FALSE;
       rstat = _bfd_relocate_contents (r->howto, abfd,
 				      (bfd_vma) link_order->u.reloc.p->addend,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/nlm32-sparc.c ./bfd/nlm32-sparc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/nlm32-sparc.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/nlm32-sparc.c	2015-01-20 01:48:34.000000000 +0000
@@ -49,7 +49,7 @@ enum reloc_type
 
 static reloc_howto_type nlm32_sparc_howto_table[] =
 {
-  HOWTO (R_SPARC_NONE,    0,0, 0,FALSE,0,complain_overflow_dont,    0,"R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+  HOWTO (R_SPARC_NONE,    0,3, 0,FALSE,0,complain_overflow_dont,    0,"R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
   HOWTO (R_SPARC_8,       0,0, 8,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_8",       FALSE,0,0x000000ff,TRUE),
   HOWTO (R_SPARC_16,      0,1,16,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_16",      FALSE,0,0x0000ffff,TRUE),
   HOWTO (R_SPARC_32,      0,2,32,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_32",      FALSE,0,0xffffffff,TRUE),
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/pdp11.c ./bfd/pdp11.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/pdp11.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/pdp11.c	2015-01-20 01:48:34.000000000 +0000
@@ -3152,7 +3152,7 @@ aout_link_reloc_link_order (struct aout_
 
       size = bfd_get_reloc_size (howto);
       buf = bfd_zmalloc (size);
-      if (buf == NULL)
+      if (buf == NULL && size != 0)
 	return FALSE;
       r = MY_relocate_contents (howto, flaginfo->output_bfd,
 				pr->addend, buf);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/reloc.c ./bfd/reloc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/reloc.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/reloc.c	2015-01-20 01:48:34.000000000 +0000
@@ -579,7 +579,7 @@ bfd_perform_relocation (bfd *abfd,
 {
   bfd_vma relocation;
   bfd_reloc_status_type flag = bfd_reloc_ok;
-  bfd_size_type octets = reloc_entry->address * bfd_octets_per_byte (abfd);
+  bfd_size_type octets;
   bfd_vma output_base = 0;
   reloc_howto_type *howto = reloc_entry->howto;
   asection *reloc_target_output_section;
@@ -618,12 +618,12 @@ bfd_perform_relocation (bfd *abfd,
 	return cont;
     }
 
-  /* Is the address of the relocation really within the section?  */
-  if (reloc_entry->address > bfd_get_section_limit (abfd, input_section)
-      /* PR 17512: file: c146ab8b.
-	 PR 17512: file: 46dff27f.
-	 Include the size of the reloc in the test for out of range addresses.  */
-      - bfd_get_reloc_size (howto))
+  /* Is the address of the relocation really within the section?
+     Include the size of the reloc in the test for out of range addresses.
+     PR 17512: file: c146ab8b, 46dff27f, 38e53ebf.  */
+  octets = reloc_entry->address * bfd_octets_per_byte (abfd);
+  if (octets + bfd_get_reloc_size (howto)
+      > bfd_get_section_limit_octets (abfd, input_section))
     return bfd_reloc_outofrange;
 
   /* Work out which section the relocation is targeted at and the
@@ -973,7 +973,7 @@ bfd_install_relocation (bfd *abfd,
 {
   bfd_vma relocation;
   bfd_reloc_status_type flag = bfd_reloc_ok;
-  bfd_size_type octets = reloc_entry->address * bfd_octets_per_byte (abfd);
+  bfd_size_type octets;
   bfd_vma output_base = 0;
   reloc_howto_type *howto = reloc_entry->howto;
   asection *reloc_target_output_section;
@@ -1006,7 +1006,9 @@ bfd_install_relocation (bfd *abfd,
     }
 
   /* Is the address of the relocation really within the section?  */
-  if (reloc_entry->address > bfd_get_section_limit (abfd, input_section))
+  octets = reloc_entry->address * bfd_octets_per_byte (abfd);
+  if (octets + bfd_get_reloc_size (howto)
+      > bfd_get_section_limit_octets (abfd, input_section))
     return bfd_reloc_outofrange;
 
   /* Work out which section the relocation is targeted at and the
@@ -1341,9 +1343,11 @@ _bfd_final_link_relocate (reloc_howto_ty
 			  bfd_vma addend)
 {
   bfd_vma relocation;
+  bfd_size_type octets = address * bfd_octets_per_byte (input_bfd);
 
   /* Sanity check the address.  */
-  if (address > bfd_get_section_limit (input_bfd, input_section))
+  if (octets + bfd_get_reloc_size (howto)
+      > bfd_get_section_limit_octets (input_bfd, input_section))
     return bfd_reloc_outofrange;
 
   /* This function assumes that we are dealing with a basic relocation
@@ -1398,8 +1402,9 @@ _bfd_relocate_contents (reloc_howto_type
   switch (size)
     {
     default:
-    case 0:
       abort ();
+    case 0:
+      return bfd_reloc_ok;
     case 1:
       x = bfd_get_8 (input_bfd, location);
       break;
@@ -1566,8 +1571,9 @@ _bfd_clear_contents (reloc_howto_type *h
   switch (size)
     {
     default:
-    case 0:
       abort ();
+    case 0:
+      return;
     case 1:
       x = bfd_get_8 (input_bfd, location);
       break;
@@ -7691,7 +7697,11 @@ bfd_generic_get_relocated_section_conten
 		  goto error_return;
 
 		default:
-		  abort ();
+		  /* PR 17512; file: 90c2a92e.
+		     Report unexpected results, without aborting.  */
+		  link_info->callbacks->einfo
+		    (_("%X%P: %B(%A): relocation \"%R\" returns an unrecognized value %x\n"),
+		     abfd, input_section, * parent, r);
 		  break;
 		}
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/version.h ./bfd/version.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/version.h	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/version.h	2015-01-20 01:48:34.000000000 +0000
@@ -1,4 +1,4 @@
-#define BFD_VERSION_DATE 20150113
+#define BFD_VERSION_DATE 20150120
 #define BFD_VERSION @bfd_version@
 #define BFD_VERSION_STRING  @bfd_version_package@ @bfd_version_string@
 #define REPORT_BUGS_TO @report_bugs_to@
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/xcofflink.c ./bfd/xcofflink.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/bfd/xcofflink.c	2015-01-13 01:48:36.000000000 +0000
+++ ./bfd/xcofflink.c	2015-01-20 01:48:34.000000000 +0000
@@ -5738,7 +5738,7 @@ xcoff_reloc_link_order (bfd *output_bfd,
 
       size = bfd_get_reloc_size (howto);
       buf = bfd_zmalloc (size);
-      if (buf == NULL)
+      if (buf == NULL && size != 0)
 	return FALSE;
 
       rstat = _bfd_relocate_contents (howto, output_bfd, addend, buf);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/ChangeLog ./ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/ChangeLog	2015-01-13 01:48:36.000000000 +0000
+++ ./ChangeLog	2015-01-20 01:48:34.000000000 +0000
@@ -1,3 +1,8 @@
+2015-01-12  Anthony Green  <green@moxielogic.com>
+
+	* configure.ac: Don't disable gprof for moxie.
+	* configure: Rebuild.
+
 2015-01-03  Andrew Pinski  <apinski@cavium.com>
 
 	* Makefile.def (flags_to_pass): Pass OBJCOPY_FOR_TARGET also.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/configure ./configure
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/configure	2015-01-13 01:48:36.000000000 +0000
+++ ./configure	2015-01-20 01:48:35.000000000 +0000
@@ -3669,7 +3669,7 @@ case "${target}" in
     noconfigdirs="$noconfigdirs gdb"
     ;;
   moxie-*-*)
-    noconfigdirs="$noconfigdirs gprof"
+    noconfigdirs="$noconfigdirs"
     ;;
   h8300*-*-*)
     noconfigdirs="$noconfigdirs target-libgloss"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/configure.ac ./configure.ac
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/configure.ac	2015-01-13 01:52:24.000000000 +0000
+++ ./configure.ac	2015-01-20 01:55:01.000000000 +0000
@@ -993,7 +993,7 @@ case "${target}" in
     noconfigdirs="$noconfigdirs gdb"
     ;;
   moxie-*-*)
-    noconfigdirs="$noconfigdirs gprof"
+    noconfigdirs="$noconfigdirs"
     ;;
   h8300*-*-*)
     noconfigdirs="$noconfigdirs target-libgloss"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/djunpack.bat ./djunpack.bat
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/djunpack.bat	2015-01-13 01:53:22.000000000 +0000
+++ ./djunpack.bat	2015-01-20 01:56:12.000000000 +0000
@@ -17,8 +17,8 @@ Rem
 Rem The following 2 lines need to be changed with each new GDB release, to
 Rem be identical to the name of the top-level directory where the GDB
 Rem distribution unpacks itself.
-set GDBVER=$package-7.8.50.20150113
-if "%GDBVER%"=="$package-7.8.50.20150113" GoTo EnvOk
+set GDBVER=$package-7.9.50.20150120
+if "%GDBVER%"=="$package-7.9.50.20150120" GoTo EnvOk
 Rem If their environment space is too small, re-exec with a larger one
 command.com /e:4096 /c %0 %1
 GoTo End
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/ada-lang.c ./gdb/ada-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/ada-lang.c	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/ada-lang.c	2015-01-20 01:48:37.000000000 +0000
@@ -2928,8 +2928,19 @@ ada_array_bound_from_type (struct type *
   else
     type = arr_type;
 
-  index_type_desc = ada_find_parallel_type (type, "___XA");
-  ada_fixup_array_indexes_type (index_type_desc);
+  if (TYPE_FIXED_INSTANCE (type))
+    {
+      /* The array has already been fixed, so we do not need to
+	 check the parallel ___XA type again.  That encoding has
+	 already been applied, so ignore it now.  */
+      index_type_desc = NULL;
+    }
+  else
+    {
+      index_type_desc = ada_find_parallel_type (type, "___XA");
+      ada_fixup_array_indexes_type (index_type_desc);
+    }
+
   if (index_type_desc != NULL)
     index_type = to_fixed_range_type (TYPE_FIELD_TYPE (index_type_desc, n - 1),
 				      NULL);
@@ -5598,7 +5609,38 @@ ada_lookup_symbol_nonlocal (const struct
                             const struct block *block,
                             const domain_enum domain)
 {
-  return ada_lookup_symbol (name, block_static_block (block), domain, NULL);
+  struct symbol *sym;
+
+  sym = ada_lookup_symbol (name, block_static_block (block), domain, NULL);
+  if (sym != NULL)
+    return sym;
+
+  /* If we haven't found a match at this point, try the primitive
+     types.  In other languages, this search is performed before
+     searching for global symbols in order to short-circuit that
+     global-symbol search if it happens that the name corresponds
+     to a primitive type.  But we cannot do the same in Ada, because
+     it is perfectly legitimate for a program to declare a type which
+     has the same name as a standard type.  If looking up a type in
+     that situation, we have traditionally ignored the primitive type
+     in favor of user-defined types.  This is why, unlike most other
+     languages, we search the primitive types this late and only after
+     having searched the global symbols without success.  */
+
+  if (domain == VAR_DOMAIN)
+    {
+      struct gdbarch *gdbarch;
+
+      if (block == NULL)
+	gdbarch = target_gdbarch ();
+      else
+	gdbarch = block_gdbarch (block);
+      sym = language_lookup_primitive_type_as_symbol (langdef, gdbarch, name);
+      if (sym != NULL)
+	return sym;
+    }
+
+  return NULL;
 }
 
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/breakpoint.c ./gdb/breakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/breakpoint.c	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/breakpoint.c	2015-01-20 01:48:37.000000000 +0000
@@ -66,7 +66,7 @@
 #include "skip.h"
 #include "ax-gdb.h"
 #include "dummy-frame.h"
-
+#include "interps.h"
 #include "format.h"
 
 /* readline include files */
@@ -4635,7 +4635,7 @@ bpstat_do_actions_1 (bpstat *bsp)
 
       if (breakpoint_proceeded)
 	{
-	  if (target_can_async_p ())
+	  if (interpreter_async && target_can_async_p ())
 	    /* If we are in async mode, then the target might be still
 	       running, not stopped at any breakpoint, so nothing for
 	       us to do here -- just return to the event loop.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/ChangeLog ./gdb/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/ChangeLog	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/ChangeLog	2015-01-20 01:48:37.000000000 +0000
@@ -1,3 +1,226 @@
+2015-01-19  Eli Zaretskii  <eliz@gnu.org>
+
+	* configure.ac [*mingw32*]: Only add windows-termcap.o to
+	CONFIG_OBS if not building with a curses library.
+	* configure: Regenerate.
+
+	* windows-termcap.c: Include defs.h.  Make the whole body empty if
+	either one of HAVE_CURSES_H or HAVE_NCURSES_H or
+	HAVE_NCURSES_NCURSES_H is defined.
+
+2015-01-19  Joel Brobecker  <brobecker@adacore.com>
+
+	* rs6000-tdep.c (rs6000_gdbarch_init): Move divide operator
+	from end of line to start of next line.
+
+2015-01-17  Wei-cheng Wang  <cole945@gmail.com>
+
+	* ppc-linux-tdep.c (ppc_skip_trampoline_code):
+	Scan PLT stub backward for reverse debugging.
+	* ppc64-tdep.c (ppc64_skip_trampoline_code): Likewise.
+
+2015-01-17  Wei-cheng Wang  <cole945@gmail.com>
+	    Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* configure.tgt (powerpc*-*-linux): Add linux-record.o to
+	gdb_target_obs.
+	(ppc_linux_record_tdep, ppc64_linux_record_tdep): New for linux syscall
+	record.
+	(ppc_canonicalize_syscall, ppc_linux_syscall_record,
+	ppc_linux_record_signal, ppc_init_linux_record_tdep): New functions.
+	(ppc_linux_init_abi): Set process_record, process_record_signal.
+	* ppc-tdep.h (struct gdbarch_tdep): Add ppc_syscall_record and
+	ppc_linux_record_tdep to gdbarch_tdep.
+	(ppc_process_record): New declaration.
+	* rs6000-tdep.c (ppc_record_vsr, ppc_process_record_op4,
+	ppc_process_record_op19, ppc_process_record_op31,
+	ppc_process_record_op59, ppc_process_record_op60,
+	ppc_process_record_op63, ppc_process_record): New functions.
+
+2015-01-17  Wei-cheng Wang  <cole945@gmail.com>
+
+	* rs6000-tdep.c (rs6000_in_function_epilogue_p): Rename to
+	rs6000_in_function_epilogue_frame_p and add an argument
+	for frame_info.
+	(rs6000_epilogue_frame_cache, rs6000_epilogue_frame_this_id,
+	rs6000_epilogue_frame_prev_register, rs6000_epilogue_frame_sniffer):
+	New functions.
+	(rs6000_epilogue_frame_unwind): New.
+	(rs6000_gdbarch_init): Append epilogue unwinder.
+
+2015-01-16  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* nat/linux-personality.c: Replace "#ifndef
+	HAVE_DECL_ADDR_NO_RANDOMIZE" by "#if
+	!HAVE_DECL_ADDR_NO_RANDOMIZE", fixing a regression in RHEL-5
+	systems.
+
+2015-01-16  Eli Zaretskii  <eliz@gnu.org>
+
+	* tui/tui-win.c (tui_rehighlight_all, tui_set_var_cmd): New
+	functions.
+	(_initialize_tui_win) <border-kind, border-mode>:
+	<active-border-mode>: Use tui_set_var_cmd as the "set" function.
+	(tui_set_tab_width_command): Fix the commentary.
+
+	* tui/tui-win.h: Add prototype for tui_rehighlight_all.
+
+	* tui/tui-win.c (tui_scroll_left_command, tui_scroll_right_command):
+	Doc fix.
+	(tui_set_tab_width_command): Delete and recreate the source and
+	the disassembly windows, to show the effect of the changed tab
+	size immediately.
+
+	* tui/tui-data.h (LINE_PREFIX): Make shorter
+	(MAX_PID_WIDTH): Enlarge from 14 to 19, to leave enough space for
+	"Thread NNNNN.XXXX" thread ID notation on Windows.
+
+2015-01-16  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	Fix gcc-5 compilation.
+	* hppa-tdep.c (inst_saves_gr): Fix parentheses typo.
+
+2015-01-15  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* Makefile.in (HFILES_NO_SRCDIR): Add nat/linux-personality.h.
+	(linux-personality.o): New rule.
+	* common/common-defs.h: Include <stdint.h>.
+	* config/aarch64/linux.mh (NATDEPFILES): Include
+	linux-personality.o.
+	* config/alpha/alpha-linux.mh (NATDEPFILES): Likewise.
+	* config/arm/linux.mh (NATDEPFILES): Likewise.
+	* config/i386/linux64.mh (NATDEPFILES): Likewise.
+	* config/i386/linux.mh (NATDEPFILES): Likewise.
+	* config/ia64/linux.mh (NATDEPFILES): Likewise.
+	* config/m32r/linux.mh (NATDEPFILES): Likewise.
+	* config/m68k/linux.mh (NATDEPFILES): Likewise.
+	* config/mips/linux.mh (NATDEPFILES): Likewise.
+	* config/pa/linux.mh (NATDEPFILES): Likewise.
+	* config/powerpc/linux.mh (NATDEPFILES): Likewise.
+	* config/powerpc/ppc64-linux.mh (NATDEPFILES): Likewise.
+	* config/powerpc/spu-linux.mh (NATDEPFILES): Likewise.
+	* config/s390/linux.mh (NATDEPFILES): Likewise.
+	* config/sparc/linux64.mh (NATDEPFILES): Likewise.
+	* config/sparc/linux.mh (NATDEPFILES): Likewise.
+	* config/tilegx/linux.mh (NATDEPFILES): Likewise.
+	* config/xtensa/linux.mh (NATDEPFILES): Likewise.
+	* defs.h: Remove #include <stdint.h> (moved to
+	common/common-defs.h).
+	* linux-nat.c: Include nat/linux-personality.h.  Remove #include
+	<sys/personality.h>; do not define ADDR_NO_RANDOMIZE (moved to
+	nat/linux-personality.c).
+	(linux_nat_create_inferior): Remove code to disable address space
+	randomization (moved to nat/linux-personality.c).  Create cleanup
+	to disable address space randomization.
+	* nat/linux-personality.c: New file.
+	* nat/linux-personality.h: Likewise.
+
+2015-01-15  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* Makefile.in (ALLDEPFILES): Including common/mingw-strerror.c and
+	common/posix-strerror.c.
+	(posix-strerror.o): New rule.
+	(mingw-strerror.o): Likewise.
+	* common/common-utils.h (safe_strerror): Move prototype to here,
+	from utils.h.
+	* common/common.host: New file.
+	* common/mingw-strerror.c: Likewise.
+	* common/posix-strerror.c: Likewise.
+	* configure: Regenerated.
+	* configure.ac: Source common/common.host.  Add variable
+	common_host_obs to gdb_host_obs.
+	* contrib/ari/gdb_ari.sh: Mention gdb/common/mingw-strerror.c and
+	gdb/common/posix-strerror.c when warning about the use of
+	strerror.
+	* mingw-hdep.c (safe_strerror): Remove definition; move it to
+	common/mingw-strerror.c.
+	* posix-hdep.c (safe_strerror): Remove definition; move it to
+	common/posix-hdep.c.
+	* utils.h (safe_strerror): Remove prototype; move to
+	common/common-utils.h.
+
+2015-01-15  Joel Brobecker  <brobecker@adacore.com>
+
+	GDB 7.8.2 released.
+
+2015-01-15  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-lang.c (ada_array_bound_from_type): Ignore array's parallel
+	___XA type if the array has already been fixed.
+
+2015-01-14  Yao Qi  <yao@codesourcery.com>
+
+	* Makefile.in (ppc-linux.o): New rule.
+	* config/powerpc/ppc64-linux.mh (NATDEPFILES): Add ppc-linux.o.
+	* configure.ac: AC_CHECK_FUNCS(getauxval).
+	* config.in: Re-generated.
+	* configure: Re-generated.
+	* nat/ppc-linux.h [__powerpc64__] (ppc64_64bit_inferior_p):
+	Declare.
+	* nat/ppc-linux.c: New file.
+	* ppc-linux-nat.c (ppc_linux_target_wordsize) [__powerpc64__]:
+	Call ppc64_64bit_inferior_p.
+
+2015-01-14  Yao Qi  <yao@codesourcery.com>
+
+	* ppc-linux-nat.c (PT_ORIG_R3, PT_TRAP): Move to
+	nat/ppc-linux.h.
+	(PPC_FEATURE_CELL, PPC_FEATURE_BOOKE): Likewise.
+	(PPC_FEATURE_HAS_DFP): Likewise.
+	(PTRACE_GETVRREGS, PTRACE_SETVRREGS): Likewise.
+	(PTRACE_GETVSXREGS, PTRACE_SETVSXREGS): Likewise.
+	(PTRACE_GETEVRREGS, PTRACE_SETEVRREGS): Likewise.
+	Include "nat/ppc-linux.h".
+	* nat/ppc-linux.h: New file.
+	* Makefile.in (HFILES_NO_SRCDIR): Add nat/ppc-linux.h.
+
+2015-01-14  Pedro Alves  <palves@redhat.com>
+
+	PR gdb/17525
+	* breakpoint.c: Include "interps.h".
+	(bpstat_do_actions_1): Also check whether the interpreter is
+	async.
+
+2015-01-14  Pedro Alves  <palves@redhat.com>
+
+	PR cli/17828
+	* infrun.c (reinstall_readline_callback_handler_cleanup): Don't
+	reinstall if the interpreter is sync.
+
+2015-01-13  Doug Evans  <dje@google.com>
+
+	* objfiles.c (objfile_filename): New function.
+	* objfiles.h (objfile_filename): Declare it.
+	(objfile_name): Add function comment.
+	* python/py-objfile.c (objfpy_lookup_objfile_by_name): Try both the
+	bfd file name (which may be realpath'd), and the original name.
+
+2015-01-13  Joel Brobecker  <brobecker@adacore.com>
+
+	* NEWS: Create a new section for the next release branch.
+	Rename the section of the current branch, now that it has
+	been cut.
+
+2015-01-13  Joel Brobecker  <brobecker@adacore.com>
+
+	GDB 7.9 branch created (92fc2e6978d9a7c8324c7e851dbee59e22ec7a37):
+	* version.in: Bump version to 7.9.50.DATE-cvs.
+
+2015-01-13  Joel Brobecker  <brobecker@adacore.com>
+
+	* nat/linux-procfs.c (linux_proc_attach_tgid_threads):
+	Remove trailing new-line in argument of call to warning.
+
+2015-01-13  Joel Brobecker  <brobecker@adacore.com>
+
+	* linux-nat.c (attach_proc_task_lwp_callback): Remove trailing
+	new-line in argument of call to "warning".
+
+2015-01-13  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-lang.c (ada_lookup_symbol_nonlocal): If name not found
+	in static block, then try searching for primitive types.
+
 2015-01-12  Patrick Palka  <patrick@parcs.ath.cx>
 
 	* top.h (gdb_add_history): Declare.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/common/common-defs.h ./gdb/common/common-defs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/common/common-defs.h	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/common/common-defs.h	2015-01-20 01:48:37.000000000 +0000
@@ -31,6 +31,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <stddef.h>
+#include <stdint.h>
 #include <string.h>
 #include <errno.h>
 #include <alloca.h>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/common/common.host ./gdb/common/common.host
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/common/common.host	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/common.host	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,36 @@
+# Common object files to include for each host.
+#
+# Copyright (C) 2015 Free Software Foundation, Inc.
+#
+# This file is part of GDB.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Map host triplet into the common object files to be included by
+# GDB/gdbserver.  This is invoked from the autoconf generated
+# configure script.
+
+# This file sets the following shell variables:
+#  common_host_obs		host-specific .o files to include when building
+#  				GDB/gdbserver
+
+case "${host}" in
+
+*-mingw*)	common_host_obs=mingw-strerror.o
+		;;
+*)
+		common_host_obs=posix-strerror.o
+		;;
+
+esac
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/common/common-utils.h ./gdb/common/common-utils.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/common/common-utils.h	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/common/common-utils.h	2015-01-20 01:48:37.000000000 +0000
@@ -62,4 +62,10 @@ int xsnprintf (char *str, size_t size, c
 
 char *savestring (const char *ptr, size_t len);
 
+/* The strerror() function can return NULL for errno values that are
+   out of range.  Provide a "safe" version that always returns a
+   printable string.  */
+
+extern char *safe_strerror (int);
+
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/common/mingw-strerror.c ./gdb/common/mingw-strerror.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/common/mingw-strerror.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/mingw-strerror.c	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,64 @@
+/* Safe version of strerror for MinGW, for GDB, the GNU debugger.
+
+   Copyright (C) 2006-2015 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "common-defs.h"
+
+#include <windows.h>
+
+/* Implementation of safe_strerror as defined in common-utils.h.
+
+   The Windows runtime implementation of strerror never returns NULL,
+   but does return a useless string for anything above sys_nerr;
+   unfortunately this includes all socket-related error codes.
+   This replacement tries to find a system-provided error message.  */
+
+char *
+safe_strerror (int errnum)
+{
+  static char *buffer;
+  int len;
+
+  if (errnum >= 0 && errnum < sys_nerr)
+    return strerror (errnum);
+
+  if (buffer)
+    {
+      LocalFree (buffer);
+      buffer = NULL;
+    }
+
+  if (FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER
+		     | FORMAT_MESSAGE_FROM_SYSTEM,
+		     NULL, errnum,
+		     MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
+		     (LPTSTR) &buffer, 0, NULL) == 0)
+    {
+      static char buf[32];
+      xsnprintf (buf, sizeof buf, "(undocumented errno %d)", errnum);
+      return buf;
+    }
+
+  /* Windows error messages end with a period and a CR-LF; strip that
+     out.  */
+  len = strlen (buffer);
+  if (len > 3 && strcmp (buffer + len - 3, ".\r\n") == 0)
+    buffer[len - 3] = '\0';
+
+  return buffer;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/common/posix-strerror.c ./gdb/common/posix-strerror.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/common/posix-strerror.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/posix-strerror.c	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,38 @@
+/* Safe version of strerror for POSIX systems for GDB, the GNU debugger.
+
+   Copyright (C) 2006-2015 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "common-defs.h"
+
+/* Implementation of safe_strerror as defined in common-utils.h.  */
+
+char *
+safe_strerror (int errnum)
+{
+  char *msg;
+
+  msg = strerror (errnum);
+  if (msg == NULL)
+    {
+      static char buf[32];
+
+      xsnprintf (buf, sizeof buf, "(undocumented errno %d)", errnum);
+      msg = buf;
+    }
+  return (msg);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/aarch64/linux.mh ./gdb/config/aarch64/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/aarch64/linux.mh	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/config/aarch64/linux.mh	2015-01-20 01:48:37.000000000 +0000
@@ -21,7 +21,8 @@
 NAT_FILE= config/nm-linux.h
 NATDEPFILES= inf-ptrace.o fork-child.o aarch64-linux-nat.o \
 	proc-service.o linux-thread-db.o linux-nat.o linux-fork.o \
-	linux-procfs.o linux-ptrace.o linux-osdata.o linux-waitpid.o
+	linux-procfs.o linux-ptrace.o linux-osdata.o linux-waitpid.o \
+	linux-personality.o
 NAT_CDEPS = $(srcdir)/proc-service.list
 
 LOADLIBES= -ldl $(RDYNAMIC)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/alpha/alpha-linux.mh ./gdb/config/alpha/alpha-linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/alpha/alpha-linux.mh	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/config/alpha/alpha-linux.mh	2015-01-20 01:48:37.000000000 +0000
@@ -3,7 +3,7 @@ NAT_FILE= config/nm-linux.h
 NATDEPFILES= inf-ptrace.o alpha-linux-nat.o \
 	fork-child.o proc-service.o linux-thread-db.o \
 	linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
-	linux-waitpid.o
+	linux-waitpid.o linux-personality.o
 NAT_CDEPS = $(srcdir)/proc-service.list
 
 # The dynamically loaded libthread_db needs access to symbols in the
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/arm/linux.mh ./gdb/config/arm/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/arm/linux.mh	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/config/arm/linux.mh	2015-01-20 01:48:37.000000000 +0000
@@ -4,7 +4,7 @@ NAT_FILE= config/nm-linux.h
 NATDEPFILES= inf-ptrace.o fork-child.o arm-linux-nat.o \
 	proc-service.o linux-thread-db.o \
 	linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
-	linux-waitpid.o
+	linux-waitpid.o linux-personality.o
 NAT_CDEPS = $(srcdir)/proc-service.list
 
 LOADLIBES= -ldl $(RDYNAMIC)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/i386/linux64.mh ./gdb/config/i386/linux64.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/i386/linux64.mh	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/config/i386/linux64.mh	2015-01-20 01:48:37.000000000 +0000
@@ -5,7 +5,7 @@ NATDEPFILES= inf-ptrace.o fork-child.o \
 	linux-nat.o linux-osdata.o \
 	proc-service.o linux-thread-db.o linux-fork.o \
 	linux-procfs.o linux-ptrace.o linux-btrace.o \
-	linux-waitpid.o
+	linux-waitpid.o linux-personality.o
 NAT_FILE= config/nm-linux.h
 NAT_CDEPS = $(srcdir)/proc-service.list
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/i386/linux.mh ./gdb/config/i386/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/i386/linux.mh	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/config/i386/linux.mh	2015-01-20 01:48:37.000000000 +0000
@@ -5,7 +5,7 @@ NATDEPFILES= inf-ptrace.o fork-child.o \
 	x86-nat.o x86-dregs.o i386-linux-nat.o x86-linux-nat.o \
 	proc-service.o linux-thread-db.o \
 	linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
-	linux-btrace.o linux-waitpid.o
+	linux-btrace.o linux-waitpid.o linux-personality.o
 NAT_CDEPS = $(srcdir)/proc-service.list
 
 # The dynamically loaded libthread_db needs access to symbols in the
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/ia64/linux.mh ./gdb/config/ia64/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/ia64/linux.mh	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/config/ia64/linux.mh	2015-01-20 01:48:37.000000000 +0000
@@ -5,6 +5,7 @@ NATDEPFILES= inf-ptrace.o fork-child.o \
 	ia64-linux-nat.o \
 	proc-service.o linux-thread-db.o \
 	linux-nat.o linux-osdata.o linux-fork.o \
+	linux-personality.o \
 	linux-procfs.o linux-ptrace.o linux-waitpid.o
 NAT_CDEPS = $(srcdir)/proc-service.list
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/m32r/linux.mh ./gdb/config/m32r/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/m32r/linux.mh	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/config/m32r/linux.mh	2015-01-20 01:48:37.000000000 +0000
@@ -4,7 +4,7 @@ NAT_FILE= config/nm-linux.h
 NATDEPFILES= inf-ptrace.o fork-child.o				\
 	m32r-linux-nat.o proc-service.o linux-thread-db.o	\
 	linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
-	linux-waitpid.o
+	linux-waitpid.o linux-personality.o
 NAT_CDEPS = $(srcdir)/proc-service.list
 
 LOADLIBES= -ldl $(RDYNAMIC)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/m68k/linux.mh ./gdb/config/m68k/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/m68k/linux.mh	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/config/m68k/linux.mh	2015-01-20 01:48:37.000000000 +0000
@@ -5,6 +5,7 @@ NATDEPFILES= inf-ptrace.o fork-child.o \
 	m68klinux-nat.o \
 	proc-service.o linux-thread-db.o \
 	linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
+	linux-personality.o \
 	linux-waitpid.o
 NAT_CDEPS = $(srcdir)/proc-service.list
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/mips/linux.mh ./gdb/config/mips/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/mips/linux.mh	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/config/mips/linux.mh	2015-01-20 01:48:37.000000000 +0000
@@ -4,6 +4,7 @@ NATDEPFILES= inf-ptrace.o fork-child.o m
 	linux-thread-db.o proc-service.o \
 	linux-nat.o linux-osdata.o linux-fork.o \
 	linux-procfs.o linux-ptrace.o linux-waitpid.o \
+	linux-personality.o \
 	mips-linux-watch.o
 NAT_CDEPS = $(srcdir)/proc-service.list
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/pa/linux.mh ./gdb/config/pa/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/pa/linux.mh	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/config/pa/linux.mh	2015-01-20 01:48:37.000000000 +0000
@@ -3,7 +3,8 @@ NAT_FILE= config/nm-linux.h
 NATDEPFILES= inf-ptrace.o fork-child.o \
 	hppa-linux-nat.o proc-service.o linux-thread-db.o \
 	linux-nat.o linux-osdata.o linux-fork.o \
-	linux-procfs.o linux-ptrace.o linux-waitpid.o
+	linux-procfs.o linux-ptrace.o linux-waitpid.o \
+	linux-personality.o
 NAT_CDEPS = $(srcdir)/proc-service.list
 
 LOADLIBES = -ldl $(RDYNAMIC)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/powerpc/linux.mh ./gdb/config/powerpc/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/powerpc/linux.mh	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/config/powerpc/linux.mh	2015-01-20 01:48:37.000000000 +0000
@@ -6,7 +6,7 @@ NAT_FILE= config/nm-linux.h
 NATDEPFILES= inf-ptrace.o fork-child.o \
 	ppc-linux-nat.o proc-service.o linux-thread-db.o \
 	linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
-	linux-waitpid.o
+	linux-waitpid.o linux-personality.o
 NAT_CDEPS = $(srcdir)/proc-service.list
 
 LOADLIBES = -ldl $(RDYNAMIC)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/powerpc/ppc64-linux.mh ./gdb/config/powerpc/ppc64-linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/powerpc/ppc64-linux.mh	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/config/powerpc/ppc64-linux.mh	2015-01-20 01:48:37.000000000 +0000
@@ -6,7 +6,7 @@ NAT_FILE= config/nm-linux.h
 NATDEPFILES= inf-ptrace.o fork-child.o \
 	ppc-linux-nat.o proc-service.o linux-thread-db.o \
 	linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
-	linux-waitpid.o
+	linux-waitpid.o ppc-linux.o linux-personality.o
 NAT_CDEPS = $(srcdir)/proc-service.list
 
 # The PowerPC has severe limitations on TOC size, and uses them even
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/powerpc/spu-linux.mh ./gdb/config/powerpc/spu-linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/powerpc/spu-linux.mh	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/config/powerpc/spu-linux.mh	2015-01-20 01:48:37.000000000 +0000
@@ -4,5 +4,5 @@
 # PPU side of the Cell BE and debugging the SPU side.
 
 NATDEPFILES = spu-linux-nat.o fork-child.o inf-ptrace.o \
-	      linux-procfs.o linux-ptrace.o linux-waitpid.o
+	      linux-procfs.o linux-ptrace.o linux-waitpid.o linux-personality.o
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/s390/linux.mh ./gdb/config/s390/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/s390/linux.mh	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/config/s390/linux.mh	2015-01-20 01:48:37.000000000 +0000
@@ -3,6 +3,7 @@ NAT_FILE= config/nm-linux.h
 NATDEPFILES= inf-ptrace.o fork-child.o s390-linux-nat.o \
 	linux-thread-db.o proc-service.o \
 	linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
+	linux-personality.o \
 	linux-waitpid.o
 NAT_CDEPS = $(srcdir)/proc-service.list
 LOADLIBES = -ldl $(RDYNAMIC)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/sparc/linux64.mh ./gdb/config/sparc/linux64.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/sparc/linux64.mh	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/config/sparc/linux64.mh	2015-01-20 01:48:37.000000000 +0000
@@ -4,7 +4,8 @@ NATDEPFILES= sparc-nat.o sparc64-nat.o s
 	fork-child.o inf-ptrace.o \
 	proc-service.o linux-thread-db.o \
 	linux-nat.o linux-osdata.o linux-fork.o \
-	linux-procfs.o linux-ptrace.o linux-waitpid.o
+	linux-procfs.o linux-ptrace.o linux-waitpid.o \
+	linux-personality.o
 NAT_CDEPS = $(srcdir)/proc-service.list
 
 # The dynamically loaded libthread_db needs access to symbols in the
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/sparc/linux.mh ./gdb/config/sparc/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/sparc/linux.mh	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/config/sparc/linux.mh	2015-01-20 01:48:37.000000000 +0000
@@ -4,7 +4,8 @@ NATDEPFILES= sparc-nat.o sparc-linux-nat
 	fork-child.o inf-ptrace.o \
 	proc-service.o linux-thread-db.o \
 	linux-nat.o linux-osdata.o linux-fork.o \
-	linux-procfs.o linux-ptrace.o linux-waitpid.o
+	linux-procfs.o linux-ptrace.o linux-waitpid.o \
+	linux-personality.o
 NAT_CDEPS = $(srcdir)/proc-service.list
 
 # The dynamically loaded libthread_db needs access to symbols in the
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/tilegx/linux.mh ./gdb/config/tilegx/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/tilegx/linux.mh	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/config/tilegx/linux.mh	2015-01-20 01:48:37.000000000 +0000
@@ -5,7 +5,8 @@ NATDEPFILES= inf-ptrace.o fork-child.o \
 	tilegx-linux-nat.o \
 	proc-service.o linux-thread-db.o \
 	linux-nat.o linux-osdata.o linux-fork.o \
-	linux-procfs.o linux-ptrace.o linux-waitpid.o
+	linux-procfs.o linux-ptrace.o linux-waitpid.o \
+	linux-personality.o
 
 # The dynamically loaded libthread_db needs access to symbols in the
 # gdb executable.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/xtensa/linux.mh ./gdb/config/xtensa/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config/xtensa/linux.mh	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/config/xtensa/linux.mh	2015-01-20 01:48:37.000000000 +0000
@@ -5,7 +5,7 @@ NAT_FILE= config/nm-linux.h
 NATDEPFILES= inf-ptrace.o fork-child.o xtensa-linux-nat.o \
 	linux-thread-db.o proc-service.o \
 	linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
-	linux-waitpid.o
+	linux-waitpid.o linux-personality.o
 NAT_CDEPS = $(srcdir)/proc-service.list
 
 LOADLIBES = -ldl $(RDYNAMIC)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config.in ./gdb/config.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/config.in	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/config.in	2015-01-20 01:48:37.000000000 +0000
@@ -138,6 +138,9 @@
 /* Define if <sys/procfs.h> has fpregset_t. */
 #undef HAVE_FPREGSET_T
 
+/* Define to 1 if you have the `getauxval' function. */
+#undef HAVE_GETAUXVAL
+
 /* Define to 1 if you have the `getgid' function. */
 #undef HAVE_GETGID
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/configure ./gdb/configure
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/configure	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/configure	2015-01-20 01:48:37.000000000 +0000
@@ -5308,6 +5308,10 @@ fi
 
 . $srcdir/configure.host
 
+# Add in the common host objects.
+. $srcdir/common/common.host
+gdb_host_obs="$gdb_host_obs $common_host_obs"
+
 # Accumulate some settings from configure.tgt over all enabled targets
 
 TARGET_OBS=
@@ -7184,9 +7188,10 @@ case $host_os in
     ac_cv_search_tgetent="none required"
     ;;
   *mingw32*)
-    ac_cv_search_tgetent="none required"
-    CONFIG_OBS="$CONFIG_OBS windows-termcap.o"
-    ;;
+    if test x"$prefer_curses" != xyes; then
+      ac_cv_search_tgetent="none required"
+      CONFIG_OBS="$CONFIG_OBS windows-termcap.o"
+    fi ;;
 esac
 
 # These are the libraries checked by Readline.
@@ -10490,7 +10495,7 @@ if test "x$ac_cv_func_fork_works" = xyes
 
 fi
 
-for ac_func in getrusage getuid getgid \
+for ac_func in getauxval getrusage getuid getgid \
 		pipe poll pread pread64 pwrite resize_term \
 		sbrk setpgid setpgrp setsid \
 		sigaction sigprocmask sigsetmask socketpair \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/configure.ac ./gdb/configure.ac
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/configure.ac	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/configure.ac	2015-01-20 01:48:37.000000000 +0000
@@ -205,6 +205,10 @@ fi
 
 . $srcdir/configure.host
 
+# Add in the common host objects.
+. $srcdir/common/common.host
+gdb_host_obs="$gdb_host_obs $common_host_obs"
+
 # Accumulate some settings from configure.tgt over all enabled targets
 
 TARGET_OBS=
@@ -607,9 +611,10 @@ case $host_os in
     ac_cv_search_tgetent="none required"
     ;;
   *mingw32*)
-    ac_cv_search_tgetent="none required"
-    CONFIG_OBS="$CONFIG_OBS windows-termcap.o"
-    ;;
+    if test x"$prefer_curses" != xyes; then
+      ac_cv_search_tgetent="none required"
+      CONFIG_OBS="$CONFIG_OBS windows-termcap.o"
+    fi ;;
 esac
 
 # These are the libraries checked by Readline.
@@ -1311,7 +1316,7 @@ AC_C_BIGENDIAN
 
 AC_FUNC_MMAP
 AC_FUNC_VFORK
-AC_CHECK_FUNCS([getrusage getuid getgid \
+AC_CHECK_FUNCS([getauxval getrusage getuid getgid \
 		pipe poll pread pread64 pwrite resize_term \
 		sbrk setpgid setpgrp setsid \
 		sigaction sigprocmask sigsetmask socketpair \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/configure.tgt ./gdb/configure.tgt
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/configure.tgt	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/configure.tgt	2015-01-20 01:48:37.000000000 +0000
@@ -439,7 +439,8 @@ powerpc*-*-linux*)
 			ppc64-tdep.o solib-svr4.o solib-spu.o \
 			spu-multiarch.o \
 			glibc-tdep.o symfile-mem.o linux-tdep.o \
-			ravenscar-thread.o ppc-ravenscar-thread.o"
+			ravenscar-thread.o ppc-ravenscar-thread.o \
+			linux-record.o "
 	gdb_sim=../sim/ppc/libsim.a
 	build_gdbserver=yes
 	;;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/contrib/ari/gdb_ari.sh ./gdb/contrib/ari/gdb_ari.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/contrib/ari/gdb_ari.sh	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/contrib/ari/gdb_ari.sh	2015-01-20 01:48:37.000000000 +0000
@@ -603,8 +603,8 @@ BEGIN { doc["strerror"] = "\
 Do not use strerror(), instead use safe_strerror()"
     category["strerror"] = ari_regression
     fix("strerror", "gdb/gdb_string.h", 1)
-    fix("strerror", "gdb/mingw-hdep.c", 1)
-    fix("strerror", "gdb/posix-hdep.c", 1)
+    fix("strerror", "gdb/common/mingw-strerror.c", 1)
+    fix("strerror", "gdb/common/posix-strerror.c", 1)
 }
 /(^|[^_[:alnum:]])strerror[[:space:]]*\(/ {
     fail("strerror")
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/defs.h ./gdb/defs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/defs.h	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/defs.h	2015-01-20 01:48:37.000000000 +0000
@@ -29,7 +29,6 @@
 
 #include <sys/types.h>
 #include <limits.h>
-#include <stdint.h>
 
 /* The libdecnumber library, on which GDB depends, includes a header file
    called gstdint.h instead of relying directly on stdint.h.  GDB, on the
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/ChangeLog ./gdb/doc/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/ChangeLog	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/doc/ChangeLog	2015-01-20 01:48:37.000000000 +0000
@@ -1,3 +1,9 @@
+2015-01-16  Eli Zaretskii  <eliz@gnu.org>
+
+	* doc/gdb.texinfo (TUI Commands): Document the possible
+	values of NAME argument to 'winheight' command.  Explain the
+	effect of 'tabset' setting better.
+
 2015-01-11  Doug Evans  <xdje42@gmail.com>
 
 	PR gdb/15830
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gcore.1 ./gdb/doc/gcore.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gcore.1	2015-01-13 01:52:17.000000000 +0000
+++ ./gdb/doc/gcore.1	2015-01-20 01:54:52.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GCORE 1"
-.TH GCORE 1 "2015-01-13" "gdb-7.8.50.20150113-cvs" "GNU Development Tools"
+.TH GCORE 1 "2015-01-20" "gdb-7.9.50.20150120-cvs" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.1 ./gdb/doc/gdb.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.1	2015-01-13 01:52:17.000000000 +0000
+++ ./gdb/doc/gdb.1	2015-01-20 01:54:51.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDB 1"
-.TH GDB 1 "2015-01-13" "gdb-7.8.50.20150113-cvs" "GNU Development Tools"
+.TH GDB 1 "2015-01-20" "gdb-7.9.50.20150120-cvs" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info ./gdb/doc/gdb.info
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info	2015-01-13 01:52:16.000000000 +0000
+++ ./gdb/doc/gdb.info	2015-01-20 01:54:51.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of `Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.9.50.20150120-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -43,10 +43,10 @@ gdb.info-1: 1723
 gdb.info-2: 300342
 gdb.info-3: 599413
 gdb.info-4: 896989
-gdb.info-5: 1196222
-gdb.info-6: 1502281
-gdb.info-7: 1782632
-gdb.info-8: 1937003
+gdb.info-5: 1196496
+gdb.info-6: 1502555
+gdb.info-7: 1782906
+gdb.info-8: 1937277
 
 Tag Table:
 (Indirect)
@@ -478,262 +478,262 @@ Node: TUI Overview1161756
 Node: TUI Keys1164189
 Node: TUI Single Key Mode1166493
 Node: TUI Commands1167368
-Node: TUI Configuration1169752
-Node: Emacs1171048
-Node: GDB/MI1176522
-Node: GDB/MI General Design1178496
-Node: Context management1181019
-Node: Asynchronous and non-stop modes1184847
-Node: Thread groups1187823
-Node: GDB/MI Command Syntax1190101
-Node: GDB/MI Input Syntax1190344
-Node: GDB/MI Output Syntax1191898
-Node: GDB/MI Compatibility with CLI1195485
-Node: GDB/MI Development and Front Ends1196222
-Node: GDB/MI Output Records1197879
-Node: GDB/MI Result Records1198285
-Node: GDB/MI Stream Records1199635
-Node: GDB/MI Async Records1200900
-Node: GDB/MI Breakpoint Information1210530
-Node: GDB/MI Frame Information1214482
-Node: GDB/MI Thread Information1215569
-Node: GDB/MI Ada Exception Information1216548
-Node: GDB/MI Simple Examples1216971
-Node: GDB/MI Command Description Format1219179
-Node: GDB/MI Breakpoint Commands1220059
-Node: GDB/MI Catchpoint Commands1239930
-Node: Shared Library GDB/MI Catchpoint Commands1240298
-Node: Ada Exception GDB/MI Catchpoint Commands1241956
-Node: GDB/MI Program Context1244366
-Node: GDB/MI Thread Commands1248636
-Node: GDB/MI Ada Tasking Commands1252592
-Node: GDB/MI Program Execution1254846
-Node: GDB/MI Stack Manipulation1266883
-Ref: -stack-list-arguments1268782
-Ref: -stack-list-frames1272487
-Ref: -stack-list-locals1276356
-Ref: -stack-list-variables1277846
-Node: GDB/MI Variable Objects1279380
-Ref: -var-set-format1289283
-Ref: -var-list-children1290401
-Ref: -var-update1299190
-Ref: -var-set-frozen1302185
-Ref: -var-set-update-range1302981
-Ref: -var-set-visualizer1303511
-Node: GDB/MI Data Manipulation1305002
-Node: GDB/MI Tracepoint Commands1324567
-Node: GDB/MI Symbol Query1336160
-Node: GDB/MI File Commands1336849
-Node: GDB/MI Target Manipulation1340145
-Node: GDB/MI File Transfer Commands1346367
-Node: GDB/MI Ada Exceptions Commands1347690
-Node: GDB/MI Support Commands1349044
-Node: GDB/MI Miscellaneous Commands1353629
-Ref: -interpreter-exec1363862
-Node: Annotations1366198
-Node: Annotations Overview1367117
-Node: Server Prefix1369580
-Node: Prompting1370314
-Node: Errors1371831
-Node: Invalidation1372727
-Node: Annotations for Running1373204
-Node: Source Annotations1374738
-Node: JIT Interface1375667
-Node: Declarations1377467
-Node: Registering Code1378854
-Node: Unregistering Code1379826
-Node: Custom Debug Info1380453
-Node: Using JIT Debug Info Readers1381749
-Node: Writing JIT Debug Info Readers1382762
-Node: In-Process Agent1384959
-Ref: Control Agent1386902
-Node: In-Process Agent Protocol1387769
-Node: IPA Protocol Objects1388561
-Ref: agent expression object1389563
-Ref: tracepoint action object1389769
-Ref: tracepoint object1389850
-Node: IPA Protocol Commands1392806
-Node: GDB Bugs1394279
-Node: Bug Criteria1395011
-Node: Bug Reporting1395888
-Node: Command Line Editing1403719
-Node: Introduction and Notation1404371
-Node: Readline Interaction1405991
-Node: Readline Bare Essentials1407180
-Node: Readline Movement Commands1408967
-Node: Readline Killing Commands1409930
-Node: Readline Arguments1411848
-Node: Searching1412890
-Node: Readline Init File1415039
-Node: Readline Init File Syntax1416190
-Node: Conditional Init Constructs1431248
-Node: Sample Init File1433779
-Node: Bindable Readline Commands1436894
-Node: Commands For Moving1437949
-Node: Commands For History1438808
-Node: Commands For Text1442210
-Node: Commands For Killing1444934
-Node: Numeric Arguments1447074
-Node: Commands For Completion1448211
-Node: Keyboard Macros1450178
-Node: Miscellaneous Commands1450747
-Node: Readline vi Mode1454601
-Node: Using History Interactively1455511
-Node: History Interaction1456054
-Node: Event Designators1457476
-Node: Word Designators1458616
-Node: Modifiers1460253
-Node: In Memoriam1461476
-Node: Formatting Documentation1462359
-Ref: Formatting Documentation-Footnote-11465736
-Node: Installing GDB1465832
-Node: Requirements1466404
-Ref: Expat1466973
-Node: Running Configure1469545
-Node: Separate Objdir1473324
-Node: Config Names1476304
-Node: Configure Options1477781
-Node: System-wide configuration1480151
-Node: System-wide Configuration Scripts1482111
-Node: Maintenance Commands1483295
-Ref: maint info breakpoints1484950
-Node: Remote Protocol1502281
-Node: Overview1502935
-Ref: Binary Data1505497
-Node: Packets1508020
-Ref: thread-id syntax1508920
-Ref: extended mode1510365
-Ref: ? packet1510622
-Ref: bc1512086
-Ref: bs1512296
-Ref: read registers packet1513912
-Ref: cycle step packet1515848
-Ref: write register packet1518448
-Ref: step with signal packet1519426
-Ref: vCont packet1520900
-Ref: vKill packet1525797
-Ref: X packet1526730
-Ref: insert breakpoint or watchpoint packet1527040
-Node: Stop Reply Packets1531075
-Node: General Query Packets1535847
-Ref: qCRC packet1538678
-Ref: QNonStop1546488
-Ref: QPassSignals1547147
-Ref: QProgramSignals1548351
-Ref: qSearch memory1550862
-Ref: QStartNoAckMode1551369
-Ref: qSupported1551899
-Ref: multiprocess extensions1562389
-Ref: install tracepoint in tracing1564418
-Ref: qXfer read1567798
-Ref: qXfer auxiliary vector read1568292
-Ref: qXfer btrace read1568639
-Ref: qXfer target description read1569702
-Ref: qXfer library list read1570146
-Ref: qXfer svr4 library list read1570801
-Ref: qXfer memory map read1572653
-Ref: qXfer sdata read1573039
-Ref: qXfer siginfo read1573503
-Ref: qXfer spu read1573899
-Ref: qXfer threads read1574422
-Ref: qXfer traceframe info read1574824
-Ref: qXfer unwind info block1575240
-Ref: qXfer fdpic loadmap read1575472
-Ref: qXfer osdata read1575887
-Ref: qXfer write1577145
-Ref: qXfer siginfo write1577711
-Ref: qXfer spu write1578107
-Ref: General Query Packets-Footnote-11580643
-Node: Architecture-Specific Protocol Details1580970
-Node: ARM-Specific Protocol Details1581479
-Node: ARM Breakpoint Kinds1581727
-Node: MIPS-Specific Protocol Details1582059
-Node: MIPS Register packet Format1582342
-Node: MIPS Breakpoint Kinds1583271
-Node: Tracepoint Packets1583690
-Ref: QTEnable1592685
-Ref: QTDisable1592881
-Ref: qTfSTM1598403
-Ref: qTsSTM1598403
-Ref: qTSTMat1599479
-Ref: QTBuffer-size1600630
-Node: Host I/O Packets1602604
-Node: Interrupts1607223
-Node: Notification Packets1609126
-Node: Remote Non-Stop1614514
-Node: Packet Acknowledgment1616803
-Node: Examples1618918
-Node: File-I/O Remote Protocol Extension1619544
-Node: File-I/O Overview1620006
-Node: Protocol Basics1622203
-Node: The F Request Packet1624435
-Node: The F Reply Packet1625336
-Node: The Ctrl-C Message1626254
-Node: Console I/O1627883
-Node: List of Supported Calls1629100
-Node: open1629462
-Node: close1631956
-Node: read1632338
-Node: write1632945
-Node: lseek1633712
-Node: rename1634590
-Node: unlink1635986
-Node: stat/fstat1636925
-Node: gettimeofday1637812
-Node: isatty1638247
-Node: system1638843
-Node: Protocol-specific Representation of Datatypes1640385
-Node: Integral Datatypes1640762
-Node: Pointer Values1641569
-Node: Memory Transfer1642277
-Node: struct stat1642897
-Node: struct timeval1645099
-Node: Constants1645616
-Node: Open Flags1646065
-Node: mode_t Values1646406
-Node: Errno Values1646898
-Node: Lseek Flags1647709
-Node: Limits1647894
-Node: File-I/O Examples1648254
-Node: Library List Format1649370
-Node: Library List Format for SVR4 Targets1652153
-Node: Memory Map Format1654623
-Node: Thread List Format1657200
-Node: Traceframe Info Format1658018
-Node: Branch Trace Format1659705
-Node: Agent Expressions1661051
-Node: General Bytecode Design1663872
-Node: Bytecode Descriptions1668672
-Node: Using Agent Expressions1682108
-Node: Varying Target Capabilities1684086
-Node: Rationale1685248
-Node: Target Descriptions1692634
-Node: Retrieving Descriptions1694510
-Node: Target Description Format1695595
-Node: Predefined Target Types1704639
-Node: Standard Target Features1706024
-Node: AArch64 Features1707912
-Node: ARM Features1708335
-Node: i386 Features1709852
-Node: MicroBlaze Features1711804
-Node: MIPS Features1712381
-Node: M68K Features1713571
-Node: Nios II Features1714234
-Node: PowerPC Features1714631
-Node: S/390 and System z Features1715954
-Node: TIC6x Features1717419
-Node: Operating System Information1717981
-Node: Process list1718819
-Node: Trace File Format1719881
-Node: Index Section Format1721875
-Node: Man Pages1729855
-Node: gdb man1730261
-Node: gdbserver man1736303
-Node: gcore man1743511
-Node: gdbinit man1744168
-Node: Copying1745053
-Node: GNU Free Documentation License1782632
-Node: Concept Index1807798
-Node: Command and Variable Index1937003
+Node: TUI Configuration1170026
+Node: Emacs1171322
+Node: GDB/MI1176796
+Node: GDB/MI General Design1178770
+Node: Context management1181293
+Node: Asynchronous and non-stop modes1185121
+Node: Thread groups1188097
+Node: GDB/MI Command Syntax1190375
+Node: GDB/MI Input Syntax1190618
+Node: GDB/MI Output Syntax1192172
+Node: GDB/MI Compatibility with CLI1195759
+Node: GDB/MI Development and Front Ends1196496
+Node: GDB/MI Output Records1198153
+Node: GDB/MI Result Records1198559
+Node: GDB/MI Stream Records1199909
+Node: GDB/MI Async Records1201174
+Node: GDB/MI Breakpoint Information1210804
+Node: GDB/MI Frame Information1214756
+Node: GDB/MI Thread Information1215843
+Node: GDB/MI Ada Exception Information1216822
+Node: GDB/MI Simple Examples1217245
+Node: GDB/MI Command Description Format1219453
+Node: GDB/MI Breakpoint Commands1220333
+Node: GDB/MI Catchpoint Commands1240204
+Node: Shared Library GDB/MI Catchpoint Commands1240572
+Node: Ada Exception GDB/MI Catchpoint Commands1242230
+Node: GDB/MI Program Context1244640
+Node: GDB/MI Thread Commands1248910
+Node: GDB/MI Ada Tasking Commands1252866
+Node: GDB/MI Program Execution1255120
+Node: GDB/MI Stack Manipulation1267157
+Ref: -stack-list-arguments1269056
+Ref: -stack-list-frames1272761
+Ref: -stack-list-locals1276630
+Ref: -stack-list-variables1278120
+Node: GDB/MI Variable Objects1279654
+Ref: -var-set-format1289557
+Ref: -var-list-children1290675
+Ref: -var-update1299464
+Ref: -var-set-frozen1302459
+Ref: -var-set-update-range1303255
+Ref: -var-set-visualizer1303785
+Node: GDB/MI Data Manipulation1305276
+Node: GDB/MI Tracepoint Commands1324841
+Node: GDB/MI Symbol Query1336434
+Node: GDB/MI File Commands1337123
+Node: GDB/MI Target Manipulation1340419
+Node: GDB/MI File Transfer Commands1346641
+Node: GDB/MI Ada Exceptions Commands1347964
+Node: GDB/MI Support Commands1349318
+Node: GDB/MI Miscellaneous Commands1353903
+Ref: -interpreter-exec1364136
+Node: Annotations1366472
+Node: Annotations Overview1367391
+Node: Server Prefix1369854
+Node: Prompting1370588
+Node: Errors1372105
+Node: Invalidation1373001
+Node: Annotations for Running1373478
+Node: Source Annotations1375012
+Node: JIT Interface1375941
+Node: Declarations1377741
+Node: Registering Code1379128
+Node: Unregistering Code1380100
+Node: Custom Debug Info1380727
+Node: Using JIT Debug Info Readers1382023
+Node: Writing JIT Debug Info Readers1383036
+Node: In-Process Agent1385233
+Ref: Control Agent1387176
+Node: In-Process Agent Protocol1388043
+Node: IPA Protocol Objects1388835
+Ref: agent expression object1389837
+Ref: tracepoint action object1390043
+Ref: tracepoint object1390124
+Node: IPA Protocol Commands1393080
+Node: GDB Bugs1394553
+Node: Bug Criteria1395285
+Node: Bug Reporting1396162
+Node: Command Line Editing1403993
+Node: Introduction and Notation1404645
+Node: Readline Interaction1406265
+Node: Readline Bare Essentials1407454
+Node: Readline Movement Commands1409241
+Node: Readline Killing Commands1410204
+Node: Readline Arguments1412122
+Node: Searching1413164
+Node: Readline Init File1415313
+Node: Readline Init File Syntax1416464
+Node: Conditional Init Constructs1431522
+Node: Sample Init File1434053
+Node: Bindable Readline Commands1437168
+Node: Commands For Moving1438223
+Node: Commands For History1439082
+Node: Commands For Text1442484
+Node: Commands For Killing1445208
+Node: Numeric Arguments1447348
+Node: Commands For Completion1448485
+Node: Keyboard Macros1450452
+Node: Miscellaneous Commands1451021
+Node: Readline vi Mode1454875
+Node: Using History Interactively1455785
+Node: History Interaction1456328
+Node: Event Designators1457750
+Node: Word Designators1458890
+Node: Modifiers1460527
+Node: In Memoriam1461750
+Node: Formatting Documentation1462633
+Ref: Formatting Documentation-Footnote-11466010
+Node: Installing GDB1466106
+Node: Requirements1466678
+Ref: Expat1467247
+Node: Running Configure1469819
+Node: Separate Objdir1473598
+Node: Config Names1476578
+Node: Configure Options1478055
+Node: System-wide configuration1480425
+Node: System-wide Configuration Scripts1482385
+Node: Maintenance Commands1483569
+Ref: maint info breakpoints1485224
+Node: Remote Protocol1502555
+Node: Overview1503209
+Ref: Binary Data1505771
+Node: Packets1508294
+Ref: thread-id syntax1509194
+Ref: extended mode1510639
+Ref: ? packet1510896
+Ref: bc1512360
+Ref: bs1512570
+Ref: read registers packet1514186
+Ref: cycle step packet1516122
+Ref: write register packet1518722
+Ref: step with signal packet1519700
+Ref: vCont packet1521174
+Ref: vKill packet1526071
+Ref: X packet1527004
+Ref: insert breakpoint or watchpoint packet1527314
+Node: Stop Reply Packets1531349
+Node: General Query Packets1536121
+Ref: qCRC packet1538952
+Ref: QNonStop1546762
+Ref: QPassSignals1547421
+Ref: QProgramSignals1548625
+Ref: qSearch memory1551136
+Ref: QStartNoAckMode1551643
+Ref: qSupported1552173
+Ref: multiprocess extensions1562663
+Ref: install tracepoint in tracing1564692
+Ref: qXfer read1568072
+Ref: qXfer auxiliary vector read1568566
+Ref: qXfer btrace read1568913
+Ref: qXfer target description read1569976
+Ref: qXfer library list read1570420
+Ref: qXfer svr4 library list read1571075
+Ref: qXfer memory map read1572927
+Ref: qXfer sdata read1573313
+Ref: qXfer siginfo read1573777
+Ref: qXfer spu read1574173
+Ref: qXfer threads read1574696
+Ref: qXfer traceframe info read1575098
+Ref: qXfer unwind info block1575514
+Ref: qXfer fdpic loadmap read1575746
+Ref: qXfer osdata read1576161
+Ref: qXfer write1577419
+Ref: qXfer siginfo write1577985
+Ref: qXfer spu write1578381
+Ref: General Query Packets-Footnote-11580917
+Node: Architecture-Specific Protocol Details1581244
+Node: ARM-Specific Protocol Details1581753
+Node: ARM Breakpoint Kinds1582001
+Node: MIPS-Specific Protocol Details1582333
+Node: MIPS Register packet Format1582616
+Node: MIPS Breakpoint Kinds1583545
+Node: Tracepoint Packets1583964
+Ref: QTEnable1592959
+Ref: QTDisable1593155
+Ref: qTfSTM1598677
+Ref: qTsSTM1598677
+Ref: qTSTMat1599753
+Ref: QTBuffer-size1600904
+Node: Host I/O Packets1602878
+Node: Interrupts1607497
+Node: Notification Packets1609400
+Node: Remote Non-Stop1614788
+Node: Packet Acknowledgment1617077
+Node: Examples1619192
+Node: File-I/O Remote Protocol Extension1619818
+Node: File-I/O Overview1620280
+Node: Protocol Basics1622477
+Node: The F Request Packet1624709
+Node: The F Reply Packet1625610
+Node: The Ctrl-C Message1626528
+Node: Console I/O1628157
+Node: List of Supported Calls1629374
+Node: open1629736
+Node: close1632230
+Node: read1632612
+Node: write1633219
+Node: lseek1633986
+Node: rename1634864
+Node: unlink1636260
+Node: stat/fstat1637199
+Node: gettimeofday1638086
+Node: isatty1638521
+Node: system1639117
+Node: Protocol-specific Representation of Datatypes1640659
+Node: Integral Datatypes1641036
+Node: Pointer Values1641843
+Node: Memory Transfer1642551
+Node: struct stat1643171
+Node: struct timeval1645373
+Node: Constants1645890
+Node: Open Flags1646339
+Node: mode_t Values1646680
+Node: Errno Values1647172
+Node: Lseek Flags1647983
+Node: Limits1648168
+Node: File-I/O Examples1648528
+Node: Library List Format1649644
+Node: Library List Format for SVR4 Targets1652427
+Node: Memory Map Format1654897
+Node: Thread List Format1657474
+Node: Traceframe Info Format1658292
+Node: Branch Trace Format1659979
+Node: Agent Expressions1661325
+Node: General Bytecode Design1664146
+Node: Bytecode Descriptions1668946
+Node: Using Agent Expressions1682382
+Node: Varying Target Capabilities1684360
+Node: Rationale1685522
+Node: Target Descriptions1692908
+Node: Retrieving Descriptions1694784
+Node: Target Description Format1695869
+Node: Predefined Target Types1704913
+Node: Standard Target Features1706298
+Node: AArch64 Features1708186
+Node: ARM Features1708609
+Node: i386 Features1710126
+Node: MicroBlaze Features1712078
+Node: MIPS Features1712655
+Node: M68K Features1713845
+Node: Nios II Features1714508
+Node: PowerPC Features1714905
+Node: S/390 and System z Features1716228
+Node: TIC6x Features1717693
+Node: Operating System Information1718255
+Node: Process list1719093
+Node: Trace File Format1720155
+Node: Index Section Format1722149
+Node: Man Pages1730129
+Node: gdb man1730535
+Node: gdbserver man1736577
+Node: gcore man1743785
+Node: gdbinit man1744442
+Node: Copying1745327
+Node: GNU Free Documentation License1782906
+Node: Concept Index1808072
+Node: Command and Variable Index1937277
 
 End Tag Table
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info-1 ./gdb/doc/gdb.info-1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info-1	2015-01-13 01:52:16.000000000 +0000
+++ ./gdb/doc/gdb.info-1	2015-01-20 01:54:50.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of `Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.9.50.20150120-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -45,7 +45,7 @@ Debugging with GDB
 
 This file describes GDB, the GNU symbolic debugger.
 
-   This is the Tenth Edition, for GDB (GDB) Version 7.8.50.20150113-cvs.
+   This is the Tenth Edition, for GDB (GDB) Version 7.9.50.20150120-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -494,7 +494,7 @@ Let us use GDB to try to see what is goi
      There is absolutely no warranty for GDB; type "show warranty"
       for details.
 
-     GDB 7.8.50.20150113-cvs, Copyright 1999 Free Software Foundation, Inc...
+     GDB 7.9.50.20150120-cvs, Copyright 1999 Free Software Foundation, Inc...
      (gdb)
 
 GDB reads only enough symbol data to know where to find the rest when
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info-2 ./gdb/doc/gdb.info-2
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info-2	2015-01-13 01:52:16.000000000 +0000
+++ ./gdb/doc/gdb.info-2	2015-01-20 01:54:50.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of `Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.9.50.20150120-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info-3 ./gdb/doc/gdb.info-3
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info-3	2015-01-13 01:52:16.000000000 +0000
+++ ./gdb/doc/gdb.info-3	2015-01-20 01:54:50.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of `Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.9.50.20150120-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info-4 ./gdb/doc/gdb.info-4
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info-4	2015-01-13 01:52:16.000000000 +0000
+++ ./gdb/doc/gdb.info-4	2015-01-20 01:54:50.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of `Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.9.50.20150120-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -6979,9 +6979,14 @@ window management.
 `winheight NAME -COUNT'
      Change the height of the window NAME by COUNT lines.  Positive
      counts increase the height, while negative counts decrease it.
+     The NAME parameter can be one of `src' (the source window), `cmd'
+     (the command window), `asm' (the disassembly window), or `regs'
+     (the register display window).
 
 `tabset NCHARS'
-     Set the width of tab stops to be NCHARS characters.
+     Set the width of tab stops to be NCHARS characters.  This setting
+     affects the display of TAB characters in the source and assembly
+     windows.
 
 
 File: gdb.info,  Node: TUI Configuration,  Prev: TUI Commands,  Up: TUI
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info-5 ./gdb/doc/gdb.info-5
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info-5	2015-01-13 01:52:16.000000000 +0000
+++ ./gdb/doc/gdb.info-5	2015-01-20 01:54:50.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of `Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.9.50.20150120-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -8107,7 +8107,7 @@ and TeX (or `texi2roff') to typeset the 
 
    GDB includes an already formatted copy of the on-line Info version
 of this manual in the `gdb' subdirectory.  The main Info file is
-`gdb-7.8.50.20150113-cvs/gdb/gdb.info', and it refers to subordinate
+`gdb-7.9.50.20150120-cvs/gdb/gdb.info', and it refers to subordinate
 files matching `gdb.info*' in the same directory.  If necessary, you
 can print out these files, or read them with any editor; but they are
 easier to read using the `info' subsystem in GNU Emacs or the
@@ -8118,8 +8118,8 @@ distribution.
 Info formatting programs, such as `texinfo-format-buffer' or `makeinfo'.
 
    If you have `makeinfo' installed, and are in the top level GDB
-source directory (`gdb-7.8.50.20150113-cvs', in the case of version
-7.8.50.20150113-cvs), you can make the Info file by typing:
+source directory (`gdb-7.9.50.20150120-cvs', in the case of version
+7.9.50.20150120-cvs), you can make the Info file by typing:
 
      cd gdb
      make gdb.info
@@ -8144,7 +8144,7 @@ format.  On its own, TeX cannot either r
 
    If you have TeX and a DVI printer program installed, you can typeset
 and print this manual.  First switch to the `gdb' subdirectory of the
-main source directory (for example, to `gdb-7.8.50.20150113-cvs/gdb')
+main source directory (for example, to `gdb-7.9.50.20150120-cvs/gdb')
 and type:
 
      make gdb.dvi
@@ -8153,8 +8153,8 @@ and type:
 
    ---------- Footnotes ----------
 
-   (1) In `gdb-7.8.50.20150113-cvs/gdb/refcard.ps' of the version
-7.8.50.20150113-cvs release.
+   (1) In `gdb-7.9.50.20150120-cvs/gdb/refcard.ps' of the version
+7.9.50.20150120-cvs release.
 
 
 File: gdb.info,  Node: Installing GDB,  Next: Maintenance Commands,  Prev: Formatting Documentation,  Up: Top
@@ -8263,39 +8263,39 @@ preparing GDB for installation; you can 
 in a single directory, whose name is usually composed by appending the
 version number to `gdb'.
 
-   For example, the GDB version 7.8.50.20150113-cvs distribution is in
-the `gdb-7.8.50.20150113-cvs' directory.  That directory contains:
+   For example, the GDB version 7.9.50.20150120-cvs distribution is in
+the `gdb-7.9.50.20150120-cvs' directory.  That directory contains:
 
-`gdb-7.8.50.20150113-cvs/configure (and supporting files)'
+`gdb-7.9.50.20150120-cvs/configure (and supporting files)'
      script for configuring GDB and all its supporting libraries
 
-`gdb-7.8.50.20150113-cvs/gdb'
+`gdb-7.9.50.20150120-cvs/gdb'
      the source specific to GDB itself
 
-`gdb-7.8.50.20150113-cvs/bfd'
+`gdb-7.9.50.20150120-cvs/bfd'
      source for the Binary File Descriptor library
 
-`gdb-7.8.50.20150113-cvs/include'
+`gdb-7.9.50.20150120-cvs/include'
      GNU include files
 
-`gdb-7.8.50.20150113-cvs/libiberty'
+`gdb-7.9.50.20150120-cvs/libiberty'
      source for the `-liberty' free software library
 
-`gdb-7.8.50.20150113-cvs/opcodes'
+`gdb-7.9.50.20150120-cvs/opcodes'
      source for the library of opcode tables and disassemblers
 
-`gdb-7.8.50.20150113-cvs/readline'
+`gdb-7.9.50.20150120-cvs/readline'
      source for the GNU command-line interface
 
-`gdb-7.8.50.20150113-cvs/glob'
+`gdb-7.9.50.20150120-cvs/glob'
      source for the GNU filename pattern-matching subroutine
 
-`gdb-7.8.50.20150113-cvs/mmalloc'
+`gdb-7.9.50.20150120-cvs/mmalloc'
      source for the GNU memory-mapped malloc package
 
    The simplest way to configure and build GDB is to run `configure'
 from the `gdb-VERSION-NUMBER' source directory, which in this example
-is the `gdb-7.8.50.20150113-cvs' directory.
+is the `gdb-7.9.50.20150120-cvs' directory.
 
    First switch to the `gdb-VERSION-NUMBER' source directory if you are
 not already in it; then run `configure'.  Pass the identifier for the
@@ -8303,7 +8303,7 @@ platform on which GDB will run as an arg
 
    For example:
 
-     cd gdb-7.8.50.20150113-cvs
+     cd gdb-7.9.50.20150120-cvs
      ./configure HOST
      make
 
@@ -8325,8 +8325,8 @@ you may need to run `sh' on it explicitl
 
    If you run `configure' from a directory that contains source
 directories for multiple libraries or programs, such as the
-`gdb-7.8.50.20150113-cvs' source directory for version
-7.8.50.20150113-cvs, `configure' creates configuration files for every
+`gdb-7.9.50.20150120-cvs' source directory for version
+7.9.50.20150120-cvs, `configure' creates configuration files for every
 directory level underneath (unless you tell it not to, with the
 `--norecursion' option).
 
@@ -8367,13 +8367,13 @@ directory.  If the path to `configure' w
 argument to `--srcdir', you can leave out the `--srcdir' option; it is
 assumed.)
 
-   For example, with version 7.8.50.20150113-cvs, you can build GDB in a
+   For example, with version 7.9.50.20150120-cvs, you can build GDB in a
 separate directory for a Sun 4 like this:
 
-     cd gdb-7.8.50.20150113-cvs
+     cd gdb-7.9.50.20150120-cvs
      mkdir ../gdb-sun4
      cd ../gdb-sun4
-     ../gdb-7.8.50.20150113-cvs/configure sun4
+     ../gdb-7.9.50.20150120-cvs/configure sun4
      make
 
    When `configure' builds a configuration using a remote source
@@ -8384,7 +8384,7 @@ directory `gdb-sun4/libiberty', and GDB 
 
    Make sure that your path to the `configure' script has just one
 instance of `gdb' in it.  If your path to `configure' looks like
-`../gdb-7.8.50.20150113-cvs/gdb/configure', you are configuring only
+`../gdb-7.9.50.20150120-cvs/gdb/configure', you are configuring only
 one subdirectory of GDB, not the whole package.  This leads to build
 errors about missing include files such as `bfd/bfd.h'.
 
@@ -8400,8 +8400,8 @@ called `configure' (or one of its subdir
 
    The `Makefile' that `configure' generates in each source directory
 also runs recursively.  If you type `make' in a source directory such
-as `gdb-7.8.50.20150113-cvs' (or in a separate configured directory
-configured with `--srcdir=DIRNAME/gdb-7.8.50.20150113-cvs'), you will
+as `gdb-7.9.50.20150120-cvs' (or in a separate configured directory
+configured with `--srcdir=DIRNAME/gdb-7.9.50.20150120-cvs'), you will
 build all the required libraries, and then build GDB.
 
    When you have multiple hosts or targets configured in separate
@@ -8446,7 +8446,7 @@ you can use it to test your guesses on a
      Invalid configuration `i986v': machine `i986v' not recognized
 
 `config.sub' is also distributed in the GDB source directory
-(`gdb-7.8.50.20150113-cvs', for version 7.8.50.20150113-cvs).
+(`gdb-7.9.50.20150120-cvs', for version 7.9.50.20150120-cvs).
 
 
 File: gdb.info,  Node: Configure Options,  Next: System-wide configuration,  Prev: Config Names,  Up: Installing GDB
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info-6 ./gdb/doc/gdb.info-6
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info-6	2015-01-13 01:52:16.000000000 +0000
+++ ./gdb/doc/gdb.info-6	2015-01-20 01:54:50.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of `Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.9.50.20150120-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info-7 ./gdb/doc/gdb.info-7
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info-7	2015-01-13 01:52:16.000000000 +0000
+++ ./gdb/doc/gdb.info-7	2015-01-20 01:54:50.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of `Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.9.50.20150120-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info-8 ./gdb/doc/gdb.info-8
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.info-8	2015-01-13 01:52:16.000000000 +0000
+++ ./gdb/doc/gdb.info-8	2015-01-20 01:54:50.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of `Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.9.50.20150120-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -2456,7 +2456,7 @@ Command, Variable, and Function Index
 * Symtab_and_line.symtab:                Symbol Tables In Python.
                                                               (line  17)
 * sysinfo:                               DJGPP Native.        (line  19)
-* tabset:                                TUI Commands.        (line  84)
+* tabset:                                TUI Commands.        (line  87)
 * target:                                Target Commands.     (line  49)
 * target array:                          MIPS Embedded.       (line  49)
 * target ctf:                            Trace Files.         (line  28)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdbinit.5 ./gdb/doc/gdbinit.5
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdbinit.5	2015-01-13 01:52:17.000000000 +0000
+++ ./gdb/doc/gdbinit.5	2015-01-20 01:54:52.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBINIT 5"
-.TH GDBINIT 5 "2015-01-13" "gdb-7.8.50.20150113-cvs" "GNU Development Tools"
+.TH GDBINIT 5 "2015-01-20" "gdb-7.9.50.20150120-cvs" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdbserver.1 ./gdb/doc/gdbserver.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdbserver.1	2015-01-13 01:52:17.000000000 +0000
+++ ./gdb/doc/gdbserver.1	2015-01-20 01:54:52.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBSERVER 1"
-.TH GDBSERVER 1 "2015-01-13" "gdb-7.8.50.20150113-cvs" "GNU Development Tools"
+.TH GDBSERVER 1 "2015-01-20" "gdb-7.9.50.20150120-cvs" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.texinfo ./gdb/doc/gdb.texinfo
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/doc/gdb.texinfo	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/doc/gdb.texinfo	2015-01-20 01:48:37.000000000 +0000
@@ -24609,11 +24609,15 @@ Update the source window and the current
 @kindex winheight
 Change the height of the window @var{name} by @var{count}
 lines.  Positive counts increase the height, while negative counts
-decrease it.
+decrease it.  The @var{name} parameter can be one of @code{src} (the
+source window), @code{cmd} (the command window), @code{asm} (the
+disassembly window), or @code{regs} (the register display window).
 
 @item tabset @var{nchars}
 @kindex tabset
-Set the width of tab stops to be @var{nchars} characters.
+Set the width of tab stops to be @var{nchars} characters.  This
+setting affects the display of TAB characters in the source and
+assembly windows.
 @end table
 
 @node TUI Configuration
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/gdbserver/ChangeLog ./gdb/gdbserver/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/gdbserver/ChangeLog	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/gdbserver/ChangeLog	2015-01-20 01:48:37.000000000 +0000
@@ -1,3 +1,43 @@
+2015-01-15  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* Makefile.in (SFILES): Add linux-personality.c.
+	(linux-personality.o): New rule.
+	* configure.srv (srv_linux_obj): Add linux-personality.o to the
+	list of objects to be built.
+	* linux-low.c: Include nat/linux-personality.h.
+	(linux_create_inferior): Remove code to disable address space
+	randomization (moved to ../nat/linux-personality.c).  Create
+	cleanup to disable address space randomization.
+
+2015-01-15  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* Makefile.in (posix-strerror.o): New rule.
+	(mingw-strerror.o): Likewise.
+	* configure: Regenerated.
+	* configure.ac: Source file ../common/common.host.  Initialize new
+	variable srv_host_obs.  Add srv_host_obs to GDBSERVER_DEPFILES.
+
+2015-01-14  Yao Qi  <yao@codesourcery.com>
+
+	* Makefile.in (SFILES): Add nat/ppc-linux.c.
+	(ppc-linux.o): New rule.
+	* configure.srv (powerpc*-*-linux*): Add ppc-linux.o.
+	* configure.ac: AC_CHECK_FUNCS(getauxval).
+	* config.in: Re-generated.
+	* configure: Re-generated.
+	* linux-ppc-low.c (ppc_arch_setup) [__powerpc64__]: Call
+	ppc64_64bit_inferior_p
+
+2015-01-14  Yao Qi  <yao@codesourcery.com>
+
+	* linux-ppc-low.c: Include "nat/ppc-linux.h".
+	 (PPC_FEATURE_HAS_VSX): Move to nat/ppc-linux.h.
+	(PPC_FEATURE_HAS_ALTIVEC,  PPC_FEATURE_HAS_SPE): Likewise.
+	(PT_ORIG_R3, PT_TRAP): Likewise.
+	(PTRACE_GETVSXREGS, PTRACE_SETVSXREGS): Likewise.
+	(PTRACE_GETVRREGS, PTRACE_SETVRREGS): Likewise.
+	(PTRACE_GETEVRREGS, PTRACE_SETEVRREGS): Likewise.
+
 2015-01-10  Joel Brobecker  <brobecker@adacore.com>
 
 	* i387-fp.c (i387_cache_to_xsave): In look over
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/gdbserver/config.in ./gdb/gdbserver/config.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/gdbserver/config.in	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/gdbserver/config.in	2015-01-20 01:48:37.000000000 +0000
@@ -60,6 +60,9 @@
 /* Define to 1 if you have the `fdwalk' function. */
 #undef HAVE_FDWALK
 
+/* Define to 1 if you have the `getauxval' function. */
+#undef HAVE_GETAUXVAL
+
 /* Define to 1 if you have the `getrlimit' function. */
 #undef HAVE_GETRLIMIT
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/gdbserver/configure ./gdb/gdbserver/configure
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/gdbserver/configure	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/gdbserver/configure	2015-01-20 01:48:37.000000000 +0000
@@ -4745,7 +4745,7 @@ fi
 
 done
 
-for ac_func in pread pwrite pread64
+for ac_func in getauxval pread pwrite pread64
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -5539,6 +5539,10 @@ esac
 
 . ${srcdir}/configure.srv
 
+# Add in the common host objects.
+. ${srcdir}/../common/common.host
+srv_host_obs="$common_host_obs"
+
 if test "${srv_mingwce}" = "yes"; then
   LIBS="$LIBS -lws2"
 elif test "${srv_mingw}" = "yes"; then
@@ -6034,7 +6038,7 @@ if test "$srv_xmlfiles" != ""; then
   done
 fi
 
-GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles"
+GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles $srv_host_obs"
 GDBSERVER_LIBS="$srv_libs"
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the target supports __sync_*_compare_and_swap" >&5
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/gdbserver/configure.ac ./gdb/gdbserver/configure.ac
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/gdbserver/configure.ac	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/gdbserver/configure.ac	2015-01-20 01:48:37.000000000 +0000
@@ -90,7 +90,7 @@ AC_CHECK_HEADERS(sgtty.h termio.h termio
 		 fcntl.h signal.h sys/file.h dnl
 		 sys/ioctl.h netinet/in.h sys/socket.h netdb.h dnl
 		 netinet/tcp.h arpa/inet.h)
-AC_CHECK_FUNCS(pread pwrite pread64)
+AC_CHECK_FUNCS(getauxval pread pwrite pread64)
 
 GDB_AC_COMMON
 
@@ -242,6 +242,10 @@ esac
 
 . ${srcdir}/configure.srv
 
+# Add in the common host objects.
+. ${srcdir}/../common/common.host
+srv_host_obs="$common_host_obs"
+
 if test "${srv_mingwce}" = "yes"; then
   LIBS="$LIBS -lws2"
 elif test "${srv_mingw}" = "yes"; then
@@ -385,7 +389,7 @@ if test "$srv_xmlfiles" != ""; then
   done
 fi
 
-GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles"
+GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles $srv_host_obs"
 GDBSERVER_LIBS="$srv_libs"
 
 dnl Check whether the target supports __sync_*_compare_and_swap.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/gdbserver/configure.srv ./gdb/gdbserver/configure.srv
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/gdbserver/configure.srv	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/gdbserver/configure.srv	2015-01-20 01:48:37.000000000 +0000
@@ -42,7 +42,7 @@ srv_amd64_linux_xmlfiles="i386/amd64-lin
 
 # Linux object files.  This is so we don't have to repeat
 # these files over and over again.
-srv_linux_obj="linux-low.o linux-osdata.o linux-procfs.o linux-ptrace.o linux-waitpid.o"
+srv_linux_obj="linux-low.o linux-osdata.o linux-procfs.o linux-ptrace.o linux-waitpid.o linux-personality.o"
 
 # Input is taken from the "${target}" variable.
 
@@ -217,7 +217,7 @@ case "${target}" in
 			srv_regobj="${srv_regobj} powerpc-isa205-64l.o"
 			srv_regobj="${srv_regobj} powerpc-isa205-altivec64l.o"
 			srv_regobj="${srv_regobj} powerpc-isa205-vsx64l.o"
-			srv_tgtobj="$srv_linux_obj linux-ppc-low.o"
+			srv_tgtobj="$srv_linux_obj linux-ppc-low.o ppc-linux.o"
 			srv_xmlfiles="rs6000/powerpc-32l.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-altivec32l.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-cell32l.xml"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/gdbserver/linux-low.c ./gdb/gdbserver/linux-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/gdbserver/linux-low.c	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/gdbserver/linux-low.c	2015-01-20 01:48:37.000000000 +0000
@@ -27,6 +27,7 @@
 #include <sys/ptrace.h>
 #include "nat/linux-ptrace.h"
 #include "nat/linux-procfs.h"
+#include "nat/linux-personality.h"
 #include <signal.h>
 #include <sys/ioctl.h>
 #include <fcntl.h>
@@ -597,29 +598,11 @@ add_lwp (ptid_t ptid)
 static int
 linux_create_inferior (char *program, char **allargs)
 {
-#ifdef HAVE_PERSONALITY
-  int personality_orig = 0, personality_set = 0;
-#endif
   struct lwp_info *new_lwp;
   int pid;
   ptid_t ptid;
-
-#ifdef HAVE_PERSONALITY
-  if (disable_randomization)
-    {
-      errno = 0;
-      personality_orig = personality (0xffffffff);
-      if (errno == 0 && !(personality_orig & ADDR_NO_RANDOMIZE))
-	{
-	  personality_set = 1;
-	  personality (personality_orig | ADDR_NO_RANDOMIZE);
-	}
-      if (errno != 0 || (personality_set
-			 && !(personality (0xffffffff) & ADDR_NO_RANDOMIZE)))
-	warning ("Error disabling address space randomization: %s",
-		 strerror (errno));
-    }
-#endif
+  struct cleanup *restore_personality
+    = maybe_disable_address_space_randomization (disable_randomization);
 
 #if defined(__UCLIBC__) && defined(HAS_NOMMU)
   pid = vfork ();
@@ -665,16 +648,7 @@ linux_create_inferior (char *program, ch
       _exit (0177);
     }
 
-#ifdef HAVE_PERSONALITY
-  if (personality_set)
-    {
-      errno = 0;
-      personality (personality_orig);
-      if (errno != 0)
-	warning ("Error restoring address space randomization: %s",
-		 strerror (errno));
-    }
-#endif
+  do_cleanups (restore_personality);
 
   linux_add_process (pid, 0);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/gdbserver/linux-ppc-low.c ./gdb/gdbserver/linux-ppc-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/gdbserver/linux-ppc-low.c	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/gdbserver/linux-ppc-low.c	2015-01-20 01:48:37.000000000 +0000
@@ -23,12 +23,7 @@
 #include <elf.h>
 #include <asm/ptrace.h>
 
-/* These are in <asm/cputable.h> in current kernels.  */
-#define PPC_FEATURE_HAS_VSX		0x00000080
-#define PPC_FEATURE_HAS_ALTIVEC         0x10000000
-#define PPC_FEATURE_HAS_SPE             0x00800000
-#define PPC_FEATURE_CELL                0x00010000
-#define PPC_FEATURE_HAS_DFP             0x00000400
+#include "nat/ppc-linux.h"
 
 static unsigned long ppc_hwcap;
 
@@ -95,14 +90,6 @@ extern const struct target_desc *tdesc_p
 
 #define ppc_num_regs 73
 
-/* This sometimes isn't defined.  */
-#ifndef PT_ORIG_R3
-#define PT_ORIG_R3 34
-#endif
-#ifndef PT_TRAP
-#define PT_TRAP 40
-#endif
-
 #ifdef __powerpc64__
 /* We use a constant for FPSCR instead of PT_FPSCR, because
    many shipped PPC64 kernels had the wrong value in ptrace.h.  */
@@ -411,13 +398,11 @@ ppc_arch_setup (void)
   current_process ()->tdesc = tdesc;
   ppc_hwcap = 0;
 
-  /* Only if the high bit of the MSR is set, we actually have
-     a 64-bit inferior.  */
   regcache = new_register_cache (tdesc);
   fetch_inferior_registers (regcache, find_regno (tdesc, "msr"));
   collect_register_by_name (regcache, "msr", &msr);
   free_register_cache (regcache);
-  if (msr < 0)
+  if (ppc64_64bit_inferior_p (msr))
     {
       ppc_get_hwcap (&ppc_hwcap);
       if (ppc_hwcap & PPC_FEATURE_CELL)
@@ -544,11 +529,6 @@ static void ppc_fill_gregset (struct reg
     ppc_collect_ptrace_register (regcache, i, (char *) buf + ppc_regmap[i]);
 }
 
-#ifndef PTRACE_GETVSXREGS
-#define PTRACE_GETVSXREGS 27
-#define PTRACE_SETVSXREGS 28
-#endif
-
 #define SIZEOF_VSXREGS 32*8
 
 static void
@@ -579,11 +559,6 @@ ppc_store_vsxregset (struct regcache *re
     supply_register (regcache, base + i, &regset[i * 8]);
 }
 
-#ifndef PTRACE_GETVRREGS
-#define PTRACE_GETVRREGS 18
-#define PTRACE_SETVRREGS 19
-#endif
-
 #define SIZEOF_VRREGS 33*16+4
 
 static void
@@ -620,11 +595,6 @@ ppc_store_vrregset (struct regcache *reg
   supply_register_by_name (regcache, "vrsave", &regset[33 * 16]);
 }
 
-#ifndef PTRACE_GETEVRREGS
-#define PTRACE_GETEVRREGS	20
-#define PTRACE_SETEVRREGS	21
-#endif
-
 struct gdb_evrregset_t
 {
   unsigned long evr[32];
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/gdbserver/Makefile.in ./gdb/gdbserver/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/gdbserver/Makefile.in	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/gdbserver/Makefile.in	2015-01-20 01:48:37.000000000 +0000
@@ -155,7 +155,7 @@ SFILES=	$(srcdir)/gdbreplay.c $(srcdir)/
 	$(srcdir)/linux-m32r-low.c \
 	$(srcdir)/linux-m68k-low.c $(srcdir)/linux-mips-low.c \
 	$(srcdir)/linux-nios2-low.c \
-	$(srcdir)/linux-ppc-low.c \
+	$(srcdir)/linux-ppc-low.c $(srcdir)/nat/ppc-linux.c \
 	$(srcdir)/linux-s390-low.c \
 	$(srcdir)/linux-sh-low.c $(srcdir)/linux-sparc-low.c \
 	$(srcdir)/linux-x86-low.c \
@@ -167,6 +167,7 @@ SFILES=	$(srcdir)/gdbreplay.c $(srcdir)/
 	$(srcdir)/common/vec.c $(srcdir)/common/gdb_vecs.c \
 	$(srcdir)/common/common-utils.c $(srcdir)/common/xml-utils.c \
 	$(srcdir)/nat/linux-osdata.c $(srcdir)/common/ptid.c \
+	$(srcdir)/nat/linux-personality.c \
 	$(srcdir)/common/buffer.c $(srcdir)/nat/linux-btrace.c \
 	$(srcdir)/common/filestuff.c $(srcdir)/target/waitstatus.c \
 	$(srcdir)/nat/mips-linux-watch.c $(srcdir)/common/print-utils.c \
@@ -518,6 +519,12 @@ rsp-low.o: ../common/rsp-low.c
 common-utils.o: ../common/common-utils.c
 	$(COMPILE) $<
 	$(POSTCOMPILE)
+posix-strerror.o: ../common/posix-strerror.c
+	$(COMPILE) $<
+	$(POSTCOMPILE)
+mingw-strerror.o: ../common/mingw-strerror.c
+	$(COMPILE) $<
+	$(POSTCOMPILE)
 vec.o: ../common/vec.c
 	$(COMPILE) $<
 	$(POSTCOMPILE)
@@ -581,6 +588,12 @@ linux-waitpid.o: ../nat/linux-waitpid.c
 mips-linux-watch.o: ../nat/mips-linux-watch.c
 	$(COMPILE) $<
 	$(POSTCOMPILE)
+ppc-linux.o: ../nat/ppc-linux.c
+	$(COMPILE) $<
+	$(POSTCOMPILE)
+linux-personality.o: ../nat/linux-personality.c
+	$(COMPILE) $<
+	$(POSTCOMPILE)
 
 aarch64.c : $(srcdir)/../regformats/aarch64.dat $(regdat_sh)
 	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/aarch64.dat aarch64.c
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/hppa-tdep.c ./gdb/hppa-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/hppa-tdep.c	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/hppa-tdep.c	2015-01-20 01:48:37.000000000 +0000
@@ -1403,7 +1403,7 @@ inst_saves_gr (unsigned long inst)
   if ((inst >> 26) == 0x19 || (inst >> 26) == 0x18
       || ((inst >> 26) == 0x3
 	  && (((inst >> 6) & 0xf) == 0x8
-	      || (inst >> 6) & 0xf) == 0x9))
+	      || ((inst >> 6) & 0xf) == 0x9)))
     return hppa_extract_5R_store (inst);
 
   return 0;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/infrun.c ./gdb/infrun.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/infrun.c	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/infrun.c	2015-01-20 01:48:37.000000000 +0000
@@ -3178,6 +3178,16 @@ wait_for_inferior (void)
 static void
 reinstall_readline_callback_handler_cleanup (void *arg)
 {
+  if (!interpreter_async)
+    {
+      /* We're not going back to the top level event loop yet.  Don't
+	 install the readline callback, as it'd prep the terminal,
+	 readline-style (raw, noecho) (e.g., --batch).  We'll install
+	 it the next time the prompt is displayed, when we're ready
+	 for input.  */
+      return;
+    }
+
   if (async_command_editing_p && !sync_execution)
     gdb_rl_callback_handler_reinstall ();
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/linux-nat.c ./gdb/linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/linux-nat.c	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/linux-nat.c	2015-01-20 01:48:37.000000000 +0000
@@ -32,6 +32,7 @@
 #include "linux-nat.h"
 #include "nat/linux-ptrace.h"
 #include "nat/linux-procfs.h"
+#include "nat/linux-personality.h"
 #include "linux-fork.h"
 #include "gdbthread.h"
 #include "gdbcmd.h"
@@ -70,13 +71,6 @@
 #define SPUFS_MAGIC 0x23c9b64e
 #endif
 
-#ifdef HAVE_PERSONALITY
-# include <sys/personality.h>
-# if !HAVE_DECL_ADDR_NO_RANDOMIZE
-#  define ADDR_NO_RANDOMIZE 0x0040000
-# endif
-#endif /* HAVE_PERSONALITY */
-
 /* This comment documents high-level logic of this file.
 
 Waiting for events in sync mode
@@ -1103,45 +1097,18 @@ linux_nat_create_inferior (struct target
 			   char *exec_file, char *allargs, char **env,
 			   int from_tty)
 {
-#ifdef HAVE_PERSONALITY
-  int personality_orig = 0, personality_set = 0;
-#endif /* HAVE_PERSONALITY */
+  struct cleanup *restore_personality
+    = maybe_disable_address_space_randomization (disable_randomization);
 
   /* The fork_child mechanism is synchronous and calls target_wait, so
      we have to mask the async mode.  */
 
-#ifdef HAVE_PERSONALITY
-  if (disable_randomization)
-    {
-      errno = 0;
-      personality_orig = personality (0xffffffff);
-      if (errno == 0 && !(personality_orig & ADDR_NO_RANDOMIZE))
-	{
-	  personality_set = 1;
-	  personality (personality_orig | ADDR_NO_RANDOMIZE);
-	}
-      if (errno != 0 || (personality_set
-			 && !(personality (0xffffffff) & ADDR_NO_RANDOMIZE)))
-	warning (_("Error disabling address space randomization: %s"),
-		 safe_strerror (errno));
-    }
-#endif /* HAVE_PERSONALITY */
-
   /* Make sure we report all signals during startup.  */
   linux_nat_pass_signals (ops, 0, NULL);
 
   linux_ops->to_create_inferior (ops, exec_file, allargs, env, from_tty);
 
-#ifdef HAVE_PERSONALITY
-  if (personality_set)
-    {
-      errno = 0;
-      personality (personality_orig);
-      if (errno != 0)
-	warning (_("Error restoring address space randomization: %s"),
-		 safe_strerror (errno));
-    }
-#endif /* HAVE_PERSONALITY */
+  do_cleanups (restore_personality);
 }
 
 /* Callback for linux_proc_attach_tgid_threads.  Attach to PTID if not
@@ -1181,7 +1148,7 @@ attach_proc_task_lwp_callback (ptid_t pt
 	    }
 	  else
 	    {
-	      warning (_("Cannot attach to lwp %d: %s\n"),
+	      warning (_("Cannot attach to lwp %d: %s"),
 		       lwpid,
 		       linux_ptrace_attach_fail_reason_string (ptid,
 							       err));
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/Makefile.in ./gdb/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/Makefile.in	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/Makefile.in	2015-01-20 01:48:37.000000000 +0000
@@ -955,13 +955,13 @@ common/common-utils.h common/xml-utils.h
 common/format.h common/host-defs.h utils.h common/queue.h \
 nat/linux-osdata.h gdb-dlfcn.h auto-load.h probe.h stap-probe.h \
 gdb_bfd.h sparc-ravenscar-thread.h ppc-ravenscar-thread.h nat/linux-btrace.h \
-ctf.h nat/x86-cpuid.h nat/x86-gcc-cpuid.h target/resume.h \
+nat/ppc-linux.h ctf.h nat/x86-cpuid.h nat/x86-gcc-cpuid.h target/resume.h \
 target/wait.h target/waitstatus.h nat/linux-nat.h nat/linux-waitpid.h \
 common/print-utils.h common/rsp-low.h nat/x86-dregs.h x86-linux-nat.h \
 i386-linux-nat.h common/common-defs.h common/errors.h common/common-types.h \
 common/common-debug.h common/cleanups.h common/gdb_setjmp.h \
 common/common-exceptions.h target/target.h common/symbol.h \
-common/common-regcache.h fbsd-tdep.h
+common/common-regcache.h fbsd-tdep.h nat/linux-personality.h
 
 # Header files that already have srcdir in them, or which are in objdir.
 
@@ -1680,7 +1680,7 @@ ALLDEPFILES = \
 	m68klinux-nat.c m68klinux-tdep.c \
 	m88k-tdep.c m88kbsd-nat.c \
 	microblaze-tdep.c microblaze-linux-tdep.c \
-	mingw-hdep.c \
+	mingw-hdep.c common/mingw-strerror.c \
 	mips-linux-nat.c mips-linux-tdep.c \
 	mips-sde-tdep.c \
 	mips-tdep.c \
@@ -1690,7 +1690,7 @@ ALLDEPFILES = \
 	nios2-tdep.c nios2-linux-tdep.c \
 	nbsd-nat.c nbsd-tdep.c obsd-nat.c obsd-tdep.c \
 	somread.c solib-som.c \
-	posix-hdep.c \
+	posix-hdep.c common/posix-strerror.c \
 	ppc-sysv-tdep.c ppc-linux-nat.c ppc-linux-tdep.c ppc64-tdep.c \
 	ppcfbsd-nat.c ppcfbsd-tdep.c \
 	ppcnbsd-nat.c ppcnbsd-tdep.c \
@@ -2227,6 +2227,14 @@ common-exceptions.o: ${srcdir}/common/co
 	$(COMPILE) $(srcdir)/common/common-exceptions.c
 	$(POSTCOMPILE)
 
+posix-strerror.o: ${srcdir}/common/posix-strerror.c
+	$(COMPILE) $(srcdir)/common/posix-strerror.c
+	$(POSTCOMPILE)
+
+mingw-strerror.o: ${srcdir}/common/mingw-strerror.c
+	$(COMPILE) $(srcdir)/common/mingw-strerror.c
+	$(POSTCOMPILE)
+
 #
 # gdb/target/ dependencies
 #
@@ -2270,6 +2278,14 @@ mips-linux-watch.o: ${srcdir}/nat/mips-l
 	$(COMPILE) $(srcdir)/nat/mips-linux-watch.c
 	$(POSTCOMPILE)
 
+ppc-linux.o: ${srcdir}/nat/ppc-linux.c
+	$(COMPILE) $(srcdir)/nat/ppc-linux.c
+	$(POSTCOMPILE)
+
+linux-personality.o: ${srcdir}/nat/linux-personality.c
+	$(COMPILE) $(srcdir)/nat/linux-personality.c
+	$(POSTCOMPILE)
+
 #
 # gdb/tui/ dependencies
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/mingw-hdep.c ./gdb/mingw-hdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/mingw-hdep.c	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/mingw-hdep.c	2015-01-20 01:48:37.000000000 +0000
@@ -35,50 +35,6 @@ static HANDLE sigint_event;
    function.  */
 struct async_signal_handler *sigint_handler;
 
-/* The strerror() function can return NULL for errno values that are
-   out of range.  Provide a "safe" version that always returns a
-   printable string.
-
-   The Windows runtime implementation of strerror never returns NULL,
-   but does return a useless string for anything above sys_nerr;
-   unfortunately this includes all socket-related error codes.
-   This replacement tries to find a system-provided error message.  */
-
-char *
-safe_strerror (int errnum)
-{
-  static char *buffer;
-  int len;
-
-  if (errnum >= 0 && errnum < sys_nerr)
-    return strerror (errnum);
-
-  if (buffer)
-    {
-      LocalFree (buffer);
-      buffer = NULL;
-    }
-
-  if (FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER
-		     | FORMAT_MESSAGE_FROM_SYSTEM,
-		     NULL, errnum,
-		     MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
-		     (LPTSTR) &buffer, 0, NULL) == 0)
-    {
-      static char buf[32];
-      xsnprintf (buf, sizeof buf, "(undocumented errno %d)", errnum);
-      return buf;
-    }
-
-  /* Windows error messages end with a period and a CR-LF; strip that
-     out.  */
-  len = strlen (buffer);
-  if (len > 3 && strcmp (buffer + len - 3, ".\r\n") == 0)
-    buffer[len - 3] = '\0';
-
-  return buffer;
-}
-
 /* Return an absolute file name of the running GDB, if possible, or
    ARGV0 if not.  The return value is in malloc'ed storage.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/nat/linux-personality.c ./gdb/nat/linux-personality.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/nat/linux-personality.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/nat/linux-personality.c	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,94 @@
+/* Disable address space randomization based on inferior personality.
+
+   Copyright (C) 2008-2015 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "common-defs.h"
+#include "nat/linux-personality.h"
+
+#ifdef HAVE_PERSONALITY
+# include <sys/personality.h>
+# if !HAVE_DECL_ADDR_NO_RANDOMIZE
+#  define ADDR_NO_RANDOMIZE 0x0040000
+# endif /* ! HAVE_DECL_ADDR_NO_RANDOMIZE */
+#endif /* HAVE_PERSONALITY */
+
+#ifdef HAVE_PERSONALITY
+
+/* Restore address space randomization of the inferior.  ARG is the
+   original inferior's personality value before the address space
+   randomization was disabled.  */
+
+static void
+restore_personality (void *arg)
+{
+  int personality_orig = (int) (uintptr_t) arg;
+
+  errno = 0;
+  personality (personality_orig);
+  if (errno != 0)
+    warning (_("Error restoring address space randomization: %s"),
+	     safe_strerror (errno));
+}
+#endif /* HAVE_PERSONALITY */
+
+/* Return a cleanup responsible for restoring the inferior's
+   personality (and restoring the inferior's address space
+   randomization) if HAVE_PERSONALITY and if PERSONALITY_SET is not
+   zero; return a null cleanup if not HAVE_PERSONALITY or if
+   PERSONALITY_SET is zero.  */
+
+static struct cleanup *
+make_disable_asr_cleanup (int personality_set, int personality_orig)
+{
+#ifdef HAVE_PERSONALITY
+  if (personality_set != 0)
+    return make_cleanup (restore_personality,
+			 (void *) (uintptr_t) personality_orig);
+#endif /* HAVE_PERSONALITY */
+
+  return make_cleanup (null_cleanup, NULL);
+}
+
+/* See comment on nat/linux-personality.h.  */
+
+struct cleanup *
+maybe_disable_address_space_randomization (int disable_randomization)
+{
+  int personality_orig = 0;
+  int personality_set = 0;
+
+#ifdef HAVE_PERSONALITY
+  if (disable_randomization)
+    {
+      errno = 0;
+      personality_orig = personality (0xffffffff);
+      if (errno == 0 && !(personality_orig & ADDR_NO_RANDOMIZE))
+	{
+	  personality_set = 1;
+	  personality (personality_orig | ADDR_NO_RANDOMIZE);
+	}
+      if (errno != 0 || (personality_set
+			 && !(personality (0xffffffff) & ADDR_NO_RANDOMIZE)))
+	warning (_("Error disabling address space randomization: %s"),
+		 safe_strerror (errno));
+    }
+#endif /* HAVE_PERSONALITY */
+
+  return make_disable_asr_cleanup (personality_set,
+				   personality_orig);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/nat/linux-personality.h ./gdb/nat/linux-personality.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/nat/linux-personality.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/nat/linux-personality.h	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,31 @@
+/* Disable address space randomization based on inferior personality.
+
+   Copyright (C) 2008-2015 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef NAT_LINUX_PERSONALITY_H
+#define NAT_LINUX_PERSONALITY_H
+
+/* Disable the inferior's address space randomization if
+   DISABLE_RANDOMIZATION is not zero and if we have
+   <sys/personality.h>.  Return a cleanup which, when called, will
+   re-enable the inferior's address space randomization.  */
+
+extern struct cleanup *maybe_disable_address_space_randomization
+  (int disable_randomization);
+
+#endif /* ! NAT_LINUX_PERSONALITY_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/nat/linux-procfs.c ./gdb/nat/linux-procfs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/nat/linux-procfs.c	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/nat/linux-procfs.c	2015-01-20 01:48:37.000000000 +0000
@@ -212,7 +212,7 @@ linux_proc_attach_tgid_threads (pid_t pi
   dir = opendir (pathname);
   if (dir == NULL)
     {
-      warning (_("Could not open /proc/%ld/task.\n"), (long) pid);
+      warning (_("Could not open /proc/%ld/task."), (long) pid);
       return;
     }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/nat/ppc-linux.c ./gdb/nat/ppc-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/nat/ppc-linux.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/nat/ppc-linux.c	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,75 @@
+/*Copyright (C) 2015 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "common-defs.h"
+#include "ppc-linux.h"
+#include <elf.h>
+
+#ifdef HAVE_GETAUXVAL
+#include <sys/auxv.h>
+#endif
+
+#ifdef __powerpc64__
+
+/* Get the HWCAP from the process of GDB or GDBserver.  If success,
+   save it in *VALP.   */
+
+static void
+ppc64_host_hwcap (unsigned long *valp)
+{
+#ifdef HAVE_GETAUXVAL
+  *valp = getauxval (AT_HWCAP);
+#else
+  unsigned long data[2];
+  FILE *f = fopen ("/proc/self/auxv", "r");
+
+  if (f == NULL)
+    return;
+
+  while (fread (data, sizeof (data), 1, f) > 0)
+    {
+      if (data[0] == AT_HWCAP)
+	{
+	  *valp = data[1];
+	  break;
+	}
+    }
+
+  fclose (f);
+#endif /* HAVE_GETAUXVAL */
+}
+
+int
+ppc64_64bit_inferior_p (long msr)
+{
+  unsigned long ppc_host_hwcap = 0;
+
+  /* Get host's HWCAP to check whether the machine is Book E.  */
+  ppc64_host_hwcap (&ppc_host_hwcap);
+
+  /* We actually have a 64-bit inferior only if the certain bit of the
+     MSR is set.  The PowerISA Book III-S MSR is different from the
+     PowerISA Book III-E MSR.  The Book III-S MSR is 64 bits wide, and
+     its MSR[SF] is the bit 0 of a 64-bit value.  Book III-E MSR is 32
+     bits wide, and its MSR[CM] is the bit 0 of a 32-bit value.   */
+  if (ppc_host_hwcap & PPC_FEATURE_BOOKE)
+    return msr & 0x80000000;
+  else
+    return msr < 0;
+}
+
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/nat/ppc-linux.h ./gdb/nat/ppc-linux.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/nat/ppc-linux.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/nat/ppc-linux.h	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,91 @@
+/* Copyright (C) 1995-2015 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef PPC_LINUX_H
+#define PPC_LINUX_H 1
+
+#include <asm/ptrace.h>
+#include <asm/cputable.h>
+
+/* This sometimes isn't defined.  */
+#ifndef PT_ORIG_R3
+#define PT_ORIG_R3 34
+#endif
+#ifndef PT_TRAP
+#define PT_TRAP 40
+#endif
+
+/* The PPC_FEATURE_* defines should be provided by <asm/cputable.h>.
+   If they aren't, we can provide them ourselves (their values are fixed
+   because they are part of the kernel ABI).  They are used in the AT_HWCAP
+   entry of the AUXV.  */
+#ifndef PPC_FEATURE_CELL
+#define PPC_FEATURE_CELL 0x00010000
+#endif
+#ifndef PPC_FEATURE_BOOKE
+#define PPC_FEATURE_BOOKE 0x00008000
+#endif
+#ifndef PPC_FEATURE_HAS_DFP
+#define PPC_FEATURE_HAS_DFP	0x00000400  /* Decimal Floating Point.  */
+#endif
+#ifndef PPC_FEATURE_HAS_VSX
+#define PPC_FEATURE_HAS_VSX 0x00000080
+#endif
+#ifndef PPC_FEATURE_HAS_ALTIVEC
+#define PPC_FEATURE_HAS_ALTIVEC 0x10000000
+#endif
+#ifndef PPC_FEATURE_HAS_SPE
+#define PPC_FEATURE_HAS_SPE 0x00800000
+#endif
+
+/* Glibc's headers don't define PTRACE_GETVRREGS so we cannot use a
+   configure time check.  Some older glibc's (for instance 2.2.1)
+   don't have a specific powerpc version of ptrace.h, and fall back on
+   a generic one.  In such cases, sys/ptrace.h defines
+   PTRACE_GETFPXREGS and PTRACE_SETFPXREGS to the same numbers that
+   ppc kernel's asm/ptrace.h defines PTRACE_GETVRREGS and
+   PTRACE_SETVRREGS to be.  This also makes a configury check pretty
+   much useless.  */
+
+/* These definitions should really come from the glibc header files,
+   but Glibc doesn't know about the vrregs yet.  */
+#ifndef PTRACE_GETVRREGS
+#define PTRACE_GETVRREGS 18
+#define PTRACE_SETVRREGS 19
+#endif
+
+/* PTRACE requests for POWER7 VSX registers.  */
+#ifndef PTRACE_GETVSXREGS
+#define PTRACE_GETVSXREGS 27
+#define PTRACE_SETVSXREGS 28
+#endif
+
+/* Similarly for the ptrace requests for getting / setting the SPE
+   registers (ev0 -- ev31, acc, and spefscr).  See the description of
+   gdb_evrregset_t for details.  */
+#ifndef PTRACE_GETEVRREGS
+#define PTRACE_GETEVRREGS 20
+#define PTRACE_SETEVRREGS 21
+#endif
+
+#ifdef __powerpc64__
+/* Return whether the inferior is 64bit or not by checking certain bit
+   in MSR.  */
+int ppc64_64bit_inferior_p (long msr);
+#endif
+
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/NEWS ./gdb/NEWS
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/NEWS	2015-01-13 01:48:38.000000000 +0000
+++ ./gdb/NEWS	2015-01-20 01:48:37.000000000 +0000
@@ -1,7 +1,9 @@
 		What has changed in GDB?
 	     (Organized release by release)
 
-*** Changes since GDB 7.8
+*** Changes since GDB 7.9
+
+*** Changes in GDB 7.9
 
 * GDB now supports hardware watchpoints on x86 GNU Hurd.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/objfiles.c ./gdb/objfiles.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/objfiles.c	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/objfiles.c	2015-01-20 01:48:37.000000000 +0000
@@ -1492,7 +1492,7 @@ default_iterate_over_objfiles_in_search_
     }
 }
 
-/* Return canonical name for OBJFILE.  */
+/* See objfiles.h.  */
 
 const char *
 objfile_name (const struct objfile *objfile)
@@ -1506,6 +1506,17 @@ objfile_name (const struct objfile *objf
 /* See objfiles.h.  */
 
 const char *
+objfile_filename (const struct objfile *objfile)
+{
+  if (objfile->obfd != NULL)
+    return bfd_get_filename (objfile->obfd);
+
+  return NULL;
+}
+
+/* See objfiles.h.  */
+
+const char *
 objfile_debug_name (const struct objfile *objfile)
 {
   return lbasename (objfile->original_name);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/objfiles.h ./gdb/objfiles.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/objfiles.h	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/objfiles.h	2015-01-20 01:48:37.000000000 +0000
@@ -699,8 +699,17 @@ extern void default_iterate_over_objfile
 
 void set_objfile_per_bfd (struct objfile *obj);
 
+/* Return canonical name for OBJFILE.
+   This is the real file name if the file has been opened.
+   Otherwise it is the original name supplied by the user.  */
+
 const char *objfile_name (const struct objfile *objfile);
 
+/* Return the (real) file name of OBJFILE if the file has been opened,
+   otherwise return NULL.  */
+
+const char *objfile_filename (const struct objfile *objfile);
+
 /* Return the name to print for OBJFILE in debugging messages.  */
 
 extern const char *objfile_debug_name (const struct objfile *objfile);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/po/gdb.pot ./gdb/po/gdb.pot
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/po/gdb.pot	2015-01-13 01:52:13.000000000 +0000
+++ ./gdb/po/gdb.pot	2015-01-20 01:54:48.000000000 +0000
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-01-13 01:52+0000\n"
+"POT-Creation-Date: 2015-01-20 01:54+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -80,7 +80,7 @@ msgid ""
 msgstr ""
 
 #: aarch64-linux-tdep.c:284 arm-linux-tdep.c:1197 i386-tdep.c:4052
-#: i386-tdep.c:4161 i386-tdep.c:4176 ppc-linux-tdep.c:929 stap-probe.c:679
+#: i386-tdep.c:4161 i386-tdep.c:4176 ppc-linux-tdep.c:1112 stap-probe.c:679
 #, possible-c-format
 msgid "Invalid register name `%s' on expression `%s'."
 msgstr ""
@@ -300,7 +300,7 @@ msgstr ""
 msgid "packed array index %ld out of bounds"
 msgstr ""
 
-#: ada-lang.c:2631 ada-lang.c:9510 valops.c:1000
+#: ada-lang.c:2631 ada-lang.c:9552 valops.c:1000
 msgid "Left operand of assignment is not a modifiable lvalue."
 msgstr ""
 
@@ -318,360 +318,360 @@ msgstr ""
 msgid "attempt to take bound of something that is not an array"
 msgstr ""
 
-#: ada-lang.c:3031
+#: ada-lang.c:3042
 msgid "Could not find operator name for opcode"
 msgstr ""
 
-#: ada-lang.c:3221
+#: ada-lang.c:3232
 msgid "Unexpected operator during name resolution"
 msgstr ""
 
-#: ada-lang.c:3285
+#: ada-lang.c:3296
 #, possible-c-format
 msgid "No definition found for %s"
 msgstr ""
 
-#: ada-lang.c:3297 ada-lang.c:3349
+#: ada-lang.c:3308 ada-lang.c:3360
 #, possible-c-format
 msgid "Could not find a match for %s"
 msgstr ""
 
-#: ada-lang.c:3302 ada-lang.c:3582
+#: ada-lang.c:3313 ada-lang.c:3593
 #, possible-c-format
 msgid "Multiple matches for %s\n"
 msgstr ""
 
-#: ada-lang.c:3670
+#: ada-lang.c:3681
 msgid "Request to select 0 symbols!"
 msgstr ""
 
-#: ada-lang.c:3675 linespec.c:1406
+#: ada-lang.c:3686 linespec.c:1406
 msgid ""
 "canceled because the command is ambiguous\n"
 "See set/show multiple-symbol."
 msgstr ""
 
-#: ada-lang.c:3685
+#: ada-lang.c:3696
 msgid "[0] cancel\n"
 msgstr ""
 
-#: ada-lang.c:3687
+#: ada-lang.c:3698
 msgid "[1] all\n"
 msgstr ""
 
-#: ada-lang.c:3702
+#: ada-lang.c:3713
 #, possible-c-format
 msgid "[%d] %s at <no source file available>:%d\n"
 msgstr ""
 
-#: ada-lang.c:3707 ada-lang.c:3725
+#: ada-lang.c:3718 ada-lang.c:3736
 #, possible-c-format
 msgid "[%d] %s at %s:%d\n"
 msgstr ""
 
-#: ada-lang.c:3736
+#: ada-lang.c:3747
 #, possible-c-format
 msgid "'(%s) (enumeral)\n"
 msgstr ""
 
-#: ada-lang.c:3741
+#: ada-lang.c:3752
 #, possible-c-format
 msgid "[%d] %s in %s (enumeral)\n"
 msgstr ""
 
-#: ada-lang.c:3742
+#: ada-lang.c:3753
 #, possible-c-format
 msgid "[%d] %s at %s:?\n"
 msgstr ""
 
-#: ada-lang.c:3748
+#: ada-lang.c:3759
 #, possible-c-format
 msgid "[%d] %s (enumeral)\n"
 msgstr ""
 
-#: ada-lang.c:3749
+#: ada-lang.c:3760
 #, possible-c-format
 msgid "[%d] %s at ?\n"
 msgstr ""
 
-#: ada-lang.c:3796 ada-lang.c:3809 linespec.c:1428
+#: ada-lang.c:3807 ada-lang.c:3820 linespec.c:1428
 msgid "one or more choice numbers"
 msgstr ""
 
-#: ada-lang.c:3816
+#: ada-lang.c:3827
 msgid "Argument must be choice number"
 msgstr ""
 
-#: ada-lang.c:3820
+#: ada-lang.c:3831
 msgid "cancelled"
 msgstr ""
 
-#: ada-lang.c:3847
+#: ada-lang.c:3858
 #, possible-c-format
 msgid "Select no more than %d of the above"
 msgstr ""
 
 #. PNH: Do we ever get here?  See ada_search_struct_field,
 #. find_struct_field.
-#: ada-lang.c:7101
+#: ada-lang.c:7143
 msgid "Cannot assign this kind of variant record"
 msgstr ""
 
-#: ada-lang.c:7198 valops.c:2181
+#: ada-lang.c:7240 valops.c:2181
 #, possible-c-format
 msgid "There is no member named %s."
 msgstr ""
 
-#: ada-lang.c:7204
+#: ada-lang.c:7246
 msgid "Attempt to extract a component of a value that is not a record."
 msgstr ""
 
-#: ada-lang.c:7255
+#: ada-lang.c:7297
 msgid "Type (null) is not a structure or union type"
 msgstr ""
 
 #. XXX: type_sprint
-#: ada-lang.c:7259 ada-lang.c:7338 ada-lang.c:7345
+#: ada-lang.c:7301 ada-lang.c:7380 ada-lang.c:7387
 msgid "Type "
 msgstr ""
 
-#: ada-lang.c:7261
+#: ada-lang.c:7303
 msgid " is not a structure or union type"
 msgstr ""
 
-#: ada-lang.c:7340
+#: ada-lang.c:7382
 msgid " has no component named <null>"
 msgstr ""
 
-#: ada-lang.c:7347
+#: ada-lang.c:7389
 #, possible-c-format
 msgid " has no component named %s"
 msgstr ""
 
-#: ada-lang.c:7704
+#: ada-lang.c:7746
 msgid "unexpected null name on descriptive type"
 msgstr ""
 
-#: ada-lang.c:8083
+#: ada-lang.c:8125
 #, possible-c-format
 msgid "Invalid type size for `%s' detected: %d."
 msgstr ""
 
-#: ada-lang.c:8086
+#: ada-lang.c:8128
 #, possible-c-format
 msgid "Invalid type size for <unnamed> detected: %d."
 msgstr ""
 
-#: ada-lang.c:8097
+#: ada-lang.c:8139
 msgid "record type with dynamic size is larger than varsize-limit"
 msgstr ""
 
-#: ada-lang.c:8497
+#: ada-lang.c:8539
 msgid "array type with dynamic size is larger than varsize-limit"
 msgstr ""
 
-#: ada-lang.c:8867
+#: ada-lang.c:8909
 msgid "'POS only defined on discrete types"
 msgstr ""
 
-#: ada-lang.c:8879
+#: ada-lang.c:8921
 msgid "enumeration value is invalid: can't find 'POS"
 msgstr ""
 
-#: ada-lang.c:8897
+#: ada-lang.c:8939
 msgid "'VAL only defined on discrete types"
 msgstr ""
 
-#: ada-lang.c:8899
+#: ada-lang.c:8941
 msgid "'VAL requires integral argument"
 msgstr ""
 
-#: ada-lang.c:8906
+#: ada-lang.c:8948
 msgid "argument to 'VAL out of range"
 msgstr ""
 
-#: ada-lang.c:9228 ada-lang.c:9266
+#: ada-lang.c:9270 ada-lang.c:9308
 msgid "unable to determine array bounds"
 msgstr ""
 
-#: ada-lang.c:9307
+#: ada-lang.c:9349
 msgid "cannot assign arrays of different length"
 msgstr ""
 
-#: ada-lang.c:9321
+#: ada-lang.c:9363
 msgid "Incompatible types in assignment"
 msgstr ""
 
-#: ada-lang.c:9355
+#: ada-lang.c:9397
 #, possible-c-format
 msgid "second operand of %s must not be zero."
 msgstr ""
 
-#: ada-lang.c:9400
+#: ada-lang.c:9442
 msgid "Attempt to compare array with non-array"
 msgstr ""
 
-#: ada-lang.c:9526
+#: ada-lang.c:9568
 msgid "Left-hand side must be array or record."
 msgstr ""
 
-#: ada-lang.c:9551
+#: ada-lang.c:9593
 msgid "Misplaced 'others' clause"
 msgstr ""
 
-#: ada-lang.c:9556
+#: ada-lang.c:9598
 msgid "Internal error: bad aggregate clause"
 msgstr ""
 
-#: ada-lang.c:9578
+#: ada-lang.c:9620
 msgid "Extra components in aggregate ignored."
 msgstr ""
 
-#: ada-lang.c:9645
+#: ada-lang.c:9687
 msgid "Invalid record component association."
 msgstr ""
 
-#: ada-lang.c:9651
+#: ada-lang.c:9693
 #, possible-c-format
 msgid "Unknown component name: %s."
 msgstr ""
 
-#: ada-lang.c:9656
+#: ada-lang.c:9698
 msgid "Index in component association out of bounds."
 msgstr ""
 
-#: ada-lang.c:9732
+#: ada-lang.c:9774
 msgid "Internal error: miscounted aggregate components."
 msgstr ""
 
-#: ada-lang.c:10104
+#: ada-lang.c:10146
 msgid "Fixed-point values must be assigned to fixed-point variables"
 msgstr ""
 
-#: ada-lang.c:10125
+#: ada-lang.c:10167
 msgid "Operands of fixed-point addition must have the same type"
 msgstr ""
 
-#: ada-lang.c:10151
+#: ada-lang.c:10193
 msgid "Operands of fixed-point subtraction must have the same type"
 msgstr ""
 
 #. Only encountered when an unresolved symbol occurs in a
 #. context other than a function call, in which case, it is
 #. invalid.
-#: ada-lang.c:10254 ada-lang.c:10345
+#: ada-lang.c:10296 ada-lang.c:10387
 #, possible-c-format
 msgid "Unexpected unresolved symbol, %s, during evaluation"
 msgstr ""
 
-#: ada-lang.c:10394
+#: ada-lang.c:10436
 #, possible-c-format
 msgid "cannot subscript or call something of type `%s'"
 msgstr ""
 
-#: ada-lang.c:10430
+#: ada-lang.c:10472
 msgid "cannot subscript or call a record"
 msgstr ""
 
-#: ada-lang.c:10432
+#: ada-lang.c:10474
 #, possible-c-format
 msgid "wrong number of subscripts; expecting %d"
 msgstr ""
 
-#: ada-lang.c:10444 ada-lang.c:10458
+#: ada-lang.c:10486 ada-lang.c:10500
 msgid "element type of array unknown"
 msgstr ""
 
-#: ada-lang.c:10467
+#: ada-lang.c:10509
 msgid "Attempt to index or call something other than an array or function"
 msgstr ""
 
-#: ada-lang.c:10497
+#: ada-lang.c:10539
 msgid "cannot slice a packed array"
 msgstr ""
 
-#: ada-lang.c:10525 valops.c:3764
+#: ada-lang.c:10567 valops.c:3764
 msgid "cannot take slice of non-array"
 msgstr ""
 
-#: ada-lang.c:10564
+#: ada-lang.c:10606
 msgid "Membership test incompletely implemented; always returns true"
 msgstr ""
 
-#: ada-lang.c:10653
+#: ada-lang.c:10695
 #, possible-c-format
 msgid "Invalid operand to '%s"
 msgstr ""
 
 #. Should never happen.
-#: ada-lang.c:10683 ada-lang.c:10708 ada-lang.c:10743
+#: ada-lang.c:10725 ada-lang.c:10750 ada-lang.c:10785
 msgid "unexpected attribute encountered"
 msgstr ""
 
-#: ada-lang.c:10716
+#: ada-lang.c:10758
 msgid "the 'length attribute applies only to array types"
 msgstr ""
 
-#: ada-lang.c:10720
+#: ada-lang.c:10762
 msgid "unimplemented type attribute"
 msgstr ""
 
-#: ada-lang.c:10793
+#: ada-lang.c:10835
 msgid "'modulus must be applied to modular type"
 msgstr ""
 
-#: ada-lang.c:10890
+#: ada-lang.c:10932
 msgid "Attempt to dereference null array pointer."
 msgstr ""
 
-#: ada-lang.c:10934 eval.c:2510 eval.c:3011 valops.c:1580
+#: ada-lang.c:10976 eval.c:2510 eval.c:3011 valops.c:1580
 msgid "Attempt to take contents of a non-pointer value."
 msgstr ""
 
-#: ada-lang.c:11011 eval.c:2748
+#: ada-lang.c:11053 eval.c:2748
 msgid "Attempt to use a type name as an expression"
 msgstr ""
 
-#: ada-lang.c:11023
+#: ada-lang.c:11065
 #, possible-c-format
 msgid ""
 "Undefined name, ambiguous name, or renaming used in component association: %"
 "s."
 msgstr ""
 
-#: ada-lang.c:11026
+#: ada-lang.c:11068
 msgid "Aggregates only allowed on the right of an assignment"
 msgstr ""
 
-#: ada-lang.c:11029
+#: ada-lang.c:11071
 msgid "aggregate apparently mangled"
 msgstr ""
 
-#: ada-lang.c:11323
+#: ada-lang.c:11365
 msgid "Unknown lower bound, using 1."
 msgstr ""
 
-#: ada-lang.c:11342
+#: ada-lang.c:11384
 #, possible-c-format
 msgid "Unknown upper bound, using %ld."
 msgstr ""
 
-#: ada-lang.c:11523
+#: ada-lang.c:11565
 msgid ""
 "Your Ada runtime appears to be missing some debugging information.\n"
 "Cannot insert Ada exception catchpoint in this configuration."
 msgstr ""
 
-#: ada-lang.c:11533
+#: ada-lang.c:11575
 #, possible-c-format
 msgid "Symbol \"%s\" is not a function (class = %d)"
 msgstr ""
 
-#: ada-lang.c:11575
+#: ada-lang.c:11617
 msgid "Unable to insert catchpoint.  Is this an Ada main program?"
 msgstr ""
 
-#: ada-lang.c:11583
+#: ada-lang.c:11625
 msgid "Unable to insert catchpoint. Try to start the program first."
 msgstr ""
 
@@ -681,115 +681,115 @@ msgstr ""
 #. configurable run time mode, or that a-except as been optimized
 #. out by the linker...  In any case, at this point it is not worth
 #. supporting this feature.
-#: ada-lang.c:11592
+#: ada-lang.c:11634
 msgid "Cannot insert Ada exception catchpoints in this configuration."
 msgstr ""
 
-#: ada-lang.c:11765 ada-lang.c:12133 ada-lang.c:12177 ada-lang.c:12208
+#: ada-lang.c:11807 ada-lang.c:12175 ada-lang.c:12219 ada-lang.c:12250
 msgid "unexpected catchpoint type"
 msgstr ""
 
-#: ada-lang.c:11791
+#: ada-lang.c:11833
 #, possible-c-format
 msgid "failed to get exception name: %s"
 msgstr ""
 
-#: ada-lang.c:11904
+#: ada-lang.c:11946
 #, possible-c-format
 msgid "failed to reevaluate internal exception condition for catchpoint %d: %s"
 msgstr ""
 
-#: ada-lang.c:12003
+#: ada-lang.c:12045
 msgid "Error in testing exception condition:\n"
 msgstr ""
 
-#: ada-lang.c:12114 ada-lang.c:12158
+#: ada-lang.c:12156 ada-lang.c:12200
 #, possible-c-format
 msgid "`%s' Ada exception"
 msgstr ""
 
-#: ada-lang.c:12148 break-catch-throw.c:341
+#: ada-lang.c:12190 break-catch-throw.c:341
 msgid "Temporary catchpoint "
 msgstr ""
 
-#: ada-lang.c:12149 break-catch-throw.c:342
+#: ada-lang.c:12191 break-catch-throw.c:342
 msgid "Catchpoint "
 msgstr ""
 
-#: ada-lang.c:12165
+#: ada-lang.c:12207
 msgid "all Ada exceptions"
 msgstr ""
 
-#: ada-lang.c:12169
+#: ada-lang.c:12211
 msgid "unhandled Ada exceptions"
 msgstr ""
 
-#: ada-lang.c:12173
+#: ada-lang.c:12215
 msgid "failed Ada assertions"
 msgstr ""
 
-#: ada-lang.c:12445
+#: ada-lang.c:12487
 msgid "Condition missing after `if' keyword"
 msgstr ""
 
-#: ada-lang.c:12456 breakpoint.c:1000 breakpoint.c:1014
+#: ada-lang.c:12498 breakpoint.c:1000 breakpoint.c:1014
 msgid "Junk at end of expression"
 msgstr ""
 
-#: ada-lang.c:12504 ada-lang.c:12527
+#: ada-lang.c:12546 ada-lang.c:12569
 #, possible-c-format
 msgid "unexpected catchpoint kind (%d)"
 msgstr ""
 
-#: ada-lang.c:12705
+#: ada-lang.c:12747
 msgid "condition missing after `if' keyword"
 msgstr ""
 
-#: ada-lang.c:12712 break-catch-throw.c:471 breakpoint.c:9905
+#: ada-lang.c:12754 break-catch-throw.c:471 breakpoint.c:9905
 #: breakpoint.c:11846 breakpoint.c:11990 breakpoint.c:12035 breakpoint.c:15699
 msgid "Junk at end of arguments."
 msgstr ""
 
-#: ada-lang.c:13048
+#: ada-lang.c:13090
 msgid "invalid regular expression"
 msgstr ""
 
-#: ada-lang.c:13073
+#: ada-lang.c:13115
 #, possible-c-format
 msgid "All Ada exceptions matching regular expression \"%s\":\n"
 msgstr ""
 
-#: ada-lang.c:13075
+#: ada-lang.c:13117
 msgid "All defined Ada exceptions:\n"
 msgstr ""
 
 #. XXX: gdb_sprint_host_address, type_sprint
-#: ada-lang.c:13257
+#: ada-lang.c:13299
 msgid "Type @"
 msgstr ""
 
-#: ada-lang.c:13657
+#: ada-lang.c:13699
 msgid "\"set ada\" must be followed by the name of a setting.\n"
 msgstr ""
 
-#: ada-lang.c:13735
+#: ada-lang.c:13777
 msgid "Prefix command for changing Ada-specfic settings"
 msgstr ""
 
-#: ada-lang.c:13739
+#: ada-lang.c:13781
 msgid "Generic command for showing Ada-specific settings."
 msgstr ""
 
-#: ada-lang.c:13743
+#: ada-lang.c:13785
 msgid "Enable or disable an optimization trusting PAD types over XVS types"
 msgstr ""
 
-#: ada-lang.c:13744
+#: ada-lang.c:13786
 msgid ""
 "Show whether an optimization trusting PAD types over XVS types is activated"
 msgstr ""
 
-#: ada-lang.c:13746
+#: ada-lang.c:13788
 msgid ""
 "This is related to the encoding used by the GNAT compiler.  The debugger\n"
 "should normally trust the contents of PAD types, but certain older versions\n"
@@ -801,42 +801,42 @@ msgid ""
 "this option to \"off\" unless necessary."
 msgstr ""
 
-#: ada-lang.c:13756
+#: ada-lang.c:13798
 msgid ""
 "Catch Ada exceptions, when raised.\n"
 "With an argument, catch only exceptions with the given name."
 msgstr ""
 
-#: ada-lang.c:13763
+#: ada-lang.c:13805
 msgid ""
 "Catch failed Ada assertions, when raised.\n"
 "With an argument, catch only exceptions with the given name."
 msgstr ""
 
-#: ada-lang.c:13774
+#: ada-lang.c:13816
 msgid ""
 "List all Ada exception names.\n"
 "If a regular expression is passed as an argument, only those matching\n"
 "the regular expression are listed."
 msgstr ""
 
-#: ada-lang.c:13780
+#: ada-lang.c:13822
 msgid "Set Ada maintenance-related variables."
 msgstr ""
 
-#: ada-lang.c:13785
+#: ada-lang.c:13827
 msgid "Show Ada maintenance-related variables"
 msgstr ""
 
-#: ada-lang.c:13792
+#: ada-lang.c:13834
 msgid "Set whether descriptive types generated by GNAT should be ignored."
 msgstr ""
 
-#: ada-lang.c:13793
+#: ada-lang.c:13835
 msgid "Show whether descriptive types generated by GNAT should be ignored."
 msgstr ""
 
-#: ada-lang.c:13794
+#: ada-lang.c:13836
 msgid ""
 "When enabled, the debugger will stop using the DW_AT_GNAT_descriptive_type\n"
 "DWARF attribute."
@@ -1786,7 +1786,7 @@ msgstr ""
 msgid "\"set arm\" must be followed by an apporpriate subcommand.\n"
 msgstr ""
 
-#: arm-tdep.c:9384 rs6000-tdep.c:4253 rs6000-tdep.c:4280
+#: arm-tdep.c:9384 rs6000-tdep.c:6022 rs6000-tdep.c:6049
 msgid "could not update architecture"
 msgstr ""
 
@@ -1955,7 +1955,7 @@ msgstr ""
 msgid "Process record does not support instruction x%0x at address %s.\n"
 msgstr ""
 
-#: arm-tdep.c:12507 arm-tdep.c:12945
+#: arm-tdep.c:12507 arm-tdep.c:12945 rs6000-tdep.c:5065
 msgid "no syscall record support\n"
 msgstr ""
 
@@ -11121,12 +11121,12 @@ msgstr ""
 msgid "libthread-db-search-path component too long, ignored: %s."
 msgstr ""
 
-#: gdbserver/linux-low.c:807
+#: gdbserver/linux-low.c:781 linux-nat.c:1151
 #, possible-c-format
 msgid "Cannot attach to lwp %d: %s"
 msgstr ""
 
-#: gdbserver/linux-low.c:1152 linux-nat.c:1441
+#: gdbserver/linux-low.c:1126 linux-nat.c:1408
 #, possible-c-format
 msgid "Can't detach %s: %s"
 msgstr ""
@@ -13567,7 +13567,7 @@ msgstr ""
 msgid "The program being debugged is not being run.\n"
 msgstr ""
 
-#: infcmd.c:1913 infrun.c:7085
+#: infcmd.c:1913 infrun.c:7095
 msgid "Selected thread is running."
 msgstr ""
 
@@ -14351,132 +14351,132 @@ msgstr ""
 msgid "Program exited while detaching"
 msgstr ""
 
-#: infrun.c:3304
+#: infrun.c:3314
 msgid "completed.\n"
 msgstr ""
 
-#: infrun.c:3794
+#: infrun.c:3804
 #, possible-c-format
 msgid "unhandled stop_soon: %d"
 msgstr ""
 
-#: infrun.c:3865
+#: infrun.c:3875
 msgid "Cannot fill $_exitsignal with the correct signal number.\n"
 msgstr ""
 
-#: infrun.c:6369
+#: infrun.c:6379
 msgid "Unknown value."
 msgstr ""
 
-#: infrun.c:6449 linux-fork.c:376 linux-fork.c:408
+#: infrun.c:6459 linux-fork.c:376 linux-fork.c:408
 #, possible-c-format
 msgid "[Switching to %s]\n"
 msgstr ""
 
-#: infrun.c:6460
+#: infrun.c:6470
 msgid "No unwaited-for children left.\n"
 msgstr ""
 
-#: infrun.c:6469
+#: infrun.c:6479
 msgid ""
 "Cannot remove breakpoints because program is no longer writable.\n"
 "Further execution is probably impossible.\n"
 msgstr ""
 
-#: infrun.c:6717
+#: infrun.c:6727
 msgid "Signal        Stop\tPrint\tPass to program\tDescription\n"
 msgstr ""
 
-#: infrun.c:6754
+#: infrun.c:6764
 msgid "signal to handle"
 msgstr ""
 
 #. Not a number and not a recognized flag word => complain.
-#: infrun.c:6857
+#: infrun.c:6867
 #, possible-c-format
 msgid "Unrecognized or ambiguous flag word: \"%s\"."
 msgstr ""
 
-#: infrun.c:6872
+#: infrun.c:6882
 #, possible-c-format
 msgid ""
 "%s is used by the debugger.\n"
 "Are you sure you want to change it? "
 msgstr ""
 
-#: infrun.c:6880
+#: infrun.c:6890
 msgid "Not confirmed, unchanged.\n"
 msgstr ""
 
-#: infrun.c:6958
+#: infrun.c:6968
 msgid "xdb command"
 msgstr ""
 
-#: infrun.c:7009
+#: infrun.c:7019
 msgid "Invalid signal handling flag.\n"
 msgstr ""
 
-#: infrun.c:7022
+#: infrun.c:7032
 msgid ""
 "Only signals 1-15 are valid as numeric signals.\n"
 "Use \"info signals\" for a list of symbolic signals."
 msgstr ""
 
-#: infrun.c:7065
+#: infrun.c:7075
 msgid ""
 "\n"
 "Use the \"handle\" command to change these tables.\n"
 msgstr ""
 
-#: infrun.c:7077
+#: infrun.c:7087
 msgid "No thread selected."
 msgstr ""
 
-#: infrun.c:7081
+#: infrun.c:7091
 msgid "The current thread has terminated"
 msgstr ""
 
-#: infrun.c:7116
+#: infrun.c:7126
 msgid "Unable to read siginfo"
 msgstr ""
 
-#: infrun.c:7137
+#: infrun.c:7147
 msgid "Unable to write siginfo"
 msgstr ""
 
-#: infrun.c:7375 stack.c:1828 stack.c:2053
+#: infrun.c:7385 stack.c:1828 stack.c:2053
 msgid "Unable to restore previously selected frame."
 msgstr ""
 
-#: infrun.c:7522
+#: infrun.c:7532
 msgid "Target does not support this operation."
 msgstr ""
 
-#: infrun.c:7532
+#: infrun.c:7542
 msgid "Forward.\n"
 msgstr ""
 
-#: infrun.c:7535
+#: infrun.c:7545
 msgid "Reverse.\n"
 msgstr ""
 
-#: infrun.c:7539
+#: infrun.c:7549
 #, possible-c-format
 msgid "bogus execution_direction value: %d"
 msgstr ""
 
-#: infrun.c:7548
+#: infrun.c:7558
 #, possible-c-format
 msgid "Resuming the execution of threads of all processes is %s.\n"
 msgstr ""
 
-#: infrun.c:7568 infrun.c:7601
+#: infrun.c:7578 infrun.c:7611
 msgid ""
 "What debugger does when program gets various signals.\n"
 "Specify a signal as argument to print info on that signal only."
 msgstr ""
 
-#: infrun.c:7573
+#: infrun.c:7583
 msgid ""
 "Specify how to handle signals.\n"
 "Usage: handle SIGNAL [ACTIONS]\n"
@@ -14503,7 +14503,7 @@ msgid ""
 "all signals cumulatively specified."
 msgstr ""
 
-#: infrun.c:7604
+#: infrun.c:7614
 msgid ""
 "Specify how to handle a signal.\n"
 "Args are signals and actions to apply to those signals.\n"
@@ -14522,46 +14522,46 @@ msgid ""
 "Pass and Stop may be combined."
 msgstr ""
 
-#: infrun.c:7624
+#: infrun.c:7634
 msgid ""
 "There is no `stop' command, but you can set a hook on `stop'.\n"
 "This allows you to set a list of commands to be run each time execution\n"
 "of the program stops."
 msgstr ""
 
-#: infrun.c:7629
+#: infrun.c:7639
 msgid "Set inferior debugging."
 msgstr ""
 
-#: infrun.c:7630
+#: infrun.c:7640
 msgid "Show inferior debugging."
 msgstr ""
 
-#: infrun.c:7631
+#: infrun.c:7641
 msgid "When non-zero, inferior specific debugging is enabled."
 msgstr ""
 
-#: infrun.c:7638
+#: infrun.c:7648
 msgid "Set displaced stepping debugging."
 msgstr ""
 
-#: infrun.c:7639
+#: infrun.c:7649
 msgid "Show displaced stepping debugging."
 msgstr ""
 
-#: infrun.c:7640
+#: infrun.c:7650
 msgid "When non-zero, displaced stepping specific debugging is enabled."
 msgstr ""
 
-#: infrun.c:7647
+#: infrun.c:7657
 msgid "Set whether gdb controls the inferior in non-stop mode."
 msgstr ""
 
-#: infrun.c:7648
+#: infrun.c:7658
 msgid "Show whether gdb controls the inferior in non-stop mode."
 msgstr ""
 
-#: infrun.c:7649
+#: infrun.c:7659
 msgid ""
 "When debugging a multi-threaded program and this setting is\n"
 "off (the default, also called all-stop mode), when one thread stops\n"
@@ -14576,30 +14576,30 @@ msgid ""
 "leave it stopped or free to run as needed."
 msgstr ""
 
-#: infrun.c:7724
+#: infrun.c:7734
 msgid "Set stopping for shared library events."
 msgstr ""
 
-#: infrun.c:7725
+#: infrun.c:7735
 msgid "Show stopping for shared library events."
 msgstr ""
 
-#: infrun.c:7726
+#: infrun.c:7736
 msgid ""
 "If nonzero, gdb will give control to the user when the dynamic linker\n"
 "notifies gdb of shared library events.  The most common event of interest\n"
 "to the user would be loading/unloading of a new library."
 msgstr ""
 
-#: infrun.c:7736
+#: infrun.c:7746
 msgid "Set debugger response to a program call of fork or vfork."
 msgstr ""
 
-#: infrun.c:7737
+#: infrun.c:7747
 msgid "Show debugger response to a program call of fork or vfork."
 msgstr ""
 
-#: infrun.c:7738
+#: infrun.c:7748
 msgid ""
 "A fork or vfork creates a new process.  follow-fork-mode can be:\n"
 "  parent  - the original process is debugged after a fork\n"
@@ -14608,15 +14608,15 @@ msgid ""
 "By default, the debugger will follow the parent process."
 msgstr ""
 
-#: infrun.c:7750
+#: infrun.c:7760
 msgid "Set debugger response to a program call of exec."
 msgstr ""
 
-#: infrun.c:7751
+#: infrun.c:7761
 msgid "Show debugger response to a program call of exec."
 msgstr ""
 
-#: infrun.c:7752
+#: infrun.c:7762
 msgid ""
 "An exec call replaces the program image of a process.\n"
 "\n"
@@ -14635,15 +14635,15 @@ msgid ""
 "By default, the debugger will use the same inferior."
 msgstr ""
 
-#: infrun.c:7773
+#: infrun.c:7783
 msgid "Set mode for locking scheduler during execution."
 msgstr ""
 
-#: infrun.c:7774
+#: infrun.c:7784
 msgid "Show mode for locking scheduler during execution."
 msgstr ""
 
-#: infrun.c:7775
+#: infrun.c:7785
 msgid ""
 "off  == no locking (threads may preempt at any time)\n"
 "on   == full locking (no thread except the current thread may run)\n"
@@ -14652,15 +14652,15 @@ msgid ""
 "\tOther threads may run while stepping over a function call ('next')."
 msgstr ""
 
-#: infrun.c:7785
+#: infrun.c:7795
 msgid "Set mode for resuming threads of all processes."
 msgstr ""
 
-#: infrun.c:7786
+#: infrun.c:7796
 msgid "Show mode for resuming threads of all processes."
 msgstr ""
 
-#: infrun.c:7787
+#: infrun.c:7797
 msgid ""
 "When on, execution commands (such as 'continue' or 'next') resume all\n"
 "threads of all processes.  When off (which is the default), execution\n"
@@ -14669,30 +14669,30 @@ msgid ""
 "mode (see help set scheduler-locking)."
 msgstr ""
 
-#: infrun.c:7797
+#: infrun.c:7807
 msgid "Set mode of the step operation."
 msgstr ""
 
-#: infrun.c:7798
+#: infrun.c:7808
 msgid "Show mode of the step operation."
 msgstr ""
 
-#: infrun.c:7799
+#: infrun.c:7809
 msgid ""
 "When set, doing a step over a function without debug line information\n"
 "will stop at the first instruction of that function. Otherwise, the\n"
 "function is skipped and the step command stops at a different source line."
 msgstr ""
 
-#: infrun.c:7808
+#: infrun.c:7818
 msgid "Set debugger's willingness to use displaced stepping."
 msgstr ""
 
-#: infrun.c:7809
+#: infrun.c:7819
 msgid "Show debugger's willingness to use displaced stepping."
 msgstr ""
 
-#: infrun.c:7810
+#: infrun.c:7820
 msgid ""
 "If on, gdb will use displaced stepping to step over breakpoints if it is\n"
 "supported by the target architecture.  If off, gdb will not use displaced\n"
@@ -14704,57 +14704,57 @@ msgid ""
 "use it in all-stop mode (see help set non-stop)."
 msgstr ""
 
-#: infrun.c:7822
+#: infrun.c:7832
 msgid ""
 "Set direction of execution.\n"
 "Options are 'forward' or 'reverse'."
 msgstr ""
 
-#: infrun.c:7824
+#: infrun.c:7834
 msgid "Show direction of execution (forward/reverse)."
 msgstr ""
 
-#: infrun.c:7825
+#: infrun.c:7835
 msgid "Tells gdb whether to execute forward or backward."
 msgstr ""
 
 #. Set/show detach-on-fork: user-settable mode.
-#: infrun.c:7831
+#: infrun.c:7841
 msgid "Set whether gdb will detach the child of a fork."
 msgstr ""
 
-#: infrun.c:7832
+#: infrun.c:7842
 msgid "Show whether gdb will detach the child of a fork."
 msgstr ""
 
-#: infrun.c:7833
+#: infrun.c:7843
 msgid "Tells gdb whether to detach the child of a fork."
 msgstr ""
 
-#: infrun.c:7840
+#: infrun.c:7850
 msgid "Set disabling of debuggee's virtual address space randomization."
 msgstr ""
 
-#: infrun.c:7841
+#: infrun.c:7851
 msgid "Show disabling of debuggee's virtual address space randomization."
 msgstr ""
 
-#: infrun.c:7842
+#: infrun.c:7852
 msgid ""
 "When this mode is on (which is the default), randomization of the virtual\n"
 "address space is disabled.  Standalone programs run with the randomization\n"
 "enabled by default on some platforms."
 msgstr ""
 
-#: infrun.c:7866
+#: infrun.c:7876
 msgid "Set whether gdb controls the inferior in observer mode."
 msgstr ""
 
-#: infrun.c:7867
+#: infrun.c:7877
 msgid "Show whether gdb controls the inferior in observer mode."
 msgstr ""
 
-#: infrun.c:7868
+#: infrun.c:7878
 msgid ""
 "In observer mode, GDB can get data from the inferior, but not\n"
 "affect its execution.  Registers and memory may not be changed,\n"
@@ -14770,7 +14770,7 @@ msgstr ""
 msgid "TT_PROC_GET_NEXT_LWP_STATE ttrace call failed"
 msgstr ""
 
-#: inf-ttrace.c:973 linux-nat.c:901 procfs.c:3637 procfs.c:3775
+#: inf-ttrace.c:973 linux-nat.c:895 procfs.c:3637 procfs.c:3775
 #, possible-c-format
 msgid "[%s exited]\n"
 msgstr ""
@@ -15390,20 +15390,20 @@ msgstr ""
 msgid "IDs of currently known checkpoints."
 msgstr ""
 
-#: linux-nat.c:210
+#: linux-nat.c:204
 #, possible-c-format
 msgid "Debugging of GNU/Linux lwp module is %s.\n"
 msgstr ""
 
-#: linux-nat.c:431
+#: linux-nat.c:425
 msgid "Couldn't do single step"
 msgstr ""
 
-#: linux-nat.c:433
+#: linux-nat.c:427
 msgid "Couldn't wait vfork process"
 msgstr ""
 
-#: linux-nat.c:952
+#: linux-nat.c:946
 #, possible-c-format
 msgid "%s is a cloned process"
 msgstr ""
@@ -15413,83 +15413,68 @@ msgstr ""
 #. creation is interrupted; as of Linux kernel 2.6.19, a
 #. bug may place threads in the thread list and then fail
 #. to create them.
-#: linux-nat.c:1050
+#: linux-nat.c:1044
 #, possible-c-format
 msgid "Can't attach %s: %s"
 msgstr ""
 
-#: linux-nat.c:1125
-#, possible-c-format
-msgid "Error disabling address space randomization: %s"
-msgstr ""
-
-#: linux-nat.c:1141
-#, possible-c-format
-msgid "Error restoring address space randomization: %s"
-msgstr ""
-
-#: linux-nat.c:1184
-#, possible-c-format
-msgid "Cannot attach to lwp %d: %s\n"
-msgstr ""
-
-#: linux-nat.c:1272
+#: linux-nat.c:1239
 msgid "Unable to attach: program exited normally."
 msgstr ""
 
-#: linux-nat.c:1274
+#: linux-nat.c:1241
 #, possible-c-format
 msgid "Unable to attach: program exited with code %d."
 msgstr ""
 
-#: linux-nat.c:1285
+#: linux-nat.c:1252
 #, possible-c-format
 msgid "Unable to attach: program terminated with signal %s, %s."
 msgstr ""
 
-#: linux-nat.c:1292
+#: linux-nat.c:1259
 #, possible-c-format
 msgid "unexpected status %d for PID %ld"
 msgstr ""
 
-#: linux-nat.c:1920
+#: linux-nat.c:1887
 msgid "waiting for new child"
 msgstr ""
 
-#: linux-nat.c:1923
+#: linux-nat.c:1890
 #, possible-c-format
 msgid "wait returned unexpected PID %d"
 msgstr ""
 
-#: linux-nat.c:1926
+#: linux-nat.c:1893
 #, possible-c-format
 msgid "wait returned unexpected status 0x%x"
 msgstr ""
 
-#: linux-nat.c:2136
+#: linux-nat.c:2103
 #, possible-c-format
 msgid "unknown ptrace event %d"
 msgstr ""
 
-#: linux-nat.c:4087 linux-nat.c:4100
+#: linux-nat.c:4054 linux-nat.c:4067
 #, possible-c-format
 msgid "Could not parse signal set: %s"
 msgstr ""
 
-#: linux-nat.c:4134
+#: linux-nat.c:4101
 #, possible-c-format
 msgid "Could not open %s"
 msgstr ""
 
-#: linux-nat.c:4805
+#: linux-nat.c:4772
 msgid "Set debugging of GNU/Linux lwp module."
 msgstr ""
 
-#: linux-nat.c:4806
+#: linux-nat.c:4773
 msgid "Show debugging of GNU/Linux lwp module."
 msgstr ""
 
-#: linux-nat.c:4807
+#: linux-nat.c:4774
 msgid "Enables printf debugging output."
 msgstr ""
 
@@ -15542,7 +15527,7 @@ msgid ""
 "Do you want to stop the program?"
 msgstr ""
 
-#: linux-record.c:2278
+#: linux-record.c:2278 ppc-linux-tdep.c:839
 #, possible-c-format
 msgid "Process record and replay target doesn't support syscall number %d\n"
 msgstr ""
@@ -17465,7 +17450,7 @@ msgid ""
 "memory addresses will be allowed."
 msgstr ""
 
-#: mem-break.c:49 microblaze-linux-tdep.c:53 ppc-linux-tdep.c:223
+#: mem-break.c:49 microblaze-linux-tdep.c:53 ppc-linux-tdep.c:226
 msgid "Software breakpoints not implemented for this target."
 msgstr ""
 
@@ -18822,7 +18807,7 @@ msgstr ""
 
 #: nat/linux-procfs.c:215
 #, possible-c-format
-msgid "Could not open /proc/%ld/task.\n"
+msgid "Could not open /proc/%ld/task."
 msgstr ""
 
 #: nat/x86-dregs.c:232
@@ -18844,6 +18829,16 @@ msgstr ""
 msgid "Invalid value %d of operation in x86_handle_nonaligned_watchpoint.\n"
 msgstr ""
 
+#: nat/linux-personality.c:44
+#, possible-c-format
+msgid "Error restoring address space randomization: %s"
+msgstr ""
+
+#: nat/linux-personality.c:87
+#, possible-c-format
+msgid "Error disabling address space randomization: %s"
+msgstr ""
+
 #: nios2-tdep.c:152
 #, possible-c-format
 msgid "Dwarf-2 uses unmapped register #%d"
@@ -19254,93 +19249,97 @@ msgstr ""
 msgid "When non-zero, expression parser tracing will be enabled."
 msgstr ""
 
-#: ppc-linux-nat.c:425 ppc-linux-nat.c:895
+#: ppc-linux-nat.c:375 ppc-linux-nat.c:845
 msgid "Unable to fetch VSX register"
 msgstr ""
 
-#: ppc-linux-nat.c:454 ppc-linux-nat.c:925
+#: ppc-linux-nat.c:404 ppc-linux-nat.c:875
 msgid "Unable to fetch AltiVec register"
 msgstr ""
 
 #. Anything else needs to be reported.
-#: ppc-linux-nat.c:492 ppc-linux-nat.c:2472
+#: ppc-linux-nat.c:442 ppc-linux-nat.c:2422
 msgid "Unable to fetch SPE registers"
 msgstr ""
 
-#: ppc-linux-nat.c:629
+#: ppc-linux-nat.c:579
 #, possible-c-format
 msgid "fetch_register: unexpected byte order: %d"
 msgstr ""
 
-#: ppc-linux-nat.c:687 ppc-linux-nat.c:2485
+#: ppc-linux-nat.c:637 ppc-linux-nat.c:2435
 msgid "Unable to fetch VSX registers"
 msgstr ""
 
-#: ppc-linux-nat.c:706 ppc-linux-nat.c:2498
+#: ppc-linux-nat.c:656 ppc-linux-nat.c:2448
 msgid "Unable to fetch AltiVec registers"
 msgstr ""
 
-#: ppc-linux-nat.c:733 ppc-linux-nat.c:1209
+#: ppc-linux-nat.c:683 ppc-linux-nat.c:1159
 msgid "Couldn't get general-purpose registers."
 msgstr ""
 
-#: ppc-linux-nat.c:785 ppc-linux-nat.c:1271
+#: ppc-linux-nat.c:735 ppc-linux-nat.c:1221
 msgid "Couldn't get floating-point registers."
 msgstr ""
 
-#: ppc-linux-nat.c:903
+#: ppc-linux-nat.c:853
 msgid "Unable to store VSX register"
 msgstr ""
 
-#: ppc-linux-nat.c:939
+#: ppc-linux-nat.c:889
 msgid "Unable to store AltiVec register"
 msgstr ""
 
 #. Anything else needs to be reported.
-#: ppc-linux-nat.c:966
+#: ppc-linux-nat.c:916
 msgid "Unable to set SPE registers"
 msgstr ""
 
-#: ppc-linux-nat.c:1155
+#: ppc-linux-nat.c:1105
 msgid "Couldn't get VSX registers"
 msgstr ""
 
-#: ppc-linux-nat.c:1161
+#: ppc-linux-nat.c:1111
 msgid "Couldn't write VSX registers"
 msgstr ""
 
-#: ppc-linux-nat.c:1178
+#: ppc-linux-nat.c:1128
 msgid "Couldn't get AltiVec registers"
 msgstr ""
 
-#: ppc-linux-nat.c:1184
+#: ppc-linux-nat.c:1134
 msgid "Couldn't write AltiVec registers"
 msgstr ""
 
-#: ppc-linux-nat.c:1221
+#: ppc-linux-nat.c:1171
 msgid "Couldn't set general-purpose registers."
 msgstr ""
 
-#: ppc-linux-nat.c:1283
+#: ppc-linux-nat.c:1233
 msgid "Couldn't set floating-point registers."
 msgstr ""
 
-#: ppc-linux-nat.c:1612
+#: ppc-linux-nat.c:1562
 msgid "Unexpected error setting breakpoint or watchpoint"
 msgstr ""
 
-#: ppc-linux-nat.c:1659
+#: ppc-linux-nat.c:1609
 msgid "Unexpected error deleting breakpoint or watchpoint"
 msgstr ""
 
-#: ppc-linux-nat.c:2334
+#: ppc-linux-nat.c:2284
 msgid "The given mask covers kernel address space and cannot be used.\n"
 msgstr ""
 
-#: ppc-linux-tdep.c:703
+#: ppc-linux-tdep.c:725
 msgid "Cannot find AT_ENTRY auxiliary vector entry."
 msgstr ""
 
+#: ppc-linux-tdep.c:1570
+msgid "unexpected wordsize"
+msgstr ""
+
 #. Can't happen.
 #: ppc-sysv-tdep.c:668
 msgid "Unknown decimal float size."
@@ -20254,11 +20253,11 @@ msgstr ""
 msgid "The type_printers attribute must be a list."
 msgstr ""
 
-#: python/py-objfile.c:509
+#: python/py-objfile.c:515
 msgid "Not a valid build id."
 msgstr ""
 
-#: python/py-objfile.c:525
+#: python/py-objfile.c:531
 msgid "Objfile not found."
 msgstr ""
 
@@ -23185,59 +23184,59 @@ msgstr ""
 msgid "ptrace ldinfo"
 msgstr ""
 
-#: rs6000-tdep.c:2826
+#: rs6000-tdep.c:2835
 #, possible-c-format
 msgid "rs6000_pseudo_register_read: called on unexpected register '%s' (%d)"
 msgstr ""
 
-#: rs6000-tdep.c:2851
+#: rs6000-tdep.c:2860
 #, possible-c-format
 msgid "rs6000_pseudo_register_write: called on unexpected register '%s' (%d)"
 msgstr ""
 
-#: rs6000-tdep.c:4233
+#: rs6000-tdep.c:6002
 msgid "\"set powerpc\" must be followed by an appropriate subcommand.\n"
 msgstr ""
 
-#: rs6000-tdep.c:4274
+#: rs6000-tdep.c:6043
 #, possible-c-format
 msgid "Invalid vector ABI accepted: %s."
 msgstr ""
 
-#: rs6000-tdep.c:4290
+#: rs6000-tdep.c:6059
 #, possible-c-format
 msgid "Use of exact watchpoints is %s.\n"
 msgstr ""
 
-#: rs6000-tdep.c:4397 rs6000-tdep.c:4401
+#: rs6000-tdep.c:6166 rs6000-tdep.c:6170
 msgid "Various PowerPC-specific commands."
 msgstr ""
 
-#: rs6000-tdep.c:4407
+#: rs6000-tdep.c:6176
 msgid "Set whether to use a soft-float ABI."
 msgstr ""
 
-#: rs6000-tdep.c:4408
+#: rs6000-tdep.c:6177
 msgid "Show whether to use a soft-float ABI."
 msgstr ""
 
-#: rs6000-tdep.c:4415
+#: rs6000-tdep.c:6184
 msgid "Set the vector ABI."
 msgstr ""
 
-#: rs6000-tdep.c:4416
+#: rs6000-tdep.c:6185
 msgid "Show the vector ABI."
 msgstr ""
 
-#: rs6000-tdep.c:4422
+#: rs6000-tdep.c:6191
 msgid "Set whether to use just one debug register for watchpoints on scalars."
 msgstr ""
 
-#: rs6000-tdep.c:4424
+#: rs6000-tdep.c:6193
 msgid "Show whether to use just one debug register for watchpoints on scalars."
 msgstr ""
 
-#: rs6000-tdep.c:4426
+#: rs6000-tdep.c:6195
 msgid ""
 "If true, GDB will use only one debug register when watching a variable of\n"
 "scalar type, thus assuming that the variable is accessed through the "
@@ -28031,21 +28030,21 @@ msgstr ""
 msgid "Text User Interface commands."
 msgstr ""
 
-#: tui/tui-win.c:362 tui/tui-win.c:366
+#: tui/tui-win.c:371 tui/tui-win.c:375
 msgid "TUI configuration variables"
 msgstr ""
 
-#: tui/tui-win.c:371
+#: tui/tui-win.c:380
 msgid "Refresh the terminal display.\n"
 msgstr ""
 
-#: tui/tui-win.c:374
+#: tui/tui-win.c:383
 msgid ""
 "Set the width (in characters) of tab stops.\n"
 "Usage: tabset <n>\n"
 msgstr ""
 
-#: tui/tui-win.c:377
+#: tui/tui-win.c:386
 msgid ""
 "Set the height of a specified window.\n"
 "Usage: winheight <win_name> [+ | -] <#lines>\n"
@@ -28056,11 +28055,11 @@ msgid ""
 "regs : the register display\n"
 msgstr ""
 
-#: tui/tui-win.c:387
+#: tui/tui-win.c:396
 msgid "List of all displayed windows.\n"
 msgstr ""
 
-#: tui/tui-win.c:388
+#: tui/tui-win.c:397
 msgid ""
 "Set focus to named window or next/prev window.\n"
 "Usage: focus {<win> | next | prev}\n"
@@ -28071,45 +28070,45 @@ msgid ""
 "cmd  : the command window\n"
 msgstr ""
 
-#: tui/tui-win.c:397
+#: tui/tui-win.c:406
 msgid ""
 "Scroll window forward.\n"
 "Usage: + [win] [n]\n"
 msgstr ""
 
-#: tui/tui-win.c:400
+#: tui/tui-win.c:409
 msgid ""
 "Scroll window backward.\n"
 "Usage: - [win] [n]\n"
 msgstr ""
 
-#: tui/tui-win.c:403
+#: tui/tui-win.c:412
 msgid ""
-"Scroll window forward.\n"
+"Scroll window text to the left.\n"
 "Usage: < [win] [n]\n"
 msgstr ""
 
-#: tui/tui-win.c:406
+#: tui/tui-win.c:415
 msgid ""
-"Scroll window backward.\n"
+"Scroll window text to the right.\n"
 "Usage: > [win] [n]\n"
 msgstr ""
 
-#: tui/tui-win.c:410
+#: tui/tui-win.c:419
 msgid ""
 "XDB compatibility command for setting the height of a command window.\n"
 "Usage: w <#lines>\n"
 msgstr ""
 
-#: tui/tui-win.c:416
+#: tui/tui-win.c:425
 msgid "Set the kind of border for TUI windows."
 msgstr ""
 
-#: tui/tui-win.c:417
+#: tui/tui-win.c:426
 msgid "Show the kind of border for TUI windows."
 msgstr ""
 
-#: tui/tui-win.c:418
+#: tui/tui-win.c:427
 msgid ""
 "This variable controls the border of TUI windows:\n"
 "space           use a white space\n"
@@ -28117,15 +28116,15 @@ msgid ""
 "acs             use the Alternate Character Set"
 msgstr ""
 
-#: tui/tui-win.c:428
+#: tui/tui-win.c:437
 msgid "Set the attribute mode to use for the TUI window borders."
 msgstr ""
 
-#: tui/tui-win.c:429
+#: tui/tui-win.c:438
 msgid "Show the attribute mode to use for the TUI window borders."
 msgstr ""
 
-#: tui/tui-win.c:430
+#: tui/tui-win.c:439
 msgid ""
 "This variable controls the attributes to use for the window borders:\n"
 "normal          normal display\n"
@@ -28137,15 +28136,15 @@ msgid ""
 "bold-standout   use extra bright or bold with standout mode"
 msgstr ""
 
-#: tui/tui-win.c:444
+#: tui/tui-win.c:453
 msgid "Set the attribute mode to use for the active TUI window border."
 msgstr ""
 
-#: tui/tui-win.c:445
+#: tui/tui-win.c:454
 msgid "Show the attribute mode to use for the active TUI window border."
 msgstr ""
 
-#: tui/tui-win.c:446
+#: tui/tui-win.c:455
 msgid ""
 "This variable controls the attributes to use for the active window border:\n"
 "normal          normal display\n"
@@ -28157,30 +28156,30 @@ msgid ""
 "bold-standout   use extra bright or bold with standout mode"
 msgstr ""
 
-#: tui/tui-win.c:933 tui/tui-win.c:1039 tui/tui-win.c:1604
+#: tui/tui-win.c:950 tui/tui-win.c:1076 tui/tui-win.c:1641
 msgid ""
 "Invalid window specified. \n"
 "The window name specified must be valid and visible.\n"
 msgstr ""
 
-#: tui/tui-win.c:944
+#: tui/tui-win.c:961
 #, possible-c-format
 msgid "Focus set to %s window.\n"
 msgstr ""
 
-#: tui/tui-win.c:949
+#: tui/tui-win.c:966
 #, possible-c-format
 msgid ""
 "Incorrect Number of Arguments.\n"
 "%s"
 msgstr ""
 
-#: tui/tui-win.c:1007
+#: tui/tui-win.c:1044
 msgid "Tab widths greater than 0 must be specified."
 msgstr ""
 
-#: tui/tui-win.c:1074 tui/tui-win.c:1080 tui/tui-win.c:1124 tui/tui-win.c:1128
-#: tui/tui-win.c:1132
+#: tui/tui-win.c:1111 tui/tui-win.c:1117 tui/tui-win.c:1161 tui/tui-win.c:1165
+#: tui/tui-win.c:1169
 #, possible-c-format
 msgid ""
 "Invalid window height specified.\n"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/posix-hdep.c ./gdb/posix-hdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/posix-hdep.c	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/posix-hdep.c	2015-01-20 01:48:37.000000000 +0000
@@ -22,26 +22,6 @@
 
 #include "gdb_select.h"
 
-/* The strerror() function can return NULL for errno values that are
-   out of range.  Provide a "safe" version that always returns a
-   printable string.  */
-
-char *
-safe_strerror (int errnum)
-{
-  char *msg;
-
-  msg = strerror (errnum);
-  if (msg == NULL)
-    {
-      static char buf[32];
-
-      xsnprintf (buf, sizeof buf, "(undocumented errno %d)", errnum);
-      msg = buf;
-    }
-  return (msg);
-}
-
 /* Wrapper for select.  Nothing special needed on POSIX platforms.  */
 
 int
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/ppc64-tdep.c ./gdb/ppc64-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/ppc64-tdep.c	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/ppc64-tdep.c	2015-01-20 01:48:37.000000000 +0000
@@ -20,6 +20,7 @@
 #include "defs.h"
 #include "frame.h"
 #include "gdbcore.h"
+#include "infrun.h"
 #include "ppc-tdep.h"
 #include "ppc64-tdep.h"
 #include "elf-bfd.h"
@@ -464,35 +465,66 @@ ppc64_skip_trampoline_code (struct frame
 				    ARRAY_SIZE (ppc64_standard_linkage8))))
 		     - 1];
   CORE_ADDR target;
+  int scan_limit, i;
 
-  if (ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage8, insns))
-    pc = ppc64_standard_linkage4_target (frame, pc, insns);
-  else if (ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage7, insns))
-    pc = ppc64_standard_linkage3_target (frame, pc, insns);
-  else if (ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage6, insns))
-    pc = ppc64_standard_linkage4_target (frame, pc, insns);
-  else if (ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage5, insns)
-	   && (insns[8] != 0 || insns[9] != 0))
-    pc = ppc64_standard_linkage3_target (frame, pc, insns);
-  else if (ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage4, insns)
-	   && (insns[9] != 0 || insns[10] != 0))
-    pc = ppc64_standard_linkage4_target (frame, pc, insns);
-  else if (ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage3, insns)
-	   && (insns[8] != 0 || insns[9] != 0))
-    pc = ppc64_standard_linkage3_target (frame, pc, insns);
-  else if (ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage2, insns)
-	   && (insns[10] != 0 || insns[11] != 0))
-    pc = ppc64_standard_linkage2_target (frame, pc, insns);
-  else if (ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage1, insns))
-    pc = ppc64_standard_linkage1_target (frame, pc, insns);
-  else
-    return 0;
-
-  /* The PLT descriptor will either point to the already resolved target
-     address, or else to a glink stub.  As the latter carry synthetic @plt
-     symbols, find_solib_trampoline_target should be able to resolve them.  */
-  target = find_solib_trampoline_target (frame, pc);
-  return target ? target : pc;
+  scan_limit = 1;
+  /* When reverse-debugging, scan backward to check whether we are
+     in the middle of trampoline code.  */
+  if (execution_direction == EXEC_REVERSE)
+    scan_limit = ARRAY_SIZE (insns) - 1;
+
+  for (i = 0; i < scan_limit; i++)
+    {
+      if (i < ARRAY_SIZE (ppc64_standard_linkage8) - 1
+	  && ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage8, insns))
+	pc = ppc64_standard_linkage4_target (frame, pc, insns);
+      else if (i < ARRAY_SIZE (ppc64_standard_linkage7) - 1
+	       && ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage7,
+					   insns))
+	pc = ppc64_standard_linkage3_target (frame, pc, insns);
+      else if (i < ARRAY_SIZE (ppc64_standard_linkage6) - 1
+	       && ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage6,
+					   insns))
+	pc = ppc64_standard_linkage4_target (frame, pc, insns);
+      else if (i < ARRAY_SIZE (ppc64_standard_linkage5) - 1
+	       && ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage5,
+					   insns)
+	       && (insns[8] != 0 || insns[9] != 0))
+	pc = ppc64_standard_linkage3_target (frame, pc, insns);
+      else if (i < ARRAY_SIZE (ppc64_standard_linkage4) - 1
+	       && ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage4,
+					   insns)
+	       && (insns[9] != 0 || insns[10] != 0))
+	pc = ppc64_standard_linkage4_target (frame, pc, insns);
+      else if (i < ARRAY_SIZE (ppc64_standard_linkage3) - 1
+	       && ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage3,
+					   insns)
+	       && (insns[8] != 0 || insns[9] != 0))
+	pc = ppc64_standard_linkage3_target (frame, pc, insns);
+      else if (i < ARRAY_SIZE (ppc64_standard_linkage2) - 1
+	       && ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage2,
+					   insns)
+	       && (insns[10] != 0 || insns[11] != 0))
+	pc = ppc64_standard_linkage2_target (frame, pc, insns);
+      else if (i < ARRAY_SIZE (ppc64_standard_linkage1) - 1
+	       && ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage1,
+					   insns))
+	pc = ppc64_standard_linkage1_target (frame, pc, insns);
+      else
+	{
+	  /* Scan backward one more instructions if doesn't match.  */
+	  pc -= 4;
+	  continue;
+	}
+
+      /* The PLT descriptor will either point to the already resolved target
+         address, or else to a glink stub.  As the latter carry synthetic @plt
+         symbols, find_solib_trampoline_target should be able to resolve them.  */
+      target = find_solib_trampoline_target (frame, pc);
+      return target ? target : pc;
+  }
+
+  return 0;
 }
 
 /* Support for convert_from_func_ptr_addr (ARCH, ADDR, TARG) on PPC64
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/ppc-linux-nat.c ./gdb/ppc-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/ppc-linux-nat.c	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/ppc-linux-nat.c	2015-01-20 01:48:37.000000000 +0000
@@ -46,57 +46,7 @@
 #include "elf/common.h"
 #include "auxv.h"
 
-/* This sometimes isn't defined.  */
-#ifndef PT_ORIG_R3
-#define PT_ORIG_R3 34
-#endif
-#ifndef PT_TRAP
-#define PT_TRAP 40
-#endif
-
-/* The PPC_FEATURE_* defines should be provided by <asm/cputable.h>.
-   If they aren't, we can provide them ourselves (their values are fixed
-   because they are part of the kernel ABI).  They are used in the AT_HWCAP
-   entry of the AUXV.  */
-#ifndef PPC_FEATURE_CELL
-#define PPC_FEATURE_CELL 0x00010000
-#endif
-#ifndef PPC_FEATURE_BOOKE
-#define PPC_FEATURE_BOOKE 0x00008000
-#endif
-#ifndef PPC_FEATURE_HAS_DFP
-#define PPC_FEATURE_HAS_DFP	0x00000400  /* Decimal Floating Point.  */
-#endif
-
-/* Glibc's headers don't define PTRACE_GETVRREGS so we cannot use a
-   configure time check.  Some older glibc's (for instance 2.2.1)
-   don't have a specific powerpc version of ptrace.h, and fall back on
-   a generic one.  In such cases, sys/ptrace.h defines
-   PTRACE_GETFPXREGS and PTRACE_SETFPXREGS to the same numbers that
-   ppc kernel's asm/ptrace.h defines PTRACE_GETVRREGS and
-   PTRACE_SETVRREGS to be.  This also makes a configury check pretty
-   much useless.  */
-
-/* These definitions should really come from the glibc header files,
-   but Glibc doesn't know about the vrregs yet.  */
-#ifndef PTRACE_GETVRREGS
-#define PTRACE_GETVRREGS 18
-#define PTRACE_SETVRREGS 19
-#endif
-
-/* PTRACE requests for POWER7 VSX registers.  */
-#ifndef PTRACE_GETVSXREGS
-#define PTRACE_GETVSXREGS 27
-#define PTRACE_SETVSXREGS 28
-#endif
-
-/* Similarly for the ptrace requests for getting / setting the SPE
-   registers (ev0 -- ev31, acc, and spefscr).  See the description of
-   gdb_evrregset_t for details.  */
-#ifndef PTRACE_GETEVRREGS
-#define PTRACE_GETEVRREGS 20
-#define PTRACE_SETEVRREGS 21
-#endif
+#include "nat/ppc-linux.h"
 
 /* Similarly for the hardware watchpoint support.  These requests are used
    when the PowerPC HWDEBUG ptrace interface is not available.  */
@@ -2417,7 +2367,7 @@ ppc_linux_target_wordsize (void)
 
   errno = 0;
   msr = (long) ptrace (PTRACE_PEEKUSER, tid, PT_MSR * 8, 0);
-  if (errno == 0 && msr < 0)
+  if (errno == 0 && ppc64_64bit_inferior_p (msr))
     wordsize = 8;
 #endif
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/ppc-linux-tdep.c ./gdb/ppc-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/ppc-linux-tdep.c	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/ppc-linux-tdep.c	2015-01-20 01:48:37.000000000 +0000
@@ -49,6 +49,9 @@
 #include "spu-tdep.h"
 #include "xml-syscall.h"
 #include "linux-tdep.h"
+#include "linux-record.h"
+#include "record-full.h"
+#include "infrun.h"
 
 #include "stap-probe.h"
 #include "ax.h"
@@ -312,31 +315,50 @@ ppc_skip_trampoline_code (struct frame_i
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR target = 0;
+  int scan_limit, i;
 
-  if (ppc_insns_match_pattern (frame, pc, powerpc32_plt_stub, insnbuf))
-    {
-      /* Insn pattern is
-		lis   r11, xxxx
-		lwz   r11, xxxx(r11)
-	 Branch target is in r11.  */
-
-      target = (ppc_insn_d_field (insnbuf[0]) << 16)
-	| ppc_insn_d_field (insnbuf[1]);
-      target = read_memory_unsigned_integer (target, 4, byte_order);
-    }
+  scan_limit = 1;
+  /* When reverse-debugging, scan backward to check whether we are
+     in the middle of trampoline code.  */
+  if (execution_direction == EXEC_REVERSE)
+    scan_limit = 4;	/* At more 4 instructions.  */
 
-  if (ppc_insns_match_pattern (frame, pc, powerpc32_plt_stub_so, insnbuf))
+  for (i = 0; i < scan_limit; i++)
     {
-      /* Insn pattern is
-		lwz   r11, xxxx(r30)
-	 Branch target is in r11.  */
+      if (ppc_insns_match_pattern (frame, pc, powerpc32_plt_stub, insnbuf))
+	{
+	  /* Insn pattern is
+	     lis   r11, xxxx
+	     lwz   r11, xxxx(r11)
+	     Branch target is in r11.  */
+
+	  target = (ppc_insn_d_field (insnbuf[0]) << 16)
+		   | ppc_insn_d_field (insnbuf[1]);
+	  target = read_memory_unsigned_integer (target, 4, byte_order);
+	}
+      else if (ppc_insns_match_pattern (frame, pc, powerpc32_plt_stub_so,
+					insnbuf))
+	{
+	  /* Insn pattern is
+	     lwz   r11, xxxx(r30)
+	     Branch target is in r11.  */
+
+	  target = get_frame_register_unsigned (frame,
+						tdep->ppc_gp0_regnum + 30)
+		   + ppc_insn_d_field (insnbuf[0]);
+	  target = read_memory_unsigned_integer (target, 4, byte_order);
+	}
+      else
+	{
+	  /* Scan backward one more instructions if doesn't match.  */
+	  pc -= 4;
+	  continue;
+	}
 
-      target = get_frame_register_unsigned (frame, tdep->ppc_gp0_regnum + 30)
-	       + ppc_insn_d_field (insnbuf[0]);
-      target = read_memory_unsigned_integer (target, 4, byte_order);
+      return target;
     }
 
-  return target;
+  return 0;
 }
 
 /* Wrappers to handle Linux-only registers.  */
@@ -764,6 +786,167 @@ ppc_linux_get_syscall_number (struct gdb
   return ret;
 }
 
+/* PPC process record-replay */
+
+static struct linux_record_tdep ppc_linux_record_tdep;
+static struct linux_record_tdep ppc64_linux_record_tdep;
+
+static enum gdb_syscall
+ppc_canonicalize_syscall (int syscall)
+{
+  /* See arch/powerpc/include/uapi/asm/unistd.h */
+
+  if (syscall <= 165)
+    return syscall;
+  else if (syscall >= 167 && syscall <= 190)	/* Skip query_module 166 */
+    return syscall + 1;
+  else if (syscall >= 192 && syscall <= 197)	/* mmap2 */
+    return syscall;
+  else if (syscall == 208)			/* tkill */
+    return gdb_sys_tkill;
+  else if (syscall >= 207 && syscall <= 220)	/* gettid */
+    return syscall + 224 - 207;
+  else if (syscall >= 234 && syscall <= 239)	/* exit_group */
+    return syscall + 252 - 234;
+  else if (syscall >= 240 && syscall <=248)	/* timer_create */
+    return syscall += 259 - 240;
+  else if (syscall >= 250 && syscall <=251)	/* tgkill */
+    return syscall + 270 - 250;
+  else if (syscall == 336)
+    return gdb_sys_recv;
+  else if (syscall == 337)
+    return gdb_sys_recvfrom;
+  else if (syscall == 342)
+    return gdb_sys_recvmsg;
+  return -1;
+}
+
+static int
+ppc_linux_syscall_record (struct regcache *regcache)
+{
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+  ULONGEST scnum;
+  enum gdb_syscall syscall_gdb;
+  int ret;
+  int i;
+
+  regcache_raw_read_unsigned (regcache, tdep->ppc_gp0_regnum, &scnum);
+  syscall_gdb = ppc_canonicalize_syscall (scnum);
+
+  if (syscall_gdb < 0)
+    {
+      printf_unfiltered (_("Process record and replay target doesn't "
+			   "support syscall number %d\n"), (int) scnum);
+      return 0;
+    }
+
+  if (syscall_gdb == gdb_sys_sigreturn
+      || syscall_gdb == gdb_sys_rt_sigreturn)
+   {
+     int i, j;
+     int regsets[] = { tdep->ppc_gp0_regnum,
+		       tdep->ppc_fp0_regnum,
+		       tdep->ppc_vr0_regnum,
+		       tdep->ppc_vsr0_upper_regnum };
+
+     for (j = 0; j < 4; j++)
+       {
+	 if (regsets[j] == -1)
+	   continue;
+	 for (i = 0; i < 32; i++)
+	   {
+	     if (record_full_arch_list_add_reg (regcache, regsets[j] + i))
+	       return -1;
+	   }
+       }
+
+     if (record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum))
+       return -1;
+     if (record_full_arch_list_add_reg (regcache, tdep->ppc_ctr_regnum))
+       return -1;
+     if (record_full_arch_list_add_reg (regcache, tdep->ppc_lr_regnum))
+       return -1;
+     if (record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum))
+       return -1;
+
+     return 0;
+   }
+
+  if (tdep->wordsize == 8)
+    ret = record_linux_system_call (syscall_gdb, regcache,
+				    &ppc64_linux_record_tdep);
+  else
+    ret = record_linux_system_call (syscall_gdb, regcache,
+				    &ppc_linux_record_tdep);
+
+  if (ret != 0)
+    return ret;
+
+  /* Record registers clobbered during syscall.  */
+  for (i = 3; i <= 12; i++)
+    {
+      if (record_full_arch_list_add_reg (regcache, tdep->ppc_gp0_regnum + i))
+	return -1;
+    }
+  if (record_full_arch_list_add_reg (regcache, tdep->ppc_gp0_regnum + 0))
+    return -1;
+  if (record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum))
+    return -1;
+  if (record_full_arch_list_add_reg (regcache, tdep->ppc_ctr_regnum))
+    return -1;
+  if (record_full_arch_list_add_reg (regcache, tdep->ppc_lr_regnum))
+    return -1;
+
+  return 0;
+}
+
+static int
+ppc_linux_record_signal (struct gdbarch *gdbarch, struct regcache *regcache,
+			 enum gdb_signal signal)
+{
+  /* See handle_rt_signal64 in arch/powerpc/kernel/signal_64.c
+	 handle_rt_signal32 in arch/powerpc/kernel/signal_32.c
+	 arch/powerpc/include/asm/ptrace.h
+     for details.  */
+  const int SIGNAL_FRAMESIZE = 128;
+  const int sizeof_rt_sigframe = 1440 * 2 + 8 * 2 + 4 * 6 + 8 + 8 + 128 + 512;
+  ULONGEST sp;
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+  int i;
+
+  for (i = 3; i <= 12; i++)
+    {
+      if (record_full_arch_list_add_reg (regcache, tdep->ppc_gp0_regnum + i))
+	return -1;
+    }
+
+  if (record_full_arch_list_add_reg (regcache, tdep->ppc_lr_regnum))
+    return -1;
+  if (record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum))
+    return -1;
+  if (record_full_arch_list_add_reg (regcache, tdep->ppc_ctr_regnum))
+    return -1;
+  if (record_full_arch_list_add_reg (regcache, gdbarch_pc_regnum (gdbarch)))
+    return -1;
+  if (record_full_arch_list_add_reg (regcache, gdbarch_sp_regnum (gdbarch)))
+    return -1;
+
+  /* Record the change in the stack.
+     frame-size = sizeof (struct rt_sigframe) + SIGNAL_FRAMESIZE  */
+  regcache_raw_read_unsigned (regcache, gdbarch_sp_regnum (gdbarch), &sp);
+  sp -= SIGNAL_FRAMESIZE;
+  sp -= sizeof_rt_sigframe;
+
+  if (record_full_arch_list_add_mem (sp, SIGNAL_FRAMESIZE + sizeof_rt_sigframe))
+    return -1;
+
+  if (record_full_arch_list_add_end ())
+    return -1;
+
+  return 0;
+}
+
 static void
 ppc_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
 {
@@ -1234,6 +1417,234 @@ static const struct frame_unwind ppu2spu
   ppu2spu_prev_arch,
 };
 
+/* Initialize linux_record_tdep if not initialized yet.  */
+
+static void
+ppc_init_linux_record_tdep (struct linux_record_tdep *record_tdep,
+			    int wordsize)
+{
+  /* Simply return if it had been initialized.  */
+  if (record_tdep->size_pointer != 0)
+    return;
+
+  /* These values are the size of the type that will be used in a system
+     call.  They are obtained from Linux Kernel source.  */
+
+  if (wordsize == 8)
+    {
+      record_tdep->size_pointer = 8;
+      record_tdep->size__old_kernel_stat = 32;
+      record_tdep->size_tms = 32;
+      record_tdep->size_loff_t = 8;
+      record_tdep->size_flock = 32;
+      record_tdep->size_oldold_utsname = 45;
+      record_tdep->size_ustat = 32;
+      record_tdep->size_old_sigaction = 152;
+      record_tdep->size_old_sigset_t = 128;
+      record_tdep->size_rlimit = 16;
+      record_tdep->size_rusage = 144;
+      record_tdep->size_timeval = 16;
+      record_tdep->size_timezone = 8;
+      record_tdep->size_old_gid_t = 4;
+      record_tdep->size_old_uid_t = 4;
+      record_tdep->size_fd_set = 128;
+      record_tdep->size_dirent = 280;
+      record_tdep->size_dirent64 = 280;
+      record_tdep->size_statfs = 120;
+      record_tdep->size_statfs64 = 120;
+      record_tdep->size_sockaddr = 16;
+      record_tdep->size_int = 4;
+      record_tdep->size_long = 8;
+      record_tdep->size_ulong = 8;
+      record_tdep->size_msghdr = 56;
+      record_tdep->size_itimerval = 32;
+      record_tdep->size_stat = 144;
+      record_tdep->size_old_utsname = 325;
+      record_tdep->size_sysinfo = 112;
+      record_tdep->size_msqid_ds = 120;
+      record_tdep->size_shmid_ds = 112;
+      record_tdep->size_new_utsname = 390;
+      record_tdep->size_timex = 208;
+      record_tdep->size_mem_dqinfo = 24;
+      record_tdep->size_if_dqblk = 72;
+      record_tdep->size_fs_quota_stat = 80;
+      record_tdep->size_timespec = 16;
+      record_tdep->size_pollfd = 8;
+      record_tdep->size_NFS_FHSIZE = 32;
+      record_tdep->size_knfsd_fh = 132;
+      record_tdep->size_TASK_COMM_LEN = 32;
+      record_tdep->size_sigaction = 152;
+      record_tdep->size_sigset_t = 128;
+      record_tdep->size_siginfo_t = 128;
+      record_tdep->size_cap_user_data_t = 8;
+      record_tdep->size_stack_t = 24;
+      record_tdep->size_off_t = 8;
+      record_tdep->size_stat64 = 104;
+      record_tdep->size_gid_t = 4;
+      record_tdep->size_uid_t = 4;
+      record_tdep->size_PAGE_SIZE = 0x10000;	/* 64KB */
+      record_tdep->size_flock64 = 32;
+      record_tdep->size_io_event = 32;
+      record_tdep->size_iocb = 64;
+      record_tdep->size_epoll_event = 16;
+      record_tdep->size_itimerspec = 32;
+      record_tdep->size_mq_attr = 64;
+      record_tdep->size_siginfo = 128;
+      record_tdep->size_termios = 44;
+      record_tdep->size_pid_t = 4;
+      record_tdep->size_winsize = 8;
+      record_tdep->size_serial_struct = 72;
+      record_tdep->size_serial_icounter_struct = 80;
+      record_tdep->size_size_t = 8;
+      record_tdep->size_iovec = 16;
+    }
+  else if (wordsize == 4)
+    {
+      record_tdep->size_pointer = 4;
+      record_tdep->size__old_kernel_stat = 32;
+      record_tdep->size_tms = 16;
+      record_tdep->size_loff_t = 8;
+      record_tdep->size_flock = 16;
+      record_tdep->size_oldold_utsname = 45;
+      record_tdep->size_ustat = 20;
+      record_tdep->size_old_sigaction = 152;
+      record_tdep->size_old_sigset_t = 128;
+      record_tdep->size_rlimit = 8;
+      record_tdep->size_rusage = 72;
+      record_tdep->size_timeval = 8;
+      record_tdep->size_timezone = 8;
+      record_tdep->size_old_gid_t = 4;
+      record_tdep->size_old_uid_t = 4;
+      record_tdep->size_fd_set = 128;
+      record_tdep->size_dirent = 268;
+      record_tdep->size_dirent64 = 280;
+      record_tdep->size_statfs = 64;
+      record_tdep->size_statfs64 = 88;
+      record_tdep->size_sockaddr = 16;
+      record_tdep->size_int = 4;
+      record_tdep->size_long = 4;
+      record_tdep->size_ulong = 4;
+      record_tdep->size_msghdr = 28;
+      record_tdep->size_itimerval = 16;
+      record_tdep->size_stat = 88;
+      record_tdep->size_old_utsname = 325;
+      record_tdep->size_sysinfo = 64;
+      record_tdep->size_msqid_ds = 68;
+      record_tdep->size_shmid_ds = 60;
+      record_tdep->size_new_utsname = 390;
+      record_tdep->size_timex = 128;
+      record_tdep->size_mem_dqinfo = 24;
+      record_tdep->size_if_dqblk = 72;
+      record_tdep->size_fs_quota_stat = 80;
+      record_tdep->size_timespec = 8;
+      record_tdep->size_pollfd = 8;
+      record_tdep->size_NFS_FHSIZE = 32;
+      record_tdep->size_knfsd_fh = 132;
+      record_tdep->size_TASK_COMM_LEN = 32;
+      record_tdep->size_sigaction = 140;
+      record_tdep->size_sigset_t = 128;
+      record_tdep->size_siginfo_t = 128;
+      record_tdep->size_cap_user_data_t = 4;
+      record_tdep->size_stack_t = 12;
+      record_tdep->size_off_t = 4;
+      record_tdep->size_stat64 = 104;
+      record_tdep->size_gid_t = 4;
+      record_tdep->size_uid_t = 4;
+      record_tdep->size_PAGE_SIZE = 0x10000;	/* 64KB */
+      record_tdep->size_flock64 = 32;
+      record_tdep->size_io_event = 32;
+      record_tdep->size_iocb = 64;
+      record_tdep->size_epoll_event = 16;
+      record_tdep->size_itimerspec = 16;
+      record_tdep->size_mq_attr = 32;
+      record_tdep->size_siginfo = 128;
+      record_tdep->size_termios = 44;
+      record_tdep->size_pid_t = 4;
+      record_tdep->size_winsize = 8;
+      record_tdep->size_serial_struct = 60;
+      record_tdep->size_serial_icounter_struct = 80;
+      record_tdep->size_size_t = 4;
+      record_tdep->size_iovec = 8;
+    }
+  else
+    internal_error (__FILE__, __LINE__, _("unexpected wordsize"));
+
+  /* These values are the second argument of system call "sys_fcntl"
+     and "sys_fcntl64".  They are obtained from Linux Kernel source.  */
+  record_tdep->fcntl_F_GETLK = 5;
+  record_tdep->fcntl_F_GETLK64 = 12;
+  record_tdep->fcntl_F_SETLK64 = 13;
+  record_tdep->fcntl_F_SETLKW64 = 14;
+
+  record_tdep->arg1 = PPC_R0_REGNUM + 3;
+  record_tdep->arg2 = PPC_R0_REGNUM + 4;
+  record_tdep->arg3 = PPC_R0_REGNUM + 5;
+  record_tdep->arg4 = PPC_R0_REGNUM + 6;
+  record_tdep->arg5 = PPC_R0_REGNUM + 7;
+  record_tdep->arg6 = PPC_R0_REGNUM + 8;
+
+  /* These values are the second argument of system call "sys_ioctl".
+     They are obtained from Linux Kernel source.
+     See arch/powerpc/include/uapi/asm/ioctls.h.  */
+  record_tdep->ioctl_TCGETS = 0x403c7413;
+  record_tdep->ioctl_TCSETS = 0x803c7414;
+  record_tdep->ioctl_TCSETSW = 0x803c7415;
+  record_tdep->ioctl_TCSETSF = 0x803c7416;
+  record_tdep->ioctl_TCGETA = 0x40147417;
+  record_tdep->ioctl_TCSETA = 0x80147418;
+  record_tdep->ioctl_TCSETAW = 0x80147419;
+  record_tdep->ioctl_TCSETAF = 0x8014741c;
+  record_tdep->ioctl_TCSBRK = 0x2000741d;
+  record_tdep->ioctl_TCXONC = 0x2000741e;
+  record_tdep->ioctl_TCFLSH = 0x2000741f;
+  record_tdep->ioctl_TIOCEXCL = 0x540c;
+  record_tdep->ioctl_TIOCNXCL = 0x540d;
+  record_tdep->ioctl_TIOCSCTTY = 0x540e;
+  record_tdep->ioctl_TIOCGPGRP = 0x40047477;
+  record_tdep->ioctl_TIOCSPGRP = 0x80047476;
+  record_tdep->ioctl_TIOCOUTQ = 0x40047473;
+  record_tdep->ioctl_TIOCSTI = 0x5412;
+  record_tdep->ioctl_TIOCGWINSZ = 0x40087468;
+  record_tdep->ioctl_TIOCSWINSZ = 0x80087467;
+  record_tdep->ioctl_TIOCMGET = 0x5415;
+  record_tdep->ioctl_TIOCMBIS = 0x5416;
+  record_tdep->ioctl_TIOCMBIC = 0x5417;
+  record_tdep->ioctl_TIOCMSET = 0x5418;
+  record_tdep->ioctl_TIOCGSOFTCAR = 0x5419;
+  record_tdep->ioctl_TIOCSSOFTCAR = 0x541a;
+  record_tdep->ioctl_FIONREAD = 0x4004667f;
+  record_tdep->ioctl_TIOCINQ = 0x4004667f;
+  record_tdep->ioctl_TIOCLINUX = 0x541c;
+  record_tdep->ioctl_TIOCCONS = 0x541d;
+  record_tdep->ioctl_TIOCGSERIAL = 0x541e;
+  record_tdep->ioctl_TIOCSSERIAL = 0x541f;
+  record_tdep->ioctl_TIOCPKT = 0x5420;
+  record_tdep->ioctl_FIONBIO = 0x8004667e;
+  record_tdep->ioctl_TIOCNOTTY = 0x5422;
+  record_tdep->ioctl_TIOCSETD = 0x5423;
+  record_tdep->ioctl_TIOCGETD = 0x5424;
+  record_tdep->ioctl_TCSBRKP = 0x5425;
+  record_tdep->ioctl_TIOCSBRK = 0x5427;
+  record_tdep->ioctl_TIOCCBRK = 0x5428;
+  record_tdep->ioctl_TIOCGSID = 0x5429;
+  record_tdep->ioctl_TIOCGPTN = 0x40045430;
+  record_tdep->ioctl_TIOCSPTLCK = 0x80045431;
+  record_tdep->ioctl_FIONCLEX = 0x20006602;
+  record_tdep->ioctl_FIOCLEX = 0x20006601;
+  record_tdep->ioctl_FIOASYNC = 0x8004667d;
+  record_tdep->ioctl_TIOCSERCONFIG = 0x5453;
+  record_tdep->ioctl_TIOCSERGWILD = 0x5454;
+  record_tdep->ioctl_TIOCSERSWILD = 0x5455;
+  record_tdep->ioctl_TIOCGLCKTRMIOS = 0x5456;
+  record_tdep->ioctl_TIOCSLCKTRMIOS = 0x5457;
+  record_tdep->ioctl_TIOCSERGSTRUCT = 0x5458;
+  record_tdep->ioctl_TIOCSERGETLSR = 0x5459;
+  record_tdep->ioctl_TIOCSERGETMULTI = 0x545a;
+  record_tdep->ioctl_TIOCSERSETMULTI = 0x545b;
+  record_tdep->ioctl_TIOCMIWAIT = 0x545c;
+  record_tdep->ioctl_TIOCGICOUNT = 0x545d;
+  record_tdep->ioctl_FIOQSIZE = 0x40086680;
+}
 
 static void
 ppc_linux_init_abi (struct gdbarch_info info,
@@ -1414,6 +1825,14 @@ ppc_linux_init_abi (struct gdbarch_info 
     }
 
   set_gdbarch_get_siginfo_type (gdbarch, linux_get_siginfo_type);
+
+  /* Support reverse debugging.  */
+  set_gdbarch_process_record (gdbarch, ppc_process_record);
+  set_gdbarch_process_record_signal (gdbarch, ppc_linux_record_signal);
+  tdep->ppc_syscall_record = ppc_linux_syscall_record;
+
+  ppc_init_linux_record_tdep (&ppc_linux_record_tdep, 4);
+  ppc_init_linux_record_tdep (&ppc64_linux_record_tdep, 8);
 }
 
 /* Provide a prototype to silence -Wmissing-prototypes.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/ppc-tdep.h ./gdb/ppc-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/ppc-tdep.h	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/ppc-tdep.h	2015-01-20 01:48:37.000000000 +0000
@@ -259,6 +259,8 @@ struct gdbarch_tdep
     /* ISA-specific types.  */
     struct type *ppc_builtin_type_vec64;
     struct type *ppc_builtin_type_vec128;
+
+    int (*ppc_syscall_record) (struct regcache *regcache);
 };
 
 
@@ -318,6 +320,9 @@ extern CORE_ADDR ppc_insn_d_field (unsig
 
 extern CORE_ADDR ppc_insn_ds_field (unsigned int insn);
 
+extern int ppc_process_record (struct gdbarch *gdbarch,
+			       struct regcache *regcache, CORE_ADDR addr);
+
 /* Instruction size.  */
 #define PPC_INSN_SIZE 4
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/python/py-objfile.c ./gdb/python/py-objfile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/python/py-objfile.c	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/python/py-objfile.c	2015-01-20 01:48:37.000000000 +0000
@@ -438,12 +438,18 @@ objfpy_lookup_objfile_by_name (const cha
 
   ALL_OBJFILES (objfile)
     {
+      const char *filename;
+
       if ((objfile->flags & OBJF_NOT_FILENAME) != 0)
 	continue;
       /* Don't return separate debug files.  */
       if (objfile->separate_debug_objfile_backlink != NULL)
 	continue;
-      if (compare_filenames_for_search (objfile_name (objfile), name))
+
+      filename = objfile_filename (objfile);
+      if (filename != NULL && compare_filenames_for_search (filename, name))
+	return objfile;
+      if (compare_filenames_for_search (objfile->original_name, name))
 	return objfile;
     }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/rs6000-tdep.c ./gdb/rs6000-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/rs6000-tdep.c	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/rs6000-tdep.c	2015-01-20 01:48:37.000000000 +0000
@@ -40,6 +40,8 @@
 #include "dwarf2-frame.h"
 #include "target-descriptions.h"
 #include "user-regs.h"
+#include "record-full.h"
+#include "auxv.h"
 
 #include "libbfd.h"		/* for bfd_default_set_arch_mach */
 #include "coff/internal.h"	/* for libcoff.h */
@@ -872,14 +874,14 @@ insn_changes_sp_or_jumps (unsigned long 
            limit for the size of an epilogue.  */
 
 static int
-rs6000_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc)
+rs6000_in_function_epilogue_frame_p (struct frame_info *curfrm,
+				     struct gdbarch *gdbarch, CORE_ADDR pc)
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   bfd_byte insn_buf[PPC_INSN_SIZE];
   CORE_ADDR scan_pc, func_start, func_end, epilogue_start, epilogue_end;
   unsigned long insn;
-  struct frame_info *curfrm;
 
   /* Find the search limits based on function boundaries and hard limit.  */
 
@@ -892,8 +894,6 @@ rs6000_in_function_epilogue_p (struct gd
   epilogue_end = pc + PPC_MAX_EPILOGUE_INSTRUCTIONS * PPC_INSN_SIZE;
   if (epilogue_end > func_end) epilogue_end = func_end;
 
-  curfrm = get_current_frame ();
-
   /* Scan forward until next 'blr'.  */
 
   for (scan_pc = pc; scan_pc < epilogue_end; scan_pc += PPC_INSN_SIZE)
@@ -934,6 +934,15 @@ rs6000_in_function_epilogue_p (struct gd
   return 0;
 }
 
+/* Implementation of gdbarch_in_function_epilogue_p.  */
+
+static int
+rs6000_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc)
+{
+  return rs6000_in_function_epilogue_frame_p (get_current_frame (),
+					      gdbarch, pc);
+}
+
 /* Get the ith function argument for the current function.  */
 static CORE_ADDR
 rs6000_fetch_pointer_argument (struct frame_info *frame, int argi, 
@@ -3339,6 +3348,89 @@ static const struct frame_unwind rs6000_
   NULL,
   default_frame_sniffer
 };
+
+static struct rs6000_frame_cache *
+rs6000_epilogue_frame_cache (struct frame_info *this_frame, void **this_cache)
+{
+  volatile struct gdb_exception ex;
+  struct rs6000_frame_cache *cache;
+  struct gdbarch *gdbarch = get_frame_arch (this_frame);
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+  CORE_ADDR sp;
+
+  if (*this_cache)
+    return *this_cache;
+
+  cache = FRAME_OBSTACK_ZALLOC (struct rs6000_frame_cache);
+  (*this_cache) = cache;
+  cache->saved_regs = trad_frame_alloc_saved_regs (this_frame);
+
+  TRY_CATCH (ex, RETURN_MASK_ERROR)
+    {
+      /* At this point the stack looks as if we just entered the
+	 function, and the return address is stored in LR.  */
+      CORE_ADDR sp, lr;
+
+      sp = get_frame_register_unsigned (this_frame, gdbarch_sp_regnum (gdbarch));
+      lr = get_frame_register_unsigned (this_frame, tdep->ppc_lr_regnum);
+
+      cache->base = sp;
+      cache->initial_sp = sp;
+
+      trad_frame_set_value (cache->saved_regs,
+			    gdbarch_pc_regnum (gdbarch), lr);
+    }
+  if (ex.reason < 0 && ex.error != NOT_AVAILABLE_ERROR)
+    throw_exception (ex);
+
+  return cache;
+}
+
+static void
+rs6000_epilogue_frame_this_id (struct frame_info *this_frame,
+			       void **this_cache, struct frame_id *this_id)
+{
+  CORE_ADDR pc;
+  struct rs6000_frame_cache *info =
+    rs6000_epilogue_frame_cache (this_frame, this_cache);
+
+  pc = get_frame_func (this_frame);
+  if (info->base == 0)
+    (*this_id) = frame_id_build_unavailable_stack (pc);
+  else
+    (*this_id) = frame_id_build (info->base, pc);
+}
+
+static struct value *
+rs6000_epilogue_frame_prev_register (struct frame_info *this_frame,
+				     void **this_cache, int regnum)
+{
+  struct rs6000_frame_cache *info =
+    rs6000_epilogue_frame_cache (this_frame, this_cache);
+  return trad_frame_get_prev_register (this_frame, info->saved_regs, regnum);
+}
+
+static int
+rs6000_epilogue_frame_sniffer (const struct frame_unwind *self,
+			       struct frame_info *this_frame,
+			       void **this_prologue_cache)
+{
+  if (frame_relative_level (this_frame) == 0)
+    return rs6000_in_function_epilogue_frame_p (this_frame,
+						get_frame_arch (this_frame),
+						get_frame_pc (this_frame));
+  else
+    return 0;
+}
+
+static const struct frame_unwind rs6000_epilogue_frame_unwind =
+{
+  NORMAL_FRAME,
+  default_frame_unwind_stop_reason,
+  rs6000_epilogue_frame_this_id, rs6000_epilogue_frame_prev_register,
+  NULL,
+  rs6000_epilogue_frame_sniffer
+};
 
 
 static CORE_ADDR
@@ -3543,6 +3635,1681 @@ bfd_uses_spe_extensions (bfd *abfd)
   return success;
 }
 
+/* These are macros for parsing instruction fields (I.1.6.28)  */
+
+#define PPC_FIELD(value, from, len) \
+	(((value) >> (32 - (from) - (len))) & ((1 << (len)) - 1))
+#define PPC_SEXT(v, bs) \
+	((((CORE_ADDR) (v) & (((CORE_ADDR) 1 << (bs)) - 1)) \
+	  ^ ((CORE_ADDR) 1 << ((bs) - 1))) \
+	 - ((CORE_ADDR) 1 << ((bs) - 1)))
+#define PPC_OP6(insn)	PPC_FIELD (insn, 0, 6)
+#define PPC_EXTOP(insn)	PPC_FIELD (insn, 21, 10)
+#define PPC_RT(insn)	PPC_FIELD (insn, 6, 5)
+#define PPC_RS(insn)	PPC_FIELD (insn, 6, 5)
+#define PPC_RA(insn)	PPC_FIELD (insn, 11, 5)
+#define PPC_RB(insn)	PPC_FIELD (insn, 16, 5)
+#define PPC_NB(insn)	PPC_FIELD (insn, 16, 5)
+#define PPC_VRT(insn)	PPC_FIELD (insn, 6, 5)
+#define PPC_FRT(insn)	PPC_FIELD (insn, 6, 5)
+#define PPC_SPR(insn)	(PPC_FIELD (insn, 11, 5) \
+			| (PPC_FIELD (insn, 16, 5) << 5))
+#define PPC_BO(insn)	PPC_FIELD (insn, 6, 5)
+#define PPC_T(insn)	PPC_FIELD (insn, 6, 5)
+#define PPC_D(insn)	PPC_SEXT (PPC_FIELD (insn, 16, 16), 16)
+#define PPC_DS(insn)	PPC_SEXT (PPC_FIELD (insn, 16, 14), 14)
+#define PPC_BIT(insn,n)	((insn & (1 << (31 - (n)))) ? 1 : 0)
+#define PPC_OE(insn)	PPC_BIT (insn, 21)
+#define PPC_RC(insn)	PPC_BIT (insn, 31)
+#define PPC_Rc(insn)	PPC_BIT (insn, 21)
+#define PPC_LK(insn)	PPC_BIT (insn, 31)
+#define PPC_TX(insn)	PPC_BIT (insn, 31)
+#define PPC_LEV(insn)	PPC_FIELD (insn, 20, 7)
+
+#define PPC_XT(insn)	((PPC_TX (insn) << 5) | PPC_T (insn))
+#define PPC_XER_NB(xer)	(xer & 0x7f)
+
+/* Record Vector-Scalar Registers.  */
+
+static int
+ppc_record_vsr (struct regcache *regcache, struct gdbarch_tdep *tdep, int vsr)
+{
+  if (vsr < 0 || vsr >= 64)
+    return -1;
+
+  if (vsr >= 32)
+    {
+      if (tdep->ppc_vr0_regnum >= 0)
+	record_full_arch_list_add_reg (regcache, tdep->ppc_vr0_regnum + vsr - 32);
+    }
+  else
+    {
+      if (tdep->ppc_fp0_regnum >= 0)
+	record_full_arch_list_add_reg (regcache, tdep->ppc_fp0_regnum + vsr);
+      if (tdep->ppc_vsr0_upper_regnum >= 0)
+	record_full_arch_list_add_reg (regcache,
+				       tdep->ppc_vsr0_upper_regnum + vsr);
+    }
+
+  return 0;
+}
+
+/* Parse instructions of primary opcode-4.  */
+
+static int
+ppc_process_record_op4 (struct gdbarch *gdbarch, struct regcache *regcache,
+			   CORE_ADDR addr, uint32_t insn)
+{
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+  int ext = PPC_FIELD (insn, 21, 11);
+
+  switch (ext & 0x3f)
+    {
+    case 32:		/* Vector Multiply-High-Add Signed Halfword Saturate */
+    case 33:		/* Vector Multiply-High-Round-Add Signed Halfword Saturate */
+    case 39:		/* Vector Multiply-Sum Unsigned Halfword Saturate */
+    case 41:		/* Vector Multiply-Sum Signed Halfword Saturate */
+      record_full_arch_list_add_reg (regcache, PPC_VSCR_REGNUM);
+      /* FALL-THROUGH */
+    case 42:		/* Vector Select */
+    case 43:		/* Vector Permute */
+    case 44:		/* Vector Shift Left Double by Octet Immediate */
+    case 45:		/* Vector Permute and Exclusive-OR */
+    case 60:		/* Vector Add Extended Unsigned Quadword Modulo */
+    case 61:		/* Vector Add Extended & write Carry Unsigned Quadword */
+    case 62:		/* Vector Subtract Extended Unsigned Quadword Modulo */
+    case 63:		/* Vector Subtract Extended & write Carry Unsigned Quadword */
+    case 34:		/* Vector Multiply-Low-Add Unsigned Halfword Modulo */
+    case 36:		/* Vector Multiply-Sum Unsigned Byte Modulo */
+    case 37:		/* Vector Multiply-Sum Mixed Byte Modulo */
+    case 38:		/* Vector Multiply-Sum Unsigned Halfword Modulo */
+    case 40:		/* Vector Multiply-Sum Signed Halfword Modulo */
+    case 46:		/* Vector Multiply-Add Single-Precision */
+    case 47:		/* Vector Negative Multiply-Subtract Single-Precision */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_vr0_regnum + PPC_VRT (insn));
+      return 0;
+    }
+
+  switch ((ext & 0x1ff))
+    {
+			/* 5.16 Decimal Integer Arithmetic Instructions */
+    case 1:		/* Decimal Add Modulo */
+    case 65:		/* Decimal Subtract Modulo */
+
+      /* Bit-21 should be set.  */
+      if (!PPC_BIT (insn, 21))
+	break;
+
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_vr0_regnum + PPC_VRT (insn));
+      record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      return 0;
+    }
+
+  /* Bit-21 is used for RC */
+  switch (ext & 0x3ff)
+    {
+    case 6:		/* Vector Compare Equal To Unsigned Byte */
+    case 70:		/* Vector Compare Equal To Unsigned Halfword */
+    case 134:		/* Vector Compare Equal To Unsigned Word */
+    case 199:		/* Vector Compare Equal To Unsigned Doubleword */
+    case 774:		/* Vector Compare Greater Than Signed Byte */
+    case 838:		/* Vector Compare Greater Than Signed Halfword */
+    case 902:		/* Vector Compare Greater Than Signed Word */
+    case 967:		/* Vector Compare Greater Than Signed Doubleword */
+    case 518:		/* Vector Compare Greater Than Unsigned Byte */
+    case 646:		/* Vector Compare Greater Than Unsigned Word */
+    case 582:		/* Vector Compare Greater Than Unsigned Halfword */
+    case 711:		/* Vector Compare Greater Than Unsigned Doubleword */
+    case 966:		/* Vector Compare Bounds Single-Precision */
+    case 198:		/* Vector Compare Equal To Single-Precision */
+    case 454:		/* Vector Compare Greater Than or Equal To Single-Precision */
+    case 710:		/* Vector Compare Greater Than Single-Precision */
+      if (PPC_Rc (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_vr0_regnum + PPC_VRT (insn));
+      return 0;
+    }
+
+  switch (ext)
+    {
+    case 142:		/* Vector Pack Unsigned Halfword Unsigned Saturate */
+    case 206:		/* Vector Pack Unsigned Word Unsigned Saturate */
+    case 270:		/* Vector Pack Signed Halfword Unsigned Saturate */
+    case 334:		/* Vector Pack Signed Word Unsigned Saturate */
+    case 398:		/* Vector Pack Signed Halfword Signed Saturate */
+    case 462:		/* Vector Pack Signed Word Signed Saturate */
+    case 1230:		/* Vector Pack Unsigned Doubleword Unsigned Saturate */
+    case 1358:		/* Vector Pack Signed Doubleword Unsigned Saturate */
+    case 1486:		/* Vector Pack Signed Doubleword Signed Saturate */
+    case 512:		/* Vector Add Unsigned Byte Saturate */
+    case 576:		/* Vector Add Unsigned Halfword Saturate */
+    case 640:		/* Vector Add Unsigned Word Saturate */
+    case 768:		/* Vector Add Signed Byte Saturate */
+    case 832:		/* Vector Add Signed Halfword Saturate */
+    case 896:		/* Vector Add Signed Word Saturate */
+    case 1536:		/* Vector Subtract Unsigned Byte Saturate */
+    case 1600:		/* Vector Subtract Unsigned Halfword Saturate */
+    case 1664:		/* Vector Subtract Unsigned Word Saturate */
+    case 1792:		/* Vector Subtract Signed Byte Saturate */
+    case 1856:		/* Vector Subtract Signed Halfword Saturate */
+    case 1920:		/* Vector Subtract Signed Word Saturate */
+
+    case 1544:		/* Vector Sum across Quarter Unsigned Byte Saturate */
+    case 1800:		/* Vector Sum across Quarter Signed Byte Saturate */
+    case 1608:		/* Vector Sum across Quarter Signed Halfword Saturate */
+    case 1672:		/* Vector Sum across Half Signed Word Saturate */
+    case 1928:		/* Vector Sum across Signed Word Saturate */
+    case 970:		/* Vector Convert To Signed Fixed-Point Word Saturate */
+    case 906:		/* Vector Convert To Unsigned Fixed-Point Word Saturate */
+      record_full_arch_list_add_reg (regcache, PPC_VSCR_REGNUM);
+      /* FALL-THROUGH */
+    case 12:		/* Vector Merge High Byte */
+    case 14:		/* Vector Pack Unsigned Halfword Unsigned Modulo */
+    case 76:		/* Vector Merge High Halfword */
+    case 78:		/* Vector Pack Unsigned Word Unsigned Modulo */
+    case 140:		/* Vector Merge High Word */
+    case 268:		/* Vector Merge Low Byte */
+    case 332:		/* Vector Merge Low Halfword */
+    case 396:		/* Vector Merge Low Word */
+    case 526:		/* Vector Unpack High Signed Byte */
+    case 590:		/* Vector Unpack High Signed Halfword */
+    case 654:		/* Vector Unpack Low Signed Byte */
+    case 718:		/* Vector Unpack Low Signed Halfword */
+    case 782:		/* Vector Pack Pixel */
+    case 846:		/* Vector Unpack High Pixel */
+    case 974:		/* Vector Unpack Low Pixel */
+    case 1102:		/* Vector Pack Unsigned Doubleword Unsigned Modulo */
+    case 1614:		/* Vector Unpack High Signed Word */
+    case 1676:		/* Vector Merge Odd Word */
+    case 1742:		/* Vector Unpack Low Signed Word */
+    case 1932:		/* Vector Merge Even Word */
+    case 524:		/* Vector Splat Byte */
+    case 588:		/* Vector Splat Halfword */
+    case 652:		/* Vector Splat Word */
+    case 780:		/* Vector Splat Immediate Signed Byte */
+    case 844:		/* Vector Splat Immediate Signed Halfword */
+    case 908:		/* Vector Splat Immediate Signed Word */
+    case 452:		/* Vector Shift Left */
+    case 708:		/* Vector Shift Right */
+    case 1036:		/* Vector Shift Left by Octet */
+    case 1100:		/* Vector Shift Right by Octet */
+    case 0:		/* Vector Add Unsigned Byte Modulo */
+    case 64:		/* Vector Add Unsigned Halfword Modulo */
+    case 128:		/* Vector Add Unsigned Word Modulo */
+    case 192:		/* Vector Add Unsigned Doubleword Modulo */
+    case 256:		/* Vector Add Unsigned Quadword Modulo */
+    case 320:		/* Vector Add & write Carry Unsigned Quadword */
+    case 384:		/* Vector Add and Write Carry-Out Unsigned Word */
+    case 8:		/* Vector Multiply Odd Unsigned Byte */
+    case 72:		/* Vector Multiply Odd Unsigned Halfword */
+    case 136:		/* Vector Multiply Odd Unsigned Word */
+    case 264:		/* Vector Multiply Odd Signed Byte */
+    case 328:		/* Vector Multiply Odd Signed Halfword */
+    case 392:		/* Vector Multiply Odd Signed Word */
+    case 520:		/* Vector Multiply Even Unsigned Byte */
+    case 584:		/* Vector Multiply Even Unsigned Halfword */
+    case 648:		/* Vector Multiply Even Unsigned Word */
+    case 776:		/* Vector Multiply Even Signed Byte */
+    case 840:		/* Vector Multiply Even Signed Halfword */
+    case 904:		/* Vector Multiply Even Signed Word */
+    case 137:		/* Vector Multiply Unsigned Word Modulo */
+    case 1024:		/* Vector Subtract Unsigned Byte Modulo */
+    case 1088:		/* Vector Subtract Unsigned Halfword Modulo */
+    case 1152:		/* Vector Subtract Unsigned Word Modulo */
+    case 1216:		/* Vector Subtract Unsigned Doubleword Modulo */
+    case 1280:		/* Vector Subtract Unsigned Quadword Modulo */
+    case 1344:		/* Vector Subtract & write Carry Unsigned Quadword */
+    case 1408:		/* Vector Subtract and Write Carry-Out Unsigned Word */
+    case 1282:		/* Vector Average Signed Byte */
+    case 1346:		/* Vector Average Signed Halfword */
+    case 1410:		/* Vector Average Signed Word */
+    case 1026:		/* Vector Average Unsigned Byte */
+    case 1090:		/* Vector Average Unsigned Halfword */
+    case 1154:		/* Vector Average Unsigned Word */
+    case 258:		/* Vector Maximum Signed Byte */
+    case 322:		/* Vector Maximum Signed Halfword */
+    case 386:		/* Vector Maximum Signed Word */
+    case 450:		/* Vector Maximum Signed Doubleword */
+    case 2:		/* Vector Maximum Unsigned Byte */
+    case 66:		/* Vector Maximum Unsigned Halfword */
+    case 130:		/* Vector Maximum Unsigned Word */
+    case 194:		/* Vector Maximum Unsigned Doubleword */
+    case 770:		/* Vector Minimum Signed Byte */
+    case 834:		/* Vector Minimum Signed Halfword */
+    case 898:		/* Vector Minimum Signed Word */
+    case 962:		/* Vector Minimum Signed Doubleword */
+    case 514:		/* Vector Minimum Unsigned Byte */
+    case 578:		/* Vector Minimum Unsigned Halfword */
+    case 642:		/* Vector Minimum Unsigned Word */
+    case 706:		/* Vector Minimum Unsigned Doubleword */
+    case 1028:		/* Vector Logical AND */
+    case 1668:		/* Vector Logical Equivalent */
+    case 1092:		/* Vector Logical AND with Complement */
+    case 1412:		/* Vector Logical NAND */
+    case 1348:		/* Vector Logical OR with Complement */
+    case 1156:		/* Vector Logical OR */
+    case 1284:		/* Vector Logical NOR */
+    case 1220:		/* Vector Logical XOR */
+    case 4:		/* Vector Rotate Left Byte */
+    case 132:		/* Vector Rotate Left Word VX-form */
+    case 68:		/* Vector Rotate Left Halfword */
+    case 196:		/* Vector Rotate Left Doubleword */
+    case 260:		/* Vector Shift Left Byte */
+    case 388:		/* Vector Shift Left Word */
+    case 324:		/* Vector Shift Left Halfword */
+    case 1476:		/* Vector Shift Left Doubleword */
+    case 516:		/* Vector Shift Right Byte */
+    case 644:		/* Vector Shift Right Word */
+    case 580:		/* Vector Shift Right Halfword */
+    case 1732:		/* Vector Shift Right Doubleword */
+    case 772:		/* Vector Shift Right Algebraic Byte */
+    case 900:		/* Vector Shift Right Algebraic Word */
+    case 836:		/* Vector Shift Right Algebraic Halfword */
+    case 964:		/* Vector Shift Right Algebraic Doubleword */
+    case 10:		/* Vector Add Single-Precision */
+    case 74:		/* Vector Subtract Single-Precision */
+    case 1034:		/* Vector Maximum Single-Precision */
+    case 1098:		/* Vector Minimum Single-Precision */
+    case 842:		/* Vector Convert From Signed Fixed-Point Word */
+    case 778:		/* Vector Convert From Unsigned Fixed-Point Word */
+    case 714:		/* Vector Round to Single-Precision Integer toward -Infinity */
+    case 522:		/* Vector Round to Single-Precision Integer Nearest */
+    case 650:		/* Vector Round to Single-Precision Integer toward +Infinity */
+    case 586:		/* Vector Round to Single-Precision Integer toward Zero */
+    case 394:		/* Vector 2 Raised to the Exponent Estimate Floating-Point */
+    case 458:		/* Vector Log Base 2 Estimate Floating-Point */
+    case 266:		/* Vector Reciprocal Estimate Single-Precision */
+    case 330:		/* Vector Reciprocal Square Root Estimate Single-Precision */
+    case 1288:		/* Vector AES Cipher */
+    case 1289:		/* Vector AES Cipher Last */
+    case 1352:		/* Vector AES Inverse Cipher */
+    case 1353:		/* Vector AES Inverse Cipher Last */
+    case 1480:		/* Vector AES SubBytes */
+    case 1730:		/* Vector SHA-512 Sigma Doubleword */
+    case 1666:		/* Vector SHA-256 Sigma Word */
+    case 1032:		/* Vector Polynomial Multiply-Sum Byte */
+    case 1160:		/* Vector Polynomial Multiply-Sum Word */
+    case 1096:		/* Vector Polynomial Multiply-Sum Halfword */
+    case 1224:		/* Vector Polynomial Multiply-Sum Doubleword */
+    case 1292:		/* Vector Gather Bits by Bytes by Doubleword */
+    case 1794:		/* Vector Count Leading Zeros Byte */
+    case 1858:		/* Vector Count Leading Zeros Halfword */
+    case 1922:		/* Vector Count Leading Zeros Word */
+    case 1986:		/* Vector Count Leading Zeros Doubleword */
+    case 1795:		/* Vector Population Count Byte */
+    case 1859:		/* Vector Population Count Halfword */
+    case 1923:		/* Vector Population Count Word */
+    case 1987:		/* Vector Population Count Doubleword */
+    case 1356:		/* Vector Bit Permute Quadword */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_vr0_regnum + PPC_VRT (insn));
+      return 0;
+
+    case 1604:		/* Move To Vector Status and Control Register */
+      record_full_arch_list_add_reg (regcache, PPC_VSCR_REGNUM);
+      return 0;
+    case 1540:		/* Move From Vector Status and Control Register */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_vr0_regnum + PPC_VRT (insn));
+      return 0;
+    }
+
+  fprintf_unfiltered (gdb_stdlog, "Warning: Don't know how to record "
+		      "%08x at %08lx, 4-%d.\n", insn, addr, ext);
+  return -1;
+}
+
+/* Parse instructions of primary opcode-19.  */
+
+static int
+ppc_process_record_op19 (struct gdbarch *gdbarch, struct regcache *regcache,
+			   CORE_ADDR addr, uint32_t insn)
+{
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+  int ext = PPC_EXTOP (insn);
+
+  switch (ext)
+    {
+    case 0:		/* Move Condition Register Field */
+    case 33:		/* Condition Register NOR */
+    case 129:		/* Condition Register AND with Complement */
+    case 193:		/* Condition Register XOR */
+    case 225:		/* Condition Register NAND */
+    case 257:		/* Condition Register AND */
+    case 289:		/* Condition Register Equivalent */
+    case 417:		/* Condition Register OR with Complement */
+    case 449:		/* Condition Register OR */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      return 0;
+
+    case 16:		/* Branch Conditional */
+    case 560:		/* Branch Conditional to Branch Target Address Register */
+      if ((PPC_BO (insn) & 0x4) == 0)
+	record_full_arch_list_add_reg (regcache, tdep->ppc_ctr_regnum);
+      /* FALL-THROUGH */
+    case 528:		/* Branch Conditional to Count Register */
+      if (PPC_LK (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_lr_regnum);
+      return 0;
+
+    case 150:		/* Instruction Synchronize */
+      /* Do nothing.  */
+      return 0;
+    }
+
+  fprintf_unfiltered (gdb_stdlog, "Warning: Don't know how to record "
+		      "%08x at %08lx, 19-%d.\n", insn, addr, ext);
+  return -1;
+}
+
+/* Parse instructions of primary opcode-31.  */
+
+static int
+ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
+			   CORE_ADDR addr, uint32_t insn)
+{
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+  int ext = PPC_EXTOP (insn);
+  int tmp, nr, nb, i;
+  CORE_ADDR at_dcsz, ea = 0;
+  ULONGEST rb, ra, xer;
+  int size = 0;
+
+  /* These instructions have OE bit.  */
+  switch (ext & 0x1ff)
+    {
+    /* These write RT and XER.  Update CR if RC is set.  */
+    case 8:		/* Subtract from carrying */
+    case 10:		/* Add carrying */
+    case 136:		/* Subtract from extended */
+    case 138:		/* Add extended */
+    case 200:		/* Subtract from zero extended */
+    case 202:		/* Add to zero extended */
+    case 232:		/* Subtract from minus one extended */
+    case 234:		/* Add to minus one extended */
+      /* CA is always altered, but SO/OV are only altered when OE=1.
+	 In any case, XER is always altered.  */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum);
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RT (insn));
+      return 0;
+
+    /* These write RT.  Update CR if RC is set and update XER if OE is set.  */
+    case 40:		/* Subtract from */
+    case 104:		/* Negate */
+    case 233:		/* Multiply low doubleword */
+    case 235:		/* Multiply low word */
+    case 266:		/* Add */
+    case 393:		/* Divide Doubleword Extended Unsigned */
+    case 395:		/* Divide Word Extended Unsigned */
+    case 425:		/* Divide Doubleword Extended */
+    case 427:		/* Divide Word Extended */
+    case 457:		/* Divide Doubleword Unsigned */
+    case 459:		/* Divide Word Unsigned */
+    case 489:		/* Divide Doubleword */
+    case 491:		/* Divide Word */
+      if (PPC_OE (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum);
+      /* FALL-THROUGH */
+    case 9:		/* Multiply High Doubleword Unsigned */
+    case 11:		/* Multiply High Word Unsigned */
+    case 73:		/* Multiply High Doubleword */
+    case 75:		/* Multiply High Word */
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RT (insn));
+      return 0;
+    }
+
+  if ((ext & 0x1f) == 15)
+    {
+      /* Integer Select. bit[16:20] is used for BC.  */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RT (insn));
+      return 0;
+    }
+
+  switch (ext)
+    {
+    case 78:		/* Determine Leftmost Zero Byte */
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum);
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RT (insn));
+      return 0;
+
+    /* These only write RT.  */
+    case 19:		/* Move from condition register */
+			/* Move From One Condition Register Field */
+    case 74:		/* Add and Generate Sixes */
+    case 74 | 0x200:	/* Add and Generate Sixes (bit-21 dont-care) */
+    case 302:		/* Move From Branch History Rolling Buffer */
+    case 339:		/* Move From Special Purpose Register */
+    case 371:		/* Move From Time Base [Phased-Out]  */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RT (insn));
+      return 0;
+
+    /* These only write to RA.  */
+    case 51:		/* Move From VSR Doubleword */
+    case 115:		/* Move From VSR Word and Zero */
+    case 122:		/* Population count bytes */
+    case 378:		/* Population count words */
+    case 506:		/* Population count doublewords */
+    case 154:		/* Parity Word */
+    case 186:		/* Parity Doubleword */
+    case 252:		/* Bit Permute Doubleword */
+    case 282:		/* Convert Declets To Binary Coded Decimal */
+    case 314:		/* Convert Binary Coded Decimal To Declets */
+    case 508:		/* Compare bytes */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RA (insn));
+      return 0;
+
+    /* These write CR and optional RA.  */
+    case 792:		/* Shift Right Algebraic Word */
+    case 794:		/* Shift Right Algebraic Doubleword */
+    case 824:		/* Shift Right Algebraic Word Immediate */
+    case 826:		/* Shift Right Algebraic Doubleword Immediate (413) */
+    case 826 | 1:	/* Shift Right Algebraic Doubleword Immediate (413) */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum);
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RA (insn));
+      /* FALL-THROUGH */
+    case 0:		/* Compare */
+    case 32:		/* Compare logical */
+    case 144:		/* Move To Condition Register Fields */
+			/* Move To One Condition Register Field */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      return 0;
+
+    /* These write to RT.  Update RA if 'update indexed.'  */
+    case 53:		/* Load Doubleword with Update Indexed */
+    case 119:		/* Load Byte and Zero with Update Indexed */
+    case 311:		/* Load Halfword and Zero with Update Indexed */
+    case 55:		/* Load Word and Zero with Update Indexed */
+    case 375:		/* Load Halfword Algebraic with Update Indexed */
+    case 373:		/* Load Word Algebraic with Update Indexed */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RA (insn));
+      /* FALL-THROUGH */
+    case 21:		/* Load Doubleword Indexed */
+    case 52:		/* Load Byte And Reserve Indexed */
+    case 116:		/* Load Halfword And Reserve Indexed */
+    case 20:		/* Load Word And Reserve Indexed */
+    case 84:		/* Load Doubleword And Reserve Indexed */
+    case 87:		/* Load Byte and Zero Indexed */
+    case 279:		/* Load Halfword and Zero Indexed */
+    case 23:		/* Load Word and Zero Indexed */
+    case 343:		/* Load Halfword Algebraic Indexed */
+    case 341:		/* Load Word Algebraic Indexed */
+    case 790:		/* Load Halfword Byte-Reverse Indexed */
+    case 534:		/* Load Word Byte-Reverse Indexed */
+    case 532:		/* Load Doubleword Byte-Reverse Indexed */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RT (insn));
+      return 0;
+
+    case 597:		/* Load String Word Immediate */
+    case 533:		/* Load String Word Indexed */
+      if (ext == 597)
+	{
+	nr = PPC_NB (insn);
+	if (nr == 0)
+	  nr = 32;
+	}
+      else
+	{
+	  regcache_raw_read_unsigned (regcache, tdep->ppc_xer_regnum, &xer);
+	  nr = PPC_XER_NB (xer);
+	}
+
+      nr = (nr + 3) >> 2;
+
+      /* If n=0, the contents of register RT are undefined.  */
+      if (nr == 0)
+	nr = 1;
+
+      for (i = 0; i < nr; i++)
+	record_full_arch_list_add_reg (regcache,
+				       tdep->ppc_gp0_regnum
+				       + ((PPC_RT (insn) + i) & 0x1f));
+      return 0;
+
+    case 276:		/* Load Quadword And Reserve Indexed */
+      tmp = tdep->ppc_gp0_regnum + (PPC_RT (insn) & ~1);
+      record_full_arch_list_add_reg (regcache, tmp);
+      record_full_arch_list_add_reg (regcache, tmp + 1);
+      return 0;
+
+    /* These write VRT.  */
+    case 6:		/* Load Vector for Shift Left Indexed */
+    case 38:		/* Load Vector for Shift Right Indexed */
+    case 7:		/* Load Vector Element Byte Indexed */
+    case 39:		/* Load Vector Element Halfword Indexed */
+    case 71:		/* Load Vector Element Word Indexed */
+    case 103:		/* Load Vector Indexed */
+    case 359:		/* Load Vector Indexed LRU */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_vr0_regnum + PPC_VRT (insn));
+      return 0;
+
+    /* These write FRT.  Update RA if 'update indexed.'  */
+    case 567:		/* Load Floating-Point Single with Update Indexed */
+    case 631:		/* Load Floating-Point Double with Update Indexed */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RA (insn));
+      /* FALL-THROUGH */
+    case 535:		/* Load Floating-Point Single Indexed */
+    case 599:		/* Load Floating-Point Double Indexed */
+    case 855:		/* Load Floating-Point as Integer Word Algebraic Indexed */
+    case 887:		/* Load Floating-Point as Integer Word and Zero Indexed */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_fp0_regnum + PPC_FRT (insn));
+      return 0;
+
+    case 791:		/* Load Floating-Point Double Pair Indexed */
+      tmp = tdep->ppc_fp0_regnum + (PPC_FRT (insn) & ~1);
+      record_full_arch_list_add_reg (regcache, tmp);
+      record_full_arch_list_add_reg (regcache, tmp + 1);
+      return 0;
+
+    case 179:		/* Move To VSR Doubleword */
+    case 211:		/* Move To VSR Word Algebraic */
+    case 243:		/* Move To VSR Word and Zero */
+    case 588:		/* Load VSX Scalar Doubleword Indexed */
+    case 524:		/* Load VSX Scalar Single-Precision Indexed */
+    case 76:		/* Load VSX Scalar as Integer Word Algebraic Indexed */
+    case 12:		/* Load VSX Scalar as Integer Word and Zero Indexed */
+    case 844:		/* Load VSX Vector Doubleword*2 Indexed */
+    case 332:		/* Load VSX Vector Doubleword & Splat Indexed */
+    case 780:		/* Load VSX Vector Word*4 Indexed */
+      ppc_record_vsr (regcache, tdep, PPC_XT (insn));
+      return 0;
+
+    /* These write RA.  Update CR if RC is set.  */
+    case 24:		/* Shift Left Word */
+    case 26:		/* Count Leading Zeros Word */
+    case 27:		/* Shift Left Doubleword */
+    case 28:		/* AND */
+    case 58:		/* Count Leading Zeros Doubleword */
+    case 60:		/* AND with Complement */
+    case 124:		/* NOR */
+    case 284:		/* Equivalent */
+    case 316:		/* XOR */
+    case 476:		/* NAND */
+    case 412:		/* OR with Complement */
+    case 444:		/* OR */
+    case 536:		/* Shift Right Word */
+    case 539:		/* Shift Right Doubleword */
+    case 922:		/* Extend Sign Halfword */
+    case 954:		/* Extend Sign Byte */
+    case 986:		/* Extend Sign Word */
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RA (insn));
+      return 0;
+
+    /* Store memory.  */
+    case 181:		/* Store Doubleword with Update Indexed */
+    case 183:		/* Store Word with Update Indexed */
+    case 247:		/* Store Byte with Update Indexed */
+    case 439:		/* Store Half Word with Update Indexed */
+    case 695:		/* Store Floating-Point Single with Update Indexed */
+    case 759:		/* Store Floating-Point Double with Update Indexed */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RA (insn));
+      /* FALL-THROUGH */
+    case 135:		/* Store Vector Element Byte Indexed */
+    case 167:		/* Store Vector Element Halfword Indexed */
+    case 199:		/* Store Vector Element Word Indexed */
+    case 231:		/* Store Vector Indexed */
+    case 487:		/* Store Vector Indexed LRU */
+    case 716:		/* Store VSX Scalar Doubleword Indexed */
+    case 140:		/* Store VSX Scalar as Integer Word Indexed */
+    case 652:		/* Store VSX Scalar Single-Precision Indexed */
+    case 972:		/* Store VSX Vector Doubleword*2 Indexed */
+    case 908:		/* Store VSX Vector Word*4 Indexed */
+    case 149:		/* Store Doubleword Indexed */
+    case 151:		/* Store Word Indexed */
+    case 215:		/* Store Byte Indexed */
+    case 407:		/* Store Half Word Indexed */
+    case 694:		/* Store Byte Conditional Indexed */
+    case 726:		/* Store Halfword Conditional Indexed */
+    case 150:		/* Store Word Conditional Indexed */
+    case 214:		/* Store Doubleword Conditional Indexed */
+    case 182:		/* Store Quadword Conditional Indexed */
+    case 662:		/* Store Word Byte-Reverse Indexed */
+    case 918:		/* Store Halfword Byte-Reverse Indexed */
+    case 660:		/* Store Doubleword Byte-Reverse Indexed */
+    case 663:		/* Store Floating-Point Single Indexed */
+    case 727:		/* Store Floating-Point Double Indexed */
+    case 919:		/* Store Floating-Point Double Pair Indexed */
+    case 983:		/* Store Floating-Point as Integer Word Indexed */
+      if (ext == 694 || ext == 726 || ext == 150 || ext == 214 || ext == 182)
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+
+      ra = 0;
+      if (PPC_RA (insn) != 0)
+	regcache_raw_read_unsigned (regcache,
+				    tdep->ppc_gp0_regnum + PPC_RA (insn), &ra);
+      regcache_raw_read_unsigned (regcache,
+				  tdep->ppc_gp0_regnum + PPC_RB (insn), &rb);
+      ea = ra + rb;
+
+      switch (ext)
+	{
+	case 183:	/* Store Word with Update Indexed */
+	case 199:	/* Store Vector Element Word Indexed */
+	case 140:	/* Store VSX Scalar as Integer Word Indexed */
+	case 652:	/* Store VSX Scalar Single-Precision Indexed */
+	case 151:	/* Store Word Indexed */
+	case 150:	/* Store Word Conditional Indexed */
+	case 662:	/* Store Word Byte-Reverse Indexed */
+	case 663:	/* Store Floating-Point Single Indexed */
+	case 695:	/* Store Floating-Point Single with Update Indexed */
+	case 983:	/* Store Floating-Point as Integer Word Indexed */
+	  size = 4;
+	  break;
+	case 247:	/* Store Byte with Update Indexed */
+	case 135:	/* Store Vector Element Byte Indexed */
+	case 215:	/* Store Byte Indexed */
+	case 694:	/* Store Byte Conditional Indexed */
+	  size = 1;
+	  break;
+	case 439:	/* Store Halfword with Update Indexed */
+	case 167:	/* Store Vector Element Halfword Indexed */
+	case 407:	/* Store Halfword Indexed */
+	case 726:	/* Store Halfword Conditional Indexed */
+	case 918:	/* Store Halfword Byte-Reverse Indexed */
+	  size = 2;
+	  break;
+	case 181:	/* Store Doubleword with Update Indexed */
+	case 716:	/* Store VSX Scalar Doubleword Indexed */
+	case 149:	/* Store Doubleword Indexed */
+	case 214:	/* Store Doubleword Conditional Indexed */
+	case 660:	/* Store Doubleword Byte-Reverse Indexed */
+	case 727:	/* Store Floating-Point Double Indexed */
+	case 759:	/* Store Floating-Point Double with Update Indexed */
+	  size = 8;
+	  break;
+	case 972:	/* Store VSX Vector Doubleword*2 Indexed */
+	case 908:	/* Store VSX Vector Word*4 Indexed */
+	case 182:	/* Store Quadword Conditional Indexed */
+	case 231:	/* Store Vector Indexed */
+	case 487:	/* Store Vector Indexed LRU */
+	case 919:	/* Store Floating-Point Double Pair Indexed */
+	  size = 16;
+	  break;
+	default:
+	  gdb_assert (0);
+	}
+
+      /* Align address for Store Vector instructions.  */
+      switch (ext)
+	{
+	case 167:	/* Store Vector Element Halfword Indexed */
+	  addr = addr & ~0x1ULL;
+	  break;
+
+	case 199:	/* Store Vector Element Word Indexed */
+	  addr = addr & ~0x3ULL;
+	  break;
+
+	case 231:	/* Store Vector Indexed */
+	case 487:	/* Store Vector Indexed LRU */
+	  addr = addr & ~0xfULL;
+	  break;
+	}
+
+      record_full_arch_list_add_mem (addr, size);
+      return 0;
+
+    case 725:		/* Store String Word Immediate */
+      ra = 0;
+      if (PPC_RA (insn) != 0)
+	regcache_raw_read_unsigned (regcache, tdep->ppc_xer_regnum, &ra);
+      ea += ra;
+
+      nb = PPC_NB (insn);
+      if (nb == 0)
+	nb = 32;
+
+      record_full_arch_list_add_mem (ea, nb);
+
+      return 0;
+
+    case 661:		/* Store String Word Indexed */
+      ra = 0;
+      if (PPC_RA (insn) != 0)
+	regcache_raw_read_unsigned (regcache, tdep->ppc_xer_regnum, &ra);
+      ea += ra;
+
+      regcache_raw_read_unsigned (regcache, tdep->ppc_xer_regnum, &xer);
+      nb = PPC_XER_NB (xer);
+
+      if (nb != 0)
+	{
+	  regcache_raw_read_unsigned (regcache, tdep->ppc_xer_regnum, &rb);
+	  ea += rb;
+	  record_full_arch_list_add_mem (ea, nb);
+	}
+
+      return 0;
+
+    case 467:		/* Move To Special Purpose Register */
+      switch (PPC_SPR (insn))
+	{
+	case 1:			/* XER */
+	  record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum);
+	  return 0;
+	case 8:			/* LR */
+	  record_full_arch_list_add_reg (regcache, tdep->ppc_lr_regnum);
+	  return 0;
+	case 9:			/* CTR */
+	  record_full_arch_list_add_reg (regcache, tdep->ppc_ctr_regnum);
+	  return 0;
+	case 256:		/* VRSAVE */
+	  record_full_arch_list_add_reg (regcache, tdep->ppc_vrsave_regnum);
+	  return 0;
+	}
+
+      goto UNKNOWN_OP;
+
+    case 147:		/* Move To Split Little Endian */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_ps_regnum);
+      return 0;
+
+    case 512:		/* Move to Condition Register from XER */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum);
+      return 0;
+
+    case 4:		/* Trap Word */
+    case 68:		/* Trap Doubleword */
+    case 430:		/* Clear BHRB */
+    case 598:		/* Synchronize */
+    case 62:		/* Wait for Interrupt */
+    case 22:		/* Instruction Cache Block Touch */
+    case 854:		/* Enforce In-order Execution of I/O */
+    case 246:		/* Data Cache Block Touch for Store */
+    case 54:		/* Data Cache Block Store */
+    case 86:		/* Data Cache Block Flush */
+    case 278:		/* Data Cache Block Touch */
+    case 758:		/* Data Cache Block Allocate */
+    case 982:		/* Instruction Cache Block Invalidate */
+      return 0;
+
+    case 654:		/* Transaction Begin */
+    case 686:		/* Transaction End */
+    case 718:		/* Transaction Check */
+    case 750:		/* Transaction Suspend or Resume */
+    case 782:		/* Transaction Abort Word Conditional */
+    case 814:		/* Transaction Abort Doubleword Conditional */
+    case 846:		/* Transaction Abort Word Conditional Immediate */
+    case 878:		/* Transaction Abort Doubleword Conditional Immediate */
+    case 910:		/* Transaction Abort */
+      fprintf_unfiltered (gdb_stdlog, "Cannot record Transaction instructions. "
+			  "%08x at %08lx, 31-%d.\n", insn, addr, ext);
+      return -1;
+
+    case 1014:		/* Data Cache Block set to Zero */
+      if (target_auxv_search (&current_target, AT_DCACHEBSIZE, &at_dcsz) <= 0
+	  || at_dcsz == 0)
+	at_dcsz = 128; /* Assume 128-byte cache line size (POWER8)  */
+
+      if (PPC_RA (insn) != 0)
+	regcache_raw_read_unsigned (regcache,
+				    tdep->ppc_gp0_regnum + PPC_RA (insn), &ra);
+      regcache_raw_read_unsigned (regcache,
+				  tdep->ppc_gp0_regnum + PPC_RB (insn), &rb);
+      ea = (ra + rb) & ~((ULONGEST) (at_dcsz - 1));
+      record_full_arch_list_add_mem (ea, at_dcsz);
+      return 0;
+    }
+
+UNKNOWN_OP:
+  fprintf_unfiltered (gdb_stdlog, "Warning: Don't know how to record "
+		      "%08x at %08lx, 31-%d.\n", insn, addr, ext);
+  return -1;
+}
+
+/* Parse instructions of primary opcode-59.  */
+
+static int
+ppc_process_record_op59 (struct gdbarch *gdbarch, struct regcache *regcache,
+			   CORE_ADDR addr, uint32_t insn)
+{
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+  int ext = PPC_EXTOP (insn);
+
+  switch (ext & 0x1f)
+    {
+    case 18:		/* Floating Divide */
+    case 20:		/* Floating Subtract */
+    case 21:		/* Floating Add */
+    case 22:		/* Floating Square Root */
+    case 24:		/* Floating Reciprocal Estimate */
+    case 25:		/* Floating Multiply */
+    case 26:		/* Floating Reciprocal Square Root Estimate */
+    case 28:		/* Floating Multiply-Subtract */
+    case 29:		/* Floating Multiply-Add */
+    case 30:		/* Floating Negative Multiply-Subtract */
+    case 31:		/* Floating Negative Multiply-Add */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_fp0_regnum + PPC_FRT (insn));
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+
+      return 0;
+    }
+
+  switch (ext)
+    {
+    case 2:		/* DFP Add */
+    case 3:		/* DFP Quantize */
+    case 34:		/* DFP Multiply */
+    case 35:		/* DFP Reround */
+    case 67:		/* DFP Quantize Immediate */
+    case 99:		/* DFP Round To FP Integer With Inexact */
+    case 227:		/* DFP Round To FP Integer Without Inexact */
+    case 258:		/* DFP Convert To DFP Long! */
+    case 290:		/* DFP Convert To Fixed */
+    case 514:		/* DFP Subtract */
+    case 546:		/* DFP Divide */
+    case 770:		/* DFP Round To DFP Short! */
+    case 802:		/* DFP Convert From Fixed */
+    case 834:		/* DFP Encode BCD To DPD */
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_fp0_regnum + PPC_FRT (insn));
+      record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+      return 0;
+
+    case 130:		/* DFP Compare Ordered */
+    case 162:		/* DFP Test Exponent */
+    case 194:		/* DFP Test Data Class */
+    case 226:		/* DFP Test Data Group */
+    case 642:		/* DFP Compare Unordered */
+    case 674:		/* DFP Test Significance */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+      return 0;
+
+    case 66:		/* DFP Shift Significand Left Immediate */
+    case 98:		/* DFP Shift Significand Right Immediate */
+    case 322:		/* DFP Decode DPD To BCD */
+    case 354:		/* DFP Extract Biased Exponent */
+    case 866:		/* DFP Insert Biased Exponent */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_fp0_regnum + PPC_FRT (insn));
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      return 0;
+
+    case 846:		/* Floating Convert From Integer Doubleword Single */
+    case 974:		/* Floating Convert From Integer Doubleword Unsigned
+			   Single */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_fp0_regnum + PPC_FRT (insn));
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+
+      return 0;
+    }
+
+  fprintf_unfiltered (gdb_stdlog, "Warning: Don't know how to record "
+		      "%08x at %08lx, 59-%d.\n", insn, addr, ext);
+  return -1;
+}
+
+/* Parse instructions of primary opcode-60.  */
+
+static int
+ppc_process_record_op60 (struct gdbarch *gdbarch, struct regcache *regcache,
+			   CORE_ADDR addr, uint32_t insn)
+{
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+  int ext = PPC_EXTOP (insn);
+  int tmp;
+
+  switch (ext >> 2)
+    {
+    case 0:		/* VSX Scalar Add Single-Precision */
+    case 32:		/* VSX Scalar Add Double-Precision */
+    case 24:		/* VSX Scalar Divide Single-Precision */
+    case 56:		/* VSX Scalar Divide Double-Precision */
+    case 176:		/* VSX Scalar Copy Sign Double-Precision */
+    case 33:		/* VSX Scalar Multiply-Add Double-Precision */
+    case 41:		/* ditto */
+    case 1:		/* VSX Scalar Multiply-Add Single-Precision */
+    case 9:		/* ditto */
+    case 160:		/* VSX Scalar Maximum Double-Precision */
+    case 168:		/* VSX Scalar Minimum Double-Precision */
+    case 49:		/* VSX Scalar Multiply-Subtract Double-Precision */
+    case 57:		/* ditto */
+    case 17:		/* VSX Scalar Multiply-Subtract Single-Precision */
+    case 25:		/* ditto */
+    case 48:		/* VSX Scalar Multiply Double-Precision */
+    case 16:		/* VSX Scalar Multiply Single-Precision */
+    case 161:		/* VSX Scalar Negative Multiply-Add Double-Precision */
+    case 169:		/* ditto */
+    case 129:		/* VSX Scalar Negative Multiply-Add Single-Precision */
+    case 137:		/* ditto */
+    case 177:		/* VSX Scalar Negative Multiply-Subtract Double-Precision */
+    case 185:		/* ditto */
+    case 145:		/* VSX Scalar Negative Multiply-Subtract Single-Precision */
+    case 153:		/* ditto */
+    case 40:		/* VSX Scalar Subtract Double-Precision */
+    case 8:		/* VSX Scalar Subtract Single-Precision */
+    case 96:		/* VSX Vector Add Double-Precision */
+    case 64:		/* VSX Vector Add Single-Precision */
+    case 120:		/* VSX Vector Divide Double-Precision */
+    case 88:		/* VSX Vector Divide Single-Precision */
+    case 97:		/* VSX Vector Multiply-Add Double-Precision */
+    case 105:		/* ditto */
+    case 65:		/* VSX Vector Multiply-Add Single-Precision */
+    case 73:		/* ditto */
+    case 224:		/* VSX Vector Maximum Double-Precision */
+    case 192:		/* VSX Vector Maximum Single-Precision */
+    case 232:		/* VSX Vector Minimum Double-Precision */
+    case 200:		/* VSX Vector Minimum Single-Precision */
+    case 113:		/* VSX Vector Multiply-Subtract Double-Precision */
+    case 121:		/* ditto */
+    case 81:		/* VSX Vector Multiply-Subtract Single-Precision */
+    case 89:		/* ditto */
+    case 112:		/* VSX Vector Multiply Double-Precision */
+    case 80:		/* VSX Vector Multiply Single-Precision */
+    case 225:		/* VSX Vector Negative Multiply-Add Double-Precision */
+    case 233:		/* ditto */
+    case 193:		/* VSX Vector Negative Multiply-Add Single-Precision */
+    case 201:		/* ditto */
+    case 241:		/* VSX Vector Negative Multiply-Subtract Double-Precision */
+    case 249:		/* ditto */
+    case 209:		/* VSX Vector Negative Multiply-Subtract Single-Precision */
+    case 217:		/* ditto */
+    case 104:		/* VSX Vector Subtract Double-Precision */
+    case 72:		/* VSX Vector Subtract Single-Precision */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+    case 240:		/* VSX Vector Copy Sign Double-Precision */
+    case 208:		/* VSX Vector Copy Sign Single-Precision */
+    case 130:		/* VSX Logical AND */
+    case 138:		/* VSX Logical AND with Complement */
+    case 186:		/* VSX Logical Equivalence */
+    case 178:		/* VSX Logical NAND */
+    case 170:		/* VSX Logical OR with Complement */
+    case 162:		/* VSX Logical NOR */
+    case 146:		/* VSX Logical OR */
+    case 154:		/* VSX Logical XOR */
+    case 18:		/* VSX Merge High Word */
+    case 50:		/* VSX Merge Low Word */
+    case 10:		/* VSX Permute Doubleword Immediate (DM=0) */
+    case 10 | 0x20:	/* VSX Permute Doubleword Immediate (DM=1) */
+    case 10 | 0x40:	/* VSX Permute Doubleword Immediate (DM=2) */
+    case 10 | 0x60:	/* VSX Permute Doubleword Immediate (DM=3) */
+    case 2:		/* VSX Shift Left Double by Word Immediate (SHW=0) */
+    case 2 | 0x20:	/* VSX Shift Left Double by Word Immediate (SHW=1) */
+    case 2 | 0x40:	/* VSX Shift Left Double by Word Immediate (SHW=2) */
+    case 2 | 0x60:	/* VSX Shift Left Double by Word Immediate (SHW=3) */
+      ppc_record_vsr (regcache, tdep, PPC_XT (insn));
+      return 0;
+
+    case 61:		/* VSX Scalar Test for software Divide Double-Precision */
+    case 125:		/* VSX Vector Test for software Divide Double-Precision */
+    case 93:		/* VSX Vector Test for software Divide Single-Precision */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      return 0;
+
+    case 35:		/* VSX Scalar Compare Unordered Double-Precision */
+    case 43:		/* VSX Scalar Compare Ordered Double-Precision */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+      return 0;
+    }
+
+  switch ((ext >> 2) & 0x7f) /* Mask out Rc-bit.  */
+    {
+    case 99:		/* VSX Vector Compare Equal To Double-Precision */
+    case 67:		/* VSX Vector Compare Equal To Single-Precision */
+    case 115:		/* VSX Vector Compare Greater Than or
+			   Equal To Double-Precision */
+    case 83:		/* VSX Vector Compare Greater Than or
+			   Equal To Single-Precision */
+    case 107:		/* VSX Vector Compare Greater Than Double-Precision */
+    case 75:		/* VSX Vector Compare Greater Than Single-Precision */
+      if (PPC_Rc (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+      ppc_record_vsr (regcache, tdep, PPC_XT (insn));
+      return 0;
+    }
+
+  switch (ext >> 1)
+    {
+    case 265:		/* VSX Scalar round Double-Precision to
+			   Single-Precision and Convert to
+			   Single-Precision format */
+    case 344:		/* VSX Scalar truncate Double-Precision to
+			   Integer and Convert to Signed Integer
+			   Doubleword format with Saturate */
+    case 88:		/* VSX Scalar truncate Double-Precision to
+			   Integer and Convert to Signed Integer Word
+			   Format with Saturate */
+    case 328:		/* VSX Scalar truncate Double-Precision integer
+			   and Convert to Unsigned Integer Doubleword
+			   Format with Saturate */
+    case 72:		/* VSX Scalar truncate Double-Precision to
+			   Integer and Convert to Unsigned Integer Word
+			   Format with Saturate */
+    case 329:		/* VSX Scalar Convert Single-Precision to
+			   Double-Precision format */
+    case 376:		/* VSX Scalar Convert Signed Integer
+			   Doubleword to floating-point format and
+			   Round to Double-Precision format */
+    case 312:		/* VSX Scalar Convert Signed Integer
+			   Doubleword to floating-point format and
+			   round to Single-Precision */
+    case 360:		/* VSX Scalar Convert Unsigned Integer
+			   Doubleword to floating-point format and
+			   Round to Double-Precision format */
+    case 296:		/* VSX Scalar Convert Unsigned Integer
+			   Doubleword to floating-point format and
+			   Round to Single-Precision */
+    case 73:		/* VSX Scalar Round to Double-Precision Integer
+			   Using Round to Nearest Away */
+    case 107:		/* VSX Scalar Round to Double-Precision Integer
+			   Exact using Current rounding mode */
+    case 121:		/* VSX Scalar Round to Double-Precision Integer
+			   Using Round toward -Infinity */
+    case 105:		/* VSX Scalar Round to Double-Precision Integer
+			   Using Round toward +Infinity */
+    case 89:		/* VSX Scalar Round to Double-Precision Integer
+			   Using Round toward Zero */
+    case 90:		/* VSX Scalar Reciprocal Estimate Double-Precision */
+    case 26:		/* VSX Scalar Reciprocal Estimate Single-Precision */
+    case 281:		/* VSX Scalar Round to Single-Precision */
+    case 74:		/* VSX Scalar Reciprocal Square Root Estimate
+			   Double-Precision */
+    case 10:		/* VSX Scalar Reciprocal Square Root Estimate
+			   Single-Precision */
+    case 75:		/* VSX Scalar Square Root Double-Precision */
+    case 11:		/* VSX Scalar Square Root Single-Precision */
+    case 393:		/* VSX Vector round Double-Precision to
+			   Single-Precision and Convert to
+			   Single-Precision format */
+    case 472:		/* VSX Vector truncate Double-Precision to
+			   Integer and Convert to Signed Integer
+			   Doubleword format with Saturate */
+    case 216:		/* VSX Vector truncate Double-Precision to
+			   Integer and Convert to Signed Integer Word
+			   Format with Saturate */
+    case 456:		/* VSX Vector truncate Double-Precision to
+			   Integer and Convert to Unsigned Integer
+			   Doubleword format with Saturate */
+    case 200:		/* VSX Vector truncate Double-Precision to
+			   Integer and Convert to Unsigned Integer Word
+			   Format with Saturate */
+    case 457:		/* VSX Vector Convert Single-Precision to
+			   Double-Precision format */
+    case 408:		/* VSX Vector truncate Single-Precision to
+			   Integer and Convert to Signed Integer
+			   Doubleword format with Saturate */
+    case 152:		/* VSX Vector truncate Single-Precision to
+			   Integer and Convert to Signed Integer Word
+			   Format with Saturate */
+    case 392:		/* VSX Vector truncate Single-Precision to
+			   Integer and Convert to Unsigned Integer
+			   Doubleword format with Saturate */
+    case 136:		/* VSX Vector truncate Single-Precision to
+			   Integer and Convert to Unsigned Integer Word
+			   Format with Saturate */
+    case 504:		/* VSX Vector Convert and round Signed Integer
+			   Doubleword to Double-Precision format */
+    case 440:		/* VSX Vector Convert and round Signed Integer
+			   Doubleword to Single-Precision format */
+    case 248:		/* VSX Vector Convert Signed Integer Word to
+			   Double-Precision format */
+    case 184:		/* VSX Vector Convert and round Signed Integer
+			   Word to Single-Precision format */
+    case 488:		/* VSX Vector Convert and round Unsigned
+			   Integer Doubleword to Double-Precision format */
+    case 424:		/* VSX Vector Convert and round Unsigned
+			   Integer Doubleword to Single-Precision format */
+    case 232:		/* VSX Vector Convert and round Unsigned
+			   Integer Word to Double-Precision format */
+    case 168:		/* VSX Vector Convert and round Unsigned
+			   Integer Word to Single-Precision format */
+    case 201:		/* VSX Vector Round to Double-Precision
+			   Integer using round to Nearest Away */
+    case 235:		/* VSX Vector Round to Double-Precision
+			   Integer Exact using Current rounding mode */
+    case 249:		/* VSX Vector Round to Double-Precision
+			   Integer using round toward -Infinity */
+    case 233:		/* VSX Vector Round to Double-Precision
+			   Integer using round toward +Infinity */
+    case 217:		/* VSX Vector Round to Double-Precision
+			   Integer using round toward Zero */
+    case 218:		/* VSX Vector Reciprocal Estimate Double-Precision */
+    case 154:		/* VSX Vector Reciprocal Estimate Single-Precision */
+    case 137:		/* VSX Vector Round to Single-Precision Integer
+			   Using Round to Nearest Away */
+    case 171:		/* VSX Vector Round to Single-Precision Integer
+			   Exact Using Current rounding mode */
+    case 185:		/* VSX Vector Round to Single-Precision Integer
+			   Using Round toward -Infinity */
+    case 169:		/* VSX Vector Round to Single-Precision Integer
+			   Using Round toward +Infinity */
+    case 153:		/* VSX Vector Round to Single-Precision Integer
+			   Using round toward Zero */
+    case 202:		/* VSX Vector Reciprocal Square Root Estimate
+			   Double-Precision */
+    case 138:		/* VSX Vector Reciprocal Square Root Estimate
+			   Single-Precision */
+    case 203:		/* VSX Vector Square Root Double-Precision */
+    case 139:		/* VSX Vector Square Root Single-Precision */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+    case 345:		/* VSX Scalar Absolute Value Double-Precision */
+    case 267:		/* VSX Scalar Convert Scalar Single-Precision to
+			   Vector Single-Precision format Non-signalling */
+    case 331:		/* VSX Scalar Convert Single-Precision to
+			   Double-Precision format Non-signalling */
+    case 361:		/* VSX Scalar Negative Absolute Value Double-Precision */
+    case 377:		/* VSX Scalar Negate Double-Precision */
+    case 473:		/* VSX Vector Absolute Value Double-Precision */
+    case 409:		/* VSX Vector Absolute Value Single-Precision */
+    case 489:		/* VSX Vector Negative Absolute Value Double-Precision */
+    case 425:		/* VSX Vector Negative Absolute Value Single-Precision */
+    case 505:		/* VSX Vector Negate Double-Precision */
+    case 441:		/* VSX Vector Negate Single-Precision */
+    case 164:		/* VSX Splat Word */
+      ppc_record_vsr (regcache, tdep, PPC_XT (insn));
+      return 0;
+
+    case 106:		/* VSX Scalar Test for software Square Root
+			   Double-Precision */
+    case 234:		/* VSX Vector Test for software Square Root
+			   Double-Precision */
+    case 170:		/* VSX Vector Test for software Square Root
+			   Single-Precision */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      return 0;
+    }
+
+  if (((ext >> 3) & 0x3) == 3)	/* VSX Select */
+    {
+      ppc_record_vsr (regcache, tdep, PPC_XT (insn));
+      return 0;
+    }
+
+  fprintf_unfiltered (gdb_stdlog, "Warning: Don't know how to record "
+		      "%08x at %08lx, 60-%d.\n", insn, addr, ext);
+  return -1;
+}
+
+/* Parse instructions of primary opcode-63.  */
+
+static int
+ppc_process_record_op63 (struct gdbarch *gdbarch, struct regcache *regcache,
+			   CORE_ADDR addr, uint32_t insn)
+{
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+  int ext = PPC_EXTOP (insn);
+  int tmp;
+
+  switch (ext & 0x1f)
+    {
+    case 18:		/* Floating Divide */
+    case 20:		/* Floating Subtract */
+    case 21:		/* Floating Add */
+    case 22:		/* Floating Square Root */
+    case 24:		/* Floating Reciprocal Estimate */
+    case 25:		/* Floating Multiply */
+    case 26:		/* Floating Reciprocal Square Root Estimate */
+    case 28:		/* Floating Multiply-Subtract */
+    case 29:		/* Floating Multiply-Add */
+    case 30:		/* Floating Negative Multiply-Subtract */
+    case 31:		/* Floating Negative Multiply-Add */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_fp0_regnum + PPC_FRT (insn));
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+      return 0;
+
+    case 23:		/* Floating Select */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_fp0_regnum + PPC_FRT (insn));
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+    }
+
+  switch (ext)
+    {
+    case 2:		/* DFP Add Quad */
+    case 3:		/* DFP Quantize Quad */
+    case 34:		/* DFP Multiply Quad */
+    case 35:		/* DFP Reround Quad */
+    case 67:		/* DFP Quantize Immediate Quad */
+    case 99:		/* DFP Round To FP Integer With Inexact Quad */
+    case 227:		/* DFP Round To FP Integer Without Inexact Quad */
+    case 258:		/* DFP Convert To DFP Extended Quad */
+    case 514:		/* DFP Subtract Quad */
+    case 546:		/* DFP Divide Quad */
+    case 770:		/* DFP Round To DFP Long Quad */
+    case 802:		/* DFP Convert From Fixed Quad */
+    case 834:		/* DFP Encode BCD To DPD Quad */
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      tmp = tdep->ppc_fp0_regnum + (PPC_FRT (insn) & ~1);
+      record_full_arch_list_add_reg (regcache, tmp);
+      record_full_arch_list_add_reg (regcache, tmp + 1);
+      record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+      return 0;
+
+    case 130:		/* DFP Compare Ordered Quad */
+    case 162:		/* DFP Test Exponent Quad */
+    case 194:		/* DFP Test Data Class Quad */
+    case 226:		/* DFP Test Data Group Quad */
+    case 642:		/* DFP Compare Unordered Quad */
+    case 674:		/* DFP Test Significance Quad */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+      return 0;
+
+    case 66:		/* DFP Shift Significand Left Immediate Quad */
+    case 98:		/* DFP Shift Significand Right Immediate Quad */
+    case 322:		/* DFP Decode DPD To BCD Quad */
+    case 866:		/* DFP Insert Biased Exponent Quad */
+      tmp = tdep->ppc_fp0_regnum + (PPC_FRT (insn) & ~1);
+      record_full_arch_list_add_reg (regcache, tmp);
+      record_full_arch_list_add_reg (regcache, tmp + 1);
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      return 0;
+
+    case 290:		/* DFP Convert To Fixed Quad */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_fp0_regnum + PPC_FRT (insn));
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+      break;
+
+    case 354:		/* DFP Extract Biased Exponent Quad */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_fp0_regnum + PPC_FRT (insn));
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      return 0;
+
+    case 12:		/* Floating Round to Single-Precision */
+    case 14:		/* Floating Convert To Integer Word */
+    case 15:		/* Floating Convert To Integer Word
+			   with round toward Zero */
+    case 142:		/* Floating Convert To Integer Word Unsigned */
+    case 143:		/* Floating Convert To Integer Word Unsigned
+			   with round toward Zero */
+    case 392:		/* Floating Round to Integer Nearest */
+    case 424:		/* Floating Round to Integer Toward Zero */
+    case 456:		/* Floating Round to Integer Plus */
+    case 488:		/* Floating Round to Integer Minus */
+    case 814:		/* Floating Convert To Integer Doubleword */
+    case 815:		/* Floating Convert To Integer Doubleword
+			   with round toward Zero */
+    case 846:		/* Floating Convert From Integer Doubleword */
+    case 942:		/* Floating Convert To Integer Doubleword Unsigned */
+    case 943:		/* Floating Convert To Integer Doubleword Unsigned
+			   with round toward Zero */
+    case 974:		/* Floating Convert From Integer Doubleword Unsigned */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_fp0_regnum + PPC_FRT (insn));
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+      return 0;
+
+    case 583:		/* Move From FPSCR */
+    case 8:		/* Floating Copy Sign */
+    case 40:		/* Floating Negate */
+    case 72:		/* Floating Move Register */
+    case 136:		/* Floating Negative Absolute Value */
+    case 264:		/* Floating Absolute Value */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_fp0_regnum + PPC_FRT (insn));
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      return 0;
+
+    case 838:		/* Floating Merge Odd Word */
+    case 966:		/* Floating Merge Even Word */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_fp0_regnum + PPC_FRT (insn));
+      return 0;
+
+    case 38:		/* Move To FPSCR Bit 1 */
+    case 70:		/* Move To FPSCR Bit 0 */
+    case 134:		/* Move To FPSCR Field Immediate */
+    case 711:		/* Move To FPSCR Fields */
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+      break;
+
+    case 0:		/* Floating Compare Unordered */
+    case 32:		/* Floating Compare Ordered */
+    case 64:		/* Move to Condition Register from FPSCR */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+      /* FALL-THROUGH */
+    case 128:		/* Floating Test for software Divide */
+    case 160:		/* Floating Test for software Square Root */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      return 0;
+
+    }
+
+  fprintf_unfiltered (gdb_stdlog, "Warning: Don't know how to record "
+		      "%08x at %08lx, 59-%d.\n", insn, addr, ext);
+  return -1;
+}
+
+/* Parse the current instruction and record the values of the registers and
+   memory that will be changed in current instruction to "record_arch_list".
+   Return -1 if something wrong.  */
+
+int
+ppc_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
+		      CORE_ADDR addr)
+{
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+  uint32_t insn;
+  int op6, tmp, i;
+
+  insn = read_memory_unsigned_integer (addr, 4, byte_order);
+  op6 = PPC_OP6 (insn);
+
+  switch (op6)
+    {
+    case 2:		/* Trap Doubleword Immediate */
+    case 3:		/* Trap Word Immediate */
+      /* Do nothing.  */
+      break;
+
+    case 4:
+      if (ppc_process_record_op4 (gdbarch, regcache, addr, insn) != 0)
+	return -1;
+      break;
+
+    case 17:		/* System call */
+      if (PPC_LEV (insn) != 0)
+	goto UNKNOWN_OP;
+
+      if (tdep->ppc_syscall_record != NULL)
+	{
+	  if (tdep->ppc_syscall_record (regcache) != 0)
+	    return -1;
+	}
+      else
+	{
+	  printf_unfiltered (_("no syscall record support\n"));
+	  return -1;
+	}
+      break;
+
+    case 7:		/* Multiply Low Immediate */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RT (insn));
+      break;
+
+    case 8:		/* Subtract From Immediate Carrying */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum);
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RT (insn));
+      break;
+
+    case 10:		/* Compare Logical Immediate  */
+    case 11:		/* Compare Immediate */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      break;
+
+    case 13:		/* Add Immediate Carrying and Record */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      /* FALL-THROUGH */
+    case 12:		/* Add Immediate Carrying */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum);
+      /* FALL-THROUGH */
+    case 14:		/* Add Immediate */
+    case 15:		/* Add Immediate Shifted */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RT (insn));
+      break;
+
+    case 16:		/* Branch Conditional */
+      if ((PPC_BO (insn) & 0x4) == 0)
+	record_full_arch_list_add_reg (regcache, tdep->ppc_ctr_regnum);
+      /* FALL-THROUGH */
+    case 18:		/* Branch */
+      if (PPC_LK (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_lr_regnum);
+      break;
+
+    case 19:
+      if (ppc_process_record_op19 (gdbarch, regcache, addr, insn) != 0)
+	return -1;
+      break;
+
+    case 20:		/* Rotate Left Word Immediate then Mask Insert */
+    case 21:		/* Rotate Left Word Immediate then AND with Mask */
+    case 23:		/* Rotate Left Word then AND with Mask */
+    case 30:		/* Rotate Left Doubleword Immediate then Clear Left */
+			/* Rotate Left Doubleword Immediate then Clear Right */
+			/* Rotate Left Doubleword Immediate then Clear */
+			/* Rotate Left Doubleword then Clear Left */
+			/* Rotate Left Doubleword then Clear Right */
+			/* Rotate Left Doubleword Immediate then Mask Insert */
+      if (PPC_RC (insn))
+	record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RA (insn));
+      break;
+
+    case 28:		/* AND Immediate */
+    case 29:		/* AND Immediate Shifted */
+      record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+      /* FALL-THROUGH */
+    case 24:		/* OR Immediate */
+    case 25:		/* OR Immediate Shifted */
+    case 26:		/* XOR Immediate */
+    case 27:		/* XOR Immediate Shifted */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RA (insn));
+      break;
+
+    case 31:
+      if (ppc_process_record_op31 (gdbarch, regcache, addr, insn) != 0)
+	return -1;
+      break;
+
+    case 33:		/* Load Word and Zero with Update */
+    case 35:		/* Load Byte and Zero with Update */
+    case 41:		/* Load Halfword and Zero with Update */
+    case 43:		/* Load Halfword Algebraic with Update */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RA (insn));
+      /* FALL-THROUGH */
+    case 32:		/* Load Word and Zero */
+    case 34:		/* Load Byte and Zero */
+    case 40:		/* Load Halfword and Zero */
+    case 42:		/* Load Halfword Algebraic */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RT (insn));
+      break;
+
+    case 46:		/* Load Multiple Word */
+      for (i = PPC_RT (insn); i < 32; i++)
+	record_full_arch_list_add_reg (regcache, tdep->ppc_gp0_regnum + i);
+      break;
+
+    case 56:		/* Load Quadword */
+      tmp = tdep->ppc_gp0_regnum + (PPC_RT (insn) & ~1);
+      record_full_arch_list_add_reg (regcache, tmp);
+      record_full_arch_list_add_reg (regcache, tmp + 1);
+      break;
+
+    case 49:		/* Load Floating-Point Single with Update */
+    case 51:		/* Load Floating-Point Double with Update */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RA (insn));
+      /* FALL-THROUGH */
+    case 48:		/* Load Floating-Point Single */
+    case 50:		/* Load Floating-Point Double */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_fp0_regnum + PPC_FRT (insn));
+      break;
+
+    case 47:		/* Store Multiple Word */
+	{
+	  ULONGEST addr = 0;
+
+	  if (PPC_RA (insn) != 0)
+	    regcache_raw_read_unsigned (regcache,
+					tdep->ppc_gp0_regnum + PPC_RA (insn),
+					&addr);
+
+	  addr += PPC_D (insn);
+	  record_full_arch_list_add_mem (addr, 4 * (32 - PPC_RS (insn)));
+	}
+      break;
+
+    case 37:		/* Store Word with Update */
+    case 39:		/* Store Byte with Update */
+    case 45:		/* Store Halfword with Update */
+    case 53:		/* Store Floating-Point Single with Update */
+    case 55:		/* Store Floating-Point Double with Update */
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RA (insn));
+      /* FALL-THROUGH */
+    case 36:		/* Store Word */
+    case 38:		/* Store Byte */
+    case 44:		/* Store Halfword */
+    case 52:		/* Store Floating-Point Single */
+    case 54:		/* Store Floating-Point Double */
+	{
+	  ULONGEST addr = 0;
+	  int size = -1;
+
+	  if (PPC_RA (insn) != 0)
+	    regcache_raw_read_unsigned (regcache,
+					tdep->ppc_gp0_regnum + PPC_RA (insn),
+					&addr);
+	  addr += PPC_D (insn);
+
+	  if (op6 == 36 || op6 == 37 || op6 == 52 || op6 == 53)
+	    size = 4;
+	  else if (op6 == 54 || op6 == 55)
+	    size = 8;
+	  else if (op6 == 44 || op6 == 45)
+	    size = 2;
+	  else if (op6 == 38 || op6 == 39)
+	    size = 1;
+	  else
+	    gdb_assert (0);
+
+	  record_full_arch_list_add_mem (addr, size);
+	}
+      break;
+
+    case 57:		/* Load Floating-Point Double Pair */
+      if (PPC_FIELD (insn, 30, 2) != 0)
+	goto UNKNOWN_OP;
+      tmp = tdep->ppc_fp0_regnum + (PPC_RT (insn) & ~1);
+      record_full_arch_list_add_reg (regcache, tmp);
+      record_full_arch_list_add_reg (regcache, tmp + 1);
+      break;
+
+    case 58:		/* Load Doubleword */
+			/* Load Doubleword with Update */
+			/* Load Word Algebraic */
+      if (PPC_FIELD (insn, 30, 2) > 2)
+	goto UNKNOWN_OP;
+
+      record_full_arch_list_add_reg (regcache,
+				     tdep->ppc_gp0_regnum + PPC_RT (insn));
+      if (PPC_BIT (insn, 31))
+	record_full_arch_list_add_reg (regcache,
+				       tdep->ppc_gp0_regnum + PPC_RA (insn));
+      break;
+
+    case 59:
+      if (ppc_process_record_op59 (gdbarch, regcache, addr, insn) != 0)
+	return -1;
+      break;
+
+    case 60:
+      if (ppc_process_record_op60 (gdbarch, regcache, addr, insn) != 0)
+	return -1;
+      break;
+
+    case 61:		/* Store Floating-Point Double Pair */
+    case 62:		/* Store Doubleword */
+			/* Store Doubleword with Update */
+			/* Store Quadword with Update */
+	{
+	  ULONGEST addr = 0;
+	  int size;
+	  int sub2 = PPC_FIELD (insn, 30, 2);
+
+	  if ((op6 == 61 && sub2 != 0) || (op6 == 62 && sub2 > 2))
+	    goto UNKNOWN_OP;
+
+	  if (PPC_RA (insn) != 0)
+	    regcache_raw_read_unsigned (regcache,
+					tdep->ppc_gp0_regnum + PPC_RA (insn),
+					&addr);
+
+	  size = ((op6 == 61) || sub2 == 2) ? 16 : 8;
+
+	  addr += PPC_DS (insn) << 2;
+	  record_full_arch_list_add_mem (addr, size);
+
+	  if (op6 == 62 && sub2 == 1)
+	    record_full_arch_list_add_reg (regcache,
+					   tdep->ppc_gp0_regnum +
+					   PPC_RA (insn));
+
+	  break;
+	}
+
+    case 63:
+      if (ppc_process_record_op63 (gdbarch, regcache, addr, insn) != 0)
+	return -1;
+      break;
+
+    default:
+UNKNOWN_OP:
+      fprintf_unfiltered (gdb_stdlog, "Warning: Don't know how to record "
+			  "%08x at %08lx, %d.\n", insn, addr, op6);
+      return -1;
+    }
+
+  if (record_full_arch_list_add_reg (regcache, PPC_PC_REGNUM))
+    return -1;
+  if (record_full_arch_list_add_end ())
+    return -1;
+  return 0;
+}
+
 /* Initialize the current architecture based on INFO.  If possible, re-use an
    architecture from ARCHES, which is a list of architectures already created
    during this debugging session.
@@ -3608,8 +5375,8 @@ rs6000_gdbarch_init (struct gdbarch_info
   else
     {
       if (info.bfd_arch_info != NULL && info.bfd_arch_info->bits_per_word != 0)
-	wordsize = info.bfd_arch_info->bits_per_word /
-	  info.bfd_arch_info->bits_per_byte;
+	wordsize = (info.bfd_arch_info->bits_per_word
+		    / info.bfd_arch_info->bits_per_byte);
       else
 	wordsize = 4;
     }
@@ -4154,6 +5921,7 @@ rs6000_gdbarch_init (struct gdbarch_info
     case GDB_OSABI_NETBSD_ELF:
     case GDB_OSABI_UNKNOWN:
       set_gdbarch_unwind_pc (gdbarch, rs6000_unwind_pc);
+      frame_unwind_append_unwinder (gdbarch, &rs6000_epilogue_frame_unwind);
       frame_unwind_append_unwinder (gdbarch, &rs6000_frame_unwind);
       set_gdbarch_dummy_id (gdbarch, rs6000_dummy_id);
       frame_base_append_sniffer (gdbarch, rs6000_frame_base_sniffer);
@@ -4162,6 +5930,7 @@ rs6000_gdbarch_init (struct gdbarch_info
       set_gdbarch_believe_pcc_promotion (gdbarch, 1);
 
       set_gdbarch_unwind_pc (gdbarch, rs6000_unwind_pc);
+      frame_unwind_append_unwinder (gdbarch, &rs6000_epilogue_frame_unwind);
       frame_unwind_append_unwinder (gdbarch, &rs6000_frame_unwind);
       set_gdbarch_dummy_id (gdbarch, rs6000_dummy_id);
       frame_base_append_sniffer (gdbarch, rs6000_frame_base_sniffer);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/ChangeLog ./gdb/testsuite/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/ChangeLog	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/testsuite/ChangeLog	2015-01-20 01:48:37.000000000 +0000
@@ -1,3 +1,47 @@
+2015-01-17  Wei-cheng Wang  <cole945@gmail.com>
+
+	* lib/gdb.exp (supports_process_record): Return true for
+	powerpc*-*-linux*.
+	(supports_reverse): Likewise.
+
+2015-01-15  Don Breazeal  <donb@codesourcery.com>
+
+	* gdb.base/attach-pie-noexec.exp: Use can_spawn_for_attach
+	instead of checking whether the target board is remote and
+	use spawn_wait_for_attach instead of exec/sleep.
+	* gdb.base/attach-twice.exp: Likewise.
+
+2015-01-15  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.ada/var_arr_attrs: New testcase.
+
+2015-01-14  Pedro Alves  <palves@redhat.com>
+	    Joel Brobecker  <brobecker@adacore.com>
+
+	PR gdb/17525
+	* gdb.base/bp-cmds-execution-x-script.c: New file.
+	* gdb.base/bp-cmds-execution-x-script.exp: New file.
+	* gdb.base/bp-cmds-execution-x-script.gdb: New file.
+
+2015-01-14  Pedro Alves  <palves@redhat.com>
+
+	PR cli/17828
+	* gdb.base/batch-preserve-term-settings.c: New file.
+	* gdb.base/batch-preserve-term-settings.exp: New file.
+
+2015-01-13  Doug Evans  <dje@google.com>
+
+	* gdb.python/py-objfile.exp: Test gdb.lookup_objfile on symlinked
+	binary.
+
+2015-01-13  Joel Brobecker  <brobecker@adacore.com>
+
+	* Makefile.in (clean mostlyclean): Do not delete *.py.
+
+2015-01-13  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.python/py-lookup-type.exp: New file.
+
 2015-01-12  Pedro Alves  <palves@redhat.com>
 
 	* gdb.python/py-prompt.exp: When the board can't spawn for attach,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/dg-extract-results.py ./gdb/testsuite/dg-extract-results.py
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/dg-extract-results.py	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/dg-extract-results.py	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,585 @@
+#!/usr/bin/python
+#
+# Copyright (C) 2014-2015 Free Software Foundation, Inc.
+#
+# This script is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+
+import sys
+import getopt
+import re
+import io
+from datetime import datetime
+from operator import attrgetter
+
+# True if unrecognised lines should cause a fatal error.  Might want to turn
+# this on by default later.
+strict = False
+
+# True if the order of .log segments should match the .sum file, false if
+# they should keep the original order.
+sort_logs = True
+
+# A version of open() that is safe against whatever binary output
+# might be added to the log.
+def safe_open (filename):
+    if sys.version_info >= (3, 0):
+        return open (filename, 'r', errors = 'surrogateescape')
+    return open (filename, 'r')
+
+# Force stdout to handle escape sequences from a safe_open file.
+if sys.version_info >= (3, 0):
+    sys.stdout = io.TextIOWrapper (sys.stdout.buffer,
+                                   errors = 'surrogateescape')
+
+class Named:
+    def __init__ (self, name):
+        self.name = name
+
+class ToolRun (Named):
+    def __init__ (self, name):
+        Named.__init__ (self, name)
+        # The variations run for this tool, mapped by --target_board name.
+        self.variations = dict()
+
+    # Return the VariationRun for variation NAME.
+    def get_variation (self, name):
+        if name not in self.variations:
+            self.variations[name] = VariationRun (name)
+        return self.variations[name]
+
+class VariationRun (Named):
+    def __init__ (self, name):
+        Named.__init__ (self, name)
+        # A segment of text before the harness runs start, describing which
+        # baseboard files were loaded for the target.
+        self.header = None
+        # The harnesses run for this variation, mapped by filename.
+        self.harnesses = dict()
+        # A list giving the number of times each type of result has
+        # been seen.
+        self.counts = []
+
+    # Return the HarnessRun for harness NAME.
+    def get_harness (self, name):
+        if name not in self.harnesses:
+            self.harnesses[name] = HarnessRun (name)
+        return self.harnesses[name]
+
+class HarnessRun (Named):
+    def __init__ (self, name):
+        Named.__init__ (self, name)
+        # Segments of text that make up the harness run, mapped by a test-based
+        # key that can be used to order them.
+        self.segments = dict()
+        # Segments of text that make up the harness run but which have
+        # no recognized test results.  These are typically harnesses that
+        # are completely skipped for the target.
+        self.empty = []
+        # A list of results.  Each entry is a pair in which the first element
+        # is a unique sorting key and in which the second is the full
+        # PASS/FAIL line.
+        self.results = []
+
+    # Add a segment of text to the harness run.  If the segment includes
+    # test results, KEY is an example of one of them, and can be used to
+    # combine the individual segments in order.  If the segment has no
+    # test results (e.g. because the harness doesn't do anything for the
+    # current configuration) then KEY is None instead.  In that case
+    # just collect the segments in the order that we see them.
+    def add_segment (self, key, segment):
+        if key:
+            assert key not in self.segments
+            self.segments[key] = segment
+        else:
+            self.empty.append (segment)
+
+class Segment:
+    def __init__ (self, filename, start):
+        self.filename = filename
+        self.start = start
+        self.lines = 0
+
+class Prog:
+    def __init__ (self):
+        # The variations specified on the command line.
+        self.variations = []
+        # The variations seen in the input files.
+        self.known_variations = set()
+        # The tools specified on the command line.
+        self.tools = []
+        # Whether to create .sum rather than .log output.
+        self.do_sum = True
+        # Regexps used while parsing.
+        self.test_run_re = re.compile (r'^Test Run By (\S+) on (.*)$')
+        self.tool_re = re.compile (r'^\t\t=== (.*) tests ===$')
+        self.result_re = re.compile (r'^(PASS|XPASS|FAIL|XFAIL|UNRESOLVED'
+                                     r'|WARNING|ERROR|UNSUPPORTED|UNTESTED'
+                                     r'|KFAIL):\s*(.+)')
+        self.completed_re = re.compile (r'.* completed at (.*)')
+        # Pieces of text to write at the head of the output.
+        # start_line is a pair in which the first element is a datetime
+        # and in which the second is the associated 'Test Run By' line.
+        self.start_line = None
+        self.native_line = ''
+        self.target_line = ''
+        self.host_line = ''
+        self.acats_premable = ''
+        # Pieces of text to write at the end of the output.
+        # end_line is like start_line but for the 'runtest completed' line.
+        self.acats_failures = []
+        self.version_output = ''
+        self.end_line = None
+        # Known summary types.
+        self.count_names = [
+            '# of expected passes\t\t',
+            '# of unexpected failures\t',
+            '# of unexpected successes\t',
+            '# of expected failures\t\t',
+            '# of unknown successes\t\t',
+            '# of known failures\t\t',
+            '# of untested testcases\t\t',
+            '# of unresolved testcases\t',
+            '# of unsupported tests\t\t'
+        ]
+        self.runs = dict()
+
+    def usage (self):
+        name = sys.argv[0]
+        sys.stderr.write ('Usage: ' + name
+                          + ''' [-t tool] [-l variant-list] [-L] log-or-sum-file ...
+
+    tool           The tool (e.g. g++, libffi) for which to create a
+                   new test summary file.  If not specified then output
+                   is created for all tools.
+    variant-list   One or more test variant names.  If the list is
+                   not specified then one is constructed from all
+                   variants in the files for <tool>.
+    sum-file       A test summary file with the format of those
+                   created by runtest from DejaGnu.
+    If -L is used, merge *.log files instead of *.sum.  In this
+    mode the exact order of lines may not be preserved, just different
+    Running *.exp chunks should be in correct order.
+''')
+        sys.exit (1)
+
+    def fatal (self, what, string):
+        if not what:
+            what = sys.argv[0]
+        sys.stderr.write (what + ': ' + string + '\n')
+        sys.exit (1)
+
+    # Parse the command-line arguments.
+    def parse_cmdline (self):
+        try:
+            (options, self.files) = getopt.getopt (sys.argv[1:], 'l:t:L')
+            if len (self.files) == 0:
+                self.usage()
+            for (option, value) in options:
+                if option == '-l':
+                    self.variations.append (value)
+                elif option == '-t':
+                    self.tools.append (value)
+                else:
+                    self.do_sum = False
+        except getopt.GetoptError as e:
+            self.fatal (None, e.msg)
+
+    # Try to parse time string TIME, returning an arbitrary time on failure.
+    # Getting this right is just a nice-to-have so failures should be silent.
+    def parse_time (self, time):
+        try:
+            return datetime.strptime (time, '%c')
+        except ValueError:
+            return datetime.now()
+
+    # Parse an integer and abort on failure.
+    def parse_int (self, filename, value):
+        try:
+            return int (value)
+        except ValueError:
+            self.fatal (filename, 'expected an integer, got: ' + value)
+
+    # Return a list that represents no test results.
+    def zero_counts (self):
+        return [0 for x in self.count_names]
+
+    # Return the ToolRun for tool NAME.
+    def get_tool (self, name):
+        if name not in self.runs:
+            self.runs[name] = ToolRun (name)
+        return self.runs[name]
+
+    # Add the result counts in list FROMC to TOC.
+    def accumulate_counts (self, toc, fromc):
+        for i in range (len (self.count_names)):
+            toc[i] += fromc[i]
+
+    # Parse the list of variations after 'Schedule of variations:'.
+    # Return the number seen.
+    def parse_variations (self, filename, file):
+        num_variations = 0
+        while True:
+            line = file.readline()
+            if line == '':
+                self.fatal (filename, 'could not parse variation list')
+            if line == '\n':
+                break
+            self.known_variations.add (line.strip())
+            num_variations += 1
+        return num_variations
+
+    # Parse from the first line after 'Running target ...' to the end
+    # of the run's summary.
+    def parse_run (self, filename, file, tool, variation, num_variations):
+        header = None
+        harness = None
+        segment = None
+        final_using = 0
+
+        # If this is the first run for this variation, add any text before
+        # the first harness to the header.
+        if not variation.header:
+            segment = Segment (filename, file.tell())
+            variation.header = segment
+
+        # Parse up until the first line of the summary.
+        if num_variations == 1:
+            end = '\t\t=== ' + tool.name + ' Summary ===\n'
+        else:
+            end = ('\t\t=== ' + tool.name + ' Summary for '
+                   + variation.name + ' ===\n')
+        while True:
+            line = file.readline()
+            if line == '':
+                self.fatal (filename, 'no recognised summary line')
+            if line == end:
+                break
+
+            # Look for the start of a new harness.
+            if line.startswith ('Running ') and line.endswith (' ...\n'):
+                # Close off the current harness segment, if any.
+                if harness:
+                    segment.lines -= final_using
+                    harness.add_segment (first_key, segment)
+                name = line[len ('Running '):-len(' ...\n')]
+                harness = variation.get_harness (name)
+                segment = Segment (filename, file.tell())
+                first_key = None
+                final_using = 0
+                continue
+
+            # Record test results.  Associate the first test result with
+            # the harness segment, so that if a run for a particular harness
+            # has been split up, we can reassemble the individual segments
+            # in a sensible order.
+            #
+            # dejagnu sometimes issues warnings about the testing environment
+            # before running any tests.  Treat them as part of the header
+            # rather than as a test result.
+            match = self.result_re.match (line)
+            if match and (harness or not line.startswith ('WARNING:')):
+                if not harness:
+                    self.fatal (filename, 'saw test result before harness name')
+                name = match.group (2)
+                # Ugly hack to get the right order for gfortran.
+                if name.startswith ('gfortran.dg/g77/'):
+                    name = 'h' + name
+                key = (name, len (harness.results))
+                harness.results.append ((key, line))
+                if not first_key and sort_logs:
+                    first_key = key
+
+            # 'Using ...' lines are only interesting in a header.  Splitting
+            # the test up into parallel runs leads to more 'Using ...' lines
+            # than there would be in a single log.
+            if line.startswith ('Using '):
+                final_using += 1
+            else:
+                final_using = 0
+
+            # Add other text to the current segment, if any.
+            if segment:
+                segment.lines += 1
+
+        # Close off the final harness segment, if any.
+        if harness:
+            segment.lines -= final_using
+            harness.add_segment (first_key, segment)
+
+        # Parse the rest of the summary (the '# of ' lines).
+        if len (variation.counts) == 0:
+            variation.counts = self.zero_counts()
+        while True:
+            before = file.tell()
+            line = file.readline()
+            if line == '':
+                break
+            if line == '\n':
+                continue
+            if not line.startswith ('# '):
+                file.seek (before)
+                break
+            found = False
+            for i in range (len (self.count_names)):
+                if line.startswith (self.count_names[i]):
+                    count = line[len (self.count_names[i]):-1].strip()
+                    variation.counts[i] += self.parse_int (filename, count)
+                    found = True
+                    break
+            if not found:
+                self.fatal (filename, 'unknown test result: ' + line[:-1])
+
+    # Parse an acats run, which uses a different format from dejagnu.
+    # We have just skipped over '=== acats configuration ==='.
+    def parse_acats_run (self, filename, file):
+        # Parse the preamble, which describes the configuration and logs
+        # the creation of support files.
+        record = (self.acats_premable == '')
+        if record:
+            self.acats_premable = '\t\t=== acats configuration ===\n'
+        while True:
+            line = file.readline()
+            if line == '':
+                self.fatal (filename, 'could not parse acats preamble')
+            if line == '\t\t=== acats tests ===\n':
+                break
+            if record:
+                self.acats_premable += line
+
+        # Parse the test results themselves, using a dummy variation name.
+        tool = self.get_tool ('acats')
+        variation = tool.get_variation ('none')
+        self.parse_run (filename, file, tool, variation, 1)
+
+        # Parse the failure list.
+        while True:
+            before = file.tell()
+            line = file.readline()
+            if line.startswith ('*** FAILURES: '):
+                self.acats_failures.append (line[len ('*** FAILURES: '):-1])
+                continue
+            file.seek (before)
+            break
+
+    # Parse the final summary at the end of a log in order to capture
+    # the version output that follows it.
+    def parse_final_summary (self, filename, file):
+        record = (self.version_output == '')
+        while True:
+            line = file.readline()
+            if line == '':
+                break
+            if line.startswith ('# of '):
+                continue
+            if record:
+                self.version_output += line
+            if line == '\n':
+                break
+
+    # Parse a .log or .sum file.
+    def parse_file (self, filename, file):
+        tool = None
+        target = None
+        num_variations = 1
+        while True:
+            line = file.readline()
+            if line == '':
+                return
+
+            # Parse the list of variations, which comes before the test
+            # runs themselves.
+            if line.startswith ('Schedule of variations:'):
+                num_variations = self.parse_variations (filename, file)
+                continue
+
+            # Parse a testsuite run for one tool/variation combination.
+            if line.startswith ('Running target '):
+                name = line[len ('Running target '):-1]
+                if not tool:
+                    self.fatal (filename, 'could not parse tool name')
+                if name not in self.known_variations:
+                    self.fatal (filename, 'unknown target: ' + name)
+                self.parse_run (filename, file, tool,
+                                tool.get_variation (name),
+                                num_variations)
+                # If there is only one variation then there is no separate
+                # summary for it.  Record any following version output.
+                if num_variations == 1:
+                    self.parse_final_summary (filename, file)
+                continue
+
+            # Parse the start line.  In the case where several files are being
+            # parsed, pick the one with the earliest time.
+            match = self.test_run_re.match (line)
+            if match:
+                time = self.parse_time (match.group (2))
+                if not self.start_line or self.start_line[0] > time:
+                    self.start_line = (time, line)
+                continue
+
+            # Parse the form used for native testing.
+            if line.startswith ('Native configuration is '):
+                self.native_line = line
+                continue
+
+            # Parse the target triplet.
+            if line.startswith ('Target is '):
+                self.target_line = line
+                continue
+
+            # Parse the host triplet.
+            if line.startswith ('Host   is '):
+                self.host_line = line
+                continue
+
+            # Parse the acats premable.
+            if line == '\t\t=== acats configuration ===\n':
+                self.parse_acats_run (filename, file)
+                continue
+
+            # Parse the tool name.
+            match = self.tool_re.match (line)
+            if match:
+                tool = self.get_tool (match.group (1))
+                continue
+
+            # Skip over the final summary (which we instead create from
+            # individual runs) and parse the version output.
+            if tool and line == '\t\t=== ' + tool.name + ' Summary ===\n':
+                if file.readline() != '\n':
+                    self.fatal (filename, 'expected blank line after summary')
+                self.parse_final_summary (filename, file)
+                continue
+
+            # Parse the completion line.  In the case where several files
+            # are being parsed, pick the one with the latest time.
+            match = self.completed_re.match (line)
+            if match:
+                time = self.parse_time (match.group (1))
+                if not self.end_line or self.end_line[0] < time:
+                    self.end_line = (time, line)
+                continue
+
+            # Sanity check to make sure that important text doesn't get
+            # dropped accidentally.
+            if strict and line.strip() != '':
+                self.fatal (filename, 'unrecognised line: ' + line[:-1])
+
+    # Output a segment of text.
+    def output_segment (self, segment):
+        with safe_open (segment.filename) as file:
+            file.seek (segment.start)
+            for i in range (segment.lines):
+                sys.stdout.write (file.readline())
+
+    # Output a summary giving the number of times each type of result has
+    # been seen.
+    def output_summary (self, tool, counts):
+        for i in range (len (self.count_names)):
+            name = self.count_names[i]
+            # dejagnu only prints result types that were seen at least once,
+            # but acats always prints a number of unexpected failures.
+            if (counts[i] > 0
+                or (tool.name == 'acats'
+                    and name.startswith ('# of unexpected failures'))):
+                sys.stdout.write ('%s%d\n' % (name, counts[i]))
+
+    # Output unified .log or .sum information for a particular variation,
+    # with a summary at the end.
+    def output_variation (self, tool, variation):
+        self.output_segment (variation.header)
+        for harness in sorted (variation.harnesses.values(),
+                               key = attrgetter ('name')):
+            sys.stdout.write ('Running ' + harness.name + ' ...\n')
+            if self.do_sum:
+                harness.results.sort()
+                for (key, line) in harness.results:
+                    sys.stdout.write (line)
+            else:
+                # Rearrange the log segments into test order (but without
+                # rearranging text within those segments).
+                for key in sorted (harness.segments.keys()):
+                    self.output_segment (harness.segments[key])
+                for segment in harness.empty:
+                    self.output_segment (segment)
+        if len (self.variations) > 1:
+            sys.stdout.write ('\t\t=== ' + tool.name + ' Summary for '
+                              + variation.name + ' ===\n\n')
+            self.output_summary (tool, variation.counts)
+
+    # Output unified .log or .sum information for a particular tool,
+    # with a summary at the end.
+    def output_tool (self, tool):
+        counts = self.zero_counts()
+        if tool.name == 'acats':
+            # acats doesn't use variations, so just output everything.
+            # It also has a different approach to whitespace.
+            sys.stdout.write ('\t\t=== ' + tool.name + ' tests ===\n')
+            for variation in tool.variations.values():
+                self.output_variation (tool, variation)
+                self.accumulate_counts (counts, variation.counts)
+            sys.stdout.write ('\t\t=== ' + tool.name + ' Summary ===\n')
+        else:
+            # Output the results in the usual dejagnu runtest format.
+            sys.stdout.write ('\n\t\t=== ' + tool.name + ' tests ===\n\n'
+                              'Schedule of variations:\n')
+            for name in self.variations:
+                if name in tool.variations:
+                    sys.stdout.write ('    ' + name + '\n')
+            sys.stdout.write ('\n')
+            for name in self.variations:
+                if name in tool.variations:
+                    variation = tool.variations[name]
+                    sys.stdout.write ('Running target '
+                                      + variation.name + '\n')
+                    self.output_variation (tool, variation)
+                    self.accumulate_counts (counts, variation.counts)
+            sys.stdout.write ('\n\t\t=== ' + tool.name + ' Summary ===\n\n')
+        self.output_summary (tool, counts)
+
+    def main (self):
+        self.parse_cmdline()
+        try:
+            # Parse the input files.
+            for filename in self.files:
+                with safe_open (filename) as file:
+                    self.parse_file (filename, file)
+
+            # Decide what to output.
+            if len (self.variations) == 0:
+                self.variations = sorted (self.known_variations)
+            else:
+                for name in self.variations:
+                    if name not in self.known_variations:
+                        self.fatal (None, 'no results for ' + name)
+            if len (self.tools) == 0:
+                self.tools = sorted (self.runs.keys())
+
+            # Output the header.
+            if self.start_line:
+                sys.stdout.write (self.start_line[1])
+            sys.stdout.write (self.native_line)
+            sys.stdout.write (self.target_line)
+            sys.stdout.write (self.host_line)
+            sys.stdout.write (self.acats_premable)
+
+            # Output the main body.
+            for name in self.tools:
+                if name not in self.runs:
+                    self.fatal (None, 'no results for ' + name)
+                self.output_tool (self.runs[name])
+
+            # Output the footer.
+            if len (self.acats_failures) > 0:
+                sys.stdout.write ('*** FAILURES: '
+                                  + ' '.join (self.acats_failures) + '\n')
+            sys.stdout.write (self.version_output)
+            if self.end_line:
+                sys.stdout.write (self.end_line[1])
+        except IOError as e:
+            self.fatal (e.filename, e.strerror)
+
+Prog().main()
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.ada/var_arr_attrs/foo_o115_002.adb ./gdb/testsuite/gdb.ada/var_arr_attrs/foo_o115_002.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.ada/var_arr_attrs/foo_o115_002.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/var_arr_attrs/foo_o115_002.adb	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,25 @@
+--  Copyright 2015 Free Software Foundation, Inc.
+--
+--  This program is free software; you can redistribute it and/or modify
+--  it under the terms of the GNU General Public License as published by
+--  the Free Software Foundation; either version 3 of the License, or
+--  (at your option) any later version.
+--
+--  This program is distributed in the hope that it will be useful,
+--  but WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--  GNU General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License
+--  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+with Pck; use Pck;
+
+procedure Foo_O115_002 is
+   My_Object : Object := (N => 3, Data => (3, 5, 8));
+   My_Small_Object : Small_Object := (N => 3, Data => (3, 5, 8));
+begin
+   Do_Nothing (My_Object'Address);             -- STOP
+   Do_Nothing (My_Small_Object'Address);
+end Foo_O115_002;
+
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb ./gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,21 @@
+--  Copyright 2015 Free Software Foundation, Inc.
+--
+--  This program is free software; you can redistribute it and/or modify
+--  it under the terms of the GNU General Public License as published by
+--  the Free Software Foundation; either version 3 of the License, or
+--  (at your option) any later version.
+--
+--  This program is distributed in the hope that it will be useful,
+--  but WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--  GNU General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License
+--  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+package body Pck is
+   procedure Do_Nothing (A : System.Address) is
+   begin
+      null;
+   end Do_Nothing;
+end Pck;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads ./gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,36 @@
+--  Copyright 2015 Free Software Foundation, Inc.
+--
+--  This program is free software; you can redistribute it and/or modify
+--  it under the terms of the GNU General Public License as published by
+--  the Free Software Foundation; either version 3 of the License, or
+--  (at your option) any later version.
+--
+--  This program is distributed in the hope that it will be useful,
+--  but WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--  GNU General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License
+--  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+with System;
+package Pck is
+
+   type Table is array (Positive range <>) of Integer;
+
+   type Object (N : Integer) is record
+       Data : Table (1 .. N);
+   end record;
+
+   type Small is new Integer range 0 .. 255;
+   for Small'Size use 8;
+
+   type Small_Table is array (Positive range <>) of Small;
+   pragma Pack (Small_Table);
+
+   type Small_Object (N : Integer) is record
+       Data : Table (1 .. N);
+   end record;
+
+   procedure Do_Nothing (A : System.Address);
+end Pck;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.ada/var_arr_attrs.exp ./gdb/testsuite/gdb.ada/var_arr_attrs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.ada/var_arr_attrs.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/var_arr_attrs.exp	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,39 @@
+# Copyright 2015 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+load_lib "ada.exp"
+
+standard_ada_testfile foo_o115_002
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+set bp_location [gdb_get_line_number "STOP" ${testdir}/foo_o115_002.adb]
+runto "foo_o115_002.adb:$bp_location"
+
+gdb_test "print my_object.data'first" " = 1"
+
+gdb_test "print my_object.data'last" " = 3"
+
+gdb_test "print my_object.data'length" " = 3"
+
+gdb_test "print my_small_object.data'first" " = 1"
+
+gdb_test "print my_small_object.data'last" " = 3"
+
+gdb_test "print my_small_object.data'length" " = 3"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.base/attach-pie-noexec.exp ./gdb/testsuite/gdb.base/attach-pie-noexec.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.base/attach-pie-noexec.exp	2015-01-13 01:48:40.000000000 +0000
+++ ./gdb/testsuite/gdb.base/attach-pie-noexec.exp	2015-01-20 01:48:37.000000000 +0000
@@ -13,8 +13,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Manipulation with PID on target is not supported.
-if [is_remote target] then {
+if {![can_spawn_for_attach]} {
     return 0
 }
 
@@ -53,8 +52,10 @@ if {$arch == ""} {
     return 0
 }
 
-set testpid [eval exec $binfile &]
-exec sleep 2
+# Start the program running and then wait for a bit, to be sure
+# that it can be attached to.
+
+set testpid [spawn_wait_for_attach $binfile]
 
 gdb_start
 file delete -- $binfile
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.base/attach-twice.exp ./gdb/testsuite/gdb.base/attach-twice.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.base/attach-twice.exp	2015-01-13 01:48:40.000000000 +0000
+++ ./gdb/testsuite/gdb.base/attach-twice.exp	2015-01-20 01:48:37.000000000 +0000
@@ -13,8 +13,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Manipulation with PID on target is not supported.
-if [is_remote target] then {
+if {![can_spawn_for_attach]} {
     return 0
 }
 
@@ -25,8 +24,10 @@ if { [prepare_for_testing ${testfile}.ex
     return -1
 }
 
-set testpid [eval exec $binfile &]
-exec sleep 2
+# Start the program running and then wait for a bit, to be sure
+# that it can be attached to.
+
+set testpid [spawn_wait_for_attach $binfile]
 
 set parentpid 0
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.base/batch-preserve-term-settings.c ./gdb/testsuite/gdb.base/batch-preserve-term-settings.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.base/batch-preserve-term-settings.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/batch-preserve-term-settings.c	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,22 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2015 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+int
+main (void)
+{
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.base/batch-preserve-term-settings.exp ./gdb/testsuite/gdb.base/batch-preserve-term-settings.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.base/batch-preserve-term-settings.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/batch-preserve-term-settings.exp	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,186 @@
+# Copyright (C) 2015 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Check that "gdb -batch -ex run" does not leave the terminal in the
+# wrong state.
+
+standard_testfile
+
+if {[build_executable "failed to prepare" $testfile $srcfile debug] == -1} {
+    return -1
+}
+
+set file_arg $binfile
+if [is_remote host] {
+  set file_arg [remote_download host $file_arg]
+}
+
+global GDBFLAGS
+set saved_gdbflags $GDBFLAGS
+
+# The shell's prompt.
+set shell_prompt "$ "
+set shell_prompt_re [string_to_regexp $shell_prompt]
+
+# Spawn shell.  Returns true on success, false otherwise.
+
+proc spawn_shell {} {
+    global shell_prompt_re
+
+    set res [remote_spawn host "/bin/sh"]
+    if { $res < 0 || $res == "" } {
+	unsupported "Spawning shell failed."
+	return 0
+    }
+
+    set gotit 0
+    set test "spawn shell"
+    gdb_expect {
+	-re "$shell_prompt_re$" {
+	    pass $test
+	    set gotit 1
+	}
+	timeout {
+	    fail "$test (timeout)"
+	}
+	eof {
+	    fail "$test (eof)"
+	}
+    }
+
+    return $gotit
+}
+
+# Exit the shell.
+
+proc exit_shell {} {
+    global shell_prompt_re
+
+    set test "exit shell"
+    send_gdb "exit\n"
+    gdb_expect {
+	timeout {
+	    fail "$test (timeout)"
+	    return 0
+	}
+	eof {
+	    pass "$test"
+	}
+    }
+    if ![is_remote host] {
+	remote_close host
+    }
+}
+
+# Run "stty" and store the output in $result.  Returns true on
+# success, false otherwise.
+
+proc run_stty {message result} {
+    global shell_prompt_re
+
+    upvar $result output
+
+    send_gdb "stty || echo \"not found\"\n"
+    set gotit 0
+    gdb_expect {
+	-re "not found.*not found.*$shell_prompt_re$" {
+	    pass "$message (not found)"
+	}
+	-re "(.*)$shell_prompt_re$" {
+	    set output $expect_out(1,string)
+	    set gotit 1
+	    pass $message
+	}
+	timeout {
+	    fail "$message (timeout)"
+	}
+	eof {
+	    fail "$message (eof)"
+	}
+    }
+    return $gotit
+}
+
+# Check that "gdb -batch -ex run" does not leave the terminal in the
+# wrong state.
+
+proc test_terminal_settings_preserved {} {
+    global file_arg
+    global GDB INTERNAL_GDBFLAGS GDBFLAGS
+    global gdb_prompt pagination_prompt
+    global saved_gdbflags
+    global shell_prompt_re
+
+    if ![spawn_shell] {
+	return
+    }
+
+    set stty_supported [run_stty "stty before" stty_before]
+
+    set test "gdb -batch -ex run"
+    set GDBFLAGS $saved_gdbflags
+    append GDBFLAGS " -batch"
+    append GDBFLAGS " -ex \"set height unlimited\""
+    append GDBFLAGS " -ex \"start\""
+    append GDBFLAGS " --args \"$file_arg\""
+    send_gdb "$GDB $INTERNAL_GDBFLAGS $GDBFLAGS [host_info gdb_opts]\n"
+    gdb_expect {
+	-re "Don't know how to run.*$shell_prompt_re$" {
+	    unsupported $test
+	}
+	-re "$gdb_prompt $" {
+	    # -batch implies no GDB prompt.
+	    fail $test
+	}
+	-re "Temporary breakpoint .*$shell_prompt_re$" {
+	    pass $test
+	}
+	timeout {
+	    fail "$test (timeout)"
+	}
+	eof {
+	    fail "$test (eof)"
+	}
+    }
+
+    set test "echo test_echo"
+    send_gdb "echo test_echo\n"
+    gdb_expect {
+	-re "^echo test_echo\r\ntest_echo\r\n.*$shell_prompt_re$" {
+	    pass $test
+	}
+	timeout {
+	    fail "$test (timeout)"
+	}
+	eof {
+	    fail "$test (eof)"
+	}
+    }
+
+    set test "terminal settings preserved"
+    if $stty_supported {
+	run_stty "stty after" stty_after
+
+	gdb_assert [string equal $stty_before $stty_after] $test
+    } else {
+	unsupported "$test (no stty)"
+    }
+
+    exit_shell
+}
+
+test_terminal_settings_preserved
+
+set GDBFLAGS $saved_gdbflags
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c ./gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,35 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2015 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+int
+increment (int i)
+{
+  return i + 1;
+}
+
+#define N_INCR 20
+
+int
+main (void)
+{
+  int val = 1;
+  int j;
+
+  for (j = 0; j < N_INCR; j++)
+    val = increment (val);
+  return val == N_INCR;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp ./gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,75 @@
+# Copyright 2015 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+# Test that GDB isn't silent if it fails to remove a breakpoint from
+# the main program, independently of whether the program was loaded
+# with "file PROGRAM" or directly from the command line with "gdb
+# PROGRAM".
+
+# Test that execution commands in a GDB script file run through -x
+# work as expected.  Specifically, the scripts creates a breakpoint
+# that has "continue" in its command list, and then does "run".
+
+standard_testfile
+
+if {[build_executable "failed to prepare" $testfile $srcfile debug]} {
+    return -1
+}
+
+set x_file ${srcdir}/${subdir}/$testfile.gdb
+
+global GDBFLAGS
+set saved_gdbflags $GDBFLAGS
+
+# Run the test proper.
+
+proc test {} {
+    global inferior_exited_re
+    global binfile
+    global gdb_prompt
+    global saved_gdbflags GDBFLAGS
+    global x_file
+
+    gdb_exit
+
+    set GDBFLAGS "$GDBFLAGS -x $x_file $binfile"
+
+    set GDBFLAGS $saved_gdbflags
+    append GDBFLAGS " -ex \"set height unlimited\""
+    append GDBFLAGS " -x \"$x_file\""
+    append GDBFLAGS " --args \"$binfile\""
+
+    set test "run to end"
+
+    gdb_exit
+    set res [gdb_spawn]
+    if { $res != 0} {
+	fail $test
+	return -1
+    }
+
+    gdb_test_multiple "" $test {
+	-re "$inferior_exited_re normally.*$gdb_prompt $" {
+	    pass $test
+	}
+	-re "Don't know how to run.*$gdb_prompt $" {
+	    unsupported $test
+	}
+    }
+}
+
+test
+
+set GDBFLAGS $saved_gdbflags
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb ./gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb	2015-01-20 01:48:37.000000000 +0000
@@ -0,0 +1,20 @@
+# Copyright 2015 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+break increment
+commands
+   cont
+end
+run
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.python/py-lookup-type.exp ./gdb/testsuite/gdb.python/py-lookup-type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.python/py-lookup-type.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-lookup-type.exp	2015-01-20 01:48:38.000000000 +0000
@@ -0,0 +1,59 @@
+# Copyright (C) 2015 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# This file is part of the GDB testsuite.  It tests the mechanism
+# of exposing types to Python.
+
+load_lib gdb-python.exp
+
+# Note that the purpose of this testcase is to test the behavior
+# of gdb.lookup_type searching for the primitive types internally
+# created by each language since GDB.  So, we must start GDB without
+# loading any symbol in.
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+
+# Skip all tests if Python scripting is not enabled.
+if { [skip_python_tests] } { continue }
+
+proc test_lookup_type { lang type_name } {
+    gdb_test_no_output "set language ${lang}"
+    gdb_test_no_output "python gdb.lookup_type('${type_name}')" \
+        "lookup type ${type_name} using language ${lang}"
+}
+
+test_lookup_type "ada" "character"
+
+test_lookup_type "c" "char"
+
+test_lookup_type "d" "ucent"
+
+test_lookup_type "fortran" "character"
+
+test_lookup_type "go" "int32"
+
+test_lookup_type "java" "byte"
+
+test_lookup_type "modula-2" "CARDINAL"
+
+test_lookup_type "opencl" "ushort"
+
+test_lookup_type "objective-c" "char"
+
+test_lookup_type "opencl" "ushort"
+
+test_lookup_type "pascal" "char"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.python/py-objfile.exp ./gdb/testsuite/gdb.python/py-objfile.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/gdb.python/py-objfile.exp	2015-01-13 01:48:40.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-objfile.exp	2015-01-20 01:48:38.000000000 +0000
@@ -115,3 +115,14 @@ if { [get_python_valueof "sep_objfile.bu
     gdb_test "python print (gdb.lookup_objfile (sep_objfile.build_id, by_build_id=True))" \
 	"Objfile not found\\.\r\n${python_error_text}"
 }
+
+# An objfile that was a symlink to a differently named file is still
+# findable with its original name.
+set symlink_binary [standard_output_file "symlink-binary"]
+remote_exec host "rm -f ${symlink_binary}"
+remote_exec host "ln -sf ${testfile} ${symlink_binary}"
+if [remote_file host exists "${symlink_binary}"] {
+    clean_restart "${symlink_binary}"
+    gdb_test "python print (gdb.lookup_objfile (\"${symlink_binary}\").filename)" \
+	"${testfile}" "gdb.lookup_objfile of symlinked binary"
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/lib/gdb.exp ./gdb/testsuite/lib/gdb.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/lib/gdb.exp	2015-01-13 01:48:40.000000000 +0000
+++ ./gdb/testsuite/lib/gdb.exp	2015-01-20 01:48:38.000000000 +0000
@@ -1890,7 +1890,8 @@ proc supports_process_record {} {
     }
 
     if { [istarget "arm*-*-linux*"] || [istarget "x86_64-*-linux*"]
-         || [istarget "i\[34567\]86-*-linux*"] } {
+         || [istarget "i\[34567\]86-*-linux*"]
+         || [istarget "powerpc*-*-linux*"] } {
 	return 1
     }
 
@@ -1906,7 +1907,8 @@ proc supports_reverse {} {
     }
 
     if { [istarget "arm*-*-linux*"] || [istarget "x86_64-*-linux*"]
-         || [istarget "i\[34567\]86-*-linux*"] } {
+         || [istarget "i\[34567\]86-*-linux*"]
+         || [istarget "powerpc*-*-linux*"] } {
 	return 1
     }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/Makefile.in ./gdb/testsuite/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/testsuite/Makefile.in	2015-01-13 01:48:39.000000000 +0000
+++ ./gdb/testsuite/Makefile.in	2015-01-20 01:48:37.000000000 +0000
@@ -242,7 +242,7 @@ force:;
 
 clean mostlyclean:
 	-rm -f *~ core *.o a.out xgdb *.x *.grt bigcore.corefile .gdb_history
-	-rm -f core.* *.tf *.cl *.py tracecommandsscript copy1.txt zzz-gdbscript
+	-rm -f core.* *.tf *.cl tracecommandsscript copy1.txt zzz-gdbscript
 	-rm -f *.dwo *.dwp
 	-rm -rf outputs temp cache
 	-rm -f read1.so expect-read1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/tui/tui-data.h ./gdb/tui/tui-data.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/tui/tui-data.h	2015-01-13 01:48:40.000000000 +0000
+++ ./gdb/tui/tui-data.h	2015-01-20 01:48:38.000000000 +0000
@@ -75,7 +75,7 @@ struct tui_gen_win_info
 
 /* Strings to display in the TUI status line.  */
 #define PROC_PREFIX             "In: "
-#define LINE_PREFIX             "Line: "
+#define LINE_PREFIX             "L"
 #define PC_PREFIX               "PC: "
 #define SINGLE_KEY              "(SingleKey)"
 
@@ -85,7 +85,7 @@ struct tui_gen_win_info
 				   numbers.  */
 #define MIN_PROC_WIDTH    12
 #define MAX_TARGET_WIDTH  10
-#define MAX_PID_WIDTH     14
+#define MAX_PID_WIDTH     19
 
 #define TUI_FLOAT_REGS_NAME                  "$FREGS"
 #define TUI_FLOAT_REGS_NAME_LOWER            "$fregs"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/tui/tui-win.c ./gdb/tui/tui-win.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/tui/tui-win.c	2015-01-13 01:48:40.000000000 +0000
+++ ./gdb/tui/tui-win.c	2015-01-20 01:48:38.000000000 +0000
@@ -344,6 +344,15 @@ tui_get_cmd_list (void)
   return &tuilist;
 }
 
+/* The set_func hook of "set tui ..." commands that affect the window
+   borders on the TUI display.  */
+void
+tui_set_var_cmd (char *null_args, int from_tty, struct cmd_list_element *c)
+{
+  if (tui_update_variables () && tui_active)
+    tui_rehighlight_all ();
+}
+
 /* Function to initialize gdb commands, for tui window
    manipulation.  */
 
@@ -401,10 +410,10 @@ Usage: + [win] [n]\n"));
 Scroll window backward.\n\
 Usage: - [win] [n]\n"));
   add_com ("<", class_tui, tui_scroll_left_command, _("\
-Scroll window forward.\n\
+Scroll window text to the left.\n\
 Usage: < [win] [n]\n"));
   add_com (">", class_tui, tui_scroll_right_command, _("\
-Scroll window backward.\n\
+Scroll window text to the right.\n\
 Usage: > [win] [n]\n"));
   if (xdb_commands)
     add_com ("w", class_xdb, tui_xdb_set_win_height_command, _("\
@@ -420,7 +429,7 @@ This variable controls the border of TUI
 space           use a white space\n\
 ascii           use ascii characters + - | for the border\n\
 acs             use the Alternate Character Set"),
-			NULL,
+			tui_set_var_cmd,
 			show_tui_border_kind,
 			&tui_setlist, &tui_showlist);
 
@@ -436,7 +445,7 @@ half            use half bright\n\
 half-standout   use half bright and standout mode\n\
 bold            use extra bright or bold\n\
 bold-standout   use extra bright or bold with standout mode"),
-			NULL,
+			tui_set_var_cmd,
 			show_tui_border_mode,
 			&tui_setlist, &tui_showlist);
 
@@ -452,7 +461,7 @@ half            use half bright\n\
 half-standout   use half bright and standout mode\n\
 bold            use extra bright or bold\n\
 bold-standout   use extra bright or bold with standout mode"),
-			NULL,
+			tui_set_var_cmd,
 			show_tui_active_border_mode,
 			&tui_setlist, &tui_showlist);
 }
@@ -646,6 +655,14 @@ tui_refresh_all_win (void)
   tui_show_locator_content ();
 }
 
+void
+tui_rehighlight_all (void)
+{
+  enum tui_win_type type;
+
+  for (type = SRC_WIN; type < MAX_MAJOR_WINDOWS; type++)
+    tui_check_and_display_highlight_if_needed (tui_win_list[type]);
+}
 
 /* Resize all the windows based on the terminal size.  This function
    gets called from within the readline sinwinch handler.  */
@@ -990,7 +1007,7 @@ tui_refresh_all_command (char *arg, int 
 }
 
 
-/* Set the height of the specified window.  */
+/* Set the tab width of the specified window.  */
 static void
 tui_set_tab_width_command (char *arg, int from_tty)
 {
@@ -1002,7 +1019,27 @@ tui_set_tab_width_command (char *arg, in
 
       ts = atoi (arg);
       if (ts > 0)
-	tui_set_default_tab_len (ts);
+	{
+	  tui_set_default_tab_len (ts);
+	  /* We don't really change the height of any windows, but
+	     calling these 2 functions causes a complete regeneration
+	     and redisplay of the window's contents, which will take
+	     the new tab width into account.  */
+	  if (tui_win_list[SRC_WIN]
+	      && tui_win_list[SRC_WIN]->generic.is_visible)
+	    {
+	      make_invisible_and_set_new_height (TUI_SRC_WIN,
+						 TUI_SRC_WIN->generic.height);
+	      make_visible_with_new_height (TUI_SRC_WIN);
+	    }
+	  if (tui_win_list[DISASSEM_WIN]
+	      && tui_win_list[DISASSEM_WIN]->generic.is_visible)
+	    {
+	      make_invisible_and_set_new_height (TUI_DISASM_WIN,
+						 TUI_DISASM_WIN->generic.height);
+	      make_visible_with_new_height (TUI_DISASM_WIN);
+	    }
+	}
       else
 	warning (_("Tab widths greater than 0 must be specified."));
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/tui/tui-win.h ./gdb/tui/tui-win.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/tui/tui-win.h	2015-01-13 01:48:40.000000000 +0000
+++ ./gdb/tui/tui-win.h	2015-01-20 01:48:38.000000000 +0000
@@ -35,6 +35,7 @@ extern void tui_scroll (enum tui_scroll_
 extern void tui_set_win_focus_to (struct tui_win_info *);
 extern void tui_resize_all (void);
 extern void tui_refresh_all_win (void);
+extern void tui_rehighlight_all (void);
 
 extern chtype tui_border_ulcorner;
 extern chtype tui_border_urcorner;
@@ -55,4 +56,7 @@ extern void tui_update_gdb_sizes (void);
 /* Create or get the TUI command list.  */
 struct cmd_list_element **tui_get_cmd_list (void);
 
+/* Set a TUI variable.  */
+void tui_set_var_cmd (char *, int, struct cmd_list_element *);
+
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/utils.h ./gdb/utils.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/utils.h	2015-01-13 01:48:40.000000000 +0000
+++ ./gdb/utils.h	2015-01-20 01:48:38.000000000 +0000
@@ -42,9 +42,6 @@ ULONGEST strtoulst (const char *num, con
 int compare_positive_ints (const void *ap, const void *bp);
 int compare_strings (const void *ap, const void *bp);
 
-/* This is defined in *-hdep.c, e.g., posix-hdep.c.  */
-extern char *safe_strerror (int);
-
 /* A wrapper for bfd_errmsg to produce a more helpful error message
    in the case of bfd_error_file_ambiguously recognized.
    MATCHING, if non-NULL, is the corresponding argument to
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/version.in ./gdb/version.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/version.in	2015-01-13 01:48:40.000000000 +0000
+++ ./gdb/version.in	2015-01-20 01:48:38.000000000 +0000
@@ -1 +1 @@
-7.8.50.DATE-cvs
+7.9.50.DATE-cvs
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/windows-termcap.c ./gdb/windows-termcap.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/gdb/windows-termcap.c	2015-01-13 01:48:40.000000000 +0000
+++ ./gdb/windows-termcap.c	2015-01-20 01:48:38.000000000 +0000
@@ -19,6 +19,11 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
+
+#include "defs.h"
+
+#if !defined HAVE_CURSES_H && !defined HAVE_NCURSES_H && !defined HAVE_NCURSES_NCURSES_H
+
 #include <stdlib.h>
 
 /* -Wmissing-prototypes */
@@ -71,3 +76,5 @@ tgoto (const char *cap, int col, int row
 {
   return NULL;
 }
+
+#endif	/* !HAVE_CURSES_H && !HAVE_NCURSES_H && !HAVE_NCURSES_NCURSES_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/include/ChangeLog ./include/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/include/ChangeLog	2015-01-13 01:48:40.000000000 +0000
+++ ./include/ChangeLog	2015-01-20 01:48:38.000000000 +0000
@@ -1,3 +1,7 @@
+2015-01-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
+
+	* libiberty.h: Merge from GCC.
+
 2015-01-01  Alan Modra  <amodra@gmail.com>
 
 	Update year range in copyright notice of all files.
@@ -68,10 +72,18 @@
 	* elf/mips.h (AFL_EXT_OCTEON3): Define.
 	INSN_OCTEON3, CPU_OCTEON3): Define.
 
+2014-10-28  Yury Gribov  <y.gribov@samsung.com>
+
+	* libiberty.h (strtol, strtoul, strtoll, strtoull): New prototypes.
+
 2014-10-22  Matthew Fortune  <matthew.fortune@imgtec.com>
 
 	* elf/mips.h (AFL_ASE_MASK): Define.
 
+2014-10-15  David Malcolm  <dmalcolm@redhat.com>
+
+	* libiberty.h (choose_tmpdir): New prototype.
+
 2014-09-26  Max Ostapenko  <m.ostapenko@partner.samsung.com>
 
 	* libiberty.h (PEX_STDOUT_APPEND): New flag.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/include/libiberty.h ./include/libiberty.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/include/libiberty.h	2015-01-13 01:48:40.000000000 +0000
+++ ./include/libiberty.h	2015-01-20 01:48:38.000000000 +0000
@@ -226,6 +226,11 @@ extern char *make_relative_prefix (const
 extern char *make_relative_prefix_ignore_links (const char *, const char *,
 						const char *) ATTRIBUTE_MALLOC;
 
+/* Returns a pointer to a directory path suitable for creating temporary
+   files in.  */
+
+extern const char *choose_tmpdir (void) ATTRIBUTE_RETURNS_NONNULL;
+
 /* Choose a temporary directory to use for scratch files.  */
 
 extern char *choose_temp_base (void) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL;
@@ -659,6 +664,33 @@ extern size_t strnlen (const char *, siz
 extern int strverscmp (const char *, const char *);
 #endif
 
+#if defined(HAVE_DECL_STRTOL) && !HAVE_DECL_STRTOL
+extern long int strtol (const char *nptr,
+                        char **endptr, int base);
+#endif
+
+#if defined(HAVE_DECL_STRTOUL) && !HAVE_DECL_STRTOUL
+extern unsigned long int strtoul (const char *nptr,
+                                  char **endptr, int base);
+#endif
+
+#if defined(HAVE_LONG_LONG) && defined(HAVE_DECL_STRTOLL) && !HAVE_DECL_STRTOLL
+__extension__
+extern long long int strtoll (const char *nptr,
+                              char **endptr, int base);
+#endif
+
+#if defined(HAVE_LONG_LONG) && defined(HAVE_DECL_STRTOULL) && !HAVE_DECL_STRTOULL
+__extension__
+extern unsigned long long int strtoull (const char *nptr,
+                                        char **endptr, int base);
+#endif
+
+#if defined(HAVE_DECL_STRVERSCMP) && !HAVE_DECL_STRVERSCMP
+/* Compare version strings.  */
+extern int strverscmp (const char *, const char *);
+#endif
+
 /* Set the title of a process */
 extern void setproctitle (const char *name, ...);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/include/opcode/ChangeLog ./include/opcode/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/include/opcode/ChangeLog	2015-01-13 01:48:40.000000000 +0000
+++ ./include/opcode/ChangeLog	2015-01-20 01:48:38.000000000 +0000
@@ -1,3 +1,7 @@
+2015-01-16  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+	* s390.h (s390_opcode_cpu_val): Add S390_OPCODE_Z13.
+
 2015-01-01  Alan Modra  <amodra@gmail.com>
 
 	Update year range in copyright notice of all files.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/include/opcode/s390.h ./include/opcode/s390.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/include/opcode/s390.h	2015-01-13 01:48:40.000000000 +0000
+++ ./include/opcode/s390.h	2015-01-20 01:48:38.000000000 +0000
@@ -41,9 +41,13 @@ enum s390_opcode_cpu_val
     S390_OPCODE_Z10,
     S390_OPCODE_Z196,
     S390_OPCODE_ZEC12,
+    S390_OPCODE_Z13,
     S390_OPCODE_MAXCPU
   };
 
+/* Instruction specific flags.  */
+#define S390_INSTR_FLAG_OPTPARM 0x1
+
 /* The opcode table is an array of struct s390_opcode.  */
 
 struct s390_opcode
@@ -74,6 +78,9 @@ struct s390_opcode
 
     /* First cpu this opcode is available for.  */
     enum s390_opcode_cpu_val min_cpu;
+
+    /* Instruction specific flags.  */
+    unsigned int flags;
   };
 
 /* The table itself is sorted by major opcode number, and is otherwise
@@ -86,7 +93,7 @@ extern const int                s390_num
 extern const struct s390_opcode s390_opformats[];
 extern const int                s390_num_opformats;
 
-/* Values defined for the flags field of a struct powerpc_opcode.  */
+/* Values defined for the flags field of a struct s390_opcode.  */
 
 /* The operands table is an array of struct s390_operand.  */
 
@@ -103,7 +110,7 @@ struct s390_operand
   };
 
 /* Elements in the table are retrieved by indexing with values from
-   the operands field of the powerpc_opcodes table.  */
+   the operands field of the s390_opcodes table.  */
 
 extern const struct s390_operand s390_operands[];
 
@@ -151,4 +158,14 @@ extern const struct s390_operand s390_op
 /* The operand needs to be a valid GP or FP register pair.  */
 #define S390_OPERAND_REG_PAIR 0x800
 
-	#endif /* S390_H */
+/* This operand names a vector register.  The disassembler uses this
+   to print register names with a leading 'v'.  */
+#define S390_OPERAND_VR 0x1000
+
+#define S390_OPERAND_CP16 0x2000
+
+#define S390_OPERAND_OR1 0x4000
+#define S390_OPERAND_OR2 0x8000
+#define S390_OPERAND_OR8 0x10000
+
+#endif /* S390_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/libiberty/ChangeLog ./libiberty/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/libiberty/ChangeLog	2015-01-13 01:48:41.000000000 +0000
+++ ./libiberty/ChangeLog	2015-01-20 01:48:39.000000000 +0000
@@ -1,3 +1,8 @@
+2015-01-19  Eli Zaretskii  <eliz@gnu.org>
+
+	* strerror.c <sys_nerr, sys_errlist>: Declare only if they aren't
+	macros.
+
 2014-12-24  Uros Bizjak  <ubizjak@gmail.com>
 	    Ben Elliston  <bje@au.ibm.com>
 	    Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/libiberty/strerror.c ./libiberty/strerror.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/libiberty/strerror.c	2015-01-13 01:48:41.000000000 +0000
+++ ./libiberty/strerror.c	2015-01-20 01:48:39.000000000 +0000
@@ -469,8 +469,13 @@ static const char **sys_errlist;
 
 #else
 
+
+#ifndef sys_nerr
 extern int sys_nerr;
+#endif
+#ifndef sys_errlist
 extern char *sys_errlist[];
+#endif
 
 #endif
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/md5.sum ./md5.sum
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/md5.sum	2015-01-13 01:53:22.000000000 +0000
+++ ./md5.sum	2015-01-20 01:56:12.000000000 +0000
@@ -1,20 +1,20 @@
 ec0a5972f6858c7125f5748457c3d0eb  bfd/tekhex.c
-f624b63828c11f9bb09466cbc385b56c  bfd/reloc.c
+09c6d6cead808c4beca0cf34bbfbc5e8  bfd/reloc.c
 daed7fcc65e437bc77ebf152e0d7231e  bfd/dwarf2.c
 610d1cd3cbbed99e073207b0b24af114  bfd/libbfd.h
 4cbda6238eaa5464ed780d0ddf427cc5  bfd/cpu-nds32.c
 d379f86e2b08ffd6d7bceca24851adbd  bfd/vaxnetbsd.c
-58a33143256d92647c7f34b3e244b6e7  bfd/elf64-ppc.c
-c3e3eade8a6d307150f6db151a6742b5  bfd/elf32-mcore.c
+c179205c8a46f4dbbd69c064f1076bef  bfd/elf64-ppc.c
+58c1152b4cb8c323d4e3ee681eb3aaf6  bfd/elf32-mcore.c
 58423814cf9665d59abc7cd41555d9f4  bfd/pe-mips.c
 45ea12876c20ea5ce95e3c72b8df4d7e  bfd/archures.c
 bc1e0d5bf37619a2a294ecfd8b7489be  bfd/i386lynx.c
 b8f6eae8ac926dc604030cb3efba1039  bfd/bfdwin.c
 e41bf4306979bec62eb8430fb41df6a5  bfd/ChangeLog-2013
 cc0b01f7614b9620d951fe88856b9342  bfd/aout32.c
-c5ce585820b3ae816c8edb8b7bdaf1f8  bfd/elf32-xstormy16.c
-cd6d86b6db57d32766b8a529bb92cbf1  bfd/elf32-m68hc11.c
-d71a0d07d6692159b44cd1c4b62e6983  bfd/elfxx-tilegx.c
+ba04fcbb738a0fa5f896792ed0533a72  bfd/elf32-xstormy16.c
+6c9be93709298c13ae884cfe600f9ad0  bfd/elf32-m68hc11.c
+ab2390e007bd5e197a9238ab6556f5ed  bfd/elfxx-tilegx.c
 21029c7d41557b7e6b3f27278552155c  bfd/epoc-pe-arm.c
 f042c8f3da7b59243af8763e5e4fd607  bfd/aout-adobe.c
 5ddd7325e4cba21950fe2d391072cf87  bfd/ChangeLog-2011
@@ -36,9 +36,9 @@ f74f5720bf485dc971d7b4151b97318b  bfd/pe
 3d0f0160d615a50be3fe50cdfaf96a71  bfd/cpu-d10v.c
 3a7a5fe19ebcf7f41e79fcf8cd090893  bfd/xtensa-modules.c
 d714ee957aefa81619f03058d91b23cb  bfd/elfcore.h
-c81d65148831d8cdd82361f4e75ad0c2  bfd/elf64-mips.c
+64f6bec36e44883df8ceae0157bb7a4e  bfd/elf64-mips.c
 57287cb3abe2dc7f66af4ab28aafebe9  bfd/cpu-m9s12x.c
-52ccd36ed09cd967a5e38752264196d1  bfd/version.h
+986bb00631b0b04636f4bf1b44995a2c  bfd/version.h
 a107ac2f34a58b7629fbff59490f61f1  bfd/cpu-tilegx.c
 ceebc66a221f8f9297b660d643de9009  bfd/coff-mcore.c
 b33e0ba78cdd46c771e365ab8b48bfc1  bfd/cpu-avr.c
@@ -46,38 +46,38 @@ b33e0ba78cdd46c771e365ab8b48bfc1  bfd/cp
 f5ad372cf681a57b9a43f6975c05e33c  bfd/ChangeLog-2012
 fa3b7ff92fbc8734f9fc7b23b06fe5fb  bfd/elf.c
 b573043e5103e4c7c7e4b88bd03a253b  bfd/hppabsd-core.c
-a74ca3ed88640b8fc3e3a9c576f404e3  bfd/elf32-xgate.c
+a3629672f580773626c20c8430a2fc09  bfd/elf32-xgate.c
 03f80c50fe1a8e610a763ce5fc65991b  bfd/elf32-nds32.h
 f30c2f55e5c6309ab24aa96b8df86324  bfd/coff-bfd.h
 8373bde8fa77a2939a85c16983a71910  bfd/demo64.c
-56ad91a6aa7cb77c9573c4d61d5c3aa5  bfd/ecoff.c
+a3d6e52c93d52688b872693a2d183c0a  bfd/ecoff.c
 097eef5cef36c541234e2ff13f69547e  bfd/cpu-moxie.c
 04b3d1538d14a25b5a6bfd60940b2f8b  bfd/mach-o.c
 ebdd84dfce66bdc6b6f72f53c366f173  bfd/m68klinux.c
-40768c5bf2a20d33fd90df2ba660f51e  bfd/elf32-vax.c
+d42020ea08fbfc92bf52b80015b753fc  bfd/elf32-vax.c
 1aecdc5b55f025d1bc08db0d255e4aa6  bfd/pe-arm-wince.c
 f247d3c7c7dbf2c2bde47274fcf12d16  bfd/cpu-rx.c
 181869ba42e45b879925056707aae9f0  bfd/cpu-ip2k.c
 ab3a3da9d15b78a7e2e26490487be5cc  bfd/i386linux.c
 f15dfac0bc5f92eca85472d4eda68fc2  bfd/cpu-h8500.c
 615e1fff5358f13fa157b374aa1351f3  bfd/elf32-tilepro.h
-df459034b05c88db181d77dde3b83ede  bfd/elf32-s390.c
+9b4bf21152a51dc00359c2a24137c7f8  bfd/elf32-s390.c
 2b91920292050b8e49bf1b385927b938  bfd/libaout.h
 ca8c68fe0e3059a4b03f2eae39bd6738  bfd/elfxx-aarch64.h
 e74495ef0895c24443ef071dfef0a1e4  bfd/elf-vxworks.c
-95cc355f0db28f6404dbb53d7cf0282c  bfd/elfxx-mips.c
+c35afa6bea6c7b5fdc1a3b1c39090df2  bfd/elfxx-mips.c
 f765ee43ee7ec4df6f7204fabbce2bca  bfd/archive.c
 7f96b0f32007cdc39e8124a9b3dad2d9  bfd/aix5ppc-core.c
 ba9a2755d1c41b945dbc93f1eb4127ee  bfd/pei-ppc.c
-de2977553f6af7296c4a654b5e4577a1  bfd/elfxx-ia64.c
-f1a36ada9ee8a1a14700ebbee75d460f  bfd/elf32-dlx.c
+3acca3f9ef137319a1ffbf3a5c284013  bfd/elfxx-ia64.c
+3c5f6008d297a2321a7b0783919f324d  bfd/elf32-dlx.c
 7f8dd8061ac1d17d70fe4cf34cb127eb  bfd/elf64-tilegx.h
 8c243a6f4957f88044638d01e8e63ed6  bfd/peicode.h
 d101cffe506f113fcb606f1c0223fb66  bfd/coff-mips.c
 898a644b23a64839557ed04222f5b7b5  bfd/coff-h8500.c
 149f2204ab9e082a2beb72dd6c04800d  bfd/cf-i386lynx.c
-86cd1dcbaf3151991d7dbc7217266b82  bfd/elf32-mep.c
-f0f808bfc7605c6c190bc8d5c2aad23c  bfd/elf32-v850.c
+9e8268557e1890fb62860f8a3fa52a74  bfd/elf32-mep.c
+8c5df32eb782f8537126ad578c07be82  bfd/elf32-v850.c
 981beccb0f207921c427ad4a84e6ebc0  bfd/nlm32.c
 a349bdd93e5ef636ab775bfc2aa60223  bfd/cpu-i860.c
 8631f30b718bb5196534a56bc88f3ab6  bfd/coff-m88k.c
@@ -89,7 +89,7 @@ b617f132658f672cb3bf6ea5da255873  bfd/el
 e171a4dc1f87c39ff798cbd03bd2434f  bfd/m88kmach3.c
 3a283d62b97e2fa64e9630a3f495106c  bfd/ecofflink.c
 11b3cc64472dbe0b61fd3be72afe2ede  bfd/ptrace-core.c
-d6fa04787c5d196ce562a3f92048f08b  bfd/xcofflink.c
+4ffbecfd5b1b2905db45202842f507ca  bfd/xcofflink.c
 53357a9b87dd158b90cf790c316fd438  bfd/targmatch.sed
 fa7eaf91655aef12a36593f6f90b02c7  bfd/cpu-i960.c
 e3c124c38ea4570880eea37805573a14  bfd/coff-ppc.c
@@ -108,7 +108,7 @@ a89455c744663c32eec524acfc6fe248  bfd/cp
 70cf04337b5bbeac009aea71e5026c49  bfd/i386netbsd.c
 39e58cf7295ab4a56d9d8068b1bf0060  bfd/coff-aux.c
 013a8959efd21d7448ba3dc29ef5babb  bfd/development.sh
-32c9e4f53b2cc2504fb12e0ba1e8fe09  bfd/elf32-tilepro.c
+f9238033a0d6a9a2f38f595957646b9c  bfd/elf32-tilepro.c
 ce363ffcdb2993ee84530554d0fb5a78  bfd/ChangeLog-9697
 8e59db45da7059710e7672a2b98e2ff8  bfd/cpu-cr16.c
 37a2c322f4ea0ab1ce9c1fbf8498d37a  bfd/i386msdos.c
@@ -116,7 +116,7 @@ ce363ffcdb2993ee84530554d0fb5a78  bfd/Ch
 21c726851b34cc5fc518c8719bb9fd40  bfd/libxcoff.h
 897c2192d7787165e1e051bdfccf7e35  bfd/i386bsd.c
 b30c64de76fa5604057647d8993e0164  bfd/hpux-core.c
-6cb0da82674261abb09d362c4c4157d1  bfd/elf-bfd.h
+adfa3a8f3192315450c7b5fa8dcc9ddd  bfd/elf-bfd.h
 42878bb2397b6bf5856dce039784d23b  bfd/m68k4knetbsd.c
 d906ec4101f7b2e1edb000e25b4c5d74  bfd/mach-o-target.c
 d9125b8b9ea20be2b07955ef07f91a82  bfd/elf-strtab.c
@@ -127,7 +127,7 @@ ca01d545ef06794cc76fc453e4322379  bfd/pe
 a5b8426b56cf4b603212b78726b7580c  bfd/cpu-bfin.c
 c8eee41e3ba7a4807e87ba94d8d6517f  bfd/elf-nacl.h
 2b585970c6a18bf4f47940190f4a5005  bfd/config.bfd
-e09e00476ef19a2a46352d2803490025  bfd/elf32-bfin.c
+c3306654d4203582412ea0b8c7ac39b1  bfd/elf32-bfin.c
 b0d911d714c31735b3628f0f6d12b0c5  bfd/makefile.vms
 a0027b034ca920333f6f40cbc1839194  bfd/cpu-mips.c
 2bf549920df47dde109e064b8a84be7f  bfd/gen-aout.c
@@ -135,26 +135,26 @@ a0027b034ca920333f6f40cbc1839194  bfd/cp
 367990d0410d4613f40e896b06c69e56  bfd/cpu-xtensa.c
 97c2d4c69f0eeb546765fbda03dea99f  bfd/pe-ppc.c
 00c744d5db06c809bd5db1b628be3259  bfd/opncls.c
-71827b75ff0249a9e372fce414ef2763  bfd/elf32-cris.c
+57eeff60ead4adbcb385902e3d0a01bc  bfd/elf32-cris.c
 aceb78738bda31ed5a4fbdd6c829f4ad  bfd/cpu-z80.c
 d51e2017b5d7053341d1306b89f496ee  bfd/coff-i386.c
 7985b524461484c7735b12a710b9cf44  bfd/aout-target.h
-80fe08aba6db4598bc6d6c19403ef668  bfd/elf32-spu.c
+6e617c98f7a69da535f92b8b9c018a34  bfd/elf32-spu.c
 4384a857565e33e249a6653e5bf4b31e  bfd/elf32-gen.c
 b096261204aa83b0027e9886b983e23a  bfd/cache.c
 25db76f53bee919c771b9f7e8668955a  bfd/coff-tic80.c
-433a53046eea3ff9f1fcfc6800a163fe  bfd/elf64-s390.c
+89ee68cdd9a120df9e6cb34b6413aea9  bfd/elf64-s390.c
 0e9ed222258484723d3ad4bb40179b81  bfd/oasys.c
 408ef1462276b75d3708877103c85eb8  bfd/.gitignore
 462459fae57942d863ff89792f70f1e2  bfd/elf32-m68hc1x.h
 63fe47ec508c643232e768ca5edf4f3c  bfd/cpu-spu.c
 35f7bce12dc045c5df6ed1cbccc0cf49  bfd/bout.c
 effd5b05c0a39ffb18063e98f219ed6f  bfd/warning.m4
-91d7723dbb1ac2d0d4b73e009c30860a  bfd/elf32-moxie.c
+1ec14854c2b6b637c64f92f6f04899f9  bfd/elf32-moxie.c
 d257d07aae981ced6ca5490db04c189e  bfd/pc532-mach.c
 f210b04663c7d0f71e6559a3f7a7e1bc  bfd/configure.host
 62003f2b3a96e1a7c53fe2e85f685db5  bfd/cpu-aarch64.c
-bf302636ec3f41290e4ca9f131d453f1  bfd/bfd-in2.h
+cc26b07fcf8dc6e0e95e2b37af064adc  bfd/bfd-in2.h
 2deec369a17785f5c51db5c496ba451b  bfd/cpu-k1om.c
 dc8fb1714877aed44474fde33fab5ba3  bfd/nlm.c
 48d363783c777355caa818db75d5a25e  bfd/cpu-lm32.c
@@ -169,7 +169,7 @@ d983a04e314fc1bdf12fd3254a8183a3  bfd/nl
 c844ec58a10bb4cc230b3f05f7657d55  bfd/elf32.c
 cc7378f7be9df4889ce909abe61e8ba0  bfd/elf-nacl.c
 e7a46838649dd641d6466cc6fa24a6a6  bfd/libbfd.c
-a87d07ff2d9bab4557b7b209252bd5c0  bfd/elf32-d10v.c
+b32525f733aae4534fcea22e383b1054  bfd/elf32-d10v.c
 d961679ca24f8ce7986eb21fd10cf467  bfd/coff-arm.c
 a47f45a1fe6baee6725f563a3845ca9f  bfd/elf32-score.h
 b4d684df83075a9a6ae4511b590634aa  bfd/cpu-d30v.c
@@ -186,19 +186,19 @@ d8f323b2bfc1857852867da59861295f  bfd/rs
 fbd278d1df85f4545e72dbe285b50ed3  bfd/elf-eh-frame.c
 5b058131e63b03ac38ccf07921b67699  bfd/cpu-we32k.c
 206a9e3d6d11b12154016667842012cf  bfd/sparclynx.c
-096d847328b90e463b8f2431cbd48fc2  bfd/elf32-i860.c
+826af7f00a08f43d4285d7e59a24fb54  bfd/elf32-i860.c
 b5a039fb4ff9da0221ea807aee4c56ee  bfd/netbsd.h
 47aaef1745bba1b121b9d9a6418264f1  bfd/elf32-hppa.h
 2d5c4bf332767480b78dc916a98a2ede  bfd/elf32-rx.h
-ede74631fb7aef6799f02d7b0c5bc502  bfd/elf32-cr16.c
+36503a87219653add95999d5ca195ddb  bfd/elf32-cr16.c
 84c08446bd7e98a2ccc76dd50e8257e7  bfd/pe-arm.c
-e4c0c83735c74296642da3e924eacd23  bfd/elf32-frv.c
+3926e7365a165032d5f6f7ec502dcce2  bfd/elf32-frv.c
 06462b8f11300da9a3c4708ecda76fdb  bfd/pei-sh.c
-cd58c6c6a9e45d75305f1c6d636ac365  bfd/elf32-arc.c
-039e5e0e580549cfd8af8a93d3de4b9f  bfd/elfnn-aarch64.c
+e84cabfd88cf58d7d9bd453ae779f0d4  bfd/elf32-arc.c
+91ea030e5f716cc1788aa6f946c7c3d2  bfd/elfnn-aarch64.c
 720025115ab62195d3a751090a6ca325  bfd/mach-o-i386.c
 a06621f2e9e19b3a0c870c89d9981e40  bfd/elf32-am33lin.c
-e776b8ea400db4b316b599c9f5310ad7  bfd/elf32-mt.c
+83587c868efef80cabeffae5818c105b  bfd/elf32-mt.c
 52d89b2271d98527260dbbd8132d9d60  bfd/elf-ifunc.c
 6eeb1062882cbe1d8a43002c2abb2cef  bfd/cpu-plugin.c
 6f632bf46b47fb0427743c74e30c1590  bfd/som.h
@@ -243,14 +243,14 @@ d7a37304ccd7b245f93df4be02797477  bfd/do
 6dd9da257666139a061d6905349d9614  bfd/doc/core.texi
 0e4ff68d57b990fa789a0442780a1b9e  bfd/doc/targets.texi
 d637eb81321fab55d7a223e62ec9ef71  bfd/elf32-spu.h
-dc86ae7a1abaff41f6e8021a304be278  bfd/elf32-microblaze.c
+06adb658c473f3826436df1e5ef397e1  bfd/elf32-microblaze.c
 7388b724a233b515a61628e339a6c9e6  bfd/sparclinux.c
 81baf972ce2e5dc9c113cf33e0726c37  bfd/cpu-sh.c
 77f1cfa5acd2dc8462f0cc7b362e4c0c  bfd/osf-core.c
 7750fc6b99e68f6f4880a2bc872f890b  bfd/hp300bsd.c
 9a38e7edca8864f1f95c7589836211c4  bfd/cpu-ia64-opc.c
 170619b7b950315d53b19396b6fa743f  bfd/cpu-m88k.c
-96dce5332df5489369e786e7d59c669a  bfd/elf32-crx.c
+81ca5d91a29373397ceba3a89480b9f5  bfd/elf32-crx.c
 92f9810a8a34c1e8680f660423898362  bfd/ChangeLog-2006
 88342bc318d80ea62dd3d7a053d254ea  bfd/pe-mcore.c
 9e714d5bcbd337d6ffe1e52c26f50e4e  bfd/cpu-mmix.c
@@ -262,14 +262,14 @@ a096cd3ac32af71fc5d6ae52b4a29714  bfd/cp
 0b11bd747d1947e893855831a99c2c25  bfd/elf32-sh64.c
 aa95f9a368ab99dfc240812fca87b2db  bfd/coff-i860.c
 6741acdc1146f97f173c3b88e9e13596  bfd/coff-alpha.c
-326aa715f6c4dd56788f0f344218f718  bfd/bfd-in.h
-83226211b9f65263a36f5966158874a7  bfd/elf32-nds32.c
-a3b8c05abed62d68a97ffba15cbf2e40  bfd/elf32-i386.c
-8e477a021505b01a1e592b209f274ad4  bfd/elf32-ppc.c
+e5bd2d7a71612fdabc059136b2381046  bfd/bfd-in.h
+8a61f6d20afd42fed6315a91b9836d9d  bfd/elf32-nds32.c
+ffd97d145d03a4f6f09b3377d4347167  bfd/elf32-i386.c
+0a273952d9c82cb660e6ccffd29e4104  bfd/elf32-ppc.c
 7d710529ca3fafb2bb57132df24957e3  bfd/ChangeLog-2004
-fb0bafa1c89fe516859c7315399fd5d9  bfd/elfxx-sparc.c
+220a19ef8e17a243239dd3c52e3b2258  bfd/elfxx-sparc.c
 12f6762685a296da42187290238207ad  bfd/cpu-powerpc.c
-f6fac2444e8c251a049944435a815d50  bfd/coff-sparc.c
+ba8b4e5660ece96a5bedd56d197b287c  bfd/coff-sparc.c
 1078d9879f509dc941d9bad99b46e149  bfd/cpu-xgate.c
 4c807c0f7499ec243455c2d6f7fc58a0  bfd/cpu-rs6000.c
 5df879033aa0a2351e92554c36e98728  bfd/nlmswap.h
@@ -281,21 +281,21 @@ f6fac2444e8c251a049944435a815d50  bfd/co
 57f383b317a5840bb53d06d81ada8305  bfd/coff-w65.c
 495fd1bb13aeb4666662e2259a3427e8  bfd/newsos3.c
 3b62e4c377876004981407449c360a62  bfd/ns32knetbsd.c
-c112610289db6df7dc36b4f580fdf13d  bfd/cofflink.c
+fedd1ee81c3985fc1da7e36f60392fee  bfd/cofflink.c
 52eeceea7d6afb4956faaaed3fb61ddf  bfd/dwarf1.c
 b2840cda9b56efffa90c3b4d40c9dfed  bfd/coff-ia64.c
-5c43416ea6180e9855cbe4f67e466e5e  bfd/nlm32-sparc.c
-f76bd69775fd195b948a819574825905  bfd/elf32-pj.c
+b4c0ba889965dfae4a718f832f61c315  bfd/nlm32-sparc.c
+786d4e67cbb8aa750a5e5e9ebe8ba24d  bfd/elf32-pj.c
 9820953a0922e417fc56337be23284a5  bfd/elfxx-sparc.h
 6a90e62bb7927e34a6ceedb26f07abcf  bfd/cpu-pj.c
-36a19239f903909238150e0d4f4d07b8  bfd/elf32-i370.c
+fbb10cf4b468c1b015fe52c9310f70af  bfd/elf32-i370.c
 8250251f266c3f54401bdb189dd87f32  bfd/coff-i960.c
 398fb698d9e7529968f11a1badca81b9  bfd/irix-core.c
 f772df93b33e411e1d65435ad9f7ba6e  bfd/pei-arm.c
-e4ebd1911dd7cd1517863f51d5f6e93b  bfd/elf-m10300.c
+1718ef109b205def3b37b38c6652f020  bfd/elf-m10300.c
 2fd534ffb506f0acf65b2207d7b185fd  bfd/configure.com
 db61d9efb900990c318489ba49ad83fa  bfd/elf32-nios2.h
-2c3a416fec5b1ca3cb269b82364fe455  bfd/elf64-sh64.c
+6db47821da31a2b529b56e76ec61613e  bfd/elf64-sh64.c
 b6e0bd05bbe0a3fe41ab0d2a1c357b17  bfd/trad-core.c
 97fa741731c4956dd7e8100d5d20048b  bfd/elf64-hppa.c
 e559beea3f4a2e79c27e64a70f6c80a2  bfd/pef.c
@@ -303,10 +303,10 @@ e559beea3f4a2e79c27e64a70f6c80a2  bfd/pe
 745a3e162c6757a034df1dfb6ff22c85  bfd/cpu-tic6x.c
 1ded054093de910d9786c62bc4fe8cc6  bfd/stamp-h.in
 13b935e8004813740c8727dc4c78fc23  bfd/cpu-or1k.c
-63a7d4faca8bb6e43e74372d684fddc0  bfd/elf32-mips.c
+b120640d43c96ee921f0b1e22c084c11  bfd/elf32-mips.c
 603c8594a5f0352547e7709f2c38d108  bfd/nlm32-alpha.c
 66c5ecc926288e203e7070b400f7b809  bfd/stab-syms.c
-5fbdb263bae50a3051f98946770c91f0  bfd/elf32-visium.c
+fb62148b1d4553aee3a79d4902d22d80  bfd/elf32-visium.c
 bffedefaddba3a2be23f9438e86b2a08  bfd/cpu-rl78.c
 cbe4cf23c197ed45ad68eae869b7ff31  bfd/xsym.c
 dbd8579a7395cb866bf29a8fd44241b7  bfd/cpu-mep.c
@@ -344,20 +344,20 @@ b1866eeb54d005f352a4653b3b198a5e  bfd/ho
 bde916da5c029b43c7b2ac5a22e96ff7  bfd/mmo.c
 e0a8d31280c4b392ef408b925197e980  bfd/coff-z8k.c
 da648fcf8c6fffbffc9a8e3f7ac74811  bfd/cpu-alpha.c
-654d2153f214754d02e9f27feff02b68  bfd/elf32-tic6x.c
+2b4a333b644aa24dbe1f7950ccfe057c  bfd/elf32-tic6x.c
 5ec7c5b1cf13766e8165f3d4b2c782a5  bfd/stabs.c
 554dafa0432b6ef478696051029b352c  bfd/elf32-m88k.c
 4b8318d1c5a15f1e11907bbf8028fd8f  bfd/elf64.c
 489376ce3445b7b24248f71ebc2890d6  bfd/xtensa-isa.c
-aaf75a51efde4236b5cc8cf6715d6f6a  bfd/elf32-epiphany.c
-0089dbf3a4ad169d55640677b226b650  bfd/elf32-m68hc12.c
-4d0c2686f1edcf70929603738d5d2302  bfd/elf32-m32c.c
+1447dec72739cbe9b01242964ada1ccc  bfd/elf32-epiphany.c
+3740725ba77b59a5f06019f51f83a7e0  bfd/elf32-m68hc12.c
+add6b3c9b5b4157fbbc74941e382cbfa  bfd/elf32-m32c.c
 8f7b5397a7bb5d502a9997e19d244cea  bfd/ChangeLog-2014
-f10e052223369ebe0e9d1574db41752a  bfd/elflink.c
-2cdeb7afabf688efbc9ff6bce9baf055  bfd/elf32-iq2000.c
+3aea6db0f246b81c07766adf8711463b  bfd/elflink.c
+3921b00935d639346475125ce7d193ad  bfd/elf32-iq2000.c
 d33b4e9b597e25668a8cfd80acf88d36  bfd/aout0.c
-9fd7bb9c147690eb727439c7efb0464c  bfd/elf-hppa.h
-d9adf30d28159a69e24cdf238b53ce71  bfd/elf32-sh.c
+5b74ce9fa309f8b92a539f935358df78  bfd/elf-hppa.h
+d48f30c4827c6afb822e13149139379c  bfd/elf32-sh.c
 020d26600b1360c25e914a1c7f8f2af2  bfd/cpu-xc16x.c
 e301bdd246cdf7352ee89dbf73ea052c  bfd/elf64-hppa.h
 14f93dd0b380ce57a88b262ca5f301db  bfd/nlm32-i386.c
@@ -371,13 +371,13 @@ a918bd2e24d73becbba243c181386cfc  bfd/el
 aaa0e9c469bc6668d05572c855b8845f  bfd/libcoff-in.h
 a3413473e699e28fa4425f7c18e79b38  bfd/elf32-tilegx.h
 34bd7614bea22ba27556ae3bdf90557f  bfd/pei-mips.c
-a481915b00f7573856b5e8ef314187b4  bfd/elfxx-aarch64.c
-e83c40d06891434698996259a6fce815  bfd/linker.c
+2475453fbbb725afd78c1444ea6ff725  bfd/elfxx-aarch64.c
+200aff299dfe59ffc021fb9901b88422  bfd/linker.c
 3381b54a88e28dc216f5a2c7f4d30c32  bfd/aclocal.m4
 13b7132a1ebd999ab87f77591a155bd7  bfd/ihex.c
 0e847e604711efaafe983dc81282adc8  bfd/elf-linux-psinfo.h
 627b3ee76c9f3876f67fe2f1fce802cd  bfd/srec.c
-f910adb283a57529a41b0a69235cb86f  bfd/elf32-score.c
+2410403673eeff506fd93302a717351a  bfd/elf32-score.c
 a9eb6471e510a03f255a130a4a902d50  bfd/coff-rs6000.c
 d88c0c920baded1ca9c3802632083a0d  bfd/nlm32-ppc.c
 14c13627be0585a711708ccf1d32e22a  bfd/po/vi.po
@@ -418,25 +418,25 @@ ecb5c58046e9e36ff361912c57c67c43  bfd/cp
 f561858a2d9c9fa47ec6fc5da58195dd  bfd/elf64-tilegx.c
 05730e494a7adf373543b3f0592c4164  bfd/Makefile.am
 e63f6d01a376008a89e252c7b5cc1f6f  bfd/ChangeLog-9899
-f5d33de0d0b8e82384de2a4d4f8540ab  bfd/elf32-score7.c
+86bb31664430865c5c8fb5000b4ead15  bfd/elf32-score7.c
 80a3043c46d1ab36118f1475797058ad  bfd/binary.c
 744780429289047d02a7416e09a0d9cb  bfd/libecoff.h
-c8a2522a0ac6ce236baf84b7348b6067  bfd/elf32-avr.c
+b49f3f950a3516115dc70842f5116d99  bfd/elf32-avr.c
 128d592cb50fc75240a0441ca0ca27ba  bfd/elfxx-tilegx.h
-e50ff8e62b3a9a5f85146700ea0faa8c  bfd/elf32-h8300.c
+915dd4b7097c746321037efdead2d59d  bfd/elf32-h8300.c
 8dd9d74325aef6ded425b85583b17e90  bfd/mep-relocs.pl
 ad06b2d8cb037bf4e2929d37067e5b3d  bfd/coff-h8300.c
-fd30f5988bcb1ac96b9cce47b1ab5469  bfd/elf32-nios2.c
+2f9f61bfd50d4f1dec037be613309232  bfd/elf32-nios2.c
 09275d3351e1558137620abede3b976a  bfd/som.c
 7b89e415f08d597d888efc2c3dded43c  bfd/elfxx-ia64.h
-5d6400b5358d7e0ac9d4a67eb20c20aa  bfd/elf32-or1k.c
+f444e66934aa7381a3f124cfc44fd4de  bfd/elf32-or1k.c
 cf1a0b18fa9480d842f34e55bb2749f4  bfd/targets.c
-21c0b530618459bd763ed462fa2fc318  bfd/ChangeLog
+e1e44f499b0921342c3efabefcc0d799  bfd/ChangeLog
 f8ab1d36a2214606a4c8b223824d7e67  bfd/section.c
 03a3e8bbf7ffcbbed93d51fd38587804  bfd/elf-s390-common.c
-3b45f6190ac856f0e04c77018c6bc28b  bfd/elf32-lm32.c
+2a824ac0f56529c03015eb20c2a52f38  bfd/elf32-lm32.c
 8233c666286847ae4749ffd435042fb9  bfd/elf32-avr.h
-03b47ffe7ba822ddfc46d283e8e35a69  bfd/elf64-alpha.c
+4db08e61030ef1557d05b40f13b2af4c  bfd/elf64-alpha.c
 8e6361f95ed4c0100b69a4961d545b5a  bfd/verilog.c
 32a3bb71aeb679d0e39ba21676e7783c  bfd/libhppa.h
 cee7df168f299594b00e36cd7a27e2aa  bfd/pei-arm-wince.c
@@ -453,7 +453,7 @@ f9230e3b9c433e0ed8b5c5ef78e4f72d  bfd/vm
 3eca4088e49922d27f44a52963492be9  bfd/cpu-m32r.c
 493e50698d4422aeb8694109d7bd5118  bfd/elf32-sh64.h
 e4d15b25830892d20636bfca36e9d2d3  bfd/armnetbsd.c
-0a7dca1465e0909489696823e7d823a5  bfd/elf32-arm.c
+fae70eccf2ae0bd7233f0d4954d46245  bfd/elf32-arm.c
 59fbc0e33d0dc67ffdf9ac616d9b84f7  bfd/m68knetbsd.c
 7dbf0b0f614214fda3d80d8c462ada58  bfd/elf32-ppc.h
 a8cb3653c370611339e21f1999cd8fdb  bfd/cpu-msp430.c
@@ -461,13 +461,13 @@ ed00f135e12ad2c8d896328f2192f958  bfd/li
 2e212ef54128dc013c2d28cf0d9aa1a3  bfd/cpu-fr30.c
 82ead6d3be5ce8380b40fc12ed497770  bfd/corefile.c
 ecf3c0e3ab5920c42b3d91ae472accbf  bfd/cpu-vax.c
-de2cb5fe18e1165effbb53843582baff  bfd/elf64-mmix.c
+d2939646bbbf15c60c1cefef77713ffe  bfd/elf64-mmix.c
 39560502f881f15a564da0b51fff9474  bfd/elf64-gen.c
 50a7a595db4b2fa31077d73db76c5e52  bfd/plugin.h
 e0d7aee3733c5717a50e0a6056b7cd52  bfd/cpu-score.c
 c3d5920d42860e06eb10f5cb28d44eda  bfd/i386aout.c
 a6aeb501033330275ed9cca69e1edd52  bfd/cpu-sparc.c
-9c394a621498fa51786fde72f7aed662  bfd/elf32-metag.c
+188a5f79ddbfeaa511abffb78e17d49d  bfd/elf32-metag.c
 ec62dd6d1596fd6907545989b64c0ae3  bfd/elf-vxworks.h
 6e0d8c53fc1e04f5345366b92ab9d804  bfd/coff-apollo.c
 0326021603188dd9936fe24e15385ebd  bfd/sunos.c
@@ -475,7 +475,7 @@ f0081a1eb7e7392ae4ec3531bf8bb7a2  bfd/Ch
 cab82e465e667a38e5abb1a56527649f  bfd/freebsd.h
 d32239bcb673463ab874e80d47fae504  bfd/COPYING
 3d714c65797901e487a5bb371324fb78  bfd/sparcnetbsd.c
-fc296ade0a9bc430279e25358d03e6e5  bfd/elf32-xtensa.c
+df33365dd0d0c7caace4178a1d0cee25  bfd/elf32-xtensa.c
 2398ce3586b673d6a942be506f7aecbf  bfd/cpu-microblaze.c
 fd2f9654b84b3e4579ef175bb66c71c4  bfd/cpu-i370.c
 382917b0da6fab6f6a8cbb099b2f12ef  bfd/coff-bfd.c
@@ -488,7 +488,7 @@ b9d49a75781ef86bd6cb0494d056061e  bfd/cp
 582bfa80826da86c7f033d2ace654a37  bfd/version.m4
 5e76c1bd703ce0982bb7c2d3a0a54dbf  bfd/cpu-dlx.c
 14ec0d2998fb93fa9c67078f87cbd9ad  bfd/elf32-sh-symbian.c
-eea548da047234e62cbc8bc884b218c9  bfd/elfn32-mips.c
+ada3c489f714b527eb9af21f4f1e39de  bfd/elfn32-mips.c
 43359da34c1653775470072b08d4b500  bfd/cpu-tic4x.c
 f5ef2c1ceba928938e2a3bafe3a2aabc  bfd/cpu-ia64.c
 6474afde93f8e964e3d6dddffde3c41e  bfd/ChangeLog-0001
@@ -500,10 +500,10 @@ f5ef2c1ceba928938e2a3bafe3a2aabc  bfd/cp
 63709cda1a0a7dc8971c09920ea4f3a0  bfd/cpu-visium.c
 15cdfd7b5500a342bb89992c1638f683  bfd/ChangeLog-2007
 0054ccae33d2bbea9a7b6b6614604955  bfd/netbsd-core.c
-4144c9dab32acc070c5f42945368d266  bfd/elf32-m32r.c
+b8b1016a4b26f56460bc34c99f24867c  bfd/elf32-m32r.c
 3a81348960728feb3807e69af1e2a36c  bfd/cpu-iq2000.c
 5c603be299d6a336a5675b7a805820ec  bfd/coff-stgo32.c
-fe9782eb357972740e67205b3e4d0a90  bfd/elf32-m68k.c
+236374784f733895cece572e90528a62  bfd/elf32-m68k.c
 3e9d424fdbb8316bb39a10c33e4d9b2d  bfd/ns32k.h
 80a1105b21ac56843e3440af2e88e298  bfd/coffswap.h
 dfd680952f562949fa8d794e805d3a88  bfd/aoutf1.h
@@ -514,26 +514,26 @@ c0a2de73724a12c66673f4c472544109  bfd/ly
 40d9138055472a3259d668370535bbf4  bfd/bfd.c
 568149baff1f9da8708a8a88c339adbd  bfd/cf-sparclynx.c
 14366100f93d2907de7b7bb2c88448ea  bfd/ieee.c
-2b62289ac24c188ae2e9b1a66f1828a5  bfd/elf32-d30v.c
-a9bb03f4524914cca9c2a7cb7052acd5  bfd/elf32-i960.c
-8acd9f53cd317876da4ef3c6d882db9d  bfd/elf32-xc16x.c
-d6d4a2a4ad1b6ef5faf1b32a06309cdf  bfd/elf32-msp430.c
+3ad1566b519b2985faeec73db0ba93ab  bfd/elf32-d30v.c
+78d7b056f83969466754f30503b7633b  bfd/elf32-i960.c
+f2103dcab70ce6b9cd98d65c15262076  bfd/elf32-xc16x.c
+7042a17a57f1f25068ada5dd046b3336  bfd/elf32-msp430.c
 36b70a1c007c325158d66e8f20ee21f1  bfd/elf32-m68hc1x.c
 edd7cdbaf60a5f03a2b9ae58fb1add25  bfd/versados.c
 088c0e693077976b3ada7603af5a749e  bfd/coff-svm68k.c
 528e1da6ec7281aaed658344427f80cb  bfd/coff-we32k.c
 408b4868fd02001178bdb34e658c77fc  bfd/genlink.h
 0e9bc9ebc6a089e39cd083048a1ad028  bfd/plugin.c
-0e1a232c45938b62752df354c944e643  bfd/elf32-ip2k.c
+c3687c368bf73dff9deebf625a1e8ef7  bfd/elf32-ip2k.c
 21489f9dbd89eaa079c527ade7e0ae44  bfd/elf-attrs.c
 cc39076587026140e08b926dc8f01892  bfd/cpu-h8300.c
 041c0da247ec4416398d77b4d32d75f7  bfd/cpu-nios2.c
 11893085f8079863bb591f73ca77fd8a  bfd/MAINTAINERS
 2fb5035ff7965c690c782be6c2ec8d7a  bfd/format.c
-f963b25d09203fc19d1089f2d314293f  bfd/elf32-rl78.c
+858d86d4ee6206652a49fed8cc724619  bfd/elf32-rl78.c
 386070368dee9d18b020bc8825e882e9  bfd/cpu-tic80.c
 d0c940c8f383b5a4599b94bc4e224484  bfd/elf64-sparc.c
-ee7775662efe5034bd6a2240018a1e66  bfd/elf32-rx.c
+23a5f3db9d5bb5d6f8a9ef21cd15833d  bfd/elf32-rx.c
 7d7ab6c35eddfede93f6483db959cb39  bfd/archive64.c
 dbd4462baca956d3bd9d9e54f5565ace  bfd/cpu-v850.c
 b5d7351dda8c54e3df7d7c06cd3f8446  bfd/cpu-l1om.c
@@ -541,7 +541,7 @@ e8ff6bd53bf83fcfa842cd19e26f2bd8  bfd/nl
 a37b1349afdf69de54baf5ec9587728e  bfd/pe-sh.c
 969711ccb3617ea84ee8e2d221b45c53  bfd/libpei.h
 e5c21ba341204cf1a46726ae6387fdde  bfd/aix386-core.c
-32c0086f5176cb12e73ab371ce5034d0  bfd/elf64-x86-64.c
+7c9d5912766da4ca15367431ebaf842a  bfd/elf64-x86-64.c
 e205b75bf088fd0bb4a7a4bbc4b33774  bfd/cpu-tic54x.c
 a147777c7a198284a4f45824d96109d0  bfd/pe-i386.c
 cb86d44fdc4ae832ae39b628829dd405  bfd/coff-m68k.c
@@ -552,19 +552,19 @@ cb86d44fdc4ae832ae39b628829dd405  bfd/co
 1c6e3e8c279bc5edbaa9d876b9dde41b  bfd/cpu-z8k.c
 29952ce92bd4ce677caa7c95f5ef150f  bfd/reloc16.c
 fb0a60df94affe77c9469deef15b0e37  bfd/ecoffswap.h
-7c4a64e99ec4f6789667dacfd65e0516  bfd/elf32-fr30.c
+204cd6e074f77ec25ed218f346e220c8  bfd/elf32-fr30.c
 f3c18d36ab64b75f8265a880be50e1ee  bfd/cpu-v850_rh850.c
-97c39fddd902f8cea1bee2cf25f28cf9  bfd/elf-m10200.c
-ac3917eb8d8043cefcc39bed5d422b73  bfd/pdp11.c
-c3532863c122692522074620827f5033  bfd/cpu-ns32k.c
+13ec50ed33b4c0768e9089f9d26c8655  bfd/elf-m10200.c
+cc22cd5cd6ad51db255552ac206128e0  bfd/pdp11.c
+316e7138855d3f1b02045ca0fc80b3cb  bfd/cpu-ns32k.c
 d8fbf73ef99d9d2dd69a8f61749d0f75  bfd/pei-i386.c
 9e8fb4595b9a6fdbb6ea00f3a5b0af1d  bfd/elfcode.h
-30e7894b98de9915a886a8e88c46ef2d  bfd/aoutx.h
-02fc4579955381c19f9c209f2d8ed690  bfd/elf32-sh-relocs.h
+0c8cbfe426a2d6b090d2b812df68fcaa  bfd/aoutx.h
+8aeb63d2d453cf4c114cc3f3162a3522  bfd/elf32-sh-relocs.h
 65f475c12d6a766fc65f1c412b10a134  bfd/aout-arm.c
 94efa52d3de5a415078837cca325122f  bfd/libnlm.h
 52eaff64dd34df2d3042d9c5d4343f0c  bfd/mipsbsd.c
-c96e74b885dcb1c782f2fd60aad14f42  ChangeLog
+ce28fb557d0a71ed53c46065867a25d1  ChangeLog
 500b9244caa7a7ab23ece1db37efa76d  compile
 042203b305962ba9a8f8474ef80edeee  config/enable.m4
 9238d23c68259d195b332db71892d242  config/acx.m4
@@ -652,8 +652,8 @@ c53118f6682ac1db40935d5705145d5a  config
 4adca919c67d00b948bf581991b79bbf  config-ml.in
 040359150cf11493f973a46d8a25b06b  config.rpath
 e768d6a5b46753aeb6800eefb4b2540e  config.sub
-0c80bbeea87808aa622a94aca7f4a547  configure
-d9488c6eb732b8f258649d6427b5851e  configure.ac
+93cb77ad8587ea3e4dcd64ed0b104d05  configure
+f41a536c5f6c196772cfdc9982c226fa  configure.ac
 59530bdf33659b29e73d4adb9f9f6552  COPYING
 d32239bcb673463ab874e80d47fae504  COPYING3
 6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
@@ -715,40 +715,40 @@ d5faa80d97899ae08accaff400923890  etc/te
 04c402a3f17c2e0e5d13e424d617e88a  etc/configure.in
 fc5add2ae5b4d8e20b81b70008807670  gdb/xtensa-xtregs.c
 68542493a958e6f0edd04069a733f6fd  gdb/config/ia64/hpux.mh
-de50d1b86b9840f178aaff8d3240c0ee  gdb/config/ia64/linux.mh
-cf6f7d85562b511a530d5c28d0cc3eaa  gdb/config/aarch64/linux.mh
+277378a9fd7172f959eebe0375a56855  gdb/config/ia64/linux.mh
+d1dc13a0fce341ea7a624ad944a002cc  gdb/config/aarch64/linux.mh
 869f55b72d1468bff76771d7f03aa275  gdb/config/sh/nbsd.mh
 48bfa91312c1e6daebf1f587fa78df9e  gdb/config/m88k/obsd.mh
 35cc06513a613ea3ddfbbcafd2806b8c  gdb/config/mips/nbsd.mh
-e01d11cccb6b509c287f297e8e054f93  gdb/config/mips/linux.mh
+6ff1c0b80b70a2b43109b8491e536159  gdb/config/mips/linux.mh
 65c76e27e47f3ec8ba9c25f3ead9b124  gdb/config/mips/obsd64.mh
-db43e4622ddebe95d137560123a3f852  gdb/config/s390/linux.mh
-66a86a4ec32860327ec2a80a87c52621  gdb/config/xtensa/linux.mh
+9b28bfc5385b4c513063509634c008bc  gdb/config/s390/linux.mh
+b37d6ad370e4f2147fe4260159b092d7  gdb/config/xtensa/linux.mh
 cd6b15803e2aeb602978e1ae9451876c  gdb/config/m68k/obsd.mh
 cb8b6190eebde036c1376deb445c072b  gdb/config/m68k/nbsdelf.mh
-cb8718804f2c6ec76edce38ab842dd3b  gdb/config/m68k/linux.mh
+984b7ce1952b29b59c9310bc000229fb  gdb/config/m68k/linux.mh
 50d34c69fd748a7286255eea77e014e6  gdb/config/pa/hpux.mh
 0e6e3c4eaf0de24e8e98ea1aea7e81cd  gdb/config/pa/obsd.mh
 c8a8841e6cc8fd8534ff677f827e804f  gdb/config/pa/nbsd.mh
-85684b2f615ad25ec7707a7378de16d3  gdb/config/pa/linux.mh
-2e176e9030598b80adbc5d896cffcbe2  gdb/config/tilegx/linux.mh
+69515dd8e85585789c91c7dca0f3a768  gdb/config/pa/linux.mh
+0a2db764ff0813d065329de0e3c41d6a  gdb/config/tilegx/linux.mh
 5b942d1c4d86825ddefe7ef2489e383e  gdb/config/nm-nto.h
 f332e60007104654448d9807e75349ae  gdb/config/powerpc/obsd.mh
 a7cd77b6bf01b264dbedbb0a79c828bf  gdb/config/powerpc/aix.mh
 38dd1bae3ecda3e95fe9af6adbe5c3d5  gdb/config/powerpc/fbsd.mh
-997f62a3289f18293e0ed69b5c6cb17e  gdb/config/powerpc/spu-linux.mh
+4ba581f343285fb1f44fafb3dfaab5dd  gdb/config/powerpc/spu-linux.mh
 8ad26d2ccfeec2da7581634421706cbf  gdb/config/powerpc/nbsd.mh
-83229ef1efba468927c733cc54661a95  gdb/config/powerpc/ppc64-linux.mh
-7aeeb8fd840686bf24445025743e7fe1  gdb/config/powerpc/linux.mh
+ec2742ad94632789d694416e6c9a1f28  gdb/config/powerpc/ppc64-linux.mh
+b0662f50dce8f8ec38816bae060faf60  gdb/config/powerpc/linux.mh
 5e2e342d41273e8c11c6c8b21d698690  gdb/config/sparc/fbsd.mh
 fa5c681e54a6e249012314eb54849460  gdb/config/sparc/nbsdelf.mh
 1c336614ad1c95795851d0b836ef97a0  gdb/config/sparc/nbsd64.mh
-979587fa8970c79ed03a1c88681dbce2  gdb/config/sparc/linux64.mh
+b9a73853d99098fa2e0d25edd8188def  gdb/config/sparc/linux64.mh
 8a92fe184d274d3324658f8415032ca0  gdb/config/sparc/nm-sol2.h
-384b29ece971dd9c403537b8adfcabcd  gdb/config/sparc/linux.mh
+ebded01018ce9363060878e1a5bd0e38  gdb/config/sparc/linux.mh
 d8fe1d52ce790c8d797dbaae30262390  gdb/config/sparc/obsd64.mh
 1c24044c37c365045d35d5ae402d8eb0  gdb/config/sparc/sol2.mh
-c9db60918e9063c0baf27708490ba2e0  gdb/config/m32r/linux.mh
+a42c7f4ced32f9809061370befce2316  gdb/config/m32r/linux.mh
 bde487afd956fa6e0e51bc1c36ba2daa  gdb/config/djgpp/README
 63353f8dd933ad1e1c7886b261edfa77  gdb/config/djgpp/langinfo.h
 da0da20930e8e620700454c19ac4f873  gdb/config/djgpp/fnchange.lst
@@ -756,12 +756,12 @@ cdc11406d9e6e5c91f7643088983ff30  gdb/co
 0882a479a182f9afb6ab6e9087dfb4aa  gdb/config/djgpp/nl_types.h
 d3b712b49058cd872a158a22830d8595  gdb/config/djgpp/djcheck.sh
 7e8d5ef19b609b0a8c87c46b7c4a5bcd  gdb/config/djgpp/djconfig.sh
-6ad1003474d79d29d46dd1a8d3a56069  gdb/config/alpha/alpha-linux.mh
+c8a29efe50b21430048dfeb5d3da7703  gdb/config/alpha/alpha-linux.mh
 3c04391aa783e9e4629b853321d2978f  gdb/config/alpha/fbsd.mh
 20481186c3d462f0c728913b6cc6edfe  gdb/config/alpha/nbsd.mh
 778883a03d01b70aa5710d8fb5b5c87e  gdb/config/nm-linux.h
 0cf93dd677f37b32e39c18d54981bb7d  gdb/config/arm/nbsdelf.mh
-a25878b6e5465e4c15346b336349b5c1  gdb/config/arm/linux.mh
+c2f6bb455dbe481ebf28832814ba72a1  gdb/config/arm/linux.mh
 dc972270c570b194943d1f40cfeed282  gdb/config/i386/obsd.mh
 0563aaaac3b4b491622b58f4ace9fbf2  gdb/config/i386/nm-i386gnu.h
 31d842182ab24dcc13e79680df9870ba  gdb/config/i386/i386gnu.mh
@@ -777,8 +777,8 @@ ab598c6b4b5e2d83a754782e415958d9  gdb/co
 c02684e7d073f4f7b9a5eef41a7a649e  gdb/config/i386/sol2-64.mh
 be67125a435c25ef4e87c1b219960a95  gdb/config/i386/fbsd64.mh
 227ba98d865063107c08a9530ac2f8fe  gdb/config/i386/nbsd64.mh
-c227c2fbc55c382a3bea783a776311a1  gdb/config/i386/linux64.mh
-9ebd15c11764bc4399c33c652f244407  gdb/config/i386/linux.mh
+f79e5ae0c7493a6e67d1b9f2494fa502  gdb/config/i386/linux64.mh
+9bfeb426e2fc24a9216d954274d9541f  gdb/config/i386/linux.mh
 f3d81927270e9271ff8559c22d269b2b  gdb/config/i386/go32.mh
 39eca0a56671394060727a43fb65fcfe  gdb/config/i386/obsd64.mh
 8b54be90e421a7e7ed1aff59b0f147f9  gdb/config/i386/mingw64.mh
@@ -790,7 +790,7 @@ c9f114075816f8846825dbad346478c6  gdb/so
 31ffc2e7e8d40a8b5085fc1098376bb3  gdb/d-exp.y
 c438a9b555ebefed2e0177bb9e6a2c57  gdb/ada-varobj.c
 cda87834b2337e870862d97aa1ffb914  gdb/common/common-debug.h
-bd4e7c8d97a05a56a4847ba940a062f1  gdb/common/common-defs.h
+71c13d03fc96a07910fd745b60a8d74f  gdb/common/common-defs.h
 f04b1cb2224856c2871fb86f497e3aba  gdb/common/buffer.c
 bb26a191e62c2ce59cd872b45a099412  gdb/common/gdb_locale.h
 9f5667d7c18b102107e64b0de5341ddb  gdb/common/filestuff.h
@@ -800,7 +800,8 @@ bb26a191e62c2ce59cd872b45a099412  gdb/co
 661a20cb5c67aa082d0e4a1366929392  gdb/common/gdb_wait.h
 cec95828b019dd5951d3852a2a99d384  gdb/common/cleanups.c
 da446dd37440c7bc582cd72ecb6ddd78  gdb/common/agent.h
-597bc4c6de275997d7104f6f8e1b5a7e  gdb/common/common-utils.h
+8c5996516c875bdfeb902a8004f6a1ea  gdb/common/common-utils.h
+09084474c1751da3b1d56fcf533a759a  gdb/common/posix-strerror.c
 2faeeb38c36e5fab67ce9d3531a18bec  gdb/common/common.m4
 5692326a05c285ded29df3aa5b732ac7  gdb/common/signals.c
 8acf17224417c467215ca6fa15d0ca42  gdb/common/common-debug.c
@@ -831,14 +832,16 @@ f973d63feadcf1dd3cfb037656ec0b37  gdb/co
 e925ff742cbafa41d847f367346b2c2b  gdb/common/ptid.h
 c1fa866c3f4bc3f7902cf01c2c0317f2  gdb/common/symbol.h
 411ae14f6e04c3fc70546abbd2499fba  gdb/common/print-utils.c
+76a463a839441ba954a8b0c7c00e6d04  gdb/common/mingw-strerror.c
 3faa70d851d8d48a3707fe3b7098fb6d  gdb/common/common-exceptions.h
 f4619fad78d8e0b2aee74da19e4cd033  gdb/common/print-utils.h
 30b30d0cde359ef1702e834c558901a8  gdb/common/xml-utils.c
 e2113af6e4d36c964d69ad1a4a8a5093  gdb/common/errors.h
+767e668f66933f3f633a704368607ed0  gdb/common/common.host
 8b8e4c538311148aaae283cd3a10df95  gdb/common/format.c
 c3515c65c1f679468eb6f337a893dfed  gdb/common/errors.c
 4c3340612ba979d355e2c5a62bb8c995  gdb/common/gdb_vecs.h
-b8b4507e5a6da06073592f8d9523b5ed  gdb/ppc-linux-nat.c
+b291c26b1e5cbb0f7e979d60502a922c  gdb/ppc-linux-nat.c
 2bb1dd4853e47423930a4fcadb854a58  gdb/charset-list.h
 9554c184a5a9ce1f9925024494382c39  gdb/m2-lang.c
 0ff0f004b107c8793ca3715112c6914b  gdb/corelow.c
@@ -854,7 +857,7 @@ d5d3749be7e1d3b59549567787e51163  gdb/Ch
 c5816da294f443ff3877e5d1d5cd1918  gdb/f-exp.c
 37a118b38be1b8261e23f580a6c83991  gdb/remote.h
 65f53133b6b610218c50184a013d7039  gdb/gdb_regex.h
-019d51ffed2e2e3d26292a7aff480485  gdb/defs.h
+b4c9c83c4e23e06fd1f9eceb9476fbd8  gdb/defs.h
 e5e589fe4f10abb8957a8c2e4cddb7f8  gdb/ChangeLog-1995
 cd3909426ad79de9de798fc760d9f157  gdb/solib-target.h
 51098811b1303fff4ec781a6ff572094  gdb/mn10300-tdep.c
@@ -874,7 +877,7 @@ cb8274393a0cc44e23f67bc2a459ee0d  gdb/fr
 75102680be05546de75c6c96b77b583a  gdb/bcache.h
 bedf31337b21b8353257d3303808d843  gdb/contrib/exsummary.py
 4a775e0ee85b634f62f37c31729548eb  gdb/contrib/expect-read1.c
-65c1ae234275f7a8e7fa74257591a6a4  gdb/contrib/ari/gdb_ari.sh
+45c5b4c1ca267781213e36541039339c  gdb/contrib/ari/gdb_ari.sh
 80c7fd1eb6591e085d08b19f9cf746a2  gdb/contrib/ari/update-web-ari.sh
 12a3fab903464012c474bc5db100dcd3  gdb/contrib/ari/gdb_find.sh
 8f2b0012c22f882ce59571ec216dcafa  gdb/contrib/ari/create-web-ari-in-src.sh
@@ -888,7 +891,7 @@ a8325de9c6473c15722e1cfdb6d2ba24  gdb/co
 66e64d38d64c18c47e8605b6267e09b5  gdb/tramp-frame.h
 ddbd14b96c4b153eba02ccadf4ed9807  gdb/gdb-demangle.h
 f20f59d9e6fa60e85eb9a2d727e3e316  gdb/ravenscar-thread.c
-ac8ee0ecbd0e05bda3d513127366b748  gdb/Makefile.in
+9fff19e27b668a7889b01ca84ae0d345  gdb/Makefile.in
 e28da424ccb6965d0ba6955035a6b04b  gdb/btrace.h
 aaa0a2d54605b37838cf54ced8baa29e  gdb/windows-nat.h
 f64c228a59ac9322bf93cf5a805339cc  gdb/sparc64-linux-tdep.c
@@ -928,7 +931,7 @@ afb00927983ce834b553cd4b764514bc  gdb/py
 f40fa46aee5e124221ecc85c11c0e625  gdb/python/py-continueevent.c
 fb153c0ced0a54b429192e95f106b3a5  gdb/python/python-internal.h
 a38017640c3f553d280275e044df15da  gdb/python/py-xmethods.c
-7ddf01f608cf79b423b9d9cfecc99c34  gdb/python/py-objfile.c
+5ab12f3466f7b45e5cffc08a86021c74  gdb/python/py-objfile.c
 053cf89ff7248e637fc5f4819d000e07  gdb/python/py-event.h
 ef430d8660bd46238222bf0e10629d8b  gdb/python/py-frame.c
 3b23d7e4542a89c8993cfdead0c72ec4  gdb/python/python-config.py
@@ -994,11 +997,11 @@ d6b3833f598e3f0a84aebdfbf32a2ea8  gdb/fr
 47989454eddcd0470790712307d47ca8  gdb/observer.c
 3d0a40abec62c905315c610a1f53d492  gdb/ax-general.c
 cefc955e3648ed3e16e8636d18fe01ec  gdb/record.c
-927d87e3698eb5030b76dd63567a5df0  gdb/ppc64-tdep.c
+e764787944df3787f0d5fdebf3ba14d9  gdb/ppc64-tdep.c
 b140924f302460c58ebf7a177d15ace0  gdb/m68klinux-nat.c
 618d8e7823d485a6efa1f4af8f0a7cf2  gdb/iq2000-tdep.c
 38dee62ccc0f2b4763b9e7636861fd50  gdb/ser-base.c
-e3d0f0bdab5dd71b3113c1813a8c8958  gdb/version.in
+ffb21f52d27cbf7cadb94e36b9dc88a3  gdb/version.in
 a8d8854bf856b98332256bb96b38d858  gdb/linux-record.c
 cc1acd769ea7271fec38ee4788737ad9  gdb/sparc64-sol2-tdep.c
 4e5a2f9ad7d2ff12e0b1f04a9c2c188e  gdb/amd64-nat.c
@@ -1021,8 +1024,10 @@ dea983db4ff36484af6ddcfd3edfe228  gdb/go
 fd89864cd40e82e38159fe3ad6045b21  gdb/inline-frame.h
 87e62d8e44ed7100fe7943a91806179d  gdb/nat/linux-ptrace.h
 0936bceea98a1254eabe4428b52495fb  gdb/nat/linux-waitpid.h
+be424280b77ff457597d25630f8beb6f  gdb/nat/ppc-linux.c
 2740410d5f15ee52ae7e6e59e91c3b81  gdb/nat/linux-ptrace.c
 35dea2eaca77dfeb3b2512c366ed065f  gdb/nat/gdb_thread_db.h
+6d3ef82277550a0fec1f1fb8b5d7de86  gdb/nat/ppc-linux.h
 4388ea55be0c9f2b4102d22089fd9d87  gdb/nat/linux-osdata.h
 d60a54fbdfa129e9bca6a9f893d16563  gdb/nat/mips-linux-watch.c
 8fecfdb6ca2b3f42838a7ffb794dbd71  gdb/nat/x86-cpuid.h
@@ -1031,12 +1036,14 @@ d60a54fbdfa129e9bca6a9f893d16563  gdb/na
 3fe5aad707b22a94b6dd384ab77fd7b6  gdb/nat/linux-nat.h
 5fa3b003ca5aa9fe60d784e71c72e6f2  gdb/nat/linux-btrace.c
 669b39680313d2b003d1478b9f530a5e  gdb/nat/x86-dregs.h
-eb76737a6846a756bdddceb587ae5b00  gdb/nat/linux-procfs.c
+389c27dfddcf79e8bef9084b21213484  gdb/nat/linux-procfs.c
 7c634adb1aa24083300683122bd42808  gdb/nat/x86-gcc-cpuid.h
 4b84e5a576abd405b38fc5ef3998ee9a  gdb/nat/mips-linux-watch.h
 adae21661830cc755ff5274534e762d4  gdb/nat/glibc_thread_db.h
+246e0ace1cfae5ea2781c283157f1d6e  gdb/nat/linux-personality.h
 fe4143f3ce547c7ca0ef5c4972db2be8  gdb/nat/x86-dregs.c
 246584efd5a64e365b15d08ec028584a  gdb/nat/linux-btrace.h
+a20db5a50862281e0c33c011e26917ba  gdb/nat/linux-personality.c
 7f96493e385a602effd492459e9d90e8  gdb/nat/linux-waitpid.c
 6d6af0cb7ab4fd37314aa8af76ae26dc  gdb/dsrec.c
 9c609b5097f68ac06f991a9dc487090e  gdb/go-valprint.c
@@ -1050,7 +1057,7 @@ c09e21356bd4f9251847da4f1ae99011  gdb/ex
 df1eafa13b10c63f78e69fc7443e0a5e  gdb/x86-linux-nat.h
 c5fa7b9b264b03e417343f27cd49eb77  gdb/sol-thread.c
 aa0ea76db0f9efc6a6884668f9500cc7  gdb/xtensa-linux-tdep.c
-3170d8681020d338e156e653d030e527  gdb/configure.tgt
+1902798cfe51c895d979924b0b65f4ed  gdb/configure.tgt
 803e8c2dad315f05d967a6b8fc399e95  gdb/solib-aix.h
 93c02f27994d9b9f2c27c0d08bc21cfe  gdb/event-loop.h
 443a36e2661a6b6191e7f25d9c17d3f6  gdb/ax.h
@@ -1097,7 +1104,7 @@ fed9291652ccb5d854476543a3a0efb7  gdb/re
 1bbe8a3e1cdd9840472d5546f85e6b84  gdb/copying.awk
 19557e853c5aad83c6a6b6de2179e05f  gdb/valprint.h
 7f1ef35081accbee4ac668a10541bf6a  gdb/ravenscar-thread.h
-e3ff53fef158429adc2c96014df353e4  gdb/objfiles.h
+21cc646ee739ded78f60639fedc45400  gdb/objfiles.h
 7bd6a59809bf11c11dd8b7ca70c0a8b6  gdb/reply_mig_hack.awk
 55c905a01e5946f64db9d0421d09f330  gdb/nto-tdep.h
 24096aca3294cab3717506c2c69a7272  gdb/msg_reply.defs
@@ -1112,8 +1119,8 @@ fb7275697634f50659638ed9d450ea21  gdb/se
 0018924ecfaff1180ce7f7ae591f36bc  gdb/ui-file.h
 558deaffbd3865bb86b926fa70939ce5  gdb/user-regs.h
 f98668e6b62ba2b17a25ebb7e9961fc1  gdb/PROBLEMS
-78f99691c1ca970a41d62972cde74860  gdb/config.in
-5b0155880effceb52f035b3defb84104  gdb/configure.ac
+33bf28ba4c406e7dee059501c7f6738b  gdb/config.in
+f6d18c495a5df8eb4b7ca71fcdfe92ae  gdb/configure.ac
 05cd9a9bab662b87d71bf65416dad203  gdb/amd64-sol2-tdep.c
 2fecfae7bfbd339afd0a57d6d7406820  gdb/vax-tdep.c
 996868fc568af118fe9bfaa52c492c52  gdb/sparc-sol2-nat.c
@@ -1152,7 +1159,7 @@ c9a7d0ae9a34c2007499a6fb7e8215cb  gdb/sy
 2d007e2209726af20a718da2fc9556d6  gdb/syscalls/ppc64-linux.xml
 c6bf222ab1ebd9888e28db80e142383b  gdb/probe.c
 3b5aee179935a8c233e2ccde17fc2baa  gdb/osdata.h
-5d5886a330252619563642f4b4407a4c  gdb/posix-hdep.c
+4156bba114c29d23e8a824ae8fce2253  gdb/posix-hdep.c
 cc609ad8cb20c4bf7ab00ac44e50a212  gdb/varobj.h
 66233ecb73e6d9dfbd6a256e6dd89a35  gdb/tracepoint.c
 7e27645f119cb27c84aa755eda0b1689  gdb/cris-tdep.h
@@ -1176,7 +1183,7 @@ bbc4d2132f27f80a5d4c268eceba04ff  gdb/i3
 a8af9c37d883b238667e9ff6299b6f73  gdb/windows-tdep.c
 c33585b70e4bf7a1bd2a87bfc21613f4  gdb/coff-pe-read.h
 2788d751ebfad04954c20ccdd1247d90  gdb/go-lang.c
-4dfc62cb444f1c4d5ee153fb21917353  gdb/infrun.c
+2e388de6be14dfacf6651bae0c6afca9  gdb/infrun.c
 3db1059c60168d68684df8f0cd8c61c0  gdb/jit-reader.in
 6aa329ad33ff5514735bb6033105b465  gdb/darwin-nat-info.c
 d34fbc70014a82bf4c5ba4813ccadd48  gdb/ada-typeprint.c
@@ -1223,7 +1230,7 @@ a9b97c52780878de05f66e61e9195904  gdb/sp
 0672336892a008ef724e95c494f3d9f0  gdb/m68k-tdep.h
 a467aae7b77651d3fc0671b106e9ac48  gdb/typeprint.c
 c62396471ac0e41b5b86b9f918c070b3  gdb/solib-aix.c
-65d4d83424f90b61300aecad3a789d29  gdb/ppc-tdep.h
+6625b661519c84faedb47fdf36d87d75  gdb/ppc-tdep.h
 08d61feeff6935f601f0174fff2f75e0  gdb/configure.host
 a3538b99c15297deda03355f4e4e7ad5  gdb/x86-nat.h
 d79f3e87bca0ee0dc08dc3c397bf2abe  gdb/linux-thread-db.c
@@ -1236,7 +1243,7 @@ cbd451a00769a9c8c7c6cd52f55b861b  gdb/sp
 2bf7d0eb07c73f019c7d3e6a908c8524  gdb/environ.h
 b30a9321996160345deeb868fb99280e  gdb/m32r-linux-nat.c
 2d0cad5387bf3be80d7e445a4954af0a  gdb/gdb_bfd.c
-f212cb17fa15b7937127aa26a10a49e0  gdb/NEWS
+73c1ce372d0ab10ad39dd125876b9211  gdb/NEWS
 b4133d1e27b97096efb8d84ee2b7d3eb  gdb/ppcnbsd-tdep.h
 a9b65db6bf004e64ec3699d48e10521a  gdb/x86-nat.c
 367bb9fbe21d534fdf0bb25af4eadbe0  gdb/dcache.c
@@ -1322,9 +1329,9 @@ e4653b8164f49df138a7e01723576845  gdb/tu
 0415f3bd7a379430b752618c1e8c7cd4  gdb/tui/ChangeLog-1998-2003
 1d19005da7b560bbbf08c980e51c6187  gdb/tui/tui-wingeneral.c
 4a4afe46d85b71f8fa6d34132a7ceeac  gdb/tui/tui-out.c
-5e6ffc0753df14c935f75027a4ec695d  gdb/tui/tui-win.c
-63b04b55cda120c11453d191063cf904  gdb/tui/tui-data.h
-18ef2b4ace0f6e4c8c0a4b15e4a4297f  gdb/tui/tui-win.h
+dc59d44c22d7762a8db4b0b3b5a81cd8  gdb/tui/tui-win.c
+507558c245fbd4eaeedef4f8710aee2f  gdb/tui/tui-data.h
+a00af0b3d564766feac256be243cd13e  gdb/tui/tui-win.h
 078dd665f1197041beb32618339bdb35  gdb/tui/tui.h
 22ba10c6afb57aea83a17eaa71a26c31  gdb/target-dcache.h
 ebe83df475f29d37d71caebe88afd02a  gdb/ui-file.c
@@ -1403,7 +1410,7 @@ edb721e2ec9f07474b1796f568c29e38  gdb/te
 843dde6eb20afd77a42869ea1c4eed28  gdb/testsuite/gdb.compile/compile-nodebug.c
 62073238e896ea63f98038c5231f8aae  gdb/testsuite/gdb.compile/compile-constvar.S
 b9c82080d60afee3631fb03f58e59937  gdb/testsuite/gdb.compile/compile-ops.exp
-ce1b3c7864c6736407ffdd859e02931b  gdb/testsuite/Makefile.in
+39e8cd61f1bf700eb7a98d97a648c6ea  gdb/testsuite/Makefile.in
 f3119ae35b66a4c668e6f2e2d9462cf7  gdb/testsuite/gdb.cell/data.exp
 d948d2819b08182c508c6ace48edd9eb  gdb/testsuite/gdb.cell/ea-cache.exp
 d23865e735526e7cb0168012770f88ae  gdb/testsuite/gdb.cell/ptype.exp
@@ -1902,7 +1909,7 @@ ef99dbad1232f21dfd9a5bcf5b7bc8ca  gdb/te
 4ed9b1d095345f729fa5c180544a79f1  gdb/testsuite/gdb.python/py-pp-maint.c
 e4e3c9741d8c4a64f9dc02a1a8bb87e1  gdb/testsuite/gdb.python/py-caller-is.c
 463ca9bfd3da6bb99fe10d5af8045930  gdb/testsuite/gdb.python/py-objfile-script-gdb.py
-afe9eb704f834af3afef5d82c4c313f1  gdb/testsuite/gdb.python/py-objfile.exp
+b0710d4c4d18e1ebf474c9f67924ede1  gdb/testsuite/gdb.python/py-objfile.exp
 7ac71c6d831cc688cf31a83496d75154  gdb/testsuite/gdb.python/py-frame-args.exp
 4624139b71a43818a68d6922ad202b76  gdb/testsuite/gdb.python/py-pp-re-notag.exp
 622d933a42f288fe576526348d767613  gdb/testsuite/gdb.python/py-pp-re-notag.py
@@ -1929,6 +1936,7 @@ b3d2bcc6363456b4080cbfeb213041f7  gdb/te
 2db47e6d29838ffc8b96dabce27fef00  gdb/testsuite/gdb.python/source1
 cee52a94f909d092154f9fcaa9fcb764  gdb/testsuite/gdb.python/py-linetable.c
 7dde992c265a9bf984ef08f06c3b0f11  gdb/testsuite/gdb.python/py-finish-breakpoint2.py
+70bb6fc8817d764dbbc74e2a009e339c  gdb/testsuite/gdb.python/py-lookup-type.exp
 5673d62b78d471afda193e1d08d264ca  gdb/testsuite/gdb.python/python.c
 5f2a14106984ed919fa12f9d8cd9d4b8  gdb/testsuite/gdb.python/py-inferior.c
 387632b8f22792e3c276615dd4f99036  gdb/testsuite/gdb.python/python-1.c
@@ -2255,6 +2263,7 @@ bbd68c316d4ba5e21f8aac02eb605fa4  gdb/te
 3f26f310dd852d066d042815d787debb  gdb/testsuite/gdb.base/twice.exp
 379c0e0f36e29f58e5f2a93fc87e9845  gdb/testsuite/gdb.base/call-signals.c
 df12c3f822f0c6bf0ffaf1280f9d4456  gdb/testsuite/gdb.base/expand-psymtabs.c
+b8197e9e4af99772ef1af688c9a137f7  gdb/testsuite/gdb.base/batch-preserve-term-settings.c
 719f14e9033c0bdbbfea148fff08c7b0  gdb/testsuite/gdb.base/vla-datatypes.c
 cf0a177d340716d59f214c92e20494f5  gdb/testsuite/gdb.base/ptr-typedef.exp
 bb7f856ac173eae93156f050e555bbf7  gdb/testsuite/gdb.base/continue-all-already-running.c
@@ -2327,6 +2336,7 @@ b7336a3a076fb1186c46ea7368c2892e  gdb/te
 10a323323c8c361540e21872a6c81d99  gdb/testsuite/gdb.base/stale-infcall.exp
 d9f3d67929f3a43628ab7c04f4144ff6  gdb/testsuite/gdb.base/eval.exp
 e675912d9d01b8e3dfbd2d8f31ae3bd9  gdb/testsuite/gdb.base/run.c
+a986a1cac93b2bb3c03983695e55b943  gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb
 f710281147d0c0cbedf199cf5889849a  gdb/testsuite/gdb.base/value-double-free.exp
 09774f509e84fedbd77491b65f95bcc5  gdb/testsuite/gdb.base/debug-expr.exp
 6d0075e1140cecff27031cf711f9d08b  gdb/testsuite/gdb.base/sym-file-main.c
@@ -2394,7 +2404,7 @@ db2e97e0bc6fe963fa7f052c8e8a0058  gdb/te
 c91dc02b2808e8a864fb27d91afd2790  gdb/testsuite/gdb.base/duplicate-bp.exp
 e33f3eea7d6105e0265ef823ed34ffc7  gdb/testsuite/gdb.base/all-types.c
 3ae11c0e5354883e98afc5d6791f50c8  gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.c
-4b0c1ade0ca999068632726245567e5f  gdb/testsuite/gdb.base/attach-twice.exp
+eab8fe282b814d3adb678e76e037b021  gdb/testsuite/gdb.base/attach-twice.exp
 f26f6516cfff47b633b5ed2ea168be37  gdb/testsuite/gdb.base/info-shared-solib1.c
 ced1e1041189426156fe6bb35e723559  gdb/testsuite/gdb.base/find.c
 d3077c28b971fd138046d0dc006ce243  gdb/testsuite/gdb.base/func-ptrs.c
@@ -2429,6 +2439,7 @@ dc961eae263ada330c1db9dc91737ee4  gdb/te
 3662af4fc62fcb2376197f68d7f0986b  gdb/testsuite/gdb.base/solib-search-lib2.c
 853baa2a2248895c028c3985e6add26f  gdb/testsuite/gdb.base/foll-exec.exp
 d3aeb778c6fff69902873e009f259399  gdb/testsuite/gdb.base/dmsym.c
+f511f485328fe2887a126e09e35493d2  gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c
 972cfc29eab1218ea347b6b58072acb2  gdb/testsuite/gdb.base/alias.exp
 cec0385b9869bb484321c6a1e304be82  gdb/testsuite/gdb.base/gdbvars.exp
 e9def40b8c3f9e881284d39ad06a81a3  gdb/testsuite/gdb.base/structs3.c
@@ -2562,8 +2573,9 @@ c003a0b4c20c35b13875bc20268a9017  gdb/te
 42ce7c95b90c7fa7080f984e16f3cb6d  gdb/testsuite/gdb.base/mips_pro.exp
 2d70eb4738500f885cb68e862cf88b7e  gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp
 7147daba20e06858b75d3522d6ddfd3e  gdb/testsuite/gdb.base/completion.exp
+59a90917be2c4fc3f76ddee248f5b09e  gdb/testsuite/gdb.base/batch-preserve-term-settings.exp
 601f4ed2b5be1d234ba175e76d7bba62  gdb/testsuite/gdb.base/branches.c
-b56e773426d12458a2a3f8f366871cce  gdb/testsuite/gdb.base/attach-pie-noexec.exp
+20b63a2c127d0257909bfbed9356c5f5  gdb/testsuite/gdb.base/attach-pie-noexec.exp
 735f2aee0b46c08c0ba31f576162646b  gdb/testsuite/gdb.base/gdbindex-stabs.c
 bd32d4dd2180b52e3d1a3a37f68ff0ed  gdb/testsuite/gdb.base/func-ptr.exp
 79696e315e518bcff76ca31d67e55856  gdb/testsuite/gdb.base/remote.c
@@ -2755,6 +2767,7 @@ b23f8f7a95ff7e12ce9b87066a8bbe0c  gdb/te
 0745c0fe7af468ba250d8d19c5090ce6  gdb/testsuite/gdb.base/whatis.exp
 6ad0ec3204e5ef6e0f93535559a79897  gdb/testsuite/gdb.base/stack-checking.c
 8f3e8eae987b703ce9e91f4c1190dcd2  gdb/testsuite/gdb.base/vla-stub.exp
+047481833b419437a41ca867419ac156  gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp
 d20e20fdf84e3f285fd844d99a90dfa5  gdb/testsuite/gdb.base/psymtab.exp
 306469ca000801fad0af508684e05fa3  gdb/testsuite/gdb.base/until.exp
 6c609be17c91d45ddb1dcc66781f2cde  gdb/testsuite/gdb.base/prologue-include.exp
@@ -3376,7 +3389,7 @@ ba63400ae4571e7f4d0aeb59000c2fee  gdb/te
 fdd1b0ea9cb454d308f3efee2756042d  gdb/testsuite/lib/prelink-support.exp
 4377817504481edf59814f0c53fc7398  gdb/testsuite/lib/opencl.exp
 8b095d6d185b258c160d765659927692  gdb/testsuite/lib/perftest.exp
-007c73505de52d4a33bfce96623ba4b5  gdb/testsuite/lib/gdb.exp
+aa9b990d0bc7d4b257bdb93ca10d7c21  gdb/testsuite/lib/gdb.exp
 58b04b7bc347cc9d1b4474da7a2ac1d0  gdb/testsuite/lib/compiler.cc
 c3d2b933fd6eca1da5c3707b6d13bb9b  gdb/testsuite/lib/opencl_hostapp.c
 2d73515d4ee5352309d3f8f3f5ffb2da  gdb/testsuite/lib/append_gdb_boards_dir.exp
@@ -3650,7 +3663,7 @@ b047847a5183b4462b5b135cfd964543  gdb/te
 4127afeb79b2a2bff6c65f128ebd5969  gdb/testsuite/gdb.go/integers.exp
 ea5ff936bcbd68cbc91cb8771230db91  gdb/testsuite/gdb.go/strings.go
 81b7ed6cb92c627d245bd2efc4b953b9  gdb/testsuite/gdb.go/methods.go
-b20c2e14c6175e06ec4c732455813f3d  gdb/testsuite/ChangeLog
+0808824307ade0983097eaa809c683b9  gdb/testsuite/ChangeLog
 b3f11b21e5921c419a43f93720dedf85  gdb/testsuite/gdb.asm/empty.inc
 37858e142701cb0c2b792e4f739ee3eb  gdb/testsuite/gdb.asm/asm-source.exp
 f1621bbbb2acbec5adef86d7d9549975  gdb/testsuite/gdb.asm/bfin.inc
@@ -3688,6 +3701,7 @@ b3bdc251c6b1eaf09953283df330eb9a  gdb/te
 cd196557c0510f072d40271da10c33a6  gdb/testsuite/gdb.asm/sh.inc
 e3c5be9e840a34c66a75b0204fe24a05  gdb/testsuite/gdb.asm/v850.inc
 1b9bb551736dbc95577c91620b81fb6c  gdb/testsuite/TODO
+e2228d42fcb6f19f48fec2021378dbe4  gdb/testsuite/dg-extract-results.py
 16215df483ee168d69045ac66ad90441  gdb/testsuite/gdb.guile/scm-ports.exp
 a639325bd302458d019a612463ce284c  gdb/testsuite/gdb.guile/scm-error-1.scm
 b8167a8bd4b21136203abaf646dbd963  gdb/testsuite/gdb.guile/scm-objfile.exp
@@ -4008,6 +4022,9 @@ c4880f65af21cca0ace7f53079b65e4b  gdb/te
 a15633ca3b0343fa7843cb191642b2dd  gdb/testsuite/gdb.ada/lang_switch/lang_switch.adb
 92678188c1c85e4498f3a5ad446cc4ec  gdb/testsuite/gdb.ada/arrayptr.exp
 e060842454112ab442a90256dfa9efd7  gdb/testsuite/gdb.ada/mi_catch_ex/foo.adb
+ac49b55cf2c6a814bc0c1ddd4f5ee34a  gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads
+a512d1f0d75051d0e4d7bd2227250985  gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb
+bde0eed1b84dc64c300984244862e262  gdb/testsuite/gdb.ada/var_arr_attrs/foo_o115_002.adb
 33e50acd23066e9cc2033f50c97637fe  gdb/testsuite/gdb.ada/mi_exc_info.exp
 e060842454112ab442a90256dfa9efd7  gdb/testsuite/gdb.ada/catch_ex/foo.adb
 f9a611f393ce166cb610a385c5412ba2  gdb/testsuite/gdb.ada/mi_interface.exp
@@ -4017,6 +4034,7 @@ f9a611f393ce166cb610a385c5412ba2  gdb/te
 880c930f5183718cd737d29260189935  gdb/testsuite/gdb.ada/taft_type/pck.adb
 44ec04432796256b865ade7fcb7330bb  gdb/testsuite/gdb.ada/mi_task_info/task_switch.adb
 fc161d8ff0db77b0bc15f8b61eef4bb4  gdb/testsuite/gdb.ada/formatted_ref.exp
+113342751cd740fe4a14a85f3da3ee38  gdb/testsuite/gdb.ada/var_arr_attrs.exp
 f660bc7e278946ac483980b6f3a5691d  gdb/testsuite/gdb.ada/iwide/classes.ads
 0d2b884b35851a5936597b7f0d01176d  gdb/testsuite/gdb.ada/iwide/p.adb
 7c814bf12d8d6dfba34276ea1425e39b  gdb/testsuite/gdb.ada/iwide/classes.adb
@@ -4287,43 +4305,43 @@ f5615bbb876f5d6b8ff495ea635f223d  gdb/f-
 e88f32d160934e36fa7d803d483a1e2e  gdb/gdb_curses.h
 1bbdb3e7ea9ca53f9a8cf1a548dca9f5  gdb/jv-valprint.c
 8108dd8f906f2654fecc74958cf383db  gdb/doc/psrc.sed
-a480c50c44c2cc81142e0976526f6940  gdb/doc/gdb.info-3
-680d1ca748484f22033f926e3b7d7d9f  gdb/doc/gdb.info-4
+63c1d9afd213672b80d184541b020553  gdb/doc/gdb.info-3
+8ab6210e480460b5dbb55f9771b2aa96  gdb/doc/gdb.info-4
 ab0fe311032294b952da80585b8b90e7  gdb/doc/fdl.texi
 be5469929c58735017a3a1e083554ac7  gdb/doc/Makefile.in
-727c1c908469386df7fb91ae3530e061  gdb/doc/gdb.info-7
+03aacc6fc1898a5197d46e88b4c468e2  gdb/doc/gdb.info-7
 65ee16c0a68d8954d5892092576beb66  gdb/doc/observer.texi
-ced35586cc284351bea5ec64e8a85354  gdb/doc/gdbserver.1
+ef1a5290722a71f5b76f116d939b4cef  gdb/doc/gdbserver.1
 669fb3191fafb1ca7da855243682fe4e  gdb/doc/guile.texi
 f81a0e00e0cb9e41b078069fb9bedb07  gdb/doc/stack_frame.txt
 ab34a4a36fd27cddd3c7838273cfb1dd  gdb/doc/stabs.info
-9a625d7b1d51232b2e8de0cb88bcf4b3  gdb/doc/gdb.info-5
-90751331216f6ee30435306539c9e1b2  gdb/doc/gdb.info-8
+c8518d82d287cf43910c754f7278bbd9  gdb/doc/gdb.info-5
+00ea07790bd99d7d54621f18315893aa  gdb/doc/gdb.info-8
 4fb6b0bb12bb47f2079a5e38f7dcdcf7  gdb/doc/agentexpr.texi
-90f34be1fec6d1f01c1ff86e5695c2a7  gdb/doc/gdb.info-1
+d038bdef056b2ba78756e70917700e04  gdb/doc/gdb.info-1
 d5d06eaf9b4d44aa442a4a281aa9aea4  gdb/doc/a4rc.sed
-82a7279e275bed294814e12b46c0f0c3  gdb/doc/gdb.info-6
-617ff61537614374081e71cf136ed6ee  gdb/doc/gdb.texinfo
+6a1979f43b054dd55b82d61241b430bd  gdb/doc/gdb.info-6
+85ce27a948be3709b3aa35643f9e6d15  gdb/doc/gdb.texinfo
 553b7fe1bf4b5d8b96fdb8cd83503de1  gdb/doc/stack_frame.svg
 04c82b1da7e894a6555868e4f86225af  gdb/doc/filter-for-doxygen
 938187ce9976cbeb134b49335770152c  gdb/doc/Doxyfile-gdb-api.in
 f828e05ce4faab3d297f32d540f77c99  gdb/doc/annotate.info
-a1f9f8115434c870bb00d46815fd4775  gdb/doc/gdb.info-2
+8b49e02cead59c6b90029d1ab3448873  gdb/doc/gdb.info-2
 df443225fa3e5719ca7e6925a7e633e0  gdb/doc/refcard.tex
 6076d300a46651562d4ecd0604442414  gdb/doc/stack_frame.png
-6817d2c528ad269719ac89edb0bf565d  gdb/doc/gdb.info
+3550f48c4cb63770a46a0ecc6544c8b1  gdb/doc/gdb.info
 51f928aef51288aa002575df7e06ff0d  gdb/doc/python.texi
 fa1abec9272120122bf7638320e90d4c  gdb/doc/stabs.texinfo
-79b3164c0be1f0b42183bf1d8a5a8591  gdb/doc/ChangeLog
-c36fb81f63d7f67f564bb453a531454f  gdb/doc/gdb.1
-25943aa0e690188292c10c7c75af3b83  gdb/doc/gcore.1
+c10dfc4e1284c40d2aaa059b6d79ff1c  gdb/doc/ChangeLog
+538ae9beac73514500447829c7497031  gdb/doc/gdb.1
+b014499fe71e11753c81d28d6669b4b7  gdb/doc/gcore.1
 d39233c86ed6a6dc9e853ae6a11fe03e  gdb/doc/stack_frame.pdf
 2daa53916456ce35b6806c2883623b89  gdb/doc/Doxyfile-base.in
 7e8f20fd3b739803f4bd3991d35a4a1f  gdb/doc/all-cfg.texi
 bf96494e6e4d346175babd5ef9781882  gdb/doc/gpl.texi
 cd5e3faa9bd1b684a73c7d527cdb4988  gdb/doc/filter-params.pl
 7bfdb0765c5d050d204fbb30aeeba0d8  gdb/doc/stack_frame.eps
-4426caf74a587fdf1961caa2ec0608b2  gdb/doc/gdbinit.5
+6377b17ede8f9478489718b26d614ca4  gdb/doc/gdbinit.5
 d606e873666ae0bc7bc7c84d6c9c2332  gdb/doc/Doxyfile-gdb-xref.in
 705bf0b3fb65b3f7e3db4cc5d9ae8eba  gdb/doc/annotate.texinfo
 79278fc2f5486809779a9a8f8883d401  gdb/doc/doxy-index.in
@@ -4378,7 +4396,7 @@ d87f8f330dda7f736350ea5dcff5b709  gdb/Ch
 7e2706eaacbb35897d275be7c50dfff4  gdb/annotate.c
 c667733a02d7abe1c3886b7e599d59a2  gdb/addrmap.h
 d226b66cc0f7c157a1659d78681430d5  gdb/valarith.c
-a23b61ee5dba945a42fd3ea34450c4e6  gdb/rs6000-tdep.c
+e98b815c17f3f4deccd6a169de18538a  gdb/rs6000-tdep.c
 b435883843e68b3d931ba9c5bc847baf  gdb/linux-fork.h
 3af332e7a5c17390716cb28719b4ca6c  gdb/dwarf2-frame.c
 8e95032916c325bef04fe3a7cff458fb  gdb/mips-tdep.h
@@ -4417,7 +4435,7 @@ a9c050b5e0b0610f4c124743e8a1354e  gdb/va
 5a7bc54bbe28baab6d8d0ad84f9e201f  gdb/continuations.h
 adbfe788fad914adb549fefb63c363ab  gdb/infrun.h
 e888783bb05a7df3c7ff5bde1fe1d84b  gdb/jit.c
-673ffc4b17fe307616b63c5bd08bcfda  gdb/windows-termcap.c
+c542855480e4a74196ab58d861ec4e31  gdb/windows-termcap.c
 bd77d7aea7b71a6d0c9c8107447598bb  gdb/rx-tdep.c
 299a2462d01273cb6f691fcb72806a8b  gdb/frame-base.h
 64a7d3424d84be90bd2090adfb5c57cb  gdb/xml-syscall.c
@@ -4702,7 +4720,7 @@ a042a48e50b3d554487841a49b7bc555  gdb/in
 bcd0841ee006d202302f24f86c36b5ed  gdb/solib-target.c
 a667d6f75f8b3a39dc37cedfcab2572d  gdb/tilegx-tdep.c
 39ea2c70489bb412e91c1139c460c77e  gdb/c-lang.h
-2970e41fc0b9036e25b2d9f46a497cd9  gdb/breakpoint.c
+c36f626517958d42096ab0de21660597  gdb/breakpoint.c
 a5375552c201d6283297ee5ceee2d29c  gdb/block.h
 e4270f829487caf7e0363d59fe648aa1  gdb/ax-gdb.c
 9973ba0ba493c10c7af5b0747cc555ac  gdb/prologue-value.h
@@ -4732,7 +4750,7 @@ d485cfeaf5603cb5e71d7241f91ddd63  gdb/dw
 802e6aea8d9088386d73ff1089ef2ee4  gdb/alphanbsd-tdep.c
 60b3ed33f88620426e0d748992aa6f69  gdb/cp-name-parser.y
 c91360771dabd8a69c2cf974e4600cd5  gdb/alphaobsd-tdep.c
-72288e0469aaa3379c29b0e5c2ce5524  gdb/mingw-hdep.c
+ff7889c2a7addc05853bca85b5d6aac8  gdb/mingw-hdep.c
 6e352dbba083a4d3a99ac4ef34a8bac7  gdb/sh64-tdep.c
 b769ea120341530437656ce17e0cefc6  gdb/jv-exp.c
 5ec8a13039f178b86804ff04e7cbdf99  gdb/ChangeLog-1998
@@ -4765,7 +4783,7 @@ fe840f2163f9ebe06e13de0953368ceb  gdb/fr
 382b282dc75c90f61ac01df618c82050  gdb/acinclude.m4
 a2509648a696577602fe842823c5dff2  gdb/arm-tdep.h
 11dbdb684621a33652f8a542b6a0c31b  gdb/hppabsd-tdep.c
-6689e67b2e581c0e903997de878300f2  gdb/configure
+aee8aa03f4248c3b9431d37484216264  gdb/configure
 56b86a37bd4a40c3220f3cae055c728e  gdb/main.h
 96cf3df1042c227ea68101d8f11c8026  gdb/alpha-tdep.c
 5f66ee75267a1aefd513d3b1f099e640  gdb/xml-tdesc.h
@@ -4785,9 +4803,9 @@ e5c081bec329720b4c0d37fb1bf8adae  gdb/p-
 f1679b5d9950d66febb8259748700963  gdb/std-regs.c
 9da9e540b1c6970695a3161272737803  gdb/go-lang.h
 23e51b25e50614cfba06a52e405e2243  gdb/i386-windows-nat.c
-fd49e51c1a26c8c3fbfd204109b1e0a8  gdb/po/gdb.pot
+d049efa4f328f4eb0d35064321da505b  gdb/po/gdb.pot
 1851bff0653201a488dcae18dde7efad  gdb/po/gdbtext
-8a1de3f60e39741f918cc93c69d9fe76  gdb/ada-lang.c
+be491092b4fc728d371d28ae37503dae  gdb/ada-lang.c
 5e0c6b053fd9575dde3084e69835d9c3  gdb/dcache.h
 4f313de57f0ae77eaa0582b5a9cdcbe5  gdb/system-gdbinit/elinos.py
 115d39afda2aa424102200c160cb1516  gdb/system-gdbinit/wrs-linux.py
@@ -4811,7 +4829,7 @@ b21eb0affa9c0fa159d8dc3a1483410e  gdb/jv
 32bb803ab1e68860f1402dbe7e2cb0f5  gdb/nbsd-nat.h
 83df4734061e07b644f77632819578cf  gdb/mipsread.c
 f5c872d4805a7ac039b4dfc840f4bb8a  gdb/amd64-darwin-tdep.c
-8d8194e25677fc2639e89d5aabb4f85c  gdb/ChangeLog
+96c0c8f56b327447e0f90862937925bd  gdb/ChangeLog
 5a1dbe4837b41ee2b9cc7a35e0d20a61  gdb/go-typeprint.c
 c6de4736a691dfc690f55e7b69880511  gdb/score-tdep.c
 5a44fd4377f0804008a3697e72efbfe3  gdb/xml-support.h
@@ -4946,7 +4964,7 @@ b09b0ee5da44df728eb552f6bf6ed138  gdb/re
 68c2f73b8122d4023738fe69876efc56  gdb/regformats/s390-linux64v2.dat
 7d521124886bd1a212ec6ac542743020  gdb/regformats/s390x-linux64.dat
 40ba412a0b4d6cebeef61c90e6f6629d  gdb/regformats/s390-linux64.dat
-7c410a9041a4d037e6ba273b8fbb0e10  gdb/utils.h
+f0088c55fa83f2a51fca161c25d60af3  gdb/utils.h
 41afe1fe7888994aed3ee673a351cfec  gdb/sparc-sol2-tdep.c
 641c7d206306bf5cb4994067304bdc49  gdb/procfs.c
 ede287146f6265e902dae6fca0624867  gdb/solib-svr4.h
@@ -4954,7 +4972,7 @@ c4baca8ed0530a522b692d96c4cc8481  gdb/pp
 0c3b45c3ca879ffbac4eb2f342048911  gdb/i386fbsd-nat.c
 bafa1bf706e30e9401e6cd5852376ac3  gdb/psympriv.h
 d8da55ecd8fa1442d1aa46ed11df0859  gdb/m32r-tdep.c
-d129b34057947658b86e15913ba59e9d  gdb/hppa-tdep.c
+94a7e5234441676807f13304484c8345  gdb/hppa-tdep.c
 ef2bf2512b351cf62629d557eec27579  gdb/exceptions.h
 d32239bcb673463ab874e80d47fae504  gdb/COPYING
 5b3993d1dcd3ca7481f0e7fc9b5d1f74  gdb/arm-symbian-tdep.c
@@ -5024,7 +5042,7 @@ c8a75408057ef8b5bfaf3b8577e951aa  gdb/gd
 290ce2d213205efbaf6637f13e742292  gdb/gdbserver/inferiors.h
 25caabd38a23947e29a4ba723eee2c85  gdb/gdbserver/win32-arm-low.c
 911c0e84ffe33fcf1960e46f27e58e94  gdb/gdbserver/linux-bfin-low.c
-db514c853e8398a0b4740dfbfee6ef27  gdb/gdbserver/Makefile.in
+8199fc175fe448b5fc2e80327fe57136  gdb/gdbserver/Makefile.in
 b0cea923664c3efb97b385d1c2f29f37  gdb/gdbserver/x86-low.h
 213c42e9306ef931e62c6658c513df21  gdb/gdbserver/hostio-errno.c
 a8b318ada418e233c4996535f60b132c  gdb/gdbserver/dll.h
@@ -5032,7 +5050,7 @@ b59c8001ee1dcc7cd60f69b0b264117f  gdb/gd
 49ff4809d1e867e3ee28bf7b801fd539  gdb/gdbserver/target.h
 d32caf02d4271e54ecc8fb25dbad9ff7  gdb/gdbserver/linux-low.h
 fd2a628fae668ef78fe489121037c9da  gdb/gdbserver/linux-ia64-low.c
-87906ff2ed562448a80347fb1c3c36db  gdb/gdbserver/configure.srv
+525785d1fa225176c506b7404d7d8acb  gdb/gdbserver/configure.srv
 8cd58f9641e3fcbc0585d13a4b4704f5  gdb/gdbserver/linux-arm-low.c
 0abcf9ecce5adcdb93f1323e836dc99e  gdb/gdbserver/tracepoint.h
 f63179ed369e57afcb2ac34d9197c7ef  gdb/gdbserver/linux-aarch64-low.c
@@ -5045,8 +5063,8 @@ cdd30823b0fef194dc2aa026633ce27c  gdb/gd
 9b657bb71bee2f5c9bff184f16dfcb61  gdb/gdbserver/win32-low.c
 fe81eb6c2c62a0d201997976c23e183e  gdb/gdbserver/lynx-low.h
 89d5a85a35090857a26e2b9329cc1372  gdb/gdbserver/tdesc.c
-f87acebf2918d9b768ca4c7ac8e926f2  gdb/gdbserver/config.in
-56625f046b1135ad0a2c1d58c86600eb  gdb/gdbserver/configure.ac
+d03bb40038350c0b82f5884304735d31  gdb/gdbserver/config.in
+1071d1876e811907187e10c1438768c5  gdb/gdbserver/configure.ac
 791b58ddf159b59c7d9375e2c2f00a07  gdb/gdbserver/README
 ac2b6611473c54f627f2fe0cab6e7a9e  gdb/gdbserver/mem-break.c
 cba9f6305efbbdcd68dbc1f3c96cfdec  gdb/gdbserver/linux-mips-low.c
@@ -5081,15 +5099,15 @@ d1ff361333f132597574fbafc6a387a3  gdb/gd
 01aca08a299736d3eee3f1797260f1f6  gdb/gdbserver/gdbreplay.c
 c603ea99a252e4ca4b7152efe119fa4b  gdb/gdbserver/regcache.h
 2e7940b5359daf39145a72138e035140  gdb/gdbserver/acinclude.m4
-e43517c11a200defbe515b283c262320  gdb/gdbserver/configure
+faf28a695f163004257d0998f5f39e22  gdb/gdbserver/configure
 18e5d2afcc8073f657d69be61acb20c5  gdb/gdbserver/notif.c
 15e9f8b9afe707a571ef09a62bbddf35  gdb/gdbserver/linux-cris-low.c
 7f017910fc10864faa3886a248c0de44  gdb/gdbserver/aclocal.m4
 2b9f6c6d21c30849559cd27951e51f89  gdb/gdbserver/thread-db.c
 a713e728e699f380772910b1e8911321  gdb/gdbserver/linux-tile-low.c
-97d1af746febda3abe3c1a61df5adf45  gdb/gdbserver/ChangeLog
-bf06506177d8b8accdf07efc010fd1f3  gdb/gdbserver/linux-ppc-low.c
-99cebb5fd7ccfe880091d845541081b0  gdb/gdbserver/linux-low.c
+ae9ca3720f0fd864fe7d87ccc73813ad  gdb/gdbserver/ChangeLog
+cd1fc12df5787e83d2d67c203cb3d7b3  gdb/gdbserver/linux-ppc-low.c
+f94e757edf255cdd112f6f909ebc5d38  gdb/gdbserver/linux-low.c
 31e072b4e9e5984e19662acc96a07f2e  gdb/gdbserver/proc-service.list
 0541491bd9eded900fc97f8f6dd0ef3f  gdb/gdbserver/linux-s390-low.c
 29f787a14729e764f56e26257e1bb933  gdb/gdbserver/utils.h
@@ -5121,10 +5139,10 @@ ef7f67e5720cf7b193349f8687243947  gdb/st
 ffc93e69a8813484cec63da022b68375  gdb/stubs/sh-stub.c
 c68917f126137f1f01b8fce213b8bed0  gdb/buildsym.c
 3d053fa1f3f0ef530bc94d6e7399c026  gdb/breakpoint.h
-df5b61f9fe772c3cb5e1a39d79cceb8f  gdb/objfiles.c
+5d2fe4d0187c5f25dbee4b2abb619670  gdb/objfiles.c
 703bf2a0757f3c8b4a454a0e278aee0e  gdb/debug.c
 9688ad1dae08e48e11479e5199bf97f0  gdb/sol2-tdep.h
-6d737278503ce434920ddf495fe193a7  gdb/ppc-linux-tdep.c
+9e96fc5dfdd99a3f4726f473ebd13649  gdb/ppc-linux-tdep.c
 33e82795b3de28ec33551530ec362c2c  gdb/ChangeLog-2007
 78c21575b534afecc2a275a138711580  gdb/gdbthread.h
 9b14783e7d2ce7c31dd8d8050d028e42  gdb/macroexp.c
@@ -5144,7 +5162,7 @@ c181758754cd0b8d7733fa82d4aaba3a  gdb/go
 06d492ab5c9dbaa82b38193b83bc2e44  gdb/m88kbsd-nat.c
 ca9158e7ede27a090a3228b2965721fb  gdb/glibc-tdep.h
 9ec89fc9f02b1bcf2e0cbf717337c91a  gdb/macroexp.h
-4e561c5317f6ed3cc9cfc53293100794  gdb/linux-nat.c
+aaf4a6f6a944e0707e0a62c804e121a0  gdb/linux-nat.c
 232fae6c14bb330d684a735fbd258bdf  gdb/ppcfbsd-tdep.c
 72c2a6c8c1d784dedb9da73e84229cab  gdb/sh-tdep.h
 be04f4bf35ddca6beee6d0ad2b02bb72  gdb/top.h
@@ -5431,7 +5449,7 @@ affdfcd92bab65bf12f21ee4468fbeb6  includ
 3f42f606172218e3289ae9b6d408cf10  include/mach-o/external.h
 ea132c5d5005c5f73434acf19dd51cca  include/dwarf2.h
 e1ea1a669a924a0d05a7f118bd5b4f71  include/oasys.h
-4ca9cfe058b952b37564ae7b1c2a979c  include/libiberty.h
+621422fcff9fe7e7ad2211df6b794e13  include/libiberty.h
 f94077edae0f80bc193e126a678b4c07  include/ansidecl.h
 462e78bc7446a3644efa006b322e0cc8  include/longlong.h
 8823a2b4676fef221902b03ddffff179  include/xtensa-config.h
@@ -5515,14 +5533,14 @@ a7340eeb78e53f0c0794145e6eee1314  includ
 29a45b7e3d01e8d64319c44e45a6c08a  include/opcode/aarch64.h
 c7b41a8f2e623daab2a753b225055a40  include/opcode/pn.h
 197a47e59231f6e3b5ee98b3a31b4b0a  include/opcode/ppc.h
-4d2be22bb3e4b2e2a5adadd21dff8c4c  include/opcode/s390.h
+5f517d2c7a96d8d86899bb8d75c3521c  include/opcode/s390.h
 51851d4739086d8eda5d25fc9b083686  include/opcode/pdp11.h
 2891f7be0848f0fbfc65a48d7097cb3d  include/opcode/avr.h
 09ce24691a8b932b73db0a0314e83de8  include/opcode/spu.h
 81bbad63b02bf7339d19d2d01d9893a6  include/opcode/score-datadep.h
 06d6317eaf0d512eb27421b75de37279  include/opcode/crx.h
 5577df272d6fb007b6d8531263f3e7ac  include/opcode/tic6x-opcode-table.h
-51d2ce2d614b7f35ad34d0a866266c7e  include/opcode/ChangeLog
+c64b9690518b4e9c5d9091427020c2b4  include/opcode/ChangeLog
 cc8a71b96ec5a190ef975067a166aa11  include/opcode/moxie.h
 828b891d640050565eb215499562d70f  include/opcode/dlx.h
 a8dbc3aa01e7ef22f68b78c12bff0bc5  include/opcode/tilepro.h
@@ -5614,7 +5632,7 @@ db6c615f6551d711de0e45a6d4b150e7  includ
 a55fe30391416a1df2748c75fb160001  include/ieee.h
 a6637d72befe40863b35e430e7ca4ed3  include/hashtab.h
 960419210b1dffddd4335ba3e1e55775  include/gcc-interface.h
-a40af61858a05c03ed2c328d623a7afa  include/ChangeLog
+1535825b0f5dc0eaad05d80b2ff0b5c5  include/ChangeLog
 b4d4b36620f8b1be486f46051f3b45c3  include/dis-asm.h
 cd07ff147c5ae622eb623d7a546aace7  include/splay-tree.h
 ffda4ddb63c87f93cfea327f97340233  include/filenames.h
@@ -5963,7 +5981,7 @@ dcddb64bab69ca6541ff0add57f1f53c  libibe
 9d0471286f21d9027bbf1b7c67b87856  libiberty/insque.c
 72b25900bd3d95decf7ff7990061ef29  libiberty/xmemdup.c
 c9bd3841bbde6d8ae680f62523f00ab0  libiberty/strtol.c
-b9edd46bcfa768b57a15b270c068e052  libiberty/ChangeLog
+052967ebb5b1d1321724c2d8350d9fdd  libiberty/ChangeLog
 c34119797a13e71989722851c14b711b  libiberty/atexit.c
 d99a00c9588039b63404d27ea147b2a4  libiberty/objalloc.c
 c0c3183427b1df540ead6394d1028040  libiberty/argv.c
@@ -5987,7 +6005,7 @@ ab8d4cd68aa4892e2318d2c71864cc56  libibe
 cc534c2ea00ea0b5e49ba8f61c6e467d  libiberty/strncmp.c
 2d92725e49581d86d7cf06fb40def19d  libiberty/strndup.c
 cad65676a295e832bbb5237b4a3ec6a5  libiberty/pex-common.h
-b3aaeed201f3c6fd293e9f9618350bfe  libiberty/strerror.c
+119848dbde9f72d500142a4a65149a9f  libiberty/strerror.c
 4d485e7735be430b22aea0abb4938e26  libiberty/index.c
 0c900e9180d750a26ac0ddb237151832  libiberty/strcasecmp.c
 a16ea056b95fd70c21333db132da14ff  libiberty/at-file.texi
@@ -6090,7 +6108,7 @@ c432c0ed4a5da902e01072bb00e214b2  opcode
 b3dec13e60da4ae26465107dc98fdec5  opcodes/xc16x-asm.c
 615bf8dc1c70b14d80be2ae6f31feccf  opcodes/ChangeLog-2005
 7d6021f2130bc4e65d167a104479fe5f  opcodes/epiphany-asm.c
-0d33a39b693df7712ca387e65130aa9a  opcodes/s390-mkopc.c
+53fcc141d074fd00d6fd7750d6e06377  opcodes/s390-mkopc.c
 2e20e0b222c6f6dc05cd1e4fcf95803b  opcodes/cgen-asm.in
 43758cf058570dcd47de39e52ae4ad54  opcodes/moxie-opc.c
 412a3dc584732aa94b7a75a2c6c451ff  opcodes/arm-dis.c
@@ -6142,7 +6160,7 @@ be857f2e550efba81aee8ed282873017  opcode
 b34bf0b25d4c09bdf8e7bbf1595ef59b  opcodes/mt-desc.c
 aca1d00ba0879380e63e9141d33bba3a  opcodes/mmix-opc.c
 46bb9e196fadb8e6e828a2d2a671cab5  opcodes/i386-init.h
-ef8b678d09897ef5d3f6ef8ca733e2ca  opcodes/s390-dis.c
+fa5e95f2cbcc9046d46471d864a769f4  opcodes/s390-dis.c
 7956d8d9a9ed3ad78325552465e56702  opcodes/sh-dis.c
 815db1fbf47df45dce38cadf69dccda7  opcodes/i386-dis.c
 cb15aa4673f865ca48ac31c38373124e  opcodes/ia64-waw.tbl
@@ -6261,13 +6279,13 @@ c7e30e39999a3b6a08e95e1b4e9d3e13  opcode
 7a5ab23a191327b14b953ed6eaea5042  opcodes/m10300-dis.c
 d18c6ac0a3b6ddd782aa63521e33340d  opcodes/nds32-opc.h
 e4d4960361aa74b865605f4e7bd19972  opcodes/aarch64-opc.h
-3ad6bf821dee062bea2482dc56218163  opcodes/ChangeLog
+75089f75ea8137e8a73d3b02258f1d0a  opcodes/ChangeLog
 327cf11f5c08b578f3b0cdb7f3923280  opcodes/ia64-raw.tbl
 44fbf65bc90239d6662482ccb40d94a3  opcodes/frv-dis.c
 ef1137928f4cc5844e71788c40ed91c8  opcodes/aarch64-opc.c
 04c8720f2aad9ef6c18599055e714508  opcodes/iq2000-ibld.c
 6ea6d3dc1c908dcd6ade8b98e3492a73  opcodes/dis-buf.c
-1958b70f7215075a4933c517bb81110e  opcodes/s390-opc.txt
+7c12882d8bfe6e9a07d34eb7e01b3037  opcodes/s390-opc.txt
 e75a954fdee606d313600880b7bb08fa  opcodes/metag-dis.c
 c96e24ff6a1a4f863e58f0096f124c75  opcodes/m32r-opc.h
 1ac847c007a0487f49242b214af53988  opcodes/i370-opc.c
@@ -6332,7 +6350,7 @@ e197ec3496a5cb8ae38bf0b03ce09192  opcode
 0eaa1eeedc286fe2e8258f1e31cf6c64  opcodes/sh-opc.h
 d3696f418eaf5f22de34b1c51007a1ed  opcodes/micromips-opc.c
 3dc1159941276a13e5c1a209093bc2db  opcodes/cris-opc.c
-8aa2570f5d1e060624ec254963294804  opcodes/s390-opc.c
+919831d501c55f0eecb6b4e7a7ce3368  opcodes/s390-opc.c
 9274b9547ba7e115d3a173a25215b261  opcodes/ip2k-opc.c
 e4a55b396e462e5940fb2ad424d361c6  opcodes/sysdep.h
 a242240a0d6b5d3185189fe6395246f7  opcodes/tic30-dis.c
@@ -10618,7 +10636,7 @@ d2080a43465e68a1ddf14847dff2fff6  sim/m6
 c1b2c0b2ffef1ba72a8a6e24677c8653  sim/rx/README.txt
 e6e7c3c27e94c21592dc7dd1c93fc115  sim/rx/Makefile.in
 a26defa8c927df1fc71cbaebc01882f2  sim/rx/rx.c
-6e4bed881817dec499a9c00210a45c9e  sim/rx/gdb-if.c
+17120b5a4beacf6b1470c0035acfe9f2  sim/rx/gdb-if.c
 862d1de9463d3dadbfb34560890ce11a  sim/rx/err.h
 9806312867ac52ca3aa05d16e81b5c0f  sim/rx/cpu.h
 761b32fe95daf42b6e6b669c0a99e443  sim/rx/config.in
@@ -10635,7 +10653,7 @@ cebe547a409193f7e2d6adbc5e1c5706  sim/rx
 d26f3d3de04ee52dd855cc1e82ae5c60  sim/rx/configure
 f9164ebf3a70764e5acd32bbcfaff878  sim/rx/aclocal.m4
 7c59c6e5ba9ee59dadf36bc996c4d0bb  sim/rx/syscalls.h
-c5a789e2df589159fce2f9e891f8b141  sim/rx/ChangeLog
+fd4d98701de3e46926a2dafa81885353  sim/rx/ChangeLog
 7c6d66ae15a102e7f246188def144971  sim/rx/trace.h
 f99eacdc28b3cfbda7227592a07d8b23  sim/rx/reg.c
 a6b02aac7f6f333707071d7598b7ccab  sim/rx/fpu.h
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/opcodes/ChangeLog ./opcodes/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/opcodes/ChangeLog	2015-01-13 01:48:41.000000000 +0000
+++ ./opcodes/ChangeLog	2015-01-20 01:48:39.000000000 +0000
@@ -1,3 +1,21 @@
+2015-01-16  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+	* s390-dis.c (s390_extract_operand): Support vector register
+	operands.
+	(s390_print_insn_with_opcode): Support new operands types and add
+	new handling of optional operands.
+	* s390-mkopc.c (s390_opcode_mode_val, s390_opcode_cpu_val): Remove
+	and include opcode/s390.h instead.
+	(struct op_struct): New field `flags'.
+	(insertOpcode, insertExpandedMnemonic): New parameter `flags'.
+	(dumpTable): Dump flags.
+	(main): Parse flags from the s390-opc.txt file.  Add z13 as cpu
+	string.
+	* s390-opc.c: Add new operands types, instruction formats, and
+	instruction masks.
+	(s390_opformats): Add new formats for .insn.
+	* s390-opc.txt: Add new instructions.
+
 2015-01-01  Alan Modra  <amodra@gmail.com>
 
 	Update year range in copyright notice of all files.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/opcodes/s390-dis.c ./opcodes/s390-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/opcodes/s390-dis.c	2015-01-13 01:48:41.000000000 +0000
+++ ./opcodes/s390-dis.c	2015-01-20 01:48:39.000000000 +0000
@@ -107,6 +107,7 @@ s390_extract_operand (const bfd_byte *in
   union operand_value ret;
   unsigned int val;
   int bits;
+  const bfd_byte *orig_insn = insn;
 
   /* Extract fragments of the operand byte for byte.  */
   insn += operand->shift / 8;
@@ -140,6 +141,16 @@ s390_extract_operand (const bfd_byte *in
   else if (operand->flags & S390_OPERAND_LENGTH)
     /* Length x in an instruction has real length x + 1.  */
     ret.u = val + 1;
+
+  else if (operand->flags & S390_OPERAND_VR)
+    {
+      /* Extract the extra bits for a vector register operand stored
+	 in the RXB field.  */
+      unsigned vr = operand->shift == 32 ? 3
+	: (unsigned) operand->shift / 4 - 2;
+
+      ret.u = val | ((orig_insn[4] & (1 << (3 - vr))) << (vr + 1));
+    }
   else
     ret.u = val;
 
@@ -178,22 +189,45 @@ s390_print_insn_with_opcode (bfd_vma mem
 	  continue;
 	}
 
-      info->fprintf_func (info->stream, "%c", separator);
+      /* For instructions with a last optional operand don't print it
+	 if zero.  */
+      if ((opcode->flags & S390_INSTR_FLAG_OPTPARM)
+	  && val.u == 0
+	  && opindex[1] == 0)
+	break;
 
       if (flags & S390_OPERAND_GPR)
-	info->fprintf_func (info->stream, "%%r%u", val.u);
+	info->fprintf_func (info->stream, "%c%%r%u", separator, val.u);
       else if (flags & S390_OPERAND_FPR)
-	info->fprintf_func (info->stream, "%%f%u", val.u);
+	info->fprintf_func (info->stream, "%c%%f%u", separator, val.u);
+      else if (flags & S390_OPERAND_VR)
+	info->fprintf_func (info->stream, "%c%%v%i", separator, val.u);
       else if (flags & S390_OPERAND_AR)
-	info->fprintf_func (info->stream, "%%a%u", val.u);
+	info->fprintf_func (info->stream, "%c%%a%u", separator, val.u);
       else if (flags & S390_OPERAND_CR)
-	info->fprintf_func (info->stream, "%%c%u", val.u);
+	info->fprintf_func (info->stream, "%c%%c%u", separator, val.u);
       else if (flags & S390_OPERAND_PCREL)
-	info->print_address_func (memaddr + val.i + val.i, info);
+	{
+	  info->fprintf_func (info->stream, "%c", separator);
+	  info->print_address_func (memaddr + val.i + val.i, info);
+	}
       else if (flags & S390_OPERAND_SIGNED)
-	info->fprintf_func (info->stream, "%i", val.i);
+	info->fprintf_func (info->stream, "%c%i", separator, val.i);
       else
-	info->fprintf_func (info->stream, "%u", val.u);
+	{
+	  if (flags & S390_OPERAND_OR1)
+	    val.u &= ~1;
+	  if (flags & S390_OPERAND_OR2)
+	    val.u &= ~2;
+	  if (flags & S390_OPERAND_OR8)
+	    val.u &= ~8;
+
+	  if ((opcode->flags & S390_INSTR_FLAG_OPTPARM)
+	      && val.u == 0
+	      && opindex[1] == 0)
+	    break;
+	  info->fprintf_func (info->stream, "%c%u", separator, val.u);
+	}
 
       if (flags & S390_OPERAND_DISP)
 	separator = '(';
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/opcodes/s390-mkopc.c ./opcodes/s390-mkopc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/opcodes/s390-mkopc.c	2015-01-13 01:48:41.000000000 +0000
+++ ./opcodes/s390-mkopc.c	2015-01-20 01:48:39.000000000 +0000
@@ -22,26 +22,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-
-/* Taken from opcodes/s390.h */
-enum s390_opcode_mode_val
-  {
-    S390_OPCODE_ESA = 0,
-    S390_OPCODE_ZARCH
-  };
-
-enum s390_opcode_cpu_val
-  {
-    S390_OPCODE_G5 = 0,
-    S390_OPCODE_G6,
-    S390_OPCODE_Z900,
-    S390_OPCODE_Z990,
-    S390_OPCODE_Z9_109,
-    S390_OPCODE_Z9_EC,
-    S390_OPCODE_Z10,
-    S390_OPCODE_Z196,
-    S390_OPCODE_ZEC12
-  };
+#include "opcode/s390.h"
 
 struct op_struct
   {
@@ -50,6 +31,7 @@ struct op_struct
     char  format[16];
     int   mode_bits;
     int   min_cpu;
+    int   flags;
 
     unsigned long long sort_value;
     int   no_nibbles;
@@ -71,7 +53,7 @@ createTable (void)
 
 static void
 insertOpcode (char *opcode, char *mnemonic, char *format,
-	      int min_cpu, int mode_bits)
+	      int min_cpu, int mode_bits, int flags)
 {
   char *str;
   unsigned long long sort_value;
@@ -115,6 +97,7 @@ insertOpcode (char *opcode, char *mnemon
   op_array[ix].no_nibbles = no_nibbles;
   op_array[ix].min_cpu = min_cpu;
   op_array[ix].mode_bits = mode_bits;
+  op_array[ix].flags = flags;
   no_ops++;
 }
 
@@ -176,7 +159,7 @@ const struct s390_cond_ext_format s390_c
 
 static void
 insertExpandedMnemonic (char *opcode, char *mnemonic, char *format,
-			int min_cpu, int mode_bits)
+			int min_cpu, int mode_bits, int flags)
 {
   char *tag;
   char prefix[15];
@@ -189,7 +172,7 @@ insertExpandedMnemonic (char *opcode, ch
 
   if (!(tag = strpbrk (mnemonic, "*$")))
     {
-      insertOpcode (opcode, mnemonic, format, min_cpu, mode_bits);
+      insertOpcode (opcode, mnemonic, format, min_cpu, mode_bits, flags);
       return;
     }
 
@@ -268,7 +251,7 @@ insertExpandedMnemonic (char *opcode, ch
       opcode[mask_start] = ext_table[i].nibble;
       strcat (new_mnemonic, ext_table[i].extension);
       strcat (new_mnemonic, suffix);
-      insertOpcode (opcode, new_mnemonic, format, min_cpu, mode_bits);
+      insertOpcode (opcode, new_mnemonic, format, min_cpu, mode_bits, flags);
     }
   return;
 
@@ -286,7 +269,10 @@ static const char file_header[] =
   "     which bits in the actual opcode must match OPCODE.\n"
   "   OPERANDS is the list of operands.\n\n"
   "   The disassembler reads the table in order and prints the first\n"
-  "   instruction which matches.  */\n\n"
+  "   instruction which matches.\n"
+  "   MODE_BITS - zarch or esa\n"
+  "   MIN_CPU - number of the min cpu level required\n"
+  "   FLAGS - instruction flags.  */\n\n"
   "const struct s390_opcode s390_opcodes[] =\n  {\n";
 
 /* `dumpTable': write opcode table.  */
@@ -311,7 +297,8 @@ dumpTable (void)
       printf ("MASK_%s, INSTR_%s, ",
 	      op_array[ix].format, op_array[ix].format);
       printf ("%i, ", op_array[ix].mode_bits);
-      printf ("%i}", op_array[ix].min_cpu);
+      printf ("%i, ", op_array[ix].min_cpu);
+      printf ("%i}", op_array[ix].flags);
       if (ix < no_ops-1)
 	printf (",\n");
       else
@@ -339,67 +326,91 @@ main (void)
       char  description[80];
       char  cpu_string[16];
       char  modes_string[16];
+      char  flags_string[80];
       int   min_cpu;
       int   mode_bits;
+      int   flag_bits;
+      int   num_matched;
       char  *str;
 
       if (currentLine[0] == '#' || currentLine[0] == '\n')
         continue;
       memset (opcode, 0, 8);
-      if (sscanf (currentLine, "%15s %15s %15s \"%79[^\"]\" %15s %15s",
-		  opcode, mnemonic, format, description,
-		  cpu_string, modes_string) == 6)
+      num_matched =
+	sscanf (currentLine, "%15s %15s %15s \"%79[^\"]\" %15s %15s %79[^\n]",
+		opcode, mnemonic, format, description,
+		cpu_string, modes_string, flags_string);
+      if (num_matched != 6 && num_matched != 7)
 	{
-	  if (strcmp (cpu_string, "g5") == 0)
-	    min_cpu = S390_OPCODE_G5;
-	  else if (strcmp (cpu_string, "g6") == 0)
-	    min_cpu = S390_OPCODE_G6;
-	  else if (strcmp (cpu_string, "z900") == 0)
-	    min_cpu = S390_OPCODE_Z900;
-	  else if (strcmp (cpu_string, "z990") == 0)
-	    min_cpu = S390_OPCODE_Z990;
-	  else if (strcmp (cpu_string, "z9-109") == 0)
-	    min_cpu = S390_OPCODE_Z9_109;
-	  else if (strcmp (cpu_string, "z9-ec") == 0)
-	    min_cpu = S390_OPCODE_Z9_EC;
-	  else if (strcmp (cpu_string, "z10") == 0)
-	    min_cpu = S390_OPCODE_Z10;
-	  else if (strcmp (cpu_string, "z196") == 0)
-	    min_cpu = S390_OPCODE_Z196;
-	  else if (strcmp (cpu_string, "zEC12") == 0)
-	    min_cpu = S390_OPCODE_ZEC12;
-	  else {
-	    fprintf (stderr, "Couldn't parse cpu string %s\n", cpu_string);
-	    exit (1);
-	  }
+	  fprintf (stderr, "Couldn't scan line %s\n", currentLine);
+	  exit (1);
+	}
 
-	  str = modes_string;
-	  mode_bits = 0;
+      if (strcmp (cpu_string, "g5") == 0)
+	min_cpu = S390_OPCODE_G5;
+      else if (strcmp (cpu_string, "g6") == 0)
+	min_cpu = S390_OPCODE_G6;
+      else if (strcmp (cpu_string, "z900") == 0)
+	min_cpu = S390_OPCODE_Z900;
+      else if (strcmp (cpu_string, "z990") == 0)
+	min_cpu = S390_OPCODE_Z990;
+      else if (strcmp (cpu_string, "z9-109") == 0)
+	min_cpu = S390_OPCODE_Z9_109;
+      else if (strcmp (cpu_string, "z9-ec") == 0)
+	min_cpu = S390_OPCODE_Z9_EC;
+      else if (strcmp (cpu_string, "z10") == 0)
+	min_cpu = S390_OPCODE_Z10;
+      else if (strcmp (cpu_string, "z196") == 0)
+	min_cpu = S390_OPCODE_Z196;
+      else if (strcmp (cpu_string, "zEC12") == 0)
+	min_cpu = S390_OPCODE_ZEC12;
+      else if (strcmp (cpu_string, "z13") == 0)
+	min_cpu = S390_OPCODE_Z13;
+      else {
+	fprintf (stderr, "Couldn't parse cpu string %s\n", cpu_string);
+	exit (1);
+      }
+
+      str = modes_string;
+      mode_bits = 0;
+      do {
+	if (strncmp (str, "esa", 3) == 0
+	    && (str[3] == 0 || str[3] == ',')) {
+	  mode_bits |= 1 << S390_OPCODE_ESA;
+	  str += 3;
+	} else if (strncmp (str, "zarch", 5) == 0
+		   && (str[5] == 0 || str[5] == ',')) {
+	  mode_bits |= 1 << S390_OPCODE_ZARCH;
+	  str += 5;
+	} else {
+	  fprintf (stderr, "Couldn't parse modes string %s\n",
+		   modes_string);
+	  exit (1);
+	}
+	if (*str == ',')
+	  str++;
+      } while (*str != 0);
+
+      flag_bits = 0;
+
+      if (num_matched == 7)
+	{
+	  str = flags_string;
 	  do {
-	    if (strncmp (str, "esa", 3) == 0
-		&& (str[3] == 0 || str[3] == ',')) {
-	      mode_bits |= 1 << S390_OPCODE_ESA;
-	      str += 3;
-	    } else if (strncmp (str, "zarch", 5) == 0
-		       && (str[5] == 0 || str[5] == ',')) {
-	      mode_bits |= 1 << S390_OPCODE_ZARCH;
-	      str += 5;
+	    if (strncmp (str, "optparm", 7) == 0
+		&& (str[7] == 0 || str[7] == ',')) {
+	      flag_bits |= S390_INSTR_FLAG_OPTPARM;
+	      str += 7;
 	    } else {
-	      fprintf (stderr, "Couldn't parse modes string %s\n",
-		       modes_string);
+	      fprintf (stderr, "Couldn't parse flags string %s\n",
+		       flags_string);
 	      exit (1);
 	    }
 	    if (*str == ',')
 	      str++;
 	  } while (*str != 0);
-
-	  insertExpandedMnemonic (opcode, mnemonic, format, min_cpu, mode_bits);
-	}
-      else
-	{
-	  fprintf (stderr, "Couldn't scan line %s\n", currentLine);
-	  exit (1);
 	}
+      insertExpandedMnemonic (opcode, mnemonic, format, min_cpu, mode_bits, flag_bits);
     }
 
   dumpTable ();
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/opcodes/s390-opc.c ./opcodes/s390-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/opcodes/s390-opc.c	2015-01-13 01:48:41.000000000 +0000
+++ ./opcodes/s390-opc.c	2015-01-20 01:48:39.000000000 +0000
@@ -44,197 +44,210 @@ const struct s390_operand s390_operands[
 
 /* General purpose register operands.  */
 
-#define R_8    1                  /* GPR starting at position 8 */
+#define R_8         1             /* GPR starting at position 8 */
   { 4, 8, S390_OPERAND_GPR },
-#define R_12   2                  /* GPR starting at position 12 */
+#define R_12        2             /* GPR starting at position 12 */
   { 4, 12, S390_OPERAND_GPR },
-#define RO_12  3                 /* optional GPR starting at position 12 */
-  { 4, 12, S390_OPERAND_GPR | S390_OPERAND_OPTIONAL },
-#define R_16   4                  /* GPR starting at position 16 */
+#define R_16        3             /* GPR starting at position 16 */
   { 4, 16, S390_OPERAND_GPR },
-#define R_20   5                  /* GPR starting at position 20 */
+#define R_20        4             /* GPR starting at position 20 */
   { 4, 20, S390_OPERAND_GPR },
-#define R_24   6                  /* GPR starting at position 24 */
+#define R_24        5             /* GPR starting at position 24 */
   { 4, 24, S390_OPERAND_GPR },
-#define R_28   7                  /* GPR starting at position 28 */
+#define R_28        6             /* GPR starting at position 28 */
   { 4, 28, S390_OPERAND_GPR },
-#define RO_28  8                  /* optional GPR starting at position 28 */
-  { 4, 28, (S390_OPERAND_GPR | S390_OPERAND_OPTIONAL) },
-#define R_32   9                  /* GPR starting at position 32 */
+#define R_32        7             /* GPR starting at position 32 */
   { 4, 32, S390_OPERAND_GPR },
 
 /* General purpose register pair operands.  */
 
-#define RE_8    10                  /* GPR starting at position 8 */
+#define RE_8        8             /* GPR starting at position 8 */
   { 4, 8, S390_OPERAND_GPR | S390_OPERAND_REG_PAIR },
-#define RE_12   11                  /* GPR starting at position 12 */
+#define RE_12       9             /* GPR starting at position 12 */
   { 4, 12, S390_OPERAND_GPR | S390_OPERAND_REG_PAIR },
-#define RE_16   12                  /* GPR starting at position 16 */
+#define RE_16       10            /* GPR starting at position 16 */
   { 4, 16, S390_OPERAND_GPR | S390_OPERAND_REG_PAIR },
-#define RE_20   13                  /* GPR starting at position 20 */
+#define RE_20       11            /* GPR starting at position 20 */
   { 4, 20, S390_OPERAND_GPR | S390_OPERAND_REG_PAIR },
-#define RE_24   14                  /* GPR starting at position 24 */
+#define RE_24       12            /* GPR starting at position 24 */
   { 4, 24, S390_OPERAND_GPR | S390_OPERAND_REG_PAIR },
-#define RE_28   15                  /* GPR starting at position 28 */
+#define RE_28       13            /* GPR starting at position 28 */
   { 4, 28, S390_OPERAND_GPR | S390_OPERAND_REG_PAIR },
-#define RE_32   16                  /* GPR starting at position 32 */
+#define RE_32       14            /* GPR starting at position 32 */
   { 4, 32, S390_OPERAND_GPR | S390_OPERAND_REG_PAIR },
 
-
 /* Floating point register operands.  */
 
-#define F_8    17                 /* FPR starting at position 8 */
+#define F_8         15            /* FPR starting at position 8 */
   { 4, 8, S390_OPERAND_FPR },
-#define F_12   18                 /* FPR starting at position 12 */
+#define F_12        16            /* FPR starting at position 12 */
   { 4, 12, S390_OPERAND_FPR },
-#define F_16   19                 /* FPR starting at position 16 */
+#define F_16        17            /* FPR starting at position 16 */
   { 4, 16, S390_OPERAND_FPR },
-#define F_20   20                 /* FPR starting at position 16 */
+#define F_20        18            /* FPR starting at position 16 */
   { 4, 16, S390_OPERAND_FPR },
-#define F_24   21                 /* FPR starting at position 24 */
+#define F_24        19            /* FPR starting at position 24 */
   { 4, 24, S390_OPERAND_FPR },
-#define F_28   22                 /* FPR starting at position 28 */
+#define F_28        20            /* FPR starting at position 28 */
   { 4, 28, S390_OPERAND_FPR },
-#define F_32   23                 /* FPR starting at position 32 */
+#define F_32        21            /* FPR starting at position 32 */
   { 4, 32, S390_OPERAND_FPR },
 
 /* Floating point register pair operands.  */
 
-#define FE_8    24                 /* FPR starting at position 8 */
+#define FE_8        22            /* FPR starting at position 8 */
   { 4, 8, S390_OPERAND_FPR | S390_OPERAND_REG_PAIR },
-#define FE_12   25                 /* FPR starting at position 12 */
+#define FE_12       23            /* FPR starting at position 12 */
   { 4, 12, S390_OPERAND_FPR | S390_OPERAND_REG_PAIR },
-#define FE_16   26                 /* FPR starting at position 16 */
+#define FE_16       24            /* FPR starting at position 16 */
   { 4, 16, S390_OPERAND_FPR | S390_OPERAND_REG_PAIR },
-#define FE_20   27                 /* FPR starting at position 16 */
+#define FE_20       25            /* FPR starting at position 16 */
   { 4, 16, S390_OPERAND_FPR | S390_OPERAND_REG_PAIR },
-#define FE_24   28                 /* FPR starting at position 24 */
+#define FE_24       26            /* FPR starting at position 24 */
   { 4, 24, S390_OPERAND_FPR | S390_OPERAND_REG_PAIR },
-#define FE_28   29                 /* FPR starting at position 28 */
+#define FE_28       27            /* FPR starting at position 28 */
   { 4, 28, S390_OPERAND_FPR | S390_OPERAND_REG_PAIR },
-#define FE_32   30                 /* FPR starting at position 32 */
+#define FE_32       28            /* FPR starting at position 32 */
   { 4, 32, S390_OPERAND_FPR | S390_OPERAND_REG_PAIR },
 
+/* Vector register operands.  */
+
+/* For each of these operands and additional bit in the RXB operand is
+   needed.  */
+
+#define V_8         29            /* Vector reg. starting at position 8 */
+  { 4, 8, S390_OPERAND_VR },
+#define V_12        30            /* Vector reg. starting at position 12 */
+  { 4, 12, S390_OPERAND_VR },
+#define V_CP16_12   31            /* Vector reg. starting at position 12 */
+  { 4, 12, S390_OPERAND_VR | S390_OPERAND_CP16 }, /* with a copy at pos 16 */
+#define V_16        32            /* Vector reg. starting at position 16 */
+  { 4, 16, S390_OPERAND_VR },
+#define V_32        33            /* Vector reg. starting at position 32 */
+  { 4, 32, S390_OPERAND_VR },
 
 /* Access register operands.  */
 
-#define A_8    31                 /* Access reg. starting at position 8 */
+#define A_8         34            /* Access reg. starting at position 8 */
   { 4, 8, S390_OPERAND_AR },
-#define A_12   32                 /* Access reg. starting at position 12 */
+#define A_12        35            /* Access reg. starting at position 12 */
   { 4, 12, S390_OPERAND_AR },
-#define A_24   33                 /* Access reg. starting at position 24 */
+#define A_24        36            /* Access reg. starting at position 24 */
   { 4, 24, S390_OPERAND_AR },
-#define A_28   34                 /* Access reg. starting at position 28 */
+#define A_28        37            /* Access reg. starting at position 28 */
   { 4, 28, S390_OPERAND_AR },
 
 /* Control register operands.  */
 
-#define C_8    35                 /* Control reg. starting at position 8 */
+#define C_8         38            /* Control reg. starting at position 8 */
   { 4, 8, S390_OPERAND_CR },
-#define C_12   36                 /* Control reg. starting at position 12 */
+#define C_12        39            /* Control reg. starting at position 12 */
   { 4, 12, S390_OPERAND_CR },
 
 /* Base register operands.  */
 
-#define B_16   37                 /* Base register starting at position 16 */
+#define B_16        40            /* Base register starting at position 16 */
   { 4, 16, S390_OPERAND_BASE | S390_OPERAND_GPR },
-#define B_32   38                 /* Base register starting at position 32 */
+#define B_32        41            /* Base register starting at position 32 */
   { 4, 32, S390_OPERAND_BASE | S390_OPERAND_GPR },
 
-#define X_12   39                 /* Index register starting at position 12 */
+#define X_12        42            /* Index register starting at position 12 */
   { 4, 12, S390_OPERAND_INDEX | S390_OPERAND_GPR },
 
+#define VX_12       43     /* Vector index register starting at position 12 */
+  { 4, 12, S390_OPERAND_INDEX | S390_OPERAND_VR },
+
 /* Address displacement operands.  */
 
-#define D_20   40                 /* Displacement starting at position 20 */
+#define D_20        44            /* Displacement starting at position 20 */
   { 12, 20, S390_OPERAND_DISP },
-#define DO_20  41                 /* optional Displ. starting at position 20 */
-  { 12, 20, S390_OPERAND_DISP | S390_OPERAND_OPTIONAL },
-#define D_36   42                 /* Displacement starting at position 36 */
+#define D_36        45            /* Displacement starting at position 36 */
   { 12, 36, S390_OPERAND_DISP },
-#define D20_20 43		  /* 20 bit displacement starting at 20 */
+#define D20_20      46		  /* 20 bit displacement starting at 20 */
   { 20, 20, S390_OPERAND_DISP | S390_OPERAND_SIGNED },
 
 /* Length operands.  */
 
-#define L4_8   44                 /* 4 bit length starting at position 8 */
+#define L4_8        47            /* 4 bit length starting at position 8 */
   { 4, 8, S390_OPERAND_LENGTH },
-#define L4_12  45                 /* 4 bit length starting at position 12 */
+#define L4_12       48            /* 4 bit length starting at position 12 */
   { 4, 12, S390_OPERAND_LENGTH },
-#define L8_8   46                 /* 8 bit length starting at position 8 */
+#define L8_8        49            /* 8 bit length starting at position 8 */
   { 8, 8, S390_OPERAND_LENGTH },
 
 /* Signed immediate operands.  */
 
-#define I8_8   47		  /* 8 bit signed value starting at 8 */
+#define I8_8        50		  /* 8 bit signed value starting at 8 */
   { 8, 8, S390_OPERAND_SIGNED },
-#define I8_32  48		  /* 8 bit signed value starting at 32 */
+#define I8_32       51		  /* 8 bit signed value starting at 32 */
   { 8, 32, S390_OPERAND_SIGNED },
-#define I12_12 49		  /* 12 bit signed value starting at 12 */
+#define I12_12      52		  /* 12 bit signed value starting at 12 */
   { 12, 12, S390_OPERAND_SIGNED },
-#define I16_16 50                 /* 16 bit signed value starting at 16 */
+#define I16_16      53            /* 16 bit signed value starting at 16 */
   { 16, 16, S390_OPERAND_SIGNED },
-#define I16_32 51                 /* 16 bit signed value starting at 32 */
+#define I16_32      54            /* 16 bit signed value starting at 32 */
   { 16, 32, S390_OPERAND_SIGNED },
-#define I24_24 52		  /* 24 bit signed value starting at 24 */
+#define I24_24      55		  /* 24 bit signed value starting at 24 */
   { 24, 24, S390_OPERAND_SIGNED },
-#define I32_16 53		  /* 32 bit signed value starting at 16 */
+#define I32_16      56		  /* 32 bit signed value starting at 16 */
   { 32, 16, S390_OPERAND_SIGNED },
 
 /* Unsigned immediate operands.  */
 
-#define U4_8   54                 /* 4 bit unsigned value starting at 8 */
+#define U4_8        57            /* 4 bit unsigned value starting at 8 */
   { 4, 8, 0 },
-#define U4_12  55                 /* 4 bit unsigned value starting at 12 */
+#define U4_12       58            /* 4 bit unsigned value starting at 12 */
   { 4, 12, 0 },
-#define U4_16  56                 /* 4 bit unsigned value starting at 16 */
+#define U4_16       59            /* 4 bit unsigned value starting at 16 */
   { 4, 16, 0 },
-#define U4_20  57                 /* 4 bit unsigned value starting at 20 */
+#define U4_20       60            /* 4 bit unsigned value starting at 20 */
   { 4, 20, 0 },
-#define U4_24  58                 /* 4 bit unsigned value starting at 24 */
+#define U4_24       61            /* 4 bit unsigned value starting at 24 */
   { 4, 24, 0 },
-#define U4_28  59                 /* 4 bit unsigned value starting at 28 */
+#define U4_OR1_24   62            /* 4 bit unsigned value starting at 24 */
+  { 4, 24, S390_OPERAND_OR1 },
+#define U4_OR2_24   63            /* 4 bit unsigned value starting at 24 */
+  { 4, 24, S390_OPERAND_OR2 },
+#define U4_OR3_24   64            /* 4 bit unsigned value starting at 24 */
+  { 4, 24, S390_OPERAND_OR1 | S390_OPERAND_OR2 },
+#define U4_28       65            /* 4 bit unsigned value starting at 28 */
   { 4, 28, 0 },
-#define U4_32  60                 /* 4 bit unsigned value starting at 32 */
+#define U4_OR8_28   66
+  { 4, 28, S390_OPERAND_OR8 },
+#define U4_32       67            /* 4 bit unsigned value starting at 32 */
   { 4, 32, 0 },
-#define U4_36  61                 /* 4 bit unsigned value starting at 36 */
+#define U4_36       68            /* 4 bit unsigned value starting at 36 */
   { 4, 36, 0 },
-#define U8_8   62                 /* 8 bit unsigned value starting at 8 */
+#define U8_8        69            /* 8 bit unsigned value starting at 8 */
   { 8, 8, 0 },
-#define U8_16  63                 /* 8 bit unsigned value starting at 16 */
+#define U8_16       70            /* 8 bit unsigned value starting at 16 */
   { 8, 16, 0 },
-#define U8_24  64                 /* 8 bit unsigned value starting at 24 */
+#define U8_24       71            /* 8 bit unsigned value starting at 24 */
   { 8, 24, 0 },
-#define U8_32  65                 /* 8 bit unsigned value starting at 32 */
+#define U8_32       72            /* 8 bit unsigned value starting at 32 */
   { 8, 32, 0 },
-#define U16_16 66                 /* 16 bit unsigned value starting at 16 */
+#define U12_16      73            /* 12 bit unsigned value starting at 16 */
+  { 12, 16, 0 },
+#define U16_16      74            /* 16 bit unsigned value starting at 16 */
   { 16, 16, 0 },
-#define U16_32 67		  /* 16 bit unsigned value starting at 32 */
+#define U16_32      75		  /* 16 bit unsigned value starting at 32 */
   { 16, 32, 0 },
-#define U32_16 68		  /* 32 bit unsigned value starting at 16 */
+#define U32_16      76		  /* 32 bit unsigned value starting at 16 */
   { 32, 16, 0 },
 
 /* PC-relative address operands.  */
 
-#define J12_12 69                 /* 12 bit PC relative offset at 12 */
+#define J12_12      77            /* 12 bit PC relative offset at 12 */
   { 12, 12, S390_OPERAND_PCREL },
-#define J16_16 70                 /* 16 bit PC relative offset at 16 */
+#define J16_16      78            /* 16 bit PC relative offset at 16 */
   { 16, 16, S390_OPERAND_PCREL },
-#define J16_32 71                 /* 16 bit PC relative offset at 32 */
+#define J16_32      79            /* 24 bit PC relative offset at 24 */
   { 16, 32, S390_OPERAND_PCREL },
-#define J24_24 72                 /* 24 bit PC relative offset at 24 */
+#define J24_24      80            /* 24 bit PC relative offset at 24 */
   { 24, 24, S390_OPERAND_PCREL },
-#define J32_16 73                 /* 32 bit PC relative offset at 16 */
+#define J32_16      81            /* 32 bit PC relative offset at 16 */
   { 32, 16, S390_OPERAND_PCREL },
 
-
-/* Conditional mask operands.  */
-
-#define M_16OPT   74              /* 4 bit optional mask starting at 16 */
-  { 4, 16, S390_OPERAND_OPTIONAL },
-#define M_20OPT   75              /* 4 bit optional mask starting at 20 */
-  { 4, 20, S390_OPERAND_OPTIONAL },
-
 };
 
 
@@ -244,7 +257,7 @@ const struct s390_operand s390_operands[
 #define OP8(x) { x, 0x00, 0x00, 0x00, 0x00, 0x00 }
 #define OP16(x) { x >> 8, x & 255, 0x00, 0x00, 0x00, 0x00 }
 #define OP48(x) { x >> 40, (x >> 32) & 255, (x >> 24) & 255, \
-                  (x >> 16) & 255, (x >> 8) & 255, x & 255}
+		  (x >> 16) & 255, (x >> 8) & 255, x & 255}
 
 /* The new format of the INSTR_x_y and MASK_x_y defines is based
    on the following rules:
@@ -263,7 +276,6 @@ const struct s390_operand s390_operands[
       l - length, 4 or 8 bit
       p - pc relative
       r - general purpose register
-      ro - optional register operand
       re - gpr extended operand, a valid general purpose register pair
       u - unsigned integer, 4, 8, 16 or 32 bit
       m - mode field, 4 bit
@@ -274,7 +286,7 @@ const struct s390_operand s390_operands[
       quite close.
 
       For example the instruction "mvo" is defined in the PoP as follows:
-      
+
       MVO  D1(L1,B1),D2(L2,B2)   [SS]
 
       --------------------------------------
@@ -284,358 +296,443 @@ const struct s390_operand s390_operands[
 
       The instruction format is: INSTR_SS_LLRDRD / MASK_SS_LLRDRD.  */
 
-#define INSTR_E          2, { 0,0,0,0,0,0 }                    /* e.g. pr    */
-#define INSTR_IE_UU      4, { U4_24,U4_28,0,0,0,0 }            /* e.g. niai  */
-#define INSTR_MII_UPP    6, { U4_8,J12_12,J24_24 }             /* e.g. bprp  */
-#define INSTR_RIE_RRP    6, { R_8,R_12,J16_16,0,0,0 }          /* e.g. brxhg */
-#define INSTR_RIE_RRPU   6, { R_8,R_12,U4_32,J16_16,0,0 }      /* e.g. crj   */
-#define INSTR_RIE_RRP0   6, { R_8,R_12,J16_16,0,0,0 }          /* e.g. crjne */
-#define INSTR_RIE_RRI0   6, { R_8,R_12,I16_16,0,0,0 }          /* e.g. ahik  */
-#define INSTR_RIE_RUPI   6, { R_8,I8_32,U4_12,J16_16,0,0 }     /* e.g. cij   */
-#define INSTR_RIE_R0PI   6, { R_8,I8_32,J16_16,0,0,0 }         /* e.g. cijne */
-#define INSTR_RIE_RUPU   6, { R_8,U8_32,U4_12,J16_16,0,0 }     /* e.g. clij  */
-#define INSTR_RIE_R0PU   6, { R_8,U8_32,J16_16,0,0,0 }         /* e.g. clijne */
-#define INSTR_RIE_R0IU   6, { R_8,I16_16,U4_32,0,0,0 }         /* e.g. cit   */
-#define INSTR_RIE_R0I0   6, { R_8,I16_16,0,0,0,0 }             /* e.g. citne */
-#define INSTR_RIE_R0UU   6, { R_8,U16_16,U4_32,0,0,0 }         /* e.g. clfit */
-#define INSTR_RIE_R0U0   6, { R_8,U16_16,0,0,0,0 }             /* e.g. clfitne */
-#define INSTR_RIE_RRUUU  6, { R_8,R_12,U8_16,U8_24,U8_32,0 }   /* e.g. rnsbg */
-#define INSTR_RIL_0P     6, { J32_16,0,0,0,0 }                 /* e.g. jg    */
-#define INSTR_RIL_RP     6, { R_8,J32_16,0,0,0,0 }             /* e.g. brasl */
-#define INSTR_RIL_UP     6, { U4_8,J32_16,0,0,0,0 }            /* e.g. brcl  */
-#define INSTR_RIL_RI     6, { R_8,I32_16,0,0,0,0 }             /* e.g. afi   */
-#define INSTR_RIL_RU     6, { R_8,U32_16,0,0,0,0 }             /* e.g. alfi  */
-#define INSTR_RI_0P      4, { J16_16,0,0,0,0,0 }               /* e.g. j     */
-#define INSTR_RI_RI      4, { R_8,I16_16,0,0,0,0 }             /* e.g. ahi   */
-#define INSTR_RI_RP      4, { R_8,J16_16,0,0,0,0 }             /* e.g. brct  */
-#define INSTR_RI_RU      4, { R_8,U16_16,0,0,0,0 }             /* e.g. tml   */
-#define INSTR_RI_UP      4, { U4_8,J16_16,0,0,0,0 }            /* e.g. brc   */
-#define INSTR_RIS_RURDI  6, { R_8,I8_32,U4_12,D_20,B_16,0 }    /* e.g. cib   */
-#define INSTR_RIS_R0RDI  6, { R_8,I8_32,D_20,B_16,0,0 }        /* e.g. cibne */
-#define INSTR_RIS_RURDU  6, { R_8,U8_32,U4_12,D_20,B_16,0 }    /* e.g. clib  */
-#define INSTR_RIS_R0RDU  6, { R_8,U8_32,D_20,B_16,0,0 }        /* e.g. clibne*/
-#define INSTR_RRE_00     4, { 0,0,0,0,0,0 }                    /* e.g. palb  */
-#define INSTR_RRE_0R     4, { R_28,0,0,0,0,0 }                 /* e.g. tb    */
-#define INSTR_RRE_AA     4, { A_24,A_28,0,0,0,0 }              /* e.g. cpya  */
-#define INSTR_RRE_AR     4, { A_24,R_28,0,0,0,0 }              /* e.g. sar   */
-#define INSTR_RRE_F0     4, { F_24,0,0,0,0,0 }                 /* e.g. sqer  */
-#define INSTR_RRE_FE0    4, { FE_24,0,0,0,0,0 }                /* e.g. lzxr  */
-#define INSTR_RRE_FF     4, { F_24,F_28,0,0,0,0 }              /* e.g. debr  */
-#define INSTR_RRE_FEF    4, { FE_24,F_28,0,0,0,0 }             /* e.g. lxdbr */
-#define INSTR_RRE_FFE    4, { F_24,FE_28,0,0,0,0 }             /* e.g. lexr  */
-#define INSTR_RRE_FEFE   4, { FE_24,FE_28,0,0,0,0 }            /* e.g. dxr   */
-#define INSTR_RRE_R0     4, { R_24,0,0,0,0,0 }                 /* e.g. ipm   */
-#define INSTR_RRE_RA     4, { R_24,A_28,0,0,0,0 }              /* e.g. ear   */
-#define INSTR_RRE_RF     4, { R_24,F_28,0,0,0,0 }              /* e.g. cefbr */
-#define INSTR_RRE_RFE    4, { R_24,FE_28,0,0,0,0 }             /* e.g. csxtr */
-#define INSTR_RRE_RR     4, { R_24,R_28,0,0,0,0 }              /* e.g. lura  */
-#define INSTR_RRE_RER    4, { RE_24,R_28,0,0,0,0 }             /* e.g. tre   */
-#define INSTR_RRE_RERE   4, { RE_24,RE_28,0,0,0,0 }            /* e.g. cuse  */
-#define INSTR_RRE_FR     4, { F_24,R_28,0,0,0,0 }              /* e.g. ldgr  */
-#define INSTR_RRE_FER    4, { FE_24,R_28,0,0,0,0 }             /* e.g. cxfbr */
-/* Actually efpc and sfpc do not take an optional operand.
-   This is just a workaround for existing code e.g. glibc.  */
-#define INSTR_RRE_RR_OPT 4, { R_24,RO_28,0,0,0,0 }             /* efpc, sfpc */
-#define INSTR_RRF_F0FF   4, { F_16,F_24,F_28,0,0,0 }           /* e.g. madbr */
-#define INSTR_RRF_FE0FF  4, { F_16,F_24,F_28,0,0,0 }           /* e.g. myr */
-#define INSTR_RRF_F0FF2  4, { F_24,F_16,F_28,0,0,0 }           /* e.g. cpsdr */
-#define INSTR_RRF_F0FR   4, { F_24,F_16,R_28,0,0,0 }           /* e.g. iedtr */
-#define INSTR_RRF_FE0FER 4, { FE_24,FE_16,R_28,0,0,0 }         /* e.g. iextr */
-#define INSTR_RRF_FUFF   4, { F_24,F_16,F_28,U4_20,0,0 }       /* e.g. didbr */
-#define INSTR_RRF_FEUFEFE 4, { FE_24,FE_16,FE_28,U4_20,0,0 }   /* e.g. qaxtr */
-#define INSTR_RRF_FUFF2  4, { F_24,F_28,F_16,U4_20,0,0 }       /* e.g. adtra */
-#define INSTR_RRF_FEUFEFE2 4, { FE_24,FE_28,FE_16,U4_20,0,0 }  /* e.g. axtra */
-#define INSTR_RRF_RURR   4, { R_24,R_28,R_16,U4_20,0,0 }       /* e.g. .insn */
-#define INSTR_RRF_RURR2  4, { R_24,R_16,R_28,U4_20,0,0 }       /* e.g. lptea */
-#define INSTR_RRF_R0RR   4, { R_24,R_16,R_28,0,0,0 }           /* e.g. idte  */
-#define INSTR_RRF_R0RR2  4, { R_24,R_28,R_16,0,0,0 }           /* e.g. ark   */
-#define INSTR_RRF_RMRR   4, { R_24,R_16,R_28,M_20OPT,0,0 }     /* e.g. crdte */
-#define INSTR_RRF_U0FF   4, { F_24,U4_16,F_28,0,0,0 }          /* e.g. fixr  */
-#define INSTR_RRF_U0FEFE 4, { FE_24,U4_16,FE_28,0,0,0 }        /* e.g. fixbr */
-#define INSTR_RRF_U0RF   4, { R_24,U4_16,F_28,0,0,0 }          /* e.g. cfebr */
-#define INSTR_RRF_U0RFE  4, { R_24,U4_16,FE_28,0,0,0 }         /* e.g. cfxbr */
-#define INSTR_RRF_UUFF   4, { F_24,U4_16,F_28,U4_20,0,0 }      /* e.g. fidtr */
-#define INSTR_RRF_UUFFE  4, { F_24,U4_16,FE_28,U4_20,0,0 }     /* e.g. ldxtr */
-#define INSTR_RRF_UUFEFE 4, { FE_24,U4_16,FE_28,U4_20,0,0 }    /* e.g. fixtr */
-#define INSTR_RRF_0UFF   4, { F_24,F_28,U4_20,0,0,0 }          /* e.g. ldetr */
-#define INSTR_RRF_0UFEF  4, { FE_24,F_28,U4_20,0,0,0 }         /* e.g. lxdtr */
-#define INSTR_RRF_FFRU   4, { F_24,F_16,R_28,U4_20,0,0 }       /* e.g. rrdtr */
-#define INSTR_RRF_FEFERU 4, { FE_24,FE_16,R_28,U4_20,0,0 }     /* e.g. rrxtr */
-#define INSTR_RRF_M0RR   4, { R_24,R_28,M_16OPT,0,0,0 }        /* e.g. sske  */
-#define INSTR_RRF_M0RER  4, { RE_24,R_28,M_16OPT,0,0,0 }       /* e.g. trte  */
-#define INSTR_RRF_M0RERE 4, { RE_24,RE_28,M_16OPT,0,0,0 }      /* e.g. troo  */
-#define INSTR_RRF_U0RR   4, { R_24,R_28,U4_16,0,0,0 }          /* e.g. clrt  */
-#define INSTR_RRF_00RR   4, { R_24,R_28,0,0,0,0 }              /* e.g. clrtne */
-#define INSTR_RRF_UUFR   4, { F_24,U4_16,R_28,U4_20,0,0 }      /* e.g. cdgtra */
-#define INSTR_RRF_UUFER  4, { FE_24,U4_16,R_28,U4_20,0,0 }     /* e.g. cxfbra */
-#define INSTR_RRF_UURF   4, { R_24,U4_16,F_28,U4_20,0,0 }      /* e.g. cgdtra */
-#define INSTR_RRF_UURFE  4, { R_24,U4_16,FE_28,U4_20,0,0 }     /* e.g. cfxbra */
-#define INSTR_RR_0R      2, { R_12, 0,0,0,0,0 }                /* e.g. br    */
-#define INSTR_RR_0R_OPT  2, { RO_12, 0,0,0,0,0 }               /* e.g. nopr  */
-#define INSTR_RR_FF      2, { F_8,F_12,0,0,0,0 }               /* e.g. adr   */
-#define INSTR_RR_FEF     2, { FE_8,F_12,0,0,0,0 }              /* e.g. mxdr  */
-#define INSTR_RR_FFE     2, { F_8,FE_12,0,0,0,0 }              /* e.g. ldxr  */
-#define INSTR_RR_FEFE    2, { FE_8,FE_12,0,0,0,0 }             /* e.g. axr   */
-#define INSTR_RR_R0      2, { R_8, 0,0,0,0,0 }                 /* e.g. spm   */
-#define INSTR_RR_RR      2, { R_8,R_12,0,0,0,0 }               /* e.g. lr    */
-#define INSTR_RR_RER     2, { RE_8,R_12,0,0,0,0 }              /* e.g. dr    */
-#define INSTR_RR_U0      2, { U8_8, 0,0,0,0,0 }                /* e.g. svc   */
-#define INSTR_RR_UR      2, { U4_8,R_12,0,0,0,0 }              /* e.g. bcr   */
-#define INSTR_RRR_F0FF   4, { F_24,F_28,F_16,0,0,0 }           /* e.g. ddtr  */
-#define INSTR_RRR_FE0FEFE 4, { FE_24,FE_28,FE_16,0,0,0 }       /* e.g. axtr  */
-#define INSTR_RRS_RRRDU  6, { R_8,R_12,U4_32,D_20,B_16 }       /* e.g. crb   */
-#define INSTR_RRS_RRRD0  6, { R_8,R_12,D_20,B_16,0 }           /* e.g. crbne */
-#define INSTR_RSE_RRRD   6, { R_8,R_12,D_20,B_16,0,0 }         /* e.g. lmh   */
-#define INSTR_RSE_RERERD 6, { RE_8,RE_12,D_20,B_16,0,0 }       /* e.g. mvclu */
-#define INSTR_RSE_CCRD   6, { C_8,C_12,D_20,B_16,0,0 }         /* e.g. lmh   */
-#define INSTR_RSE_RURD   6, { R_8,U4_12,D_20,B_16,0,0 }        /* e.g. icmh  */
-#define INSTR_RSL_R0RD   6, { D_20,L4_8,B_16,0,0,0 }           /* e.g. tp    */
-#define INSTR_RSL_LRDFU  6, { F_32,D_20,L8_8,B_16,U4_36,0 }    /* e.g. cdzt  */
-#define INSTR_RSL_LRDFEU 6, { FE_32,D_20,L8_8,B_16,U4_36,0 }   /* e.g. cxzt  */
-#define INSTR_RSI_RRP    4, { R_8,R_12,J16_16,0,0,0 }          /* e.g. brxh  */
-#define INSTR_RSY_RRRD   6, { R_8,R_12,D20_20,B_16,0,0 }       /* e.g. stmy  */
-#define INSTR_RSY_RERERD 6, { RE_8,RE_12,D20_20,B_16,0,0 }     /* e.g. cdsy  */
-#define INSTR_RSY_RURD   6, { R_8,U4_12,D20_20,B_16,0,0 }      /* e.g. icmh  */
-#define INSTR_RSY_RURD2  6, { R_8,D20_20,B_16,U4_12,0,0 }      /* e.g. loc   */
-#define INSTR_RSY_R0RD   6, { R_8,D20_20,B_16,0,0,0 }          /* e.g. locgt */
-#define INSTR_RSY_AARD   6, { A_8,A_12,D20_20,B_16,0,0 }       /* e.g. lamy  */
-#define INSTR_RSY_CCRD   6, { C_8,C_12,D20_20,B_16,0,0 }       /* e.g. stctg */
-#define INSTR_RS_AARD    4, { A_8,A_12,D_20,B_16,0,0 }         /* e.g. lam   */
-#define INSTR_RS_CCRD    4, { C_8,C_12,D_20,B_16,0,0 }         /* e.g. lctl  */
-#define INSTR_RS_R0RD    4, { R_8,D_20,B_16,0,0,0 }            /* e.g. sll   */
-#define INSTR_RS_RE0RD   4, { RE_8,D_20,B_16,0,0,0 }           /* e.g. slda  */
-#define INSTR_RS_RRRD    4, { R_8,R_12,D_20,B_16,0,0 }         /* e.g. cs    */
-#define INSTR_RS_RERERD  4, { RE_8,RE_12,D_20,B_16,0,0 }       /* e.g. cds   */
-#define INSTR_RS_RURD    4, { R_8,U4_12,D_20,B_16,0,0 }        /* e.g. icm   */
-#define INSTR_RXE_FRRD   6, { F_8,D_20,X_12,B_16,0,0 }         /* e.g. axbr  */
-#define INSTR_RXE_FERRD  6, { FE_8,D_20,X_12,B_16,0,0 }        /* e.g. lxdb  */
-#define INSTR_RXE_RRRD   6, { R_8,D_20,X_12,B_16,0,0 }         /* e.g. lg    */
-#define INSTR_RXE_RERRD  6, { RE_8,D_20,X_12,B_16,0,0 }        /* e.g. dsg   */
-#define INSTR_RXF_FRRDF  6, { F_32,F_8,D_20,X_12,B_16,0 }      /* e.g. madb  */
-#define INSTR_RXF_FRRDFE 6, { FE_32,F_8,D_20,X_12,B_16,0 }     /* e.g. my    */
-#define INSTR_RXF_FERRDFE 6, { FE_32,FE_8,D_20,X_12,B_16,0 }   /* e.g. slxt  */
-#define INSTR_RXF_RRRDR  6, { R_32,R_8,D_20,X_12,B_16,0 }      /* e.g. .insn */
-#define INSTR_RXY_RRRD   6, { R_8,D20_20,X_12,B_16,0,0 }       /* e.g. ly    */
-#define INSTR_RXY_RERRD  6, { RE_8,D20_20,X_12,B_16,0,0 }      /* e.g. dsg   */
-#define INSTR_RXY_FRRD   6, { F_8,D20_20,X_12,B_16,0,0 }       /* e.g. ley   */
-#define INSTR_RXY_URRD   6, { U4_8,D20_20,X_12,B_16,0,0 }      /* e.g. pfd   */
-#define INSTR_RX_0RRD    4, { D_20,X_12,B_16,0,0,0 }           /* e.g. be    */
-#define INSTR_RX_0RRD_OPT 4, { DO_20,X_12,B_16,0,0,0 }         /* e.g. nop   */
-#define INSTR_RX_FRRD    4, { F_8,D_20,X_12,B_16,0,0 }         /* e.g. ae    */
-#define INSTR_RX_FERRD   4, { FE_8,D_20,X_12,B_16,0,0 }        /* e.g. mxd   */
-#define INSTR_RX_RRRD    4, { R_8,D_20,X_12,B_16,0,0 }         /* e.g. l     */
-#define INSTR_RX_RERRD   4, { RE_8,D_20,X_12,B_16,0,0 }        /* e.g. d     */
-#define INSTR_RX_URRD    4, { U4_8,D_20,X_12,B_16,0,0 }        /* e.g. bc    */
-#define INSTR_SI_URD     4, { D_20,B_16,U8_8,0,0,0 }           /* e.g. cli   */
-#define INSTR_SIY_URD    6, { D20_20,B_16,U8_8,0,0,0 }         /* e.g. tmy   */
-#define INSTR_SIY_IRD    6, { D20_20,B_16,I8_8,0,0,0 }         /* e.g. asi   */
-#define INSTR_SIL_RDI    6, { D_20,B_16,I16_32,0,0,0 }         /* e.g. chhsi */
-#define INSTR_SIL_RDU    6, { D_20,B_16,U16_32,0,0,0 }         /* e.g. clfhsi */
-#define INSTR_SMI_U0RDP  6, { U4_8,J16_32,D_20,B_16,0,0 }      /* e.g. bpp */
-#define INSTR_SSE_RDRD   6, { D_20,B_16,D_36,B_32,0,0 }        /* e.g. mvsdk */
-#define INSTR_SS_L0RDRD  6, { D_20,L8_8,B_16,D_36,B_32,0     } /* e.g. mvc   */
-#define INSTR_SS_L2RDRD  6, { D_20,B_16,D_36,L8_8,B_32,0     } /* e.g. pka   */
-#define INSTR_SS_LIRDRD  6, { D_20,L4_8,B_16,D_36,B_32,U4_12 } /* e.g. srp   */
-#define INSTR_SS_LLRDRD  6, { D_20,L4_8,B_16,D_36,L4_12,B_32 } /* e.g. pack  */
-#define INSTR_SS_RRRDRD  6, { D_20,R_8,B_16,D_36,B_32,R_12 }   /* e.g. mvck  */
-#define INSTR_SS_RRRDRD2 6, { R_8,D_20,B_16,R_12,D_36,B_32 }   /* e.g. plo   */
-#define INSTR_SS_RRRDRD3 6, { R_8,R_12,D_20,B_16,D_36,B_32 }   /* e.g. lmd   */
-#define INSTR_SSF_RRDRD  6, { D_20,B_16,D_36,B_32,R_8,0 }      /* e.g. mvcos */
-#define INSTR_SSF_RRDRD2 6, { R_8,D_20,B_16,D_36,B_32,0 }
-#define INSTR_SSF_RERDRD2 6, { RE_8,D_20,B_16,D_36,B_32,0 }    /* e.g. lpd   */
-#define INSTR_S_00       4, { 0,0,0,0,0,0 }                    /* e.g. hsch  */
-#define INSTR_S_RD       4, { D_20,B_16,0,0,0,0 }              /* e.g. lpsw  */
-
-#define MASK_E           { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_IE_UU       { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_MII_UPP     { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RIE_RRP     { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RIE_RRPU    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RIE_RRP0    { 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff }
-#define MASK_RIE_RRI0    { 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff }
-#define MASK_RIE_RUPI    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RIE_R0PI    { 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff }
-#define MASK_RIE_RUPU    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RIE_R0PU    { 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff }
-#define MASK_RIE_R0IU    { 0xff, 0x0f, 0x00, 0x00, 0x0f, 0xff }
-#define MASK_RIE_R0I0    { 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff }
-#define MASK_RIE_R0UU    { 0xff, 0x0f, 0x00, 0x00, 0x0f, 0xff }
-#define MASK_RIE_R0U0    { 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff }
-#define MASK_RIE_RRUUU   { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RIL_0P      { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RIL_RP      { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RIL_UP      { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RIL_RI      { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RIL_RU      { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RI_0P       { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RI_RI       { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RI_RP       { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RI_RU       { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RI_UP       { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RIS_RURDI   { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RIS_R0RDI   { 0xff, 0x0f, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RIS_RURDU   { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RIS_R0RDU   { 0xff, 0x0f, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RRE_00      { 0xff, 0xff, 0xff, 0xff, 0x00, 0x00 }
-#define MASK_RRE_0R      { 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00 }
-#define MASK_RRE_AA      { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_RRE_AR      { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_RRE_F0      { 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00 }
-#define MASK_RRE_FE0     { 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00 }
-#define MASK_RRE_FF      { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_RRE_FEF     { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_RRE_FFE     { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_RRE_FEFE    { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_RRE_R0      { 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00 }
-#define MASK_RRE_RA      { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_RRE_RF      { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_RRE_RFE     { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_RRE_RR      { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_RRE_RER     { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_RRE_RERE    { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_RRE_FR      { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_RRE_FER     { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_RRE_RR_OPT  { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_RRF_F0FF    { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
-#define MASK_RRF_FE0FF   { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
-#define MASK_RRF_F0FF2   { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
-#define MASK_RRF_F0FR    { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
-#define MASK_RRF_FE0FER  { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
-#define MASK_RRF_FUFF    { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRF_FEUFEFE { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRF_FUFF2   { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define INSTR_E            2, { 0,0,0,0,0,0 }                    /* e.g. pr    */
+#define INSTR_IE_UU        4, { U4_24,U4_28,0,0,0,0 }            /* e.g. niai  */
+#define INSTR_MII_UPP      6, { U4_8,J12_12,J24_24 }             /* e.g. bprp  */
+#define INSTR_RIE_RRP      6, { R_8,R_12,J16_16,0,0,0 }          /* e.g. brxhg */
+#define INSTR_RIE_RRPU     6, { R_8,R_12,U4_32,J16_16,0,0 }      /* e.g. crj   */
+#define INSTR_RIE_RRP0     6, { R_8,R_12,J16_16,0,0,0 }          /* e.g. cgrjne */
+#define INSTR_RIE_RRI0     6, { R_8,R_12,I16_16,0,0,0 }          /* e.g. ahik  */
+#define INSTR_RIE_RUPI     6, { R_8,I8_32,U4_12,J16_16,0,0 }     /* e.g. cij   */
+#define INSTR_RIE_R0PI     6, { R_8,I8_32,J16_16,0,0,0 }         /* e.g. cijne */
+#define INSTR_RIE_RUPU     6, { R_8,U8_32,U4_12,J16_16,0,0 }     /* e.g. clij  */
+#define INSTR_RIE_R0PU     6, { R_8,U8_32,J16_16,0,0,0 }         /* e.g. clijne */
+#define INSTR_RIE_R0IU     6, { R_8,I16_16,U4_32,0,0,0 }         /* e.g. cit   */
+#define INSTR_RIE_R0I0     6, { R_8,I16_16,0,0,0,0 }             /* e.g. citne */
+#define INSTR_RIE_R0UU     6, { R_8,U16_16,U4_32,0,0,0 }         /* e.g. clfit */
+#define INSTR_RIE_R0U0     6, { R_8,U16_16,0,0,0,0 }             /* e.g. clfitne */
+#define INSTR_RIE_RRUUU    6, { R_8,R_12,U8_16,U8_24,U8_32,0 }   /* e.g. rnsbg */
+#define INSTR_RIL_0P       6, { J32_16,0,0,0,0 }                 /* e.g. jg    */
+#define INSTR_RIL_RP       6, { R_8,J32_16,0,0,0,0 }             /* e.g. brasl */
+#define INSTR_RIL_UP       6, { U4_8,J32_16,0,0,0,0 }            /* e.g. brcl  */
+#define INSTR_RIL_RI       6, { R_8,I32_16,0,0,0,0 }             /* e.g. afi   */
+#define INSTR_RIL_RU       6, { R_8,U32_16,0,0,0,0 }             /* e.g. alfi  */
+#define INSTR_RI_0P        4, { J16_16,0,0,0,0,0 }               /* e.g. j     */
+#define INSTR_RI_RI        4, { R_8,I16_16,0,0,0,0 }             /* e.g. ahi   */
+#define INSTR_RI_RP        4, { R_8,J16_16,0,0,0,0 }             /* e.g. brct  */
+#define INSTR_RI_RU        4, { R_8,U16_16,0,0,0,0 }             /* e.g. tml   */
+#define INSTR_RI_UP        4, { U4_8,J16_16,0,0,0,0 }            /* e.g. brc   */
+#define INSTR_RIS_RURDI    6, { R_8,I8_32,U4_12,D_20,B_16,0 }    /* e.g. cib   */
+#define INSTR_RIS_R0RDI    6, { R_8,I8_32,D_20,B_16,0,0 }        /* e.g. cibne */
+#define INSTR_RIS_RURDU    6, { R_8,U8_32,U4_12,D_20,B_16,0 }    /* e.g. clib  */
+#define INSTR_RIS_R0RDU    6, { R_8,U8_32,D_20,B_16,0,0 }        /* e.g. clibne*/
+#define INSTR_RRE_00       4, { 0,0,0,0,0,0 }                    /* e.g. palb  */
+#define INSTR_RRE_0R       4, { R_28,0,0,0,0,0 }                 /* e.g. tb    */
+#define INSTR_RRE_AA       4, { A_24,A_28,0,0,0,0 }              /* e.g. cpya  */
+#define INSTR_RRE_AR       4, { A_24,R_28,0,0,0,0 }              /* e.g. sar   */
+#define INSTR_RRE_F0       4, { F_24,0,0,0,0,0 }                 /* e.g. lzer  */
+#define INSTR_RRE_FE0      4, { FE_24,0,0,0,0,0 }                /* e.g. lzxr  */
+#define INSTR_RRE_FF       4, { F_24,F_28,0,0,0,0 }              /* e.g. debr  */
+#define INSTR_RRE_FEF      4, { FE_24,F_28,0,0,0,0 }             /* e.g. lxdbr */
+#define INSTR_RRE_FFE      4, { F_24,FE_28,0,0,0,0 }             /* e.g. lexr  */
+#define INSTR_RRE_FEFE     4, { FE_24,FE_28,0,0,0,0 }            /* e.g. dxr   */
+#define INSTR_RRE_R0       4, { R_24,0,0,0,0,0 }                 /* e.g. ipm   */
+#define INSTR_RRE_RA       4, { R_24,A_28,0,0,0,0 }              /* e.g. ear   */
+#define INSTR_RRE_RF       4, { R_24,F_28,0,0,0,0 }              /* e.g. lgdr  */
+#define INSTR_RRE_RFE      4, { R_24,FE_28,0,0,0,0 }             /* e.g. csxtr */
+#define INSTR_RRE_RR       4, { R_24,R_28,0,0,0,0 }              /* e.g. lura  */
+#define INSTR_RRE_RER      4, { RE_24,R_28,0,0,0,0 }             /* e.g. tre   */
+#define INSTR_RRE_RERE     4, { RE_24,RE_28,0,0,0,0 }            /* e.g. cuse  */
+#define INSTR_RRE_FR       4, { F_24,R_28,0,0,0,0 }              /* e.g. ldgr  */
+#define INSTR_RRE_FER      4, { FE_24,R_28,0,0,0,0 }             /* e.g. cxfbr */
+#define INSTR_RRF_F0FF     4, { F_16,F_24,F_28,0,0,0 }           /* e.g. madbr */
+#define INSTR_RRF_FE0FF    4, { F_16,F_24,F_28,0,0,0 }           /* e.g. myr   */
+#define INSTR_RRF_F0FF2    4, { F_24,F_16,F_28,0,0,0 }           /* e.g. cpsdr */
+#define INSTR_RRF_F0FR     4, { F_24,F_16,R_28,0,0,0 }           /* e.g. iedtr */
+#define INSTR_RRF_FE0FER   4, { FE_24,FE_16,R_28,0,0,0 }         /* e.g. iextr */
+#define INSTR_RRF_FUFF     4, { F_24,F_16,F_28,U4_20,0,0 }       /* e.g. didbr */
+#define INSTR_RRF_FEUFEFE  4, { FE_24,FE_16,FE_28,U4_20,0,0 }    /* e.g. qaxtr */
+#define INSTR_RRF_FUFF2    4, { F_24,F_28,F_16,U4_20,0,0 }       /* e.g. adtra */
+#define INSTR_RRF_FEUFEFE2 4, { FE_24,FE_28,FE_16,U4_20,0,0 }    /* e.g. axtra */
+#define INSTR_RRF_RURR     4, { R_24,R_28,R_16,U4_20,0,0 }       /* e.g. .insn */
+#define INSTR_RRF_RURR2    4, { R_24,R_16,R_28,U4_20,0,0 }       /* e.g. lptea */
+#define INSTR_RRF_R0RR     4, { R_24,R_16,R_28,0,0,0 }           /* e.g. idte  */
+#define INSTR_RRF_R0RR2    4, { R_24,R_28,R_16,0,0,0 }           /* e.g. ark   */
+#define INSTR_RRF_U0FF     4, { F_24,U4_16,F_28,0,0,0 }          /* e.g. fidbr */
+#define INSTR_RRF_U0FEFE   4, { FE_24,U4_16,FE_28,0,0,0 }        /* e.g. fixbr */
+#define INSTR_RRF_U0RF     4, { R_24,U4_16,F_28,0,0,0 }          /* e.g. cfebr */
+#define INSTR_RRF_U0RFE    4, { R_24,U4_16,FE_28,0,0,0 }         /* e.g. cfxbr */
+#define INSTR_RRF_UUFF     4, { F_24,U4_16,F_28,U4_20,0,0 }      /* e.g. fidtr */
+#define INSTR_RRF_UUFFE    4, { F_24,U4_16,FE_28,U4_20,0,0 }     /* e.g. ldxtr */
+#define INSTR_RRF_UUFEFE   4, { FE_24,U4_16,FE_28,U4_20,0,0 }    /* e.g. fixtr */
+#define INSTR_RRF_0UFF     4, { F_24,F_28,U4_20,0,0,0 }          /* e.g. ldetr */
+#define INSTR_RRF_0UFEF    4, { FE_24,F_28,U4_20,0,0,0 }         /* e.g. lxdtr */
+#define INSTR_RRF_FFRU     4, { F_24,F_16,R_28,U4_20,0,0 }       /* e.g. rrdtr */
+#define INSTR_RRF_FEFERU   4, { FE_24,FE_16,R_28,U4_20,0,0 }     /* e.g. rrxtr */
+#define INSTR_RRF_U0RR     4, { R_24,R_28,U4_16,0,0,0 }          /* e.g. sske  */
+#define INSTR_RRF_U0RER    4, { RE_24,R_28,U4_16,0,0,0 }         /* e.g. trte  */
+#define INSTR_RRF_U0RERE   4, { RE_24,RE_28,U4_16,0,0,0 }        /* e.g. troo  */
+#define INSTR_RRF_00RR     4, { R_24,R_28,0,0,0,0 }              /* e.g. clrtne */
+#define INSTR_RRF_UUFR     4, { F_24,U4_16,R_28,U4_20,0,0 }      /* e.g. cdgtra */
+#define INSTR_RRF_UUFER    4, { FE_24,U4_16,R_28,U4_20,0,0 }     /* e.g. cxfbra */
+#define INSTR_RRF_UURF     4, { R_24,U4_16,F_28,U4_20,0,0 }      /* e.g. cgdtra */
+#define INSTR_RRF_UURFE    4, { R_24,U4_16,FE_28,U4_20,0,0 }     /* e.g. cfxbra */
+#define INSTR_RR_0R        2, { R_12, 0,0,0,0,0 }                /* e.g. br    */
+#define INSTR_RR_FF        2, { F_8,F_12,0,0,0,0 }               /* e.g. adr   */
+#define INSTR_RR_FEF       2, { FE_8,F_12,0,0,0,0 }              /* e.g. mxdr  */
+#define INSTR_RR_FFE       2, { F_8,FE_12,0,0,0,0 }              /* e.g. ldxr  */
+#define INSTR_RR_FEFE      2, { FE_8,FE_12,0,0,0,0 }             /* e.g. axr   */
+#define INSTR_RR_R0        2, { R_8, 0,0,0,0,0 }                 /* e.g. spm   */
+#define INSTR_RR_RR        2, { R_8,R_12,0,0,0,0 }               /* e.g. lr    */
+#define INSTR_RR_RER       2, { RE_8,R_12,0,0,0,0 }              /* e.g. dr    */
+#define INSTR_RR_U0        2, { U8_8, 0,0,0,0,0 }                /* e.g. svc   */
+#define INSTR_RR_UR        2, { U4_8,R_12,0,0,0,0 }              /* e.g. bcr   */
+#define INSTR_RRR_F0FF     4, { F_24,F_28,F_16,0,0,0 }           /* e.g. ddtr  */
+#define INSTR_RRR_FE0FEFE  4, { FE_24,FE_28,FE_16,0,0,0 }        /* e.g. axtr  */
+#define INSTR_RRS_RRRDU    6, { R_8,R_12,U4_32,D_20,B_16 }       /* e.g. crb   */
+#define INSTR_RRS_RRRD0    6, { R_8,R_12,D_20,B_16,0 }           /* e.g. crbne */
+#define INSTR_RSE_RRRD     6, { R_8,R_12,D_20,B_16,0,0 }         /* e.g. lmh   */
+#define INSTR_RSE_RERERD   6, { RE_8,RE_12,D_20,B_16,0,0 }       /* e.g. mvclu */
+#define INSTR_RSE_CCRD     6, { C_8,C_12,D_20,B_16,0,0 }         /* e.g. stctg */
+#define INSTR_RSE_RURD     6, { R_8,U4_12,D_20,B_16,0,0 }        /* e.g. icmh  */
+#define INSTR_RSL_R0RD     6, { D_20,L4_8,B_16,0,0,0 }           /* e.g. tp    */
+#define INSTR_RSL_LRDFU    6, { F_32,D_20,L8_8,B_16,U4_36,0 }    /* e.g. cdzt  */
+#define INSTR_RSL_LRDFEU   6, { FE_32,D_20,L8_8,B_16,U4_36,0 }   /* e.g. cxzt  */
+#define INSTR_RSI_RRP      4, { R_8,R_12,J16_16,0,0,0 }          /* e.g. brxh  */
+#define INSTR_RSY_RRRD     6, { R_8,R_12,D20_20,B_16,0,0 }       /* e.g. stmy  */
+#define INSTR_RSY_RERERD   6, { RE_8,RE_12,D20_20,B_16,0,0 }     /* e.g. cdsy  */
+#define INSTR_RSY_RURD     6, { R_8,U4_12,D20_20,B_16,0,0 }      /* e.g. icmh  */
+#define INSTR_RSY_RURD2    6, { R_8,D20_20,B_16,U4_12,0,0 }      /* e.g. loc   */
+#define INSTR_RSY_R0RD     6, { R_8,D20_20,B_16,0,0,0 }          /* e.g. locne */
+#define INSTR_RSY_AARD     6, { A_8,A_12,D20_20,B_16,0,0 }       /* e.g. lamy  */
+#define INSTR_RSY_CCRD     6, { C_8,C_12,D20_20,B_16,0,0 }       /* e.g. stctg */
+#define INSTR_RS_AARD      4, { A_8,A_12,D_20,B_16,0,0 }         /* e.g. lam   */
+#define INSTR_RS_CCRD      4, { C_8,C_12,D_20,B_16,0,0 }         /* e.g. lctl  */
+#define INSTR_RS_R0RD      4, { R_8,D_20,B_16,0,0,0 }            /* e.g. sll   */
+#define INSTR_RS_RE0RD     4, { RE_8,D_20,B_16,0,0,0 }           /* e.g. slda  */
+#define INSTR_RS_RRRD      4, { R_8,R_12,D_20,B_16,0,0 }         /* e.g. cs    */
+#define INSTR_RS_RERERD    4, { RE_8,RE_12,D_20,B_16,0,0 }       /* e.g. cds   */
+#define INSTR_RS_RURD      4, { R_8,U4_12,D_20,B_16,0,0 }        /* e.g. icm   */
+#define INSTR_RXE_FRRD     6, { F_8,D_20,X_12,B_16,0,0 }         /* e.g. adb   */
+#define INSTR_RXE_FERRD    6, { FE_8,D_20,X_12,B_16,0,0 }        /* e.g. lxdb  */
+#define INSTR_RXE_RRRD     6, { R_8,D_20,X_12,B_16,0,0 }         /* e.g. lg    */
+#define INSTR_RXE_RRRDU    6, { R_8,D_20,X_12,B_16,U4_32,0 }     /* e.g. lcbb  */
+#define INSTR_RXE_RERRD    6, { RE_8,D_20,X_12,B_16,0,0 }        /* e.g. dsg   */
+#define INSTR_RXF_FRRDF    6, { F_32,F_8,D_20,X_12,B_16,0 }      /* e.g. madb  */
+#define INSTR_RXF_FRRDFE   6, { FE_32,F_8,D_20,X_12,B_16,0 }     /* e.g. my    */
+#define INSTR_RXF_FERRDFE  6, { FE_32,FE_8,D_20,X_12,B_16,0 }    /* e.g. slxt  */
+#define INSTR_RXF_RRRDR    6, { R_32,R_8,D_20,X_12,B_16,0 }      /* e.g. .insn */
+#define INSTR_RXY_RRRD     6, { R_8,D20_20,X_12,B_16,0,0 }       /* e.g. ly    */
+#define INSTR_RXY_RERRD    6, { RE_8,D20_20,X_12,B_16,0,0 }      /* e.g. dsg   */
+#define INSTR_RXY_FRRD     6, { F_8,D20_20,X_12,B_16,0,0 }       /* e.g. ley   */
+#define INSTR_RXY_URRD     6, { U4_8,D20_20,X_12,B_16,0,0 }      /* e.g. pfd   */
+#define INSTR_RX_0RRD      4, { D_20,X_12,B_16,0,0,0 }           /* e.g. be    */
+#define INSTR_RX_FRRD      4, { F_8,D_20,X_12,B_16,0,0 }         /* e.g. ae    */
+#define INSTR_RX_FERRD     4, { FE_8,D_20,X_12,B_16,0,0 }        /* e.g. mxd   */
+#define INSTR_RX_RRRD      4, { R_8,D_20,X_12,B_16,0,0 }         /* e.g. l     */
+#define INSTR_RX_RERRD     4, { RE_8,D_20,X_12,B_16,0,0 }        /* e.g. d     */
+#define INSTR_RX_URRD      4, { U4_8,D_20,X_12,B_16,0,0 }        /* e.g. bc    */
+#define INSTR_SI_URD       4, { D_20,B_16,U8_8,0,0,0 }           /* e.g. cli   */
+#define INSTR_SIY_URD      6, { D20_20,B_16,U8_8,0,0,0 }         /* e.g. tmy   */
+#define INSTR_SIY_IRD      6, { D20_20,B_16,I8_8,0,0,0 }         /* e.g. asi   */
+#define INSTR_SIL_RDI      6, { D_20,B_16,I16_32,0,0,0 }         /* e.g. chhsi */
+#define INSTR_SIL_RDU      6, { D_20,B_16,U16_32,0,0,0 }         /* e.g. clfhsi */
+#define INSTR_SMI_U0RDP    6, { U4_8,J16_32,D_20,B_16,0,0 }      /* e.g. bpp   */
+#define INSTR_SSE_RDRD     6, { D_20,B_16,D_36,B_32,0,0 }        /* e.g. mvcdk */
+#define INSTR_SS_L0RDRD    6, { D_20,L8_8,B_16,D_36,B_32,0     } /* e.g. mvc   */
+#define INSTR_SS_L2RDRD    6, { D_20,B_16,D_36,L8_8,B_32,0     } /* e.g. pka   */
+#define INSTR_SS_LIRDRD    6, { D_20,L4_8,B_16,D_36,B_32,U4_12 } /* e.g. srp   */
+#define INSTR_SS_LLRDRD    6, { D_20,L4_8,B_16,D_36,L4_12,B_32 } /* e.g. pack  */
+#define INSTR_SS_RRRDRD    6, { D_20,R_8,B_16,D_36,B_32,R_12 }   /* e.g. mvck  */
+#define INSTR_SS_RRRDRD2   6, { R_8,D_20,B_16,R_12,D_36,B_32 }   /* e.g. plo   */
+#define INSTR_SS_RRRDRD3   6, { R_8,R_12,D_20,B_16,D_36,B_32 }   /* e.g. lmd   */
+#define INSTR_SSF_RRDRD    6, { D_20,B_16,D_36,B_32,R_8,0 }      /* e.g. mvcos */
+#define INSTR_SSF_RERDRD2  6, { RE_8,D_20,B_16,D_36,B_32,0 }     /* e.g. lpd   */
+#define INSTR_S_00         4, { 0,0,0,0,0,0 }                    /* e.g. hsch  */
+#define INSTR_S_RD         4, { D_20,B_16,0,0,0,0 }              /* e.g. lpsw  */
+#define INSTR_VRV_VVXRDU   6, { V_8,D_20,VX_12,B_16,U4_32,0 }    /* e.g. vgef  */
+#define INSTR_VRI_V0U      6, { V_8,U16_16,0,0,0,0 }             /* e.g. vgbm  */
+#define INSTR_VRI_V        6, { V_8,0,0,0,0,0 }                  /* e.g. vzero */
+#define INSTR_VRI_V0UUU    6, { V_8,U8_16,U8_24,U4_32,0,0 }      /* e.g. vgm   */
+#define INSTR_VRI_V0UU     6, { V_8,U8_16,U8_24,0,0,0 }          /* e.g. vgmb  */
+#define INSTR_VRI_VVUU     6, { V_8,V_12,U16_16,U4_32,0,0 }      /* e.g. vrep  */
+#define INSTR_VRI_VVU      6, { V_8,V_12,U16_16,0,0,0 }          /* e.g. vrepb */
+#define INSTR_VRI_VVU2     6, { V_8,V_12,U12_16,0,0,0 }          /* e.g. vftcidb */
+#define INSTR_VRI_V0IU     6, { V_8,I16_16,U4_32,0,0,0 }         /* e.g. vrepi */
+#define INSTR_VRI_V0I      6, { V_8,I16_16,0,0,0,0 }             /* e.g. vrepib */
+#define INSTR_VRI_VVV0UU   6, { V_8,V_12,V_16,U8_24,U4_32,0 }    /* e.g. verim */
+#define INSTR_VRI_VVV0U    6, { V_8,V_12,V_16,U8_24,0,0 }        /* e.g. verimb*/
+#define INSTR_VRI_VVUUU    6, { V_8,V_12,U12_16,U4_32,U4_28,0 }  /* e.g. vftci */
+#define INSTR_VRX_VRRD     6, { V_8,D_20,X_12,B_16,0,0 }         /* e.g. vl    */
+#define INSTR_VRX_VV       6, { V_8,V_12,0,0,0,0 }               /* e.g. vlr   */
+#define INSTR_VRX_VRRDU    6, { V_8,D_20,X_12,B_16,U4_32,0 }     /* e.g. vlrp  */
+#define INSTR_VRS_RVRDU    6, { R_8,V_12,D_20,B_16,U4_32,0 }     /* e.g. vlgv  */
+#define INSTR_VRS_RVRD     6, { R_8,V_12,D_20,B_16,0,0 }         /* e.g. vlgvb */
+#define INSTR_VRS_VVRDU    6, { V_8,V_12,D_20,B_16,U4_32,0 }     /* e.g. verll */
+#define INSTR_VRS_VVRD     6, { V_8,V_12,D_20,B_16,0,0 }         /* e.g. vlm   */
+#define INSTR_VRS_VRRDU    6, { V_8,R_12,D_20,B_16,U4_32,0 }     /* e.g. vlvg  */
+#define INSTR_VRS_VRRD     6, { V_8,R_12,D_20,B_16,0,0 }         /* e.g. vlvgb */
+#define INSTR_VRR_VRR      6, { V_8,R_12,R_16,0,0,0 }            /* e.g. vlvgp */
+#define INSTR_VRR_VVV0U    6, { V_8,V_12,V_16,U4_32,0,0 }        /* e.g. vmrh  */
+#define INSTR_VRR_VVV0U0   6, { V_8,V_12,V_16,U4_24,0,0 }        /* e.g. vfaeb */
+#define INSTR_VRR_VVV0U1   6, { V_8,V_12,V_16,U4_OR1_24,0,0 }    /* e.g. vfaebs*/
+#define INSTR_VRR_VVV0U2   6, { V_8,V_12,V_16,U4_OR2_24,0,0 }    /* e.g. vfaezb*/
+#define INSTR_VRR_VVV0U3   6, { V_8,V_12,V_16,U4_OR3_24,0,0 }    /* e.g. vfaezbs*/
+#define INSTR_VRR_VVV      6, { V_8,V_12,V_16,0,0,0 }            /* e.g. vmrhb */
+#define INSTR_VRR_VVV2     6, { V_8,V_CP16_12,0,0,0,0 }          /* e.g. vnot  */
+#define INSTR_VRR_VV0U     6, { V_8,V_12,U4_32,0,0,0 }           /* e.g. vseg  */
+#define INSTR_VRR_VV0U2    6, { V_8,V_12,U4_24,0,0,0 }           /* e.g. vistrb*/
+#define INSTR_VRR_VV0UU    6, { V_8,V_12,U4_28,U4_24,0,0 }       /* e.g. vcdgb */
+#define INSTR_VRR_VV0UU8   6, { V_8,V_12,U4_OR8_28,U4_24,0,0 }   /* e.g. wcdgb */
+#define INSTR_VRR_VV       6, { V_8,V_12,0,0,0,0 }               /* e.g. vsegb */
+#define INSTR_VRR_VVVUU0V  6, { V_8,V_12,V_16,V_32,U4_20,U4_24 } /* e.g. vstrc */
+#define INSTR_VRR_VVVU0V   6, { V_8,V_12,V_16,V_32,U4_20,0 }     /* e.g. vac   */
+#define INSTR_VRR_VVVU0VB  6, { V_8,V_12,V_16,V_32,U4_24,0 }     /* e.g. vstrcb*/
+#define INSTR_VRR_VVVU0VB1 6, { V_8,V_12,V_16,V_32,U4_OR1_24,0 } /* e.g. vstrcbs*/
+#define INSTR_VRR_VVVU0VB2 6, { V_8,V_12,V_16,V_32,U4_OR2_24,0 } /* e.g. vstrczb*/
+#define INSTR_VRR_VVVU0VB3 6, { V_8,V_12,V_16,V_32,U4_OR3_24,0 } /* e.g. vstrczbs*/
+#define INSTR_VRR_VVV0V    6, { V_8,V_12,V_16,V_32,0,0 }         /* e.g. vacq  */
+#define INSTR_VRR_VVV0U0U  6, { V_8,V_12,V_16,U4_32,U4_24,0 }    /* e.g. vfae  */
+#define INSTR_VRR_VVVV     6, { V_8,V_12,V_16,V_32,0,0 }         /* e.g. vfmadb*/
+#define INSTR_VRR_VVV0UUU  6, { V_8,V_12,V_16,U4_32,U4_28,U4_24 }/* e.g. vfch  */
+#define INSTR_VRR_VVV0UU   6, { V_8,V_12,V_16,U4_32,U4_28,0 }    /* e.g. vfa   */
+#define INSTR_VRR_VV0UUU   6, { V_8,V_12,U4_32,U4_28,U4_24,0 }   /* e.g. vcdg  */
+#define INSTR_VRR_VVVU0UV  6, { V_8,V_12,V_16,V_32,U4_28,U4_20 } /* e.g. vfma  */
+#define INSTR_VRR_VV0U0U   6, { V_8,V_12,U4_32,U4_24,0,0 }       /* e.g. vistr */
+
+#define MASK_E            { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_IE_UU        { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
+#define MASK_MII_UPP      { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RIE_RRP      { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RIE_RRPU     { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RIE_RRP0     { 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff }
+#define MASK_RIE_RRI0     { 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff }
+#define MASK_RIE_RUPI     { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RIE_R0PI     { 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff }
+#define MASK_RIE_RUPU     { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RIE_R0PU     { 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff }
+#define MASK_RIE_R0IU     { 0xff, 0x0f, 0x00, 0x00, 0x0f, 0xff }
+#define MASK_RIE_R0I0     { 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff }
+#define MASK_RIE_R0UU     { 0xff, 0x0f, 0x00, 0x00, 0x0f, 0xff }
+#define MASK_RIE_R0U0     { 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff }
+#define MASK_RIE_RRUUU    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RIL_0P       { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RIL_RP       { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RIL_UP       { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RIL_RI       { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RIL_RU       { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RI_0P        { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RI_RI        { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RI_RP        { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RI_RU        { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RI_UP        { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RIS_RURDI    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RIS_R0RDI    { 0xff, 0x0f, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RIS_RURDU    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RIS_R0RDU    { 0xff, 0x0f, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RRE_00       { 0xff, 0xff, 0xff, 0xff, 0x00, 0x00 }
+#define MASK_RRE_0R       { 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00 }
+#define MASK_RRE_AA       { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
+#define MASK_RRE_AR       { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
+#define MASK_RRE_F0       { 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00 }
+#define MASK_RRE_FE0      { 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00 }
+#define MASK_RRE_FF       { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
+#define MASK_RRE_FEF      { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
+#define MASK_RRE_FFE      { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
+#define MASK_RRE_FEFE     { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
+#define MASK_RRE_R0       { 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00 }
+#define MASK_RRE_RA       { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
+#define MASK_RRE_RF       { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
+#define MASK_RRE_RFE      { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
+#define MASK_RRE_RR       { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
+#define MASK_RRE_RER      { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
+#define MASK_RRE_RERE     { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
+#define MASK_RRE_FR       { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
+#define MASK_RRE_FER      { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
+#define MASK_RRF_F0FF     { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
+#define MASK_RRF_FE0FF    { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
+#define MASK_RRF_F0FF2    { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
+#define MASK_RRF_F0FR     { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
+#define MASK_RRF_FE0FER   { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
+#define MASK_RRF_FUFF     { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RRF_FEUFEFE  { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RRF_FUFF2    { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
 #define MASK_RRF_FEUFEFE2 { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRF_RURR    { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRF_RURR2   { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRF_R0RR    { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRF_R0RR2   { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRF_RMRR    { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRF_U0FF    { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
-#define MASK_RRF_U0FEFE  { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
-#define MASK_RRF_U0RF    { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
-#define MASK_RRF_U0RFE   { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
-#define MASK_RRF_UUFF    { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRF_UUFFE   { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRF_UUFEFE  { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRF_0UFF    { 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00 }
-#define MASK_RRF_0UFEF   { 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00 }
-#define MASK_RRF_FFRU    { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRF_FEFERU  { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRF_M0RR    { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
-#define MASK_RRF_M0RER   { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
-#define MASK_RRF_M0RERE  { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
-#define MASK_RRF_U0RR    { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
-#define MASK_RRF_00RR    { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
-#define MASK_RRF_UUFR    { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRF_UUFER   { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRF_UURF    { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRF_UURFE   { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RR_0R       { 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RR_0R_OPT   { 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RR_FF       { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RR_FEF      { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RR_FFE      { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RR_FEFE     { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RR_R0       { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RR_RR       { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RR_RER      { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RR_U0       { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RR_UR       { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RRR_F0FF    { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
-#define MASK_RRR_FE0FEFE { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
-#define MASK_RRS_RRRDU   { 0xff, 0x00, 0x00, 0x00, 0x0f, 0xff }
-#define MASK_RRS_RRRD0   { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
-#define MASK_RSE_RRRD    { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
-#define MASK_RSE_RERERD  { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
-#define MASK_RSE_CCRD    { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
-#define MASK_RSE_RURD    { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
-#define MASK_RSL_R0RD    { 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff }
-#define MASK_RSL_LRDFU   { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RSL_LRDFEU  { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RSI_RRP     { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RS_AARD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RS_CCRD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RS_R0RD     { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RS_RE0RD    { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RS_RRRD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RS_RERERD   { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RS_RURD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RSY_RRRD    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RSY_RERERD  { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RSY_RURD    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RSY_RURD2   { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RSY_R0RD    { 0xff, 0x0f, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RSY_AARD    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RSY_CCRD    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RXE_FRRD    { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
-#define MASK_RXE_FERRD   { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
-#define MASK_RXE_RRRD    { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
-#define MASK_RXE_RERRD   { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
-#define MASK_RXF_FRRDF   { 0xff, 0x00, 0x00, 0x00, 0x0f, 0xff }
-#define MASK_RXF_FRRDFE  { 0xff, 0x00, 0x00, 0x00, 0x0f, 0xff }
-#define MASK_RXF_FERRDFE { 0xff, 0x00, 0x00, 0x00, 0x0f, 0xff }
-#define MASK_RXF_RRRDR   { 0xff, 0x00, 0x00, 0x00, 0x0f, 0xff }
-#define MASK_RXY_RRRD    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RXY_RERRD   { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RXY_FRRD    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RXY_URRD    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_RX_0RRD     { 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RX_0RRD_OPT { 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RX_FRRD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RX_FERRD    { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RX_RRRD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RX_RERRD    { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_RX_URRD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_SI_URD      { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_SIY_URD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_SIY_IRD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
-#define MASK_SIL_RDI     { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_SIL_RDU     { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_SMI_U0RDP   { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_SSE_RDRD    { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_SS_L0RDRD   { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_SS_L2RDRD   { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_SS_LIRDRD   { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_SS_LLRDRD   { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_SS_RRRDRD   { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_SS_RRRDRD2  { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_SS_RRRDRD3  { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_SSF_RRDRD   { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_SSF_RRDRD2  { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_SSF_RERDRD2 { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
-#define MASK_S_00        { 0xff, 0xff, 0xff, 0xff, 0x00, 0x00 }
-#define MASK_S_RD        { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
-
+#define MASK_RRF_RURR     { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RRF_RURR2    { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RRF_R0RR     { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RRF_R0RR2    { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RRF_U0FF     { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
+#define MASK_RRF_U0FEFE   { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
+#define MASK_RRF_U0RF     { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
+#define MASK_RRF_U0RFE    { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
+#define MASK_RRF_UUFF     { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RRF_UUFFE    { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RRF_UUFEFE   { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RRF_0UFF     { 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00 }
+#define MASK_RRF_0UFEF    { 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00 }
+#define MASK_RRF_FFRU     { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RRF_FEFERU   { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RRF_U0RR     { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
+#define MASK_RRF_U0RER    { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
+#define MASK_RRF_U0RERE   { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
+#define MASK_RRF_00RR     { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 }
+#define MASK_RRF_UUFR     { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RRF_UUFER    { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RRF_UURF     { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RRF_UURFE    { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RR_0R        { 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RR_FF        { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RR_FEF       { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RR_FFE       { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RR_FEFE      { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RR_R0        { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RR_RR        { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RR_RER       { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RR_U0        { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RR_UR        { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RRR_F0FF     { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
+#define MASK_RRR_FE0FEFE  { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
+#define MASK_RRS_RRRDU    { 0xff, 0x00, 0x00, 0x00, 0x0f, 0xff }
+#define MASK_RRS_RRRD0    { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
+#define MASK_RSE_RRRD     { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
+#define MASK_RSE_RERERD   { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
+#define MASK_RSE_CCRD     { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
+#define MASK_RSE_RURD     { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
+#define MASK_RSL_R0RD     { 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff }
+#define MASK_RSL_LRDFU    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RSL_LRDFEU   { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RSI_RRP      { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RS_AARD      { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RS_CCRD      { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RS_R0RD      { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RS_RE0RD     { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RS_RRRD      { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RS_RERERD    { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RS_RURD      { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RSY_RRRD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RSY_RERERD   { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RSY_RURD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RSY_RURD2    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RSY_R0RD     { 0xff, 0x0f, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RSY_AARD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RSY_CCRD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RXE_FRRD     { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
+#define MASK_RXE_FERRD    { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
+#define MASK_RXE_RRRD     { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
+#define MASK_RXE_RRRDU    { 0xff, 0x00, 0x00, 0x00, 0x0f, 0xff }
+#define MASK_RXE_RERRD    { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
+#define MASK_RXF_FRRDF    { 0xff, 0x00, 0x00, 0x00, 0x0f, 0xff }
+#define MASK_RXF_FRRDFE   { 0xff, 0x00, 0x00, 0x00, 0x0f, 0xff }
+#define MASK_RXF_FERRDFE  { 0xff, 0x00, 0x00, 0x00, 0x0f, 0xff }
+#define MASK_RXF_RRRDR    { 0xff, 0x00, 0x00, 0x00, 0x0f, 0xff }
+#define MASK_RXY_RRRD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RXY_RERRD    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RXY_FRRD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RXY_URRD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RX_0RRD      { 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RX_FRRD      { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RX_FERRD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RX_RRRD      { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RX_RERRD     { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RX_URRD      { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_SI_URD       { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_SIY_URD      { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_SIY_IRD      { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_SIL_RDI      { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_SIL_RDU      { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_SMI_U0RDP    { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_SSE_RDRD     { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_SS_L0RDRD    { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_SS_L2RDRD    { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_SS_LIRDRD    { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_SS_LLRDRD    { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_SS_RRRDRD    { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_SS_RRRDRD2   { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_SS_RRRDRD3   { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_SSF_RRDRD    { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_SSF_RERDRD2  { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_S_00         { 0xff, 0xff, 0xff, 0xff, 0x00, 0x00 }
+#define MASK_S_RD         { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_VRV_VVXRDU   { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_VRI_V0U      { 0xff, 0x0f, 0x00, 0x00, 0xf0, 0xff }
+#define MASK_VRI_V        { 0xff, 0x0f, 0xff, 0xff, 0xf0, 0xff }
+#define MASK_VRI_V0UUU    { 0xff, 0x0f, 0x00, 0x00, 0x00, 0xff }
+#define MASK_VRI_V0UU     { 0xff, 0x0f, 0x00, 0x00, 0xf0, 0xff }
+#define MASK_VRI_VVUU     { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_VRI_VVU      { 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff }
+#define MASK_VRI_VVU2     { 0xff, 0x00, 0x00, 0x0f, 0xf0, 0xff }
+#define MASK_VRI_V0IU     { 0xff, 0x0f, 0x00, 0x00, 0x00, 0xff }
+#define MASK_VRI_V0I      { 0xff, 0x0f, 0x00, 0x00, 0xf0, 0xff }
+#define MASK_VRI_VVV0UU   { 0xff, 0x00, 0x0f, 0x00, 0x00, 0xff }
+#define MASK_VRI_VVV0U    { 0xff, 0x00, 0x0f, 0x00, 0xf0, 0xff }
+#define MASK_VRI_VVUUU    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_VRX_VRRD     { 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff }
+#define MASK_VRX_VV       { 0xff, 0x00, 0xff, 0xff, 0xf0, 0xff }
+#define MASK_VRX_VRRDU    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_VRS_RVRDU    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_VRS_RVRD     { 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff }
+#define MASK_VRS_VVRDU    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_VRS_VVRD     { 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff }
+#define MASK_VRS_VRRDU    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_VRS_VRRD     { 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff }
+#define MASK_VRR_VRR      { 0xff, 0x00, 0x0f, 0xff, 0xf0, 0xff }
+#define MASK_VRR_VVV0U    { 0xff, 0x00, 0x0f, 0xff, 0x00, 0xff }
+#define MASK_VRR_VVV0U0   { 0xff, 0x00, 0x0f, 0x0f, 0xf0, 0xff }
+#define MASK_VRR_VVV0U1   { 0xff, 0x00, 0x0f, 0x1f, 0xf0, 0xff }
+#define MASK_VRR_VVV0U2   { 0xff, 0x00, 0x0f, 0x2f, 0xf0, 0xff }
+#define MASK_VRR_VVV0U3   { 0xff, 0x00, 0x0f, 0x3f, 0xf0, 0xff }
+#define MASK_VRR_VVV      { 0xff, 0x00, 0x0f, 0xff, 0xf0, 0xff }
+#define MASK_VRR_VVV2     { 0xff, 0x00, 0x0f, 0xff, 0xf0, 0xff }
+#define MASK_VRR_VVV0V    { 0xff, 0x00, 0x0f, 0xff, 0x00, 0xff }
+#define MASK_VRR_VV0U     { 0xff, 0x00, 0xff, 0xff, 0x00, 0xff }
+#define MASK_VRR_VV0U2    { 0xff, 0x00, 0xff, 0x0f, 0xf0, 0xff }
+#define MASK_VRR_VV0UU    { 0xff, 0x00, 0xff, 0x00, 0xf0, 0xff }
+#define MASK_VRR_VV0UU8   { 0xff, 0x00, 0xff, 0x08, 0xf0, 0xff }
+#define MASK_VRR_VV       { 0xff, 0x00, 0xff, 0xff, 0xf0, 0xff }
+#define MASK_VRR_VVVUU0V  { 0xff, 0x00, 0x00, 0x0f, 0x00, 0xff }
+#define MASK_VRR_VVVU0V   { 0xff, 0x00, 0x00, 0xff, 0x00, 0xff }
+#define MASK_VRR_VVVU0VB  { 0xff, 0x00, 0x0f, 0x0f, 0x00, 0xff }
+#define MASK_VRR_VVVU0VB1 { 0xff, 0x00, 0x0f, 0x1f, 0x00, 0xff }
+#define MASK_VRR_VVVU0VB2 { 0xff, 0x00, 0x0f, 0x2f, 0x00, 0xff }
+#define MASK_VRR_VVVU0VB3 { 0xff, 0x00, 0x0f, 0x3f, 0x00, 0xff }
+#define MASK_VRR_VVV0U0U  { 0xff, 0x00, 0x0f, 0x0f, 0x00, 0xff }
+#define MASK_VRR_VVVV     { 0xff, 0x00, 0x0f, 0xff, 0x00, 0xff }
+#define MASK_VRR_VVV0UUU  { 0xff, 0x00, 0x0f, 0x00, 0x00, 0xff }
+#define MASK_VRR_VVV0UU   { 0xff, 0x00, 0x0f, 0xf0, 0x00, 0xff }
+#define MASK_VRR_VV0UUU   { 0xff, 0x00, 0xff, 0x00, 0x00, 0xff }
+#define MASK_VRR_VVVU0UV  { 0xff, 0x00, 0x00, 0xf0, 0x00, 0xff }
+#define MASK_VRR_VV0U0U   { 0xff, 0x00, 0xff, 0x0f, 0x00, 0xff }
 
 /* The opcode formats table (blueprints for .insn pseudo mnemonic).  */
 
 const struct s390_opcode s390_opformats[] =
   {
-  { "e",	OP8(0x00LL),	MASK_E,		INSTR_E,	3, 0 },
-  { "ri",	OP8(0x00LL),	MASK_RI_RI,	INSTR_RI_RI,	3, 0 },
-  { "rie",	OP8(0x00LL),	MASK_RIE_RRP,	INSTR_RIE_RRP,	3, 0 },
-  { "ril",	OP8(0x00LL),	MASK_RIL_RP,	INSTR_RIL_RP,	3, 0 },
-  { "rilu",	OP8(0x00LL),	MASK_RIL_RU,	INSTR_RIL_RU,	3, 0 },
-  { "ris",	OP8(0x00LL),	MASK_RIS_RURDI,	INSTR_RIS_RURDI,3, 6 },
-  { "rr",	OP8(0x00LL),	MASK_RR_RR,	INSTR_RR_RR,	3, 0 },
-  { "rre",	OP8(0x00LL),	MASK_RRE_RR,	INSTR_RRE_RR,	3, 0 },
-  { "rrf",	OP8(0x00LL),	MASK_RRF_RURR,	INSTR_RRF_RURR,	3, 0 },
-  { "rrs",	OP8(0x00LL),	MASK_RRS_RRRDU,	INSTR_RRS_RRRDU,3, 6 },
-  { "rs",	OP8(0x00LL),	MASK_RS_RRRD,	INSTR_RS_RRRD,	3, 0 },
-  { "rse",	OP8(0x00LL),	MASK_RSE_RRRD,	INSTR_RSE_RRRD,	3, 0 },
-  { "rsi",	OP8(0x00LL),	MASK_RSI_RRP,	INSTR_RSI_RRP,	3, 0 },
-  { "rsy",	OP8(0x00LL),	MASK_RSY_RRRD,	INSTR_RSY_RRRD,	3, 3 },
-  { "rx",	OP8(0x00LL),	MASK_RX_RRRD,	INSTR_RX_RRRD,	3, 0 },
-  { "rxe",	OP8(0x00LL),	MASK_RXE_RRRD,	INSTR_RXE_RRRD,	3, 0 },
-  { "rxf",	OP8(0x00LL),	MASK_RXF_RRRDR,	INSTR_RXF_RRRDR,3, 0 },
-  { "rxy",	OP8(0x00LL),	MASK_RXY_RRRD,	INSTR_RXY_RRRD,	3, 3 },
-  { "s",	OP8(0x00LL),	MASK_S_RD,	INSTR_S_RD,	3, 0 },
-  { "si",	OP8(0x00LL),	MASK_SI_URD,	INSTR_SI_URD,	3, 0 },
-  { "siy",	OP8(0x00LL),	MASK_SIY_URD,	INSTR_SIY_URD,	3, 3 },
-  { "sil",	OP8(0x00LL),    MASK_SIL_RDI,   INSTR_SIL_RDI,  3, 6 },
-  { "ss",	OP8(0x00LL),	MASK_SS_RRRDRD,	INSTR_SS_RRRDRD,3, 0 },
-  { "sse",	OP8(0x00LL),	MASK_SSE_RDRD,	INSTR_SSE_RDRD,	3, 0 },
-  { "ssf",	OP8(0x00LL),	MASK_SSF_RRDRD,	INSTR_SSF_RRDRD,3, 0 },
+  { "e",	OP8(0x00LL),	MASK_E,		INSTR_E,	3, 0 ,0 },
+  { "ri",	OP8(0x00LL),	MASK_RI_RI,	INSTR_RI_RI,	3, 0 ,0 },
+  { "rie",	OP8(0x00LL),	MASK_RIE_RRP,	INSTR_RIE_RRP,	3, 0 ,0 },
+  { "ril",	OP8(0x00LL),	MASK_RIL_RP,	INSTR_RIL_RP,	3, 0 ,0 },
+  { "rilu",	OP8(0x00LL),	MASK_RIL_RU,	INSTR_RIL_RU,	3, 0 ,0 },
+  { "ris",	OP8(0x00LL),	MASK_RIS_RURDI,	INSTR_RIS_RURDI,3, 6 ,0 },
+  { "rr",	OP8(0x00LL),	MASK_RR_RR,	INSTR_RR_RR,	3, 0 ,0 },
+  { "rre",	OP8(0x00LL),	MASK_RRE_RR,	INSTR_RRE_RR,	3, 0 ,0 },
+  { "rrf",	OP8(0x00LL),	MASK_RRF_RURR,	INSTR_RRF_RURR,	3, 0 ,0 },
+  { "rrs",	OP8(0x00LL),	MASK_RRS_RRRDU,	INSTR_RRS_RRRDU,3, 6 ,0 },
+  { "rs",	OP8(0x00LL),	MASK_RS_RRRD,	INSTR_RS_RRRD,	3, 0 ,0 },
+  { "rse",	OP8(0x00LL),	MASK_RSE_RRRD,	INSTR_RSE_RRRD,	3, 0 ,0 },
+  { "rsi",	OP8(0x00LL),	MASK_RSI_RRP,	INSTR_RSI_RRP,	3, 0 ,0 },
+  { "rsy",	OP8(0x00LL),	MASK_RSY_RRRD,	INSTR_RSY_RRRD,	3, 3 ,0 },
+  { "rx",	OP8(0x00LL),	MASK_RX_RRRD,	INSTR_RX_RRRD,	3, 0 ,0 },
+  { "rxe",	OP8(0x00LL),	MASK_RXE_RRRD,	INSTR_RXE_RRRD,	3, 0 ,0 },
+  { "rxf",	OP8(0x00LL),	MASK_RXF_RRRDR,	INSTR_RXF_RRRDR,3, 0 ,0 },
+  { "rxy",	OP8(0x00LL),	MASK_RXY_RRRD,	INSTR_RXY_RRRD,	3, 3 ,0 },
+  { "s",	OP8(0x00LL),	MASK_S_RD,	INSTR_S_RD,	3, 0 ,0 },
+  { "si",	OP8(0x00LL),	MASK_SI_URD,	INSTR_SI_URD,	3, 0 ,0 },
+  { "siy",	OP8(0x00LL),	MASK_SIY_URD,	INSTR_SIY_URD,	3, 3 ,0 },
+  { "sil",	OP8(0x00LL),    MASK_SIL_RDI,   INSTR_SIL_RDI,  3, 6 ,0 },
+  { "ss",	OP8(0x00LL),	MASK_SS_RRRDRD,	INSTR_SS_RRRDRD,3, 0 ,0 },
+  { "sse",	OP8(0x00LL),	MASK_SSE_RDRD,	INSTR_SSE_RDRD,	3, 0 ,0 },
+  { "ssf",	OP8(0x00LL),	MASK_SSF_RRDRD,	INSTR_SSF_RRDRD,3, 0 ,0 },
 };
 
 const int s390_num_opformats =
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/opcodes/s390-opc.txt ./opcodes/s390-opc.txt
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/opcodes/s390-opc.txt	2015-01-13 01:48:41.000000000 +0000
+++ ./opcodes/s390-opc.txt	2015-01-20 01:48:39.000000000 +0000
@@ -262,10 +262,10 @@ a700 tmlh RI_RU "test under mask low hig
 a700 tmh RI_RU "test under mask high" g5 esa,zarch
 a701 tmll RI_RU "test under mask low low" g5 esa,zarch
 a701 tml RI_RU "test under mask low" g5 esa,zarch
-0700 nopr RR_0R_OPT "no operation" g5 esa,zarch
+0700 nopr RR_0R "no operation" g5 esa,zarch optparm
 0700 b*8r RR_0R "conditional branch" g5 esa,zarch
 07f0 br RR_0R "unconditional branch" g5 esa,zarch
-4700 nop RX_0RRD_OPT "no operation" g5 esa,zarch
+4700 nop RX_0RRD "no operation" g5 esa,zarch optparm
 4700 b*8 RX_0RRD "conditional branch" g5 esa,zarch
 47f0 b RX_0RRD "unconditional branch" g5 esa,zarch
 a704 j*8 RI_0P "conditional jump" g5 esa,zarch
@@ -298,7 +298,7 @@ b30d debr RRE_FF "divide short bfp" g5 e
 ed000000000d deb RXE_FRRD "divide short bfp" g5 esa,zarch
 b35b didbr RRF_FUFF "divide to integer long bfp" g5 esa,zarch
 b353 diebr RRF_FUFF "divide to integer short bfp" g5 esa,zarch
-b38c efpc RRE_RR_OPT "extract fpc" g5 esa,zarch
+b38c efpc RRE_RR "extract fpc" g5 esa,zarch optparm
 b342 ltxbr RRE_FEFE "load and test extended bfp" g5 esa,zarch
 b312 ltdbr RRE_FF "load and test long bfp" g5 esa,zarch
 b302 ltebr RRE_FF "load and test short bfp" g5 esa,zarch
@@ -341,7 +341,7 @@ b31f msdbr RRF_F0FF "multiply and subtra
 ed000000001f msdb RXF_FRRDF "multiply and subtract long bfp" g5 esa,zarch
 b30f msebr RRF_F0FF "multiply and subtract short bfp" g5 esa,zarch
 ed000000000f mseb RXF_FRRDF "multiply and subtract short bfp" g5 esa,zarch
-b384 sfpc RRE_RR_OPT "set fpc" g5 esa,zarch
+b384 sfpc RRE_RR "set fpc" g5 esa,zarch optparm
 b299 srnm S_RD "set rounding mode" g5 esa,zarch
 b316 sqxbr RRE_FEFE "square root extended bfp" g5 esa,zarch
 b315 sqdbr RRE_FF "square root long bfp" g5 esa,zarch
@@ -765,21 +765,21 @@ c800 mvcos SSF_RRDRD "move with optional
 # z9-109 load page-table-entry address instruction
 b9aa lptea RRF_RURR2 "load page-table-entry address" z9-109 zarch
 # z9-109 conditional sske facility, sske instruction entered twice
-b22b sske RRF_M0RR "set storage key extended" z9-109 zarch
+b22b sske RRF_U0RR "set storage key extended" z9-109 zarch optparm
 # z9-109 etf2-enhancement facility, instructions entered twice
-b993 troo RRF_M0RERE "translate one to one" z9-109 esa,zarch
-b992 trot RRF_M0RERE "translate one to two" z9-109 esa,zarch
-b991 trto RRF_M0RERE "translate two to one" z9-109 esa,zarch
-b990 trtt RRF_M0RERE "translate two to two" z9-109 esa,zarch
+b993 troo RRF_U0RERE "translate one to one" z9-109 esa,zarch optparm
+b992 trot RRF_U0RERE "translate one to two" z9-109 esa,zarch optparm
+b991 trto RRF_U0RERE "translate two to one" z9-109 esa,zarch optparm
+b990 trtt RRF_U0RERE "translate two to two" z9-109 esa,zarch optparm
 # z9-109 etf3-enhancement facility, some instructions entered twice
-b9b1 cu24 RRF_M0RERE "convert utf-16 to utf-32" z9-109 zarch
-b2a6 cu21 RRF_M0RERE "convert utf-16 to utf-8" z9-109 zarch
-b2a6 cuutf RRF_M0RERE "convert unicode to utf-8" z9-109 zarch
+b9b1 cu24 RRF_U0RERE "convert utf-16 to utf-32" z9-109 zarch optparm
+b2a6 cu21 RRF_U0RERE "convert utf-16 to utf-8" z9-109 zarch optparm
+b2a6 cuutf RRF_U0RERE "convert unicode to utf-8" z9-109 zarch optparm
 b9b3 cu42 RRE_RERE "convert utf-32 to utf-16" z9-109 zarch
 b9b2 cu41 RRE_RERE "convert utf-32 to utf-8" z9-109 zarch
-b2a7 cu12 RRF_M0RERE "convert utf-8 to utf-16" z9-109 zarch
-b2a7 cutfu RRF_M0RERE "convert utf-8 to unicode" z9-109 zarch
-b9b0 cu14 RRF_M0RERE "convert utf-8 to utf-32" z9-109 zarch
+b2a7 cu12 RRF_U0RERE "convert utf-8 to utf-16" z9-109 zarch optparm
+b2a7 cutfu RRF_U0RERE "convert utf-8 to unicode" z9-109 zarch optparm
+b9b0 cu14 RRF_U0RERE "convert utf-8 to utf-32" z9-109 zarch optparm
 b9be srstu RRE_RR "search string unicode" z9-109 zarch
 d0 trtr SS_L0RDRD "tranlate and test reverse" z9-109 zarch
 # z9-109 unnormalized hfp multiply & multiply and add
@@ -963,8 +963,8 @@ c600 exrl RIL_RP "execute relative long"
 af00 mc SI_URD "monitor call" z10 zarch
 b9a2 ptf RRE_R0 "perform topology function" z10 zarch
 b9af pfmf RRE_RR "perform frame management function" z10 zarch
-b9bf trte RRF_M0RER "translate and test extended" z10 zarch
-b9bd trtre RRF_M0RER "translate and test reverse extended" z10 zarch
+b9bf trte RRF_U0RER "translate and test extended" z10 zarch optparm
+b9bd trtre RRF_U0RER "translate and test reverse extended" z10 zarch optparm
 b2ed ecpga RRE_RR "extract coprocessor-group address" z10 zarch
 b2e4 ecctr RRE_RR "extract cpu counter" z10 zarch
 b2e5 epctr RRE_RR "extract peripheral counter" z10 zarch
@@ -1128,7 +1128,7 @@ c7 bpp SMI_U0RDP "branch prediction prel
 c5 bprp MII_UPP "branch prediction relative preload" zEC12 zarch
 b2e8 ppa RRF_U0RR "perform processor assist" zEC12 zarch
 b2fa niai IE_UU "next instruction access intent" zEC12 zarch
-b98f crdte RRF_RMRR "compare and replace DAT table entry" zEC12 zarch
+b98f crdte RRF_RURR2 "compare and replace DAT table entry" zEC12 zarch optparm
 e3000000009f lat RXY_RRRD "load and trap 32 bit" zEC12 zarch
 e30000000085 lgat RXY_RRRD "load and trap 64 bit" zEC12 zarch
 e300000000c8 lfhat RXY_RRRD "load high and trap" zEC12 zarch
@@ -1143,3 +1143,516 @@ ed00000000aa cdzt RSL_LRDFU "convert fro
 ed00000000ab cxzt RSL_LRDFEU "convert from zoned extended" zEC12 zarch
 ed00000000a8 czdt RSL_LRDFU "convert to zoned long" zEC12 zarch
 ed00000000a9 czxt RSL_LRDFEU "convert to zoned extended" zEC12 zarch
+
+# The new instructions of IBM z13
+
+e70000000027 lcbb RXE_RRRDU "load count to block boundary" z13 zarch
+
+# Chapter 21
+e70000000013 vgef VRV_VVXRDU "vector gather element 4 byte elements" z13 zarch
+e70000000012 vgeg VRV_VVXRDU "vector gather element 8 byte elements" z13 zarch
+e70000000044 vgbm VRI_V0U "vector generate byte mask" z13 zarch
+e70000000044 vzero VRI_V "vector set to zero" z13 zarch
+e700ffff0044 vone VRI_V "vector set to ones" z13 zarch
+e70000000046 vgm VRI_V0UUU "vector generate mask" z13 zarch
+e70000000046 vgmb VRI_V0UU "vector generate mask byte" z13 zarch
+e70000001046 vgmh VRI_V0UU "vector generate mask halfword" z13 zarch
+e70000002046 vgmf VRI_V0UU "vector generate mask word" z13 zarch
+e70000003046 vgmg VRI_V0UU "vector generate mask double word" z13 zarch
+e70000000006 vl VRX_VRRD "vector memory load" z13 zarch
+e70000000056 vlr VRX_VV "vector register load" z13 zarch
+e70000000005 vlrep VRX_VRRDU "vector load and replicate" z13 zarch
+e70000000005 vlrepb VRX_VRRD "vector load and replicate byte elements" z13 zarch
+e70000001005 vlreph VRX_VRRD "vector load and replicate halfword elements" z13 zarch
+e70000002005 vlrepf VRX_VRRD "vector load and replicate word elements" z13 zarch
+e70000003005 vlrepg VRX_VRRD "vector load and replicate double word elements" z13 zarch
+e70000000000 vleb VRX_VRRDU "vector load byte element" z13 zarch
+e70000000001 vleh VRX_VRRDU "vector load halfword element" z13 zarch
+e70000000003 vlef VRX_VRRDU "vector load word element" z13 zarch
+e70000000002 vleg VRX_VRRDU "vector load double word element" z13 zarch
+e70000000040 vleib VRI_V0IU "vector load byte element immediate" z13 zarch
+e70000000041 vleih VRI_V0IU "vector load halfword element immediate" z13 zarch
+e70000000043 vleif VRI_V0IU "vector load word element immediate" z13 zarch
+e70000000042 vleig VRI_V0IU "vector load double word element immediate" z13 zarch
+e70000000021 vlgv VRS_RVRDU "vector load gr from vr element" z13 zarch
+e70000000021 vlgvb VRS_RVRD "vector load gr from vr byte element" z13 zarch
+e70000001021 vlgvh VRS_RVRD "vector load gr from vr halfword element" z13 zarch
+e70000002021 vlgvf VRS_RVRD "vector load gr from vr word element" z13 zarch
+e70000003021 vlgvg VRS_RVRD "vector load gr from vr double word element" z13 zarch
+e70000000004 vllez VRX_VRRDU "vector load logical element and zero" z13 zarch
+e70000000004 vllezb VRX_VRRD "vector load logical byte element and zero" z13 zarch
+e70000001004 vllezh VRX_VRRD "vector load logical halfword element and zero" z13 zarch
+e70000002004 vllezf VRX_VRRD "vector load logical word element and zero" z13 zarch
+e70000003004 vllezg VRX_VRRD "vector load logical double word element and zero" z13 zarch
+e70000000036 vlm VRS_VVRD "vector load multiple" z13 zarch
+e70000000007 vlbb VRX_VRRDU "vector load to block boundary" z13 zarch
+e70000000022 vlvg VRS_VRRDU "vector load VR element from GR" z13 zarch
+e70000000022 vlvgb VRS_VRRD "vector load VR byte element from GR" z13 zarch
+e70000001022 vlvgh VRS_VRRD "vector load VR halfword element from GR" z13 zarch
+e70000002022 vlvgf VRS_VRRD "vector load VR word element from GR" z13 zarch
+e70000003022 vlvgg VRS_VRRD "vector load VR double word element from GR" z13 zarch
+e70000000062 vlvgp VRR_VRR "vector load VR from GRs disjoint" z13 zarch
+e70000000037 vll VRS_VRRD "vector load with length" z13 zarch
+e70000000061 vmrh VRR_VVV0U "vector merge high" z13 zarch
+e70000000061 vmrhb VRR_VVV "vector merge high byte" z13 zarch
+e70000001061 vmrhh VRR_VVV "vector merge high halfword" z13 zarch
+e70000002061 vmrhf VRR_VVV "vector merge high word" z13 zarch
+e70000003061 vmrhg VRR_VVV "vector merge high double word" z13 zarch
+e70000000060 vmrl VRR_VVV0U "vector merge low" z13 zarch
+e70000000060 vmrlb VRR_VVV "vector merge low byte" z13 zarch
+e70000001060 vmrlh VRR_VVV "vector merge low halfword" z13 zarch
+e70000002060 vmrlf VRR_VVV "vector merge low word" z13 zarch
+e70000003060 vmrlg VRR_VVV "vector merge low double word" z13 zarch
+e70000000094 vpk VRR_VVV0U "vector pack" z13 zarch
+e70000001094 vpkh VRR_VVV "vector pack halfword" z13 zarch
+e70000002094 vpkf VRR_VVV "vector pack word" z13 zarch
+e70000003094 vpkg VRR_VVV "vector pack double word" z13 zarch
+e70000000097 vpks VRR_VVV0U0U "vector pack saturate" z13 zarch
+e70000001097 vpksh VRR_VVV "vector pack saturate halfword" z13 zarch
+e70000002097 vpksf VRR_VVV "vector pack saturate word" z13 zarch
+e70000003097 vpksg VRR_VVV "vector pack saturate double word" z13 zarch
+e70000101097 vpkshs VRR_VVV "vector pack saturate halfword" z13 zarch
+e70000102097 vpksfs VRR_VVV "vector pack saturate word" z13 zarch
+e70000103097 vpksgs VRR_VVV "vector pack saturate double word" z13 zarch
+e70000000095 vpkls VRR_VVV0U0U "vector pack logical saturate" z13 zarch
+e70000001095 vpklsh VRR_VVV "vector pack logical saturate halfword" z13 zarch
+e70000002095 vpklsf VRR_VVV "vector pack logical saturate word" z13 zarch
+e70000003095 vpklsg VRR_VVV "vector pack logical saturate double word" z13 zarch
+e70000101095 vpklshs VRR_VVV "vector pack logical saturate halfword" z13 zarch
+e70000102095 vpklsfs VRR_VVV "vector pack logical saturate word" z13 zarch
+e70000103095 vpklsgs VRR_VVV "vector pack logical saturate double word" z13 zarch
+e7000000008c vperm VRR_VVV0V "vector permute" z13 zarch
+e70000000084 vpdi VRR_VVV0U "vector permute double word immediate" z13 zarch
+e7000000004d vrep VRI_VVUU "vector replicate" z13 zarch
+e7000000004d vrepb VRI_VVU "vector replicate byte" z13 zarch
+e7000000104d vreph VRI_VVU "vector replicate halfword" z13 zarch
+e7000000204d vrepf VRI_VVU "vector replicate word" z13 zarch
+e7000000304d vrepg VRI_VVU "vector replicate double word" z13 zarch
+e70000000045 vrepi VRI_V0IU "vector replicate immediate" z13 zarch
+e70000000045 vrepib VRI_V0I "vector replicate immediate byte" z13 zarch
+e70000001045 vrepih VRI_V0I "vector replicate immediate halfword" z13 zarch
+e70000002045 vrepif VRI_V0I "vector replicate immediate word" z13 zarch
+e70000003045 vrepig VRI_V0I "vector replicate immediate double word" z13 zarch
+e7000000001b vscef VRV_VVXRDU "vector scatter element 4 byte" z13 zarch
+e7000000001a vsceg VRV_VVXRDU "vector scatter element 8 byte" z13 zarch
+e7000000008d vsel VRR_VVV0V "vector select" z13 zarch
+e7000000005f vseg VRR_VV0U "vector sign extend to double word" z13 zarch
+e7000000005f vsegb VRR_VV "vector sign extend byte to double word" z13 zarch
+e7000000105f vsegh VRR_VV "vector sign extend halfword to double word" z13 zarch
+e7000000205f vsegf VRR_VV "vector sign extend word to double word" z13 zarch
+e7000000000e vst VRX_VRRD "vector store" z13 zarch
+e70000000008 vsteb VRX_VRRDU "vector store byte element" z13 zarch
+e70000000009 vsteh VRX_VRRDU "vector store halfword element" z13 zarch
+e7000000000b vstef VRX_VRRDU "vector store word element" z13 zarch
+e7000000000a vsteg VRX_VRRDU "vector store double word element" z13 zarch
+e7000000003e vstm VRS_VVRD "vector store multiple" z13 zarch
+e7000000003f vstl VRS_VRRD "vector store with length" z13 zarch
+e700000000d7 vuph VRR_VV0U "vector unpack high" z13 zarch
+e700000000d7 vuphb VRR_VV "vector unpack high byte" z13 zarch
+e700000010d7 vuphh VRR_VV "vector unpack high halfword" z13 zarch
+e700000020d7 vuphf VRR_VV "vector unpack high word" z13 zarch
+e700000000d5 vuplh VRR_VV0U "vector unpack logical high" z13 zarch
+e700000000d5 vuplhb VRR_VV "vector unpack logical high byte" z13 zarch
+e700000010d5 vuplhh VRR_VV "vector unpack logical high halfword" z13 zarch
+e700000020d5 vuplhf VRR_VV "vector unpack logical high word" z13 zarch
+e700000000d6 vupl VRR_VV0U "vector unpack low" z13 zarch
+e700000000d6 vuplb VRR_VV "vector unpack low byte" z13 zarch
+e700000010d6 vuplhw VRR_VV "vector unpack low halfword" z13 zarch
+e700000020d6 vuplf VRR_VV "vector unpack low word" z13 zarch
+e700000000d4 vupll VRR_VV0U "vector unpack logical low" z13 zarch
+e700000000d4 vupllb VRR_VV "vector unpack logical low byte" z13 zarch
+e700000010d4 vupllh VRR_VV "vector unpack logical low halfword" z13 zarch
+e700000020d4 vupllf VRR_VV "vector unpack logical low word" z13 zarch
+
+# Chapter 22
+e700000000f3 va VRR_VVV0U "vector add" z13 zarch
+e700000000f3 vab VRR_VVV "vector add byte" z13 zarch
+e700000010f3 vah VRR_VVV "vector add halfword" z13 zarch
+e700000020f3 vaf VRR_VVV "vector add word" z13 zarch
+e700000030f3 vag VRR_VVV "vector add double word" z13 zarch
+e700000040f3 vaq VRR_VVV "vector add quad word" z13 zarch
+e700000000f1 vacc VRR_VVV0U "vector add compute carry" z13 zarch
+e700000000f1 vaccb VRR_VVV "vector add compute carry byte" z13 zarch
+e700000010f1 vacch VRR_VVV "vector add compute carry halfword" z13 zarch
+e700000020f1 vaccf VRR_VVV "vector add compute carry word" z13 zarch
+e700000030f1 vaccg VRR_VVV "vector add compute carry doubleword" z13 zarch
+e700000040f1 vaccq VRR_VVV "vector add compute carry quadword" z13 zarch
+e700000000bb vac VRR_VVVU0V "vector add with carry" z13 zarch
+e700040000bb vacq VRR_VVV0V "vector add with carry quadword" z13 zarch
+e700000000b9 vaccc VRR_VVVU0V "vector add with carry compute carry" z13 zarch
+e700040000b9 vacccq VRR_VVV0V "vector add with carry compute carry quadword" z13 zarch
+e70000000068 vn VRR_VVV "vector and" z13 zarch
+e70000000069 vnc VRR_VVV "vector and with complement" z13 zarch
+e700000000f2 vavg VRR_VVV0U "vector average" z13 zarch
+e700000000f2 vavgb VRR_VVV "vector average byte" z13 zarch
+e700000010f2 vavgh VRR_VVV "vector average half word" z13 zarch
+e700000020f2 vavgf VRR_VVV "vector average word" z13 zarch
+e700000030f2 vavgg VRR_VVV "vector average double word" z13 zarch
+e700000000f0 vavgl VRR_VVV0U "vector average logical" z13 zarch
+e700000000f0 vavglb VRR_VVV "vector average logical byte" z13 zarch
+e700000010f0 vavglh VRR_VVV "vector average logical half word" z13 zarch
+e700000020f0 vavglf VRR_VVV "vector average logical word" z13 zarch
+e700000030f0 vavglg VRR_VVV "vector average logical double word" z13 zarch
+e70000000066 vcksm VRR_VVV "vector checksum" z13 zarch
+e700000000db vec VRR_VV0U "vector element compare" z13 zarch
+e700000000db vecb VRR_VV "vector element compare byte" z13 zarch
+e700000010db vech VRR_VV "vector element compare half word" z13 zarch
+e700000020db vecf VRR_VV "vector element compare word" z13 zarch
+e700000030db vecg VRR_VV "vector element compare double word" z13 zarch
+e700000000d9 vecl VRR_VV0U "vector element compare logical" z13 zarch
+e700000000d9 veclb VRR_VV "vector element compare logical byte" z13 zarch
+e700000010d9 veclh VRR_VV "vector element compare logical half word" z13 zarch
+e700000020d9 veclf VRR_VV "vector element compare logical word" z13 zarch
+e700000030d9 veclg VRR_VV "vector element compare logical double word" z13 zarch
+e700000000f8 vceq VRR_VVV0U0U "vector compare equal" z13 zarch
+e700000000f8 vceqb VRR_VVV "vector compare equal byte" z13 zarch
+e700000010f8 vceqh VRR_VVV "vector compare equal half word" z13 zarch
+e700000020f8 vceqf VRR_VVV "vector compare equal word" z13 zarch
+e700000030f8 vceqg VRR_VVV "vector compare equal double word" z13 zarch
+e700001000f8 vceqbs VRR_VVV "vector compare equal byte" z13 zarch
+e700001010f8 vceqhs VRR_VVV "vector compare equal half word" z13 zarch
+e700001020f8 vceqfs VRR_VVV "vector compare equal word" z13 zarch
+e700001030f8 vceqgs VRR_VVV "vector compare equal double word" z13 zarch
+e700000000fb vch VRR_VVV0U0U "vector compare high" z13 zarch
+e700000000fb vchb VRR_VVV "vector compare high byte" z13 zarch
+e700000010fb vchh VRR_VVV "vector compare high half word" z13 zarch
+e700000020fb vchf VRR_VVV "vector compare high word" z13 zarch
+e700000030fb vchg VRR_VVV "vector compare high double word" z13 zarch
+e700001000fb vchbs VRR_VVV "vector compare high byte" z13 zarch
+e700001010fb vchhs VRR_VVV "vector compare high half word" z13 zarch
+e700001020fb vchfs VRR_VVV "vector compare high word" z13 zarch
+e700001030fb vchgs VRR_VVV "vector compare high double word" z13 zarch
+e700000000f9 vchl VRR_VVV0U0U "vector compare high logical" z13 zarch
+e700000000f9 vchlb VRR_VVV "vector compare high logical byte" z13 zarch
+e700000010f9 vchlh VRR_VVV "vector compare high logical half word" z13 zarch
+e700000020f9 vchlf VRR_VVV "vector compare high logical word" z13 zarch
+e700000030f9 vchlg VRR_VVV "vector compare high logical double word" z13 zarch
+e700001000f9 vchlbs VRR_VVV "vector compare high logical byte" z13 zarch
+e700001010f9 vchlhs VRR_VVV "vector compare high logical half word" z13 zarch
+e700001020f9 vchlfs VRR_VVV "vector compare high logical word" z13 zarch
+e700001030f9 vchlgs VRR_VVV "vector compare high logical double word" z13 zarch
+e70000000053 vclz VRR_VV0U "vector count leading zeros" z13 zarch
+e70000000053 vclzb VRR_VV "vector count leading zeros byte" z13 zarch
+e70000001053 vclzh VRR_VV "vector count leading zeros halfword" z13 zarch
+e70000002053 vclzf VRR_VV "vector count leading zeros word" z13 zarch
+e70000003053 vclzg VRR_VV "vector count leading zeros doubleword" z13 zarch
+e70000000052 vctz VRR_VV0U "vector count trailing zeros" z13 zarch
+e70000000052 vctzb VRR_VV "vector count trailing zeros byte" z13 zarch
+e70000001052 vctzh VRR_VV "vector count trailing zeros halfword" z13 zarch
+e70000002052 vctzf VRR_VV "vector count trailing zeros word" z13 zarch
+e70000003052 vctzg VRR_VV "vector count trailing zeros doubleword" z13 zarch
+e7000000006d vx VRR_VVV "vector exclusive or" z13 zarch
+e700000000b4 vgfm VRR_VVV0U "vector galois field multiply sum" z13 zarch
+e700000000b4 vgfmb VRR_VVV "vector galois field multiply sum byte" z13 zarch
+e700000010b4 vgfmh VRR_VVV "vector galois field multiply sum halfword" z13 zarch
+e700000020b4 vgfmf VRR_VVV "vector galois field multiply sum word" z13 zarch
+e700000030b4 vgfmg VRR_VVV "vector galois field multiply sum doubleword" z13 zarch
+e700000000bc vgfma VRR_VVVU0V "vector galois field multiply sum and accumulate" z13 zarch
+e700000000bc vgfmab VRR_VVV0V "vector galois field multiply sum and accumulate byte" z13 zarch
+e700010000bc vgfmah VRR_VVV0V "vector galois field multiply sum and accumulate halfword" z13 zarch
+e700020000bc vgfmaf VRR_VVV0V "vector galois field multiply sum and accumulate word" z13 zarch
+e700030000bc vgfmag VRR_VVV0V "vector galois field multiply sum and accumulate doubleword" z13 zarch
+e700000000de vlc VRR_VV0U "vector load complement" z13 zarch
+e700000000de vlcb VRR_VV "vector load complement byte" z13 zarch
+e700000010de vlch VRR_VV "vector load complement halfword" z13 zarch
+e700000020de vlcf VRR_VV "vector load complement word" z13 zarch
+e700000030de vlcg VRR_VV "vector load complement doubleword" z13 zarch
+e700000000df vlp VRR_VV0U "vector load positive" z13 zarch
+e700000000df vlpb VRR_VV "vector load positive byte" z13 zarch
+e700000010df vlph VRR_VV "vector load positive halfword" z13 zarch
+e700000020df vlpf VRR_VV "vector load positive word" z13 zarch
+e700000030df vlpg VRR_VV "vector load positive doubleword" z13 zarch
+e700000000ff vmx VRR_VVV0U "vector maximum" z13 zarch
+e700000000ff vmxb VRR_VVV "vector maximum byte" z13 zarch
+e700000010ff vmxh VRR_VVV "vector maximum halfword" z13 zarch
+e700000020ff vmxf VRR_VVV "vector maximum word" z13 zarch
+e700000030ff vmxg VRR_VVV "vector maximum doubleword" z13 zarch
+e700000000fd vmxl VRR_VVV0U "vector maximum logical" z13 zarch
+e700000000fd vmxlb VRR_VVV "vector maximum logical byte" z13 zarch
+e700000010fd vmxlh VRR_VVV "vector maximum logical halfword" z13 zarch
+e700000020fd vmxlf VRR_VVV "vector maximum logical word" z13 zarch
+e700000030fd vmxlg VRR_VVV "vector maximum logical doubleword" z13 zarch
+e700000000fe vmn VRR_VVV0U "vector minimum" z13 zarch
+e700000000fe vmnb VRR_VVV "vector minimum byte" z13 zarch
+e700000010fe vmnh VRR_VVV "vector minimum halfword" z13 zarch
+e700000020fe vmnf VRR_VVV "vector minimum word" z13 zarch
+e700000030fe vmng VRR_VVV "vector minimum doubleword" z13 zarch
+e700000000fc vmnl VRR_VVV0U "vector minimum logical" z13 zarch
+e700000000fc vmnlb VRR_VVV "vector minimum logical byte" z13 zarch
+e700000010fc vmnlh VRR_VVV "vector minimum logical halfword" z13 zarch
+e700000020fc vmnlf VRR_VVV "vector minimum logical word" z13 zarch
+e700000030fc vmnlg VRR_VVV "vector minimum logical doubleword" z13 zarch
+e700000000aa vmal VRR_VVVU0V "vector multiply and add low" z13 zarch
+e700000000aa vmalb VRR_VVV0V "vector multiply and add low byte" z13 zarch
+e700010000aa vmalhw VRR_VVV0V "vector multiply and add low halfword" z13 zarch
+e700020000aa vmalf VRR_VVV0V "vector multiply and add low word" z13 zarch
+e700000000ab vmah VRR_VVVU0V "vector multiply and add high" z13 zarch
+e700000000ab vmahb VRR_VVV0V "vector multiply and add high byte" z13 zarch
+e700010000ab vmahh VRR_VVV0V "vector multiply and add high halfword" z13 zarch
+e700020000ab vmahf VRR_VVV0V "vector multiply and add high word" z13 zarch
+e700000000a9 vmalh VRR_VVVU0V "vector multiply and add logical high" z13 zarch
+e700000000a9 vmalhb VRR_VVV0V "vector multiply and add logical high byte" z13 zarch
+e700010000a9 vmalhh VRR_VVV0V "vector multiply and add logical high halfword" z13 zarch
+e700020000a9 vmalhf VRR_VVV0V "vector multiply and add logical high word" z13 zarch
+e700000000ae vmae VRR_VVVU0V "vector multiply and add even" z13 zarch
+e700000000ae vmaeb VRR_VVV0V "vector multiply and add even byte" z13 zarch
+e700010000ae vmaeh VRR_VVV0V "vector multiply and add even halfword" z13 zarch
+e700020000ae vmaef VRR_VVV0V "vector multiply and add even word" z13 zarch
+e700000000ac vmale VRR_VVVU0V "vector multiply and add logical even" z13 zarch
+e700000000ac vmaleb VRR_VVV0V "vector multiply and add logical even byte" z13 zarch
+e700010000ac vmaleh VRR_VVV0V "vector multiply and add logical even halfword" z13 zarch
+e700020000ac vmalef VRR_VVV0V "vector multiply and add logical even word" z13 zarch
+e700000000af vmao VRR_VVVU0V "vector multiply and add odd" z13 zarch
+e700000000af vmaob VRR_VVV0V "vector multiply and add odd byte" z13 zarch
+e700010000af vmaoh VRR_VVV0V "vector multiply and add odd halfword" z13 zarch
+e700020000af vmaof VRR_VVV0V "vector multiply and add odd word" z13 zarch
+e700000000ad vmalo VRR_VVVU0V "vector multiply and add logical odd" z13 zarch
+e700000000ad vmalob VRR_VVV0V "vector multiply and add logical odd byte" z13 zarch
+e700010000ad vmaloh VRR_VVV0V "vector multiply and add logical odd halfword" z13 zarch
+e700020000ad vmalof VRR_VVV0V "vector multiply and add logical odd word" z13 zarch
+e700000000a3 vmh VRR_VVV0U "vector multiply high" z13 zarch
+e700000000a3 vmhb VRR_VVV "vector multiply high byte" z13 zarch
+e700000010a3 vmhh VRR_VVV "vector multiply high halfword" z13 zarch
+e700000020a3 vmhf VRR_VVV "vector multiply high word" z13 zarch
+e700000000a1 vmlh VRR_VVV0U "vector multiply logical high" z13 zarch
+e700000000a1 vmlhb VRR_VVV "vector multiply logical high byte" z13 zarch
+e700000010a1 vmlhh VRR_VVV "vector multiply logical high halfword" z13 zarch
+e700000020a1 vmlhf VRR_VVV "vector multiply logical high word" z13 zarch
+e700000000a2 vml VRR_VVV0U "vector multiply low" z13 zarch
+e700000000a2 vmlb VRR_VVV "vector multiply low byte" z13 zarch
+e700000010a2 vmlhw VRR_VVV "vector multiply low halfword" z13 zarch
+e700000020a2 vmlf VRR_VVV "vector multiply low word" z13 zarch
+e700000000a6 vme VRR_VVV0U "vector multiply even" z13 zarch
+e700000000a6 vmeb VRR_VVV "vector multiply even byte" z13 zarch
+e700000010a6 vmeh VRR_VVV "vector multiply even halfword" z13 zarch
+e700000020a6 vmef VRR_VVV "vector multiply even word" z13 zarch
+e700000000a4 vmle VRR_VVV0U "vector multiply logical even" z13 zarch
+e700000000a4 vmleb VRR_VVV "vector multiply logical even byte" z13 zarch
+e700000010a4 vmleh VRR_VVV "vector multiply logical even halfword" z13 zarch
+e700000020a4 vmlef VRR_VVV "vector multiply logical even word" z13 zarch
+e700000000a7 vmo VRR_VVV0U "vector multiply odd" z13 zarch
+e700000000a7 vmob VRR_VVV "vector multiply odd byte" z13 zarch
+e700000010a7 vmoh VRR_VVV "vector multiply odd halfword" z13 zarch
+e700000020a7 vmof VRR_VVV "vector multiply odd word" z13 zarch
+e700000000a5 vmlo VRR_VVV0U "vector multiply logical odd" z13 zarch
+e700000000a5 vmlob VRR_VVV "vector multiply logical odd byte" z13 zarch
+e700000010a5 vmloh VRR_VVV "vector multiply logical odd halfword" z13 zarch
+e700000020a5 vmlof VRR_VVV "vector multiply logical odd word" z13 zarch
+e7000000006b vno VRR_VVV "vector nor" z13 zarch
+e7000000006b vnot VRR_VVV2 "vector not" z13 zarch
+e7000000006a vo VRR_VVV "vector or" z13 zarch
+e70000000050 vpopct VRR_VV0U "vector population count" z13 zarch
+e70000000073 verllv VRR_VVV0U "vector element rotate left logical reg" z13 zarch
+e70000000073 verllvb VRR_VVV "vector element rotate left logical reg byte" z13 zarch
+e70000001073 verllvh VRR_VVV "vector element rotate left logical reg halfword" z13 zarch
+e70000002073 verllvf VRR_VVV "vector element rotate left logical reg word" z13 zarch
+e70000003073 verllvg VRR_VVV "vector element rotate left logical reg doubleword" z13 zarch
+e70000000033 verll VRS_VVRDU "vector element rotate left logical mem" z13 zarch
+e70000000033 verllb VRS_VVRD "vector element rotate left logical mem byte" z13 zarch
+e70000001033 verllh VRS_VVRD "vector element rotate left logical mem halfword" z13 zarch
+e70000002033 verllf VRS_VVRD "vector element rotate left logical mem word" z13 zarch
+e70000003033 verllg VRS_VVRD "vector element rotate left logical mem doubleword" z13 zarch
+e70000000072 verim VRI_VVV0UU "vector element rotate and insert under mask" z13 zarch
+e70000000072 verimb VRI_VVV0U "vector element rotate and insert under mask byte" z13 zarch
+e70000001072 verimh VRI_VVV0U "vector element rotate and insert under mask halfword" z13 zarch
+e70000002072 verimf VRI_VVV0U "vector element rotate and insert under mask word" z13 zarch
+e70000003072 verimg VRI_VVV0U "vector element rotate and insert under mask doubleword" z13 zarch
+e70000000070 veslv VRR_VVV0U "vector element shift left reg" z13 zarch
+e70000000070 veslvb VRR_VVV "vector element shift left reg byte" z13 zarch
+e70000001070 veslvh VRR_VVV "vector element shift left reg halfword" z13 zarch
+e70000002070 veslvf VRR_VVV "vector element shift left reg word" z13 zarch
+e70000003070 veslvg VRR_VVV "vector element shift left reg doubleword" z13 zarch
+e70000000030 vesl VRS_VVRDU "vector element shift left mem" z13 zarch
+e70000000030 veslb VRS_VVRD "vector element shift left mem byte" z13 zarch
+e70000001030 veslh VRS_VVRD "vector element shift left mem halfword" z13 zarch
+e70000002030 veslf VRS_VVRD "vector element shift left mem word" z13 zarch
+e70000003030 veslg VRS_VVRD "vector element shift left mem doubleword" z13 zarch
+e7000000007a vesrav VRR_VVV0U "vector element shift right arithmetic reg" z13 zarch
+e7000000007a vesravb VRR_VVV "vector element shift right arithmetic reg byte" z13 zarch
+e7000000107a vesravh VRR_VVV "vector element shift right arithmetic reg halfword" z13 zarch
+e7000000207a vesravf VRR_VVV "vector element shift right arithmetic reg word" z13 zarch
+e7000000307a vesravg VRR_VVV "vector element shift right arithmetic reg doubleword" z13 zarch
+e7000000003a vesra VRS_VVRDU "vector element shift right arithmetic mem" z13 zarch
+e7000000003a vesrab VRS_VVRD "vector element shift right arithmetic mem byte" z13 zarch
+e7000000103a vesrah VRS_VVRD "vector element shift right arithmetic mem halfword" z13 zarch
+e7000000203a vesraf VRS_VVRD "vector element shift right arithmetic mem word" z13 zarch
+e7000000303a vesrag VRS_VVRD "vector element shift right arithmetic mem doubleword" z13 zarch
+e70000000078 vesrlv VRR_VVV0U "vector element shift right logical reg" z13 zarch
+e70000000078 vesrlvb VRR_VVV "vector element shift right logical reg byte" z13 zarch
+e70000001078 vesrlvh VRR_VVV "vector element shift right logical reg halfword" z13 zarch
+e70000002078 vesrlvf VRR_VVV "vector element shift right logical reg word" z13 zarch
+e70000003078 vesrlvg VRR_VVV "vector element shift right logical reg doubleword" z13 zarch
+e70000000038 vesrl VRS_VVRDU "vector element shift right logical mem" z13 zarch
+e70000000038 vesrlb VRS_VVRD "vector element shift right logical mem byte" z13 zarch
+e70000001038 vesrlh VRS_VVRD "vector element shift right logical mem halfword" z13 zarch
+e70000002038 vesrlf VRS_VVRD "vector element shift right logical mem word" z13 zarch
+e70000003038 vesrlg VRS_VVRD "vector element shift right logical mem doubleword" z13 zarch
+e70000000074 vsl VRR_VVV "vector shift left" z13 zarch
+e70000000075 vslb VRR_VVV "vector shift left by byte" z13 zarch
+e70000000077 vsldb VRI_VVV0U "vector shift left double by byte" z13 zarch
+e7000000007e vsra VRR_VVV "vector shift right arithmetic" z13 zarch
+e7000000007f vsrab VRR_VVV "vector shift right arithmetic by byte" z13 zarch
+e7000000007c vsrl VRR_VVV "vector shift right logical" z13 zarch
+e7000000007d vsrlb VRR_VVV "vector shift right logical by byte" z13 zarch
+e700000000f7 vs VRR_VVV0U "vector subtract" z13 zarch
+e700000000f7 vsb VRR_VVV "vector subtract byte" z13 zarch
+e700000010f7 vsh VRR_VVV "vector subtract halfword" z13 zarch
+e700000020f7 vsf VRR_VVV "vector subtract word" z13 zarch
+e700000030f7 vsg VRR_VVV "vector subtract doubleword" z13 zarch
+e700000040f7 vsq VRR_VVV "vector subtract quadword" z13 zarch
+e700000000f5 vscbi VRR_VVV0U "vector subtract compute borrow indication" z13 zarch
+e700000000f5 vscbib VRR_VVV "vector subtract compute borrow indication byte" z13 zarch
+e700000010f5 vscbih VRR_VVV "vector subtract compute borrow indication halfword" z13 zarch
+e700000020f5 vscbif VRR_VVV "vector subtract compute borrow indication word" z13 zarch
+e700000030f5 vscbig VRR_VVV "vector subtract compute borrow indication doubleword" z13 zarch
+e700000040f5 vscbiq VRR_VVV "vector subtract compute borrow indication quadword" z13 zarch
+e700000000bf vsbi VRR_VVVU0V "vector subtract with borrow indication" z13 zarch
+e700040000bf vsbiq VRR_VVV0V "vector subtract with borrow indication quadword" z13 zarch
+e700000000bd vsbcbi VRR_VVVU0V "vector subtract with borrow compute borrow indication" z13 zarch
+e700040000bd vsbcbiq VRR_VVV0V "vector subtract with borrow compute borrow indication quadword" z13 zarch
+e70000000065 vsumg VRR_VVV0U "vector sum across doubleword" z13 zarch
+e70000001065 vsumgh VRR_VVV "vector sum across doubleword - halfword" z13 zarch
+e70000002065 vsumgf VRR_VVV "vector sum across doubleword - word" z13 zarch
+e70000000067 vsumq VRR_VVV0U "vector sum across quadword" z13 zarch
+e70000002067 vsumqf VRR_VVV "vector sum across quadword - word elements" z13 zarch
+e70000003067 vsumqg VRR_VVV "vector sum across quadword - doubleword elements" z13 zarch
+e70000000064 vsum VRR_VVV0U "vector sum across word" z13 zarch
+e70000000064 vsumb VRR_VVV "vector sum across word - byte elements" z13 zarch
+e70000001064 vsumh VRR_VVV "vector sum across word - halfword elements" z13 zarch
+e700000000d8 vtm VRR_VV "vector test under mask" z13 zarch
+
+# Chapter 23 - Vector String Instructions
+e70000000082 vfae VRR_VVV0U0U "vector find any element equal" z13 zarch optparm
+e70000000082 vfaeb VRR_VVV0U0 "vector find any element equal byte" z13 zarch optparm
+e70000001082 vfaeh VRR_VVV0U0 "vector find any element equal halfword" z13 zarch optparm
+e70000002082 vfaef VRR_VVV0U0 "vector find any element equal word" z13 zarch optparm
+e70000100082 vfaebs VRR_VVV0U1 "vector find any element equal" z13 zarch optparm
+e70000101082 vfaehs VRR_VVV0U1 "vector find any element equal" z13 zarch optparm
+e70000102082 vfaefs VRR_VVV0U1 "vector find any element equal" z13 zarch optparm
+e70000200082 vfaezb VRR_VVV0U2 "vector find any element equal" z13 zarch optparm
+e70000201082 vfaezh VRR_VVV0U2 "vector find any element equal" z13 zarch optparm
+e70000202082 vfaezf VRR_VVV0U2 "vector find any element equal" z13 zarch optparm
+e70000300082 vfaezbs VRR_VVV0U3 "vector find any element equal" z13 zarch optparm
+e70000301082 vfaezhs VRR_VVV0U3 "vector find any element equal" z13 zarch optparm
+e70000302082 vfaezfs VRR_VVV0U3 "vector find any element equal" z13 zarch optparm
+e70000000080 vfee VRR_VVV0U0U "vector find element equal" z13 zarch optparm
+e70000000080 vfeeb VRR_VVV0U0 "vector find element equal byte" z13 zarch optparm
+e70000001080 vfeeh VRR_VVV0U0 "vector find element equal halfword" z13 zarch optparm
+e70000002080 vfeef VRR_VVV0U0 "vector find element equal word" z13 zarch optparm
+e70000100080 vfeebs VRR_VVV "vector find element equal byte" z13 zarch
+e70000101080 vfeehs VRR_VVV "vector find element equal halfword" z13 zarch
+e70000102080 vfeefs VRR_VVV "vector find element equal word" z13 zarch
+e70000200080 vfeezb VRR_VVV "vector find element equal byte" z13 zarch
+e70000201080 vfeezh VRR_VVV "vector find element equal halfword" z13 zarch
+e70000202080 vfeezf VRR_VVV "vector find element equal word" z13 zarch
+e70000300080 vfeezbs VRR_VVV "vector find element equal byte" z13 zarch
+e70000301080 vfeezhs VRR_VVV "vector find element equal halfword" z13 zarch
+e70000302080 vfeezfs VRR_VVV "vector find element equal word" z13 zarch
+e70000000081 vfene VRR_VVV0U0U "vector find element not equal" z13 zarch optparm
+e70000000081 vfeneb VRR_VVV0U0 "vector find element not equal byte" z13 zarch optparm
+e70000001081 vfeneh VRR_VVV0U0 "vector find element not equal halfword" z13 zarch optparm
+e70000002081 vfenef VRR_VVV0U0 "vector find element not equal word" z13 zarch optparm
+e70000100081 vfenebs VRR_VVV "vector find element not equal byte" z13 zarch
+e70000101081 vfenehs VRR_VVV "vector find element not equal halfword" z13 zarch
+e70000102081 vfenefs VRR_VVV "vector find element not equal word" z13 zarch
+e70000200081 vfenezb VRR_VVV "vector find element not equal byte" z13 zarch
+e70000201081 vfenezh VRR_VVV "vector find element not equal halfword" z13 zarch
+e70000202081 vfenezf VRR_VVV "vector find element not equal word" z13 zarch
+e70000300081 vfenezbs VRR_VVV "vector find element not equal byte" z13 zarch
+e70000301081 vfenezhs VRR_VVV "vector find element not equal halfword" z13 zarch
+e70000302081 vfenezfs VRR_VVV "vector find element not equal word" z13 zarch
+e7000000005c vistr VRR_VV0U0U "vector isolate string" z13 zarch optparm
+e7000000005c vistrb VRR_VV0U2 "vector isolate string byte" z13 zarch optparm
+e7000000105c vistrh VRR_VV0U2 "vector isolate string halfword" z13 zarch optparm
+e7000000205c vistrf VRR_VV0U2 "vector isolate string word" z13 zarch optparm
+e7000010005c vistrbs VRR_VV "vector isolate string byte" z13 zarch
+e7000010105c vistrhs VRR_VV "vector isolate string halfword" z13 zarch
+e7000010205c vistrfs VRR_VV "vector isolate string word" z13 zarch
+e7000000008a vstrc VRR_VVVUU0V "vector string range compare" z13 zarch optparm
+e7000000008a vstrcb VRR_VVVU0VB "vector string range compare byte" z13 zarch optparm
+e7000100008a vstrch VRR_VVVU0VB "vector string range compare halfword" z13 zarch optparm
+e7000200008a vstrcf VRR_VVVU0VB "vector string range compare word" z13 zarch optparm
+e7000010008a vstrcbs VRR_VVVU0VB1 "vector string range compare byte" z13 zarch optparm
+e7000110008a vstrchs VRR_VVVU0VB1 "vector string range compare halfword" z13 zarch optparm
+e7000210008a vstrcfs VRR_VVVU0VB1 "vector string range compare word" z13 zarch optparm
+e7000020008a vstrczb VRR_VVVU0VB2 "vector string range compare byte" z13 zarch optparm
+e7000120008a vstrczh VRR_VVVU0VB2 "vector string range compare halfword" z13 zarch optparm
+e7000220008a vstrczf VRR_VVVU0VB2 "vector string range compare word" z13 zarch optparm
+e7000030008a vstrczbs VRR_VVVU0VB3 "vector string range compare byte" z13 zarch optparm
+e7000130008a vstrczhs VRR_VVVU0VB3 "vector string range compare halfword" z13 zarch optparm
+e7000230008a vstrczfs VRR_VVVU0VB3 "vector string range compare word" z13 zarch optparm
+
+# Chapter 24
+e700000000e3 vfa VRR_VVV0UU "vector fp add" z13 zarch
+e700000030e3 vfadb VRR_VVV "vector fp add" z13 zarch
+e700000830e3 wfadb VRR_VVV "vector fp add" z13 zarch
+e700000000cb wfc VRR_VV0UU "vector fp compare scalar" z13 zarch
+e700000030cb wfcdb VRR_VV "vector fp compare scalar" z13 zarch
+e700000000ca wfk VRR_VV0UU "vector fp compare and signal scalar" z13 zarch
+e700000030ca wfkdb VRR_VV "vector fp compare and signal scalar" z13 zarch
+e700000000e8 vfce VRR_VVV "vector fp compare equal" z13 zarch
+e700000030e8 vfcedb VRR_VVV "vector fp compare equal" z13 zarch
+e700001030e8 vfcedbs VRR_VVV "vector fp compare equal" z13 zarch
+e700000830e8 wfcedb VRR_VVV "vector fp compare equal" z13 zarch
+e700001830e8 wfcedbs VRR_VVV "vector fp compare equal" z13 zarch
+e700000000eb vfch VRR_VVV0UUU "vector fp compare high" z13 zarch
+e700000030eb vfchdb VRR_VVV "vector fp compare high" z13 zarch
+e700001030eb vfchdbs VRR_VVV "vector fp compare high" z13 zarch
+e700000830eb wfchdb VRR_VVV "vector fp compare high" z13 zarch
+e700001830eb wfchdbs VRR_VVV "vector fp compare high" z13 zarch
+e700000000ea vfche VRR_VVV0UUU "vector fp compare high or equal" z13 zarch
+e700000030ea vfchedb VRR_VVV "vector fp compare high or equal" z13 zarch
+e700001030ea vfchedbs VRR_VVV "vector fp compare high or equal" z13 zarch
+e700000830ea wfchedb VRR_VVV "vector fp compare high or equal" z13 zarch
+e700001830ea wfchedbs VRR_VVV "vector fp compare high or equal" z13 zarch
+e700000000c3 vcdg VRR_VV0UUU "vector fp convert from fixed 64 bit" z13 zarch
+e700000030c3 vcdgb VRR_VV0UU "vector fp convert from fixed 64 bit" z13 zarch
+e700000830c3 wcdgb VRR_VV0UU8 "vector fp convert from fixed 64 bit" z13 zarch
+e700000000c1 vcdlg VRR_VV0UUU "vector fp convert from logical 64 bit" z13 zarch
+e700000030c1 vcdlgb VRR_VV0UU "vector fp convert from logical 64 bit" z13 zarch
+e700000830c1 wcdlgb VRR_VV0UU8 "vector fp convert from logical 64 bit" z13 zarch
+e700000000c2 vcgd VRR_VV0UUU "vector fp convert to fixed 64 bit" z13 zarch
+e700000030c2 vcgdb VRR_VV0UU "vector fp convert to fixed 64 bit" z13 zarch
+e700000830c2 wcgdb VRR_VV0UU8 "vector fp convert to fixed 64 bit" z13 zarch
+e700000000c0 vclgd VRR_VV0UUU "vector fp convert to logical 64 bit" z13 zarch
+e700000030c0 vclgdb VRR_VV0UU "vector fp convert to logical 64 bit" z13 zarch
+e700000830c0 wclgdb VRR_VV0UU8 "vector fp convert to logical 64 bit" z13 zarch
+e700000000e5 vfd VRR_VVV0UU "vector fp divide" z13 zarch
+e700000030e5 vfddb VRR_VVV "vector fp divide" z13 zarch
+e700000830e5 wfddb VRR_VVV "vector fp divide" z13 zarch
+e700000000c7 vfi VRR_VV0UUU "vector load fp integer" z13 zarch
+e700000030c7 vfidb VRR_VV0UU "vector load fp integer" z13 zarch
+e700000830c7 wfidb VRR_VV0UU8 "vector load fp integer" z13 zarch
+e700000000c4 vlde VRR_VV0UU "vector fp load lengthened" z13 zarch
+e700000020c4 vldeb VRR_VV "vector fp load lengthened" z13 zarch
+e700000820c4 wldeb VRR_VV "vector fp load lengthened" z13 zarch
+e700000000c5 vled VRR_VV0UUU "vector fp load rounded" z13 zarch
+e700000030c5 vledb VRR_VV0UU "vector fp load rounded" z13 zarch
+e700000830c5 wledb VRR_VV0UU8 "vector fp load rounded" z13 zarch
+e700000000e7 vfm VRR_VVV0UU "vector fp multiply" z13 zarch
+e700000030e7 vfmdb VRR_VVV "vector fp multiply" z13 zarch
+e700000830e7 wfmdb VRR_VVV "vector fp multiply" z13 zarch
+e7000000008f vfma VRR_VVVU0UV "vector fp multiply and add" z13 zarch
+e7000300008f vfmadb VRR_VVVV "vector fp multiply and add" z13 zarch
+e7000308008f wfmadb VRR_VVVV "vector fp multiply and add" z13 zarch
+e7000000008e vfms VRR_VVVU0UV "vector fp multiply and subtract" z13 zarch
+e7000300008e vfmsdb VRR_VVVV "vector fp multiply and subtract" z13 zarch
+e7000308008e wfmsdb VRR_VVVV "vector fp multiply and subtract" z13 zarch
+e700000000cc vfpso VRR_VV0UUU "vector fp perform sign operation" z13 zarch
+e700000030cc vfpsodb VRR_VV0U2 "vector fp perform sign operation" z13 zarch
+e700000830cc wfpsodb VRR_VV0U2 "vector fp perform sign operation" z13 zarch
+e700000030cc vflcdb VRR_VV "vector fp perform sign operation" z13 zarch
+e700000830cc wflcdb VRR_VV "vector fp perform sign operation" z13 zarch
+e700001030cc vflndb VRR_VV "vector fp perform sign operation" z13 zarch
+e700001830cc wflndb VRR_VV "vector fp perform sign operation" z13 zarch
+e700002030cc vflpdb VRR_VV "vector fp perform sign operation" z13 zarch
+e700002830cc wflpdb VRR_VV "vector fp perform sign operation" z13 zarch
+e700000000ce vfsq VRR_VV0UU "vector fp square root" z13 zarch
+e700000030ce vfsqdb VRR_VV "vector fp square root" z13 zarch
+e700000830ce wfsqdb VRR_VV "vector fp square root" z13 zarch
+e700000000e2 vfs VRR_VVV0UU "vector fp subtract" z13 zarch
+e700000030e2 vfsdb VRR_VVV "vector fp subtract" z13 zarch
+e700000830e2 wfsdb VRR_VVV "vector fp subtract" z13 zarch
+e7000000004a vftci VRI_VVUUU "vector fp test data class immediate" z13 zarch
+e7000000304a vftcidb VRI_VVU2 "vector fp test data class immediate" z13 zarch
+e7000008304a wftcidb VRI_VVU2 "vector fp test data class immediate" z13 zarch
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/sim/rx/ChangeLog ./sim/rx/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/sim/rx/ChangeLog	2015-01-13 01:48:41.000000000 +0000
+++ ./sim/rx/ChangeLog	2015-01-20 01:48:39.000000000 +0000
@@ -1,3 +1,9 @@
+2015-12-15  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb-if.c (open): Rename to...
+	(rx_sim_is_open): This. Replace all uses of "open" by uses of
+	"rx_sim_is_open" throughout.
+
 2014-08-19  Alan Modra  <amodra@gmail.com>
 
 	* configure: Regenerate.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/sim/rx/gdb-if.c ./sim/rx/gdb-if.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150113/sim/rx/gdb-if.c	2015-01-13 01:48:41.000000000 +0000
+++ ./sim/rx/gdb-if.c	2015-01-20 01:48:39.000000000 +0000
@@ -54,14 +54,14 @@ static struct sim_state the_minisim = {
   "This is the sole rx minisim instance.  See libsim.a's global variables."
 };
 
-static int open;
+static int rx_sim_is_open;
 
 SIM_DESC
 sim_open (SIM_OPEN_KIND kind,
 	  struct host_callback_struct *callback,
 	  struct bfd *abfd, char **argv)
 {
-  if (open)
+  if (rx_sim_is_open)
     fprintf (stderr, "rx minisim: re-opened sim\n");
 
   /* The 'run' interface doesn't use this function, so we don't care
@@ -79,7 +79,7 @@ sim_open (SIM_OPEN_KIND kind,
   execution_error_init_debugger ();
 
   sim_disasm_init (abfd);
-  open = 1;
+  rx_sim_is_open = 1;
   return &the_minisim;
 }
 
@@ -98,7 +98,7 @@ sim_close (SIM_DESC sd, int quitting)
   /* Not much to do.  At least free up our memory.  */
   init_mem ();
 
-  open = 0;
+  rx_sim_is_open = 0;
 }
 
 static bfd *
